实时操作系统RTOS培训-课件.ppt

上传人(卖家):晟晟文业 文档编号:4035330 上传时间:2022-11-05 格式:PPT 页数:81 大小:560KB
下载 相关 举报
实时操作系统RTOS培训-课件.ppt_第1页
第1页 / 共81页
实时操作系统RTOS培训-课件.ppt_第2页
第2页 / 共81页
实时操作系统RTOS培训-课件.ppt_第3页
第3页 / 共81页
实时操作系统RTOS培训-课件.ppt_第4页
第4页 / 共81页
实时操作系统RTOS培训-课件.ppt_第5页
第5页 / 共81页
点击查看更多>>
资源描述

1、深圳国微技术有限公司2005-07-11实时操作系统(RTOS)培训实时系统概念l实时系统是指在确定的时间内完成规定功能,并能对外部异步事件作出正确响应的计算机系统实时系统分类l硬实时系统:结果迟到产生灾难性结果lFIRM 实时系统:结果迟到会产生难以接受的质量上的降低l软实时系统:结果迟到会引起质量下降,系统可以自行恢复衡量系统实时性的3个指标:l响应时间(Response Time)l生存时间(Survival Time)l吞吐量(Throughput)嵌入式系统嵌入式系统通常都是实时系统,其特征为l系统的正确性不但依赖于运行逻辑结果的正确性,而且依赖于得到结果所花费的时间l系统对于各种外

2、部输入在预定时间内能得到可以预测的结果嵌入式系统通常使用RTOS,其特征为l在不同的系统负载下,行为可以预测l支持基于优先级的调度lMEMORY模型对于RTOS的性能十分重要l通常都需要一个时钟来处理任务的同步HRTSRTNRT内存分配SD/SD虚存 NNYS-STATIC D-DYNAMIC比较嵌入式系统(续)硬件特性l体积小,集成效率高l面向特定应用l低功耗,能在恶劣环境下工作软件特性l软件的研发与硬件紧密相关l软件代码要求高效率和高可靠性l软件一般固化在FLASH或ROM中应用l工业过程控制l军事电子设备和现代武器l网络通信设备l消费电子产品嵌入式实时系统软件特征实时性:反应时间要快,按

3、要求的间隔输出正确时间信实时性:反应时间要快,按要求的间隔输出正确时间信号给实时的控制设备号给实时的控制设备多任务并发性:利用适当的策略控制多任务的执行,提多任务并发性:利用适当的策略控制多任务的执行,提高资源的利用效率高资源的利用效率有处理异步事件的能力有处理异步事件的能力快速启动,并有出错处理和自动复位功能快速启动,并有出错处理和自动复位功能嵌入式实时软件是应用程序和操作系统两种软件的一体嵌入式实时软件是应用程序和操作系统两种软件的一体化程序化程序嵌入式实时软件的开发需要独立的开发平台和交叉开发嵌入式实时软件的开发需要独立的开发平台和交叉开发环境环境主要的嵌入式实时操作系统VxWorksl

4、使用最广、市场占有率最高的嵌入式实时操作系统,美国WindRiver公司产品VRTXl老牌嵌入式实时操作系统pSOSlISI公司推出,现已被WindRiver公司收购WinCElMicrosoft公司推出,实时性不太好,主要用于掌上系统Palm OSl3Com公司推出,在PDA市场占有很大份额嵌入式Linuxl源代码免费开放,eCOS是Redhat推出的一款嵌入式LINUX操作系统前后台系统通常应用于不复杂的小型系统应用程序是一个无限的循环,这部分可以看成后台行为(background)中断服务程序处理异步事件,这部分可以看成前台行为(foreground)后台也可以叫做任务级,前台也叫中断级

5、前后台系统(续)多任务系统CPU在许多任务之间转换、调度,轮番服务于一系列任务中的某一个优点:l使CPU 的利用率得到最大的发挥l使应用程序模块化l可以将很复杂的应用程序层次化l应用程序l将更容易设计与维护RTOS组成操作系统是硬件与用户之间的一层系统软件,负责管理整个系统,同时将硬件细节与用户隔离开来为用户提供一个更容易理解和进行程序设计的接口操作系统的质量以它的体系结构为基础,确保系统的性能、可靠性、灵活性、可移植性、可扩展性等,同时定义了硬件与软件的界面,操作系统内部各构件的组织关系系统与用户的接口RTOS资源分配必须考虑到实时性要求l合理分配优先级l支持优先级抢占l提供任务同步和互斥l

