2个版本
0.1.1 | 2022年1月12日 |
---|---|
0.1.0 | 2022年1月12日 |
#1543 in 嵌入式开发
3.5MB
21K SLoC
simavr-section
一个用于在ELF中存储与simavr兼容的元数据的存储库。
使您的AVR固件能够描述期望的核心、频率、熔丝和电压。配置模拟器导出VCD跟踪而无需担心任何命令行标志。
- 入门
- 支持的标签
- 更多信息
- 贡献
- 许可证信息
入门
首先将avr_mcu
宏添加到您的main.rs
use simavr_section::avr_mcu;
avr_mcu!(8000000, b"attiny85");
为确保元数据传递到最终的ELF,您需要向rustc
调用中添加一些链接参数。最简单的方法是在您的config.toml
文件中添加或更新以下行
[target.'cfg(target_arch = "avr")']
rustflags = ["-C", "link-arg=-Wl,--undefined=_mmcu,--section-start=.mmcu=0x910000"]
现在您可以无忧地模拟您的固件
> cargo build --release
Compiling my-awesome-firmware v0.1.0 (/home/avr-freak/dev/my-awesome-firmware)
Finished release [optimized] target(s) in 13.37s
> run_avr target/avr-attiny85/release/my-awesome-firmware.elf
支持的标签
- AVR_MMCU_TAG_NAME
- AVR_MMCU_TAG_FREQUENCY
- AVR_MMCU_TAG_VCC
- AVR_MMCU_TAG_AVCC
- AVR_MMCU_TAG_AREF
- AVR_MMCU_TAG_LFUSE
- AVR_MMCU_TAG_HFUSE
- AVR_MMCU_TAG_EFUSE
- AVR_MMCU_TAG_SIGNATURE
- AVR_MMCU_TAG_SIMAVR_COMMAND
- AVR_MMCU_TAG_SIMAVR_CONSOLE
- AVR_MMCU_TAG_VCD_FILENAME
- AVR_MMCU_TAG_VCD_PERIOD
- AVR_MMCU_TAG_VCD_TRACE
- AVR_MMCU_TAG_VCD_PORTPIN
- AVR_MMCU_TAG_VCD_IRQ
- AVR_MMCU_TAG_PORT_EXTERNAL_PULL
更多信息
使用cargo doc --open
或通过访问docs.rs页面查看文档。
API故意是simavr
公开宏的直接克隆,以便于移植。有关更多详细信息,请参阅simavr
项目。
贡献
欢迎所有贡献,无论是错误报告、功能请求、代码更改还是良好祝愿。谢谢!
要在项目根目录中运行完整的集成测试,请使用test.sh
。
许可证信息
simavr-section是免费软件:您可以在自由软件基金会发布的GNU通用公共许可证的条款和条件下重新分配它或修改它,无论是许可证的第3版,还是(根据您的选择)任何较新版本。
simavr-section分发的目的是希望它会有用,但没有任何保证;甚至没有关于适销性或针对特定目的的适用性的暗示性保证。有关更多信息,请参阅GNU通用公共许可证。
请参阅此项目根目录下的 LICENSE
文件,获取 GNU 通用公共许可证副本,或访问 http://www.gnu.org/licenses/。
此项目包含来自 simavr
项目的代码,该代码同样遵循 GPL v3 许可协议。