|
* 針對(duì)于 Cortex-M0 的啟動(dòng)方式.
一. 單片機(jī)執(zhí)行主要任務(wù)之前主要需要:
(1). 初始化寄存器(R0~R15),取消屏蔽中斷
(2). 初始化RAM,主要是從ROM復(fù)制必要的初始數(shù)據(jù)和向量表到到RAM
(3). 初始化時(shí)鐘,主要是初始化PLL
二. 列舉幾種啟動(dòng)方式
(1). FRDMKL46(飛思卡爾官方)
a. 單片機(jī)上電或開(kāi)始調(diào)試產(chǎn)生復(fù)位中斷(中斷向量號(hào)為1)
b. 到中斷處理程序,先初始化CPU寄存器,取消屏蔽中斷
c. 到start函數(shù),主要是初始化RAM,初始化時(shí)鐘,開(kāi)始main函數(shù)
(2). TWRKL43(飛思卡爾官方)
a. 單片機(jī)上電或開(kāi)始調(diào)試產(chǎn)生復(fù)位中斷(中斷向量號(hào)為1)
b. 到中斷處理程序,先初始化CPU寄存器,取消屏蔽中斷
c. 到start函數(shù),主要是初始化RAM,開(kāi)始main函數(shù)
d. 初始化時(shí)鐘是放在main函數(shù)
(3). FRDMKL46(Micrium)
a. 單片機(jī)上電或開(kāi)始調(diào)試產(chǎn)生復(fù)位中斷(中斷向量號(hào)為1)
b. 到中斷處理程序,關(guān)閉看門狗時(shí)鐘,運(yùn)行__iar_program_start函數(shù)
c. __iar_program_start是iar內(nèi)部的函數(shù),主要的功能是對(duì)CPU進(jìn)行初始化然后跳到mian函數(shù)
d. 其他事一些配置,如時(shí)鐘,放到main函數(shù)
(4). FRDMKL46(KSDK)
這個(gè)啟動(dòng)方式是在CMSIS啟動(dòng)標(biāo)準(zhǔn)下進(jìn)行的
a. 單片機(jī)上電或開(kāi)始調(diào)試產(chǎn)生復(fù)位中斷(中斷向量號(hào)為1)
b.到中斷處理程序,初始化CPU寄存器
c.運(yùn)行SystemInit函數(shù),主要是初始化RAM
d. 運(yùn)行init_data_bss函數(shù),主要是初始化時(shí)鐘
e. 運(yùn)行__iar_program_start函數(shù),__iar_program_start是iar內(nèi)部的函數(shù),主要的功能是對(duì)CPU進(jìn)行初始化然后跳到mian函數(shù)
|
|