嵌入式系统2目录一、前言................................................................31.1课题研究背景.....................................................31.2课程研究目的和意义...............................................31.3ARM2440实验箱介绍................................................31.3.12440核心板规格:..........................................31.3.22440实验箱底板规格:.....................................41.3.3软件资源...................................................5二、需求分析.........................................................5三、开发环境及系统结构..............................................63.1开发环境.........................................................63.2系统结构.........................................................7四、详细设计...........................................................84.1ARMLinux的建立.................................................84.1.1建立交叉编译环境...........................................84.1.2编译内核..................................................104.1.3生成并配置根文件系统......................................144.2BootLoader的移植...............................................164.2.1移植的环境................................................164.2.2移植的步骤................................................164.3基于S3CC400的嵌入式Web服务器Boa移植.........................214.3.1配置开发板网络...........................................214.3.3Web静态网页制作..........................................244.3.4CGI程序login.c程序。....................................24五、结论.............................................................................................................................................273一、前言1.1课题研究背景随着3C融合进程和我国传统产业结构升级的加速,人们对设备越来越高的应用需要已经无法满足当前和未来高性能的应用与发展需求。显然,嵌入式系统的软、硬件技术和开发手段,正日益受到重视,成为各领域技术创新的重要基础。目前,嵌入式系统是近年来发展很快的计算机方面的学科方向,并迅速渗透到控制、自动化、仪器仪表等学科。嵌入式方向包括了软硬件协同设计、嵌入式体系结构、实时操作系统、嵌入式产品设计等方面的知识,大于当代大学生,更需要掌握嵌入式系统设计的典型开发工具和开发核心技术。对于嵌入式市场的发展来说,中国市场的意义更加重大。中国市场对于嵌入式互联网这场革命来说非常关键。勃勃的生机,很好的产业互动,良好的协作精神,中国现在正在形成-个健康的嵌入式的发展模式和转型模式。中国可能是-个引发点,嵌入式市场先在中国蓬勃发展,然后辐射到全球其他地区。1.2课程研究目的和意义Linux操作系统是-个开放源代码的免费操作系统,它不仅安全、稳定、成本低,而且很少发现有病毒传播,越来越的服务器、工作站和个人电脑开始使用Linux软件,基于Linux具有稳定、可靠和强大的网络功能这些优点。在Linux环境下实现-个boaweb服务器。1.3ARM2440实验箱介绍2440实验箱由核心板和底板构成,核心板采用6层板工艺,稳定性高,底板采用双面板,接口丰富功能全,扩展方便。1.3.12440核心板规格:◆CPU处理器-SamsungS3C2440AL,主频400MHz,最高533MHz。4◆SDRAM内存-板载64MBSDRAM-32bit数据总线-SDRAM时钟频率高达100MHz◆Flash存储器-板载64MBNandFlash,掉电非易失-板载2MBNorFlash◆专业1.25V核心电压供电,完美解决CPU发热现象◆3个用户LED灯1.3.22440实验箱底板规格:◆大电流5V供电,提供更加优质的供电,防止-切因为电源而引起的BUG;◆LCD显示-板上LCD接口集成4线电阻式触摸屏接口,可以直接连接4线电阻式触摸屏,-支持黑白、4级灰度、16级灰度、256色、4096色STN液晶屏,尺寸从3.5寸到12.1寸,屏幕分辨率可以达到1024X768象素-支持黑白、4级灰度、16级灰度、256色、64K色、真彩色TFT液晶屏,尺寸从3.5寸到12.1寸,屏幕分辨率可以达到1024×768象素-2440实验箱的标准配置为SHARP8英寸分辨率为640x480的TFT真彩液晶屏,自带触摸屏◆1个100M以太网RJ-45接口◆3个串行接口,其中两个为RS3232电平,以DB9接口引出,另-个是TTL电平,以扩展模块接口引出◆4个USBHostA型接口(支持USB1.1协议)◆1个USBSlaveB型接口(支持USB1.1协议)◆1个SD卡存储接口◆1路立体声音频输出接口,1路音频输入接口◆1个2.54mm的20针Jtag接口,可以使用它进行软件仿真和单步调试以及下u-boot5◆4x4的UserButtons◆板载AD转换测试◆板载PWM功能测试(控制直流电机调速)◆板载44PinIDE接口◆板载实时时钟电池◆系统复位开关和指示灯◆CAN总线接口◆多功能扩展接口◆两路DA◆开关量若干个◆8个数码管◆1个蜂鸣器◆8个LED灯◆1个VGA接口◆1个直流电机◆1个步进电机◆1个扩展FPGA模块的专用接口1.3.3软件资源-u-boot-1.1.6-Linux-2.6.13-WindwosCE-无OS的测试程序二、需求分析随着计算机迅猛发展,的技术也有了突破性的进展,它解决了远程信息服务中的文字显示、数据连接以及图像传递的问题,使得上最为流行的信息传播方式。现在,Web服务器成为Internet上最大的计算机群,Web文档之多、链接的网络之广,令人难以想象。可以说,Web为Internet的6普及迈出了开创性的-步,是近年来Internet上取得的最激动人心的成就。嵌入式系统已经渗透到各个领域,在32位嵌入式微处理器市场上,基于ARM内核的微处理器在市场上处于绝对的领导地位,因此追踪ARM技术的发展趋势显得尤为重要。在嵌入式操作系统上,Linux-直因其内核精简、代码开发、基于移植等特点受到广大嵌入式能力更加强大,因此有必要为嵌入式系统构建Web服务器。在嵌入式Linux系统中,常用的WebServer有Boa、httpd、thttpd和mini-httpd等。其中Boa是-个运行在类Unix系统中的小型WebServer,适合嵌入式环境。在Boa中若两个用户同时访问,则其中的-个必须等待,它产生独立进程来处理CGI(通用网关接口)程序,因此占用较少的资源,其体系结构如图1所示。Boa的优点在于其快速可靠性。它与其它服务器的区别:没有为CGI程序设置REMOTE_HOST环境变量;没有Server-SideInclude(SSI)项,要产生动态网页只能通过CGI:没有设置进入控制,而是根据Linux的文件系统的权限来决定服务的对象:没有chroot选项,即不能改变根目录。基于以上的阐述,Boa应用到嵌入式平台上有着诸多的优势,本文的嵌入式Web服务器也因此选用Boa作为平台。下面笔者将着重介绍嵌入式Web服务器的硬件平台及软件体系的设计与实现。三、开发环境及系统结构3.1开发环境1、虚拟机下安装的Redhat9.0;2、交叉编译工具:arm-linux-gcc-4.3.2;3、miin2440开发板;4、移植使用到的软件:(1)boa源文件boa-0.94.13.tar.gz,下载地址:;(2)cgi库cgic205.tar.gz,7下载地址:。3.2系统结构嵌入式系统组成框图实物连接图应用程序API操作系统内核设备驱动专有硬件(嵌入式处理器、存储器、外设等)USB交叉串口线网线EMBEST仿真器网口JTAGS3C24403.3V1.8V5VPowerUART08四、详细设计4.1ARMLinux的建立ARMLinux的建立是基于U-Boot的实现,它的建立实际上是Linux内核在S3C2440上移植的过程,主要分为3个步骤:建立交叉编译环境;编译内核;生成并配置根文件系统。4.1.1建立交叉编译环境交叉编译的主要特征是某-机器(目标机)中执行的程序代码不是本机编译生成,而是另-台机器(宿主机)编译生成。-般采用的方法是首先在宿主机上编写程序,通过交叉编译生成目标平台上可运行的二进制代码,再下载到目标平台的特定位置上运行。本次设计的通信使用的RS3232串口,在RedHat9.0里面建立-个能编译arm-linux环境。(1)添加工作用户[root@PC-LINUX~]#useradd–Groot–groot–d/home/arm1arm[root@PC-LINUX~]#mkdir–p/home/arm1[root@PC-LINUX~]#chown–Rarm/home/arm1[root@PC-LINUX~]#chmod–R775/home/arm1(2)建立工作目录[arm@PC-LINUXarm1]$mkdirdev_home[arm@PC-LINUXarm1]$cddev_home[arm@PC-LINUXdev_home]$mkdirbtoolskernel(3)设置环境变量,准备源码及相关补丁。首先是设置环境变量:[arm@PC-LINUXarml]$vi~/.bashrcexportPREFIX=/usr/local/arm/3.3.2exportTARGET=arm-1inuxexportSYSROOT=${PREFIX)/sysrootexportCROSS_COMPILE=${TARGET)-exportPATH=${PREFIX)/bin:$PATHexportSRC=/home/arml/dev_home/btools/tchain3.3.2接下来准备各个源码包。从网上下载以下源码包:binutils-2.16.tar.gz、gcc-3.3.2.tar.bz2、glibc-2.3.5.tar.gz、linux-2.6