基于stm32智能家居答辩ppt

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

LOGO
LOGO
linux内核的组成部分
进程调度 内在管理 虚拟文件系统
网络接口 进程通信
LOGO
Linux内核移植过程
▪ (1)将所有文件复制到工作目录下,然后解压内核文件 和编译器文件。
▪ (2)为内核打补丁。 ▪ (3)修改Makefile,修改编译环境。 ▪ (4)修改machine ID。如果这一步省略,会在移植到
stage1(汇编 部分)
LOGO
Bootloader
初始化本阶段常用的硬件设备
内存映射--mmap
将kernel image文件和根文件系统 image从flash读到RAM空间
为内核设置启动参数
调用内核
stage2(C部 分)
LOGO
Bootloader的种类
来自百度文库
▪ Bootloader的实现大致可以分为以下几类 :
开发板后Bootloader引导的时候出现机器ID错误的现 象。出错的ID号将以十六进制给出,将其转化为十进制, 替换mach-types文件中的对应项。这里移植后报的错 误是0xFB,即对应十进制251。 ▪ (5)制作uImage文件。在内核目录下建议一个名为 mkimage的文件 ▪ (6)对内核进行配置。执行make at91rm9200dk_defconfig实际上就是完成对内核的配 置。 ▪ (7)编译内核生成映像文件。
LOGO
配置和编译 linux 内核
移植环境
1
主 机: VMWare —redhat9
2
开发板: Mini2440-64MB Nand
3
编译器: arm-linuxgcc-4.3.2
LOGO
内核的主要概念
内核,即操作系统。它为底层的可编程部件提供服务, 为上层应用程序提供执行环境。内核裁剪就是对这些功 能进行裁剪,选取满足特定平台和需求的功能。不同的 硬件平台对内核要求也不同,因此从一个平台到另一个 平台需要对内核进行重新配置和编译。操作系统从一个 平台过渡到另一个平台。Linux是一款平台适应性强,且 容易裁剪的操作系统。因此Linux在嵌入式系统得到了广 泛的应用。
由三星提供,韩国mizi 公司原创,开放源 代码,必须使用arm-linux-gcc 进行编译,目 前已经基本停止发展,主要适用于三星 S3C24xx 系列ARM 芯片,用以启动Linux 系统,支持串口下载和网络文件系统启动等 常用简易功能。
LOGO
Bootloader的种类
3. Blob
Blob(Boot Loader Object)是由Jan-Derk Bakker and Erik Mouw发布的,是专门为 StrongARM 构架下的LART设计的Boot Loader。 Blob支持SA1100的LART主板,但用户也可以自 行修改移植。 Blob也提供两种工作模式,在启 动时处于正常的启动加载模式,但是它会延时
1.Vivi
由三星提供,韩国mizi 公司原创,开放源 代码,必须使用arm-linux-gcc 进行编译,目 前已经基本停止发展,主要适用于三星S3C 24xx 系列ARM 芯片,用以启动Linux 系统, 支持串口下载和网络文件系统启动等常用简 易功能。
LOGO
Bootloader的种类
2. U-Boot:
10 秒等待终端用户按下任意键而将 Blob 切换到 下载模式。如果在 10 秒内没有用户按键,则 Blob 继续启动 Linux 内核。
LOGO
Bootloader的移植
▪ 将vivi 的源代码包复制到某一个目录,进入该目录,运行以下 命令:
▪ #tar xvzf
▪ 执行该命令将把vivi 源代码解压到目录,进入vivi 源代码目录, 执行:
LOGO
功能模块设计
1
bootloader的移植
2
配置和编译linux内核
3
配置和移植文件系统
4
驱动开发
LOGO
本课题所用环境
系统环境 LINUX REDHAT 5
交叉编译环境
arm-linux-gcc 3.4.1
系统运行环境 Friendly ARM Mini2440
Development Board
基于嵌入式智能家居 远程控制器设计
LOGO
指导老师:杨家红(博士)
答辩学生:刘淑辉(07级计 算机科学与技术专业)
LOGO
摘要
▪ 本文研究了基于linux嵌入式操作系统,以使用 arm2440为CPU的ARM9嵌入式开发板为硬件基础, 以LINUX REDHAT 5为系统开发环境,以armlinux-gcc 4.3.2为交叉编译环境以Friendly ARM Mini2440 Development Board为系统运行环境的 智能家居系统的设计与实现。通过详细的系统设计过 程,制定系统,包括嵌入式操作系统linux内核的定 制、bootloader的移植、linux内核的移植、文件系 统的移植,并将其进行解析,将相应的命令根据通信 协议转化为相应的控制信号,接入控制电路从而控制 相应的电器。本装置采用了四盏灯模拟家中的各种电 器,通过远程的机算机来控制家里的电器。
stage2( C部分)
LOGO
Bootloader
硬件检测 资源分配
固件 (fireware) 中的boot代码
LOGO
Bootloader
硬件设备初始化 拷贝Boot Loader 的stage2 到RAM 空间中 为加载Boot Loader 的stage2 准备RAM 空间
设置好堆栈 跳转到stage2 的C 入口点
▪ #make clean ▪ #make menuconfig
▪ 一般不需要更改任何配置,直接退出,然后执行“make”开始 编译,执行结果如下:
▪ #make ARCH=arm CROSS_COMPILE=arm-linux▪ 此时已经在当前目录下生成了 vivi,把vivi 烧写到目标板的
NandFlash 运行。
LOGO
友善之臂
图示:友善之臂
LOGO
主要设计方法
程序测试 文件系统的制作,移置 linux2.6内核裁剪,移置 bootloader移置 建立 Linux 开发环境
LOGO
Bootloader
Bootloader 的组成
固件(
fireware )中的 boot代 码
stage1( 汇编部分 )
相关文档
最新文档