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

合集下载

嵌入式系统设计大作业

嵌入式系统设计大作业

嵌入式系统设计大作业1、叙述JTAG接口在嵌入式开发中的作用。

答:(1)用于烧写FLASH烧写FLASH的软件有很多种包括jatg.exe fluted flashpgm等等,但是所有这些软件都是通过jtag接口来烧写flash的,由于pc机上是没有jtag接口的,所以利用并口来传递信息给目标板的jtag接口。

所以就需要并口转jtag接口的电路。

(2)用于调试程序同时应该注意到jtag接口还可以用来调试程序。

而调试程序(如ARM开发组件中的AXD)为了通过jtag接口去调试目标板上的程序,同样是使用pc的并口转jtag接口来实现与目标板的通信。

这样,并口转jtag接口的电路就有了两种作用。

(3)仿真器根据(1)和(2)的总结,并口转jtag接口的电路是两种应用的关键,而这种电路在嵌入式开发中就叫仿真器。

并口转jtag接口的电路有很多种,有简单有复杂的,常见的仿真器有Wigger,EasyJTAG,Multi-ICE等。

这些所谓的仿真器的内部电路都是并口转jtag接口,区别只是电路不同或使用的技术不同而已。

2、叙述嵌入式平台的搭建过程,以linux为例。

答:1) 一:建立宿主机开发环境建立交叉编译的环境即在宿主机上安装与开发板相应的编译器及库函数,以便能够在宿主机上应用开发工具编译在目标板上运行的Linux引导程序,内核,文件系统和应用程序交叉编译:在特殊的环境下,把嵌入式程序代码编译成不同的CPU所对应的机器代码。

开发时使用宿主机上的交叉编译,汇编及工具形成可执行的二进制代码(该代码只能在开发板上执行),然后下载到开发板上运行2) 下载和安装arm-Linux-gcc编译工具链下载最新的arm-Linux-gcc并解压至当前目录下在系统配置文件profile中设置环境变量方法:直接在profile文件中加入搜索路径立即使新的环境变量生效:运行source命令,检查是否将路径加入到path,测试是否安装成功,编译程序,测试交叉工具链3) 配置超级终端mini mini是宿主机与目标板进行通信的终端:在宿主机Linux终端中输入:mini-s或输入mini然后按ctrl+A+O对超级终端mini进行配置,再选择串口并配置串口,最后保存即可4) 建立数据共享服务:NFS服务是Linux系统中经常使用的数据文件共享服务5) 编译嵌入式系统内核:内核配置,建立依存关系,建立内核6) 制作文件系统3、给出现今有哪些用于嵌入式开发的芯片名称,他们分别是哪些公司的产品?体系结构是什么?S3C2410X基于ARM的Sumsang;XscalePXA255/PXA270基于ARM的Intel;摩托罗拉MC基于68k;Power 601基于Power PC;MIPS32Kc基于MIPS4、现今较流行的嵌入式操作系统有哪些?答:(1) VxWorks(2)wince(3)linux(4)android(5)μC/OS-Ⅱ5、PXA270嵌入式开发板的接口有哪些?答:全双工异步串行口和硬件流控制串行口,10M标准以太网接口10M/100M标准以太网接口,USB接口,红外通讯口,音频接口,存储卡口,视频和触摸屏接口摄像头接口,RTC时钟接口,调试接口,下载接口,电源接口。

嵌入式系统学习期末作业

嵌入式系统学习期末作业

一、V MWare创建和RED HAT Linux1)首先,创建一个新的虚拟机,如下图点击2)点击下一步,在我们按照向导来规划虚拟机,当然有经验的也可以使用“用户模式”,因为里面对内存等硬件有额外的配置过程,我在这里面按照向导来3)选择想要虚拟的操作系统,其实怎么选都可以,只是一个名字,我在这使用默认的“微软操作系统”,下面的下拉列表框中,我选择的是Vista,因为选择Win XP,默认会给8G的硬盘空间,当然,我这么选也是想过后不再手动调节罢了。

如图是部分安装步骤:4)用虚拟光驱打开ISO文件,将其导入安装目录。

5)选择Linux操作6)选择虚拟机在硬盘的保存目录,为你的虚拟机命名,我写的是“win7_7000”,存储路径是剩余空间较大的任一硬盘。

