- 相關推薦
嵌入式Linux系統下Microwindows的應用
摘要:通過對嵌入式GUI軟件Microwindows進行分析并與X window進行對比,闡述Microwindows用于嵌入式設備上的優點;簡要論述Microwindows的體系結構和圖形應用程序接口;介紹其設備驅動特性、API、客戶機/服務器模型、畫圖機制和FLTK。引言
在進入后PC時代以后,嵌入式設備以一種無法抑制的迅猛速度普及和發展到日常生活及工作當中,眾多知名開發商為了搶占市場和爭奪利潤,競相推出各種性能優異的軟硬件及內核芯片。鑒于以視窗為代表的桌面操作模式取得巨大成功,該模式目前已成為國內外開發者們在嵌入式設備中的首選方案。
近幾年,隨著Linux技術的興起,越來越多的企業和科研機構把目光轉向嵌入式Linux的開發和研究。Linux不僅具有桌面電腦的全部功能和特性,允許修改和根據用戶的要求進行定制,而且作為一種免費的開放式源碼,還支持目前在嵌入式設計領域中常用的新型微處理器,如StrongARM、MIPS以及PowerPC等,具有穩定、高效、易定制、易裁減、硬件支持廣泛等特點。Microwindows是一個著名的開放式源碼的嵌入式GUI軟件,目的是把圖形視窗環境引入到運行Linux的小型設備和平臺上。作為X Window系統的替代品,Microwindows可用更少的RAM和文件存儲空間(100K~600KB)提供相似的功能,允許設計者輕松加入各種顯示設備、鼠標、觸摸屏和鍵盤等;可移植性非常好,可用C語言和少部分匯編語言實現,支持Intel 16位、32位CPU,MIPS R4000以及基于ARM內核的處理器芯片,有多種平臺支持Microwindows。
1 X Window的不足
由于使用了帶有TCP/IP結構的自由式開放源碼操作系統,使嵌入式設備進入了一個創新應用時代,不過這些新的應用需要考慮其資源環境,這是因為多數的嵌入式設備缺少硬件驅動和大的RAM。目前,在Linux系統中普遍使用X Window系統,如圖1所示。X Window是在20世界80年代早期由MIT、DEC等提出來的,是一個基于Client/Server結構的視窗系統;允許在任一臺UNIX主機(Clients——客戶端)上運行程序,而在基于X的終端(Server——服務器)上顯示出來。在這個過程中,相當一部分代碼用于確認主機和服務器上運行的Client/Server程序是否正常。目前,大多數X的客戶端和服務器是在同一臺機器上運行,X Window服務器經編譯后一般用于自動檢測硬件。服務器中還包含有眾多的畫圖函數,它們的位置根據執行速度被位置在裁減層之上或之下。這些便利X Window過于臃腫和復雜,運行時需要至少8MB的內存空間。
2 Microwindows分析比較
對于大多數嵌入式設計,尤其是在運行專用圖形程序的場合,X Window不是一種恰當的選擇。由此而發展起來的Microwindows是專門設計用于在小型設備上開發具有高品質圖形功能的開放式源碼桌面系統,有許多針對現代圖形視窗環境的功能部件。它的結構設計使其可方便地加入不同的顯示、鼠標、觸屏以及鍵盤等設備。Microwindows基于2.2.0版本的Linux系統如圖2所示。其內核所包含的代碼允許用戶程序將圖形顯示的內存空間作為framebuffer進行存取操作,這樣在用戶程序空間中可作為內存映射區域來直接控制圖形顯示,可使得用戶在編寫圖形程序的時候不再需要去了解底層硬件,這是目前Microwindows在嵌入式系統中被很多人使用的原因。
設計得在設計Microwindows時沿用了已有的兩個圖形應用程序接口(API):一是Microsoft Windows中Win32/WinCE的圖形設備接口(GDI),它適用于所有Windows CE和Win32的應用程序;另外就Nano-X(Xlib-like界面),它與GDK非常相似,用在Linux上,是像X的API,用于占用資源少的應用程序。這使得熟悉Windows或者是Linux X11的用戶可在熟悉的環境下開發圖形應用程序。
Microwindows在運行過程中僅需要50~250KB的內存空間,遠小于X Windows系統所需空間。這主要是因為Microwindows對于在驅動層的每一個繪圖函數采用的是單進程的方式,由驅動層核驗是否裁減并調用驅動程序來繪制未被裁減的像素點或線;而在X Window系統中,則是出于對速度的考慮,包含所有像素點的繪制程序并分別有裁減和未裁減的版本。Microwindows完全支持新的Linux內核的幀緩沖區結構,同時支持1、2、4、8、16、24、32位像素點顯示,支持調色板、真彩色、灰度等顏色模式,并對渲染提供內置支持。在其API函數的支持下,還可以以RGB的格式描述上述的顏色模式,系統中包含顏色轉換的程序,可將像素點轉換成相近的可顯示顏色或相應單色系統中的灰度級。雖然Microwindows支持Linux系統,但它是基于相對簡單的屏幕驅動界面結構,因此,可在許多不同的實時操作系統(RTOS)上運行,甚至于那些無硬件的實時操作系統也可運行Microwindows。這樣,可使得客戶的圖形應用程序在不的工程中共享使用,也可在不同的RTOS上運行不同的目標程序而不需要重新編寫圖形應用程序,大大提高了編程效率。
Microwindows支持圖形目標平臺的主機平臺競爭,也就是說應用于Linux的Microwindows應用程序不需要跨平臺編譯,就可在桌面上直接運行和測試,同時仍可在目標平臺上運行。這一點需通過使用Micorwindows的X11屏幕驅動器實現,同時驅動器可以根據像素點和顏色值來模擬目標平臺的顯示。因此,即使桌面系統是24位的顏色模式,它也可以以2色模式顯示目標系統中的應用程序。
對于那些熟悉使用Microsoft Windows或Linux X Windows
【嵌入式Linux系統下Microwindows的應用】相關文章:
網站站群管理系統的維護與應用論文06-21
管窺WAMP下教育培訓系統論文08-21
漢字結構應用下包裝藝術論文04-23
嵌入式系統以太網卡控制器LAN91C9605-30
ARM Linux啟動過程分析06-17