2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩10頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p>  課 程 設(shè) 計 報 告</p><p>  課程名稱 嵌入式系統(tǒng) </p><p>  課題名稱 QTOPIA移植  </p><p>  專 業(yè) 計算機(jī)科學(xué)與技術(shù) </p><p>  班

2、 級 </p><p>  學(xué) 號 </p><p>  姓 名   </p><p>  指導(dǎo)教師 </p><p>  年 月 日</p&

3、gt;<p>  嵌入式系統(tǒng)課程設(shè)計任務(wù)書</p><p>  設(shè)計課題5:Qtopia移植實(shí)驗(yàn)</p><p><b>  問題描述:</b></p><p>  良好的GUI界面是嵌入式產(chǎn)品設(shè)計中不可或缺的部分,Qt/Embedded是一個多平臺的C++圖形用戶界面應(yīng)用程序框架,其對象容易擴(kuò)展,可移植性好,支持多個GUI平臺的

4、交互開發(fā),而基于Qt/Embedded框架的Qtopia 是Trolltech 公司為采用嵌入式Linux 操作系統(tǒng)的消費(fèi)電子設(shè)備而開發(fā)的綜合應(yīng)用平臺。</p><p><b>  功能設(shè)計要求:</b></p><p>  1)本系統(tǒng)針對xbase270實(shí)驗(yàn)箱,運(yùn)用Redhat9搭建交叉開發(fā)環(huán)境,涉及Qt程序的設(shè)計,Qtopia平臺的移植。</p>&

5、lt;p>  2)Tslib和Qt/E模塊:</p><p><b>  交叉編譯環(huán)境搭建</b></p><p>  編譯Tslib源碼:Tslib是一個開源的程序,能夠?yàn)橛|摸屏驅(qū)動獲得的采樣提供諸如濾波、去抖、校準(zhǔn)等功能,通常作為觸摸屏驅(qū)動的適配層,為上層的應(yīng)用提供了一個統(tǒng)一的接口。</p><p>  編譯帶Tslib庫的Qt/E源

6、碼:Qt/E庫文件是Qtopia移植所必備的庫文件。</p><p>  3)Qtopia模塊:</p><p><b>  交叉編譯環(huán)境搭建</b></p><p>  Qtopia源碼分析及交叉編譯 </p><p>  運(yùn)用串口或網(wǎng)絡(luò)的程序下載。</p><p><b>  4)

7、Qt程序配置</b></p><p>  用Qt的designer工具設(shè)計一個Qt界面程序</p><p>  將此程序配置到Qtopia平臺中</p><p><b>  3、要求:</b></p><p>  1)用VMware搭建Redhat9的交叉編譯環(huán)境;</p><p> 

8、 2)對Qtopia源碼的核心部分加必要注釋和說明;</p><p>  3)運(yùn)用正確的方法進(jìn)行程序下載;</p><p><b>  目錄</b></p><p><b>  一、系統(tǒng)介紹1</b></p><p><b>  二、總體設(shè)計2</b></p>

9、<p>  三.主要模塊的實(shí)現(xiàn)3</p><p><b>  四.程序調(diào)試6</b></p><p><b>  五.總結(jié)與體會6</b></p><p><b>  六.源程序清單6</b></p><p><b>  系統(tǒng)介紹</b>

10、;</p><p>  目前嵌入式Linux的主流GUI系統(tǒng)主要有MiniGUI、Microwindows、OpenGUI、Qt/Embedded,這些GUI在接口定義、體系結(jié)構(gòu)、功能特性存在很大差別,采取的技術(shù)路線也有所不同。MiniGUI是建立在比較成熟的圖形引擎之上,開發(fā)的重點(diǎn)在于窗口系統(tǒng),其小巧精致并且盡量與Win32兼容。MicroWindows目前開發(fā)的重點(diǎn)在底層的圖形引擎,窗口系統(tǒng)和圖形接口方面功能

