原文地址: http://wiki.100ask.org
在前面的视频里,我们涉及四个接口,两个开关。
四个接口:电源接口、USB串口、USB下载口、JTAG下载口;
两个开关:电源开关、启动选择开关;
分别对应下图中的1、8、6、7、1、11;
我们买开发板的目的就是把电脑上编写编译好的程序烧写到板子上验证学习。因此开发板上一定有个烧写口,例如JTAG烧写口。但电脑上是不会有这个JTAG口的,因此需要一个USB烧写器将两者连接,例如Jlink、OP/EOP。Jlink本来用的人很多,但随着版权意识的提高以及Jlink公司对盗版的打击,Jlink现在用得越来越少了。EesyOpenJtag是OpenJtag的便宜版本,他和我们的开发板是绝配,他可以直接烧写Nand Flash和Nor Flash,操作简单,价格便宜。
对于程序员来说,我们程序都是三分写,七分调,调试非常重要。对于我们电脑,我们可以在屏幕上显示,对于我们开发板,我们可能连显示屏都没有,并且屏幕的操作比较复杂,不太适合用于调试。那我们这里就需要一个比较简单的设备提供调试信息——串口。通过串口,可以把PC上的数据传到开发板,开发板也可返回数据。开发板的串口,不能直接与电脑的USB相连,中间需要一个串口转USB的芯片,这个芯片集成到了开发板上,因此可以直接使用USB线将电脑与开发板连接进行通信。
现在再说一下烧写,我们之前说可以通过Jtag进行烧写,它非常的可靠,当我们板子变成了砖头的时候,可以使用Jtag进行烧写,但他的速度很慢。当我们烧写很大程序的时候,会崩溃的。因此我们可以借助USB口进行烧写,前提是板子上已经运行有一个程序,这个程序用来支持USB下载
对开发板上电启动,出厂的时候默认烧写一个Linux系统。我们上电后可以看到Linux的企鹅图标,然后自动启动Qt。
再将开发板的串口与电脑相连,自动/手动安装好串口驱动后,使用MobaXterm软件的Serial功能,即可通过串口 输入Linux命令。
连接示意图如下:
烧写裸板程序,需要用到的软件是oflash.exe,使用到的硬件是op/eop(easy open Jtag),以及相应的驱动程序。 操作步骤如下:
eop常见问题通常有如下7个,我们可以根据oflash的提示信息,来大致判断是何种情况导致的问题。
unable to open ftdi devive:2
,
则可能是未连接op/eop到电脑和有其他程序在使用op/eop。Description: USB<=>JTAG&RS232 ANo CPU detectred, cupID = 0xffffffff
,
则可能是Jtag线未接。Description: USB<=>JTAG&RS232 ANo CPU detectred, cupID = 0x00000000
,
则可能是开发板未上电。ERROR: can't find the file : xx.bin.
,
则可能是当前路径下没用xx.bin,应该使用绝对路径或者复制到指定目录再切换到该目录。在前面,使用eop烧写一个200多k的uboot时,耗费了几分钟,这速度实在太慢了,在后续的开发过程中,我们的程序可能有许多错误,需要反复修改烧写,如果继续用eop将会浪费很多时间。那么有没有更快的烧写方式呢?有的,我们用uboot进行烧写。
在2440上面,有两种flash:Nand Flash和Nor Flash。我们可以首先把uboot烧到Nor Flash,然后Nor启动运行uboot,使用uboot的USB下载功能接收PC传来的文件,然后uboot将收到的文件烧写到Nand Flash,最后Nand启动,启动我们烧写的程序。
操作步骤如下:
开发板买来就是学习的,就是用来“破坏的”,不要担心上面的东西被破坏,因为我们有办法恢复出厂系统。 我们先对比PC看看出厂系统有哪些东西:
可以看到我们的东西都放在Flash上面,对于我们的JZ2440,有256M的Nand Flash和2M的Nor Flash,所以我们内核、根文件系统那么多的文件,应该是放在Nand Falsh。Nand Falsh内部数据分布如下:
其中bootloader既可以在Nand Flash也可以在Nor Flash,params的变量存储有uboot的参数信息。
恢复出厂系统的具体步骤如下: