esp32FreeRTOS教程——内核分配

2023-05-16

Esp32 模块中已经提供了 FreeRTOS(实时操作系统)固件。FreeRTOS有助于提高系统性能和管理模块的资源。FreeRTOS允许用户处理多项任务,如测量传感器读数,发出网络请求,控制电机速度等,所有这些任务都可以同时独立运行。

FreeRTOS为不同的应用程序提供了多个API。这些 API 可用于创建任务并使其在不同内核上运行。您需要创建任务以将代码的特定部分分配给特定内核。您还可以确定代码将在哪个内核上运行的优先级。优先级值以 level_0 开头。在这里插入图片描述
每当我们在Arduino IDE上运行代码时,默认情况下,它会在core_1上运行。
您可以使用一个函数来检查代码在哪个内核上运行。xPortGetCoreID()

void setup()

{

Serial.begin(115200);

Serial.print(setup() is running on: Core_” );

Serial.println( xPortGetCoreID() );

delay(1000);

}

void loop()

{

Serial.print(loop() is running on: Core_” );

Serial.println( xPortGetCoreID() );

delay(1000);

}

在这里插入图片描述

这段代码中,我们将使用两个led由不同的核心处理。

TaskHandle_t task1;
TaskHandle_t task2;
//将gpio引脚分配给led
const int led1 = LED_BUILTIN;
const int led2 = 25;
void setup() {
Serial.begin(115200 );
pinMode( led1, OUTPUT );
pinMode( led2, OUTPUT );
//创建一个在Task1code()函数中执行的任务,优先级为1,在核心1上执行
xTaskCreatePinnedToCore(task_1code, // Task function.
“Task1”,//任务名称
10000, //任务的堆栈大小
NULL,//任务的参数
1, //任务的优先级
&task1,//跟踪创建任务的任务句柄
1); //指定核心1的任务
delay(1000);
创建一个在Task2code()函数中执行的任务,优先级为1,并在核心1上执行
xTaskCreatePinnedToCore(task_2code, //Task function.
“task2”,//任务名称
10000,  //任务的堆栈大小
NULL, //任务的参数
1,//任务的优先级
&task2,//跟踪创建任务的任务句柄
0); //指定核心1的任务
delay(1000);
}
//task_1code: LED每1000毫秒闪烁一次
void task_1code( void * pvParameters ){
Serial.print( “task1 running on: core ” );
Serial.println( xPortGetCoreID() );
for(;;)
{
digitalWrite( led1, HIGH);
delay(1000);
digitalWrite(led1, LOW);
delay(1000);
}
}
//task_2code: LED每500毫秒闪烁一次
void task_2code( void * pvParameters )
{
Serial.print( “task2 running on: core ” );
Serial.println(xPortGetCoreID() );
for(;;){
digitalWrite(led2, HIGH );
delay(500);
digitalWrite(led2, LOW );
delay(500);
}
}
void loop()
{
Serial.print(loop() is running on: Core ” );
Serial.println( xPortGetCoreID() );
delay(1000);
}

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

