ARM-Cortex_M3和ARM-Cortex_M4处理器使用32位架构,寄存器组中的内部寄存器、数据通路以及总线接口都是32位的,两者均基于ARMv7-M架构。
①三级流水线设计
②哈佛总线架构,具有统一的存储器空间:指令和地址总线使用相同的地址空间。
③32位寻址,支持4GB存储器空间。
④具有NVIC(嵌套向量中断控制器)的中断控制器。
⑤支持可选MPU(存储器保护单元)
⑥可选的浮点指令(单精度)
处理器、程序存储器(如FLASH)、SRAM、外设、内部总线、时钟生成逻辑(包括锁相环)、复位生成器及这些信号的分布网络、电压调节和电源控制器回路、其它模拟部件(ADC/DAC等)、I/O部分等。
处理器只占芯片中的一小块区域,以下为微控制器的多个模块。
常见的软件开发流程
轮询方式的简单处理应用
对于简单的任务,处理器可以等待数据准备好后进行处理,而后再等待。
2、中断驱动
外设在需要服务时可以将处理器唤醒。在中断驱动的应用中,不同外设的中断可以指定为不同的中断优先级。
简单的中断驱动应用
一般情况下,外设服务的数据处理分为两部分,一部分是需要快速处理,而一部分则可以执行得稍微慢一些。这时可以将中断驱动和轮询结合起来。
3、多任务系统
实时操作系统(RTOS)可以用于处理任务调度。RTOS可以将处理器时间分为多个时间片且将时间片分给所需的进程,以实现多个进程同时执行。需要一个定时器来记录RTOS的时间,且在每个时间片的最后,定时器会产生定时中断,它会触发任务调度器且确定是否要执行上下文切换。若需要执行,当前正在执行的任务就会被暂停,处理器转而执行另一个任务。
RTOS还具有信号量和消息传递的特性。
微控制器都有多个I/O接口和定时器、实时时钟(RTC)等外设。ARM-Cortex-M3 andM4 除了GPIO/SPI/UART/I2C等常见的接口外设,还有许多高级接口外设,如USB/CAN/以太网及ADC/DAC等模拟接口,需要度微控制器提供的用户手册才能知道用法。
对于这些微控制器,外设经过了存储器映射,也就是寄存器可以从系统存储器映射中访问。为了用C程序访问这些外设,可以使用指针。
一般来说,外设在使用前需要初始化,一般包括以下几个步骤:
需要设置各种外设模块中的外设寄存器。
微控制器接口:
USB转UART可以printf,使用串口工具。
CMSIS-core的组织架构:
CMSIS文件被集成在微控制器供应商提供的设备驱动库软件包里。一般CMSIS定义为三层:
参考资料:ARM-Cortex_M3与Cortex_M4权威指南