嵌入式课程设计报告.docx

上传人:小飞机 文档编号:3481118 上传时间:2023-03-13 格式:DOCX 页数:35 大小:53.26KB
返回 下载 相关 举报
嵌入式课程设计报告.docx_第1页
第1页 / 共35页
嵌入式课程设计报告.docx_第2页
第2页 / 共35页
嵌入式课程设计报告.docx_第3页
第3页 / 共35页
嵌入式课程设计报告.docx_第4页
第4页 / 共35页
嵌入式课程设计报告.docx_第5页
第5页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《嵌入式课程设计报告.docx》由会员分享,可在线阅读,更多相关《嵌入式课程设计报告.docx(35页珍藏版)》请在三一办公上搜索。

1、嵌入式课程设计报告 目 录 一、前言 . 2 11 课题研究背景 . 2 12 课程研究目的和意义 . 2 13 ARM2440实验箱介绍 . 2 131 2440核心板规格: . 2 132 2440实验箱底板规格: . 3 133软件资源 . 4 二 、需求分析 . 4 三、开发环境及系统结构 . 5 31 开发环境 . 5 32 系统结构 . 6 四、详细设计 . 7 41 ARM Linux的建立 . 7 411 建立交叉编译环境 . 7 412 编译内核 . 9 413 生成并配置根文件系统 . 13 42 BootLoader的移植 . 15 421 移植的环境 . 15 422

2、移植的步骤 . 15 43 基于S3CC400的嵌入式Web服务器Boa移植 . 20 431 配置开发板网络 . 20 433 Web静态网页制作 . 23 434 CGI程序login.c程序。 . 23 五、 结论 . 26 一、前言 11 课题研究背景 随着3C融合进程和我国传统产业结构升级的加速,人们对设备越来越高的应用需要已经无法满足当前和未来高性能的应用与发展需求。显然,嵌入式系统的软、硬件技术和开发手段,正日益受到重视,成为各领域技术创新的重要基础。 目前,嵌入式系统是近年来发展很快的计算机方面的学科方向,并迅速渗透到控制、自动化、仪器仪表等学科。嵌入式方向包括了软硬件协同设计

3、、嵌入式体系结构、实时操作系统、嵌入式产品设计等方面的知识,大于当代大学生,更需要掌握嵌入式系统设计的典型开发工具和开发核心技术。 对于嵌入式市场的发展来说,中国市场的意义更加重大。中国市场对于嵌入式互联网这场革命来说非常关键。勃勃的生机,很好的产业互动,良好的协作精神,中国现在正在形成-个健康的嵌入式的发展模式和转型模式。中国可能是-个引发点,嵌入式市场先在中国蓬勃发展,然后辐射到全球其他地区。 12 课程研究目的和意义 Linux操作系统是-个开放源代码的免费操作系统,它不仅安全、稳定、成本低,而且很少发现有病毒传播,越来越的服务器、工作站和个人电脑开始使用Linux软件,基于Linux具

4、有稳定、可靠和强大的网络功能这些优点。在Linux环境下实现-个boa web服务器。 13 ARM2440实验箱介绍 2440实验箱由核心板和底板构成,核心板采用6层板工艺,稳定性高,底板采用双面板,接口丰富功能全,扩展方便。 131 2440核心板规格: CPU处理器 Samsung S3C2440AL,主频400MHz,最高533MHz。 2 SDRAM内存 板载64MBSDRAM 32bit数据总线 SDRAM时钟频率高达100MHz Flash存储器 板载64MB Nand Flash,掉电非易失 板载2MB Nor Flash 专业1.25V核心电压供电,完美解决CPU发热现象 3

5、个用户LED灯 132 2440实验箱底板规格: 大电流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寸,屏幕分辨率可以达到1024768象素 2440实验箱的标准配置为SHARP 8英寸分辨率为640x480的TFT真彩液晶屏,自 带触摸屏 1个100M以太网RJ

6、-45接口 3个串行接口,其中两个为RS3232电平,以DB9接口引出,另-个是TTL电 平,以扩展模块接口引出 4个USB Host A型接口 1个USB Slave B型接口 1个SD卡存储接口 1u路立体声音频输出接口,1路音频输入接口 1个2.54mm的20针Jtag接口,可以使用它进行软件仿真和单步调试以及下u-boot 3 4x4的User Buttons 板载AD转换测试 板载PWM功能测试 板载44Pin IDE接口 板载实时时钟电池 系统复位开关和指示灯 CAN总线接口 多功能扩展接口 两路DA 开关量若干个 8个数码管 1个蜂鸣器 8个LED灯 1个VGA接口 1个直流电机

