* 针对于 Cortex-M0 的启动方式.
一. 单片机执行主要任务之前主要需要:
(1). 初始化寄存器(R0~R15),取消屏蔽中断
(2). 初始化RAM,主要是从ROM复制必要的初始数据和向量表到到RAM
(3). 初始化时钟,主要是初始化PLL
二. 列举几种启动方式
(1). FRDMKL46(飞思卡尔官方)
a. 单片机上电或开始调试产生复位中断(中断向量号为1)
b. 到中断处理程序,先初始化CPU寄存器,取消屏蔽中断
c. 到start函数,主要是初始化RAM,初始化时钟,开始main函数
(2). TWRKL43(飞思卡尔官方)
a. 单片机上电或开始调试产生复位中断(中断向量号为1)
b. 到中断处理程序,先初始化CPU寄存器,取消屏蔽中断
c. 到start函数,主要是初始化RAM,开始main函数
d. 初始化时钟是放在main函数
(3). FRDMKL46(Micrium)
a. 单片机上电或开始调试产生复位中断(中断向量号为1)
b. 到中断处理程序,关闭看门狗时钟,运行__iar_program_start函数
c. __iar_program_start是iar内部的函数,主要的功能是对CPU进行初始化然后跳到mian函数
d. 其他事一些配置,如时钟,放到main函数
(4). FRDMKL46(KSDK)
这个启动方式是在CMSIS启动标准下进行的
a. 单片机上电或开始调试产生复位中断(中断向量号为1)
b.到中断处理程序,初始化CPU寄存器
c.运行SystemInit函数,主要是初始化RAM
d. 运行init_data_bss函数,主要是初始化时钟
e. 运行__iar_program_start函数,__iar_program_start是iar内部的函数,主要的功能是对CPU进行初始化然后跳到mian函数
|