嵌入式系统复习资料课件.ppt

上传人(卖家):三亚风情 文档编号:2518765 上传时间:2022-04-28 格式:PPT 页数:64 大小:639.50KB
下载 相关 举报
嵌入式系统复习资料课件.ppt_第1页
第1页 / 共64页
嵌入式系统复习资料课件.ppt_第2页
第2页 / 共64页
嵌入式系统复习资料课件.ppt_第3页
第3页 / 共64页
嵌入式系统复习资料课件.ppt_第4页
第4页 / 共64页
嵌入式系统复习资料课件.ppt_第5页
第5页 / 共64页
点击查看更多>>
资源描述

1、1嵌入式系统复习2提纲一嵌入式系统概述二开发系统及开发环境的建立三嵌入式系统的Boot Loader技术四ARM Linux内核五嵌入式文件系统六嵌入式设备驱动七嵌入式GUI3一. 嵌入式系统概述41.1 嵌入式系统介绍l根据IEEE的定义,嵌入式系统是控制、监视或者辅助设备、机器和车间运行的装置l通俗来讲,嵌入式系统是以应用为中心,以计算机技术为基础,采用可剪裁软硬件,适用于对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统5l一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成 61.2 嵌入式系统设计 l嵌入式系统的设计可以分成三个阶段:分析、设计

2、和实现(例如心电监测报警器)l分析:监测心电,异常状态识别,鸣叫、短信报警l设计:供电系统,电极,信号放大调理,处理器,自动语音播放,短信模块l实现:电路板设计,软件系统编程,机壳设计等7l硬件和软件的选择包括:l处理器(如51、ARM)l硬件部件(如运放、短信模块)l操作系统(如uC/OS-II、WinCE)l编程语言(如汇编、C)l软件开发工具(Keil、ADS)l硬件调试工具(如Wiggler下载线、ULink)l软件组件(如LWIP、JFFS)81.3 嵌入式微处理器ARM lARM微处理器及技术的应用已经深入到各个领域:l工业控制领域 l无线通讯领域 l网络应用 l消费类电子产品 l

3、成像和安全产品 9lRISC架构的ARM微处理器一般具有如下特点: l体积小、低功耗、低成本、高性能l支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件l大量使用寄存器,指令执行速度快l大多数数据操作都在寄存器中完成l寻址方式灵活简单,执行效率高l采用固定长度的指令格式 101.4 嵌入式操作系统 l嵌入式LinuxlWindows CElSymbianlVxWorksl111.5 嵌入式系统开发 l嵌入式系统的开发过程 :121.5.1 交叉编译与链接 l交叉编译器和交叉链接器是能够在宿主机上运行,并且能够生成在目标机上直接运行的二进制代码的编译器和链接器 l基

4、于ARM体系结构的gcc交叉开发环境中,arm-linux-gcc是交叉编译器,arm-linux-ld是交叉链接器 l嵌入式系统在链接过程中通常都要求使用较小的函数库,如uClibc、uClibm 和newlib等 131.5.2 远程调试 l一般而言,远程调试过程的结构如图:14二.开发系统及开发环境的建立152.1 JEA2440开发系统lCPU:Samsung S3C2440,ARM920T内核,主频400MHz,最高可达533MHzlFLASH:NandFlash 64MB,NorFlash 2MBlSDRAM:2x32MB 16-bit SDRAM,共64MBlLCD、触摸屏、US

5、B、SD卡、IIS音频、CS8900扩展10M网络、串口、PS/2、JTAG等接口162.2 开发环境的建立l硬件开发环境的建立l适用的开发板及配套电源lJTAG工具(下载线、HJTAG调试代理)l并口、串口、USB、网线等连接线l软件开发环境的建立lADS、Keil、armGCC等lBootLoader的实现l操作系统(内核、文件系统)的实现l上层软件开发环境,如图形界面生成器Glade172.2.1 宿主机-目标机开发模式JTAG/USB182.2.2 BootLoader lLILOlGRUBlU-BOOTlVIVI192.3 宿主机环境lWindows环境lADS:用于编译BootLo