6、支持不同任务之间的数据共享l支持外部事件(中断)响应l系统可剪裁,由于资源限制,所采用的操作系统应该有极强的针对性,因此操作系统功能够用即可l易于扩展,由于嵌入式设备的功能多样化,要求嵌入式操作系统除提供基本的内核支持外,还需提供越来越多的可扩展功能模块(含用户扩展),如:针对特有应用提供的协议支持、协议扩展,功耗控制等等RTOS组成(续)HALRTOS 基本内核l线程线程管理l时钟管理l中断设备驱动管理l通信管理l存储管理RTOS扩展内核l接口协议管理l其它APIRTOS组成(续)基本内核:嵌入式RTOS 中最核心最基础的部分l任务(线程/线程)管理:负责系统中任务状态的变迁l中断(包括时钟

7、中断)管理:开关中断,完成现场切换和保持l任务(线程/线程)通信管理:信号量、事件、消息队列等l存储管理:分配存储器空间扩展内核:为方便用户使用而对RTOS 进行的扩展l根据具体应用不同所做的扩展不同lCAM应用中表现为对CI接口协议进行管理设备驱动程序接口:RTOS 内核与外部硬件之间的一个硬件抽象层l定义软件与硬件的界限,方便RTOS 的移植升级应用编程接口:建立在RTOS 编程接口之上的面向应用领域的编程接口l方便用户编写特定领域的嵌入式应用程序RTS的响应时间及时性是实时系统最为重要的特性设计者应该能预测实时系统的行为同步任务由时钟来同步异步事件通常由中断驱动一个多任务RTOS的事例R

8、esource allocation&mgmtTask Scheduling&DispatchReal time clockInterrupt Service routinesI/O SubsystemFile MGMTSystem tasks Application tasksUser LevelOS LevelCommand processor资源任何为任务所占用的实体都可称为资源。资源可以是输入输出设备,例如打印机、键盘、显示器,资源也可以是一个变量,一个结构或一个数组等可以被一个以上任务使用的资源叫做共享资源为了防止数据被破坏,每个任务在与共享资源打交道时,必须独占该资源,这叫做互斥(

9、mutual exclusion)任务一个任务也称作一个线程,是一个简单的程序,该程序可以认为CPU 完全只属该程序自己每个任务都是整个应用的某一部分,被赋予一定的优先级,有自己的一套CPU 寄存器和栈空间多任务系统中,任意时刻只有一个任务占有CPU资源一个任务通常是一个无限的循环,当任务完成以后,任务可以自我删除TCB(任务控制块)TCB在任务建立时将被赋值(初始化)TCB是一个数据结构,用来保存该任务的状态:堆栈指针、堆栈大小、任务状态、任务优先级任务重新得到CPU 使用权时,任务控制块能确保任务从当时被中断的那一点丝毫不差地继续执行TCBs全部驻留在RAM 中任务状态每个任务都处在以下5

10、 种状态之一:休眠态,就绪态、运行态、挂起态和被中断态休眠态:该任务驻留在内存中,但并不被内核所调度就绪态:该任务已经准备好运行,但由于优先级比正运行的任务优先级低,还暂时不能运行运行态:掌握了CPU 的控制权,正在运行中挂起态:也叫等待态,在等待某一事件的发生中断态:发生中断时,进入相应的中断服务任务状态变迁图WAITINGDORMANTREADYRUNNINGISR任务状态变迁就绪-运行l调度程序选择一个新的线程运行运行-就绪l运行线程用完了时间片l运行线程被高优先级线程抢占运行-等待l当一线程必须等待时l等待某外设的I/O 操作l等待某共享资源由暂不能使用变成能使用状态l等待定时脉冲的到

11、来或等待超时信号的到来以结束目前的等待l等待-就绪l当所等待的事件发生时任务切换也称为上下文切换(Context Switch)当多任务内核决定运行另外的任务时:l保存正在运行任务的当前状态(Context),即CPU 寄存器中的全部内容。这些内容保存在任务自己的栈区之中l把下一个将要运行的任务的当前状况从该任务的栈中重新装入CPU 的寄存器,并开始下一个任务的运行任务切换过程增加了应用程序的额外负荷任务调度任务调度就是按一定的调度算法从就绪任务中选中一个任务到处理器上运行主要工作:l(1)记录当前任务状态(如指令计数器、状态寄存器、通用寄存器等)到TCB;l(2)根据调度算法,在就绪任务中选

