- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如何将RTOS添加到您Zynq SoC设计中
如何将RTOS添加到您Zynq SoC设计中
要想最大限度地发挥赛灵思Zynq7000 All Programmable SoC处理系统的优势,采用操作系统肯定比使用简单的物理硬件解决方案更加有效。zynqsoC设计的开发人员有很多种操作系统可供选择,可以根据最终应用选择实时操作系统。如果您正在多个应用领域需要快速响应和可靠性能来避免损失或实现严格性能目标的极具挑战性的环境中使用Zynq SoC,那么RTOS无疑是您的最佳选择。
我们将利用最流行的实时操作系统之一,Micrium的“C/OS III来演示如何以最佳方式将RTOS添加到zynqsoC系统中。RTOS或其早期版本已被用于包括好奇号火星探测器在内的多种激动人心的系统中。RTOS的最新版本目前正在进行MISRA C、D0178B A级、SIL3/4和IE C61508标准的认证,这意味着它将吸引广泛Zynq SoC用户的目光。但是在介绍具体实现方法之前,我们先回顾一下实时操作系统的基本知识,这对此很有帮助。什么是实时操作系统
实时操作系统与标准操作系统有什么区别?实时操作系统是确定的,意思是指系统需要在明确的截止时间内做出响应。这种确定性很重要,其原因有多种,例如,如果最终应用正在监控工业流程,那么必须在特定时段内对事件做出响应,工业控制系统就属于这类情况。
可根据满足截止时间的能力对RTOS进一步分类为三种不同类型的RT0s,每种类型都以不同方式满足截止时间。在hard RTOS中,错过截止时间被视为系统错误。而对于firmRTOS就不是这样,偶尔错过截止时间是可以接受的。在soft RTOS中,错过一次截止时间会减少结果的有效性,但系统在整体上对此是可以接受的。
实时操作系统以运行任务(有时称为进程)为核心,每项任务执行规定的功能。例如,某个任务可能通过接口读取数据,或对数据执行某种操作。简单的系统可能只运行一项任务,但更多情况下处理器上会同时运行多项任务。这些任务问的转换被称为“上下文切换”,它要求将与每项任务关联的处理器状态存储并添加到任务栈中。
下一步运行哪项任务将由内核来控制。该内核是RT0s的核心,用来管理软件的输入与输出请求,并将它们转换为处理器中央处理单元和功能元件能识别的数据处理指令。任务调度可能比较复杂,尤其是当需要避免死锁(指两个或更多任务相互锁定)时更是如此。两种基本调度方法分别是分时法和事件驱动法。采用分时法,每项任务都会获得处理器上的一个专用时间档,而更高优先级的任务还可分配多个时间档。时间分段通过定期中断或定时器进行控制,这种方法通常被称为“轮询调度”。而采用事件驱动方案,只有当具有更高优先级的任务需要运行时才会进行任务切换。这种方法通常称为“抢先式调度”。死锁,资源共享和互斥等待
当两个或两个以上进程(例如UART、ADC或DAC)需要使用相同资源时,它们可以同时对该资源提出请求。这种情况下,应对访问进行控制以防出现争用现象。如何对此进行管理非常重要,若不采用正确的管理方法,就会出现“死锁”或“互斥等待”这样的问题,从而导致系统错误。
当某个进程占用一种资源且无法将其释放时,就会出现死锁,因为在这种情况下无法完成该项任务。该进程需要使用当前被另一进程占用的另一种资源。由于系统无限期地处于这种状态,因此可以说应用程序已被锁死。可以想象,死锁对于实时操作系统来说是非常不好的。
当某个进程因为所需要的资源总是被分配给其他进程而无法运行时,就会发生互斥等待。多年来,已经有很多关于这类主题的文章和资料,也推荐了很多解决方案,对此您可能并不会感到意外,例如Dekker算法,这是一种用于并行程序中互斥问题的经典解决方法。处理这类情况的最常用方法是信号量法,通常分为二进制信号量和计数信号量这两种类型。
通常,为每种资源会分配一个二进制信号量。请求进程会在任务执行之前等待资源变为可用资源。一旦任务完成,请求进程就会释放该资源。这些信号量通常被称为等待(wAIT)和发信号(sIGNAL)操作。进程首先等待信号量。如果资源闲置,进程将被赋予该资源的控制权,并运行直到完成,此时进程会发出完成信号。但是,如果进程在等待信号量时资源已被占用,那么进程将会被暂停直到该资源被释放为止。当前正在执行的进程一旦完成,暂停状态就会立刻终止,但如果具备更高优先级的进程抢先占用该资源,那么就需要等待更长的时间。通常使用名为互斥锁(mutexes)的特殊二进制信号量来防止优先级反转的发生(mutexes一词源于“mutual exclusion”)。 计数信号量的工作方式与二进制信号量相同,但是只有当特定资源类型有一个以上的实例时才会使用计数信号量(例如数据存储)。由于每个资源都被分配到一个进程中,因此计数数值会减少
您可能关注的文档
最近下载
- 内审检查表-管理层(42061、13485).doc VIP
- 2.1.2 植物 第1课时 苔藓植物和蕨类植物(教学课件)生物冀少版2024七年级上册.pptx VIP
- 国开(电大)本科《管理英语4》形考任务(单元自测1至8)试题及答案.docx VIP
- 中医康复护理临床实践新进展题库及答案-2025年华医网继续教育.docx VIP
- 屋面设备基础施工深化要点.docx VIP
- DB42∕T 2308-2024 绿色建筑检测技术标准.pdf
- 宏盛微半导体ME6261_C3.0.pdf VIP
- 污水处理系统员工培训手册_.docx VIP
- 机械工程控制基础课件.pptx VIP
- 天津华宁KTC101系统说明书.pdf VIP
文档评论(0)