计算机老生常谈的发展历程

图灵机 [ 纸带模型 ]
冯诺依曼体系 [ 五大部件 存储 ]
哈佛架构 [ 独立存储 三级流水线 ]

Cortex-M3

采用三级流水线 [哈佛架构]
CPU | DMA | 存储 | 外设 | 时钟
STM32内核

MCU | STM32

集成CPU |存储器 | 外设

内存区 堆 | 栈

0x2000 0000 向上递增堆栈
指针 | 函数调用 | 局部变量
0x2FFF FFFF 向下递增建堆
静态变量 | malloc

寄存器组 | 特殊寄存器

MSP | PSP 特权与用户态
LR 地址跳转
PC 程序计数
XPSR 程序状态 | 中断屏蔽
CONTROL 状态切换

特权级 | 用户级

只有特权级可以提出中断切换到
Handler模式
主程序使用特权线程模式或用户线程模式

Cortex系列

-M 低功耗单片机
-A 高实时性军工
-R 高性能手机

STM32 压栈规则

压栈时先更新SP指针 然后存放数据
弹栈时先取出数据再更新SP

时钟源

STM32F103RBT6 72MHZ
经过锁相环 八分频等
APB1 36MHZ
APB2 72MHZ

时钟寄存器

激活对应总线时钟然后才能工作

嵌入式最重要的部分 中断

通过中断处理事件
NVIC中断向量表存放中断函数首地址

中断现场保护

切换用户 | 特权态
关键数据堆栈
中断结束恢复状态

中断优先级

抢占优先级大于响应优先级
NVIC除缺省项均可修改优先程度
根据优先级可分为五组
一个项目最好只设置一次分组避免混乱