NASA JPL Embedded GCov 使用指南

NASA JPL Embedded GCov 使用指南

embedded-gcovGCC/gcov code coverage data extraction from the actual embedded system, without requiring a file system, or an operating system, or standard C libraries.项目地址:https://gitcode.com/gh_mirrors/em/embedded-gcov


项目目录结构及介绍

NASA JPL 的 embedded-gcov 项目是一个专为嵌入式系统设计的代码覆盖率提取工具,它允许开发者在不依赖文件系统、操作系统或标准C库的情况下获取GCC/gcov的覆盖率数据。以下是该项目的基本目录结构及其简介:

  • main: 未指明分支,可能包含一些不属于主分支的提交。
  • example: 包含示例代码,展示如何集成到项目中。
  • objs: 编译过程中可能生成的目标文件存放处(注:实际项目中此目录可能存在,但仓库中未直接列出)。
  • results: 可能用于存储覆盖率测试结果。
  • scripts: 提供的脚本文件,帮助自动化某些任务。
  • LICENSE: 项目遵循的Apache 2.0许可协议文件。
  • README.md: 项目的主要说明文档,包含概述和基本使用说明。
  • Embedded_gcov_FSW-22_20220118.pdf: PDF文档,详细介绍了如何在嵌入式飞行软件(FSW)中使用该工具。

项目的启动文件介绍

虽然具体启动文件没有直接在提供的信息中提及,但在嵌入式系统中,启动通常涉及到初始化代码,这部分往往在固件的入口点(如crt0.s, startup.asm, 或者特定的初始化C文件)中实现。为了使用embedded-gcov,您可能需要修改启动流程,以确保在系统初始化之后调用__gcov_call_constructors()函数。这意味着,在系统已准备好执行用户代码但尚未进入主要应用逻辑时,插入覆盖统计的初始化。

项目的配置文件介绍

Makefile 修改示例

在使用embedded-gcov时,重要的是要正确配置您的构建系统,尤其是Makefile。以下是一些关键步骤和配置项:

  • 增加编译标志:在Makefile中添加-O0 -g -fprofile-arcs -ftest-coverageCFLAGS,以启用代码覆盖收集。
  • 加入源码文件:将gcov_public.cgcov_printf.c (以及可能的其他相关源文件)加入构建过程。
  • 包含路径:确保包含gcov相关头文件的目录,例如通过向INC_DIR变量添加必要的路径。
  • 特别命令:在适当的应用场景中调用__gcov_call_constructors()__gcov_exit(),可能需要在特定的案例或者运行阶段手动管理。

虽然没有直接提供一个完整的配置文件示例,上述步骤概括了在使用embedded-gcov时对配置文件进行调整的关键方面。务必参考项目中的示例和PDF文档来获得更详细的实施步骤和注意事项。


以上内容基于给定的仓库描述和一般嵌入式开发实践综合而成,具体细节可能会随着项目更新而变化,因此建议直接查看仓库最新的文档和示例以获取最准确的信息。

embedded-gcovGCC/gcov code coverage data extraction from the actual embedded system, without requiring a file system, or an operating system, or standard C libraries.项目地址:https://gitcode.com/gh_mirrors/em/embedded-gcov

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

姬为元Harmony

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值