uCOSiii的默认任务

news2024/11/20 9:46:16

uCOS有uCOSii和uCOSiii,这两个都是一个可裁剪、可剥夺型的多任务内核。

uCOSiii没有任务数限制,uCOSiii内部任务有5个

中断服务服务管理任务,时钟节拍任务,定时器任务 ,统计任务,空闲任务。


1、优先级0:

中断服务服务管理任务OS_IntQTask(),在os_int.c中,有一个OS_IntQTaskInit()函数,它在创建"中断服务服务"时,将IntQTask的优先级设置为0;


2、优先级1:

时钟节拍任务 OS_TickTask(),OS_CFG_TICK_TASK_PRIO=1

3、优先级2:

定时器任务 OS_TmrTask(),OS_CFG_TMR_TASK_PRIO=2


4、优先级OS_CFG_PRIO_MAX-2:

统计任务 OS_StatTask(),OS_CFG_STAT_TASK_PRIO=(OS_CFG_PRIO_MAX-2u)

5、优先级OS_CFG_PRIO_MAX-1:

空闲任务 OS_IdleTask(),在oS_core.c中,有一个OS_IdleTaskInit()函数,在这里定义了"空闲任务优先级"为(OS_CFG_PRIO_MAX - 1u)

6、用户任务需要自己定义:

#define START_TASK_PRIORITY      3   //设置START_TASK任务优先级,
OS_TCB  START_TASK_TCB;       //START_TASK任务控制块
#define START_TASK_STACK_SIZE   192 //设置START_TASK任务堆栈大小为192个4字节
CPU_STK START_TASK_STACK[START_TASK_STACK_SIZE]; //START_TASK任务堆栈

#define BALANCE_TASK_PRIORITY            4    //BALANCE_TASK任务优先级    
OS_TCB  BALANCE_TASK_TCB;         //BALANCE_TASK任务控制块
#define BALANCE_TASK_STACK_SIZE         128  //Balance任务堆栈大小为392个4字节

CPU_STK BALANCE_TASK_STACK[BALANCE_TASK_STACK_SIZE];

//BALANCE_TASK任务堆栈

#define LCD_DISPLAY_TASK_PRIORITY            5    //任务优先级
OS_TCB  LCD_DISPLAY_TASK_TCB;         //LCD_DISPLAY_TASK任务控制块
#define LCD_DISPLAY_TASK_STACK_SIZE         256  //任务堆栈大小为456个4字节,为8的倍数
CPU_STK LCD_DISPLAY_TASK_STACK[LCD_DISPLAY_TASK_STACK_SIZE]; //LCD_DISPLAY_TASK任务堆栈

7、堆空间定义:
在lib_cfg.h中,有一个宏叫LIB_MEM_CFG_HEAP_SIZE,用来设置"堆的大小"

8、uC/OS-III节拍中断的频率:

在os_cfg_app.h中,有一个宏OS_CFG_TICK_RATE_HZ

#define  OS_CFG_TICK_RATE_HZ            100u

//设置uC/OS-III节拍中断的频率为100,设置1000时,任务容易卡,可能原因:系统响应慢,高级任务响应不及时,导致阻塞,谁也干不了活。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/691362.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言程序环境和预处理(1)

本章主要以图片和文字的形式给大家讲解 程序的翻译环境和程序的执行环境 在ANSI C的任何一种实现中,存在两个不同的环境。 第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。 第2种是执行环境,它用于实际执行代码 2. 详解编译…

ModbusRTU协议封装,控制RJ45报警器,复制一下就能用哦~

本文只对 写保持寄存器 HoldingRegister 做操作,其他类型的寄存器方法方法也在ModbusWriteOrRead类中,可自行测试。 报警器设备型号(USB版):JD01AX07 01 设备外观及亮灯: 文档说明-部分: 注: 以下图第一个绿灯开启的二进制命令为例: 01 06:寄存器类型 00 00:…

机器学习6:使用 TensorFlow 的训练线性回归模型

纸上得来终觉浅,绝知此事要躬行。前面 5 篇文章介绍了机器学习相关的部分基础知识,在本章,笔者将讲解基于 TensorFlow 实现一个简单的线性回归模型,以便增强读者对机器学习的体感。 目录 1.环境准备 1.1 安装 Python3 1.2 安装…

MySQL 卸载与安装

卸载 先打开控制面板>>>程序>>>程序和功能 里卸载mysql的所有程序。 然后去计算机文件里查看有没有mysql文件残留的,全部删除。 在系统变量Path中删除mysql的路径。 再去删除服务,以管理员身份运行终端。 最后再去注册表里删除关于my…

搭建selenoid环境

1、拉取浏览器镜像 docker pull selenoid/vnc:chrome_103.02、拉取selenoid-ui容器镜像 docker pull aerokube/selenoid-ui:1.10.43、拉取selenoid容器镜像 docker pull aerokube/selenoid4、编写配置文件 vi /selenoid/config/browsers.json volumes可以做容器路径映射&…

【Linux 驱动篇(二)】LED 驱动开发

文章目录 一、Linux 下 LED 灯驱动原理1. 地址映射1.1 ioremap 函数1.2 iounmap 函数 2. I/O 内存访问函数2.1 读操作函数2.2 写操作函数 二、实验程序编写1. LED 灯驱动程序编写2. 编写测试 APP 三、运行测试1. 编译驱动程序和测试 APP1.1 编译驱动程序1.2 编译测试 APP 2. 运…

