错误125,AGDI:内存写入失败

⚠️
你好。。谢谢你来到论坛。令人兴奋的消息!我们现在正在迁移到新的论坛平台,该平台将提供更好的功能,并包含在主对话网站中。所有员额和帐户都已迁移。我们现在只接受新论坛的流量-请在//www.xmece.com/support. 我们将在未来几天内修复bug/优化搜索和标记。
16个员额/0个新员额
最后一篇文章
里德祖维利
离线
最后一次见到:1年7个月前
加入:2017-11-24 03:10
错误125,AGDI:内存写入失败

你好

我仍然是新的编程固件与keil和da14580DEVKT-B sdk板。

当我以前编译和调试时,运行示例代码没有问题。

然而,在我的Jlink firware升级之后,不知何故,在调试时,出现了以下错误:

***错误125,第10行:AGDI:内存写入失败(0x50000012)

下面是在Keil中运行debug的输出。

以代码大小限制运行:32K
将JLink项目文件设置为“C:\a\DA1458x\5.0.4\projects\target\u apps\ble\u examples\ble\u app\u peripheral\Keil\u 5\JLinkSettings.ini”*JLink信息:已选择设备“CORTEX-M0”。

JLink信息:
------------
DLL:V6.46d,编译于2019年6月7日17:33:40
固件:J-Link OB-SAM3U128 V1已编译2019年1月7日14:05:40
硬件:V1.00
序列号:480063501

*JLink信息:找到ID为0x0BB11477的SW-DP
*JLink信息:扫描AP地图以查找所有可用AP
*JLink Info:AP[1]:当到达AP映射的末尾时,停止AP扫描
*JLink信息:AP[0]:AHB-AP(IDR:0x04770021)
*JLink Info:迭代AP映射以查找要使用的AHB-AP
*JLink信息:AP[0]:找到核心
*JLink Info:AP[0]:AHB-AP ROM底座:0xE00FF000
*JLink信息:CPUID寄存器:0x410CC200。实施者代码:0x41(ARM)
*JLink信息:发现Cortex-M0 r0p0,Little endian。
*JLink信息:FPUnit:4个代码(BP)插槽和0个文字插槽
*JLink信息:CoreSight组件:
*JLink信息:ROMTbl[0]@E00FF000
*JLink信息:ROMTbl[0][0]:E000E000,CID:B105E00D,PID:000BB008 SCS
*JLink信息:ROMTbl[0][1]:E0001000,CID:B105E00D,PID:000BB00A DWT
*JLink信息:ROMTbl[0][2]:E0002000,CID:B105E00D,PID:000BB00B FPB
ROMTableAddr=0xE00FF000
*JLink Info:Reset:通过DEMCR.VC\U CORESET重置后停止堆芯。
*JLink Info:Reset:通过Airr.SYSRESETREQ重置设备。

目标信息:
------------
设备:ARMCM0
V目标=3.300V
引脚状态:TCK:0、TDI:1、TDO:1、TMS:1、TRES:1、TRST:1
硬件断点:4
软件断点:8192
观察点:2
JTAG速度:2000 kHz

加载“C:\\a\\DA1458x\\5.0.4\\projects\\target\u apps\\ble\u examples\\ble\u app\u peripheral\\Keil\u 5\\out\u 580\\ble\u app\u peripheral\u 580.axf”
*JLink Info:Reset:通过DEMCR.VC\U CORESET重置后停止堆芯。
*JLink Info:Reset:通过Airr.SYSRESETREQ重置设备。
包括“C:\\a\\DA1458x\\5.0.4\\projects\\target\u apps\\ble\u examples\\ble\u app\u peripheral\\Keil\u 5\\\\\\\\\\\\\\\\\sdk\\common\u project\u files\\misc\\sysram\u case23.ini”
/**
****************************************************************************************
*通过调试器接口(如JLink等)加载DA1458x对象脚本。
*此脚本的目标是将Keils的对象文件加载到DA1458x RAM
*确保DA1458x先前已清理。
****************************************************************************************
*/

//写入DA1458x SYS\U CTRL\U REG->生成软件重置,启用调试器
_WWORD(0x50000012、0x80a4)
^
***错误125,第10行:AGDI:内存写入失败(0x50000012)

//上一个命令(SW reset)解除对处理器的锁定
//写入Cortex-M0 DHCSR核心调试寄存器->暂停Cortex-M0
_WDWORD(0xe000edf0,0xa05f0003)
^
***错误125,第14行:AGDI:内存写入失败(0xE000EDF0)

//执行调试器重置之前所需的睡眠时间(毫秒)
_睡眠(1000)

