在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

嵌入式系統(tǒng)里的Boot Loader技術(shù)詳解

開源嵌入式 ? 來源:搜狐網(wǎng) ? 作者:搜狐網(wǎng) ? 2020-09-27 18:08 ? 次閱讀

嵌入式系統(tǒng)當(dāng)中你可能經(jīng)常聽到 boot loader(引導(dǎo)加載器)這一詞,boot loader是指什么呢?在我們?nèi)粘=?jīng)常接觸的東西中是不是有與boot loader的作用或是概念相似的呢?如果你稍微熟悉計(jì)算機(jī)的組成,你一定知道BIOS(Basic Input/Output System)。BIOS在計(jì)算機(jī)中就是用來啟動(dòng)計(jì)算系統(tǒng)的,在完成一定的硬件初始化工作以及人機(jī)交互后,它加載位于硬盤中的操作系統(tǒng),并最終運(yùn)行操作系統(tǒng)。嵌入式系統(tǒng)中的boot loader與BIOS的作用就是相類似的,也是完成對(duì)于處理器相關(guān)的硬件資源進(jìn)行初始化后,最后加載通常是存放在FLASH中的應(yīng)用程序,當(dāng)然在嵌入式系統(tǒng)當(dāng)中操作系統(tǒng)與應(yīng)用程序一般是在同一個(gè)可執(zhí)行文件中的,這與我們的電腦有很大的不同。
BIOS與boot loader有相同之處,比如:
1)完成處理器正常最小系統(tǒng)的初始化。最小系統(tǒng)的概念通過舉個(gè)例比較容易讓人明白,比如對(duì)于我們的計(jì)算機(jī),通常在初始化時(shí)不需要用到以太網(wǎng),因此,在最小化系統(tǒng)中就不包括以太網(wǎng)卡的初始化,對(duì)其的初始化完全可以放到操作系統(tǒng)中去做,而不是在BIOS中。相類似的是,在嵌入式系統(tǒng)中,我們通常不需要在初始化的過程中用到USB設(shè)備,那么對(duì)于USB設(shè)備的初始化就不需要包含在最小系統(tǒng)中,而可以在被boot loader加載的應(yīng)用程序中去初始化它。

2)兩者在最后都得加載其它的程序,并將運(yùn)行權(quán)交給被加載的程序。對(duì)于BIOS,其所加載的程序通常是操作系統(tǒng),當(dāng)然,如果你正在安裝系統(tǒng)那么BIOS所加載的可能是位于光盤中安裝程序。對(duì)于loader,其加載的是一個(gè)可執(zhí)行程序,這一可執(zhí)行程序包括實(shí)時(shí)操作系統(tǒng)(有的也不是實(shí)時(shí)操作系統(tǒng))和我們的應(yīng)用程序。

3)如果BIOS或是boot loader程序太大,通常都會(huì)采用壓縮技術(shù)對(duì)其進(jìn)行壓縮。對(duì)于BIOS,其肯定會(huì)采用壓縮技術(shù)進(jìn)行壓縮,因?yàn)锽IOS隨著計(jì)算機(jī)行業(yè)的飛速發(fā)展而越來越復(fù)雜,比如,以前的BIOS不需要支持USB的鼠標(biāo)和鍵盤,但現(xiàn)在就得支持了,這就意味著BIOS要有USB鼠標(biāo)和鍵盤的驅(qū)動(dòng)程序。另一方面計(jì)算機(jī)的出貨量大,所以BIOS芯片(其實(shí)就是一塊FLASH芯片)的容量也就會(huì)盡可能的控制得小以提高利潤(rùn),比如可能控制其容量在512K字節(jié)。同BIOS相類似的是,如果我們的嵌入式系統(tǒng)中的FLASH緊張時(shí),為了節(jié)省FLASH空間,我們也得對(duì)boot loader采用壓縮技術(shù)??赡苡腥艘獑?,BIOS也好,boot loader也好,如果采用了壓縮技術(shù)對(duì)其壓縮,那是誰負(fù)責(zé)在運(yùn)行它們時(shí)對(duì)其解壓縮呢?答案是它們自己,很有趣吧!其實(shí),我們說對(duì)它們采用壓縮技術(shù)并不是對(duì)于全部的程序(或數(shù)據(jù))都采用壓縮技術(shù)。在它們當(dāng)中,一定存在一部分不壓縮的部分,這保證處理器啟動(dòng)時(shí),能直接運(yùn)行這部分的代碼。技巧在于,沒有壓縮的代碼當(dāng)中包括了解壓程序(從C程序角度來看是幾個(gè)函數(shù)),其將被壓縮了的部分解壓到內(nèi)存中。當(dāng)然,其中的程序處理很有技巧性,要保證程序在運(yùn)行的過程中,對(duì)于壓縮部分代碼的運(yùn)行是透明的,這在具體的代碼分析中我們?cè)賮砜础?br /> BIOS與boot loader除了相同之處外,還有不同之處,它們是:

