




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、GUI的種類及uCGUI的架構 (說明:本博文轉載自他人筆下,希望可以幫助同僚更 深刻的認識GUI) GUI的種類及uC/GUI的架構 一.GUI概述 GUI(GraphicUserInterface)是圖形化的用戶界面,它能提供友好的人機交互接口。 它有以下特性:體積小,運行時耗用系統資源少,層次化的結構,易移植,可靠性高 嵌入式GUI種類 嵌入式GUI種類有很多,下面列舉幾種: 1 .WINCE的GWES(圖形、窗口、事件子系統),由應用程序接口(API)、用戶接口(UI)和圖形設備接口(GDI)組成,包含了消息機制 2 .Trolltech公司的產品:QT、QTE、QTOPIA,它們跨平
2、臺、功能強大,但資源消耗多 3 .MINIGUI是魏永明創(chuàng)建的嵌入式GUI中間件,可以以多線程、多進程、以及單任務運行,是比較成熟的商用系統 4 .ucGUI能支持多種環(huán)境的GUI,可以以多任務形式運行或 者以前后臺模式運行。商用化,但功能相對簡單 GUI的兩種模式: 1 .Windows模式, 采用類似windows的API和相應的消息機制, 如ucGUI、MicroWindows、miniGUI 2 .C/S模式,采用一個XServer,所有的顯示都以客戶端的形式請求服務,如Nano-X GUI在嵌入式系統或實時系統中的地位 越來越多的市場需求數據顯示,包括PDA、娛樂消費 電子、機頂盒、
3、DVD等影音設備、WAP手機等高端電子產品得到廣泛應用,原先僅在軍工、工業(yè)控制等領域中使用的GUI圖形系統,受到越來越多的關注。 對于輕量級GUI的系統而言,對GUI的要求相對較低,如傳統51類型單片機這類系統一般不希望建立在龐大累贅的、非常消耗系統資源的操作系統和GUI之上,如 Windows或XWindow。目前此類系統都直接使用原有編程手段,采用比較簡單的手法實現GUI。對于太過龐大和臃 腫的GUI系統而言,以c/GU這類可運用于此類資源較緊張的輕型GUI的需求更加突生 uc/GUI簡介 以c/GUI是美國Micrium公司由品的一款針對嵌入式系統的 優(yōu)秀圖形軟件。它是為任何使用LCD圖
4、形顯示的應用提供 高效的獨立于處理器及LCD控制器而設計的圖形用戶接口, 它適用單任務或是多任務系統環(huán)境。并適用于任意LCD控 制器和CPU下任何尺寸的真實顯示或虛擬顯示.架構基于模塊化設計,由不同的模塊中的不同層組成。由一個LCD驅動層來包含所有對LCD的具體圖形操作,UCGUI可以在任何的CPU上運行,因為它是100%的標準C代碼編寫的.模塊包括液晶驅動模塊,內存設備模塊,窗口系統模塊,窗口控件模塊,反鋸齒模塊和觸摸屏及外圍模塊。其主要特性包括豐富圖形庫,多窗口、多任務機制,窗口管理及豐富窗口控件類(按鈕、檢驗框、單/多行編輯框、列表框、進度條、菜單等),多字符集和多字體支持,多種常見圖像
5、文件支持,鼠標、觸摸屏支持,靈活自由配制等特性,ucGUI能夠適應 大多數的使用黑白或彩色LCD的應用,它提供非常好的允許處理灰度的顏色管理.還提供一個可擴展的2D圖形庫及占用極少RAM的窗口管理體系.在以c/GUI的最初典型配制可包括是否需要操作系統支持,是否需要內存設備支持,是否需要窗口支持,是否需要抗鋸齒支持等眾多選項,這對于GUI的定制和GUI的體積是非常重要的。小型系統需求RAM100bytes,堆棧500bytes,ROM10kbytes,完全滿足資源非常緊張的系統之中.以c/GUI和其他圖形系統的比較 (1)以c/GLUt勢在于其體積小, 配制性強, 運用領域非常之廣泛。相對于眾
6、多嵌入式圖形系統,如MicroWindows/NanoX,OpenGUI,Qt/Embedded,MiniGUI等 , 只 要 滿 足RAM100bytes,堆棧500bytes,ROM10kbytes的小型系統中都可以運行以c/GUI,而這個需 求是其他圖形系統所不及的,可以廣泛運用到國內已經運用非常成熟的單片機系統內,增強系統性能。在資源豐富的大型系統中,也只需要RAM2-6Kb,堆棧1200bytes,ROM30-60Kb就可以滿足mc/GUI的各種功能。對比于其他圖形系統最少幾百K,動輒上M的系統而言是非常有優(yōu)勢的。其眾多的配制,滿足不同需求用戶需要,方便靈活小巧,實用性大大增強。 (
7、2)平臺的廣泛性,移植方便。由于以c/GUI是100%C編寫,適應絕大多數軟硬平臺,其適應性非常強,相對于眾多具有軟硬件針對性的圖形系統而言,結構劃分和模塊劃分非常清晰,分設專門的LCD驅動模塊,移植簡單方便。代碼量相對較小,易操作可擴展性強,方便用戶定制和自主更新完善滿足個性需求。S5U1C330G1S是為S1C33系列提供的圖形處理中間件, 可以基于S1C33芯片完成二維圖形和GUI處理。所有這些功能以庫函數形式提供,可以連接到目標程序中;而且上層提供的功能都有C編程接口,極大地方便了程序員。止匕外,還提供圖形ROM數據創(chuàng)建工具一一一套PC軟件工具。 該中間件特別適合于開發(fā)蜂窩電話、PDA
8、、電子文 具和玩具等。它具有以下特點: l支持帶內置LCD控制器的S1C33系列MCU l提供基本的畫圖功能,包括點、直線、圓、橢圓、 矩形、弧以及填充等; l顯不和保存圖象 l正文顯示 l在GUI接口功能時,必須使用S5U1C330G1S庫 l圖形ROM數據生成工具 1 .硬件資源 要使用S5U1C330G1S,需要一些基本的硬件支持。 一般來講,至少要有S1C33芯片、外部存儲器和LCD等。另外,在S5U1C330G1S中, 還要使用S1C33芯片上的一個16位可編程定時器信道。 GUI系統還應該包括以下硬件資源: K50K54端口以及所有相關的寄存器 (2)16位可編程定時器(定時器3)
9、以及相關寄存器 (3)操作時鐘:對高速(OSC3)時鐘頻率,輸入20MHz;使用PPL時,則加倍成40MHz;總線時鐘頻率為20MHz;對內置LCD控制器的時鐘(CLK1),OSC3(20MHz)被設置成1/3周期以供使用。 (4)存儲器和堆棧如下表對象 代碼(ROM)/KB BSS(RAM) 堆棧 GPC相關功能 15 500字節(jié) 170字節(jié)4.2 23 250字節(jié) 1字節(jié)字型 3 2字節(jié)字型 164 顯示驅動 1 16字節(jié) 2 .軟件資源 S5U1C330G1S庫是位于S1C33硬件和用戶程序之間一個編程中間件,其主要目標是實現硬件之上的基本畫圖、圖像顯示和文本顯示功能。通過調入以C程序源
10、碼提供的 高層函數或者鏈接這些頂層函數到用戶程序, 可以方便地進行圖形處理,并不需要直接由用戶程序調用其它的JPEG33 基本庫函數。 使用S5U1C330G1S開發(fā)圖形時的應用程序的過程主要包括以下幾步: 使用S5U1C330G1S工具創(chuàng)建圖像的ROM數據,并將其轉換成C源程序 l創(chuàng)建用戶應用:利用S5U1C330G1S庫提供的GUI 和圖形函數進行圖形處理,上一步創(chuàng)建的數據源文件可以包含在用戶源文件中 l編譯源程序,生成目標文件 l鏈接目標文件與S5U1C330G1S庫,產生可執(zhí)行 文件 3 .編程接口 為了便于應用編程,S5U1C330G1S提供了豐富的編程接口:一組srf33庫格式的圖
11、像處理函數庫。在使用前,該庫必須鏈接到目標程序,通過目標程序調用來實時完成以下功能: l基本畫圖功能:點、直線、圓、橢圓、矩形、弧以 及填充 l顯示與保存圖形功能 l文本顯示功能:既支持單字節(jié)字符,也支持雙字節(jié) 字符 lGUI功能:窗口、彈由窗口、控制按鈕和圖像按鈕 等。 l鍵盤與手表事件功能 二.ucGUI結構分析 1 .ucGUI結構層次 核心層提供基本圖形操作 應用程序接口 WM提供窗體管理接口和窗體消息機制,圖形接口,建立在 核心層之上 核心層建立在GAL之上,以進行實際圖形操作,IAL接口提供用戶輸入接口 2 .ucGUI的代碼結構 Application中存放應用程序,Config
12、中存放配置頭文件, GUI目錄下存放系統代碼,Core存放GUI核心代碼,Font存放字體文件,Widget存放一些窗體控件,WM存放窗口管理器代碼,LCDDriver存放LCD驅動程序,其他部分為一些2D函數,包括顏色,管理系統和抗鋸齒等 3 .ucGUI的特性 ucGUI的設計目標是為使用LCD作為圖形顯示裝置的應用提供高效的與LCD控制器獨立及處理器獨立的圖形用戶接口.它適合于單任務環(huán)境及多任務環(huán)境,如私用的操作系統或是商業(yè)的RTOS(實時操作系統).UCGUI以C源碼形式提供,并適用于任意LCD控制器和CPU下任何尺寸的真實顯示或虛擬顯示.它包含以下特性: (1)一般特性 適用任何8/
13、16/32位CPU,只要有相對應的標準C編譯器;任何的控制器的LCD顯示器(單色,灰度,顏色),只要有適合的LCD驅動可用;在小模式顯示時無須LCD控制器;所有接口支持使用宏進行配制;顯示尺寸可定制;字符和位圖可在LCD顯示器上的任意起點顯示,并不僅局限于偶數對齊的地址起點;程序在大小和速度上都進行了優(yōu)化; 編譯時允許進行不同的優(yōu)化; 對于緩慢一些的LCD控制器,LCD顯存可以映射到內存當中,從而減少訪問次數到最小并達到更高的顯示速度;清晰的設計架構;支持虛擬顯示,虛擬顯示可以比實際尺寸大(即放大). 圖形庫 支持不同顏色深度的位圖;提供可用的位圖轉換工具;圖形運算時絕對不含浮點運算;快速畫點
14、/線(不含浮點運算);高速畫圓及多邊形;多種畫圖模式;按照不同的模式提供了色彩值到索引值之間的轉換,實現調色板功能;支持多級灰度,支持 多種彩色模式,111,222,332,565等 (3)字體集 使用GUI_FONT來描述字體顯示,支持unicode,每一種字 符的顯示圖形,字符信息、編碼范圍等,字符顯示的大??;為基礎應用提供多種不同字體:4*6,6*8,6*9,8*8,8*9,8*16,8*17,8*18,24*32,以及8,10,13,16等幾種高度(象素單位)的均衡字體(proportionalfonts);可以方便的加入及鏈接進自定義字體;只有應用程序中用到的字體被實際鏈接進最后的執(zhí)
15、行映象文件中,因此保證占用最小數量的ROM;提供可用 的字體轉換工具.任何宿主系統(如微軟windows系統)上的可用字體均可以經轉換后使用. 字符串/數值輸由 支持數值的任何字體下的十進制/二進制/十六制顯示;支持數 值的任何字體下的十進制/二進制/十六制編輯輸入. (5)窗體管理器 齊全的窗口管理,包括剪切,在窗體客戶區(qū)外;窗體可以移動及改變大??;支持窗口回調函數(可選功能);窗體占用最低RAM(每個窗體占用20個字節(jié));這個模塊對ucGUI來說并非必須,但用其可以方便地構建一個事件驅動系統 ucGUI的窗體消息機制與操作系統的消息機制沒有關系, WM負責接收外部事件并調用相應的回調函數處
16、理 (6)可選的類似PC機的窗體控件 可用的窗體控件(窗體對象,也稱作控件),操作簡便而且容易使用;控件本來就是一個窗體,所以使用空間必須使用WM,控件一般作為子窗口被創(chuàng)建,控件的特點在其 Paint和CallBack函數中體現由來 (7)觸摸屏及鼠標支持 對于窗體控件如按鈕,UCGUI提供觸摸屏及鼠標支持. (8)PC下的工具 模擬器及查看器;位圖轉器工具;字體轉換工具. (9)ucGUI多任務環(huán)境下的使用 多任務環(huán)境下以單任務運行;多任務環(huán)境下以多任務運行: 以一個任務專門用于更新顯示,一般界面最好只使用一個任 務(單窗口顯示),如果需要啟動多任務,需要配置GUI ucGUI多任務內核接口
17、:ucGUI主要使用內核的資源保護功 能,內核接口函數如下: (10)輸入設備抽象層IAL 基本用戶輸入設備:鍵盤(獲取鍵值)、鼠標、觸摸屏(獲 取坐標信息)。 ucGUI并非使用設備提供的接口函數,而是提供函數給驅動 程序調用 鼠標和觸摸屏屬于光標指針輸入設備 鍵盤驅動調用接口 (11)圖形設備抽象層GAL ucGUI需要被提供一個硬件驅動函數集,在系統中稱為 LCD_L0_XXX函數 硬件初始化及顯示控制 物理繪制函數 設置函數 三.ucGUI移植過程 新建一個文件目錄作為自己的工作目錄,將前面的Start目 錄下的Application和Config以及GUI目錄拷貝到工作目 錄下,從前
18、面的實驗源代碼中拷貝vector.c和boot.c兩個文件到Application目錄中,包括相應的頭文件。在GUI/LCDDriver目錄下添加一個LCD13XX.C驅動文件, 其中提供的函數參見PPT中指由的驅動接口函數,另外從Sample/GUI_X目錄下拷貝GUI_X.c文件到Application下各文件夾內容簡介: Application:應用程序涉及到的文件,觸摸屏驅動程序,GUI 和ucOS、TouchPanel的桂接程序,還有定時程序。 Config:配置文件。GUICONF.h-基本的GUI預定義控制.GUITouchConf.h-關于觸屏的控制預定義.LCDConf.h-
19、有關LCD液晶顯示的參數控制. Demo:存放cmd文件和生成的目標程序 Gui:包括七個文件夾:ConvertColor用于顏色轉 換,ConvertMono用于單色轉換,Core囊括了GUI所需的大多數文件,Font為字體定義,LCDDriver里用到的LCD驅動是LCD13XX.c,Widget定義了控件的行為,WM是窗口管理器的相關文件 S1C33209:包括vector.c和boot.c等文件,這些文件是處理器工作時所必需的。 移植說明 首先定義GUIConf.h和LCDConf.h這兩個文件,前者是 以c/GUI功能模塊和動態(tài)存儲空間(用于內存設備和窗口對象) 大小,默認字體設置等
20、基本GUI預定義控制的定義。后者 LCDConf.h為LCD大小,控制器類別,總線寬度,顏色選 取等LCD參數控制文件 GUI/CORE/LCD_ConfDefaults.h文件內可以找到所有 囊括LCD配制默認選項,包括LCD屏個數,控制器個數,調色板,屏幕反向設置等眾多配制選項。如果配備觸摸屏可以通過GUITouchConf.h進行配制,根據觸摸屏及其控制芯 以上幾個函數在GUI_TOUCH_Exec()會被調用。 (2)對于LCD自帶控制器類別的液晶屏,通過 LCDConf.h中的總線接口和寄存器接口進行硬件接口的配 制和定義。對于片上集成LCD控制器平臺而言,通過對片 內LCD控制器寄
21、存器的設置來配制LCD接口信號。在一般 的LCD中需要配制的LCD接口信號包括VFRAME幀同步信號,VLINE線同步脈沖信號,VCLK象素時鐘信號,VM信號和數據位不等的象片編制以下幾個函數 voidTOUCH_X_ActivateX(void)voidTOUCH_X_ActivateY(void)intTOUCH_X_MeasureX(void);的值 intTOUCH_X_MeasureY(void);/的值 ;準備Y軸數據測量 ;準備X軸數據測量 根據AD轉換結果返回X 根據AD轉換結果返回Y 素點數據輸由信號。 (3)LCD驅動編程的實質是液晶屏上的點對應的顯存編程,最底層調用函數為
22、畫點函數,用戶可根據自身平臺情況 根據總線接口和寄存器接口或者LCD控制器寄存器進行操 作。_SetPixel(),_GetPixel(),XorPixel()為最底層直接對顯存操作函數。ucGUI提供部分控制器驅動, 本實驗中文件為GUI/LCDDriver/LCD13XX.c,因為我們所用的是LCD1376控制器。核心函數為LCD_Write()._SetPixel()調用LCD_Write()寫顯存。 (4)在SampleGUI_X文件夾內包括有與硬件聯系緊密的文件,包括GUI_X.c,GUI_X_embOS.c,GUI_X_uCOS.c等文件,GUI_X.c包括大部分與硬件的關聯函數,
23、如定時器的初始化和觸摸屏相關函數。mc/GUI與操作系統桂接的 核心是定時器的設置和桂接。以c/GO通過延時函數 GUI_Delay()調用GUI_X_Delay,再調用GUI_Exec()處理窗口部件中的回調函數進行重繪。在任何一款嵌入式操作系統中都需要定時器的心臟跳動作用,支持OS的以c/GUI可以通過定時器的設置達到嵌入式操作系統和圖形系統的實時和同步操作。在GUI_X_uCos.c中通過以c/os中的延時程序同以c/GUI桂接實現整合。 (5)經過移植之后,GUI應用程序開發(fā)通過以c/GUI而變 得非常容易, 在調用GUI_Init()后, 用戶可以根據需要正確配制以c/GUI后,可使
24、用其強大的庫函數和豐富的GUI資源進行編程。在GUI編程過程中,可以打開抗鋸齒功能減小圖形失真,得到高質量的圖形和字體效果。采用內存設備能有效克服閃爍現象,獲得更快的顯示速度,但它和抗鋸齒功能一樣需要額外的內存開銷。 四.基于ucGUI的應用程序編寫過程 本應用程序實現在觸摸屏上利用按鈕來移動一個位圖的簡 單功能。在文件DIALOG_SliderColor.c中是主要的程序, 這是基于原來該文件中的內容改寫的。其內容及其說明如下: #includebutton.h #include<stddef.h> #includeGUI.H #includeDIALOG.h e
25、xternconstGUI_BITMAPbm62;使用外部位圖 intxx,yy; staticconstGUI_WIDGET_CREATE_INFO _aDialogCreate= FRAMEWIN_CreateIndirect,yangguisen”,0,240,40,70, 190,0,0, 創(chuàng)建窗體 /創(chuàng)建4個按鈕上、下、左、右,用來控制位圖的移動staticvoid_cbCallback(WM_MESSAGE*pMsg)intNCode,Id; WM_HWINhListBox; WM_HWINhWin=pMsg->hWin; switch(pMsg->Ms
26、gId) caseWM_INIT_DIALOG: SCROLLBAR_CreateAttached(hListBox,SCROLLBAR_CF_VERTICAL); break; caseWM_KEY: switchBUTTON_CreateIndirect,10,50,30, BUTTON_CreateIndirect,7,50,50,30, BUTTON_CreateIndirect,50,30, BUTTON_CreateIndirect,50,30 up,GUI_ID_up,7, down,GUI_ID_down, left,GUI_ID_left,7,90, right,GUI_ID
27、_right,7,130, (WM_KEY_INFO*)(pMsg->Data.p)->Key) caseGUI_KEY_ESCAPE: GUI_EndDialog(hWin,1); break; caseGUI_KEY_ENTER: GUI_EndDialog(hWin,0); break; break; caseWM_NOTIFY_PARENT: Id=WM_GetId(pMsg->hWinSrc); NCode=pMsg->Data.v; switch(NCode) caseWM_NOTIFICATION_RELEASED: if(Id=GUI_ID_up) if(yy>=40) GUI_ClearRect(xx,yy,240,240); yy=yy-10;GUI_DrawBitmap(&bm62,xx,yy); if(Id=GUI_ID_down) if(yy<=190) GUI_ClearRect(xx,yy,240,240); yy=yy
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鎮(zhèn)江糧食加工機械項目招商引資報告
- LED照明項目可行性研究報告
- 2025年中國一次性無菌帽市場深度調查評估及投資方向研究報告
- 2025年四氟制品液壓機項目投資可行性研究分析報告
- 12 我的環(huán)保小搭檔 教學設計-2023-2024學年道德與法治二年級下冊統編版
- 2025年男式手套項目投資可行性研究分析報告
- 2025年度房產租賃合同附租賃房產租賃期間租金調整協議
- 11呼吸 教學設計-2023-2024學年冀人版(2017)科學四年級下冊
- 2025年度吊車租賃及現場安全監(jiān)督合同
- 2025年廠房出租合同及租賃雙方爭議解決機制
- 人教版(2025版)七年級下冊英語UNIT 1 Animal Friends 單元整體教學設計(6個課時)
- 項目管理知識手冊指南
- 2025年常熟市招聘進村人員歷年高頻重點提升(共500題)附帶答案詳解
- (主城一診)重慶市2025年高2025屆高三學業(yè)質量調研抽測 (第一次)物理試卷(含答案)
- 2025年中國電信集團有限公司招聘筆試參考題庫含答案解析
- DB50T 393-2011 城市三維建模技術規(guī)范
- 《肺癌圍手術期護理》課件
- 《糖尿病足護理查房》課件
- 山東省臨沂市地圖矢量課件模板()
- 2024復工復產安全培訓
評論
0/150
提交評論