云端安全由繁到简,亚马逊云科技护航业务创新新局面

数字化愿景与现实存在的差距困扰着诸多企业,但造成这种差距的一个重要因素却一直被很多管理者所忽视,那就是企业未能建立应有的数字安全与合规体系。应用迭代的速度加快、数据快速膨胀、企业云原生道路上遭遇的种种困境,与数字安全部门有限的…

6款高质量国产软件,让你办公舒适度拉满,高效完成工作

布丁扫描——强大的文档扫描器 布丁扫描是一款可以用手机进行扫描的国产软件,可以快速、方便地转换纸质文件为电子文件,提高工作效率。 它可以将手机的摄像头用作扫描仪,将纸质文件、照片、证件等物品转换成数字格式的文件,还可对…

vue3-实战-14-管理后台-数据大屏-男女比例-年龄比例-地图以及轨迹-趋势折线图等

目录 1-男女比例【柱状图】 1.1-大屏男女比例原型需求 1.2-结构样式逻辑开发 2-年龄比例-饼图 2.1-原型需求分析 2.2-结构样式逻辑开发 3-中国地图和运行轨迹 3.1-地图组件需求原型 3.2-结构样式逻辑开发 4-未来7天游客数量趋势图-折线图 5-右侧的相关图 6-总结 1-…

数字空间-服务器应用监控系统

完整资料进入【数字空间】查看——baidu搜索"writebug" 随着各行业信息化建设的不断深入发展,单独的服务器已经再无法满足企业的需求。网络和应用规模日趋扩大,服务器网络集群大量应用于中、小型企业中,服务器性能监控和日常维护变…

金属元素螯合剂:(S)-DOTAGA-(COOt-Bu)4,1023889-20-4,可应用于制备纳米材料

文章关键词:金属元素螯合剂,大环配体,DOTA标记(COOt-Bu)4 ●中文名:(S)-DOTAGA-四叔丁酯 ●英文名:(S)-DOTAGA-(COOt-Bu)4 ●外观以及性质: 西安凯新生物科技有限公司供应的​(S)-DOTAGA-(COOt-Bu)4中DOT…

vue项目 ‘npm run dev‘ 报错 npm ERR! errno 134

npm ERR! errno 134 表示 npm 执行出现了致命错误,通常是由于内存不足或程序崩溃导致的。 这时需要我们分配更多的内存给vue-cli-service serve 解决方案 1. 安装increase-memory-limit cross-env依赖 npm install increase-memory-limit cross-env increase-mem…

Java面试题及答案整理( 2023年 6 月最新版,持续更新)

秋招金九银十快到了,发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全~这套互联网 Java 工程师面试题包括了:MyBatis、ZK、Dubbo、EL、Redis、MySQL、并发编程、Java面试、Spring、微服务、Linux、Spring…

其他品牌的触控笔能用在ipad上?好用不贵手写笔推荐

任何一种产品,都是有好有坏,就像苹果的Pencil,因为受到了消费者的欢迎,所以也推出了一些新的产品,比如平替电容笔,这些产品,有的质量好,有的价格低,被消费者所接受。但也…

cpu个数、核数、超线程的一些概念

cpu个数: 物理cpu个数:物理CPU数就是实际服务器中插槽上的CPU个数,主板上实际插入的cpu数量 逻辑cpu个数:物理CPU个数 * 每颗物理CPU的核数 * 超线程数 cpu核数: 每颗物理CPU可以有1个或者多个物理内核,通…

git上传文件到远程分支

1、进入文件目录(kernel)执行make distclean 清除配置文件 2、查看所在分支 git branch -a 3、查看远程分支 git branch -r 3、添加文件到分支 git add . git commit -m "XXXX" 4、上传文件 git push -u origin develop-camera

Spring Boot 中的 @PostMapping 注解,如何使用

Spring Boot 中的 PostMapping 注解 在 Spring Boot 中,我们经常需要编写 RESTful Web 服务,以便于客户端与服务器之间的通信。为了简化 RESTful Web 服务的开发,Spring Boot 提供了 PostMapping 注解,它可以让我们更方便地编写 …

结合uview实现倒计时

实现场景:试卷答题,点击开始考试,出现倒计时,刷新倒计时就没有了 实现思路: 关键点在于进来以后获取当前时间计算出结束时间 假设接口是20分钟以后倒计时结束,下面就算出了都是秒的时候倒计时结束了 new …

Jmeter性能压测报错address already in use:connect

目录 解决方法一: 解决方法二: 报错截图如下: 原因分析: 这个问题的原因是windows端口被耗尽了(默认1024-5000),而且操作系统要 2~4分钟才会重新释放这些端口,所以可以增加window…

龙讯旷腾Q-Flow和Q-Studio新功能,在线进行材料计算

Q-Flow和Q-Studio功能升级 Q-Flow(在线可视化提交任务工具)以及Q-Studio(在线建模工具)依托Mcloud平台免费向用户开放使用。告别Linux编辑代码提交任务的模式,Q-Flow可在浏览器里通过拖拽图形化的第一性原理计算功能组…