我們先說說什么是啟動文件?一般的嵌入式系統(tǒng)在主程序執(zhí)行之前都需要執(zhí)行一些初始化的過程以創(chuàng)造嵌入式程序運(yùn)行的環(huán)境,尤其是一些高級的嵌入式系統(tǒng),由于核心芯片使用內(nèi)存映射、內(nèi)存保護(hù)等機(jī)制等。當(dāng)然,低端的微處理器也是有的,只不過基本都固化到芯片內(nèi)部了。說到這里,我們請出今天的第一位主角AVR系列的Atmega64微處理器。
Atmega64微處理的啟動過程:首先當(dāng)程序上電(或復(fù)位)后,PC指針將指向0x0000位置,然后再去執(zhí)行C_Startup,Low_init(),這里多說一句,這一系列指令在IAR EWAVR開發(fā)環(huán)境是看不到的,如果你在選項卡里勾選了“run to main”選項,那么在仿真或者在線調(diào)試時,上面這些過程將完全被跳過。主要因為AVR系列這些中斷變量全部固化完成,也只是在使用熔絲位更改啟動順序時,會更改中斷向量的地址,但其偏移量也是固定且事先預(yù)定好的。當(dāng)然,像堆地址與�?臻g的大小也是通過IAR提供的GUI選項表來設(shè)置的,不需要用戶理解復(fù)雜的命令參數(shù)等。









