smallin/my-background

1.0.2

Latest
uploaded 5 days ago
一个后台管理任务组件

readme

# my-background

一个后台管理任务,主要是消除在ESP32等平台上由于创建任务造成的内存浪费、进程切换开销。

## 功能
- 调试支持
    1. 打印最大后台运行任务数量;
    2. 打印系统中各任务信息(需配置开启 USE_STATS_FORMATTING_FUNCTIONS 选项)
- 调度任务至后台运行
    1. 支持无参数任务;
    2. 支持含参数任务;


## To do
1. 将打印其他任务的信息做成另一个组件;

## 示例
```cpp
#include "sdkconfig.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"

#include "esp_log.h"
#include "my_led.h"
#include "my_background.h"

#define TAG "MAIN"

extern "C" void app_main(void)
{
    MyLed led12(GPIO_NUM_12);
    MyLed led13(GPIO_NUM_13);

    led12.StartContinuousBlink();


    led13.EnableBrightnessAdjust(true, LEDC_CHANNEL_1, LEDC_TIMER_1);
    // led13.StartContinuousBlink(500);
    led13.SetBrightness(7);
    auto& background = MyBackground::GetInstance();
    int size=0;

    while(1) {
        background.Schedule([](){
            ESP_LOGE(TAG, "Run in background");
        });
        background.Schedule([](void* arg){
                ESP_LOGW(TAG, "size=%d", *static_cast<int*>(arg));
            }, 
            &size
        );
        vTaskDelay(pdMS_TO_TICKS(10*1000));
        led13.SetBrightness(0);
        led12.TurnOn();
        size++;
    }
}
```

Links

Supports all targets

License: Apache 2.0

To add this component to your project, run:

idf.py add-dependency "smallin/my-background^1.0.2"

download archive

Stats

  • Archive size
    Archive size ~ 5.43 KB
  • Downloaded in total
    Downloaded in total 0 times
  • Downloaded this version
    This version: 0 times

Badge

smallin/my-background version: 1.0.2
|