#keyboard #firmware #stm32h7 #rmk #cortex-m #stm32 #rp2040

nightly app rmk-stm32h7

用 Rust 编写的键盘固件

2 个不稳定版本

0.1.0 2024 年 1 月 18 日
0.0.3 2023 年 10 月 26 日

#1564 in 硬件支持

MIT/Apache

555KB
6.5K SLoC

RMK

Crates.io Docs Build

为 cortex-m 编写的键盘固件,具有层/动态键映射/vial 支持,用 Rust 编写并在 stm32 和 rp2040 上测试。

新闻

Rmk 刚发布版本 0.1.0,迁移到 Embassy!通过迁移到 Embassy,Rmk 现在具有更好的异步支持,比以前更容易支持更多 MCU。有关使用 Embassy 的示例,请查看 boards 文件夹!

先决条件

此 crate 需要 nightly Rust。使用 openocd(stm32) 或 probe-rs(rp2040) 进行烧录和调试。

使用方法

您可以使用 RMK 编译自己的键盘固件,或尝试为 stm32h7 和 rp2040 使用的内置固件示例。

编译自己的固件

示例可在 boards 中找到。以下是为创建自己的固件创建简单步骤的说明

  1. 创建一个 Rust 嵌入式项目,使用 cargo add rmk 将 rmk 添加到项目中
  2. 选择您的目标,使用 rustup target add <your-target-name> 安装目标。有关目标选择,请参阅 此处 的文档。例如,rp2040 是 Cortex-M0+,因此其目标是 thumbv6m-none-eabi
  3. 在项目的根目录中创建 .cargo/config.toml,在此处指定您的目标。请参阅 boards/stm32h7/.cargo/config.toml
  4. 创建 main.rs,在 rtic 的 mod app 中初始化您的 MCU,创建 usb 轮询任务和键盘任务。请参阅 boards/stm32h7/src/main.rs

使用内置示例

rp2040

  1. 安装 probe-rs
       cargo install probe-rs --features cli
    
  2. 构建固件
    cd boards/rp2040
    cargo build
    
  3. 烧录它
    cd boards/rp2040
    cargo run
    

stm32h7

  1. 安装 openocd

  2. 构建固件

    cd boards/stm32h7
    cargo build
    
  3. 烧录

    openocd -f openocd.cfg -c "program target/thumbv7em-none-eabihf/debug/rmk-stm32h7 preverify verify reset exit"
    
  4. (可选) 使用 CMSIS-DAP 调试固件

    使用 VSCode 打开项目,按 F5,固件将被自动编译和烧录。烧录后开始调试会话。请检查 .vscode/tasks.json.vscode/launch.json 以获取详细信息。

路线图

列表中有许多待办事项,欢迎任何贡献 :)

  • 支持 rp2040
  • 基本键盘功能
  • 系统/媒体键
  • Viola 支持
  • Eeprom
  • 键盘宏
  • 编码器
  • RGB
  • CLI 工具

许可证

Rmk 许可证为以下之一

任选其一。

依赖

~174MB
~6M SLoC