【正文】
希望在畢業(yè)設(shè)計期間,能夠有始有終,認(rèn)真做好畢業(yè)設(shè)計,爭取優(yōu)異成績。writes出錯的一個常見原因是:磁盤已寫滿,或者超過了對一個給定進(jìn)程的文件長度限制對于普通文件,寫操作從文件的當(dāng)前位移量處開始。最后,第三個參數(shù)在歷史上是一個不帶符號整數(shù),以允許一個1 6位的實現(xiàn)可以一次讀或?qū)懼?5534個字節(jié)。其經(jīng)典定義是:int read(int fields, char *buff, unsignedn bytes) 。? 當(dāng)從網(wǎng)絡(luò)讀時,網(wǎng)絡(luò)中的緩沖機(jī)構(gòu)可能造成返回值小于所要求讀的字節(jié)數(shù)。如已到達(dá)文件的尾端,則返回0。很多程序都使用這一功能而不顯式地用close關(guān)閉打開的文件。)? O_EXCL 如果同時指定了OCREAT,而文件已經(jīng)存在,則出錯。下列常數(shù)則是可選擇的:? O_APPEND 每次寫時都加到文件的尾端。? O_WRONLY 只寫打開。)在函數(shù)原型中此參數(shù)放置在注釋中。include sys/include sys/include int open(const charp a *t hname, int oflag,.../*, mode_t mode */ ) 。 otherwise, an error has occurred. A mon cause for a write error is either filling up a disk or exceeding the file size limit for a given process For a regular file, the write starts at the file39。 First, the second argument was changed from a char * to a void * to be consistent with ISO C: the type void * is used for generic pointers. When reading from a recordoriented device. Some recordoriented devices, such as magnetic tape, can return up to a single record at a time. When reading from a terminal device. Normally, up to one line is read at a time. (We39。Returns: 0 if OK, 1 on errorClosing a file also releases any record locks that the process may have on the file. When a process terminates, all of its open files are closed automatically by the kernel. Many programs take advantage of this fact and don39。t exist. This option requires a third argument to the open function, the mode, which specifies the access permission bits of the new file. (When we describe a file39。預(yù)期結(jié)果: 制作出一個能實際應(yīng)用的基于嵌入式Linux的視頻監(jiān)控系統(tǒng)。(4)、USB驅(qū)動設(shè)計,修改配置Linux內(nèi)核并編譯。設(shè)計重點難點: 本課題重點和難點在于交叉編譯環(huán)境的搭建,Linux內(nèi)核的編譯,根文件系統(tǒng)的制作,視頻采集的實現(xiàn),視頻圖像的壓縮和傳輸?shù)戎R要點。Linux本身不是一個為嵌入式設(shè)計的操作系統(tǒng),不是微內(nèi)核的,并且實時性不強(qiáng)。不適合我做課題。Vxworks因出現(xiàn)稍早,實時性很強(qiáng)(據(jù)說可在1ms內(nèi)響應(yīng)外部事件請求),并且內(nèi)核可極微(據(jù)說最小可8K),可靠性較高等,所以在北美,Vxworks占據(jù)了嵌入式系統(tǒng)的多半疆山。視頻采集是基于Video4Linux的視頻采集模塊來實現(xiàn),Linux系統(tǒng)中的視頻子系統(tǒng)Video4Linux為視頻應(yīng)用程序提供了一套統(tǒng)一的API,視頻應(yīng)用程序通過調(diào)用即可操作各種不同的視頻捕獲設(shè)備,包括電視卡、視頻捕獲卡和USB攝像頭等。一個最基本的Linux操作系統(tǒng)應(yīng)該包括:引導(dǎo)程序、內(nèi)核與根文件系統(tǒng)三部分。目前,在便攜式消費類電子產(chǎn)品、無線設(shè)備、汽車、網(wǎng)絡(luò)、存儲產(chǎn)品等都可以看到S3C2440與Linux相結(jié)合的身影。本文將對嵌入式Linux在ARM開發(fā)平臺上內(nèi)核、文件系統(tǒng)的開發(fā)和移植,視頻前端設(shè)備(USB攝像頭)驅(qū)動程序的開發(fā),視頻圖像的采集和壓縮,服務(wù)器的建立及視頻圖像的網(wǎng)絡(luò)傳輸?shù)妊芯績?nèi)容進(jìn)行了詳細(xì)的論述,并對系統(tǒng)建成后在實際中的應(yīng)用進(jìn)行了測試和實驗。本系統(tǒng)的主要硬件組成為基于三星S3C2440的mini2440開發(fā)系統(tǒng)和USB攝像頭。這種方案是當(dāng)前應(yīng)用較為廣泛的方法,使用了近來發(fā)展迅速的嵌入式技術(shù)、網(wǎng)絡(luò)化技術(shù)以及圖像處理的技術(shù),具有較高的技術(shù)水平。數(shù)字硬盤錄像機(jī)摒棄了傳統(tǒng)的模擬數(shù)據(jù),采用了數(shù)字化的方式記錄數(shù)據(jù)。采用基于嵌入式Web服務(wù)器為核心的監(jiān)控系統(tǒng),在組網(wǎng)方式上與傳統(tǒng)的模擬監(jiān)控和基于PC平臺的監(jiān)控方式有極大的不同。視頻監(jiān)控系統(tǒng)在電信、銀行、交通、電力、水利、石化、智能大廈等諸多領(lǐng)域有著廣泛的應(yīng)用。在目前已經(jīng)開發(fā)成功的嵌入式系統(tǒng)中,大約有一半使用的是Linux,這與它自身的優(yōu)良特性是分不開的。其主要包括:(1)、交叉編譯環(huán)境的搭建;(2)、嵌入式Linux的移植;(3)、文件系統(tǒng)的制作;(4)、USB攝像頭的驅(qū)動設(shè)計;(5)、視頻圖像的采集、壓縮、傳輸?shù)燃夹g(shù)。(6)、嵌入式WEB服務(wù)器的建立為了更加高效地對監(jiān)控現(xiàn)場進(jìn)行實時監(jiān)控和遠(yuǎn)程監(jiān)控,同時考慮到各方面的成本因素而提出基于嵌入式Linux的視頻監(jiān)控系統(tǒng)。嵌入式Linux同Linux一樣,具有低成本、多種硬件平臺支持、優(yōu)異的性能和良好的網(wǎng)絡(luò)支持等優(yōu)點。隨著計算機(jī)技術(shù)、多媒體技術(shù)和網(wǎng)絡(luò)技術(shù)的發(fā)展,視頻監(jiān)控系統(tǒng)正向數(shù)字化、網(wǎng)絡(luò)化、集成化和智能化方向發(fā)展?;赪eb服務(wù)器輸出己完成模擬到數(shù)字的轉(zhuǎn)換并壓縮,采用統(tǒng)一的協(xié)議(如TCP/IP協(xié)議)在網(wǎng)絡(luò)上傳輸,因此支持跨網(wǎng)關(guān)、跨路由器的遠(yuǎn)程視頻傳輸,性能穩(wěn)定可靠,無需專人管理。具有存儲量大,成本低,檢索方便的特點,在許多領(lǐng)域受到重用。由于把視頻采集壓縮和Web功能集成到一個設(shè)備內(nèi)直接連入網(wǎng)絡(luò),達(dá)到即插即看,省掉很多復(fù)雜的電路,安裝也很方便(僅需設(shè)置IP地址),用戶無需使用專用軟件,在具有網(wǎng)絡(luò)接口的地方都可以直接