freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

全國高校arm嵌入式教學(xué)及科研師資高級培訓(xùn)班講稿-(文件)

2025-08-05 09:35 上一頁面

下一頁面
 

【正文】 靠性 ? 可配置 91 Linux下的 GUI uClinux上的圖形系統(tǒng) ? 緊縮的 X Window系統(tǒng) ? MiniGUI ? MicroWindows ? OpenGUI ? QT/Embedded 92 Linux下的 GUI – X Window uClinux上的圖形系統(tǒng) ? X Window是 Linux以及其他類 UNIX系統(tǒng)的標(biāo)準(zhǔn) GUI。國外已經(jīng)開發(fā)出了大小約為 800K的 X服務(wù)器。該項目的開發(fā)非?;钴S,國內(nèi)也有人參與了其中的開發(fā),并編寫了 GB2312等字符集的支持。最初的名字叫 FastGL,只支持 256的線性顯存模式。這個版本的主要特點是可移植性較好,許多基于 QT的 X Window程序可以非常方便地移植到嵌入式版本。 ? MiniGUI同時也是國內(nèi)最早出現(xiàn)的幾個自由軟件項目之一。包含全部功能的庫文件大小為 300 K左右 ? 可配置。 99 MiniGUI – 多線程和多窗口 uClinux上的圖形系統(tǒng) ? MiniGUI中的窗口基本分四類,分別為主窗口、對話框、控件和主窗口中的子窗口。 ? MiniGUI支持的控件類型有: ?靜態(tài)框:文本、圖標(biāo)或矩形框等。 ?進(jìn)度條。 ? 在消息驅(qū)動的應(yīng)用程序中,計算機外設(shè)發(fā)生的事件,例如鍵盤鍵的敲擊、鼠標(biāo)鍵的按擊等,都由支持系統(tǒng)收集,將其以事先的約定格式翻譯為特定的消息。一般地,消息由代表消息的一個整型數(shù)和消息的附加參數(shù)組成。抽象層的概念類似 Linux內(nèi)核虛擬文件系統(tǒng)的概念。 ? 利用 GAL和 IAL, MiniGUI可以在許多圖形引擎上運行,比如SVGALib和 LibGGI,并且可以非常方便地將 MiniGUI移植到其他POSIX系統(tǒng)上,只需要根據(jù)其抽象層接口實現(xiàn)新的圖形引擎即可。 ? 邏輯字體是 MiniGUI用來處理文本(包括文本輸出和文本分析)的頂層接口。 ? 鍵盤和鼠標(biāo)動作產(chǎn)生由應(yīng)用程序不斷輪詢的事件。 ? 用于處理事件的窗口例程通常標(biāo)志了某一個 “ 窗口類 ” ,具有相同窗口例程的窗口實例被認(rèn)為是屬于同一窗口類。 Lite版本的 MiniGUi使用進(jìn)程機制,拋棄了 pthread庫,從而使得 MiniGUI更穩(wěn)定和更高效率。 ? MiniGUI提供類 Win32的 API,熟悉 Win32編程的讀者可以很快地掌握 MiniGUI編程的基本方法和各個 API接口函數(shù)。除此之外,其他幾乎所有的 API都和 MiniGUI原有版本是兼容的。如果某個線程因為非法的數(shù)據(jù)訪問而終止運行,則整個系統(tǒng)都將受到影響。這些窗口例程通常是由應(yīng)用程序定義的,或者是某些標(biāo)準(zhǔn)例程中的一個。 ? 在多字體和多字符集的支持中, MiniGUI也采用了面向?qū)ο蟮能浖夹g(shù),使得添加新的字體支持和新的字符集支持非常方便。用戶不需要對 MiniGUI 的上層代碼進(jìn)行絲毫修改,只需實現(xiàn)新的 GAL和IAL 引擎,就可以讓 MiniGUI運行在其他基于不同硬件的嵌入式Linux系統(tǒng)上。而用于實現(xiàn)這一抽象接口的底層代碼稱為 “ 圖形引擎 ” 或 “ 輸入引擎 ” ,類似操作系統(tǒng)中的驅(qū)動程序。在消息循環(huán)中,系統(tǒng)可以調(diào)用此函數(shù),應(yīng)用程序在此函數(shù)中處理相應(yīng)的消息。應(yīng)用程序可以建立一個循環(huán),在這個循環(huán)中讀取消息并處理消息,直到特定的消息傳來為止。 101 MiniGUI – 其它 GUI元素 uClinux上的圖形系統(tǒng) ? MiniGUI還支持彈出式菜單、插入符、定時器、光標(biāo)、快捷鍵等常見的 GUI元素 102 MiniGUI – 消息和消息循環(huán) uClinux上的圖形系統(tǒng) ? 在任何 GUI系統(tǒng)中,均有事件或消息驅(qū)動的概念。 ?按鈕:單選鈕、復(fù)選框和一般按鈕等。每個線程有一個消息隊列,屬于同一線程的所有主窗口從這一消息隊列中獲取消息并由窗口過程(回調(diào)函數(shù))進(jìn)行處理。 ? 可移植性好。 97 MiniGUI主要特色 1 uClinux上的圖形系統(tǒng) ? 遵循 LGPL 條款的純自由軟件 ? 提供了完備的多窗口機制。 96 Linux下的 GUI – MiniGUI uClinux上的圖形系統(tǒng) ? MiniGUI是一種面向嵌入式系統(tǒng)或者實時系統(tǒng)的圖形用戶界面支持系統(tǒng)。這個庫是用 C++編寫的,只提供 C++接口。但作為一個窗口系統(tǒng),該項目提供的窗口處理功能還需要進(jìn)一步完善,比如控件或構(gòu)件的實現(xiàn)還很不完備,鍵盤和鼠標(biāo)等的驅(qū)動還很不完善。但該系統(tǒng)的源代碼尚不開放,從而很難進(jìn)行本地化開發(fā)。但該系統(tǒng)的龐大、累贅和低效率也是大家所共知的。目前許多這類系統(tǒng)采用比較簡單的手法實現(xiàn) GUI。 ? 近來的市場需求顯示,越來越多的嵌入式系統(tǒng),包括 PDA、機頂盒、 DVD/VCD播放機、 WAP 手機等等系統(tǒng)均要求提供全功能的 Web瀏覽器。而 read、write中參數(shù) buf是指向用戶程序的私有地址空間的,所以不能直接訪問,必須通過上述兩個系統(tǒng)函數(shù)來訪問用戶程序的私有地址空間。 void release_region(unsigned int from, unsigned int extent)。此時系統(tǒng)無法保證對 I/O端口的操作不會發(fā)生沖突,甚至?xí)虼硕瓜到y(tǒng)崩潰。 ? 參數(shù) len為希望申請的字節(jié)數(shù), obj為要釋放的內(nèi)存指針。 80 uClinux下中斷處理 uClinux驅(qū)動程序設(shè)計 ? 在 Linux系統(tǒng)里,對中斷的處理是屬于系統(tǒng)核心的部分,因此如果設(shè)備與系統(tǒng)之間以中斷方式進(jìn)行數(shù)據(jù)交換的話,就必須把該設(shè)備的驅(qū)動程序作為系統(tǒng)核心的一部分。如果是動態(tài)分配主設(shè)備號成功,此函數(shù)將返回所分配的主設(shè)備號。 fops是該驅(qū)動各個的入口點的文件操作結(jié)構(gòu)指針。 Linux系統(tǒng)里,通過調(diào)用 register_chrdev向系統(tǒng)注冊字符型設(shè)備驅(qū)動程序。 select系統(tǒng)調(diào)用在檢查與設(shè)備特別文件相關(guān)的文件描述符時使用 select入口點。對于有緩沖區(qū)的 I/O操作,一般是把數(shù)據(jù)寫入緩沖區(qū)里。 ? Read:從設(shè)備上讀數(shù)據(jù)。如果設(shè)備是獨占的,即同一時刻只能有一個程序訪問此設(shè)備,則 open子程序必須設(shè)置一些標(biāo)志以表示設(shè)備處于忙狀態(tài)。 ? 中斷服務(wù)子程序 : 76 uClinux下設(shè)備驅(qū)動程序 I/O設(shè)備入口點 1 uClinux驅(qū)動程序設(shè)計 ? 在系統(tǒng)內(nèi)部, I/O設(shè)備的存取通過一組固定的入口點來進(jìn)行,這組入口點是由每個設(shè)備的設(shè)備驅(qū)動程序提供的。如果該設(shè)備正常,則對這個設(shè)備及其相關(guān)的、設(shè)備驅(qū)動程序需要的軟件狀態(tài)進(jìn)行初始化。 ? 網(wǎng)絡(luò)設(shè)備 : Linux的網(wǎng)絡(luò)系統(tǒng)主要是基于 BSD unix的socket機制。 74 uClinux下設(shè)備驅(qū)動程序分類 uClinux驅(qū)動程序設(shè)計 ? 字符設(shè)備 :是指存取時沒有緩存的設(shè)備。 它將在 后臺運行 leddemo,不影響其他的程序運行。 leddemo為平坦格式 平坦格式 69 uClinux應(yīng)用程序運行 3 uClinux應(yīng)用程序設(shè)計 ? 重新編譯內(nèi)核時,通常將應(yīng)用程序添加到 uClinux文件系統(tǒng)的 bin目錄,該目錄有全局路徑。 ? ANSI C代碼與 GNU C中的保留關(guān)鍵字沖突通過雙下劃線 (__)解決:如 inline等價于 __inline__、 asm等價于__asm__ ? 結(jié)構(gòu)體的初始化 64 uClinux內(nèi)核移植的若干問題 2 uClinux內(nèi)核移植 ? GNU C結(jié)構(gòu)體初始化 結(jié)構(gòu)體聲明 ANSI C結(jié)構(gòu)體初始化,必須按順序 GNU C結(jié)構(gòu)體初始化,無需按順序 65 uClinux應(yīng)用程序 uClinux應(yīng)用程序設(shè)計 ? 編寫程序 ? 編寫 Makefile文件 ? 編譯 ? 運行 66 編寫 Makefile文件 uClinux應(yīng)用程序設(shè)計 指定編譯器 生成的執(zhí)行文件和鏈接過程中的目標(biāo)文件 編譯和鏈接的參數(shù) 編譯命令 拷貝 leddemo映像文件到 romfs中 生成 romfs映像 清除 67 uClinux應(yīng)用程序運行 1 uClinux應(yīng)用程序設(shè)計 ? 應(yīng)用程序運行可以采用如下兩種方式: ?在 uClinux內(nèi)核啟動起來,并且有辦法從主機獲取文件時,可以在 uClinux控制臺直接從主機獲取編譯后的應(yīng)用程序。 62 uClinux內(nèi)核移植的若干問題 1 uClinux內(nèi)核移植 ? 源程序閱讀問題 2 ? uClinux中并不是所有代碼都編譯進(jìn)去,對于一個體系結(jié)構(gòu),只有很少部分的代碼參與編譯,因此,必須掌握uClinux發(fā)布中各目錄的意義才能進(jìn)一步清楚是否參與編譯。 ? romfs映像可以和內(nèi)核一起編譯或者由內(nèi)核從指定位置加載。 54 編譯 uClinux文件系統(tǒng) uClinux內(nèi)核移植 ? 配置文件系統(tǒng) ? 編譯文件系統(tǒng)源代碼,生成 uClinux文件系統(tǒng) ? 生成 romfs文件系統(tǒng)映像 ? 編譯 romfs文件系統(tǒng)映像到內(nèi)核中或者寫到固定位置并由內(nèi)核從該位置加載 55 uClinux文件系統(tǒng)相關(guān)文件和目錄 uClinux內(nèi)核移植 ? 應(yīng)用程序源代碼: uClinuxdist/user ? 編譯生成的 uClinux文件系統(tǒng): uClinuxdist/romfs ? 相關(guān)的腳本文件: uClinuxdist/vendors/Samsung/44b0x inittab motd passwd rc Makefile 56 標(biāo)準(zhǔn) C庫 uClinux內(nèi)核移植 ? uClibc ? uClibc ? 可以配置 57 uClinux文件系統(tǒng)配置 1 uClinux內(nèi)核移植 ? 在 uClinuxdist目錄下運行菜單配置 :make menuconfig ? 選擇 Kernel/Library/Defaults Selection 58 uClinux文件系統(tǒng)配置 2 uClinux內(nèi)核移植 ? 在 Kernel/Library/Defaults Selection中選擇 Customize Vendors/User Settings(NEW),選擇
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1