- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
摘要μ-是一种适用于嵌入式系统的抢占式实时多任务操作系统,开放源代码,便于学习和使用。 介绍μ-在任务级和中断级的任务切换原理,以及这一操作系统基于嵌入式系统的对于中断的处理;相对于内存资源较少的单片机,着重讨论一种优化的实用堆栈格式和切换形式,以提高资源的利用率;结合430单片机,做具体的分析。 关键词实时多任务操作系统μ430中断堆栈 引言 在嵌入式操作系统领域,由开发的μ,由于开放源代码和强大而稳定的功能,曾经一度在嵌入式系统领域引起强烈反响。 而其本人也早已成为了嵌入式系统会议美国的顾问委员会的成员。 不管是对于初学者,还是有经验的工程师,μ开放源代码的方式使其不但知其然,还知其所以然。 通过对于系统内部结构的深入了解,能更加方便地进行开发和调试;并且在这种条件下,完全可以按照设计要求进行合理的裁减、扩充、配置和移植。 通常,购买往往需要一大笔资金,使得一般的学习者望而却步;而μ对于学校研究完全免费,只有在应用于盈利项目时才需要支付少量的版权费,特别适合一般使用者的学习、研究和开发。 自1992第1版问世以来,已有成千上万的开发者把它成功地应用于各种系统,安全性和稳定性已经得到认证,现已经通过美国认证。 1μ-的几大组成部分 μ-可以大致分成核心、任务处理、时间处理、任务同步与通信,的移植等5个部分。 核心部分是操作系统的处理核心,包括操作系统初始化、操作系统运行、中断进出的前导、时钟节拍、任务调度、事件处理等多部分。 能够维持系统基本工作的部分都在这里。 任务处理部分任务处理部分中的内容都是与任务的操作密切相关的。 包括任务的建立、删除、挂起、恢复等等。 因为μ-是以任务为基本单位调度的,所以这部分内容也相当重要。 时钟部分μ-中的最小时钟单位是时钟节拍。 任务延时等操作是在这里完成的。 任务同步和通信部分为事件处理部分,包括信号量、邮箱、邮箱队列、事件标志等部分;主要用于任务间的互相联系和对临界资源的访问。 与的接口部分是指μ-针对所使用的的移植部分。 由于μ-是一个通用性的操作系统,所以对于关键问题上的实现,还是需要根据具体的具体内容和要求作相应的移植。 这部分内容由于牵涉到等系统指针,所以通常用汇编语言编写。 主要包括中断级任务切换的底层实现、任务级任务切换的底层实现、时钟节拍的产生和处理、中断的相关处理部分等内容。 2对于430的中断处理 21函数调用和中断调用的操作 430最常使用的编译器应该就是-。 对于这一编译器来说,通过分析和研究,发现它有以下规律。 1函数调用 如果是函数级调用,编译器会在函数调用时先把当前函数压栈,然后调用函数,值改变。 如果被调用的函数带有参数,那么,编译器按照以下的规则进行。 最左边的两个参数如果不是结构体或者联合体,将被赋值到寄存器,否则将被压栈。 函数剩下的参数都将被压栈。 根据最左边的那两个参数的类型,分别赋值给12对于32位类型赋值给1213和14对于32位类型赋值给1415。 2中断调用 如果是在中断中调用中断服务子程序的话,编译器将把当前执行语句的压栈,同时再把压栈。 接着,根据中断服务子程序的复杂程度,选择把12~15中的寄存器压栈。 然后,执行中断服务子程序。 中断处理结束后再把寄存器出栈,出栈,出栈。 把系统恢复到中断前的状态,使程序接着被中断的部分继续运行。 图3中断发生时的任务栈压栈操作 22任务级和中断级的任务切换步骤和原理 1任务级的任务切换原理 μ-是一个多任务的操作系统,在没有用户自己定义的中断情况下,任务间的切换步骤是这样的任务间的切换一般会调用函数。 函数的结构如下 { 关中断 如果不是中断嵌套并且系统可以被调度{ 确定优先级最高的任务 如果最高级的任务不是当前的任务{ 调用; } } 开中断 } 我们把这个函数称作任务调度的前导函数。 它先判断要进行任务切换的条件,如果条件允许进行任务调度,则调用。 这个函数是真正实现任务调度的函数。 由于期间要对堆栈进行操作,所以一般用汇编语言写成。 它将正在运行的任务的的寄存器推入堆 栈,然后把4~15压栈。 接着把当前的保存在-中,然后把最高优先级的-的值赋值给。 这时候,就已经指到最高优先级任务的任务堆栈了。 然后进行出栈工作,把15~4出栈。 接着使用返回,这样就把和出栈了。 简单地说,μ-切换到最高优先级的任务,只是恢复最高优先级任务所有的寄存器并运行中断返回指令,实际上,所作的只是人为地模仿了一次中断。 2中断级的任务切换原理
您可能关注的文档
- qq说说2018爱情.docx
- qq诗意个性签名.docx
- qq说说大全.docx
- qq超拽个性签名大全.docx
- qq英文网名情侣.docx
- qq超拽情侣个性签名.docx
- qq超长个性签名.docx
- qq超长情侣网名大全.docx
- qq超长搞笑网名大全.docx
- qq超长网名大全.docx
- 2026广发银行乌鲁木齐分行校园招聘备考题库附答案详解(研优卷).docx
- 2026年陕西省选调生招录备考题库(面向重庆大学)及答案详解(基础+提升).docx
- 2026年邮政储蓄银行秋季校园招聘备考题库及答案详解(基础+提升).docx
- 2026年陕西省选调生招录备考题库(面向中国科学院大学)含答案详解(培优a卷).docx
- 2026广发银行苏州分行校园招聘备考题库含答案详解(综合卷).docx
- 2026年陕西省选调生招录备考题库(面向中国海洋大学)及1套完整答案详解.docx
- 2026建信人寿保险股份有限公司福建分公司秋季校园招聘1人备考题库含答案详解(综合卷).docx
- 2026届安徽省枞阳县九年级英语第一学期期末教学质量检测试题含解析.doc
- 2026徽商银行淮北分行综合支行主要负责人招聘备考题库含答案详解(完整版).docx
- 2026年度秋季中国工商银行远程银行中心校园招聘68人备考题库及答案详解1套.docx
最近下载
- 中国铁矿选矿新技术和新工艺.ppt VIP
- 2025年中国全自动振荡仪行业市场全景评估及投资前景展望报告.docx
- AI可信数据空间白皮书-.pptx VIP
- 票管员的年度总结.pptx VIP
- 5篇中心医院医德医风谈话谈心记录(系列完整版).pdf
- T_ZZXJX 18-2021 现浇混凝土空心楼盖结构工程施工及验收技术规程.docx VIP
- 全国大学生职业规划大赛《医学美容技术》专业生涯发展展示PPT【高职(专科)】 .pptx
- 21 小圣施威降大圣 课件(共34张PPT).ppt VIP
- 新时代教育强国的根本遵循知到智慧树期末考试答案题库2025年喀什大学.docx VIP
- 混凝土冬季施工质量控制培训课件.pptx VIP
原创力文档


文档评论(0)