μC/GUI在嵌入式智能監(jiān)控系統(tǒng)中的移植研究與應(yīng)用
2.2 LCD驅(qū)動(dòng)文件的移植
由于采用VGA顯示,根據(jù)LCDConf.h對(duì)LCD_CONTROLLER的配置,在LCD驅(qū)動(dòng)文件目錄下選擇LCDDummy.c,刪除其他無(wú)關(guān)的驅(qū)動(dòng)文件,LCD驅(qū)動(dòng)文件負(fù)責(zé)把μC/GUI的各種函數(shù)解釋成LCDconf.h文件中定義的液晶接口函數(shù),這個(gè)文件與具體的硬件連接無(wú)關(guān),LCD驅(qū)動(dòng)在SDRAM開辟幀緩沖以及往VGAIP中寫入數(shù)據(jù),在函數(shù)LCD_Controller_Init()完成,開辟顯示緩沖區(qū)由framebuffer=(aIt_u32*)alt_uncached_malloc(LCD _XSIZE*LCD_YSIZE*LCD_BITSPERPIXEL/2)實(shí)現(xiàn)。同時(shí)編寫void LCD_L0_SetPixelIndex(int x,int y,int PixelIndex)和unsigned int LCD_L0_GetPixelIndex(int x,int y)這2個(gè)函數(shù),分別是設(shè)置一個(gè)像素和獲取一個(gè)像素的顏色,后面很多操作如畫點(diǎn)、線、圓等都需要調(diào)用這2個(gè)函數(shù)。
2.3 接口函數(shù)移植
由于支持μC/OS-Ⅱ操作系統(tǒng),所以要對(duì)GUI_X_μCOS.c文件進(jìn)行修改,GUI_X_μCOs.c定義了GUI與RTOS的接口函數(shù),使之能與μC/OS-Ⅱ操作系統(tǒng)實(shí)現(xiàn)無(wú)縫銜接,要增加系統(tǒng)延時(shí)函數(shù)OSTimeDly(1),void GUI_X_Execldle(void){OS_X_Dday(1);}改為:
到此,μC/GUI移植需要修改的代碼部分已經(jīng)全部完成。
3 μC/GUI應(yīng)用程序開發(fā)實(shí)例
根據(jù)平臺(tái)修改完配置、驅(qū)動(dòng)文件和接口函數(shù)之后,在NiosⅡ9.0 IDE建立一個(gè)新的工程,選擇工程操作系統(tǒng)為μC/OS-Ⅱ,將已經(jīng)修改好的Config和GUI文件夾以及GUI_X_μCOS.c拷貝到建立的工程目錄下,可以根據(jù)實(shí)際需求,刪掉一些不需要的功能文件,減少編譯時(shí)間以及編程生成的執(zhí)行文件的大小。根據(jù)需求編寫相應(yīng)的應(yīng)用程序,要使PS/2IP核正確使用,在應(yīng)用程序中要用要alt_up_ps2_open_dev(“/ dev/ps2”),開啟PS/2 IP核,同時(shí)要正確顯示圖形界面在顯示界面代碼之前要調(diào)用GUI_Init()函數(shù),它的功能是初始化GUI,同時(shí)初始化LCD控制器與顯示緩沖區(qū)。Nios II IDE編譯器成功編譯工程還要為移植的文件添加相應(yīng)的路徑,在include路徑要包括Config、GUI/Core,GUI/Widget和GUI/WM,編譯完成之后的工程目錄如圖3所示。成功編譯之后將程序下載到DE2開發(fā)平臺(tái),程序運(yùn)行嵌入式智能監(jiān)控系統(tǒng)交互界面,運(yùn)行畫面如圖4所示。本文引用地址:http://www.ex-cimer.com/article/149752.htm
交互界面顯示了系統(tǒng)標(biāo)志,按鍵、窗口以及鍵盤,每個(gè)按鍵代表一個(gè)功能,按鍵按下,彈出參數(shù)輸入窗口,可以在鍵盤輸入相關(guān)的參數(shù)通過PIO傳輸?shù)接布K。
4 結(jié)語(yǔ)
本文詳細(xì)介紹了μC/GUI在NiosⅡ嵌入式系統(tǒng)中的移植過程,包括從硬件平臺(tái)的搭建到μC/GUI配置文件、驅(qū)動(dòng)文件和接口函數(shù)的修改,采用自己編寫的VGA顯示IP核,使系統(tǒng)可使用任何通用的液晶顯示器,與其他很多專用的LCD驅(qū)動(dòng)而言,本系統(tǒng)具有很強(qiáng)的通用性。結(jié)果表明,μC/GUI功能強(qiáng)大,易于移植,占用系統(tǒng)資源少,移植過程有很多可選功能,可以針對(duì)不同的需求,非常適用于資源有限的嵌入式系統(tǒng)中。
同時(shí)μC/GUI還提供了仿真器以及位圖轉(zhuǎn)換工具,有助于我們應(yīng)用程序的開發(fā),在開發(fā)的過程中應(yīng)用程序可以在仿真器中完成而不必每次都在硬件平臺(tái)運(yùn)行驗(yàn)證。μC/GUI對(duì)鼠標(biāo)、鍵盤以及觸摸屏等的支持,將使基于NiosⅡ的智能監(jiān)控系統(tǒng)可以完全集成為監(jiān)視器中的一個(gè)功能模塊,具有很好應(yīng)用前景與研究意義。
評(píng)論