999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于嵌入式Qt電紙書閱讀器的設計與實現

2016-12-06 02:20:08李暉陳平
安陽工學院學報 2016年6期
關鍵詞:嵌入式功能系統

李暉,陳平

(濟源職業技術學院,河南濟源459000)

基于嵌入式Qt電紙書閱讀器的設計與實現

李暉,陳平

(濟源職業技術學院,河南濟源459000)

以嵌入式終端下的電紙書閱讀器為實例,介紹了ARM9硬件平臺的搭建和嵌入式Linux系統下Qt運行環境的配置過程。經測試,程序功能在嵌入式平臺能夠基本實現,運行效果良好。

嵌入式;Qt;電紙書閱讀器

D01∶10.19329/j.cnki.1673-2928.2016.06.010

近年來嵌入式系統發展迅速,廣泛應用于多個領域,因其便攜易用的特點受到用戶青睞。完全遵循GPL(通用公共許可證)條款的Qt,專門為嵌入式系統設計圖形用戶界面和應用程序開發而設計,提供了跨平臺的工具,這使得開發變得更為速度和方便,并且便于設計出操作更方便、交互性更好的GUI和應用程序。本設計通過對基于嵌入式Qt的電紙書閱讀器的設計和移植環境搭建進行分析,輔之以系統結構圖和搭建環境測試圖的方法來解析電紙書閱讀器的功能設計和實現的過程。

1 系統硬件平臺搭建

本設計采用北京博創ARM9開發板。根據平臺硬件要求,進行了U-boot和內核的移植以及根文件系統、觸摸屏及Qte庫的編輯,為基于嵌入式Qt電紙書閱讀器系統軟件的開發與實現做好準備。

2 開發環境的搭建與設計

2.1 創建交叉編譯環境

嵌入式系統是對可靠性、成本、體積、功耗等方面有嚴格要求的專用計算機系統。由于硬件資源非常有限,需要針對嵌入式硬件目標板設定專門的Linux操作系統,這就必然需要相應的交叉開發環境。嵌入式開發過程中交叉編譯是一項重要的工作,通過交叉編譯器能編譯出在另外一種環境下運行的代碼。

要進行交叉編譯,我們需要在開發平臺建立交叉編譯工具鏈,最后用交叉編譯工具鏈編譯出在目標平臺上可運行的代碼。剛開始編譯U-boot是一件很頭疼的事,因為很多編譯器都不能通過,原因是U-boot是軟浮點編譯的,但一般的交叉編譯器用的是硬浮點,最后通過使用3.3.2交叉編譯器才能正常編譯。本系統使用arm-linux-gcc 3.3.2交叉編譯工具鏈編譯U-boot和支持eabi提高編譯效率的arm-linux-gcc 4.1.2編譯Linux內核及其應用程序。

為了對交叉編譯器的使用方便,一般把armlinux工具鏈目錄加入到環境PATH中,如對gcc 4.1.2,在/etc/profile文件中,增加路徑export PATH= /opt/toolchains/arm920t-eabi/bin:$PATH,用命令source/etc/profile使其路徑生效。

2.2 Qt運行環境配置

Qt/Embedded具有良好的與平臺無關GUI編程接口,在嵌入式系統中有著相當多的應用[1]。運行環境配置步驟如下:

1)建立Linux開發環境。

在Windows系統下安裝虛擬機軟件VMware Workstation,并在虛擬機軟件上安裝Linux操作系統。

2)安裝開發工具Qt,分為兩部分。

①安裝LinuxPC機上的開發工具Qt。

②搭建QTE-arm環境并移植QtE到博創S3C2410開發板。

交叉編譯器安裝成功后,解壓tslib1.4.tar.gz并編譯,步驟如下:打開文件所在目錄,解壓文件后進入解壓目錄,修改腳本gedit build.sh,然后保存退出并執行./build.sh。

編譯并成功安裝到/usr/local/tslib目錄,tslib1.4編譯成功后開始編譯安裝qte4.6.3-arm,具體步驟如下:進入文件所在目錄,解壓并修改錯誤文件,用make install命令編譯執行,則成功安裝。

2.3 BootLoader的移植

本設計采用了通用性很強的U-boot作為Boot?loader。U-boot是以硬件為基礎的引導程序,其作用就是對硬件設備初始化,預先設置軟件環境,最后調用到內核。U-boot移植是嵌入式系統軟件開發的首要環節,U-boot運行情況決定著應用程序

