uboot使用笔记
一、从最基础的uboot开始
首先是打算直接用程序把已有的镜像烧写进去sd卡里面,但是问题来了,烧写不进去
原因:
可能是windows 7的某些版本和win⑩的系统为了保护磁盘,设定了保护等级,直接刷写是写不进去的。
解决方法:
换一台电脑就好了。
然后就可以正常启动uboot。
Samsung s5p6818的uboot默认启动顺序:
TF卡->EMMC->USB
二、接下里就是要进行kernel和rootfs的移植
因为这两个东西都是固化到EMMC上面的,但是一开始的EMMC默认是没有分区表的,所以要建立分区表
1 GEC6818# fdisk 0 //显示设备0的详细信息,是使用的TF卡信息 2 3 Partition Map for MMC device 0 -- Partition Type: DOS 4 5 Part Start Sector Num Sectors UUID Type 6 1 512064 3350464 22e53739-01 0b Boot 7 Vendor: Man 000003 Snr 6399a700 Rev: 11.1 Prod: SU02G€ 8 Type: Removable Hard Disk 9 Capacity: 1886.0 MB = 1.8 GB (3862528 x 512) 10 11 12 GEC6818# fdisk 2 //板上已经有的ddr3总共8G的内存,但是未知分区表 13 ## Unknown partition table 14 Vendor: Man 000015 Snr f348b4bc Rev: 0.6 Prod: 8GND3R 15 Type: Removable Hard Disk 16 Capacity: 7456.0 MB = 7.2 GB (15269888 x 512)
所以就要使用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 2 3 512:0x4000000 4001000:4000000 8100000:0
因为前面知道,21设备是板子上面的emmc,所以使用的dev no就是2,part table counts 就是说的分区个数,
start:length 开始的hex的地址:分区大小 0x4000000就是64Mb
下一个的分区开始0x40001000,预留了1000bits的空间,怕到时候会越界操作,分区之间最好预留1Mb的大小,也是怕越界操作。