李文光
(燈塔市中等職業(yè)技術(shù)專業(yè)學(xué)校,111300)
如今,我國對計算機軟件的開發(fā)越來越重視,這也導(dǎo)致軟件的開發(fā)過程越來越復(fù)雜,而嵌入式系統(tǒng)軟件的開發(fā)是軟件開發(fā)中的重要組成部分。但隨著人們對計算機軟件的不斷需求,對嵌入式計算機系統(tǒng)軟件開發(fā)的改革與創(chuàng)新勢在必行。然而,通用嵌入式計算機平臺的出現(xiàn),使得計算機的系統(tǒng)更加完善。通用嵌入式計算機軟件的開發(fā)環(huán)境有很多,以MPC8548E 為主要基本結(jié)構(gòu)的通用嵌入式計算機軟件是其中的重點。本文通過對基于MPC8548E 的通用嵌入式計算機系統(tǒng)平臺軟件進行整體描述,重點研究嵌入式計算機軟件的共同需求、系統(tǒng)軟件開發(fā)的基本結(jié)構(gòu)設(shè)計以及軟件開發(fā)系統(tǒng)的程序設(shè)計的實現(xiàn)。
通用嵌入式計算機軟件的共同需求主要分為兩類,分別為基于平臺的計算機軟件需求和基于開發(fā)的計算機軟件需求。下面對這兩類需求進行分析與總結(jié):
對于通用嵌入式的平臺來說,其計算機系統(tǒng)軟件的共同需求分別為:①通用嵌入式系統(tǒng)的可行性需求,由于嵌入式系統(tǒng)隨著科學(xué)技術(shù)的進步,其功能也逐漸強大,系統(tǒng)的穩(wěn)定性較差,因此,系統(tǒng)在運行時需要對其的可行性進行研究;②嵌入式系統(tǒng)還需要對其性能加以要求,包括其存儲數(shù)據(jù)的能力、計算數(shù)據(jù)的能力以及吞吐量等;③平臺系統(tǒng)還需要擁有較多的數(shù)據(jù)接口,對軟件的開發(fā)只應(yīng)用API 接口;④系統(tǒng)平臺要求減少對能源的使用率,并且在一定程度上增加系統(tǒng)的運行時間;⑤嵌入式系統(tǒng)平臺需要擁有較大的發(fā)展空間,這就要求系統(tǒng)需要一個較為開放的平臺體系結(jié)構(gòu)。
通用嵌入式系統(tǒng)除了擁有在平臺上的需求外,還應(yīng)該有開發(fā)方面的需求。嵌入式系統(tǒng)軟件在開發(fā)方面的要求主要有:①建立良好的系統(tǒng)開發(fā)環(huán)境,主要應(yīng)用合理的開發(fā)語言對嵌入式系統(tǒng)軟件進行集成化的開發(fā);②將平臺上的特點運用到系統(tǒng)的開發(fā)中,使用嵌入式操作系統(tǒng)對平臺軟件進行開發(fā),可以有效的達到系統(tǒng)中API 接口的要求與多重設(shè)計的要求。
嵌入式平臺系統(tǒng)軟件的建立主要分為開發(fā)軟件的工具、嵌入式操作系統(tǒng)、開發(fā)系統(tǒng)的驅(qū)動設(shè)備、以及系統(tǒng)運行與維護的設(shè)備四種。這四種是軟件開發(fā)平臺的基礎(chǔ),也是組成整體嵌入式系統(tǒng)軟件開發(fā)的重要部分。
開發(fā)工具鏈?zhǔn)情_發(fā)系統(tǒng)的重要組成部分。其中主要有Tornado、bootloader 系統(tǒng)調(diào)試工具、FPGA、CPLD、DSP 等一系列的開發(fā)工具。對于基于MPC8548E 的通用嵌入式開發(fā)平臺,需要對bootloader 的調(diào)試工具選擇Freescale CodeWarror。而對于FPGA 和CPLD 來說,只適用于對專門的平臺進行開發(fā)使用。系統(tǒng)平臺的板級支持包主要作用于對系統(tǒng)功能進行管理,并為系統(tǒng)程序與硬件的連接提供專門的數(shù)據(jù)接口,分為bootloader、VxWorks 映像和驅(qū)動三個方面。而系統(tǒng)維護的設(shè)備主要是維護系統(tǒng)編碼的安全性能等。系統(tǒng)的測試設(shè)備是對系統(tǒng)功能的實現(xiàn)進行測試的主要工具。
2.2.1 BSP 的構(gòu)造
BSP 的具體構(gòu)造以及與其有關(guān)的數(shù)據(jù)代碼:
圖1 BSP 的數(shù)據(jù)代碼及其構(gòu)造圖
/target/h 目錄為VxWorks 的頭文件,/target/lib 目錄為VxWorks 的函數(shù)庫,/target/src 目錄為部分驅(qū)動程序代碼及其模板,/target/unsupported 目錄為不支持的參考代碼。
2.2.2 BSP 的開發(fā)過程
BSP 的開發(fā)過程主要分為六個階段;①設(shè)計計劃,計劃嵌入式計算機設(shè)計平臺的整體結(jié)構(gòu)及其實現(xiàn)過程;②應(yīng)用仿真技術(shù)對開發(fā)工具進行設(shè)計;③對系統(tǒng)中的數(shù)據(jù)值進行分析,實現(xiàn)MPC8548E 的網(wǎng)絡(luò)驅(qū)動程序;④實現(xiàn)外圍設(shè)備的驅(qū)動;⑤對嵌入式系統(tǒng)進行調(diào)試并改善系統(tǒng)的功能;⑥對軟件進行售后維修及升級等。
系統(tǒng)維護工具主要是代碼固化。嵌入式系統(tǒng)軟件的代碼固化是嵌入式開發(fā)過程中的重要部分,代碼固化分為平臺軟件固化和應(yīng)用軟件固化兩種?;谄脚_的軟件固化中,被固化的代碼有bootloader、VxWorks,F(xiàn)PGA 的BIN 文件、DSP 的BIN 文件?;趹?yīng)用的軟件固化中的代碼主要有VxWorks、FPGA 的BIN 文件、DSP 的固化文件、應(yīng)用程序的固化文件。
在應(yīng)用Nor Flash 當(dāng)作代碼固化的存儲空間的分配形式為:
圖2 代碼固化存儲空間圖
為了減少代碼固化情況,系統(tǒng)為固化的代碼增加一項Daemon 任務(wù),Daemon 任務(wù)的啟動函數(shù)C 代碼原型如下:
void InitUsrDaemon(void);
另外,代碼固化工具還可以選擇函數(shù)庫方式:
int FlashFiIe(
unsigne int v_addr,//固化Flash 的有效地址
const char *v_fn, //存儲文件名
);
為了維護嵌入式系統(tǒng),設(shè)計了bootloader 的系統(tǒng)引導(dǎo)形式,可以對系統(tǒng)的實現(xiàn)模式進行引導(dǎo),引導(dǎo)模式的應(yīng)用代碼有bootConfig.c 的改動和參數(shù)配置工具庫實現(xiàn)。
對于bootConfig.c 的改動:
(1)增加功能函數(shù):
LoadModuleVxWorks (int v type,//加載的VxWorks 類型0-BSP,1-用戶
FUNCPTR*pEntiy//返回的入口函數(shù)地址
);
(2)在bootCmdLoopO 中增加命令“X”和“X”,當(dāng)操作員在bootloader
命令行鍵入這兩個字母的任意一個時,即調(diào)用函數(shù)
LoadModuleVxWorks(0)加載平臺BSP VxWorks。
(3)在bootCmdLoopO 中,調(diào)用 getBootParams ()加載啟動參數(shù)。
固化功能實現(xiàn)的函數(shù)主要以DaemonO 函數(shù)為主,DaemonO函數(shù)的字符串?dāng)?shù)組有四個文件,主要代碼形式為:
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 的通用嵌入式計算機平臺系統(tǒng)軟件與系統(tǒng)的實現(xiàn)進行研究,可以發(fā)現(xiàn),嵌入式計算機軟件的構(gòu)造系統(tǒng)非常復(fù)雜,研究人員需要在現(xiàn)有軟件系統(tǒng)的基礎(chǔ)上,進行創(chuàng)新與改革,使嵌入式系統(tǒng)軟件更加適應(yīng)社會的需求。
[1] 孔祥營,柏桂枝.嵌入式實時操作系統(tǒng)VxWorks 及其開發(fā)環(huán)境Tornado[M].北京:中國電力出版社,2010.
[2] 馬學(xué)國.正確理解資產(chǎn)減值準(zhǔn)則[J].2010,5(3):82-86.
[3] 姜兆義,戴金海..嵌入式系統(tǒng)集成開發(fā)環(huán)境研究[J].電腦與信息技術(shù),2012,2(2):98-104.