//调试器重置(检查Keil调试器设置)
//预选的重置类型(在选项->调试->设置中找到)正常(0):
// - Normal:通过SYSRESETREQ和VECTRESET位重置核心和外设
重置
*JLink Info:Reset:通过DEMCR.VC\U CORESET重置后停止堆芯。
*JLink Info:Reset:通过Airr.SYSRESETREQ重置设备。

//加载对象文件
加载%L
*JLink Info:Reset:通过DEMCR.VC\U CORESET重置后停止堆芯。
*JLink Info:Reset:通过Airr.SYSRESETREQ重置设备。

//加载堆栈指针
SP=RDWORD(0x20000000)

//加载程序计数器
$=\u RDWORD(0x2000004)

FUNC void disp_memlog(void)
{
int-idx;
无符号整数最小增量;

exec(“log>Memlog.log”);

printf(“\n\n***内存记录结果***\n\n”);

printf(“>>>环境堆<\n”);
printf(“此堆中使用的大小:%4d(当前)-%4d(最大)\n”,内存日志[0]。使用的内存日志[0]。最大使用的内存日志[0];
printf(“在其他堆中使用的大小:%4d(当前)-%4d(最大值)\n\n”,内存日志[0]。使用的内存日志[0]。最大使用的内存日志[0];

printf(“>>>DB HEAP<<\n”);
printf(“此堆中已使用的大小:%4d(当前)-%4d(最大)\n”,内存日志[1]。已使用的内存日志[1]。已使用的最大内存日志[1];
printf(“其他堆中使用的大小:%4d(当前)-%4d(最大值)\n\n”,内存日志[1]。使用的内存日志[1]。最大使用的内存日志[1];

printf(“>>>消息堆<<\n”);
printf(“此堆中使用的大小:%4d(当前)-%4d(最大)\n”,内存日志[2]。使用的内存日志[2]。最大使用的内存日志[2];
printf(“其他堆中使用的大小:%4d(当前)-%4d(最大值)\n\n”,内存日志[2]。使用的内存日志[2]。最大使用的内存日志[2];

printf(“>>>非Ret堆<\n”);
printf(“此堆中使用的大小:%4d(当前)-%4d(最大值)\n”,内存日志[3]。使用的内存日志[3]。最大使用的内存日志[3];
printf(“其他堆中使用的大小:%4d(当前)-%4d(最大值)\n\n”,内存日志[3]。使用的其他日志,内存日志[3]。最大使用的其他日志);

执行董事(“注销”);
}//disp_memlog()结束

设备:
里德祖维利
离线
最后一次见到:1年7个月前
加入:2017-11-24 03:10
附加信息:我正在使用

其他信息:Im使用“DA1458x\\5.0.4\\projects\\target\u apps\\ble\u examples\\ble\u app\u peripheral”示例代码。

PM_对话框
离线
最后一次见到:10小时22分钟前
工作人员
加入:2018-02-08 11:03
嗨,里奇·维利,

嗨,里奇·维利,

我认为此问题与JLink更新无关。可能是您禁用了调试器。您是否对SDK的ble_app_外围示例进行了任何修改?您是否烧坏了SPI闪存或只是尝试将固件下载到系统RAM中?您是否可以用另一个SDK示例复制此问题?

谢谢,下午好

里德祖维利
离线
最后一次见到:1年7个月前
加入:2017-11-24 03:10
你好

你好

我没有对ble_app_外围设备做任何修改。

我正试图用debug运行这个程序。以前我运行它没有问题。

我正在尝试另一个ble示例,同样的错误也存在。

里德祖维利
离线
最后一次见到:1年7个月前
加入:2017-11-24 03:10
我什么也没做

我没有对ble_app_外围设备做任何修改。

我正试图用debug运行这个程序。以前我运行它没有问题。

我正在尝试另一个ble示例,同样的错误也存在。

我正在使用此文档:

DA14580 Bluetooth®智能开发工具包–基本UM-B-025

附件是keil发来的,这可能是个问题吗?

附件:
PM_对话框
离线
最后一次见到:10小时22分钟前
工作人员
加入:2018-02-08 11:03
嗨,里奇·维利,

嗨,里奇·维利,

请检查附加的快照。您能说明一下您是否有相同的配置吗?一旦设置了正确的跳线,就应该能够对电路板进行编程。

谢谢,下午好

附件:
里德祖维利
离线
最后一次见到:1年7个月前
加入:2017-11-24 03:10
你好

你好

我仍然按照你共享的图片进行跟踪。

唯一的区别是,它的DLL版本是v6.46d,而您的示例版本是v6.30c。

跳线按照教程正确设置。

结果如下:

以代码大小限制运行:32K
将JLink项目文件设置为“C:\a\DA1458x\5.0.4\projects\target\u apps\ble\u examples\ble\u app\u barebone\Keil\u 5\JLinkSettings.ini”*JLink信息:已选择设备“CORTEX-M0”。

JLink信息:
------------
DLL:V6.46d,编译于2019年6月7日17:33:40
固件:J-Link OB-SAM3U128 V1已编译2019年1月7日14:05:40
硬件:V1.00
序列号:480063501

*JLink信息:找到ID为0x0BB11477的SW-DP
*JLink信息:扫描AP地图以查找所有可用AP
*JLink Info:AP[1]:当到达AP映射的末尾时,停止AP扫描
*JLink信息:AP[0]:AHB-AP(IDR:0x04770021)
*JLink Info:迭代AP映射以查找要使用的AHB-AP
*JLink信息:AP[0]:找到核心
*JLink Info:AP[0]:AHB-AP ROM底座:0xE00FF000
*JLink信息:CPUID寄存器:0x410CC200。实施者代码:0x41(ARM)
*JLink信息:发现Cortex-M0 r0p0,Little endian。
*JLink信息:FPUnit:4个代码(BP)插槽和0个文字插槽
*JLink信息:CoreSight组件:
*JLink信息:ROMTbl[0]@E00FF000
*JLink信息:ROMTbl[0][0]:E000E000,CID:B105E00D,PID:000BB008 SCS
*JLink信息:ROMTbl[0][1]:E0001000,CID:B105E00D,PID:000BB00A DWT
*JLink信息:ROMTbl[0][2]:E0002000,CID:B105E00D,PID:000BB00B FPB
ROMTableAddr=0xE00FF000
*JLink Info:Reset:通过DEMCR.VC\U CORESET重置后停止堆芯。
*JLink Info:Reset:通过Airr.SYSRESETREQ重置设备。

目标信息:
------------
设备:ARMCM0
V目标=3.300V
引脚状态:TCK:0、TDI:1、TDO:1、TMS:1、TRES:1、TRST:1
硬件断点:4
软件断点:8192
观察点:2
JTAG速度:2667 kHz

包括“C:\\a\\DA1458x\\5.0.4\\projects\\target\u apps\\ble\u examples\\ble\u app\u barebone\\Keil\u 5\\\\\\\\\\\\\\\\sdk\\common\u project\u files\\misc\\sysram\u case23.ini”
/**
****************************************************************************************
*通过调试器接口(如JLink等)加载DA1458x对象脚本。
*此脚本的目标是将Keils的对象文件加载到DA1458x RAM
*确保DA1458x先前已清理。
****************************************************************************************
*/

//写入DA1458x SYS\U CTRL\U REG->生成软件重置,启用调试器
_WWORD(0x50000012、0x80a4)
^
***错误125,第10行:AGDI:内存写入失败(0x50000012)

//上一个命令(SW reset)解除对处理器的锁定
//写入Cortex-M0 DHCSR核心调试寄存器->暂停Cortex-M0
_WDWORD(0xe000edf0,0xa05f0003)
^
***错误125,第14行:AGDI:内存写入失败(0xE000EDF0)

//执行调试器重置之前所需的睡眠时间(毫秒)
_睡眠(1000)

//调试器重置(检查Keil调试器设置)
//预选的重置类型(在选项->调试->设置中找到)正常(0):
// - Normal:通过SYSRESETREQ和VECTRESET位重置核心和外设
重置
*JLink Info:Reset:通过DEMCR.VC\U CORESET重置后停止堆芯。
*JLink Info:Reset:通过Airr.SYSRESETREQ重置设备。

//加载对象文件
加载%L
*JLink Info:Reset:通过DEMCR.VC\U CORESET重置后停止堆芯。
*JLink Info:Reset:通过Airr.SYSRESETREQ重置设备。

//加载堆栈指针
SP=RDWORD(0x20000000)

//加载程序计数器
$=\u RDWORD(0x2000004)

FUNC void disp_memlog(void)
{
int-idx;
无符号整数最小增量;

exec(“log>Memlog.log”);

printf(“\n\n***内存记录结果***\n\n”);

printf(“>>>环境堆<\n”);
printf(“此堆中使用的大小:%4d(当前)-%4d(最大)\n”,内存日志[0]。使用的内存日志[0]。最大使用的内存日志[0];
printf(“在其他堆中使用的大小:%4d(当前)-%4d(最大值)\n\n”,内存日志[0]。使用的内存日志[0]。最大使用的内存日志[0];

printf(“>>>DB HEAP<<\n”);
printf(“此堆中已使用的大小:%4d(当前)-%4d(最大)\n”,内存日志[1]。已使用的内存日志[1]。已使用的最大内存日志[1];
printf(“其他堆中使用的大小:%4d(当前)-%4d(最大值)\n\n”,内存日志[1]。使用的内存日志[1]。最大使用的内存日志[1];

printf(“>>>消息堆<<\n”);
printf(“此堆中使用的大小:%4d(当前)-%4d(最大)\n”,内存日志[2]。使用的内存日志[2]。最大使用的内存日志[2];
printf(“其他堆中使用的大小:%4d(当前)-%4d(最大值)\n\n”,内存日志[2]。使用的内存日志[2]。最大使用的内存日志[2];

printf(“>>>非Ret堆<\n”);
printf(“此堆中使用的大小:%4d(当前)-%4d(最大值)\n”,内存日志[3]。使用的内存日志[3]。最大使用的内存日志[3];
printf(“其他堆中使用的大小:%4d(当前)-%4d(最大值)\n\n”,内存日志[3]。使用的其他日志,内存日志[3]。最大使用的其他日志);

执行董事(“注销”);
}//disp_memlog()结束

附件:
PM_对话框
离线
最后一次见到:10小时22分钟前
工作人员
加入:2018-02-08 11:03
嗨,里奇·维利,

嗨,里奇·维利,

如果您正在睡眠模式下运行代码,请尝试启动调试会话,然后再次单击以停止调试。通过这样做,您应该可以看到您的设备广告。如果要调试代码,请禁用休眠功能并运行代码。请拆下除JTAG连接用跳线外的所有跳线。如果已放置电池,请将其卸下。您是否检查运行SDK的任何其他示例?

谢谢,下午好

里德祖维利
离线
最后一次见到:1年7个月前
加入:2017-11-24 03:10
1.我怎样才能保证睡眠

1.如何启用睡眠/取消睡眠模式/禁用睡眠功能?

2.我一直在尝试运行调试模式,但没有成功地获得上述输出,

3.我已经检查了所有其他示例,blinky正在工作,因为它不使用参数/内存。其他Ble在运行调试时也有相同的错误。

4.让我简单回顾一下,为了调试时不出现任何错误,我应该:

A.移除除JTAG之外的所有跳线(该支持遵循UART跳线设置)。

B取下电池

c、 选择项目文件夹

d、 建造

E调试>启动调试会话

F单击运行

5.你能解释一下为什么会发生这种错误吗?

//写入DA1458x SYS\U CTRL\U REG->生成软件重置,启用调试器
_WWORD(0x50000012、0x80a4)
^
***错误125,第10行:AGDI:内存写入失败(0x50000012)

//上一个命令(SW reset)解除对处理器的锁定

里德祖维利
离线
最后一次见到:1年7个月前
加入:2017-11-24 03:10
顺便说一下,在启动调试中,

顺便说一下,在启动调试中,当发出run命令时,它停留在init。

我正在附上照片。

里德祖维利
离线
最后一次见到:1年7个月前
加入:2017-11-24 03:10
顺便说一下,在启动调试中,

顺便说一下,在启动调试中,当发出run命令时,它停留在init。

我正在附上照片。

PM_对话框
离线
最后一次见到:10小时22分钟前
工作人员
加入:2018-02-08 11:03
嗨,里奇·维利,

嗨,里奇·维利,

截图是正确的!你的设备应该开始做广告。你用一个通用的移动BLE应用程序检查过了吗?设备应该在空中。

谢谢,下午好

里德祖维利
离线
最后一次见到:1年7个月前
加入:2017-11-24 03:10
不幸的是,我无法察觉

不幸的是,我无法检测到这些设备。

这不是广告。

我使用3种不同的ble/信标扫描仪只是为了确定。

之前请查看屏幕截图的命令部分。它预计会得到该输出吗?

因此,我是否忽略运行调试时仍然存在的“***错误125,第10行:AGDI:内存写入失败(0x50000012)”错误?

PM_对话框
离线
最后一次见到:10小时22分钟前
工作人员
加入:2018-02-08 11:03
嗨,里奇·维利,

嗨,里奇·维利,

那是非常奇怪的行为!尝试在一个新的推导路径文件夹中解压缩SDK,然后重新安装Keil工具和JLink。之后,尝试构建项目。你能正确地构建它们吗?请注意,我不能复制你的问题,所以请尝试这个,并让我知道。

c:\myWorkshop\DA1458x\U SDK\5.0.4

另外,请尝试禁用代码中设置的所有断点。

谢谢,下午好

罗贝奇
离线
最后一次见到:1年5个月前
加入:2019-08-09 13:22
之后我也有类似的行为

在初始安装和试用barebone示例之后,我也有类似的行为。我通过执行一个干净的构建“项目->干净的目标”,然后执行一个“项目->构建目标”来修复它。然后,在启动调试会话并运行程序后,它开始播发。。。克劳斯

PM_对话框
离线
最后一次见到:10小时22分钟前
工作人员
加入:2018-02-08 11:03
你好,罗伯奇,

你好,罗伯奇,

非常感谢您的指示。

你好,下午好