<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > uCGUI 移植到S3C44B0X實(shí)驗

uCGUI 移植到S3C44B0X實(shí)驗

作者: 時(shí)間:2010-01-25 來(lái)源:網(wǎng)絡(luò ) 收藏

一、目的

本文引用地址:http://dyxdggzs.com/article/152124.htm

1. 初步掌握底層硬件驅動(dòng)函數;

2. 掌握將到ARM S3C44BOX上的方法和步驟。


二、內容

到ARM處理器S3C44BOX上,并編寫(xiě)Hello World程序,在Micetek 44B0平臺的LCD上顯示“Hello World!”字符串,在LCD顯示平面坐標(20,20)處,顯示一個(gè)小于10000的整數,該整數不斷循環(huán)加1,每次加1后立即更新顯示,從而反應出顯示輸出的速度。


三、預備知識


1. uCGUI的體系結構:

uCGUI包含三個(gè)總的文件夾:Application,Config,GUI.其中:

Ⅰ Application是應用程序的文件夾,它中間包含主函數文件,其它資源文件。

Ⅱ Config是GUI的配置文件夾,它包含三個(gè)文件:

★ GUICONF.H是uCGUI的配置文件,負責配置GUI的對OS,window manager,DMA,觸摸屏,Unicode碼的支持。以及設置默認字體和各種控件的默認顏色等。

★ GUITouchConf.h負責配置觸摸屏。

★ LCDConf.h負責配置LCD顯示器,如分辨率,顏色位數,以及LCD控制器的其它設置。

Ⅲ GUI是uCGUI的實(shí)現部分,它是GUI最重要的組成部分,其中包含八―九個(gè)文件夾。

★ ConvertColor是彩色顏色轉換文件夾,它里面包含24位色―各種顏色之間的轉換的函數。

★ ConvertMono是灰度顏色轉換文件夾,它里面包含24位色―單色,四級灰度,16級灰度和用戶(hù)自定義顏色之間轉換的函數。

★ Core是GUI的核心,GUI多數的處理函數都在這個(gè)文件夾里面。

★ Font是GUI的字體文件夾,我們可以通過(guò)對它里面文件的增減來(lái)增刪字體。

★ LCDDriver是GUI的底層接口部分我們所的部分就應該在這個(gè)文件夾。

★ MemDev是GUI的DMA模式的一些處理函數文件。

★ Widget里面含有各種窗口控件,如對話(huà)框,按鈕等控件。

★ WM是GUI的窗口消息處理函數文件夾。

★ Touch是觸摸屏和鼠標的底層接口部分。


2.UCGUI需要移植的部分

① uCGUI移植需要修改的文件有:修改Main.c,LCDConf.h,在LCDDrive文件夾添加LCD 44b0.h, LCD 44b0.c其中LCD 44b0.h是LCD 44b0.c的聲明,LCD 44b0.c提供一系列LCD底層函數接口。

② 若要支持DMA模式還要添加一個(gè)LCDMemc.h, LCDMemc.c文件。LCDMemc.h使LCDMemc.c的聲明,LCDMemc.c使DMA模式的底層接口函數。

③ 若要支持觸摸屏和鼠標還需要在GUICONF.H中修改一下定義:

#define GUI_SUPPORT_TOUCH (1)

使GUI支持鼠標觸摸屏,并配置GUITouchConf.h文件。在GUITouch下添加相應的接口驅動(dòng)。

我們主要移植的使LCD的直接驅動(dòng)模式,所以只需要修改1>就行了。

我用的是JediView(for ARM)集成調試環(huán)境,其它環(huán)境類(lèi)似,硬件為S3C44b0X,LCD為256色彩色液晶,分辨率為320×240。


四、實(shí)驗設備及工具(包括軟件調試工具)

硬件: Micetek 44B0 實(shí)驗系統

JEDI仿真器

PC機 Pentumn100以上

軟件: PC機操作系統win2000

JEDIView集成開(kāi)發(fā)環(huán)境


五、程序說(shuō)明

新建一個(gè)文件夾uCGUI,添加以上體系的所有文件夾及文件加到uCGUI文件夾,刪除LCDDrive文件夾下的LCDWin.c,它是在VC下的仿真驅動(dòng)程序,在LCDDrive文件夾添加LCD 44b0.h, LCD 44b0.c。暫時(shí)不移植觸摸屏驅動(dòng),可保持Touch目錄為空,以后擴展時(shí)再用。

在uCGUI目錄下新建一個(gè)Inc文件夾,將option.h, 44b.h, 44blib.h, def.h,cache.h,lcdlib.h,44blcd.h添加進(jìn)來(lái)。

將lcdlib.c添加到Application文件夾。

新建一個(gè)工程也叫uCGUI,添加以上體系的所有文件夾及其內部文件加到uCGU工程。

修改include配置:打開(kāi) Tools->Option->Directory->Include Files添加路徑

……uCGUIguiConvertColor

……uCGUIguiConvertMono

……uCGUIguiCore

……uCGUIguiFont

……uCGUIguiLCDDriver

……uCGUIguiMemDev

……uCGUIguiWidget

……uCGUIguiWM

……uCGUIguiTouch

……:ucOSConfig

……guiApplication

其中……為你所建工程所在路徑,以上這些路徑在有的編譯器可不加,自動(dòng)找到,在JediView(for ARM)集成調試環(huán)境需要添加。

由于uCGUI 用到了數學(xué)庫,在Gcc編譯器下需要在link設置中添加-lm參數,使編譯器可以找到數學(xué)庫。


六、實(shí)驗現象

液晶顯示屏顯示的是實(shí)驗結果,其中第2行的數值不斷加1跳變。




關(guān)鍵詞: 實(shí)驗 S3C44B0X 移植 uCGUI

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>