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










評論