11、比較欠缺,與Win32和X Windows窗口系統(tǒng)保持兼容,提供了相對完善的圖形功能。OpenGUI基于一個用匯編實(shí)現(xiàn)的x86圖形內(nèi)核,提供了一個高層的C/C++圖形/窗口接口,它的資源消耗小,可移植性差,不支持多進(jìn)程。</p><p>  我們這次的實(shí)驗(yàn)用的就是基于Qt/Embedded,它具有良好的擴(kuò)展性和眾多優(yōu)秀的配套工具。</p><p>  實(shí)驗(yàn)過程中,一共用到4個源代碼包,下面

12、是它們的介紹說明:</p><p>  Qt/Embedded:Qt/Embedded是一個多平臺的C++圖形用戶界面應(yīng)用程序框架,其對象容易擴(kuò)展,可移植性好,支持多個GUI平臺的交互開發(fā)。現(xiàn)在,Qt/Embedded被廣泛地應(yīng)用于各種嵌入式產(chǎn)品和設(shè)備中,從消費(fèi)電器(如智能手機(jī)、機(jī)頂盒)到工業(yè)控制設(shè)備(如醫(yī)學(xué)成像設(shè)備、移動信息系統(tǒng)等)。因此本實(shí)訓(xùn)項(xiàng)目選擇Qt/Embedded為系統(tǒng)的GUI。</p>

13、<p>  Qtopia :Qtopia 是Trolltech 公司為采用嵌入式Linux 操作系統(tǒng)的消費(fèi)電子設(shè)備而開發(fā)的綜合應(yīng)用平臺, 它基于Qt/Embedded框架,所以在編譯Qtopia之前先要搭建好Qt/Embedded框架。另外Qtopia包含完整的應(yīng)用層、靈活的用戶界面、窗口操作系統(tǒng)、應(yīng)用程序啟動程序以及開發(fā)框架。</p><p>  Tslib:在采用觸摸屏的移動終端中,觸摸屏性能的調(diào)

14、試是個重要問題之一,因?yàn)殡姶旁肼暤木壒?,觸摸屏容易存在點(diǎn)擊不準(zhǔn)確、有抖動等問題。Tslib是一個開源的程序,能夠?yàn)橛|摸屏驅(qū)動獲得的采樣提供諸如濾波、去抖、校準(zhǔn)等功能,通常作為觸摸屏驅(qū)動的適配層,為上層的應(yīng)用提供了一個統(tǒng)一的接口。</p><p>  Tmake:tmake是一個很好用的生成和管理makefile的工具,他是由Trolltech這家公司開發(fā)的,用perl寫成。</p><p>

15、;<b>  總體設(shè)計</b></p><p><b>  移植流程圖</b></p><p><b>  圖1 流程示意圖</b></p><p>  1、QT/E的跨平臺的移植方法與步驟:</p><p>  1. 從光盤的QT目錄下獲得以下文件并解壓到 /work目錄,如

16、下圖:</p><p>  2. 編譯Qt/Embedded的環(huán)境參數(shù)的設(shè)置</p><p>  在編譯Qt/Embedded時,用戶在PC機(jī)上應(yīng)對編譯時所需的環(huán)境變量進(jìn)行設(shè)置(假設(shè)Qt解壓后目錄為/work/qt-2.3.7),主要參數(shù)包括:</p><p> ?。?)、QTDIR-Qt解壓后的所在的目錄</p><p> ?。?)、LD_

17、LIBRARY_PATH-Qt共享庫存放的目錄。</p><p> ?。?)、QPEDIR-qtopia解壓后的所在的目錄</p><p> ?。?)、TMAKEPATH-tmake編譯工具的路徑(假設(shè)tmake-1.1所在的目錄為/work)</p><p>  (5)TMAKEDIR-tmake編譯工具的目錄</p><p> ?。?)、

18、PATH-交叉編譯工具arm-linux-gcc的路徑</p><p>  3. Qt/Embedded的編譯配置</p><p>  4. 針對ARM開發(fā)平臺的Qt/Embedded的編譯</p><p><b>  三.主要模塊的實(shí)現(xiàn)</b></p><p><b>  1、tslib移植</b>

