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

正文內(nèi)容

基于嵌入式linux的網(wǎng)絡視頻監(jiān)控系統(tǒng)的研究學士學位畢業(yè)論文(編輯修改稿)

2025-07-24 20:22 本頁面
 

【文章內(nèi)容簡介】 放在Flash中,而且操作系統(tǒng)一般都需要在存儲器上建立文件系統(tǒng)才能對存儲器進行操作,因此需要在Flash上建立文件系統(tǒng)以滿足嵌入式操作系統(tǒng)和實際的需要。 在Linux里,系統(tǒng)對獨立的文件系統(tǒng)不是用設備標示符來存取(比如驅(qū)動器編號或驅(qū)動器名稱),而是連接成為一個樹型結構。Linux在安裝新的文件系統(tǒng)時,把它安裝到指定的安裝目錄,從而合并到這個單一的文件系統(tǒng)樹上。Linux的一個重要特征是它支持多種不同的文件系統(tǒng),文件系統(tǒng)將存放在系統(tǒng)硬盤上的文件和目錄用可以理解的統(tǒng)一形式提供給用戶,讓用戶不必考慮文件系統(tǒng)的類型或底層物理設備的特性。在嵌入式系統(tǒng)中,常用的文件系統(tǒng)有RAMFS、JFFSCRAMFS等。 ,也是壓縮和只讀格式的。它主要優(yōu)點是將文件數(shù)據(jù)以壓縮形式存儲,在需要運行的時候進行解壓縮。由于它存儲的文件形式是壓縮的格式,所以文件系統(tǒng)不能直接在Flash上運行。雖然這樣可以節(jié)約很多Flash存儲空間,但是文件系統(tǒng)運行需要將大量的數(shù)據(jù)拷貝進RAM中,消耗了RAM空間。CRAMFS的移植過程如下:首先生成image:在kernel/script/cramfs有生成image程序的源代碼,編譯之后生成mkcramfs。建立一個目錄,將需要放到文件系統(tǒng)的文件復制到這個目錄。如果目錄名為/mnt,則命令語句為:./mkcramfs /mnt 然后,讓內(nèi)核支持CRAMFS:在kemel目錄執(zhí)行命令make menuconfig配置內(nèi)核需求,選中MTD(MemoryTechnologyDeviee)設備,選擇直接編譯到內(nèi)核中去,這樣就不用insmod了。選中其中的相關選項,可以根據(jù)自己的使用情況定制,多選中一些只是使啟動變得慢一些,內(nèi)核大一點,沒有什么其他壞處。如果CRAMFS文件系統(tǒng)不是作為系統(tǒng)的根文件系統(tǒng),要改mtdblock0的主設備號從31改為30,這個修改在文件kernel/include/linux/mtd/。然后重新編譯內(nèi)核,重新燒寫內(nèi)核和文件系統(tǒng)的映像。系統(tǒng)啟動以后,就可以移植CRAMFS文件系統(tǒng)了,燒寫如下:tftp flash root 至此本系統(tǒng)開發(fā)環(huán)境己經(jīng)建立起來。4設備驅(qū)動程序開發(fā)簡介 Linux的驅(qū)動程序?qū)哟谓Y構在嵌入式系統(tǒng)中,操作系統(tǒng)是介于應用程序與硬件之間的一個系統(tǒng)軟件,其作用是為用戶提供統(tǒng)一的API接口。操作系統(tǒng)所面對的硬件設備種類非常多,不同型號不同廠家的設備又具有各自不同的特點,因此,要支持某種設備就必須提供這種設備的控制代碼,然后把它加載進內(nèi)核,內(nèi)核才能使用該設備。從內(nèi)核的角度來看,驅(qū)動程序是一個設備的代表。當內(nèi)核需要與某個設備交互時,就找到該設備的驅(qū)動程序,而后通過標準的接口調(diào)用驅(qū)動程序的相應函數(shù),控制設備,而內(nèi)核并不需要知道驅(qū)動程序如何工作,也不需要了解設備的細節(jié),設備的細節(jié)由驅(qū)動程序掌握。驅(qū)動程序可以動態(tài)地加載和卸載,內(nèi)核只包含必需設備的驅(qū)動程序。設備驅(qū)動程序一般需要完成以下功能:(1)對設備初始化和釋放;(2)把數(shù)據(jù)從內(nèi)核傳送到硬件和從硬件讀取數(shù)據(jù);(3)讀取應用程序傳送給設備文件的數(shù)據(jù)和回送應用程序的請求數(shù)據(jù);(4)檢測和處理設備出現(xiàn)的錯誤。在Linux操作系統(tǒng)下有三類主要設備文件類型:塊設備、字符設備和網(wǎng)絡設備。用戶進程正是通過設備文件來與硬件打交道。每個設備文件都有其文件屬性(c/b),表示是字符設備還是塊設備。另外每個文件都有2個設備號,第一個是主設備號,標識驅(qū)動程序;第二個是從設備號,標識使用同一個設備驅(qū)動程序的不同硬件設備。設備文件的主設備號必須與設備驅(qū)動程序在登記時申請的設備號一致,否則用戶進程將無法訪問驅(qū)動程序。Linux的設備驅(qū)動程序可分為三個主要部分:(1) 自動配置和仞始化子程序,負責檢測所要驅(qū)動的硬件設備是否存在和能否正常工作。如果該設備正常,則對這個設備及其他必需的條件(如中斷、DMA通道)進行申請并初始化。這部分驅(qū)動程序僅在初始化時被調(diào)用一次。(2) 服務于I/O請求的子程序,又稱為驅(qū)動程序的上半部分。調(diào)用這部分程序是由于系統(tǒng)調(diào)用的結果。這部分程序在執(zhí)行時,系統(tǒng)仍認為是與進行調(diào)用的進程屬于同一個進程,只是由用戶態(tài)變成了核心態(tài),但仍具有進行此系統(tǒng)調(diào)用的用戶程序的運行環(huán)境,因而可以在其中調(diào)用與進程運行環(huán)境相關的函數(shù)。(3) 中斷服務子程序,又稱為驅(qū)動程序的下半部分。在Linux操作系統(tǒng)中,并不是直接從中斷向量表中調(diào)用設備驅(qū)動程序的中斷服務子程序,而是由Linux系統(tǒng)束接收硬件中斷,再由系統(tǒng)調(diào)用中斷服務子程序。中斷可以在任何一個進程運行時產(chǎn)生,因而在中斷服務子程序被調(diào)用時,不能依賴于任何進程的狀態(tài),也就不能調(diào)用任何與進程運行環(huán)境有關的函數(shù)。因為設備驅(qū)動程序一般支持同一類型的若干設備,所以一般在系統(tǒng)調(diào)用中斷服務子程序時,都帶有一個或多個參數(shù),以唯一標識請求服務的設備。在系統(tǒng)內(nèi)部,I/O設備的存取通過設備驅(qū)動程序提供的一組固定的入口點來進行,這組入口點在驅(qū)動程序初始化時向系統(tǒng)進行登記,以便在系統(tǒng)適當?shù)臅r候調(diào)用。一般來說,字符型設備驅(qū)動程序能夠提供如下幾個入口點:(1) open入口點:打開設備準備I/O操作,對字符特別設備進行打丌操作,都會調(diào)用設備的open入口點。open子程序必須對將要進行的I/O操作做好必要的準備工作,如清除緩沖區(qū)等。如果設備是獨占的,即同一時刻只能有一個程序訪問此設備,則open子程序必須設置一些標志以表示設備的狀態(tài)。函數(shù)原型:int (*open)(struct innod*,struct file* ) (2)close入口點:關閉一個設備,當最后一次使用設備結束后,調(diào)用close子程序。獨占設備必須標記設備可再次使用。函數(shù)原型:int (*release)(struct innod*,struct file* )(3)read入口點:讀取設備,對于有緩沖區(qū)的I/O操作,一般從緩沖區(qū)罩讀取設備數(shù)據(jù)。函數(shù)原型:ssize_t(*read)(struet flle*,char*,size_st,loff_t*):(4)write入口點:向設備寫數(shù)據(jù),對于有緩沖區(qū)的I/O操作,一般向緩沖區(qū)里寫入數(shù)據(jù)。函數(shù)原型:ssize_t(*write)(struet flle*,const char*,size_st,loff_t*):(5)ioctl入口點:執(zhí)行讀寫之外的操作。函數(shù)原型:int (*ioctl)(struct inode*,struct file*,unsighed int,unsighed long)Linux對一個硬件設備的驅(qū)動有兩種方式:一種是直接加載到內(nèi)核代碼中,啟動內(nèi)核時就會驅(qū)動此硬件設備。另一種是以模塊方式。模塊(module)是在內(nèi)核空間運行的程序,實際上是一種目標對象文件,沒有鏈接,不能獨立運行,但是可以裝載到系統(tǒng)中作為內(nèi)核的一部分運行,從而可以動態(tài)擴充內(nèi)核的功能。模塊最主要的用處就是用來實現(xiàn)設備驅(qū)動程序,當應用程序需要它時再加載進內(nèi)核空間運行。通常一個硬件的驅(qū)動程序就是指一個驅(qū)動模塊。對于任何一個硬件設備,它在/dev下面存在一個對應的邏輯設備節(jié)點,即通常所說的設備文件。這個節(jié)點是通過mknod命令建立的,其中指定了主設備號和次設備號。主設備號表明了某一類設備,一般對應確定的驅(qū)動程序;次設備號一般用于區(qū)分不同屬性,例如不同的使用方法,不同的位置,不同的操作。這個設備號是從/proc/devices文件中獲得的,所以一般是先有驅(qū)動程序在內(nèi)核中,才有設備節(jié)點在目錄中。圖41表明了驅(qū)動程序與系統(tǒng)之間的關系。通過模塊的read writ操作Mknod通過主次設備號相連返回主設備號Insmod向系統(tǒng)注冊Open read write操作應用程序硬件設備文件驅(qū)動模塊/etc/內(nèi)核圖41 驅(qū)動程序與系統(tǒng)的關系目前比較流行的攝像頭是基于ov511芯片和zc301芯片的,已有很多關于zc301芯片的開發(fā)文檔之類,ov511可能比較陳舊,可參考的資料不是很多,我們攝像頭的選擇取決于實驗室配置的開發(fā)板——三星s3c2410的開發(fā)板,選擇網(wǎng)眼的ov511攝像頭。攝像頭屬于視頻設備,在Linux內(nèi)核中,Video for Linux(簡稱V4L)是關于視頻設備的驅(qū)動標準。這個標準為應用程序定義了一系列的接口函數(shù),內(nèi)核、驅(qū)動和應用程序都是依靠這個標準來進行交流。本系統(tǒng)所使用的USB攝像頭正是基于
點擊復制文檔內(nèi)容
數(shù)學相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1