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

正文內(nèi)容

嵌入式系統(tǒng)設(shè)計(jì)大學(xué)教程習(xí)題與解答[1]-資料下載頁(yè)

2025-03-25 23:15本頁(yè)面
  

【正文】 應(yīng)用環(huán)境下的差異,這些GUI系統(tǒng)在其結(jié)構(gòu)、實(shí)現(xiàn)方法、使用方法、應(yīng)用范圍等方面也都有各自的特點(diǎn)。(1)MicroWindows MicroWindows是一個(gè)著名的開源嵌入式GUI軟件,目的是把現(xiàn)代圖形視窗環(huán)境引入到運(yùn)行Linux的小型設(shè)備和平臺(tái)上,作為X Windows的替代品。它支持多線程,但必須使用PThread庫(kù)。MicroWindows是一個(gè)典型的基于Client/Server體系結(jié)構(gòu)的GUI系統(tǒng),采用分層結(jié)構(gòu)。 (2)OpenGUI OpenGUI分為三層:最低層是由匯編編寫的快速圖形引擎;中間層提供了圖形繪制API,包括線條、矩形、圓弧等,并且兼容于Borland的BGI API;第三層用C++編寫,提供完整的GUI對(duì)象集。OpenGUI采用LGPL條款發(fā)布。OpenGUI比較適合于基于x86平臺(tái)的實(shí)時(shí)系統(tǒng),可移植性稍差,目前的發(fā)展也基本停滯。 (3)TinyX Windows 以X Windows System搭配TinyX Server架構(gòu)來(lái)說(shuō),最大的優(yōu)點(diǎn)就是彈性與開發(fā)速度。因?yàn)榕c桌面的X Windows架構(gòu)相同,因此相對(duì)于很多以Qt、GTK+、FLTK等開發(fā)的軟件來(lái)說(shuō),移植更容易。但因?yàn)閄 Windows系統(tǒng)的運(yùn)行還需要其他程序和庫(kù)的支持,包括X Windows管理器、XLib、建立在XLib之上的GTK和Qt等函數(shù)庫(kù),因此,即使是TinyX Windows系統(tǒng),在運(yùn)行期間所占用的系統(tǒng)資源也很多,國(guó)外使用TinyX Windows的環(huán)境也多是比較高端的平臺(tái)。此外,TinyX Windows是一個(gè)多進(jìn)程的GUI,它無(wú)法運(yùn)行在很多僅支持多任務(wù)(線程)的RTOS上,因此它對(duì)于操作系統(tǒng)的兼容性較差,實(shí)時(shí)性不高。 (4)Qt/Embedded Qt/Embedded延續(xù)了Qt在X上的強(qiáng)大功能,但在底層摒棄了XLib,僅采用FrameBuffer作為底層圖形接口。同時(shí),將外部輸入設(shè)備抽象為keyboard和mouse等輸入事件,底層接口支持鍵盤、鼠標(biāo)、觸摸屏以及用戶自定義的設(shè)備等。 (5)MiniGUI MiniGUI是由北京飛漫軟件技術(shù)有限公司主持的自由軟件,遵循GPL條款發(fā)布(),其目標(biāo)是為實(shí)時(shí)嵌入式Linux系統(tǒng)建立一個(gè)快速、穩(wěn)定和輕量級(jí)的圖形用戶界面支持系統(tǒng)。比較MicroWindows、Qt/Embedded和MiniGUI的功能特性。(P210) 答:見表81。[略]Qt/Embedded的圖形引擎實(shí)現(xiàn)基礎(chǔ)是什么,其實(shí)現(xiàn)結(jié)構(gòu)是怎樣的?(P214) 答:Qt/Embedded的底層圖形引擎是基于FrameBuffer之上的。采用mmap系統(tǒng)調(diào)用,可以將FrameBuffer的顯示緩存映射為可以連續(xù)訪問(wèn)的一段內(nèi)存指針。 FrameBuffer驅(qū)動(dòng)程序的實(shí)現(xiàn)分為兩個(gè)方面:一方面是對(duì)LCD以及其相關(guān)部件的初始化,包括畫面緩沖區(qū)的創(chuàng)建和對(duì)DMA通道的設(shè)置;另一方面是對(duì)畫面緩沖區(qū)的讀寫,具體的代碼為read、write、lseek等系統(tǒng)調(diào)用接口函數(shù)。至于將畫面緩沖區(qū)的內(nèi)容輸入到LCD顯示屏上,則是由硬件自動(dòng)完成的,對(duì)于軟件來(lái)說(shuō)是透明的。簡(jiǎn)述Qt/Embedded窗口系統(tǒng)的工作原理。(P215)答:Qt/Embedded的窗口系統(tǒng)采用一種客戶/服務(wù)器體系結(jié)構(gòu)。一個(gè)典型的嵌入式Qt窗口系統(tǒng)一般包括:一個(gè)服務(wù)器進(jìn)程、一個(gè)或多個(gè)客戶進(jìn)程。服務(wù)器進(jìn)程負(fù)責(zé)為客戶和其本身分配顯示區(qū)域、生成鼠標(biāo)和鍵盤事件,它通常包含那些啟動(dòng)客戶的用戶界面,例如應(yīng)用程序發(fā)射臺(tái)。而客戶進(jìn)程則通過(guò)與服務(wù)器通信來(lái)申請(qǐng)顯示區(qū)域,接收鼠標(biāo)和鍵盤事件??蛻艨梢灾苯釉L問(wèn)所分配的顯示區(qū)域,以便為用戶提供GUI服務(wù)。服務(wù)器和客戶通過(guò)共享內(nèi)存的方式來(lái)傳遞所有分配顯示區(qū)域上的信息,如果需要的話還可以維護(hù)一個(gè)軟光標(biāo)。Qt/Embedded中信號(hào)和槽的概念分別是什么?(P216)答:信號(hào)(signal)和槽(slot)是一種高級(jí)接口,應(yīng)用于對(duì)象之間的通信,它是QT的核心特性,也是QT區(qū)別于其它工具包的重要地方。當(dāng)對(duì)象改變其狀態(tài)時(shí),信號(hào)就由該對(duì)象發(fā)射(emit)出去,這就是對(duì)象所要做的全部事情,對(duì)象并不知道另一端是誰(shuí)在接收這個(gè)信號(hào)。這是真正的信息封裝,它確保對(duì)象被當(dāng)作一個(gè)真正的軟件組件來(lái)使用。槽用于接收信號(hào),但它們是普通的對(duì)象成員函數(shù)。一個(gè)槽并不知道是否有任何信號(hào)與自己相連接。而且,對(duì)象并不了解具體的通信機(jī)制。舉例說(shuō)明信號(hào)和槽是如何連接的。(P217~218)答:信號(hào)與槽的連接模型如下圖所示: 通過(guò)調(diào)用QObject對(duì)象的connect函數(shù)來(lái)將某個(gè)對(duì)象的信號(hào)與另外一個(gè)對(duì)象的槽函數(shù)相關(guān)聯(lián),這樣當(dāng)發(fā)射者發(fā)射信號(hào)時(shí),接收者的槽函數(shù)將被調(diào)用。這個(gè)函數(shù)的作用就是將發(fā)射者sender對(duì)象中的信號(hào)signal與接收者receiver中的member槽函數(shù)聯(lián)系起來(lái)。自己動(dòng)手建立QT/E開發(fā)環(huán)境()。(P220~222) 答:[略]簡(jiǎn)述Qt/Embedded應(yīng)用系統(tǒng)的基本開發(fā)流程。(P223)答:基于Qt/Embedded開發(fā)一個(gè)嵌入式應(yīng)用的一般過(guò)程如下圖所示。 從圖中可以看到,應(yīng)用軟件開發(fā)工作基本上是在工作站或是PC機(jī)上完成的。在工作站或PC機(jī)上調(diào)試運(yùn)行嵌入式應(yīng)用,并將輸出結(jié)果顯示在一個(gè)仿真小型設(shè)備顯示終端的模擬器上。在開發(fā)的后期,要根據(jù)選擇的嵌入式硬件平臺(tái),將嵌入式應(yīng)用編譯鏈接成適合在目標(biāo)平臺(tái)上運(yùn)行的二進(jìn)制目標(biāo)代碼。另外由于應(yīng)用系統(tǒng)使用到了Qt/Embedded的庫(kù),所以還要對(duì)Qt/Embedded庫(kù)的源代碼進(jìn)行交叉編譯,然后鏈接成為適合在目標(biāo)平臺(tái)上使用的二進(jìn)制目標(biāo)代碼庫(kù)。當(dāng)一個(gè)Qt/Embedded應(yīng)用被下載到目標(biāo)平臺(tái)上,并能夠可靠運(yùn)行時(shí),一個(gè)開發(fā)過(guò)程才宣告結(jié)束。試說(shuō)明在Qt/Embedded中鼠標(biāo)類設(shè)備和觸摸屏設(shè)備的異同點(diǎn)。(P226)答:Qt/Embedded中沒有特別針對(duì)觸摸屏的設(shè)備接口,不過(guò)觸摸屏和鼠標(biāo)類設(shè)備在功能上基本是一致的,因此,在Qt庫(kù)中一般把觸摸屏模擬成鼠標(biāo)設(shè)備來(lái)實(shí)現(xiàn)對(duì)觸摸屏設(shè)備的操作。由于觸摸屏在實(shí)現(xiàn)原理上存在著A/D量化誤差的問(wèn)題,因此所有的觸摸屏接口實(shí)現(xiàn)類需要從特殊的類QCalibratedMouseHandler繼承,并獲得校正功能。另外,觸摸屏和鼠標(biāo)底層接口的不一樣,會(huì)造成對(duì)上層接口的不一致。例如,從鼠標(biāo)驅(qū)動(dòng)接口中幾乎不會(huì)得到絕對(duì)位置信息,一般只會(huì)得到相對(duì)移動(dòng)量。鼠標(biāo)接口需要考慮移動(dòng)加速度,而觸摸屏接口則幾乎是清一色的絕對(duì)位置信息和壓力信息。針對(duì)此類差別,Qt/Embedded將同一類設(shè)備的接口部分也給予區(qū)別和抽象。第9章 基于OMAP5912的開發(fā)應(yīng)用實(shí)例如何構(gòu)建基于OMAP5912的嵌入式開發(fā)平臺(tái)。 答:[略]嵌入式Linux系統(tǒng)的啟動(dòng)流程分哪幾個(gè)層次?(P244)答:一般來(lái)說(shuō),一個(gè)嵌入式Linux系統(tǒng)的啟動(dòng)可以分為四個(gè)層次:(1)引導(dǎo)加載程序:Bootloader和包括固化在固件中的boot代碼(可選項(xiàng))兩大部分。(2)Linux內(nèi)核:針對(duì)特定的嵌入式系統(tǒng)專門定制的Linux內(nèi)核以及內(nèi)核的啟動(dòng)參數(shù)。特定于OMAP平臺(tái),選用麥克泰公司的Montavista Linux。(3)文件系統(tǒng):包括根文件系統(tǒng)和建立于FLASH內(nèi)存設(shè)備之上的文件系統(tǒng)。通常用Ramdisk作為根文件系統(tǒng),它是提供管理系統(tǒng)的各種配置文件以及系統(tǒng)執(zhí)行用戶應(yīng)用程序的良好運(yùn)行環(huán)境的載體。(4)用戶應(yīng)用程序:特定于用戶的應(yīng)用程序,并且在用戶應(yīng)用程序和內(nèi)核層之間可能還會(huì)包括一個(gè)嵌入式圖形用戶界面。說(shuō)明嵌入式操作系統(tǒng)Montavista Linux內(nèi)核在OMAP5912硬件平臺(tái)上的移植步驟。(P251~254)答:嵌入式操作系統(tǒng)Montavista Linux內(nèi)核在OMAP5912硬件平臺(tái)上的移植步驟為:(1)軟件環(huán)境配置① 安裝Montavista Preview Kit到/opt/montavista中。② 安裝成功后,進(jìn)行本地用戶的一個(gè)備份操作。③ 接下來(lái)我們將做一個(gè)嵌入式內(nèi)核源碼樹的本地備份。④ ,以便以后編譯不同的內(nèi)核時(shí),只需修改相應(yīng)的鏈接,而不必對(duì)Makefile進(jìn)行改動(dòng)。(2)參數(shù)配置① 根目錄:根目錄下只需修改Makefile文件。② arch目錄:arch目錄存放著與體系結(jié)構(gòu)相關(guān)部分的內(nèi)核代碼。③ arch/arm/boot目錄:編譯出來(lái)的內(nèi)核是存放在這個(gè)目錄中。(3)編譯和移植當(dāng)對(duì)內(nèi)核配置或者相應(yīng)的功能進(jìn)行改動(dòng)后,一般都必須重新編譯內(nèi)核。編譯內(nèi)核的同時(shí)也編譯和鏈接用到的各個(gè)模塊。先設(shè)置好環(huán)境參量,然后更改目錄到本地用戶的/home/hxh/montavista/kernel/linux中,并運(yùn)行配置內(nèi)核的命令。還可以對(duì)各個(gè)設(shè)備驅(qū)動(dòng)、各種提供的功能進(jìn)行選擇和裁減,以便達(dá)到我們最終的應(yīng)用需求。配置完成之后選擇保存。如何理解基于OMAP5912硬件平臺(tái)Montavista Linux下設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)和使用? 答:略。設(shè)備驅(qū)動(dòng)程序中需要完成的任務(wù)包括哪些?(P255)答:設(shè)備驅(qū)動(dòng)程序中需要完成的任務(wù)包括:對(duì)設(shè)備以及對(duì)應(yīng)資源初始化和釋放;讀取應(yīng)用程序傳送給設(shè)備文件的數(shù)據(jù)并回送應(yīng)用程序請(qǐng)求的數(shù)據(jù)。這需要在用戶空間、內(nèi)核空間、總線及外設(shè)之間傳輸數(shù)據(jù)。在嵌入式系統(tǒng)中使用Bootloader有哪些優(yōu)點(diǎn)?(P245)答:大多數(shù)嵌入式系統(tǒng)還是采用了引導(dǎo)加載程序Bootloader,而不讓可執(zhí)行映像在EEPROM或FLASH中就地執(zhí)行。這樣做是出于幾個(gè)方面的考慮:(1)效率方面的考慮雖然CPU可以在ROM或FLASH空間就地執(zhí)行操作系統(tǒng)(包含應(yīng)用軟件)的映像,但是ROM和FLASH的速度往往比不上RAM。所以先把映像從ROM或FLASH空間搬運(yùn)到RAM空間,然后在RAM空間中運(yùn)行這個(gè)映像,有利于提高系統(tǒng)的運(yùn)行效率。(2)操作系統(tǒng)的多樣性一方面嵌入式系統(tǒng)可以采用很多不同種類的操作系統(tǒng),同一種操作系統(tǒng)也可以有不同的版本。而且,嵌入式系統(tǒng)的應(yīng)用軟件又常常與操作系統(tǒng)連成一體,這就更增加了系統(tǒng)映像的多樣性。另一方面,嵌入式系統(tǒng)的硬件提供商所面對(duì)的通常是二次開發(fā)商而不是最終用戶,往往并不清楚最終用的是什么操作系統(tǒng),或者手中并無(wú)目標(biāo)操作系統(tǒng)的映像。所以,最好的辦法是先在硬件中裝上一個(gè)引導(dǎo)加載程序,而讓二次開發(fā)商提供具體的操作系統(tǒng)映像,這樣就為采用不同版本,甚至完全不同的操作系統(tǒng)(以及應(yīng)用程序)映像提供了靈活性。(3)存儲(chǔ)地與執(zhí)行地分離特別是在嵌入式系統(tǒng)的調(diào)試階段,更換系統(tǒng)的可執(zhí)行映像是很頻繁的事情,此時(shí)需要把新的可執(zhí)行映像寫入相應(yīng)的EPROM或FLASH芯片中去。如果讓可執(zhí)行映像就地運(yùn)行,那就變成要把新的映像覆蓋到正在執(zhí)行的老的映像上,那樣當(dāng)然會(huì)帶來(lái)一些技術(shù)上的問(wèn)題。這說(shuō)明映像的存儲(chǔ)地與執(zhí)行地應(yīng)該分離。(4)調(diào)試/排錯(cuò)方面的考慮調(diào)試/排錯(cuò)方面的考慮也要求在RAM中執(zhí)行系統(tǒng)映像。嵌入式軟件的開發(fā)在前期可以采用一些模擬、仿真的調(diào)試/排錯(cuò)手段,可是最終總得要“來(lái)真格”的,到實(shí)際的運(yùn)行環(huán)境中考察、調(diào)試。如果目標(biāo)程序在ROM或FLASH中就地運(yùn)行,就無(wú)法通過(guò)這種方法設(shè)置斷點(diǎn)了。(5)嵌入式系統(tǒng)獨(dú)特的開發(fā)模式嵌入式系統(tǒng)的操作系統(tǒng)內(nèi)核往往與應(yīng)用軟件靜態(tài)地連接在一起,而且程序的開發(fā)通常是在另一臺(tái)“主機(jī)”上進(jìn)行,所以每次修改程序以后就得把新的映像“下載”到目標(biāo)機(jī)中,此時(shí)就得依靠目標(biāo)機(jī)的引導(dǎo)加載程序。簡(jiǎn)述Bootloader的概念和Bootloader的操作模式。(P247~248)答:Bootloader運(yùn)行時(shí),首先根據(jù)設(shè)置好的中斷向量入口,跳轉(zhuǎn)到相應(yīng)的入口,進(jìn)入特權(quán)模式,關(guān)閉各種模式中斷,然后開始做各種初始化工作。大多數(shù)Bootloader都包含兩種不同的操作模式:“啟動(dòng)加載”模式和“下載”模式,這種區(qū)別僅對(duì)于開發(fā)人員才有意義。從最終用戶的角度看,Bootloader的作用就是用來(lái)加載操作系統(tǒng),而并不存在所謂的啟動(dòng)加載模式與下載工作模式的區(qū)別。(1)啟動(dòng)加載(Boot loading)模式這種模式也稱為“自主”(Autonomous)模式。也即Bootloader從目標(biāo)機(jī)上的某個(gè)固態(tài)存儲(chǔ)設(shè)備上將操作系統(tǒng)加載到RAM中運(yùn)行,整個(gè)過(guò)程并沒有用戶的介入。這種模式是Bootloader的正常工作模式,因此在嵌入式產(chǎn)品發(fā)布的時(shí)候,Bootloader顯然必須工作在這種模式下。(2)下載(Downloading)模式在這種模式下,目標(biāo)機(jī)上的Bootloader將通過(guò)串口連接或網(wǎng)絡(luò)連接等通信手段從宿主機(jī)(Host)下載文件,如下載內(nèi)核映像和根文件系統(tǒng)映像等。從主機(jī)下載的文件通常首先被Bootloader保存到目標(biāo)機(jī)的RAM中,然后再被Bootloader寫到目標(biāo)機(jī)上的FLASH類固態(tài)存儲(chǔ)設(shè)備中。說(shuō)明Bootloader的啟動(dòng)過(guò)程。(P248) 答:Bootloader的啟動(dòng)過(guò)程可分為單階段(SingleStage)或多階段(MultiStage)。從固態(tài)存儲(chǔ)設(shè)備上啟動(dòng)的Boot Loader大多分為stagel和stage2兩個(gè)階段。依賴于CPU體系結(jié)構(gòu)的代碼,比如設(shè)備初始化代碼等,通常都放在stagel中,而且通常都用匯編語(yǔ)言來(lái)實(shí)現(xiàn),以達(dá)到短小精悍和高效的目的。而stage2則通常用C語(yǔ)言來(lái)實(shí)現(xiàn),這樣可以實(shí)現(xiàn)更復(fù)雜的功能,而且代碼具有更好的可讀性和可移植性。Bootloader的stagel通常包括以下步驟(以執(zhí)行的先后順序):硬件設(shè)備初始化為加載Bootloader的stage2準(zhǔn)備RAM空間拷貝Bootloader的stage2到RAM空間中設(shè)置好堆棧跳轉(zhuǎn)到tage2的C入口點(diǎn)Bootloader的stage2通常包括以下步驟(以執(zhí)行的先后順序)1) 初始化本階段要使用到的硬件設(shè)備2) 檢測(cè)系統(tǒng)內(nèi)存映射(memory map)3) 將kernel映像和根文件系統(tǒng)映像從FLASH讀到RAM空間中4) 為內(nèi)核設(shè)置啟動(dòng)參數(shù)5) 調(diào)用內(nèi)核補(bǔ)充:理解并設(shè)計(jì)音頻驅(qū)動(dòng)設(shè)備AIC23在Montavista Linux下的驅(qū)動(dòng)程序。答:給
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1