<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è) > 嵌入式系統 > 設計應用 > 基于嵌入式處理器S3C44B0X的μC/GUI設計

基于嵌入式處理器S3C44B0X的μC/GUI設計

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

1. 引言

B0X 是三星公司針對嵌入式系統推出高性?xún)r(jià)比微處理器,它是基于A(yíng)RM7TDMI內核的16/32位RISC處理器,工作主頻為66MHz。人機界面(GUI)是現代智能電子設備必不可少的重要組成部分,近年來(lái)隨著(zhù)硬件的發(fā)展不斷進(jìn)步,目前基于嵌入式的μC/GUI已經(jīng)在智能儀器、工業(yè)領(lǐng)域等發(fā)揮了重要的作用[1-3]。本文討論了一種基于三星公司生產(chǎn)的的μC/GUI移植方法,這種設計方法具有占用資源少、高性能、可靠性強、易移植等優(yōu)點(diǎn)。

2. 通用嵌入式圖形模塊μC/GUI

μC/GUI是Micrium公司開(kāi)發(fā)的通用的嵌入式用戶(hù)圖形界面軟件。它給任何使用圖形LCD的應用程序提供獨立于處理器和LCD控制器之外的有效的圖形用戶(hù)接口??梢詰糜趩我蝗蝿?wù)環(huán)境,也可以應用于多任務(wù)環(huán)境中。μC/GUI能夠應用于任何LCD控制器和CPU的任何尺寸的物理顯示或者模擬顯示中。 它具有驅動(dòng)接口層和應用層,全部代碼采用ANSI _C編寫(xiě),提供源代碼,可以方便的移植到各種平臺下。

2.1 μC/GUI特點(diǎn)

μC/GUI的特點(diǎn)主要包括:適用于任何8位/16位/32位CPU,可允許于支持ANSI C的任何編譯器;適用于任何控制器驅動(dòng)任何LCD(單色,灰度,或者彩色);通過(guò)配置宏,可支持任何接口;可配置顯示尺寸;可在LCD的任何一點(diǎn)上顯示字符和畫(huà)位圖;對于顯示尺寸和速度提供優(yōu)化進(jìn)程,編譯時(shí)間依賴(lài)于采用的優(yōu)化進(jìn)程,支持虛擬顯示,虛擬顯示的尺寸比實(shí)際顯示大。

2.2 μC/GUI數據結構

μC/GUI以其窗口作為內存管理的基本單位,對所有窗口的管理是通過(guò)定義一個(gè)堆結構實(shí)現的。每個(gè)窗口在創(chuàng )建時(shí)根據其結構類(lèi)型的不同為其在堆空間里分配特定大小的連續內存塊,并用一個(gè)塊結構體數組中的一個(gè)元素標識,塊結構體的定義如下:

typedefstruct

{

tALLOCINTOff;/*在堆中塊開(kāi)始的位置*/

tALLOCINTSize;/*在堆中所占連續內存塊的大小*/

HANDLENext;/*指向后一窗口指針*/

HANDLEPrev;/*指向前一窗口指針*/

}tBlock;

statictBlockaBlock[GUI_MAXBLOCKS];

所分配的塊結構體數組元素在數組中的序號作為返回值用以標識一個(gè)窗口,即句柄。這樣對于一個(gè)窗口而言,記錄其各方面屬性的窗口類(lèi)型結構體變量被放在堆空間中并且有一個(gè)塊標志與之對應。在整個(gè)過(guò)程中通過(guò)定義一個(gè)全局結構變GUI_Alloc存放相關(guān)分配信息,實(shí)現對內存的輔助管理。

2.3 μC/GUI工作機制

μC/GUI依靠消息機制和毀掉函數來(lái)實(shí)現窗口的創(chuàng )建、顯示及刪除。在μC/GUI中定義了數十種用于各類(lèi)基本操作的消息宏,對一個(gè)窗口的操作基本上都是通過(guò)向其對應的回調函數傳送消息參數完成的。在整個(gè)工作過(guò)程μC/GUI利用一個(gè)全局的結構體變量GUI_Context即所謂的上下文變量來(lái)記錄包括:繪圖屬性、當前窗口信息、當前API列表、字體信息等與當前操作密切相關(guān)的信息,以管理整個(gè)工作流程。

3. 微處理器

三星公司推出的16/32位RISC處理器為手持設備和一般應用提供了高性?xún)r(jià)比和高性能的微控制器解決方案。其主頻可達66MHz,外圍設備和接口擴展豐富,使嵌入式系統的開(kāi)發(fā)成本大大降低。

3.1 S3C44B0X內置LCD控制器

S3C44B0X內置LCD控制器可以支持規格為每像素2位(4級灰度)或每像素4位(16級灰度) 的黑白LCD。也可以支持每像素8位(256顏色)的彩色LCD屏。其內部結構框圖如圖1所示。

圖1 LCD內部控制器框圖

3.2基于S3C44B0X建立GUI硬件平臺

S3C44B0X有兩種運行方式:一種是有操作系統的,另一種是無(wú)操作系統的。對于無(wú)操作系統的運行方式,系統的初始化和主程序都在2MB的線(xiàn)性 FALSH內運行,2MBFALSH與S3C44B0X的Bank0相連,上電復位后系統自動(dòng)從0x00000000地址開(kāi)始運行,也可以把程序加載到指定的地址開(kāi)始運行。本文中采用無(wú)系統運行方式,將初始化程序和主程序加載到首地址為0x0c008000的2MFLASH中運行。

筆者使用的基于S3C44B0X的開(kāi)發(fā)板與LCD相關(guān)部分主要集成了如下器件:2MB的FLASH;8MB的SDRAM;用戶(hù)自定義邏輯器件;一塊夏普5.7英寸、256色、320×240分辨率LCD;ARM JTAG接口。

其功能框圖如圖2所示。

圖2開(kāi)發(fā)板相關(guān)部分框圖


上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(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>