chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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

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

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

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

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

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

    關(guān)注

    41

    文章

    3719

    瀏覽量

    133217
  • bootloader
    +關(guān)注

    關(guān)注

    2

    文章

    241

    瀏覽量

    47696

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    系統(tǒng)嵌入式的學(xué)習(xí)路線

    嵌入式技術(shù)是各種電子產(chǎn)品的核心技術(shù),也是工業(yè)4.0、遠程醫(yī)療、3D打印等新興產(chǎn)業(yè)的核心技術(shù),具有廣闊的發(fā)展前景。很多計算機、電子信息類專業(yè)的學(xué)生都想把
    發(fā)表于 12-16 07:49

    ARM嵌入式這樣學(xué)

    工程師的的終點只有一個,就是真正的技術(shù)專家。 嵌入式技術(shù)大體上可分為編程語言,內(nèi)核技術(shù),操作系統(tǒng),總線接口,
    發(fā)表于 12-04 07:48

    嵌入式和FPGA的區(qū)別

    。 在當(dāng)今智能化時代,嵌入式系統(tǒng)和FPGA技術(shù)都是電子系統(tǒng)設(shè)計中的重要組成部分,但許多工程師和技術(shù)愛好者常常對兩者的區(qū)別和應(yīng)用場景感到困惑
    發(fā)表于 11-19 06:55

    嵌入式系統(tǒng)的定義和應(yīng)用領(lǐng)域

    。盡管有些嵌入式系統(tǒng)可能包含操作系統(tǒng),但大多數(shù)情況下,它們僅由一個程序來控制整個邏輯。 從更專業(yè)的角度來看,嵌入式系統(tǒng)可以被定義為:以應(yīng)用
    發(fā)表于 11-17 06:49

    入行嵌入式應(yīng)該怎么準(zhǔn)備?

    想入行嵌入式該怎么準(zhǔn)備。很能理解大家對于嵌入式的關(guān)注,嵌入式系統(tǒng)是當(dāng)今科技領(lǐng)域中的重要組成部分,它存在于我們生活的方方面面,各行各業(yè)。智能化時代的到來也讓
    發(fā)表于 08-06 10:34

    運行在嵌入式系統(tǒng)上的emApps

    在當(dāng)今快節(jié)奏的嵌入式系統(tǒng)世界中,靈活性和適應(yīng)性是嵌入式系統(tǒng)實現(xiàn)的關(guān)鍵。SEGGER推出了其最新創(chuàng)新:Embedded apps(emApps)應(yīng)用,類似于手機上的應(yīng)用程序,可以運行在
    的頭像 發(fā)表于 06-18 09:53 ?665次閱讀
    運行在<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>上的emApps

    飛凌嵌入式ElfBoard ELF 1板卡-Uboot

    上節(jié)中講到U-Boot是BootLoader的一種,U-Boot全稱為Universal Boot Loader,即通用的BootLoader,所謂通用就是指它適用于多種
    發(fā)表于 05-22 10:44

    飛凌嵌入式2025嵌入式及邊緣AI技術(shù)論壇圓滿結(jié)束

    飛凌嵌入式「2025嵌入式及邊緣AI技術(shù)論壇」在深圳深鐵皇冠假日酒店盛大舉行,此次活動邀請到了200余位嵌入式技術(shù)領(lǐng)域的
    的頭像 發(fā)表于 04-28 13:57 ?3869次閱讀
    飛凌<b class='flag-5'>嵌入式</b>2025<b class='flag-5'>嵌入式</b>及邊緣AI<b class='flag-5'>技術(shù)</b>論壇圓滿結(jié)束

    飛凌嵌入式2025嵌入式及邊緣AI技術(shù)論壇圓滿結(jié)束

    技術(shù)的盛宴! 1、精彩紛呈的展區(qū) 產(chǎn)品及方案展區(qū)是本場活動的第一場重頭戲,從硬件產(chǎn)品到軟件系統(tǒng),從企業(yè)級應(yīng)用到高校教學(xué)應(yīng)用,都吸引了現(xiàn)場來賓的駐足觀看和交流討論。 全產(chǎn)品矩陣展區(qū) 展示了飛凌嵌入式豐富的產(chǎn)品線,從
    的頭像 發(fā)表于 04-27 11:55 ?638次閱讀
    飛凌<b class='flag-5'>嵌入式</b>2025<b class='flag-5'>嵌入式</b>及邊緣AI<b class='flag-5'>技術(shù)</b>論壇圓滿結(jié)束

    飛凌嵌入式「2025嵌入式及邊緣AI技術(shù)論壇」議程公布

    4月22日,飛凌嵌入式“2025嵌入式及邊緣AI技術(shù)論壇”將在深圳舉行,論壇以“新生態(tài),智未來”為主題,旨在匯聚行業(yè)智慧,探討嵌入式技術(shù)與邊
    的頭像 發(fā)表于 04-02 15:12 ?1101次閱讀
    飛凌<b class='flag-5'>嵌入式</b>「2025<b class='flag-5'>嵌入式</b>及邊緣AI<b class='flag-5'>技術(shù)</b>論壇」議程公布

    嵌入式系統(tǒng)開發(fā)圣經(jīng)【干貨】

    內(nèi)容包括:嵌入式系統(tǒng)的介紹、嵌入式SoC硬件系統(tǒng)概論、嵌入式系統(tǒng)軟件開發(fā)。適用于產(chǎn)品主管、
    發(fā)表于 03-12 13:58

    使用Lattice mVision打造嵌入式視覺系統(tǒng)解決方案

    嵌入式視覺是嵌入式系統(tǒng)與機器視覺技術(shù)的集合,嵌入式視覺系統(tǒng)硬件集成攝像頭模組和處理板,將圖像捕獲
    的頭像 發(fā)表于 03-06 16:09 ?1261次閱讀

    嵌入式系統(tǒng)中的代碼優(yōu)化與壓縮技術(shù)

    在當(dāng)今數(shù)字化時代,嵌入式系統(tǒng)廣泛應(yīng)用于各個領(lǐng)域,從智能家居設(shè)備到工業(yè)控制系統(tǒng),從汽車電子到可穿戴設(shè)備,它們無處不在。而在嵌入式系統(tǒng)開發(fā)中,代
    發(fā)表于 02-26 15:00

    嵌入式主板的概述與發(fā)展

    隨著科技的迅猛發(fā)展,嵌入式系統(tǒng)在現(xiàn)代電子產(chǎn)品中扮演著越來越重要的角色。嵌入式主板作為嵌入式系統(tǒng)的核心組件之一,承擔(dān)著控制、處理和通訊等多種功
    的頭像 發(fā)表于 01-13 16:30 ?1206次閱讀
    <b class='flag-5'>嵌入式</b>主板的概述與發(fā)展

    飛凌嵌入式獲批建設(shè)「河北省嵌入式計算機控制系統(tǒng)技術(shù)創(chuàng)新中心」

    河北省科學(xué)技術(shù)廳公示了2024年度擬新建省重點實驗室和省技術(shù)創(chuàng)新中心的名單,保定飛凌嵌入式技術(shù)有限公司(以下簡稱:飛凌嵌入式)作為“河北省
    的頭像 發(fā)表于 12-27 10:45 ?1055次閱讀
    飛凌<b class='flag-5'>嵌入式</b>獲批建設(shè)「河北省<b class='flag-5'>嵌入式計算機控制系統(tǒng)</b><b class='flag-5'>技術(shù)</b>創(chuàng)新中心」