4个版本
使用旧Rust 2015
0.2.1 | 2019年1月24日 |
---|---|
0.2.0 | 2019年1月24日 |
0.1.1 | 2018年6月21日 |
0.1.0 | 2018年6月21日 |
1371 在 硬件支持
在 efm32gg-hal 中使用
7.5MB
269K SLoC
efr32xg1
寄存器包
此包包含为EFR32xG1P系列微处理器提供的芯片描述文件(SVDs)的svd2rust产品。
适用性
EFR32文件的设备标识符结构如下所示
EFR32[family]G[series-and-config][performance][featureset]F[flashzize][temperaturegrade][package][pincount]
- 系列部分通常是字母(例如,“B”代表“Blue Gecko”,“M”代表“Mighty Gecko”,“F”代表“Flex Gecko”等。
- 系列和配置部分是一个一到两位数,表示系列的第一位和如果存在则配置的第二位。
- 性能等级是字母。
- 功能集是与射频相关的数字代码。
- 闪存大小以kB为单位。
- 温度等级和封装类型是字母,引脚数是数字。
(来源:EFR32MG1和EFR32FG14数据表。请注意,这些是SVD文件名和描述中使用的顺序代码;芯片上打印的标识符编码方式不同。)
与EFM32系列不同,系列部分不再表示常规外设内部版本。在EFM32中,Leopart Gecko的时钟与Tiny Gecko略有不同;它们只表示无线电堆栈之间的差异(有趣的是,Flex Gecko最不灵活,因为它只能进行专有网络连接)。
鉴于SVDs中没有显示无线电组件,且svd2rust不接触内存大小,因此可以忽略所有组件(除了系列和配置),以生成svd2rust代码。源中使用EFR32MG1P133F256GM48作为代表性芯片,但作者假设所有系列和配置等于“1”的EFR32芯片都可以与该包一起使用。
请注意,混合系列和配置版本之间的寄存器包将不会工作;例如,CMU_HFPERCLKEN0寄存器中的GPIO位已从1移动到12。
用法
此包与其他svd2rust包的用法没有特殊之处,因此请参阅其文档或通用芯片文档。
要轻松使用一些有限的外设,请查看efm32gg-hal包(不要让名称分散注意力),或者Thunderboard BSC,其中包含示例。
构建/源代码控制
实际编写的(或者,在SVD文件的情况下,由供应商提供的)源代码保存在master
分支中,其中由svd2rust生成的文件从未被提交。
在重新发布crate之前,master
分支被合并到after-svd2rust
分支中,在那里执行make clean all
,生成的crate可以在本地使用、测试和上传。
许可证
除SVD文件外,所有提交到这个仓库的代码和文本都是由chrysn [email protected]编写的,并按照Cargo文件中指定的“MIT或Apache-2.0”条款发布。
SVD文件有自己的许可证部分,并使用Zlib许可证条款进行许可;在作者的理解中,该文件的许可证条款不影响生成的Rust二进制的许可证。
依赖项
~0.8–1.1MB
~18K SLoC