首页 工作计划 工作总结 事迹材料 心得体会 述职报告 疫情防控 思想汇报 自查报告 党建材料 策划方案 教案设计 范文大全
  • 主题教育
  • 党课下载
  • 党史学习
  • 振兴乡镇
  • 工作汇报
  • 不忘初心
  • 规章制度
  • 谈话记录
  • 扫黑除恶
  • 共同富裕
  • 脱贫攻坚
  • 整改报告
  • 工作要点
  • 对照材料
  • 调查报告
  • 教育整顿
  • 观后感
  • 申请书
  • 讲话稿
  • 致辞稿
  • 评语
  • 口号
  • 发言稿
  • 读后感
  • 治国理政
  • 学习强国
  • 公文范文
  • 基于ARM的嵌入式Web服务器的应用研究

    时间:2023-05-29 11:05:05 来源:正远范文网 本文已影响 正远范文网手机站

    摘 要:本文给出了一种嵌入式 Web Server的设计方案。该方案对基于ARM和Linux的嵌入式 Web Server 系统的软硬件体系结构及构建Boa服务器的具体方法进行了详细的阐述,实现了浏览器与嵌入式系统之间的动态交互。这种嵌入式Web Server方案可以广泛地应用在远程监控、智能家电等领域,具有广泛的应用前景。

    关键词:ARM 处理器; Linux;Web 服务器

    嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。随着嵌入式系统的迅速发展,给Linux操作系统提供了极其广阔的应用前景。目前网络化成为嵌入式系统发展的一大趋势,如果工业生产现场的各种物理信息、生物信息能够通过Internet网自动地、实时地、方便地、简单地提供给人们,那么人们就可以坐在自己的家里上班了。在这个背景下本文提出基于arm-Linux嵌入式系统Web服务器的实现方案。

    1 arm-Linux嵌入式软件平台的構建

    arm-Linux嵌入式软件平台的构建主要包括Boot Loader设计、Linux内核移植和文件系统设计3个部分。其中Boot Loader的功能是初始化CPU模式和外设硬件,引导操作系统,提供下载文件和应用程序。嵌入式Linux系统中常用的Boot Loader有armboot,redboot,u-boot等,其中u-boot是当前比较流行,功能比较强大的Boot Loader,可以支持多种体系结,设计中采用周立功单片机提供的根据u-boot修改而来的Boot Loader程序,将Boot Loader下载到FLASH的起始位置中,重启嵌入式平台后将启动Boot Loader,进入下载模式,可以进行Linux内核和文件系统的加载。

    对于Linux内核源代码,采用linux-2.4.18版本。首先在宿主机平台上下载linux-2.4.18-rmk7-pxa1-mz5.tar.bz2源码包,使用make menuconfig命令对其进行裁减编译,除去不需要的项目以减小内核,建立依赖关系make dep,编译内核make zImage,将生成ARM Linux内核映像文件zImage,这就是将要下载到嵌入式平台的内核映像文件。

    根文件系统主要有以下几个目录组成:/bin目录下放置shell命令程序和文件管理程序等一类的文件;/dev目录下放置Linux操作系统的所有设备文件;/etc目录下放置系统配置文件;/lib目录下放置所有系统运行所必需的库文件。在定制嵌入式系统的系统应用程序的时候,可以采用busybox工具包,它是一个继承了一百多个常用Linux命令和工具的软件,利用busybox,可以方便的定制需要的应用程序。有了根文件系统,就可以制作RamDisk文件系统映像以下载到FLASH中。

    将制作好的内核映像和RamDisk映像通过ftp方式下载到FLASH中,系统复位后,Linux系统就可以完全自动地从本地FLASH启动了。

    2 Boa服务器在arm-linux平台的实现

    目前,能够在嵌入式Linux下实现的Web服务器主要有3个:HTTPD、THTTPD和Boa。其中Boa是一个非常小巧的Web服务器,可执行代码只有约60KB,且源代码开放,它的设计目标是速度和安全,性能优秀,特别适合在嵌入式系统中的应用,采用Boa来实现嵌入式Web服务器。

    2.1 首先下载Boa源码boa-0.94.13.tar.gz,解压并进入src子目录,用configure命令生成Makefile文件。

    2.2 编辑Makefile文件,将CC=gcc和CPP=gcc-E分别改为CC=arm-linux-gcc和CPP=arm-linux-gcc-E以实现交叉编译。

    2.3 编译make,并将调试信息去掉arm-linux-stripboa,在/src/目录下得到可执行文件boa。

    2.4 配置服务器设置,主要是为了让其支持CGI程序的执行。需要在/etc目录下建立配置文件boa.conf,可将boa源码目录下的boa.conf文件拷贝过来,做简单修改即可。可以根据自己需要对其进行修改,但必须保证其它的辅助文件和设置与boa.conf里的配置相符,否则Boa将不能正常工作。

    2.5 创建日志文件所在目录/home/log/boa;创建HTML文档的主目录/home/www;创建CGI脚本所在目录/home/www/cgi-bin/;从主机/etc目录下拷贝mime.types文件到目标板文件系统/etc目录,mime.types文件用来指明不同文件扩展名对应的MIME类型。

    在具体执行时,将主页(默认为index.html)放在/home/www目录下,将CGI应用程序放在/home/www/cgi-bin/目录下。

    3 小型数据库SQLite在arm-linux平台的实现

    在嵌入式Web服务器中,用户信息的存储,用户的登录退出,信息的存储与查询等,都需要一个嵌入式数据库。综合考虑,使用SQLite作为系统的后台数据库,SQLite是用一个小型C库实现的一种强有力的嵌入式关系数据库管理体制,具有源代码开放、体积小、速度快、功能完善、提供丰富API支持等众多优点,具有SQL标准语言格式,使用非常方便。

    这里使用的版本是sqlite-3.3.8,对其在arn-linux的移植主要包括两个方面的修改,首先是将编译器、归档工具等换成交叉工具链中的对应工具,比如,gcc换成arm-linux-gcc等等;其次是去掉与TCL相关的编译选项,因为默认情况下,将会编译SQLite3的TCL语言绑定,而在移植到arm-linux平台的时候并不需要,所以将与TCL有关的内容去掉。最后编译,执行,将生成需要的可执行文件sqlite3,头文件sqlite3.h和库函数文件libsqlite3.a。

    4小结

    嵌入式Web Server从本质上来说就是一段能响应 Web 浏览器请求的程序, 实现 Web 服务器主要是为了使用 WWW 浏览器, 这样用户就可以在 WWW 浏览器中设置嵌入式设备工作参数, 通过局域网或广域网访问和控制嵌入式系统设备, 灵活地监控嵌入式设备的运行状态。本设计方案经过简单的功能扩展即可广泛应用在智能家电的远程控制、嵌入式GPRS平台、自动化设备远程监控等领域,具有广泛的应用前景。

    参考文献:

    [1]张铮.基于嵌入式Web技术的监控系统设计与实现[J].电脑知识与技术,2015,11(7):38-39.

    [2]赵联政,王桂海.基于ARM平台的嵌入式Web服务器设计[J].软件导刊,2015,14(7):10-12.

    推荐访问:嵌入式 服务器 研究 ARM Web