嵌入式系统设计期末大作业

发布 2020-02-28 10:34:28 阅读 8174

嵌入式web服务器的设计与实现。

引言。近年来,传统上用于办公室和商业的以太网逐渐进入了基于嵌入式设备的控制领域。web技术可跨越诸多设备和系统在硬件和软件产品间做到即连即用,只需用web浏览器通过以太网和tcp/ip协议便可访问各种信息终端。

客户机可任意设置,只要能连上internet并有权访问web服务器,便可查阅现场有关信息,给维护和管理工作带来很大的方便。本文提出的基于arm linux的嵌入式web服务器以s3c2410处理器为核心,以可裁减可移植的linux为操作系统,为嵌入式系统的internet接入提供了一种方便、快捷、简单的实现方法。

1 嵌入式web服务器技术。

嵌入式web服务器(embedded web server,ews)是指将web服务器引入到现场测试和控制设备中,在相应的硬件平台和软件系统的支持下,使传统的测试和控制设备转变为具备了以tcp/ip为底层通信协议,web技术为核心的基于互联网的网络测试和控制设备。其执行3种基本功能:

①静态和动态网页信息发布;

②提供接口监测现场设备;

③提供接口控制现场设备。

由于web技术的开放性和独立平台特性,降低了软件系统和通信系统的设计、维护工作量,提高了现场测试和控制设备的管理水平。嵌入式web服务器技术提供了异构网络远程管理和监控设备的方法和途径。

在嵌入式linux系统中,常用的web server有boa、httpd、thttpd和mini-httpd等。其中boa是一个运行在类unix系统中的小型webserver,适合嵌入式环境。在boa中若两个用户同时访问,则其中的一个必须等待,它产生独立进程来处理cgi(通用网关接口)程序,因此占用较少的资源,其体系结构如图1所示。

boa的优点在于其快速可靠性。它与其它服务器的区别:没有为cgi程序设置remote_host环境变量;没有server-side include(ssi)项,要产生动态网页只能通过cgi:

没有设置进入控制,而是根据linux/unix的文件系统的权限来决定服务的对象:没有chroot选项,即不能改变根目录。

基于以上的阐述,boa应用到嵌入式平台上有着诸多的优势,本文的嵌入式web服务器也因此选用boa作为平台。下面笔者将着重介绍嵌入式web服务器的硬件平台及软件体系的设计与实现。

图1 boa网络服务器的体系结构。

2 硬件平台的设计与实现。

本文的硬件平台采用s3c2410为系统硬件核心,系统框图如图2所示。主要包括:存储系统、系统接口、用户接口(显示lcd与键盘)3个部分。

图2硬件平台体系结构。

s3c2410把外部复位信号作为一个中断处理,在系统复位时,程序指针(pc)被设置为0,程序跳转到0x00000000开始运行。此空间对应bank0,系统的2mb的norflash和处理器的bank0相连接。在norflash中存储的是bootloader,它负责配置处理器的结构、工作模式以及自动检测系统的各个硬件是否工作正常。

系统经过初始化和自检后,bootloader负责把16 mb nandfiash的zlmage(即软件系统的镜像文件)复制到0xc0008000地址(此地址是系统64mb sdram的首地址)。然后,引导程序把pc指向0xc0008000地址,系统开始运行。

3 基于boa的软件平台设计与实现。

上述的嵌入式硬件平台实际上是一通用平台,基于该平台构建嵌入式web服务器,设计者必须考虑其通用性、响应速度及对于硬件的可操控性。正是基于这样的考虑,笔者分三层构建嵌入式web服务器的软件体系:armlinux的建立;boa服务器的移植与构建;cgi程序的扩展。

3.1 arm linux的建立。

arm linux的建立是基于u-boot的实现,它的建立实际上是linux内核在s3c2410上移植的过程,主要分为3个步骤:建立交叉编译环境;编译内核;生成并配置根文件系统。因本文的工作重点并不是介绍linux移植,因此下面只是简要介绍3个步骤的实现。

(1)建立交叉编译环境:建立交叉编译环境的过程实际就是对交叉编译器压缩包解包的过程。在本文中,所有的软件源码包都放在/tools目录下,解包所用指令序列在此不做赘述,其解包路径为/usr/local/arm cross。

(2)交叉编译linux内核:在交叉编译内核之前,对编译选项的配置是很重要的。执行“make menuconfig”指令,进入syetem type选项。

本文中选择对s3c2410系统板的支持,然后配置file system以及block device。保存配置后要修改make.file文件,即把交叉编译的路径指定为本文中安装的特定目录,修改语句为:cross_complie=/usr/ioca/arm_cross/3.4.1/bin/arm-linux-。

