专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

ucos是什么意思,ucosii操作系统使用操作详解

来源:小易整编  作者:小易  发布时间:2023-02-09 02:47
摘要:ucos是什么意思,ucosii操作系统使用操作详解本文选取的是非常有名的UCOS-II嵌入式操作系统。在使用UCOS-II之前我们要先完成UCOS-II在我们开发平台上的移植操作。UCOS-II简介UCOS-II由Micrium公司提供,...

ucos是什么意思,ucosii操作系统使用操作详解

图29.19 任务状态切换

任务相关API的使用:

创建任务函数:

在UCOSIII 中我们通过函数 OSTaskCreate()来创建任务,OSTaskCreate()函数原型如下(在 os_task.c 中有定义)。

INT8U OSTaskCreate (void (*task)(void *p_arg), void *p_arg, OS_STK *ptos, INT8U prio)

函数需要四个参数,对应每个功能如下:

task:要执行的任务的指针,也就是函数名字

p_arg:任务开始时传递给任务的参数

ptos:分配给任务的栈空间

rio:人物的优先级

删除任务函数:

OSTaskDel()函数用来删除任务,当一个任务不需要运行的话,我们就可以将其删除掉,删除任务不是说删除任务代码,而是UCOSII不再管理这个任务,在有些应用中我们只需要某个 任务只运行一次,运行完成后就将其删除掉,比如外设初始化任务,OSTaskDel()函数原型如下:

INT8U OSTaskDel (INT8U prio)

参数含义:

prio:删除任务的优先级

代码实现

我们在主函数直接创建两个LED灯的任务分别控制LED1和LED2,并且在LED1任务运行5次之后删除LED2的任务,具体代码如下:

#include "main.h"

#include "delay.h"

#include "led.h"

#include "key.h"

#include "usart.h"

#include "includes.h"

//START 任务

//设置任务优先级

#define START_TASK_PRIO 10 //开始任务的优先级设置为最低

//设置任务堆栈大小

#define START_STK_SIZE 64

//创建任务堆栈空间

OS_STK START_TASK_STK[START_STK_SIZE];

//任务函数接口

void start_task(void *pdata);

//LED1任务

//设置任务优先级

#define LED1_TASK_PRIO 7

//设置任务堆栈大小

#define LED1_STK_SIZE 64

//创建任务堆栈空间

OS_STK LED1_TASK_STK[LED1_STK_SIZE];

//任务函数接口

void led1_task(void *pdata);

//LED2任务

//设置任务优先级

#define LED2_TASK_PRIO 8

//设置任务堆栈大小

#define LED2_STK_SIZE 64

//创建任务堆栈空间

OS_STK LED2_TASK_STK[LED2_STK_SIZE];

//任务函数接口

void led2_task(void *pdata);

int main(void)

{

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

SysTick_Config(72000);

Led_Config();

Beep_Config();

RGB_Config();

Relay_Config();

Key_Config();

USART1_Config(115200);

OSInit();

OSTaskCreate(start_task,(void *)0,(OS_STK *)&START_TASK_STK[START_STK_SIZE-1],START_TASK_PRIO );//创建起始任务

OSStart();

while(1)

{

}

}

//开始任务

void start_task(void *pdata)

{

OS_CPU_SR cpu_sr=0;

pdata = pdata;

OSStatInit(); //初始化统计任务.这里会延时1秒钟左右

OS_ENTER_CRITICAL(); //进入临界区(无法被中断打断)

OSTaskCreate(led1_task,(void *)0,(OS_STK*)&LED1_TASK_STK[LED1_STK_SIZE-1],LED1_TASK_PRIO);

OSTaskCreate(led2_task,(void *)0,(OS_STK*)&LED2_TASK_STK[LED2_STK_SIZE-1],LED2_TASK_PRIO);

OSTaskSuspend(START_TASK_PRIO); //挂起起始任务.

OS_EXIT_CRITICAL(); //退出临界区(可以被中断打断)

}

//LED1任务