esp32FreeRTOS教程——内核分配 的相关文章

  • Linux最常用命令50条【呕心沥血呐,望用之取之】

    Linux常用命令大全 第一章 Linux基础命令 1 linux ls 2 linux alias 3 linux cd 4 linux clear 5 linux date 6 linux dpkg 7 linux echo 8 lin
  • STM32 GPIO LED和蜂鸣器实现【第四天】

    STM32 GPIO LED实现 原理图一 STM32大小说明二 STM32时钟分析三 GPIO分析1 注意点 四 寄存器地址查找1 写出GPIOF外设的所有寄存器地址 五 LED灯开发1 理解led灯原理图2 打开GPIOF组时钟4 通过
  • Linux安装qt完整版教程

    Linux安装qt完整版教程 一 获取Linux qt版本二 linux安装qt三 配置qt环境变量四 linux qt相关的显示配置 一 获取Linux qt版本 qt 版本5 12 8官网下载地址 选择国内的下载渠道 xff0c 更快
  • STM32嵌入式工程师自我修养

    STM32嵌入式工程师自我修养 一 STM32必备技能二 程序员必须熟知三 学习STM32自备资料和硬件 一 STM32必备技能 1 熟悉 C 语言编程 xff0c 熟练 STM32CUBEMX Keil 开发环境 2 熟悉基于STM32
  • Qt 按钮组(Buttons)输入组(Input Widgets) 显示控件组(Display Widgets) 间隔组(Spacers) 布局组(Layouts) 容器组Containers等

    文章目录 按钮组 xff08 Buttons xff09 输入部件组 xff08 Input Widgets xff09 显示控件组 xff08 Display Widgets xff09 空间间隔组 xff08 Spacers xff09
  • Qt 对话框(QFileDialog)、标准颜色对话框(QColorDialog)、标准字体对话框(QFontDialog)、标准输入对话框(QInputDialog)、QMessageDialog

    文章目录 标准文件对话框 QFileDialog 代码简介QFileDialog类常用静态函数 标准颜色对话框 QColorDialog 代码简介QColorDialog类常用静态函数 标准字体对话框 QFontDialog 代码简介QFo
  • qt 使用textBrowser显示文字和图片,文字居中,图片居中,已测可用

    QTextBrowser显示图文操作 直接上源码UI设计效果截图源码方法2 推荐 源码 直接上源码 这里只给出框架 xff0c 美化的事交给有缘人 UI设计 效果截图 源码 span class token macro property s
  • HTTP报文格式详解

    文章目录 HTTP报文格式请求报文请求行请求头部空行请求数据 响应报文状态行响应头部空行响应体 HTTP报文格式 HTTP报文是面向文本的 xff0c 报文中的每一个字段都是一些ASCII码串 xff0c 每个字段的长度是不确定的 HTTP
  • 从源码分析HashMap集合之属性(一)

    注 xff1a 笔者所使用的jdk为1 8 xff0c 因本人水平有限 xff0c 难免会有错误 xff0c 请批评指正 xff0c 弥补不足 xff0c 多谢 xff0c 另转载请注明出处 我们首先来看下一下HashMap类 public
  • Linux下实现苹果AirPlay音频服务器

    一 背景 背景 xff1a 在华清学习之余 xff0c 自行研究了智能家居的东西 xff0c 为了解决智能家居中背景音乐问题研究如下 xff1a 调查发现现有技术中有DLNA AirPlay Miracast三种 文章后有些项并未验证 xf
  • uCOS-III基础入门函数

    uCOS III是一个主要是运行在单片机上操作系统 xff0c 可以实现并发 xff0c 主要的功能就是任务 mutex event的创建和使用 调度器 调度器就是使用相关算法来决定当前需要执行的任务 xff0c 调度器的核心有两个 xff
  • Java接口实现

    接口是什么 xff0c 它的作用是什么 xff1f 首先 xff0c Java只能实现单继承 xff0c 而有时候实际需要要求我们实现多继承 xff0c 因此 xff0c 接口就是为了实现多继承而开发出来的 xff0c 并且接口支持程序在运
  • python爬取京东商品信息及评论

    准备 chrome浏览器 和 chromeDriver插件 xff08 其他浏览器步骤类似 xff09 python 环境python selenium模块 代码 span class token triple quoted string
  • Error while loading error while loading shared libraries 解决办法

    Error while loading error while loading shared libraries 解决办法 缺失了 xff0c 那就找到放回去 发行版 xff1a Archlinux 如标题所言 xff0c 这里以截至写文章
  • sql-创建复合主键

    一 说明 xff1a 1 数据库的每张表只能有一个主键 xff0c 不可能有多个主键 2 所谓的一张表多个主键 xff0c 我们称之为复合主键 xff08 联合主键 xff09 注 xff1a 联合主键 xff1a 就是用多个字段一起作为一
  • sql_外键

    一 外键的定义 1 外键是一种索引 xff0c 是通过一张表中的一列指向另一张表的主键 xff0c 使得这两张表产生关联 2 是某个表中的一列 xff0c 它包含在另一个表的主键中 3 一张表中可以有一个外键也可以有多个外键 二 外键的作用
  • 数据库事务图解

    一 基本概念 xff08 from baidu xff09 数据库事务 Database Transaction xff0c 是指作为单个逻辑工作单元执行的一系列操作 xff0c 要么完全地执行 xff0c 要么完全地不执行 事务处理可以确
  • MySQL 中判断字符串是否相等

    感谢 xff1a https blog csdn net yangfengjueqi article details 72821603 mysql 中判断两个字符串是否相等可以用 lt 61 gt 或者 61 例 但是需要注意 lt 61
  • mysql order by 多个字段及其多字段排序原则,和 order by 后跟数字

    一 order by 后跟数字 select from table order by n n 表示select里面的第n个字段 xff0c 整段sql的意义是 xff1a 查询出来的结果 xff0c 按照第N个字段排序 二 order by
  • ROS 学习1- 创建工作空间以及功能包

    一 工作空间概念 在ros中工作空间统称为workspace 是用来存放你一个工程开发需要用到的相关文件的 xff0c 在ros中它是一个带有空座空间性质的文件夹 该文件夹中通常会包含4个子文件夹 src 用来存放功能包的 build 编译

