问题标签 [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.
stm32 - Jtag 无效确认
我在带有 sysfsgpio bitbang 接口的 ARM9 上使用 OpenOCD,并尝试调试 Cortex M3 stm32f103 微控制器。使用的操作系统是嵌入式 debian。不幸的是,在获得设备 ID 后,我不断从目标收到错误的 ACK(警告,jtag DP 事务中的无效 ACK 0x4)。
您对导致问题的原因有任何见解吗?我在示波器上绘制了每个信号,没有发现任何问题,我还使用 olimex jtag-key 检查了目标设备,它正在工作。
gdb - 软件中断异常还是未定义指令异常?
我正在使用 JTAG 连接器和 gdb 在裸机 ARM(符合 v5TE)上运行程序。该程序以管理员模式从某个 SDRAM 运行,并且仅使用 arm 指令。
在某些时候会发生异常。使用 ctrl+CI 停止 gdb 可以看到 CPSR 指示未定义的异常模式,但是程序计数器指示软件中断异常 ( 0xffff0008
)。根据ARM ARM,当发生未定义的指令异常时,PC_und
应该是0xffff0004
或0x00000004
。我的程序发生了什么,是否发生了 SWI 或未定义的指令异常?
编辑以使我的问题更清楚:
我的程序目的是测试定制板的硬件。当出现硬件问题时,RAM 中的程序可能会损坏(如下所示),这是产生异常的原因。当硬件正常时,测试软件运行没有问题。我的 RAM 地址范围从 0 到 0x40000000,程序加载在 0x1000 和 0x2000 之间。监督模式堆栈指针设置为 0xff0。中断向量仅包含断点。
未定义异常模式的寄存器:
从管理员模式注册:
这是 RAM 中的(损坏的)程序,位于主管链接寄存器指向的地址周围:
从程序目标文件转储:
debugging - 将 OpenOCD 连接到 BeagleBone,无法识别 ftdi 设备
我正在尝试通过 Windows 7 x64 上的板载 FTDI JTAG 仿真器将 openOCD 连接到 BeagleBone。我已经安装了 BeagleBone 附带的 ftdi 驱动程序 64 位。当我将 BBone 连接到 Windows 时,USB 串行转换器 A 和 B 与 COM 端口一起显示。
设备管理器的硬件 ID 显示为:
我已经下载了带有 32 位和 64 位二进制文件和 ti_beaglebone.cfg 脚本的 openOCD 0.6.1,并且 VID PID 与上述匹配。
我试过执行:
但它根本不识别 FTDI 并显示以下行:
我已经尝试过 OpenOCD 的 32 位和 64 位二进制文件,但没有运气。
任何帮助,将不胜感激
谢谢
fpga - 佐世保 GII virtex5 fpga 配置
我正在使用带有两个 FPGA 的 Sasebo GII 板:Xilinx Spartan 和 Xilinx Virtex5(并且该板有几个单独的 JTAG 接口用于配置 fpgas)。
我在 Linux 下使用 ISE 14.4,但在配置 Virtex 5 FPGA 时遇到了一些麻烦。(斯巴达没有问题)。
我正在使用“影响”将配置文件发送到 FPGA。一开始 Impact 扫描电路板并发现 Spartan FPGA 没有问题,我可以对其进行配置,但是当我将电缆插入另一个接口并按下 Impact 上的扫描时,它说:
“检测到许多未知设备。按是继续或按否停止。”
如果我按下 NO 选项,那么显然什么也没有发生 :-) 如果我点击 YES 失败,我可以手动添加 Virtex5 FPGA,但它无法将配置文件上传到它(甚至在我尝试时失败)检测设备 ID)。
我已经尝试了板上所有的 JTAG 接口,没有。
使用 SPARTAN FPGA 在同一块板上进行相同的操作,所以我被卡住了。有任何想法吗 ?
embedded - ICSP SendCommand 标头中第 4 位的 TDO 是什么意思?(PIC32MX,ICSP 2 线 4 相)
现在我正在尝试实现 PIC32MX 的闪存编程规范。我正在使用 PIC32MX512L 和 PIC32MX512H。PIC32MX512L 最终必须将程序传输到 PIC32MX512H 的两条线 PGEC2 和 PGED2。
现在我正在尝试执行检查设备操作。按照规定,我通过 MCLR 杂耍进入编程模式,并在 TMS 时钟上执行 SetMode (6b011111),同时 TDI 时钟保持低电平。TAP 控制器回复零(每个 TDO 为低电平)。
之后,我必须执行 SendCommand( MTAP_SW_MTAP ) 来选择 MTAP 控制器。要移位的序列是
每对的第一位是 TDI,第二位是 TMS。我在第一个时钟上写入 TDI,在第二个时钟上写入 TMS,并在第三个和第四个时钟上读取 TDO。该序列从左到右馈送。移位的位在每个时钟下降期间保持其值。
问题
移位前 4 对后,TDO 线在第四对上变为高电平(在第三个时钟上),并在该 4 相部分结束时(在第四个时钟上)变为低电平。我在上面的序列中用下划线标记了这个位置。之后,控制器将忽略任何进一步的命令。在下一个 SendCommand( MTAP_COMMAND ) 上,TDO 保持低电平,然后对于 XferData( MCHP_STATUS ) TDO 仍然保持低电平,无论我多久发送一次命令。
我用我的示波器做了一个小屏幕截图。蓝线是时钟,绿线是数据。我的意思是右边的跳跃。
问题
有谁知道 TAP 控制器在第四阶段 TDO 高时试图告诉我什么?
先感谢您!
windows - 使用 olimex arm-usb-ocd-h jtag 加密狗的带有 phytec lpc3250 目标的 Windows 无效命令“jtag”上的 openocd
有人可以帮我理解 openocd 的“无效命令名称”错误吗?一些细节:
- openocd 0.7.0 Windows 二进制文件
- olimex arm-usb-ocd-h 加密狗
- lpc3250基于phytec的板
我已经完成的步骤:
- 从http://www.freddiechopin.info/en/download/category/4-openocd下载文件“openocd-0.7.0.7z”
- 将其提取到“c:\oocd7\”。
- 按照“c:\oocd7\drivers\libusb-1.0drivers.txt”中的说明运行“sadig.exe”为以下三个USB设备安装“libusb-win32”驱动程序。
- 然后得到下面详细说明的错误。
命令和错误截图:
已安装“libusb-win32”驱动程序的设备:
非常感谢任何评论!
gdb - GDB、JTAG 和 CPU32 的问题
我正在使用 GDB 和 JTAG 设备 Abatron BDI2000 来调试在摩托罗拉 M68332 上运行的程序。
68332 没有任何硬件断点寄存器。它具有非常原始的调试功能。构建工具不会生成“elf”文件,因此没有可供 GDB 使用的符号。我正在调试的程序也在 Flash 中运行。
实际上 68332 只有一条调试指令 ti。ti 自己跳到下一条汇编指令。ti xxx 步骤直到到达地址 xxx。[是的,这是穴居人时代,冷锤和凿子:)]
我可以使用带有目标遥控器的 GDB 连接到 BDI2000 并发出 GDB 命令“nexti”。由于 68332 的限制,'stepi' 等价于 'nexti'。
单步是唯一可用的命令。
监控命令“monitor ti”状态将程序计数器更改为步进。
如果使用更改寄存器的“监视器”命令,则 GDB 不知道该命令,并且其寄存器缓存变得不同步。我创建了 GDB 函数,每个函数的末尾都有 GDB 命令“flushregs”。这标志着寄存器缓存变脏。GDB 命令将获取一组新的寄存器。
我想创建一个符号表文件进行调试,但没有找到任何关于 GDB 符号文件格式的文档。
我的设置有其他选择吗?我确实有 Flash 区域的 RAM 覆盖。这会允许软件断点吗?
提前感谢您的任何建议。
gdb - 如何编写 GDB 函数来与程序计数器进行比较
我正在尝试编写一个循环的 gdb 函数,直到传递的参数等于程序计数器。
我正在使用原始 CPU 68332。没有硬件断点。没有支持 GDB 软件断点的操作系统,只有一个指令步骤。GDB 提供了“next count”的“软件”仿真。JTAG 提供运行寻址。
但是,由于某种原因,JTAG 在用于运行寻址时会压倒 CPU,并且出现总线错误。我似乎只能可靠地使用“步骤”单指令。
如果我使用 GDB 'step' 到该地址,我不会收到总线错误。
下面是我对这种 GDB 功能的尝试。
我似乎无法获得正确的语法才能让 GDB 接受并运行该函数。
什么是正确的语法?
debugging - Jtag Trace 32 - 在地址范围内设置断点
这是关于 JTAG 的问题。
我正在尝试在一系列地址中设置读/写断点。
我在 b.set 窗口中给出的命令如下(并选择读/写)
但是当我列出它(b.list)时,它显示如下:
为什么要附加 0x0?那么,我想要放置断点的原始地址范围是否被更改?
附加信息:我正在使用 Lauterbach Trace 32。CPU 是 ARm Krait
谢谢你。
c++ - 在线 JTAG/RGH 源代码编译时错误
我正在尝试为 JTAG/RGH 在线服务器方法编译此源代码。尝试编译时出现错误。下面是输出错误日志。
如果有人可以帮助我,那就太好了。