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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

嵌入式系統里的Boot Loader技術詳解

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

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

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

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

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

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

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

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式系統
    +關注

    關注

    41

    文章

    3668

    瀏覽量

    130951
  • bootloader
    +關注

    關注

    2

    文章

    238

    瀏覽量

    46482

原文標題:開發嵌入式必須懂的技術-Boot Loader詳細介紹

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

收藏 人收藏

    評論

    相關推薦
    熱點推薦

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

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

    飛凌嵌入式2025嵌入式及邊緣AI技術論壇圓滿結束

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

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

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

    嵌入式系統開發圣經【干貨】

    內容包括:嵌入式系統的介紹、嵌入式SoC硬件系統概論、嵌入式系統軟件開發。適用于產品主管、
    發表于 03-12 13:58

    嵌入式系統中的代碼優化與壓縮技術

    在當今數字化時代,嵌入式系統廣泛應用于各個領域,從智能家居設備到工業控制系統,從汽車電子到可穿戴設備,它們無處不在。而在嵌入式系統開發中,代
    發表于 02-26 15:00

    新手怎么學嵌入式?

    。但面對這個復雜的領域,很多人可能會感到迷茫,不知從何處入手。別擔心,本文將為你提供一些入門學習嵌入式技術的建議。 新手入門學習嵌入式技術的途徑 1. 了解基礎知識 首先,要對
    發表于 12-12 10:51

    什么是嵌入式人工智能

    嵌入式人工智能是指將人工智能技術應用于嵌入式系統中的一種技術嵌入式
    的頭像 發表于 12-11 09:23 ?895次閱讀
    什么是<b class='flag-5'>嵌入式</b>人工智能

    嵌入式系統開發與硬件的關系 嵌入式系統開發常見問題解決

    嵌入式系統開發與硬件的關系 嵌入式系統是專為特定應用設計的計算機系統,它們通常嵌入在所控制的設備
    的頭像 發表于 12-09 09:38 ?868次閱讀

    嵌入式系統與物聯網的結合

    隨著科技的飛速發展,嵌入式系統和物聯網(IoT)已經成為現代技術領域的重要組成部分。嵌入式系統是指嵌入
    的頭像 發表于 11-06 10:23 ?985次閱讀

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

    在現代科技浪潮中,嵌入式技術已成為支撐各種智能設備和系統運行的核心力量。那么,究竟什么是嵌入式嵌入式
    的頭像 發表于 10-16 10:14 ?2477次閱讀

    嵌入式系統的原理和應用

    嵌入式系統是一種專用的計算機系統,其設計初衷是執行特定任務,而非作為通用計算機使用。這類系統通常作為更大系統的一部分,起到控制、監控或輔助的
    的頭像 發表于 10-05 17:03 ?1978次閱讀

    嵌入式系統的未來趨勢有哪些?

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

    RT-Thread出席第六屆中國嵌入式技術大會,共話嵌入式操作系統與智能工業

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

    嵌入式熱門領域有哪些?

    通過物聯網連接各種物理設備和傳感器,促使它們之間實現信息的交換和數據的共享。從智能家居到智能城市,物聯網的應用不斷擴展,為嵌入式系統工程師帶來了廣泛的就業機會和發展前景。 自動駕駛 自動駕駛技術作為
    發表于 07-16 09:23

    嵌入式系統怎么學?

    嵌入式系統怎么學? 隨著物聯網、智能制造等新技術的興起,嵌入式系統的應用范圍更加廣泛。包括但不限于工業控制、汽車電子、醫療設備、智能家居、
    發表于 07-02 10:10
    主站蜘蛛池模板: 美女被羞羞产奶视频网站 | 成人精品亚洲人成在线 | 91夫妻视频| 天堂资源在线观看 | 亚洲欧美卡通 动漫 丝袜 | 久久国产精品免费 | 色婷婷婷婷| 天天爽夜夜爽 | 女人爽到喷水的视频大全在线观看 | 日本亚洲精品成人 | 同性男男肉交短文 | 国产理论视频在线观看 | 国产69精品久久久久9牛牛 | 甘婷婷一级毛片免费看 | 5566在线观看 | 琪琪午夜伦埋大全影院 | 天天噜噜日日噜噜久久综合网 | a级黄色毛片三个搞一 | 手机看片神马午夜片 | 天堂网www在线观看 天堂网www在线资源中文 | 日日爱夜夜爱 | 一区二区三区中文 | 久久久这里有精品999 | 国产精品免费看久久久 | 四虎永久在线日韩精品观看 | 亚综合 | 亚洲第一页在线 | www毛片| 91av免费| 美女视频大全美女视频黄 | 久久国产免费观看 | 婷婷色影院 | 天天插天天干天天射 | 三级电影天堂网 | 午夜精品久久久久久久四虎 | 成人的天堂视频一区二区三区 | 手机看片福利视频 | 2018国产大陆天天弄 | 特黄特黄aaaa级毛片免费看 | 痴女中文字幕在线视频 | 欧美在线资源 |