返回信息流小弟刚上手arm+uC/OS-ii,现在有个2410的开发板,上面有个wince的系统。
目前还没有移植其他系统,是直接在SDRAM上跑uc和一些简单的任务。
但是ADS在编译和make之后,debug后,打开了AXD和JTAG,向板中下载程序
main中第一个创建的一个mainTask可以运行,串口也有反应,这个mainTask中再创建任务就出错了
错误提示:“Processor ARM79_0 raised an exception.Cause:Data abort”
求大神解决~
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #12026同步于 2012/4/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖
【求助】ADS调试ARM板出现Data Abort 错误(系统是uCOS)
ChandlerWang
2012/4/10镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
要善于利用百度google啊。。。
if you look at the ARM ARM (ARM Architecture Reference Manual, just google "arm arm"), Programmers Model -> Processor modes and Registers sections. When in abort mode you are priveledged so you can switch from abort to say supervisor and then make a copy of r13, then switch back to abort mode and dump the stack from the copy of r13. Your r14 also tells you where the abort occurred.
I wouldnt be surprised if this abort was from an alignment. Trying to read/write a word with an address with something other than zeros in the lower two bits or a halfword with the lsbit of the address set. Actually if you take the link register and a dump of the registers (r0-r12) since abort and user/supervisor use the same register space, you can look at the instruction that caused the abort and the address to see if it was indeed an alignment problem or something else. Note that the pc is one, two or three instructions ahead depending on the mode thumb or arm that had the abort, if you are not using thumb at all then this nothing to worry about.
【 在 ChandlerWang (Chandler) 的大作中提到: 】
: 小弟刚上手arm+uC/OS-ii,现在有个2410的开发板,上面有个wince的系统。
: 目前还没有移植其他系统,是直接在SDRAM上跑uc和一些简单的任务。
: 但是ADS在编译和make之后,debug后,打开了AXD和JTAG,向板中下载程序
: ...................
关键是不懂。。。好好研究研究。。。谢谢~~~
【 在 ArmStrong 的大作中提到: 】
: 要善于利用百度google啊。。。
: if you look at the ARM ARM (ARM Architecture Reference Manual, just google "arm arm"), Programmers Model -> Processor modes and Registers sections. When in abort mode you are priveledged so you can switch from abort to say supervisor and then make a copy of r13, then switch back to abort mode and dump the stack from the copy of r13. Your r14 also tells you where the abort occurred.
: I wouldnt be surprised if this abort was from an alignment. Trying to read/write a word with an address with something other than zeros in the lower two bits or a halfword with the lsbit of the address set. Actually if you take the link register and a dump of the registers (r0-r12) since abort and user/supervisor use the same register space, you can look at the instruction that caused the abort and the address to see if it was indeed an alignment problem or something else. Note that the pc is one, two or three instructions ahead depending on the mode thumb or arm that had the abort, if you are not using thumb at all then this nothing to worry about.
【 在 ChandlerWang 的大作中提到: 】
: 小弟刚上手arm+uC/OS-ii,现在有个2410的开发板,上面有个wince的系统。
: 目前还没有移植其他系统,是直接在SDRAM上跑uc和一些简单的任务。
: 但是ADS在编译和make之后,debug后,打开了AXD和JTAG,向板中下载程序
: ...................
楼主的这个问题解决了么?我也遇到了同样的问题
【 在 woaiwodi1221 的大作中提到: 】
: 楼主的问题解决了么?我也遇到了同样的问题。。。
刚开始的时候不懂这个,是因为uCOS只是初始化了,没有OSStart。。。囧