基于MiniGUI的數字加密電話系統(tǒng)GUI設計
摘要:提出一種以AT91SAM9263處理器為核心芯片、采用嵌入式Linux2.6內核和MiniGUI3.0圖形系統(tǒng)的數字加密電話系統(tǒng)GUI的設計與實現方案。采用雙緩沖技術與多張圖片交替顯示的方式解決了MiniGUI的動畫抖動問題和屏幕刷新負載過大導致的屏幕抖動問題。
關鍵詞:動畫抖動;雙緩沖技術;MiniGUI;嵌入式
引言
在需要豐富人機交互信息的嵌入式系統(tǒng)應用中,高精度的動態(tài)圖像顯示非常重要。因此,嵌入式系統(tǒng)對GUI的實時性和穩(wěn)定性的要求也越來越明顯。但是,動態(tài)圖像的抖動和刷新延遲的問題在嵌入式系統(tǒng)中經常出現,影響系統(tǒng)的顯示效果。
國產圖形用戶界面系統(tǒng)MiniGUI提供完備的多窗口機制和類Win32消息傳遞機制,便于實現多個進程間的消息傳遞。而且具有占用內存少、可移植性好等特點,因此在嵌入式領域中被廣泛應用。但在實際應用中,筆者發(fā)現了兩個問題:一是用MiniGUI的animation控件實現時出現動畫抖動,二是顯示較多圖片的窗口刷新時屏幕閃爍,嚴重影響屏幕的顯示效果。為解決以上兩個問題,本系統(tǒng)采用MiniGUI的雙緩沖技術和多張圖片交替顯示的方法,并通過實際應用證明了該方法的有效性。
1 數字加密電話系統(tǒng)架構
1.1 硬件系統(tǒng)
數字加密電話硬件系統(tǒng)的芯片采用ATMEL公司的AT91SAM9263處理器。主頻為200 MHz,2 MB高速Data Flash、64 MB NAND Flash和64 MB SDRAM。核心板的對外接口包括鍵盤接口、LCD接口、LED接口、MODEM模塊、電話機模塊和接口、SD卡接口和USB主從接口等。如圖1所示。
1.2 軟件系統(tǒng)
操作系統(tǒng):開放源碼的Linux操作系統(tǒng)是開發(fā)嵌入式產品的首選。本系統(tǒng)采用開放源碼的嵌入式Linux系統(tǒng)。它的內核版本為2.6.22,是基于default_at91sam9263_config配置的。
交叉編譯工具鏈:采用arm-linux-XXX。arm-linux-gcc用于交叉編譯源程序,生成執(zhí)行文件;arm-linux-strip用于去掉執(zhí)行文件中的調試信息,起到減小執(zhí)行文件大小的作用。
GUI系統(tǒng):MiniGUI是國產的一款面向嵌入式系統(tǒng)、跨操作系統(tǒng)的輕量級國產高級窗口系統(tǒng)(Windowing System)和圖形用戶界面(Graphi-cal User Interface,GUI)支持系統(tǒng)。經過10余年的發(fā)展,MiniGUI已經發(fā)展成為比較成熟、性能優(yōu)良且功能豐富的跨操作系統(tǒng)的嵌入式圖形界面支持系統(tǒng)。MiniGUI可在Linux/μClinux、eCos、μC/OS-II、VxWorks、pSOS、ThreadX等操作系統(tǒng)以及Win32平臺上運行,已廣泛應用于手持信息終端、機頂盒、工業(yè)控制系統(tǒng)、便攜式多媒體播放器等產品中。
MiniGUI支持BMP、GIF、PNG、JPEG、PCX、TGA等常見圖像文件和位圖、圖標、光標等Windows資源文件,支持多字符集和多種字體,庫文件較小且可配置。MiniGUI3.0比其之前的版本,在以下幾方面有新的發(fā)展:
①主窗口雙緩沖技術,可以在自定義緩沖區(qū)中獲得整個窗口的渲染結果。
②外觀渲染器技術,外觀渲染器提供了多種風格的主窗口和控件界面外觀,并且應用程序可在幾種風格之間動態(tài)切換。
③雙向文本顯示與輸入,增加了對阿拉伯文和希伯來文語言的支持,實現了文本的變形和重排,并提供了阿拉伯文和希伯來文鍵盤的支持。
④支持不規(guī)則窗口,如圓角矩形、非矩形窗口等。
⑤增加了組件mGUtilis,該組件為用戶提供了一些常用的對話框模板,便于代碼復用。
⑥增加了組件msgplus,該組件是對MiniGUI圖形繪制接口的一個擴充和增強,主要提供對二維矢量圖形和高級圖形算法的支持。
因此,MiniGUI非常適合編寫嵌入式圖形用戶界面應用程序。
評論