首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

CMSIS(Cortex微控制器软件接口标准)详细介绍(2)

CMSIS(Cortex微控制器软件接口标准)详细介绍(2)

MISRA-C
CMSIS要求定义的API以及编码与MISRA-  C 2004规范兼容。MISRA-C是由Motor Industry Software Reliability  Association提出的,意在增加代码的安全性,该规范提出了一些标准。
如Rule 12. 不同名空间中的变量名不得相同。
Rule 13. 不得使用char, int, float, double, long等基本类型,应该用自己定义的类型显示表示类型的大小,如CHAR8, UCHAR8, INT16, INT32, FLOAT32, LONG64, ULONG64等。
Rule 37. 不得对有符号数施加位操作,例如 1 << 4 将被禁止,必须写 1UL << 4;

CMSIS中的中断定义
中断号的定义,在<device.h>中
typedef enum IRQn
{
/****** Cortex-M3 Processor Exceptions Numbers *****、
NonMaskableInt_IRQn = -14, /*!< 2 Non Maskable Interrupt */
MemoryManagement_IRQn = -12, /*!< 4 Cortex-M3 Memory Mgmt Interrupt */
BusFault_IRQn = -11, /*!< 5 Cortex-M3 Bus Fault Interrupt */
UsageFault_IRQn = -10, /*!< 6 Cortex-M3 Usage Fault Interrupt */
SVCall_IRQn = -5, /*!< 11 Cortex-M3 SV Call Interrupt */
DebugMonitor_IRQn = -4, /*!< 12 Cortex-M3 Debug Monitor Interrupt */
PendSV_IRQn = -2, /*!< 14 Cortex-M3 Pend SV Interrupt */
SysTick_IRQn = -1, /*!< 15 Cortex-M3 System Tick Interrupt */
/****** Device specific Interrupt Numbers ***************************************/
UART_IRQn = 0, /*!< Example Interrupt */
} IRQn_Type;
系统级的异常号已经确定,不能更改,且必须为负值,以和设备相关的中断区别。
中断处理函数的定义,一般在启动代码中声明,加入weak属性,因此可在其他文件中再一次实现。如下所示:
AREA    RESET, DATA, READONLY
                EXPORT  __Vectors__Vectors       DCD     __initial_sp              ; Top of Stack
                DCD     Reset_Handler             ; Reset Handler
                DCD     NMI_Handler               ; NMI Handler
                DCD     HardFault_Handler         ; Hard Fault Handler
                DCD     MemManage_Handler         ; MPU Fault Handler
                DCD     BusFault_Handler          ; Bus Fault Handler
                DCD     UsageFault_Handler        ; Usage Fault Handler
                DCD     0                         ; Reserved
                DCD     0                         ; Reserved
                DCD     0                         ; Reserved
                DCD     0              &nb
继承事业,薪火相传
返回列表