李文光
(燈塔市中等職業技術專業學校,111300)
如今,我國對計算機軟件的開發越來越重視,這也導致軟件的開發過程越來越復雜,而嵌入式系統軟件的開發是軟件開發中的重要組成部分。但隨著人們對計算機軟件的不斷需求,對嵌入式計算機系統軟件開發的改革與創新勢在必行。然而,通用嵌入式計算機平臺的出現,使得計算機的系統更加完善。通用嵌入式計算機軟件的開發環境有很多,以MPC8548E 為主要基本結構的通用嵌入式計算機軟件是其中的重點。本文通過對基于MPC8548E 的通用嵌入式計算機系統平臺軟件進行整體描述,重點研究嵌入式計算機軟件的共同需求、系統軟件開發的基本結構設計以及軟件開發系統的程序設計的實現。
通用嵌入式計算機軟件的共同需求主要分為兩類,分別為基于平臺的計算機軟件需求和基于開發的計算機軟件需求。下面對這兩類需求進行分析與總結:
對于通用嵌入式的平臺來說,其計算機系統軟件的共同需求分別為:①通用嵌入式系統的可行性需求,由于嵌入式系統隨著科學技術的進步,其功能也逐漸強大,系統的穩定性較差,因此,系統在運行時需要對其的可行性進行研究;②嵌入式系統還需要對其性能加以要求,包括其存儲數據的能力、計算數據的能力以及吞吐量等;③平臺系統還需要擁有較多的數據接口,對軟件的開發只應用API 接口;④系統平臺要求減少對能源的使用率,并且在一定程度上增加系統的運行時間;⑤嵌入式系統平臺需要擁有較大的發展空間,這就要求系統需要一個較為開放的平臺體系結構。
通用嵌入式系統除了擁有在平臺上的需求外,還應該有開發方面的需求。嵌入式系統軟件在開發方面的要求主要有:①建立良好的系統開發環境,主要應用合理的開發語言對嵌入式系統軟件進行集成化的開發;②將平臺上的特點運用到系統的開發中,使用嵌入式操作系統對平臺軟件進行開發,可以有效的達到系統中API 接口的要求與多重設計的要求。
嵌入式平臺系統軟件的建立主要分為開發軟件的工具、嵌入式操作系統、開發系統的驅動設備、以及系統運行與維護的設備四種。這四種是軟件開發平臺的基礎,也是組成整體嵌入式系統軟件開發的重要部分。
開發工具鏈是開發系統的重要組成部分。其中主要有Tornado、bootloader 系統調試工具、FPGA、CPLD、DSP 等一系列的開發工具。對于基于MPC8548E 的通用嵌入式開發平臺,需要對bootloader 的調試工具選擇Freescale CodeWarror。而對于FPGA 和CPLD 來說,只適用于對專門的平臺進行開發使用。系統平臺的板級支持包主要作用于對系統功能進行管理,并為系統程序與硬件的連接提供專門的數據接口,分為bootloader、VxWorks 映像和驅動三個方面。而系統維護的設備主要是維護系統編碼的安全性能等。系統的測試設備是對系統功能的實現進行測試的主要工具。
2.2.1 BSP 的構造
BSP 的具體構造以及與其有關的數據代碼:

圖1 BSP 的數據代碼及其構造圖
/target/h 目錄為VxWorks 的頭文件,/target/lib 目錄為VxWorks 的函數庫,/target/src 目錄為部分驅動程序代碼及其模板,/target/unsupported 目錄為不支持的參考代碼。
2.2.2 BSP 的開發過程
BSP 的開發過程主要分為六個階段;①設計計劃,計劃嵌入式計算機設計平臺的整體結構及其實現過程;②應用仿真技術對開發工具進行設計;③對系統中的數據值進行分析,實現MPC8548E 的網絡驅動程序;④實現外圍設備的驅動;⑤對嵌入式系統進行調試并改善系統的功能;⑥對軟件進行售后維修及升級等。
系統維護工具主要是代碼固化。嵌入式系統軟件的代碼固化是嵌入式開發過程中的重要部分,代碼固化分為平臺軟件固化和應用軟件固化兩種。基于平臺的軟件固化中,被固化的代碼有bootloader、VxWorks,FPGA 的BIN 文件、DSP 的BIN 文件。基于應用的軟件固化中的代碼主要有VxWorks、FPGA 的BIN 文件、DSP 的固化文件、應用程序的固化文件。
在應用Nor Flash 當作代碼固化的存儲空間的分配形式為:

圖2 代碼固化存儲空間圖
為了減少代碼固化情況,系統為固化的代碼增加一項Daemon 任務,Daemon 任務的啟動函數C 代碼原型如下:
void InitUsrDaemon(void);
另外,代碼固化工具還可以選擇函數庫方式:
int FlashFiIe(
unsigne int v_addr,//固化Flash 的有效地址
const char *v_fn, //存儲文件名
);
為了維護嵌入式系統,設計了bootloader 的系統引導形式,可以對系統的實現模式進行引導,引導模式的應用代碼有bootConfig.c 的改動和參數配置工具庫實現。
對于bootConfig.c 的改動:
(1)增加功能函數:
LoadModuleVxWorks (int v type,//加載的VxWorks 類型0-BSP,1-用戶
FUNCPTR*pEntiy//返回的入口函數地址
);
(2)在bootCmdLoopO 中增加命令“X”和“X”,當操作員在bootloader
命令行鍵入這兩個字母的任意一個時,即調用函數
LoadModuleVxWorks(0)加載平臺BSP VxWorks。
(3)在bootCmdLoopO 中,調用 getBootParams ()加載啟動參數。
固化功能實現的函數主要以DaemonO 函數為主,DaemonO函數的字符串數組有四個文件,主要代碼形式為:
char*s—fh_str[4]={
FPGA 一FILE NAME, // App FPGA.bin
DSP_FILE_NAME, // App DSP.bin
USER VXWORKS FILE NAME, // App VxWorks
APP—OUT—FILE—NAME// App.out
通過對基于MPC8548E 的通用嵌入式計算機平臺系統軟件與系統的實現進行研究,可以發現,嵌入式計算機軟件的構造系統非常復雜,研究人員需要在現有軟件系統的基礎上,進行創新與改革,使嵌入式系統軟件更加適應社會的需求。
[1] 孔祥營,柏桂枝.嵌入式實時操作系統VxWorks 及其開發環境Tornado[M].北京:中國電力出版社,2010.
[2] 馬學國.正確理解資產減值準則[J].2010,5(3):82-86.
[3] 姜兆義,戴金海..嵌入式系統集成開發環境研究[J].電腦與信息技術,2012,2(2):98-104.