- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《ARM原理附应用》实验指导书
实验一 μC/OS-II 任务创建
实验目的:
通过查看任务创建的源代码了解任务创建的过程及与系统的关系;掌握 μC/OS-II 任务 创建的方法;了解基于任务的系统设计方法。
实验原理:
任务可以是一个无限的循环,也可以是在一次执行完毕后被删除掉。这里要注意的是, 任务代码并不是被真正的删除了,而只是 μC/OS-II 不再理会该任务代码,所以该任务代码 不会再运行。任务看起来与任何 C 函数一样,具有一个返回类型和一个参数,只是它从不 返回。任务的返回类型必须被定义成 void 型。
μC/OS-II 可以管理多达 64 个任务,并从中保留了四个最高优先级和四个最低优先级的 任务供自己使用,所以用户可以使用的只有 56 个任务。任务的优先级越高,反映优先级的 值则越低。在必威体育精装版的 μC/OS-II 版本中,任务的优先级数也可作为任务的标识符使用。
想让 μC/OS-II 管理用户的任务,用户必须要先建立任务。用户可以通过传递任务地址 和其它参数到以下两个函数之一来建立任务:OSTaskCreate() 或 OSTaskCreateExt() 。 OSTaskCreate()与 μC/OS-II 是向下兼容的,OSTaskCreateExt()是 OSTaskCreate()的扩展版本, 提供了一些附加的功能。用两个函数中的任何一个都可以建立任务。任务可以在多任务调度 开始前建立,也可以在其它任务的执行过程中被建立。在开始多任务调度(即调用 OSStart()) 前,用户必须建立至少一个任务。任务不能由中断服务程序(ISR)来建立。
设备 对应引脚 LED1 P1.16 LED2 P1.17 LED3 P1.18 LED4 P1.19 LED5 P1.20 LED6 P1.21 LED7 P1.22 LED8 P1.23 按键 P0.16 蜂鸣器 P1.25
实验步骤:
1、按照概述中“IAR Embedded Workbench 使用”打开位于 D:\pxa270\实验程序\实验 一\Ex1 的工程文件。
2、在 Workspace 一栏中打开 app.c 文件,从文件中学习任务产生的方法和任务应用的 方法。
3、建立一个任务,使用LED_Toggle函数,。
4、编译工程后,通过概述中的“μC/OS-II 实验烧写说明”,下载修改后的程序。
5、通过检验任务建立的正确性。
6、使用如下图的功能,查找 OSTaskCreate 函数,通过源代码深入了解任务产生的过程。
思考题:
1、建立任务的过程包括那些步骤。
2、系统对任务产生需要那些初始化和设置。
3、通过查看源代码,找出以下变量的是怎样定义的,并对其进行简单的意义说明。
OS_STK,OSTCBPrioTbl,OS_TCB,OSTCBFreeList,OSTCBList,OSRdyGrp,
OSRdyTbl
实验二 μC/OS-II 同步与通信
实验目的:
通过查看信号量创建和邮箱创建的源代码,了解信号量创建的过程及与系统的关系;掌 握 μC/OS-II 信号量创建和邮箱创建的方法;了解并使用信号量和邮箱对任务进行同步和通 信。
实验原理:
在 μC/OS-II 中,有多种方法可以保护任务之间的共享数据和提供任务之间的通讯: 一是利用宏 OS_ENTER_CRITICAL()和 OS_EXIT_CRITICAL()来关闭中断和打开中断。
当两个任务或者一个任务和一个中断服务子程序共享某些数据时,可以采用这种方法。 二是利用函数 OSSchedLock()和 OSSchekUnlock()对 μC/OS-II 中的任务调度函数上锁和
开锁。用这种方法也可以实现数据的共享。 另外三种用于数据共享和任务通讯的方法:信号量、邮箱和消息队列。 一个任务或者中断服务子程序可以通过事件控制块 ECB(Event Control Blocks)来向另
外的任务发信号。这里,所有的信号都被看成是事件(Event)。这也说明为什么上面把用于 通讯的数据结构叫做事件控制块。一个任务还可以等待另一个任务或中断服务子程序给它发 送信号。这里要注意的是,只有任务可以等待事件发生,中断服务子程序是不能这样做的。 对于处于等待状态的任务,还可以给它指定一个最长等待时间,以此来防止因为等待的事件 没有发生而无限期地等下去。
多个任务可以同时等待同一个事件的发生。在这种情况下,当该事件发生后,所有等待 该事件的任务中,优先级最高的任务得到了该事件并进入就绪状态,准备执行。上面讲到的 事件,可以是信号量、邮箱或者消息队列等。当事件控制块是一个信号量时,任务可以等待 它,也可以给它发送消息。
邮箱是 μC/OS-II 中另一种通讯机制,它可以使一个任务或者中断服务子程序
您可能关注的文档
最近下载
- 牛奶过敏的诊断、管理和预防意见书(2024).pdf VIP
- 西安2初一新生分班(摸底)数学模拟考试(含答案).doc VIP
- 2025年新版人教版四年级上册英语 四上Unit 4 Helping in the community单元整体教学设计.pdf VIP
- 中国碳化钨项目创业投资方案.docx VIP
- 内能的利用的学案.doc VIP
- 建筑与市政工程防水通用规范试题(含答案).doc
- 《中国儿童生长激素使用情况研究》.pdf VIP
- 万华化学经营分析报告.docx VIP
- 2025年中国PVB中间膜项目商业计划书.docx VIP
- 政府间国际科技创新合作重点专项2017年第二批项目.doc VIP
文档评论(0)