12、一个任务;l(3)回收处理机并分配给选中的任务。任务调度方式非抢占式调度抢占式调度l由于嵌入式操作系统对实时性的较强要求,因此基本上使用抢占式调度。调度算法lFIFO:先来先服务l短作业优先l基于优先级:l时间片轮转(Round Robin):固定时间片 可变时间片l多级队列算法l多级反馈队列算法l其它组合策略调度算法非抢占式调度抢占式调度可重入性(Reentrancy)可重入型函数可以被一个以上的任务调用,而不必担心数据的破坏可重入型函数任何时候都可以被中断,一段时间以后又可以运行编写可重入型函数需遵循的规则:l使用局部变量,即变量保存在CPU寄存器或堆栈中l尽量不使用static或exte

13、rn变量任务优先级每个任务都有其优先级。任务越重要,赋予的优先级应越高eCos任务及优先级优先级0255,优先级的最低3bits忽略,因此07、815各组内的优先级相同,组外数值越大,优先级越高eCos任务结构:roottask1task2task3task4task5idle任务管理创建任务(CreateTask)删除任务(DeleteTask)挂起任务()唤醒任务()改变任务优先级()获取任务优先级()获取当前任务ID任务管理(sidsa API)t_create lULONG t_create(char name4,ULONG prio,ULONG sstack,ULONG ustack

14、,ULONG flags,ULONG*tid)t_start lULONG t_start(ULONG tid,ULONG mode,void*start_addr,ULONG targs)t_delete lULONG t_delete(ULONG tid)t_suspend lULONG t_suspend(ULONG tid)t_resume lULONG t_resume(ULONG tid)t_wkafter lULONG tm_wkafter(ULONG ticks)任务管理(kernel API)cyg_thread_createcyg_thread_exitcyg_thread

15、_killcyg_thread_deletecyg_thread_yieldcyg_thread_delaycyg_thread_suspendcyg_thread_resumecyg_thread_release任务管理(kernel API 续)cyg_thread_get_prioritycyg_thread_get_current_prioritycyg_thread_set_prioritycyg_thread_selfcyg_thread_idle_threadcyg_thread_get_stack_basecyg_thread_get_stack_sizecyg_thread_

16、measure_stack_usagecyg_thread_get_nextcyg_thread_get_infocyg_thread_find任务间通信及同步共享内存(Share Memory)信号量(Semaphore)互斥量(Mutex)事件标志(Event Flag)消息邮箱(Message Box)消息队列(Message Queue)信号量(Semaphore)信号量用于:l控制共享资源的使用权(满足互斥条件)l标志某事件的发生l使两个任务的行为同步一个信号量是一个16位变量,初值为065535,值为0表示资源处于锁住状态,非0表示有多个资源,供多个任务访问信号量表示符号:钥匙或旗

17、帜信号量的P、V操作等待信号量(P操作):l如果信号量值大于0,则信号量值减1,任务得以继续运行l如果信号量的值为0,等待信号量的任务被挂起并列入等待信号量任务表释放信号量(V操作):l如果没有任务在等待信号量,信号量的值仅仅是简单地加1l如果有任务在等待该信号量,那么就会有一个任务进入就绪态,信号量的值也就不加1lP、V操作为原语操作,原语(primitive or atomic action):是由若干多机器指令构成的完成某种特定功能的一段程是由若干多机器指令构成的完成某种特定功能的一段程序,具有不可分割性序,具有不可分割性即原语的执行必须是连续的,在执行过程中不允许被中断即原语的执行必须

18、是连续的,在执行过程中不允许被中断实现:开关中断实现:开关中断l信号量的使用:l必须置一次且只能置一次初值l初值不能为负数 l只能执行P、V操作信号量的P、V操作(续)用P、V操作解决线程间互斥问题P(mutex)V(mutex)P1P2P3互斥区互斥区P(mutex)P(mutex)V(mutex)V(mutex)优先级反转问题优先级反转问题(续)设计中应注意避免产生优先级反转优先级继承(Priority inheritance)可解决优先级反转问题经典的生产者消费者问题消费者消费者生产者生产者经典的生产者消费者问题(续1)同步问题:P线程不能往“满”的缓冲区中放产品,设置信号量为S1 Q线

