debugging - JTAG 如何影响整体系统性能及其缺点
问题描述
我来自非嵌入式软件世界,我认为我了解 JTAG 的概念和用例,但仍有一些悬而未决的问题。我的最终目标是为芯片固件构建 CI 管道。管道基本上包含两个主要内容:运行集成测试和在固件因某种原因失败时收集“内存转储”的能力。我的问题:
- 使用 JTAG 是否会影响芯片的整体性能(功耗、任务执行时间等)?
- 发生特定事件时是否可以收集内存寄存器状态?
- 一般来说,使用 JTAG 的缺点是什么?
解决方案
使用 JTAG 是否会影响芯片的整体性能(功耗、任务执行时间等)?
通常不会,但您应该查看目标的数据表/参考手册以了解其特定片上调试实现的详细信息。在这种情况下,JTAG 本身只是对片上调试的通信接口的定义。
这可能取决于您如何使用 JTAG。如果只对片上闪存进行编程,则不会对运行时产生影响。如果在运行时使用它来读取内存或流式调试数据,那可能是另一回事,因为片上调试和内核之间可能存在总线争用。
发生特定事件时是否可以收集内存寄存器状态?
这取决于目标的片上调试,而不是 JTAG——正如我上面所说,这只是通信接口,也没有定义任何特定的调试功能。
一般来说,使用 JTAG 的缺点是什么?
如果您使用 JTAG,它通常会占用应用程序中无法使用的多路复用管脚。一些目标使用替代的“单线”接口,例如 ARM 的 SWD。
如果您使用片上调试来停止处理器,这可能会改变您的系统实时行为或导致通信链路上的数据丢失或错过异步事件或中断。
推荐阅读
- c# - ASP.NET MVC C# Google Drive API 重定向不匹配 URI
- python - 在python中动态访问列表项
- python - 如何使用我的 python 包发布我的单元测试
- node.js - 多个 URL(UI 页面和 API)的 Nginx 位置正则表达式?
- pandas - 了解 Pandas 系列数据结构
- android - 无法解决这个错误?Kotlin(二维码阅读器)
- python - MetPy 0.12->1.1 升级后从 THREDDS 服务器创建卫星图像时出错
- c++ - c++ 使用 condition_variable 作为产生线程的类的类成员
- c# - 出现错误“无法从 'double' 转换为 'System.ReadOnlySpan
" 分配变量时 - c# - if 语句检查用户是否将文本框留空 - 问题