加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

我可以使用JTAG在嵌入式Linux上调试我的程序吗?

发布时间:2020-12-14 01:06:42 所属栏目:Linux 来源:网络整理
导读:我正在使用at91sam9260进行开发.有一个 Linux内核在其中运行,我在它上面启动我自己的软件. 我想知道我是否可以使用JTAG调试器来调试我正在处理的软件,而不会看到Linux内核的大部分内容? 我问这是因为我认为在看到完整的Linux执行时调试我的软件会变得非常复
我正在使用at91sam9260进行开发.有一个 Linux内核在其中运行,我在它上面启动我自己的软件.

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

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

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

解决方法

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读