freertos动态和静态任务创建的区别

   //静态创建。

//任务优先级

#define START_TASK_PRIO     1

//任务堆栈大小    

#define START_STK_SIZE      128  

//任务堆栈

StackType_t StartTaskStack[START_STK_SIZE];

//任务控制块

StaticTask_t StartTaskTCB;

//任务句柄

TaskHandle_t StartTask_Handler;

//任务函数

void start_task(void *pvParameters);

    TaskHandle_t xTaskCreateStatic( TaskFunction_t pxTaskCode,//函数指针

                                    const char * const pcName,函数名,字符串

                                    const uint32_t ulStackDepth,栈的长度(不是大小,)

                                    void * const pvParameters,给函数传递的参数

                                    UBaseType_t uxPriority,任务优先级

                                    StackType_t * const puxStackBuffer栈的起始地址,

                                    StaticTask_t * const pxTaskBuffer 任务控制块的指针) /(返回值为任务句柄)

    {        if( ( pxTaskBuffer != NULL ) && ( puxStackBuffer != NULL ) )

        {

            pxNewTCB = ( TCB_t * ) pxTaskBuffer;

            pxNewTCB->pxStack = ( StackType_t * ) puxStackBuffer;//指向栈底

        }        

}

//动态创建

//任务优先级

#define START_TASK_PRIO     1

//任务堆栈大小    

#define START_STK_SIZE      128  

//任务句柄

TaskHandle_t StartTask_Handler;

//任务函数