7)选择虚拟机占用硬盘空间大小,以文件形式,因为没有太多需要就使用8G。

到此,分配硬盘空间,创建虚拟机是完成了,下一步,我们将要在虚拟机中安装Win7。

(我用的是“用户模式”来设置的虚拟机,所以在内存大小上会有出入。

)8)注意在安装过程中,虚拟机硬盘分区:100M大小的boot区2倍RAM大小的SWAP区剩下为根文件系统挂载区(常用ext3文件系统)9)10)安装完毕启动linux系统11)登录系统12)本系统用户超级管理员:用户名:root 密码:tc普通用户:用户名:tc 密码:123456一、安装VMware Tools1、在虚拟机工具栏选择虚拟机(M) 安装VMware tools,如图所示:点击安装VMware Tools,则在linux桌面会出现这样一个光盘图标:,将这个文件拷贝到home文件夹,打开终端,在终端里输入这些代码将这个文件进行解压,得到这样一个文件,在终端可以输入ls命令查看这个文件,键入命令cd vmwarw-tools-distrib./vmwarw-install.pl回车,就可以开始安装(建议使用默认配置,按enter键就可以了),选择12分频,再注销,到[EXPERIMENTAL]选择NO,这样虚拟工具就安装好了。

嵌入式操作系统期末大作业

嵌入式操作系统期末大作业

2015-2016学年第一学期期末大作业课程名称嵌入式操作系统专业班级电信1304学生学号31302319学生姓名陈鸿烨任课教师王群华题序一二三四总分得分一、系统安装与NFS配置(20分)(在以下2题中任选一题,并删除另一题的题目)1.学习Linux操作系统最好的方法之一就是自己安装它,建立一个属于自己的学习平台。

请在你的电脑上安装虚拟机上,然后在虚拟机上安装Linux操作系统。

所需软件请自行从网上下载,要求写出安装步骤(可用截图配合表示),同时创建一个以自己姓名和学号命名的普通用户。

二、/etc/下的配置文件的使用(共20分)1.假设某linux系统开机默认进入图形界面。

可否更改设置每次开机进入字符界面,并且系统可以自动挂载光驱和U盘。

请说明配置过程,给出所修改的文件的代码。

(10分) /etc/fstab添加:/dev/cdrom /目录ext3 defaults 0 0/dev/sda1 /目录ext3 defaults 0 02.配置sudoers文件,实现任何普通用户都拥有关机与更改他人密码(root除外)的权限。

(10分)zucc myhost=(root) NOPASSWD /usr/bin/reboot./sur/bin/passwdroot ALL=(ALL)ALL## Allows members of the “sys” group to run networking. Software.Snun ALL=NETWORKING SOFTWARE SEQVIGES STORGE DELEGATING ROCESS三、读程题(共20分)1.分析下面的程序,简要说明整体功能,并解释每条语句。

#!/bin/bash #使用/bin/bash解释脚本val=$1 #将位置变量1赋值给变量valwhile (test $val –lt 6) #判断val的值是否小于6do touch file$val #当判断语句成立则创建文件date>>file$val #在文件的末尾追加时间val=’expr $val + 1’#在循环中用于val的增量计算done #循环结束2.分析下面的程序,简要说明整体功能,并解释每条语句。

嵌入式期末试题及答案

嵌入式期末试题及答案

嵌入式期末试题及答案[注意:本文章以题目的方式展示试题及答案,下文并未出现实际试题]引言在嵌入式系统的学习中,期末试题是评估学生对于该学科知识和技能掌握程度的重要方式之一。

本文将为大家提供一份嵌入式期末试题及答案,帮助大家更好地准备和复习期末考试内容。

多选题1. 下列哪些是嵌入式系统的特征?(多选)a. 嵌入式系统通常包含少量资源b. 嵌入式系统的应用范围广泛c. 嵌入式系统的功耗可以忽略不计d. 嵌入式系统的性能要求较低答案:a、b2. 嵌入式系统中,以下哪项属于输入设备?(多选)a. 键盘b. USB接口c. 音箱d. 显示器答案:a、b、d填空题3. 嵌入式系统是指将计算机技术和________集成的特定功能设备。

答案:电子技术4. 嵌入式系统的一个重要特点是对系统的稳定性和________性的要求较高。

