您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 基于嵌入式智能家居远程控制器设计答辩PPT
LOGO基于嵌入式智能家居远程控制器设计指导老师:杨家红(博士)答辩学生:刘淑辉(07级计算机科学与技术专业)LOGO摘要本文研究了基于linux嵌入式操作系统,以使用arm2440为CPU的ARM9嵌入式开发板为硬件基础,以LINUXREDHAT5为系统开发环境,以arm-linux-gcc4.3.2为交叉编译环境以FriendlyARMMini2440DevelopmentBoard为系统运行环境的智能家居系统的设计与实现。通过详细的系统设计过程,制定系统,包括嵌入式操作系统linux内核的定制、bootloader的移植、linux内核的移植、文件系统的移植,并将其进行解析,将相应的命令根据通信协议转化为相应的控制信号,接入控制电路从而控制相应的电器。本装置采用了四盏灯模拟家中的各种电器,通过远程的机算机来控制家里的电器。LOGO友善之臂图示:友善之臂LOGO主要设计方法文件系统的制作,移置linux2.6内核裁剪,移置bootloader移置建立Linux开发环境程序测试LOGO(汇编部分)固件(fireware)中的boot代码Bootloader的组成stage2(C部分)LOGO硬件检测资源分配固件(fireware)中的boot代码LOGO(汇编部分)设置好堆栈跳转到stage2的C入口点LOGO初始化本阶段常用的硬件设备内存映射--mmap将kernelimage文件和根文件系统image从flash读到RAM空间stage2(C部分)为内核设置启动参数调用内核LOGO的种类Bootloader的实现大致可以分为以下几类:1.Vivi由三星提供,韩国mizi公司原创,开放源代码,必须使用arm-linux-gcc进行编译,目前已经基本停止发展,主要适用于三星S3C24xx系列ARM芯片,用以启动Linux系统,支持串口下载和网络文件系统启动等常用简易功能。LOGO由三星提供,韩国mizi公司原创,开放源代码,必须使用arm-linux-gcc进行编译,目前已经基本停止发展,主要适用于三星S3C24xx系列ARM芯片,用以启动Linux系统,支持串口下载和网络文件系统启动等常用简易功能。LOGO(BootLoaderObject)是由Jan-DerkBakkerandErikMouw发布的,是专门为StrongARM构架下的LART设计的BootLoader。Blob支持SA1100的LART主板,但用户也可以自行修改移植。Blob也提供两种工作模式,在启动时处于正常的启动加载模式,但是它会延时10秒等待终端用户按下任意键而将Blob切换到下载模式。如果在10秒内没有用户按键,则Blob继续启动Linux内核。LOGO的移植将vivi的源代码包复制到某一个目录,进入该目录,运行以下命令:#tarxvzfvivi.tgz执行该命令将把vivi源代码解压到目录,进入vivi源代码目录,执行:#makeclean#makemenuconfig一般不需要更改任何配置,直接退出,然后执行“make”开始编译,执行结果如下:#makeARCH=armCROSS_COMPILE=arm-linux-此时已经在当前目录下生成了vivi,把vivi烧写到目标板的NandFlash运行。LOGO主机:VMWare—redhat92开发板:Mini2440--64MBNand3编译器:arm-linux-gcc-4.3.2移植环境LOGO内核的主要概念内核,即操作系统。它为底层的可编程部件提供服务,为上层应用程序提供执行环境。内核裁剪就是对这些功能进行裁剪,选取满足特定平台和需求的功能。不同的硬件平台对内核要求也不同,因此从一个平台到另一个平台需要对内核进行重新配置和编译。操作系统从一个平台过渡到另一个平台。Linux是一款平台适应性强,且容易裁剪的操作系统。因此Linux在嵌入式系统得到了广泛的应用。LOGO内核移植过程(1)将所有文件复制到工作目录下,然后解压内核文件和编译器文件。(2)为内核打补丁。(3)修改Makefile,修改编译环境。(4)修改machineID。如果这一步省略,会在移植到开发板后Bootloader引导的时候出现机器ID错误的现象。出错的ID号将以十六进制给出,将其转化为十进制,替换mach-types文件中的对应项。这里移植后报的错误是0xFB,即对应十进制251。(5)制作uImage文件。在内核目录下建议一个名为mkimage的文件(6)对内核进行配置。执行makeat91rm9200dk_defconfig实际上就是完成对内核的配置。(7)编译内核生成映像文件。LOGO文件系统的配置与移植文件系统简单的说就是一种目录结构,由于linux操作系统的设备在系统中是以文件的形式存在,将这些文件进行分类管理以及提供和内核交互的接口,就形成一定的目录结构也就是文件系统,文件系统是为用户反映系统的一种形式,为用户提供一个检测控制系统的接口LOGO文件系统的配置与移植根文件系统是linux启动时使用的第一个文件系统,没有根文件系统性,linux将无法正常启动。根文件系统由一系列目录组成,目录中包括了应用程序,C库以及相关的配置文件。LOGO支持多种文件系统,常用的基于存储设备的文件系统类型包括:jffs2,yaffs,cramfs,等。本次设计采用的是yaffs2。yaffs2是专为嵌入式系统使用NAND型闪存而设计的一种日志型文件系统。与jffs2相比,它减少了一些功能(例如不支持数据压缩),所以速度更快,挂载时间很短,对内存的占用较小。另外,它还是跨平台的文件系统,除了Linux和eCos,还支持WinCE,pSOS和ThreadX等。LOGO文件系统移植过程1.创建根文件系统的目录2.创建设备文件3.安装/etc4.编译内核模块5.安装内核模块6.配置busybox7.编译,安装busbox8.制作yaffs文件系统映象LOGO驱动开发Led驱动的开发:mini2440开发板上所用到的4个LED的硬件资源要操作所用到的IO口,就要设置它们所用到的寄存器。低电平亮,高电平灭。LOGO驱动开发驱动程序在Linux内核里扮演着特殊的角色.它们是截然不同的“黑盒子”,使硬件的特殊的一部分响应定义好的内部编程接口.它们完全隐藏了设备工作的细节.用户的活动通过一套标准化的调用来进行,这些调用与特别的驱动是独立的;设备驱动的角色就是将这些调用映射到作用于实际硬件的和设备相关的操作上.这个编程接口是这样,驱动可以与内核的其他部分分开建立,并在需要的时候在运行时“插入”。LOGO
本文标题:基于嵌入式智能家居远程控制器设计答辩PPT
链接地址:https://www.777doc.com/doc-3699957 .html