第四章%20%20嵌入式实时操作系统(3).pdf

上传人:asd****56 文档编号:70322636 上传时间:2023-01-19 格式:PDF 页数:44 大小:499.80KB
返回 下载 相关 举报
第四章%20%20嵌入式实时操作系统(3).pdf_第1页
第1页 / 共44页
第四章%20%20嵌入式实时操作系统(3).pdf_第2页
第2页 / 共44页
点击查看更多>>
资源描述

《第四章%20%20嵌入式实时操作系统(3).pdf》由会员分享,可在线阅读,更多相关《第四章%20%20嵌入式实时操作系统(3).pdf(44页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、RTEMS操作系统简介?Real Time Executive for Multiprocessor Systems(RTEMS),即多处理器系统实时内核是一个开放源代码的实时嵌入式操作系统?RTEMS是美国OAR公司开发的,最早用于为嵌入式军用系统提供高性能的实时环境,当前在某些商用领域也获得了一定应用?RTEMS是使用Ada和C语言实现的,提供任务管理、中断管理、时间管理以及多处理器管理等功能RTEMS支持的处理器?Intel i80386及以上?Intel i80960?Motorola MC68xxx?MIPS?PowerPC?SPARC?Hewlett Packard PA-RISC

2、?Hitach SH?AMD A29K?UNIXRTEMS系统功能?支持多任务?支持同构或异构多处理器系统?支持事件驱动、基于优先级、占先的调度算法?具有单调速率调度算法?支持任务间的通信和同步?支持优先级继承算法?快速响应的中断管理?支持动态存储器分配?具有用户配置的能力RTEMS操作系统的特点?可移植性?可剪裁性?兼容性?开发源代码?小巧的占先式实时内核?多任务?确定性?未实现保护机制RTEMS系统结构应用程序应用程序应用程序应用程序应用程序应用程序RTEMS接口接口RTEMSRTEMS接口接口接口接口C语言支持库语言支持库C C语言支持库语言支持库语言支持库语言支持库POSIX接口接口P

3、OSIXPOSIX接口接口接口接口BSD套接口套接口BSDBSD套接口套接口套接口套接口TCP/IP协议栈协议栈TCP/IPTCP/IP协议栈协议栈协议栈协议栈内核内核内核内核内核内核硬件抽象层硬件抽象层硬件抽象层硬件抽象层硬件抽象层硬件抽象层板级支持包板级支持包板级支持包板级支持包板级支持包板级支持包时钟驱动程序时钟驱动程序时钟时钟时钟时钟驱动程序驱动程序驱动程序驱动程序控制台驱动程序控制台驱动程序控制台控制台控制台控制台驱动程序驱动程序驱动程序驱动程序定时器驱动程序定时器驱动程序定时器定时器定时器定时器驱动程序驱动程序驱动程序驱动程序其他驱动程序其他驱动程序其他其他其他其他驱动程序驱动程序

4、驱动程序驱动程序启动代码启动代码启动启动启动启动代码代码代码代码处理器支持模块处理器支持模块处理器处理器处理器处理器支持模块支持模块支持模块支持模块硬件硬件硬件硬件硬件硬件内核?内核实现了最基本的操作系统元素,包括对中断、异常作出的反应,低级同步原语,上下文环境的切换以及通用对象资源管理等?内核的实现独立于不同的应用程序编程接口模块,便于系统移植、扩展内核结构看门狗定时器看门狗定时器看门狗看门狗看门狗看门狗定时器定时器定时器定时器扩展例程管理扩展例程管理扩展例程扩展例程扩展例程扩展例程管理管理管理管理中断管理中断管理中断中断中断中断管理管理管理管理多处理器管理多处理器管理多处理器管理多处理器管

5、理多处理器管理多处理器管理TODTODTOD错误管理错误管理错误管理错误管理错误管理错误管理内核互斥量内核互斥量内核内核内核内核互斥量互斥量互斥量互斥量内核信号量内核信号量内核内核内核内核信号量信号量信号量信号量内核消息队列内核消息队列内核内核内核内核消息队列消息队列消息队列消息队列等待线程队列等待线程队列等待线程队列等待线程队列等待线程队列等待线程队列线程线程线程线程线程线程对象对象对象对象对象对象动态内存分配动态内存分配动态内存分配动态内存分配动态内存分配动态内存分配双向链表双向链表双向链表双向链表双向链表双向链表堆堆堆堆堆堆RTEMS接口?RTEMS接口层是可裁剪的管理程序,它的主要目标

6、是实现特定的应用程序编程接口(API),这一层包括一组基本服务模块(任务管理、时钟管理等)和一组扩展服务模块(通用内存管理、线程间同步与通讯管理等)RTEMS接口结构初始化管理器初始化管理器初初初初始始始始化化化化管管管管理理理理器器器器任务管理器任务管理器任任任任务务务务管管管管理理理理器器器器中断管理器中断管理器中中中中断断断断管管管管理理理理器器器器时钟管理器时钟管理器时时时时钟钟钟钟管管管管理理理理器器器器定时器管理器定时器管理器定定定定时时时时器器器器管管管管理理理理器器器器信号量管理器信号量管理器信信信信号号号号量量量量管管管管理理理理器器器器消息管理器消息管理器消消消消息息息息管

7、管管管理理理理器器器器事件管理器事件管理器事事事事件件件件管管管管理理理理器器器器信号管理器信号管理器信信信信号号号号管管管管理理理理器器器器存储器分区管理器存储器分区管理器存存存存储储储储器器器器分分分分区区区区管管管管理理理理器器器器存储器区域管理器存储器区域管理器存存存存储储储储器器器器区区区区域域域域管管管管理理理理器器器器双端口存储器管理器双端口存储器管理器双双双双端端端端口口口口存存存存储储储储器器器器管管管管理理理理器器器器I/O管理器管理器I I/OO管管管管理理理理器器器器致命错误管理器致命错误管理器致致致致命命命命错错错错误误误误管管管管理理理理器器器器单调速率管理器单调速

8、率管理器单单单单调调调调速速速速率率率率管管管管理理理理器器器器用户扩展例程管理器用户扩展例程管理器用用用用户户户户扩扩扩扩展展展展例例例例程程程程管管管管理理理理器器器器多处理器管理器多处理器管理器多多多多处处处处理理理理器器器器管管管管理理理理器器器器对象管理?在RTEMS操作系统的设计中,使用了一定的面向对象的思想,主要体现在对象概念上?对象可以代表下列实体:?任务?消息队列?信号量?存储器区域?存储器分区?定时器?端口?单调速率实时调度周期对象表示?对象名称:对象名称:对象名称:对象名称:对象名完全是任意的,用户一般选择有含义的字符组合作为对象名?对象标识:对象标识:对象标识:对象标识

9、:对象标识是一个唯一的32位无符号整数,通过对象标识内核可以高效地对对象进行操作类别类别类别类别类别类别节点编号节点编号节点编号节点编号节点编号节点编号索引索引索引索引索引索引链表节点链表节点链表节点链表节点链表节点链表节点对象标识对象标识对象标识对象标识对象标识对象标识对象名称对象名称对象名称对象名称对象名称对象名称对象管理POSIXPOSIX线程线程线程线程POSIXPOSIX条件变量条件变量条件变量条件变量RTEMSRTEMS任务任务任务任务内部线程内部线程内部线程内部线程无类别无类别无类别无类别本地对象表本地对象表本地对象表本地对象表待分配对象链表待分配对象链表待分配对象链表待分配对象

10、链表对象名称表对象名称表对象名称表对象名称表对象数目对象数目对象数目对象数目对象标识范围对象标识范围对象标识范围对象标识范围对象类型对象类型对象类型对象类型TA02TA02TA01TA01TA12TA12TA11TA11NULLNULLNULLNULLNULLNULLNULLNULLFIRSTFIRSTLASTLASTNULLNULLNAMENAMEIDID对象类型枚举对象类型枚举对象类型枚举对象类型枚举对象信息表对象信息表对象信息表对象信息表对象名称表对象名称表对象名称表对象名称表对象控制块对象控制块对象控制块对象控制块对象操作?初始化对象信息表时,系统分配指定数量的对象控制块和相应的对象名

11、称存储空间,将所有对象控制块分配给“待分配对象链表”,将“本地对象表”每个单元置空?分配对象控制块时,系统从“待分配对象链表”的表头提取控制块,返回给请求方,并在“本地对象表”相应的单元中记录控制块的指针?释放对象控制块时,系统将“本地对象表”相应单元指向的控制块插入“待分配对象链表”的表尾,并将“本地对象表”相应单元置空?访问对象控制块时,系统以给定的对象标识作为索引,在“本地对象表”中取得控制块指针返回给请求方RTEMS接口接口RTEMSRTEMS接口接口接口接口任务管理?内核支持?双向链表管理?对象管理?看门狗定时器管理?线程管理?RTEMS接口?任务管理器内核模块内核模块内核模块内核模

12、块内核模块内核模块看门狗看门狗看门狗看门狗定时器定时器定时器定时器管理管理管理管理线程管理线程管理线程管理线程管理双向链表管理双向链表管理双向链表管理双向链表管理对象管理对象管理任务管理器任务管理器任务管理器任务管理器线程控制结构?标识信息?调度信息?上下文控制?线程状态?线程启动信息?就绪任务队列?等待信息控制结构?看门狗定时器struct Thread_Control_struct Objects_ControlObject;States_Controlcurrent_state;Priority_Control current_priority;Priority_Control real

13、_priority;unsigned32 resource_count;Thread_Wait_informationWait;Watchdog_ControlTimer;MP_packet_Prefix*receive_packet;booleanis_global;booleando_post_task_switch_extension;booleanis_preemptible;void *rtems_ada_self;unsigned32 cpu_time_budget;Thread_CPU_budget_algorithmsbudget_algorithm;Thread_CPU_bu

14、dget_algorithm_calloutbudget_callout;unsigned32 ticks_executed;Chain_Control*ready;Priority_InformationPriority_map;Thread_Start_informationStart;Context_ControlRegisters;void *fp_context;void *API_Extensions THREAD_API_LAST+1;void *extensions;线程控制块就绪任务队列就绪任务队列就绪任务队列就绪任务队列等待信息控制结构等待信息控制结构等待信息控制结构等待信

15、息控制结构看门狗定时器看门狗定时器看门狗定时器看门狗定时器线程启动信息线程启动信息线程启动信息线程启动信息线程状态线程状态线程状态线程状态上下文控制上下文控制上下文控制上下文控制调度信息调度信息调度信息调度信息标识信息标识信息标识信息标识信息时间片信息时间片信息时间片信息时间片信息占先标志占先标志占先标志占先标志优先级信息优先级信息优先级信息优先级信息阻塞阻塞阻塞阻塞运行运行运行运行就绪就绪就绪就绪休眠休眠休眠休眠对象名称对象名称对象名称对象名称对象标识对象标识对象标识对象标识链表节点链表节点链表节点链表节点状态寄存器状态寄存器状态寄存器状态寄存器特殊寄存器特殊寄存器特殊寄存器特殊寄存器通用寄

16、存器通用寄存器通用寄存器通用寄存器初始优先级初始优先级初始优先级初始优先级占先标志占先标志占先标志占先标志时间片信息时间片信息时间片信息时间片信息中断级中断级中断级中断级初始堆栈初始堆栈初始堆栈初始堆栈入口参数入口参数入口参数入口参数入口函数入口函数入口函数入口函数实际优先级实际优先级实际优先级实际优先级当前优先级当前优先级当前优先级当前优先级用户算法用户算法用户算法用户算法时间片算法时间片算法时间片算法时间片算法时间片数值时间片数值时间片数值时间片数值线程控制结构线程控制结构线程控制结构线程控制结构线程状态休眠休眠休眠休眠挂起挂起挂起挂起瞬时状态瞬时状态瞬时状态瞬时状态可被信号中断状态可被信

17、号中断状态可被信号中断状态可被信号中断状态延迟延迟延迟延迟等待时刻等待时刻等待时刻等待时刻等待缓存区等待缓存区等待缓存区等待缓存区等待内存段等待内存段等待内存段等待内存段等待消息等待消息等待消息等待消息等待事件等待事件等待事件等待事件等待信号量等待信号量等待信号量等待信号量等待互斥量等待互斥量等待互斥量等待互斥量等待条件变量等待条件变量等待条件变量等待条件变量等待退出合并等待退出合并等待退出合并等待退出合并等待等待等待等待RPCRPC应答应答应答应答等待下一执行周期等待下一执行周期等待下一执行周期等待下一执行周期等待信号等待信号等待信号等待信号D0D0D4D4D8D8D12D12D16D16?

18、线程状态数据当前占用连续4个字节的低17位?所有位全0时线程处于就绪状态;任何一位为1表示等待相应资源线程优先级?RTEMS内核支持256级线程优先级,系统可以为不同线程分配相同的优先级?线程优先级数值范围从0到255,数值越小优先级越高?每个优先级拥有独立的就绪线程队列,所有队列组成优先级就绪线程队列数组0 01 1255255优先级就绪优先级就绪优先级就绪优先级就绪线程队列数组线程队列数组线程队列数组线程队列数组线程控制块线程控制块线程控制块线程控制块优先级管理?每个线程的优先级数据本身是8位整数?RTEMS为有效管理线程优先级,引入优先级位图数据结构,可以高效地寻找系统中最高优先级的非空

19、就绪线程队列?线程控制块提供访问优先级位图的机制,每次线程状态发生变化时,系统可以很方便地修改优先级位图数据?优先级位图的引入保证了线程状态改变过程中系统行为的确定性优先级管理副位图指针副位图指针副位图指针副位图指针主位图就绪掩码主位图就绪掩码主位图就绪掩码主位图就绪掩码副位图就绪掩码副位图就绪掩码副位图就绪掩码副位图就绪掩码主位图阻塞掩码主位图阻塞掩码主位图阻塞掩码主位图阻塞掩码副位图阻塞掩码副位图阻塞掩码副位图阻塞掩码副位图阻塞掩码00000000000000000000000000000000000000000000010000000000000000000000000000000000

20、0000010000000000000000000000000000000000001000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000010000001000008150128240优先级位图优先级位图优先级位图优先级位图0 0 0 0 0 1 0 0优先级数值优先级数值优先级数值优先级数值优先级信息优先级信息优先级信息优先级信息1000010010100100优先级优先级优先级优先级主位图主位图主位图主

21、位图优先级位图操作?线程创建、重启动和改变优先级时,设置优先级信息块的各个数据域?线程转为就绪状态时,系统使用其优先级信息块的位图就绪掩码设置系统优先级位图相应位?线程由就绪状态转为阻塞状态时,系统使用其优先级信息块的位图阻塞掩码清除系统优先级位图相应位?每次系统优先级位图发生变化时,系统使用查表法重新搜索最高优先级就绪队列,调度其中的线程查表法const unsigned char _log2table256=7,7,6,6,5,5,5,5,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,

22、2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

23、0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;查表法int Bitfield_Find_first_bit(short value)int bit_number;if(value 8;return bit_number;Priority_Control Priority_Get_highest(void)int major=Bitfield_Find_first_bit(_Priority_Major_

24、bit_map);int minor=Bitfield_Find_first_bit(_Priority_Bit_mapmajor);return(major 4)+minor);任务操作?任务的创建:任务的创建:任务的创建:任务的创建:rtems_task_create()?任务的启动和重新启动:任务的启动和重新启动:任务的启动和重新启动:任务的启动和重新启动:rtems_task_start()和rtems_task_restart()?任务的挂起和恢复任务的挂起和恢复任务的挂起和恢复任务的挂起和恢复:rtems_task_suspend()和rtems_task_resume()?任务上

25、下文切换:任务上下文切换:任务上下文切换:任务上下文切换:_Context_Switch()?空闲任务:空闲任务:空闲任务:空闲任务:_Thread_Idle_body()任务调度?用户可选择线程优先级?线程占先控制?线程时间片控制?手动轮转调度选择?支持单调速率调度算法?调度器分散在系统各处,包括一些系统调用以及中断服务程序等处任务状态转移不存在不存在不存在不存在休眠休眠休眠休眠阻塞阻塞阻塞阻塞阻塞阻塞阻塞阻塞就绪就绪就绪就绪删除删除删除删除阻塞阻塞阻塞阻塞执行执行执行执行调度调度调度调度释放释放释放释放删除删除删除删除删除删除删除删除启动启动启动启动删除删除删除删除创建创建创建创建就绪就绪

26、就绪就绪任务间的通信和同步?内核支持?线程?等待线程队列?内核信号量?内核互斥量?内核消息队列?RTEMS接口?信号量管理器?消息队列管理器?事件管理器?信号管理器RTEMS接口接口RTEMSRTEMS接口接口接口接口内核模块内核模块内核模块内核模块内核模块内核模块内核内核内核内核消息队列消息队列消息队列消息队列内核内核内核内核信号量信号量信号量信号量等待线程队列等待线程队列消息队列消息队列消息队列消息队列管理器管理器管理器管理器信号量管理器信号量管理器信号量管理器信号量管理器事件管理器事件管理器事件管理器事件管理器信号管理器信号管理器信号管理器信号管理器线程线程内核内核内核内核互斥量互斥量互

27、斥量互斥量线程队列控制结构?线程队列?先进先出队列?优先级队列?队列同步状态?队列模式?线程状态?线程超时返回状态码线程队列控制块线程队列线程队列线程队列线程队列同步状态同步状态同步状态同步状态线程队列模式线程队列模式线程队列模式线程队列模式线程状态线程状态线程状态线程状态超时返回状态码超时返回状态码超时返回状态码超时返回状态码先进先出队列先进先出队列先进先出队列先进先出队列优先级队列优先级队列优先级队列优先级队列同步同步同步同步无操作无操作无操作无操作超时超时超时超时满足满足满足满足先进先出先进先出先进先出先进先出优先级优先级优先级优先级阻塞阻塞阻塞阻塞运行运行运行运行就绪就绪就绪就绪休眠休

28、眠休眠休眠线程链表线程链表线程链表线程链表0 0线程链表线程链表线程链表线程链表1 1线程链表线程链表线程链表线程链表2 2线程链表线程链表线程链表线程链表3 3线程队列控制块线程队列控制块线程队列控制块线程队列控制块线程队列线程队列线程队列线程队列数组数组数组数组等待线程队列的操作?初始化?线程进队?先进先出模式?优先级模式?线程出队?先进先出模式?优先级模式内核互斥量数据结构?等待线程队列?内核互斥量属性?允许嵌套的标志?内核互斥量模式?先进先出?优先级?优先级继承?优先级顶置?顶置优先级的数值?互斥锁变量?嵌套计数?持有线程?持有者标识请求获取互斥量?若互斥量处于“解锁”状态?将其锁变量

29、设置为“锁定”状态?将互斥量的所有者设置为当前线程?将互斥量的嵌套计数设置为1?在采用优先级顶置机制的情况下,将当前线程的优先级设置为互斥量的顶置优先级?若互斥量处于“锁定”状态?在互斥量持有线程就是当前线程的情况下,互斥量的嵌套计数加1,返回?在请求方不要求等待的情况下,设置错误代码,返回?在采用优先级继承机制的情况下,若互斥量持有线程的优先级低于当前线程的优先级,进行重新设置?当前线程挂起,插入互斥量的等待队列,系统重新调度最高优先级的线程释放互斥量?互斥量的嵌套计数减1?在互斥量的嵌套计数非0的情况下立即返回?将互斥量的持有者设置为空?在采用优先级顶置或优先级继承机制的情况下,将当前线程

30、的优先级设置为其实际优先级?从互斥量等待队列中取出一个线程?如果取出有效线程?将互斥量的持有者设置为此线程?将互斥量的嵌套计数设置为1?将互斥量的锁变量设置为“解锁”状态中断管理?安装CPU原始中断服务程序?安装实时操作系统自身的中断服务程序?获得处理器当前的中断优先级?设置处理器当前的中断优先级?所有中断服务程序共用一个处理函数,即中断调度机构?在共用的中断服务程序中系统调用相应的用户中断服务程序中断管理体系结构CPUCPUCPUCPU的中断向量表的中断向量表的中断向量表的中断向量表中断服务程序中断服务程序中断服务程序中断服务程序用户中断用户中断用户中断用户中断服务程序表服务程序表服务程序表

31、服务程序表用户中断用户中断用户中断用户中断服务程序服务程序服务程序服务程序时间?RTEMS系统中时间的基本单位是节拍(tick)其频率依赖于系统硬件?RTEMS系统可以支持时间间隔计时功能,可以实现任务延迟、超时、时间片、定时器服务、程序延迟执行和任务的实时调度算法?时间间隔定义为相对当前时间的节拍个数?RTEMS系统维持当前的日期和时间,为需要的应用程序提供日历形式时间的支持服务,可以使用实际时间进行任务调度?在典型情况下,时钟节拍是由系统的实时时钟或计数器/定时器设备提供的存储器管理?32位线性地址模型:RTEMS系统运行在32位连续平面逻辑地址空间,系统对无效内存地址的访问会导致一般保护

32、异常?动态存储器分配?存储器区域管理器?存储器分区管理器?地址翻译?双端口存储器管理:为内核提供在内部和外部双端口存储器的地址空间之间进行地址翻译的支持动态存储器管理?内核提供堆内存管内核提供堆内存管内核提供堆内存管内核提供堆内存管理机制理机制理机制理机制?分区管理:分区管理:分区管理:分区管理:固定存储器块分配机制?区域管理:区域管理:区域管理:区域管理:可变存储器块分配机制RTEMS接口接口RTEMSRTEMS接口接口接口接口内核模块内核模块内核模块内核模块内核模块内核模块动态内存管理动态内存管理动态内存管理动态内存管理堆堆堆堆存储器区域存储器区域存储器区域存储器区域管理器管理器管理器管理

33、器存储器分区存储器分区存储器分区存储器分区管理器管理器管理器管理器设备管理?RTEMS 4.0.0不支持文件系统,无法将设备抽象为文件,与普通文件统一管理?RTEMS系统提出了一种设备抽象模型,使用这种模型,应用程序使用相同的设备功能入口函数对设备进行操作,不必关心设备的实现细节?RTEMS系统使用设备驱动程序地址表来提供这种抽象,应用系统负责提供设备驱动程序地址表,此表的每个表项包括了设备驱动程序的各个入口函数的函数地址多处理器管理?RTEMS系统提供简单和灵活的实时多处理器的支持功能?内核适用于紧耦合以及松耦合目标系统硬件配置?内核支持由同构以及异构混合处理器目标板组成的系统?应用程序可以

34、将任务、消息队列、事件、信号、信号量和存储器块这些对象指定为全局对象,系统中的所有任务都可以访问这些全局对象?在RTEMS系统中,整个硬件和软件系统,可以被视为逻辑上的一个单一系统?RTEMS系统可以自动确定被访问的对象位于另一个处理器,并且执行访问远程对象所必需的操作?RTEMS系统将多处理器的管理与底层的处理器间通信模块分开,由应用程序负责提供多处理器通信接口模块MPCI,完成实际的处理器之间的数据传输工作系统的启动过程?RTEMS系统在处理器复位时进行初始化或重新初始化。初始化代码负责为RTEMS应用系统准备目标平台。启动过程的次序如下:1)系统上电,执行依赖于体系结构的初始化2)执行系

35、统调用rtems_initialize_executive(),初始化RTEMS内核3)系统本地和全局初始化,运行用户初始化任务?处理器复位时,RTEMS最先执行应用系统复位的初始化代码。在RTEMS内核初始化之前,系统必须将所有硬件初始化为静止状态,并正确设置中断向量表系统的状态转移初始化初始化初始化初始化之前之前之前之前启动多任务启动多任务启动多任务启动多任务之前之前之前之前开始启动开始启动开始启动开始启动多任务多任务多任务多任务正常运行正常运行正常运行正常运行系统关闭系统关闭系统关闭系统关闭系统失败系统失败系统失败系统失败初始化初始化初始化初始化各个模块各个模块各个模块各个模块初始化初始化初始化初始化设备驱设备驱设备驱设备驱动程序动程序动程序动程序上电上电上电上电进入进入进入进入多任务多任务多任务多任务模式模式模式模式退出退出退出退出内核内核内核内核发生致命错误发生致命错误发生致命错误发生致命错误RTEMS的开发环境?编译器采用GCC?远程调试采用RGDB?二进制工具binutils?某些处理器提供指令仿真器?缺少集成开发环境(IDE)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com