项目简介
本项目为滑铁卢大学Midnight Sun太阳能赛车团队的第14代赛车开发固件系统。该系统基于STM32F0xx微控制器,主要处理CAN通信、GPIO控制、中断管理等功能。项目包含多个模块,如CAN通信模块、GPIO模块、中断管理模块等,还有相应测试代码和工具脚本。
项目的主要特性和功能
- CAN通信模块:支持CAN总线的初始化、配置、消息发送与接收。
- GPIO控制模块:提供GPIO引脚的配置与控制,支持中断功能。
- 中断管理模块:支持外部中断的配置与管理,包括中断优先级设置和中断使能/禁用。
- 测试与调试工具:包含单元测试、功能测试和调试工具,确保代码的可靠性和正确性。
- 跨平台支持:支持x86和STM32F0xx平台的编译与测试。
- 静态分析与内存调试:支持Clang/LLVM工具链,提供静态分析、内存调试和多线程调试功能。
安装使用步骤
环境准备
- 确保已安装以下依赖:
- GNU ARM Embedded toolchain
- GNU Make 4.0或更高版本
- Unity C单元测试框架
- (可选)安装Clang/LLVM工具链和Bear工具,以便进行更深入的调试和静态分析。
复制项目
bash
cd firmware
编译与测试
- 编译所有项目:
bash make build_all PLATFORM=x86 make build_all PLATFORM=stm32f0xx
- 运行所有测试:
bash make test_all PLATFORM=x86
常用命令
- 烧录固件:
bash make program PROJECT=test_project
- 运行特定测试:
bash make test LIBRARY=ms-common TEST=module
- 调试:
bash make gdb TEST=can LIBRARY=ms-common
- 创建新项目:
bash make new PROJECT=new_project_name
- 清理构建目录:
bash make clean
- 代码格式化与检查:
bash make format make lint
高级调试(可选)
- 静态分析:
bash make clean bear make build_all PLATFORM=x86 clang-tidy $PATH_TO_C_FILE -checks=*
- 内存与地址调试:
bash make clean make build_all PLATFORM=x86 COMPILER=clang COPTIONS=asan
- 多线程调试:
bash make clean make build_all PLATFORM=x86 COMPILER=clang COPTIONS=tsan
持续集成
项目使用Travis CI进行持续集成测试,确保代码的稳定性和兼容性。每次提交都会触发自动构建和测试流程,涵盖所有支持的平台和配置。
许可证
本项目采用MIT许可证,详情请参阅LICENSE文件。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】