《嵌入式操作系统及ARM Cortex-MO》课件第五章.pptx

《嵌入式操作系统及ARM Cortex-MO》课件第五章.pptx

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

本篇包括第五至九章,详细介绍基于嵌入式实时操作系统μC/OS-Ⅱ的任务级别的应用程序设计方法,依次讲述μC/OS-Ⅱ工作原理及其移植、μC/OS-Ⅱ任务、μC/OS-Ⅱ信号量与互斥信号量、μC/OS-Ⅱ消息邮箱与队列以及μC/OSⅡ高级系统组件。这部分内容结合了具体的工程实例进行介绍,重点在于用户任务、信号量和消息邮箱的学习。;第五章 μc/OS-Ⅱ工作原理及其移植;5.1.1 μC/OS-Ⅱ系统文件与配置

从上下载到最新的μC/OS-Ⅱ嵌入式实时操作系统,最新版本号为

V2.91,μC/OS-Ⅱ共有14个系统文件,如表5-1所示。

表5-1 μC/OS-Ⅱ系统文件

; 如果对μC/OS-Ⅱ系统内核工作原理感兴趣,需要认真阅读表5-1中的全部文件,大约有11000

多行源代码。如果重点关注μC/OS-Ⅱ系统的应用程序设计,可以只关心系统配置文件

os_cfg.h,通过该文件对μC/OS-Ⅱ系统进行裁剪,该文件内容如下:

程序段5-1os_cfg.h文件

1 //Filename:os_cfg.h,OwnedbyJ.J.Labrosse,Micrium

2

3 #ifndefOS_CFG_H

4 #defineOS_CFG_H

5

6 #defineOS_APP_HOOKS_EN 1u

7 #defineOS_ARG_CHK_EN 0u

8 #defineOS_CPU_HOOKS_EN 1u

9

第6行OS_APP_HOOKS_EN为1表示μC/OS-Ⅱ支持用户定义的应用程序钩子函数,缺省为支持。

第7行OS_ARG_CHK_EN为1表示系统函数进行参数合法性检查,为0表示不做合法性检查,缺省为0,

建议设为1。第8行OS_CPU_HOOKS_EN为1表示支持系统钩子函数,为0表示不支持,缺省为1。; 10 #defineOS_DEBUG_EN 1u

11

12 #defineOS_EVENT_MULTI_EN 1u

13 #defineOS_EVENT_NAME_EN 1u

14

第10行OS_DEBUG_EN为1,使调试变量有效,缺省为1。第12行OS_EVENT_MULTI_EN为1表示支持

多事件请求系统函数,缺省为1,建议设为0。第13行OS_EVENT_NAME_EN为1表示可为各个组件指

定名称,缺省为1,建议为1。

15 #defineOS_LOWEST_PRIO 63u

16

第15行OS_LOWEST_PRIO表示用户任务的最大优先级号值,缺省为63,μC/OS-Ⅱ最多可支持

255个任务,因此,这里OS_LOWEST_PRIO的值最大不要超过254(因为优先级号从0开始,计数到第

254时,共有255个任务;255(即0xFF)专用于表示当前正在执行任务的任务优先级号)。; 17 #defineOS_MAX_EVENTS 10u

18 #defineOS_MAX_FLAGS 5u

19 #defineOS_MAX_MEM_PART 5u

20 #defineOS_MAX_QS 4u

21 #defineOS_MAX_TASKS 20u

22

第17行OS_MAX_EVENTS指定系统中事件控制块的最大数量,缺省值为10;第18行

OS_MAX_FLAGS指定事件标志组的最大个数,缺省值为5;第19行OS_MAX_MEM_PART指定内存分区

的最大个数,缺省值为5;第20行OS_MAX_QS指定消息队列的最大个数,缺省值为4;第21行

OS_MAX_TASKS指定最多可创建的任务个数,缺省值为20,最小值为2,因为μC/OSⅡ系统要求必

须创建空闲任务(系统任务)和至少要有一个用户任务。

23 #defineOS_SCHED_LOCK_EN 1u

24

25 #defineOS_TICK_STEP_EN 1u

26 #defineOS_TICKS_PER_SEC 100u

27

; 第23行OS_SCHED_LOCK_EN为1表示用于任务上锁和解锁的函数OSSchedLock和OSSchedUnLock

可用,为0表示不可用;第25行OS_TICK_STEP_EN为1表示μC/OS-View可观测时钟节拍;第26行

为时钟节拍频率,默认值为100Hz。

28 #defineOS_TASK_TMR_STK_SIZE 128u

29 #defineOS_TASK_STAT_STK_SIZE 128u

30 #defineOS_TASK_IDLE_STK_SIZE

文档评论(0)

酱酱 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档