- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第七节嵌入式操作系统
第 七 讲嵌入式系统操作系统 凌 明 东南大学国家专用集成电路系统工程技术研究中心 目 录 嵌入式操作系统概述 函数调用、中断与堆栈 堆栈的作用 函数调用栈帧 中断栈帧 几个基本概念 多任务与任务(进程、线程、任务) 临界区 函数调用与系统调用 内核 任务管理:任务的状态,调度与优先级,优先级反转 中断管理:抢占式多任务与非枪战式多任务 任务间通信:信号量,邮箱(消息队列),事件标志 小结 嵌入式操作系统概述 为什么要使用嵌入式操作系统 早期的嵌入式系统开发,一般都是由一个工程师完成的,软件开发工作只占全部工作的5%~10%; 随着科技的发展,80年代软件开发工作已经占到全部工作的50%; 近几年,随着硬件复杂性、多样性和应用复杂性的增加,软件开发工作急剧增长,经常达到全部工作的70%~80%。 传统的开发模式已经不能适应系统复杂性的增长,而嵌入式操作系统的引入,极大的方便了嵌入式软件的开发和维护 RTOS嵌入式系统开发平台 嵌入式操作系统体现了一种新的系统设计思想和一个开放的软件框架,软件工程师只做少量改动,就可以添加或删除一个系统模块。 通过操作系统所提供的应用程序编程接口(API)访问系统资源,使得应用软件工程师能够将精力集中于所要解决的问题,而不是烦琐的系统底层操作,提高了开发效率。 它解决了嵌入式软件开发标准化的问题,更好地支持了系统协同开发。 基于嵌入式操作系统开发出的程序,具有较高的可移植性,能实现90%以上设备独立。 嵌入式操作系统的特点 .高效的任务管理 1.支持多任务 2.优先级管理 3.任务调度:基于优先级的抢占式调度、时间片轮转调度的算法 4.支持快速而确定的上下文切换 快速灵活的任务间通信 1.信号量:二进制、互斥、计数器 2.通信机制:消息队列、管道等 高度的可剪裁性 动态链接与部件增量加载 快速有效的中断和异常事件处理 优化的浮点支持 动态内存管理 系统时钟和定时器 几种最常见的RTOS 软实时RTOS 嵌入式Linux Win CE Palm OS Sybian 硬实时RTOS VxWorks Nuclear 著名的open RTOS ucOS/IIRTEMS 自主知识产权的RTOS HOPEN Delta OS ASIX OS TRON联盟1999年底2000年初关于使用RTOS的主要困难 TRON联盟2001年关于使用RTOS的主要困难 使用实时操作系统最大的问题 缺少熟悉RTOS技术的工程师,这个问题几乎是32%-33%左右用户的最大困难; 另外RTOS价格较高也是一个非常重要的因素,这一点占10%-15%; 第三个困难是缺乏开发环境和工具的支持,大概占9%-14%左右。 这三个主要困难中,以熟悉RTOS技术工程师为最大,而且在4年中几乎没有任何改变! 函数调用、中断与堆栈 堆栈的作用 编译器利用堆栈 传递调用参数(ARM会优先采用寄存器传参) 保存返回地址(对于中断还需要保存程序状态字) 保存被调函数(Callee)中需要用到的寄存器的初始值 被调函数(Callee)中使用到的临时(局部)变量 一般把这种调用栈组织叫做调用栈帧(Stack Frame) 调用栈帧(Stack Frame) 不同的编译器对栈帧的处理不完全相同,但是大同小异 一般CISC处理器的参数完全靠堆栈传递,而RISC处理器的参数可以靠专门的寄存器传递 在不同的编译器中往往规定的不同寄存器的不同用途(返回值,返回地址,参数,临时变量),有些被调函数可以直接使用,有些必须在使用前保存原值,并在函数返回前恢复。 ARM的栈帧规则:ATPCS 调用栈帧(Stack Frame) U32 Func1(U32 arg1, void *ptr, U16 arg3); Main() { … I = func1(a, p, c); … } U32 func1(U32 arg1, void *ptr, U16 arg3) { U32 x; …… Return x; } 中断的分类 硬件中断 (Hardware Interrupt):一般是由外部(相对CPU内核而言)的硬件引起的事件,比如串口来数据,键盘击键等; 软件中断(Soft Interrupt):通过在程序中执行的中断指令引起的中断,又叫软陷; 80X86:int 指令 68000:trap 指令 ARM: SWI 指令 软中断指令一般用于操作系统的系统调用入口; 异常(Exception):由于CPU内部在运行过程中引起的事件,比如指令预取错,数据中止,未定义指令等等,异常事件一般由操作系统接管。 中断的处理过程 虽然中断产生的原因不同,但是中断响应的硬件过程基本上是相同的。 拷贝CPSR到SPSR_mode 设置正确的CPSR
您可能关注的文档
最近下载
- 2025秋统编版(2024)小学道德与法治三年级上册(全册)课时练习及答案(附目录).docx
- (2025秋新版)人教版三年级数学上册《观察物体》PPT课件.pptx VIP
- (鲁班奖)网架专家论证汇报资料.ppt VIP
- 行业资料 - 国家储备林改培技术规程-国家林业局.pdf VIP
- Q960E高强度调质钢焊接工艺研究.pdf VIP
- 2025-2026学年第一学期数学教研组工作计划.doc VIP
- ISO15378-2017药包材对ISO9001的应用.pptx VIP
- 13.1三角形的概念 课件(共24张PPT) 人教版(2025)数学八年级上册(含音频+视频).pptx VIP
- 2025级中职语文教学工作计划5篇.pdf VIP
- 第十章 商品的品名品质数量和包装.ppt VIP
文档评论(0)