王鵬
摘要:根據(jù)嵌入式操作系統(tǒng)特點(diǎn),提出了一種基于TORNADO開發(fā)環(huán)境的測(cè)試方法,通過(guò)對(duì)SDRAM寫入、讀出多種數(shù)據(jù),測(cè)試它的狀態(tài),該測(cè)試方法具有簡(jiǎn)介、直觀的特點(diǎn)。
關(guān)鍵詞:RTOS;tornado/VxWorks;C++;SDRAM
中圖分類號(hào):TP333 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2017)03-0182-02
隨著計(jì)算機(jī)技術(shù)的發(fā)展和芯片制造工藝的不斷進(jìn)步,嵌入式實(shí)時(shí)操作系統(tǒng)(Embedded Real-time Operation System,RTOS)的應(yīng)用日益廣泛,在嵌入式系統(tǒng)的開發(fā)應(yīng)用中,采用嵌入式實(shí)時(shí)操作系統(tǒng)(簡(jiǎn)稱RTOS),包括與硬件相關(guān)的底層驅(qū)動(dòng)軟件、系統(tǒng)內(nèi)核、設(shè)備驅(qū)動(dòng)接口、通信協(xié)議、圖形界面、標(biāo)準(zhǔn)化瀏覽器等。它能夠有效管理越來(lái)越復(fù)雜的系統(tǒng)資源、能夠把硬件虛擬化,能夠支持多任務(wù)、使得程序開發(fā)調(diào)試更加容易、便于維護(hù),同時(shí)能夠提高系統(tǒng)的穩(wěn)定性和可靠性。嵌入式操作系統(tǒng)的核心是嵌入式微處理器,嵌入式微處理器對(duì)實(shí)時(shí)性和多任務(wù)有很強(qiáng)的支持能力,具有很強(qiáng)的存儲(chǔ)區(qū)保護(hù)功能,可擴(kuò)展的處理器結(jié)構(gòu),以及極低的能耗,從八十年代Ready System發(fā)展了世界上第一個(gè)商業(yè)嵌入式實(shí)時(shí)內(nèi)核(VRTX32),到今天已經(jīng)三十多年了,進(jìn)入九十年代,現(xiàn)代操作系統(tǒng)的設(shè)計(jì)思想,如微內(nèi)核設(shè)計(jì)技術(shù)和模塊化設(shè)計(jì)思想,新一代的RTOS廠家逐步推出了VxWorks等開發(fā)系統(tǒng)、主流的微處理器主要有ARM、PowerPc、MIPS等。
SDRAM(Synchronize Dynamic Random Access Memory)簡(jiǎn)稱同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器,它是同步的動(dòng)態(tài)隨機(jī)存儲(chǔ)器,它在工作時(shí)需要同步時(shí)鐘,內(nèi)部命令的發(fā)送和數(shù)據(jù)的傳輸都以一個(gè)時(shí)鐘作為基準(zhǔn),它的所有信號(hào)都和時(shí)鐘信號(hào)同步,通過(guò)時(shí)鐘信號(hào)來(lái)控制數(shù)據(jù)輸入輸出,能以流水線的方式訪問(wèn)存儲(chǔ)陣列,在帶寬上也有了很大的改善,而且具有高速穩(wěn)定性,是目前市場(chǎng)的主流。
1 tornado/VxWorks調(diào)試環(huán)境介紹
VxWorks是專門為實(shí)時(shí)嵌入式系統(tǒng)設(shè)計(jì)開發(fā)的操作系統(tǒng)軟件,從設(shè)計(jì)成功以來(lái),經(jīng)過(guò)了廣泛驗(yàn)證,成功的應(yīng)用在航空、航天、艦船、通信、醫(yī)療等領(lǐng)域。該操作系統(tǒng)具有良好的持續(xù)發(fā)展能力。
Tornado集成開發(fā)環(huán)境是嵌入式實(shí)時(shí)操作領(lǐng)域中最新一代開發(fā)調(diào)試環(huán)境,是實(shí)現(xiàn)嵌入式應(yīng)用程序的完整軟件開發(fā)平臺(tái),是開發(fā)調(diào)試Vxworks系統(tǒng)不可缺少的組成部分,Tornado本身包括了功能非常強(qiáng)大的開發(fā)以及調(diào)試工具,非常適用于面對(duì)大量問(wèn)題的嵌入式開發(fā), 這些工具包括C和C++遠(yuǎn)程源級(jí)調(diào)試器、目標(biāo)和工具管理、系統(tǒng)目標(biāo)跟蹤,內(nèi)存使用和自動(dòng)配置,另外,所有這些工具能很方便的同時(shí)運(yùn)行。
2 設(shè)計(jì)介紹
本設(shè)計(jì)中嵌入式微處理器采用PowerPc的8245,SDRAM采用SPANSION的AM29LV320D,設(shè)計(jì)目的是對(duì)SDRAM進(jìn)行讀寫操作;對(duì)申請(qǐng)測(cè)試使用的4M空間進(jìn)行寫入全零、全1、1010、0101等四種數(shù)值,然后再將寫入的數(shù)值讀出;通過(guò)對(duì)寫入、讀出數(shù)值進(jìn)行比較,測(cè)試SDRAM的工作狀態(tài)是否良好,該方法實(shí)現(xiàn)起來(lái)非常的方便、簡(jiǎn)捷、直觀。現(xiàn)僅給出讀寫全零的代碼,其余類似。
#include
#dedine SDRAM_SPACE 0X10000000
#dedine DATA0 0x0
#define DATA1 0xFFFFFFFF
#define DATA2 0x55555555
#define DATA3 0xAAAAAAAA
Int cpu8245test (void)
{
Int *psdram,*psdramBase;
Int data;
Int i ;
Int error;
Psdram=(int*)malloc(SDRAM_SPACE); /*申請(qǐng)空間*/
If (psdram==0)
{
Printf(“\n SDRAM malloc failure?。躰); /*申請(qǐng)空間失敗*/
Return -1;
}
Else
{
PSDRAMBase =Psaram;
}
Error=0;
Printf(“\n write 0 test……”);
}
/*write 0*/
Printf(“\n write 0 sdram……”);
For (i=0;I { *psdrma=DATA0; Psdram++; } Psdram=psdramBase; /*read 0 from sdram */ Printf(“\n read data from sdram……”); For (i=0;I { Data=*psdram; If(data!=DATA0) Error++ Psdram++; } Printf(“\n sdram(write 0) error=%x\n,error); Free(psdramBase) Return 0; } 3 測(cè)試程序的編譯和運(yùn)行 測(cè)試程序函數(shù)名為cpu8245test.c;編譯后名字為cpu8245test.o;將編譯后的文件加載,然后運(yùn)行,操作如圖1。 測(cè)試結(jié)果如圖2。 4 結(jié)語(yǔ) 仿真測(cè)試在TORNADO2.0開發(fā)環(huán)境下進(jìn)行,該測(cè)試方法實(shí)現(xiàn)起來(lái)非常簡(jiǎn)單、測(cè)試結(jié)果直接明了,具有很好的實(shí)用效果。 參考文獻(xiàn) [1]王金剛,宮霄霖,熊輝.VxWorks網(wǎng)絡(luò)程序員指南,2003. [2]周啟平,張揚(yáng),吳瓊.VxWorks開發(fā)指南與Tornado實(shí)用手冊(cè),2004.