void start_task(void *pvParameters);

    BaseType_t xTaskCreate( TaskFunction_t pxTaskCode,函数指针

                            const char * const pcName,函数名字符串

                            const uint16_t usStackDepth,栈长度

                            void * const pvParameters,任务参数

                            UBaseType_t uxPriority,优先级

                            TaskHandle_t * const pxCreatedTask任务句柄

) (返回值不是任务句柄

    {

    TCB_t *pxNewTCB;

    BaseType_t xReturn;

            pxStack = ( StackType_t * ) pvPortMalloc( ( ( ( size_t ) usStackDepth ) * sizeof( StackType_t ) ) );

            pxNewTCB = ( TCB_t * ) pvPortMalloc( sizeof( TCB_t ) )

                    /* Store the stack location in the TCB. */

                    pxNewTCB->pxStack = pxStack;

由上可知,动态创建任务时任务控制块和栈空间是动态分配的,

静态创建任务时任务控制块和栈空间是提前分配好的,是静态的。

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

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

相关文章

微信多账号聊天、多账号管理,轻松拿捏

你是否微信账号太多,很难管理; 是否很难触达精准客户; 是否人力成本不断上升, 公司迫切需要提高工作效率,降低成本。 ...... 针对多个痛点问题, 微信管理系统进行了有针对性的开发和定位。 多账号聚合…

【计算机网络黑皮书】入门必学的基本网络知识

【事先声明】 这是对于中科大的计算机网络的网课的学习笔记,感谢郑烇老师的无偿分享 书籍是《计算机网络(自顶向下方法 第7版)》 需要的可以私信我,无偿分享,课程简介下也有 B站链接 目录 网络核心电路交换端到端之间的…

LeetCode【2251. 花期内花的数目】

给你一个下标从 0 开始的二维整数数组 flowers ,其中 flowers[i] [starti, endi] 表示第 i 朵花的 花期 从 starti 到 endi (都 包含)。同时给你一个下标从 0 开始大小为 n 的整数数组 people ,people[i] 是第 i 个人来看花的时间…

Grom 如何解决 SQL 注入问题

什么是 SQL 注入 SQL 注入是一种常见的数据库攻击手段, SQL 注入漏洞也是网络世界中最普遍的漏洞之一。 SQL 注入就是恶意用户通过在表单中填写包含 SQL 关键字的数据来使数据库执行非常规代码的过程。 这个问题的来源就是, SQL 数据库的操作是通过 SQ…

【Unity ShaderLab 还原嗜血边缘角色渲染效果_“Niohoggr“_角色渲染(第一篇)】

还原嗜血边缘角色着色效果 《嗜血边缘》截取其中的片段如下:资源分析其中Guitar贴图4张模型:人物细节图:人物模型 Inspector面板这里做一个区域区分:Body贴图1_BCBody贴图2_NBody贴图3_CMBody贴图4_SRMBody贴图4_RGB,分别在模型中显示的区域Reflection Probe《嗜血边缘》 设…

Spring工具类--ReflectUtils的使用

原文网址:Spring工具类系列--ReflectUtils的使用_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Spring的ReflectUtils的使用。 ReflectUtils工具类的作用:便利地进行反射操作。 Spring还有一个工具类:ReflectionUtils,它们在功能上…

GORM 中SQL、慢SQL打印日志传递 trace ID, Kratos框架输出日志trace id

实现 gorm.io/gorm/logger 下的函数⬇️ // gorm 源码 type Interface interface { LogMode(LogLevel) Interface Info(context.Context, string, ...interface{}) Warn(context.Context, string, ...interface{}) Error(context.Context, string, ...interface{}) Trace…

7、脏话检测

6、片花关联长视频 脏话检测功能本身远不如上一篇介绍的片花关联长视频有技术挑战性,不过还是值得说说,因为这是我们采用技术方式提高工作效率的第一次尝试。 游戏解说是审核难度比较大的一类短视频内容,一方面是时间比较长,很多…

基于SpringBoot的医院管理系统

目录 前言 一、技术栈 二、系统功能介绍 病床信息管理 药房信息管理 个人中心管理 药房信息 病床类别 科室信息管理 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息互联网信息的飞速发展,医院也在创建着属于自己的管理系统。本文介…

每日一练 | 网络工程师软考真题Day38

1、以下关于Windows 2003中域的描述正确的选项是 。 A.在网络环境中所有的计算机称为一个域 B.同一个域中可以有多个备份域控制器 C.每一个域中必须有主域控制器和备份域控制器 D.一个域中可以有多个主域控制器 2、在Windows命…

uniapp 事件委托失败 获取不到dataset

问题&#xff1a; v-for 多个span ,绑定点击事件 代码:view里包着一个span, <view class"status-list" tap"search"><span class"status-item" v-for"(key,index) in statusList" :key"index" :data-key"k…

【N年测试总结】区块链行业测试特点

一、区块链业务系统简介 转入转出业务&#xff1a;这类业务一般会涉及币的转入和转出&#xff0c;转入的流程一般是用户从第三方钱包往用户在公司的地址转入&#xff0c;系统收到用户的转入操作消息通知后&#xff0c;定时在链上监控该地址相关的交易&#xff0c;通过校验各项…

windows:批处理bat入门

文章目录 什么是BAT常用命令与语法help与/?titlecolormodeechopausecallremset/a/p gotostartifif errorlevel for普通用法for /l 用法for /d用法for /r用法for /f用法in (file)delims和tokensskipeolusebackq 变量扩展变量延迟 setlocalshiftdirrd&#xff08;删除文件夹&…

服务器搭建(TCP套接字)-libevent版(服务端)

Libevent 是一个开源的事件驱动库&#xff0c;用于开发高性能、并发的网络应用程序。它提供了跨平台的事件处理和网络编程功能&#xff0c;具有高性能、可扩展性和可移植性。下面详细讲解 Libevent 的主要组成部分和使用方法。 一、事件基础结构&#xff08;event_base&#x…

【网络协议】Http-下

HTTP常见Header Content-Type: 数据类型(text/html等) Content-Length: Body的长度 Host: 客户端告知服务器, 所请求的资源是在哪个主机的哪个端口上; User-Agent: 声明用户的操作系统和浏览器版本信息; referer: 当前页面是从哪个页面跳转过来的; location: 搭配3xx状态…

无需公网IP,实现公网SSH远程登录MacOS【内网穿透】

目录 前言 1. macOS打开远程登录 2. 局域网内测试ssh远程 3. 公网ssh远程连接macOS 3.1 macOS安装配置cpolar 3.2 获取ssh隧道公网地址 3.3 测试公网ssh远程连接macOS 4. 配置公网固定TCP地址 4.1 保留一个固定TCP端口地址 4.2 配置固定TCP端口地址 5. 使用固定TCP端…

定义豪车新理念 远航汽车亮相2023中国(天津)国际汽车展览会

近年来&#xff0c;随着汽车行业竞争持续加剧&#xff0c;老品牌面临积极转型&#xff0c;新势力则经验不足、实力欠佳&#xff0c;到底是难抵市场的风云变幻。在此背景下&#xff0c;有着“老品牌 新势力”双重基因的远航汽车可谓底气十足。作为大运集团携手博世、华为、阿里斑…

JumpServer开源堡垒机与爱可生云树数据库完成兼容性认证

近日&#xff0c;中国领先的开源软件提供商FIT2CLOUD飞致云宣布&#xff0c;JumpServer开源堡垒机已经完成与爱可生云树数据库软件的兼容性认证。经过双方联合测试&#xff0c;云树数据库软件&#xff08;简称&#xff1a;ActionDB&#xff09;V1.0与杭州飞致云信息科技有限公司…

23种设计模式(简单介绍)

1.单例模式&#xff0c;整个项目中只能存在一个对象实例&#xff0c;这就被称为单例模式 &#xff0c;单例模式又称为 饿汉式&#xff08;一开始不加载&#xff0c;简称懒加载&#xff09; 静态常量的方式&#xff0c; 静态代码块的方式 懒汉式&#xff08;一开始就进行加载&…

使用高德地图和和风天气后,高德地图引入的插件就没办法在重新创建了?

以下所说的都是web&#xff0c;js调用&#xff0c;我使用的和风天气是它官网上的免费插件方式https://widget.qweather.com/ 高德地图和和风天气冲突 因为和风天气也是用的高德地图&#xff0c;只不过用的版本不一样&#xff0c;所以明明我引入的amap有一些需要的方法&#x…