999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

嵌入式Linux與MiniGUI的關鍵問題研究

2009-09-28 02:06:56劉書剛
大家 2009年12期
關鍵詞:嵌入式

摘要:本文主要討論了基于Linux的嵌入式系統的研究與開發。通過對通常嵌入式Linux操作系統的原理和實現方式的分析,針對具體的MiniGUI,分析了其體系結構和關鍵技術。

關鍵詞:嵌入式 Linux MiniGUI

一 嵌入式Linux概述

自從1991年首次公開發表以來,Linux的應用范圍越來越廣泛。Linux常用來指Linux內核、Linux系統或Linux發行套件。當Linux內核為了特殊的硬件配置或者支持特定的應用,經過特別的裁剪,這樣就成為了嵌入式Linux系統。

二 嵌入式Linux系統下MiniGUI

隨著Linux的廣泛應用,PDA、機頂盒、DVD/VCD播放機及WAP手機已經迅速普及。圖形用戶界面(GUI)的廣泛流行,是當今計算機技術的重大成就之一。它極大地方便了非專業用戶的使用,因此實時嵌入式系統對GUI的需求越來越明顯,而這一切均要求有一個高性能、高可靠的GUI的支持。

由于Linux系統實時性要求非常高,對GUI的要求也更高。這些系統一般不希望建立在龐大累贅的、非常消耗系統資源的操作系統和GUI之上,比如Windows,太過龐大和臃腫。這樣,這些系統對輕型GUI的需求更加突出。另外嵌入式系統往往是一種定制設備,它們對GUI的需求也各不相同。有些系統只要求一些圖形功能,而有些系統要求完備的GUI支持,因此,GUI也必須是可定制的。嵌入式系統對GUI的基本要求包括輕型、占用資源少、高性能、高可靠性及可配置。

三 MiniGUI的體系結構

3.1多線程的分層設計

GAL和IAL為MiniGUI提供了底層的Linux控制臺或者XWindow上的圖形接口以及輸入接口,而Pthread是用于提供內核級線程支持的C函數庫。MiniGUI本身運行在多線程模式下,它的許多模塊都以單獨的線程運行,同時,MiniGUI還利用線程來支持多窗口。從本質上講,每個線程有一個消息隊列,消息隊列是實現線程數據交換和同步的關鍵數據結構。一個線程向消息隊列中發送消息,而另一個線程從這個消息隊列中獲取消息,同一個線程中創建的窗口可共享同一個消息隊列。利用消息隊列和多線程之間的同步機制,可以實現下面要講到的微客戶/服務器機制。多線程有其一定的好處,但不方便的是不同的線程共享了同一個地址空間,因此,客戶線程可能會破壞系統服務器線程的數據,但有一個重要的優勢是,由于共享地址空間,線程之間就沒有額外的數據復制開銷。由于MiniGUI是面向嵌入式或實時控制系統的,因此,這種應用環境下的應用程序往往具有單一的功能,從而使得采用多線程而非多進程模式實現圖形界面有了一定的實際意義,也更加符合MiniGUI之“mini”的特色。目前,MiniGUI開發組準備開發出基于多進程客戶/服務器機制的類XWindow的API,以便用于不同的應用環境。

3.2微客戶/服務器結構

在多線程環境中,與多進程間的通訊機制類似,線程之間也有交互和同步的需求。比如,用來管理窗口的線程維持全局的窗口列表,而其他線程不能直接修改這些全局的數據結構,而必須依據“先來先服務”的原則,依次處理每個線程的請求,這就是一般性的客戶/服務器模式。MiniGUI利用線程之間的同步操作實現了客戶線程和服務器線程之間的微客戶/服務器機制,之所以這樣命名,是因為客戶和服務器是同一進程中的不同線程。微客戶/服務器機制的核心實現主要集中在消息隊列數據結構上。

當MiniGUI在初始化全局數據結構以及各個模塊之后,MiniGUI要啟動幾個重要的微服務器,它們分別完成不同的系統任務:

①desktop用于管理MiniGUI窗口中的所有主窗口,包括建立、銷毀、顯示、隱藏、修改Z-order、獲得輸入焦點等等。

②parsor線程用來從IAL中收集鼠標和鍵盤事件,并將收集到的事件轉換為消息而郵寄給desktop服務器。

③timer線程用來觸發定時器事件。該線程啟動時首先設置Linux定時器,然后等待desktop線程的結束,即處于體眠狀態。當接收到SIGALRM信號時,該線程處理該信號并向desktop服務器發送定時器消息。當desktop接收到定時器消息時,desktop會查看當前窗口的定時器列表,如果某個定時器過期,則會向該定時器所屬的窗口發送定時器消息。

四 MiniGUI的關鍵技術

(1)多線程和多窗口

MiniGUI中的窗口基本分四類,分別為主窗口、對話框、控件和主窗口中的子窗口。MiniGUI中的主窗口和Windows應用程序的主窗口概念類似,但有一些重要的不同,MiniGUI中的每個主窗口及其附屬主窗口對應于一個單獨的線程,通過函數調用可建立主窗口以及對應的線程。

(2)對話框和標準控件

MiniGUI中的對話框是一種特殊的窗口,對話框一般和控件一起使用,這兩個概念和Windows或XWindow中的相關概念是類似的。MiniGUI支持的控件類型有:

①靜態框:文本、圖標或矩形框等。

②文本框:單行或多行的文本編輯框。

③按鈕:單選鈕、復選框和一般按鈕等。

④列表框。

⑤進度條。

(3)其他GUI元素

MiniGUI還支持級聯式菜單、插入符、定時器、光標、快捷鍵等常見的GUI元素。

