一、Cortex-M3处理器主要特点
- 内核是ARMv7-M体系结构
- 哈佛结构
- 内核支持低功耗模式
- 引入分组堆栈指针机制,把系统程序使用的堆栈和用户程序使用的堆栈分开。
- 支持非对齐数据访问
- 定义了统一的存储器映射
- 位绑定操作
- 高效的Thumb-2指令集
- 32位硬件除法和单周期乘法
- 三级流水线和转移预测
- 内置嵌套向量中断控制器
- 拥有先进的故障处理机制
- 支持串行调试
- 极高性价比
二、Cortex-M3的工作模式及状态
CM3中提供一种存储器访问的保护机制,使得普通的用户程序代码不能意外地或恶意地执行涉及要害的操作,因此处理器为程序赋予两种权限,分别为特权级和用户级。
1、访问级别:特权级和用户级,出于安全考虑,防止意外、恶意访问破坏重要数据。
2、工作模式:处理模式和线程模式,分别用于处理异常和普通程序。
线程模式:在复位时处理器进入线程模式;异常返回时处理器进入线程模式;在线程模式下,所有代码可由特权级和用户级访问;
处理模式:出现异常时处理器进入处理模式;在处理模式中,所有代码只能由特权级访问;
3、工作状态:Thumb状态和调试状态
Thumb状态:16位和32位“半字对齐”的Thumb和Thumb-2指令的执行状态。
调试状态:处理器停止并进行调试的状态。
三、ARM数据存储格式(数据类型、大端小端格式)
1、ARM数据类型
ARM处理器支持以下6种数据类型:
字节(Byte)数据: 8位有符号、无符号。
半字(Halfword)数据:16位有符号、无符号
字(Word)数据:32位有符号、无符号
(不要求半字对齐、字对齐。)
2、大端格式
在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。
数据0x12345678的存储情况如下: 78 | 56 | 34 | 12
3、小端格式
在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。
数据0x12345678的存储情况如下: 12 | 34 | 56 | 78
四、Cortex-M3的流水线
三级流水线:取指、译码、执行
五级流水线:取指、译码、运算、写存储器、写寄存器
五、异常和中断的概念
异常:在正常的程序执行过程中发生非正常情况(包括访问存储器(含取指)失败、遇到未定义指令、执行中断指令、数据溢出、调试程序、软复位等非正常情况)使CPU停止正在执行的程序,并转去执行相应的处理程序,这样的情况叫作异常。
中断:是指各种设备请求CPU处理特定的操作,包括传输信息、处理故障等。