11 个版本 (重大变更)

0.10.0 2024 年 5 月 3 日
0.9.0 2023 年 7 月 15 日
0.8.1 2022 年 5 月 8 日
0.8.0 2022 年 3 月 29 日
0.2.0 2020 年 1 月 10 日

嵌入式开发 中排名 1855

MIT/Apache

1.5MB
24K SLoC

ATSAMD11C 支持包

本包提供了与 ATSAMD11C 交互的类型安全 API。

示例?

查看仓库中的示例

https://github.com/atsamd-rs/atsamd/tree/master/boards/samd11_bare/examples

使用调试器将代码上传到设备:cargo-flash

这是使用调试器闪存的纯 Rust 生态系统首选方法。

cargo flash 替换了 cargo build 命令,以包含使用 probe-rs 和 libusb 的调试器闪存。

$ cargo install cargo-flash

cargo flash 需要知道您芯片的特定 ID,但它包含在 Cargo.toml 的 package.metadata 字段中,因此您可以省略它。

然后 cargo flash 简单地替换您的 cargo build 命令!

$ cargo flash --example blinky_basic --release

调试:probe-run

这是纯 Rust 生态系统首选的调试方法。它不需要外部 gdb 服务器,也不需要 C 或 Python 工具,如 openocd。

probe-run 尝试将托管 cargo 运行打印行调试体验带到嵌入式。它还具有在 defmt 项目下大幅减少格式大小的先进日志功能,此处不涉及。

probe-run 需要在 .cargo/config 中设置为您的 runner,并包含您芯片的 ID。此外,需要为构建的任何配置文件启用调试符号。在您的应用程序中,您将希望使用与 probe-run 兼容的 panic 包,如 panic-probe,以及一个 rtt 调试日志包,如 rtt-target。另外,别忘了初始化您的 rtt 设备。

probe-run 在成功构建后会调用,通过调试器直接将代码烧录到目标设备,并等待接收来自目标设备的任何rtt打印信息。最后,如果发生panic或者你调用了 cortex_m::asm::bkpt() probe-run 将检测到,打印堆栈跟踪,并退出。您可以使用主机的ctrl-c命令退出 probe-run

$ cargo install probe-run

然后只需使用您的IDE的运行或播放按钮,或者运行

$ cargo run --release --example adc 
    Finished release [optimized + debuginfo] target(s) in 0.99s
     Running `probe-run --chip ATSAMD11C14A target\thumbv6m-none-eabi\release\examples\adc`
  (HOST) INFO  flashing program (7.18 KiB)
  (HOST) INFO  success!
────────────────────────────────────────────────────────────────────────────────
3828
3829
414
413
419
^Cstack backtrace:
   0: <atsamd_hal::common::delay::Delay as embedded_hal::blocking::delay::DelayUs<u32>>::delay_us
        at /home/atsamd/hal/src/common/delay.rs:72
   1: <atsamd_hal::common::delay::Delay as embedded_hal::blocking::delay::DelayMs<u32>>::delay_ms
        at /home/atsamd/hal/src/common/delay.rs:35
   2: <atsamd_hal::common::delay::Delay as embedded_hal::blocking::delay::DelayMs<u16>>::delay_ms
        at /home/atsamd/hal/src/common/delay.rs:41
   3: neopixel_adc_battery::__cortex_m_rt_main
        at examples/neopixel_adc_battery.rs:50
   4: main
        at examples/neopixel_adc_battery.rs:23
   5: ResetTrampoline
        at /home/.cargo/registry/src/github.com-1ecc6299db9ec823/cortex-m-rt-0.6.13/src/lib.rs:547
   6: Reset
        at /home/.cargo/registry/src/github.com-1ecc6299db9ec823/cortex-m-rt-0.6.13/src/lib.rs:550

依赖项

~6MB
~126K SLoC