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

正文內(nèi)容

基于linux的嵌入式lcd驅(qū)動(dòng)設(shè)計(jì)(參考版)

2024-11-12 06:09本頁(yè)面
  

【正文】 S3C2440 CPU 相關(guān)的 GPIO 介紹 N 2V D 0L 6V D 1N 4V D 2V D 3V D 4V D 5V D 6V D 7V D 8V D 9V D 1 0V D 1 1V D 1 2V D 1 3V D 1 4V D 1 5V D 1 6V D 1 7V D 1 8V D 1 9V D 2 0V D 2 1V D 2 2V D 2 3R 1N 3P 2M 6P 3R 2M 5N 5R 3P 4R 4P 5N 6M 7T 4R 5T 5P 6R 6N 7U 5V D 0 / G P C 8V D 1 / G P C 9V D 2 / G P C 1 0V D 3 / G P C 1 1V D 4 / G P C 1 2V D 5 / G P C 1 3V D 6 / G P C 1 4V D 7 / G P C 1 5。 HSPW:水平同步信號(hào)的脈寬,單位為 1VCLK 的時(shí)間。 HBPD:水平同步信號(hào)的后肩,單 位為 1VCLK 的時(shí)間。 VBPD: 垂直同步信號(hào)的后肩,單位為 1 行( Line)的時(shí)間。 哈爾濱 工業(yè)大學(xué)畢業(yè)設(shè)計(jì)(論文) 22 LEND:行結(jié)束信號(hào) 寄存器參數(shù): VSPW:垂直同步信號(hào)的脈寬,單位為 1 行( Line)的時(shí)間。 VD[23:0] : LCD 像素?cái)?shù)據(jù)輸出端口。 HSYNC: 水平同步信號(hào),表示掃描 1 行的開始。幀頻和寄存器 LCDCON/2/3/4中的 VSYNC,VBPD,VFPD LINEVAL HSYNC HBPD HFPD HOZVAL不 II CLKVAL等有關(guān)。行同步信號(hào)為 HSYNC,哈爾濱 工業(yè)大學(xué)畢業(yè)設(shè)計(jì)(論文) 21 新的一行視頻數(shù)據(jù)開始發(fā)送時(shí) HSYNC的脈沖產(chǎn)生更新。 對(duì)于 TFT屏來(lái)說(shuō),它可以產(chǎn)生 5類基本信號(hào): HSYNC, VSYNC, VDEN VCLK, LEND等,通過(guò)寄存器組中的 LCDCON 1/2/3/4/5等幾個(gè)控制寄存器來(lái)進(jìn)行信號(hào)的設(shè)定。 S3C2440A 有 2個(gè) FIFO 來(lái)支持雙掃描顯示模式。當(dāng)存儲(chǔ)器控制器中的總線仲裁器同意了傳輸請(qǐng)求,將會(huì)從系統(tǒng)存儲(chǔ)器到內(nèi)部 FIFO 傳輸 4 個(gè)連續(xù)字?jǐn)?shù)據(jù)。 數(shù)據(jù)流描述如下: FIFO 存儲(chǔ)器 LCDCDMA。 TIMEGEN 由可編程邏輯組成來(lái)支持發(fā)現(xiàn)不同 LCD 驅(qū)動(dòng)器的一般接口時(shí)序和速率的變化需要。通過(guò)使 用專用 DMA,可以在屏幕上顯示視頻數(shù)據(jù)而不需要 CPU 的介入。 REGBANK 有 17個(gè)可編程寄存器集和用于配制 LCD控制器的 25616個(gè)調(diào)色存儲(chǔ)器。除控制信號(hào)外, S3C2440 還有視頻數(shù)據(jù)的數(shù)據(jù)端口,如圖 所示的 VD[23:0]。 S3C2440 LCD 控制器的特性如下 : STN LCD 顯示: 支 持 3 種類型的 LCD 面板: 4位雙掃描、 4 位單掃描和 8位單掃描顯示類型 支持單色、 4 階灰度和 16 階灰度 支持 256 色和 4096 色的彩色 STN LCD 面板 支持多種屏幕尺寸 典型實(shí)際屏幕尺寸: 480*27 3202 160160 等 最大虛擬屏幕尺寸為 4M 字節(jié) 256 色模式最大虛擬屏幕尺寸: 4096102 2048204 10244096 等 TFT LCD 顯示: 支持 TFT 的 8 bpp(位每像素)調(diào)色顯示 支持彩色 TFT 的 1 24 bpp 無(wú)調(diào)色顯示 支持 24 位每像素模式下最大 16M 色 TFT 支持多種屏幕尺寸 典型實(shí)際屏幕尺寸: 480 27 320240 、 160160 等 最大虛擬屏幕尺寸為 4M 字節(jié) 64K 色模式最大虛擬屏幕尺寸: 20481024 等 由于本文所用的是 LCD 是 TFT 屏,并且 TFT 屏將是今后應(yīng)用的主流,因此接下來(lái),重 點(diǎn)圍繞 TFT 屏的控制來(lái)進(jìn)行。通常 LCD 驅(qū)動(dòng)器會(huì)以 COF/COG 的形式與 LCD 玻璃基板制作在一起,而 LCD 控制器則由外部電路來(lái)實(shí)現(xiàn)??傊ǔW孕i保持時(shí)間非常短的情況,它可以使用在任何上下文中,而信號(hào)量用于保持時(shí)間較長(zhǎng) 的情況,只能在進(jìn)程上下文中使用 [1]。其相同之處在于一是它們都是非常好的有用的工具對(duì)于互斥來(lái)說(shuō);二是在任何時(shí)刻自旋鎖或信號(hào)量只能被一個(gè)線程所獲得。 ( 5) init_Muter LOCKED(struct semaphore *sem)把該函數(shù)信號(hào)量 sem的值設(shè)置為 0也用于初始化一個(gè)互斥鎖 ,即已處在已鎖狀態(tài)一開始時(shí)。因此對(duì)于這種鎖,一般是先釋放后獲得?;コ怏w和信號(hào)量的實(shí)現(xiàn)相關(guān)函數(shù)有: ( 1) sema_init(struct semaphore *sem,char val)函數(shù)用一個(gè)參數(shù) sem為指向信號(hào)量的指針, val 的作用是為該信號(hào)量賦初始值。在一時(shí)刻一個(gè)信號(hào)量只能被一個(gè)進(jìn)程或線程擁同時(shí)擁有,普遍被稱為互斥體當(dāng)這種情況發(fā)生時(shí)。通過(guò)調(diào)用釋放操作來(lái)完成一個(gè)信號(hào)量的解鎖,這個(gè)函數(shù)與通過(guò)操作證號(hào)相反,調(diào)用釋放操作時(shí)信號(hào)量同時(shí)這個(gè)值將增加 1,如果那些等待的進(jìn)程被需要可以同時(shí)喚醒它們。當(dāng)一個(gè)邊界區(qū)域允許一個(gè)進(jìn)程調(diào)用通過(guò)操作在相應(yīng)的信號(hào)量上時(shí),如果這個(gè)信號(hào)量的整形值大于 0,該進(jìn)程繼續(xù)進(jìn)行的同時(shí)這個(gè)值將被減 1。它與spin_ lock_ irq 配對(duì)使用 [1]。它與 spin_ lock_ irqsave 配對(duì)使用。 : ( 1) spin_ unlock(spinlock temp *lock)函數(shù)自檢并釋放自旋鎖,它與 spin_ lock 配對(duì)使用。 ( 2) spin_lock_irqsave(spinlock_temp*lock,unsigned long flags)把標(biāo)準(zhǔn)寄存器的值保存到變量 flags 中的 同時(shí)函數(shù)獲得自旋鎖并失效本地中斷。在任何條件下,一個(gè)保持者只能擁有一個(gè)自旋鎖,即只能有一個(gè)進(jìn)程能在同一時(shí)刻獲得鎖 [1]。當(dāng)然一般比較短“邊界代碼”都是由自旋鎖所保護(hù)的,否則 CPU 資源就會(huì)過(guò)度浪費(fèi)資源。我們?yōu)榱吮苊饬苏{(diào)用進(jìn)程的掛起引進(jìn)了自旋鎖的這一特性,進(jìn)程切換我們會(huì)用旋轉(zhuǎn)來(lái)替換。 我們?yōu)榱吮Wo(hù)數(shù)據(jù)并發(fā)訪問(wèn),提出了一種重要方法稱為自旋鎖,采用自旋鎖的方法一般在 Linux 內(nèi)核 及驅(qū)動(dòng)編寫中體現(xiàn)。 并發(fā)控制 在驅(qū)動(dòng)程序中時(shí)而會(huì)出現(xiàn)多個(gè)進(jìn)程同時(shí)讀寫訪問(wèn)時(shí)可能會(huì)出現(xiàn)競(jìng)態(tài),即競(jìng)爭(zhēng)訪問(wèn)狀態(tài),因此必須對(duì)訪問(wèn)狀態(tài)進(jìn)行并發(fā)控制。我們可以用內(nèi)存芯片相同的電信號(hào)的讀寫方式來(lái)訪問(wèn) I/O 端口,但這兩者實(shí)際有很大的差別,端口操 作是直接對(duì)外部設(shè)備進(jìn)行的,和內(nèi)存相比更不靈活, 而且 有 8 位端口,也有16 位端口和 32 位端口,在試用的過(guò)程中不能相互混淆。 哈爾濱 工業(yè)大學(xué)畢業(yè)設(shè)計(jì)(論文) 17 2. I/O 端口 在 Linux 操作系統(tǒng)下沒(méi)有對(duì) I/O 端口進(jìn)行屏蔽,同理任意的 I/O 端口都可以被任何驅(qū)動(dòng)程序操作,這樣就很容易造成程序混亂。邏輯地址通常存儲(chǔ)一些變量類型,如 long,int,void 等。 ( 4)內(nèi)核邏輯地址 該類地址是用普通的內(nèi)核地址所組成,這類 地址對(duì)應(yīng)一部分或全部主存,并且與物理地址性質(zhì)相同。一個(gè) I/O 內(nèi)存管理單元在一些系統(tǒng)結(jié)構(gòu)中被提供著,它可以重新對(duì)應(yīng)地址在總線和主存之間關(guān)系。 ( 2)物理地址 這類地址通常也是 32 位或 64 位用在系統(tǒng)內(nèi)存和和微處理器之間的地址空間,在特定情況下,較大的物理地址可以被 32 位的系統(tǒng)所使用。在 Linux 的各種類型的地址中我們必然要涉及到虛擬內(nèi)存,Linux 通常有以下幾種地址類型。kmalloc()帶兩個(gè)參數(shù),第 一個(gè)參數(shù) (size)是要申請(qǐng)的內(nèi)存數(shù)量:第二個(gè)參數(shù) (flags)用來(lái)控制 kmalloc()的優(yōu)先權(quán)。如何申請(qǐng)內(nèi)存是Linux 驅(qū)動(dòng)程序編寫所必須知道的,分配內(nèi)存和函數(shù)釋放分別是內(nèi)核中最常用 kmalloc()和 kfree()函數(shù),這兩個(gè)函數(shù)非常類似標(biāo)準(zhǔn) C 庫(kù)中的 malloc()、 free()。 4GB 空間可以分成兩個(gè)部分,一部分是空間用戶端,第二部分是空間內(nèi)核端。字符設(shè)備和塊設(shè)備的差別在于內(nèi)核部分的管理上,其中每個(gè) I/O 口都會(huì)非間接的傳遞給系統(tǒng)內(nèi)核對(duì)應(yīng)的驅(qū)動(dòng)程序在齊應(yīng)用程序?qū)?字符設(shè)備進(jìn)行操作時(shí),而要通過(guò)系統(tǒng)的管理緩沖區(qū)間接地傳遞給驅(qū)動(dòng)程序進(jìn)行處理時(shí)應(yīng)用程序?qū)?duì)塊設(shè)備進(jìn)行操作 [1]。在大多數(shù) Linux 系統(tǒng)的塊設(shè)備里,只能將多個(gè)塊看做一個(gè)整體進(jìn)行訪問(wèn)。 所謂塊設(shè)備是指以塊為單位對(duì)其信息進(jìn)行存取。普通文件系統(tǒng)與字符設(shè)備之間的區(qū)別是普通文件可以來(lái)回讀寫,而字符設(shè)備驅(qū)動(dòng)只能順序讀寫。 Linux 設(shè)各驅(qū)動(dòng)程序分類 字符設(shè)備是能夠被連續(xù)訪問(wèn)的設(shè)備,字符設(shè)備驅(qū)動(dòng)程序通常實(shí)現(xiàn)打開 ,關(guān)閉 ,讀和寫等系統(tǒng)調(diào)用函數(shù),系統(tǒng)控制平臺(tái)和 IO 口就是字符設(shè)備的例子。 。作為 Linux 內(nèi)核的重要的組成部分,設(shè)備驅(qū)動(dòng)程序主要完成以下幾種的功能: 。 這是一個(gè)文件的依賴關(guān)系,也就是說(shuō), target 這一個(gè)或多個(gè)的目標(biāo)文件依賴于prerequisites 中的文件,其生成規(guī)則定義在 mand 中。 ① prerequisites 就是,要 派生出 那個(gè) target 所需要的 目標(biāo) 或是 文件。 target...: prerequisites... mand ... 哈爾濱 工業(yè)大學(xué)畢業(yè)設(shè)計(jì)(論文) 14 ... 目標(biāo):依賴 執(zhí)行指令 ... target 也就是一個(gè) 目的 文件,可以是 Object File,也可以是 可 .bin 文件 。 make 用于解釋 makefile 中指令的命令, make 手冊(cè)見 GNU Make 中文書冊(cè)。 Makefile 內(nèi)核在 版本以前支持 GCC 直接編譯 C 源文件成 .ko(模塊)文件,從 內(nèi) 核開始,必須用 Makefile 文件把 C 源文件編譯成模塊文件。 方法一:修改 /etc/ 文件 vim/etc/ 在末尾加上: export Path= $Path:/usr/local/arm/方法二:修改 /etc/profile 文件: vim /etc/profile 增加設(shè)置路徑,在最后添加如下 ,保存 /etc/profile 文件: export PATH= $PATH:/usr/local/arm/ 量,不需要重新啟懂電腦:與方法一對(duì)應(yīng): source /root/.bashrc 與方法二對(duì)應(yīng): source /etc/profile : echo $Path 顯示的內(nèi)容中有 /usr/local/arm/bin,說(shuō)明已經(jīng)加入了交叉編譯器的路徑了。 而本文需要搭建的是 Linux 系統(tǒng)下的交叉編譯工具鏈,具體步驟如下: 到臨時(shí)的目錄下,我放在了 /home/chenbolin/temp/下, chenbolin 是我的用戶名。通過(guò) 使用 交叉編譯工具,我們就可以在 處理速度 很強(qiáng)、存儲(chǔ) 空間充足 的 開發(fā) 平臺(tái)上(比如 PC 上)編譯出針對(duì)其他平臺(tái)的可哈爾濱 工業(yè)大學(xué)畢業(yè)設(shè)計(jì)(論文) 13 執(zhí)行 的 程序。 在 開發(fā) 嵌入式系統(tǒng)時(shí), 執(zhí)行 程序的目標(biāo)平臺(tái) 通常 的存儲(chǔ)空間和運(yùn)算能力 是有限的 ,比如常見的 ARM 開發(fā) 平臺(tái),一般的靜態(tài)存儲(chǔ)空間大 約在 16MB 到 32MB 之間 ,而 處理器 的主頻大概在 100MHz 到 500MHz 之間。我們 通常使用 的計(jì)算機(jī)軟件,都 是 需要通過(guò) 編譯的方式 而實(shí)現(xiàn)的 , 計(jì)算機(jī)只能識(shí)別和運(yùn)行二進(jìn)制代碼,所以我們 用高級(jí)計(jì)算機(jī)語(yǔ)言編寫的代碼(比如 C 代碼)編譯成計(jì)算機(jī)可以識(shí)別和執(zhí)行的二進(jìn)制代碼。因?yàn)?在我們所需要的編譯器不允許在 目的平臺(tái)上 進(jìn)行安裝 ,而 這個(gè)編譯器的某些特征正是 我們又需要的 ; 或者 是因?yàn)?目標(biāo) 平臺(tái)上的資源 缺失 , 我們 無(wú)法運(yùn)行所需要編譯器; 或者 又是因?yàn)?目標(biāo) 平臺(tái)還沒(méi)有 完善 ,操作系統(tǒng) 不夠完善 , 成功 運(yùn)行編譯器 的考慮基本為零 。 在同一各個(gè)體系結(jié)構(gòu)中運(yùn)行著不同的操作系統(tǒng) ;同樣, 在不同操作系統(tǒng)中也運(yùn)行不同的體系結(jié)構(gòu) 。 言簡(jiǎn)意賅 地說(shuō), 就是 一個(gè)平臺(tái)上的可執(zhí)行代碼 被另一個(gè)平臺(tái)所派生 。 建立交叉編譯環(huán)境 一種 編譯程序在 計(jì)算機(jī)環(huán)境中運(yùn)行,在另外一種環(huán)境下 能編譯出 運(yùn)行的代碼, 那我們 就 稱 這種編譯器支持交叉編譯。 移除模塊命令: rmmod 用于移除指定的模塊,如果內(nèi)核正在使用某個(gè)模塊,則移 除會(huì)失敗。 Lsmod 通過(guò)讀取 /proc/modules 虛擬文件來(lái)獲得這些信息。如果在當(dāng)前情況下使用了 insmod 模塊 ,則該命令會(huì)顯示失敗。如果有, 它會(huì)自動(dòng)查找定義了這些符號(hào)的模塊當(dāng)前模塊搜索路徑中。使用方式如, insmod 。 模塊加載命令:對(duì)于編譯好的 .ko 文件必須掛載到內(nèi)核上,才能真正發(fā)揮作用, Linux 下安裝模塊文件有兩個(gè)命令: insmod:它將模塊文件的代碼和數(shù)據(jù)裝載到內(nèi)核中,然后使用內(nèi)核的符號(hào)表解析模塊中任何未解析的符號(hào)。配置 NFS 服務(wù)器, Samba 服務(wù)器,以便以后用于開發(fā)板與主機(jī)之間的數(shù)據(jù)傳輸與 Windows 下的程序設(shè)計(jì)不同,在 Linux 操作系統(tǒng)中現(xiàn)成的軟件開發(fā)集成環(huán)境是不被提供的,這就需要程序員自己創(chuàng)建軟件開發(fā)環(huán)境,來(lái)完
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1