void led1_task(void *pdata)

{

uint8_t count=0;

while(1)

{

count++;

LED1_Toggle();

if(count==5)

{

printf("LED1任务删除LED2任务\r\n");

OSTaskDel(LED2_TASK_PRIO);

}

printf("LED1任务运行%d次\r\n",count);

OSTimeDly(1000);

}

}

//LED2任务

void led2_task(void *pdata)

{

uint8_t count=0;

while(1)

{

count++;

LED2_Toggle();

printf("LED2任务运行%d次\r\n",count);

OSTimeDly(500);

}

}

实验现象

将代码烧录到开发板,然后打开串口助手,我们可以看到串口助手会打印出来每个任务运行的次数,而且LED灯1和LED灯2都开始闪烁,当LED1任务运行到第五次时,会打印“LED1任务删除LED2任务”,此时LED2不再闪烁,且串口不再是输出LED2任务运行次数,只有LED1任务运行,具体现象如下图29.20所示:

ucos是什么意思,ucosii操作系统使用操作详解

图29.20 任务从创建删除实验现象


本文地址:网络知识频道 https://www.hkm168.com/jiqiao/903060_3.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!

共3页 1 2 3 当前是最后一页

网络知识
小编:小易整编
相关文章相关阅读
  • 某台微机安装的是64位操作系统中,64位指的是什么

    某台微机安装的是64位操作系统中,64位指的是什么

    某台微机安装的是64位操作系统中,64位指的是cpu的字长,即cpu每次能处理64位二进制数据。字长是cpu的主要技术指标之一,指的是cpu一次能并行处理的二进制位数,字长总是8的整数倍,通常pc机的字长为32位,64位。本教程操作环境:w...

  • c语言是什么意思

    c语言是什么意思

    一:c语言是什么意思C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言,以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低...

  • 2k屏幕是什么意思

    2k屏幕是什么意思

    2k屏幕是指分辨率能够达到2560*1440的屏幕。2k是一个通用术语,指屏幕或者内容的水平分辨率达约2000像素的分辨率等级;又因“16:9”的比例是高清晰度视频规格的国际标准,所以2k分辨率在视频制作、显示屏等领域常见格式为2560*1...

  • nargin在matlab里面啥意思

    nargin在matlab里面啥意思

    nargin为“numberofinputarguments”的缩写。在matlab中定义一个函数时,在函数体内部,nargin是用来判断输入变量个数的函数。在matlab命令窗口中输入helpnargin或者docnarg...

  • HTML5中nav是什么意思

    HTML5中nav是什么意思

    在html5中,nav全称“navigation”,中文意思为“导航”,是一个导航标签,用于表示html页面中的导航;nav标签会定义一个含有导航链接的区域,语法“链接...”。本教程操作环境:windows7系统、HTML5版、Dell...

  • wifi连接速度什么意思

    wifi连接速度什么意思

    wifi中的连接速度是数据理论传输速度。wifi连接速度与上网速度不是同一个概念,wifi连接速度必须大于上网速度才稳定。wifi连接速度是路由器与上网设备连接的速度,一般现在主流的路由器都在150M以上,而上网速度是指运营商提供的网络接口...

  • 天马屏是什么意思

    天马屏是什么意思

    天马屏是指用天马微电子股份有限公司生产的液晶面板所装配的屏幕;天马微电子股份有限公司是一家在全球范围内提供客制化显示解决方案和快速服务支持的创新型科技企业。本教程操作环境:MIUI12.5系统,小米11手机。天马屏是什么意思?天马屏是指用天...

  • 手机盾是什么意思

    手机盾是什么意思

    手机盾就是用手机实现传统u盾(usbkey)功能的手机密码技术,不依赖硬件密码芯片,用软件实现可靠的密码设备、密码运算和ca数字证书等全部功能,是实现移动互联网应用安全的核心技术。手机盾为移动互联网应用提供了密码运算支撑能力,用于身份认证、...

  • 周排行
  • 月排行
  • 年排行

精彩推荐