无下位机控制系统 RMCS(RoboMaster Control System) 的下位机固件。
与上位机通过 USB 2.0 FS 端口连接,即可以 BULK 模式实时转发单片机各接口 (CAN/SPI/UART等) 的所有数据至上位机。
不使用操作系统以最大化转发效率,使用无锁同步原语 (LL/SC) 以保证中断安全。
基于 STM32 HAL 和 C++20,部分性能要求的 HAL 代码改为直接寄存器操作。
支持在 Linux 和 Windows 系统上使用。若使用原生Windows(非WSL),则上位机仅能使用 librmcs 。
支持的硬件:
- RoboMaster C型开发板:当前分支
- 达妙 STM32H7 开发板:开发中
支持的接口:
- CAN: 支持 (Classical 1Mbps CAN)
- UART: 支持 (100000 baudrate for DBUS, 115200 for others)
- SPI: 仅 BMI088 (2000Hz Gyroscope & 1600Hz Accelerometer)
- I²C: 暂不支持
- GPIO: 暂不支持
如果有更多的硬件和接口支持需求,可以向我们提 Issue 或 Pull Request。
正在研发队列:
- GPIO 支持
- 自定义的 UART 波特率
可以在 Release 中下载构建好的二进制文件。
下载并安装 xmake-v2.9.8.win64.exe 或更高版本。
下载并安装 arm-gnu-toolchain-14.2.rel1-mingw-w64-x86_64-arm-none-eabi.exe 或更高版本。
注意:默认安装路径带空格,带空格的路径会导致 clangd 无法正常工作,请手动选择一个不带空格的安装路径,并记录该路径。
在合适的目录下打开终端,克隆仓库并进入:
git clone https://github.com/Alliance-Algorithm/rmcs_slave.gitcd rmcs_slave接下来配置编译器路径:
xmake f --sdk="<arm-gnu-toolchain-path>"请将 <arm-gnu-toolchain-path> 更改为安装时输入的路径。
例如,若安装时路径为 C:\arm-none-eabi,则使用命令:
xmake f --sdk="C:\arm-none-eabi"路径不需要带 bin 目录。
使用命令
xmake即可触发构建。构建产物位于 build\cross\arm\release\application.elf。
使用 xmake -r 可强制重新构建。
使用 xmake -v 可显示构建过程中的细节,如构建指令、资源占用等。
使用命令
curl -fsSL https://xmake.io/shget.text | bash或
wget https://xmake.io/shget.text -O - | bashubuntu 可使用 apt 安装
sudo apt install gcc-arm-none-eabi其它发行版用户可自行查询包管理器。
安装完成后,使用 arm-none-eabi-gcc -v 检查 gcc 版本是否大于等于 13.2。
旧版本编译器对 C++20 的支持可能不完备,从而导致编译失败。
重启终端或重新登录,确保环境变量的变更生效。
在合适的目录克隆仓库并进入:
git clone https://github.com/Alliance-Algorithm/rmcs_slave.gitcd rmcs_slave使用命令
xmake即可触发构建。构建产物位于 build/cross/arm/release/application.elf。
若出现报错 error: cross toolchain not found!,请参照 Build -> Windows 条目手动配置编译器路径。
使用 xmake -r 可强制重新构建。
使用 xmake -v 可显示构建过程中的细节,如构建指令、资源占用等。