你好,
我的连接是不稳定的使用JTAG与我的定制板。
首先,我可以检测我的主板,但当我进入工具箱,下载引导程序固件时,它出错了。
日志显示如下:
[INFO General @19-01-11 16:33:26]找到ID为0x0BB11477的SWD-DP
[INFO General @19-01-11 16:33:26] Found Cortex-M0 r0p0, Little end。
[INFO General@19-01-11 16:33:26]FPUnit:4个代码(BP)插槽和0个文字插槽
[信息概述@19-01-11 16:33:26]核心瞄准具组件:
[信息概述@19-01-11 16:33:26]ROMTbl 0@E00FF000
[INFO General @19-01-11 16:33:26] ROMTbl 0 [0]: FFF0F000, CID: B105E00D, PID: 000BB008 SCS
[信息概述@19-01-11 16:33:26]ROMTbl 0[1]:FFF02000,CID:B105E00D,PID:000BB00A DWT
[INFO General @19-01-11 16:33:26] ROMTbl 0 [2]: FFF03000, CID: B105E00D, PID: 000BB00B FPB
[信息概述@19-01-11 16:33:26]已选择BTLE设备。
[信息概述@19-01-11 16:33:34]找到ID为0x0BB11477的SWD-DP
[ERROR General@19-01-11 16:33:34]读取DP Ctrl Stat寄存器时发生DAP错误。
[INFO General @19-01-11 16:33:35]无法测量总的IR len。TDO是恒定的高。
[INFO General @19-01-11 16:33:35]无法测量总的IR len。TDO是恒定的高。
[INFO General @19-01-11 16:33:35]无法测量总的IR len。TDO是恒定的高。
[ERROR General @19-01-11 16:33:35] unable not read memory address 0x50003200 with function JLINKARM_ReadMemHW .
[INFO General @19-01-11 16:33:35]无法测量总的IR len。TDO是恒定的高。
[ERROR General @19-01-11 16:33:35]无法读取内存地址0x50003201与函数JLINKARM_ReadMemHW
[INFO General @19-01-11 16:33:35]无法测量总的IR len。TDO是恒定的高。
[常规错误@19-01-11 16:33:35]无法使用函数JLINKARM_ReadMemHW读取内存地址0x50003202
[INFO General @19-01-11 16:33:35]无法测量总的IR len。TDO是恒定的高。
[ERROR General @19-01-11 16:33:35] unable not read memory address 0x50003200 with function JLINKARM_ReadMemHW .
[INFO General @19-01-11 16:33:35]无法测量总的IR len。TDO是恒定的高。
[ERROR General @19-01-11 16:33:35]无法读取内存地址0x50003204与函数JLINKARM_ReadMemHW
[INFO General @19-01-11 16:33:35]无法测量总的IR len。TDO是恒定的高。
[常规错误@19-01-11 16:33:35]无法使用函数JLINKARM_ReadMemHW读取内存地址0x50003208
[INFO General @19-01-11 16:33:35]无法测量总的IR len。TDO是恒定的高。
[常规错误@19-01-11 16:33:35]无法使用函数JLINKARM_ReadMemHW读取内存地址0x5000320c
[INFO General @19-01-11 16:33:35]无法测量总的IR len。TDO是恒定的高。
[ERROR General @19-01-11 16:33:35] failed read memory address 0x50040200 with function JLINKARM_ReadMem .
[INFO General @19-01-11 16:33:35]无法测量总的IR len。TDO是恒定的高。
[常规错误@19-01-11 16:33:35]无法使用函数JLINKARM\u ReadMem读取内存地址0x50040204
[INFO General @19-01-11 16:33:35]无法测量总的IR len。TDO是恒定的高。
[ERROR General @19-01-11 16:33:35] failed read memory address 0x50040208 with function JLINKARM_ReadMem .
[INFO General @19-01-11 16:33:35]无法测量总的IR len。TDO是恒定的高。
[常规错误@19-01-11 16:33:35]无法使用函数JLINKARM\u ReadMem读取内存地址0x5004020c
[错误概述@19-01-11 16:33:35]打开JLink连接时未找到已知芯片。正在终止进程。。。
[ERROR Booter@19-01-11 16:33:35]无法将固件文件下载到主板。
怎么了?我的电缆还是我的线路板?

