ARM處理器廣泛使用在嵌入式系統(tǒng)設計,低耗電節(jié)能,非常適用移動通訊領域。消費性電子產(chǎn)品,例如可攜式裝置(PDA、移動電話、多媒體播放器、掌上型電子游戲,和計算機),電腦外設(硬盤、桌上型路由器),甚至導彈的彈載計算機等軍用設施。
啟動架構是嵌入式系統(tǒng)的關鍵技術。掌握啟動架構對于了解嵌入式系統(tǒng)的運行原理有著重要的意義。嵌入式系統(tǒng)在啟動時,引導代碼、操作系統(tǒng)的運行和應用程序的加載主要有兩種架構,一種是直接從 Nor Flash 啟動的架構,另一種是直接從 Nand Flash 啟動的架構。
需要注意的是,在嵌入式系統(tǒng)啟動引導的過程中會有多種情況出現(xiàn),如 vxWorks 的啟動代碼 BootRom 就有壓縮和非壓縮,駐留和非駐留方式之分,而操作系統(tǒng)本身也多以壓縮映象方式存儲,所以啟動代碼在執(zhí)行和加載過程中需要根據(jù)不同的情況,作出相應的處理。
1 從 Nor Flash 啟動
Nor Flash 具有芯片內(nèi)執(zhí)行(XIP,eXecute In Place)的特點,在嵌入式系統(tǒng)中常做為存放啟動代碼的首選。從 Nor Flash 啟動的架構又可細分為只使用 Nor Flash 的啟動架構和 Nor Flash 與 Nand Flash 配合使用的啟動架構。圖 5 給出了這兩種啟動架構的原理框圖。
1.1 單獨使用 Nor Flash
在該架構中,引導代碼、操作系統(tǒng)和應用代碼共存于同一塊 Nor Flash 中。系統(tǒng)上電后,引導代碼首先在 Nor Flash 中執(zhí)行,然后把操作系統(tǒng)和應用代碼加載到速度更高的 SDRAM 中運行。另一種可行的架構是,在 Nor Flash 中執(zhí)行引導代碼和操作系統(tǒng),而只將應用代碼加載到 SDRAM 中執(zhí)行。
該架構充分利用了 Nor Flash 芯片內(nèi)執(zhí)行的特點,可有效提升系統(tǒng)性能。不足在于隨著操作系統(tǒng)和應用代碼容量的增加,需要更大容量昂貴的 Nor Flash 來支撐。
1.2 Nor Flash 和 Nand Flash 配合使用
Nor Flash 的單獨使用對于代碼量較大的應用程序會增加產(chǎn)品的成本投入,一種的改進的方式是采用 Nor Flash 和 Nand Flash 配合使用的架構。在該架構中附加了一塊 Nand Flash,Nor Flash(2M 或 4M)中存放啟動代碼和操作系統(tǒng)(操作系統(tǒng)可以根據(jù)代碼量的大小選擇存放于 Nor Flash 或者 Nand Flash),而 Nand Flash 中存放應用代碼,根據(jù)存放的應用代碼量的大小可以對 Nand Flash 容量做出相應的改變。
系統(tǒng)上電后,引導代碼直接在 Nor Flash 中執(zhí)行,把 Nand Flash 中的操作系統(tǒng)和應用代碼加載到速度更高的 SDRAM 中執(zhí)行。也可以在 Nor Flash 中執(zhí)行引導代碼和操作系統(tǒng),而只將 Nand Flash 中的應用代碼加載到 SDRAM 中執(zhí)行。該架構是當前嵌入式系統(tǒng)中運用最廣泛的啟動架構之一。
1.3 從 Nand Flash 啟動
有些處理器如 SamSung 公司的 arm920T 系列處理器 S3C2410 支持從 Nand Flash 啟動的模式,它的工作原理是將 NandFlash 中存儲的前 4KB 代碼裝入一個稱為 Steppingstone(BootSRAM)的地址中,然后開始執(zhí)行該段引導代碼,從而完成對操作系統(tǒng)和應用程序的加載。該方式需要處理器內(nèi)部有 NAND 控制器,同時還要提供一定大小額外的 SRAM 空間,有一定的使用局限性,在實際開發(fā)中較少使用。