(4)消息和消息循環

在任何GUI系統中,均有事件或消息驅動的概念。在MiniGUI中,使用消息驅動作為應用程序的創建構架。在消息驅動的應用程序中,計算機外設發生的事件,例如鍵撇鍵的敲擊、鼠標鍵的按擊等,都由支持系統收集,將其以事先的約定格式翻譯為特定的消息。

應用程序一般要提供一個處理消息的標準函數。在消息循環中,系統可以調用此函數,應用程序在此函數中處理相應的消息。MiniGUI支持如下幾種消息的傳遞機制。這些機制為多線程環境下的窗口間通訊提供了基本途徑:

①通過PostMessage發送。消息發送到消息隊列后立即返回。這種發送方式稱為“郵寄”消息。如果消息隊列中的郵寄消息緩沖區已滿,則該函數返回錯誤值。

②通過PostSyncMessage發送。該函數用來向不同于調用該函數的線程消息隊列郵寄消息,并且只有該消息被處理之后,該函數才能返回,因此這種消息稱為“同步消息”。

③通過SendMessage發送。該函數可以向任意一個窗口發送消息,消息處理完成之后,該函數返回。如果目標窗口所在線程和調用線程是同一個線程,該函數直接調用窗口過程,如果處于不同的線程,則利用PostSyncMessage函數發送同步消息。

④通過SendNotifyMessage發送。該函數向指定的窗口發送通知消息,將消息放入消息隊列后立即返回。由于這種消息和郵寄消息不同,是不允許丟失的,因此,系統以鏈表的形式處理這種消息。

⑤通過SendAsyncMessage發送。利用該函數發送的消息稱為“異步消息”,系統直接調用目標窗口的窗口過程。

參考文獻:

[1] 鄒思軼.嵌入式Linux設計與應用.清華大學出版社.2002年1月.第一版

[2] 馮銳等譯.Linux內核源代碼分析.機械工業出版社.2000年.第二版

[3] 鄒勇,王青和李明樹.Linux內核的實時支持的研究與實現.計算機研究與發展.2002年.第四期

[4] William Stallings.操作系統-內核與設計原理.電子工業出版社2001第4版.P336-346

作者:

劉書剛華北電力大學計算機系

猜你喜歡
嵌入式
Focal&Naim同框發布1000系列嵌入式揚聲器及全新Uniti Atmos流媒體一體機
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
基于嵌入式Linux內核的自恢復設計
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
嵌入式PLC的設計與研究
電子制作(2018年16期)2018-09-26 03:27:18
搭建基于Qt的嵌入式開發平臺
基于嵌入式系統Windows CE的應用程序開發
嵌入式單片機在電機控制系統中的應用探討
電子制作(2017年8期)2017-06-05 09:36:15
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
Altera加入嵌入式視覺聯盟
主站蜘蛛池模板: 日韩av资源在线| 亚洲国产精品人久久电影| 久久免费视频6| 五月婷婷综合网| 欧美精品亚洲日韩a| 孕妇高潮太爽了在线观看免费| 亚洲第一区欧美国产综合| 亚洲综合片| 欧美日韩在线成人| 国产99视频免费精品是看6| 国产乱子伦一区二区=| 国产网站一区二区三区| 亚洲成aⅴ人片在线影院八| 日本免费a视频| 国产噜噜噜视频在线观看| 久久综合AV免费观看| 青青青国产精品国产精品美女| 亚洲第一成年人网站| 日韩国产一区二区三区无码| 国产欧美视频综合二区 | 97精品伊人久久大香线蕉| 99久久亚洲综合精品TS| 亚洲一区网站| 欧美国产日韩在线观看| 色国产视频| 亚洲日韩精品无码专区| 国内99精品激情视频精品| 国产97公开成人免费视频| 精品91自产拍在线| 国产全黄a一级毛片| 亚洲精品你懂的| 91福利国产成人精品导航| 国产精品一区二区久久精品无码| 97国产在线视频| 一级高清毛片免费a级高清毛片| 国产欧美又粗又猛又爽老| 国产又粗又爽视频| 激情综合五月网| 国产婬乱a一级毛片多女| 午夜啪啪福利| 国产aⅴ无码专区亚洲av综合网| 亚洲黄色视频在线观看一区| 亚洲国产精品日韩专区AV| 囯产av无码片毛片一级| 在线国产你懂的| 国产女人18水真多毛片18精品 | 亚洲AV无码久久精品色欲| 久久国产成人精品国产成人亚洲 | 四虎永久免费在线| 亚洲人在线| 亚洲一级毛片在线观| 992tv国产人成在线观看| 国产一区二区网站| 亚洲AV电影不卡在线观看| 亚洲精品第一页不卡| 69免费在线视频| 97se亚洲综合在线韩国专区福利| 精品少妇人妻av无码久久| 日本高清在线看免费观看| 永久成人无码激情视频免费| 国产又爽又黄无遮挡免费观看| 精品91自产拍在线| 亚洲天堂在线免费| 97国产在线视频| 国产草草影院18成年视频| 亚洲天堂网在线视频| 亚洲美女高潮久久久久久久| 国产一区二区三区在线观看免费| 午夜国产精品视频| 国产呦精品一区二区三区网站| 一级一毛片a级毛片| 中文字幕丝袜一区二区| 噜噜噜久久| 中文字幕久久亚洲一区| 欧美性爱精品一区二区三区| 亚洲中文久久精品无玛| 亚洲日韩图片专区第1页| 日韩色图在线观看| 天堂久久久久久中文字幕| 国产精品亚欧美一区二区| 欧美一级99在线观看国产| 国产一区二区免费播放|