19、程不能从“空”的缓冲区中取产品,设置信号量S2P:Q:while (true)while (true)生产一个产品;P(s2);P(s1);从缓冲区取产品;送产品到缓冲区;V(s1);V(s2);消费产品;S1初值为1,S2初值为0.PQ放 消 息取 消 息nn个 缓 冲 区(Buffer)ij多个缓冲区的生产者和消费者P:i=0;while(true)生产产品;P(S1);往Buffer i放产品;V(S2);i=(i+1)%n;Q:j=0;while(true)P(S2);从Bufferj取产品;V(S1);消费产品;j=(j+1)%n;S1初值为n,S2初值为0Q:j=0;while(t

20、rue)P(S2);P(mutex2);从Bufferj取产品;V(mutex2);V(S1);消费产品;j=(j+1)%n;n个缓冲区、m个生产者和k个消费者P:i=0;while(true)生产产品;P(S1);P(mutex1);往Buffer i放产品;V(mutex1);V(S2);i=(i+1)%n;错误错误S1初值为n,S2初值为0线程数为线程数为mm线程数为线程数为k kQ:j=0;while(true)P(S2);P(mutex2);从Bufferj取产品;j=(j+1)%n;V(mutex2);V(S1);消费产品;n个缓冲区、m个生产者和k个消费者P:i=0;while(

21、true)生产产品;P(S1);P(mutex1);往Buffer i放产品;i=(i+1)%n;V(mutex1);V(S2);正确正确S1初值为n,S2初值为0线程数为线程数为mm线程数为线程数为k k1)信号量的物理含义:S0表示有S个资源可用S=0表示无资源可用S0则|S|表示S等待队列中的线程个数P(S):表示申请一个资源 V(S):表示释放一个资源。信号量的初值应该大于等于0信号量及P、V操作讨论2)P.V操作必须成对出现,有一个P操作就一定有一个V操作当为互斥操作时,它们同处于同一线程当为同步操作时,则不在同一线程中出现如果P(S1)和P(S2)两个操作在一起,那么P操作的顺序至

22、关重要,一个同步P操作与一个互斥P操作在一起时同步P操作在互斥P操作前而两个V操作无关紧要信号量及P、V操作讨论(续1)3)P.V操作的优缺点优点:简单,而且表达能力强(用P.V操作可解决任何同步互斥问题)缺点:不够安全;P.V操作使用不当会出现死锁;遇到复杂同步互斥问题时实现复杂信号量及P、V操作讨论(续2)【思考题】1.用P.V操作解决下图之同步问题:getcopyputfstg用P.V操作解决司机与售票员的问题司机线程:司机线程:while while(true)(true)启动车辆启动车辆正常驾驶正常驾驶到站停车到站停车售票员线程:售票员线程:while while(true)(tru

23、e)关门关门售票售票开门开门信号量管理创建信号量(SemCreate)释放信号量(SemPost)等待信号量(SemPend)l信号量为0时任务挂起,永久或有限等待无等待取信号量(SemAccept)l信号量为0时任务不会挂起,返回0eCos的信号量管理(sidsa API)sm_createlULONG sm_create(char name4,ULONG count,ULONG flags,ULONG*smid)sm_deletelULONG sm_delete(ULONG smid)sm_plULONG sm_p(ULONG smid,ULONG flags,ULONG timeout)

24、sm_vlULONG sm_v(ULONG smid)eCos的信号量管理(kernel API)cyg_semaphore_initcyg_semaphore_destroycyg_semaphore_waitcyg_semaphore_timed_waitcyg_semaphore_trywaitcyg_semaphore_postcyg_semaphore_peek互斥量(Mutex)一个互斥量就是一个同步对象,用于多任务串行访问共享数据只有一个任务可以获得和拥有一个互斥量,也只有这个任务随后才能释放这个互斥量互斥量是取值为0-1的二元信号量互斥量管理创建互斥量(MutexCreate)

25、删除互斥量(MutexDelete)等待互斥量(MutexPend)释放互斥量(MutexPost)无等待获取互斥量(MutexAccept)互斥量管理(sidsa API)NA互斥量管理(kernel API)cyg_mutex_initcyg_mutex_destroycyg_mutex_lockcyg_mutex_trylockcyg_mutex_unlockcyg_mutex_releasecyg_mutex_set_ceilingcyg_mutex_set_protocol事件标志(Event Flags)事件标志用于任务与多个事件的同步l独立型同步(即逻辑或关系):任务需要与任何事

