feat(device): 添加早期诊断功能并优化SPI通信实现
- 在startup_gd32e50x_cl.s中添加USART0早期诊断代码,在Reset_Handler中 发送'R'字符以确认启动过程 - 修改system_gd32e50x.c中的时钟初始化逻辑,支持动态检测当前时钟源 (PLL或IRC8M)并相应调整串口波特率设置 - 在系统时钟配置函数中添加HXTAL故障诊断输出,当外部晶振启动失败时 通过USART0输出"HXTAL FAIL"错误信息 - 在AppSpiCommand类中实现DMA传输机制,使用DMA0_CH2进行SPI0数据发送, 提升传输效率并与BOOT端保持一致 - 重构SPI命令处理逻辑,优化PING命令响应格式,包含APP和BOOT版本信息 以及运行时间统计 - 添加事务过滤机制,忽略全0xFF或全0x00的数据包以及短帧 - 更新配置文件定义APP固件版本号和OTA配置页面地址 - 修复region配置文件中的ROM大小数值精度问题 - 调整NVIC中断优先级设置,优化SPI中断处理
This commit is contained in:
@@ -48,8 +48,8 @@ static bool otaConfigSet(uint32_t targetAddr, uint32_t value)
|
||||
return writeWord(targetAddr, value);
|
||||
}
|
||||
|
||||
uint32_t words[6];
|
||||
for(uint32_t i = 0U; i < 6U; ++i) {
|
||||
uint32_t words[CONFIG_OTA_CONFIG_WORD_COUNT];
|
||||
for(uint32_t i = 0U; i < CONFIG_OTA_CONFIG_WORD_COUNT; ++i) {
|
||||
words[i] = *((volatile uint32_t *)(kOtaConfigPageAddr + i * 4U));
|
||||
}
|
||||
words[(targetAddr - kOtaConfigPageAddr) / 4U] = value;
|
||||
@@ -63,7 +63,7 @@ static bool otaConfigSet(uint32_t targetAddr, uint32_t value)
|
||||
}
|
||||
|
||||
bool ok = true;
|
||||
for(uint32_t i = 0U; i < 6U; ++i) {
|
||||
for(uint32_t i = 0U; i < CONFIG_OTA_CONFIG_WORD_COUNT; ++i) {
|
||||
if(words[i] == kOtaNotAval) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user