stm32-data
收藏github2024-05-22 更新2024-05-31 收录
下载链接:
https://github.com/embassy-rs/stm32-data
下载链接
链接失效反馈官方服务:
资源简介:
该项目旨在生成关于STM32微控制器家族的机器可读数据,包括基础芯片信息、外设地址和中断、中断、GPIO备用功能映射、DMA流映射、每包引脚输出等。数据源包括STM32Cube数据库、STM32Cubeprog数据库、STM32 mcufinder等,生成的JSON文件用于提供详细的数据信息。
This project aims to generate machine-readable data concerning the STM32 microcontroller family, encompassing fundamental chip information, peripheral addresses and interrupts, GPIO alternate function mappings, DMA stream mappings, and pinout per package, among others. The data sources include the STM32Cube database, STM32Cubeprog database, STM32 mcufinder, etc. The generated JSON files are utilized to provide detailed data information.
创建时间:
2021-04-15
原始信息汇总
数据集概述
数据集名称: stm32-data
目标: 生成关于STM32微控制器家族的清洁、机器可读的数据。
数据集内容
- 基础芯片信息:
- RAM, flash
- 封装
- 外设地址和中断:
- 中断:
- GPIO 替代功能映射(除F1家族外):
- GPIO 映射(F1家族): 未完成
- 寄存器块(所有外设): 进行中
- DMA 流映射:
- 每封装引脚布局:
- 相关参考手册、数据表、应用笔记PDF链接:
数据集状态
- 已完成: 基础芯片信息、外设地址和中断、中断、DMA 流映射、每封装引脚布局、相关文档链接。
- 进行中: 寄存器块。
- 待完成: GPIO 映射(F1家族)。
数据集生成
-
数据源:
- STM32Cube数据库
- STM32Cubeprog数据库
- STM32 mcufinder
- STM32 HAL头文件
- stm32-rs SVDs
-
数据处理:
- 从SVDs初始提取YAML,手动清理和维护。
- 不维护寄存器“补丁”,直接编辑YAML以修正错误。
- 确保同一外设在不同芯片间的一致性。
数据集使用
-
生成stm32-metapac crate:
- 运行
./d download-all下载所有数据源。 - 运行
cargo run --release --bin stm32-data-gen生成中间JSON文件。 - 运行
cargo run --release --bin stm32-metapac-gen生成stm32-metapac crate。
- 运行
-
添加新外设支持:
- 确保能生成YAML。
- 使用chiptool提取所有YAML。
- 比较YAML以识别差异并处理。
- 清理并最小化版本间差异。
- 更新
perimap并重新生成。
-
添加新家族支持(如RCC):
- 提取RCC外设寄存器。
- 使用转换清理定义。
- 合并并验证一致性。
- 将新生成的寄存器分配给外设。
数据集维护
- 寄存器清理:
- 移除无用前缀。
- 移除无用枚举。
- 将重复的寄存器或字段转换为数组。
- 使用
chiptool fmt格式化每个寄存器YAML。
数据集链接
- 生成的JSON文件: stm32-data-generated
- 生成的PAC: stm32-data-generated
搜集汇总
数据集介绍

构建方式
该数据集的构建基于多个数据源,包括STM32Cube数据库、STM32Cubeprog数据库、STM32 mcufinder以及STM32 HAL头文件等。通过自动化工具和手动清理相结合的方式,从这些数据源中提取并整合了关于STM32微控制器家族的详细信息。具体而言,数据集涵盖了基础芯片信息、外设地址和中断、GPIO映射、DMA流映射以及每个封装的引脚布局等。此外,还通过YAML文件对寄存器块进行了手动维护和清理,确保了数据的一致性和准确性。
特点
该数据集的一个显著特点是其高度结构化和机器可读性,使得开发者能够轻松地访问和处理STM32微控制器的详细信息。数据集不仅包含了基础的芯片信息和外设配置,还提供了详细的寄存器映射和中断信息,这对于嵌入式系统开发尤为重要。此外,数据集还整合了相关的参考手册、数据表和应用笔记的链接,为用户提供了全面的参考资源。
使用方法
使用该数据集时,用户首先需要下载并安装相关的工具和依赖项。通过运行一系列的命令,用户可以生成中间的JSON文件,这些文件包含了从原始数据源中提取和处理后的信息。具体操作包括下载数据源、运行数据生成脚本以及最终生成机器可读的PAC(Peripheral Access Crate)。用户还可以根据需要添加对新外设或新家族的支持,通过修改和扩展现有的YAML文件和映射表来实现。
背景与挑战
背景概述
stm32-data数据集由embassy-rs项目团队创建,旨在为STM32微控制器家族生成干净且机器可读的数据。该数据集涵盖了基础芯片信息、外设地址和中断、GPIO映射、DMA流映射以及各封装引脚布局等关键信息。其核心研究问题在于如何从复杂的STM32Cube数据库和相关资源中提取并标准化这些数据,以便于嵌入式系统开发中的高效利用。自创建以来,该数据集已成为嵌入式系统领域的重要资源,尤其在自动化工具和HAL(硬件抽象层)开发中发挥了关键作用。
当前挑战
stm32-data数据集在构建过程中面临多项挑战。首先,数据源的多样性和复杂性使得数据提取和标准化过程异常复杂,尤其是在处理不同版本的微控制器和外设时。其次,确保数据的一致性和准确性是一个持续的挑战,特别是在手动维护和更新注册块时。此外,支持新外设和家族的添加需要详尽的流程和严格的验证,以确保不影响现有数据和功能的稳定性。最后,数据集的维护和更新需要持续投入,以应对STM32系列不断更新的产品线和技术变化。
常用场景
经典使用场景
在嵌入式系统领域,`stm32-data`数据集的经典使用场景主要集中在STM32微控制器系列的硬件抽象层(HAL)开发中。开发者可以利用该数据集中的机器可读信息,如外设地址、中断映射和GPIO功能映射,来生成定制化的硬件抽象层代码。这不仅简化了HAL的开发过程,还确保了代码的一致性和准确性,特别是在处理不同STM32家族芯片时。
衍生相关工作
基于`stm32-data`数据集,衍生了一系列重要的相关工作。例如,`stm32-metapac`项目利用该数据集生成的JSON文件,为特定的STM32芯片定制了API文档和硬件抽象层代码,进一步简化了嵌入式系统的开发。此外,`stm32-rs`项目通过整合和优化`stm32-data`中的硬件信息,提供了一个跨平台的硬件抽象层解决方案,支持多种编程语言和开发环境。这些衍生工作不仅扩展了`stm32-data`的应用范围,还推动了嵌入式系统领域的技术创新和标准化进程。
数据集最近研究
最新研究方向
在微控制器领域,STM32系列因其广泛的应用和多样化的型号而备受关注。最新的研究方向主要集中在如何通过自动化工具和数据驱动的方法,提升STM32微控制器的开发效率和代码质量。具体来说,研究者们致力于开发能够自动生成和维护机器可读的STM32数据集的工具,如`stm32-data`项目,该工具能够从原始的SVD文件中提取并清理寄存器信息,生成统一的YAML配置文件,从而简化HAL(硬件抽象层)的开发。此外,研究还涉及如何通过这些数据集优化嵌入式系统的性能和可靠性,特别是在多核处理和实时操作系统(RTOS)的应用中。这些研究不仅提高了开发者的生产力,也为STM32生态系统的扩展和创新提供了坚实的基础。
以上内容由遇见数据集搜集并总结生成



