您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > ReWorks培训-核心功能分析
ReWorks嵌入式应用开发中国电子科技集团公司第三十二研究所自主可控计算研究院ReWorks实时操作系统核心功能分析4.ReWorksBSP示例分析2培训大纲5.ReWorks核心功能介绍2.ReDe开发环境介绍3.ReWorksBSP开发7.ReWorks扩展功能介绍9.ReWorks示例分析与实验1.ReWorks实时操作系统概述6.ReWorks核心功能示例分析与实验8.ReWorks设备驱动开发3培训大纲1.ReWorks实时操作系统概述2.ReWorks核心功能分析3.ReWorks扩展功能分析4.ReWorks图形系统分析5.ReWorks板级支持包开发8.ReWorks综合实验7.ReDe开发环境功能分析6.ReWorks设备驱动开发ReWorks上层应用开发基础ReWorks底层驱动开发基础42.ReWorks核心功能分析培训大纲1.ReWorks实时操作系统概述3.ReWorks扩展功能分析4.ReWorks图形系统分析5.ReWorks板级支持包开发8.ReWorks综合实验7.ReDe开发环境功能分析6.ReWorks设备驱动开发ReWorks上层应用开发基础ReWorks底层驱动开发基础5培训大纲时钟/定时器管理:阐述ReWorks的系统时钟、时间、定时器等基本功能。中断/异常管理:描述ReWorks对于外部事件的中断响应方式,以及对于CPU异常的处理机制。多任务管理:讲述ReWorks中对于多任务的调度机制,以及任务间共享资源以及同步的手段。内存管理:叙述实时系统中对于内存的管理方法,包括对于硬件MMU的支持。12345总结:通过几个上机分组实验对培训内容进行归纳总结。6培训大纲时钟/定时器管理:阐述ReWorks的系统时钟、时间、定时器等基本功能。中断/异常管理:描述ReWorks对于外部事件的中断响应方式,以及对于CPU异常的处理机制。多任务管理:讲述ReWorks中对于多任务的调度机制,以及任务间共享资源以及同步的手段。内存管理:叙述实时系统中对于内存的管理方法,包括对于硬件MMU的支持。12345总结:通过几个上机分组实验对培训内容进行归纳总结。7系统时钟系统时钟是特定的周期性中断,该中断可以看做系统心脏的脉动。系统时钟提供计时功能,使内核可以将任务延时若干个整数时钟节拍,以及当任务等待事件发生时,提供等待超时的依据。ReWorks中缺省的时钟频率为100次/秒;高精度时戳接口sys_timestamp()返回当前的时戳数;sys_timestamp_freq()返回时戳频率。由于不同CPU时钟频率的差异,在调用thread_delay等系统延时函数时,函数的参数避免直接指定tick数,以保证等待的时间一致。1.1系统时钟8实时时钟RTC时间的设置和获取实时时钟是硬件提供的管理系统日历时间的功能,ReWorks核心针对系统日历时间的操作的标准接口有:rtc_read、rtc_write,用户可以在这些接口里实现具体的RTC功能,从而可以实现设置、获取及维护系统的日历时间。实时时钟1.29定时器通过定时器控制块管理,通过系统时钟的计时手段提供定时触发功能。定时器状态转换图如下图所示:1.3定时器定时器管理10辅助时钟为了提供更高精度的定时功能,硬件可以提供辅助时钟。主要接口函数(1)创建定时器intutimer_create(u32*id);(2)删除定时器intutimer_delete(u32id);(3)启动定时器intutimer_start(u32id,intticks,void(*func)(void*),void*arg);(4)取消定时器intutimer_cancel(u32id);定时器(续)1.3定时器管理11培训大纲时钟/定时器管理:阐述ReWorks的系统时钟、时间、定时器等基本功能。中断/异常管理:描述ReWorks对于外部事件的中断响应方式,以及对于CPU异常的处理机制。多任务管理:讲述ReWorks中对于多任务的调度机制,以及任务间共享资源以及同步的手段。内存管理:叙述实时系统中对于内存的管理方法,包括对于硬件MMU的支持。12345总结:通过几个上机分组实验对培训内容进行归纳总结。12中断/异常管理异常是CPU所产生的非预料的事件,包括如:陷阱、中断指令、被零除、浮点指针或整数溢出、错误指令或地址错误。中断是一种硬件机制,用于通知CPU“有异步事件发生”。中断机制使CPU在事件发生时进行处理,而不必连续查询是否有事件发生。2.1中断/异常概述13中断/异常管理2.1异常号异常名称异常号异常名称0除零异常6无效指令异常4溢出异常7浮点异常5越界异常14非法地址异常x86常见异常号系统出现异常时,CPU通常通过异常号来反映具体的异常信息。以x86为例,常见的异常号如下表所示:14中断是一种硬件机制,用于通知CPU“有异步事件发生”。中断机制使CPU在事件发生时进行处理,而不必连续查询是否有事件发生。ReWorks采用中断处理和任务的关联机制,使主体的中断处理任务可运行于用户空间。2.1外部事件响应任务态恢复现场任务切换中断处理保存现场中断产生就绪队列任务优先级高中断嵌套中断态中断/异常管理15中断/异常管理作为其I/O处理的一部分。ISR通常直接与一个或多个任务通信,这种通信的性质通常是驱使一个任务运行并处理中断条件。这类似于任务与任务的通信或同步。但有两点重要的差别。首先,中断的优先级高于任务,即使ISR发送一条消息和唤醒一个高优先级的任务使其就绪,ReWorks内核仍然必须先返回到ISR,让ISR完成。其次,ISR通常是通信/同步源,它往往需要返回一个信号量,或者向任务发送一个消息或一个事件。ISR很少会是通信汇点,它不能等待消息或事件。2.1中断/异常概述16中断服务程序(ISR)注意事项(1)ISR代码尽量短;(2)不能调用引起系统阻塞的函数,如semTake、malloc、printf等;(3)锁中断时间应尽量短,否则会引起中断丢失;(4)避免在中断服务程序中使用浮点指针操作;(5)可通过logMsg()或者轮询输出函数printk打印调试信息;(6)不同中断不要使用相同的优先级。2.1外部事件响应(续)中断/异常管理17培训大纲时钟/定时器管理:阐述ReWorks的系统时钟、时间、定时器等基本功能。中断/异常管理:描述ReWorks对于外部事件的中断响应方式,以及对于CPU异常的处理机制。多任务管理:讲述ReWorks中对于多任务的调度机制,以及任务间共享资源以及同步的手段。内存管理:叙述实时系统中对于内存的管理方法,包括对于硬件MMU的支持。12345总结:通过几个上机分组实验对培训内容进行归纳总结。18任务管理单任务系统vs多任务系统以一款具有播放歌曲、阅读电子书功能的多媒体电子设备为例,单任务系统中,两种功能只能顺序执行,不能同时进行;而多任务系统中,阅读电子书的同时可以播放歌曲,两个任务可以同时进行。主界面歌曲播放电子书阅读3.1主界面歌曲播放电子书阅读task2task1单任务系统多任务系统概述19任务管理实时操作系统中多任务的划分原则:(1)I/O原则:不同的外设执行不同任务,CPU的操作快于I/O操作,如果将I/O操作串行将会浪费CPU资源;(2)优先级原则:不同优先级处理不同的任务,对于突发事件的优先级等价于事件的时间耗尽线,不同优先级处理不同任务;(3)大量运算:归为一个任务;(4)功能耦合:归为一个任务;(5)偶然耦合:归为一个任务,举例:f1(),f2(),f3()。早晨起床以后,刷牙、洗脸、吃早饭之间并没有必然的先后顺序,但由于习惯一直是按这个顺序做的;(6)频率组合:对于周期时间,不同任务处理不同的频率。任务划分原则3.120任务管理任务的组成一个堆栈,用于程序执行时的局部变量存储和程序调用传送给程序的参数一个TCB,用于操作系统控制,包括一个相关的名字、惟一的ID、优先级、信号掩码、堆栈、任务私有数据和相应的任务例程,这些信息都记录在由系统分配与维护的一个数据结构任务控制块中。多个任务可以执行相同的应用执行代码提供任务创建、关闭、挂起、恢复以及获取任务信息等操作接口;任务状态就绪、阻塞、运行、挂起、僵死ReWorks任务的优先级:0~255,0最高,255最低。系统缺省的调度方法:基于优先级调度,关闭轮转调度。3.1任务基本概念213.1ReWorks系统任务ReWorks中的系统任务任务名任务描述优先级任务名任务描述优先级wdg看门狗31ntwk网络70recycle任务回收32shellshell80log日志65ftpdftp95exc异常66init初始化100telnettelnet75idle空闲255任务管理223.1ReWorks中的任务类型中断任务ReWorks任务POSIX任务VxWorks任务优先级0~3132~25564~25464~254接口ithread_createithread_closeuthread_create,uthread_closeuthread_lock,uthread_unlockuthread_pri_setuthread_pri_getuthread_suspenduthread_resumeuthread_is_suspendeduthread_selfuthread_id_verifyuthread_options_setuthread_options_getthread_name_to_idthread_namepthread_createpthread_selfpthread_once,pthread_exitpthread_join,pthread_killpthread_detachpthread_equalpthread_cancelpthread_testcancelpthread_setcancelstatepthread_setcanceltypepthread_setschedparampthread_getschedparampthread_cleanup_pushpthread_cleanup_poptaskSpawn,sptaskTcb,taskActivatetaskDelete,taskDeleteForcetaskLock,taskUnlocktaskPrioritySet,taskPriorityGettaskSuspend,taskResumetaskSafe,taskUnsafetaskDelayPeriod,repeattaskRestart,taskIsReadytaskIsSuspendedtaskIdSelf,taskIdVerifytaskNameToId,taskName任务管理23任务管理ReWorks内核缺省采用基于优先级的抢占调度算法可选择时间片轮转法以及先进先出算法调度相同优先级的任务;基于优先级的抢占调度算法指任何时刻都严格按照高优先级任务在处理器上运行的原则进行任务的调度;3.1基于优先级的抢占调度基于优先级的抢占调度24任务管理时间片轮转调度:当2个或2个以上任务有同样的优先级时,内核允许一个任务运行一段确定的时间后,切换到另外一个就绪态的任务。缺省系统关闭时间片轮转调度。时间片轮转任务调度时间片轮转调度3.125任务管理任务在执行过程中发生同步上下文切换任务自身发生阻塞、延时、挂起等状态变化当启动一个高优先级任务时减低当前任务的优先级任务自行运行完毕,退出执行当有中断发生时发生异步上下文切换使得一个高优先级任务准备运行挂起当前的任务或减低其优先级任务切换点3.126任务管理代码重入是指同一段代码可以被多个任务同时调用访问重入代码内应该无全局变量以及静态变量ReWorks使用以下的机制来实现重入动态堆栈变量,即局部变量,每个任务在自己的堆栈中进行操作资源共享机制,可以实现对于全局变量以及静态变量的共
本文标题:ReWorks培训-核心功能分析
链接地址:https://www.777doc.com/doc-960192 .html