位置:首页 > IC型号导航 > 首字符A型号页 > 首字符A的型号第143页 > AT32UC3A3256-ALUT > AT32UC3A3256-ALUT PDF资料 > AT32UC3A3256-ALUT PDF资料4第28页

AT32UC3A3
代码段必须进行适当的设置。相同的机制被用于服务的所有昼夜温差
同的类型的事件,包括外部的中断请求,产生一个均匀的事件处理
方案。
中断控制器执行的外部中断的优先级处理,并提供
自动向量偏移到CPU。
5.5.1
系统堆栈问题
事件处理中AVR32UC使用由系统堆栈指针指向系统堆栈,
SP_SYS ,用于压入和弹出R8- R12 , LR ,状态寄存器和返回地址。由于事件
代码可以是时序关键, SP_SYS应该指向的内存地址中的IRAM部分,
由于访问到这个内存段的时间是快速和确定性。
该用户还必须确保系统堆栈是足够大,使得任何事件能够
推动所需的寄存器堆栈。如果系统堆栈已满,并且一个事件发生时,系统
将进入一个不确定的状态。
5.5.2
异常和中断请求
如果不是事件等
SCALL
或接收到核心调试请求,执行以下操作
原子方式执行:
1.如果被屏蔽的未决事件将不被接受。该I3M , I2M , I1M , I0M , EM ,和
通用汽车位在状态寄存器用于屏蔽不同的事件。不是所有的事件可以是
蒙面。有几个关键事件( NMI ,不可恢复的异常, TLB多重命中,并
总线错误)不能被掩蔽。当一个事件被接受,硬件自动
设置对应于具有相同或较低优先级的所有来源的屏蔽位。这抑制
接受相同或较低优先级的其他事件,除了关键事件
上面列出。软件可以选择保存后清除其中的某些位或全部
如果其他优先方案所需的必要的状态。这是事件源的respons-
的能力,以确保他们的活动保持等待状态,直到接受了CPU 。
2.当一个请求被接受,状态寄存器和当前的程序计数器
上下文存储到系统堆栈。如果该事件是一个INT0, INT1,INT2 , INT3或者,稳压
存器R8 - R12和LR也被自动存储到堆栈。存储状态
寄存器保证了芯被返回到先前的执行模式下,当
当前事件处理完毕。当异常发生时,无论是EM和GM位
被置位,并且该应用程序可手动启用嵌套异常如果期望通过清
荷兰国际集团的相应位。每个异常处理专用处理地址,
该地址唯一标识异常源。
3,模式位设置以反映接受事件的优先级,以及正确的寄存器
之三文件存储区的选择。该事件处理程序的地址,如表5-4所示,是
装入程序计数器。
事件处理程序的执行,然后从所计算的有效地址继续。
该
RETE
指令信号的事件的结束。当遇到时,返回状态寄存器
和返回地址寄存器从系统堆栈被弹出并恢复到稳压状态
存器和程序计数器。如果
RETE
从INT0 , INT1 , INT2或INT 3指令的回报,
寄存器R8 - R12和LR也从弹出的系统堆栈。修复后的状态寄存器
包含的信息,允许芯恢复在先前执行模式操作。这
总结了事件处理。
5.5.3
超级用户调用
在AVR32指令集提供了一个超级用户模式调用指令。该
SCALL
指令
设计成使得特权的例程可以从任何上下文中调用。这有利于共享
28
32072A–AVR32–03/09