• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 深入研究嵌入式web服務器視頻監控的應用

    深入研究嵌入式web服務器視頻監控的應用

    作者: 時間:2012-11-21 來源:網絡 收藏

    在thttpd.c的main函數里添加設備支持:打開串口設備。

    intcom1fd=open(/dev/ttyS1,O_RDWR|O_NOCTTY);

    傳輸波特率的設定:

    tcgetattr(com1fd,oldtio);

    cfmakeraw(oldtio);

    cfsetispeed(oldtio,B9600);

    cfsetospeed(oldtio,B9600);

    tcsetattr(com1fd,TCSANOW,oldtio);

    在libhttpd.c里包含定義云臺信令的頭文件后,在httpd_parse_request中添加如下代碼,

    memcpy(cmd,YT_FOCUS_IN,YT_CMD_NUM);

    請求轉換為對應的云臺信令存儲在cmd數組中,最后,由于uclinux把所有設備作為文件操作,所以可以通過write(com1fd,cmd,YT_CMD_NUM);將云臺信令正確發出去。

    8.配置信息的保存(MTD驅動的實現)

    uCLinux在ARM上移植過程中,它是在Bootloader初始化系統并重映射內存后,由Bootloader將Kernel和根文件系統的映像從FLASH上直接復制到RAMuCLinux系統起始地址(0x8000),然后通過設定PC值將控制權交給uCLinux。

    這種方式采用的是ROMFS文件系統,系統結構簡單,實現方便,但ROMFS是只讀文件系統。RAM盤雖可寫但一旦掉電就會丟失內容。若想長久保存程序的配置文件可采用兩種方法:一種是將FLASH上劃出幾個固定的扇區可讀可寫,用以專門存放所有要用到的配置文件;另一種是建立可寫的JFFS2文件系統。前一種方法代碼簡單、靈活,適用于不太頻繁的文件寫入。后一種實現起來也比較簡單,但時間、空間等方面的代價要高于前一種,適用于非常頻繁的文件寫入(比如一分鐘超過十次)。基于本系統中對配置數據存儲的實時性要求不高,而資源又十分寶貴,因此考慮采用第一種方法,這就是MTD(memorytechnologydevice內存技術設備)。MTD是用于訪問memory設備(ROM、flash)的Linux的子系統。其所有源代碼在/drivers/mtd子目錄下。

    由于MTD的主要目的是為了使新的memory設備的驅動更加簡單,因為它介于特定的閃存設備和文件系統之間,可以理解為它在硬件和上層之間提供了一個抽象的接口。所以硬件驅動程序不需要知道象JFFS2和FTL那樣的用戶模塊使用的方法。所有它們真正需要提供的就是一組對底層閃存進行read、write和erase操作的簡單例程,即/mtd目錄下mtd-utils.c相應函數。將mtd-utils.c繼承過來,另外,加上手工添加的flash分區表即可達到配置文件保存的目的。

    配置信息的保存

    本系統只有一片FLASH,大小為2M。擬分區如下:

    name:bootloader(128KB),

    size:0x20000,

    offset:0x0,

    mask_flags:MTD_WRITEABLE//只讀分區

    name:kernelrootfs(1856KB),

    size:0x1D0000,

    offset:0x20000

    name:systemconfig(64KB),

    size:0x10000,

    offset:0x1F0000

    將包含本分區表的文件放在drivers/mtd/map下,并修改相應的makefile使之編譯時有效。

    然后,選擇適當的MTD用戶模塊,啟用對閃存的訪問:MTD_CHAR和MTD_BLOCK。MTD_CHAR提供對閃存的原始字符訪問,而MTD_BLOCK將閃存設計為可以在上面創建文件系統的常規塊設備(象IDE磁盤)。與MTD_CHAR關聯的設備是在/vendor/Samsung/4510B/makefile的DEVICES中添加mtd0,c,90,0、mtd1,c,90,2、mtd2,c,90,4,而與MTD_BLOCK關聯的設備是添加mtdblock0,b,30,0、mtdblock1,b,30,1、mtdblock2,b,30,2。

    最后,需要將MTD子系統編譯到內核中,即打開makemenuconfig里MTD相關的選項。

    9.配置信息的管理

    在thttpd.c的main函數,加入open(/dev/mtd2,O_RDWR)可打開mtdblock2。將drivers/mtd下mtd-utils.c復制到user/thttpd目錄下,即可使用其中的一些函數方便的實現flash的read和write操作。

    10.結語

    對于Web,其意義是重大的。它為我們管理、控制和監測各種各樣設備提供了一個很好的途徑。這種設備可以是具有有限內存資源的8位或16位系統,已足夠提供一個用戶界面,而且這種方式是基于Internet的。這種設備可以在世界任何一個地方,只要它連入Internet就能夠控制它。

    目前國外的相關很多,如Pharlap公司的MicroWeb、AgranatSystems公司的EmWeb、EmWare公司的emMicro、Allegro公司的RomPager、WindRiver公司的Wind,還有Boa、Enea、PicoWeb、ChipWeb、Ipic、NetAcquire、Voyager、Quiotix等。國內的有Webit。

    創新:

    1. 技術的已越來越廣泛,但大多采用比較簡單的BOA,真正應用功能更強大的Thttpd的方案少之又少,本文正是Thttpd在實際應用中的

    2. 本文根據監控系統對數據吞吐量和安全可靠性等各方面的實際要求,結合相關研究的新進展,討論了在監控系統設計中的應用技巧,并詳細做了實現上的闡述。文中涉及的某些技術應用技巧,譬如web server的功能框圖,可廣范應用于各種基于嵌入式web技術的系統中去。譬如路由器設計。

    linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 泌阳县| 丰都县| 磴口县| 太湖县| 延长县| 长治市| 宁城县| 合作市| 财经| 建水县| 永胜县| 隆林| 东光县| 连南| 南川市| 上饶市| 二手房| 弥渡县| 丰都县| 广东省| 社会| 苗栗县| 舞阳县| 屏南县| 大冶市| 新建县| 曲松县| 东平县| 株洲县| 孝感市| 马边| 孝昌县| 墨竹工卡县| 皋兰县| 朝阳市| 津市市| 大同市| 阿勒泰市| 齐河县| 肥西县| 独山县|