答案:可靠简答题5. 简述嵌入式系统和通用计算机的区别。

答案:嵌入式系统通常针对特定的应用领域,它的硬件资源和软件功能相对简单,功耗低,且具有可靠性要求高的特点。

通用计算机则更注重通用性,能够运行复杂的应用软件,它的硬件资源和软件功能相对丰富。

编程题6. 编写一个C语言程序,实现将一个整数数组逆序输出的功能。

答案:```c#include <stdio.h>void reverseArray(int arr[], int size) { int start = 0;int end = size - 1;while (start < end) {int temp = arr[start];arr[start] = arr[end];arr[end] = temp;start++;end--;}}int main() {int arr[] = {1, 2, 3, 4, 5};int size = sizeof(arr) / sizeof(arr[0]); reverseArray(arr, size);for (int i = 0; i < size; i++) {printf("%d ", arr[i]);}return 0;}```总结本文提供了一份嵌入式期末试题及答案,涵盖了嵌入式系统的特征、输入设备、嵌入式系统和通用计算机的区别以及编程题等内容。

嵌入式期末考试卷十套

嵌入式期末考试卷十套

嵌入式期末考试卷十套嵌入式系统期末考试卷一、选择题(每题2分,共20分)1. 嵌入式系统通常是指:A. 用于嵌入式应用的软件B. 运行在嵌入式设备上的操作系统C. 一种小型的计算机系统,用于控制或监视设备D. 一种大型的计算机系统,用于复杂的数据处理2. 下列哪项不是嵌入式系统的特点:A. 可扩展性B. 实时性C. 资源受限D. 专用性3. 嵌入式操作系统(RTOS)的主要功能不包括:A. 任务调度B. 内存管理C. 文件系统管理D. 网络通信4. 以下哪个不是嵌入式系统中的编程语言:A. CB. C++C. JavaD. Python5. 在嵌入式系统中,中断服务程序(ISR)的主要作用是:A. 执行系统初始化B. 处理系统异常C. 响应外部事件D. 执行定时任务6. 以下哪个不是嵌入式系统开发过程中的步骤:A. 需求分析B. 系统设计C. 硬件选型D. 软件测试7. 在嵌入式系统中,固件通常指的是:A. 硬件B. 软件C. 介于硬件和软件之间的程序D. 操作系统8. 以下哪个是嵌入式系统开发中常用的硬件描述语言:A. VHDLB. HTMLC. XMLD. SQL9. 在嵌入式系统中,看门狗定时器的主要作用是:A. 监控系统时间B. 监控系统温度C. 监控系统电源D. 监控系统运行状态,防止死锁10. 以下哪个是嵌入式系统中的存储设备:A. RAMB. ROMC. 硬盘D. 显示器二、填空题(每空1分,共10分)1. 嵌入式系统的核心是______,它负责协调和管理整个系统。

2. 嵌入式系统软件通常由______、应用程序和设备驱动程序组成。

3. 嵌入式系统中的中断优先级是指中断服务程序的______。

4. 嵌入式系统中,______是一种常见的通信协议,用于设备间的通信。

5. 在嵌入式系统中,______是一种用于存储程序和数据的非易失性存储器。

6. 嵌入式系统中的______是用于控制和管理硬件资源的软件。

《嵌入式系统开发基础》期末考试试卷附答案

《嵌入式系统开发基础》期末考试试卷附答案

《嵌入式系统开发基础》期末考试试卷附答案一、填空题(共20小题,每小题3分,共60分)1、以下哪个不是嵌入式系统设计的主要目标?()A、低成本B、低功耗C、实时要求高D、超高性能2、嵌入式系统有别于其他系统的最大特点是()。

A、嵌入专用B、高可靠C、低功耗D、低成本3、下面哪个系统属于嵌入式系统。

()A、“天河一号”计算机系统B、联想 T400 笔记本计算机C、联想 S10 上网本D、联想 OPhone 手机4、下面哪个系统不属于嵌入式系统()。

A、MP3 播放器B、GPS 接收机C、“银河玉衡”核心路由器D、“银河”巨型计算机5、下面哪个系统属于嵌入式系统。

A、“银河”巨型计算机B、MP4 播放器C、“曙光”计算机D、IBM X60 笔记本计算机6、从层次结构来看,嵌入式系统包括()。

