




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上 武漢工業(yè)學(xué)院 數(shù)學(xué)與計(jì)算機(jī)學(xué)院嵌入式系統(tǒng)開發(fā)實(shí)驗(yàn)報(bào)告 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 班 級(jí): 學(xué) 號(hào): 姓 名: 趙文浩 指導(dǎo)老師: 易 奎 2011年 12月2日課題名:動(dòng)態(tài)數(shù)碼相框一. 實(shí)驗(yàn)?zāi)康耐ㄟ^本次實(shí)驗(yàn),系統(tǒng)地復(fù)習(xí)在課堂上學(xué)習(xí)的理論知識(shí),涉及到的主要知識(shí)點(diǎn)有Linux環(huán)境下Smb、NFS等服務(wù)器的配置與使用;程序的編譯、運(yùn)行操作以及交叉編譯和運(yùn)行的過程;Makefile文件以及shell腳本的編寫;JPEG庫的使用以及圖像顯示的基本原理(幀緩存FrameBuffer)。二. 實(shí)驗(yàn)環(huán)境軟件環(huán)境:上位機(jī)為Windows XP系統(tǒng),目標(biāo)機(jī)為L(zhǎng)inux 2.4的系統(tǒng)。
2、硬件環(huán)境:上位機(jī)為基于X86體系的傳統(tǒng)PC,目標(biāo)機(jī)為創(chuàng)維特的ARM9開發(fā)板。開發(fā)工具:vi編輯器,gcc本地編譯器以及arm-linux-gcc3.4.1交叉編譯工具,smb、nfs等服務(wù)器工具。三. 實(shí)驗(yàn)原理在本實(shí)驗(yàn)中要顯示jpeg格式的圖像,需要用到libjpeg,libjpeg是一個(gè)被廣泛使用的JPEG壓縮/解壓縮函數(shù)庫,對(duì)于libjpeg而言,圖像數(shù)據(jù)是一個(gè)二維的像素矩陣。對(duì)于彩色圖像,每個(gè)像素通常用三個(gè)分量表示,即R(Red)、G(Green)、B(Blue)三個(gè)分量,每個(gè)分量用一個(gè)字節(jié)表示,因此每個(gè)分量的取值范圍從0到255;對(duì)于灰度圖像,每個(gè)像素通常用一個(gè)分量表示,一個(gè)分量同樣由
3、一個(gè)字節(jié)表示,取值范圍從0到255。在libjpeg中,圖像數(shù)據(jù)是以掃描線的形式存放的。每一條掃描線由一行像素點(diǎn)構(gòu)成,像素點(diǎn)沿著掃描線從左到右依次排列。對(duì)于彩色圖像,每個(gè)分量由三個(gè)字節(jié)組成,因此這三個(gè)字節(jié)以R、G、B的順序構(gòu)成掃描線上的一個(gè)像素點(diǎn)。另外由于我們實(shí)驗(yàn)環(huán)境所用的Framebuffer設(shè)備的顏色深度為16位,顏色格式為5-6-5格式即R(紅色)在16bit中占據(jù)高5位,G(綠色)在16bit中占據(jù)中間6位,B(藍(lán)色)在16bit中占據(jù)低5位;而libjpeg解壓出來的圖像數(shù)據(jù)為24位RGB格式,因此必須進(jìn)行轉(zhuǎn)換。對(duì)于24位的RGB,每個(gè)字節(jié)表示一個(gè)顏色分量,因此轉(zhuǎn)換的方式為:對(duì)于R字
4、節(jié),右移3位,對(duì)于G字節(jié),右移2位,對(duì)于B字節(jié),右移3位,然后將右移得到的值拼接起來,就得到了16位的顏色值。有了上述通過Framebuffer畫點(diǎn)的基礎(chǔ),將通過libjpeg編碼獲得的每個(gè)像素點(diǎn)的16位值分別寫入內(nèi)存即可獲得一副完整的圖像。有了上述的基礎(chǔ),通過更改圖像文件的獲取方式、圖片的像素點(diǎn)向內(nèi)存寫的方式等可以獲得循環(huán)播放加了特效(如百葉窗)多幅圖片的效果。四. 實(shí)驗(yàn)步驟1、首先獲能取libjpeg庫的源文件,更改其配置文件后進(jìn)行交叉編譯,并且進(jìn)行安裝。具體步驟是首先進(jìn)入源文件內(nèi),輸入命令./configure -enable-shared,產(chǎn)生Makefile文件,然后修改Makefi
5、le文件的配置參數(shù)如下:prefix=/usr/local/arm/3.4.1/arm-linuxCC=arm-linux-gccAR=arm-linux-ar rcAR2=arm-linux-ranlib接著分別輸入以下命令#cp jconfig.doc jconfig.h#mkdir -p /usr/local/arm/3.4.1/arm-linux/man#mkdir -p /usr/local/arm/3.4.1/arm-linux/man1#make#make install-lib除了將JPEG安裝于toolchain之外,ARM 的執(zhí)行平臺(tái)也需要JPEGLIB,必須將執(zhí)行需用到的
6、庫文件(/usr/local/arm/3.4.1/arm-linux/lib/libjpeg.so*)復(fù)制到ARM的嵌入式系統(tǒng)。指令如下。2、開發(fā)環(huán)境的配置,即配置好Smb服務(wù)器、NFS服務(wù)器、tftp服務(wù)器。測(cè)試使用正常。3、編寫源代碼以及Makefile文件。4、編譯,如出現(xiàn)錯(cuò)誤及時(shí)查錯(cuò)并糾正,直至編譯通過,生成可執(zhí)行文件。5、這一步是將可執(zhí)行文件和圖片資源文件拷貝到目標(biāo)機(jī)上。方法是通過NFS服務(wù)器,先將工程文件掛載到/mnt/nfs下,然后將可執(zhí)行文件和圖片資源文件拷貝到目標(biāo)去的JFFS分區(qū)然后執(zhí)行。不能直接在nfs分區(qū)運(yùn)行時(shí)是因?yàn)槲业墓こ虒懥艘粋€(gè)shell腳本需要生成記錄圖片資源的文件
7、,在此款開發(fā)板的nfs分區(qū)沒有寫權(quán)限,因此需要拷貝到JFFS分區(qū)。然后運(yùn)行,驗(yàn)證效果!如果效果不理想則重新修改源代碼,從第3步開始循環(huán)直至滿足要求。五、程序分析本環(huán)節(jié)主要是將程序中幾個(gè)核心的功能實(shí)現(xiàn)加以分析解釋,力求簡(jiǎn)單明了。1、主程序中訪問幀緩存設(shè)備并為其分配存儲(chǔ)空間,為后續(xù)圖片的顯示打下基礎(chǔ)。int fd;struct fb_var_screeninfo fb_var;fd = open("/dev/fb0", O_RDWR);ioctl(fd, FBIOGET_VSCREENINFO, &fb_var);w = fb_var.xres;h = fb_var.y
8、res;fbmem = mmap(0, w*h*2, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);2、將工程目錄下存儲(chǔ)圖片的文件夾里的所有圖片文件名(包含程序訪問的路徑)存入一個(gè)臨時(shí)文本文件,便于后續(xù)的訪問,通過shell腳本實(shí)現(xiàn)。如下#!bin/shfor f in echo ./image/*doif $f != $0 thenecho $f >>image_listfidone3、建立圖片信息的雙向循環(huán)鏈表,首先需要建立一張圖片信息的結(jié)構(gòu)體如下struct imagechar imgname20;struct image *prev;st
9、ruct image *next;然后訪問shell腳本建立的臨時(shí)存放圖片文件名(包含訪問路徑)的文本文件,建立雙向循環(huán)鏈表,如下:fd = fopen("image_list","r");/訪問臨時(shí)文本文件if(fd=NULL)exit(EXIT_FAILURE);p1 = (struct image *)malloc(sizeof(struct image);size = getline(&line,&len,fd);/獲取文本的第一行信息即第一張圖片的完整路徑strncpy(p1->imgname,line,strlen(li
10、ne);head = p1;while(size = getline(&line,&len,fd) != -1)p2 = p1;p1 = (struct image *)malloc(sizeof(struct image);strncpy(p1->imgname,line,strlen(line);p2->next = p1;p1->prev = p2;/通過循環(huán)不斷創(chuàng)建節(jié)點(diǎn)并連接起來成為一個(gè)雙向循環(huán)鏈表p1->next = head;head->prev = p1;p1 = NULL;p2 = NULL;/無用的指針置空避免錯(cuò)誤system(&
11、quot;rm -rf image_list");/調(diào)用系統(tǒng)命令刪除臨時(shí)文件4、圖片顯示實(shí)現(xiàn),由于一張jpeg圖片通過jpeg編碼后的顏色表示是24位的,故首先需要將24位的顏色深度改為16位的顏色深度,然后將圖片的分辨率改成目標(biāo)機(jī)屏幕的分辨率,最后通過顯示圖片的每一個(gè)像素點(diǎn)來顯示整幅圖片。本程序添加了一個(gè)百葉窗效果,實(shí)現(xiàn)原理是圖片的所有像素點(diǎn)按傳統(tǒng)的順序顯示,而是將一個(gè)圖片分為上下兩大塊,這兩塊獨(dú)立的從上到下顯示其所有像素點(diǎn),就可以達(dá)到一個(gè)百葉窗的效果。void display_scale_jpeg(char *filename)unsigned char *buf24;short imgw,imgh;int i,j;short color;buf24=decode_jpeg(filename,&imgw,&imgh);buf24to16(buf24,imgw,imgh);/顏色深度轉(zhuǎn)換(24位轉(zhuǎn)換成16位)scale(unsigned short *)buf24,imgw,imgh);/換算屏幕的分辨率for(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 展會(huì)制作合同范本
- 語音識(shí)別工程師中介合同(2篇)
- 二零二五年度房東轉(zhuǎn)租房屋租賃合同續(xù)簽與租賃條件變更合同
- 施工成本控制安全生產(chǎn)培訓(xùn)
- 二零二五年度大數(shù)據(jù)分析與挖掘服務(wù)委托協(xié)議書
- 2025年度高利貸借款合同金融創(chuàng)新引領(lǐng)市場(chǎng)
- 二零二五年度辦公空間優(yōu)化與辦公用品采購合同
- 二零二五年度班組分包協(xié)議書-XX產(chǎn)業(yè)園區(qū)綠化維護(hù)服務(wù)合同
- 2025年度銀行理財(cái)產(chǎn)品贈(zèng)與及代持服務(wù)協(xié)議
- 電信企業(yè)四季度安全生產(chǎn)培訓(xùn)
- 公安基礎(chǔ)知識(shí)900題庫
- 魯迅吶喊讀書分享名著導(dǎo)讀
- 第1.1課-七律二首-送瘟神-【中職專用】高二語文同步備課課件(高教版2023職業(yè)模塊)
- (滬教牛津版)深圳市小學(xué)1-6年級(jí)英語單詞默寫表(英文+中文+默寫)
- 初中語文跨學(xué)科資源融合教學(xué)研究
- 慢病管理課件-高血壓、糖尿病等慢性病的護(hù)理和管理
- 四川師范大學(xué)本科學(xué)生課程免修申請(qǐng)表2
- 英語教學(xué)方法與策略
- 春秋季六年級(jí)奧數(shù)培訓(xùn)教材全0
- 【實(shí)用資料】食物中毒現(xiàn)場(chǎng)衛(wèi)生學(xué)采樣PPT
- 車隊(duì)安全教育培訓(xùn)內(nèi)容
評(píng)論
0/150
提交評(píng)論