




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于嵌入式智能家居远程控制器设计,指导老师:杨家红(博士) 答辩学生:刘淑辉(07级计 算机科学与技术专业),摘要,本文研究了基于linux嵌入式操作系统,以使用arm2440为CPU的ARM9嵌入式开发板为硬件基础,以LINUX REDHAT 5为系统开发环境,以arm-linux-gcc 4.3.2为交叉编译环境以Friendly ARM Mini2440 Development Board为系统运行环境的智能家居系统的设计与实现。通过详细的系统设计过程,制定系统,包括嵌入式操作系统linux内核的定制、bootloader的移植、linux内核的移植、文件系统的移植,并将其进行解析,将相
2、应的命令根据通信协议转化为相应的控制信号,接入控制电路从而控制相应的电器。本装置采用了四盏灯模拟家中的各种电器,通过远程的机算机来控制家里的电器。,功能模块设计,本课题所用环境,LINUX REDHAT 5,arm-linux-gcc 3.4.1,Friendly ARM Mini2440 Development Board,友善之臂,图示:友善之臂,主要设计方法,文件系统的制作,移置,linux2.6内核裁剪,移置,bootloader移置,建立 Linux 开发环境,程序测试,Bootloader,stage1(汇编部分),固件(fireware)中的boot代码,Bootloader 的
3、组成,stage2(C部分),Bootloader,硬件检测,资源分配,固件(fireware)中的boot代码,Bootloader,硬件设备初始化,拷贝Boot Loader 的stage2 到RAM 空间中,为加载Boot Loader 的stage2 准备RAM 空间,stage1(汇编部分),设置好堆栈,跳转到stage2 的C 入口点,Bootloader,初始化本阶段常用的硬件设备,内存映射mmap,将kernel image文件和根文件系统 image从flash读到RAM空间,stage2(C部分),为内核设置启动参数,调用内核,Bootloader的种类,Bootloade
4、r的实现大致可以分为以下几类 : 1.Vivi 由三星提供,韩国mizi 公司原创,开放源代码,必须使用arm-linux-gcc 进行编译,目前已经基本停止发展,主要适用于三星S3C24xx 系列ARM 芯片,用以启动Linux 系统,支持串口下载和网络文件系统启动等常用简易功能。,Bootloader的种类,2. U-Boot: 由三星提供,韩国mizi 公司原创,开放源代码,必须使用arm-linux-gcc 进行编译,目前已经基本停止发展,主要适用于三星S3C24xx 系列ARM 芯片,用以启动Linux 系统,支持串口下载和网络文件系统启动等常用简易功能。,Bootloader的种类
5、,3. Blob Blob(Boot Loader Object)是由Jan-Derk Bakker and Erik Mouw发布的,是专门为StrongARM 构架下的LART设计的Boot Loader。Blob支持SA1100的LART主板,但用户也可以自行修改移植。 Blob也提供两种工作模式,在启动时处于正常的启动加载模式,但是它会延时 10 秒等待终端用户按下任意键而将 Blob 切换到下载模式。如果在 10 秒内没有用户按键,则 Blob 继续启动 Linux 内核。,Bootloader的移植,将vivi 的源代码包复制到某一个目录,进入该目录,运行以下命令: #tar xv
6、zf vivi.tgz 执行该命令将把vivi 源代码解压到目录,进入vivi 源代码目录,执行: #make clean #make menuconfig 一般不需要更改任何配置,直接退出,然后执行“make”开始编译,执行结果如下: #make ARCH=arm CROSS_COMPILE=arm-linux- 此时已经在当前目录下生成了 vivi,把vivi 烧写到目标板的NandFlash 运行。,配置和编译 linux 内核,移植环境,内核的主要概念,内核,即操作系统。它为底层的可编程部件提供服务,为上层应用程序提供执行环境。内核裁剪就是对这些功能进行裁剪,选取满足特定平台和需求的功
7、能。不同的硬件平台对内核要求也不同,因此从一个平台到另一个平台需要对内核进行重新配置和编译。操作系统从一个平台过渡到另一个平台。Linux是一款平台适应性强,且容易裁剪的操作系统。因此Linux在嵌入式系统得到了广泛的应用。,linux内核的组成部分,Linux内核移植过程,(1)将所有文件复制到工作目录下,然后解压内核文件和编译器文件。 (2)为内核打补丁。 (3)修改Makefile,修改编译环境。 (4)修改machine ID。如果这一步省略,会在移植到开发板后Bootloader引导的时候出现机器ID错误的现象。出错的ID号将以十六进制给出,将其转化为十进制,替换mach-types
8、文件中的对应项。这里移植后报的错误是0 xFB,即对应十进制251。 (5)制作uImage文件。在内核目录下建议一个名为mkimage的文件 (6)对内核进行配置。执行make at91rm9200dk_defconfig实际上就是完成对内核的配置。 (7)编译内核生成映像文件。,Linux内核移植过程,内核移植过程图,文件系统的配置与移植,文件系统简单的说就是一种目录结构,由于 linux操作系统的设备在系统中是以文件的形式存在,将这些文件进行分类管理以及提供和内核交互的接口,就形成一定的目录结构也就是文件系统,文件系统是为用户反映系统的一种形式,为用户提供一个检测控制系统的接口,文件系统
9、的配置与移植,根文件系统是linux启动时使用的第一个文件系统,没有根文件系统性,linux将无法正常启动。 根文件系统由一系列目录组成,目录中包括了应用程序,C库以及相关的配置文件。,文件系统的配置与移植,Linux支持多种文件系统,常用的基于存储设备的文件系统类型包括:jffs2, yaffs, cramfs, 等。本次设计采用的是yaffs2。 yaffs2是专为嵌入式系统使用NAND型闪存而设计的一种日志型文件系统。与jffs2相比,它减少了一些功能(例如不支持数据压缩),所以速度更快,挂载时间很短,对内存的占用较小。另外,它还是跨平台的文件系统,除了Linux和eCos,还支持Win
10、CE, pSOS和ThreadX等。,文件系统移植过程,1.创建根文件系统的目录 2.创建设备文件 3.安装/etc 4.编译内核模块 5.安装内核模块 6.配置busybox 7.编译,安装busbox 8.制作yaffs 文件系统映象,Linux驱动开发,Led驱动的开发: mini2440 开发板上所用到的4 个LED 的硬件资源 要操作所用到的 IO 口,就要设置它们所用到的寄存器。低电平亮,高电平灭。,Linux驱动开发,驱动程序在 Linux 内核里扮演着特殊的角色. 它们是截然不同的“黑盒子”, 使硬件的特殊的一部分响应定义好的内部编程接口. 它们完全隐藏了设备工作的细节. 用户的活动通过一套
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025医疗行业税收政策调整对企业税收负担的影响分析
- Unit 3 Same or Different Section A(2a-2e)课件-2025-2026学年人教版八年级英语上册
- 网络游戏诉讼蓝皮书(2014-2024)
- XXXX垂钓乐园项目可行性研究报告
- 数据库应用技术试题及答案
- 四川省安全c类考试试题及答案
- 他在意我吗测试题及答案
- 天津七年级西游记考试试题及答案
- 典当管理办法释义
- 养老理财管理办法
- 安全生产管理体系建设(共27张课件)
- 附件2:慢病管理中心评审实施细则2024年修订版
- 和父亲断绝联系协议书范本
- (正式版)SH∕T 3548-2024 石油化工涂料防腐蚀工程施工及验收规范
- 2024-2030年中国脱硝催化剂行业供需态势与投资前景预测报告
- 保育员(中级)理论笔试知识点必练300题(含详解)
- (高清版)JTG 3370.1-2018 公路隧道设计规范 第一册 土建工程
- 《慢性阻塞性肺疾病中医肺康复指南》
- 会议室改造方案
- 高中英语40篇英语短文搞定高考3500词记忆本册单词背诵本带翻译
- 矿床成矿规律与找矿预测方法
评论
0/150
提交评论