運行環境的構建和內核啟動的正常與否[2]。

U-boot的移植方法∶在ARM9平臺上進行uboot移植。對U-Boot源碼包解壓并編輯,這樣就可以從Flash啟動和支持NAND DM9000網卡;執行命令:

#make smdk2410_config #make

生成u-boot.bin目標文件。

2.4 Linux內核的配置

U-boot正常啟動后進行Linux內核的移植。

1)準備源碼包及文件:“linux-2.6.24.4.tar. bz2”、“yaffs2.tar.gz”、“dm9000.h”、“dm9000.c”

2)分別解壓linux-2.6.24.4.tar.bz2和yaffs2.tar. gz,在yaffs2目錄內執行命令:

#./patch-ker.sh c../linux-2.6.24.4/

3)編輯Makefile文件執行命令:

#gedit Makefile

在打開的文件中找到下面兩行并修改:ARCH ?= arm

CROSS_COMPILE?= arm-linux-

4)得到.config文件:

#cp arch/arm/configs/s3c2410_defconfig.config

5)修改Nand Flash分區,之后在打開文件中修改分區信息結構體:

6)禁止ECC校驗

通過U-Boot和內核產生的ECC校驗碼的一致性由禁止內核ECC校驗解決。

修改#gedit drivers/mtd/nand/s3c2410.c文件:

chip->ecc.mode=NAND_ECC_NONE

7)添加 LCD支持:#gedit arch/arm/machs3c2410/mach-smdk2410.c在打開的文件中添加兩個頭文件:

#include<asm/arch/fb.h>

#include<linux/platform_device.h>

然后在“smdk2410_init”函數的最后一行添加添加結構體:

s3c24xx_fb_set_platdata(&smdk2410_fb_info)

8)添加網卡驅動:#gedit arch/arm/machs3c2410/mach-smdk2410.c

在打開文件中添加2個結構體來定義端口地址和中斷號,以及設備的其他信息。然后加入網卡數據:

&s3c_device_dm9ks[3]。

9)配置內核

進入內核配置界面,進行內核配置:

#make menuconfig

10)編譯內核,內核源碼目錄執行以下命令:

#make clean

#make

完成后就生成了所需要的要燒寫到開發板上的內核映像文件uImage

2.5 根文件系統的配置

1)主機環境

準備cramfs-1.1.tar.gz和busybox-1.12.2.tar.bz2源碼包,解壓后,進入cramfs-1.1目錄。

#apt-get install zlib1g-dev

#make

得到用來生成cramfs映像的mkcramfs工具。

2)Busybox配置

①解壓busybox-1.12.2.tar.bz2。

②使用shell腳本創建根文件系統的目錄結構,并運行此腳本。

③修改拷貝過來的profile文件。

④創建空的mdev.conf文件。

⑤復制shadow、group和passwd文件,將passwd文件中首末兩行的bash改成ash。

⑥復制在busybox安裝目錄下的所有文件到根文件系統目錄。

#cp-rfv/home/root/busybox-1.12.2/_install/*/ home/root/rootfs

⑦生成cramfs映像

#./mkcramfs rootfs rootfs.cramfs

3)測試根文件系統是否配置成功。

①開啟tftp服務器,設置環境變量,確保開發板和windows在同一網段及開發板的tftp服務器的IP為windows的IP。

②下載并到nandflash文件系統對應的分區中。

③設置啟動參數,此項是內核自動啟動的參

數,如果已設置,就不用再重新設置。

④重啟開發板:[up-class2410#]reset,啟動目標板,串口輸出顯示根文件系統已經加載成功。

2.6 觸摸屏軟件Tslib的移植

觸摸屏的軟件驅動程序移植后(基于內核的移植),一般有配套的tslib通過用戶層對觸摸屏上的數據濾波和修正,同時也可以給大多數GUI應用的tslib接口支持。本系統tslib-1.4矯正觸摸屏,具體步驟如下:

1)進入tslib-1.4解壓目錄修改:gedit build.sh腳本。

2)執行./build.sh編譯并安裝。

3)執行腳本:./touch.sh,屏幕上出現校準程序,點擊十字架開始校準,成功移植tslib1.4。

3 系統設計

3.1 功能模塊設計

為了讀者的閱讀方便,電紙書閱讀器共有以下幾個功能。

