2024-03-28 12:19:52 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* @file main.c
|
|
|
|
|
|
* @author LokLiang
|
|
|
|
|
|
* @brief 根据实际平台启动并初始化,用户 APP 入口为 void work_app_main(void *arg)
|
|
|
|
|
|
* @version 0.1
|
|
|
|
|
|
* @date 2023-11-24
|
|
|
|
|
|
*
|
|
|
|
|
|
* @copyright Copyright (c) 2023
|
|
|
|
|
|
*
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
2025-02-13 17:17:07 +08:00
|
|
|
|
#include "os_entry.h"
|
2024-03-28 12:19:52 +08:00
|
|
|
|
#include "app_main.h"
|
|
|
|
|
|
|
|
|
|
|
|
#include "ota.h"
|
|
|
|
|
|
#include "nvs_flash.h"
|
|
|
|
|
|
#include "esp_err.h"
|
|
|
|
|
|
|
|
|
|
|
|
static void _init_prev_nvs(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
esp_err_t err = nvs_flash_init();
|
|
|
|
|
|
if (err == ESP_ERR_NVS_NO_FREE_PAGES || err == ESP_ERR_NVS_NEW_VERSION_FOUND)
|
|
|
|
|
|
{
|
|
|
|
|
|
// OTA app partition table has a smaller NVS partition size than the
|
|
|
|
|
|
// non-OTA partition table. This size mismatch may cause NVS
|
|
|
|
|
|
// initialization to fail. If this happens, we erase NVS partition and
|
|
|
|
|
|
// initialize NVS again.
|
|
|
|
|
|
ESP_ERROR_CHECK(nvs_flash_erase());
|
|
|
|
|
|
err = nvs_flash_init();
|
|
|
|
|
|
}
|
|
|
|
|
|
ESP_ERROR_CHECK(err);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int app_main(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
/* ota */
|
|
|
|
|
|
ota_partition_check();
|
|
|
|
|
|
|
|
|
|
|
|
/* 初始化平台相关 */
|
|
|
|
|
|
_init_prev_nvs();
|
|
|
|
|
|
|
|
|
|
|
|
/* 初始化 os 抽象层 */
|
2025-02-13 17:17:07 +08:00
|
|
|
|
extern void work_app_main(void *arg);
|
|
|
|
|
|
return os_entry(work_app_main);
|
2024-03-28 12:19:52 +08:00
|
|
|
|
}
|