嗨daniel59,
这是来自Jlink软件而非智能代码段的指示(通过JTAG连接时,智能代码段使用Jlink访问设备)。您提到您有一个定制电路板,那么您的定制PCB上是否有JTAG,或者您正在使用Pro或Basic DK来编程您的电路板?我强烈建议您在SmartSnippets工具箱的Board Setup(电路板设置)选项卡中检查是否正确配置了SPI闪存引脚。自定义PCB上的处理器与尝试与设备通信的Jlink fw之间可能没有连接。这可能是任何连接到PCB的问题,使580无法运行。我的建议是检查引导加载程序是否正在执行,以验证580是否正常工作。您可以探测P04和P05引脚,这些引脚应该在引导加载程序的执行部分进行切换,因此当连接到终端时,您应该看到设备正在打印垃圾。另外,我建议您使用Jlink本身连接电路板,而不是使用智能代码段,并且我会尝试通过Keil下载代码。
谢谢,PM_Dialog
你好,下午对话,
我想我正在使用一个定制的JTAG设备,连接到我的定制板上。
我可以使用Keil进入调试会话,但当我使用ble_app_barebone项目运行代码时,它会进入代码:
if ((GetWord16(SYS_STAT_REG) & DBG_IS_UP) == DBG_IS_UP
__asm(“BKPT # 0 \ n”);
我测试了我的5块板,只有1块板可以通过代码。
我的电路板质量不好吗?
嗨daniel59,
你能澄清一下你对定制JTAG设备的意思吗?你使用的是哪个版本的J-Link?这意味着你得到了一个NMI。你能试着调试你的代码并找出NMI的原因吗?你的应用程序代码在哪里卡住了?如果你不知道如何找到NMI的原因,我建议你看看教程8:调试method_v1.1从我们的支持门户。此外,很可能是错误是由于您的PCB质量差。
谢谢,PM_Dialog
你好,下午好
呃…我指的是定制的J-link设备。它类似于J-link EDU Mini,但只有swdio、swclk、vcc和gnd。
我使用的是jlink v5.12f, SmartSnippets studio v2.0.6推荐da14580使用它。
我查看了教程8,但我无法找到使用这两种方法的错误所在。
我在考虑我的电源。常用的J-link是直接连接swdio引脚25,swclk引脚26,vcc引脚15和gnd引脚16,使用QFN40 DA14580。
但是对于我,因为我想充电电池和JTAG,我连接swdio销25日swclk销26,接地针16但vcc电池管理芯片ltc4054锂电池充电,然后将电池连接到3.3 v LDO, LDO 3.3 v输出连接到15针。
这会让事情变糟吗?
我尝试了很多次,有时工具箱可以找到芯片,但显示CPU无法停止,有时工具箱不能找到芯片,有时它直接显示写文件失败D:桌面\empty_peripheral_template_580。十六进制地址20000000。
嗨daniel59,
请注意,我们在开发板中使用H-Link Lite,我不完全确定我们是否曾经使用过J-Link EDU Mini。你能不能试着用Keil把固件下载到SysRAM中,以确保你的定制板正常工作?只有一个董事会有这个问题,还是所有董事会都有?
谢谢,PM_Dialog
你好,下午好
使用Keil将固件下载到SysRAM是否意味着使用Keil进入调试会话?
只有我的一些董事会有这个问题……
有时日志显示无法启动CPU核心。(错误代码:1)。
和一些板后,我尝试和尝试它可以连接的SPI Flash程序员,但然后下一次失败。如附件日志所示。
我用J-link连接电路板的电缆长度会影响连接吗?
丹尼尔
嗨daniel59,
请检查您是否从SmartSnippet的“引导器和线路板设置”选项卡正确配置了SPI闪存引脚?“SPI闪存引脚配置”应根据您的电路板连接情况而定。您提到您可以连接到SPI闪存,那么当尝试读取或写入闪存时程序失败时?电缆的长度可能是一个问题,因此请尝试使用较短的电缆。关于系统内存,是的,我想用Keil下载你的固件。这有点奇怪,所以这可能是PCB上的硬件问题。你还提到只有一些董事会有这个问题,所以让我问你一些事情来澄清。除了这些电路板,你能告诉我你有没有功能齐全的电路板(连接、读、写SPI闪存、可引导和开始广告)?
谢谢,PM_Dialog
你好,下午好
使用keil,当我运行代码,使用ble_app_barebone项目,它进入代码:
if ((GetWord16(SYS_STAT_REG) & DBG_IS_UP) == DBG_IS_UP
__asm(“BKPT # 0 \ n”);
我的意思是SPI闪存错误,例如,这次我按下connect,它显示成功,下次我按下connect,它显示失败。
是的,我有一个功能齐全的电路板,可以正确连接。所以我认为J-link设备工作正常。
丹尼尔
嗨daniel59,
这意味着你的应用程序代码在某个地方卡住了NMI_HandlerC或HardFault_HandlerC。你能解释一下哪里卡住了吗?我已经向您推荐了一篇教程,教你如何找到NMI / HARDFAULT的原因。因为你有功能板,你运行一些代码,我认为你的一些板有硬件问题。
谢谢,PM_Dialog
你好,下午对话,
是的,我尝试了第8教程,两种方法都不起作用。
Show callee just jump to __asm("BKPT #0\n");
MSP方法显示地址0xFFFF0000;也就是MOVS r0,r0
也许是因为我的定制j-link设备?
有什么方法可以检测出坏的芯片或板吗?
嗨daniel59,
您是否检查了引导加载程序是否正在执行,以验证580操作是否正确?您可以探测P04和P05引脚,并且该引脚应该被切换到引导加载程序的执行部分,因此当连接到终端时,您应该看到设备打印垃圾。
谢谢,PM_Dialog