ARM体系结构支持以下操作模式: <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
NVIC即是Nested Vectored Interrupt Controller,即是中断嵌套向量控制器。
它的主要功能:
有利于低延迟异常处理和中断处理
控制电源管理
实行系统控制寄存器。
该nvic支持多达240动态嵌套中断每个多达256个级别的优先级。该nvic和处理器核心的界面是紧密耦合,从而使低延迟的中断处理和有效地处理后来的中断。该nvic保持堆叠(嵌套)中断。
NVIC的存储区地址分配图:
当指令产生硬件异常或中断时,ARM CPU 提供一系列的向量地址。例如:CPU 重启指令执行重启向量地址(包括经典的CPU 启动代码)的内容。所有向量地址显示在下表中,当发生多重中断时,系统会根据优先级来判别。中断或异常会改变处理器工作模式并改变CPU寄存器内容。
Keil中断函数并不改变CPU的工作状态。因此中断在CPU中断模式下执行,可拥有自已的堆栈并避免中断嵌套。通过改变CPU的工作模式可以允许中断嵌套,但我们强烈推荐保持中断函数相对简短,并保持RTX内核之特点。
中断优先级:
向量地址 | 优先级 | 描述 |
0x00000000 | 1 (最高) | CPU 复位到系统模式 |
0x00000004 | 6 (最低) | 未定义指令处理所有非法指令并切换到未定义模式。 |
0x00000008 | 6 (最低) | SWI指令产生软件中断并切换到系统模式。 |
0x0000000C | 5 | 预取异常 指示非法指令预取并切换到异常模式。 |
0x00000010 | 2 | 数据异常 指示内存读/写错误并切换到 异常模式。 |
0x00000014 | --- | 保留 |
0x00000018 | 4 | 中断 调用标准中断开关切换到 中断模式 (irq)。 |
0x0000001C | 3 | 快速中断 调用快速中断开关切换到 快速中断模式(fiq)。 |
用户377235 2013-5-6 14:49
daiqiumiao_806246054 2008-8-16 00:00
用户158447 2008-8-2 23:01
用户160109 2008-8-2 18:30
用户1053025 2007-6-15 09:55
呵呵,看来是个真球迷啊。我自从来了北京,没有人请我看现场,就再也不看甲A了,包括后来的中超。