嵌入式系統(tǒng)結(jié)構(gòu)與協(xié)同性探討
2.2 基于ARM-μCLinux 系統(tǒng)bootloader 設(shè)計(jì)
在系統(tǒng)結(jié)構(gòu)模型以及設(shè)計(jì)流程的基礎(chǔ)上,下面通過(guò)實(shí)例說(shuō)明bootloader 的主要設(shè)計(jì)過(guò)程。
基于ARM-μCLinux 嵌入式系統(tǒng)的啟動(dòng)引導(dǎo)過(guò)程:通過(guò)串口更新系統(tǒng)軟件平臺(tái),完成啟動(dòng)、初始化、操作系統(tǒng)內(nèi)核的固化和引導(dǎo)等。硬件平臺(tái)由內(nèi)嵌ARM10 的處理器、存儲(chǔ)器2MBFlash 和16MBSDRAM、串口以及以太網(wǎng)口組成。軟件平臺(tái)組成:系統(tǒng)引導(dǎo)程序、嵌入式操作系統(tǒng)內(nèi)核、文件系統(tǒng)。采用Flash 存儲(chǔ)bootloader、內(nèi)核等,直接訪問(wèn)內(nèi)核所在地址區(qū)間的首地址。
2.3 μCLinux 內(nèi)核的加載
系統(tǒng)采用μCLinux 自帶的引導(dǎo)程序加載內(nèi)核,用自舉模式和內(nèi)核啟動(dòng)模式相互切換;同時(shí),切換到內(nèi)核啟動(dòng)模式,自動(dòng)安全地啟動(dòng)系統(tǒng)。針對(duì)ARM7TDMI 的無(wú)MMU 特性,采用修改后的μCLinux 內(nèi)核引導(dǎo)程序加載操作系統(tǒng)和初始化環(huán)境,解決內(nèi)核加載的地址重映射問(wèn)題和操作系統(tǒng)的內(nèi)存管理問(wèn)題。
2.4 WinCE 系統(tǒng)下BootLoader
完成定制WinCE 的加載主要工作是編寫啟動(dòng)加載程序bootloader 和板級(jí)支持包BSP。Bootloader 涉及到基本的硬件操作,如CPU 的結(jié)構(gòu)、指令等,同時(shí)涉及以太網(wǎng)下載協(xié)議TFTP 和映像文件格式。Bootloader支持命令輸入的方式,不用人工干預(yù)加載WinCE,其主控部分通過(guò)串口來(lái)接收用戶的命令。
2.5 系統(tǒng)板級(jí)支持包BSP
由于硬件環(huán)境、Bootloader 映射范圍以及二次開(kāi)發(fā)等原因,系統(tǒng)啟動(dòng)加載程序Bootloader 不能把經(jīng)過(guò)裁剪的OS 直接引導(dǎo)進(jìn)入硬件環(huán)境,需要建立BSP 文件,如VxWorks 的BSP 和Linux 的BSP 相對(duì)于某一CPU 來(lái)說(shuō)盡管實(shí)現(xiàn)的功能一樣,寫法和接口定義可以完全不同。BSP 的結(jié)構(gòu)與內(nèi)容差異性較大,依據(jù)不同的系統(tǒng)和應(yīng)用環(huán)境,應(yīng)設(shè)計(jì)建立合理、穩(wěn)定的BSP 內(nèi)核。
2.6 交叉融合
在分析過(guò)程、任務(wù)劃分以及系統(tǒng)協(xié)同性的基礎(chǔ)上,對(duì)系統(tǒng)底層軟件設(shè)計(jì)應(yīng)考慮Bootloader、BSP、接口以及應(yīng)用程序交叉與融合。應(yīng)用BSP 組成靈活性,設(shè)計(jì)充分考慮軟硬件協(xié)同。接口驅(qū)動(dòng)程序,如網(wǎng)絡(luò)驅(qū)動(dòng)、串口驅(qū)動(dòng)和系統(tǒng)下載調(diào)試、部分應(yīng)用程序可添加到BSP 中,從系統(tǒng)結(jié)構(gòu)的角度是,簡(jiǎn)化軟件層次和硬件尤其是存貯體系結(jié)構(gòu),當(dāng)操作系統(tǒng)運(yùn)行于硬件相對(duì)固定的系統(tǒng),BSP 也相對(duì)固定,不需要做任何改動(dòng),建立獨(dú)立的應(yīng)用程序包。如果BSP 中的應(yīng)用程序不斷升級(jí),將對(duì)系統(tǒng)穩(wěn)定性造成影響。
圖 4 表征了嵌入式系統(tǒng)三個(gè)軟件環(huán)節(jié)的結(jié)構(gòu)變化,Bootloader、BSP、接口驅(qū)動(dòng)程序以及部分應(yīng)用程序?qū)a(chǎn)生融合與交叉。對(duì)于一次開(kāi)發(fā)功能強(qiáng)大的嵌入式系統(tǒng),應(yīng)充分利用嵌入式處理器供應(yīng)商提供的Bootloader,使建立BSP 的過(guò)程變得相對(duì)容易。
評(píng)論