freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于armlinux的lcd驅(qū)動(dòng)設(shè)計(jì)畢業(yè)設(shè)計(jì)說明書-在線瀏覽

2024-08-03 05:39本頁面
  

【正文】 55 顏色數(shù)據(jù)結(jié)構(gòu) 56 提取圖像數(shù)據(jù) 56 應(yīng)用程序代碼實(shí)現(xiàn)分析 57 獲取顯存地址 58 讀取JPG格式圖片 59 用位圖數(shù)據(jù)填充LCD顯存 59 main函數(shù)實(shí)現(xiàn) 60 編譯 61 第六章 程序運(yùn)行測試 62 啟動(dòng)uboot 62 裝載內(nèi)核與文件系統(tǒng) 63 運(yùn)行應(yīng)用程序 63 結(jié)論 65 致謝 66 參考文獻(xiàn) 67 引言引 言嵌入式技術(shù)是將計(jì)算機(jī)作為一個(gè)信息處理部件,嵌入到應(yīng)用系統(tǒng)中的一種技術(shù),也就是說,它將軟件固化集成到硬件系統(tǒng)中,將硬件系統(tǒng)與軟件系統(tǒng)一體化。隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,尤其是嵌入式系統(tǒng)的發(fā)展,嵌入式Linux系統(tǒng)和液晶顯示器優(yōu)點(diǎn)就越顯突出。 本設(shè)計(jì)通過利用基于Linux的ARM9系統(tǒng)開發(fā)平臺(tái)和嵌入式系統(tǒng)開發(fā)常用的“宿主機(jī)/目標(biāo)機(jī)”開發(fā)模式,使用嵌入式Linux系統(tǒng)下的各類編輯編譯程序的工具,改寫Linux內(nèi)核驅(qū)動(dòng)程序,通過編譯內(nèi)核,更新內(nèi)核程序,利用幀緩沖的方式,實(shí)現(xiàn)了液晶顯示器的驅(qū)動(dòng),同時(shí)實(shí)現(xiàn)在LCD液晶顯示屏上動(dòng)態(tài)顯示多張圖片。對(duì)于不同版本的內(nèi)核,可能需要進(jìn)行相應(yīng)的修改變動(dòng);同時(shí)設(shè)置的LCD的時(shí)序要根據(jù)不同的LCD顯示器說明書進(jìn)行設(shè)置。而對(duì)于LCD應(yīng)用程序的實(shí)現(xiàn)將會(huì)是本項(xiàng)目的一個(gè)難點(diǎn),在應(yīng)用程序上通過向LCD驅(qū)動(dòng)設(shè)置buffer數(shù)據(jù)區(qū)獲得映射后,可以直接往該LCD的buffer里面直接寫要顯示的位圖的值,然后LCD控制器會(huì)自動(dòng)將該buffer中的位圖數(shù)值進(jìn)行顯示到LCD液晶顯示器中。該LCD驅(qū)動(dòng)模塊以“y”的編譯選項(xiàng)編譯到Linux內(nèi)核中,從而可以實(shí)現(xiàn)在Linux內(nèi)核啟動(dòng)的過程中,可以從LCD上打印出相應(yīng)的啟動(dòng)信息,并在內(nèi)核啟動(dòng)后顯示登陸窗口。 1 第一章 ARM9 s3c2410簡介第一章 ARM9 s3c2410簡介在嵌入式領(lǐng)域中,為了開發(fā)更為高效的嵌入式設(shè)備,ARM由于其自身的高效特性成為很多開發(fā)者的首選,即使相對(duì)于MIPS架構(gòu)的CPU來說,它的價(jià)格更高,但它帶來的收益也會(huì)更多。這些終端產(chǎn)品涵蓋了從汽車和工業(yè)監(jiān)視器到家庭娛樂和移動(dòng)設(shè)備的各個(gè)領(lǐng)域。借助于完善的設(shè)計(jì)服務(wù)、培訓(xùn)、支持和維護(hù)以及公司的龐大合作伙伴社區(qū),我們提供了一個(gè)全面的系統(tǒng)解決方案,為主要電子設(shè)備公司提供一條快速可靠的途徑將產(chǎn)品推向市場。 s3c2410處理器介紹S3C2410微處理器是一款由Samsung公司為手持設(shè)備設(shè)計(jì)的低功耗、高度集成的基于ARM920T核的微處理器。現(xiàn)在它廣泛應(yīng)用于PDA(Personal Digital Assistant,個(gè)人數(shù)碼助理,一般指掌上電腦)、移動(dòng)通訊、路由器、工業(yè)控制等領(lǐng)域,其內(nèi)部結(jié)構(gòu)如圖11所示。下面簡單介紹一下各總線特點(diǎn)。APB 橋既是APB總線上唯一的主模塊,也是AHB系統(tǒng)總線上的從模塊。AHB主要用于高性能模塊(如CPU、DMA和DSP等)之間的連接,作為SoC的片上系統(tǒng)總線,它包括以下一些特性:單個(gè)時(shí)鐘邊沿操作;非三態(tài)的實(shí)現(xiàn)方式;支持突發(fā)傳輸;支持分段傳輸;支持多個(gè)主控制器;可配置32位~128位總線寬度;支持字節(jié)、半字節(jié)和字的傳輸。其特性包括:兩個(gè)時(shí)鐘周期傳輸;無需等待周期和回應(yīng)信號(hào);控制邏輯簡單,只有四個(gè)控制信號(hào)。 S3C2410處理器體系結(jié)構(gòu)支持大端(Big Endian)/小端(Little Endian)模式;地址空間為每個(gè)內(nèi)存塊128MB(一共1GB),每個(gè)內(nèi)存塊支持8/16/32位數(shù)據(jù)總線編程;8個(gè)內(nèi)存塊,6個(gè)用于ROM、SRAM和其它,2個(gè)用于ROM/SRAM/SDRAM;1個(gè)起始地址和大小可編程的內(nèi)存塊 (Bank7);7個(gè)起始地址固定的內(nèi)存塊(Bank0~Bank6);所有內(nèi)存塊可編程尋址周期;支持SDRAM自動(dòng)刷新模式;支持多種類型ROM啟動(dòng),包括NOR/NAND Flash、EEPROM等。時(shí)鐘管理模塊同時(shí)擁有兩個(gè)鎖相環(huán),一個(gè)稱為MPLL,擁于FCLK、HCLK和PCLK;另一個(gè)稱為UPLL,用于USB設(shè)備。復(fù)位后,即使不想改變默認(rèn)的PLLCON值,也需要重新寫一遍。S3C2410支持HCLK、FCLK和PCLK的分頻選擇,其比率是通過CLKDIV寄存器中的HDIVN和PDIVN控制的.(3)電源管理S3C2410電源管理模塊通過4種模式有效地控制功耗,即正常(Normal)模式、省電(Slow)模式、空閑(Idle)模式和斷電(Poweroff)模式。這種模式允許用戶通過軟件控制外設(shè),可以斷開提供給外設(shè)的時(shí)鐘以降低功耗。Idle模式:斷開FCLK與CPU核的連接,外設(shè)保持正常,該模式下的任何中斷都可喚醒CPU。一般模式下需要兩個(gè)電源,一個(gè)提供給喚醒邏輯,另外一個(gè)提供給CPU和內(nèi)部邏輯,在Poweroff模式下,后一個(gè)電源關(guān)閉。目前,市場上有很多商業(yè)性嵌入式系統(tǒng)都在努力的為自己爭取著嵌入式市場的份額,Linux以其內(nèi)核可裁剪、移植性好、源代碼開放等優(yōu)點(diǎn)受到越來越多的企業(yè)和研發(fā)機(jī)構(gòu)的關(guān)注。Linux最初是一個(gè)遵循POSIX標(biāo)準(zhǔn)的由一名芬蘭學(xué)生編寫源代碼完全開放的免費(fèi)操作系統(tǒng)。目前正在開發(fā)的嵌入式系統(tǒng)中,49%的項(xiàng)目選擇Linux作為嵌入式操作系統(tǒng)。主流嵌入式Linux產(chǎn)品有:美國墨西哥理工學(xué)院開發(fā)的嵌入式Linux操作系統(tǒng)RT一Linux;Lineo公司的主打產(chǎn)品uClinux;北京中科院紅旗軟件公司推出的紅旗嵌入式Linux等。與其它專用嵌入式操作系統(tǒng)相比(如下表1所示),Linux具有很多優(yōu)點(diǎn)。Linux代碼完全開放.不同領(lǐng)域和不同層次的用戶可以根據(jù)自己的應(yīng)用需要方便地對(duì)內(nèi)核進(jìn)行修改。第二,嵌入式Linux移植性好。將Linux移植到新的微處理器時(shí)。移植性非常好,并且一旦完成移植,性能非常穩(wěn)定。傳統(tǒng)嵌人式操作系統(tǒng)在這方面是笨拙的,占用過多的內(nèi)存,應(yīng)用程序龐大。第四,強(qiáng)大的網(wǎng)絡(luò)支持功能。第五,Linux具有廣泛的硬件支持特性。這意味著嵌入式Linux將具有更廣泛的應(yīng)用前景。Linux為開發(fā)者提供了一套完整的工具鏈(toolchain),在Linux下開發(fā)者容易自行建立嵌入式系統(tǒng)的開發(fā)環(huán)境和交叉運(yùn)行環(huán)境.可以跨越嵌入式系統(tǒng)開發(fā)中仿真工具的障礙。這就需要對(duì)標(biāo)準(zhǔn)Linux做出修改。圖21簡單表示了它的框架。正因?yàn)長inux內(nèi)核具有這樣的結(jié)構(gòu),修改內(nèi)核時(shí)必須注意各個(gè)子系統(tǒng)之間的協(xié)調(diào)。(1)make config 核心配置,其總保存著配置信息。(3)make,make zImage,make bzImagemake:構(gòu)核。Make zImage:在make的基礎(chǔ)上產(chǎn)生壓縮的核心映像文件。(4)make modules編譯模塊文件,你在make config時(shí)所配置的所有模塊將在這時(shí)編譯,形成模塊目標(biāo)文件,并把這些目標(biāo)文件存放在modules目錄中。通過這段小程序,我們可以初始化硬件設(shè)備、建立內(nèi)存空間映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。 設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序即添加到操作系統(tǒng)中的一小塊代碼.其中包含有關(guān)硬件設(shè)備的信息。驅(qū)動(dòng)程序是硬件廠商根據(jù)操作系統(tǒng)編寫的配置文件,沒有驅(qū)動(dòng)程序,計(jì)算機(jī)中的硬件就無法工作。硬件設(shè)備只是一個(gè)設(shè)備文件,應(yīng)用程序可以像操作普通文件一樣對(duì)硬件設(shè)備進(jìn)行操作。 ②把數(shù)據(jù)從內(nèi)核傳送到硬件和從硬件讀取數(shù)據(jù)。④檢測和處理設(shè)備出現(xiàn)的錯(cuò)誤。目前Linux支持的設(shè)備驅(qū)動(dòng)可以分為3種:字符設(shè)備 (character device)、塊設(shè)備(block device)、網(wǎng)絡(luò)接口設(shè)備(network device)。字符設(shè)備是所有能夠像字節(jié)流一樣被訪問的設(shè)備(如文件等),在Linux中通過字符設(shè)備驅(qū)動(dòng)程序來實(shí)現(xiàn)。字符設(shè)備驅(qū)動(dòng)程序一般要包含open、close、 read、write等幾個(gè)系統(tǒng)調(diào)用。數(shù)據(jù)塊的大小通常在512字節(jié)到32768字節(jié)之間。磁盤是最常見的塊設(shè)備。網(wǎng)絡(luò)接口由內(nèi)核中的網(wǎng)絡(luò)子系統(tǒng)驅(qū)動(dòng),負(fù)責(zé)發(fā)送和接收數(shù)據(jù)包,許多網(wǎng)絡(luò)連接是面向流的,但網(wǎng)絡(luò)設(shè)備卻圍繞數(shù)據(jù)包的傳輸和接收而設(shè)計(jì)。本設(shè)計(jì)中的LCD為字符設(shè)備,所以重點(diǎn)理解字符設(shè)備的驅(qū)動(dòng)實(shí)現(xiàn)。具體通過使用數(shù)據(jù)結(jié)構(gòu) struct file_operations來實(shí)現(xiàn),該數(shù)據(jù)結(jié)構(gòu)中包括許多操作函數(shù)的指針,如 open (),close(),read(),write()等。為了解決這個(gè)問題,Linux 設(shè)計(jì)者采用更高一層的封裝方法,為同一類設(shè)備定義了文件層次file_operations結(jié)構(gòu)中的接口函數(shù),這些函數(shù)對(duì)同一類設(shè)備來說實(shí)現(xiàn)方式相同(如申請(qǐng)緩沖區(qū)空間,讀取緩沖區(qū)數(shù)據(jù)等操作),只將一小部分硬件設(shè)備寄存器相關(guān)的操作函數(shù)留給驅(qū)動(dòng)開發(fā)人員實(shí)現(xiàn)。Linux 為LCD 顯示設(shè)備提供的幀緩沖驅(qū)動(dòng)就是這種分層驅(qū)動(dòng)方式。它對(duì)應(yīng)設(shè)備目錄下的/dev/fb 設(shè)備節(jié)點(diǎn)。/dev/fb 是對(duì)實(shí)際使用的LCD設(shè)備節(jié)點(diǎn)的符號(hào)鏈接。 11 第三章 開發(fā)工具第三章 開發(fā)工具為了更好地進(jìn)行嵌入式產(chǎn)品的開發(fā),產(chǎn)生了很多基于不同嵌入式產(chǎn)品的開發(fā)工具,一般采用典型的“主機(jī)/宿主機(jī)”開發(fā)模式。通過配置好ubuntu與xp的ip后,使兩者處于同一個(gè)網(wǎng)段中,并保持網(wǎng)絡(luò)的暢通,然后就可以通過配置samba服務(wù)器實(shí)現(xiàn)xp能夠訪問到ubuntu中的共享目錄,從而方便講要不編譯的內(nèi)核代碼放到ubuntu中,用交叉編譯工具進(jìn)行編譯。本設(shè)計(jì)中使用的VMware版本為VMWare Workstation7。在導(dǎo)入完成后,非常重要的一點(diǎn)是要在虛擬機(jī)中設(shè)置ubuntu系統(tǒng)使用網(wǎng)絡(luò)的方法,本設(shè)計(jì)中使用橋接的方式。像平常安裝系統(tǒng)一樣根據(jù)提示進(jìn)行一步一步往下進(jìn)行安裝。根據(jù)提示進(jìn)行余下的操作,直到系統(tǒng)安裝完成,即完成了在虛擬機(jī)中對(duì)ubuntu系統(tǒng)的安裝。查看主機(jī)xp的網(wǎng)絡(luò)信息如下: ip: 子網(wǎng)掩碼: 默認(rèn)網(wǎng)關(guān): DNS服務(wù)器:(可以使用默認(rèn)網(wǎng)關(guān))然后根據(jù)xp的網(wǎng)絡(luò)信息進(jìn)行配置ubuntu的網(wǎng)絡(luò)信息,用vi進(jìn)行在ubuntu下的網(wǎng)絡(luò)信息的編輯更改如下: 在/etc/network/interfaces中配置ip等信息如下: auto eth0 iface eth0 inet static address gateway netmask 在/etc/: Generated by NetworkManager nameserver 在配置好ubuntu的網(wǎng)絡(luò)信息后,必須要重啟一下網(wǎng)絡(luò),設(shè)置才有效。 配置samba服務(wù)器在局域網(wǎng)中共享ubuntu中的目錄一般用samba服務(wù)器的方式進(jìn)行共享,對(duì)于samba服務(wù)器的配置,在ubuntu系統(tǒng)中進(jìn)行配置如下:在ubuntu中安裝軟件之前,一般采用下面的命令進(jìn)行更新軟件包數(shù)據(jù)源:$sudo aptget update接著安裝samba軟件包,如下:$sudo aptget install samba smbfs sambamon smbclient然后進(jìn)行samba的配置:$ sudo vim /etc/samba/:[username] path = /home/username available = yesbrowseable = yes public = yeswritable = yes 接著創(chuàng)建samba帳戶:$ sudo smbpasswd a USERNAME (USERNAME換成你的用戶名)會(huì)要求你輸入samba帳戶的密碼 最后,重啟samba服務(wù)器:$ sudo /etc/()$ sudo /etc/ 重啟后,在xp中測試一下創(chuàng)建的samba服務(wù)器是否有效:在文件夾處或運(yùn)行處輸入: \\ + Ubuntu機(jī)器的ip 或主機(jī)名 交叉編譯工具在ubuntu中進(jìn)行編譯在ARM平臺(tái)上運(yùn)行的程序時(shí),不能使用ubuntu本身的gcc編譯工具進(jìn)行編譯了,要使用針對(duì)于ARM的交叉編譯工具進(jìn)行編譯適合于ARM平臺(tái)上運(yùn)行的程序。通過這樣的方式進(jìn)行下載內(nèi)核到Nandflash中,方便對(duì)于修改后的內(nèi)核的調(diào)試,直到最后要做成產(chǎn)品之后,才沒必要每次都通過TFTP服務(wù)進(jìn)行到Nandflash中。同樣直到最后做成產(chǎn)品,才將文件系統(tǒng)固化在Nandflash中。同時(shí)要將該目錄的權(quán)限全部打開。然后執(zhí)行下面的命令退出TFTP操作: tftpquit 最后,查看當(dāng)前的目錄下是否有文件名為test_tftp文件,并注意其大小不能為0,否則的話表示TFTP配置失敗。并且創(chuàng)建的該目錄了做相應(yīng)的配置,如下實(shí)現(xiàn): $makedir /opt/filesytem編輯/etc/exports,添加目標(biāo)系統(tǒng)的根文件系統(tǒng)映射目錄,假如目標(biāo)系統(tǒng)的根文件系統(tǒng)最后映射到/opt/filesytem,則/etc/exports內(nèi)容如下:/opt/filesystem *(subtree_check,rw,no_root_squash,async) 重啟portmap服務(wù)和NFS服務(wù): $ sudo /etc/ $ sudo /etc/$ sudo exportfs –a (每修改過/etc/exportfs后需要執(zhí)行一次)測試NFS: 首先建立一個(gè)nfs測試的掛載點(diǎn)(目錄):$ sudo mkdir /mnt/nfs$ mount ubuntuIP:nfsdir /mnt/nfs –t nfs 比如我的機(jī)器:$ mount :/opt/filesystem /mnt/nfs –t nfs如果掛載成功,則表示NFS配置成功。通過配置好HJTAG,將適合于fs2410的uboot燒寫到Nandfash的0到20000地址(2k)的空間中。接著就是配置uboot,高版本的的uboo
點(diǎn)擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1