Microwindows在基于單片機嵌入式系統(tǒng)中的移植
圖形引擎層
microwindows系統(tǒng)中的核心函數是在圖形引擎層通過調用下層硬件設備驅動程序來實現(xiàn)的。這些函數對屏幕、鼠標、鍵盤等驅動程序進行了封裝,為api提供了服務,用戶調用最上層提供的編程接口,而不需要直接調用引擎層的例程。在microwindows的源代碼中,核心的例程包括:
devdraw.c: 主要的圖形繪制操作,描畫和填充、圓、多邊形、文本與位圖的顯示,顏色轉換相關的代碼;
devclip.c: 剪裁操作;
devmouse.c:處理鼠標操作的信息;
devkbd.c: 處理鍵盤操作的信息;
devpalx.c: 與調色板相關的代碼;
devimage.c: 實現(xiàn)對gif、bmp、jpeg、ppm 等格式圖形的顯示操作;
fongt_xxxx.c: 對不同字體的顯示操作
api
microwindows提供了兩種類型的api,以便更好地適應在不同平臺上應用程序的移植。一種是與win32/win ce 基本兼容的api,支持大多數的圖形操作,它的api是基于消息機制的。另一種是采用x體系的nano-x api,它是client/server模式的,在客戶端的api函數以nx……( )命名,在服務端的api函數以gr……( )命名。
具體實現(xiàn)
下面具體論述microwindows在pc機和s3c44b0x開發(fā)板上的實現(xiàn)。首先,需要下載相應的安裝包,本文下載的是0.90版本的microwindows和相應的字庫文件。同時,由于microwindows需要使用freetype庫函數產生truetype字體,因此還需要下載安裝freetype,這里使用的的是1.3.1版本的freetype。
pc機上實現(xiàn)
解壓縮相關的安裝包,安裝freetype之后,就可以開始運行microwindows。在解壓縮目錄中輸入命令:./xconfigure,就會出現(xiàn)相應的配置菜單,由于是在pc機上運行,應根據具體的參數配置microwindows。具體的參數配置如下:
(1) 點擊compiling option ,進入編譯選項。在隨后彈出的子窗口中選中optimize,點擊ok 返回即可。
(2) 點擊platform,進入開發(fā)平臺選項。由于是在pc機上運行,選擇“linux(native)”選項。在其后的“option”選項中,按如下配置:“screen driver”選項中,由于是在pc機上運行,選擇“x11”;在“mouse driver”鼠標選項中,選擇“gpm mouse”;在“keyboard driver”鍵盤選項中,選擇“tty”。
(3) 點擊“libraries to compile”,進入鏈接庫配置選項。其中有nanox庫和microwindows 庫,在“nanox”的“option”選項中,選擇“link app into server”和“compile demos”選項。
關于其他的參數配置,包括字庫、文件格式支持等應根據具體的情況進行配置。至此,microwindows在pc機上運行的配置工作已經完成,存盤退出,屏幕顯示配置成功。輸入命令:make,完成編譯工作。當編譯完成后,在src的bin目錄下有很多演示程序,一些是基于nano—x api 的,一些是基于win32 api 的,運行即可。
以上簡單論述了microwindows在pc機上運行的方法與過程,pc機上的運行過程相對簡單,只需要按照實際情況進行配置,編譯即可。
嵌入式開發(fā)板上的實現(xiàn)
下面論述microwindows在以s3c44b0x為主控芯片的嵌入式開發(fā)板中運行的步驟與方法。首先需要建立交叉編譯開發(fā)環(huán)境,這里建立的編譯器是arm-elf-gcc,匯編器是arm-elf-as,鏈接器為arm-elf-ld和庫管理器arm-elf-ar。接著,移植相應的?clinux,關于此類的文章已經較多,在此就不贅述了。最后,在clinux內核中將s3c44b0x的幀緩沖設備驅動打開,并需要建立/dev/fb0設備節(jié)點,關于s3c44b0x的幀緩沖設備驅動程序的開發(fā)已另文發(fā)表。至此,已經做好microwindows移植的基礎工作,下面具體論述實現(xiàn)的步驟與方法。
評論