这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » arm9退出JTAG模式

共5条 1/1 1 跳转至

arm9退出JTAG模式

菜鸟
2012-06-02 13:31:02     打赏
我们做一个东西,将程序通过JTAG下载到ARM9的内存里,然后让程序运行起来。
现在遇到一个问题,就是我上电以后如果先打开AXD,再关掉AXD,再运行我的程序,代码下载和运行都正常,但是如果我上电后直接运行我的程序,代码就运行不正常,跑的就是FLASH里的程序里,感觉象是芯片重新上电启动了一下,但是监视系统,没有给他硬件RESET信号啊,请问那位大侠遇到过这个情况。多谢拉!



关键词: 退出     模式    

菜鸟
2012-06-13 13:25:55     打赏
2楼
大概我前面没有说明白,我编的程序是不需要AXD的,也就是自己一个应用程序将一段代码下载到ARM的内部RAM里,然后让他运行起来。但是程序直接运行程序就是跑不起来。
除非,我先打开AXD,什么都不干,然后把AXD关掉,再运行我的程序,我的程序就能正常工作拉。不知道AXD做了什么,这个工作我没有做,造成ARM从DEBUG模式退出到正常模式下“重新REST“了一下

菜鸟
2012-06-14 10:27:00     打赏
3楼

流程是这样的:
   上电    PC程序 通过 JTAG 首先让 ARM 进入DEBUG模式,然后把FIRMWARE下载到 ARM的内部RAM中,然后指定正确的PC值,再让 ARM   退出DEBUG模式,如果操作正常的话,FIRMWARE应该能正常跑起来。但是我下载的FIMWARE没有正常跑起来,而是跑的ARM外接的FLASH的程序,也就是ARM在退出DEBUG模式的时候被RESET拉,ARM又重新BOOT了一次,我下载的东西被冲掉拉。
   但是 ,我如果按照下面这样操作,我下载的FIRMWARE就能正确运行
  上电,打开AXD,然后关闭AXD,PC程序通过 JTAG 首先让 ARM 进入DEBUG模式,然后把FIRMWARE下载到 ARM的内部RAM中,然后指定正确的PC值,再让 ARM   退出DEBUG模式,我下载的FIMWARE就能正确运行起来。
   这个问题卡了一个月拉,不知道少做了什么工作。ARM是 ARM926EJ-S。
  不知道那位大侠搞做类似的东西没有。


菜鸟
2012-06-14 13:52:13     打赏
4楼
ARM这个启动是根据外接IO的上下拉,也就是他上电运行内部的固化程序,这个固化程序根据IO的设置决定从哪个外设读程序,AXD应该改不了这些,从资料上看ARM926 进入DEBUG应该有2种模式,一种是halt 一种是 monitor,我们进入的是halt模式,感觉AXD好象进入的是monitor模式,但不确定。而且这个模式怎么进入 找不到很详细的文档,郁闷啊

菜鸟
2012-06-14 14:24:06     打赏
5楼
这个ARM芯片的启动模式是这样的,启动以后,应该是运行内部固化的代码,这个代码去读硬件的IO脚,然后根据IO脚的上下拉决定从那里去读外部设的程序,AXD不太可能去修改这个东西,而且每个ARM芯片启动的方式各家都不一样,AXD是个通用的东西,他不太可能按照每家的情况去做相应的调整。

共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]