嵌入式系统开发与应.ppt
《嵌入式系统开发与应.ppt》由会员分享,可在线阅读,更多相关《嵌入式系统开发与应.ppt(519页珍藏版)》请在三一办公上搜索。
1、嵌入式系统开发与应用,重庆交通大学信息科学与工程学院许强,主要内容,1.从芯片到系统硬件环境设计;要求:熟悉芯片的工作特点,CAD设计;目标:搭建应用硬件系统。2.内嵌uC/OS-II操作系统的嵌入式系统设计;要求:熟悉uC/OS-II操作系统内部运行特点;目标:设计嵌入式的软件系统。3.内嵌Linux(uClinux)操作系统的嵌入式系统设计。要求:了解Linux(uClinux)操作系统内部运行原理;熟悉开 发平台的搭建过程。目标:开发嵌入Linux(uClinux)的嵌入式应用系统。,学习要求,课前预习教材按时上课,认真听讲研读参考书和参考网站整理笔记,认真思考,积极讨论,善于发现问题、
2、提出问题并努力寻求问题的答案。结合嵌入式系统专题学习网站丰富的教学资源,努力寻求问题的答案,掌握基本原理,拓展知识,延伸视野,提高分析问题和解决问题的能力。,考核方式,平时考勤占20%,作业占10%,实验占20%考试占50%考勤有6次上,参考书,Labrosse Jean J.嵌入式实时操作系统uC/OS-II(第2版),邵贝贝等译.北京:北京航空航天大学出版社,2003.汤子瀛等,计算机操作系统,西安电子科技大学南京大学孙钟秀院士,操作系统教程第三版,高等教育出版社Silberschatz,操作系统概念(中、英文)第六版,高等教育出版社,题外之言,态度决定一切-前国家足球队教练米卢考试只是手
3、段,掌握知识才是关键。本课的重点在于宏观理解计算机系统,扩大知识面。交流、合作是成功的关键向他人公开你的见解和问题,勇于提出问题。通过报纸、杂志、书籍和网络查阅相关文献。对本专业来讲:活到老、学到老,时时更新自己的知识。,不要将自己置于尴尬境地,一.从芯片到系统硬件环境设计;,最小系统外存储芯片的组织网络芯片的组织与应用USB芯片的组织与应用LCD显示器的组织应用触摸屏的应用。,二.内嵌uC/OS-II操作系统的嵌入式系统设计;,uC/OS-II操作系统的原理uC/OS-II操作系统的应用设计,嵌入式实时操作系统uC/OS-II原理及应用,基本内容:基本概念、uC/OS-II的任务构架、任务的
4、实现特点;uC/OS-II的移植操作;具体uC/OS-II操作系统的裁剪;,重点:基本概念、uC/OS-II的任务构架、任务的实现特点及具体应用编程;,为什么要学习操作系统,设计操作系统或者修改现有的系统存在们意识不到的大量“操作系统”,嵌入式系统(Embedded OS)加深对使用的OS的理解,有利于深入编程用户为了开发应用程序必须与操作系统打交道编程时借鉴操作系统的设计思想和算法选择购实操作系统我并不总使用Win95/NT/2000/XP操作系统中所用的许多概念和技巧可以推广应用到其它领域,第1章嵌入式实时操作系统的基本概念,什么是计算机操作系统?什么是批处理操作系统?什么是分时操作系统?
5、什么是实时操作系统?监控程序与实时操作系统?什么是嵌入式操作系统?嵌入式系统与嵌入式操作系统?,计算机操作系统,系统软件、计算机硬件、软件资源的管理者。管理对象包括:CPU、存储器、外部设备、信息(数据和软件);管理的内容:资源的当前状态(数量和使用情况)、资源的分配、回收和访问操作,相应管理策略(包括用户权限)。用户使用系统硬件、软件的接口系统命令(命令行、菜单式、命令脚本式、图形用户接口GUI);系统调用(形式上类似于过程调用,在应用编程中使用)。,在裸机上添加:设备管理、文件管理、存储管理(针对内存和外存)、处理机管理(针对CPU);合理组织工作流程:作业管理、进程管理。,批处理操作系统
6、,作业的处理流程作业提交:作业的输入;作业执行作业完成:作业的输出;,图1 批处理系统中作业处理及状态,分时操作系统,把计算机的系统资源(尤其是CPU时间)进行时间上的分割,每个时间段称为一个时间片(time slice),每个用户依次轮流使用时间片。分时特征如下:,多路性:多个用户同时工作。共享系统资源,提高了资源利用率。节省维护开支,可靠性高:终端的概念至今仍在使用。促进了计算机的普遍应用,提高资源利用率:远地用户通过终端(较便宜)联机使用。独立性:各用户独立操作,互不干扰。交互性:系统能及时对用户的操作进行响应,显著提高调试和修改程序的效率:缩短了周转时间。,实时操作系统,实时操作系统主
7、要用于过程控制、事务处理等有实时要求的领域,其主要特征是实时性和可靠性。,实时系统的特征实时时钟管理:提供系统日期和时间、定时和延时等时钟管理功能;过载保护:缓冲区排队,丢弃某些任务,动态调整任务周期;过载是指进入系统的任务数目超出系统的处理能力。高度可靠性和安全性:容错能力(如故障自动复位)和冗余备份(双机,关键部件);,实时系统与批处理系统和分时系统的区别,专用性质:许多实时系统是专用系统,而批处理与分时系统通常是通用系统。实时控制:实时系统用于控制实时过程,要求对外部事件的迅速响应,具有较强的中断处理机构。高可靠性:实时系统用于控制重要过程,要求高度可靠,具有较高冗余。如双机系统。事件驱
8、动和队列驱动:实时系统的工作方式:接受外部消息,分析消息,调用相应处理程序进行处理。可与通用系统结合成通用实时系统:实时处理前台作业,批处理为后台作业。,监控程序与实时操作系统,监控程序:是最原始的低端单片机管理程序,由应用程序员自行编制;用户通过监控程序提高计算机的资源利用率,但这种利用是有限的。随着计算机技术的发展,计算机的硬件、软件资源愈来愈丰富,监控程序已不能高效支持,在此需求下不得不采用管理功能更全面的操作系统来完成。,操作系统的服务,服务类型程序执行和终止(包括分配和回收资源)I/O操作文件系统操作通信:本机内,计算机之间(通常通信服务的使用者为进程,而不是笼统说主机)配置管理:硬
9、件、OS本身、其他软件差错检测服务提供方式:系统命令和系统调用,早期低端嵌入式系统工作特点,传统的前/后台方式,不复杂的小系统常采用前/后台方式进行程序操作,整个程序为一个大循环体。其中前台为中断级,时间相关性很强的关键操作放在前台执行。后台为任务级,用于处理前台产生的各种信息。,前后台系统,后台程序:系统后台程序按顺序执行各种动作,通常用于处理前台产生的各种信息。,前台程序:前台为中断服务程序,用于响应外部事件,并产生一些信息提供给后台处理。,前后台系统的优缺点,嵌入式操作系统,运行在嵌入式硬件平台上,对整个系统及其所操作的部件、装置等资源进行统一协调、指挥和控制的系统软件。嵌入式操作系统以
10、微内核为主,其它诸如窗口系统界面、文件管理模块、通信协议等还要由开发人员自已设计或者外购。内核大多数只提供内存管理、多任务管理、外围资源管理。,嵌入式操作系统,电子消费产品-家用电器、手机、武器、控制设备嵌入式(计算机)系统硬件不再以物理上独立的装置或设备形式出现,而是大部分甚至全部都隐藏和嵌入到各种应用系统中。特点:微型化-可用内存小(1MB以内、没有外存、微处理器字长短且运算速度有限、能提供的能源较少、外部设备和被控设备千变万化)可定制-专业化(剪裁性)实时性-语音、视频、军事武器、航空航天、交通运输可靠性易移植性,嵌入式系统与嵌入式操作系统,嵌入式系统是基于单片机系统嵌入到对象系统的整合
11、,实现对象的智能化控制。因此要求具有专用性、微小化、控制的可靠性高、低功耗和成本低等特点。跟随嵌入式系统的完备管理,提出嵌入式操作系统,特点是异常响应时间可确定、程序微小化且可靠、可裁剪和易移植性等。,嵌入式操作系统的现状,VxWorks、pSOSWindows CEQNX OSuC/OS-IIuCLinuxLinux,C/OS-II原理及应用,C/OS-II简介工作原理C/OS-II移植简介C/OS-II使用初步,C/OS-II简介工作原理C/OS-II移植简介C/OS-II使用初步,C/OS-II原理及应用,C/OS-II简介,概述,C/OS-II读做“micro C O S 2”,意为“
12、微控制器操作系统版本2”。C/OS-II是源码公开的著名实时内核,可用于各类8位、16位和32位单片机或DSP。从C/OS算起,该内核已有10多年应用史,在诸多领域得到广泛应用。C/OS-II是一个完整的、可移植、可固化、可剪裁的占先式实时多任务内核。C/OS-II使用ANSI C语言编写,包含一小部分汇编代码,使之可以供不同架构的微处理器使用。至今,从8位到64位,C/OS-II已在超过40种不同架构的微处理器上运行。,C/OS-II特点,提供源代码:购买作者撰写的嵌入式实时操作系统C/OS-II一书即可获得C/OS-II V2.52版本的所有源代码,购买此书的其它版本可以获得相应版本的全部
13、源代码。可移植性(portable):C/OS-II的源代码绝大部分是使用移植性很强的ANSI C写的,将与微处理器硬件相关的汇编语言使用量压缩到最低的限度,以使C/OS-II便于移植到其它微处理器上。目前,C/OS-II已经被移植到多种不同架构的微处理器上。可固化(ROMmable):只要具备合适的软硬件工具,就可以将C/OS-II嵌入到产品中成为产品的一部分。可剪裁(scalable):C/OS-II使用条件编译实现可剪裁,用户程序可以只编译自己需要的(C/OS-II的)功能,而不编译不要需要的功能,以减少C/OS-II对代码空间和数据空间的占用。可剥夺(preemptive):C/OS-
14、II是完全可剥夺型的实时内核,C/OS-II总是运行就绪条件下优先级最高的任务。,C/OS-II特点,多任务:C/OS-II可以管理64个任务,然而,C/OS-II的作者建议用户保留8个给C/OS-II。这样,留给用户的应用程序最多可有56个任务。可确定性:绝大多数C/OS-II的函数调用和服务的执行时间具有确定性,也就是说,用户总是能知道C/OS-II的函数调用与服务执行了多长时间。任务栈:C/OS-II的每个任务都有自己单独的栈,使用C/OS-II的占空间校验函数,可确定每个任务到底需要多少栈空间。系统服务:C/OS-II提供很多系统服务,例如信号量、互斥信号量、时间标志、消息邮箱、消息队
15、列、块大小固定的内存的申请与释放及时间管理函数等。中断管理:中断可以使正在执行的任务暂时挂起,如果优先级更高的任务被中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中断嵌套层数可达255层。,C/OS-II特点,稳定性与可靠性:C/OS-II是C/OS的升级版,C/OS自1992年以来已经有数百个商业应用。C/OS-II与C/OS的内核是一样的,只是提供了更多的功能。2000年7月,C/OS-II在一个航空项目中得到了美国联邦航空管理局对商用飞机的、符合RTCA DO 178B标准的认证。这表明,该操作系统的质量得到了认证,可以在任何应用中使用。,作者及其著作,uC/OS-II的体系结
16、构,练习题,1、什么是计算机的操作系统?它应该具备什么功能?2、简述嵌入式系统与普通操作系统的区别?3、观察人们日常生活中嵌入式系统的应用?4、什么是实时系统?试列举几个日常生活中的实时系统?,第2章 uC/OS-II中的任务,uC/OS-II操作系统内核的主要工作就是对任务进行管理。,本章的主要内容有:uC/OS-II任务引入;任务的基本概念,用户任务和系统任务;任务代码、任务控制和任务堆栈;任务的优先权及表示任务优先权的参数;任务就绪表结构及操作;任务切换及任务调度;任务的创建、删除、挂起、恢复和查询;uC/OS-II的初始化和启动。,uC/OS-II多任务管理,多任务操作系统,多任务运行
17、的实现实际上是靠CPU在许多任务之间转换和调度。CPU只有一个,轮番服务于一系列任务中的某一个。多任务运行使CPU的利用率达到最高,并使应用程序模块化。最大特点是,开发人员可以将很复杂的应用程序层次化,程序将更容易设计和维护。,多任务系统工作原理,产生系统运作所必需的节拍,调度程序对所有任务进行运行控制,多任务系统工作原理,任务1,任务2,.,空闲任务,信号量,邮箱,内存管理,数据队列,最多支持64个任务;空闲任务一定存在,当所有任务都不运行时才运行空闲任务;所有任务都有不同的优先级,优先级为0表示最高,空闲任务优先级最低;任务之间的通信通过ucos提供的各种事件机制进行。,多任务系统工作原理
18、,操作系统调度程序,CPU资源,操作系统的调度程序对所有任务实现运行控制;任务切换实际就是把当前任务所占用的CPU资源用其它任务来替换;CPU资源包括寄存器R0-R15、CPSR、SPRS和其它一些全局变量;调度程序由系统节拍驱动。,2.1 任务的基本概念,任务是具有规定执行时间的一段程序代码。由于任务运行时是完全占有CPU时间片,因此可认为是一个“线程”。从应用程序的角度来看,uC/OS-II的任务就是一个线程,就是C语言函数和与之相关联的数据结构构成的实体。从任务的存储结构来看,uC/OS-II的任务由三个组成部分构成:任务程序代码、任务堆栈和任务控制块。,(a)任务的组成,任务的代码Vo
19、id mytask(void*pdata)For(;),任务,(b)任务链表,图2-1 uC/OS-II的任务在内存中的结构,2.1.1 任务的状态,uC/OS-II中的5种状态:睡眠状态:就绪状态:运行状态:等待状态:中断服务状态:,2.1.1 任务的状态,uC/OS-II中的5种状态:睡眠状态:就绪状态:运行状态:等待状态:中断服务状态:,任务只是以代码的形式驻留在程序空间(ROM或RAM),还没有交给操作系统管理时的情况叫做睡眠状态。简言之就是在内存中的无任务控制块的任务。OSTaskDel()OSTaskCreate()OSTaskCreateExt(),2.1.1 任务的状态,uC/
20、OS-II中的5种状态:睡眠状态:就绪状态:运行状态:等待状态:中断服务状态:,任务配备了任务控制块且在任务就绪表中进行了就绪登记,任务具备了运行充分条件,这是的任务状态叫就绪状态。OSTaskCreate()OSTaskCreateExt()OSFlagPost()OSMboxPost()OSMboxPostOpt()OSMutexPost()OSQPost()OSQPostFront()OSQPostOpy()OSSemPost()OSTaskResume()OSTimeTick()OSStart()OsIntExit()OS_TASK_SW(),2.1.1 任务的状态,uC/OS-II中
21、的5种状态:睡眠状态:就绪状态:运行状态:等待状态:中断服务状态:,处于就绪状态的任务如果经调度器判断获得了CPU的的使用权,则任务就进入运行状态。任何时刻只能有一个任务处于运行状态,就绪的任务只有当所有优先级高于本任务的任务都转为等待状态时,才进入运行状态。OSStart()OsIntExit()OS_TASK_SW(),2.1.1 任务的状态,uC/OS-II中的5种状态:睡眠状态:就绪状态:运行状态:等待状态:中断服务状态:,正在运行的任务,需要等待一段时间或需要等待一个事件发生再运行时,该任务就会把CPU的使用权让给其他任务而使任务进入等待状态。OSFlagPend()OSMboxPe
22、nd()OSMutexPend()OSQPend()OSSemPend()OSTaskSuspend()OSTimeDly()OSTimeDlyHMSM(),2.1.1 任务的状态,uC/OS-II中的5种状态:睡眠状态:就绪状态:运行状态:等待状态:中断服务状态:,一个正在运行的任务一旦响应中断申请就会中止运行而去执行中断服务程序,这时任务的状态叫做中断服务状态。,任务的运行状态,每个任务都有确定的状态,而同时只能是一个任务占有CPU;拥有运行权的任务一定是就绪任务中优先级最高的。,睡眠状态,就绪状态,运行状态,等待状态,ISR,用户任务代码的一般结构,1.任务一般结构任务的执行代码通常是一
23、个无限循环结构,并且在这个循环中可以响应中断,这种结构也叫超循环结构。,例2-1:一个用C语言编写的任务Void MyTask(Void*pdata)for(;)可以被中断的用户代码;OS_ENTER_CRITICAL();/进入临界段(关中断)不可以被中断的用户代码;OS_EXIT_CRITICAL();/退出临界(开中断)可以被中断的用户代码;,2、用户应用程序的一般结构,要在自己的系统中使用C/OS-II编写自己的应用程序,就必须遵守C/OS-II的编程规范。主要包括主函数和用户任务,它们的关系如下。,编写应用程序,根任务,目标板初始化(启动系统时钟),创建其它的任务,执行任务循环,任务
24、1,执行特定操作,执行任务循环,任务n,执行特定操作,执行任务循环,.,要在自己的系统中使用C/OS-II编写自己的应用程序,就必须遵守C/OS-II的编程规范。主要包括主函数和用户任务,它们的关系如下。,编写应用程序,#include config.hOS_STK TaskStartStkTASK_STK_SIZE;OS_STK TaskStkTASK_STK_SIZE;int main(void)OSInit();OSTaskCreate(Task1,(void*)0,编写应用程序,void Task1(void*pdata)pdata=pdata;/*避免编译警告*/TargetInit
25、();/*目标板初始化*/for(;)OSTimeDly(OS_TICKS_PER_SEC/50);if(GetKey()!=KEY1)continue;OSTimeDly(OS_TICKS_PER_SEC/50);if(GetKey()!=KEY1)continue;OSTaskCreate(Task2,(void*)0,将该任务放在循环中创建,是因为该任务执行一次后会自行删除,编写应用程序,/任务功能:鸣叫两声,然后删除自己void Task2(void*pdata)pdata=pdata;/*避免编译警告*/BeeMoo();/*使蜂鸣器鸣叫*/*延时*/OSTimeDly(OS_TIC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 开发
链接地址:https://www.31ppt.com/p-6414998.html