欢迎来到天天文库
浏览记录
ID:27654076
大小:7.53 MB
页数:166页
时间:2018-12-04
《ucos-ii微小内核分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第1章μC/OS-II微小内核分析本章导读为了方便初学者学习嵌入式实时操作系统的基本原理,作者将μC/OS-IIV2.52由小到大裁减为几个只具备基本功能的微小内核。通过分析仅仅418行的操作系统最小内核,带领初学者尽快入门。作者建议在学习或教授本章的过程中,初学者或教师要边阅读原码,边画图,深刻理解过程,因为“过程比结论更重要!”。目录概述最小内核临界区与中断管理任务的结束信号量删除信号量目录概述最小内核临界区与中断管理任务的结束信号量删除信号量1.1概述μC/OS-II微小内核简介μC/OS-II体系结构µC/OS
2、-II与处理器无关的代码OS_Q.COS_CORE.COS_SEM.COS_FLAG.COS_TASK.COS_MBOX.COS_TIME.COS_MEM.CuCOS_H.COS_MUTEX.CuCOS_H.HCPU定时器硬件软件µC/OS-II与处理器相关的代码(移植时需要修改)OS_CPU.HOS_CPU_A_ASMOS_CPU_C.CµC/OS-II与应用程序相关的代码OS_CFG.HINCLUDES.H用户应用程序µC/OS-IIμC/OS-II嵌入式实时操作系统的源代码可以分成三部分:与硬件无关的内核代码、与
3、处理器有关的移植代码和用户配置文件。1.1概述μC/OS-II微小内核简介-内核代码内核代码位于source目录下,提供了4个微小内核。它们分别位于sourceSOURCE1(包含建立任务和延时功能)、sourceSOURCE2(增加删除任务功能)、sourceSOURCE3(增加信号量文件)和sourceSOURCE4(增加删除信号量功能)。它们的功能依次增强,代码也依次增大。以上代码并没有完全裁减到最小,还包含了一些参数校验代码等非必需代码,μC/OS-II的代码裁减功能也同时保留,这些代码大约50多行。1
4、.1概述μC/OS-II微小内核简介-移植代码本书提供基于ARM的移植代码,位于arm目录下,分别为OS_CPU_C.C(移植代码C语言部分)、OS_CPU_a.S(移植代码汇编语言部分)、OS_CPU.H(移植代码头文件)和IRQ.INC(移植代码与芯片无关的中断处理接口程序)4个文件。1.1概述μC/OS-II微小内核简介-配置文件配置文件是每个μC/OS-II程序必备的文件,而且不同的程序一般不一样,但大小基本上相同。配置文件范例位于H目录下,分别为INCLUDES.H(内核需要的头文件,对于特定的移植,一般不需
5、要改变)和OS_CFG.H(内核配置的头文件,一般需要根据程序的需求修改其常量的内容)文件。一般来说,每个应用程序都有自己的配置文件拷贝,并很可能与范例不同。1.1概述函数说明μC/OS-II微小内核SOURCE4提供OSInit函数。函数名称OSInit所属文件OS_CORE.C函数原型voidOSInit(void)功能描述初始化μC/OS-Ⅱ,无函数参数和返回值特殊说明必须在调用OSStart()函数之前调用OSInit(),而只有在调用OSStart()函数之后,μC/OS-Ⅱ才真正开始运行多任务1.1概述函数
6、说明μC/OS-II微小内核SOURCE4提供OSStart函数。函数名称OSStart所属文件OS_CORE.C函数原型voidOSStart(void)功能描述启动μC/OS-II的多任务环境,无函数参数和返回值特殊说明在调用OSStart()之前必须先调用OSInit()。在用户程序中OSStart()只能被调用一次,第二次调用OSStart()将不执行任何操作1.1概述函数说明μC/OS-II微小内核SOURCE4提供OSTaskCreate函数。函数名称OSTaskCreate所属文件OS_TASK.C函数原
7、型INT8UOSTaskCreate(void(*task)(void*pd),void*pdata,OS_STK*ptos,INT8Uprio)功能描述建立一个新任务。既可以在多任务环境启动之前,也可以在正在运行的任务中创建任务函数参数task:指向任务代码的指针(函数指针)pdata:传递给任务的参数(一个变量指针)ptos:指向任务堆栈栈顶的指针prio:任务的优先级特殊说明任务堆栈必须声明为OS_STK类型。注意:在中断处理程序中不能建立任务。在任务中必须调用μC/OS提供的下述过程之一:延时等待、任务挂起、等
8、待事件发生(等待信号量,消息邮箱、消息队列),以便其它任务也能获得CPU的使用权1.1概述函数说明μC/OS-II微小内核SOURCE4提供OSTimeDly函数。函数名称OSTimeDly所属文件OS_TIME.C函数原型voidOSTimeDly(INT16Uticks)功能描述将一个任务延时若干个时钟节拍,无函数返回值。延时
此文档下载收益归作者所有