最后通过make dep;make clean;make zlmage命令编译内核,得到内核压缩映象zlmage。

(3)生成并配置根文件系统:生成并配置文件系统主要有以下的几个步骤完成:安装busybox工具包(首先解压busybox压缩包,在解压目录下修改makefile文件,然后使用make install完成安装);创建文件系统的映象文件(首先创建img目录,然后进入根目录创建一个空的映象文件,加载创建的文件系统,并复制文件系统中必要的文件):

配置文件系统(经过上述步骤已经产生了文件系统所需要的一些文件,但是需要设置根路径,即在根路径下添加必须的目录、文件并且正确设置属性)。

3.2 boa服务器的移植与构建。

基于boa建立嵌入式web服务器可分为以下步骤完成:

(1)建立交叉编译环境并**boa源码包解压:交叉编译环境在前文中构建arm linux时已经建立了,这里编译bao使用同样的交叉编译器,所以不需要重新建立一遍。boa的源码包可以从其官方**http:

//www.boa.org**并解压。

(2)编译boa**生成可执行文件boa:在编译之前,需要在fooa/src/configure文件中加入cc和cpp的说明,同时修改makefile里的cc=/usr/local/arm cross/3.4,1/bin/arm.1inux.。另外还要在编译之前指定web服务器的根目录路径(serverroot),具体方法是:

进入/boa/src/目录,通过修改defines.**件中#defineerver root“/home/httpd”语句来指定serverroot。然后make即可完成编译并生成boa可执行文件。

(3)配置boa服务器:为了能够在硬件平台上运行web服务器boa,还需要对其运行环境、参数等进行设置,并将最终的配置文件boa.conf置于适当位置。通过修改配置文件boa.conf"可实现对web服务器的配置,部分配置为:

侦听端口使用80端口;访问日志accesslog存放于/var/log/boa/access_log;错误日志errorlog位于/var/log/boa/error_log;文件的根目录documentroot设在/home/httpd/;keepalivemax的值修改为50;keep-alivetimeout的值修改为10;设置cgipath为/cgi-bin/等;在boa.conf的最后加上sewernameemserver,即将emserver作为服务器名称(当然也可用其它名称作为服务器名)。最后将修改好的配置文件boa.conf存放于嵌入式系统根文件/ere/boa目录下。通过镜像制作工具执行命令genromfs-fromfs.img—dromdisk生成romdisk的镜像文件romfs.img,将romfs.img通过bootloader**到flash存储器。

(4)测试boa的运行:为了确保boa的正常运行,利用简单的测试程序测试boa的运**况。在目录/home/bttpd/下建立index.html文档,其内容为:

this is boa server</body></html>

在pc机上通过浏览器连接到运行boa的硬件平台http://192.168.1.20/(硬件平台ip),若页面显示this is boa server,说明boa可以正常获取页面。

在/cgi.bin/路径下建立test文件,其内容如下:#!/bin/sbecho content-type:

text/htmlecho”this is cgi test</body></html>”在浏览器中输入http://192.168.1.20/cgi—bin/test,若页面显示this is cgi test,说明服务器可以正常执行cgi程序。

3.3 cgi扩展开发。

嵌入式系统设计期末大作业

标准。江苏科技大学。嵌入式系统设计期末大作业。嵌入式web服务器设计。学号 1341901124 武易。专业 科技大学。文案。嵌入式web服务器的设计与实现。引言。近年来,传统上用于办公室和商业的以太网逐渐进入了基于嵌入式设备的控制领域。web技术可跨越诸多设备和系统在硬件和软件产品间做到即连即用,...

嵌入式系统设计大作业

1 51 叙述jtag接口在嵌入式开发中的作用。2 叙述嵌入式平台的搭建过程,以linux为例。3 给出现今有哪些用于嵌入式开发的芯片名称,他们分别是哪些公司的产品?体系结构是什么?4 现今较流行的嵌入式操作系统有哪些?5 pxa270嵌入式开发板的接口有哪些?6 请写出nor flash和nand...

嵌入式系统大作业

嵌入式手机设计方案。嵌入式手机设计方案。一 需求分析。1.问题提出 随着通讯技术的不断发展,手机已经成为现在人们必不可少的通讯工具。在最近几年中,手机技术和产业也一直有着巨大的发展变化,手机的功能和外观都在逐渐完善和美化。为适应大多数人的手机产品的需求,我根据现在手机的一些特点进行分析 总结。然后设...