问题标签 [jtag]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
eclipse - 使用 Eclipse 调试嵌入式系统 - 如何打印到日志文件?
我目前正在开发一个关于 STM32F4 的项目,并且正在使用 Eclipse。我的程序有一些问题——它似乎有一个随机的行为——有时它工作正常,有时它有一些错误。有时当我尝试使用断点进行调试时,我得到了漂亮的 HardFault Handler,它真的让我的大脑一团糟。
抱歉,有点离题,只是想让您知道为什么我决定在程序的某些关键时刻使用打印到日志文件,以便我可以查看问题发生在哪些状态和哪些功能中。我正在通过 Eclipse (gdb) 的 JTAG 接口进行调试,我需要知道 Eclipse 中是否集成了一种简单的方法,可以帮助我在程序中使用类似 fprintf 的函数来写入磁盘上的文件。
如果没有,还有其他解决方案吗?
谢谢
linux - 读取 NAND 闪存并将其写入另一个系统
我有一个嵌入式系统,我想读取它的 nand flash 并将其写回另一个系统的 nand flash。我可以访问在设备上运行的 Linux 系统的根目录。该系统基于 AM3874,我也可以访问它的 JTAG。我的问题是:
1-我可以通过以root身份登录系统并将nand flash数据写入SD卡然后一个新系统将其写回nand flash来做到这一点吗?
2- 如果上述问题的答案是肯定的,我需要什么程序和什么软件?
3- 如果答案是否定的,我可以使用 JTAG 接口读取 NAND Flash 并将其写入另一个设备吗?
kernel - JTAG + openocd + 内核调试(vmlinux 中没有调试信息?)
当我从 Eclipse 连接到目标时,我收到以下消息:
但之后当我停止运行内核时:0xc06f2674
No source available for ""
此外,当我尝试步进时:目标请求失败:找不到当前函数的边界。
vmlinux中似乎没有符号。但是内核是在设置了 DEBUG_KERNEL 和 DEBUG_INFO 的情况下重建的。
内核 2.6.39 CPU AT91SAM9G25
debugging - 使用 Jtag 进行 Linux 调试 - [ARM9][AT91SAM9G25] - Amontec、openocd、gdb、eclipse
我正在尝试使用此系统启动内核调试:Amontec JTAGkey2、openocd、gdb、eclipse。
最后,我想调试在其中运行的内核和应用程序。我的问题很少,看来我需要依次解决。现在我有 CPU 暂停/恢复、读/写 RAM 缺少什么:步入、步过、C/C++ 级调试。
我执行以下操作: - 连接 JTAG,启动板,通过 Uboot 使用调试消息启动 uImage - 启动 openocd:
输出:
问题从这里开始:
开放式:
蚀:
JTAG似乎也试图将代码加载到0x0中,我想这是不正确的:
更新 1:
在分析了一些ARM的在线教程后:
Eclipse Reset 和 Halt 命令不能完美运行。最好取消选中它们并写入命令窗口。还可以添加加载地址:
我不使用
我让 Uboot 启动并初始化 RAM 和其他外围设备。然后我通过进入 shell 来停止 Uboot。然后我让eclipse将linux写入RAM,并启动它。这需要很长时间,但效果更好。内核在 RPC 初始化时启动和停止,而不返回控制台。
- 是否可以在 Uboot 控制台中将内核加载到 RAM 中,然后启动 JTAG 会话?
- [load ...] 和 [monitor load...] 命令有什么区别
- 为什么我需要加载 /compressed/vmlinux 而不是 uImage ?
- 在 Eclipse 窗口中,我有两个加载字段:加载图像我加载符号。我禁用了这两个选项,但只写了 load arch/arm/boot/compressed/vmlinux 0x22000000。这可能是下一个问题的原因吗?
更新 2:好的。谢谢你的提示。
我已经取得了一些进展。你能给我一些建议吗,也许我还是做错了什么。
现在我的内核在 JTAG 控制下运行,但我仍然无法在源代码级别进行调试。
我这样做:
- 给板子加电,进入uboot shell。
- 开始 openOCD 会话
在内核调用的 bootm.c 中设置 Uboot 断点:
/li>开始 Eclipse 调试会话:
- 监控暂停
加载没有偏移量的uboot-a
/li>启动uboot并让它运行
- uboot 停止“theKernel”调用
我知道内核位于地址 0x20008000。
- 重启 openOCD 会话
使用内核配置再次启动 ecipse 调试器:
- 监控暂停
在地址 0x20008000 上加载内核
/li>- 启动调试会话
现在一切正常,内核启动,但我仍然无法在源代码级别进行调试。
“符号不可用”
DEBUG 和 DEBUG_INFO 为内核打开。
vmlinux 截图
在我看来,这个文件中有大约 50 个函数符号。
usb - USB JTAG 脚本
我需要编写一个脚本来通过 JTAG-USB(Texas Instrument 的 XDS100v2)连接 Texas Instrument 的 RM48x,以实现边界扫描,因为 Texas Instrument 的工具都没有这样做。
有一些工具可以做到这一点,但它们都非常昂贵,我的项目没有钱。
这里有人试过吗?或者至少这里有人知道从哪里开始吗?
c - 我如何用 avrdude 擦除除 EEPROM 之外的所有内容?
我有2个主要文件。一个写入 EEPROM,另一个从 EEPROM 读取。我想做以下事情:
- Flash main.hex(写入 EEPROM 的那个)
- 擦除除 EEPROM 内容外的所有内容
- Flash main.hex(从 EEPROM 读取的那个)
我在 Windows 7 上将AT90CAN128与JTAG ICE mkII
一起使用。
我通过以下方式执行 avrdude:
debugging - 调试微处理器
我们的协处理器之一是 8 位微处理器。它的主要作用是控制处理闪存的硬件。我们怀疑它运行的代码效率非常低,因为我们在读取/写入闪存时测量了低速。问题是,我们只有一个连接到主 CPU 的 J-TAG 端口,因此无法调试它。我们所拥有的是一个可从 CPU 获得的寄存器,其中包含微处理器的程序计数器。坏消息是,微处理器的工作频率与 CPU 不同,因此在外部监控它的程序计数器也很困难。测量微处理器内部的时间也非常困难,因为它的寄存器只有 8 位长。不用说,代码是汇编代码并且非常复杂。你将如何解决这个问题?
multithreading - 面向初学者的基于 ARM 处理器的开发板
- 我想买一块基于 ARM 微处理器的板子,谁能告诉我哪个是最好的(就功能而言)和成本效益?
- 我需要购买哪些硬件/软件工具和电缆(用于调试、IDE 等)?
(注: 要测试的多线程代码,RTOS(Linux,ThreadX等),硬件调试)
linux-kernel - 通过jtag在目标上加载linux内核
我正在尝试通过 AM3517 评估板上的 JTAG 加载和启动 linux 内核。我的调试器是 BDI3000。我没有使用 openocd,因为根据调试器的文档,它不是必需的。到目前为止,我认为我能够将 vmlinux 映像加载到内存中,但是一旦完成,“cont”gdb 命令就不会启动 linux。我没有在串行控制台上收到任何消息。
我正在按照此链接http://elinux.org/Debugging_The_Linux_Kernel_Using_Gdb中给出的说明进行操作
尝试获取链接中提到的 log_buffer 的地址给了我以下输出
我在互联网上搜索了很多,但找不到正确的答案。不知道我做错了什么。
vb.net - 从 VB.net 中的微控制器读取实时 RAM 变量
当程序在微控制器上运行时,我想通过 JTAG 端口实时读取全局变量。可能吗?