0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ESP32模塊的FreeRTOS內(nèi)核分配

CHANBAEK ? 來源:頭條號(hào)平凡小冬默 ? 作者:頭條號(hào)平凡小冬默 ? 2023-05-18 16:25 ? 次閱讀

Esp32 模塊中已經(jīng)提供了 FreeRTOS(實(shí)時(shí)操作系統(tǒng))固件。 FreeRTOS有助于提高系統(tǒng)性能和管理模塊的資源。 FreeRTOS允許用戶處理多項(xiàng)任務(wù),如測(cè)量傳感器讀數(shù),發(fā)出網(wǎng)絡(luò)請(qǐng)求,控制電機(jī)速度等,所有這些任務(wù)都可以同時(shí)獨(dú)立運(yùn)行。

FreeRTOS為不同的應(yīng)用程序提供了多個(gè)API。 這些 API 可用于創(chuàng)建任務(wù)并使其在不同內(nèi)核上運(yùn)行。 您需要?jiǎng)?chuàng)建任務(wù)以將代碼的特定部分分配給特定內(nèi)核。 您還可以確定代碼將在哪個(gè)內(nèi)核上運(yùn)行的優(yōu)先級(jí)。 優(yōu)先級(jí)值以 level*0 開頭。

每當(dāng)我們?cè)?a href="http://www.ttokpm.com/v/tag/62/" target="_blank">Arduino IDE上運(yùn)行代碼時(shí),默認(rèn)情況下,它會(huì)在core*1上運(yùn)行。
您可以使用一個(gè)函數(shù)xPortGetCoreID()來檢查代碼在哪個(gè)內(nèi)核上運(yùn)行。

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);
}

