由于使用usb下载的时候总是出现蓝屏现象,这种几乎无法避免,在昨天经历几次蓝屏后,我决定寻找其他烧写程序的方法,抛弃USB下载!
tftp是首先想到的,也是实验成功的,写下博客,记下昨天的收获。顺便感谢昨天耐心指导我的大牛!
一开始,你就要先将电脑的防火墙关了。。。。
1、用jlink烧写u-boot到nor flash中,注意,TQ出厂自带的u-boot 经测试无法使用tftp下载功能,在我的资源里有测试成功的u-boot,也就是我昨天使用的。
2、准备好tftp server (这里使用的也不是TQ自带的,我的资源里也可以下载到),将压缩包解压后,直接打开就可以使用了。打开之后如下图所示。。。
在这里,不需要做任何的设置,只需将它打开,然后最小化,继续下一步的工作。
3、将你要烧写的程序,放到tftp server所在的目录下,如图:
上图中的ucos.bin zImage.bin uboot.bin 等文件,就是可以烧写到开发板的文件,我把他们都放到了tftp server所在的目录下。到时只要指定要下载的文件名,tftp server就会将对应的文件下载进去了。。。。
4、现在,把你的开发板用串口线连接到电脑(我使用的是USB转串口,都行的),打开secureCRT(也可以使用超级终端),打开后如图所示:
这就是我使用的u-boot的命令行界面。
5、设置IP :在串口终端输入命令 print ,可以看到一些静态变量的信息,如图:
这两个IP是需要修改的,首先,你要知道你电脑的IP(我的电脑设置的是静态IP),然后将开发板的IP设置得跟电脑IP在同一网段
输入命令: set ipaddr 192.168.1.6
set serverip 192.168.1.10
save
依次输入上面的三条命令后,再print ,如图:
ipaddr 就是开发板的IP ,serverip 就是电脑的IP ,这里我的电脑IP是192.168.1.10 所以开发板的就设置为 192.168.1.6
6、IP设置好了之后,就可以开始烧写程序了
用网线将你的开发板和电脑连接起来,直接连接,这时会看到开发板的网口指示灯是亮着的。表示连接成功,没亮的话可以重启一下开发板。
注意,每次往nand flash中烧写程序前,都要先擦除!
串口终端输入命令: nand erase
显示擦除成功后,为确保环境变量没有改变,可以再print查看一下,这里就不上图了。
现在我要往开发板的nand flash 烧写ucos.bin文件
串口终端输入命令 : tftp 0x30000000 ucos.bin 如图:(后面有关于命令的详细解析)
上传成功之后,你会发现tftp server里面有提示发送成功,如图:
下面就可以烧写到nand flash里面了
输入命令: nand write 0x30000000 0 0x300000 如图:
烧写成功,现在将开发板调到nand flash启动,就可以看到ucos工作了,串口终端的信息如图:
OK,以上是整个烧写的过程,现在来讲下具体命令的含义:
以上输入的命令都是u-boot的命令,可以通过输入help查看到!
nand erase --- 就是要擦除整块nand flash
tftp 0x30000000 ucos.bin ------就是将tftp server 所在目录下的ucos.bin文件,上传到开发板的sdram ,因为开发板的sdram地址是从0x30000000开始,故输入 0x30000000 (当然,你也可以烧到sdram的其他地址去)
nand write 0x30000000 0 0x100000 ------- 0x30000000就是刚才烧程序到sdram的地址,0是指 程序要烧写到nand flash的0地址处,0x100000 是指烧写的程序的大小(只要设置的比你要烧写的程序大就可以)
其实总的来说就是:将sdram 0x30000000地址开始的 0x1000000 大小的空间内容,写到nand flash里面
好了,全部的过程就是这样,如果有错误的地方,还望高手指点!