7、 1个步进电机 1个扩展FPGA模块的专用接口 133软件资源 u-boot-1.1.6 Linux-2.6.13 Windwos CE 无OS的测试程序 二 、需求分析 随着计算机迅猛发展,WWW 的技术也有了突破性的进展,它解决了远程信息服务中的文字显示、数据连接以及图像传递的问题,使得 WWW 成为 Internet 上最为流行的信息传播方式。 现在,Web 服务器成为 Internet 上最大的计算机群,Web 文档之多、链接的网络之广,令人难以想象。可以说,Web 为 Internet 的4 普及迈出了开创性的-步,是近年来 Internet 上取得的最激动人心的成就。 嵌入式系统已

8、经渗透到各个领域,在32位嵌入式微处理器市场上,基于ARM内核的微处理器在市场上处于绝对的领导地位,因此追踪ARM技术的发展趋势显得尤为重要。在嵌入式操作系统上,Linux-直因其内核精简、代码开发、基于移植等特点受到广大嵌入式能力更加强大,因此有必要为嵌入式系统构建Web服务器。 在嵌入式Linux系统中,常用的Web Server有Boa、httpd、thttpd和mini-httpd等。其中Boa是-个运行在类Unix系统中的小型Web Server,适合嵌入式环境。在Boa中若两个用户同时访问,则其中的-个必须等待,它产生独立进程来处理CGI(通用网关接口)程序,因此占用较少的资源,其

9、体系结构如图1所示。Boa的优点在于其快速可靠性。它与其它服务器的区别:没有为CGI程序设置REMOTE_HOST环境变量;没有Server-Side Include(SSI)项,要产生动态网页只能通过CGI:没有设置进入控制,而是根据Linux的文件系统的权限来决定服务的对象:没有chroot选项,即不能改变根目录。 基于以上的阐述,Boa应用到嵌入式平台上有着诸多的优势,本文的嵌入式Web服务器也因此选用Boa作为平台。下面笔者将着重介绍嵌入式Web服务器的硬件平台及软件体系的设计与实现。 三、开发环境及系统结构 31 开发环境 1 、虚拟机下安装的 Redhat9.0 ; 2 、交叉编译

10、工具: arm-linux-gcc- 4.3.2; 3 、 miin2440 开发板; 4 、移植使用到的软件: (1) boa 源文件 boa-0.94.13.tar.gz ,下载地址: http:/www.boa.org/ ; (2) cgi库 cgic205.tar.gz , 下载地址: 。 5 32 系统结构 嵌入式系统组成框图 应用程序 API 操作系统内核 设备驱动 专有硬件 实物连接图 USB 交叉串口线 EMBEST 网 仿真器 线 网口 UART0 3.3V 5V Power JTAG S3C2440 1.8V 6 四、详细设计 41 ARM Linux的建立 ARM Lin

11、ux的建立是基于U-Boot的实现,它的建立实际上是Linux内核在S3C2440上移植的过程,主要分为3个步骤:建立交叉编译环境;编译内核;生成并配置根文件系统。 411 建立交叉编译环境 交叉编译的主要特征是某-机器(目标机)中执行的程序代码不是本机编译生成,而是另-台机器编译生成。-般采用的方法是首先在宿主机上编写程序,通过交叉编译生成目标平台上可运行的二进制代码,再下载到目标平台的特定位置上运行。本次设计的通信使用的RS3232串口,在RedHat 9.0里面建立-个能编译arm-linux环境。 (1) 添加工作用户 rootPC-LINUX # useradd G root g r

12、oot d /home/arm1 arm rootPC-LINUX # mkdir p/home/arm1 rootPC-LINUX # chown R arm /home/arm1 rootPC-LINUX #chmod R 775 /home/arm1 (2) 建立工作目录 armPC-LINUX arm1 $ mkdir dev_home armPC-LINUX arm1 $ cd dev_home armPC-LINUX dev_home $ mkdir btools kernel (3) 设置环境变量,准备源码及相关补丁。首先是设置环境变量: arm PC-LINUX arml$ v

13、i bashrc export PREFIX=usrlocalarm3.3.2 export TARGET=arm-1inux export SYSROOT=$PREFIX)sysroot export CROSS_COMPILE=$TARGET)- export PATH=$PREFIX)bin:$PATH export SRC=homearmldev_homebtoolstchain3.3.2 接下来准备各个源码包。从网上下载以下源码包:binutils-216targz、 gcc-332tarbz2、glibc-235targz、linux-2613targz。 (4)编译GNU bin

14、utils。重新以arm用户身份登录,让新设置的环境变量 起作用。 7 arm PC-LINUX arml$SU arm arm PC-LINUX arml$ cd $SRC) arm PC-LINUX tchain3.3.2$ tar zxvf binutils-216targz arm PC-LINUX tchain3.3.2J$ mkdir -p BUILDbinutils -216 arm PC-LINUX tchain3.3.2$cd BUILDbinutils-216 arm PC-LINUX binuti ls-216$ binutils -216configure -prefi

