你好 ,
IM仍然是具有Keil和DA14580DEVKT-B SDK板的编程固件的新功能。
当我以前编译和调试时,我没有运行示例代码的问题。
However after my Jlink firware upgrades , somehow when i debug, this error crop up :
***error 125, line 10: AGDI: memory write failed (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
Hardware: 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 Info: Iterating through AP map to find AHB-AP to use
* jlink信息:AP [0]:找到核心
* JLINK INFO:AP [0]:AHB-AP ROM基数:0xE00FF000
* JLINK信息:CPUID寄存器:0x410cc200。实施者代码:0x41(手臂)
*JLink Info: Found Cortex-M0 r0p0, Little endian.
*JLink Info: FPUnit: 4 code (BP) slots and 0 literal slots
* 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
*JLink Info: ROMTbl[0][2]: E0002000, CID: B105E00D, PID: 000BB00B FPB
romtableddr = 0xe00ff000
* JLink信息:重置:停止通过民主党核心后重置CR.VC_CORERESET.
*JLink Info: Reset: Reset device via AIRCR.SYSRESETREQ.
Target info:
-------------
设备:ARMCM0
VTarget = 3.300V
PIN状态:TCK:0,TDI:1,TDO:1,TMS:1,TRES:1,TRST:1
硬件断点:4
软件断点:8192
观察点:2
JTAG speed: 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信息:重置:停止通过民主党核心后重置CR.VC_CORERESET.
*JLink Info: Reset: Reset device via AIRCR.SYSRESETREQ.
Include "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对象加载脚本通过调试器界面(例如jlink等)。
*The goal of this script is to load the Keils's object file to the DA1458x RAM
*确保先前已清理DA1458X。
****************************************************************************************
*/
// Write to DA1458x SYS_CTRL_REG -> Generate SW reset, enable debugger
_WWORD(0x50000012,0x80A4)
^
***error 125, line 10: AGDI: memory write failed (0x50000012)
//以前的命令(sw重置)难以达到处理器
//写入cortex-m0 dhcsr核心调试寄存器 - > halt cortex-m0
_wdword(0xe000edf0,0xa05f0003)
^
***错误125,第14行:AGDI:内存写入失败(0xe000edf0)
//在执行调试器重置之前所需的睡眠时间(在MSEC中)
_sleep_(1000)
//调试器重置(检查Keil调试器设置)
//预选重置类型(在选项 - > debug->设置中找到)是正常的(0):
// - Normal: Resets core & peripherals via SYSRESETREQ & VECTRESET bit
RESET
* JLink信息:重置:停止通过民主党核心后重置CR.VC_CORERESET.
*JLink Info: Reset: Reset device via AIRCR.SYSRESETREQ.
// Load object file
加载%L.
* JLink信息:重置:停止通过民主党核心后重置CR.VC_CORERESET.
*JLink Info: Reset: Reset device via AIRCR.SYSRESETREQ.
// Load stack pointer
SP = _RDWORD(0x20000000)
//加载程序计数器
$ = _RDWORD(0x20000004)
func void disp_memlog(void)
{
int idx;
unsigned int min_delta;
Exec(“log> memlog.log”);
printf(“\ n \ n ***内存记录结果*** \ n \ n”);
printf(">>> ENV HEAP <<<\n");
printf("Used size in this HEAP : %4d (current) - %4d (maximum)\n", mem_log[0].used_sz, mem_log[0].max_used_sz);
printf(“其他堆的使用大小:%4d(当前) - %4d(最大)\ n \ n”,mem_log [0] .used_other_sz,mem_log [0] .max_used_other_sz);
printf(">>> DB HEAP <<<\n");
printf("Used size in this HEAP : %4d (current) - %4d (maximum)\n", mem_log[1].used_sz, mem_log[1].max_used_sz);
printf("Used size in other HEAPs: %4d (current) - %4d (maximum)\n\n", mem_log[1].used_other_sz, mem_log[1].max_used_other_sz);
printf(“>>> msg heap <<< \ n”);
printf("Used size in this HEAP : %4d (current) - %4d (maximum)\n", mem_log[2].used_sz, mem_log[2].max_used_sz);
printf("Used size in other HEAPs: %4d (current) - %4d (maximum)\n\n", mem_log[2].used_other_sz, mem_log[2].max_used_other_sz);
Printf(“>>>非Ret堆<<< \ n”);
printf(“此堆中的使用大小:%4d(当前) - %4d(最大)\ n”,mem_log [3] .use_sz,mem_log [3] .max_used_sz);
printf("Used size in other HEAPs: %4d (current) - %4d (maximum)\n\n", mem_log[3].used_other_sz, mem_log[3].max_used_other_sz);
exec(“注销”);
} // disp_memlog()结束
附加信息:我使用"DA1458x\\5.0.4\\projects\\target_apps\\ble_examples\\ble_app_peripheral" sample code.
嗨Ridzuwary,
我认为这个问题与JLink更新无关。可能,您已禁用调试器。您是否在SDK的BLE_APP_PHERIALLAL示例中完成了任何修改?你有没有烧掉SPI Flash或你只是试图将固件下载到系统RAM中?您可以通过SDK的另一个示例复制此问题吗?
谢谢,PM_DIALOG.
Hi,
我没有做任何事情modification to ble_app_peripheral .
Im trying to run the program using debug . Previously i have no problem running it.
我在尝试其他BLE示例和相同的错误125就在那里。
我没有做任何事情modification to ble_app_peripheral .
Im trying to run the program using debug . Previously i have no problem running it.
我在尝试其他BLE示例和相同的错误125就在那里。
即时使用此文档:
DA14580.蓝牙® Smart Development Kit – Basic UM-B-025
附件是来自keil,这可能是一个问题吗?
嗨Ridzuwary,
Please check the attached snapshots. Can you please indicate if you have the same configurations? As soon as you have the correct jumper set up, you should be able to program your board.
谢谢,PM_DIALOG.
Hi,
我仍然根据你的共享图片而落叶。
唯一的不同之处在于,在样本为V6.30C时,DLL Vesion是V6.46D。
The jumper is set correctlya s per tutorial.
The output is as follows :
使用代码大小限制:32K
Set JLink Project File to "C:\a\DA1458x\5.0.4\projects\target_apps\ble_examples\ble_app_barebone\Keil_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
Hardware: 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 Info: Iterating through AP map to find AHB-AP to use
* jlink信息:AP [0]:找到核心
* JLINK INFO:AP [0]:AHB-AP ROM基数:0xE00FF000
* JLINK信息:CPUID寄存器:0x410cc200。实施者代码:0x41(手臂)
*JLink Info: Found Cortex-M0 r0p0, Little endian.
*JLink Info: FPUnit: 4 code (BP) slots and 0 literal slots
* 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
*JLink Info: ROMTbl[0][2]: E0002000, CID: B105E00D, PID: 000BB00B FPB
romtableddr = 0xe00ff000
* JLink信息:重置:停止通过民主党核心后重置CR.VC_CORERESET.
*JLink Info: Reset: Reset device via AIRCR.SYSRESETREQ.
Target info:
-------------
设备:ARMCM0
VTarget = 3.300V
PIN状态:TCK:0,TDI:1,TDO:1,TMS:1,TRES:1,TRST:1
硬件断点:4
软件断点:8192
观察点:2
JTAG speed: 2667 kHz
Include "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对象加载脚本通过调试器界面(例如jlink等)。
*The goal of this script is to load the Keils's object file to the DA1458x RAM
*确保先前已清理DA1458X。
****************************************************************************************
*/
// Write to DA1458x SYS_CTRL_REG -> Generate SW reset, enable debugger
_WWORD(0x50000012,0x80A4)
^
***error 125, line 10: AGDI: memory write failed (0x50000012)
//以前的命令(sw重置)难以达到处理器
//写入cortex-m0 dhcsr核心调试寄存器 - > halt cortex-m0
_wdword(0xe000edf0,0xa05f0003)
^
***错误125,第14行:AGDI:内存写入失败(0xe000edf0)
//在执行调试器重置之前所需的睡眠时间(在MSEC中)
_sleep_(1000)
//调试器重置(检查Keil调试器设置)
//预选重置类型(在选项 - > debug->设置中找到)是正常的(0):
// - Normal: Resets core & peripherals via SYSRESETREQ & VECTRESET bit
RESET
* JLink信息:重置:停止通过民主党核心后重置CR.VC_CORERESET.
*JLink Info: Reset: Reset device via AIRCR.SYSRESETREQ.
// Load object file
加载%L.
* JLink信息:重置:停止通过民主党核心后重置CR.VC_CORERESET.
*JLink Info: Reset: Reset device via AIRCR.SYSRESETREQ.
// Load stack pointer
SP = _RDWORD(0x20000000)
//加载程序计数器
$ = _RDWORD(0x20000004)
func void disp_memlog(void)
{
int idx;
unsigned int min_delta;
Exec(“log> memlog.log”);
printf(“\ n \ n ***内存记录结果*** \ n \ n”);
printf(">>> ENV HEAP <<<\n");
printf("Used size in this HEAP : %4d (current) - %4d (maximum)\n", mem_log[0].used_sz, mem_log[0].max_used_sz);
printf(“其他堆的使用大小:%4d(当前) - %4d(最大)\ n \ n”,mem_log [0] .used_other_sz,mem_log [0] .max_used_other_sz);
printf(">>> DB HEAP <<<\n");
printf("Used size in this HEAP : %4d (current) - %4d (maximum)\n", mem_log[1].used_sz, mem_log[1].max_used_sz);
printf("Used size in other HEAPs: %4d (current) - %4d (maximum)\n\n", mem_log[1].used_other_sz, mem_log[1].max_used_other_sz);
printf(“>>> msg heap <<< \ n”);
printf("Used size in this HEAP : %4d (current) - %4d (maximum)\n", mem_log[2].used_sz, mem_log[2].max_used_sz);
printf("Used size in other HEAPs: %4d (current) - %4d (maximum)\n\n", mem_log[2].used_other_sz, mem_log[2].max_used_other_sz);
Printf(“>>>非Ret堆<<< \ n”);
printf(“此堆中的使用大小:%4d(当前) - %4d(最大)\ n”,mem_log [3] .use_sz,mem_log [3] .max_used_sz);
printf("Used size in other HEAPs: %4d (current) - %4d (maximum)\n\n", mem_log[3].used_other_sz, mem_log[3].max_used_other_sz);
exec(“注销”);
} // disp_memlog()结束
嗨Ridzuwary,
Seems that you are running the code in sleep mode, try to start the debugging session and click again in order to stop debugging. By doing that you should see your device advertising. if you want to debug the code, disable the sleeping feature and run the code. Please remove all the jumper except the jumpers for JTAG connection. Also remove the battery if you had it placed. Did you check to run any other example of the SDK?
谢谢,PM_DIALOG.
1.如何启用睡眠/ undleep模式/禁用睡眠功能?
2. I have been trying to run debug mode wthout success with the output as above,
3. I have check all other examples , blinky is working as it doesnt use parameters/memory. Other Ble have the same error when run debug.
4.让我只需重新签约,以便在没有任何错误的情况下调试:
一种。删除除JTAG之外的所有跳线(此支持遵循UART跳线设置)。
湾取下电池
C。选择项目文件夹
天。建造
e. Debug > start debug session
f. click run
你能解释为什么发生这种错误吗?
// Write to DA1458x SYS_CTRL_REG -> Generate SW reset, enable debugger
_WWORD(0x50000012,0x80A4)
^
***error 125, line 10: AGDI: memory write failed (0x50000012)
//以前的命令(sw重置)难以达到处理器
By the way , in start debug, when issue a run command , it stuck at init.
Im attaching the picture.
By the way , in start debug, when issue a run command , it stuck at init.
Im attaching the picture.
嗨Ridzuwary,
The screenshot is correct! Your device should start advertising. Did you check it with a generic mobile BLE application? The device should be in the air.
谢谢,PM_DIALOG.
不幸的是,我无法检测到设备。
it is not advertising.
即时使用3个不同的BLE / Beacon扫描仪肯定。
请以前查看屏幕截图的命令部分。预计会得到该输出吗?
So do i igonore the "*** error 125, line 10: AGDI: memory write failed (0x50000012)" error that still exist when i run debug ?
嗨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.
我之后的行为相似the initial install and trying out the barebone example. I fixed it by doing a clean build "Project->Clean targets" followed by a "Project->Build Target". Then after starting a debug session and running the program it started advertizing. ...Claus
Hi robech,
感谢你的指示。
Regards, PM_Dialog