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

⚠️
你好。。谢谢你来参加论坛。令人兴奋的消息!我们现在正在移动到我们的新论坛平台,将提供更好的功能,并包含在主对话网站的过程。所有帖子和账号都已迁移。我们现在只接受新论坛上的流量-请在https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
16个帖子/ 0新
最后一篇
Ridzuwary.
离线
最后一次露面:1年7个月前
加入:2017-11-24 03:10
错误125,AGDI:内存写入失败

你好 ,

IM仍然是具有Keil和DA14580DEVKT-B SDK板的编程固件的新功能。

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

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

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

以下是在Keil中运行调试的输出。

使用代码大小限制:32K
将JLink项目文件设置为“C:\ a \ da1458x \ 5.0.4 \ projects \ target_apps \ ble_examples \ ble_app_peripheral \ keil_5 \ jlinksettings.ini”* jlink信息:设备“cortex-m0”所选。

jlink信息:
-------------
DLL:v6.46d,编译2019年6月7日17:33:40
固件:J-Link OB-SAM3U128 V1编译1月7日2019年1月14日14:05:40
硬件:V1.00
S / N:480063501

* JLINK信息:找到带ID 0x0BB11477的SW-DP
* JLINK信息:扫描AP地图查找所有可用的AP
* JLINK信息:AP [1]:已停止AP扫描作为AP地图的结尾已达到
* JLINK INFO:AP [0]:AHB-AP(IDR:0x04770021)
*JLink信息:遍历AP映射以找到要使用的AHB-AP
* jlink信息:AP [0]:找到核心
* JLINK INFO:AP [0]:AHB-AP ROM基数:0xE00FF000
* JLINK信息:CPUID寄存器:0x410cc200。实施者代码:0x41(手臂)
*JLink信息:找到Cortex-M0 r0p0,Little endian。
*JLink Info:FPUnit:4个代码(BP)槽和0个文本槽
* jlink信息:coresight组件:
* jlink信息:romtbl [0] @ E00FF000
* jlink信息:romtbl [0] [0]:e000000,cid:b105e00d,pid:000bb008 scs
* JLINK INFO:ROMTBL [0] [1]:E0001000,CID:B105E00D,PID:000BB00A DWT
*链接信息:ROMTbl[0][2]:E0002000,CID:B105E00D,PID:000BB00B FPB
romtableddr = 0xe00ff000
* jlink信息:重置:通过demcr.vc_corereset重置后停止核心。
*JLink Info:Reset:通过airr.SYSRESETREQ重置设备。

目标信息:
-------------
设备:ARMCM0
V目标=3.300V
PIN状态: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_apps \\ ble_examples \\ ble_app_peripheral \\ keil_5 \\ out_580 \\ ble_app_peripheral_580.axf”
* jlink信息:重置:通过demcr.vc_corereset重置后停止核心。
*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”
/**
****************************************************************************************
* da1458x对象加载脚本通过调试器界面(例如jlink等)。
*此脚本的目标是将Keils的对象文件加载到DA1458x RAM
*确保先前已清理DA1458X。
****************************************************************************************
*/

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

//以前的命令(sw重置)难以达到处理器
//写入cortex-m0 dhcsr核心调试寄存器 - > halt cortex-m0
_wdword(0xe000edf0,0xa05f0003)
^
***错误125,第14行:AGDI:内存写入失败(0xe000edf0)

//在执行调试器重置之前所需的睡眠时间(在MSEC中)
_sleep_(1000)

//调试器重置(检查Keil调试器设置)
//预选重置类型(在选项 - > debug->设置中找到)是正常的(0):
/ / -正常:重置通过SYSRESE核心和外围设备TREQ & VECTRESET bit
复位
* jlink信息:重置:通过demcr.vc_corereset重置后停止核心。
*JLink Info:Reset:通过airr.SYSRESETREQ重置设备。

//加载对象文件
加载%L.
* jlink信息:重置:通过demcr.vc_corereset重置后停止核心。
*JLink Info:Reset:通过airr.SYSRESETREQ重置设备。

//加载堆栈指针
SP=\r单词(0x20000000)

//加载程序计数器
$=\r单词(0x2000004)

func void disp_memlog(void)
{
int idx;
unsigned int min_delta;

Exec(“log> memlog.log”);

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

printf(“>>>环境堆<<\n”);
printf(“此堆中使用的大小:%4d(当前)-%4d(最大)\n”,mem\u log[0]。Used\u sz,mem\u log[0]。max\u Used\u sz);
printf(“其他堆的使用大小:%4d(当前) - %4d(最大)\ n \ n”,mem_log [0] .used_other_sz,mem_log [0] .max_used_other_sz);

printf(“>>>DB HEAP<<\n”);
printf(“此堆中使用的大小:%4d(当前)-%4d(最大)\n”,mem\u log[1]。Used\u sz,mem\u log[1]。max\u Used\u sz);
printf(“在其他堆中使用的大小:%4d(当前)-%4d(最大)\n\n”,mem\u log[1]。Used\u other\u sz,mem\u log[1]。max\u Used\u other\u sz);

printf(“>>> msg heap <<< \ n”);
printf(“此堆中使用的大小:%4d(当前)-%4d(最大)\n”,mem\u log[2]。Used\u sz,mem\u log[2]。max\u Used\u sz);
printf(“在其他堆中使用的大小:%4d(当前)-%4d(最大)\n\n”,mem\u log[2]。Used\u other\u sz,mem\u log[2]。max\u Used\u other\u sz);

Printf(“>>>非Ret堆<<< \ n”);
printf(“此堆中的使用大小:%4d(当前) - %4d(最大)\ n”,mem_log [3] .use_sz,mem_log [3] .max_used_sz);
printf(“在其他堆中使用的大小:%4d(当前)-%4d(最大)\n\n”,mem\u log[3]。Used\u other\u sz,mem\u log[3]。max\u Used\u other\u sz);

exec(“注销”);
} // disp_memlog()结束

