项目简介
Pigweed是一个开源的嵌入式开发库集合,专为无MMU的小型32位微控制器设计,像STMicroelectronics STM32L452和Nordic nRF52832等。该项目提供多种模块,能加速和简化嵌入式系统开发,提升开发过程的可靠性。
项目的主要特性和功能
pw_watch
- 文件保存时自动构建、烧录和测试:借助文件系统监视器,在源代码保存时自动触发构建、烧录和测试。结合GN构建系统,仅运行受文件更改影响的测试,减少不必要的测试时间。pw_presubmit
- 提交前代码检查:提供一套工具进行高质量的提交前检查。pw format
命令支持C、C++、Python、GN和Go等多种语言的代码自动格式化。pw_env_setup
- 跨平台嵌入式编译器设置:通过Chrome的CIPD系统,为Mac、Windows和Linux提供统一的开发环境设置,安装必要工具且不影响系统环境,解决从复制代码到运行二进制文件的时间问题。pw_unit_test
- 嵌入式单元测试:提供可移植的单元测试库,兼容Google Test,不依赖动态内存分配,适合嵌入式环境。支持在桌面和设备上运行相同测试,确保代码跨环境兼容性。- 其他模块:
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】