#include "app_main.h" /* 标准库 */ #include #include #include /* 配置 */ #include "config/board_config.h" #include "config/app_config.h" #include "config/app_log.h" /* SDK */ #include "esp_err.h" #include "hal/spi_types.h" #include "spbelib_interface.h" #include "lib_shell.h" #include "ota.h" /* 驱动 */ #include "drivers/ws2812_spi/ws2812_spi.h" #include "drivers/ws2812_spi/ws2812_spi_shell.h" #include "drivers/sertrf/sertrf.h" /* 通用模块 */ #include "button/button.h" /* 应用模块 */ /* 自定义框架抽象层 */ #include "os/os.h" #include "os/os_common.h" #include "console.h" #include "shell/sh_vset.h" #define CONFIG_SYS_LOG_LEVEL SYS_LOG_LEVEL_INF #define SYS_LOG_DOMAIN "MAIN" #include "sys_log.h" nvs_handle g_nvs_hdl; // nvs 句柄 os_work_q_t g_work_q_hdl_low; // 低于 default_os_work_q_hdl 优先级的工作队列 static void _init_nvs(void); static void _vset_cb(sh_t *sh_hdl); void work_app_main(void *arg) { /* 初始化 SDK 的 nvs 模块 */ _init_nvs(); /* 初始化配置 */ board_cfg_init(); // 板级配置 app_cfg_init(); // 应用配置 app_log_init(); // 应用记录 // /* 初始化 OTA 功能*/ // ota_partition_check(); // /* 初始化 ws2812 */ // _init_ws2812(); // ws2812_spi_shell_register(); // 用于测试 ws2812 的 shell 命令 // /* 启动静态库功能 */ // sblib_init(SBLIB_INIT_ADAPTER); // lib_shell_register(); // 静态库接口命令 /* 初始化按键检测和控制 */ // btn_attach(&g_cfg_board->key_reset, _change_mode_event_button, EVENT_PRESS_UP | EVENT_PRESS_DOWN | EVENT_LONG_PRESS_HOLD); sertrf_init(); /* 启动 shell */ os_thread_sleep(100); shell_start(_vset_cb); SYS_LOG_DBG("app start"); } static void _init_nvs(void) { #define _NVS_NAME "nvs-app" if (g_nvs_hdl == 0) { ESP_ERROR_CHECK(nvs_open(_NVS_NAME, NVS_READWRITE, &g_nvs_hdl)); } } static void _vset_cb(sh_t *sh_hdl) { } // 导出符号,供 linker script 使用 // #include "utils/sb_aes.h" // #include "drivers/data_port/sb_data_port.h" // #include "drivers/data_port/uart/uart_port.h" // #if defined(CONFIG_BUILD_BLE) // #include "drivers/data_port/ble_spp/ble_spp_server.h" // #endif // #if defined(CONFIG_BUILD_WIFI) // #include "drivers/data_port/socket_inet/socket_inet.h" // #endif // #if defined(CONFIG_IDF_TARGET_ESP32S3) // #include "drivers/data_port/usb-host/usbport.h" // #endif // void _exporter_reference_symbols(void) // { // btn_attach(NULL, NULL, 0); // sb_aes_init(); // sb_data_port_start(NULL); // sb_uart_port_init(); // sh_init_vt100(NULL, NULL, NULL); // shell_start(NULL); // ws2812_spi_led_strip_init(0, 0); // #if defined(CONFIG_BUILD_BLE) // sb_ble_server_port_init(NULL); // #endif // #if defined(CONFIG_BUILD_WIFI) // socket_inet_init(); // #endif // #if defined(CONFIG_IDF_TARGET_ESP32S3) // usbport_init(); // #endif // }