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
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