feat(cproject): 重构项目文件结构并添加EtherCAT通信支持
- 将设备相关文件重新组织为device/spi和comm分组 - 添加EtherCAT从站通信模块(esc_exmc_bus、esc_lan9252、ethercat_slave等) - 添加EXMC外设组件支持 - 统一文件命名规范为小写 refactor(canfd): 优化CANFD模块中断安全性和配置方式 - 替换自定义临界区函数为RT_CRITICAL_SAVE/RESTORE宏 - 使用配置常量CONFIG_IRQ_PREEMPT_CAN替代硬编码值 - 简化邮箱满时的处理逻辑,移除不必要的SysTick等待 - 移除废弃的中断保存头文件引用 refactor(timer): 更新定时器配置以使用配置常量 - 修复头文件包含路径大小写问题 - 使用CONFIG_NVIC_PRIORITY_GROUP配置项替代硬编码值
This commit is contained in:
@@ -102,9 +102,13 @@
|
||||
#define CONFIG_TASK_PERIOD_HEARTBEAT_TICKS 10000U
|
||||
|
||||
/** @brief 周期温度/电压 UART 打印开关:0=关闭,1=开启。 */
|
||||
#define CONFIG_UART_TEMP_PERIODIC_PRINT 1
|
||||
#define CONFIG_UART_TEMP_PERIODIC_PRINT 0
|
||||
/** @brief UART 诊断打印级别:0=仅温度/电压,1=温度/电压+CAN 统计。 */
|
||||
#define CONFIG_UART_DIAG_LEVEL 1
|
||||
/** @brief SPI 命令逐帧日志开关:0=关闭,1=开启。高速 CAN 桥接时应关闭。 */
|
||||
#define CONFIG_SPI_APP_LOG_ENABLE 0
|
||||
/** @brief CAN_SEND 成功帧详细日志开关:0=关闭,1=开启。开启会显著影响高速传输。 */
|
||||
#define CONFIG_SPI_CAN_SEND_VERBOSE_LOG 0
|
||||
|
||||
|
||||
/** @brief FWDGT 独立看门狗预分频值。 */
|
||||
@@ -123,11 +127,11 @@
|
||||
/** @brief APP 主版本号。 */
|
||||
#define APP_FW_VERSION_MAJOR 1U
|
||||
/** @brief APP 次版本号。 */
|
||||
#define APP_FW_VERSION_MINOR 0U
|
||||
#define APP_FW_VERSION_MINOR 1U
|
||||
/** @brief APP 补丁版本号。 */
|
||||
#define APP_FW_VERSION_PATCH 1U
|
||||
#define APP_FW_VERSION_PATCH 0U
|
||||
/** @brief APP 构建编号。 */
|
||||
#define APP_FW_VERSION_BUILD 2U
|
||||
#define APP_FW_VERSION_BUILD 0U
|
||||
|
||||
/* ============================================================
|
||||
* BOOT 版本在 OTA 配置页中的 Flash 存储地址
|
||||
@@ -142,4 +146,116 @@
|
||||
/** @brief OTA 配置页总 word 数(6 个 OTA 标志 + 2 个 BOOT 版本)。 */
|
||||
#define CONFIG_OTA_CONFIG_WORD_COUNT 8U
|
||||
|
||||
/* ============================================================
|
||||
* NVIC 优先级分组与中断优先级分层
|
||||
* (EtherCAT 实时架构改造:PRE4_SUB0,4 位抢占优先级)
|
||||
* ============================================================ */
|
||||
/** @brief NVIC 优先级分组:4 位抢占 + 0 位子优先级。 */
|
||||
#define CONFIG_NVIC_PRIORITY_GROUP NVIC_PRIGROUP_PRE4_SUB0
|
||||
|
||||
/** @brief EtherCAT SYNC0 周期中断抢占优先级(最高,永不被阻塞)。 */
|
||||
#define CONFIG_IRQ_PREEMPT_ETHERCAT_SYNC 0U
|
||||
/** @brief 调度器定时器抢占优先级。 */
|
||||
#define CONFIG_IRQ_PREEMPT_SCHED 1U
|
||||
/** @brief CAN RX0 抢占优先级。 */
|
||||
#define CONFIG_IRQ_PREEMPT_CAN 2U
|
||||
/** @brief EtherCAT ESC 事件中断抢占优先级(可被 SYNC0 抢占)。 */
|
||||
#define CONFIG_IRQ_PREEMPT_ETHERCAT_ESC 1U
|
||||
/** @brief EtherCAT SYNC1 备用抢占优先级。 */
|
||||
#define CONFIG_IRQ_PREEMPT_ETHERCAT_SYNC1 1U
|
||||
/** @brief SPI / EXTI / USART 抢占优先级(最低)。 */
|
||||
#define CONFIG_IRQ_PREEMPT_SPI_USART 3U
|
||||
|
||||
/* ============================================================
|
||||
* 主循环与实时策略
|
||||
* ============================================================ */
|
||||
/** @brief 主循环 WFI 开关:0=关闭(忙等,适配 EtherCAT),1=开启(省电)。 */
|
||||
#define CONFIG_MAIN_LOOP_WFI_ENABLE 0
|
||||
|
||||
/* ============================================================
|
||||
* EtherCAT LAN9252 使能与配置
|
||||
* ============================================================ */
|
||||
/** @brief EtherCAT 使能开关:0=禁用(未焊接 LAN9252),1=启用(焊接后)。
|
||||
* 禁用时 comm/ 全部代码不编译,初始化不调用 EtherCAT,EXMC/EXTI0-2 不配置。 */
|
||||
#define CONFIG_ETHERCAT_ENABLE 0
|
||||
|
||||
/** @brief SYNC0 同步模式:0=EXTI 外部触发(ESC 硬件同步,默认),1=TIMER0 降级(DC 未同步时)。 */
|
||||
#define CONFIG_ETHERCAT_SYNC_MODE 0
|
||||
|
||||
/* ---------- EXMC 引脚配置(GD32E508 EXMC 标准映射) ---------- */
|
||||
/** @brief EXMC NOR/SRAM Region1 基址(NE1 片选)。 */
|
||||
#define CONFIG_ESC_EXMC_BASE_ADDR 0x60000000U
|
||||
/** @brief EXMC BANK 选择(BANK0 Region1)。
|
||||
* @note EXMC 库未纳入编译时回退为 0U;启用 EtherCAT 时 EXMC 组件将被引入。 */
|
||||
#ifdef EXMC_BANK0_NORSRAM_REGION1
|
||||
#define CONFIG_ESC_EXMC_BANK_NOR_SRAM_REGION1 EXMC_BANK0_NORSRAM_REGION1
|
||||
#else
|
||||
#define CONFIG_ESC_EXMC_BANK_NOR_SRAM_REGION1 0U
|
||||
#endif
|
||||
|
||||
/* ---------- ESC 中断引脚(PB0/PB1/PB2,三个独立 EXTI 向量) ---------- */
|
||||
/** @note 保留 PA0 给未来 STANDBY 模式唤醒(WKUP_PIN0)。 */
|
||||
#define CONFIG_ESC_SYNC0_PORT GPIOB
|
||||
#define CONFIG_ESC_SYNC0_PIN GPIO_PIN_0
|
||||
#define CONFIG_ESC_SYNC0_EXTI EXTI_0
|
||||
#define CONFIG_ESC_SYNC0_IRQn EXTI0_IRQn
|
||||
#define CONFIG_ESC_SYNC0_EXTI_SOURCE_PORT GPIO_PORT_SOURCE_GPIOB
|
||||
#define CONFIG_ESC_SYNC0_EXTI_SOURCE_PIN GPIO_PIN_SOURCE_0
|
||||
|
||||
#define CONFIG_ESC_IRQ_PORT GPIOB
|
||||
#define CONFIG_ESC_IRQ_PIN GPIO_PIN_1
|
||||
#define CONFIG_ESC_IRQ_EXTI EXTI_1
|
||||
#define CONFIG_ESC_IRQ_IRQn EXTI1_IRQn
|
||||
#define CONFIG_ESC_IRQ_EXTI_SOURCE_PORT GPIO_PORT_SOURCE_GPIOB
|
||||
#define CONFIG_ESC_IRQ_EXTI_SOURCE_PIN GPIO_PIN_SOURCE_1
|
||||
|
||||
#define CONFIG_ESC_SYNC1_PORT GPIOB
|
||||
#define CONFIG_ESC_SYNC1_PIN GPIO_PIN_2
|
||||
#define CONFIG_ESC_SYNC1_EXTI EXTI_2
|
||||
#define CONFIG_ESC_SYNC1_IRQn EXTI2_IRQn
|
||||
#define CONFIG_ESC_SYNC1_EXTI_SOURCE_PORT GPIO_PORT_SOURCE_GPIOB
|
||||
#define CONFIG_ESC_SYNC1_EXTI_SOURCE_PIN GPIO_PIN_SOURCE_2
|
||||
|
||||
/* ---------- EXMC 数据/控制线引脚(GD32E508 标准映射) ---------- */
|
||||
#define CONFIG_EXMC_D0_PORT GPIOD
|
||||
#define CONFIG_EXMC_D0_PIN GPIO_PIN_14
|
||||
#define CONFIG_EXMC_D1_PORT GPIOD
|
||||
#define CONFIG_EXMC_D1_PIN GPIO_PIN_15
|
||||
#define CONFIG_EXMC_D2_PORT GPIOD
|
||||
#define CONFIG_EXMC_D2_PIN GPIO_PIN_0
|
||||
#define CONFIG_EXMC_D3_PORT GPIOD
|
||||
#define CONFIG_EXMC_D3_PIN GPIO_PIN_1
|
||||
#define CONFIG_EXMC_D4_PORT GPIOE
|
||||
#define CONFIG_EXMC_D4_PIN GPIO_PIN_7
|
||||
#define CONFIG_EXMC_D5_PORT GPIOE
|
||||
#define CONFIG_EXMC_D5_PIN GPIO_PIN_8
|
||||
#define CONFIG_EXMC_D6_PORT GPIOE
|
||||
#define CONFIG_EXMC_D6_PIN GPIO_PIN_9
|
||||
#define CONFIG_EXMC_D7_PORT GPIOE
|
||||
#define CONFIG_EXMC_D7_PIN GPIO_PIN_10
|
||||
#define CONFIG_EXMC_D8_PORT GPIOE
|
||||
#define CONFIG_EXMC_D8_PIN GPIO_PIN_11
|
||||
#define CONFIG_EXMC_D9_PORT GPIOE
|
||||
#define CONFIG_EXMC_D9_PIN GPIO_PIN_12
|
||||
#define CONFIG_EXMC_D10_PORT GPIOE
|
||||
#define CONFIG_EXMC_D10_PIN GPIO_PIN_13
|
||||
#define CONFIG_EXMC_D11_PORT GPIOE
|
||||
#define CONFIG_EXMC_D11_PIN GPIO_PIN_14
|
||||
#define CONFIG_EXMC_D12_PORT GPIOE
|
||||
#define CONFIG_EXMC_D12_PIN GPIO_PIN_15
|
||||
#define CONFIG_EXMC_D13_PORT GPIOD
|
||||
#define CONFIG_EXMC_D13_PIN GPIO_PIN_8
|
||||
#define CONFIG_EXMC_D14_PORT GPIOD
|
||||
#define CONFIG_EXMC_D14_PIN GPIO_PIN_9
|
||||
#define CONFIG_EXMC_D15_PORT GPIOD
|
||||
#define CONFIG_EXMC_D15_PIN GPIO_PIN_10
|
||||
#define CONFIG_EXMC_A16_PORT GPIOD
|
||||
#define CONFIG_EXMC_A16_PIN GPIO_PIN_11
|
||||
#define CONFIG_EXMC_NOE_PORT GPIOD
|
||||
#define CONFIG_EXMC_NOE_PIN GPIO_PIN_4
|
||||
#define CONFIG_EXMC_NWE_PORT GPIOD
|
||||
#define CONFIG_EXMC_NWE_PIN GPIO_PIN_5
|
||||
#define CONFIG_EXMC_NE1_PORT GPIOD
|
||||
#define CONFIG_EXMC_NE1_PIN GPIO_PIN_7
|
||||
|
||||
#endif /* SYS_CONFIG_H */
|
||||
|
||||
Reference in New Issue
Block a user