基于NiosⅡ嵌入式平臺(tái)實(shí)現(xiàn)μC/GUI在便攜式醫(yī)療監(jiān)護(hù)儀上的移植
2.2 移植過程
本文引用地址:http://butianyuan.cn/article/268253.htm2. 2.1 μC/GUI的文件組織結(jié)構(gòu)
μC/GUI是以ANSI C源碼包的形式提供的。源碼包由配置文件目錄(Config)和庫函數(shù)目錄(GUI)2個(gè)文件目錄組成。在Config目錄中包含了LCDConf.h、GUITouchConf.h、GUIConf.h 3個(gè)配置文件,這3個(gè)文件分別用于LCD底層接口的配置、觸摸屏底層接口的配置以及μC/GUI自身的配置。在GUI目錄中的庫函數(shù)文件按照不同功能又分成若干子目錄如圖3所示,各子目錄所實(shí)現(xiàn)的功能如表2所示。
2.2.2 移植過程
首先建立一個(gè)硬件系統(tǒng),采用Altera公司的QuartusⅡ9.0版本的配套軟件,硬件系統(tǒng)在QuartusⅡ集成的 SOPCBuilder系統(tǒng)開發(fā)工具中建立,添加NiosⅡ處理、JTAG調(diào)試模塊、添加定時(shí)器SDRAM控制器、BUFFER IP、TFT LCD IP以及其他部分組件,最后生成一個(gè)硬件系統(tǒng)。然后在NiosⅡIDE環(huán)境下針對(duì)該系統(tǒng)建立一個(gè)TFT LCD軟件工程,并且將μC/GUI有關(guān)的源代碼拷貝到工程目錄下,修改LCDConf.h、GUIConf. h、LCDLin32.c以及GUI_X_uCOS.c文件,使之與LCD控制相匹配,在該系統(tǒng)中,LCD采用16位數(shù)據(jù)總線,而CPU是32位的 NiosⅡ軟核處理器,先查看一下μC/GUI所支持的數(shù)據(jù)寬度信息,其數(shù)據(jù)寬度和NiosⅡ處理器所支持的寬度基本吻合,只要在改動(dòng)代碼時(shí)注意就可以。 以下是具體的代碼實(shí)現(xiàn)情況:
因?yàn)檫@里是基于TFT LCD IP核的移植,所以要定義LCD的讀寫函數(shù),即LCD_READ_MEM(Off)和LCD_WRITE_MEM(Off,data)以及顯示緩存區(qū)的起 始位置,讀寫函數(shù)中的Off和data都是32位的無符號(hào)數(shù),而操作函數(shù)IORD_32DIRECT()以及IOWR_32DIRECT()都是一次執(zhí)行 32位數(shù)的操作,剛好和NiosⅡ處理器的數(shù)據(jù)寬度相匹配。由于支持μC/OS-Ⅱ操作系統(tǒng),所以要對(duì)GUI_X_uCOS.c文件進(jìn)行修改,增加系統(tǒng)延 時(shí)函數(shù)OSTimeDly(1),使之能與μC/OSⅡ操作系統(tǒng)實(shí)現(xiàn)無縫銜接,以及3個(gè)子函數(shù),void GUI_X_Log(const char*s){GUI_USE_PARA (s);};void GUI_X_Warn(const char*s){GUI_USE_PARA(s);};void GUI_X_ErrorOut(const char*s){ GUI_USE_PARA(s);};LCDLin32.e是對(duì)應(yīng)3200型號(hào)控制器的驅(qū)動(dòng)文件,由于在LCDConf.h中已經(jīng)對(duì)用到的參量進(jìn)行設(shè)置,所以無需修改,剩下的工作就是把不用的文件進(jìn)行剔除,以減少編譯時(shí)產(chǎn)生多余的代碼量。
3 移植驗(yàn)證
在NiosⅡIDE環(huán)境下修改配置文件以及驅(qū)動(dòng)文件,然后編譯該系統(tǒng),系統(tǒng)編譯成功,編譯成功之后還有MICRIUM公司的聯(lián)系方式,這個(gè)是提醒用戶該系列軟件如果要用于商業(yè)目的是需要買license的,用于研究目的是免費(fèi)的。
圖片驗(yàn)證是采用μC/GUI自帶的位圖轉(zhuǎn)換工具uC-GUI-BitmapConvert.exe,該工具可以將.bmp格式圖片轉(zhuǎn)換成指定的C語言數(shù)組 的形式保存,例如將蘭博基尼跑車標(biāo)志的圖片轉(zhuǎn)換成RGB565的格式進(jìn)行保存,加入工程,編譯工程,然后下載驗(yàn)證,如圖4所示。窗口管理組件驗(yàn)證采用代碼 包中自帶的一個(gè)測試代碼,其效果如圖5所示。實(shí)驗(yàn)結(jié)果表明,移植是成功的。
4 結(jié)論
本文介紹了μC/GUI界面系統(tǒng),以及NiosⅡ嵌入式系統(tǒng),詳細(xì)介紹了移植的過程,以及最終實(shí)現(xiàn)移植。實(shí)驗(yàn)結(jié)果表明,在嵌入式系統(tǒng)中使 用μC/GUI進(jìn)行人機(jī)界面的開發(fā),不但移植簡單、使用靈活,而且功能強(qiáng)大,穩(wěn)定高效,大大降低了在嵌入式系統(tǒng)中開發(fā)圖形人機(jī)界面的復(fù)雜程度,而且 μC/GUI還提供了幾個(gè)非常實(shí)用的工具軟件,其中包括一個(gè)仿真器,它使得在進(jìn)行移植工作的同時(shí),就可以在仿真器上進(jìn)行軟件界面部分的程序編寫,加快了整 個(gè)系統(tǒng)的開發(fā)進(jìn)度。還有位圖轉(zhuǎn)換工具,可以輕松地將圖片轉(zhuǎn)換成C語言數(shù)組的形式保存,方便界面開發(fā)。μC /GUI還支持其他PS2鼠標(biāo)、PS2鍵盤、觸摸屏,包含豐富的繪圖庫、動(dòng)畫顯示優(yōu)化、還可以自己加入中文字體,通過使用μC/GUI的各項(xiàng)功能,相信可 以在嵌入式系統(tǒng)中開發(fā)出功能強(qiáng)大的人機(jī)界面,而且在嵌入式系統(tǒng)中有很好的應(yīng)用前景。
c語言相關(guān)文章:c語言教程
評(píng)論