关 闭

新闻中心

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中即可。



评论


相关推荐

技术专区

关闭