现在的位置: 首页 > 综合 > 正文

关于windows下使用tftp服务器烧写程序到TQ2440开发板的nand flash(解决蓝屏的方法!)

2013年08月12日 ⁄ 综合 ⁄ 共 1867字 ⁄ 字号 评论关闭

由于使用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里面       


好了,全部的过程就是这样,如果有错误的地方,还望高手指点!                                                              

抱歉!评论已关闭.