1)BIOS往往比boot loader復(fù)雜很多,因?yàn)槲覀兊挠?jì)算機(jī)硬件環(huán)境比嵌入式系統(tǒng)復(fù)雜得多。在計(jì)算機(jī)行業(yè),為了保證操作系統(tǒng)在設(shè)計(jì)時(shí)盡可能運(yùn)行在不同的主板上,這需要BIOS的幫助以屏蔽一些硬件信息。操作系統(tǒng)對(duì)主板上的一些硬件資源的訪問,需要通過BIOS來完成,即調(diào)用BIOS的功能(或說是函數(shù))來完成。這樣做的好處是非常的明顯的,操作系統(tǒng)的開發(fā)商不用關(guān)心主板上的具體硬件是如何設(shè)計(jì)的,而主板的設(shè)計(jì)廠商則負(fù)責(zé)實(shí)現(xiàn)BIOS來對(duì)主板上的硬件資源進(jìn)行存取訪問??偟膩碚f,就是將主板上對(duì)于復(fù)雜硬件資源的處理任務(wù)交給了主板廠商來完成,而不用操作系統(tǒng)廠商去關(guān)心,因當(dāng)說這樣做非常的合理和有效。
2)BIOS在加載完了操作系統(tǒng)以后,其還將駐留在內(nèi)存中,以便操作系統(tǒng)在運(yùn)行的過程中調(diào)用其功能,但boot loader就不需要這樣了。通常,boot loader加載完了程序后,跳轉(zhuǎn)到被加載的程序后就不再存在了,這里所說的跳轉(zhuǎn)有時(shí)也稱之為將運(yùn)行權(quán)交給了被加載程序。
3)boot loader通常采用匯編和C程序相結(jié)合進(jìn)行編寫,但BIOS為了節(jié)省程序空間往往全部采用匯編進(jìn)行編寫。
下面我們來看一看boot loader在啟動(dòng)過程中會(huì)做哪些事情。在討論這些之前,我們需要明白嵌入式系統(tǒng)的處理器與我們計(jì)算機(jī)處理器的區(qū)別是什么。對(duì)于嵌入式系統(tǒng)的處理器,準(zhǔn)確的說應(yīng)當(dāng)叫微控制器,即英文的microcontroller,而我們的計(jì)算機(jī)處理器則應(yīng)稱之為微處理器,即microprocessor。微控制器除了具有微處理器的功能外(即通過運(yùn)算來處理一定的事務(wù)),往往其中集成了很多的其它硬件功能模塊,比如SDRAM內(nèi)存控制器、I2C控制器、SD卡控制器等等。正如微處理器的名字那樣,它只有處理功能,其它的控制芯片都是通過芯片組(什么是芯片組,我打算后面用另一篇文章來進(jìn)行解釋)來完成的。雖然,我們對(duì)于微處理器和微控制器采用了處理器這么一個(gè)簡(jiǎn)化詞來描述,但我們需要明白其中的不同之處,這一點(diǎn)非常的重要。下面我們來看一看boot loader做些什么事情,它們有:
1)對(duì)PLL時(shí)鐘進(jìn)行初始化。往往處理器一啟動(dòng)時(shí),為了更好的設(shè)備兼容性,其工作頻率都很低,在boot loader程序的特定位置,需要提高處理器的時(shí)鐘頻率,以加快運(yùn)行速度。速度一旦調(diào)好往往是不會(huì)改變的了,之所以說是往往,因?yàn)槿绻幚砥髦С止?jié)電模式功能,那也會(huì)造成PLL時(shí)鐘的變化(時(shí)鐘越快越耗電)。
2)初始化SDRAM內(nèi)存控制器。通常loader自身也需要用到內(nèi)存,比如,大多boot loader都會(huì)將自己加載到內(nèi)存中。內(nèi)存的配置一般是包括行地址和列地址的配置以及自動(dòng)刷新頻率的配置。一旦配置好了,后面就不用再更改了。
3)初始化中斷控制器和中斷服務(wù)程序。