19、;</p><p>  第一步:解壓tslib-1.4.tar.gz</p><p>  tar -zxvf tslib-1.4.tar.gz</p><p>  第二步:進(jìn)入解壓過的目錄</p><p>  cd tslib-1.4</p><p>  第三步:執(zhí)行tslib-1.4目錄下的autogen.sh<

20、;/p><p>  ./autogen.sh</p><p>  這一步需要安裝一些工具:sudo apt-get install automake</p><p>  第四步:執(zhí)行autogen.sh腳本所生成的Makefile文件</p><p><b>  請打入以下命令:</b></p><p&g

21、t;  echo "ac_cv_func_malloc_0_nonnull=yes" >$ARCH-linux.cache</p><p>  ./configure --host=arm-softfloat-linux-gnu --prefix=/home/linux/tslib --cache-file=$ARCH-linux.cache</p><p> 

22、 --host是指你的交叉編譯器的前最;例如:你的交叉編譯器是arm-linux-gcc,則--host=arm-linux.如果是arm-softfloat-linux-gnu-gcc</p><p>  則--host=arm-softfloat-linux-gnu</p><p>  --prefix 是你執(zhí)行make install 的時候編譯后生成的可執(zhí)行文件和庫文件以及配置文所

23、安裝的目錄;</p><p>  configure文件下還有好多選項(xiàng);你可以執(zhí)行./configure --help 來進(jìn)行選擇其他項(xiàng),不過在這里這些選項(xiàng)就夠了。</p><p>  第五步:執(zhí)行make</p><p>  第六步:執(zhí)行make install</p><p>  第七步:把指定安裝目錄下的tslib的文件都copy到你所

