error 125, AGDI: memory write failed

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程//www.xmece.com/support. We’ll be fixing bugs / optimising the searching and tagging over the coming days.
16 posts / 0 new
Last post
ridzuwary
离线
Last seen:1 year 7 months ago
Joined:2017-11-24 03:10
error 125, AGDI: memory write failed

Hi ,

Im still new with programming firmware with keil and da14580DEVKT-B sdk board.

When i compile and debug previously , i have no problems running the sample code.

但是,在我的jlink消费品升级之后,在某种方式当我调试时,此错误裁剪:

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

下面是runn的输出ing debug in Keil.

Running with Code Size Limit: 32K
Set JLink Project File to "C:\a\DA1458x\5.0.4\projects\target_apps\ble_examples\ble_app_peripheral\Keil_5\JLinkSettings.ini"* JLink Info: Device "CORTEX-M0" selected.

JLink info:
------------
DLL: V6.46d, compiled Jun 7 2019 17:33:40
Firmware: J-Link OB-SAM3U128 V1 compiled Jan 7 2019 14:05:40
硬件:v1.00.
S/N : 480063501

* JLink Info: Found SW-DP with ID 0x0BB11477
* JLink Info: Scanning AP map to find all available APs
* JLink Info: AP[1]: Stopped AP scan as end of AP map has been reached
* JLink Info: AP[0]: AHB-AP (IDR: 0x04770021)
* jlink信息:通过ap map迭代以查找ahb-ap使用
* JLink Info: AP[0]: Core found
* JLink Info: AP[0]: AHB-AP ROM base: 0xE00FF000
* JLink Info: CPUID register: 0x410CC200. Implementer code: 0x41 (ARM)
* jlink信息:找到cortex-m0 r0p0,小endian。
* jlink信息:fpUnit:4代码(BP)插槽和0个字幕插槽
* JLink Info: CoreSight components:
* JLink Info: ROMTbl[0] @ E00FF000
* JLink Info: ROMTbl[0][0]: E000E000, CID: B105E00D, PID: 000BB008 SCS
* JLink Info: ROMTbl[0][1]: E0001000, CID: B105E00D, PID: 000BB00A DWT
* JLINK INFO:ROMTBL [0] [2]:E0002000,CID:B105E00D,PID:000BB00B FPB
ROMTableAddr = 0xE00FF000
* JLink Info: Reset: Halt core after reset via DEMCR.VC_CORERESET.
* jlink信息:重置:通过aircr.sysresetreq重置设备。

目标信息:
------------
设备:ARMC0.
vtarget = 3.300V.
State of Pins: TCK: 0, TDI: 1, TDO: 1, TMS: 1, TRES: 1, TRST: 1
Hardware-Breakpoints: 4
Software-Breakpoints: 8192
Watchpoints: 2
JTAG速度:2000 kHz

Load "C:\\a\\DA1458x\\5.0.4\\projects\\target_apps\\ble_examples\\ble_app_peripheral\\Keil_5\\out_580\\ble_app_peripheral_580.axf"
* JLink Info: Reset: Halt core after reset via DEMCR.VC_CORERESET.
* jlink信息:重置:通过aircr.sysresetreq重置设备。
包括“c:\\ a \\ da1458x \\ 5.0.4 \\ projects \\ target_apps \\ ble_examples \\ ble_app_peripheral \\ keil_5 \\ .. \\ .. \ .. \\ .. \\ ..\\ sdk \\ common_project_files \\ misc \\ sysram_case23.ini“
/ **
****************************************************************************************
* DA1458x object loading script through debugger interface (e.g. JLink, etc).
*此脚本的目标是将Keils的对象文件加载到DA1458X RAM
* assuring that the DA1458x has been previously cleaned up.
****************************************************************************************
* /

//写入da1458x sys_ctrl_reg - >生成sw重置,启用调试器
_WWORD(0x50000012, 0x80a4)
^
***错误125,第10行:AGDI:内存写入失败(0x50000012)

// Previous command (SW reset) unhalts the processor
// Write to Cortex-M0 DHCSR Core Debug Register -> Halt Cortex-M0
_WDWORD(0xe000edf0, 0xa05f0003)
^
*** error 125, line 14: AGDI: memory write failed (0xE000EDF0)

// Required sleep time (in msec) before debugger reset is executed
_sleep_(1000)

