嵌入式系统设计与开发 马文华 主编 邓耀华 汤秀春 胡伟 副主编 8基于micro_C OS-II的程序设计新.ppt

嵌入式系统设计与开发 马文华 主编 邓耀华 汤秀春 胡伟 副主编 8基于micro_C OS-II的程序设计新.ppt

  1. 1、本文档共92页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 基于μC/OS-II的程序设计 8.1 基于μC/OS-II的应用程序设计方法 8.2 μC/OS-II操作系统扩展 8.3 μC/OS-II的文件系统 8.4 基于μC/OS-II的图形用户界面基础 μC/OS-II的编程包括操作系统和外设驱动编程,操作系 统的编程主要是以系统为核心而与外部接口无关所进行的软件 编程,如多任务之间的数据交换,中断与任务的同步和互斥 等。外设驱动程序可以为系统提供访问外围设备的接口,把操 作系统(软件)和外围设备(硬件)分离开来。当外围设备改变的时 候,只需更换相应的驱动程序,不必修改操作系统的内核以及 运行在操作系统中的软件。本章将以实例介绍μC/OS-II下的程 序设计。 8.1 基于μC/OS-II的应用程序设计方法 μC/OS-II操作系统只提供任务运行的内核程序,要进行 μC/OS-II的扩展编程,首先要掌握μC/OS-II操作系统的编程。 【例8.1】操作系统启动。 void main(void) { OSInit(); /*初始化μC/OS-II */ OSTaskCreate(myTask,参数指针,任务所分配的堆栈,任务优先级)/*创建任务myTask*/ OSStart();/*开始任务调度,注意OSStart()函数不会返回*/ } 例8.1中的程序实现了μC/OS-II的启动,在调用μC/OS-II 的任务之前,μC/OS-II要求用户首先调用系统初始化函数 OSInit()来初始化μC/OS-II所有的变量和数据结构。调用 OSInit()后将建立空闲任务OSTaskIdle(),这个任务总是处于就 绪状态,系统自动将其优先级设为最低。当有高优先级的任务 建立时,系统会切换到执行高优先级的任务。 OSTaskCreate()函数用来创建一个名为myTask的任务, 一个任务通常是一个无限循环,相当于一个C语言函数,任务 一旦调用就不会返回,因此任务函数的类型必须定义为void 型。如任务myTask程序。 void myTask(void *pdata) { for(;;) { /*用户程序*/ } } 函数myTask()的形参 *pdata是用户代码在第一次执行的 时候传过来的,该变量必须为void类型的指针。 OSTaskCreate()函数的参数还包括任务占用的堆栈和规定任务 的优先级等。 OSStart()函数用来启动任务调度,μC/OS-II总是运行进入 就绪任务中的优先级最高的那个任务,由调度器来确定哪一个 任务运行。μC/OS-II中任务调度所使用的时间是常数,与应用 程序建立的任务数没有关系。 在使用μC/OS-II操作系统来开发应用程序时应该注意以下 几方面的内容。 1. 变量类型 C语言变量类型的长度是与编译器类型相关的,μC/OS-II为 了在各个平台间移植,没有使用C语言的数据类型,而是定义 了自己的数据类型。具体介绍可以参考本书第5章有关μC/OS- Ⅱ中的基本数据类型这一节的内容。 2. 任务函数的编写与结构 μC/OS-Ⅱ操作系统中任务函数相当于C语言函 数,有参数和返回值,但是,实际上任务函数是没有 返回值的。任务函数要么是一个无限循环,要么执行 一次就删除。任务函数结构只能是下面两种结构之 一: 1)任务函数执行完一次就删除。 void myTask(void *pdata) { /*用户代码*/ … OSTaskDel(OS_PRIO_SELF); } 2)任务函数是一个无限循环。 void myTask(void *pdata) { for (;;) { /*等待邮箱消息 */ OS

文档评论(0)

时间加速器 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档