------------真是尴尬,本来学stm32是为了备战蓝桥杯的,而且也把某几个库函数看了个大概,但是老师坚决不同意我直接看库函数,就给了一本2009年出版的《ARM Cortex-M3 权威指南》,对于我这个完完全全的零起步而言,也不知道怎么做是最好,我还是听从老师的先把这本书快速看完吧。
看书的简单总结:
Cortex-M3所有的中断机制都有NVIC来实现,另外Cortex-M3还有个牛X的“不可屏蔽中断NMI”
NVIC(嵌套向量中断控制器)、其功能包括:
1.可嵌套中断支持: 就是说啊如果有更高优先级的中断服务程序到来,立即抢占(好霸道)
2.向量中断支持:里面定位了一张中断向量表,这样大大缩短了中断延迟
3.动态优先级调整:运行的期间把优先级给改了,并且还没有重入的危险
4.中断可屏蔽:可屏蔽优先级低于某个阈值的 中断/异常
内部总线有:
1.指令存储区总线(两条)
2.系统总线
3.私有外设总线
MPU (存储器保护单元)
它可以使嵌入式系统更加健壮、更加可靠
更换了Thumb2指令集
采用Thumb2代码密度更高,程序容量就可减少
以前总是在ARM指令集状态下处理所有的中断和异常
现在中断都会在Thumb态下处理、好处是:
1.消灭了状态切换的的额外开销,节省了执行时间和指令空间
2.不再需要把源代码文件分成ARM编译和Thumb编译,软件开发的管理大大减负
3.无需反复的求证和测试:究竟该在何时何地切换到何种状态下程序才最有效、开发软件变得容易
另外Cortex-M3在节能模式上提供了睡眠模式和深度睡眠模式