// Debugger reset (check Keil debugger settings)
// Preselected reset type (found in Options-> Debug-> Settings) is Normal (0):
// - 正常:通过sysresetreq和Vectreeset位重置核心和外围设备
重启
* JLink Info: Reset: Halt core after reset via DEMCR.VC_CORERESET.
* jlink信息:重置:通过aircr.sysresetreq重置设备。

//加载对象文件
LOAD %L
* JLink Info: Reset: Halt core after reset via DEMCR.VC_CORERESET.
* jlink信息:重置:通过aircr.sysresetreq重置设备。

//加载堆栈指针
sp = _rdword(0x20000000)

// Load program counter
$ = _rdword(0x20000004)

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

exec("log > Memlog.log");

printf("\n\n*** Memory Logging Results ***\n\n");

printf(“>>> env heap <<< \ n”);
printf(“此堆中的使用大小:%4d(当前) - %4d(最大)\ n”,mem_log [0] .use_sz,mem_log [0] .max_used_sz);
printf("Used size in other HEAPs: %4d (current) - %4d (maximum)\n\n", mem_log[0].used_other_sz, mem_log[0].max_used_other_sz);

printf(“>>> db heap <<< \ n”);
printf(“此堆中的使用大小:%4d(当前) - %4d(最大)\ n”,mem_log [1] .used_sz,mem_log [1] .max_used_sz);
printf(“其他堆的使用大小:%4d(current) - %4d(最大)\ n \ n”,mem_log [1] .used_other_sz,mem_log [1] .max_used_other_sz);

printf(">>> MSG HEAP <<<\n");
printf(“此堆中的使用大小:%4d(当前) - %4d(最大)\ n”,mem_log [2] .used_sz,mem_log [2] .max_used_sz);
printf(“其他堆中的使用大小:%4d(当前) - %4d(最大)\ n \ n”,mem_log [2] .used_other_sz,mem_log [2] .max_used_other_sz);

printf(">>> Non-Ret HEAP <<<\n");
printf("Used size in this HEAP : %4d (current) - %4d (maximum)\n", mem_log[3].used_sz, mem_log[3].max_used_sz);
printf(“其他堆中的使用大小:%4d(current) - %4d(最大)\ n \ n”,mem_log [3] .used_other_sz,mem_log [3] .max_used_other_sz);

exec("log off");
} //disp_memlog() ends

Device:
ridzuwary
离线
Last seen:1 year 7 months ago
Joined:2017-11-24 03:10
Additional info : Im using

附加信息:即时注释“da1458x \\ 5.0.4 \\ projects \\ target_apps \\ ble_examples \\ ble_app_perify”示例代码。

PM_Dialog
离线
Last seen:3 days 17 hours ago
Staff
Joined:2018-02-08 11:03
Hi ridzuwary,

Hi ridzuwary,

I think that this issue is not related with the JLink update. Probably, you have the debugger disabled. Have you done any modification in the ble_app_peripheral example of the SDK? have you burnt the SPI flash or you just trying to download firmware into the System-RAM? Can you replicate this issue with another example of the SDK?

Thanks, PM_Dialog

ridzuwary
离线
Last seen:1 year 7 months ago
Joined:2017-11-24 03:10
你好,

你好,

我没有对ble_app_peripheral做任何修改。

即时尝试使用debug运行该程序。以前我没有问题运行它。

Im trying other ble example and the same error 125 is there.

ridzuwary
离线
Last seen:1 year 7 months ago
Joined:2017-11-24 03:10
I didnt do any any

我没有对ble_app_peripheral做任何修改。

即时尝试使用debug运行该程序。以前我没有问题运行它。

Im trying other ble example and the same error 125 is there.

Im using this documentation :

DA14580Bluetooth®智能开发套件 - Basic UM-B-025

attached is the from keil , could this be a problem ?

Attachment:
PM_Dialog
离线
Last seen:3 days 17 hours ago
Staff
Joined:2018-02-08 11:03
Hi ridzuwary,

Hi ridzuwary,

请检查附加的快照。你能说明你是否有相同的配置?一旦您拥有正确的跳线设置,您应该能够编程您的董事会。

Thanks, PM_Dialog

Attachment:
ridzuwary
离线
Last seen:1 year 7 months ago
Joined:2017-11-24 03:10
你好,

你好,

Im still folowing as per your shared picture.

The only diffences is that that DLL vesion for it is v6.46d while you sample is v6.30c .

跳线每本教程设置正确。

输出如下:

