[ZLG-ARM] 求助:程序动不动就跳到DataAbortAddr

[复制链接]
2529|2
 楼主| skyhigh 发表于 2009-1-13 00:46 | 显示全部楼层 |阅读模式
我&nbsp;用的lpc2138,使用了部分片内flash作为数据区。启用了UART0&nbsp;UART1&nbsp;TIMER0&nbsp;EINT3中断,看门狗复位<br />现在发现,基本上隔一段时间,就会跳到以下程序段,然后就死机了,看门狗不起作用。<br />时间上没什么规律<br /><br />;interrupt&nbsp;vectors<br />;中断向量表<br />Reset<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;ResetAddr<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;UndefinedAddr<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;SWI_Addr<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;PrefetchAddr<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;DataAbortAddr<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DCD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0xb9205f80<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;[PC,&nbsp;#-0xff0]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;FIQ_Addr<br />整体使用资源<br />“Program&nbsp;Size:&nbsp;Code=34776&nbsp;RO-data=11796&nbsp;RW-data=1288&nbsp;ZI-data=5016&nbsp;”&nbsp;<br />请帮我分析一下,看会是什么原因呢,谢谢!<br />
computer00 发表于 2009-1-13 00:53 | 显示全部楼层

可能是指针越界了...

根据LR寄存器的值可以查到导致这个错误的地址,然后分析附近的代码,看是对哪个指针(或者数组)操作时引起的。
haibao 发表于 2009-1-14 18:46 | 显示全部楼层

用什么开发环境?

一种可能是你程序写的有问题,指针越界。<br />另外一种可能<br />Keil下我曾经遇到过类似的问题,后来发现是Keil下的模板没有解决对VICDefVectAddr进行处理,只要一开中断,过会自己就死机了。<br />中断初始化时加上&nbsp;&nbsp;&nbsp;&nbsp;VICDefVectAddr&nbsp;=&nbsp;(INT32U)IRQ_VICDef;<br />另外在IRQ_VICDef函数中加上一句VICVectAddr&nbsp;=&nbsp;0x00;就没有再出现类似问题。<br /><br />void&nbsp;&nbsp;&nbsp;IRQ_VICDef(void)&nbsp;__irq<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VICVectAddr&nbsp;=&nbsp;0x00;&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

29

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部