ReWorks实时操作系统核心功能分析(-)课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《ReWorks实时操作系统核心功能分析(-)课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ReWorks 实时 操作系统 核心 功能分析 课件
- 资源描述:
-
1、ReWorks嵌入式应用开发嵌入式应用开发ReWorks实时操作系统实时操作系统核心功能分析核心功能分析2培训大纲3培训大纲ReWorks上层应用开发基础上层应用开发基础ReWorks底层驱动开发基础底层驱动开发基础4培训大纲ReWorks上层应用开发基础上层应用开发基础ReWorks底层驱动开发基础底层驱动开发基础5培训大纲时钟时钟/定时器管理定时器管理:阐述ReWorks的系统时钟、时间、定时器等基本功能。中断中断/异常管理异常管理:描述ReWorks对于外部事件的中断响应方式,以及对于CPU异常的处理机制。多任务管理多任务管理:讲述ReWorks中对于多任务的调度机制,以及任务间共享资源
2、以及同步的手段。内存管理:内存管理:叙述实时系统中对于内存的管理方法,包括对于硬件MMU的支持。12345总结:总结:通过几个上机分组实验对培训内容进行归纳总结。6培训大纲时钟时钟/定时器管理定时器管理:阐述ReWorks的系统时钟、时间、定时器等基本功能。中断中断/异常管理异常管理:描述ReWorks对于外部事件的中断响应方式,以及对于CPU异常的处理机制。多任务管理多任务管理:讲述ReWorks中对于多任务的调度机制,以及任务间共享资源以及同步的手段。内存管理:内存管理:叙述实时系统中对于内存的管理方法,包括对于硬件MMU的支持。12345总结:总结:通过几个上机分组实验对培训内容进行归纳
3、总结。7系统时钟v 系统时钟是特定的周期性中断,该中断可以看做系统心脏的脉动系统时钟是特定的周期性中断,该中断可以看做系统心脏的脉动。系统时钟提供计时功能,使内核可以将任务延时若干个整数时钟节拍,以及当任务等待事件发生时,提供等待超时的依据。v ReWorks中缺省的时钟频率为100 次/秒;n 高精度时戳接口 sys_timestamp()返回当前的时戳数;sys_timestamp_freq()返回时戳频率。v 由于不同CPU时钟频率的差异,在调用thread_delay等系统延时函数时,函数的参数避免直接指定tick数,以保证等待的时间一致。1.1系统时钟8实时时钟v RTC时间的设置和
4、获取 实时时钟是硬件提供的管理系统日历时间的功能,ReWorks核心针对系统日历时间的操作的标准接口有:rtc_read、rtc_write,用户可以在这些接口里实现具体的RTC功能,从而可以实现设置、获取及维护系统的日历时间。实时时钟1.29v 定时器通过定时器控制块管理,通过系统时钟的计时手段提供定时触发功能。定时器状态转换图如下图所示:1.3定时器定时器管理10v 辅助时钟 为了提供更高精度的定时功能,硬件可以提供辅助时钟。v 主要接口函数(1)创建定时器 int utimer_create(u32*id);(2)删除定时器 int utimer_delete(u32 id);(3)启动
5、定时器 int utimer_start(u32 id,int ticks,void(*func)(void*),void*arg);(4)取消定时器 int utimer_cancel(u32 id);定时器(续)1.3定时器管理11培训大纲时钟时钟/定时器管理定时器管理:阐述ReWorks的系统时钟、时间、定时器等基本功能。中断中断/异常管理异常管理:描述ReWorks对于外部事件的中断响应方式,以及对于CPU异常的处理机制。多任务管理多任务管理:讲述ReWorks中对于多任务的调度机制,以及任务间共享资源以及同步的手段。内存管理:内存管理:叙述实时系统中对于内存的管理方法,包括对于硬件M
6、MU的支持。12345总结:总结:通过几个上机分组实验对培训内容进行归纳总结。12中断/异常管理v 异常异常是CPU所产生的非预料的事件,包括如:陷阱、中断指令、被零除、浮点指针或整数溢出、错误指令或地址错误。v 中断中断是一种硬件机制,用于通知CPU“有异步事件发生”。中断机制使CPU在事件发生时进行处理,而不必连续查询是否有事件发生。2.1中断/异常概述13中断/异常管理2.1异常号异常号异常名称异常名称异常号异常号异常名称异常名称0除零异常6无效指令异常4溢出异常7浮点异常5越界异常14非法地址异常x86常见异常号v系统出现异常时,CPU通常通过异常号来反映具体的异常信息。以x86为例,
7、常见的异常号如下表所示:14v 中断是一种硬件机制,用于通知CPU“有异步事件发生”。中断机制使CPU在事件发生时进行处理,而不必连续查询是否有事件发生。v ReWorks采用中断处理和任务的关联机制,使主体的中断处理任务可运行于用户空间。2.1外部事件响应中断/异常管理15中断/异常管理v 作为其I/O处理的一部分。ISR 通常直接与一个或多个任务通信,这种通信的性质通常是驱使一个任务运行并处理中断条件。这类似于任务与任务的通信或同步。但有两点重要的差别。v 首先,中断的优先级高于任务,即使ISR 发送一条消息和唤醒一个高优先级的任务使其就绪,ReWorks内核仍然必须先返回到ISR,让IS
8、R完成。v 其次,ISR 通常是通信/同步源,它往往需要返回一个信号量,或者向任务发送一个消息或一个事件。ISR 很少会是通信汇点,它不能等待消息或事件。2.1中断/异常概述16v 中断服务程序(ISR)注意事项(1)ISR代码尽量短;(2)不能调用引起系统阻塞的函数,如semTake、malloc、printf等;(3)锁中断时间应尽量短,否则会引起中断丢失;(4)避免在中断服务程序中使用浮点指针操作;(5)可通过logMsg()或者轮询输出函数printk打印调试信息;(6)不同中断不要使用相同的优先级。2.1外部事件响应(续)中断/异常管理17培训大纲时钟时钟/定时器管理定时器管理:阐述
9、ReWorks的系统时钟、时间、定时器等基本功能。中断中断/异常管理异常管理:描述ReWorks对于外部事件的中断响应方式,以及对于CPU异常的处理机制。多任务管理多任务管理:讲述ReWorks中对于多任务的调度机制,以及任务间共享资源以及同步的手段。内存管理:内存管理:叙述实时系统中对于内存的管理方法,包括对于硬件MMU的支持。12345总结:总结:通过几个上机分组实验对培训内容进行归纳总结。18任务管理v 单任务系统vs多任务系统 以一款具有播放歌曲、阅读电子书功能的多媒体电子设备为例,单任务系统中,两种功能只能顺序执行,不能同时进行;而多任务系统中,阅读电子书的同时可以播放歌曲,两个任务
10、可以同时进行。3.1 单任务系统 多任务系统概述19任务管理v 实时操作系统中多任务的划分原则实时操作系统中多任务的划分原则:(1)I/OI/O原则原则:不同的外设执行不同任务,CPU的操作快于I/O操作,如果将I/O操作串行将会浪费CPU资源;(2)优先级原则优先级原则:不同优先级处理不同的任务,对于突发事件的优先级等价于事件的时间耗尽线,不同优先级处理不同任务;(3)大量运算大量运算:归为一个任务;(4)功能耦合功能耦合:归为一个任务;(5)偶然耦合偶然耦合:归为一个任务,举例:f1(),f2(),f3()。早晨起床以后,刷牙、洗脸、吃早饭之间并没有必然的先后顺序,但由于习惯一直是按这个顺
11、序做的;(6)频率组合频率组合:对于周期时间,不同任务处理不同的频率。任务划分原则3.120任务管理v 任务的组成n 一个堆栈,用于程序执行时的局部变量存储和程序调用传送给程序的参数n 一个TCB,用于操作系统控制,包括一个相关的名字、惟一的ID、优先级、信号掩码、堆栈、任务私有数据和相应的任务例程,这些信息都记录在由系统分配与维护的一个数据结构任务控制块中。n 多个任务可以执行相同的应用执行代码v 提供任务创建、关闭、挂起、恢复以及获取任务信息等操作接口;v 任务状态 就绪、阻塞、运行、挂起、僵死v ReWorks任务的优先级:0255,0 最高,255最低。v 系统缺省的调度方法:基于优先
12、级调度,关闭轮转调度。3.1任务基本概念213.1ReWorks系统任务vReWorks中的系统任务 任务名任务名任务描述任务描述优先级优先级任务名任务名任务描述任务描述优先级优先级wdg看门狗31ntwk网络70recycle任务回收32shellshell80log日志65ftpdftp95exc异常66init初始化100telnettelnet75idle空闲255任务管理223.1ReWorks中的任务类型中断任务ReWorks任务POSIX任务VxWorks任务优先级031322556425464254接口ithread_createithread_closeuthread_cre
13、ate,uthread_closeuthread_lock,uthread_unlockuthread_pri_setuthread_pri_getuthread_suspenduthread_resumeuthread_is_suspendeduthread_selfuthread_id_verifyuthread_options_setuthread_options_getthread_name_to_idthread_name pthread_createpthread_selfpthread_once,pthread_exitpthread_join,pthread_killpthre
14、ad_detachpthread_equalpthread_cancelpthread_testcancelpthread_setcancelstatepthread_setcanceltypepthread_setschedparampthread_getschedparampthread_cleanup_pushpthread_cleanup_poptaskSpawn,sptaskTcb,taskActivatetaskDelete,taskDeleteForcetaskLock,taskUnlocktaskPrioritySet,taskPriorityGettaskSuspend,ta
展开阅读全文