這段代碼中,我們將使用兩個(gè)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 );
//創(chuàng)建一個(gè)在Task1code()函數(shù)中執(zhí)行的任務(wù),優(yōu)先級(jí)為1,在核心1上執(zhí)行
xTaskCreatePinnedToCore(task_1code, // Task function.
“Task1”,//任務(wù)名稱
10000, //任務(wù)的堆棧大小
NULL,//任務(wù)的參數(shù)
1, //任務(wù)的優(yōu)先級(jí)
&task1,//跟蹤創(chuàng)建任務(wù)的任務(wù)句柄
1); //指定核心1的任務(wù)
delay(1000);
創(chuàng)建一個(gè)在Task2code()函數(shù)中執(zhí)行的任務(wù),優(yōu)先級(jí)為1,并在核心1上執(zhí)行
xTaskCreatePinnedToCore(task_2code, //Task function.
“task2”,//任務(wù)名稱
10000,  //任務(wù)的堆棧大小
NULL, //任務(wù)的參數(shù)
1,//任務(wù)的優(yōu)先級(jí)
&task2,//跟蹤創(chuàng)建任務(wù)的任務(wù)句柄
0); //指定核心1的任務(wù)
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);
}

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2541

    文章

    49963

    瀏覽量

    747562
  • FreeRTOS
    +關(guān)注

    關(guān)注

    12

    文章

    483

    瀏覽量

    61730
  • 實(shí)時(shí)操作系統(tǒng)

    關(guān)注

    1

    文章

    194

    瀏覽量

    30684
  • ESP32
    +關(guān)注

    關(guān)注

    17

    文章

    936

    瀏覽量

    16669
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于Arduino IDE進(jìn)行的ESP32編程方案

    ESP模塊因其Wi-Fi功能(如ESP8266、ESP-12E等)而廣受歡迎。這些都是具有Wi-Fi功能的強(qiáng)大微控制器模塊。還有一個(gè)
    的頭像 發(fā)表于 01-09 11:25 ?1.6w次閱讀
    基于Arduino IDE進(jìn)行的<b class='flag-5'>ESP32</b>編程方案

    如何使用ESP32和Bluetooth模塊閃爍LED

    在本教程中,將LED的陽極連接到ESP32的p21,LED的陰極連接到ESP32的GND
    的頭像 發(fā)表于 10-05 17:50 ?8890次閱讀
    如何使用<b class='flag-5'>ESP32</b>和Bluetooth<b class='flag-5'>模塊</b>閃爍LED

    ESP32模組的主要特性

    WT-ESP32-DevKitC V4是一款基于ESP32的小型開發(fā)板,集WIFI+藍(lán)牙方案于一體,板上模組絕大部分管腳均已引出,開發(fā)人員可根據(jù)實(shí)際需求,輕松通過跳線連接多種外圍器件,或?qū)㈤_發(fā)板直接
    發(fā)表于 11-04 14:54 ?3786次閱讀

    ESP32 SDIO 使用教程

    ESP32 SDIO 使用教程本文旨在說明如何使用標(biāo)準(zhǔn)的 ESP32-WROOM-32D 開發(fā)板進(jìn)行 SDIO 的通信。本文檔適用于所有需要與 ESP32 SDIO slave 通信的方案
    發(fā)表于 11-23 17:51 ?233次下載
    <b class='flag-5'>ESP32</b> SDIO 使用教程

    HC05 藍(lán)牙模塊 連接 ESP32 經(jīng)典藍(lán)牙

    概述HC05是一款常用的經(jīng)典藍(lán)牙模塊,某寶有大量銷售,主從機(jī)一體,而ESP32的藍(lán)牙兼容經(jīng)典藍(lán)牙和低功耗藍(lán)牙,本文介紹如何使用HC05作為主機(jī)連接ESP32的經(jīng)典藍(lán)牙ESP32從機(jī)配置
    發(fā)表于 11-24 12:36 ?65次下載
    HC05 藍(lán)牙<b class='flag-5'>模塊</b> 連接 <b class='flag-5'>ESP32</b> 經(jīng)典藍(lán)牙

    FreeRTOS消息隊(duì)列 & ESP32使用

    FreeRTOS消息隊(duì)列 & ESP32實(shí)戰(zhàn)FreeRTOS消息隊(duì)列FreeRTOS的消息隊(duì)列和操作系統(tǒng)課中講的消息隊(duì)列大差不差,都是為了有序的、安全的在多任務(wù)間在發(fā)送信息。下
    發(fā)表于 12-03 17:51 ?1次下載
    <b class='flag-5'>FreeRTOS</b>消息隊(duì)列 & <b class='flag-5'>ESP32</b>使用

    esp32 例程 藍(lán)牙_wifi&amp;藍(lán)牙MCU 該不該選ESP32

    ESP32 將天線開關(guān)、RF balun、功率放大器、接收低噪聲放大器、濾波器、電源管理模塊等功能集于一體。ESP32 只需極少的外圍器件,即可實(shí)現(xiàn)強(qiáng)大的處理性能、可靠的安全性能,和 Wi-Fi &am...
    發(fā)表于 12-06 20:06 ?31次下載
    <b class='flag-5'>esp32</b> 例程 藍(lán)牙_wifi&amp;藍(lán)牙MCU  該不該選<b class='flag-5'>ESP32</b>

    nodemcu與matlab,關(guān)于ESP8266 NodeMcu和ESP32 DEV模塊兩者的區(qū)別

    什么是ESP32?ESP8266 Wi-Fi模塊是過去幾年中最受歡迎和最實(shí)用的模塊之一。市場(chǎng)上有這種模塊的各種版本。
    發(fā)表于 12-17 18:03 ?2次下載
    nodemcu與matlab,關(guān)于<b class='flag-5'>ESP</b>8266 NodeMcu和<b class='flag-5'>ESP32</b> DEV<b class='flag-5'>模塊</b>兩者的區(qū)別

    DIY ESP32模塊

    電子發(fā)燒友網(wǎng)站提供《DIY ESP32模塊.zip》資料免費(fèi)下載
    發(fā)表于 07-04 14:22 ?8次下載
    DIY <b class='flag-5'>ESP32</b><b class='flag-5'>模塊</b>

    如何使用Arduino IDE進(jìn)行ESP32雙核編程

    ESP 模塊因其 Wi-Fi 功能而廣受歡迎,例如ESP8266、ESP-12E等。這些都是具有 Wi-Fi 功能的強(qiáng)大微控制器模塊。還有一
    的頭像 發(fā)表于 08-18 17:20 ?2.6w次閱讀
    如何使用Arduino IDE進(jìn)行<b class='flag-5'>ESP32</b>雙核編程

    基于ESP32的智能LPG探測(cè)器

    本方案是基于 ESP32 的智能 LPG 探測(cè)器,使用 ESP RainMaker 生成電話警報(bào)通知的智能 LPG 檢漏儀設(shè)備。需求硬件樂鑫 ESP32-DevKit-DMQ6 - LPG 丙烷氣
    發(fā)表于 12-22 11:41 ?0次下載

    ESP32 GT U7 GPS模塊開源

    電子發(fā)燒友網(wǎng)站提供《ESP32 GT U7 GPS模塊開源.zip》資料免費(fèi)下載
    發(fā)表于 01-04 10:58 ?2次下載
    <b class='flag-5'>ESP32</b> GT U7 GPS<b class='flag-5'>模塊</b>開源

    LoRa模塊SX1278與ESP32結(jié)合使用的方法-上

    在本篇文章中,我們將學(xué)習(xí)如何將LoRa模塊SX1278與ESP32結(jié)合使用。在這里,我們將使用兩個(gè)LoRa模塊-一個(gè)連接到ESP32,另一個(gè)連接到Arduino開發(fā)板。
    的頭像 發(fā)表于 01-21 11:30 ?3322次閱讀
    LoRa<b class='flag-5'>模塊</b>SX1278與<b class='flag-5'>ESP32</b>結(jié)合使用的方法-上

    ESP32 PWM驅(qū)動(dòng)電機(jī)

    ESP32 尋跡模塊測(cè)試 尋跡模塊測(cè)試 所選設(shè)備 ESP32使用PWM 示例代碼 尋跡模塊測(cè)試 所選設(shè)備 ’
    發(fā)表于 03-20 11:37 ?2次下載
    <b class='flag-5'>ESP32</b> PWM驅(qū)動(dòng)電機(jī)

    ESP32ESP32通過Internet進(jìn)行通信

    電子發(fā)燒友網(wǎng)站提供《ESP32ESP32通過Internet進(jìn)行通信.zip》資料免費(fèi)下載
    發(fā)表于 06-15 09:58 ?4次下載
    <b class='flag-5'>ESP32</b>到<b class='flag-5'>ESP32</b>通過Internet進(jìn)行通信