①打開電紙書:提供了供你選擇的文件,你可以選擇你想打開的文件或電紙書閱讀器。②新建:可以打開一個新的頁面。③退出:退出打開的界面。④關于作者:顯示作者基本信息。⑤關于Qt:顯示關于Qt的簡介。⑥字體:你可以根據你的需要而設置你打開的電紙書閱讀器的字體的類型和大小。⑦顏色:電紙書閱讀器背景界面的默認為白色,可打開顏色選項卡來選擇適合顏色。⑧打印:通過打印選項來選擇打印機進行打印。⑨查找:可以輸入查找內容。

3.2 Qt功能的實現

本系統研究的是基于嵌入式Qt的電紙書閱讀器的設計,因此需要用Qt軟件實現基本的功能,然后通過嵌入式在UP-2410平臺上來實現,因此Qt功能的實現起著至關重要的作用。本系統設計的Qt電紙書閱讀器的基本功能。

1)打開電紙書功能的實現

功能實現需調用getopenfilename()函數來創建Open公共對話框,用戶可以指定驅動器、目錄和文件名。

2)新建功能的實現

新建功能的實現主要用新建一個窗體,然后調用show()函數來實現,槽函數為:

MainWindow*w=new MainWindow;//新建一個名為MainWindow的窗體。

w->show();//把這個命令傳輸給系統[9]。

3)退出功能的實現

退出功能實現通過調用this->close()來實現,this代表當前窗口部件對象地址,close表示關閉。

4)關于作者功能的實現

功能實現用QMessageBox∶information(this,tr("關于作者:"),tr("10090204**"))函數;

5)關于Qt功能的實現

關于Qt的介紹通過調用函數QMessageBox∶∶aboutQt()來實現,Qt提供了五種類似的對話框,要實現關于Qt功能需要的槽函數為:

QMessageBox∶aboutQt(this,tr("歡迎觀看電紙書閱讀器!!!"));//""里面的為對話框的標題。

6)字體功能的實現

字體的功能是通過調用函數setFont()實現。7)打印功能的實現

打印功能的實現需要用函數 doc->print (&printer)調用打印機來實現,其中printer是打印機的意思;

8)顏色功能的實現

背景顏色功能的實現需要函數setPalette(pal?ette)調用調色板來實現,函數名為∶setpalette,功能∶改變調色板的顏色。

9)查找功能的實現

查找功能的實現:首先需要新建一個窗體取名為findDlg,添加一個按鈕PushButton改名為查找下一個,添加編輯框LineEdit用來輸入需查找文件名,調用函數:

然后通過調用FindText函數來實現查找功能。

4 系統測試

4.1 U-boot的測試

在DOS對話框中進入D盤輸入命令:sjf2410-s.exe/f∶u-boot.bin,運行完后打開終端,重啟開發板,然后顯示如圖1所示。圖1表示u-boot已成功移植到了開發板上,可以繼續進行內核的移植步驟。

4.2 Linunx內核的測試

測試內核的具體步驟是:

1)確認Linux虛擬機的IP地址。

①查看serverip是否與Linux虛擬機的IP地址一致。

②通過“setenv serverip+ip地址”來指定tftp服務器IP。

2)ARM開發板上運行命令。

①tftp 0x30008000 uImage

②nand erase 0x80000 0x200000

③nand write 0x30008000 0x80000 0x200000

重啟ARM開發板,執行命令“bootm”,成功移植后終端如圖2所示。

4.3觸摸屏的測試

進行觸摸屏的測試,首先寫一個腳本touch.sh方便程序執行,保存退出,執行腳本:./touch.sh屏幕出現校準程序,點擊十字開始校準,最終移植到開發板。

4.4 電紙書閱讀器功能測試

通過以上幾個測試,Qt的移植環境已搭建完成,最后,就是把設計好的Qt電紙書閱讀器成功下載到開發板上并進行測試,具體步驟為:

1)首先啟動tftp32.exe軟件,配置IP地址:192.168.1.126。

2)在root目錄下下載文件,命令為:tftp–r 6-g 192.168.1.126。

3)設置文件6的權限:chmod 777 6。

4)譯qt.sh文件,命令為:./qt.sh。

這時電紙書閱讀器就會在UP-2410平臺上顯示,如圖3所示。

圖1 U-boot移植測試圖

圖2 內核移植測試圖

圖3 電紙書閱讀器圖

5 結束語

