logo
 
首页-> 应用方案
8位单片机应用方案
16位单片机应用方案
SPMC65硬件中断和软件中断的区别
文章来源:凌阳单片机推广中心  发布时间:2006-3-1 17:12:57

  硬件中断是利用ICE(仿真芯片)内部缓存器计录此中断信息,所以数量有限,最多只能设置两个。
  软体中断是利用更改中断位置的程序代码来产生中断,所以数量无限制,但中断位置必须在指令的地方。

  两种断点的区别:
  (1)硬件断点可设置于任何位置,可以搭配设定read/write , 存储器数据的条件。在FortisIDE中的设置如下:

  按工具栏上的图标,打开BreakPoint窗口,如下图

  有两个窗口:Software Break Point和Hardware Break Point两个选项卡,在Hardware Break Point选项卡,可以看到有一些设置选项,
  Trigger on data的作用是来设置一个断点,这个断点的条件是当向某个地址写入某个值,或读出的值等于某个值时,则发生中断。
  Address:地址,这个地址可以是RAM的某个单元或IO控制寄存器的某个单元。
  Data:当从Address读出(或/和写入)的值与data的值比较mask单元规定的位,如果相等则发生中断,比如上图,则比较从82单元读出的值的第0位和数值55的第0位,如果等则发生中断。
  Mask:规定比较Address和Data的哪几位。

  (2)软体中断位置必须在指令的地方。无法设置以上数据条件。如下图

  如果Address地址不是在指令行上,则出错。

  断点对程序的影响:

  (1)断点对Timer的影响:当程序停在断点时,timer 也同时停下不会计数, 故不会因此产生overflowINT.
  (2)断点对看门狗的影响:当程序停在断点时,watchdog 也同时停下不会计数, 故不会因此产生 WDI或WDR。
  (3)断点对外部中断的影响:当程序停在断点时,此时如果有外部中断(external INT) 产生, 这中断标志会被设置起来, 当仿真器继续执行时(free run而不是单步), 程序会进入中断(IRQ).
注意: Step into 会强制使所有的中断不发生(IRQ & NMI), 故如要测试中断请使用free run。在这里对Step into、step over、step out、free run做一些说明。如下程序:

  lda #5
  jsr F_Func1
  nop
  nop

  (1)如果用Step into,则会进入F_Func1程序,并且不会响应所有中断。
  (2)如果用Step over,则不会进入F_Func1程序,程序指针在lda #5、nop上时,如果有中断来,不会响应;如果执行F_Func1程序,因为F_Func1中的程序是free run运行,如果有中断,则会响应。

                            
 相关文章                                                      [top]
 ·SPMC65P2404A做红外接收 [2006-02-08]
版权所有:北京凌阳爱普科技有限公司 京ICP备05061966号 未经许可网站内容严禁复制、转载,任何人不得擅自使用
友情链接:凌阳爱普 嵌入式培训 安卓培训 凌阳大学计划 北京嵌入式培训 深圳嵌入式培训 成都嵌入式培训