开发板的烧写实验
注意emmc的分区
分区的原则,每个分区的应该大于等于要存储镜像文件的大小
0--------1M-------65M--------819M---------8192M
扇区 0 0x800 0x20800 0x199800 0x1000000
uboot uImage rootfs userdata
4.1烧写uboot
空板子,emmc中无任何代码,可以借助TF来完成烧写
参考arm/day01
板子上有uboot
cp /mnt/hgfs/porting/env/uboot.bin /tftpboot/
tftp 0x48000000 uboot.bin
update_mmc 2 2ndboot 0x48000000 0x200 0x555f0
2: 板子emmc设备
2ndboot: 分区的名称
0x48000000:源数据地址
0x200: 写入的偏移位置
0x555f0: 写入的数据长度 (下载uboot.bin大小)
4.2 烧写linux内核
cp /mnt/hgfs/porting/env/uImage /tftpboot/
tftp 0x48000000 uImage
mmc write 0x48000000 0x800 0x3000
reset
倒数读秒不打断, uboot会自动执行bootcmd对应的命令
mmc read 48000000 800 4000 ; bootm 48000000
uboot会自动读取内核 ; 启动内核
setenv bootcmd mmc read 0x48000000 0x800 0x4000 \; bootm 0x48000000
saveenv
setenv bootdelay 10
saveenv
help mmc
mmc write addr blk# cnt
addr: 源数据地址
blk#: 要写入的位置(扇区)
emmc中一个扇区512Byte
cnt: 要操作的扇区个数
下载文件的大小 / 512 = 0x2912...
4.3 烧写根文件系统
cp /mnt/hgfs/porting/env/rootfs_ext4.img /tftpboot/
tftp 0x48000000 rootfs_ext4.img
mmc write 0x48000000 0x20800 0x32000
setenv bootargs root=/dev/mmcblk0p2 rootfstype=ext4
console=ttySAC0,115200 maxcpus=1
lcd=vs070cxn tp=gslx680-linux
// setenv bootargs root=/dev/mmcblk0p2 init=/linuxrc rootfstype=ext4
console=ttySAC0,115200 maxcpus=1
lcd=vs070cxn tp=gslx680-linux
init=/linuxrc指的一号进程
saveenv
root: 指定根文件系统所在的分区(设备)
rootfstype: 文件系统类型
console: ttySAC0 (串口)
maxcpus=1: 只启动CPU0
lcd:指定LCD屏的类型
tp:指定触摸屏的型号
重启开发板
用户名:root
密码: 123456
杀死qttest
启动qttest
观察界面反应
擦除根文件系统
mmc erase 0x20800 0x40000
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。