關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > uClinux的網絡化遠程監控系統的設計理念

        uClinux的網絡化遠程監控系統的設計理念

        作者: 時間:2012-05-31 來源:網絡 收藏

        4 系統軟件的設計

        4.1 操作系統的移植

        由于嵌入式websever硬件資源有限,在此平臺上只能運行一個小型的操作系統。考慮到硬件的特點和對系統的功能要求等因素,我們選擇了一款目前比較成熟的操作系統,并在此基礎上實現了嵌入式webserver。從標準的Linux 內核派生而來,通過對內存管理和進程管理等相關方面進行改寫,滿足無MMU處理器的開發要求。它繼承了Linux穩定而優良的性能,同時通過個性化的內核定制,能夠更好的滿足嵌入式應用的多樣化需要,提供豐富的應用軟件支持。

        為了使uClinux能運行于硬件平臺,必須對uClinux進行移植。uClinux的移植可以修改內核中相關文件來實現。要修改的文件很多,不能一一介紹,主要有以下幾處: (1)linux/arch/mach-S3C44B0X目錄下處理器結構的,如:arch.c、irq.c等。arch.c指定了系統啟動時用到的地址,按照硬件設計的不同,地址將有所不同;irq.c是與中斷處理相關的程序。由于linux所支持體系結構的種類繁多,所以對一個新型的體系,其低級例程可以模仿與其相似的體系例程編寫,在這里可以從mach-S3C4510目錄下的文件修改得到。(2)include/asm-armnommu /arch-S3C44B0X下相關文件,如:dma.h、hardware.h、irq.h、system.h、time.h等。dma.h這條文件定義了DMA通道,以及DMA可以使用的內存空間。hardware.h件定義了內存地址和10地址,根據設計的硬件電路不同而不同。irq.h中定義了 fixup_irq()、irq_init_irq()等函數。system.h在該文件中需要定義兩個函數:arch-idle()和arch- reset()。time.h實現了定時器中斷處理s3c44b0x_timer_interrupt()和相關函數。(3)各級相關makefile。在交叉編譯環境下編譯內核,當編譯結束時會生成內核的鏡像文件image.rom,將其和bootloader一起燒寫在板子的Flash中,重新加電通過串口可以觀測到內核的啟動信息,證明系統移植成功。

        4.2 守護進程的實現

        uClinux移植完成后就可以在此平臺上進行應用程序開發了。系統開發的主要功能要求是使系統響應客戶機的請求,完成特定的操作,同時能夠自動的將本地的監測數據傳送到客戶機上。根據這一要求,必須對在服務器上實現一個守護進程。該程序在uClinux下用C語言編寫,當uClinux操作系統啟動后會自動運行,流程圖如圖3所示。


        圖 3

        4.3 嵌入式Webserver的實現

        考慮到硬件資源的限制,這里我們選擇uClinux下的boa服務器。Boa是一款單任務的HTTP服務器,它通過建立HTTP請求列表來處理多路連接請求,而且它只為CGI程序創建新的進程,這樣就節省了大量的系統資源, 因此,Boa具有很高的HTTP請求處理速度和效率,在嵌入式系統中具有很高的應用價值。要在uClinux上運行boa需要對uClinux進行修改, 在user/Makefile,加入dir_$(CONFIG_USER_BOA_SRC_BOA) += boa;在config/config.in中加入

        comment Network Applications

        bool boa CONFIG_USER_BOA_SRC_BOA

        在uClinux-dist/vendors/Samsung/44b0/rc中加入一行ifconfig eth0 202.117.0.2 up,再增加一行腳本命令boa ,把Default.html定義為客戶瀏覽的控制頁面,放在/uClinux-dist/romfs下面[3]。最后,在進行內核配置時make Menuconfig時選中boa ,重新編譯內核,將最終生成的文件燒寫進Flash中即可。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 洛隆县| 安化县| 东光县| 临朐县| 仙游县| 蒙阴县| 天水市| 蓬溪县| 潞城市| 鄂州市| 绿春县| 灵璧县| 民县| 梁平县| 增城市| 于田县| 孟连| 台北市| 沁水县| 伊吾县| 清涧县| 墨脱县| 巫溪县| 马鞍山市| 仙桃市| 永泰县| 黄龙县| 英吉沙县| 化隆| 金溪县| 洛浦县| 安吉县| 大理市| 寿宁县| 正安县| 海城市| 上饶县| 上饶市| 苍南县| 孟州市| 舒兰市|