3个版本 (破坏性更新)
0.3.0 | 2024年4月7日 |
---|---|
0.2.0 | 2023年9月2日 |
0.1.0 | 2023年7月26日 |
#1770 在 硬件支持
每月121次下载
33KB
216 代码行
boardsource-blok - Blok的板级支持
如果您正在编写希望在Blok上运行的代码,则应包含此crate - 由Boardsource制造的基于RP2040的控制器,为键盘社区而建。此crate包含rp2040-hal,但还根据Blok上的连接方式配置RP2040芯片的每个引脚。有关引脚布局的更多信息,请参阅Peg。
使用方法
要使用此crate,您的Cargo.toml
文件应包含
boardsource-blok = "0.3.0"
在您的程序中,您需要调用blok::Pins::new
来创建一个新的Pins
结构。这将设置任何板上设备的所有GPIO。有关更多详细信息,请参阅示例文件夹。
示例
一般说明
要编译示例,克隆rp-hal-boards仓库并运行
rp-hal-boards/boards/boardsource-blok $ cargo build --release --example <name>
您将获得一个名为./target/thumbv6m-none-eabi/release/examples/<name>
的ELF文件,其中target
文件夹位于rp-hal-boards仓库签出的顶部。通常您还需要指定--target=thumbv6m-none-eabi
,但在从此git仓库构建示例时,这被设置为默认值。
如果您想将ELF文件转换为UF2并将其自动复制到RP2040引导加载程序导出的USB驱动器,请将您的板子进入引导加载程序模式并运行
rp-hal-boards/boards/boardsource-blok $ cargo run --release --example <name>
如果您遇到有关无法找到elf2uf2-rs
的错误,请尝试
$ cargo install elf2uf2-rs
然后尝试重复执行上面的 cargo run
命令。
从头开始
要从头开始创建一个基本项目,请使用 cargo new project-name
创建一个项目。在项目目录中,运行 cargo add blok
,cargo add cortex-m-rt
,以及 cargo add panic-halt
。第一个命令将添加此HAL(硬件抽象层),第二个对于 #[entry]
宏是必需的,而 panic-halt 创建一个简单的panic函数,它只是停止。
您还需要从仓库复制cargo配置文件。它指定了链接器的目标优化标志。您还需要将memory.x复制到您的项目根目录。此文件告诉链接器闪存和RAM布局,因此它不会覆盖引导加载程序或写入超出范围的内存地址。
最简单的有效示例,它什么也不做只是无限循环,是
#![no_std]
#![no_main]
use blok::entry;
use panic_halt as _;
#[entry]
fn see_doesnt_have_to_be_called_main() -> ! {
loop {}
}
它可以放在/src/main.rs中。
您可以使用 cargo run
编译并安装它。注意:由于此程序什么也不做,您不会看到任何活动。您可以使用提供的示例添加更多功能。
blok_rainbow
在板载neopixel上运行彩虹效果颜色轮。
blok_reset_to_usb_boot
10秒后重置Blok到USB引导模式。
blok_usb_keyboard_input
演示模拟USB人体输入设备(HID)键盘。键盘将输入“HELLO”五次。
贡献
贡献使得开源社区成为一个如此美妙的学习、灵感和创造的地方。您所做的任何贡献都将受到衷心的欢迎。
步骤如下
- 通过点击页面顶部的“Fork”按钮来分叉项目。
- 创建功能分支(
git checkout -b feature/AmazingFeature
) - 修改代码或文档。
- 提交更改(
git commit -m 'Add some AmazingFeature'
) - 将更改推送到功能分支(
git push origin feature/AmazingFeature
) - 创建新的拉取请求
- 管理员将审查拉取请求,并讨论可能需要进行的任何更改。
- 一旦所有人都满意,管理员可以合并拉取请求,您的作品将成为我们项目的一部分!
行为准则
本仓的贡献力量受Rust行为准则的约束,本仓的维护者rp-rs团队承诺将介入以维护该行为准则。
许可
本存储库的内容采用双重授权,许可协议为MIT OR Apache 2.0。这意味着您在重新使用此代码时可以选择MIT许可证或Apache-2.0许可证。有关每个特定许可证的更多信息,请参阅MIT
或APACHE2.0
。
向此项目(例如,作为Pull Requests)的任何提交都必须在这些条款下提供。
依赖项
~8.5MB
~175K SLoC