亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于嵌入式Qt電紙書閱讀器的設(shè)計與實現(xiàn)

        2016-12-06 02:20:08李暉陳平
        安陽工學(xué)院學(xué)報 2016年6期
        關(guān)鍵詞:電紙開發(fā)板閱讀器

        李暉,陳平

        (濟(jì)源職業(yè)技術(shù)學(xué)院,河南濟(jì)源459000)

        基于嵌入式Qt電紙書閱讀器的設(shè)計與實現(xiàn)

        李暉,陳平

        (濟(jì)源職業(yè)技術(shù)學(xué)院,河南濟(jì)源459000)

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

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

        D01∶10.19329/j.cnki.1673-2928.2016.06.010

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

        1 系統(tǒng)硬件平臺搭建

        本設(shè)計采用北京博創(chuàng)ARM9開發(fā)板。根據(jù)平臺硬件要求,進(jìn)行了U-boot和內(nèi)核的移植以及根文件系統(tǒng)、觸摸屏及Qte庫的編輯,為基于嵌入式Qt電紙書閱讀器系統(tǒng)軟件的開發(fā)與實現(xiàn)做好準(zhǔn)備。

        2 開發(fā)環(huán)境的搭建與設(shè)計

        2.1 創(chuàng)建交叉編譯環(huán)境

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

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

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

        2.2 Qt運行環(huán)境配置

        Qt/Embedded具有良好的與平臺無關(guān)GUI編程接口,在嵌入式系統(tǒng)中有著相當(dāng)多的應(yīng)用[1]。運行環(huán)境配置步驟如下:

        1)建立Linux開發(fā)環(huán)境。

        在Windows系統(tǒng)下安裝虛擬機(jī)軟件VMware Workstation,并在虛擬機(jī)軟件上安裝Linux操作系統(tǒng)。

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

        ①安裝LinuxPC機(jī)上的開發(fā)工具Qt。

        ②搭建QTE-arm環(huán)境并移植QtE到博創(chuàng)S3C2410開發(fā)板。

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

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

        2.3 BootLoader的移植

        本設(shè)計采用了通用性很強(qiáng)的U-boot作為Boot?loader。U-boot是以硬件為基礎(chǔ)的引導(dǎo)程序,其作用就是對硬件設(shè)備初始化,預(yù)先設(shè)置軟件環(huán)境,最后調(diào)用到內(nèi)核。U-boot移植是嵌入式系統(tǒng)軟件開發(fā)的首要環(huán)節(jié),U-boot運行情況決定著應(yīng)用程序

        運行環(huán)境的構(gòu)建和內(nèi)核啟動的正常與否[2]。

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

        #make smdk2410_config #make

        生成u-boot.bin目標(biāo)文件。

        2.4 Linux內(nèi)核的配置

        U-boot正常啟動后進(jìn)行Linux內(nèi)核的移植。

        1)準(zhǔn)備源碼包及文件:“l(fā)inux-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目錄內(nèi)執(zhí)行命令:

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

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

        #gedit Makefile

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

        CROSS_COMPILE?= arm-linux-

        4)得到.config文件:

        #cp arch/arm/configs/s3c2410_defconfig.config

        5)修改Nand Flash分區(qū),之后在打開文件中修改分區(qū)信息結(jié)構(gòu)體:

        6)禁止ECC校驗

        通過U-Boot和內(nèi)核產(chǎn)生的ECC校驗碼的一致性由禁止內(nèi)核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”函數(shù)的最后一行添加添加結(jié)構(gòu)體:

        s3c24xx_fb_set_platdata(&smdk2410_fb_info)

        8)添加網(wǎng)卡驅(qū)動:#gedit arch/arm/machs3c2410/mach-smdk2410.c

        在打開文件中添加2個結(jié)構(gòu)體來定義端口地址和中斷號,以及設(shè)備的其他信息。然后加入網(wǎng)卡數(shù)據(jù):

        &s3c_device_dm9ks[3]。

        9)配置內(nèi)核

        進(jìn)入內(nèi)核配置界面,進(jìn)行內(nèi)核配置:

        #make menuconfig

        10)編譯內(nèi)核,內(nèi)核源碼目錄執(zhí)行以下命令:

        #make clean

        #make

        完成后就生成了所需要的要燒寫到開發(fā)板上的內(nèi)核映像文件uImage

        2.5 根文件系統(tǒng)的配置

        1)主機(jī)環(huán)境

        準(zhǔn)備cramfs-1.1.tar.gz和busybox-1.12.2.tar.bz2源碼包,解壓后,進(jìn)入cramfs-1.1目錄。

        #apt-get install zlib1g-dev

        #make

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

        2)Busybox配置

        ①解壓busybox-1.12.2.tar.bz2。

        ②使用shell腳本創(chuàng)建根文件系統(tǒng)的目錄結(jié)構(gòu),并運行此腳本。

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

        ④創(chuàng)建空的mdev.conf文件。

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

        ⑥復(fù)制在busybox安裝目錄下的所有文件到根文件系統(tǒng)目錄。

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

        ⑦生成cramfs映像

        #./mkcramfs rootfs rootfs.cramfs

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

        ①開啟tftp服務(wù)器,設(shè)置環(huán)境變量,確保開發(fā)板和windows在同一網(wǎng)段及開發(fā)板的tftp服務(wù)器的IP為windows的IP。

        ②下載并到nandflash文件系統(tǒng)對應(yīng)的分區(qū)中。

        ③設(shè)置啟動參數(shù),此項是內(nèi)核自動啟動的參

        數(shù),如果已設(shè)置,就不用再重新設(shè)置。

        ④重啟開發(fā)板:[up-class2410#]reset,啟動目標(biāo)板,串口輸出顯示根文件系統(tǒng)已經(jīng)加載成功。

        2.6 觸摸屏軟件Tslib的移植

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

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

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

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

        3 系統(tǒng)設(shè)計

        3.1 功能模塊設(shè)計

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

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

        3.2 Qt功能的實現(xiàn)

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

        1)打開電紙書功能的實現(xiàn)

        功能實現(xiàn)需調(diào)用getopenfilename()函數(shù)來創(chuàng)建Open公共對話框,用戶可以指定驅(qū)動器、目錄和文件名。

        2)新建功能的實現(xiàn)

        新建功能的實現(xiàn)主要用新建一個窗體,然后調(diào)用show()函數(shù)來實現(xiàn),槽函數(shù)為:

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

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

        3)退出功能的實現(xiàn)

        退出功能實現(xiàn)通過調(diào)用this->close()來實現(xiàn),this代表當(dāng)前窗口部件對象地址,close表示關(guān)閉。

        4)關(guān)于作者功能的實現(xiàn)

        功能實現(xiàn)用QMessageBox∶information(this,tr("關(guān)于作者:"),tr("10090204**"))函數(shù);

        5)關(guān)于Qt功能的實現(xiàn)

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

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

        6)字體功能的實現(xiàn)

        字體的功能是通過調(diào)用函數(shù)setFont()實現(xiàn)。7)打印功能的實現(xiàn)

        打印功能的實現(xiàn)需要用函數(shù) doc->print (&printer)調(diào)用打印機(jī)來實現(xiàn),其中printer是打印機(jī)的意思;

        8)顏色功能的實現(xiàn)

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

        9)查找功能的實現(xiàn)

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

        然后通過調(diào)用FindText函數(shù)來實現(xiàn)查找功能。

        4 系統(tǒng)測試

        4.1 U-boot的測試

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

        4.2 Linunx內(nèi)核的測試

        測試內(nèi)核的具體步驟是:

        1)確認(rèn)Linux虛擬機(jī)的IP地址。

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

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

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

        ①tftp 0x30008000 uImage

        ②nand erase 0x80000 0x200000

        ③nand write 0x30008000 0x80000 0x200000

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

        4.3觸摸屏的測試

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

        4.4 電紙書閱讀器功能測試

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

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

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

        3)設(shè)置文件6的權(quán)限:chmod 777 6。

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

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

        圖1 U-boot移植測試圖

        圖2 內(nèi)核移植測試圖

        圖3 電紙書閱讀器圖

        5 結(jié)束語

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

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

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

        [3]譚浩強(qiáng).C語言程序設(shè)計[M].北京:清華大學(xué)出版社,2008.

        [4]王浩南,劉益成.基于嵌入式Linux系統(tǒng)的下的Qt開發(fā)[J].電腦開發(fā)與應(yīng)用,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

        (責(zé)任編輯:周小露)

        2016-03-22

        李暉(1982-),男,河南新鄉(xiāng)人,濟(jì)源職業(yè)技術(shù)學(xué)院助教,研究方向:嵌入式開發(fā)。

        猜你喜歡
        電紙開發(fā)板閱讀器
        基于反向權(quán)重的閱讀器防碰撞算法
        一種高效的RFID系統(tǒng)冗余閱讀器消除算法
        Microchip最新推出兩款PIC32 Curiosity開發(fā)板
        淺析單片機(jī)開發(fā)板的設(shè)計與制作
        電子制作(2017年22期)2017-02-02 07:10:14
        一種RFID網(wǎng)絡(luò)系統(tǒng)中消除冗余閱讀器的高效算法
        Mouser為您呈上開發(fā)關(guān)鍵之STMicroelectronics Nucleo開發(fā)板
        Arduino和Atmel發(fā)布Arduino Zero開發(fā)板
        盲人閱讀器
        電紙書,原來如此!漢王電紙書N618親測記
        市場快報
        激情伊人五月天久久综合| 一区二区三区精品亚洲视频| 日本加勒比精品一区二区视频| 一边做一边说国语对白| 熟妇高潮一区二区三区| 国产乱人伦AV在线麻豆A| 亚洲一区二区三区一区| 蜜桃18禁成人午夜免费网站| 极品少妇人妻一区二区三区| 人妻丝袜中文无码av影音先锋专区| 军人粗大的内捧猛烈进出视频| 国产精品久久久久尤物| 久久精品亚洲熟女九色| 无码精品国产一区二区三区免费| 中文字幕乱伦视频| 亚洲国产日韩在线人成蜜芽| 亚洲免费一区二区av| 亚洲av永久无码精品一福利| 国产精品麻豆欧美日韩ww| 91精品综合久久久久m3u8| 一区二区午夜视频在线观看| 国产乱妇无乱码大黄aa片| 欧美在线三级艳情网站| 精品少妇后入一区二区三区| 亚洲av不卡一区男人天堂| 男女裸交无遮挡啪啪激情试看| 国内久久婷婷精品人双人| 中文字幕亚洲永久精品| 亚洲爆乳无码专区www| 久热在线播放中文字幕| 亚洲va精品va国产va| 久久久免费看少妇高潮| 日本另类αv欧美另类aⅴ| 少妇的丰满3中文字幕| 久久综合给合久久97色| 国产免费三级av在线| 无码人妻丰满熟妇区毛片| 欧美zozo另类人禽交| 午夜福利视频一区二区二区| 日本一卡二卡3卡四卡免费观影2022| 最近免费中文字幕|