15、x=$PREFIX) -target=$TARGET) -with -sysroot=$SYSROOT) arm PC-LINUX binutils-216$make arm PC-LINUX binutils-216$SU root arm PC-LINUX binutils-216#make instal 1 arm PC-LINUX binutils-216#exit (5)使用当前平台的gcc编译内核头文件。 armPC-LINUX tchain332$cd$KERNEL) armPC-LINUX kernel$tar zxvf 1inux-26141targz armPC-LINUX

16、kernel$ cd 1inux-26141 armPC-LINUX since-26141$cp archarmconfigssmdk2410_defconfigconfig armPC-LINUX linux-261411$ make ARCH:arm menuconfig armPC-LINUX linux-26141$ make include1inuxversionH (6)复制内核头文件。 armPC-LINUX linux-2.6.14.1$SU root rootPC-LINUX linux-2.6.14.1#mkdir -p $SYSROOT)usrinclude rootP

17、C-LINUX linux-26141#cp -a includelinux$SYSROOT)usrinclude1inux rootPC-LINUX 1inux-2.6.14.1#cp -a includeasm-arm$SYSROOT)usrincludeasm rootPC-LINUX 1 inux-2.6.14.1#cp -a includeasm-generic $SYSROOT)usrincludeasm-generic rootPC-LINUX 1inux-2.6.14.1#exit (7)编译glibc头文件。 armPC-LINUX kernel$cd$SRC) armPC-

18、LINUX tchain332$tar zxvf glibc-235targz armPC-LINUX tchain332$patch -d glibc-235-pliopermcdiff armPC-LINUX tchain3321$cd glibc-235 armPC-LINUX glibc-235$tar zxvfglibc-1 inuxthreads-235.targz armPC-LINUX glibc-235$cd armPC-LINUX tchain332$mkdir BUILDglibc-235-headers armPC-LINUX tchain332$cd BUILDgli

19、bc-235-headers armPC-LINUX glibc-235-headers$glibc-235configure -prefix=usr -host=$TARGET)-enable-add-ons=linuxthreads -with-headers=$SYSROOT)usrinclude rootPC-LINUX glibc-235-headers#make cross-compi l ing=yes instal1_root=$SYSROOT)install-headers rootPC-LINUX glibc-235-headers#touch$SYSROOT)usrinc

20、ludegnustubsh rootPC-LINUX glibc-2.3.5-headers#touch$SYSROOT)/usr/include/bits/stdio_limh rootPC-LINUX glibc235235-headers3#exit (8) 编译gcc第-阶段。 armPC-LINUX glibc-235-headers$cd$SRC) 8 armPC-LINUX tchain332$tar jxvf gcc-332tarbz2 armPC-LINUX tchain332$patch -d gcc-332 -plflowcdiff armPC-LINUX tchain3

21、32$patch -d gcc-332 -pl *Enable loadable module support *Automatic kernel module loading System Type-*$3C2440 DMA support Boot options-Default kernel command string: noinitrd root=devmtdblock4 init=1inuxrc console=ttySACO,115200 Floating point emulation-*NWFPE math emulation Device Drivers-Memory Te

22、chnology Devices(MTD)- *MTD partitioning support *Command line partition table parsing RAMROMF1ash chip drivers- Detect flash chips by Common Flash Interface(CFI) probe Detect non-CFI AMDJEDEC-compatible flash chips Support for IntelSharp flash chips Support for AMDFujitsu flash chips Support for RO

23、M chips in bus mapping Character devices- *Nonstandard serial port support *S3C2440 RTC Driver 对文件系统的设置,本文目标板上的文件系统是cramfs, 做如下配置: File systems- Second extended fs support注:去除对ext2的支持 Pseudo file systems - *proc file system support *Virtual memory file system support(former shm fs) *dev file system

24、support(OBSOLETE) *Automatically mount at boot(NEW) 这时会看到本文先前修改fsKconfig的成果,devfs已经被支持上了。 Miscellaneous file systems- Compressed ROM file system support(cramfs) 为了避免频繁烧写根文件系统,需要建立NFS文件系统,命令如下 Network Fi1e Systems - NFS file system support root file system on nfs 12 保存退出,产生config文件。 Networking option

25、s- IP: kernel level autoconfiguralion 编译内核 #make zImage 编译完成之后,在archarmboot目录下会看到-个zlmage文件,这就 是需要烧写到Flash中的内核映像文件。 通过JTAG将zImage下载到Nor Flash(AM29LVl60DB)中,烧写地址为OxO0030000 - Ox00200000。重启目标板,打开超级终端就可以看到内核启动信息。 413 生成并配置根文件系统 生成并配置文件系统主要有以下的几个步骤完成:安装busybox工具包;创建文件系统的映象文件:配置文件系统。-个完整的根文件系统包含以下几个目录: bin,应用程序存放目录。几乎所有的应用程序都存放

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号