4)初始化各地址空間的片選地址寄存器和讀寫時(shí)序。
5)初始化堆棧(stack)寄存器。比如,在x86中需要初始化ESP寄存器,在PowerPC中需要初始化r1寄存器。
6)對(duì)于boot loader中需要訪問的其它硬件設(shè)備進(jìn)行初始化。比如,我們通常會(huì)有一個(gè)串口作為控制臺(tái)(console),這就需要在boot loader中初始化相應(yīng)的串口,并接受用戶的命令,以響應(yīng)用戶的請(qǐng)求。可以想像,boot loader中存在一定的命令處理程序。
7)將boot loader自身加載到內(nèi)存中,如果需要解壓,那么還得做解壓操作。前面提到了,將boot loader加載到內(nèi)存是為了更快的運(yùn)行程序。

8)加載需要運(yùn)行的應(yīng)用程序并最終運(yùn)行被加載的應(yīng)用程序。

需要指出的是,在嵌入式系統(tǒng)中我們的應(yīng)用程序當(dāng)中還得做一部分與boot loader相同的工作。比如,對(duì)于中斷服務(wù)程序的重新初始化,因?yàn)樵赽oot loader中設(shè)置的是boot loader中的程序作為中斷服務(wù)程序,當(dāng)應(yīng)用程序加載了以后,boot loader中的程序就不復(fù)存在了,因此,我們需要重新初始化中斷服務(wù)程序以指向被加載程序中的函數(shù)。對(duì)于SDRAM內(nèi)存的初始化、PLL的初始化,在應(yīng)用程序中通常不需要重新做。雖然,在此我們沒有對(duì)具體的處理器和操作系統(tǒng)進(jìn)行講解,但是無論對(duì)于什么處理器和操作系統(tǒng),其總體過程幾乎相同,只是處理器的指令集不同。最后,我要給讀者您留一個(gè)問題,這個(gè)問題如下。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式系統(tǒng)
    +關(guān)注

    關(guān)注

    41

    文章

    3625

    瀏覽量

    129755
  • bootloader
    +關(guān)注

    關(guān)注

    2

    文章

    235

    瀏覽量

    45736

原文標(biāo)題:開發(fā)嵌入式必須懂的技術(shù)-Boot Loader詳細(xì)介紹

