




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
基于ARM嵌入式系統(tǒng)的LCD驅(qū)動程序開發(fā)班級:光信息科學(xué)與技術(shù)學(xué)生:金旭學(xué)號:20100704018指導(dǎo)教師:陳楠論文的主要內(nèi)容研究背景及意義開發(fā)知識基礎(chǔ)LCD控制器TFT液晶顯示屏字符設(shè)備驅(qū)動結(jié)構(gòu)幀緩沖設(shè)備驅(qū)動結(jié)構(gòu)建立開發(fā)環(huán)境建立Linux操作系統(tǒng)開發(fā)環(huán)境移植Linux操作系統(tǒng)編輯LCD驅(qū)動程序LCD驅(qū)動的模塊加載與卸載注冊幀緩沖設(shè)備LCD驅(qū)動的fb_ops成員函數(shù)LCD驅(qū)動的編譯LCD驅(qū)動測試研究背景及意義在多媒體應(yīng)用的推動下,彩色LCD逐漸多地運用到了嵌入式系統(tǒng)中,液晶顯示模塊不僅滿足了嵌入式系統(tǒng)隨著日益的提高現(xiàn)在的科技要求它可以顯示字符、漢字和圖形化同時還需具有低功耗、低壓、重量輕、體積小和超薄等優(yōu)點。而且許多基于Linux下的圖形化界面軟件包的開發(fā)和移植程序中都涉及到了底層LCD驅(qū)動的開發(fā)問題。因此,研究和開發(fā)LCD驅(qū)動具有較高的實用價值和現(xiàn)實意義。開發(fā)知識基礎(chǔ)LCD控制器圖1-1LCD控制器內(nèi)部邏輯結(jié)構(gòu)開發(fā)知識基礎(chǔ)TFT液晶顯示屏圖1-2LCD控制器時序參數(shù)開發(fā)知識基礎(chǔ)Linux設(shè)備可分為字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)設(shè)備,設(shè)備驅(qū)動程序的設(shè)計則是根據(jù)設(shè)備的類型來設(shè)計的。在LCD驅(qū)動開發(fā)利用了幀緩(framebuffer)設(shè)備。幀緩沖設(shè)備是標(biāo)準(zhǔn)的字符設(shè)備。圖1-3字符設(shè)備驅(qū)動結(jié)構(gòu)開發(fā)知識基礎(chǔ)幀緩沖
幀緩沖是Linux是為了屏蔽圖像與硬件的底層差異,允許上層應(yīng)用程序直接對圖形緩沖區(qū)進(jìn)行讀寫操作為顯示設(shè)備提供的一個接口,使得顯示緩沖區(qū)具體抽象化,屏蔽了圖像與硬件的底層差異。
開發(fā)知識基礎(chǔ)幀緩沖驅(qū)動結(jié)構(gòu)
圖1-4幀緩沖設(shè)備驅(qū)動結(jié)構(gòu)建立開發(fā)環(huán)境建立Linux操作系統(tǒng)開發(fā)環(huán)境在虛擬機(jī)VMware上安裝Linux操作系統(tǒng)Redhat9.0建立交叉編譯環(huán)境(安裝交叉編譯器)配置網(wǎng)絡(luò),包括超級終端、NFS服務(wù)、TFTP移植Linux系統(tǒng)ViVi移植linux內(nèi)核移植構(gòu)建根文件系統(tǒng)編輯LCD驅(qū)動程序LCD驅(qū)動程序幀緩沖設(shè)備顯示緩沖區(qū)的申請與釋放幀緩沖設(shè)備驅(qū)動的模塊加載與卸載函數(shù)幀緩沖設(shè)備的參數(shù)設(shè)置幀緩沖設(shè)備驅(qū)動的fb_ops成員函數(shù)幀緩沖設(shè)備的用戶空間訪問編輯LCD驅(qū)動程序注冊幀緩沖設(shè)備
幀緩沖設(shè)備被看做是平臺設(shè)備,所以這里注冊平臺設(shè)備。在驅(qū)動層中第一個執(zhí)行的函數(shù)是s3c2410fb_init,而該函數(shù)中只執(zhí)行了一條語句,其功能即是注冊平臺設(shè)備的底層函數(shù)。在注冊的過程中回調(diào)probe()函數(shù)。int__devinits3c2410fb_init(void){returnplatform_driver_register(&s3c2410fb_driver);//注冊平臺設(shè)備}staticvoid__exits3c2410fb_cleanup(void){platform_driver_unregister(s3c2410fb_driver);//注銷平臺設(shè)備}module_init(s3c2410fb_init);module_exit(s3c2410fb_cleanup);編輯LCD驅(qū)動程序LCD驅(qū)動的模塊加載與卸載staticstructplatform_drivers3c2410fb_driver={ .probe=s3c2410fb_probe,
//平臺驅(qū)動探測函數(shù).remove=s3c2410fb_remvoe,
//平臺驅(qū)動移除函數(shù).suspend=s3c2410fb_suspend,{.name="s3c2410-lcd",
//驅(qū)動名.owner=THIS_MODULE,}};編輯LCD驅(qū)動程序平臺驅(qū)動探測函數(shù)staticint__inits3c2410fb_probe(...)/*平臺驅(qū)動探測函數(shù)*/{structfb_info*info;/*分配fb_info結(jié)構(gòu)體*/info=framebuffer_alloc(...);/*給FBI分配空間*/info->screen_base=framebuffer_virtual_memory;/*申請幀緩沖設(shè)備的顯示緩沖區(qū)*/info->var=s3c2410fb_var;/*可變參數(shù)*/info->fix=s3c2410fb_fix;/*固定參數(shù)*/alloc_dis_buffer(...);/*分配顯示緩沖區(qū)*/lcd_init(...);/*初始化LCD控制器*/s3c2410fb_check_var(&info->var,info);/*檢查可變參數(shù)*/if(register_framebuffer(info)<0)/*注冊fb_info*/return-EINVAL;return0;};編輯LCD驅(qū)動程序LCD驅(qū)動的fb_ops成員函數(shù)fb_ops結(jié)構(gòu)體是對底層硬件操作的函數(shù)指針,該結(jié)構(gòu)體中定了對硬件的操作有:staticstructfb_opss3c2410fb_ops={.owner=THIS_MODULE,.fb_check_va=s3c2410fb_check_var,/*檢查LCD屏的相關(guān)參數(shù)*/.fb_set_par=s3c2410fb_set_par,/*設(shè)置fb_info中的參數(shù),主要是LCD的顯示模式*/.fb_blank=s3c2410fb_blank,/*顯示空白(即:LCD開關(guān)控制)*/.fb_setcolreg=s3c2410fb_setcolreg,/*設(shè)置顏色表*/};LCD驅(qū)動的編譯采用驅(qū)動程序直接編譯入內(nèi)核的方式編譯。這樣,驅(qū)動程序在內(nèi)核啟動時就已經(jīng)在內(nèi)存中,運行時不需要再自己加載驅(qū)動,可以保留專用的存儲器空間。圖1-4驅(qū)動程序編譯入內(nèi)核框圖LCD驅(qū)動測試運行測試程序,可以看到在LCD液晶屏上可以看到彩色條紋,如下圖所示:圖1-5
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度股東借款轉(zhuǎn)增注冊資本及利潤分配調(diào)整合同
- 2025年度電力線路運維風(fēng)險管理與合同
- 2025年度電子產(chǎn)品退貨換貨服務(wù)合同范本
- 二零二五年度航空航天項目三方合同違約責(zé)任說明
- 公共安全應(yīng)急救援預(yù)案制定指南
- 數(shù)據(jù)中心運維服務(wù)合同及設(shè)備維護(hù)管理條款
- 中學(xué)生數(shù)學(xué)史故事征文
- 產(chǎn)品采購及供應(yīng)保障協(xié)議合同
- 企業(yè)信息化建設(shè)實施細(xì)則
- 企業(yè)資源共享合作協(xié)議書
- 2024年證券投資基金基礎(chǔ)知識真題答案及解析
- 泰州職業(yè)技術(shù)學(xué)院單招《英語》考試參考題庫(含答案)
- 《食品衛(wèi)生與安全》課程標(biāo)準(zhǔn)
- 第7課《誰是最可愛的人》公開課一等獎創(chuàng)新教學(xué)設(shè)計-2
- 骨盆骨折小講課護(hù)理課件
- 2016-2023年江蘇衛(wèi)生健康職業(yè)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年考點試題甄選合集含答案解析
- 渣土車司機(jī)安全培訓(xùn)
- 燃?xì)夤鞠琅嘤?xùn)課件
- 成事的時間管理
- 江西省2023年高等職業(yè)院校單獨招生考試-江西電力職業(yè)技術(shù)學(xué)院-樣卷
- 汽油安全技術(shù)說明書(MSDS)
評論
0/150
提交評論