4927|9

55

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

为什么2407仿真时频繁进入NMI中断? [复制链接]

仿真时不停地进入NMI中断,我设了跳到nothing函数,不作任何事情跳出中断。但出来后又掉入了NMI中断,但系统好像又在正常工作,请问这是这么回事?

最新回复

air23 ,你的问题,是不断地复位 ? 还是 NMI ?  详情 回复 发表于 2008-5-29 03:37
 
点赞 关注

回复
举报

65

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
一种可能是:访问了无效(实际不存在)的地址.
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

那么怎样才能查出是什么地方访问了无效的地址呢?

我用的是C语言编程,如何才能确知问题出在哪儿呢?
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

4
 
在NMI 中断服务开头设断点,停下来查看 SCSR1  的0 位:  ILLADR, 若为 1,则可确认是无效地址错,再看硬件堆栈顶,上面就是出错时的程序地址.
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

5
 

请问您具体该如何实施?

我试着跟踪了一下,
发现程序跳至abort...处

我的cmd配置是:
B1        : origin = 0300h , length =   100h         /* DARAM B1 块  */
还有:
  .stack   : { } > B1     PAGE 1        /* 堆栈40个单元 */

是该看0x300还是0x3ff处?
谢谢
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

6
 
要看你的中断服务程序是如何处理,保存现场时是如何存放被中断的主程序地址, 堆栈是由 300 向 3 FF 增长,返址应该在 300  附近.
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

7
 
我是用C语言写的整个程序,在VECTORS.ASM中指定当NMI中断来时,直接跳至nothing函数。问题是NMI中断是怎么产生的呢?这个问题困扰了我好久,但似乎又不影响系统实现的功能,这到底是怎么回事?
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

8
 
你已经判明确实是NMI 中断? 是否还有可能是其他的中断呢?因为 _nothing 是共用的,一出现不明中断,一般都转 _nothing. 如果确实是NMI, 多半是无效地址.不过,用 C 语言编程,一般不会出这种错. 只有用汇编,写存取指令不小心,才有无效地址.
    至于对运行是否有影响,就难说了,也许影响现在还没有发现.

[ 本贴由 mlwang_km 于 2007-5-30 09:22 AM 最后编辑 ]
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

9
 
我也遇到了同样的问题,关注!
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

10
 
air23 ,你的问题,是不断地复位 ? 还是 NMI ?
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表