文章出處:【微信號(hào):KY_QRS,微信公眾號(hào):開源嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    新手怎么學(xué)嵌入式?

    。但面對(duì)這個(gè)復(fù)雜的領(lǐng)域,很多人可能會(huì)感到迷茫,不知從何處入手。別擔(dān)心,本文將為你提供一些入門學(xué)習(xí)嵌入式技術(shù)的建議。 新手入門學(xué)習(xí)嵌入式技術(shù)的途徑 1. 了解基礎(chǔ)知識(shí) 首先,要對(duì)
    發(fā)表于 12-12 10:51

    什么是嵌入式人工智能

    嵌入式人工智能是指將人工智能技術(shù)應(yīng)用于嵌入式系統(tǒng)中的一種技術(shù)。嵌入式
    的頭像 發(fā)表于 12-11 09:23 ?413次閱讀
    什么是<b class='flag-5'>嵌入式</b>人工智能

    嵌入式系統(tǒng)開發(fā)與硬件的關(guān)系 嵌入式系統(tǒng)開發(fā)常見問題解決

    嵌入式系統(tǒng)開發(fā)與硬件的關(guān)系 嵌入式系統(tǒng)是專為特定應(yīng)用設(shè)計(jì)的計(jì)算機(jī)系統(tǒng),它們通常嵌入在所控制的設(shè)備
    的頭像 發(fā)表于 12-09 09:38 ?418次閱讀

    嵌入式系統(tǒng)與物聯(lián)網(wǎng)的結(jié)合

    隨著科技的飛速發(fā)展,嵌入式系統(tǒng)和物聯(lián)網(wǎng)(IoT)已經(jīng)成為現(xiàn)代技術(shù)領(lǐng)域的重要組成部分。嵌入式系統(tǒng)是指嵌入
    的頭像 發(fā)表于 11-06 10:23 ?446次閱讀

    什么是嵌入式?一文讀懂嵌入式主板

    在現(xiàn)代科技浪潮中,嵌入式技術(shù)已成為支撐各種智能設(shè)備和系統(tǒng)運(yùn)行的核心力量。那么,究竟什么是嵌入式嵌入式
    的頭像 發(fā)表于 10-16 10:14 ?1581次閱讀

    嵌入式系統(tǒng)的原理和應(yīng)用

    嵌入式系統(tǒng)是一種專用的計(jì)算機(jī)系統(tǒng),其設(shè)計(jì)初衷是執(zhí)行特定任務(wù),而非作為通用計(jì)算機(jī)使用。這類系統(tǒng)通常作為更大系統(tǒng)的一部分,起到控制、監(jiān)控或輔助的
    的頭像 發(fā)表于 10-05 17:03 ?1205次閱讀

    嵌入式系統(tǒng)的未來趨勢(shì)有哪些?

    (ML)技術(shù)的快速發(fā)展,嵌入式系統(tǒng)將更多地整合這些先進(jìn)技術(shù),以支持智能決策和自動(dòng)化。在設(shè)備上直接運(yùn)行AI和ML模型,進(jìn)行圖像識(shí)別、自然語言處理、預(yù)測(cè)分析等任務(wù),將極大提升
    發(fā)表于 09-12 15:42

    RT-Thread出席第六屆中國(guó)嵌入式技術(shù)大會(huì),共話嵌入式操作系統(tǒng)與智能工業(yè)

    第六屆中國(guó)嵌入式技術(shù)大會(huì)將于8月27-28日在深圳會(huì)展中心(福田)1號(hào)館舉行。本屆大會(huì)以“AI與開源,開啟嵌入式系統(tǒng)智能新時(shí)代”為主題,聚焦人工智能與
    的頭像 發(fā)表于 08-03 08:35 ?477次閱讀
    RT-Thread出席第六屆中國(guó)<b class='flag-5'>嵌入式</b><b class='flag-5'>技術(shù)</b>大會(huì),共話<b class='flag-5'>嵌入式</b>操作<b class='flag-5'>系統(tǒng)</b>與智能工業(yè)

    嵌入式系統(tǒng)怎么學(xué)?

    嵌入式系統(tǒng)怎么學(xué)? 隨著物聯(lián)網(wǎng)、智能制造等新技術(shù)的興起,嵌入式系統(tǒng)的應(yīng)用范圍更加廣泛。包括但不限于工業(yè)控制、汽車電子、醫(yī)療設(shè)備、智能家居、
    發(fā)表于 07-02 10:10

    入門嵌入式系統(tǒng)這些知識(shí)你知道嗎?

    嵌入式系統(tǒng)是一種專用的計(jì)算機(jī)系統(tǒng),作為裝置或設(shè)備的一部分。通常,嵌入式系統(tǒng)是一個(gè)控制程序存儲(chǔ)在ROM中的
    發(fā)表于 05-03 09:54 ?636次閱讀

    深度詳解嵌入式系統(tǒng)專用輕量級(jí)框架設(shè)計(jì)

    MR 框架是專為嵌入式系統(tǒng)設(shè)計(jì)的輕量級(jí)框架。充分考慮了嵌入式系統(tǒng)在資源和性能方面的需求。通過提供標(biāo)準(zhǔn)化的設(shè)備管理接口,極大簡(jiǎn)化了嵌入式應(yīng)用開
    發(fā)表于 04-27 02:32 ?1038次閱讀
    深度<b class='flag-5'>詳解</b><b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>專用輕量級(jí)框架設(shè)計(jì)

    嵌入式fpga是什么意思

    嵌入式FPGA是指將FPGA技術(shù)集成到嵌入式系統(tǒng)中的一種解決方案。嵌入式系統(tǒng)是一種為特定應(yīng)用而設(shè)
    的頭像 發(fā)表于 03-15 14:29 ?1377次閱讀

    fpga是嵌入式

    FPGA(現(xiàn)場(chǎng)可編程門陣列)不是嵌入式系統(tǒng),但FPGA在嵌入式系統(tǒng)中有著重要的應(yīng)用。
    的頭像 發(fā)表于 03-14 17:19 ?2522次閱讀

    嵌入式工程師需要掌握哪些技術(shù)?

    嵌入式工程師需要掌握哪些技術(shù)? 嵌入式系統(tǒng)是當(dāng)今科技領(lǐng)域中的重要組成部分,它們存在于我們生活的方方面面,從智能手機(jī)到汽車控制系統(tǒng),從家電到
    發(fā)表于 03-04 16:38

    嵌入式系統(tǒng)發(fā)展前景?

    應(yīng)用領(lǐng)域。隨著汽車電子化和智能化程度的不斷提高,嵌入式系統(tǒng)將在汽車控制、安全系統(tǒng)、自動(dòng)駕駛等方面發(fā)揮更為重要的作用。 工智能和機(jī)器學(xué)習(xí)技術(shù)的發(fā)展為
    發(fā)表于 02-22 14:09
    主站蜘蛛池模板: 色偷偷狠狠色综合网 | 天天干 夜夜操 | 欧美成人黄色 | 亚洲日韩色综合视频 | 香港三级理论在线观看网站 | 一区二区不卡视频 | 亚洲男人天堂岛 | www.丁香| 亚洲日本欧美日韩高观看 | 最新日本免费一区二区三区中文 | 天堂资源www天堂在线 | 三级欧美视频 | 免费深夜视频 | 热久久最新地址 | 天天色天天| 18黄网站 | 国内久久精品视频 | 男男np主受高h啪啪肉 | 嫩草影院久久国产精品 | 免费在线观看黄 | 最新天堂网 | 天天操精品视频 | 亚洲精品久久久久午夜三 | 一区二区三区亚洲 | 四虎影院成人在线观看 | 69日本人xxxxxxxx色 | 色婷婷色99国产综合精品 | 久久久国产高清 | 中国一级特黄真人毛片免费看 | 久优草| 2021久久天天躁狠狠躁夜夜 | 麻生希痴汉电车avop130 | 屁屁影院在线 | 人人爱爱人人 | 国产手机视频在线 | 免费视频观看 | www.xxxx欧美| 免费大片看黄在观看 | 在线免费观看你懂的 | 一区二区高清在线观看 | 韩国床戏合集三小时hd中字 |