#register

no-std avr-device

AVR微控制器寄存器访问库

17个版本

0.5.4 2024年1月28日
0.5.3 2023年11月17日
0.5.2 2023年8月24日
0.5.1 2023年4月8日
0.1.1 2020年7月31日

#5 in #register

Download history 648/week @ 2024-04-08 907/week @ 2024-04-15 939/week @ 2024-04-22 816/week @ 2024-04-29 711/week @ 2024-05-06 866/week @ 2024-05-13 826/week @ 2024-05-20 818/week @ 2024-05-27 833/week @ 2024-06-03 616/week @ 2024-06-10 832/week @ 2024-06-17 731/week @ 2024-06-24 133/week @ 2024-07-01 415/week @ 2024-07-08 848/week @ 2024-07-15 920/week @ 2024-07-22

2,375 每月下载量
avr-progmem 中使用

MIT/Apache

27MB
805K SLoC

avr-device crates.io页面 docs.rs 持续集成

AVR微控制器寄存器自动生成的包装器。

用法

将以下内容添加到 Cargo.toml

[dependencies.avr-device]
version = "0.5.4"
features = ["atmega32u4"]

通过特性,您可以选择您想要的寄存器规范芯片。以下是目前支持的列表

ATmega ATmega USB ATmega 0,1 系列 AT90 ATtiny
atmega8 atmega8u2 atmega4808 at90usb1286 attiny13a
atmega48p atmega32u4 atmega4809 attiny167
atmega64 attiny202
atmega644 attiny402
atmega88p attiny404
atmega168 attiny44a
atmega324pa attiny84
atmega328p attiny85
atmega328pb attiny88
atmega32a attiny816
atmega1280 attiny828
atmega1284p attiny841
atmega128a attiny84a
atmega128rfa1 attiny861
atmega2560 attiny1614
atmega164pa attiny2313
attiny2313a

构建说明

crates.io 上的版本是预构建的。以下内容仅在尝试从源代码构建此库时需要。

您需要安装 atdf2svd (= 0.3.3), svd2rust (= 0.28), form (>= 0.8), rustfmt(用于 nightly 工具链) 和 svdtools (>= 0.1.9)

cargo install atdf2svd --version 0.3.3
cargo install svd2rust --version 0.28.0
cargo install form
rustup component add --toolchain nightly rustfmt
pip3 install --user svdtools

# check svdtools
svd --version
# if a "command not found" error is printed instead of a version,
# either svdtools is installed incorrectly, or its installation path is missing from the PATH variable.
# Temporary solution to PATH variable issue is to manually add the path. Like so:
export PATH=$PATH:~/.local/bin

接下来,克隆此存储库并构建设备定义

git clone https://github.com/Rahix/avr-device
cd avr-device
make
# You can build for just one specific chip using
# make atmega32u4
# I suggest building documentation as well
cargo +nightly doc --features <chip> --open

内部

avr-device 是使用 atdf2svdsvd2rust 生成的。供应商提供的 atdf 文件位于 vendor/。中间的 svd 文件通过 svdpatch.py (从 svdpatch.pystm32-rs) 进行修补,设备相关的修补在 patch/ 中,主要是为了改善不具描述性的名称和缺失的描述。

添加新芯片

要添加新的芯片,请从http://packs.download.atmel.com/(或avr-mcu/packs/)下载atdf,并将其放置在vendor/目录中。请确保其名称与应生成的Rust模块名称一致。接下来,您需要将其集成到基础crate和构建系统中。请参考提交290613454fbd ("添加对ATmega64的基本支持")中所做的操作。请遵循目前现有的字母顺序。

接下来,您必须在patch/目录中创建一个<chipname>.yaml文件,其中至少包含以下内容

_svd: ../svd/<chipname>.svd

如果需要应用更多补丁(很可能!),也应将它们添加到该文件中。补丁格式在svdtools README中有文档说明。理想情况下,尽量重用patch/common/patch/timer/中的现有补丁。

最后,尝试使用make <chipname>构建您的MCU的crate。

许可证

avr-device受以下其中一种许可证的约束

任选其一。

所 vendored 的atdf文件受Apache License,版本2.0(LICENSE-VENDOR)的约束。

依赖项