针对ARM Cortex M3平台的代码移植

分享到:

ARM CortexTM-M3是一款高性能、低成本、低功耗的32位RISC处理器。它仅执行16位、32位混合的Thumb-2指令,不支持ARM指令集。Cortex-M3处理器集成了一个 ARM v7-M架构的高效哈佛3级流水线ARM内核,支持硬件除法器和快速ISR(中断服务程序)响应。除CPU内核外,Cortex-M3处理器还包括许多其他组件,嵌套向量中断控制器(NVIC)、可选的存储器保护单元(MPU)、计时器、调试访问端口(DAP)以及可选的嵌入式跟踪宏单元(ETM)。同时,Cortex-M3具有固定的存储器映射分配。
嵌套向量中断控制器(NVIC
NVIC 支持多达240个外部中断(具体中断数目可由IC vendor决定),256个不同的优先级别,这些优先级别可动态地重新排列优先顺序。它支持电平和脉冲中断源。处理状态会在中断进入时由硬件自动保存,并在中断退出时恢复。同时,NVIC对于末尾连锁(tail-chaining)中断有独特的处理方式,将中断响应时间减到最小。在Cortex-M3中使用NVIC意味着Cortex-M3的向量表与之前的ARM内核有着显著的区别。与大多数其他ARM内核不同,Cortex-M3向量表中包含异常处理程序和ISR的地址,而不是指令。复位处理程序的初始堆栈指针和地址必须分别位于0x0和0x4。这些值在随后的复位中被加载到适当的CPU寄存器中。

查看PDF原文