|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
问题:将程序通过JTAG下载到ARM9的内存里,然后让程序运行起来。现在遇到一个问题,就是我上电以后如果先打开AXD,再关掉AXD,再运行我的程序,代码下载和运行都正常,但是如果我上电后直接运行我的程序,代码就运行不正常,跑的就是FLASH里的程序里,感觉象是芯片重新上电启动了一下,但是监视系统,没有给他硬件RESET信号答:1.这情况可能是是ADX调试器设置的问题,可能设置成下载到RAM执行,而不是在调试前烧写flash问题进一步描述:,我编的程序是不需要AXD的,也就是自己一个应用程序将一段代码下载到ARM的内部RAM里,然后让他运行起来。但是程序直接运行程序就是跑不起来。除非,我先打开AXD,什么都不干,然后把AXD关掉,再运行我的程序,我的程序就能正常工作拉。不知道AXD做了什么,这个工作我没有做,造成ARM从DEBUG模式退出到正常模式下“重新REST“了一下答:没看明白是怎么回事。你把程序下载到ARM内部的RAM里?上电后直接跑程序跑不起来?RAM里的东西掉电后就没了呀,上电直接跑什么呢?上电后RAM没东西,也没有连AXD,当然是跑FLASH里的程序了,为啥不把程序下载到Flash里?问题进一步描述:流程是这样的: 上电 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。答:感觉上像启动模式问题。硬件设计是按照flash启动设计的吧。当连接有JTAG的时候,ARM进入调试模式,退出JTAG调试模式的时候就继续从flash启动了。打开AXD再关闭AXD应该是配置了ARM芯片的启动模式的某些寄存器吧,没掉电的情况下寄存器有效,就按照你设置好的方式运行了。楼主可以查查ARM芯片的资料看看有没有相关寄存器。 |
|