【下载】Cortex-M3 的异常处理


Cortex-M3的一些特性(一)
Cortex-M3的一些特性(一)
概览
在CM3 上编程,既可以使用C 也可以使用汇编。可能还有其它语言的编译器,但是大多数人还是会在C 与汇编的世界里游弋。C 与汇编都有尺短寸长,不能互相取代。使用C 能开发大型程序,而汇编则用于执行特种任务。
作者:dogsun88
一、进入异常之前处理器可能的状态有:
1、 handler
2、 线程,MSP
3、 线程,PSP
二、产生异常时:
关于Cortex-M3的中断优先级的描述
1、和之前的ARM7不同,Cortex-M3使用NVIC(嵌套向量中断管理器)来管理系统的中断。
2、每一个中断源的优先级由3个位来决定,这3个位就是中断优先级寄存器器里(PRIx)的INTn,这里的n 一般是A、B、C、D。
一、Cortex-M3环境介绍
Cortex-M3程序开发使用Keiluvision4软件,该软件是由KEIL(anARMcompany)公司开发的一个IDE开发环境,包括工程管理,链接设置等等。 Keiluvision4开发环境界面优美、功能强大、芯片种类多、仿真能力强,是众多工程师首选开发环境之一。
在项目开发的过程中,发现程序总是死在判断DMA一次传输是否完成这个标志位上。进一步回退分析,发现是在I2C读的过程中,有使用到DMA去取外部I2C设备的data。
但是data并没有读完,Data为32bits,DMA在读到18bits时,就出现读不到data bit了。导致I2C硬件模块不能进一步动作,SCK一直被拉低,没有clock输出,SDA也是如此。
大部分采用Cortex-M3/M4 MCU的目标应用是便携式的,并且供电电源来自电池或能源收集系统,因此我们所探讨的大部分概念涉及如何减少系统整体能耗的技术。然而,在许多情况下,这些节能技术也是处理器应用设计的有力工具,可提供:
●更符合成本效益的解决方案
●更大的升级和采用新特性的设计冗余
●有助于产品在激烈竞争市场上脱颖而出的性能和特性
作者:sunheshan
1、 异常
M3支持15个系统异常,240个外部异常IRQ,其中NMI,复位,hardfault三个异常的优先级固定不可更改且是负数,其余的都可编程。
M3的异常分为抢占优先级和子优先级。
本文主要从M3和M4的MPU、DSP能力、debug调试和电源管理4个方面说明两者的区别。
1、内存保护单元MPU
Cortex-M3是一个32位处理器内核。内部的数据路径是32位的,寄存器是32位的,存储器接口也是32位的。CM3采用了哈佛结构,拥有独立的指令总线和数据总线,可以让取指与数据访问并行不悖。这样一来数据访问不再占用指令总线,从而提升了性能。为实现这个特性,CM3内部含有好几条总线接口,每条都为自己的应用场合优化过,并且它们可以并行工作。