Page 1 of 1

求助:esp32-c3工程中怎么创建多个freertos任务?

Posted: Tue Jan 11, 2022 1:34 pm
by wanzhilin88
ESP-IDF中给出的ESP32-C3的例程都只有一个任务。即void app_main()
而且没看见这个app_main任务是在哪里被创建的???
如果我想建一个ESP32-C3的多任务的工程该怎么实现呢?

如果芯片设置成ESP32(idf.py set-target esp32),可以用带有多任务创建的例程。也可以编译成功。
就是不知道当把芯片选成esp32-c3时怎么做。

请大佬帮忙指点下

Re: 求助:esp32-c3工程中怎么创建多个freertos任务?

Posted: Wed Jan 12, 2022 2:21 am
by ESP_ICY
创建任务就按正常的 freeRTOS 的创建方式来就行了,没有什么特殊的,和芯片没什么关系,你既然可以使用 32 创建多任务,C3也是一样的创建方法。这个需要你要去了解 freeRTOS 的相关基础知识,然后复杂一点的例程里都会涉及到事件啊,多任务的之类的,你仔细看一下

Re: 求助:esp32-c3工程中怎么创建多个freertos任务?

Posted: Wed Jan 12, 2022 3:01 am
by wanzhilin88
好的,多谢啦!

Re: 求助:esp32-c3工程中怎么创建多个freertos任务?

Posted: Wed Jan 12, 2022 3:34 am
by wanzhilin88
您好!
想再请教程个问题。
例程中没有看见用xTaskCreate()来创建app_main()这个任务,

Re: 求助:esp32-c3工程中怎么创建多个freertos任务?

Posted: Wed Jan 12, 2022 3:43 am
by wanzhilin88
您好!
想再请教些问题,先谢谢啦!
在我使用的这个例程中没有看见程序使用xTaskCreate()函数来创建任务,但是app_main()任务却可以运行。
我想请教一下,
1.那app_main()这个任务是在什么时候被创建的呢?
2.如果我在app_main任务里创建多个任务的时候,任务优先级该怎么设置?(app_main任务的优先级是多少还不知道)
3.如果我在app_main任务里创建好自己的任务后,再把app_main任务删除掉(使用vTaskDelete(NULL))对整个工程的运行会不会有什么影响?

Re: 求助:esp32-c3工程中怎么创建多个freertos任务?

Posted: Mon Jan 17, 2022 12:32 pm
by ESP_ICY
https://docs.espressif.com/projects/esp ... s.html#id4 如果你对 app main 感兴趣,可以仔细阅读这一部分,
1.app_main()在bootloader阶段被创建
2.优先级在menuconfig里设置
3.直接return就结束task了