版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1 引 言通常我們常用的lcd顯示模塊,有兩種,一是帶有驅(qū)動電路的lcd顯示模塊,一是不帶驅(qū)動電路的lcd顯示屏。大部分arm處理器中都集成了lcd的控制器,所以,針對arm芯片,一般不使用帶驅(qū)動電路的lcd顯示模塊。s3c44b0x微處理器是三星公司專為手持設(shè)備和一般應(yīng)用提供的高性價比和高性能的微控制器解決方案。它使用arm7tdmi核,工作在66mhz,集成了lcd控制器等外圍器件。它的lcd控制器具有通用性,能與大多數(shù)lcd顯示模塊接口。接口設(shè)計、驅(qū)動程序開發(fā)都很簡單,廣泛應(yīng)用于智能儀表、pda等的顯示部分。本實驗實現(xiàn)的是lcd模擬三角形的運動,通過在main()函數(shù)中修改并加入相應(yīng)的實
2、現(xiàn)代碼,繪圖api函數(shù)在glib.c文件中。arm7tdmi系統(tǒng)擴(kuò)充包括thumb協(xié)處理器、片上ice中斷調(diào)試支持和32位乘法器。s3c44b0x通過在arm7tdmi內(nèi)容基礎(chǔ)上擴(kuò)展一系列完整的通用外圍器件。其特點如下: 采用arm7tdmi內(nèi)核,i/o電壓3.3v,內(nèi)核電壓2.5v; 內(nèi)置鎖相環(huán)(pll),系統(tǒng)工作主頻66mhz; 4種工作模式(正常、慢速、閑置和停止),可以實現(xiàn)電源管理以降低系統(tǒng)功耗; 8kb的系統(tǒng)高速緩存(cache),極大地提高了系統(tǒng)的運行速度; 支持8個memory bank,最大外部存儲空間達(dá)256mb,并支持sdram; 內(nèi)置彩色lcd控制器; 2路異步串口(ua
3、rt); 71個通用i/o口,包括8個外部中斷源; 8路10位a/d轉(zhuǎn)換器; 實時時鐘(rtc)和看門狗電路(watchdog);1.1 課程設(shè)計目的1. 學(xué)習(xí)lcd與arm的lcd的控制器的接口原理;2. 掌握內(nèi)置lcd控制器驅(qū)動編寫方法;3. 學(xué)習(xí)調(diào)用簡單的gui繪圖。1.2 程序開發(fā)環(huán)境1. el-arm-820教學(xué)實驗箱,pentiumii以上的pc機(jī),仿真器電纜。2. pc操作系統(tǒng)win98或win2000或winxp,arm ads1.2集成開發(fā)環(huán)境,h-jtag調(diào)試代理軟件。2 ads集成開發(fā)環(huán)境介紹ads全稱為arm developer suite,是arm公司推出的新一代ar
4、m集成開發(fā)工具?,F(xiàn)在ads的最新版本是1.2,它取代了早期的ads1.1和ads1.0。在ads工具誕生之前,一直使用的是arm sdt工具,目前arm sdt工具已經(jīng)慢慢被淘汰。ads除了可以安裝在windows nt4、windows 2000、windows 98和windows 95操作系統(tǒng)下,還支持windows xp和windows me操作系統(tǒng)。2.1 ads軟件組成ads由命令行開發(fā)工具、gui(graphics user interface,圖形用戶界面)開發(fā)環(huán)境(code warrior和axd)、實用程序和支持軟件組成。有了這些部件,用戶就可以為arm系列的risc處理器
5、編寫和調(diào)試自己的開發(fā)應(yīng)用程序了。下面將分別介紹這4個組成部分。1命令行開發(fā)工具命令行開發(fā)工具在實際應(yīng)用中相對比較廣泛,用它最大的好處就是可以將許多編譯命令寫在一個腳本文件中,然后只執(zhí)行該腳本文件就可以讓工具自動完成所有編譯的工作。2gui開發(fā)環(huán)境ads gui開發(fā)環(huán)境包含code warrior和axd兩種,其中code warrior是集成開發(fā)工具,而axd是調(diào)試工具。3實用程序ads除了提供上述工具外,它還提供以下的實用工具來配合前面介紹的命令行開發(fā)工具的 使用。(1)flash downloader是用于把二進(jìn)制映像文件下載到arm開發(fā)板上的flash存儲器的工具。(2)fromelf是
6、arm映像文件轉(zhuǎn)換工具。該命令將elf格式的文件作為輸入文件,將該格式轉(zhuǎn)換為各種輸出格式的文件,包括plain binary(bin格式映像文件)、motorola 32-bit s-record format(motorola 32位s格式映像文件)、intel hex 32 format(intel 32位格式映像文件)和verilog-like hex format(verilog 十六進(jìn)制文件)。fromelf命令也能夠為輸入映像文件產(chǎn)生文本信息,例如代碼和數(shù)據(jù)長度。(3)armar,arm庫函數(shù)生成器將一系列elf格式的目標(biāo)文件以庫函數(shù)的形式集合在一起,用戶可以把一個庫傳遞給一個連接
7、器以代替幾個elf文件。4支持的軟件ads為用戶提供armulator軟件,使用戶可以在軟件仿真的環(huán)境下或者在基于arm的硬件環(huán)境調(diào)試用戶應(yīng)用程序。armulator是一個arm指令集仿真器,集成在arm的調(diào)試器axd中,它提供對arm處理器的指令集的仿真,為arm和thumb提供精確的模擬。用戶可以在硬件尚未做好的情況下,開發(fā)程序代碼。2.2 ads調(diào)試器調(diào)試器本身是一個軟件,用戶通過這個軟件使用debug agent可以對包含有調(diào)試信息的,正在運行的可執(zhí)行代碼進(jìn)行比如變量的查看,斷點的控制等調(diào)試操作。ads中包含有3個調(diào)試器:axd(arm extended debugger):arm擴(kuò)展
8、調(diào)試器;armsd(arm symbolic debugger):arm符號調(diào)試器;與老版本兼容的windows或unix下的arm調(diào)試工具,adw/adu(application debugger windows/unix)。下面對在調(diào)試映像文件中所涉及到的一些術(shù)語做一個簡單的介紹。debug target在軟件開發(fā)的最初階段,可能還沒有具體的硬件設(shè)備。如果要測試所開發(fā)的軟件是否達(dá)到了預(yù)期的效果,這可以由軟件仿真來完成。即使調(diào)試器和要測試的軟件運行在同一臺pc上,也可以把目標(biāo)當(dāng)作一個獨立的硬件來看待。當(dāng)然,也可以搭建一個pcb板,這個板上可以包含一個或多個處理器,在這個板上可以運行和調(diào)試應(yīng)用
9、軟件。只有當(dāng)通過硬件或者是軟件仿真所得到的結(jié)果達(dá)到了預(yù)期的效果,才算是完成了應(yīng)用程序的編寫工作。調(diào)試器能夠發(fā)送以下指令:1. 裝載映像文件到目標(biāo)內(nèi)存;2. 啟動或停止程序的執(zhí)行;3. 顯示內(nèi)存,寄存器或變量的值;4. 允許用戶改變存儲的變量值。3 內(nèi)置lcd控制器介紹3.1 概述s3c44b0x內(nèi)置的lcd控制器的作用是將顯示緩存(在系統(tǒng)存儲器中)的lcd數(shù)據(jù)傳輸?shù)酵獠縧cd驅(qū)動器,并產(chǎn)生必須的lcd控制信號。它支持灰度lcd和彩色lcd。在灰度lcd上,使用基于時間抖動算法(time-basedditheringalgorithm)和frc(frameratecontrol)方法,可以支持單
10、色、4級灰度和16級灰度模式的灰度lcd。在彩色lcd上,可以支持256種色彩。不同尺寸的lcd具有不同數(shù)量的垂直和水平象素、數(shù)據(jù)接口、數(shù)據(jù)寬度、接口時間和刷新率。lcd控制器可以進(jìn)行編程控制相應(yīng)的寄存器值,以適應(yīng)不同的lcd顯示板。3.2 lcd控制器邏輯框圖 圖3.1為lcd控制器的邏輯框圖。從框圖可以看出lcd控制器是用來實現(xiàn)傳輸顯示數(shù)據(jù)及產(chǎn)生必要的控制信號,如vframe、vline、vclk和vm。除了控制信號,還有顯示數(shù)據(jù)的數(shù)據(jù)端口vd7:0。圖3.1 為lcd控制器的邏輯框圖lcd控制器包括regbank、lcddma、vidprcs和timegen。regbank有18個可編程
11、寄存器,用于配置lcd控制器。lcddma為專用dma,可以自動地將顯示數(shù)據(jù)從幀內(nèi)存?zhèn)魉偷絣cd驅(qū)動器中。通過專用dma,可以實現(xiàn)在不需要cpu介入的情況下顯示數(shù)據(jù)。vidprcs從lcddma接收數(shù)據(jù),將相應(yīng)格式的數(shù)據(jù)通過timegen(包含可編程邏輯),以支持常見的lcd驅(qū)動器所需要的不同接口時間和速率的要求。timegen部分產(chǎn)生vframe,vline,vclk和vm等信號。3.3 lcd控制器提供的外部接口信號vframe:lcd控制器和驅(qū)動器之間的幀同步信號。通知lcd屏新的一幀顯示,lcd控制器在一個完整幀顯示后發(fā)出vframe信號。vline:lcd控制器和驅(qū)動器間同步脈沖信號
12、。lcd驅(qū)動器通過它將水平移位寄存器的內(nèi)容顯示到lcd屏上。lcd控制器在一整行數(shù)據(jù)全部傳輸?shù)絣cd驅(qū)動器后發(fā)出vline信號。vclk:lcd控制器和驅(qū)動器之間的象素時鐘信號。vm:lcd驅(qū)動器所使用的交流信號。驅(qū)動器用vm打開或關(guān)閉象素的行和列電壓極性。vd3:0:lcd象素數(shù)據(jù)輸出端口。vd7:4:lcd象素數(shù)據(jù)輸出端口。4 lcd控制器的寄存器lcd控制器通過18個可編程寄存器來配置lcd顯示模塊的尺寸、顯示模式、接口數(shù)據(jù)寬度等。4 .1 lcd控制寄存器一(lcdcon1)lcdcon1所在地址:0x01f00000;屬性:r/w;復(fù)位值:0x00000000。lcdcon1中各個位
13、的意義見表4.1:表4.1 lcdcon1中各個位的意義4.2 lcd控制寄存器二(lcdcon2)lcdcon2的地址:0x01f00004;屬性:r/w;復(fù)位值:0x00000000。lcdcon2中各個位的意義見表4.2:表4.2 lcdcon2中各個位的意義4.3 lcd控制寄存器三(lcdcon3)lcdcon3的地址:0x01f00040;屬性:r/w;復(fù)位值:0x00。lcdcon3中各個位的意義見表4.3:表4.3 lcdcon3中各個位的意義4.4 幀緩沖區(qū)開始地址一(lcdsaddr1)lcdsaddr1的地址:0x01f00008;屬性:r/w;復(fù)位值:0x000000。
14、lcdsaddr1中各個位的意義見表4.4:表4.4 lcdsaddr1中各個位的意義4.5 幀緩沖區(qū)開始地址二(lcdsaddr2)lcdsaddr2的地址:0x01f0000c;屬性:r/w; 復(fù)位值:0x000000。lcdsaddr2中各個位的意義見表4.5:表4.5 lcdsaddr2中各個位的意義用戶通過改變lcdbaseu和lcdbasel的值來滾動屏幕,但在幀結(jié)束時,不能改變lcdbaseu和lcdbasel的值,因為預(yù)取下一幀的數(shù)據(jù)優(yōu)先于改變幀,如果這時改變幀,預(yù)取的數(shù)據(jù)將無效而且顯示不正確。為了檢查linecnt,應(yīng)當(dāng)屏蔽中斷,否則如果在讀linecnt后,任意中斷剛好執(zhí)行
15、,因為isr的執(zhí)行,linecnt的值可能無效。 緩沖區(qū)開始地址三(lcdsaddr3)lcdsaddr3的地址:0x01f00010;屬性:r/w;復(fù)位值:0x000000。lcdsaddr3中各個位的意義見表6:注:pagewidth和offsize必須在envid=0時變化。5 內(nèi)置lcd控制器的應(yīng)用lcd控制器能與大多數(shù)lcd顯示模塊接口,例如dmf50081,kcs057qv1aj等。kcs057qv1aj是由kyocera公司生產(chǎn),具有320 240個象素點、帶cfl背光的stn(超扭曲向列)256色lcd顯示模塊。它不帶lcd控制器,很容易與s3c44b0x內(nèi)置的lcd控制器接口
16、。本節(jié)將詳述它與lcd控制器的硬件接口連線以及它的驅(qū)動程序。lcd控制器與kcs057qv1aj接口設(shè)計kcs057qv1aj提供的外部接口信號線如下:frm:驅(qū)動器掃描的同步信號線;load:數(shù)據(jù)鎖存信號線;cp:數(shù)據(jù)移位時鐘信號線;disp:顯示控制信號線;d7:0:8根顯示數(shù)據(jù)輸入線。在kcs057qv1aj與lcd控制器之間接線時,kcs057qv1aj的frm、load、cp、d7:0分別和lcd控制器的vframe、vline、vclk、vd7:0相連。disp引腳與s3c44b0x的gpio的gpc15相連,通過gpc15來控制lcd顯示模塊的打開和關(guān)閉。具體接線如圖5.1。圖5
17、.1 lcd控制器與kcs057qv1aj接線圖kcs057qv1aj驅(qū)動程序開發(fā) 驅(qū)動程序包括初始化s3c44b0x端口d和端口c的函數(shù),初始化lcd控制器的函數(shù),打開和關(guān)閉lcd顯示模塊的函數(shù),在lcd顯示模塊上顯示條紋的函數(shù),所有的函數(shù)都有詳細(xì)的注釋。初始化端口d和端口c函數(shù)如下:void port_init(void)rpconc=0x5f55ffff;/gpc15為輸出端口,gpc4-gpc7分配給lcd數(shù)據(jù)線vd7-vd4;rpupc=0x0;/端口c所有的引腳上拉允許;rpdatc=0x3fff; /端口c所有的引腳初始化為高電平;rpcond=0xaaaa;/端口d所有的引腳分
18、配給lcd控制器;rpupd=0x0;/端口d所有的引腳上拉允許;rpdatd=0xff;/端口d所有的引腳初始化為高電平。初始化lcd控制器函數(shù)如下:void lcd_init()int i;u32 lcdbaseu,lcdbasel,lcdbank;lcddisplayopen(false);/關(guān)閉lcd;rlcdcon1=(0);/關(guān)閉視頻輸出;rlcdcon2=(239) (11910) (1522;/設(shè)置顯示緩沖區(qū)首地址在系統(tǒng)存儲器中的位置;lcdbaseu=0x0;/設(shè)置緩沖區(qū)的開始地址;lcdbasel=lcdbaseu+(160) 240;rlcdsaddr1=(0x327)
19、(lcdbank21) lcdbaseu; /設(shè)置顯示模塊為彩色模式等;rlcdsaddr2=(029) (021) lcdbasel;rlcdsaddr3=(320/2) (09);/不使用虛屏;rredlut=0xfca86420;/設(shè)置紅色查表寄存器,與特定的顯示要求有關(guān);rgreenlut=0xfca86420;/設(shè)置綠色查表寄存器,與特定的顯示要求有關(guān);rbluelut=0xfffffa50;/設(shè)置蘭查表寄存器,與特定的顯示要求有關(guān);rlcdcon1=lcdcon1_envid 01 02 03 (25)17 (0x38) (0x310) (clkval12);/使能視頻輸出,8位單
20、掃描方式,設(shè)置wdly,wlh,clkval;for(i=0;i80*240;i+)/顯示緩沖區(qū)清零。*(plcdbuffer16+i)=0x0;從圖2知,gpc15用來打開關(guān)閉lcd。打開和關(guān)閉lcd顯示模塊的函數(shù)如下:void lcddisplayopen(u8 isopen)if(isopen)rpdatc =0x8000;/打開lcdelserpdatc&=0x7fff;/關(guān)閉lcd在lcdbank寄存器中已經(jīng)定義了顯示緩沖區(qū)在系統(tǒng)存儲器的段首地址為0xc000000,要顯示字符、圖片只需將字符、圖片取模得到的數(shù)據(jù)送到該緩沖區(qū)就可以了。但是要注意,彩色lcd是8位數(shù)據(jù)表示一個象素。對緩
21、沖區(qū)首地址進(jìn)行如下定義:u32 plcdbuffer16=(u32*)0xc000000;下面舉一個在整個屏上顯示明暗相間的條紋的程序,顯示明暗條紋函數(shù)如下:void lcdstripe ()int i,lcddata;for(i=0;i(320*240)/4;i+) lcddata0=0x0ffff0000; *(plcdbuffer16+i)=lcddata;/向幀緩沖區(qū)送數(shù)據(jù),每次4個象素的數(shù)據(jù)。6 主要功能的設(shè)計與實現(xiàn)本實驗主要是實現(xiàn)基于lcd模擬三角形的運動,通過在main()函數(shù)中修改并加入相應(yīng)的實現(xiàn)代碼,繪圖api函數(shù)在glib.c文件中??梢栽趌cd顯示屏上看到一個三角形在屏幕
22、的進(jìn)行運動,具體的實現(xiàn)代碼如下:;* 文件名稱 : main.c;* 文件功能 : 所有應(yīng)用程序的頭文件均加在此文件中;* 補(bǔ)充說明 : #include .incconfig.hextern gui_font gui_font8x16;extern gui_font chinese_font12;extern gui_font chinese_font16;- 函數(shù)名稱 : main(void)- 函數(shù)說明 : 系統(tǒng)的主程序入口- 輸入?yún)?shù) : 無- 輸出參數(shù) : 無void main(void) target_init(); gui_init(); set_color(gui_green)
23、; fill_rect(0,0,319,239); delay(1000); set_color(gui_white); delay(1000); fill_rect(0,0,319,239); set_color(gui_black); delay(1000); fill_rect(0,0,319,239); delay(1000); set_color(gui_yellow); fill_rect(0,0,319,239); delay(1000); set_color(gui_blue); fill_rect(0,0,319,239); delay(1000); set_color(gu
24、i_red); draw_circle(100,100,50); delay(1000); draw_point (100, 200); /繪制點api delay(1000);draw_hline (100, 3, 319); /繪制水平線apidelay(1000);draw_vline (0, 150, 239); /繪制豎直線apidelay(1000);draw_line (0,0,319,239);delay(1000);draw_line (319,0,0,239);delay(1000); fill_circle (80, 180, 40); delay(1000);fill_
25、rect (280, 200, 300, 220); /填充區(qū)域api delay(1000); set_font (&gui_font8x16); /設(shè)定字體類型apiset_color(gui_white);set_bkcolor (gui_blue); /設(shè)定背景顏色apifill_rect(0,0,319,3);fill_rect(0,0,3,239);fill_rect(316,0,319,239);fill_rect(0,236,319,239); disp_string (this is a demo,130,70); set_font (&chinese_font12); di
26、sp_string (cn_start這是一個例程cn_end,130,90); set_font (&chinese_font16); disp_string (cn_start這是一個例程cn_end,130,110); while(1);結(jié)束語通過對嵌入式系統(tǒng)將近兩個星期的實踐學(xué)習(xí),我對嵌入式有了進(jìn)一步的了解。無論是從概念上還是內(nèi)涵上都達(dá)到了一個新的高度。通過學(xué)習(xí),我發(fā)現(xiàn)隨著信息技術(shù)的發(fā)展,數(shù)字化產(chǎn)品空前繁榮。嵌入式軟件已經(jīng)成為數(shù)字化產(chǎn)品設(shè)計創(chuàng)新和軟件增值的關(guān)鍵因素,是未來市場競爭力的重要體現(xiàn)。由于數(shù)字化產(chǎn)品具備硬件平臺多樣性和應(yīng)用個性化的特點,因此嵌入式軟件呈現(xiàn)出一種高度細(xì)分的市場格局,國外產(chǎn)品進(jìn)入也很難壟斷整個市場,這為我國的軟件
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《直接能源ATP》課件
- 幼兒園工作總結(jié)笑容滿園
- 探索學(xué)術(shù)之路
- 公司人員述職報告匯編9篇
- 幼兒園工作總結(jié)傳遞溫暖收獲微笑
- 2023-2024年項目部安全培訓(xùn)考試題含答案(培優(yōu)B卷)
- 2023年項目管理人員安全培訓(xùn)考試題附答案(研優(yōu)卷)
- 《電廠職業(yè)病防治》課件
- 激發(fā)學(xué)習(xí)動力教學(xué)策略報告
- 中醫(yī)理療師年度總結(jié)
- 內(nèi)蒙古呼和浩特市2023-2024學(xué)年七年級上學(xué)期期末語文試題
- (2024年)消防安全知識培訓(xùn)
- 《膽堿能受體作用藥》課件
- 浙江省杭州市余杭區(qū)2023-2024學(xué)年五年級上學(xué)期期末英語試卷
- 中醫(yī)調(diào)節(jié)內(nèi)分泌的方法
- 2020年山西省公務(wù)員錄用考試《行測》真題及答案
- JTG 3441-2024公路工程無機(jī)結(jié)合料穩(wěn)定材料試驗規(guī)程
- JJF(新) 106-2023 微波消解儀溫度、壓力參數(shù)校準(zhǔn)規(guī)范
- 《廚政管理說課》課件
- 安徽省合肥市包河區(qū)四十八中學(xué)2023-2024學(xué)年數(shù)學(xué)七年級第一學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測試題含解析
- 春節(jié)家族祭祀活動策劃方案
評論
0/150
提交評論