[ZLG-ARM] 做外部中断实验1时遇到的问题,请教周公!

[复制链接]
3163|3
 楼主| roophoon 发表于 2007-3-4 15:17 | 显示全部楼层 |阅读模式
我做外部中断实验1,也就是通过P0.14控制蜂鸣器的实验。在AXD中调试偶尔出现以下的错误:<br /><br />A&nbsp;memory&nbsp;access&nbsp;failed.Some&nbsp;of&nbsp;the&nbsp;data&nbsp;displayed&nbsp;may&nbsp;be&nbsp;invalid.<br /><br />同时在Debug&nbsp;log窗口中提示:<br /><br />RDI&nbsp;Warning&nbsp;00254:&nbsp;Unimplemented&nbsp;RDI&nbsp;message<br />A&nbsp;memory&nbsp;access&nbsp;failed.&nbsp;Some&nbsp;of&nbsp;the&nbsp;data&nbsp;displayed&nbsp;may&nbsp;be&nbsp;invalid.<br />&nbsp;&nbsp;&nbsp;&nbsp;Operation:&nbsp;Read&nbsp;&nbsp;Address:&nbsp;0x40000000&nbsp;&nbsp;BufferSize:&nbsp;192&nbsp;bytes<br />&nbsp;&nbsp;&nbsp;&nbsp;Access&nbsp;Size:&nbsp;Default&nbsp;&nbsp;Not&nbsp;more&nbsp;than&nbsp;0&nbsp;bytes&nbsp;were&nbsp;transferred.<br />DBT&nbsp;Warning&nbsp;00125:&nbsp;Debugger&nbsp;internal&nbsp;error<br />RDI&nbsp;Warning&nbsp;00254:&nbsp;Unimplemented&nbsp;RDI&nbsp;message<br />A&nbsp;memory&nbsp;access&nbsp;failed.&nbsp;Some&nbsp;of&nbsp;the&nbsp;data&nbsp;displayed&nbsp;may&nbsp;be&nbsp;invalid.<br />&nbsp;&nbsp;&nbsp;&nbsp;Operation:&nbsp;Read&nbsp;&nbsp;Address:&nbsp;0x40000000&nbsp;&nbsp;BufferSize:&nbsp;192&nbsp;bytes<br />&nbsp;&nbsp;&nbsp;&nbsp;Access&nbsp;Size:&nbsp;Default&nbsp;&nbsp;Not&nbsp;more&nbsp;than&nbsp;0&nbsp;bytes&nbsp;were&nbsp;transferred.<br /><br />记得周公的书上讲过,如果在片内RAM中调试程序并使用了中断,那么必须将存储器映射控制设置为内部RAM模式,但没有讲原因,所有先请您解释一下。<br /><br />我确实是在RAM中调试的,但我想当我选择了DebugInExtRAM调试模式后,模板通过如下代码就自动映射到内部RAM模式去了。<br /><br />&nbsp;void&nbsp;TargetResetInit(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#ifdef&nbsp;__DEBUG&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MEMMAP&nbsp;=&nbsp;0x3;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//remap<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#endif<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#ifdef&nbsp;__OUT_CHIP&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MEMMAP&nbsp;=&nbsp;0x3;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//remap<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#endif<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#ifdef&nbsp;__IN_CHIP&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MEMMAP&nbsp;=&nbsp;0x1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//remap<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#endif<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;......<br />}<br />请问我这样的理解是否正确?另外就是出现的错误是什么原因引起的,如何解决?
zlgARM 发表于 2007-3-5 09:33 | 显示全部楼层

RE

建议您翻阅一下我们的教材,并且用百度搜索一下“存储器映射”,搞清楚这个概念。<br />另外就是查阅一下我们提供的实验教程,搞清楚不同模板的区别和作用。
 楼主| roophoon 发表于 2007-3-5 14:14 | 显示全部楼层

我当然知道什么是“存储器映射”了

不就是内部Ram把物理地址的0x40000000映射为0x00000000嘛,我的问题就是为什么我在内部Ram中调试为什么会偶尔出现如上的错误,错误来的很随机,不是没次都能遇到。
laserpic 发表于 2007-3-5 15:25 | 显示全部楼层

是不是使用中断要重新映射

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

10

帖子

1

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