Running with Code Size Limit: 32K
将JLink项目文件设置为“C:\ a \ da1a58x \ 5.0.4 \ projects \ target_apps \ ble_examples \ ble_app_barebone \ keil_5 \ jlinksettings.ini”* jlink信息:设备“cortex-m0”所选。

JLink info:
------------
DLL: V6.46d, compiled Jun 7 2019 17:33:40
Firmware: J-Link OB-SAM3U128 V1 compiled Jan 7 2019 14:05:40
硬件:v1.00.
S/N : 480063501

* JLink Info: Found SW-DP with ID 0x0BB11477
* JLink Info: Scanning AP map to find all available APs
* JLink Info: AP[1]: Stopped AP scan as end of AP map has been reached
* JLink Info: AP[0]: AHB-AP (IDR: 0x04770021)
* jlink信息:通过ap map迭代以查找ahb-ap使用
* JLink Info: AP[0]: Core found
* JLink Info: AP[0]: AHB-AP ROM base: 0xE00FF000
* JLink Info: CPUID register: 0x410CC200. Implementer code: 0x41 (ARM)
* jlink信息:找到cortex-m0 r0p0,小endian。
* jlink信息:fpUnit:4代码(BP)插槽和0个字幕插槽
* JLink Info: CoreSight components:
* JLink Info: ROMTbl[0] @ E00FF000
* JLink Info: ROMTbl[0][0]: E000E000, CID: B105E00D, PID: 000BB008 SCS
* JLink Info: ROMTbl[0][1]: E0001000, CID: B105E00D, PID: 000BB00A DWT
* JLINK INFO:ROMTBL [0] [2]:E0002000,CID:B105E00D,PID:000BB00B FPB
ROMTableAddr = 0xE00FF000
* JLink Info: Reset: Halt core after reset via DEMCR.VC_CORERESET.
* jlink信息:重置:通过aircr.sysresetreq重置设备。

目标信息:
------------
设备:ARMC0.
vtarget = 3.300V.
State of Pins: TCK: 0, TDI: 1, TDO: 1, TMS: 1, TRES: 1, TRST: 1
Hardware-Breakpoints: 4
Software-Breakpoints: 8192
Watchpoints: 2
JTAG速度:2667 kHz

包括“c:\\ a \\ da1458x \\ 5.0.4 \\ projects \\ target_apps \\ ble_examples \\ ble_app_barebone \\ keil_5 \\ .. \\ .. \\ .. \\ .. \\ ..\\ sdk \\ common_project_files \\ misc \\ sysram_case23.ini“
/ **
****************************************************************************************
* DA1458x object loading script through debugger interface (e.g. JLink, etc).
*此脚本的目标是将Keils的对象文件加载到DA1458X RAM
* assuring that the DA1458x has been previously cleaned up.
****************************************************************************************
* /

//写入da1458x sys_ctrl_reg - >生成sw重置,启用调试器
_WWORD(0x50000012, 0x80a4)
^
***错误125,第10行:AGDI:内存写入失败(0x50000012)

// Previous command (SW reset) unhalts the processor
// Write to Cortex-M0 DHCSR Core Debug Register -> Halt Cortex-M0
_WDWORD(0xe000edf0, 0xa05f0003)
^
*** error 125, line 14: AGDI: memory write failed (0xE000EDF0)

// Required sleep time (in msec) before debugger reset is executed
_sleep_(1000)

// Debugger reset (check Keil debugger settings)
// Preselected reset type (found in Options-> Debug-> Settings) is Normal (0):
// - 正常:通过sysresetreq和Vectreeset位重置核心和外围设备
重启
* JLink Info: Reset: Halt core after reset via DEMCR.VC_CORERESET.
* jlink信息:重置:通过aircr.sysresetreq重置设备。

//加载对象文件
LOAD %L
* JLink Info: Reset: Halt core after reset via DEMCR.VC_CORERESET.
* jlink信息:重置:通过aircr.sysresetreq重置设备。

//加载堆栈指针
sp = _rdword(0x20000000)

// Load program counter
$ = _rdword(0x20000004)

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

exec("log > Memlog.log");

printf("\n\n*** Memory Logging Results ***\n\n");

printf(“>>> env heap <<< \ n”);
printf(“此堆中的使用大小:%4d(当前) - %4d(最大)\ n”,mem_log [0] .use_sz,mem_log [0] .max_used_sz);
printf("Used size in other HEAPs: %4d (current) - %4d (maximum)\n\n", mem_log[0].used_other_sz, mem_log[0].max_used_other_sz);