设备:
Ridzuwary.
离线
最后一次露面:1年7个月前
加入:2017-11-24 03:10
附加信息:我使用

附加信息:我使用“DA1458x\\5.0.4\\projects\\target\u apps\\ble\u examples\\ble\u app\u peripheral”示例代码。

PM_DIALOG.
离线
最后一次露面:3天13小时前
职员
加入:2018-02-08 11:03
嗨Ridzuwary,

嗨Ridzuwary,

我认为这个问题与JLink更新无关。可能,您已禁用调试器。您是否在SDK的BLE_APP_PHERIALLAL示例中完成了任何修改?你有没有烧掉SPI Flash或你只是试图将固件下载到系统RAM中?您可以通过SDK的另一个示例复制此问题吗?

谢谢,PM_DIALOG.

Ridzuwary.
离线
最后一次露面:1年7个月前
加入:2017-11-24 03:10
你好,

你好,

我没有对ble\u app\u外设做任何修改。

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

我在尝试其他BLE示例和相同的错误125就在那里。

Ridzuwary.
离线
最后一次露面:1年7个月前
加入:2017-11-24 03:10
我没有做任何事情

我没有对ble\u app\u外设做任何修改。

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

我在尝试其他BLE示例和相同的错误125就在那里。

即时使用此文档:

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

附件是来自keil,这可能是一个问题吗?

附件:
PM_DIALOG.
离线
最后一次露面:3天13小时前
职员
加入:2018-02-08 11:03
嗨Ridzuwary,

嗨Ridzuwary,

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

谢谢,PM_DIALOG.

附件:
Ridzuwary.
离线
最后一次露面:1年7个月前
加入:2017-11-24 03:10
你好,

你好,

我仍然根据你的共享图片而落叶。

唯一的不同之处在于,在样本为V6.30C时,DLL Vesion是V6.46D。

跳线按照教程正确设置。

输出如下:

使用代码大小限制: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 Info:Device“CORTEX-M0”selected。

jlink信息:
-------------
DLL:v6.46d,编译2019年6月7日17:33:40
固件:J-Link OB-SAM3U128 V1编译1月7日2019年1月14日14:05:40
硬件:V1.00
S / N:480063501

* JLINK信息:找到带ID 0x0BB11477的SW-DP
* JLINK信息:扫描AP地图查找所有可用的AP
* JLINK信息:AP [1]:已停止AP扫描作为AP地图的结尾已达到
* JLINK INFO:AP [0]:AHB-AP(IDR:0x04770021)
*JLink信息:遍历AP映射以找到要使用的AHB-AP
* jlink信息:AP [0]:找到核心
* JLINK INFO:AP [0]:AHB-AP ROM基数:0xE00FF000
* JLINK信息:CPUID寄存器:0x410cc200。实施者代码:0x41(手臂)
*JLink信息:找到Cortex-M0 r0p0,Little endian。
*JLink Info:FPUnit:4个代码(BP)槽和0个文本槽
* jlink信息:coresight组件:
* jlink信息:romtbl [0] @ E00FF000
* jlink信息:romtbl [0] [0]:e000000,cid:b105e00d,pid:000bb008 scs
* JLINK INFO:ROMTBL [0] [1]:E0001000,CID:B105E00D,PID:000BB00A DWT
*链接信息:ROMTbl[0][2]:E0002000,CID:B105E00D,PID:000BB00B FPB
romtableddr = 0xe00ff000
* jlink信息:重置:通过demcr.vc_corereset重置后停止核心。
*JLink Info:Reset:通过airr.SYSRESETREQ重置设备。

目标信息:
-------------
设备:ARMCM0
V目标=3.300V
PIN状态: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”
/**
****************************************************************************************
* da1458x对象加载脚本通过调试器界面(例如jlink等)。
*此脚本的目标是将Keils的对象文件加载到DA1458x RAM
*确保先前已清理DA1458X。
****************************************************************************************
*/

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

//以前的命令(sw重置)难以达到处理器
//写入cortex-m0 dhcsr核心调试寄存器 - > halt cortex-m0
_wdword(0xe000edf0,0xa05f0003)
^
***错误125,第14行:AGDI:内存写入失败(0xe000edf0)

