本章的目的:

uboot编译
uboot烧写
uboot使用

 

 

2440烧写系统:

1、首先通过Jlink烧写一个完好的uboot到nor flash上。

2、连线:

①flash 调整到nor flash开关上。

②串口连接到PC上

③USB连接上PC和开发板上

3、在linux虚拟机上安装dnw.ko驱动,通过lsmod命令查看是否安装成功

4、开机,连接串口,启动nor flash上的uboot,选择9格式化nand flash。

5、选择1下载boot,串口会显示等待连接,如果已经连接,会显示USB host is connected yet。

6、回到Linux宿主机,光盘中的dnw工具没用,直接直接编译一个https://blog.csdn.net/hengxe/article/details/46482977

   下载boot命令 ./dnw2 u-boot-1.1.6_Q43_20120323.bin 

7、回到开发板选择3,linux虚拟机:下载Linux内核 ./dnw2 ./zImage_W43_20121214.bin 

8、回到开发板选择6文件系统,linux虚拟机:下载./dnw2 root_qtopia_2.2.0_2.6.30.4_256MB_20121214.bin

 

 

资料路径:

D:\博航视频\博航视频第04季-ARM开发板Linux内核驱动开发教程\第6课-U-Boot新手入门\第6课-U-Boot新手入门\相关代码\TQ2440\uboot_tq2440.tar.gz

使用dnw_usb如何烧写系统:
(1)烧写uboot
(2)烧写内核
(3)烧写文件系统(cramfs)选择5还是6忘了??

参考:第1季-嵌入式的童年01
713 ./dnw2 u-boot-1.1.6_Q43_20120323.bin
714 ./dnw2 ./zImage_W43_20121214.bin
715 ./dnw2 root_qtopia_2.2.0_2.6.30.4_256MB_20121214.bin

 

 

 

 

编译

压缩包所在目录:D:\博航视频\博航视频第04季-ARM开发板Linux内核驱动开发教程\第6课-U-Boot新手入门\第6课-U-Boot新手入门\相关代码\TQ2440\uboot_tq2440.tar.gz
目录所在目录:/home/aston/050-uboot-tq2440/uboot_tq2440

(1)配置编译
make tq2440_config
make ARCH=arm CROSS_COMPILE=arm-linux-
(2)烧写uboot.bin
安装驱动:insmod dnw_usb.ko
目录:/home/tangjun/dnw-code
拷贝编译出来的u-boot.bin文件:mv u-boot.bin /home/tangjun/dnw/
使用dnw2下载:
210地址需要修改为20000000
6410:50000000
2410地址为:30000000
root@ubuntu:/home/tangjun/dnw# ./dnw2 u-boot.bin

 

uboot命令详解 

(1)帮助命令 help
(2)环境变量相关命令
printenv
setenv
saveenv
(3)程序下载命令
使用tftp下载内核:
文件目录:D:\博航视频\博航视频第04季-ARM开发板Linux内核驱动开发教程\第6课-U-Boot新手入门\第6课-U-Boot新手入门\相关代码\TQ2440\uImage

(4)利用tftp下载,并且直接从内存地址启动
tftp 0x31000000 uImage //为什么不是30000000,需要留一段区间
(5)执行程序(需要先把uImage内核下载到该地址)
bootm 0x31000000
(6)md md.b md.w 用于显示地址
(7)nand flash的擦除
nand erase 起始地址start 长度len
nand erase 0x400000 0x500000
(8)nand flash的写
nand write 内存起始地址 flash起始地址 长度len
(9)nand flash的读
nand read 内存起始地址 flash起始地址 长度len
(10)设置自动启动
设置从nand flash自动启动命令(flash读内核)
setenv bootcmd nand read c31000000 400000 500000 \; bootm 31000000 相当于bootcmd是两条命令
设置自动下载内核到内存后启动
setenv bootcmd tftp 31000000 uImage \;bootm 31000000

tftp使用