26、件之一发生同步l关联型同步(逻辑与关系):任务需要与若干事件都发生了同步事件标志通常为32位变量,每个事件占一位(bit),当一个标志处于设置状态(1)时,表示相关事件已经发生事件标志组管理创建事件标志组(FLagCreate)置位事件标志(FlagPost)等待事件标志位(FlagPend)无等待获取事件标志位(FlagAccept)清除事件标志位(FlagClear)l在再次发送事件标志前,应先清除该标志事件标志组管理(sidsa API)ev_sendlULONG ev_send(ULONG tid,ULONG events)ev_receivelULONG ev_receive(ULO

27、NG events,ULONG flags,ULONG timeout,ULONG*events_r)事件标志组管理(kernel API)cyg_flag_initcyg_flag_destroycyg_flag_setbitscyg_flag_maskbitscyg_flag_waitcyg_flag_timed_waitcyg_flag_pollcyg_flag_peekcyg_flag_waiting消息邮箱(Message Box)消息邮箱也称作交换消息,是用一个指针型变量放到邮箱,该指针指向的内容就是那则消息消息邮箱用于一个线程向另一个线程发送消息,实现线程间通信用一个I 字表示邮

28、箱符号消息邮箱管理创建邮箱(MboxCreate)发送消息(MboxPost)l消息放入邮箱后,或者是把消息传给等待消息的任务表中优先级最高的那个任务(基于优先级),或者是将消息传给最先开始等待消息的任务(基于先进先出)l邮箱只能保存一个消息,试图向已存有消息的邮箱发送消息会导致“邮箱满”错误等待消息(MboxPend)l等待消息的任务会因为邮箱是空的而被挂起,且被记录到等待消息的任务表中,直到收到消息无等待取消息(MboxAccept)l如果邮箱是空的任务也不会挂起,此时返回值为NULL表示无消息消息邮箱管理(sidsa API)NA消息邮箱管理(kernel API)cyg_mbox_cr

29、eatecyg_mbox_deletecyg_mbox_getcyg_mbox_timed_getcyg_mbox_trygetcyg_mbox_peekcyg_mbox_peek_itemcyg_mbox_putcyg_mbox_timed_putcyg_mbox_tryputcyg_mbox_waiting_to_getcyg_mbox_waiting_to_put消息队列(Message Queue)消息队列实际上是邮箱阵列任务先得到的是最先进入消息队列的消息,即先进先出原则(FIFO)用2个I 字表示邮箱队列符号消息队列管理创建消息队列(QCreate)发送消息(QPost)l消息放入

30、消息队列后,或者是把消息传给等待消息的任务表中优先级最高的那个任务(基于优先级),或者是将消息传给最先开始等待消息的任务(基于先进先出)l如果消息队列内的消息已满,会导致“消息满”错误等待消息(QPend)l等待消息的任务会因为消息队列是空的而被挂起,直到收到消息无等待取消息(QAccept)l如果邮箱是空的任务也不会挂起,此时返回值为NULL表示无消息消息队列管理(sidsa API)q_createlULONG q_create(char name4,ULONG count,ULONG flags,ULONG*qid)q_deletelULONG q_delete(ULONG qid)q_

31、sendlULONG q_send(ULONG qid,ULONG msg_buf4)q_receivelULONG q_receive(ULONG qid,ULONG flags,ULONG timeout,ULONG msg_buf4)消息队列管理(kernel API)NA设备驱动程序概述1、I/O的特点(1)I/O性能经常成为系统性能的瓶颈lCPU性能不等于系统性能,响应时间也是一个重要因素lCPU性能越高,与I/O差距越大 弥补:更多的线程l线程切换多,系统开销大(2)操作系统庞大复杂的原因之一是:资源多、杂,并发,均来自I/O 外设种类繁多,结构各异 输入输出数据信号类型不同 速度