A、硬件层B、板级支持包C、实时操作系统和应用软件D、以上都是7、在嵌入式系统设计中,嵌入式处理器选型是在进行()时完成A、需求分析B、系统集成C、体系结构设计D、软硬件设计8、在嵌入式系统设计中,嵌入式操作系统选型是在进行()时完成。

A、需求分析B、系统集成C、体系结构设计D、软硬件设计9、在嵌入式系统设计中,进行硬件版图设计是在进行()时完成。

A、需求分析B、系统集成C、体系结构设计D、软硬件设计10、在嵌入式系统设计中,软硬件划分是在进行()时完成。

A、需求分析B、体系结构设计C、软硬件设计D、系统集成11、在嵌入式系统设计中,软硬件协同设计方法与传统设计方法的最大不同之处在于()。

A、软硬件分开描述B、软硬件统一描述C、协同测试D、协同验证12、下面关于哈佛结构描述正确的是()。

A、程序存储空间与数据存储空间分离B、存储空间与 IO 空间分离C、程序存储空间与数据存储空间合并D、存储空间与 IO 空间合并13、下面关于冯·诺依曼结构描述正确的是()。

A、程序存储空间与数据存储空间分离B、存储空间与 IO 空间分离C、程序存储空间与数据存储空间合并D、存储空间与 IO 空间合并14、以下哪个处理器属于嵌入式处理器?()A、S3C44B0xB、奔腾C、看门狗D、MP3 播放器15、下面哪一类嵌入式处理器最适合于用于工业控制()。

嵌入式 期末考试题目及答案

嵌入式 期末考试题目及答案

一、单项选择题(每题2分,共30分)1.下列哪一项不是嵌入式系统的基本要素A、嵌入性B、专用性C、通用性D、计算机系统2.下面哪项不属于ARM处理器模式A、管理模式(root)管理模式(svc):B、用户模式(usr)C、快速中断模式(fiq)D、外部中断模式(irq)3.在嵌入式系统开发过程中下面哪项为错误的说法A、对于有些硬件和软件都可以实现的功能,需要在成本和性能上做出抉择B、对实时性要求非常高的产品可以选择嵌入式Linux开发环境 VxworksC、嵌入式系统的软件开发与通常软件开发的区别主要在于软件实现部分D、嵌入式系统的软件开发可分为交叉编译和交叉调试两部分4.某文件的权限是 -rwxr--r--,则下面描述正确的是A、文件的权限值是755B、文件的所有者对文件只有读权限C、其他用户对文件只有读权限D、同组用户对文件只有写权限5.在Linux操作系统默认情况下,ls命令显示的可执行文件颜色为A、绿色B、蓝色C、灰色D、黄色6.在vi编辑环境下,使用下面哪个按键进行模式转换A、EscB、TabC、ShiftD、Ctrl7.交叉编译器中,下面哪项不是必需包含的A、glibcB、gccC、binutilsD、tmake8.使用下面哪项命令查看系统的默认运行级别A、runlevelB、service xinetd statusC、chkconfig --listD、chkconfig xinetd status9.下面哪种语言GCC编译器不支持A、CB、JavaC、ASPD、C++10.不带缓存的文件I/O操作函数不包括A、fopenB、readC、writeD、open11.在Linux操作系统中,串口设备的设备名一般为A、com1B、port1C、ttyS0D、serl112.编写守护进程的第一步为A、创建子进程,父进程退出B、在子进程中创建新会话C、改变当前目录为根目录D、关闭文件描述符13.在关于ICMP协议的描述中,下面哪项是错误的A、ICMP是IP层的一个协议B、ICMP报文的最终报宿是报宿计算机上的一个用户进程C、当一个带有错误信息的ICMP报文到达时,由IP软件模块负责处理D、每种ICMP报文都有不同的格式14.键盘模式中不包括下面哪项A、ASCII mode(XLATE)模式模式B、Keycode mode(MEDIUMRAW)模式C、Multi mode(MULTI)模式UTF-8 MODE (UNICODE) Unicode 模式D、Scancode mode(RAW)模式15.socket函数的函数原型是A、int socket(int family, int type, int protocol)B、int socket(int sockfd,struct sockaddr *my_addr, int addrlen)C、int socket(int sockfd, int backlog)D、int socket(int sockfd, struct sockaddr *serv_addr, int addrlen)二、判断题(每题2分,共30分)(错标红加粗)16.ROM掉电后数据不会丢失。

