对于ARM来说调试程序有两种方式,1.将程序下载到RAM里仿真.2.下载到FLASH里仿真.下面我们首先说一下在RAM里放着的编译器设置及调试代理软件的使用方法.
首先,安装ADS12(555,没钱啊有钱就搞ULINK了在MDK在仿真了),然后去网上随便down一个,LEDTEST的44B0(我用的是44b0的开发板)例程来.
然在从网上下载个,H-JTAG或是BANYAN,ARM7都行这些软件叫做调试代理软件,有他们我们就可以用廉价的WIGGLER或是JTAG(244的)简单仿真器,来实现一些调试的绝大部分功能了.
1.打开LEDTEST工程文件.然后在Target->linker项目选择 ARM linker。
Target->postlinker项目选择 ARM formELF
2.在linker->ARM linker->simple image选项中的 RO base 中填写 0xc008000 RW base 不填。
(注意:这项要根据你的开发板实际填写,我的44B0 SDRAM挂在了bank6上,而bank6的起始
地址是0x0c000000,所以我可以添0xc000000以后的地址,但不要太靠后了保证的的程序能
放的下,注意不要超出她的范围,44b0 bank6地址最大为0xe000000)
linker->ARM linker->option选项的 image entry point里面 填写镜像进入地址,这里也添
0xc008000.
linker->ARM linker->layout选项的place at beginning of image 中填写镜像加载前须处
理的文件(该文件一般最后都会有这条语句“bl Main”跳到主程序处),这里一般填写初始化文件,如INIT的,我的44bo为44binit.S则填写44binit.o文件后面的区域名添init因为该文件里一般不止一起区域我的就还有个ramdata的Area这里的Area是ARM伪指令,关于伪指令部分可查阅我的另一篇文章.
linker->ARM fromELG->output format 是文件输出格式,是烧写FLASH用的二进制文件或是HEX
因为我们是在RAM里仿真所有可不填.output file name 也是同样.
3.运行仿真代理软件,运行检测CPU,检测目标板,(【注意】一般要将并口设置成EEP模式,如果是笔记本的并口可能不支持该模式,则也可以选择ECP模式(我在我的IBMT43上是可以的),然后还要在设备管理器的并口设置里面,设置成允许使用分配该并口的任何中断,如果你设置禁止使用中断,调试代理是检测不到你的片子的)能检测出型号的就表示连接正确.然后运行AXD开始设置AXD,AXD设置比较简单,在configure interface->general->target connection选项中选ATTACH在configure target 里面选择驱动类型,前面运行的调试代理就是在这里选择的,一般如果用ARM7的调试代理就设置第一项,第二项是软件仿真,如果用其他代理则点ADD,选择调试代理的DLL文件,一般在安装后的文件目录里都能找到,完成后点configure 看看有没有跳出代理的窗口,好完成。
现在你就可以加载image文件来仿真程序了。
顺便说下,在RAM仿真时,我的机器是笔记本,有个并口,不过不支持EEP只支持ECP我选的ECP然后用banyan和h-jtag都好用,但是ARM我没连成功,估计可能是接口的问题。