(微電子學(xué)與固體電子學(xué)專業(yè)論文)嵌入式系統(tǒng)啟動方案的設(shè)計與實現(xiàn).pdf_第1頁
(微電子學(xué)與固體電子學(xué)專業(yè)論文)嵌入式系統(tǒng)啟動方案的設(shè)計與實現(xiàn).pdf_第2頁
(微電子學(xué)與固體電子學(xué)專業(yè)論文)嵌入式系統(tǒng)啟動方案的設(shè)計與實現(xiàn).pdf_第3頁
(微電子學(xué)與固體電子學(xué)專業(yè)論文)嵌入式系統(tǒng)啟動方案的設(shè)計與實現(xiàn).pdf_第4頁
(微電子學(xué)與固體電子學(xué)專業(yè)論文)嵌入式系統(tǒng)啟動方案的設(shè)計與實現(xiàn).pdf_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

(微電子學(xué)與固體電子學(xué)專業(yè)論文)嵌入式系統(tǒng)啟動方案的設(shè)計與實現(xiàn).pdf.pdf 免費下載

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

摘要 摘要 功能強(qiáng)大的嵌入式產(chǎn)品通常需要復(fù)雜的操作系統(tǒng)給予支持 系統(tǒng)啟動模塊 b o o t l o a d e r 作為系統(tǒng) 軟件的重要組成部分 起到引導(dǎo)和加載操作系統(tǒng)內(nèi)核鏡像的作用 嵌入式系統(tǒng)低成本啟動方案的設(shè) 計實現(xiàn) 對降低產(chǎn)品的成本具有重要的實用價值 本文介紹了b o o t l o a d e r 的基本概念 工作原理以及和b o o t 硬件的關(guān)系 并給出b o o t l o a d e r 通 用架構(gòu) 低成本啟動方案的b o o t l o a d e r 以n o rf l a s h n a n df l a s h 和s d 卡為啟動存儲介質(zhì)設(shè)計實 現(xiàn) 方案l n o r f l a s h n a n df l a s h 的b o o t 方案 以n o r f l a s h 環(huán)境下的啟動為基礎(chǔ) 采用n o r f l a s h 存儲啟動代碼 n a n df l a s h 存儲內(nèi)核鏡像的方式 方案2 n a n df l a s h 的啟動方案根據(jù)n a n d f l a s h 的不同類型 以及啟動過程是否通過片上s r a m 結(jié)合n a n df l a s h 控制器 設(shè)計系統(tǒng)直接從 n a n df l a s h 啟動 方案1 和方案2 都采用匯編語言實現(xiàn) 以達(dá)到短小精悍的目的 方案3 s d 卡 啟動方案以s d 卡控制器為硬件基礎(chǔ) 設(shè)計s d 卡啟動控制器并采用硬件描述語言實現(xiàn) 啟動的軟件 流程用c 語言設(shè)計實現(xiàn) 這樣代碼具有更好的可讀性和可移植性 最后在a r m 9 內(nèi)核的s e p 5 0 1 0 環(huán)境中 采用e d a 仿真工具v c s 完成s d 卡啟動設(shè)計的功能驗證 并在a l t e r as t r a t i xi i i 開發(fā)平臺 完成三種啟動方案的f p g a 驗證 三種設(shè)計方案的啟動時間依次為 8 5 6 s 1 11 3 s 和1 7 4 1 s 根據(jù) 驗證結(jié)果 s d 卡啟動成本最低 速度最慢 n a n df l a s h 啟動方案成本低 需要n a n d 控制器的硬 件支持 n o rf l a s h n a n df l a s h 啟動速度快 成本最高 本文考慮各個b o o t l o a d e r 設(shè)計中的特點 完成嵌入式系統(tǒng)三種低成本啟動方案的設(shè)計實現(xiàn) 論 文最后部分總結(jié)了本文的工作 并進(jìn)一步探討b o o t l o a d e r 的研究方向 關(guān)鍵詞 嵌入式啟動 低成本 n a n df l a s h 控制器 s d h c s d 卡控制器改造 f p g a 驗證 a b s t r a c t a b s t r a c t e m b e d d e dp r o d u c t su s u a l l yn e e da no p e r a t i n gs y s t e m a st h ei m p o r t a n ti n g r e d i e n to ft h ee m b e d d e d s o r w a r e b o o t l o a d e r sb a s i cf u n c t i o ni st ob o o ta n dl o a dt h eo p e r a t i n gs y s t e mi m a g e t h ed e s i g na n d i m p l e m e n t a t i o ns t a r tl o w c o s te m b e d d e ds y s t e md e s i g nt oa c h i e v e t or e d u c et h ec o s to ft h ep r o d u c th a sa n i m p o r t a n tp r a c t i c a lv a l u e t h ep a p e ri n t r o d u c e sb o o t l o a d e r sc o n c e p t s w o r k i n gp r i n c i p l e s a sw e l la st h er e l a t i o n s h i pw i t hb o o t h a r d w a r e a n df a m i l yg i v e si t sg e n e r a lf r a m e w o r k t h ed e s i g na n di m p l e m e n t a t i o no fl o w c o s tb o o t l o a d e r i sb a s i n go nn o rf l a s h n a n df l a s ha n ds dc a r ds t o r a g em e d i u m s c h e m e1 n o rf l a s h n a n d f l a s h b a s i n go nt h eb o o tp r o c e s su n d e rn o rf l a s he n v i r o n m e n t n o rf l a s hi su s e dt os t o r ec o d ea n d n a n df l a s hi sf o rk e r n e li m a g e s c h e m e2 b o o t l o a d e rb a s i n go nn a n df l a s hi sc a r r i e do u ta c c o r d i n g t ot h ed i f f e r e n tt y p e so fn a n df l a s ha n dt h eu s a g eo fe s r a m c o m b i n e dw i t hn a n df l a s hc o n t r o l l e r s c h e m e 2i sd e s i g n e dt ob o o tf r o mn a n df l a s hd i r e c t l y t h es c h e m e sd i s c u s s e da b o v ea r er e a l i z e di n a s s e m b l el a n g u a g ei no r d e rt oa c h i e v et h ep u r p o s eo fd a p p e r s c h e m e3 t h eh a r d w a r ef o u n d a t i o no ft h i s s c h e m ei ss dc a r dc o n t r o l l e r s dc a r db o o tc o n t r o l l e ri sd e s i g n e da n dc a r r i e do u ti nh a r d w a r ed e s c r i p t i o n l a n g u a g e b o o tp r o c e s si sr e a l i z e di ncl a n g u a g ew h i c hb r i n g sb e r e rr e a d a b i l i t ya n dp o r t a b i l i t y f u n c t i o n v a l i d a t i o na b o u ts dc a r db o o tu n d e ra r m 9c o r es e p 5 010c h i pe n v i r o n m e n th a sb e e nd o n eb yv c s d e v e l o p m e n tk i t f p g av e r i f i c a t i o ni sb a s i n go na l t e r as t r a t k d e v e l o p m e n tp l a t f o r m t h et i m ec o s t a b o u tt h r e eb o o ts c h e m e si s 8 5 6 s 111 3 sa n d17 4 1 s a c c o r d i n gt or e s u l t s s dc a r db o o th a st h el o w e s t c o s ta n dt h el o w e a s tb o o ts p e e d n a n df l a s hb o o tw i t hl o wc o s tb u tn e e dt h eh a r d w a r es u p p o r to fn a n d c o n t r o l l e r n o rf l a s h n a n df l a s hb o o th a sh i l g hs p e e da n dh i 曲c o s t i nt h i st h e s i s f u l lc o n s i d e r a t i o ni sg i v e nt ot h ec h a r a c t e r i s t i c so f v a r i o u sb o o t l o a d c r a n da c t u a ld e s i g n o fb o o t l o a d e ra i m i n ga tl o w c o s tb o o to nd i f f e r e n ts t o r a g em e d i ai ne m b e d d e ds y s t e mi sc o m p l e t e d t h e l a s tc h a p t e ro ft h et h e s i st o u c h e su p o nt h ed e v e l o p m e n td i r e c t i o no fb o o t l o a d e ra n da l s or e a c h e s c o n c l u s i o no ft h ep r e s e n tr e s e a r c h k e yw o r d s e m b e d e ds y s t e m l o w c o s t n a n df l a s hc o n t r o l l e r s d h c s dc a r dc o n t r o l l e rr e b u i l d f p g av e r i f i c a t i o n 東南大學(xué)學(xué)位論文獨創(chuàng)性聲明 本人聲明所呈交的學(xué)位論文是我個人在導(dǎo)師指導(dǎo)下進(jìn)行的研究工作及取得的研究成果 盡我所 知 除了文中特別加以標(biāo)注和致謝的地方外 論文中不包含其他人已經(jīng)發(fā)表或撰寫過的研究成果 也不包含為獲得東南大學(xué)或其它教育機(jī)構(gòu)的學(xué)位或證書而使用過的材料 與我一同工作的同志對本 研究所做的任何貢獻(xiàn)均已在論文中作了明確的說明并表示了謝意 研究生簽名 日期 卑盟 東南大學(xué)學(xué)位論文使用授權(quán)聲明 東南大學(xué) 中國科學(xué)技術(shù)信息研究所 國家圖書館有權(quán)保留本人所送交學(xué)位論文的復(fù)印件和電 子文檔 可以采用影印 縮印或其他復(fù)制手段保存論文 本人電子文檔的內(nèi)容和紙質(zhì)論文的內(nèi)容相 一致 除在保密期內(nèi)的保密論文外 允許論文被查閱和借閱 可以公布 包括以電子信息形式刊登 論文的全部內(nèi)容或中 英文摘要等部分內(nèi)容 論文的公布 包括以電子信息形式刊登 授權(quán)東南大 學(xué)研究生院辦理 研究生簽名 第一章緒論 1 1 課題研究背景 第一章緒論 在嵌入式系統(tǒng)的開發(fā)中 嵌入式軟件是實現(xiàn)各種系統(tǒng)功能的關(guān)鍵 也是計算機(jī)技術(shù)最活躍的研 究方向之一 不同應(yīng)用對嵌入式軟件系統(tǒng)有不同的要求 并且隨著計算機(jī)技術(shù)的發(fā)展 這些要求也 在不斷變化 通常 應(yīng)用系統(tǒng)對嵌入式軟件的基本要求是體積小 執(zhí)行速度快 具有較好的可剪裁 性和可移植性 特別地 現(xiàn)在對嵌入式軟件來說 都需要操作系統(tǒng)的支持 簡單的嵌入式系統(tǒng)沒有 操作系統(tǒng) 只是一個控制循環(huán) 但是當(dāng)系統(tǒng)變得越來越復(fù)雜時 就需要一個嵌入式操作系統(tǒng)來支持 否則應(yīng)用軟件就會變得過于復(fù)雜 使開發(fā)難度過大 安全性和可靠性都難以保證 現(xiàn)在 專門為嵌入式產(chǎn)品開發(fā)的各種操作系統(tǒng)層出不窮 各界關(guān)注也特別多 然而 如何加載 操作系統(tǒng)這個問題卻研究得比較少 這就產(chǎn)生了另一個相關(guān)主題b o o t l o a d e r b o o t l o a d e r 的功能之 一就是引導(dǎo)與加載內(nèi)核鏡像 b o o t l o a d e r 是與系統(tǒng)高度相關(guān)的初始化軟件 其廣泛用于有操作系統(tǒng) 的手持終端設(shè)備 智能家電 機(jī)項盒等嵌入式設(shè)備上 1 1 b o o t l o a d e r 不僅擔(dān)負(fù)著初始化硬件和引導(dǎo) 操作系統(tǒng)的雙重責(zé)任 還負(fù)責(zé)完成系統(tǒng)調(diào)試 系統(tǒng)配制等功能 每種不同的c p u 體系結(jié)構(gòu)都有不同 的b o o t l o a d e r 除了依賴于c p u 的體系結(jié)構(gòu)外 b o o t l o a d e r 實際上也依賴于具體的嵌入式板級設(shè)備 的配置 如r a m 的大小 r a m 在整個系統(tǒng)空間中的位置 r o m 的大小和位置 與主機(jī)的通信方 式掣2 j p b o o t l o a d e r 依據(jù)量體裁衣 定身制作的原則 將滿足要求的最小化代碼存放在啟動介質(zhì)中 從嵌入式系統(tǒng)實際開發(fā)角度講 嵌入式操作系統(tǒng)的引導(dǎo)配置甚至應(yīng)用程序的運行狀況都和 b o o t l o a d e r 有一定的關(guān)聯(lián) b o o t l o a d e r 的重要性主要表現(xiàn)在以下幾個方面 l 功能的多樣性 對于常見的的p c 來說 操作系統(tǒng)內(nèi)核主要存放在磁盤上 其位置 大小都 存在一定的差異 這個時候 b o o t l o a d e r 的主要任務(wù)就是根據(jù)位置 大小等信息從磁盤讀入操作系 統(tǒng)內(nèi)核并加以引導(dǎo) 由于p c 具有很長的發(fā)展歷史 其硬件體系結(jié)構(gòu)和操作系統(tǒng)引導(dǎo)過程已經(jīng)形成規(guī) 范 另外 p c 機(jī)中b i o s 的存在 在某種程度上也簡化了b o o t l o a d e r x 寸硬件進(jìn)行檢測和初始化的過程 因此 p c 機(jī)中的b o o t l o a d e r 和硬件的關(guān)系就不如嵌入式系統(tǒng)中的那么緊密 而對嵌入式系統(tǒng)來說 由于其系統(tǒng)的多樣性 所以b o o t l o a d e r 的主要工作不僅要包括從存儲介質(zhì)中將操作系統(tǒng)內(nèi)核讀入內(nèi) 存并加以執(zhí)行 還必須要擔(dān)負(fù)起對硬件的初始化和檢測過程 有些甚至需要從串并口或者網(wǎng)卡上將 操作系統(tǒng)內(nèi)核下載到本機(jī)中 其復(fù)雜程度可想而知 嵌入式系統(tǒng)的b o o t l o a d e r 般從某個固定的地 址處開始執(zhí)行 這個固定的地址可能是一段r o m 或f l a s h 空間 并且可以直接運行1 4 1 2 在產(chǎn)品開發(fā)中的必要性 對于嵌入式系統(tǒng)的硬件提供商 所面對的是系統(tǒng)的二次開發(fā)商而不 是最終用戶 往往并不清楚二次開發(fā)商所要使用的操作系統(tǒng) 不同的操作系統(tǒng)內(nèi)核其大小 引導(dǎo)方 式 內(nèi)核參數(shù)傳遞方法等都存在一定的差異 顯然 要求二次開發(fā)商來開發(fā)針對硬件廠商的 b o o t l o a d e r 是不現(xiàn)實的 其涉及到研發(fā)成本 技術(shù)機(jī)密等多方面因素 因此 對于硬件廠商來說 在其硬件平臺上提供一個靈活性很高的引導(dǎo)程序以方便二次開發(fā)商是其必須要完成的工作 因此 對于硬件提供商來說 b o o t l o a d e r 的開發(fā)是其產(chǎn)品開發(fā)中的重要組成部分 實際上大多數(shù)的嵌入式 東南大學(xué)碩士學(xué)位論文 處理器生產(chǎn)商在自己產(chǎn)品的開發(fā)包中都會提供一個或多個b o o t l o a d e r 并附帶源代碼 以方便二次 開發(fā)商的移植工作 3 為系統(tǒng)的可升級性和可調(diào)試性提供方便 任何軟件的開發(fā)都離不開調(diào)試過程 對嵌入式系統(tǒng) 的軟件 尤其是操作系統(tǒng)內(nèi)核 需要反復(fù)地將其加載到目標(biāo)機(jī)上 此外 即使在系統(tǒng)的運行過程中 也難免會遇到需要對系統(tǒng)進(jìn)行升級的情況 這就需要提供一種方法以方便對系統(tǒng)進(jìn)行替換和升級 這個時候 解決這些闖題的一個自然的方法就是設(shè)計一個包含這些功能的b o o t l o a d e r 1 2b o o t l o a d e r 研究現(xiàn)狀 由于同一種內(nèi)核 不同廠家生產(chǎn)的芯片差別很大 因此不易編寫出統(tǒng)一的b o o t l o a d e r 代碼 很 多公司針對這一問題而采取的策略是 不提供完整的b o o t l o a d e r 代碼 例如a r m 公司的開發(fā)工具 a d s 提供了一些功能代碼 b o o t l o a d e r 代碼不足的部分由芯片廠商提供或者由用戶自己編寫 雖 然也可以自行編寫b o o t l o a d e r 但從可利用的資源和實際項目開發(fā)考慮 采用移植和修改己有的通 用b o o t l o a d e r 源碼來解決這一問題更符合大多數(shù)項目的開發(fā)要求 目前通用的b o o t l o a d e r 很多 功能強(qiáng)大 開發(fā)容易 而且由專人維護(hù)升級 現(xiàn)在比較常見的嵌 入式的b o o t l o a d e r 主要有以下幾種 5 1 4 1 u b o o tu b o o t u n i v e r s a lb o o t l o a d e r 是遵循g p l 條款的開放源碼項目 從f a d s r o m 8 x x r o m p p c b o o t 逐步發(fā)展演化而來 其源碼目錄 編譯形式與l i n u x 內(nèi)核很相似 事實上不少 u b o o t 源碼就是相應(yīng)l i n u x 內(nèi)核源程序的簡化 尤其是一些設(shè)備的驅(qū)動程序 但是u b o o t 不僅僅支 持嵌入式l i n u x 系統(tǒng)的引導(dǎo) 當(dāng)前 它還支持n e t b s d v x w o r k s a r t o s l y n x o s 等嵌入式操 作系統(tǒng) 并且支持p o w e r p c m i p s x 8 6 a r m n i o s x s c a l e 等諸多常用系列的處理器 2 b l o bb l o b 是b o o t l o a d e r o b j e c t 的縮寫 是由著名的開源嵌入式l i n u x 工程l a r t 發(fā)展起來 的一個開源b o o t l o a d e r 程序 是一款功能強(qiáng)大的b o o t l o a d e r 它遵循g p l 源代碼完全開放的原則 b l o b 既可以用來簡單的調(diào)試 也可以啟動l i n u xk e r n e l 目前它主要支持i n t e l 的s t r o n g a r m 體系結(jié) 構(gòu)和x s c a l e 結(jié)構(gòu)的a r m 芯片 3 o p e nb i o so p e n b i o s 是一個開源的 可移植的固件程序 其目標(biāo)是實現(xiàn)一個與i e e e l 2 7 5 1 9 9 4 即o p e nf i r m w a r e 開發(fā)固件標(biāo)準(zhǔn) 標(biāo)準(zhǔn)1 0 0 兼容的固件程序 o p e n b i o s 目前支持x 8 6 a l p h a a m d 6 4 和i p f 等體系結(jié)構(gòu)的處理器 4 l i n u xb i o sl i n u xb i o s 是l o s a l a m o s 的高級計算實驗室中的集群研究室在1 9 9 9 年發(fā)起的一 個研究項目 發(fā)起這個項目的最初動機(jī)是為了讓操作系統(tǒng)在啟動后可以控制集群系統(tǒng)的節(jié)點機(jī) l i n u x b i o s 的啟動速度很快 其最快的啟動時間號稱只需3 秒 5 a n g e l 和a n g e l b o o t 這是一種典型的目標(biāo)板十主機(jī)型的b o o t l o a d e r 支持i n t e l 的a s s a b c t 目 標(biāo)板的部分存放在f l a s h 中 可以通過串口將內(nèi)核加載到f l a s h 中 主機(jī)端通過簡單的r c 文件來加 以配置 在正常的啟動過程中它把內(nèi)核和r a i nd i s k 加載到r a m 中再從內(nèi)核的入口處執(zhí)行 a n g e l 和a n g e l b o o t 是一個總的b o o t l o a d e r 的稱呼 a n g e l 是目標(biāo)板上運行的部分 在啟動的時候執(zhí)行 而a n g e l b o o t 是運行在主機(jī)上的部分 它和目標(biāo)機(jī)上的a n g e l 配合來控制對內(nèi)核的加載操作 a n g e l 2 第一章緒論 實際上還可以用做調(diào)試器代理來用 1 3 課題的主要內(nèi)容 嵌入式產(chǎn)品的開發(fā)和使用 需要操作系統(tǒng)和應(yīng)用軟件的支持 嵌入式產(chǎn)品的市場定位決定了它 的低成本要求 本課題的意義即以上面兩點為基礎(chǔ) 嵌入式系統(tǒng)低成本啟動方案的設(shè)計與實現(xiàn)對降 低嵌入式產(chǎn)品的成本具有實際的幫助 本文的內(nèi)容主要包括以下幾個部分 第一章 緒論 介紹了嵌入式系統(tǒng)中b o o t l o a d e r 的重要性和多樣性 以及對不同系統(tǒng)的不同選 擇 由此得出本課題的來源和本文的主要研究工作 第二章 b o o t l o a d e r 功能分析 闡述了b o o t l o a d e r 的基本原理 并歸納出其通用架構(gòu) 并討論 了基于三種不同存儲介質(zhì)n o rf l a s h n a n df l a s h 和s d 卡的啟動方式的差異以及各自的適用范圍 第三章 為本文的重點章節(jié) 主要內(nèi)容為低成本啟動方案的設(shè)計 介紹了現(xiàn)有的軟硬件條件 以及在此基礎(chǔ)上完成啟動方案的設(shè)計 在n o rf l a s h 啟動代碼的基礎(chǔ)上實現(xiàn)n o rf l a s h n a n df l a s h 的啟動方案 基于n a n df l a s h 的啟動設(shè)計則按照是否使用e s r a m 片上s 洲 分成兩種不同的 設(shè)計實現(xiàn) 基于s d 卡的啟動則通過設(shè)計s d 卡啟動控制器和軟件啟動流程完成 第四章 本文設(shè)計方案的測試工作 仍為本文的重點部分 根據(jù)現(xiàn)有的軟件和硬件條件 首先 在服務(wù)器上面驗證基于各種存儲介質(zhì)基本的讀寫功能是否正確 然后搭建f p g a 平臺 通過設(shè)計外 圍相關(guān)硬件電路 完成不同b o o t l o a d e r 的f p g a 驗證 以證實設(shè)計的正確性和可行性 并根據(jù)f p g a 測試結(jié)果 比較各個啟動方案的速度 分析成本 確定各自的適用環(huán)境 第五章 為全文的總結(jié)與展望 總結(jié)本文所做的工作 并對本文的深入研究提出目標(biāo) 3 東南大學(xué)碩士學(xué)位論文 第二章b o o t l o a d e r 功能分析 2 1b o o t l o a d e r 基本概念 一個嵌入式系統(tǒng)從軟件的角度看通??梢苑譃樗膫€層次 引導(dǎo)加載程序 操作系統(tǒng)內(nèi)核 文件 系統(tǒng) 用戶應(yīng)用程序 如圖2 1 所示 l 掰戶曉弼揮 謦 交睜蕞繞 撩忙鬟縫內(nèi)緩 0 學(xué)勘獲攆佯 象綾湄啦揍f l i i 設(shè)備寢萌 據(jù)o 系緩嚷 0 檻鏹f 懣揮蠲垮 兆冬芬緩 齲管理 射辮營 璦 交佟系緩 蚓躇魚脊 償髻 移l 捌 溺轡豸撼目囂等 圖2 1 操作系統(tǒng)層次圖 引導(dǎo)加載程序是系統(tǒng)加電后運行的第一段代碼 常用的p c 中的引導(dǎo)程序一般由b i o s 和位于 m b r 的o sb o o t l o a d e r 例如l i l o 或者g r u b 一起組成 b i o s 在完成硬件檢測和資源分配后 將 硬盤m b r 中的b o o t l o a d c r 讀到系統(tǒng)的r a m 中 然后將控制權(quán)交給o sb o o t l o a d c r b o o t l o a d c r 的 主要運行任務(wù)就是將內(nèi)核鏡象從硬盤上讀到r a m 中 然后跳轉(zhuǎn)到內(nèi)核的入口點去運行 也即開始 啟動操作系統(tǒng) 而在嵌入式系統(tǒng)中 通常并沒有像b i o s 那樣的固件程序 有的嵌入式c p u 也會 內(nèi)嵌一段短小的啟動程序 因此整個系統(tǒng)的加載啟動任務(wù)就完全由b o o t l o a d e r 來完成 簡單地說 b o o t l o a d c r 就是在操作系統(tǒng)內(nèi)核運行前執(zhí)行的一段小程序 通過這段小程序 可以 初始化必要的硬件設(shè)備 創(chuàng)建內(nèi)核需要的信息并將這些信息通過相關(guān)機(jī)制傳遞給內(nèi)核 從而將系統(tǒng) 的軟硬件環(huán)境帶到一個合適的狀態(tài) 最終調(diào)用操作系統(tǒng)內(nèi)核 真正起到引導(dǎo)和加載內(nèi)核的作用 1 5 1 1 6 1 2 2b o o t l o a d e r 的共性 通常 b o o t l o a d e r 是嚴(yán)重依賴于硬件而實現(xiàn)的 特別是在嵌入式系統(tǒng)中 n 1 9 1 不同的體系結(jié)構(gòu) 需求的b o o t l o a d c r 是不同的 因此 在嵌入式世界里建立一個通用的b o o t l o a d c r 幾乎是不可能的 盡管如此 仍然可以對b o o t l o a d e r 歸納出一些通用的概念 以指導(dǎo)用戶特定的b o o t l o a d e r 設(shè)計與實 現(xiàn) 1 b o o t l o a d e r p t i 支持的c p u 和嵌入式板 每種不同的c p u 體系結(jié)構(gòu)都有不同的b o o t l o a d c r 有些b o o t l o a d c r 也支持多種體系結(jié)構(gòu)的 c p u 比如u b o o t 就同時支持a r m 體系結(jié)構(gòu)和m i p s 體系結(jié)構(gòu) 除了依賴于c p u 的體系結(jié)構(gòu)外 b o o t l o a d c r 實際上也依賴于具體的嵌入式板級設(shè)備的配置 這也就是說 對于兩塊不同的嵌入式板 而言 即使它們是基于同一種c p u 而構(gòu)建的 要想讓運行在一塊板子上的b o o t l o a d e r 程序也能運 行在另一塊板子上 通常都需要修改b o o t l o a d e r 的源程序 4 2 b o o t l o a d e r 的安裝媒介 i n s t a l l a t i o nm e d i u m 系統(tǒng)加電或復(fù)位后 所有的c p u 通常從某個由c p u 制造商預(yù)先安排的地址上取指令 比如 基于a r m 7 t d m ic o r e 的c p u 在復(fù)位時通常都從地址o x 0 0 0 0 0 0 0 0 取它的第一條指令 而基于c p u 構(gòu)建的嵌入式系統(tǒng)通常都有某種類型的固態(tài)存儲設(shè)備 比如 r o m e e p r o m 或f l a s h 等 被映射 到這個預(yù)先安排的地址上 因此在系統(tǒng)加電后 c p u 將首先執(zhí)行b o o t l o a d e r 程序 圖2 2 就是一個 同時裝有b o o t l o a d e r 內(nèi)核的啟動參數(shù) 內(nèi)核鏡像和根文件系統(tǒng)鏡像的固態(tài)存儲設(shè)備的典型空間分 配結(jié)構(gòu)圖 雨撬竊 段辯l h 辯t l 中 晚援鏡像艇室偉繇繞鏡 鏨 旗努數(shù) 圖2 2 固態(tài)存儲設(shè)備的典型空間分配結(jié)構(gòu) 3 b o o t l o a d e r 的啟動過程是單階段 s i n g l es t a g e 還是多階段 m u l t i s t a g e 通常多階段的b o o t l o a d e r 能提供更為復(fù)雜的功能 以及更好的可移植性 從固態(tài)存儲設(shè)備上啟 動的b o o t l o a d e r 大多都是兩個階段的啟動過程 也即啟動過程可以分為s t a g e l 和s t a g e 2 兩部分 至 于在s t a g e l 和s t a g e 2 具體完成哪些任務(wù)將在下面做詳細(xì)討論 4 b o o t l o a d e r 的操作模式 大多數(shù)b o o t l o a d e r 都包含兩種不同的操作模式 啟動加載 模式和 下載 模式 這種區(qū)別 對于開發(fā)人員才有意義 但從最終用戶的角度看 b o o t l o a d e r 的作用永遠(yuǎn)就是用來加載操作系統(tǒng) 而并不存在所謂的啟動加載模式與下載工作模式的區(qū)別 啟動加載模式 這種模式也稱為 自主 模式 即b o o t l o a d e r 從目標(biāo)機(jī)上的某個固體存儲設(shè)備 上將操作系統(tǒng)加載到r a m 中運行 整個過程沒有用戶的介入 這種模式是b o o t l o a d e r 的正常工作 模式 因此當(dāng)以嵌入式產(chǎn)品發(fā)布的時候 b o o t l o a d e r 必須工作在這種模式下 下載模式 在這種模式下 目標(biāo)機(jī)上的b o o t l o a d e r 將通過串口或者網(wǎng)絡(luò)連接或者其它通信手段 從主機(jī)下載文件 比如 下載內(nèi)核鏡像和根文件系統(tǒng)鏡像等 從主機(jī)下載的文件通常首先被 b o o t l o a d e r 保存到目標(biāo)機(jī)的r a m 中 然后被b o o t l o a d e r 寫到目標(biāo)機(jī)上的f l a s h 類固態(tài)存儲設(shè)備中 b o o t l o a d e r 的這種模式通常在第一次安裝內(nèi)核與根文件系統(tǒng)時使用 此外 以后的系統(tǒng)更新也會使 用b o o t l o a d c r 的這種工作模式 工作于這種模式下的b o o t l o a d e r 通常都會向它的中斷用戶提供一個 簡單的命令行接口 5 b o o t l o a d e r 與主機(jī)之間進(jìn)行文件傳輸所用的通信設(shè)備及協(xié)議最常見的情況就是 目標(biāo)機(jī)上的 b o t l o a d e r 通過串口與主機(jī)之間進(jìn)行文件傳輸 傳輸協(xié)議通常是x m o d e l y m o d e l z m o d e l 協(xié)議中的一種 但是 串口傳輸?shù)乃俣仁怯邢薜?因此通過以太網(wǎng)連接并借助t f t p 協(xié)議來下載文件是個更好的選 擇 此外 系統(tǒng)更新也會使用b o o t l o a d e r 的這種工作模式 工作于這種模式下的b o o t l o a d c r 通常都 會向它的終端用戶提供一個簡單的命令行接口 6 b o o t l o a d e r 的通用性 5 東南大學(xué)碩士學(xué)位論文 b o o t l o a d e r 的設(shè)計與實現(xiàn)是與具體的c p u 以及具體的硬件系統(tǒng)緊密相關(guān)的 要實現(xiàn)一個通用的 b o o t l o a d e r 就要適合具體的微處理器以及硬件系統(tǒng) 另外 不同的操作系統(tǒng) 可能對具體的 b o o t l o a d e r 還會有另外額外的要求 同時 對于b o o t l o a d e r 的這些共同特性 理論上只局限于 b o o t l o a d e r 的基本功能 因為擴(kuò)展功能眾多 可以有串口 u s b 以太網(wǎng)接口 i d e c f 等 無法進(jìn) 行歸納與總結(jié) 對于一個系統(tǒng)來說 b o o t l o a d e r 作為引導(dǎo)與加載內(nèi)核鏡像的工具 必須提供以下幾個功能 初始化硬件設(shè)備 為后面程序的運行以及k e r n e l 的加載準(zhǔn)備一些基本的硬件環(huán)境 初始化r a m b o o t l o a d e r 必須能夠初始化r a m 因為將來系統(tǒng)要通過它保存一些v o l a t i l e 數(shù)據(jù) 但具體地實現(xiàn)要依賴與具體的c p u 以及硬件系統(tǒng) 初始化串口 b o o t l o a d e r 立該要初始化以及使能至少一個串口 通過它與控制臺聯(lián)系進(jìn)行一些 d e b u g 的i 作以及與p c 通信 創(chuàng)建內(nèi)核參數(shù)列表 啟動內(nèi)核鏡像 這是必須的 因為b o o t l o a d e r 的最終任務(wù)就是加載內(nèi)核并將控制權(quán)交與它 2 3b o o t l o a d e r 典型結(jié)構(gòu)框架 上一小節(jié)在分析b o o t l o a d e r 共性的基礎(chǔ)上 從理論上對b o o t l o a d e r 的通用性作了總結(jié) 而這些 理論仍然比較抽象 難以客觀理解 需要提出具體的實現(xiàn)模型才可以起到指導(dǎo)作用 由于b o o t l o a d e r 的實現(xiàn)依賴于c p u 的體系結(jié)構(gòu) 因此將b o o t l o a d e r 的實現(xiàn)分為s t a g e l 和s t a g e 2 兩大部分 依賴于c p u 體系結(jié)構(gòu)的代碼 比如設(shè)備初始化代碼等 放在s t a g e l 中 而且通常都用匯 編語言來實現(xiàn) 以達(dá)到短小精悍的目的 而s t a g e 2 則通常用c 語言來實現(xiàn) 這樣可以實現(xiàn)復(fù)雜的功 能 而且代碼會具有更好的可讀性和可移植性 2 0 1 b o o t l o a d e r 的s t a g e l 通常包括以下步驟 以執(zhí)行的先后順序 硬件設(shè)備初始化 為加載b o o t l o a d e r 的s t a g e 2 準(zhǔn)備r a m 空間 加載b 0 0 t l 0 a d e r 的s t a g e 2 到r 蝴空間中 設(shè)置好堆棧 跳轉(zhuǎn)至l j s t a g e 2 的c 入口點 b o o t l o a d e r 的s t a g e 2 通常包括以下步驟 以執(zhí)行的先后順序 初始化本階段要使用到的硬件設(shè)備 檢測系統(tǒng)內(nèi)存映射 m e m o r ym a p 將k e r n e l 鏡像和根文件系統(tǒng)鏡像從f l a s h 上讀到刪空間中 為內(nèi)核設(shè)置啟動參數(shù) 調(diào)用內(nèi)核 6 第二章b o o t l o a d e r 功能分析 2 3 1b o o t l o a d e r 的s t a g e l 如圖2 3 所示 s t a g e l 流程如下 硬住蹬褥裙始化 量多 為加敬b c o t h 嘲d 玎豹g t a 咎2 激貉f 淑m j 孛問 逞 l 粥綴b 一瓣盯的螂2 劍 拿窿巾j 設(shè)疑好堆棧 毒 掰e 轉(zhuǎn)劍 t a 鏊e 鵑c 入u 點執(zhí) f 碼 圖2 3s t a g e i 流程圖 l 基本的硬件初始化 在s t a g e l 中要完成一些準(zhǔn)備工作 目的是為s t a g e 2 的執(zhí)行以及隨后的k e r n e l 的執(zhí)行準(zhǔn)備好一些 基本的硬件環(huán)境 它通常包括以下步驟 1 屏蔽所有的中斷 為中斷提供服務(wù)通常是o s 設(shè)備驅(qū)動程序的責(zé)任 因此在b o o t l o a d e r 的執(zhí)行全過程中可以不必響應(yīng)任何中斷 中斷屏蔽可以通過寫c p u 的中斷屏蔽寄存器或狀態(tài)寄存器 比如a r m 的c p s r 寄存器 來完成 2 設(shè)置c p u 的速度和時鐘頻率 3 r a m 初始化 包括正確地設(shè)置系統(tǒng)的內(nèi)存控制器的功能寄存器以及各內(nèi)存庫控制寄存器 等 4 通過g p i o 來驅(qū)動l e d 其目的是表明系統(tǒng)的狀態(tài)是o k 還是e r r o r 如果板子上沒有l(wèi) e d 那么也可以通過初始化u a r t 向串1 2 1 打印b o o t l o a d e r 的l o g o 字符信息來完成這一點 5 關(guān)閉c p u 內(nèi)部指令 數(shù)據(jù)c a c h e 2 為加載s t a g e 2 準(zhǔn)備r a m 空間 為了獲得更快的執(zhí)行速度 通常把s t a g e 2 加載到r a m 空間中來執(zhí)行 因此必須為加載 b o o t l o a d e r 的s t a g e 2 準(zhǔn)備好一段可用的r a m 空間范圍 由于s t a g e 2 通常是c 語言執(zhí)行代碼 因此在考慮空間大小時 除了s t a g e 2 可執(zhí)行鏡象文件的 大小外 還必須把堆??臻g也考慮進(jìn)來 此外 空間大小最好是m e m o r yp a g e 大小 通常是4 i l b 的 倍數(shù) 一般而言 i m 的刪空間已經(jīng)足夠了 具體的地址范圍可以任意安排 但是 必須確保所 安排的地址范圍的確是可讀寫的r a m 空間 7 東南大學(xué)碩士學(xué)位論文 3 加載s t a g e 2 到r a m 中時要確定兩點 1 s t a g e 2 的可執(zhí)行鏡象在固態(tài)存儲設(shè)備的存放起始 地址和終止地址 2 r a m 空間的起始地址 4 設(shè)置堆棧指針s p 堆棧指針的設(shè)置是為了執(zhí)行c 語言代碼作好準(zhǔn)備 5 跳轉(zhuǎn)到s t a g e 2 的c 入口點 在上述一切都就緒后 就可以跳轉(zhuǎn)到b o o t l o a d e r 的s t a g e 2 去執(zhí) 行了 比如 在a r m 系統(tǒng)中 這可以通過修改p c 寄存器為合適的地址來實現(xiàn) 2 3 2b o o t l o a d e r 的s t a g e 2 s t a g e 2 的代碼通常用c 語言來實現(xiàn) 以便于實現(xiàn)更復(fù)雜的功能和取得更好的代碼可讀性和可移 植性 其基本功能流程圖如圖2 4 所示 i 將k e r n e l 鏡像文f l 然h a s h 上讀i i到r a m 宅間皆i 妙 務(wù)感援設(shè)置璃鈷參數(shù) 之多 l 調(diào)用國俊 圖2 4s t a g e 2 流程圖 階段2 的實現(xiàn)首先要規(guī)劃內(nèi)存占用的布局 為k e r n e l 鏡像文件從f l a s h 中拷貝過來準(zhǔn)備r a m 空 間 之后就開始s t a g e 2 的執(zhí)行步驟 1 從f l a s h 上拷貝 通常嵌入式c p u 通常都是在統(tǒng)一的內(nèi)存地址空間中尋址f l a s h 等固態(tài)存儲設(shè)備的 因此從f l a s h 上讀取數(shù)據(jù)與從r a m 單元中讀取數(shù)據(jù)基本相同 用一個簡單的循環(huán)就可以完成從f l a s h 設(shè)備上拷貝 鏡像的工作 2 為內(nèi)核設(shè)置啟動參數(shù) 在將內(nèi)核鏡像和根文件系統(tǒng)鏡像拷貝到r a m 空間中后 就可以準(zhǔn)備啟動系統(tǒng)內(nèi)核了 但是在 調(diào)用內(nèi)核之前 應(yīng)該作一步準(zhǔn)備工作 即設(shè)置系統(tǒng)內(nèi)核的啟動參數(shù) 3 調(diào)用內(nèi)核 b o o t l o a d e r 調(diào)用系統(tǒng)內(nèi)核的方法是直接跳轉(zhuǎn)到內(nèi)核的第一條指令處 在調(diào)用內(nèi)核時 需要滿足 一些條件 1 c p u 寄存器的設(shè)置 r 0 0 r 1 機(jī)器類型 r 2 啟動參數(shù)標(biāo)記列表在r a m 中的起始地址 這三個寄存器的設(shè)置是在最后啟動內(nèi)核時通過啟動參數(shù)來傳遞完成的 2 c p u 模式 關(guān)閉中斷 屬于s v c 模式 3 c a c h e 和m m u 的設(shè)置 m m u 必須關(guān)閉 數(shù)據(jù)c a c h e 必須關(guān)閉 指令c a c h e 可以關(guān)閉也 可以開啟 8 第二章b o o t l o a d e r 功能分析 2 4 基于三種不同存儲介質(zhì)的b o o t l o a d e r 介紹 2 4 1 嵌入式存儲介質(zhì) 2 4 1 1f l a s h 存儲器 在嵌入式系統(tǒng)中 被廣泛使用的存儲設(shè)備為隨機(jī)訪問存儲器 r a m 和閃存 r a m 用來存放 系統(tǒng)運行時的數(shù)據(jù) 掉電后所存放的所有數(shù)據(jù)全部丟失 而閃存是用來存放需要永久保存的程序和 數(shù)據(jù) 掉電后不會丟失 閃存以半導(dǎo)體為存儲媒介 分為多種類型 其中n o rf l a s h 和n a n df l a s h 是目前主流的類型 2 l 2 9 1 表2 1n o rf l a s h 和n a n df l a s h 的比較 n o r h a s hn a n df l a s h 權(quán)衡角度 容量 1m b 3 2 m b16 m b 2 g b 是否支持x i p 支持否 e x e c u t ei np i a c e 擦寫速率很慢 5 s 擦寫速率很快 4 m s 性能比較 寫速率很慢 讀速率快寫速率快 讀速率快 可靠性比較低 可靠性比較好 可靠性需使用1 4 位的e d c e c c 校驗來解決位翻 位翻轉(zhuǎn)的現(xiàn)象很少見 轉(zhuǎn)的現(xiàn)象 同時需要壞塊管理 擦寫周期l o 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 l 0 0 0 0 0 0 使用壽命1 0 萬次的擦寫次數(shù)是n o r f l a s h 使用壽命的1 0 倍 接口特性具有r a m 接口 具有f o 接口特性 由控制信號控制 訪問方式可隨機(jī)訪問順序訪問 存儲代碼 因容量受限于價格 可存儲 合理用途存儲數(shù)據(jù) 因具有復(fù)雜的f l a s h 管理 少量數(shù)據(jù) n o rf l a s h 的特點是芯片內(nèi)執(zhí)行 x 口 e x e c u t ei np l a c e 這樣應(yīng)用程序可以直接在f l a s h 閃存 內(nèi)運行 不必再把代碼讀到系統(tǒng)r a m 中 n o rf l a s h 的傳輸效率很高 在i 一4 m b 的小容量時具有很 高的成本效益 但是很低的寫入和擦除速率大大影響了它的性能 n a n df l a s h 結(jié)構(gòu)能提供極高的單元密度 可以達(dá)到高存儲密度 并且寫入和擦除的速率也很快 應(yīng)用n a n df l a s h 的困難在于f l a s h 的管理和需要特殊的系統(tǒng)接口 m s y s t e m 公司在n o rf l a s h 和 n a n df l a s h 的主要區(qū)別進(jìn)行了一系列比較 主要區(qū)別如表2 1 所示 從表2 1 中可以看出 n a n df l a s h 和n o r f l a s h 的比較可以從以下幾個方面進(jìn)行 1 容量和成本 n o rh a s h 占據(jù)了容量為1 m b 3 2 m b 閃存市場的大部分 而n a n df l a s h 只是用在1 6 m b 2 g b 的 9 東南大學(xué)碩士學(xué)位論文 產(chǎn)品當(dāng)中 這也說明n o rf l a s h 主要應(yīng)用在代碼存儲介質(zhì)中 n a n df l a s h 適合于數(shù)據(jù)存儲 n a n d f l a s h 在c o m p a c tf l a s h s e c u r ed i g i t a l p cc a r d s 和m m c 存儲卡市場上所占份額最大 n a n df l a s h 的單元尺寸較小 由于生產(chǎn)過程簡單 n a n df l a s h 結(jié)構(gòu)可以在給定的模具尺寸內(nèi)提供更高的容量 也就相應(yīng)地降低了價格 2 性能比較 f l a s h 閃存是非易失存儲器 可以對存儲器單元塊進(jìn)行擦寫和再編程 任何f l a s h 器件的寫入操作 只能在空或已擦除的單元內(nèi)進(jìn)行 所以大多數(shù)情況下 在進(jìn)行寫入操作之前必須先執(zhí)行擦除 n a n d f l a s h 器件執(zhí)行擦除操作是十分簡單的 而n o rf l a s h 則要求在進(jìn)行擦除前先要將目標(biāo)塊內(nèi)所有的位 都寫為0 由于擦除n o rf l a s h 器件時是以6 4 1 2 8 k b 的塊進(jìn)行的 執(zhí)行一個寫入 擦除操作的時間為1 5 s 與此相反 擦除n a n df l a s h 器件是以8 一3 2 k b 的塊進(jìn)行的 執(zhí)行相同的操作最多只需要4 m s 執(zhí)行 擦除操作時塊尺寸的不同進(jìn)一步拉大t n o r f l a s h 和n a n df l a s h 之間的性能差距 統(tǒng)計表明 對于 給定的一套寫入操作 尤其是更新小文件時 更多的擦除操作必須在基于n o rf l a s h 的單元中進(jìn)行 這樣 當(dāng)選擇存儲解決方案時 需要權(quán)衡以下的各項因素 n o rf l a s h 的讀速率比n a n df l a s h 稍快一些 n a n df l a s h 的寫入速率比n o rf l a s h 快很多 n a n df l a s h 的4 m s 擦除速率遠(yuǎn)比n o rf l a s h 的5 s 快 大多數(shù)寫入操作需要先進(jìn)行擦除操作 n a n df l a s h 擦除電路更少 3 可靠性和耐用性 耐用性 從表中可以看到 在n a n df l a s h 閃存中 每個塊的最大擦寫次數(shù)是1 0 0 萬次 而n o r f

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論