随机推荐

  • Linux 中echo及echo > 和echo >>

    一 Linux 中的echo指令 Shell 的 echo 指令用于字符串的输出 详见 xff1a Shell echo命令 菜鸟教程 二 echo gt 和echo gt gt echo gt 和echo gt gt 的区别详见 xff1
  • Yolov5 计算访存量MAC与计算量FLOPS

    说明 xff1a 因为yolov5函数中已经计算了 FLOPS xff0c 因此如果想要计算访存量那么只需按照flops的位置 添加访存量的计算即可 一 先记住计算量和访存量的公式 xff1a 二 找到计算FLOPS的位置 xff0c 并添
  • Yolov5 中添加Network Slimming剪枝--稀疏训练部分

    前言 xff1a Network Slimming剪枝过程让如下 1 稀疏化 2 剪枝 3 反复迭代这个过程 一 稀疏化 xff1a 通过Network Slimming 的核心思想是 添加L1正则来约束BN层系数 xff0c 从而剪掉那些
  • Pytorch children()、modules()、named_children()、named_modules()、parameters()、named_parameters()使用说明

    参考博客 xff1a Pytorch children modules named children named modules named parameters parameters 使用说明 洪流之源的博客 CSDN博客 childre
  • Gazebo执行保存世界选取文件夹时卡住不动的解决办法

    背景 xff1a 在学习ROS Gazebo仿真 xff0c gazebo中加入任意模型 xff0c 然后点击save world as然后卡死的问题一直无法解决 现象 xff1a 点save as world屏幕变暗 xff0c 无窗口弹
  • PLC的自抗扰控制(ADRC)算法

    自抗扰控制算法 网上很多文章有理论推导和讲解 大家也可以关注韩京清教授的论文和书籍 这里就不赘述了 博途PLC ADRC自抗扰控制完整源代码可以参看下面这篇文章 博途PLC 1200 1500PLC自抗扰控制 ADRC 完整SCL源代码 R
  • PLC PID优化系列之非线性参数整定(FC函数)

    nbsp nbsp 根据一般PID的响应曲线 我们可以设计更加符合响应曲线的P I D参数 这里的非线性是指参数整定方法采用非线性 并不是PID本身的算法 非线性的PID算法后面会给大家讲 包括韩京清老师提出的ADRC都属于非线性PID范畴
  • 脖子上的这个包是“夺命包”,再不重视就晚了!化解方法必看!

    生活中你有见过这样的颈椎吗 xff1f 你的亲人 xff1f 朋友 xff1f 或者是 陌生人 xff1f 这叫富贵包 xff01 这是咱老百姓起的一个吉利的名字 但是 xff0c 在中医看来 xff0c 这哪是富贵包 xff1f 这背后潜
  • ADRC自抗扰控制算法(含梯形图完整源代码和算法公式)

    ADRC自抗扰控制算法的详细解读 不是本篇博客讨论的重点 专栏有ADRC的系列学习笔记 感兴趣的同学可以自行查看 链接如下 PLC的自抗扰控制 ADRC 算法 RXXW Dor的博客 CSDN博客 adrc算法 1 自抗扰控制算法 网上很多
  • ADRC/Matlab一步步实现跟踪微分器TD(附完整PLC测试代码链接)

    TD微分器的主要作用 就是安排过渡过程 产生跟踪信号和微分信号 滤除噪声 关于Adrc的理论分析不是本篇博客的重点 主要也是能力所限 相关理论大家可以看韩京清教授的论文 专栏有简单的学习笔记 感兴趣的同学可以看看 链接如下 ADRC自抗扰的
  • SMART PLC嵌套调用级数(ADRC调用问题)

    S7 200PLC子程序和中断程序支持的最大嵌套级数分别为8级和1级 所以老款控制器中断程序调用子程序劝大家不要套娃了 只支持1级 这篇博客我们分析下ADRC算法里的调用结构问题 首先看下调用级数最深的层级 1 嵌套调用 从图中可以看出调用
  • JAVA---this关键字

    this关键字 关于java中的this关键字 this表示当前对象 this 属性 区别成员变量和局部变量 this 调用本类的某个方法 this 表示调用本类构造方法 xff0c 只能用在构造方法的第一行语句 this关键字只能出现在非
  • 嵌入式面试常见问题(一)

    为2022秋招准备 xff0c 不打无准备之仗 第一章 进程与线程 1 什么是进程 线程 xff0c 有什么区别 xff1f 进程是资源 xff08 CPU 内存等 xff09 分配的基本单位 xff0c 线程是CPU调度和分配的基本单位
  • 嵌入式面试常见问题(六)—各大公司面试题

    1 阿里面试 1 Linux系统方面 1 xff09 进程和线程的区别 xff08 不能太书面化 xff09 xff08 需要从内存角度 xff0c 或者其他角度描述 xff09 需要用自己理解的方式去回答这个问题 xff0c 如果你回答了
  • 嵌入式面试常见问题(七)—各大公司面试题

    6 深信服面试 1 简历中写了做过海思项目 xff0c 问海思项目最大的难点是什么 怎么解决的 xff08 还问了编码的原理 xff0c h264 和265的区别 xff0c 如果sensor默认是720p的 xff0c 我要怎么得到108
  • 嵌入式面试常见问题(九)—各大公司面试题

    3 锐捷网络笔试题 笔试时间 xff1a 2020 09 24 时长 xff1a 90分钟 题目 xff1a 25道题 xff0c 全是C语言代码题 xff0c 问输出结果 总结 xff1a 时间紧 xff0c 任务重 xff0c 硬核 1
  • STM32之串口传输结构体

    传输数据还可以 xff0c 上位机解析数据耽误了一个下午的时间特此来记录一下 xff01 这里将16位数据转成8位数据转发到上位机 STM32端口 这次协议帧头定义的是 0xAA 0xBB和0xFF 0xEE 0xBB确保数据的准确性 xf
  • keil教程——串口调试

    原来keil也有串口窗口 xff0c 现在就试试打印倒金字塔图形 1 程序设计 span class token macro property span class token directive hash span span class
  • 为什么飞机不悬停在天上 等地球从下方通过呢?

    我们都知道 xff0c 地球绕地轴每24小时完成一个自转周期 那么很多人可能就会这么想 xff0c 为什么飞机不直接停在天上 xff0c 等着地球自转 xff0c 然后在目的地转过来的时候 xff0c 然后再直接着陆呢 xff1f 这样不是
  • esp32FreeRTOS教程——内核分配

    Esp32 模块中已经提供了 FreeRTOS xff08 实时操作系统 xff09 固件 FreeRTOS有助于提高系统性能和管理模块的资源 FreeRTOS允许用户处理多项任务 xff0c 如测量传感器读数 xff0c 发出网络请求 x