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

共14条 1/2 1 2 跳转至

arm9退出JTAG模式

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



关键词: 退出     模式    

高工
2012-06-11 20:13:17     打赏
2楼
这情况可能是是ADX调试器设置的问题,可能设置成下载到RAM执行,而不是在调试前烧写flash

菜鸟
2012-06-12 14:47:29     打赏
3楼
ADX调试器设置的问题

工程师
2012-06-13 10:02:07     打赏
4楼
没有搞明白

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

工程师
2012-06-14 09:38:30     打赏
6楼
没看明白是怎么回事。你把程序下载到ARM内部的RAM里?上电后直接跑程序跑不起来?RAM里的东西掉电后就没了呀,上电直接跑什么呢?上电后RAM没东西,也没有连AXD,当然是跑FLASH里的程序了,为啥不把程序下载到Flash里?

高工
2012-06-14 10:19:36     打赏
7楼
没看明白
如果是通过JTAG下载到内存中,掉电之后运行FLASH程序是非常合理的啊
因为RAM是掉电易失的,如果不掉电,程序在,掉电后就没了

高工
2012-06-14 10:20:27     打赏
8楼
还是,上电复位,本身就带硬复位啊

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

流程是这样的:
   上电    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 10:51:50     打赏
10楼

感觉上像启动模式问题。硬件设计是按照flash启动设计的吧。当连接有JTAG的时候,ARM进入调试模式,退出JTAG调试模式的时候就继续从flash启动了。打开AXD再关闭AXD应该是配置了ARM芯片的启动模式的某些寄存器吧,没掉电的情况下寄存器有效,就按照你设置好的方式运行了。楼主可以查查ARM芯片的资料看看有没有相关寄存器。 


共14条 1/2 1 2 跳转至

回复

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