32、差异很大(3)理解I/O的工作过程与结构是理解操作系统的工作过程与结构的关键(1)按照用户的请求,控制设备的各种操作,完成I/O设备与内存之间的数据交换(包括设备分配与回收;设备驱动程序;设备中断处理;缓冲区管理),最终完成用户的I/O请求l设备分配与回收 记录设备的状态 根据用户的请求和设备的类型,采用一定的分配算法,选择一条数据通路 l建立统一的独立于设备的接口l完成设备驱动程序,实现真正的I/O操作l处理外部设备的中断处理l管理I/O缓冲区设备管理的目标和任务(2)向用户提供使用外部设备的方便接口,使用户摆脱繁琐的编程负担l 方便性l 友好界面l 透明性屏蔽硬件细节(设备的物理细节,错误

33、处理,不同I/O的差异性)(3)充分利用各种技术(通道,中断,缓冲等)提高CPU与设备、设备与设备之间的并行工作能力,充分利用资源,提高资源利用率l 并行性l 均衡性(使设备充分忙碌)设备管理的目标和任务(续)(4)保证多个线程竞争使用设备时,按一定策略分配和管理各种设备,使系统能有条不紊的工作(5)保护 设备传送或管理的数据应该是安全的、不被破坏的、保密的(6)与设备无关性(设备独立性)用户在编制程序时,使用逻辑设备名,由系统实现逻辑设备到物理设备(实际设备)的转换,用户能独立于具体物理设备而方便的使用设备设备管理的目标和任务(续)用户申请使用设备时,只需要指定设备类型,而无须指定具体物理设

34、备,系统根据当前的请求,及设备分配的情况,在相同类别设备中,选择一个空闲设备,并将其分配给一个申请线程统一性:对不同的设备采取统一的操作方式,在用户程序中使用的是逻辑设备优点:l设备忙碌或设备故障时,用户不必修改程序l改善了系统的可适应性和可扩展性设备管理的目标和任务(续)设备独立的软件 虽然IO软件中一部分是设备专用的,但大部分软件是与设备无关的。设备驱动程序与设备独立软件之间的确切界限是依赖于具体系统的 1.独立于设备的软件的基本任务是实现所有设备都需要的功能,并且向用户级软件提供一个统一的接口 2.如何给文件和设备这样的对象命名是操作系统中的一个主要课题。独立于设备的软件负责把设备的符号

35、名映射到正确的设备驱动上 3.设备保护 系统如何防止无权存取设备的用户存取设备呢?4.缓冲技术 5.设备分配 6.出错处理 设备独立的软件(续)(1)缓冲技术的引入 凡是数据到达和离去速度不匹配的地方均可采用缓冲技术。在操作系统中采用缓冲是为了实现数据的I/O操作,以缓解CPU与外部设备之间速度不匹配的矛盾,提高资源利用率l减少了I/O设备对处理器的中断请求次数l简化了中断机制l节省了系统开销(2)缓冲区设置 硬缓冲:在设备中设置缓冲区,由硬件实现 软缓冲:在内存中开辟一个空间,用作缓冲区缓冲技术1.设备分配与回收 当某线程向系统提出I/O请求时,设备分配程序按一定策略分配设备、控制器和通道,

36、形成一条数据传输通路,以供主机和设备间信息交换设备独立性,即不能因为设备的忙碌、故障或更换而影响程序的运行,向用户屏蔽物理设备,呈现给用户的一个操作简单的逻辑设备l由于在多线程程序系统中,线程数多于资源数,引起资源的竞争。因此,要有一套合理的分配原则,考虑的因素:I/O设备的固有属性I/O设备的分配算法设备分配的安全性与设备的无关性l独占设备的分配,要考虑充分发挥效率,避免由于不合理的分配策略造成死锁共享设备分配 由于同时有多个线程同时访问,且访问频繁,就会影响整个设备使用效率,影响系统效率。因此要考虑多个访问请求到达时服务的顺序,使平均服务时间越短越好设备处理 为了控制I/O传输,系统为每类设备编制设备驱动程序 任务:主要负责接收和分析从设备分配转来的信息,并根据设备分配的结果,结合具体物理设备特性完成以下具体工作:(1)预置设备的初始状态(2)根据请求传输的数据量,组织I/O缓冲队列,利用I/O缓冲对数据进行加工,包括数据格式处理和编码转换(3)构造I/O程序(在有通道系统中,是通道程序)(4)启动设备进行I/O操作设备驱动程序CAM开发平台的DEVICEUARTTIMERSCARDPICPCMCIAMPEGCAM产品软件体系结构

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

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

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


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

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


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