新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于MiniGUI的多進程圖形用戶界面的研究

        基于MiniGUI的多進程圖形用戶界面的研究

        作者: 時間:2012-05-18 來源:網絡 收藏

        2開發重點

        2.1 窗口管理

        提供了豐富的構件,如窗口、對話框、控件等,能夠實現各種應用功能。本身是事件驅動的圖形界系統,所謂事件是指當用戶進行窗口操作時,如移動鼠標、單擊鼠標、進行鍵盤輸入的功能,這些動作會觸發一個相應的“事件”,并由支持系統收集,以特定方式翻譯為消息。應用程序一般包含自己的消息隊列,以接受系統消息并建立循環,這樣的循環稱為消息循環。消息一般由代表消息類型的數和附加參數構成。

        多窗口系統在屏幕上要同時顯示多個應用程序窗口,程序窗口之間會有相互重疊關系。所以GUI系統運行后首先要創建一個根窗口,此窗口在系統啟動時由啟動腳本運行,是所有其他窗口的依附窗口。其他子窗口由用戶在根窗口內點擊相應圖標產生,并且在子窗口內可以繼續派生出自己的下一級子窗口,每個子窗口擁有一個窗口ID號,以標示與上級窗口的派生關系,據此便可以追溯到根窗口,而不至于產生窗口管理的混亂。窗口之間的可以為同級或者上下級派生關系。相互間的邏輯結構如圖2所示:

        12.gif

        2.2 多任務優先級分配

        由于嵌入式設備在硬件資源上的局限性,GUI系統對新的任務請求進行運行優先級的分配和管理,以避免低運行級任務造成系統資源的浪費。GUI系統優先運行級別較高的任務,對新產生的任務按照預定方式分配相應的運行級別,并與當前運行的任務級別進行比較,如果新任務是最高運行級別的任務,則掛起其他任務直到新任務處理結束;如果是相同運行級別的任務則把新任務加入到運行隊列的隊尾,由內核分配CPU時間片和內存資源,與其他的任務一起進行多任務的并發處理;如果新任務運行級別最低則將被放入到系統等待隊列中,直到其他任務處理完成再處理新任務。判斷流程如圖3示:

        10.gif
        圖3運行級別判斷流程圖

        3嵌入式開發環境構建

        完整的嵌入式開發環境由嵌入式目標板和宿主機構成,兩者通過網線、計算機串口和JTAG連接。用戶程序在宿主機平臺上進行開發,交叉編譯過的程序燒寫到開發板中的Flash芯片中。

        3.1宿主機

        宿主機安裝Redhat9.0操作系統、開發環境和開發工具集。工具集包括交叉編譯器gcc、調試器gdb、C函數庫glibc和二進制工具集binutils。

        3.2 目標板

        1)引導程序(Boot Loader)

        是系統復位后執行的一段代碼,首先完成系統硬件的初始化,包括時鐘設置、存儲區影射等,然后跳轉到操作系統內核的入口,將系統控制權交給操作系統。 Boot Loader獨立于操作系統而高度依賴系統硬件,必須自行設計。本文采用vivi作為系統的引導程序。其啟動分為兩個階段:第一階段代碼采用匯編語言編寫,主要進行與CPU以及存儲設備密切相關的工作,并進行初始化;第二階段采用C語言編寫,來實現一般的流程及對板級的一些驅動支持。

        2)Linux內核

        一般的嵌入式操作系統如uClinux、uC/OS-II通常運行在沒有MMU的CPU上,因此在編程時具有較大的困難度,所以選擇具有完整 Unix特性的Linux作為操作系統。開發板采用打過補丁的Linux-2.4.18-rmk7的內核,內核和補丁可以從ARM的官方網站上下載。在配置內核時去掉無關的功能以減少內核大小,如SCSI、IrDA、手柄等。

        3)根文件系統

        嵌入式根文件系統(root filesystem)是嵌入式Linux系統的核心部分 ,包含系統使用的軟件和庫,以及所有用來為用戶提供支持架構和用戶使用的應用軟件,并作為存儲區讀寫結果的區域。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 麻阳| 昂仁县| 阜宁县| 类乌齐县| 深圳市| 通道| 蓬莱市| 安仁县| 西乌珠穆沁旗| 连江县| 许昌县| 水城县| 巫山县| 德昌县| 天门市| 应城市| 呼玛县| 内丘县| 富蕴县| 平安县| 株洲县| 鄂伦春自治旗| 阳城县| 峨眉山市| 晋江市| 米脂县| 蒙城县| 绥阳县| 洮南市| 许昌县| 泾川县| 克山县| 乐山市| 平凉市| 阳原县| 寿阳县| 安义县| 肥西县| 分宜县| 来安县| 庄河市|