2014
桌面電腦剛加電時(shí),一個(gè)叫做BIOS的軟件程序立刻獲得了處理器的控制權(quán)。(歷史上,BIOS是Basic Input/Output Software的縮寫,但現(xiàn)在這個(gè)單詞已經(jīng)有了自身的含義,因?yàn)槠渫瓿傻墓δ鼙纫郧皬?fù)雜多了。)BIOS可能實(shí)際存儲(chǔ)在一塊閃存中,便于升級(jí)BIOS程序。
BIOS是一個(gè)復(fù)雜的系統(tǒng)配置軟件,它擁有硬件架構(gòu)的底層信息。當(dāng)電腦加電時(shí),BIOS首先獲得處理器的控制權(quán)。它的主要任務(wù)是初始化硬件,特別是內(nèi)存子系統(tǒng),并且從PC的硬盤驅(qū)動(dòng)器中加載操作系統(tǒng)。
在典型的嵌入式系統(tǒng)中,引導(dǎo)加載程序(bootloader)完成與BIOS相同的功能。對(duì)于定制嵌入式系統(tǒng),你必須在開(kāi)發(fā)計(jì)劃中預(yù)留出時(shí)間,開(kāi)發(fā)針對(duì)具體硬件板卡的引導(dǎo)加載程序。幸運(yùn)的是,有幾個(gè)很好的開(kāi)源引導(dǎo)加載程序可供選擇,你可以按照項(xiàng)目需求進(jìn)行定制。
下面列出一些引導(dǎo)加載程序在系統(tǒng)加電時(shí)完成的重要任務(wù):
需要注意的是:如果你的嵌入式系統(tǒng)基于定制的硬件平臺(tái),這些引導(dǎo)加載程序的功能必須由你,也就是系統(tǒng)的設(shè)計(jì)者來(lái)提供。
區(qū)別:與桌面PC的BIOS不同,大多數(shù)的嵌入式系統(tǒng)都采用這樣一種架構(gòu):當(dāng)Linux內(nèi)核掌握控制權(quán)時(shí),引導(dǎo)加載程序就不復(fù)存在了。Linux內(nèi)核要求收回那些之前被引導(dǎo)加載程序所占用的內(nèi)存和系統(tǒng)資源。將控制權(quán)交回給引導(dǎo)加載程序的唯一方法就是重啟目標(biāo)板。
聯(lián)系客服