littlebot
Published on 2025-04-09 / 4 Visits
0

【源码】基于Pigweed框架的嵌入式开发工具集

项目简介

Pigweed是一个开源的嵌入式开发库集合,专为无MMU的小型32位微控制器设计,像STMicroelectronics STM32L452和Nordic nRF52832等。该项目提供多种模块,能加速和简化嵌入式系统开发,提升开发过程的可靠性。

项目的主要特性和功能

  1. pw_watch - 文件保存时自动构建、烧录和测试:借助文件系统监视器,在源代码保存时自动触发构建、烧录和测试。结合GN构建系统,仅运行受文件更改影响的测试,减少不必要的测试时间。
  2. pw_presubmit - 提交前代码检查:提供一套工具进行高质量的提交前检查。pw format命令支持C、C++、Python、GN和Go等多种语言的代码自动格式化。
  3. pw_env_setup - 跨平台嵌入式编译器设置:通过Chrome的CIPD系统,为Mac、Windows和Linux提供统一的开发环境设置,安装必要工具且不影响系统环境,解决从复制代码到运行二进制文件的时间问题。
  4. pw_unit_test - 嵌入式单元测试:提供可移植的单元测试库,兼容Google Test,不依赖动态内存分配,适合嵌入式环境。支持在桌面和设备上运行相同测试,确保代码跨环境兼容性。
  5. 其他模块
    • pw_cpu_exception_armv7m:为ARM Cortex - M提供健壮的低级硬件故障处理程序。
    • pw_polyfill:提供C++17标准库组件的兼容实现,支持C++11和C++14。
    • pw_minimal_cpp_stdlib:不完全的C++17标准库实现,适用于不需要完整标准库的项目。
    • pw_tokenizer:将日志语句中的字符串字面量替换为32位令牌,减少闪存使用和日志带宽。
    • pw_kvs:轻量级的键值存储实现,支持闪存备份和磨损均衡。
    • pw_protobuf:面向WireFormat的协议缓冲区实现,与nanopb相比有不同的实现权衡。

安装使用步骤

假设用户已下载本项目的源码文件,可按以下步骤操作: 1. 复制项目代码bash cd pigweed 2. 设置开发环境:按照getting started guide中的说明,使用pw_env_setup模块设置开发环境。 3. 构建文档:构建完整的文档以了解更多模块的详细信息: bash ./tools/docs/build_docs.sh 4. 运行示例:使用pw_watch模块进行开发,自动构建和测试: bash pw watch 5. 提交前检查:使用pw_presubmit模块进行代码格式化和提交前检查: bash pw presubmit

通过上述步骤,用户可快速上手并利用Pigweed的各种模块进行高效的嵌入式开发。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】