Concept
Cotex-M Core & Cortex-M MCU
内核只是 CPU 的架构,而 MCU 是具体的封装实现。CM3 -> Cortex-M3。
内存映射

-
0x0000 0000~0x1FFF FFFF是代码段。具体拆分如下图:

0x0800 0000是内部FLASH起始地址,这是代码烧写的地方。System Memory是bootloader(ROM)。bootloader可以通过其他外设(USART,USB)上传代码。Option bytes中是配置MCU一些标志位。 -
0x2000 0000是内部SRAM起始地址。内部SRAM会由于芯片厂家而大小不同。所以其末地址也会不一样。 -
0x4000 0000是外设寄存器起始地址。由于部分外设端口只占用了一个寄存器中的一到两位,所以在多进程时无法用atomic operation同时操作。ARM采用bit-banding技术。就是将同一地址下的不同寄存器位分别映射成单个地址,方便多进程操作。

Interrupt & Exception
处理函数:Exception Handler --> Exception ;Interrupt Service Routine (ISR) --> Interrupt。
优先级管理是在 NVIC 中。
SysTimer
Cortex-M 中提供了 SysTick 作为系统时钟。可以用来:
- 为 RTOS 提供周期性的中断,作为调度用。
- 提供准确的定时功能。
CMSIS
Cortex Microcontroller Software Interface Standard (CMSIS) 是 Cortex-M 系列的标准软件接口。
但是由于各家硬件平台不一样,所以迁移仍然十分困难。
参考书目:
- Mastering STM32 by Carmine Noviello.
Cortex-M微控制器与嵌入式系统基础知识解析

本文介绍了Cortex-M核心及其在MCU中的应用,详细阐述了内存映射,包括内部FLASH、SRAM和外设寄存器的地址范围。此外,还讨论了中断和异常处理,重点提及了SysTick系统时钟在RTOS中的作用。最后,提到了CMSIS作为Cortex-M系列的标准软件接口,但指出不同硬件平台间的迁移挑战。参考书籍为《Mastering STM32》。
7672

被折叠的 条评论
为什么被折叠?