//在执行调试器重置之前所需的睡眠时间(在MSEC中)
_sleep_(1000)

//调试器重置(检查Keil调试器设置)
//预选重置类型(在选项 - > debug->设置中找到)是正常的(0):
/ / -正常:重置通过SYSRESE核心和外围设备TREQ & VECTRESET bit
复位
* jlink信息:重置:通过demcr.vc_corereset重置后停止核心。
*JLink Info:Reset:通过airr.SYSRESETREQ重置设备。

//加载对象文件
加载%L.
* jlink信息:重置:通过demcr.vc_corereset重置后停止核心。
*JLink Info:Reset:通过airr.SYSRESETREQ重置设备。

//加载堆栈指针
SP=\r单词(0x20000000)

//加载程序计数器
$=\r单词(0x2000004)

func void disp_memlog(void)
{
int idx;
unsigned int min_delta;

Exec(“log> memlog.log”);

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

printf(“>>>环境堆<<\n”);
printf(“此堆中使用的大小:%4d(当前)-%4d(最大)\n”,mem\u log[0]。Used\u sz,mem\u log[0]。max\u Used\u sz);
printf(“其他堆的使用大小:%4d(当前) - %4d(最大)\ n \ n”,mem_log [0] .used_other_sz,mem_log [0] .max_used_other_sz);

printf(“>>>DB HEAP<<\n”);
printf(“此堆中使用的大小:%4d(当前)-%4d(最大)\n”,mem\u log[1]。Used\u sz,mem\u log[1]。max\u Used\u sz);
printf(“在其他堆中使用的大小:%4d(当前)-%4d(最大)\n\n”,mem\u log[1]。Used\u other\u sz,mem\u log[1]。max\u Used\u other\u sz);

printf(“>>> msg heap <<< \ n”);
printf(“此堆中使用的大小:%4d(当前)-%4d(最大)\n”,mem\u log[2]。Used\u sz,mem\u log[2]。max\u Used\u sz);
printf(“在其他堆中使用的大小:%4d(当前)-%4d(最大)\n\n”,mem\u log[2]。Used\u other\u sz,mem\u log[2]。max\u Used\u other\u sz);

Printf(“>>>非Ret堆<<< \ n”);
printf(“此堆中的使用大小:%4d(当前) - %4d(最大)\ n”,mem_log [3] .use_sz,mem_log [3] .max_used_sz);
printf(“在其他堆中使用的大小:%4d(当前)-%4d(最大)\n\n”,mem\u log[3]。Used\u other\u sz,mem\u log[3]。max\u Used\u other\u sz);

exec(“注销”);
} // disp_memlog()结束

PM_DIALOG.
离线
最后一次露面:3天13小时前
职员
加入:2018-02-08 11:03
嗨Ridzuwary,

嗨Ridzuwary,

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

谢谢,PM_DIALOG.

Ridzuwary.
离线
最后一次露面:1年7个月前
加入:2017-11-24 03:10
1.如何启用睡眠状态

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

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

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

4.让我只需重新签约,以便在没有任何错误的情况下调试:

一种。删除除JTAG之外的所有跳线(此支持遵循UART跳线设置)。

湾取下电池

C。选择项目文件夹

天。建造

e。调试>启动调试会话

f。单击run

你能解释为什么发生这种错误吗?

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

//以前的命令(sw重置)难以达到处理器

Ridzuwary.
离线
最后一次露面:1年7个月前
加入:2017-11-24 03:10
顺便说一下,在启动调试中,

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

我正在附上这张照片。

Ridzuwary.
离线
最后一次露面:1年7个月前
加入:2017-11-24 03:10
顺便说一下,在启动调试中,

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

我正在附上这张照片。

PM_DIALOG.
离线
最后一次露面:3天13小时前
职员
加入:2018-02-08 11:03
嗨Ridzuwary,

嗨Ridzuwary,

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

谢谢,PM_DIALOG.

Ridzuwary.
离线
最后一次露面:1年7个月前
加入:2017-11-24 03:10
不幸的是,我无法检测到

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

it is not advertising.

即时使用3个不同的BLE / Beacon扫描仪肯定。

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

因此,我是否忽略了在运行调试时仍然存在的“***error 125,line 10:AGDI:memory write failed(0x50000012)”错误?

PM_DIALOG.
离线
最后一次露面:3天13小时前
职员
加入:2018-02-08 11:03
嗨Ridzuwary,

嗨Ridzuwary,

That is very weird behavior! Try to unzip the SDK in a new deduced path folder and then re-install the Keil tool and the JLink. After that, try to build the projects. Are you able to build them correct? Be aware that I am not able to replicate your issue, so please try this and let me know.

C:\ MyWorkshop \ da1458x_sdk \ 5.0.4

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

谢谢,PM_DIALOG.

罗贝克
离线
最后一次露面:1年5个月前
加入:2019-08-09 13:22
我之后的行为相似

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

PM_DIALOG.
离线
最后一次露面:3天13小时前
职员
加入:2018-02-08 11:03
你好,罗伯奇,

你好,罗伯奇,

非常感谢你的指示。

你好,下午好