6、aderlHJTAG:调试代理l串口调试助手lDNWlLinux环境lBOOTP协议 lTFTP协议 l交叉编译 lMake工具 202.4 Make工具io.hread.cmain.cwrite.cread.omain.owrite.otest21l基本规则 :目标、依赖关系、指令test: main.o read.o write.o gcc o test main.o read.o write.omain.o : io.h main.c gcc c main.cread.o : io.h read.c gcc c read.cwrite.o : io.h write.c gcc c wri

7、te.c22三.嵌入式系统的Boot Loader技术233.1 Boot Loader程序的基本概念lBoot Loader就是在操作系统内核运行之前运行的一段小程序 l初始化硬件设备和建立内存空间的映射图 l将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境 l系统的Boot Loader程序通常安排在地址0 x00000000 处 242440的NAND Flash控制器框图25内部内部SRAM映映射到射到0地址,地址,硬件逻辑自硬件逻辑自动从动从NAND读读取取4KB代码代码进来并执行,进来并执行,启动完后用启动完后用户自行决定户自行决定用途用途不从不从N

8、AND启启动时,映动时,映射到此处,射到此处,用户自行用户自行决定用途决定用途Memory Mapping263.2 Boot Loader的典型结构框架l操作系统的角度看,Boot Loader的总目标就是正确地调用内核来执行 l大多数Boot Loader都分为阶段1和阶段2两大部分 l阶段1实现依赖于CPU体系结构的代码 l阶段2实现一些复杂的功能 273.3 BootLoader的宿主机-目标机连接USB:下载程序:下载程序RS232:人机交互:人机交互283.4 裸板如何烧写BootLoaderl烧写NAND:JTAG下载线+SJF244029l烧写NOR:JTAG下载线+HJTAG

9、30四. ARMLinux 内核314.1 ARM-Linux内存管理 l操作系统的基本功能:1.处理器管理(即管理cpu)2.存储器管理(管理内存)3.设备管理(管理其它外设,比如打印机)4.作业管理(如何完成用户交给的任务)5.文件管理(管理用户的文件)324.2任务、进程和线程33l任务、进程和线程l任务(task)指由软件完成的一个活动。一个任务既可以是一个进程,也可以是一个线程。l进程(process)常常被定义为程序的执行。可以把一个进程看成是一个独立的程序,在内存中有其完备的数据空间和代码空间。一个进程所拥有的数据和变量只属于它自己。l线程(thread)则是某一进程中一路单独运

10、行的程序。线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.34l任务、进程和线程的区别与联系l一个程序至少有一个进程,一个进程至少有一个线程。l进程间是独立的,这表现在内存空间,上下文环境;线程运行在进程空间内。 l一般来讲(不使用特殊技术)进程是无法突破进程边界存取其他进程内的存储空间;而线程由于处于进程空间内,所以同一进程所产生的线程共享同一内存空间。l同一进程中的两段代码不能够同时执行,除非引入线程。 l线程是属于进程的,当进程退出时该进程所产生的线程都会被强制退出并清除。 l线程占用的资源要少于进程所占用的资源。 l进程和线程都可以有优先级。

