项目简介
本项目为Ruuvi Firmware version 3,基于Nordic SDK 15构建,采用Ruuvi和外部仓库作为子模块。目前项目处于开发阶段,为beta版本,预计不会有重大变更。
项目的主要特性和功能
- 集成Jenkins进行持续集成,SonarCloud进行代码质量检测,涵盖代码缺陷、代码异味、测试覆盖率等多维度检测。
- 依赖gcc - arm - none - eabi、Nordic相关工具(mergehex、nrfutil、Command Line Tools、nRFconnect)、python等,保障开发、编译、测试和部署的顺利开展。
- 支持Ceedling进行单元测试,PVS - Studio进行代码静态分析,Artistic Style进行代码风格检查,doxygen进行文档生成。
- 支持使用Segger Embedded Studio进行开发编译,也能使用ARMGCC进行Jenkins构建。
- 遵循BARR - C:2018编码标准,通过Artistic Style工具强制统一代码风格。
- 使用Ceedling实现单元测试,可生成Gcov测试覆盖率报告,Travis集成单元测试,测试失败则构建失败,Gcov结果会推送至SonarCloud。
安装使用步骤
前提条件
- 安装 gcc - arm - none - eabi - 7 - 2018 - q2 - update,并确保
nRF5_SDK_15.3.0_59ac345/components/toolchain/gcc
中的Makefile.posix
或Makefile.windows
指向该路径。 - 安装
git
、python 3.7
或更高版本及 pip 包管理器。 - 安装 Nordic mergehex、Nordic nrfutil、Nordic Command Line Tools、Nordic nRFconnect。
- 确保计算机或手机有蓝牙无线电,用于接收ruuvi的广播。
可选条件
- 建议使用 Ruuvi Dev kit board 和 USB 电源及数据线,或其他 SWD 编程器和适配目标板的电缆。
- 若要验证更改,需安装 Ceedling、PVS - Studio Analyzer、Artistic Style、doxygen。
操作步骤
- 下载 SDK:下载 Nordic SDK15.3(.8GB)并安装在项目根目录,若同时开发多个 nRF 项目,可使用符号链接。
- 更新子模块:运行
git submodule sync --recursive
和git submodule update --init --recursive
从主仓库更新模块。 - 统一代码风格:使用符合 BARR - C:2018 的编码风格,运行
make astyle
统一代码风格。 - 编译与测试
- Segger Embedded Studio:安装 nRF Connect for Desktop 并按说明设置 Segger Embedded Studio。通过
File -> Open Solution -> ruuvi.firmware.c.emProject
打开项目,选择目标板项目,设置编译配置(Debug
、Long Life
或Release
),通过Build -> Build <project name>
或按 F7 键编译,连接开发板后通过Debug -> Go
或按 F5 键进行调试。 - ARMGCC:在仓库顶级目录运行
make variantName
(如make ruuvitag_b
)编译单个变体。构建分发二进制文件时,使用Makefile
脚本确保可重复构建。
- Segger Embedded Studio:安装 nRF Connect for Desktop 并按说明设置 Segger Embedded Studio。通过
- 烧录固件:连接开发板(nRF52 DevKit 和 RuuviTag Development Shield 或 nRF52 DevKit 和 TC2030 - CTX - NL 6 - pin Cable),导航到
ruuvi.firmware.c/src/targets/<board name>/armgcc
,运行make
编译应用程序,运行./package.sh
生成完整的固件 HEX 和 ZIP 文件,使用nrfjprog
命令烧录固件。 - 静态分析
- PVS:从 Viva64 获取许可证和软件,按 ruuvi.docs.com 中的说明安装,运行
make
进行 PVS Studio 扫描,结果输出到doxygen/html/fullhtml
。 - Sonar scan:Travis 将结果推送到 SonarCloud.IO,若要在自己的代码上运行 Sonar Scan,需分叉项目并在自己的账户下设置 SonarCloud。
- PVS:从 Viva64 获取许可证和软件,按 ruuvi.docs.com 中的说明安装,运行
- 运行单元测试
- Ceedling:运行
ceedling test:all
执行单元测试。 - Gcov:运行
ceedling gcov:all utils:gcov
生成 Gcov 报告,报告位于_build/artifacts/gcov
。
- Ceedling:运行
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】