#rp2040 #board #pin #package #controller #run #blok

boardsource-blok

Blok的rp2040基于的板级支持包

3个版本 (破坏性更新)

0.3.0 2024年4月7日
0.2.0 2023年9月2日
0.1.0 2023年7月26日

#1770硬件支持

Download history 18/week @ 2024-07-02

每月121次下载

MIT/Apache

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 blokcargo 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”五次。

贡献

贡献使得开源社区成为一个如此美妙的学习、灵感和创造的地方。您所做的任何贡献都将受到衷心的欢迎。

步骤如下

  1. 通过点击页面顶部的“Fork”按钮来分叉项目。
  2. 创建功能分支(git checkout -b feature/AmazingFeature
  3. 修改代码或文档。
  4. 提交更改(git commit -m 'Add some AmazingFeature'
  5. 将更改推送到功能分支(git push origin feature/AmazingFeature
  6. 创建新的拉取请求
  7. 管理员将审查拉取请求,并讨论可能需要进行的任何更改。
  8. 一旦所有人都满意,管理员可以合并拉取请求,您的作品将成为我们项目的一部分!

行为准则

本仓的贡献力量受Rust行为准则的约束,本仓的维护者rp-rs团队承诺将介入以维护该行为准则。

许可

本存储库的内容采用双重授权,许可协议为MIT OR Apache 2.0。这意味着您在重新使用此代码时可以选择MIT许可证或Apache-2.0许可证。有关每个特定许可证的更多信息,请参阅MITAPACHE2.0

向此项目(例如,作为Pull Requests)的任何提交都必须在这些条款下提供。

依赖项

~8.5MB
~175K SLoC