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