Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了我可以使用JTAG在嵌入式Linux上调试我的程序吗?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我正在使用at91sam9260进行开发.有一个 Linux内核在其中运行,我在它上面启动我自己的软件. 我想知道我是否可以使用JTAG调试器来调试我正在处理的软件,而不会看到Linux内核的大部分内容? 我问这是因为我认为在看到完整的Linux执行时调试我的软件会变得非常复杂. 换句话说,我想知道在使用JTAG探针进行调试时是否会有一些抽象层? 通常是的,你可以使用jtag作为调试器与你在该处理
我正在使用at91sam9260进行开发.有一个 Linux内核在其中运行,我在它上面启动我自己的软件.

我想知道我是否可以使用JTAG调试器来调试我正在处理的软件,而不会看到Linux内核的大部分内容

我问这是因为我认为在看到完整的Linux执行时调试我的软件会变得非常复杂.

换句话说,我想知道在使用JTAG探针进行调试时是否会有一些抽象层?

解决方法

通常是的,你可以使用jtag作为调试器与你在该处理器上运行的软件完全无关.你可以遇到麻烦的地方是缓存,例如,如果你停止处理器想要更改ram中的一些指令,并重新启动,ram中指令的更改是一个数据访问,它不通过指令缓存而是数据缓存,如果你有一个单独的指令和数据缓存,它们被启用,你修改的一些指令位于指令缓存中的地址,你可以快速搞砸新的和陈旧的指令被送到处理器. Linux喜欢使用缓存.

第二个是mmu,处理器/ jtag可能在mmu的处理器端的虚拟地址而不是物理地址上运行,因此取决于硬件的工作方式,如果你在调试单元中的地址设置断点处理器和操作系统任务切换到同一地址空间的一个程序/线程,您将在正确的地址错误的程序上断点.如果调试器/处理器通过修改ram中的指令来设置断点,那么你会遇到上面的缓存问题,如果没有缓存,那么你将在正确的线程中中断正确的指令,但是你有缓存问题.

毫无疑问,如果处理器支持基于jtag的调试,那么根据您选择在该处理器上运行的任何软件,该调试不会发生变化.

大佬总结

以上是大佬教程为你收集整理的我可以使用JTAG在嵌入式Linux上调试我的程序吗?全部内容,希望文章能够帮你解决我可以使用JTAG在嵌入式Linux上调试我的程序吗?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。