MCU的内部架构与程序的运行原理讲解(3) 认识CPU(二)总线接口、寄存器组、NVIC_哔哩哔哩_bilibili
学习视频网址如上:
MCU的完整启动过程:
1、MCU上电后内部模拟电路部分率先启动,包括时钟起振,LDO电源输出。就绪后给数字逻辑的系统控制器一个启动信号,相当于数字逻辑系统的使能信号
2、系统控制器会执行一些必要的硬件方面的操作,系统控制器内部的系统状态也会随之改变就绪后,就绪后系统的状态机变为工作状态,系统控制器会对复位树进行操作。取消CPU等的复位状态将其置位,同时给CPU时钟信号使能使得CPU开始运行。
3、CPU运行,前四个读取的指令地址是固定的,CPU通过指令总线接口从FLASH存储器控制器的指令接口读取指令
(1)第一个指令:寻址FLASH区域首地址 0x08000000,寻址后读取到了栈顶地址0x20005000
(2)第二个指令:寻址上述地址加4,即0x08000004,寻址后读取到了Reset_Handler复位异常处理函数的入口地址0x08000328,
(3)第三个指令:寻址栈顶地址加4,即0x20005000,无需关心返回的数据
(4)第四个指令:寻址Reset_Handler函数的首地址0x08000328,寻址后读取到Reset_Handler复位异常处理函数的第一条指令:0x490d480c
CPU收到启动信号,执行Reset_Handler复位异常处理函数,按照地址开始顺序执行内部初始化指令,最后跳转至main函数开始执行用户的功能代码。