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

正文內(nèi)容

嵌入式linux下pcie數(shù)據(jù)采集卡驅(qū)動開發(fā)-資料下載頁

2025-06-28 13:51本頁面
  

【正文】 v lib sys tmp var opt3.將_install文件夾下所有目錄拷貝到nfsroot中,_install文件包含了配置、編譯并安裝Busybox生成的根文件系統(tǒng)的/bin、/sbin等重要的、目標(biāo)板系統(tǒng)支持的命令,其命令如下:$ cd _install$ cp –a /home/bobo/nfsboot,系統(tǒng)啟動的初始化腳本及其重要$ls –l /home/bobo/nfsboot/linuxrclinuxrc是指向busybox的一個符號鏈接,刪除之,并編譯項目需要的linuxrc文件。將交叉編譯工具ltib中的lib庫文件拷貝到nfsroot中$ cp –a /opt/freescale/ltib/usr/lib/* ./lib/6.、rcS、inittab、profile、fstab等腳本文件,可以添加這些腳本,并在腳本中編輯相應(yīng)的腳本語句。Inittab是創(chuàng)建Linux操作系統(tǒng)執(zhí)行初始化進程的腳本。rcS是用來執(zhí)行用戶進程的腳本文件。rcS的配置如下:!/bin/sh minimal startup script, will work with msh (this is best available in MMUless format). load the configuration information/etc/mode=${1:start}if[$mode =start]then services=$cfg_serviceselse services=$cfg_services_rficfg_services=${2:$services}run the configured sequencefor i in $cfg_servicesdo if [ x /etc/$i ] then /etc/$i $mode fidoneif [ $ ge 2 ]then exit 0fi show all kernel log messagesecho 8 /proc/sys/kernel/printk run if present and executableif [ x /etc/]then /etc/$modefiinittab的配置如下: see ::sysinit:/etc/::respawn:/sbin/getty L ttyS0 115200 vt100::ctrlaltdel:/sbin/reboot::shutdown:/etc/::restart:/sbin/init(7)創(chuàng)建設(shè)備文件MPC85xx支持很多設(shè)備,如SD、網(wǎng)卡、串口、USB等等,在根文件系統(tǒng)的/dev目錄下,應(yīng)當(dāng)根據(jù)設(shè)備的設(shè)備類型和主次設(shè)備號建立相應(yīng)的設(shè)備文件,用以提供對設(shè)備進行操作的接口。我們已經(jīng)建立起了根文件系統(tǒng)的所有目錄中最基本內(nèi)容??梢詫fsboot文件鏈接到linux主機的/tftpboot目錄下,開啟nfs服務(wù),就可以在目標(biāo)板上啟動整個linux系統(tǒng)了。nfs啟動的Uboot設(shè)置如下:$ setenv ipaddr $ setenv serverip $ setenv gatewayip $ setenv bootargs root=/dev/nfs rw nfsroot=:$rootpath ip=$ipaddr:$serverip:$gatewayip:$netmask:MPC8536RDK:eth0:off console=ttyS0,115200$ saveenv$ run nfsboot: Linux系統(tǒng)啟動的根文件目錄 本章小結(jié)本章主要介紹了目標(biāo)板嵌入式Linux操作系統(tǒng)的安裝。首先,文章對系統(tǒng)引導(dǎo)Uboot做了簡要的敘述,并結(jié)合目標(biāo)板實際,詳盡的講解了Uboot的移植步驟和過程;其次、論文對Linux操作系統(tǒng)及其內(nèi)核做了講解,結(jié)合其優(yōu)點分析了項目選取它們的依據(jù),并根據(jù)項目詳盡的講解了Linux內(nèi)核的移植過程。最后,論文對根文件系統(tǒng)做了簡介,并詳述了運用Busybox制作根文件系統(tǒng)的配置、編譯、設(shè)置方法。29第五章 Linux驅(qū)動程序第五章 Linux驅(qū)動程序 設(shè)備驅(qū)動概述一個計算機系統(tǒng)的運行需要軟硬件的通力合作,二者缺一不可。硬件是下層基礎(chǔ),是軟件得以運行的平臺;軟件是實現(xiàn)具體的應(yīng)用,他按照客戶的不同需求而編寫。計算機系統(tǒng)中的應(yīng)用軟件與硬件運行在兩個不想交叉的平行世界,那么這兩個平行的世界怎樣產(chǎn)生聯(lián)系的呢——設(shè)備驅(qū)動。設(shè)備驅(qū)動在內(nèi)核中充當(dāng)了一個特殊的角色,是一個獨立的模塊。它將硬件設(shè)備工作的細節(jié)完全隱藏,同時提供了用戶操作設(shè)備的接口,設(shè)備用戶不知道也不需要關(guān)心設(shè)備是怎樣具體工作。在linux系統(tǒng)中,由于所有的設(shè)備都以設(shè)備文件的方式呈現(xiàn)。所以,只需要讀、寫虛擬文件系統(tǒng)中的設(shè)備文件就可以操作設(shè)備。就像調(diào)用API函數(shù)一樣。這樣設(shè)備驅(qū)動驅(qū)動既起到隔離同時又起到連接應(yīng)用程序和硬件的作用,這樣使得應(yīng)用的開發(fā)大大簡化。 Linux設(shè)備的種類和特點一般而言Linux中的設(shè)備可以分為三類:字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)設(shè)備[[] [M].北京:人民郵電出版社,]。 字符設(shè)備字符設(shè)備是Linux最簡單的設(shè)備,它可以概括為那些必須以串行順序依次進行訪問的設(shè)備。字符驅(qū)動很好地展現(xiàn)了流的抽象,它通過文件系統(tǒng)結(jié)點來存取,也就是說,字符設(shè)備被當(dāng)作普通文件來訪問。一般來講,鼠標(biāo)、串口、鍵盤等設(shè)備都屬于字符設(shè)備。塊設(shè)備 塊設(shè)備以任意順序訪問,以塊為單位操作。塊設(shè)備一次可以傳輸在設(shè)備長度范圍內(nèi)的任意長度,比如一個字節(jié)或多個字節(jié)。在上邊說道到字符設(shè)備是一個字節(jié)傳輸,那么在這一點上它和塊設(shè)備有著共通的地方。塊設(shè)備一般都是速度慢、容量大的設(shè)備,像Flash、硬盤等存儲設(shè)備一般都是塊設(shè)備。網(wǎng)絡(luò)設(shè)備網(wǎng)絡(luò)設(shè)備是面向數(shù)據(jù)包的接收和發(fā)送而設(shè)計的,它與字符設(shè)備和塊設(shè)備不同。在文件系統(tǒng)中不像字符設(shè)備和塊設(shè)備那樣都是對應(yīng)設(shè)備文件節(jié)點。網(wǎng)絡(luò)設(shè)備通過接口實現(xiàn)與其它設(shè)備進行數(shù)據(jù)交換。除了上述三大基本設(shè)備類之外,還有一些諸如TTY、LCD、USB、PCI等設(shè)備驅(qū)動大體可納入這3個基礎(chǔ)大類,但是由于這些設(shè)備本身具有的復(fù)雜性,Linux系統(tǒng)還為這些設(shè)備定義了獨特的驅(qū)動體系結(jié)構(gòu)。 Linux設(shè)備驅(qū)動與計算機軟硬件系統(tǒng)的關(guān)系從整個計算機的軟硬件構(gòu)成來看,它由上到下可分為:應(yīng)用程序、庫、內(nèi)核、驅(qū)動程序和硬件四個層級。它們可以劃分為四層軟件和硬件[[] 魏永明,耿岳,:中國電力出版社,]。在四層軟件的協(xié)助下最后作用于硬件,使硬件完成設(shè)定的功能。 計算機系統(tǒng)軟硬件分層及關(guān)系,字符設(shè)備、塊設(shè)備在文件系統(tǒng)中建立了設(shè)備文件,對設(shè)備的操作只需要根據(jù)驅(qū)動提供的接口對對應(yīng)的設(shè)備文件操作即可,而網(wǎng)絡(luò)設(shè)備則是通過套接字由TCP/IP協(xié)議實現(xiàn)。塊設(shè)備相較字符設(shè)備復(fù)雜,在它上邊要建立一個諸如FAT、EXTJFSS等的磁盤/FLASH文件系統(tǒng)。驅(qū)動程序不會主動運行,它根據(jù)應(yīng)用程序的要求初始化及讀寫,驅(qū)動程序加載到內(nèi)核時,只告訴內(nèi)核驅(qū)動已被加載并可以完成哪些工作,至于開始完成相應(yīng)工作的時間有驅(qū)動程序決定。在Linux系統(tǒng)中,應(yīng)用程序在用戶空間運行,通過內(nèi)存管理應(yīng)用程序不進入內(nèi)核空間,即使應(yīng)用程序出錯,系統(tǒng)也會安全運行。驅(qū)動在內(nèi)核空間運行,屬于系統(tǒng)的組成部分,如果驅(qū)動出現(xiàn)錯誤,系統(tǒng)可能不能正常運行。應(yīng)當(dāng)指出,驅(qū)動屬于內(nèi)核的一部分,它并不是獨立于內(nèi)核,無論采用動態(tài)還是靜態(tài)的加載方式,驅(qū)動都將被編進內(nèi)核作為內(nèi)核的一部分。本文中所用到的數(shù)據(jù)采集卡本身是一個字符設(shè)備,那么本文著重分析的是與字符設(shè)備相關(guān)的驅(qū)動結(jié)構(gòu)及其主要組成部分的程序編寫[[] 宋寶華,何昭然,史海濱,[M].北京:人民郵電出版社,]。在了解字符設(shè)備驅(qū)動的編寫方法之前,應(yīng)當(dāng)先對字符設(shè)備的一些基本的數(shù)據(jù)結(jié)構(gòu)作了解。 字符設(shè)備結(jié)構(gòu)cdev cdev是Linux內(nèi)核中字符設(shè)備的結(jié)構(gòu),它包含了諸多與字符設(shè)備有關(guān)的成員,如模塊的擁有者、文件操作、設(shè)備號等。其中設(shè)備號dev_t由主次設(shè)備號組成,它們共同唯一的對應(yīng)某一設(shè)備。文件操作為應(yīng)用提供了接口。設(shè)備號的高12位即主設(shè)備號,指明了是哪一個設(shè)備。如串口的主設(shè)備號為2,表明主設(shè)備號為2的都是串口。次設(shè)備是設(shè)備號的低20位,用來區(qū)分具體設(shè)備的實例(instance)。比如有兩個串口ttys0和ttys1,從主設(shè)備號我們并不能區(qū)分這兩個串口,只能通過對每個串口給一個不同次設(shè)備號來區(qū)別。Linux中如下函數(shù)完成cdev結(jié)構(gòu)的初始化極其操作:初始化dev_t的函數(shù):cdev_init();添加字符設(shè)備到系統(tǒng),注冊字符設(shè)備:dev_add();從系統(tǒng)刪除字符設(shè)備,注銷字符設(shè)備:cedv_del();調(diào)用register_chardev_region()函數(shù)向內(nèi)核申請字符設(shè)備的設(shè)備號之后,才能添加字符設(shè)備到系統(tǒng),即調(diào)用cdev_add()函數(shù)。相反的,在調(diào)用cdev_del后應(yīng)當(dāng)使用unregister_chardev_region函數(shù)釋放先前申請的設(shè)備號。file_operations結(jié)構(gòu)file_operation結(jié)構(gòu)在字符設(shè)備驅(qū)動程序占有很重要的地位,它的成員函數(shù)提供了驅(qū)動程序與操作系統(tǒng)內(nèi)核的接口。File_operation的成員函數(shù)很多,其主要成員有讀、寫文件的read()、write()函數(shù),修改當(dāng)前讀寫位置的llseek()函數(shù),設(shè)備控制的ioctl()函數(shù)等。Linux系統(tǒng)中,字符設(shè)備驅(qū)動由以下兩個部分組成[[] Sreekrishnan Linux Device Drivers[M].Bei Jing:POSTS amp。 TELECOM PRESS,]。加載、卸載字符設(shè)備在加載中應(yīng)申請設(shè)備號、注冊字符設(shè)備。在前面已經(jīng)提到了相關(guān)的函數(shù)。文件操作應(yīng)當(dāng)對文件的讀、寫、控制等函數(shù)具體實現(xiàn)。 字符設(shè)備驅(qū)動 Linux設(shè)備驅(qū)動的阻塞在上一節(jié)的字符設(shè)備驅(qū)動中,我們忽略了一個問題:我們進行read的調(diào)用時,而此時沒有數(shù)據(jù)到來;或者一個進程正在寫時, 但是由于輸出緩沖滿而致使設(shè)備沒有準(zhǔn)備好接受數(shù)據(jù),這時我們應(yīng)當(dāng)考慮阻塞執(zhí)行。阻塞就是進程對設(shè)備操作的時候,資源無法滿足條件,那么對設(shè)備操作就不能進行,該進程就要掛起、等待,資源滿足條件后,該進程恢復(fù)、進而操作設(shè)備編。由于阻塞的進程會進入休眠狀態(tài),所以必須確保在某個地方能夠?qū)⑿菝叩倪M程喚醒。喚醒進程一般在中斷中實現(xiàn),因為硬件資源可獲得恰恰伴隨著一個中斷。在linux設(shè)備驅(qū)動程序中,阻塞進程可以使用等待隊列來實現(xiàn)。在內(nèi)核中,等待隊列是有很多用處的,尤其是在中斷處理,進程同步,定時等場合,可以使用等待隊列實現(xiàn)阻塞進程的喚醒。 中斷中斷是指在CPU正常運行期間,由于內(nèi)外部事件或由程序預(yù)先安排的事件引起的CPU暫時停止正在運行的程序,轉(zhuǎn)而為該內(nèi)部或外部事件或預(yù)先安排的事件服務(wù)的程序中去,服務(wù)完畢后再返回去繼續(xù)運行被暫時中斷的程序。Linux中通常分為外部中斷(又叫硬件中斷)和內(nèi)部中斷(又叫異常)。 Linux中斷處理架構(gòu)中斷的到來一般意味著由緊急且大數(shù)據(jù)量的傳輸,當(dāng)中斷到來時中斷程序會打斷CPU的正常運行來處理中斷。如果長時間處理該中斷,會導(dǎo)致系統(tǒng)的性能下降。為了實現(xiàn)即達到滿足中斷緊急性的要求、又保證大數(shù)據(jù)量傳輸?shù)哪芰?。在Linux中提出了一種中斷的處理機制,這種機制將中斷分成:頂半部和底半部[[] [R].飛行器測控學(xué)報,]。 Linux中斷機制頂半部完成的是少量而緊急的任務(wù),他只是讀寄存器中的中斷狀態(tài)標(biāo)志并清除該標(biāo)志,登記中斷。該中斷被登記完成后,而底半部不忙處理,它將被加入到底半部的執(zhí)行隊列中。這樣保證了中斷的頂半部的緊急性要求,更多的中斷得到響應(yīng)、登記。頂半部不可以被打斷。頂半部完成登記后,大部分的中斷處理工作落實到了底半部,底半部完成的是中斷處理中的大量的而不緊急的任務(wù),因此他可以新的中斷打斷。底半部的實現(xiàn)機制有tasklet、工作隊列和軟中斷。 Linux中斷編程當(dāng)外部設(shè)備需要操作系統(tǒng)做相關(guān)的事情的時候,會產(chǎn)生相應(yīng)的中斷。設(shè)備通過相應(yīng)的中斷線向中斷控制器中斷信號,而操作系統(tǒng)則會從中斷控制器的狀態(tài)位取得相應(yīng)的中斷。由于現(xiàn)在的外設(shè)越來越多,中斷線又是很寶貴的資源不可能被一一對應(yīng)。因此在使用中斷線前,就得對相應(yīng)的中斷線進行申請。而在使用完成后應(yīng)當(dāng)釋放中斷號。驅(qū)動中的中斷編程應(yīng)該在模塊加載中申請中斷號,在模塊卸載中釋放中斷號,當(dāng)本中斷到來時,在中斷處理函數(shù)中完成中斷處理。在linux設(shè)備驅(qū)動中,設(shè)備驅(qū)動應(yīng)當(dāng)先用request_irq()函數(shù)申請中斷;在使用完成中斷后應(yīng)當(dāng)使用free_irq()函數(shù)釋放中斷號。 本章小結(jié)本章主要介紹了Linux驅(qū)動程序的編寫方法。首先,論文簡單介紹了Linux驅(qū)動程序及其特點。其次,文章詳盡介紹了字符設(shè)備驅(qū)動的組成結(jié)構(gòu),對于如何編寫字符設(shè)備驅(qū)動,給出了詳盡的方法。第三,本章還對Linux設(shè)備驅(qū)動的阻塞、中斷架構(gòu)以及中斷編程的詳細方法做了說明。35第六章 PCIE高速數(shù)據(jù)采集卡驅(qū)動程序開發(fā)第六章 PCIE高速數(shù)據(jù)采集卡驅(qū)動程序開發(fā) PCI EXPRESS的配置空間在第一章的硬件中我們已經(jīng)知道,數(shù)據(jù)采集卡將A/D采集到的數(shù)據(jù)發(fā)送到主機,或者主機上的數(shù)據(jù)通過數(shù)據(jù)采集卡傳輸出去,是采用的自行設(shè)計的運用可編程邏輯控制器FPGA配置和控制PCIE接口實現(xiàn)的。數(shù)據(jù)采集卡一旦插入PCIE插槽,主控制器將發(fā)起配置事物讀、寫某些配置寄存器。對配置寄存器的訪問可以知道相應(yīng)功能的存在性,而對配置寄存器的配置則可以實現(xiàn)相應(yīng)的功能。對于驅(qū)動的編寫,配置寄存器意義重大。PCIE的配置寄存器大小為4K,它包含與PCI總線兼容的256字節(jié)的配置空間和3840個字節(jié)的PCIE擴展配置空間[[] [D].長沙:國防科技大學(xué)電子科學(xué)與
點擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1