24、掛載的根文件下</p><p>  sudo cp -rf /home/linux/tslib/* /rootfs/tslib</p><p>  第八步:修改/rootfs/tslib下的etc目錄中ts.cong文件</p><p>  vi ts.conf 將第二行的#module_raw input修改成module_raw input 注意一定要頂

25、格寫否則程序執(zhí)行時會發(fā)生讀取ts.conf錯誤</p><p>  交叉編譯tslib.tar.bz2,其中截圖如下:</p><p>  2.ARM開發(fā)平臺的Qt/Embedded的編譯步驟:</p><p> ?。?)根據(jù)編譯Qt/Embedded的環(huán)境變量的設(shè)置方法設(shè)置環(huán)境變量,實(shí)驗(yàn)截圖如下:</p><p> ?。?)觸摸屏共享庫的編

26、譯和Qt/Embedded源代碼的修改</p><p>  Qt/Embedded只支持鼠標(biāo)和鍵盤的操作,但在大部分嵌入式系統(tǒng)中利用觸摸屏,所以用戶必須對觸摸屏的相關(guān)操作編譯成共享庫或靜態(tài)庫。編譯觸摸屏庫, 將觸摸屏相關(guān)的頭文件復(fù)制到qt-2.3.7/include文件夾中;將編譯好的觸摸屏庫文件復(fù)制qt-2.3.7/lib文件夾中;</p><p>  將patch底下的文件覆蓋當(dāng)前文件

27、。執(zhí)行configure命令生成編譯時所需的Makefile。</p><p> ?。?)拷貝QT所需文件,并配置環(huán)境</p><p> ?。?)編譯完成后, 在 $QTDIR/lib生成 ibqte.so*, 所有的應(yīng)用程序在 $QPEDIR/bin</p><p> ?。?)建立qpe文件夾,將QT所需文件拷貝到qpe文件夾底下。</p><

28、p>  (7). 覆蓋腳本/qpe/qpe.sh(如用USB鼠標(biāo)覆蓋/qpe/qpe_moush.sh),覆蓋腳本/etc/inittab。</p><p> ?。?)用修改好的qpe文件夾替換文件系統(tǒng)中的qpe文件夾,制作文件系統(tǒng),燒寫完成后重啟。因?yàn)樽煮w文件比較大,請刪除/qpe/lib/fonts底下的沒用的字體。注意保留*.qpf文件和fontdir文件。</p><p> 

29、 3、啟動Qtopia</p><p><b>  (1)目標(biāo)板開機(jī)</b></p><p> ?。?)運(yùn)行腳本qtopia.sh</p><p>  ./qtopia.sh</p><p><b>  (3)運(yùn)行qpe</b></p><p>  /Qtopia/bin/q

30、pe</p><p><b>  四.程序調(diào)試</b></p><p>  在程序過程中,Qt/Embedded只支持鼠標(biāo)和鍵盤的操作,但在大部分嵌入式系統(tǒng)中利用觸摸屏,所以用戶必須對觸摸屏的相關(guān)操作編譯成共享庫或靜態(tài)庫。個人感覺這個過程最有難度。</p><p><b>  五.總結(jié)與體會</b></p>

31、<p>  在課程設(shè)計過程中,我們了解到課程設(shè)計不光光是埋頭做設(shè)計,也是同學(xué)之間互相學(xué)習(xí)和互相交流經(jīng)驗(yàn)和知識的機(jī)會。也是我們大家向老師提出疑問和學(xué)以致用的機(jī)會,這讓我們不會成為只知道理論而不會將理論化為實(shí)踐中去的書呆子。我覺得課程設(shè)計就是一個復(fù)習(xí)課堂上學(xué)到知識的機(jī)會,也是一個加強(qiáng)學(xué)生動手能力設(shè)計的機(jī)會。更是一個讓學(xué)習(xí)得到升華的過程。</p><p><b>  六.源程序清單</b>

32、;</p><p><b>  Qt界面程序:</b></p><p>  //textfinder.h</p><p>  #ifndef TEXTFINDER_H</p><p>  #define TEXTFINDER_H</p><p>  #include <QWidget>

33、</p><p>  namespace Ui {</p><p>  class TextFinder;</p><p><b>  }</b></p><p>  class TextFinder : public QWidget</p><p><b>  {</b&

34、gt;</p><p><b>  Q_OBJECT</b></p><p><b>  public:</b></p><p>  explicit TextFinder(QWidget *parent = 0);</p><p>  ~TextFinder();</p><p

35、>  private slots:</p><p>  void on_findButtom_clicked();</p><p><b>  private:</b></p><p>  Ui::TextFinder *ui;</p><p>  void loadTextFile();</p>&

36、lt;p><b>  };</b></p><p>  #endif // TEXTFINDER_H</p><p>  //main.cpp</p><p>  #include <QtGui/QApplication></p><p>  #include "textfinder.h&qu

37、ot;</p><p>  int main(int argc, char *argv[])</p><p><b>  {</b></p><p>  QApplication a(argc, argv);</p><p>  TextFinder w;</p><p><b>  w

38、.show();</b></p><p>  return a.exec();</p><p><b>  }</b></p><p>  //textfinder.cpp</p><p>  #include "textfinder.h"</p><p>  #i

39、nclude "ui_textfinder.h"</p><p>  #include <QtCore/QFile></p><p>  #include <QtCore/QTextStream></p><p>  TextFinder::TextFinder(QWidget *parent) :</p>

40、<p>  QWidget(parent),</p><p>  ui(new Ui::TextFinder)</p><p><b>  {</b></p><p>  ui->setupUi(this);</p><p>  loadTextFile();</p><p>&l

41、t;b>  }</b></p><p>  TextFinder::~TextFinder()</p><p><b>  {</b></p><p>  delete ui;</p><p><b>  }</b></p><p>  void TextF

42、inder::on_findButtom_clicked()</p><p><b>  {</b></p><p>  QString searchString = ui->lineEdit->text();</p><p>  ui->textEdit->find(searchString, QTextDocumen

43、t::FindWholeWords);</p><p><b>  }</b></p><p>  void TextFinder::loadTextFile()</p><p><b>  {</b></p><p>  QFile inputFile(":/input.txt"

44、;);</p><p>  inputFile.open(QIODevice::ReadOnly);</p><p>  QTextStream in(&inputFile);</p><p>  QString line = in.readAll();</p><p>  inputFile.close();</p>

45、<p>  ui->textEdit->setPlainText(line);</p><p>  QTextCursor cursor = ui->textEdit->textCursor();</p><p>  cursor.movePosition(QTextCursor::Start, QTextCursor::MoveAnchor, 1);&l

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論