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
2,375 每月下载量
在 avr-progmem 中使用
27MB
805K SLoC
avr-device

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 是使用 atdf2svd
和 svd2rust
生成的。供应商提供的 atdf 文件位于 vendor/
。中间的 svd 文件通过 svdpatch.py
(从 svdpatch.py
在 stm32-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受以下其中一种许可证的约束
- Apache License,版本2.0(LICENSE-APACHE或https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT或http://opensource.org/licenses/MIT)
任选其一。
所 vendored 的atdf文件受Apache License,版本2.0(LICENSE-VENDOR)的约束。