#arm #efr32 #cortex-m

无 std efr32xg1

EFR32xG1 微控制器的外设访问API

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 中使用

MIT/Apache

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