分类:
2012-03-16 09:43:39
嵌入式系统开发时,调试在整个系统中所占地位是非常重要的,需要软件和硬件结合,既要借助于“正确”的软件来测试硬件,也要借助于“正确”的硬件来测试软件。
嵌入式调试与计算机软件开发的调试不同,在嵌入式系统中,采用的是宿主机和目标机之间进行的远程调试。
1、基于JTAG
JTAG(Joint Test Action Group,联合测试行动小组)是1985 年制定的检测PCB 测试的一个标准, 在1990 年被修改后成为IEEE 的一个标准, 即IEEE1149.1-1990。IEEE 1149.1 标准就是由JTAG 这个组织最初提出的,最终由IEEE 批准并且标准化的。所以,这个IEEE 1149.1 这个标准一般也俗称JTAG 调试标准。
JTAG调试是通过ARM芯片的JTAG边界扫描口进行调试。他与ARM的CPU核通讯。
通常所说的JTAG大致分两类,一类用于测试芯片的电气特性,检测芯片是否有问题;一类用于Debug;一般支持JTAG的CPU内都包含了这两个 模块。
l 与软件配合烧写flash
在理论上,通过JTAG可以访问CPU总线上的所有设备,所以应该可以写FLASH,但是FLASH写入方式和RAM大不相同,需要特殊的命令,而 且不同的FLASH擦除,编程命令不同,而且块的大小,数量也不同,很难提供这一项功能。所以一般调试软件像AXD等不提供写Flash功能,或者仅支持 少量几种Flash,比如我们使用AXD调试程序,则目标程序一般只能下载到ram里,其地址由ro base来指定。要把程序烧写到flash中。还需要想其他办法。
烧写flash的软件也有很多,像FlashPGM,H-flash等,这里还是推荐H-flash,和H-jtag配合使用
4.jlink
这是由segger公司开发一款仿真器,可以说是目前功能最强大的了。支持全系列的arm7和arm9。
支持rdi接口,支持所有的IDE,比如常用的ADS,IAR,KEIL,GDB,支持调试时下载到flash,有单独的flash编程软件,可以 编程外部flash器件。
采用usb接口,下载速度飞快。
目前市面上已经有盗版的jlink了,中国人的盗版能力还是很强的,但是牵扯到利益问题,具体方法还没有公开,等盗版奸商赚够了只够估计jlink 的命运就会想ulink一样了。现在只知道其内部是通过一颗AT91SAM7S芯片来实现相关功能的。