printf(“>>> db heap <<< \ n”);
printf(“此堆中的使用大小:%4d(当前) - %4d(最大)\ n”,mem_log [1] .used_sz,mem_log [1] .max_used_sz);
printf(“其他堆的使用大小:%4d(current) - %4d(最大)\ n \ n”,mem_log [1] .used_other_sz,mem_log [1] .max_used_other_sz);

printf(">>> MSG HEAP <<<\n");
printf(“此堆中的使用大小:%4d(当前) - %4d(最大)\ n”,mem_log [2] .used_sz,mem_log [2] .max_used_sz);
printf(“其他堆中的使用大小:%4d(当前) - %4d(最大)\ n \ n”,mem_log [2] .used_other_sz,mem_log [2] .max_used_other_sz);

printf(">>> Non-Ret HEAP <<<\n");
printf("Used size in this HEAP : %4d (current) - %4d (maximum)\n", mem_log[3].used_sz, mem_log[3].max_used_sz);
printf(“其他堆中的使用大小:%4d(current) - %4d(最大)\ n \ n”,mem_log [3] .used_other_sz,mem_log [3] .max_used_other_sz);

exec("log off");
} //disp_memlog() ends

Attachment:
PM_Dialog
离线
Last seen:3 days 17 hours ago
Staff
Joined:2018-02-08 11:03
Hi ridzuwary,

Hi ridzuwary,

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

Thanks, PM_Dialog

ridzuwary
离线
Last seen:1 year 7 months ago
Joined:2017-11-24 03:10
1. How do i enabled sleep

1. How do i enabled sleep/unsleep mode /disable the sleeping feature ?

2.我一直在尝试使用如上所述运行调试模式Whout成功,

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

4. Let me just recap in order to debug without any errors i should :

a. Remove all the jumpers except for JTAG ( this support to follow UART jumpers setting) .

b. Remove the Battery

c. Select the project folder

d. build

e。调试>启动调试会话

F。单击运行

5. can you explain why this error happening ?

//写入da1458x sys_ctrl_reg - >生成sw重置,启用调试器
_WWORD(0x50000012, 0x80a4)
^
***错误125,第10行:AGDI:内存写入失败(0x50000012)

// Previous command (SW reset) unhalts the processor

ridzuwary
离线
Last seen:1 year 7 months ago
Joined:2017-11-24 03:10
顺便说一下,在开始调试中,

顺便说一下,在开始调试时,在发出运行命令时,它会陷入init。

我附着图片。

Attachment:
ridzuwary
离线
Last seen:1 year 7 months ago
Joined:2017-11-24 03:10
顺便说一下,在开始调试中,

顺便说一下,在开始调试时,在发出运行命令时,它会陷入init。

我附着图片。

Attachment:
PM_Dialog
离线
Last seen:3 days 17 hours ago
Staff
Joined:2018-02-08 11:03
Hi ridzuwary,

Hi ridzuwary,

屏幕截图是正确的!您的设备应该启动广告。您是否使用通用移动BLE应用程序检查它?该设备应在空中。

Thanks, PM_Dialog

ridzuwary
离线
Last seen:1 year 7 months ago
Joined:2017-11-24 03:10
unfortunately, i cant detect

unfortunately, i cant detect the devices.

它不是广告。

im using 3 different ble / beacon scanner just to be sure.

Please look at the command part of the screenshot before. it is expected to get that output ?

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

PM_Dialog
离线
Last seen:3 days 17 hours ago
Staff
Joined:2018-02-08 11:03
Hi ridzuwary,

Hi ridzuwary,

这是非常奇怪的行为!尝试将SDK解压缩在新推断的路径文件夹中,然后重新安装Keil工具和jlink。之后,尝试构建项目。你能否建立正确的?请注意,我无法复制您的问题,所以请尝试这并让我知道。

c:\myWorkshop\DA1458x_SDK\5.0.4

Also please try to disable all the break points you have set inside your code.

Thanks, PM_Dialog

离线
Last seen:1 year 5 months ago
Joined:2019-08-09 13:22
I had similar behavoir after

在初始安装后我有类似的行为,并尝试鞍骨示例。我通过做一个干净的构建“项目 - >清洁目标”,然后修理它,后跟“项目 - >构建目标”。然后启动调试会话并运行程序时,它开始发布。......克劳斯

PM_Dialog
离线
Last seen:3 days 17 hours ago
Staff
Joined:2018-02-08 11:03
嗨Robech,

嗨Robech,

非常感谢您的迹象。

问候,pm_dialog