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加入嵌入式視覺聯盟
主站蜘蛛池模板: 国产鲁鲁视频在线观看| 国产69精品久久久久孕妇大杂乱 | 成人看片欧美一区二区| 日本午夜影院| 香蕉精品在线| 国产一级做美女做受视频| 九色视频最新网址 | 欧美成人午夜在线全部免费| 人人看人人鲁狠狠高清| 无码日韩精品91超碰| A级全黄试看30分钟小视频| 国产在线观看第二页| 欧美.成人.综合在线| 91破解版在线亚洲| 亚洲熟女中文字幕男人总站| 91青青草视频| 潮喷在线无码白浆| 无码有码中文字幕| 激情无码字幕综合| 人妻丰满熟妇av五码区| 亚洲91精品视频| 亚洲中文字幕无码mv| 九色综合视频网| 成人毛片在线播放| 久久免费视频播放| 一级毛片网| 欧美丝袜高跟鞋一区二区| 国产99在线| 久久a毛片| 中文字幕久久亚洲一区| 亚洲国产天堂在线观看| 亚洲人网站| 精品久久人人爽人人玩人人妻| 国产av无码日韩av无码网站| 亚洲精品波多野结衣| 国产在线精彩视频论坛| 麻豆国产在线观看一区二区| 国产精品成人久久| 中文字幕伦视频| 成人午夜精品一级毛片| 97免费在线观看视频| 国产乱码精品一区二区三区中文 | 久久精品视频亚洲| 天天躁夜夜躁狠狠躁图片| 亚洲日本一本dvd高清| 国产乱人免费视频| 国产精品va| 91在线丝袜| 99久久精品国产自免费| 国产欧美中文字幕| 色悠久久综合| 91青青在线视频| 美女高潮全身流白浆福利区| 国产一区二区三区精品久久呦| 久操线在视频在线观看| 久久青青草原亚洲av无码| 国产精品欧美在线观看| 日韩a在线观看免费观看| 亚洲综合网在线观看| 国产99精品久久| 色综合久久88| 五月天综合婷婷| 国产精品网曝门免费视频| 国产人免费人成免费视频| 亚洲成人精品在线| 国产在线观看人成激情视频| 国产在线专区| 天天躁日日躁狠狠躁中文字幕| 欧美yw精品日本国产精品| 亚洲精品视频在线观看视频| 99在线小视频| 无码综合天天久久综合网| 久久国产免费观看| www.91中文字幕| 四虎永久在线精品影院| 久久久四虎成人永久免费网站| 久久久久人妻一区精品| 波多野结衣久久高清免费| 国产精品久久精品| 亚洲av无码久久无遮挡| 久久久久久高潮白浆| 亚洲综合色吧|