ESP32开发(2)--启动过程

本文详细介绍了ESP32启动过程中的三个主要步骤:加载bootloader、加载映像及执行main_task()函数。其中,main_task()函数内包含了禁用启动看门狗、等待FreeRTOS初始化完成以及调用app_main()等关键操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ESP32的启动过程分为三步,加载bootloader,加载映像等,执行main_task()。

omponents/esp32/cpu_start.c

static void main_task(void* args)
{
    // Now that the application is about to start, disable boot watchdogs
    REG_CLR_BIT(TIMG_WDTCONFIG0_REG(0), TIMG_WDT_FLASHBOOT_MOD_EN_S);
    REG_CLR_BIT(RTC_CNTL_WDTCONFIG0_REG, RTC_CNTL_WDT_FLASHBOOT_MOD_EN);
#if !CONFIG_FREERTOS_UNICORE
    // Wait for FreeRTOS initialization to finish on APP CPU, before replacing its startup stack
    while (port_xSchedulerRunning[1] == 0) {
        ;
    }
#endif
    //Enable allocation in region where the startup stacks were located.
    heap_caps_enable_nonos_stack_heaps();
    app_main();
    vTaskDelete(NULL);
    
}
这其中的app_main()就是我们二次开发的入口。在app_main执行后,vTaskDelet函数就将这个任务删除了。

整个ESP-DIF是基于Freertos的,在app_main()中可以创建任务等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值