* 針對于 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函數
|