基于嵌入式Linux的互动广告系统的设计与实现_第1页
基于嵌入式Linux的互动广告系统的设计与实现_第2页
基于嵌入式Linux的互动广告系统的设计与实现_第3页
基于嵌入式Linux的互动广告系统的设计与实现_第4页
基于嵌入式Linux的互动广告系统的设计与实现_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、大连理工大学硕士学位论文基于嵌入式Linux的互动广告系统的设计与实现姓名:王伶卓申请学位级别:硕士专业:计算机应用技术指导教师:马洪连20071218 大连理工大学硕士学位论文基本输入输出系统。这都需要从头做起。一般情况下,在嵌入式系统中所有的可执行程序并不存在于硬盘上,因为在绝大多数嵌入式系统中都没有硬盘。而是最终的存在于系统的Flash上面191。在Flash上面一般会存在三种内容:Boot Loader,kernel,fllesystem,他们的存在形式如图4.1所示。 图4.1Flash布局Fig.4.1Flash layout在没有任何软件的嵌入式系统中建立系统,必然需要其他计算机

2、系统的辅助。开发一个嵌入式系统的典型工作流程如图4.2所示。网线图4.2嵌入式开发过程Fig.4.2Embedded development proce%在Flash中没有任何软件之前,需要通过Jtag线,利用硬件烧录的办法把BootLoader 下载到系统的Flash中。这里的Boot Loader就相当于PC机中的BIOS系统。然后利用Boot Loader提供的基本操作,通过串口和Boot Loader交互操作,通过网线下载Linux Kernel和文件系统映像。最终开发调试时,也使用类似的结构在PC平台下建立NFS服务通过网络被嵌入式平台共享,即时的编译调试程序。19一 基于嵌入式Li

3、nux的互动广告系统的设计与实现表4.2内核配置方式Tab.4.2Kernel configuration通过rlctlrses的图形界面更新当前配置xconfig gconfig config通过QT图形界面更新当前配置通过GTK图形界面更新当前配置通过直接命令行更新当前配置defconfig对所有选项采取缺省的方式在以上几种配置方式中。最稳定和最常用是menuconfig的方式。在本系统中也采取menuconfig的方式。在配置时选择根菜单下的Syst锄Type选项,进入到下一级菜单选择处理器类型,因为本系统是在PXA272的平台运行,而Linux2.6内本身就对PXA272有很好的支持所

