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