使用可视化跟踪诊断评估基于 Yocto 的 Linux 系统

首先让我们看看如何评估 Linux 驱动程序的实现。需要注意的是,Linux 版的Tracealyzer充分利用了 LTTng,这是一个开源跟踪器和分析器,它允许开发人员通过解析 LTTng 的输出并生成可视化和详细统计信息来评估内核的性能。
在这里插入图片描述

Fig1_Device-Block-Diagram-MAB Labs
图 1. 自定义 Linux 驱动程序。
为其评估驱动程序的设备具有三个主要接口。I2C 接口控制设备,SPI 接口用于将数据流回 Linux 设备,GPIO 是一条中断线,用于指示何时有数据准备好消费。当 GPIO 线被断言时,驱动程序发送一个 I2C 命令来指示设备开始流式传输,这将通过 SPI 接口完成。驱动程序会指示嵌入式 Linux 系统中的 DMA 控制器(DMAC)管理 SPI 总线和系统 RAM 之间的数据传输,以确保 CPU 能够管理其他任务。最后,Linux 设备上存在应用程序代码,用于从 RAM 检索流数据并将其存储在非易失性存储器中。

Tracealyzer 用于验证两个重要指标。首先,从 GPIO 被断言到 I2C 命令发出的时间量保持在最短。其次,Linux 内核为驱动程序提供了足够的执行周期,使其能够定期管理 DMAC 遇到的任何问题。目标是保证流传输过程中丢失的数据最少,Tracealyzer 用于帮助确保这一保证。

设备开发套件

Tracealyzer 使用 LTTng 生成的文件,因此通过在设备的基于 Yocto 项目的板级支持包 (BSP) 中创建自定义层,嵌入式 Linux 平台被配置为支持 LTTng。生成的 Linux 映像加载到 SD 卡上并在开发套件上启动。加载设备驱动程序并将生成的跟踪数据存储在卡上以供离线分析。然后在主机上启动 Tracealyzer 以查看和分析收集的跟踪。

为了研究内核空间,“跟踪视图”、“参与者实例”、“CPU 负载图”和“上下文切换强度”视图是最合适的。跟踪视图(图 2)显示了内核中使用的交换器(空闲任务)在整个捕获期间占用了最多的执行资源,这是预期的。当驱动程序正在运行并将数据从设备传输到开发板时,特定的内核线程会获得平台上更大的执行资源块来执行传输。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值