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

正文內(nèi)容

嵌入式系統(tǒng)設(shè)計(jì)實(shí)例(1)-資料下載頁(yè)

2025-01-08 14:52本頁(yè)面
  

【正文】 本 ,這樣每次系統(tǒng)啟動(dòng)將自動(dòng)執(zhí)行撥號(hào)上網(wǎng)程序,實(shí)現(xiàn)了 MC35i自動(dòng)撥號(hào)的功能,接著就可以利用 GPRS進(jìn)行數(shù)據(jù)傳輸了。 2022年 2月 4日星期五 63 第四章 GUI開(kāi)發(fā)環(huán)境的建立及移植 ? GUI(圖形用戶接口)是系統(tǒng)與用戶相互交流和溝通的一個(gè)平臺(tái),是應(yīng)用軟件設(shè)計(jì)的重要組成部份,通過(guò)相互比較,本論文選擇了 Trolltech公司開(kāi)發(fā)的 Qt/Embedded來(lái)作為嵌入式水文信息采集智能終端的GUI開(kāi)發(fā)平臺(tái),本章的主要任務(wù)是完成基于 Qt/Embedded的開(kāi)發(fā)環(huán)境的建立和移植。 2022年 2月 4日星期五 64 嵌入式 GUI概況及比較 ? 嵌入式 GUI為嵌入式系統(tǒng)提供了一種應(yīng)用于特殊場(chǎng)合的人機(jī)交互接口。嵌入式 GUI要求簡(jiǎn)單、直觀、可靠、占用資源小且反應(yīng)快速,另外,由于嵌入式系統(tǒng)硬件本身的特殊性,嵌入式 GUI應(yīng)具備高度可移植性與可裁減性,以適應(yīng)不同的硬件條件和使用需求。 GUI是一種類(lèi)似于操作系統(tǒng)的基礎(chǔ)軟件,這種軟件系統(tǒng)應(yīng)該遵循一定的標(biāo)準(zhǔn),而獨(dú)力開(kāi)發(fā)需要投人大量的人力物力。所以對(duì)大部分中小型開(kāi)發(fā)商來(lái)說(shuō)采用第三方提供的 GUI設(shè)計(jì)軟件是比較理想的選擇,從而可以讓開(kāi)發(fā)商集中精力開(kāi)發(fā)自己的應(yīng)用程序。目前世界上主流的基于 Linux的嵌入式 GUI設(shè)計(jì)軟件有三種,分別是 Microwindows、 MiniGUI和 QT/Embedded 2022年 2月 4日星期五 65 ? 下面就這三種嵌入式 GUI開(kāi)發(fā)軟件進(jìn)行分析與比較。 1. Microwindows。 Microwindows是一個(gè)較早出現(xiàn)的開(kāi)放源碼的嵌入式GUI軟件,其主要特色在于提供了比較完善的圖形功能,支持多種外部設(shè)備輸入,包括液晶顯示器、鼠標(biāo)和鍵盤(pán)。在嵌入式 Linux平臺(tái)上,從,為了方便圖形的顯示,使用了 Framebuffer技術(shù)。Microwindows可以運(yùn)行在支持 32位 Framebuffer的 Linux的系統(tǒng)上,支持每個(gè)像素 1位、 2位、 4位、 8位、 16位、 24位和 32位的色彩空間 /灰度,還實(shí)現(xiàn)了 VGA16平面模式的支持,能通過(guò)調(diào)色板技術(shù)將 RGB格式的顏色空間轉(zhuǎn)換成目標(biāo)機(jī)器上最相近的顏色,然后顯示出來(lái)。 Microwindows是一個(gè)典型的基于 Server/Client體系結(jié)構(gòu)的 GUI系統(tǒng),基本分為三層,最底層是面向圖形顯示和鍵盤(pán)、鼠標(biāo)或觸摸屏的驅(qū)動(dòng)程序;中間層提供底層硬件的抽象接口,并進(jìn)行窗口管理;最高層提供兼容于 X Window和 ECMA APIW(Win32子集 )的 API。 Microwindows提供了相對(duì)完善的圖形功能和一些高級(jí)的特性,如 Alpha混合、三維支持和 TrueType字體支持等。該系統(tǒng)為了提高運(yùn)行速度,也改進(jìn)了基于 Socket套接字的 x實(shí)現(xiàn)模式,采用了基于消息機(jī)制的 Server/Client傳輸機(jī)制。 Microwindows也有一些通用的窗口控件,但其圖形引擎存在許多問(wèn)題,如無(wú)任何硬件加速能力、圖形引擎中存在許多低效算法,如在圓弧繪圖函數(shù)的逐點(diǎn)判斷剪切的問(wèn)題。由于該項(xiàng)目缺乏強(qiáng)有力的核心代碼維護(hù)人員, 2022年 Microwindows推出版本 ,該項(xiàng)目的發(fā)展開(kāi)始陷于停滯狀態(tài)。 2022年 2月 4日星期五 66 ? 2. MiniGUI。 MiniGUI是由國(guó)內(nèi)自由軟件開(kāi)發(fā)人員設(shè)計(jì)開(kāi)發(fā)的,目標(biāo)是為基于 Linux的實(shí)時(shí)嵌入式系統(tǒng)提供一個(gè)輕量級(jí)的圖形用戶界面支持系 統(tǒng) 。幾乎所有的 MiniGUI代碼都采用 C語(yǔ)言開(kāi)發(fā),提供了完備的多窗口機(jī)制和消息傳遞機(jī)制以及多控件和其他 GUI元素,支持各種流行圖像文件以及 Windows的資源文件,比較其他的 GUI系統(tǒng),其引人矚目的特性和技術(shù)創(chuàng)新主要有: (1) 是一個(gè)較輕量級(jí)的圖形系統(tǒng); (2) 完善的對(duì)中日韓文字、輸入抽象層 (IAL)以及嵌入式系統(tǒng)各種顯示和輸入設(shè) 備的支持 ; (3) 提供 MiniGUIThreads、 MiniGUILite、 MiniGUIstandone三種不同架構(gòu)的版本以滿足不同的嵌入式操作系統(tǒng); (4) 提供了豐富的應(yīng)用軟件,其商業(yè)版本提供了手機(jī)、 PDA類(lèi)產(chǎn)品,媒體及機(jī)頂盒類(lèi)產(chǎn)品以及工業(yè)控制方面的諸多程序。 2022年 2月 4日星期五 67 ? 3. Qt/Embedded。 Qt/Embedded(簡(jiǎn)稱 Qt/E)是著名的 Qt庫(kù)開(kāi)發(fā)商 Trolltech公司開(kāi)發(fā)的面向嵌入式系統(tǒng)的 Qt版本。 ? Qt/Embedded同樣是 Server/Client結(jié)構(gòu), Qt/Embedded延續(xù)了 Qt強(qiáng)大功能,在底層摒棄了 Xlib,僅采用 Framebuffer作為底層圖形接口。同時(shí),將外部輸入設(shè)備抽象為 keyboard和 mouse輸入事件,底層接口支持鍵盤(pán)、鼠標(biāo)、觸摸屏以及用戶自定義的設(shè)備等。 Qt/Embedded類(lèi)庫(kù)完全采用C++封裝。豐富的控件資源和較好的可移植性是 Qt/Embedded最為優(yōu)秀的一方面。它的類(lèi)庫(kù)接口完全兼容于同版本的 QtXll,使用 x11下的開(kāi)發(fā)工具可以直接開(kāi)發(fā)基于 Qt/Embedded的應(yīng)用程序 GUI界面 [43],與前兩種 GUI系統(tǒng)不同的是, Qt/Embedded的底層圖形引擎只能采用Framebuffer,因此它主要適合于高端嵌入式圖形領(lǐng)域的應(yīng)用,它的主要優(yōu)點(diǎn)有: (1) 當(dāng)移植 Qt/Embedded程序到不同平臺(tái)時(shí),只需要重新編譯代碼,而不需要對(duì)代碼進(jìn)行修改; (2) 能隨意設(shè)置程序界面的外觀; (3) 可以方便地為程序連接數(shù)據(jù)庫(kù); (4) 可以輕松地使程序本地化; (5) 能將程序與 JAVA集成。 嵌入式系統(tǒng)的要求是小而快速,而 Qt/E勍能幫助開(kāi)發(fā)者為滿足這些要求開(kāi)發(fā)強(qiáng)壯的應(yīng)用程序。Qt/E是模塊化和可裁剪的,開(kāi)發(fā)者可以選取所需要的一些特點(diǎn),裁剪不需要的特性。 Qt/E是用C++開(kāi)發(fā)的,雖然這會(huì)增加系統(tǒng)資源消耗,但是卻為開(kāi)發(fā)者提供了清晰的程序框架,使開(kāi)發(fā)者能夠迅速上手,并且可以方便地編寫(xiě)自定義的用戶界面程序,由于 Qt/E是作為一種產(chǎn)品推出的,所以它有很好的開(kāi)發(fā)團(tuán)體和技術(shù)支持,這對(duì)于使用 Qt/E的開(kāi)發(fā)者來(lái)說(shuō),方便開(kāi)發(fā)過(guò)程并增加了產(chǎn)品的可靠性。 最終,在分析和比較了各種 GUI開(kāi)發(fā)軟件的特點(diǎn)后,作者選用 Qt/Embedded來(lái)作本系統(tǒng)的 GUI開(kāi)發(fā)。 2022年 2月 4日星期五 68 Qt/Embedded開(kāi)發(fā)環(huán)境的建立及移植 ? 使用裝有 Linux操作系統(tǒng)的 PC或者工作站來(lái)完成 Qt/Embedded開(kāi)發(fā)是最理想的環(huán)境,下面作者將介紹如何在一臺(tái)裝有 Linux操作系統(tǒng)的PC機(jī)上建立 Qt/Embedded開(kāi)發(fā)環(huán)境。建立Qt/Embedded開(kāi)發(fā)環(huán)境是一件比較麻煩的事情,如果沒(méi)有配置好或系統(tǒng)有些問(wèn)題很容易編譯不成功,編譯一次 QtX11或Qt/Embedded需要一個(gè)多小時(shí),如果出錯(cuò)要有耐心,根據(jù)提示找出出錯(cuò)的原因然后具體解決。 2022年 2月 4日星期五 69 建立 Qt/Embedded開(kāi)發(fā)環(huán)境 ? 在建立開(kāi)發(fā)環(huán)境之前需要準(zhǔn)備一些軟件安裝包,由于這些軟件安裝包有許多不同的版本,因此要注意由于版本的不同可能導(dǎo)致這些軟件在使用時(shí)造成沖突,所以需注意一些基本的安裝原則:選擇下載了Qt/Embedded的某個(gè)版本的安裝包之后,下一步要選擇安裝的 Qt for X11的安裝包的版本必須比最先下載的 Qt/Embedded的版本舊,這是因?yàn)?Qt for X11的安裝包的兩個(gè)具有 uic和 designer產(chǎn)生的源文件會(huì)和Qt/Embedded的庫(kù)一起被編譯鏈接,本著 “ 向前兼容 ” 的原則, Qt for X11的版本應(yīng)比 Qt/Embedded舊,在這里,我們從網(wǎng)上下載以下四個(gè)軟件: 1. -安裝 libjpeg庫(kù),因?yàn)榕渲?Qt/E支持 jpeg時(shí)需要、 、 ; 2. 安裝 libuuid庫(kù),因?yàn)榻徊婢幾g時(shí)需要用到此庫(kù); 3. 編寫(xiě)嵌入式圖形界面所需的軟件包; 4. 編寫(xiě)嵌入式圖形界面所需的軟件包。 2022年 2月 4日星期五 70 ? Jpeg6b的安裝與配置 Jpeg6b的安裝和配置比較簡(jiǎn)單,過(guò)程如下: cd /usr/src tar xzvf //解壓 cd jpeg6b ./configure –enableshared –enablestatic//配置,既生成靜態(tài)又生成共享庫(kù)文件 make cd /usr/local mkdir man //注意建立 man和 man1文件夾 cd man mkdir man1 cd /usr/src/jpeg6b make install //編譯并安裝 完成后會(huì)在 /usr/include目錄下生成 ,在 /usr/local/lib目錄下會(huì)生成 ,如果沒(méi)有則說(shuō)明安裝不成功。 2022年 2月 4日星期五 71 ? 安裝并交叉編譯 arm的 libuuid庫(kù) cd /usr/src tar xzf //解壓 cd ./configure host=armlinux withcc=armlinuxgcc withlinker=armlinuxld enableelfshlibs prefix=/usr/local/arm///配置生成基于 ARM平臺(tái)的 libuuid庫(kù)文件 make install //編譯并安裝 cd lib cp –dR libuuid.* /usr/local/arm/文件拷到 ARM交叉編譯工具鏈所在的 lib目錄。 將交叉編譯后生成的 libuuid庫(kù)拷到 arm的交叉編譯工具鏈目錄中時(shí)應(yīng)注意檢查生成的 、 、 arm交叉編譯完成的 (file 如果顯示為 :ELF 32bit LSB Sshared,ARM,Version1(ARM),not stripped則表示正確 )。 2022年 2月 4日星期五 72 ? 安裝 Qt/X11 cd /home mkdir qt cd qt tar xfz mv cd export QTDIR=$PWD //設(shè)置環(huán)境變量,在編譯的時(shí)候要用到 export PATH=$QTDIR/bin:$PATH export LD_LIBRARY_PATH =$QTDIR/lib ./configure qtgif nonis nocups nostl qtsqlsqlite noipv6 depths 4,8,16,32 //配置,可以通過(guò) ./configure help來(lái)獲得幫助信息 make //編譯 編譯需要較長(zhǎng)的時(shí)間,作者的 PC機(jī)是奔三的,花了差不多 2個(gè)小時(shí),編譯成功后會(huì)生成 qt庫(kù)文件 (在 lib目錄下 ),也可以運(yùn)行 examples目錄下的 Qt實(shí)例。 2022年 2月 4日星期五 73 ? 安裝 Qt/Embedded 編譯并安裝 Qt/Embedded主要是為了生成基于 ARM內(nèi)核的 Qt/E庫(kù)文件,將這些庫(kù)文件移植到 ARM平臺(tái)中就可以運(yùn)行通過(guò) QT開(kāi)發(fā)出來(lái)的 GUI程序了,下面列出其安裝步驟: cd /home/qt tar xzf mv cd export QTDIR=$PWD //設(shè)置環(huán)境變量 export PATH=$QTDIR/bin:$PATH export LD_LIBRARY_PATH =$QTDIR/lib:$LD_LIBRARY_PATH 接著拷貝 jpeg庫(kù)頭文件到 Qt/E的 include中,因?yàn)樵诰幾g的時(shí)候要用到 : cp /usr/include/ $QTDIR/include/ cp /usr/include/ $QTDIR/include/ cp /usr/include/ $QTDIR/include/ cp /usr/include/ $QTDIR/include/ 接著交叉編譯 Qt/E生成庫(kù)文件,在配置之前,因?yàn)楸鞠到y(tǒng)用到觸摸屏,所以應(yīng)在 Qt/E中添加觸摸屏驅(qū)動(dòng),觸摸屏的 Qt/E驅(qū)動(dòng)是指 Qt/E如何實(shí)現(xiàn)從觸摸屏驅(qū)動(dòng)的設(shè)備節(jié)點(diǎn)文件中獲得的位置坐標(biāo)發(fā)送給 Qt/E應(yīng)用程序。 Qt/E封裝了一些常用設(shè)備的訪問(wèn)操作,形成相應(yīng)的設(shè)備驅(qū)動(dòng)接口,如鼠標(biāo)、鍵盤(pán)、顯卡、 USB接口等,源碼位于 Qt/E目錄的 /src/embedded中。沒(méi)有特別針對(duì)觸摸屏的設(shè)備接口,所有觸摸屏均被模擬為鼠標(biāo),因此我們完全可以使用鼠標(biāo)驅(qū)動(dòng)程序接口來(lái)實(shí)現(xiàn)對(duì)觸摸屏的控制。 Qt/E本身也提供了一定類(lèi)型的鼠標(biāo)驅(qū)動(dòng)接口類(lèi),如 bus、 yopy、 linuxtp、 vr41xx。若觸摸屏是以上的一種,直接編譯 Qt/E庫(kù)時(shí)指明所使用的鼠標(biāo)設(shè)備類(lèi)型即可,具體方法是設(shè)定編譯選項(xiàng) qtmousedriver。如果不是,可以擴(kuò)充驅(qū)動(dòng)接口,在開(kāi)始工作之前先做一些準(zhǔn)備,下面具體地進(jìn)行闡述。 首先應(yīng)了解 Qt/E的鼠標(biāo)驅(qū)動(dòng)接口的類(lèi)層次,如下圖 41所示。 2022年 2月 4日星期五 74 圖 41 Qt/E的鼠標(biāo)驅(qū)動(dòng)接口的類(lèi)層次 ? 圖 41 Qt/E的鼠標(biāo)驅(qū)動(dòng)接口的類(lèi)層次 Q W S M o u s e H a n d l e rQ W
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1