隨著嵌入式CPU運算能力的不斷提高以及對外設接口支持的不斷豐富,要求具有良好交互性GUI的嵌入式Linux系統的應用逐漸增多[4]。本設計重點介紹了Qt電紙書閱讀器的編譯安裝以及UP-2410平臺的移植,并在搭建好的環境上進行電紙書閱讀器系統功能的設計和實現,并驗證移植的成果,結果證明設計能夠為類似的系統開發提供參考。

[1]穆煜.嵌入式應用程序設計[M].北京:人民郵電出版社,2009.

[2]周開,倪偉.基于Qt/E的嵌入式Linux GUI研究與實現[J].淮陰工學院學報,2015,24(3):10-13.

[3]譚浩強.C語言程序設計[M].北京:清華大學出版社,2008.

[4]王浩南,劉益成.基于嵌入式Linux系統的下的Qt開發[J].電腦開發與應用,2010,23(1):11-13.

Design and Implementation E-book Reader Based on Embedded Qt

LI Hui,CHEN Ping
(Jiyuan Vocational and Technical College,Jiyuan 459000,China)

This article takes the embedded terminal of E-book reader as an example,introduces the ARM9 Qt under the construction of the hardware platform and embedded Linux system running environment of the configu?ration process.The test program in the embedded platform can achieve the basic functions,operation effect is good.

embedded;Qt;E-book reader

TP391.1

A

1673-2928(2016)06-0030-05

(責任編輯:周小露)

2016-03-22

李暉(1982-),男,河南新鄉人,濟源職業技術學院助教,研究方向:嵌入式開發。

猜你喜歡
嵌入式功能系統
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
搭建基于Qt的嵌入式開發平臺
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
關于非首都功能疏解的幾點思考
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
Altera加入嵌入式視覺聯盟
中西醫結合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 国产精品无码影视久久久久久久| 日本三级精品| 九九视频免费在线观看| 久草视频福利在线观看| 日韩免费毛片视频| 男女性色大片免费网站| 99资源在线| 国产一区二区丝袜高跟鞋| 国产精品19p| 丰满的少妇人妻无码区| 欧美一区二区自偷自拍视频| 中国丰满人妻无码束缚啪啪| 天天做天天爱天天爽综合区| av免费在线观看美女叉开腿| 天天做天天爱天天爽综合区| 无码一区18禁| 波多野结衣一二三| 亚洲一级毛片在线观| 亚洲av综合网| 国产视频只有无码精品| 亚洲天堂精品在线| 国产簧片免费在线播放| 亚洲免费人成影院| 天天躁夜夜躁狠狠躁图片| 日韩欧美国产中文| 日本不卡免费高清视频| 日韩在线第三页| 狠狠v日韩v欧美v| 国产综合精品日本亚洲777| 狠狠v日韩v欧美v| 精品成人一区二区| 亚洲精品成人7777在线观看| 国产男人的天堂| 国产精品福利在线观看无码卡| 中文国产成人精品久久| 国产免费羞羞视频| 成年A级毛片| 中文字幕无码中文字幕有码在线| 欧美一区日韩一区中文字幕页| 欧美专区日韩专区| 日a本亚洲中文在线观看| 欧美一级片在线| 福利一区三区| 亚洲国产精品一区二区高清无码久久| 久无码久无码av无码| 久久99国产综合精品1| 看你懂的巨臀中文字幕一区二区 | 久久久黄色片| 欧美a在线看| 亚洲第一视频网站| 亚洲av成人无码网站在线观看| 精品亚洲国产成人AV| 久久婷婷人人澡人人爱91| 亚洲欧美日韩另类在线一| 四虎精品黑人视频| 日本免费新一区视频| 国内a级毛片| 日韩国产无码一区| 亚洲高清资源| 亚洲精品动漫在线观看| 强奷白丝美女在线观看| 日韩第八页| 久久香蕉欧美精品| 亚洲精品成人7777在线观看| 青青青国产视频手机| 在线亚洲天堂| 成年午夜精品久久精品| 精品亚洲欧美中文字幕在线看| 亚洲精品视频在线观看视频| www.精品视频| 亚洲二区视频| 亚洲成年人片| 欧美五月婷婷| 国产乱码精品一区二区三区中文| a在线亚洲男人的天堂试看| 韩日免费小视频| 中文字幕久久精品波多野结| 黄色污网站在线观看| 9丨情侣偷在线精品国产| 91精品最新国内在线播放| 日韩精品一区二区三区免费在线观看| 亚洲国产欧洲精品路线久久|