11、l堆栈是每个线程一个,所以局部变量对每一线程来说是私有的。 354.3 ARM存储管理机制存储管理机制单层,单层,段(段(section)映射映射 大小:大小:1MB地址映射地址映射二层二层页面映射页面映射大页面大页面:64KB小页面小页面:4KB细小页面细小页面:1KB360 x2000000000000 x2000000000000 x0000000000000 x0000000000000 xFFFFFFFFFFFF0 xFFFFFFFFFFFF低20位物理地址高12位确定映射表位置一、初始:一、初始:32位位CPU虚拟地址虚拟地址二、映射:段映射表(二、映射:段映射表(4096个表项)

12、个表项)三、结果:组合为三、结果:组合为32位物理地址位物理地址访问许可等标志12位物理段地址单个描述项低20位物理地址高12位物理段地址单层映射三步骤单层映射三步骤37100010000 040964096低12位物理地址高12位-首层映射表一、初始:一、初始:32位位CPU虚拟地址虚拟地址二、首层映射二、首层映射四、结果:组合为四、结果:组合为32位物理地址位物理地址低12位物理地址高20位物理段地址次8位-2层映射三、三、2层映射:层映射:256个表项个表项每个表项指向一个二层映射表0 x200000000 x200000000 x000000000 x000000000 xFFFFFF

13、FF0 xFFFFFFFF其他标志20位物理段地址384.4 Linux的模块机制 lLinux中的可加载模块(Module)是 Linux内核支持的动态可加载模块 lInsmodlrmmod lLinux module载入内核后,它就成为内核代码的一部分 l若某个module空闲,用户便可将它卸载出内核 39五. 嵌入式文件系统405.1 文件系统分层结构文件系统格式文件系统格式存储硬件存储硬件文件系统文件系统如硬盘、如硬盘、SD卡、卡、NOR Flash、NAND Flash等等如如FAT32、NTFS、JFFS2、YAFFS2等等如如init脚本、脚本、shell、基本命令集等基本命令集

14、等415.2 嵌入式Linux常用文件系统 lFlash Memory简介 lFlash Memory上的两种技术lNAND:串行;顺序读取;适合大容量;通常需MTDlNOR :并行;随机读取;适合数据或程序存储;XIP;lJEA2440开发平台上所使用的闪存 l64M NAND:K9F1208; 2M NOR: 29LV160DBlExt2fs 、JFFS和YAFFS lext、 ext2、xia、vfat、minix、msdos、umsdos、 proc、smb、ncp、iso9660、sysv、hpfs、affs、ufs、vfs等 425.3 使用BusyBox构建根文件系统 lBusy

15、Box包括系统不可或缺的 init 程序,以及其他诸如 sed, ifconfig, halt, reboot, mkdir, mount, ln, ls, echo, cat, vi编辑器.等等,大小不过几百K左右。l用户还可以根据自己的需要,修改BusyBox默认的编译配置,决定到底要编译进哪些应用程序的功能,其体积可以进一步缩小。BusyBox支持多种体系结构,可以静态或动态链接glibc或者uclibc库。43六. 嵌入式设备驱动446.1 Linux下设备驱动程序简介456.2 Linux设备的分类 l字符设备字符设备l以字节为单位逐个进行以字节为单位逐个进行I/O操作操作 l字符设

16、备中的缓存是可有可无字符设备中的缓存是可有可无 l不支持随机访问不支持随机访问 l如串口设备如串口设备/dev/ttyS0(/dev/cua0为以前常用名)为以前常用名)l块设备块设备 l块设备的存取是通过块设备的存取是通过buffer、cache来进行来进行 l可以进行随机访问可以进行随机访问 l例如例如IDE硬盘设备硬盘设备/dev/hda l支持可安装文件系统(支持可安装文件系统(mount)l网络设备网络设备 l通过通过BSD套接口(套接口(BSD Socket)访问)访问 466.3 Linux设备文件 lLinux抽象了对硬件的处理,所有的硬件设备都可以作为普通文件一样来看待l可以

17、使用和操作文件相同的、标准的系统调用接口来完成打开open、关闭close、读read、写write和I/O控制操作ioctll对用户来说,设备文件与普通文件并无区别476.4 主设备号和次设备号 l主设备号:标识该设备的种类,也标识了该设备所使用的驱动程序l次设备号:标识使用同一设备驱动程序的不同硬件设备 l所有已经注册(即已经加载了驱动程序)的硬件设备的主设备号可以从/proc/devices文件中得到 l 生成设备文件:root# mknod /dev/lp0 c 6 0486.5 设备驱动程序结构 lLinux的设备驱动程序与外界的接口可以分成三部分:l与操作系统内核的接口,通过与操作

18、系统内核的接口,通过file_operations数据结构实现数据结构实现l与系统引导的接口,利用驱动程序对设备进行初始化与系统引导的接口,利用驱动程序对设备进行初始化l与设备的接口,描述驱动程序如何与设备交互与设备的接口,描述驱动程序如何与设备交互lLinux设备驱动程序的代码结构大致可以分为如下几个部分:l通过通过module_init()和和module_exit()函数指定模块驱动程序初函数指定模块驱动程序初始化及退出的处理函数始化及退出的处理函数l驱动程序的注册与注销、设备的打开与释放、设备的读写操作、驱动程序的注册与注销、设备的打开与释放、设备的读写操作、设备的控制操作、设备的中断

19、和轮询处理设备的控制操作、设备的中断和轮询处理49七. 嵌入式GUI507.1 嵌入式GUI简介lGUI为Graphical User Interface(图形用户界面)的缩写,例如Windows中使用的视窗,嵌入式GUI即为在嵌入式系统上使用的图形用户界面。l与GUI相对的是命令行界面(Command Line Interface,缩写为CLI),例如命令行提示符、DOS等。l嵌入式GUI设计一般来说包括以下3个方面:51嵌入式GUI设计一般来说包括以下3个方面:1.硬件设计,通过LCD控制器把LCD显示器和开发系统连接起来。LCD控制器控制器52嵌入式GUI设计一般来说包括以下3个方面:2

20、.驱动程序设计,为输出输入设备如LCD设计驱动程序,使硬件能驱动起来。LCD驱动程序驱动程序应用软件应用软件53嵌入式GUI设计一般来说包括以下3个方面:3.用户界面程序设计,使用嵌入式系统提供的函数库进行图形化程序设计。547.2 比较流行的嵌入式GUI l目前在嵌入式系统比较流行的图形用户界面GUI :lTiny-X:书上主要介绍lQt/Embedded:我们的实验将要使用lMicroWindows lOpenGUI lMiniGUI:魏永明主持开发557.3 X Windows架构lX Windows最先是UNIX系统上使用的图形用户界面l采用客户端/服务器的设计概念 lX Window

21、s由3部分组成:客户端、服务器和X协议 lX Windows是事件驱动,大部分时间处于一种等待事件发生的状态 56X Windows的基本的API函数库 :577.4 Tiny-X系统架构lFrameBuffer 帧缓冲器lTinyX(Xfbdev)TinyX为Xwindows的微缩版,有经过精简的Xlib类库 lGlib包括一些基础数据类型和典型的C程序需要的功能 lGDK是建立在Xlib上的针对图形图像类封装的底层图形库 lGTK是建立在Xlib和GDK上的高级面向对象的类库 l窗口管理器(QVWM): 一种类似于window95风格的窗口管理器 lGlade:GTK的集成开发环境 58T

22、iny-X库的调用关系:597.5 Tiny-X应用程序开发 l想编写基于Tiny-X的图形用户程序需要了解GTK+ lGTK+依赖于Glib并建立在GDK (GIMP Drawing Kit)的上层,基本上是将Xlib功能包装起来,它是对底层的X Windows系统库Xlib的简化 607.6 GTK+的基本概念 l信号、事件和对象 l构件 l容器 l消息及回调函数的概念 61626. 总结l了解嵌入式系统概念、应用领域、微了解嵌入式系统概念、应用领域、微处理器分类。处理器分类。l理解嵌入式系统设计的理解嵌入式系统设计的3 3个阶段,在个阶段,在课后对心电监测报警器实例多作思考。课后对心电监

23、测报警器实例多作思考。l理解嵌入式系统应用开发流程,理解理解嵌入式系统应用开发流程,理解交叉编译与交叉链接的概念,掌握远交叉编译与交叉链接的概念,掌握远程调试开发是如何实现的。程调试开发是如何实现的。63总结l1.NANDFLASH与与NORFLASH的功能及区别的功能及区别l2. RS232电平转换电路电平转换电路l3.边界扫描技术边界扫描技术JTAGl4.嵌入式软件系统基本模型嵌入式软件系统基本模型l5.Boot Loader 的概念的概念l6.宿主机环境建立宿主机环境建立l7.Makefile文件、文件、MAKE工具工具l8.Makefile基本规则基本规则 l9.宏和标签宏和标签64提纲l1. ARM系统结构简介 l2. ARM-Linux内存管理 l3. ARM-Linux 的中断响应和处理 l4. ARM-Linux系统调用l5. 系统的启动和初始化 l6. ARM-Linux进程管理和调度 l7. Linux的模块机制

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(嵌入式系统复习资料课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|