注意:很多初學(xué)者總是將啟動代碼和Bootloader聯(lián)系在一起,這是錯誤的什么是啟動代碼?
啟動代碼是系統(tǒng)上電或者復(fù)位后運行的第一段代碼,是進(jìn)入C 語言的main 函數(shù)之前需要執(zhí)行的那段匯編代碼。
啟動代碼有何用?
它的作用是在用戶程序運行之前對系統(tǒng)硬件及軟件環(huán)境進(jìn)行必要的初始化并在最后使程序跳轉(zhuǎn)到用戶程序。它直接面對arm 處理器內(nèi)核及硬件控制器進(jìn)行編程,所執(zhí)行的操作與具體的目標(biāo)系統(tǒng)緊密相關(guān)。
C語言程序的運行需要具備一定的條件,如分配好外部數(shù)據(jù)空間,堆??臻g和中斷入口等。另外,匯編代碼可以更直接地對硬件進(jìn)行操作,效率更高,這對啟動中斷等對時間要求更高的情況是非常必要的什么是Bootloader?
Bootloader 不是一段代碼,它是一個具有引導(dǎo)裝載功能的完整的程序,如可以引導(dǎo)裝載linux的vivi,uboot,以及通常PC機(jī)上的BOIS程序等。
啟動代碼和Bootloader關(guān)系?
Bootloader 也包含了相應(yīng)的啟動代碼,也就是說,啟動代碼是Bootloader的一部分,是所有相應(yīng)應(yīng)用程序的一部分。