天堂国产午夜亚洲专区-少妇人妻综合久久蜜臀-国产成人户外露出视频在线-国产91传媒一区二区三区

基于嵌入式LINUX和EPD顯示的PDA底層驅(qū)動(dòng)設(shè)計(jì)

發(fā)布時(shí)間:2020-10-25 02:55
   隨著嵌入式Linux的的迅速發(fā)展以及PDA應(yīng)用逐漸廣),利用嵌入式Linux來(lái)搭建其操作系統(tǒng)已經(jīng)成為最具潛力的PDA技術(shù)發(fā)展方向。并且由于電子墨水顯示技術(shù)的不斷進(jìn)步,其終將取代現(xiàn)有的顯示設(shè)備。本畢業(yè)設(shè)計(jì)的目標(biāo)是設(shè)計(jì)基于嵌入式Linux和電子墨水顯示技術(shù)PDA的底層驅(qū)動(dòng)。并實(shí)現(xiàn)對(duì)用戶應(yīng)用程序的透明。 PDA產(chǎn)品比較重要的一點(diǎn)就是產(chǎn)品給人最直觀的印象,即顯示的特性和內(nèi)容,還有待機(jī)時(shí)間的長(zhǎng)短即耗電量的大小。現(xiàn)有的產(chǎn)品一般使用LCD作為顯示輸出,但是其顯示原理決定了它在感官上不是很舒服,另外其較大的耗電量也限制了產(chǎn)品的待機(jī)時(shí)間。而本系統(tǒng)采用一種新式的電子墨水屏幕EPD,其驅(qū)動(dòng)普通的LCD有較大不同。而其特殊的特性就決定了系統(tǒng)需要使用另一種方式驅(qū)動(dòng)它。 本文首先分析了嵌入式Linux下驅(qū)動(dòng)程序的開(kāi)發(fā)特點(diǎn),具體描述驅(qū)動(dòng)開(kāi)發(fā)中的一些關(guān)鍵技術(shù),并分析了相關(guān)的算法和實(shí)現(xiàn)原理;然后分析了EPD屏的特點(diǎn)并設(shè)計(jì)了其相應(yīng)的驅(qū)動(dòng)程序,利用了一種新式的雙幀緩沖區(qū)機(jī)制來(lái)實(shí)現(xiàn)對(duì)用戶層透明的設(shè)備驅(qū)動(dòng)。另外設(shè)計(jì)了一種分層的USB驅(qū)動(dòng)來(lái)實(shí)現(xiàn)設(shè)備與主機(jī)之間方便的數(shù)據(jù)同步。最后簡(jiǎn)要描述了嵌入式瀏覽器Firefox及其移植,編譯過(guò)程。整個(gè)系統(tǒng)經(jīng)過(guò)設(shè)計(jì)與
【學(xué)位單位】:上海交通大學(xué)
【學(xué)位級(jí)別】:碩士
【學(xué)位年份】:2007
【中圖分類】:TP302
【部分圖文】:

加載過(guò)程


面概括的兩個(gè)任務(wù):模塊的某些函數(shù)作為系統(tǒng)中斷。標(biāo)代碼(沒(méi)有連接為完整的可執(zhí)行文件)構(gòu)成,正在運(yùn)行的內(nèi)核,也可以由 rmmod 程序解除鏈一個(gè)硬件的驅(qū)動(dòng),Linux 可以采用把驅(qū)動(dòng)程兩種方法。由于使用模塊化方式加載驅(qū)動(dòng)可以試,所以在編寫(xiě)調(diào)試階段采用模塊化方式。不 的驅(qū)動(dòng)模塊文件。如果要使用這個(gè)驅(qū)動(dòng)程序這樣驅(qū)動(dòng)就會(huì)根據(jù)自己的類型(字符設(shè)備類型字符設(shè)備而 USB 驅(qū)動(dòng)是塊設(shè)備)向系統(tǒng)注冊(cè),,這個(gè)主設(shè)備號(hào)就是系統(tǒng)對(duì)它的唯一標(biāo)識(shí)。然用來(lái)創(chuàng)建來(lái)一個(gè)一般放置在/dev 目錄下的設(shè)件了,可以通過(guò) open、read、write 等命令對(duì)件操作和文件系統(tǒng)的接口,通過(guò)讀寫(xiě)設(shè)備文件如圖所示。應(yīng)用程序

內(nèi)存,分頁(yè)機(jī)制,虛擬地址,物理內(nèi)存


