MCU启动过程

启动文件

启动文件到底什么作用,其实启动文件主要是进行堆栈之类的初始化, 中断向量表以及中断函数定义。启动文件要引导进入main 函数。
开发STM32F103用的启动文件是startup_stm32f10x_hd.s
S32K146使用的启动文件是startup_S32K146.S

芯片架构

STM32F103才用Cortex-M3,S32K344采用Cortex-M7,但本质都是Armv7_M架构。

复位中断

Reset_Handler 中断函数是唯一实现了的中断处理函数,其他的中断函数基本都是死循环。 Reset_handler 在我们系统启动的时候会调用,下面让我们看看 Reset_handler 这段汇编代码

STM32F103复位中断处理

; Reset handler
	Reset_Handler PROC
	EXPORT Reset_Handler [WEAK]	;
	IMPORT __main
	IMPORT SystemInit
	LDR R0, =SystemInit	;从存储器中加载字到一个寄存器中
	BLX R0	;转移到由寄存器R0给出的地址,根据R0的 LSB(最低有效位)切换处理器状态,并且把转移前的下条指令地址保存到 LR(连接寄存器)
	LDR R0, =__main
	BX R0		;转移到由寄存器R0给出的地址
	ENDP

你可能感兴趣的:(单片机,嵌入式硬件)