一、从最基础的uboot开始
首先是打算直接用程序把已有的镜像烧写进去sd卡里面,但是问题来了,烧写不进去
原因:
可能是windows 7的某些版本和win⑩的系统为了保护磁盘,设定了保护等级,直接刷写是写不进去的。
解决方法:
换一台电脑就好了。
然后就可以正常启动uboot。
Samsung s5p6818的uboot默认启动顺序:
TF卡->EMMC->USB
二、接下里就是要进行kernel和rootfs的移植
因为这两个东西都是固化到EMMC上面的,但是一开始的EMMC默认是没有分区表的,所以要建立分区表
GEC6818# fdisk 0 //显示设备0的详细信息,是使用的TF卡信息 Partition Map for MMC device -- Partition Type: DOS Part Start Sector Num Sectors UUID Type
22e53739- 0b Boot
Vendor: Man Snr 6399a700 Rev: 11.1 Prod: SU02G€
Type: Removable Hard Disk
Capacity: 1886.0 MB = 1.8 GB ( x ) GEC6818# fdisk 2 //板上已经有的ddr3总共8G的内存,但是未知分区表
## Unknown partition table
Vendor: Man Snr f348b4bc Rev: 0.6 Prod: 8GND3R
Type: Removable Hard Disk
Capacity: 7456.0 MB = 7.2 GB ( x )
所以就要使用fdisk命令进行分区:
输入fdisk,显示如下提示信息
fdisk <dev no> [part table counts] <start:length> <start:length> ...
- Note. each arguments seperated with space - Create partition table info
- All numeric parameters are assumed to be hex.
- start and length is offset.
- If the length is zero, uses the remaining.
所以我打算是来三个分区,一个给uboot,一个给kernel,一个给rootfs
fdisk :0x4000000 : :
因为前面知道,21设备是板子上面的emmc,所以使用的dev no就是2,part table counts 就是说的分区个数,
start:length 开始的hex的地址:分区大小 0x4000000就是64Mb
下一个的分区开始0x40001000,预留了1000bits的空间,怕到时候会越界操作,分区之间最好预留1Mb的大小,也是怕越界操作。