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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于處理器sc22410的手持終端觸摸屏的設(shè)計(jì)(編輯修改稿)

2025-02-12 22:49 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 健壯性比較好。它的類庫(kù)接口完全兼容于同版本的Qt X11 ,使用 X Window下的開發(fā)工具可以直接開發(fā)基于 Qt/Embedded的應(yīng)用程序 GUI界面 [12]。 Qt/Embedded和 Qt的體系結(jié)構(gòu)比較如圖 。 15 圖 Qt/Embedded與 Qt/X11的比較 Qt/Embedded的底層圖形引擎基于 framebuffer, framebuffer出現(xiàn)在 內(nèi) 核的版本當(dāng)中的一種驅(qū)動(dòng)程序接口。這種接口采用 mmap系統(tǒng)調(diào)用,將顯示設(shè)備抽象為幀緩沖區(qū)。用戶可以將它看成是顯示內(nèi)存的一個(gè)映象,將其映射到進(jìn)程地址空間之后,就可以直接進(jìn)行讀寫操作了,而寫操作可以立即反映在屏幕上。Framebuffer驅(qū)動(dòng)程序是最重要的驅(qū)動(dòng)程序之一,正是這個(gè)驅(qū)動(dòng)程序才能使系統(tǒng)屏幕顯示內(nèi)容。其實(shí)現(xiàn)分為兩個(gè)方面:一是對(duì) LCD及其相關(guān)部件的初始化,包括畫面緩沖區(qū)的創(chuàng)建和對(duì) DMA通道的設(shè)置;二是對(duì)畫面緩沖區(qū)的讀寫,具體到代碼為 read、 write等系統(tǒng)調(diào)用接口。 圖 Qt/Embedded的 實(shí)現(xiàn)結(jié) 構(gòu) 。 圖 Qt/Embedded的實(shí)現(xiàn)結(jié)構(gòu) Qt 文件架構(gòu) Qt 由 三個(gè)文件 構(gòu)成: 、 和。 應(yīng)用源程序 Qt API Qt/Embedded Qt/X11 Qt/XLib X Window Server 幀緩沖 Linux 內(nèi)核 Qt/Embedded 應(yīng)用程序 QWSSever――圖形事件服務(wù) Qt/Embedded framebuffer 輸入設(shè)備驅(qū)動(dòng) Linux 操 作系統(tǒng) 底層硬件平臺(tái) 16 圖 Qt 包含的 工具及環(huán)境變量聲明 其中 tmake 是 qt 應(yīng)用程序的編譯工具,用于生成 Makefile 文件; x11 主要包含三個(gè)工具 moc、 uic 和 designer, moc 用于 Qt C++擴(kuò)展的 metraobject 編譯器, uic 從 XML 文件生成代碼的用戶界面編譯器,而 designer 是用于設(shè)計(jì)窗口組件的應(yīng)用程序。 Qt/Embedded 不僅提供了所有 qt 程序需要的庫(kù)文件,還提供了虛擬幀緩沖 qvfb( qt virtual frame buffer), qvfb 是 X 窗口用來(lái)運(yùn)行和測(cè)試 Qtopia應(yīng)用程序的系統(tǒng)程序 , qvfb 使用了共享存儲(chǔ)區(qū)域(虛擬的幀緩沖)來(lái)模擬幀緩沖并且在一個(gè)窗口中( qvfb)模擬一個(gè)應(yīng)用來(lái)顯示幀緩沖,顯示的區(qū)域被周期性的改變和更新。通過(guò)指定顯示設(shè)備的寬度和顏色深度, 并且虛擬出來(lái)的緩沖幀和物理的顯示設(shè)備在每個(gè)像素上 保持一致。使得我們?cè)诿看握{(diào)試應(yīng)用時(shí)不需要經(jīng)常刷新 開發(fā) 板上的 FLASH 存儲(chǔ)空間,從而加速了應(yīng)用 程序的開發(fā) 。 Qt 環(huán)境的 建立 在 Linux 系統(tǒng)的 /root 目錄下,建立子目錄 2410qt,并將上面提到的三個(gè)文件復(fù)制 到 /root/2410qt 中,進(jìn)入該目錄,將三個(gè)壓縮文件包分別解壓: tar –xzf tar –xzf tamke QtX11 Qt/Embedded Qtopia 生成和管理 Makefile TMAKEDIR TAMKEPATH Qvfb 虛擬幀緩沖工具 Uic 用戶界面編譯器 Designer Qt 應(yīng)用程序設(shè)計(jì)工具 PATH LD_LIBRARY_PATH Qt 庫(kù)支持 QTEDIR PATH LD_LIBRARY_PATH 應(yīng)用程序開發(fā)包桌面環(huán)境 QPEDIR PATH LD_LIBRARY_PATH 17 tar –xzf 并分別設(shè)置環(huán)境變量: export QTEDIR=$PWD/ export TMAKEDIR=$PWD/ export QT2DIR=$PWD/ 環(huán)境變量的設(shè)置是非常重要的,它關(guān)系到能否正確的安裝及編譯這些安裝包,其中 : TMAKEDIR:指向用于編譯 Qt/Embedded的 Tmake工具 QT2DIR:指向 QTEDIR:指向 當(dāng)環(huán)境變量設(shè)置正確后,就可以對(duì)它們分別進(jìn)行編譯了 。 (1) 編譯 cd $QT2DIR export TMAKEPATH=$TMAKEDIR/lib/linuxg++ export QTDIR=$QT2DIR export PATH=$QTDIR/bin:$PATH export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH ./configure noxft make cp –arf bin/uic $QTEDIR/bin/ (2) 編譯 qvfb export TMAKEPATH=$TMAKEDIR/lib/linuxg++ export QTDIR=$QT2DIR export PATH=$QTDIR/bin:$PATH export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH cd $QTEDIR/tools/qvfb /root/2410sQt/make mv qvfb $QTEDIR/bin/ 18 (3) 編譯 Qt/Embedded cd $QTEDIR export TMAKEPATH=$TMAKEDIR/lib/qws/linuxx86g++ export QTDIR=$QTEDIR export PATH=$QTDIR/bin:$PATH export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH ./configure noxft qvfb depths 4,8,16,32 make 開始 幾次編譯時(shí),對(duì)整個(gè)編譯過(guò)程還不了解,在設(shè)置環(huán)境變量時(shí)容易漏掉“ $”符號(hào)或是拼寫錯(cuò)誤,而且擔(dān)心 make失敗后,中間生成的文件會(huì)對(duì)下一次make產(chǎn)生影響。 幾 天時(shí)間 后 ,編譯了近 十次才完全編譯成功。其中編譯 qvfb時(shí),在輸入 make指令后,提示“ Nothing to be done for all”,查找資料后知道要在make前先執(zhí)行 make clean命令,以清除上次編譯產(chǎn)生的中間文件。 當(dāng)編譯 全部 通過(guò)后,就可以在 qvfb上來(lái)檢測(cè)自己編寫的應(yīng)用程序,其步驟如下: (1) 生成工程文件 (.pro) 每一個(gè) Qt 程序都對(duì)應(yīng)著一個(gè)工程文件,因?yàn)?tmake工具要借此工程生成相應(yīng)的 Makefile文件。生成工程文件需要使用 progen工具,它的位置在$TMAKEDIR/bin下,使用 progen生成工程文件的方法如下: $TMAKEDIR/bin/progen –t –o (2) 生成 Makefile 文件 Qt提供了生成 Makefile文件的工具 tmake,這極大地方便了應(yīng)用程序的開發(fā),節(jié)省了大量的時(shí)間,而且還可根據(jù)不同平臺(tái)的需要生成適合于不同平臺(tái)的Makefile文件。在命令行中輸入如下命令: $TMAKEDIR/bin/tmake –o Makefile 完成上面的步驟以后就可以 在當(dāng)前的目錄中生成一個(gè) Makefile文件,之后在命令行 中輸入 make命令就可以對(duì)整個(gè)程序進(jìn)行編譯鏈接了。最終可以生成一個(gè)二進(jìn)制的可執(zhí)行文件 , 其 在 qvfb中 的 顯示 結(jié)果如 圖 。 19 圖 hello Qt/Embedded在 qvfb中的 顯示結(jié)果 4 .3 Qt Designer 的使用 Qt Designer 是一個(gè) GUI 工具 ,它 可以幫助我們來(lái)加快編寫 Qt 應(yīng)用程序的速度。利用 Qt Designer 可以用一種所見(jiàn)既所得的方式來(lái) 生成 Qt 程序 GUI 圖形界面的程序源碼,并且只需要手工編寫一個(gè) main 函數(shù)就可以進(jìn)行編譯了。利用 Qt Designer 可以非??焖?的學(xué)會(huì) Qt, 但是 在編寫大型應(yīng)用程序時(shí)并不使用 Qt Designer, 這是因?yàn)?Qt Designer 所產(chǎn)生的程序源碼有些繁瑣, 運(yùn)行 起來(lái)也比較慢 ,因此, 只是借助 Qt Designer 來(lái)更好的理解和學(xué)習(xí) Qt, 不是直接去 運(yùn)行 Qt Designer 生成的程序源碼。 Qt應(yīng)用程序的完成包括以下幾個(gè)步驟 : (1) 創(chuàng)建和初始化子部件 (2) 設(shè)置子部件的布局 (3) 設(shè)置 Tab鍵的次序 (4) 建立信號(hào)與插槽的連接 將部件布置好后,就可以根據(jù)我們的需要來(lái)建立連接, Qt開創(chuàng)性的使用了信號(hào)與插槽機(jī)制,與傳統(tǒng)的回調(diào)函數(shù)方式不 同,它是一種靈活、類型安全、快速、完全面向?qū)ο蟮?C++機(jī)制。使用傳統(tǒng)的回調(diào)函數(shù)機(jī)制來(lái)關(guān)聯(lián)某段代碼和和一個(gè)按鍵,需要有一個(gè)指向函數(shù)的指針,并且將這個(gè)指針地址傳給按鈕。當(dāng)這個(gè)按鈕被按下,這個(gè)函數(shù)就會(huì)被執(zhí)行。以前的工具包不能保證函數(shù)被執(zhí)行時(shí)所傳遞的類型是正確的,這使得進(jìn)程很容易崩潰。另一個(gè)問(wèn)題是,這種回調(diào)方法緊緊得綁定了 20 GUI得基本功能元素,使得很難進(jìn)行獨(dú)立的分類開發(fā)。 Qt的信號(hào)與插槽機(jī)制則不同, Qt部件( Widgets)事件發(fā)生時(shí)發(fā)出信號(hào),如一個(gè)按鈕被點(diǎn)擊時(shí)會(huì)發(fā)出一個(gè)“clicked”信號(hào)。程序員可以選擇建立一 個(gè)函數(shù)(稱為插槽)并調(diào)用 connect( )來(lái)將這個(gè)信號(hào)與插槽連接起來(lái)。用戶在編程時(shí)可以將兩個(gè)對(duì)象捆綁在一起而不需要知道每個(gè)對(duì)象的各自的信息,而且可以自己創(chuàng)建信號(hào)與插槽,發(fā)射自 己的信號(hào)等等。 Qt Designer最終生成的文件為 .ui文件,之后用 Qt提供的 uic工具可以生成 .h文件和 .cpp文件。但只有這兩個(gè)文件程序還是不能運(yùn)行的,還需要一個(gè) 文件才能進(jìn)行編譯鏈接。 到這一步 編譯出來(lái)的 Qt應(yīng)用程序只能在宿主機(jī)上運(yùn)行,若要移植到開發(fā)板上還要對(duì) Qt/Embedded重新編譯。其編譯步驟與 前面編譯宿主機(jī)上的 Qt/Embedded類似,唯一不同的是 編譯器的設(shè)置: export TMAKEPATH=$TMAKEDIR/lib/qws/linuxarmg++, 即將平臺(tái)由 linuxx86g++改為 linuxarmg++。 Qtopia 虛擬平臺(tái)建立 Qtopia是 TrollTech公司為采用嵌入式 Linux系統(tǒng)的移動(dòng)計(jì)算設(shè)備和手持設(shè)備而開發(fā)的綜合應(yīng)用平臺(tái), 包含完整的應(yīng)用層、靈活的用戶界面、窗口操作系統(tǒng)、應(yīng)用程序啟動(dòng)程序以及開發(fā)框架。 它是基于 Qt/Embedded編寫的應(yīng)用程序環(huán) 境,也是 開放源碼的一套應(yīng)用程序包和開發(fā)庫(kù)。使用 Qt/Embedded不僅可以開發(fā)Qtopia也可以用來(lái)開發(fā)面向 Qtopia的第三方軟件。它包括三個(gè)版本: Qtopia手機(jī)版 Qtopia PDA版和 Qtopia消費(fèi)電子產(chǎn)品平臺(tái)。 Qtopia虛擬平臺(tái) 由 文件 、 、 和 . 。其編譯方法和前面建立 qt桌面運(yùn)行環(huán)境時(shí)的方法類似,不過(guò)前面解 壓出來(lái)的文件在這里不可以直接使用,必須重新解壓。 這里多出了 libqte庫(kù)文件和 qtopia的編譯。其中在編譯 qtopia時(shí)容易出現(xiàn)錯(cuò)誤,主要是說(shuō) Qtoipa的運(yùn)行需要 jpeg的支持, 提示前面在編譯 ligqte庫(kù)文件時(shí)沒(méi)有configure 上 systemjpeg ,因此需要重新 編譯 libqte ,在 configure 時(shí)加上systemjpeg。 在宿主機(jī)上編譯成功的 Qtopia平臺(tái)如圖 。 21 圖 宿主機(jī)上的虛擬 Qtopia平 臺(tái) Qtopia 的移植 將 在 S3C2410處理器上 , 其 編譯方法和建立本機(jī) Qtopia平臺(tái)類似,不過(guò) 加上了 、 jpeg6b和 tslib三個(gè)工具包, Qtopia分別用到 它們中的 libuuid、 jpeg和 tslib庫(kù)文件。 在編譯完后通過(guò) NFS將文件下載到/mnt/yaffs目錄下,同時(shí)還要復(fù)制幾個(gè)庫(kù)文件到開發(fā)板上。但是在調(diào)試過(guò)程中遇到了問(wèn)題:實(shí)驗(yàn)文檔上給出的是: 將 src/ 下載到目標(biāo)機(jī)的 /usr/bin 目錄下 將 src/e2fsinstall/lib/*下載到目標(biāo)機(jī)的 /lib 目錄下 將 src/jpeginstall/lib/*下載到目標(biāo)機(jī)的 /lib 目錄下 通過(guò) NFS將開發(fā)板掛載到宿主機(jī)后,依次執(zhí)行: cp /root/share/ /usr/bin cp /root/share/* /lib cp /root/share/* /lib 終端上總提示錯(cuò)誤: cp: unable to open ?/lib/*?:Operation not permitted 22 cp: unable to open ?/lib/.*?: Operation not permitted cp: unable to open 39。/usr/bin/39。: Permission denied 起初認(rèn)為是 cp 的參數(shù)設(shè)置錯(cuò)誤,可將 cp 的每個(gè)參數(shù)都試了仍然提示上面的錯(cuò)誤。后來(lái)查了嵌入式文件系統(tǒng)的資料,知道 yaffs 文件系統(tǒng)的屬性是可讀、可寫、可修改的。而根文件系統(tǒng)是只讀的, /lib 和 /usr/bin 都是屬于根文件系統(tǒng),所以文 件無(wú)法復(fù)制。后來(lái)發(fā)現(xiàn)是實(shí)驗(yàn)文檔書寫有誤,應(yīng)該把文件都復(fù)制
點(diǎn)擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1