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

易企推科技
易企推科技

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

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

这几个文件在源码中的具体路径如下:

Micrium\Software\UCOS-II\Ports\ARM-Cortex-M3\Generic\RealView

至此所有的文件就已经移植完成,接下来我们就需要对工程尽型配置了。

工程配置

首先在工程目录中创建一下三个分组,如下图29.11所示:

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

图29.11 工程目录创建

然后分别向三个目录中添加对应的文件夹里的c文件和.a文件,注意在添加内核文件时不要将UCOS_ii.c文件添加到工程里。文件添加完成后的效果如下图29.12所示:

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

图29.12 文件添加效果图

添加完文件之后需要将头文件的路径一并给添加到工程里,具体如下图29.12所示:

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

图29.12 头文件路径配置

此时直接编译会提示找不到app_cfg.h文件,因为我们没有将这个文件添加到自己的目录中,所以直接将#include

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

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

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

图29.13 屏蔽app_cfg.h文件修改includes.h文件

屏蔽之后还会提示一些钩子函数未定义,此时我们需要在配置文件里将钩子函数给关闭,找到os_cfg.h文件的第30行,将1改为0即可。具体操作如下图

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

图29.14 关闭钩子函数

修改完之后在编译一次,会提示另外一个函数未定义,如下图所示29.15所示:

图29.15 错误提示

我们找到os_cpu_c.c文件,然后将361行的OS_CPU_SysTickClkFreq()函数直接修改为单片机的时钟频率也就是72000000。具体操作如下图29.16所示:

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

图29.16 修改时钟频率

此时我们在编译就不会再出错了,但是我们还需要进行以下操作让UCOSII系统跑起来。我们将UCOSII系统运行所依赖的函数放到系统定时器的中断函数里运行,如图29.17所示,然后将STM32启动文件里出现pendSV_Handler的地方全部修改为OS_CPU_PendSVHandler,因为上了操作系统之后,上下文切换的中断会由UCOSII来执行。具体内容如下图29.18所示:

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

图29.17 函数调用

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

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

图29.18 启动文件修改

UCOS-II操作系统使用

基础任务创建和删除实验

任务基础

多任务操作系统最主要的就是对任务的管理,包括任务的创建、挂起、删除和调度等,因此对于UCOSII操作系统中任务管理的理解就显得尤为重要。这一节我们就讲解UCOSII中的任务管理。

在使用UCOSIII 的时候我们要按照一定的顺序初始化并打开UCOSII,我们可以按照下面的顺序

  • 最先肯定是要调用CPU_Init()初始化UCOSII

  • 创建任务,一般我们在 main()函数中只创建一个 start_task 任务,其他任务都在start_task 任务中创建,在调用 OSTaskCreate() 函数创建任务的时候一定要调用 OS_CRITICAL_ENTER()函数进入临界区,任务创建完以后调用 OS_CRITICAL_EXIT()函数退出临界区

  • 最后调用 OSStart()函数开启 UCOSII

任务的状态:

UCOSII支持的是单核 CPU,不支持多核CPU,这样在某一时刻只有一个任务会获得CPU使用权进入运行态,其他的任务就会进入其他状态,UCOSII中的任务有多个状态,如下表 29.1所示。

表29.1 任务状态

任务状态

描述

休眠态

休眠态就是任务只是以任务函数的方式存在,只是存储区中的一段代码,并 未用OSTaskCreate()函数创建这个任务,不受 UCOSII管理的。

就绪态

任务在就绪表中已经登记,等待获取 CPU使用权。

运行态

正在运行的任务就处于运行态。

等待态

正在运行的任务需要等待某一个事件,比如信号量、消息、事件标志组等, 就会暂时让出 CPU使用权,进入等待事件状态。

中断服务态

一个正在执行的任务被中断打断,CPU 转而执行中断服务程序,这时这个任 务就会被挂起,进入中断服务态。

在UCOSII中任务的5种状态转换关系如下图29.19所示;


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


网络知识
小编:小易整编
相关文章相关阅读
  • 某台微机安装的是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数字证书等全部功能,是实现移动互联网应用安全的核心技术。手机盾为移动互联网应用提供了密码运算支撑能力,用于身份认证、...

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

精彩推荐