




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、華南師范大學(xué)嵌入式系統(tǒng)課程設(shè)計(jì)報(bào)告 設(shè)計(jì)題目:基于ARM的嵌入式的電子相框系統(tǒng)專業(yè)班級 電路與系統(tǒng) 學(xué) 院 物理與電信工程學(xué)院 指導(dǎo)教師 熊愛民 姓 名 學(xué) 號 2015年 12 月25日 基于ARM的嵌入式電子相框系統(tǒng)摘要:本設(shè)計(jì)采用搭載飛思卡爾的MCIMX28x 芯片的Esayarm-i.max283A開發(fā)板作為目標(biāo)機(jī),使用安裝Windows 7的PC機(jī)作為宿主機(jī),并在宿主機(jī)Windows平臺(tái)上安裝了一個(gè)虛擬機(jī)軟件,虛擬機(jī)里安裝的是Ubuntu作為開發(fā)環(huán)境。并在目標(biāo)機(jī)上移植了u-boot,linux內(nèi)核,根文件系統(tǒng),構(gòu)成一個(gè)嵌入式linux操作系統(tǒng),該系統(tǒng)的最大特點(diǎn)就是,可以根據(jù)應(yīng)用需求對
2、軟硬件進(jìn)行裁剪,滿足應(yīng)用系統(tǒng)的功能、可靠性、成本、體積等要求,主要用途就是對軟硬件資源的調(diào)度與分配。 在搭載了linux嵌入式系統(tǒng)的目標(biāo)開發(fā)板上,本文設(shè)計(jì)了一個(gè)界面應(yīng)用程序,該應(yīng)用程序主要功能為:用戶通過對界面的操作就可對數(shù)碼相框中圖片的瀏覽與管理,以及進(jìn)行幻燈片播放功能,實(shí)現(xiàn)個(gè)人圖片的掌上管理。關(guān)鍵詞:linux嵌入式系統(tǒng);周立功開發(fā)板;虛擬機(jī)環(huán)境;移植。 目 錄1. 61設(shè)計(jì)內(nèi)容71.1 設(shè)計(jì)目的71.2 設(shè)計(jì)意義71.3電子相框的設(shè)計(jì)任務(wù)和要求82. 周立功開發(fā)板的介紹92.1Esayarm-i.max283A開發(fā)板92.1.1 Freescale 的MCIMX2
3、8x 處理器102.1.2SDRAM存儲(chǔ)系統(tǒng)102.1.3 FLASH 存儲(chǔ)系統(tǒng)112.2基于Esayarm-i.max283A的開發(fā)環(huán)境的搭建122.2.1搭建嵌入式交叉開發(fā)環(huán)境123 Linux 內(nèi)核143.1 Linux系統(tǒng)簡介143.2 Linux-2.6.29內(nèi)核移植到Esayarm-i.max283A174 電子相框的功能模塊以及程序框架174.1輸入程序框架解析174.2顯示界面的功能總框架184.3電子相框的主流程圖204.4程序模塊介紹214.4.1頁面規(guī)劃模塊214.4.2調(diào)試模塊224.4.3圖片渲染解析模塊224.4.4字符解碼模塊234.4.5顯示模塊245電子相框的
4、相關(guān)驅(qū)動(dòng)移植245.1 關(guān)于LCD驅(qū)動(dòng)的配置245.2 關(guān)于觸摸屏驅(qū)動(dòng)的配置256電子相框的效果演示及功能測試256.1 電子相框性能分析方法簡述256.2 電子相框的效果演示以及功能描述267設(shè)計(jì)體會(huì)268參考文獻(xiàn)271設(shè)計(jì)內(nèi)容1.1設(shè)計(jì)目的1、注重培養(yǎng)綜合運(yùn)用所學(xué)知識、獨(dú)立分析和解決實(shí)際問題的能力,培養(yǎng)創(chuàng)新意識和創(chuàng)新能力,并獲得科學(xué)研究的基礎(chǔ)訓(xùn)練。2、了解周立功開發(fā)板的硬件環(huán)境和豐富的接口資源,掌握對周立功開發(fā)板進(jìn)行Linux內(nèi)核的移植,裁剪,配置和編譯。3、利用周立功開發(fā)板,通過軟硬件設(shè)計(jì)實(shí)現(xiàn)進(jìn)行一個(gè)可以瀏覽與管理圖片功能的電子相框。1.2設(shè)計(jì)意義嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為
5、基礎(chǔ),且軟硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)1。它一般由以下幾部分組成:嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)。嵌入式系統(tǒng)必須根據(jù)應(yīng)用需求對軟硬件進(jìn)行裁剪,滿足應(yīng)用系統(tǒng)的功能、可靠性、成本、體積等要求。所以,如果能建立相對通用的軟硬件基礎(chǔ),然后在其上開發(fā)出適應(yīng)各種需要的系統(tǒng),是一個(gè)比較好的發(fā)展模式。 基于ARM的嵌入式系統(tǒng)有諸多優(yōu)點(diǎn)是傳統(tǒng)電子系統(tǒng)無法比擬的,利用嵌入式開發(fā)本設(shè)計(jì)可以開發(fā)出具有良好的人機(jī)交互界面的實(shí)時(shí)系統(tǒng),同時(shí)嵌入式系統(tǒng)最大的優(yōu)點(diǎn)就是軟硬件可裁剪,依據(jù)自己系統(tǒng)的需要可以進(jìn)行靈活的軟硬件設(shè)計(jì)開發(fā),而且基于ARM的嵌入式系統(tǒng)開發(fā)成
6、本低,而且系統(tǒng)穩(wěn)定性高,功耗低,體積小,并且能夠應(yīng)用于多種應(yīng)用場合2。另外,作為一個(gè)消費(fèi)類電子產(chǎn)品,電子相框的設(shè)計(jì)必須考慮以下因素:1、用戶接口友好、操作方便。2、系統(tǒng)兼容性強(qiáng)。數(shù)碼相框應(yīng)能識別和處理當(dāng)前數(shù)碼相機(jī)主要的圖像格式,能訪問主流的外部半導(dǎo)體存儲(chǔ)卡。3、穩(wěn)定可靠。作為數(shù)碼相機(jī)的一種附屬產(chǎn)品,電子相框不僅具有傳統(tǒng)相框的特點(diǎn),而且可以直接從數(shù)碼相機(jī)中選擇心儀的照片,定時(shí)更新照片。電子相框可以擺放在家居顯眼之處,成為現(xiàn)代家庭一道靚麗的風(fēng)景線。1.3電子相框的設(shè)計(jì)任務(wù)和要求 本設(shè)計(jì)的電子相框系統(tǒng),實(shí)現(xiàn)了圖片的查看,圖片輪播功能的系統(tǒng)設(shè)計(jì),該電子相框系統(tǒng)依靠ARM處理器和嵌入式Linux操作系統(tǒng)
7、作為系統(tǒng)平臺(tái),同時(shí)結(jié)合界面應(yīng)用程序,通過對觸摸屏的操作,在LCD屏幕上顯示圖譜按,實(shí)現(xiàn)了數(shù)碼相框系統(tǒng)與外界的信息交流,從而在目標(biāo)板上實(shí)現(xiàn)電子相框的基本功能。如圖1.1所示。 圖1.1 電子相框系統(tǒng)1、周立功開發(fā)板的介紹2.1 Esayarm-i.max283A開發(fā)板Esayarm-i.max283A是一款真正低價(jià)實(shí)用的ARM9開發(fā)板,EasyARM-i.MX283A 采用Freescale 的MCIMX28x 處理器(基于ARM926EJ-S 內(nèi)核),具有豐富的硬件資源,提供了完善的Linux 軟件支持包、開發(fā)工具和豐富的實(shí)用范例,大大降低了Linux 學(xué)習(xí)門檻和開發(fā)難度3,可以幫助用戶在短期
8、內(nèi)實(shí)現(xiàn)產(chǎn)品功能驗(yàn)證和開發(fā)。EasyARM -i.MX283A 的基本接口分布如圖2.1 所示。 圖 2.1 EasyARM -i.MX283A開發(fā)板其板載64M SDRAM、128MB SLC NAND FLASH和2M Nor Flash,足夠本系統(tǒng)使用。該開發(fā)板接口十分豐富,含:l 1個(gè)主USB接口,1個(gè)從USB接口l 1個(gè)100M以太網(wǎng)RJ-45口(采用DM9000網(wǎng)卡)l 1個(gè)SD/MMC卡存儲(chǔ)接口,3個(gè)串行口l 3個(gè)串口,COM0為RS232 DB9接口,COM2和COM3為2.0mm間距l(xiāng) 標(biāo)轉(zhuǎn)JTAG接口(2.0mm間距)l 1路立體聲音頻輸出接口(標(biāo)準(zhǔn)3.5mm接口),1路麥克
9、風(fēng)接口l 引出CPU內(nèi)部全部攝像頭信號引腳。2.1.1 Freescale 的MCIMX28x 處理器MCIMX28x是飛思卡爾公司的一款基于ARM926EJ-S 內(nèi)核的高性能、低功耗、高集成度的32位微處理器,主頻最高可達(dá)454MHz,具有16KB指令Cache和16KB數(shù)據(jù)Cache,主要特征如下:l 1.2V內(nèi)核供電,1.8V/2.5V/3.3V存儲(chǔ)器供電,3.3V外部I/O供電l LCD控制器(最大支持4K色STN和256K色TFT),提供1通道LCD專用DMAl 4通道DMA,并有外部請求引腳l 3通道UARTl 2通道SPIl 1通道IIC-BUS接口(多主支持)l 兼容SD主接口
10、協(xié)議1.0板和MMC卡2.11兼容版l 2端USB主機(jī)/1端口USB設(shè)備l 4通道PWM定時(shí)器和1通道內(nèi)部定時(shí)器/看門狗定時(shí)器l 8通道10bitADC和觸摸屏接口l 具有日歷功能的RTCl 130通用I/O口和24通道外部中斷源l 具有普通、慢速、空閑和掉電模式l 具有PLL片上時(shí)鐘發(fā)生器 2.1.2 SDRAM存儲(chǔ)系統(tǒng)Esayarm-i.max283A 使用了兩片外接的32M bytes 總共 64M bytes 的SDRAM 芯片( 型號為:HY57V561620FTP/MT48LC16M16A2),一般稱之為內(nèi)存,它們并接在一起形成 32-bit 的總線數(shù)據(jù)寬度,這樣可以增加訪問的速度
11、;因?yàn)槭遣⒔?,故它們都使用?nGCS6 作為片選,它們的物理起始地址為0x30000000,下面是摘自Esayarm-i.max283A 原理圖中的SDRAM 部分原理圖。圖 2.2 SDRAM存儲(chǔ)系統(tǒng)原理圖2.1.3 FLASH 存儲(chǔ)系統(tǒng)Esayarm-i.max283A 具備兩種Flash,一種是 Nor Flash ,型號為 SST39VF1601(AMD29LV160DB與此引腳兼容) ,大小為2Mbyte;另一種是Nand Flash ,型號為K9F1G08,大小為128M( 舊版本為K9F1208 ,大小為64Mbyte) 。S3C2440 支持這兩種Flash啟動(dòng)系統(tǒng),通過撥動(dòng)
12、開關(guān) S2,可以選擇從NOR還是從NAND 啟動(dòng)系統(tǒng)。 Nand Flash 不具有地址線,它有專門的控制接口與CPU 相連,數(shù)據(jù)總線為8-bit ,但這并不意味著Nand Flash 讀寫數(shù)據(jù)會(huì)很慢。大部分的優(yōu)盤或者SD卡等都是Nand Flash 制成的設(shè)備4。從下面的原理圖可以看出,Nor Flash 采用了A1-A22總共22條地址總線和16條數(shù)據(jù)總線與CPU 連接,地址是從A1開始的,這意味著它每次最小的讀寫單位是2-byte ,因此根據(jù)原理圖,該設(shè)計(jì)總共可以兼容支持最大8Mbyte的Nor Flash,實(shí)際開發(fā)板上只用了A1-A20條地址線,因?yàn)榕cA21、A22 相連的SST39V
13、1601 的相應(yīng)引腳是懸空的。圖 2.3 Flash存儲(chǔ)系統(tǒng)原理圖2.2基于Esayarm-i.max283A的開發(fā)環(huán)境的搭建2.2.1搭建嵌入式交叉開發(fā)環(huán)境由于嵌入式系統(tǒng)資源匱乏,一般不能像PC 一樣安裝本地編譯器和調(diào)試器,不能在本地編寫、編譯和調(diào)試自身運(yùn)行的程序,而需借助其它系統(tǒng)如PC 來完成這些工作,這樣的系統(tǒng)通常被稱為宿主機(jī)。 本設(shè)計(jì)宿主機(jī)主要是使用裝有ubuntu的Linux操作系統(tǒng)的PC機(jī),而目標(biāo)機(jī)就是Esayarm-i.max283A開發(fā)板。組成架構(gòu)如圖2.6所示。 圖2.6 嵌入式開發(fā)交叉環(huán)境構(gòu)架 所謂的交叉編譯,就是在宿主機(jī)平臺(tái)上使用某種特定的交叉編譯器,為某種與宿
14、主機(jī)不同平臺(tái)的目標(biāo)系統(tǒng)編譯程序,得到的程序在目標(biāo)系統(tǒng)上運(yùn)行而非在宿主機(jī)本地運(yùn)行,本設(shè)計(jì)使用的交叉編譯器為arm-linux-gnueabi-gcc,具體安裝步驟如下: (1) 解壓交叉編譯工具: 運(yùn)行命令 tar xjvf gcc-4.4.4-glibc-2.11.1-multilib-1.0.tar.bz2(2) 在完成解壓后,如果不指定交叉編譯器的完整路徑,系統(tǒng)無法調(diào)用交叉編譯器,如果不清楚交叉編譯器安裝的目錄,可以看rm-linux-gnueabi-*這些文件到底在哪個(gè)目錄。具體全路徑引用的方法為:CC=/opt
15、/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-linux-gnueabi/arm-linux-gnueabi-make cross_COMPILE=$CC ARCH=arm uimage2.2.2 安裝SSH服務(wù)器 Ssh是Secure shell的縮寫,是建立在應(yīng)用層和傳輸層的安全協(xié)議,能夠有效防止遠(yuǎn)程管理過程中的信息泄露問題,可以遠(yuǎn)程進(jìn)行文件傳輸,本實(shí)驗(yàn)使用的是windows系統(tǒng)上安裝的Ubuntu的虛擬機(jī),這時(shí)就可以將其視為遠(yuǎn)程系統(tǒng)。(1) 在虛擬機(jī)上安裝ssh服務(wù)器,具體的方法是在Linux主機(jī)輸入下面命令:Sudo apt-get install
16、openssh-server (2)測試ssh服務(wù)器,在虛擬機(jī)里,VMware虛擬網(wǎng)卡設(shè)置NAT模式的話,Linux系統(tǒng)網(wǎng)卡設(shè)置為動(dòng)態(tài)IP即可;如果虛擬網(wǎng)卡設(shè)置為橋接模式,則需要為Linux設(shè)置一個(gè)與windows系統(tǒng)同一個(gè)網(wǎng)段的靜態(tài)IP地址。 也可以在終端使用ifconfig命令進(jìn)行設(shè)置: sudo ifconfig eth0 IP地址,只有知道了Linux主機(jī)的IP地址后才能進(jìn)行ssh連接,如果不能確定IP地址,可以打開終端,用ifconfig命令進(jìn)行查看和確認(rèn)。(3) 在Windows系統(tǒng)下下載并安裝一個(gè)ssh secure file transfer client軟件,這時(shí)就實(shí)現(xiàn)了Wi
17、ndows和虛擬機(jī)的Ubuntu進(jìn)行文件傳輸。3 Linux 內(nèi)核3.1 Linux系統(tǒng)簡介Linux是最受歡迎的自由電腦操作系統(tǒng)內(nèi)核。它是一個(gè)用C語言寫成,符合POSIX標(biāo)準(zhǔn)的類Unix操作系統(tǒng)。Linux最早是由芬蘭黑客 Linus Torvalds為嘗試在英特爾x86架構(gòu)上提供自由免費(fèi)的類Unix操作系統(tǒng)而開發(fā)的。該計(jì)劃開始于1991年,在計(jì)劃的早期有一些Minix 黑客提供了協(xié)助,而今天全球無數(shù)程序員正在為該計(jì)劃無償提供幫助。 技術(shù)上說Linux是一個(gè)內(nèi)核。“內(nèi)核”指的是一個(gè)提供硬件抽象層、磁盤及文件系統(tǒng)控制、多任務(wù)等功能的系統(tǒng)軟件。一個(gè)內(nèi)核不是
18、一套完整的操作系統(tǒng)。一套基于Linux內(nèi)核的完整操作系統(tǒng)叫作Linux操作系統(tǒng),或是GNU/Linux。圖3.1 Linux系統(tǒng)架構(gòu)由上圖可知Linux系統(tǒng)構(gòu)架是由用戶空間和內(nèi)核空間兩部分組成,之所以分為兩部分主要是為了實(shí)現(xiàn)系統(tǒng)穩(wěn)定性。內(nèi)核空間和用戶空間是程序執(zhí)行的兩種不同狀態(tài),通過系統(tǒng)調(diào)用和硬件中斷能夠?qū)崿F(xiàn)從用戶空間到內(nèi)核空間的轉(zhuǎn)移。Linux內(nèi)核的主要模塊(或組件)分以下幾個(gè)部分:存儲(chǔ)管理、CPU和進(jìn)程管理、虛擬文件系統(tǒng)、設(shè)備管理和驅(qū)動(dòng)、網(wǎng)絡(luò)通信,以及系統(tǒng)的初始化(引導(dǎo))、系統(tǒng)調(diào)用等。具體如圖3.2所示:圖3.2 Linux內(nèi)核架構(gòu)l 系統(tǒng)調(diào)用接口:SCI層為用戶提供了一套標(biāo)準(zhǔn)的系統(tǒng)調(diào)用函
19、數(shù)來訪問Linux內(nèi)核,搭起了用戶空間到內(nèi)核空間的橋梁。 l 進(jìn)程管理:主要是實(shí)現(xiàn)了進(jìn)程的創(chuàng)建,進(jìn)程的停止,并控制進(jìn)程間的相互通信,進(jìn)程管理還包括進(jìn)程如何共享CPU,即進(jìn)程的調(diào)度。 l l 內(nèi)存管理:主要是實(shí)現(xiàn)多個(gè)進(jìn)程安全有序地共享內(nèi)存。 l l 網(wǎng)絡(luò)協(xié)議棧:主要為Linux系統(tǒng)提供了豐富的網(wǎng)絡(luò)協(xié)議。 l 虛擬文件系統(tǒng):VFS隱藏了各種文件系統(tǒng)的細(xì)節(jié),為文件操作提供統(tǒng)一的接口,如圖3.3所示。 l 設(shè)備驅(qū)動(dòng):Linux內(nèi)核中很多代碼都在設(shè)備驅(qū)動(dòng)中,它們控制特定的硬件設(shè)備。圖3.3 虛擬文件系統(tǒng)提供同一文件接口3.2 Linu
20、x-2.6.29內(nèi)核移植到Esayarm-i.max283A(1) 首先到下載一套沒有經(jīng)過移植的linux-2.6.29源代碼,并解壓到相關(guān)目錄下,進(jìn)入目錄linux-2.6.29; (2) 對內(nèi)核根目錄下的Makefile文件進(jìn)行相應(yīng)修改,修改CPU類型為arm,編譯工具改為arm-linux-,ARCH ?= arm,CROSS_COMPILE ?=arm-linux-; (3) 修改時(shí)鐘頻率: #vi arch/arm/mach-s3c2440/mach-smd
21、k2440.cs3c24xx_init_clocks(12000000); (4) 修改對Nand的分區(qū)信息。要讓內(nèi)核知道Nand Flash的分區(qū)信息,設(shè)置成跟bootloader一致; (5) 添加DM9000網(wǎng)卡驅(qū)動(dòng)和其他設(shè)備驅(qū)動(dòng); (6) 用MCIMX28x的默認(rèn)配置文件來進(jìn)行基礎(chǔ)配置然后使用make menuconfig來詳細(xì)配置; (7) 編譯內(nèi)核。4 電子相框的功能模塊以及程序框架 程序由輸入和界面顯示兩大程序塊構(gòu)成,輸入進(jìn)程在程序運(yùn)行時(shí)讀取觸摸屏的數(shù)據(jù),主控線程將得到的事件通過s
22、ocket發(fā)出處理器進(jìn)行處理。顯示進(jìn)程主要包括 :放大線程、縮小線程、上一幅圖片線程、下一幅圖片線程、當(dāng)前圖片線程、主控線程。4.1輸入程序框架解析輸入的功能大體可分為模式輸入和圖片操作輸入,然后輸入進(jìn)程得到觸摸屏數(shù)據(jù),用socket讀取內(nèi)存的DMA進(jìn)行通訊。模式輸入程序是要實(shí)現(xiàn)電子相框的智能化,以及能對電子相框系統(tǒng)中圖片進(jìn)行管理,這是需要對系統(tǒng)中的頭文件以及系統(tǒng)模式的選擇進(jìn)行操作,簡單來說,就是要把用戶輸入信息告訴系統(tǒng),模式輸入模塊程序定義了這個(gè)功能。模式輸入模塊程序之間的調(diào)用關(guān)系如圖4.1所示。 圖4.1輸入模式程序框架圖4.2顯示界面的功能總框架 本文未使用QT圖形用戶界面應(yīng)用程序開發(fā)框
23、架,而是直接使用C語言編寫出界面程序。界面功能總框架如圖4.2所示。 圖4.2 功能總框架界面功能說明:(1) 主界面:在程序的一開始LCD顯示界面上,有三種模式給用戶選擇,分別是瀏覽模式,連播模式,設(shè)置模式。根據(jù)操作者點(diǎn)擊的模式圖標(biāo)將會(huì)進(jìn)入對應(yīng)的模式。(2) 文件瀏覽模式界面:若點(diǎn)擊瀏覽模式,則進(jìn)入文件瀏覽界面,可以看到開發(fā)板搭載的根文件系統(tǒng)搭載全部目錄,以及系統(tǒng)中的圖片,在文件瀏覽模式中,可以選擇的操作方式有:向上,選擇,上一頁,下一頁。(3) 圖片瀏覽模式界面:點(diǎn)擊圖片就可以進(jìn)入圖片瀏覽模式,在該模式中可以選擇的操作有:返回,放大,縮小,上一頁,下一頁,連播模式。(4) 設(shè)置模式界面,點(diǎn)
24、擊設(shè)置圖標(biāo),就可以進(jìn)入設(shè)置模式,設(shè)置模式主要的功能是選擇某個(gè)目錄,以及該目錄中所有支持的格式的圖片。(5) 設(shè)置間隔時(shí)間:進(jìn)入模式后,可以通過點(diǎn)擊上下箭頭進(jìn)行設(shè)置連播圖片顯示的時(shí)間間隔,即每秒顯示下一張圖片。4.3電子相框的主流程圖 當(dāng)程序啟動(dòng)后,輸入進(jìn)程會(huì)調(diào)用觸摸屏驅(qū)動(dòng)tslib來操作和讀取觸摸屏,輸入進(jìn)程會(huì)將數(shù)據(jù)送至顯示進(jìn)程進(jìn)行顯示,顯示分為圖片顯示和文字顯示,圖片顯示調(diào)用libjpeg庫,而文字顯示則會(huì)調(diào)用freetype庫,它們調(diào)用的則由render.c渲染程序?qū)崿F(xiàn)。具體的實(shí)現(xiàn)的主流程如圖4.3所示: 圖4.3電子相框主流程主流程解析:(1) 初始化調(diào)試通道:本設(shè)計(jì)可以通過RS232標(biāo)
25、準(zhǔn)串口連接到Windows系統(tǒng)下的超級終端TERA TERM PRO打印初始化信息。(2) 分配5塊物理內(nèi)存:為了更好的用戶體驗(yàn),就應(yīng)該加快操作的反應(yīng)速度,所以本設(shè)計(jì)事先在內(nèi)存中準(zhǔn)備好了下一步要執(zhí)行的數(shù)據(jù),這5塊內(nèi)存分別存儲(chǔ)的數(shù)據(jù)為:放大圖片、縮小圖片、下一幅圖片、上一幅圖片、當(dāng)前圖片。這5塊內(nèi)存通過DMA與LCD的顯存進(jìn)行快速傳輸數(shù)據(jù)。所以分配這5塊內(nèi)存是本設(shè)計(jì)的有點(diǎn)所在。(3) 輸入設(shè)備:本課程設(shè)計(jì)的輸入設(shè)備為電阻觸摸屏,輸入進(jìn)程通過調(diào)用tslib驅(qū)動(dòng)來讀取觸摸屏數(shù)據(jù)。(4) 文字字符庫:界面文字的顯示通過render.c渲染程序調(diào)用freetype庫來實(shí)現(xiàn),freetype庫是一個(gè)完全免
26、費(fèi)開源可移植的字體引擎。(5) 圖片渲染模塊:界面采用的顯示格式是BMP,本設(shè)計(jì)瀏覽的圖片則只支持JPEG格式,JPEG是一種壓縮圖片的格式,顯示進(jìn)程通過調(diào)用libjpeg來實(shí)現(xiàn)圖片的顯示。(6) 主界面:在minicom上運(yùn)行本設(shè)計(jì)的最終的可執(zhí)行程序,運(yùn)行后會(huì)出現(xiàn)主界面,主界面提供三種模式,分別是:瀏覽模式、連播模式、設(shè)置模式。根據(jù)用戶的操作,會(huì)分別進(jìn)入對應(yīng)的模式。(7) 顯示設(shè)備:本課程設(shè)計(jì)是周立功開發(fā)板自帶的4.3寸LCD顯示屏。4.4程序模塊介紹 本設(shè)計(jì)采用模塊化的思想,將程序分割成不同的功能模塊,便于程序的編寫,這也是現(xiàn)在最普遍的變成思想,稱為面向?qū)ο蟮木幊趟枷搿1驹O(shè)計(jì)大體分為的程序
27、塊為:頁面規(guī)劃模塊、調(diào)試模塊、圖片渲染模塊、字符解碼模塊、輸入模式模塊、顯示模塊。4.4.1頁面規(guī)劃模塊該模塊是由page_manager.c分別調(diào)用各子程序模塊,程序運(yùn)行后,由page_manager.c調(diào)用main_page.c進(jìn)行主界面的顯示,主界面分別有瀏覽模式、連播模式、設(shè)置模式這三種模式,操作者點(diǎn)擊不同的模式,會(huì)調(diào)用這個(gè)目錄下不同的子程序,調(diào)用的關(guān)系如圖4.4.1所示。 圖4.4.1 頁面規(guī)劃模塊程序4.4.2調(diào)試模塊在執(zhí)行程序時(shí),需要用到超級終端TERA TERM PRO進(jìn)行操作目標(biāo)板,在對程序進(jìn)行調(diào)試,該minicom超級終端會(huì)輸出預(yù)先設(shè)置好的字符。改目錄下程序模塊之間的調(diào)用關(guān)
28、系如圖4.4.2所示。 圖4.4.2 調(diào)試模塊程序4.4.3圖片渲染解析模塊 圖片渲染模塊的功能是對圖片格式的解析和對圖片大小的草做,圖片格式分為bmp和JPEG,bmp是頁面的格式,jpeg則為瀏覽的圖片支持的格式,這兩種格式的選擇則由picfrm_manager.c完成,圖片的大小則由operation.c來完成。具體的圖片渲染解析模塊則如圖4.4.3所示: 圖4.4.3圖片渲染解析模塊程序4.4.4字符解碼模塊 字符編碼的規(guī)則是:英文字符用ascaii碼表示,中文簡體用gbk表示,中文繁體用big5表示,全世界的字符復(fù)雜多樣,為了統(tǒng)一又出現(xiàn)了Unicode碼,但由于Unicode用3個(gè)字
29、節(jié)表示每一個(gè)字符,這樣造成了資源的浪費(fèi),比如英文字符用一個(gè)字符即可以表示,所以又出現(xiàn)了UTF-8、UTF-16LE、UTF-16BE等表示方法既克服了資源浪費(fèi)的問題又具有唯一性的保障。本程序的之間的調(diào)用關(guān)系如圖4.4.4所示: 圖4.4.4 字符解碼模塊4.4.5顯示模塊 顯示線程從內(nèi)存中讀取送至LCD的顯存中,輸入線程將數(shù)據(jù)實(shí)時(shí)更新至內(nèi)存中。其顯示模塊目錄中的各個(gè)程序調(diào)用關(guān)系如圖4.4.5所示: 5電子相框的相關(guān)驅(qū)動(dòng)移植 本設(shè)計(jì)用到的主要驅(qū)動(dòng)有:LCD顯示驅(qū)動(dòng)以及觸摸屏驅(qū)動(dòng),下面詳細(xì)的解釋相關(guān)如何進(jìn)行配置。5.1 關(guān)于LCD驅(qū)動(dòng)的配置(1) 關(guān)于LCD的配置文件:在該開發(fā)板提供的LCD配置文
30、件里的添加如下內(nèi)容:(A) 配置好LCD控制寄存器 (B) 配置LCD類型為TFT(C) 設(shè)置LCD的寬度和長度(D) 配置好LCD的分辨率以及bpp參數(shù)(2) 初始化函數(shù)中添加LCD初始化功能: Static void_init smdk2410_init(void) MCIMX28x_fb_set_platdata(&smdk2410_fb_info); (3)配置內(nèi)核菜單,是的內(nèi)核支持frame buffer在make menuconfig中選擇:<*>support for frame buffer devices (4)編譯5.2 關(guān)于觸摸屏驅(qū)動(dòng)的配置對于觸摸屏驅(qū)動(dòng)的設(shè)計(jì),本文采用的是基于Linux本身自帶的輸入子系統(tǒng)方式設(shè)計(jì)的,由于設(shè)計(jì)的代碼比較繁雜,所以本文列出其主要的設(shè)計(jì)方法,主要的設(shè)計(jì)方法如下:(1) 設(shè)置輸入結(jié)果input_dev: (A)通過設(shè)置struct input_dev的evdev數(shù)組表示能產(chǎn)生key和ABS類事件。(B)設(shè)置產(chǎn)生key和ABS類事件里面的觸摸按鍵事件,X/Y絕對位移,絕對位移壓力事件。(2) 硬件操作:(A) ioremap寄存器(B) 設(shè)置AD分頻系數(shù)和ADCDLY(C) 注
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 康復(fù)醫(yī)療器械市場創(chuàng)新產(chǎn)品應(yīng)用前景預(yù)測:2025年需求分析報(bào)告
- 安全生產(chǎn)禁令試題及答案
- 2025年成人教育終身學(xué)習(xí)平臺(tái)運(yùn)營效率與市場占有率研究報(bào)告
- 個(gè)人養(yǎng)老金制度2025年對能源行業(yè)投資的影響與機(jī)遇分析報(bào)告
- 智慧交通系統(tǒng)2025年交通流量預(yù)測技術(shù)應(yīng)用與智能交通設(shè)施報(bào)告001
- 胖東來管理培訓(xùn)課件
- 員工崗前消防培訓(xùn)課件
- 員工發(fā)展與職業(yè)規(guī)劃課件
- 普工上崗培訓(xùn)
- 2025中國健康產(chǎn)業(yè)發(fā)展趨勢報(bào)告
- AHU維修與保養(yǎng)記錄
- CMBS盡調(diào)清單目錄
- 機(jī)械原理課程設(shè)計(jì)-自動(dòng)打印機(jī)設(shè)計(jì)說明書
- 建設(shè)工程消防設(shè)計(jì)審查申報(bào)表
- 2020新版?zhèn)€人征信報(bào)告模板
- FBI教你破解身體語言(完整版)(54頁)ppt課件
- 內(nèi)科護(hù)理學(xué)消化系統(tǒng)試習(xí)題及答案
- 華北電力大學(xué)-任建文-電力系統(tǒng)PPT(第1章)
- 《文殊真實(shí)名經(jīng)》
- 對敏視達(dá)雷達(dá)回波進(jìn)行基于PHIDP的dBZ和ZDR訂正_2014年4月5日~18日
- 蘇教版五年級數(shù)學(xué)下冊-復(fù)習(xí)知識點(diǎn)整理資料(共9頁)
評論
0/150
提交評論