feat(CAN): 实现CAN FD协议栈优化和发送队列机制

- 将CAN收发缓冲区扩展至64字节以支持CAN FD协议
- 添加发送队列机制防止高负载时消息丢失
- 优化中断处理流程,直接读取消息数据避免DMA竞争
- 修改编译配置指向Release版本目录
- 调整OTA处理逻辑将Flash擦除操作移至主循环执行

BREAKING CHANGE: 缓冲区大小调整可能影响现有CAN通信协议实现
This commit is contained in:
cbb
2026-04-26 02:27:34 +08:00
parent 26cf5af14f
commit d019b41ed6
20 changed files with 1783 additions and 1579 deletions
+2 -2
View File
@@ -244,14 +244,14 @@ build all: phony Robot_V2.Release+GD32C103CB
#############################################
# Re-run CMake if any of its inputs changed.
build build.ninja: RERUN_CMAKE | C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\CMakeDetermineSystem.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\CMakeGenericSystem.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\CMakeInitializeConfigs.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\CMakeNinjaFindMake.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\CMakeSystem.cmake.in C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\CMakeSystemSpecificInformation.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\CMakeSystemSpecificInitialize.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\ExternalProject.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\ExternalProject\PatchInfo.txt.in C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\ExternalProject\RepositoryInfo.txt.in C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\ExternalProject\UpdateInfo.txt.in C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\ExternalProject\cfgcmd.txt.in C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\ExternalProject\mkdirs.cmake.in C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\ExternalProject\shared_internal_commands.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\Platform\Windows-Initialize.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\Platform\Windows.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\Platform\WindowsPaths.cmake CMakeCache.txt CMakeFiles\3.31.5\CMakeSystem.cmake CMakeLists.txt Robot_V2.Release+GD32C103CB\tmp\Robot_V2.Release+GD32C103CB-mkdirs.cmake roots.cmake
build build.ninja: RERUN_CMAKE | C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\CMakeGenericSystem.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\CMakeInitializeConfigs.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\CMakeSystemSpecificInformation.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\CMakeSystemSpecificInitialize.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\ExternalProject.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\ExternalProject\PatchInfo.txt.in C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\ExternalProject\RepositoryInfo.txt.in C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\ExternalProject\UpdateInfo.txt.in C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\ExternalProject\cfgcmd.txt.in C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\ExternalProject\mkdirs.cmake.in C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\ExternalProject\shared_internal_commands.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\Platform\Windows-Initialize.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\Platform\Windows.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\Platform\WindowsPaths.cmake CMakeCache.txt CMakeFiles\3.31.5\CMakeSystem.cmake CMakeLists.txt Robot_V2.Release+GD32C103CB\tmp\Robot_V2.Release+GD32C103CB-mkdirs.cmake roots.cmake
pool = console
#############################################
# A missing CMake input file is not an error.
build C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\CMakeDetermineSystem.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\CMakeGenericSystem.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\CMakeInitializeConfigs.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\CMakeNinjaFindMake.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\CMakeSystem.cmake.in C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\CMakeSystemSpecificInformation.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\CMakeSystemSpecificInitialize.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\ExternalProject.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\ExternalProject\PatchInfo.txt.in C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\ExternalProject\RepositoryInfo.txt.in C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\ExternalProject\UpdateInfo.txt.in C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\ExternalProject\cfgcmd.txt.in C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\ExternalProject\mkdirs.cmake.in C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\ExternalProject\shared_internal_commands.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\Platform\Windows-Initialize.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\Platform\Windows.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\Platform\WindowsPaths.cmake CMakeCache.txt CMakeFiles\3.31.5\CMakeSystem.cmake CMakeLists.txt Robot_V2.Release+GD32C103CB\tmp\Robot_V2.Release+GD32C103CB-mkdirs.cmake roots.cmake: phony
build C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\CMakeGenericSystem.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\CMakeInitializeConfigs.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\CMakeSystemSpecificInformation.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\CMakeSystemSpecificInitialize.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\ExternalProject.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\ExternalProject\PatchInfo.txt.in C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\ExternalProject\RepositoryInfo.txt.in C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\ExternalProject\UpdateInfo.txt.in C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\ExternalProject\cfgcmd.txt.in C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\ExternalProject\mkdirs.cmake.in C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\ExternalProject\shared_internal_commands.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\Platform\Windows-Initialize.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\Platform\Windows.cmake C$:\Users\cbb\.vcpkg\artifacts\2139c4c6\tools.kitware.cmake\3.31.5\share\cmake-3.31\Modules\Platform\WindowsPaths.cmake CMakeCache.txt CMakeFiles\3.31.5\CMakeSystem.cmake CMakeLists.txt Robot_V2.Release+GD32C103CB\tmp\Robot_V2.Release+GD32C103CB-mkdirs.cmake roots.cmake: phony
#############################################