圖 3-1 Linux 虛擬地址到物理地址的映射Figure 3-1 Sketch map of Linux virtual address map to physical addressLinux 內(nèi)核管理物理內(nèi)存是通過(guò)分頁(yè)機(jī)制實(shí)現(xiàn)的,在 ARM 體系結(jié)構(gòu)中它將整內(nèi)存劃分成無(wú)數(shù) 4k 大小頁(yè),從而分配和回收內(nèi)存的基本單位便是內(nèi)存頁(yè)了。用分頁(yè)管理有助于靈活分配內(nèi)存地址,因?yàn)榉峙鋾r(shí)不必要求必須有大塊的連續(xù)存,系統(tǒng)可以湊出所需要的內(nèi)存供進(jìn)程使用。雖然如此,但是實(shí)際上系統(tǒng)使用存還是傾向于分配連續(xù)的內(nèi)存塊,因?yàn)榉峙溥B續(xù)內(nèi)存時(shí),頁(yè)表不需要更改,因能降低 TLB 的刷新率增加訪問(wèn)速度。鑒于上述需求,內(nèi)核分配物理頁(yè)為了盡量減少不連續(xù)情況,采用了“伙伴” 系 來(lái) 管 理 空 閑 頁(yè) 框 。 內(nèi) 核 中 分 配 空 閑 頁(yè) 框 的 基 本 函 數(shù) 是t_free_page/get_free_pages,它們或是分配單頁(yè)或是分配指定的頁(yè)框;锇橄捣峙渌惴ㄒ(jiàn)下節(jié)描述。get_free_page 是在內(nèi)核中分配內(nèi)存,不同于 malloc 在用戶空間中分配,malloc用堆動(dòng)態(tài)分配,實(shí)際上是調(diào)用 brk()系統(tǒng)調(diào)用,該調(diào)用的作用是擴(kuò)大或縮小進(jìn)堆空間,它會(huì)修改進(jìn)程的 brk 域。如果現(xiàn)有的內(nèi)存區(qū)域不夠容納堆空間,則會(huì)頁(yè)面大小的倍數(shù)位單位,擴(kuò)張或收縮對(duì)應(yīng)的內(nèi)存區(qū)域,但 brk 值并非以頁(yè)面大

分配器


解決這個(gè)問(wèn)題,Linux 采用一種 slab 算法來(lái)分配體積比較小的術(shù)不但避免了內(nèi)存內(nèi)部碎片,減少對(duì)伙伴系統(tǒng)分配算法的調(diào)用好利用硬件緩存提高訪問(wèn)速度。Slab 并非是脫離伙伴關(guān)系而存分配方式,slab 仍然是建立在頁(yè)面基礎(chǔ)之上, Slab 將頁(yè)面塊以供分配。于 slab 的內(nèi)存管理器中,基本的概念是 cache,slab 和對(duì)象。一em_cache_s 描述)對(duì)應(yīng)一組 slab(1:n),每個(gè) slab(用 kmem_一組大小相同的對(duì)象(1:n)。系統(tǒng)中所有的 cache 和同屬于一slab 各自連成一個(gè)雙向鏈表。另外,系統(tǒng)用一個(gè)靜態(tài)建立的 cches_s 結(jié)構(gòu)大小的內(nèi)存塊,名字是 cache_cache。對(duì)于小對(duì)象配大小為一個(gè)物理頁(yè)面的內(nèi)存,kmem_slab_s 描述符保存在這頁(yè)象的 slab 描述符保存在單獨(dú)建立的 cache_slab 中。slab 分內(nèi)核的核心對(duì)象以及內(nèi)核中小內(nèi)存的分配 kmalloc。三者的對(duì)
【引證文獻(xiàn)】

相關(guān)碩士學(xué)位論文 前2條

1 譚翼;基于ARM-Linux平臺(tái)的Java虛擬機(jī)的移植研究[D];昆明理工大學(xué);2007年

2 龍蔚;基于ARM的嵌入式新風(fēng)測(cè)控系統(tǒng)的研究與設(shè)計(jì)[D];北京郵電大學(xué);2009年



本文編號(hào):2855355

資料下載
論文發(fā)表

本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/2855355.html


Copyright(c)文論論文網(wǎng)All Rights Reserved | 網(wǎng)站地圖 |

版權(quán)申明:資料由用戶37295***提供,本站僅收錄摘要或目錄,作者需要?jiǎng)h除請(qǐng)E-mail郵箱bigeng88@qq.com