注意USB烧写方法:
1、因为没有裁剪的u-boot达到500K,但是我们自带的u-boot烧写分区没有这么大,所以不能使用u-boot来烧写u-boot,只能使用u-boot里的指令来烧写:
烧写到nand flash:
usb 1 30000000
用DNW发送文件过去
nand erase 0 80000
nand write 30000000 0 80000
把开关拨到nand重启有输出,说明现在支持了nand启动
烧写到nor flash:
usb 1 30000000 //1表示一直等待
用DNW发送文件过去
protect off all //解除norflash写保护
erase 0 7FFFF //擦除从0到0x7FFFF共0x80000个字节
cp.b 30000000 0 80000 //从内存0x30000000开始烧写程序到norflash的0地址去,烧写0X80000个字节
2、新烧写到nor flash的u-boot不支持USB烧写,可以使用以下命令,用WINS自带的超级终端下载烧写,ymodem模式:
loady 32000000 //此时运行的是老的u-boot,栈指针在0x30000000,故不能下载到0x30000000
protect off all
erase 0 7ffff
cp.b 32000000 0 80000
reset
3、修改好网卡后可以用tftp下载内核:
set ipaddr 192.168.48.100
set ethaddr 00:0c:29:4d:e4:f4
到这里先要在xp打开tptp服务器,服务器ip为192.168.48.103
set serverip 192.168.48.103
tftp 30000000 uImage
bootm 30000000
4、用tftp下载u-boot到nor flash,同样可以用tftp下载u-boot到nand flash:
①设置:
set ipaddr 192.168.48.100
set ethaddr 00:0c:29:4d:e4:f4
到这里先要在xp打开tptp服务器,服务器ip为192.168.48.103
set serverip 192.168.48.103
②使用:
tftp 30000000 u-boot.bin
protect off all //解除norflash写保护
erase 0 3FFFF //新裁剪的u-boot只有200k,擦除从0到0x3FFFF共0x40000个字节
cp.b 30000000 0 40000
reset
5、烧写内核:
内核打印出来的分区信息
地址: 大小:
0x00000000-0x00040000 : "bootloader"
0x00040000-0x00060000 : "params"
0x00060000-0x00260000 : "kernel"
0x00260000-0x10000000 : "root"
nand erase 60000 200000
nand write 30000000 60000 200000
tftp 30000000 uImage //从PC机上下载
或者nfs下载(从Ubuntu服务器上下载):
nfs 30000000 192.168.48.105:/home/book/workspace/jz2440/nfs_donwload/uImage;nand erase.part kernel;nand write 30000000 kernel
或:
nfs 30000000 192.168.48.105:/home/book/workspace/jz2440/nfs_donwload/uImage;nand erase kernel;nand write 30000000 kernel
nand erase.part kernel
nand write 30000000 kernel
或:tftp 30000000 uImage;nand erase.part kernel;nand write 30000000 kernel
6、烧写200K的u-boot
烧写到nand flash:
tftp 30000000 u-boot.bin //从PC机上下载
或者nfs下载(从Ubuntu服务器上下载):
nfs 30000000 192.168.48.105:/home/book/workspace/jz2440/nfs_donwload/u-boot.bin;nand erase 0 40000;nand write 30000000 0 40000
或:
nfs 30000000 192.168.48.105:/home/book/workspace/jz2440/nfs_donwload/u-boot.bin;nand erase.part bootloader;nand write 30000000 bootloader
nand erase 0 40000
nand write 30000000 0 40000
或:tftp 30000000 u-boot.bin;nand erase 0 40000;nand write 30000000 0 40000
把开关拨到nand重启有输出,说明现在支持了nand启动
7、烧写yaffs2文件系统:
tftp 30000000 fs_mini_mdev.yaffs2
或者:
nfs 30000000 192.168.48.105:/home/book/workspace/jz2440/nfs_donwload/fs_mini_mdev.yaffs2
//nand erase.part rootfs
nand erase root
nand write.yaffs 30000000 260000 889bc0
8、烧写JFFS2文件系统:
tftp 30000000 fs_mini_mdev.jffs2
或者:
nfs 30000000 192.168.48.105:/home/book/workspace/jz2440/nfs_donwload/fs_mini_mdev.jffs2
nand erase.part rootfs
nand write.jffs2 30000000 0x00260000 5b89a8
set bootargs noinitrd root=/dev/mtdblook3 rootfstype=jffs2 init=/linuxrc console=ttySAC0
或(参考:u-boot-2012.04.01流程以及移植说明):
set bootargs console=ttySAC0 root=/dev/mtdblock3 rootfstype=jffs2
save
boot
注意:nor flash启动的u-boot既可以烧写nor flash本身也可以烧写nand flash,但是如果是nand flash启动的话就没办法操作nor flash,因为nand flash启动的时候0地址对应片内内存,无法访问nor flash;
使用tftp工具下载时,文件不能在中文路径下,否则下载的时候找不到文件导致下载失败。
烧写文件时文件实际的大小可以在文件下载完成后看到,或则用:$filesize,老版本的要带括号,即$(filesize)
命令行设置bootcmd:set bootcmd 'nand read 30000000 kernel;bootm 30000000'
上一篇:STM32时钟源时钟系统配置
下一篇:Jlink烧写JZ2440的Nor Flash
推荐阅读最新更新时间:2024-03-16 16:16