diff --git a/app/config/board_config.c b/app/config/board_config.c index ef8212e..6e3af64 100644 --- a/app/config/board_config.c +++ b/app/config/board_config.c @@ -7,21 +7,8 @@ #define CONS_ABORT() #include "sys_log.h" -static cfg_board_t const s_cfg_board_default = { - /* 控制台串口 */ - .uart_console = { - .pin_txd = {43, _GPIO_DIR_OUT, _GPIO_PUD_PULL_UP}, - .pin_rxd = {44, _GPIO_DIR_IN, _GPIO_PUD_PULL_UP}, - .id = UART_NUM_0, - .irq_prior = 0, - .br = 115200, - }, - - /* 启动按键 */ - .key_boot = { - .pin = 0, // 用于切换灯效 - .en_lev = 0, // 用于切换灯效 - }, -}; +#include "board_config/devkit_esp32c2.h" +#include "board_config/devkit_esp32c3.h" +#include "board_config/devkit_esp32s3.h" const cfg_board_t *g_cfg_board = &s_cfg_board_default; diff --git a/app/config/board_config/bec_led_strip_esp32c3.h b/app/config/board_config/bec_led_strip_esp32c3.h deleted file mode 100644 index 3365542..0000000 --- a/app/config/board_config/bec_led_strip_esp32c3.h +++ /dev/null @@ -1,40 +0,0 @@ -#if (CONFIG_BOARD_NAME_BEC_LED_STRIP_ESP32C3) - -#define CONFIG_IDF_TARGET "esp32c3" /* 警告:请使用命令 idf.py set-target <参数> 选择对应的平台 */ - -static cfg_board_t const s_cfg_board_default = { - .firmware_str = PRODUCT_TYPE, - .platform_str = CONFIG_IDF_TARGET, - .board_name = "bec_led_strip_esp32c3", - - /* 控制台串口 */ - .uart_console = { - .pin_txd = {43, _GPIO_DIR_OUT, _GPIO_PUD_PULL_UP}, - .pin_rxd = {44, _GPIO_DIR_IN, _GPIO_PUD_PULL_UP}, - .id = UART_NUM_0, - .irq_prior = 0, - .br = 115200, - }, - - /* 数据透传串口 */ - .uart_fc = { - .pin_txd = {3, _GPIO_DIR_OUT, _GPIO_PUD_PULL_UP}, - .pin_rxd = {5, _GPIO_DIR_IN, _GPIO_PUD_PULL_UP}, - .id = UART_NUM_1, - .irq_prior = 24, - .br = 115200, - }, - - .led_spi = { - .spi_id = SPI2_HOST, // 模拟 PWM 用的 SPI - .pin = 18, // 模拟 PWM 输出引脚 - }, - - /* 启动按键 */ - .key_boot = { - .pin = 7, // 用于切换灯效 - .en_lev = 1, // 用于切换灯效 - }, -}; - -#endif diff --git a/app/config/board_config/devkit_esp32c2.h b/app/config/board_config/devkit_esp32c2.h index 6b88bce..a2c27ea 100644 --- a/app/config/board_config/devkit_esp32c2.h +++ b/app/config/board_config/devkit_esp32c2.h @@ -3,10 +3,6 @@ #define CONFIG_IDF_TARGET "esp32c2" /* 警告:请使用命令 idf.py set-target <参数> 选择对应的平台 */ static cfg_board_t const s_cfg_board_default = { - .firmware_str = PRODUCT_TYPE, - .platform_str = CONFIG_IDF_TARGET, - .board_name = "devkit_esp32c2", - /* 控制台串口 */ .uart_console = { .pin_txd = {43, _GPIO_DIR_OUT, _GPIO_PUD_PULL_UP}, @@ -16,20 +12,6 @@ static cfg_board_t const s_cfg_board_default = { .br = 115200, }, - /* 数据透传串口 */ - .uart_fc = { - .pin_txd = {7, _GPIO_DIR_OUT, _GPIO_PUD_PULL_UP}, - .pin_rxd = {6, _GPIO_DIR_IN, _GPIO_PUD_PULL_UP}, - .id = UART_NUM_1, - .irq_prior = 24, - .br = 115200, - }, - - .led_spi = { - .spi_id = SPI2_HOST, // 模拟 PWM 用的 SPI - .pin = 1, // 模拟 PWM 输出引脚 - }, - /* 启动按键 */ .key_boot = { .pin = 9, // 用于切换灯效 diff --git a/app/config/board_config/devkit_esp32c3.h b/app/config/board_config/devkit_esp32c3.h index fdcee61..9b07f22 100644 --- a/app/config/board_config/devkit_esp32c3.h +++ b/app/config/board_config/devkit_esp32c3.h @@ -3,10 +3,6 @@ #define CONFIG_IDF_TARGET "esp32c3" /* 警告:请使用命令 idf.py set-target <参数> 选择对应的平台 */ static cfg_board_t const s_cfg_board_default = { - .firmware_str = PRODUCT_TYPE, - .platform_str = CONFIG_IDF_TARGET, - .board_name = "devkit_esp32c3", - /* 控制台串口 */ .uart_console = { .pin_txd = {43, _GPIO_DIR_OUT, _GPIO_PUD_PULL_UP}, @@ -16,20 +12,6 @@ static cfg_board_t const s_cfg_board_default = { .br = 115200, }, - /* 数据透传串口 */ - .uart_fc = { - .pin_txd = {7, _GPIO_DIR_OUT, _GPIO_PUD_PULL_UP}, - .pin_rxd = {6, _GPIO_DIR_IN, _GPIO_PUD_PULL_UP}, - .id = UART_NUM_1, - .irq_prior = 24, - .br = 115200, - }, - - .led_spi = { - .spi_id = SPI2_HOST, // 模拟 PWM 用的 SPI - .pin = 10, // 模拟 PWM 输出引脚 - }, - /* 启动按键 */ .key_boot = { .pin = 9, // 用于切换灯效 diff --git a/app/config/board_config/devkit_esp32s3.h b/app/config/board_config/devkit_esp32s3.h new file mode 100644 index 0000000..6e666ef --- /dev/null +++ b/app/config/board_config/devkit_esp32s3.h @@ -0,0 +1,22 @@ +#if (CONFIG_BOARD_NAME_DEVKIT_ESP32S3) + +#define CONFIG_IDF_TARGET "esp32s3" /* 警告:请使用命令 idf.py set-target <参数> 选择对应的平台 */ + +static cfg_board_t const s_cfg_board_default = { + /* 控制台串口 */ + .uart_console = { + .pin_txd = {255, _GPIO_DIR_OUT, _GPIO_PUD_PULL_UP}, + .pin_rxd = {255, _GPIO_DIR_IN, _GPIO_PUD_PULL_UP}, + .id = UART_NUM_0, + .irq_prior = 0, + .br = 115200, + }, + + /* 启动按键 */ + .key_boot = { + .pin = 0, // 用于切换灯效 + .en_lev = 0, // 用于切换灯效 + }, +}; + +#endif diff --git a/app/config/board_config/fixedwing_new.h b/app/config/board_config/fixedwing_new.h deleted file mode 100644 index 2ef6f39..0000000 --- a/app/config/board_config/fixedwing_new.h +++ /dev/null @@ -1,40 +0,0 @@ -#if (CONFIG_BOARD_NAME_FIXEDWING_NEW) - -#define CONFIG_IDF_TARGET "esp32c2" /* 警告:请使用命令 idf.py set-target <参数> 选择对应的平台 */ - -static cfg_board_t const s_cfg_board_default = { - .firmware_str = PRODUCT_TYPE, - .platform_str = CONFIG_IDF_TARGET, - .board_name = "fixedwing_new", - - /* 控制台串口 */ - .uart_console = { - .pin_txd = {43, _GPIO_DIR_OUT, _GPIO_PUD_PULL_UP}, - .pin_rxd = {44, _GPIO_DIR_IN, _GPIO_PUD_PULL_UP}, - .id = UART_NUM_0, - .irq_prior = 0, - .br = 115200, - }, - - /* 数据透传串口 */ - .uart_fc = { - .pin_txd = {7, _GPIO_DIR_OUT, _GPIO_PUD_PULL_UP}, - .pin_rxd = {6, _GPIO_DIR_IN, _GPIO_PUD_PULL_UP}, - .id = UART_NUM_1, - .irq_prior = 24, - .br = 115200, - }, - - .led_spi = { - .spi_id = SPI2_HOST, // 模拟 PWM 用的 SPI - .pin = 1, // 模拟 PWM 输出引脚 - }, - - /* 启动按键 */ - .key_boot = { - .pin = 3, // 用于切换灯效 - .en_lev = 1, // 用于切换灯效 - }, -}; - -#endif diff --git a/app/config/board_config/fixedwing_old.h b/app/config/board_config/fixedwing_old.h deleted file mode 100644 index 03b6d80..0000000 --- a/app/config/board_config/fixedwing_old.h +++ /dev/null @@ -1,40 +0,0 @@ -#if (CONFIG_BOARD_NAME_FIXEDWING_OLD) - -#define CONFIG_IDF_TARGET "esp32c2" /* 警告:请使用命令 idf.py set-target <参数> 选择对应的平台 */ - -static cfg_board_t const s_cfg_board_default = { - .firmware_str = PRODUCT_TYPE, - .platform_str = CONFIG_IDF_TARGET, - .board_name = "fixedwing_old", - - /* 控制台串口 */ - .uart_console = { - .pin_txd = {43, _GPIO_DIR_OUT, _GPIO_PUD_PULL_UP}, - .pin_rxd = {44, _GPIO_DIR_IN, _GPIO_PUD_PULL_UP}, - .id = UART_NUM_0, - .irq_prior = 0, - .br = 115200, - }, - - /* 数据透传串口 */ - .uart_fc = { - .pin_txd = {8, _GPIO_DIR_OUT, _GPIO_PUD_PULL_UP}, - .pin_rxd = {7, _GPIO_DIR_IN, _GPIO_PUD_PULL_UP}, - .id = UART_NUM_1, - .irq_prior = 24, - .br = 115200, - }, - - .led_spi = { - .spi_id = SPI2_HOST, // 模拟 PWM 用的 SPI - .pin = 1, // 模拟 PWM 输出引脚 - }, - - /* 启动按键 */ - .key_boot = { - .pin = 3, // 用于切换灯效 - .en_lev = 1, // 用于切换灯效 - }, -}; - -#endif diff --git a/app/config/version.h b/app/config/version.h new file mode 100644 index 0000000..6dd476b --- /dev/null +++ b/app/config/version.h @@ -0,0 +1,35 @@ +#pragma once + +/* MCU 平台 */ +#define DEVICE_TYPE CONFIG_IDF_TARGET + +/* 固件版本号 */ +#if (CONFIG_PRODUCT_ID_DEV) + +#define PRODUCT_ID "SB-DEV" + +#define BOARD_CONFIG_DATA_VER 0x0101 /* 对应 cfg_board_t::version */ +#define APP_CONFIG_DATA_VER 0 /* 对应 cfg_app_t::version */ +#define LEDSTRIP_CONFIG_DATA_VER 0x00000001 /* 对应 cfg_led_strip_t ::version */ + +#define FW_VERSION_MAIN 0 +#define FW_VERSION_MINOR 0 +#define FW_VERSION_BUILD 1 + +#elif (CONFIG_PRODUCT_ID_SBLED1) + +#define PRODUCT_ID "SBLED1" + +#define BOARD_CONFIG_DATA_VER 0x0101 /* 对应 cfg_board_t::version */ +#define APP_CONFIG_DATA_VER 0 /* 对应 cfg_app_t::version */ +#define LEDSTRIP_CONFIG_DATA_VER 0x00000001 /* 对应 cfg_led_strip_t ::version */ + +#define FW_VERSION_MAIN 6 +#define FW_VERSION_MINOR 1 +#define FW_VERSION_BUILD 2 + +#else +#error 未定义配置 +#endif + +#include "./version_build.h" diff --git a/app/led_strip/Kconfig b/app/led_strip/Kconfig new file mode 100644 index 0000000..a0790b1 --- /dev/null +++ b/app/led_strip/Kconfig @@ -0,0 +1,13 @@ +config LED_STRIP_MAX_LEDS + depends on CAP_LED_STRIP + int "最大灯珠数" + range 1 164 + default 88 + +config LED_STRIP_DEFAULT_LEDS + depends on CAP_LED_STRIP + int "默认灯珠数" + range 1 LED_STRIP_MAX_LEDS + default LED_STRIP_MAX_LEDS + + diff --git a/main/Kconfig.projbuild b/main/Kconfig.projbuild new file mode 100644 index 0000000..80c1036 --- /dev/null +++ b/main/Kconfig.projbuild @@ -0,0 +1,51 @@ +menu "APP 配置" + + # 已有开发板 + choice BOARD_NAME + bool "选择开发板的固定硬件配置" + default BOARD_NAME_DEVKIT_ESP32C3 + help + 这些配置仅方便于开发时,根据实际配置打印相应的二进制数据,以便于生成合并到量产包的文件。 + 在量产的产品中由于已存在有效的配置数据,这些选项不影响实际产品。 + + config BOARD_NAME_DEVKIT_ESP32C2 + bool "ESP32C2 开发板" + + config BOARD_NAME_DEVKIT_ESP32C3 + bool "ESP32C3 开发板" + + config BOARD_NAME_DEVKIT_ESP32S3 + bool "ESP32S3 开发板" + endchoice + + # 选择产品描述符 + choice PRODUCT_ID + bool "选择产品描述符" + default PRODUCT_ID_DEV + help + 六个字符的唯一产品标识,在手机 APP 端连接时的识别符 + 手机 APP 根据此识别符确定该产品功能 + + config PRODUCT_ID_DEV + bool "识别号: SB-DEV 开发中" + help + 未定义的具体产品描述符 + endchoice + + menuconfig CAP_LED_STRIP + depends on PRODUCT_ID_DEV || PRODUCT_ID_SBLED1 + bool "编译灯带模块" + default n + rsource "../app/led_strip/Kconfig" + + config BUILD_BLE + bool "编译BLE模块" + default y + + config BUILD_WIFI + bool "编译WIFI模块" + default y if PRODUCT_ID_SBFWC2 + default n + +endmenu +