4、以很容易就找到了恰当的配置选项。如图4.6所示。还有其他很多选项,可以逐个选择需要还是不需要。一些需要去掉的选项,主要有以下几类。无用的网络协议、不使用的设备、无用的文件系统模块,等等。这样可以使内核的体积变小,也提高了内核的运行效率。配置完成后在运行make zlmage,编译后在arch/arm/boot/的目录下生成zlmage的内核镜像。幽4.6平台选扦菜单Fig.4.6Platform choice nlL-nu 一28. 大连理工大学硕士学位论文struet BB_applet(const charname;int(*main(int argc.char+4argv;.extens

5、ion.eilum Location location:4;?xtemioIL enl.1m SUIDRoot need_suid:4;该数据结构的第一个数据域是子函数对应的程序名,例如ls。第二个数据成员是一个函数指针。该指针所指向的函数原型和标准的mainO函数的函数原型是一样的,意思是非常明了的。 倒4.7Busybox配置菜单Fig.4.7Busybox choice menu基于嵌入式Linux的互动广告系统的设计与实现本系统采用的是tms如ox.1.3.2版。这个版本发布的相对旱些,而且又是稳定版,所以我选择了这个版本。Busybox的编译过程和Linux内核的编译看起来类似。因为

6、Busybox也采取了模块化的设计方式,并且在编译方式上借鉴了Linux内核Kbuild的方式,这一点可以从Makefile文件上进一步得到证明。同样因为Busybox是要在目标平台上运行的程序,所以需要使用之前编译的跨平台编译器来编译。从http: 下载完整的源代码,压缩包大小为1.4MB左右。将源码解压之后,进入到busybox.1.3.2目录中。然后修改Makefile。使用文本编辑器打开Makefile文件,找到下面两行: ARCH?=¥(SUBARCHCRoSSCOMPILE?=将其修改成如下:ARCH?=armCROSS_COMPILE?=/usr/local/crossroot/

7、bin/armlinux-这个步骤和编译内核相同。主要是BusybOX借鉴了linux内核Kbuild的方式。然后运行make defconfig(Busybox的说明文档上建议这么傲之后运行make mcnuconf显示如图4.7。这个界面主要分为三部分。第一部分是Busybox Settings。第二部分为Applcts 其中包括BusybOX的组件选项,其中对应着每一个可以在命令行下直接使用的命令,在每一个子菜单中可以选择是否编译这个模块,或对这个模块进行进一步的设置。第三部分就是保存配置。第一部分Busybox Settings选项的子菜单如图4.8所示 幽4.8Busybox Set

8、ting子菜单Fig.4.8ausybox Sening submenu 大连理工大学硕士学位论文基本的配置文件主要是指/etc目录下的配置文件和启动脚本。当Linux内核初始化以后运行的第一个用户程序是/sbin/init程序。init程序需要读取配置文件/etc/inittab。inittab是一个不可执行的文本文件,它有若干行指令所组成。在Busybox中,init程序实际上也是指向Busybox的一个符号链接。在配置文件中有如图4.9所示信息: 圈4.9inittab配置文什片段Fig.4.9Inittab file fxagment它的含义是至lJ/etc/init.d/rc目录下执

9、行相应的脚本。这些脚本就是上面提到的启动脚本。Linux启动的过程还是比较复杂的。本系统采用的启动脚本是从clfs项目组提供的bootscripts修改而来。4.4系统镜像写入硬件FIash嵌入式系统的开发过程如图4.2所示。当U-boot被用Jtag接口下载到嵌入式平台的Flash中后,就相当于有了一个支持网络和以串口作为10终端的基本系统。内核镜像的下载和文件系统镜像的下载都是通过这个基本系统完成的。首先在PC开发终端,建立一个邢的服务。打开一个终端模拟器,将数据的来源设定为COMI口。在windows平下可以用TFTPD32程序实现邢服务,和putty 作为模拟终端,在Linux平台下可

10、以用trid程序实现Tm服务和minicom作为模拟终端。首先启动嵌入式系统,U-boot运行,因其找不到任何可以引导的操作系统,所以进入下载模式。通过U.boot内置的trip客户端,将内核下载到内存中。之后在命令行下运行copy命令,将其写入到Flash空间。在本系统中,嵌入式根文件系统以目录的形式被存放在Busybox的编译目录下的install下面。首先需要根据这个目录的内容生成镜像文件,而这个镜像文件将会被下载到嵌入式平台的Flash里面。在Flash上面和磁盘的文件系统不同。Flash文件系统设计有关的硬件特点如下: 大连理工大学硕士学位论文5嵌入式显示终端的媒体播放软件设计5.1

11、Li nux的视频输出和音频输出子系统 图5.1X Window体系结构Window architecmreFig.5.1X在Linux平台下最常用的图形系统就是Xwindow系统,这是一种起源于上世纪80年代的优秀的图形系统。X Window主要是为桌面系统和工作站设计的,不是很关心资源的使用。它将视窗程序分为两个部分,一是执行与图像无关的计算部分的客户端,另一个是专门和硬件打交道的服务端,其体系结构如图5.1所示。应用程序不可以直接通过内核的系统调用来使用显示驱动,而要通过网络层与X servcr进行通讯后,通过它调用内核的系统调用来使用显示驱动。因此耗用系统资源非常大,不适合嵌入式系统的应用。随着嵌入式Linux的发展,不断增加对如ARM这样的处理器平台的支持。显示驱动以帧缓冲设备(framcbuffer的形式实现,它把显示硬件抽象为一段显示内存,封装统一接13给上层调用【351。应用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论