嵌入式linux学习(二):烧写裸板程序

用了两种方式烧写裸板

1、使用J-link烧写uboot,然后再使用uboot烧写其他程序

1)J-link只能烧写NorFlash,因此要先把uboot烧写到NorFlash里边,然后再用uboot把其他程序烧写到Nand Flash中去。(把开发板置于Nor启动)
2)在windows下安装串口调试工具SecureCRT,使用dnw传输文件。当使用J-link烧写完成uboot后,便可以使用菜单通过USB烧写。烧写时的连线以及说明:
首先是开发板的串口(com1或者RS232口)与PC相连,这样PC使用SecureCRT来通过串口操作开发板。这里在只连接一条串口线的情况下,只能操作菜单里提供的一些指令选项,并不能烧写程序,如果要烧写程序,那么还需要使用一根线把板子上的usb-devic接口和PC的USB口相连。装上dnw驱动后,在SecureCRT连接上的前提下,再执行dnw.exe,这样便可以通过dnw.exe菜单中的Traget Trasmit传输.bin文件,实现Nand flash的程序烧写。(中间可能会出现Nand erase error 的情况,这时通过串口操作菜单选择 nand erase bootloader,也就是擦除Nand Flash,然后再烧写一遍程序就行了。)(如果要查看程序执行的效果,先把开发板断电,然后拨到Nand启动,这时就可以看到现象了)
3)上面说的是在windows的环境下烧写,在linux中,烧写软件

2、使用tftp烧写

运行tftpd32.exe,选择下载文件的路径,然后记录当前服务器IP(也就是你PC的IP地址)开发板设为nor启动后,通过串口设置开发板的IP和服务器IP处于同一网段(比如ip为x.x.x.x,前面三个x相同后面一个不同,那么这样的多个ip就是处在同一个网段了)。然后使用uboot ping服务器Ip,如果能ping通的话,那么就可以使用tftpd32.exe传输文件了。最后再使用uboot下载tftp传输过来的文件,并且把它烧写到Nand Flash中去。
上面总结的具体步骤如下:
1)设置uboot里的IP和服务器IP处于同一网段

1
2
$ set ipaddr x.x.x.x
$ set serverip x.x.x.x

2)启动tftp服务
运行tftpd32.exe,选择下载文件的路径
3)u-boot下载,烧写文件
下载: tftp 30000000 led.bin
擦除:nand erase bootloader
烧写:nand write 30000000 bootloader
(这里的30000000是开发板外接的SDRAM的地址,然后bootloader是开发板上电后最初执行的一段代码的地址。)

3、在linux下使用dnw和uboot烧写系统

在linux下使用dnw不需要安装驱动程序,将光盘linux/tools目录下的dnw文件复制到主机的/user/bin目录下并且修改属性即可:
sudo chomd +x /user/bin/dnw
dnw命令本身的使用方法:
sudo dnw [address]
(这个命令将文件通过USB口发送到单板上,[address]是可选项,默认值是0x30000000,它表示这个文件想存放到SDRAM的位置;bootloader会自己决定把文件保存在SDRAM哪里,是否使用[address]取决于bootloader。)
eg:

1
sudo dnw leds.bin 0x31000000