嵌入式系统的软件系统课件.pptx
《嵌入式系统的软件系统课件.pptx》由会员分享,可在线阅读,更多相关《嵌入式系统的软件系统课件.pptx(79页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、1v软件的结构和组成v监控程序vBSPv软件系统的设计方法v软件的移植2#include main() printf(“hello,worldn”);31.嵌入式操作系统。2.操作系统与应用软件的集成。3.软件的结构。4.嵌入式系统的软件是没有出口的,程序不能“退出”,整个程序的结构应该是无限的循环。5.嵌入式系统的软件设计需要考虑硬件的支持、操作系统的支持、程序的初始化和引导等诸多的方面。6.嵌入式系统的软件可能没有操作系统,在裸机上直接开发。 4v初始化引导代码v板级支持包v操作系统v通信协议栈v图形用户界面v应用软件56v初始化引导代码是任务嵌入式系统上电复位后第一个执行的代码 v复位向
2、量 80186:FFFF0H MCS51:0 ARM:0v执行: 自检 引导操作系统 进入初始化(硬件、软件)7vAT平台的标准化v嵌入式系统平台的多样化vBSP的功能 用户定制的系统各不相同 用户定制的系统主要部分相同v含有存储器、定时器、中断等操作系统运行所需的基本部件 嵌入式操作系统与用户定制硬件平台之间的接口8v复杂系统需要嵌入式操作系统的支持v简单系统可以不使用嵌入式操作系统v嵌入式操作系统可裁减 嵌入式操作系统的内核v处理机管理(任务、任务之间的通信和同步等)v存储器管理 完整的嵌入式操作系统v内核v文件系统v人机界面v设备驱动等9v协议栈对于具有网络功能的嵌入式系统产品是必要的,
3、目前嵌入式协议栈的提供有两种方式, 一种是独立的第三方协议栈产品, 一种是嵌入式操作系统的提供商提供协议栈产品。v协议栈的运行必须基于嵌入式操作系统的平台支持,但是并不意味着协议栈必须依赖于嵌入式操作系统的API。事实上,许多的嵌入式协议栈,如inter niche的嵌入式TCP/IP协议栈做到了与操作系统的最大独立性,可以与大多数嵌入式操作系统集成运行。10v嵌入式系统的应用软件一般需要自主开发,不同的嵌入式系统的应用软件各具特色和功能。 例如常用的应用软件用于PDA上,记事本、通讯录、计算器等。 应用于工业现场总线领域的应用软件如控制软件等。 应用软件的开发基于操作系统、网络通信协议栈、图
4、形用户接口、文件系统等一系列的低层API。 11v对于大多数嵌入式系统,图形用户接口是必要的,特别是随身设备如PDA、手机等。vGUI运行在嵌入式操作系统之上。用户开发的与用户交互的应用软件通过调用GUI的功能调用(API)来实现。 12v监控程序是运行在嵌入式系统中的一段代码,具有与用户进行交互,管理系统资源的功能,具有操作系统内核的一小部分功能。嵌入式系统正式运行时,通常不需要监控程序的干预。v目前开发嵌入式系统,监控程序的作为正在减少,只用在一些小的嵌入式系统中。v有的嵌入式控制器的制造商把监控程序驻留在ROM中提供给用户在开发时使用,提供的功能如程序下载、调试、固化等。 如motoro
5、la公司的某些8位嵌入式微控制器13v嵌入式操作系统运行的必要条件 ROM空间 RAM空间 定时器 中断 堆栈14vBSP的运行流程 1. 复位向量入口,此时中断是禁止的; 2. 设置处理器的工作模式,通常使用复位时的缺省模式; 3. 设置RAM和ROM的工作参数,包括DRAM的刷新参数、地址空间分配等,到此嵌入式系统的处理器和存储器子系统可以达到运行状态; 4. 设置操作系统运行所需要的数据段、堆栈空间等; 5. 设置中断向量,中断向量的设置根据需要进行,也可以在其它的时候设置,但是一定要在中断允许之前完成设置; 6. 操作系统的初始化; 7. 进入用户的应用;15v1. 跳转到INT_re
6、set;系统上电复位程序入口;v2. 执行Int_Initialize;v3. 执行Inc_Initialize;v4. 进入应用程序入口Application_Initialize。16startINT_resetINT_initializeINC_Initializeapplication_initialize过程调用17v(1) 初始化处理器的硬件寄存器;v(2) 设置处理器的片上译码器的寄存器,为FLASH,RAM,I/O等分配存储空间。 18v(1) 设置必要的处理器/系统控制寄存器;v(2) 初始化中断向量表;v(3) 设置系统堆栈指针;v(4) 设置定时器中断;v(5) 计算定时
7、器的优先级和堆栈;v(6) 计算出可用的存储器的首地址;v(7) 跳转到INC_Initialize,初始化所有的系统组件。19v操作系统的初始化: 初始化操作系统的每一个组件, 初始化完成后进入Application_Initialize, 进入用户开发的应用程序。 这一部分代码不需要用户编写。20v用户的应用:应用程序入口Application_Initialize() /* to do: 用户编写的应用程序 */ 211.无操作系统的嵌入式软件设计2.有操作系统的嵌入式软件设计221.前后台系统2.中断(事件)驱动系统3.巡回服务系统4.基于定时器的巡回服务系统231.后台:应用程序是一
8、个无限循环,巡回地执行多个事件,完成相应的操作。这一部分软件称为后台。通常在主程序main()中被调用。2.前台:中断服务程序处理异步事件,这一部分可以看成是前台。v后台可以称为任务级,前台可以称为中断级。强实时性的的关键操作一定要用中断来实现。24main()/* 硬件初始化 */ while(1) /* 后台程序 */ action1();action2();action3(); action_1()/* 执行动作n */ action_n()/* 执行动作n */25Isr_1() /* 中断1的中断服务程序 */ Isr_n() /* 中断2的中断服务程序 */ 26v实时性问题(不好
9、) 中断服务程序提供的数据(实时性数据)只有在后台轮询到的时候才能得到运行v应用 小系统:v微波炉v电话机v玩具等27v原理 整个嵌入式系统软件由中断服务程序构成 主程序完成系统的初始化工作v应用 低功耗系统设计 事件驱动系统v构成 主程序-完成系统的初始化 中断服务例程-完成事务处理28main() /*完成系统的硬件初始化和数据结构的初始化(如果必要的话)*/* to do: 系统的初始化 */ while(1) 。其它代码或 enter_low_power(); /*进入低功耗状态*/ 29Isr_n() /* 其中的一个中断服务程序 */* to do: 处理中断事件 */ /* to
10、 do: 中断返回 */30v应用: 嵌入式处理器/控制器的中断源不多 解决方案v增加中断源-需要硬件,成本高v软件方案-软件巡回服务main() /* to do: 系统初始化 */ while(1) action_1();/*巡回检测事件1并处理事件*/ action_2();/*巡回检测事件2并处理事件*/ action_n();/*巡回检测事件n并处理事件*/ 31v普通巡回服务系统的缺点1. 处理器全速运行,开销大-功耗高-电池供电系统2. 降低处理器的工作时间-基于定时器的巡回服务系统v构成1. 主程序2. 定时器中断服务程序32main() /* to do: 系统初始化 */
11、/* to do: 设置定时器,如自动重新加载方式 */ while(1) 。其它代码或 enter_low_power(); 33Isr_timer() /* 定时器的中断服务程序 */action_1(); /*执行事件1的处理*/action_2(); /*执行事件2的处理*/action_n(); /*执行事件n的处理*/34v使用操作系统的目的: 如其设计一个复杂的程序处理多个事件,不如为每个事件设计一个简单的任务,任务由操作系统自动、可靠地管理和控制。 加速开发-部分工作由操作系统完成 减少工作量-利用操作系统的功能 系统设计可靠-操作系统经过运行的考验 简化系统设计-设计简单的任
12、务35v基本概念1. 嵌入式操作系统2. 进程: process3. 线程: thread4. 过程: procedure;子程序;函数5. 任务: task6. 作业: job361.分时系统:嵌入式linux2.实时系统1. 实时性1.硬实时2.软实时2. 任务调度方式1.非抢占式2.抢占式37v缺点:无法保证事务处理的优先级v应用:PDA等不需要实时处理的应用3839v系统组成1. 任务v用户任务v系统任务2. 操作系统的任务调度器v操作系统的任务调度器根据任务的优先级进行调度任务的执行3. 引起任务调度的因素v硬件中断v定时器溢出v任务之间的通信和同步等 其它程序(主程序、子程序等)4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 软件 课件
限制150内