嵌入式系统期末考试卷试题库包括答案.docx

嵌入式系统期末考试卷试题库包括答案.docx

《嵌入式系统》试题库一、填空题1、嵌入式系统的基本定义为:以应用中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

2、从模块结构来看,嵌入式系统由三大部分组成,分别是:硬件、软件和开发平台。

3、从层次角度来看,嵌入式系统由四大部分组成,分别是:应用软件层、操作系统层、板级支持包(或硬件抽象层)和硬件层。

4、嵌入式产品的主要度量指标包括:上市时间、设计成本和产品质量。

5、嵌入式系统的设计过程包括:需求分析、规格说明、体系结构设计、构件设计、系统集成和系统测试。

6、需求分析包括:功能性需求分析和非功能性需求分析。

7、确定输入信号是数字信号还是模拟信号属于功能性需求。

8、确定系统的物理尺寸和重量属于非功能性需求。

9、在嵌入式系统的设计过程中,其中规格说明解决“做什么”。

10、在嵌入式系统的设计过程中,其中体系结构设计解决“如何做”。

11、在嵌入式系统的设计过程中,软硬件划分应该在体系结构设计阶段完成。

12、在嵌入式系统的设计过程中,处理器的选择应该在体系结构设计阶段完成。

13、在嵌入式系统的设计过程中,嵌入式操作系统的选择应该在体系结构设计阶段完成。

14、在嵌入式系统的设计过程中,完成原理图设计应在构件设计阶段完成。

15、在嵌入式系统的设计过程中,完成版图设计应在构件设计阶段完成。

16、在嵌入式系统的设计过程中,完成软件设计应在构件设计阶段完成。

17、反映嵌入式系统设计人员的水平能力主要在于总体设计(需求分析、规格说明和体系结构设计)和系统调试。

18、设计流程指的是设计过程中所经历的过程步骤。

19、设计重用技术主要分为基于IP 核的模块级重用和基于平台的系统级重用。

20、软硬件协同设计由系统描述、软硬件划分、软硬件协同综合以及软硬件协同模拟与验证几个阶段组成。

21、嵌入式处理器的分类包括三种,分别是:嵌入式微处理器、微控制器(或单片机)和数字信号处理器( DSP)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

标准文案江苏科技大学嵌入式系统设计期末大作业----嵌入式web服务器设计学号:1341901124:武易专业:科技大学2016-12-30嵌入式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://.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.h文件中#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扩展开发CGI定义了Web服务器与CGI脚本之间的接口标准。

其主要功能是在Web环境下,从客户端传送一些信息给Web服务器,Web服务器把接收到的有关信息放入环境变量,然后再去启动所指定的CGI脚本以完成特定的工作,CGI脚本从环境变量中获取相关信息来运行,最后以HTML格式输出相应的执行结果返回给浏览器端。

由于用户能传递不同的参数给CGI脚本,所以CGI技术使得浏览器和服务器之间具有交互性。

CGI的扩展开发即是在config.c中为该扩展功能增加一个命令码flag,并指定它的处理响应函数;然后在cgihead.c中完成这个处理响应函数的代码即可。

下面笔者将以通过Web服务器实现设置嵌入式系统IP地址为例介绍CGI的扩展开发方法及步骤:(1)首先在left.html(注:主页采用框架,left.html为左框架的页面)主菜单栏中增加一项:“设置IP”。

即在:/home/httpd/html/left.html,增加一项:这个处理代码中用vfork+execl执行ifconfig/route命令,完成IP设置工作,并返回显示操作结果,提供用户重新启动。

重新启动后板子的IP地址就是更改后的IP地址了。

3.4运行扩展后的Web服务器采用上述扩展方法,结合硬件资源和既有驱动笔者相继实现了系统时间设置、MAC地址设置、MiniGui演示、触摸屏演示、步进电机控制、录音、播放MTV等多项基本功能和修改管理员密码、系统重启等系统功能。

为了较好实现动态网页的交互性,笔者将首页设置成为框架,左框架调用left.html显示各管理菜单,右框架显示点击某菜单选项后的页面。

通过在右框架中的确认最终实现管理功能。

相关文档
最新文档