你好 ,
IM仍然是具有Keil和DA14580DEVKT-B SDK板的编程固件的新功能。
当我以前编译和调试时,我没有运行示例代码的问题。
但是,在我的jlink消费品升级之后,在某种方式当我调试时,此错误裁剪:
***错误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 map迭代以查找ahb-ap使用
* jlink信息:AP [0]:找到核心
* JLINK INFO:AP [0]:AHB-AP ROM基数:0xE00FF000
* JLINK信息:CPUID寄存器:0x410cc200。实施者代码:0x41(手臂)
* jlink信息:找到cortex-m0 r0p0,小endian。
* jlink信息: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
* JLINK INFO:ROMTBL [0] [2]:E0002000,CID:B105E00D,PID:000BB00B FPB
romtableddr = 0xe00ff000
* jlink信息:重置:通过demcr.vc_corereset重置后停止核心。
* jlink信息:重置:通过aircr.sysresetreq重置设备。
Target info:
-------------
设备:ARMC0.
vtarget = 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信息:重置:通过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对象加载脚本通过调试器界面(例如jlink等)。
*此脚本的目标是将Keils的对象文件加载到DA1458X RAM
*确保先前已清理DA1458X。
****************************************************************************************
* /
//写入da1458x sys_ctrl_reg - >生成sw重置,启用调试器
_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):
// - Normal: Resets core & peripherals via SYSRESETREQ & VECTRESET bit
重启
* jlink信息:重置:通过demcr.vc_corereset重置后停止核心。
* jlink信息:重置:通过aircr.sysresetreq重置设备。
//加载对象文件
加载%L.
* jlink信息:重置:通过demcr.vc_corereset重置后停止核心。
* jlink信息:重置:通过aircr.sysresetreq重置设备。
//加载堆栈指针
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(“此堆中的使用大小:%4d(当前) - %4d(最大)\ n”,mem_log [0] .use_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(“此堆中的使用大小:%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(“>>>非Ret堆<<< \ n”);
printf(“此堆中的使用大小:%4d(当前) - %4d(最大)\ n”,mem_log [3] .use_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(“注销”);
} // disp_memlog()结束
附加信息:即时注释“da1458x \\ 5.0.4 \\ projects \\ target_apps \\ ble_examples \\ ble_app_perify”示例代码。
嗨Ridzuwary,
我认为这个问题与JLink更新无关。可能,您已禁用调试器。您是否在SDK的BLE_APP_PHERIALLAL示例中完成了任何修改?你有没有烧掉SPI Flash或你只是试图将固件下载到系统RAM中?您可以通过SDK的另一个示例复制此问题吗?
谢谢,PM_DIALOG.
你好,
我没有对ble_app_peripheral做任何修改。
即时尝试使用debug运行该程序。以前我没有问题运行它。
我在尝试其他BLE示例和相同的错误125就在那里。
我没有对ble_app_peripheral做任何修改。
即时尝试使用debug运行该程序。以前我没有问题运行它。
我在尝试其他BLE示例和相同的错误125就在那里。
即时使用此文档:
DA14580Bluetooth®智能开发套件 - Basic UM-B-025
附件是来自keil,这可能是一个问题吗?
嗨Ridzuwary,
请检查附加的快照。你能说明你是否有相同的配置?一旦您拥有正确的跳线设置,您应该能够编程您的董事会。
谢谢,PM_DIALOG.
你好,
我仍然根据你的共享图片而落叶。
唯一的不同之处在于,在样本为V6.30C时,DLL Vesion是V6.46D。
跳线每本教程设置正确。
输出如下:
使用代码大小限制:32K
将JLink项目文件设置为“C:\ a \ da1a58x \ 5.0.4 \ projects \ target_apps \ ble_examples \ ble_app_barebone \ 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 map迭代以查找ahb-ap使用
* jlink信息:AP [0]:找到核心
* JLINK INFO:AP [0]:AHB-AP ROM基数:0xE00FF000
* JLINK信息:CPUID寄存器:0x410cc200。实施者代码:0x41(手臂)
* jlink信息:找到cortex-m0 r0p0,小endian。
* jlink信息: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
* JLINK INFO:ROMTBL [0] [2]:E0002000,CID:B105E00D,PID:000BB00B FPB
romtableddr = 0xe00ff000
* jlink信息:重置:通过demcr.vc_corereset重置后停止核心。
* jlink信息:重置:通过aircr.sysresetreq重置设备。
Target info:
-------------
设备:ARMC0.
vtarget = 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_apps \\ ble_examples \\ ble_app_barebone \\ keil_5 \\ .. \\ .. \\ .. \\ .. \\ ..\\ sdk \\ common_project_files \\ misc \\ sysram_case23.ini“
/ **
****************************************************************************************
* da1458x对象加载脚本通过调试器界面(例如jlink等)。
*此脚本的目标是将Keils的对象文件加载到DA1458X RAM
*确保先前已清理DA1458X。
****************************************************************************************
* /
//写入da1458x sys_ctrl_reg - >生成sw重置,启用调试器
_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):
// - Normal: Resets core & peripherals via SYSRESETREQ & VECTRESET bit
重启
* jlink信息:重置:通过demcr.vc_corereset重置后停止核心。
* jlink信息:重置:通过aircr.sysresetreq重置设备。
//加载对象文件
加载%L.
* jlink信息:重置:通过demcr.vc_corereset重置后停止核心。
* jlink信息:重置:通过aircr.sysresetreq重置设备。
//加载堆栈指针
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(“此堆中的使用大小:%4d(当前) - %4d(最大)\ n”,mem_log [0] .use_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(“此堆中的使用大小:%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(“>>>非Ret堆<<< \ n”);
printf(“此堆中的使用大小:%4d(当前) - %4d(最大)\ n”,mem_log [3] .use_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(“注销”);
} // disp_memlog()结束
嗨Ridzuwary,
似乎您在睡眠模式下运行代码,请尝试启动调试会话,然后再次单击以停止调试。通过这样做,您应该看到您的设备广告。如果要调试代码,请禁用休眠功能并运行代码。请删除除JTAG连接的跳线外的所有跳线。如果您放置了,还可以取下电池。您是否检查了运行SDK的任何其他示例?
谢谢,PM_DIALOG.
1.如何启用睡眠/ undleep模式/禁用睡眠功能?
2.我一直在尝试使用如上所述运行调试模式Whout成功,
3.我已经检查了所有其他示例,Blinky正在运行,因为它不使用参数/内存。运行调试时,其他BLE具有相同的错误。
4.让我只需重新签约,以便在没有任何错误的情况下调试:
一种。删除除JTAG之外的所有跳线(此支持遵循UART跳线设置)。
湾取下电池
C。选择项目文件夹
天。建造
e。调试>启动调试会话
F。单击运行
你能解释为什么发生这种错误吗?
//写入da1458x sys_ctrl_reg - >生成sw重置,启用调试器
_WWORD(0x50000012,0x80a4)
^
***错误125,第10行:AGDI:内存写入失败(0x50000012)
//以前的命令(sw重置)难以达到处理器
顺便说一下,在开始调试时,在发出运行命令时,它会陷入init。
我附着图片。
顺便说一下,在开始调试时,在发出运行命令时,它会陷入init。
我附着图片。
嗨Ridzuwary,
屏幕截图是正确的!您的设备应该启动广告。您是否使用通用移动BLE应用程序检查它?该设备应在空中。
谢谢,PM_DIALOG.
不幸的是,我无法检测到设备。
it is not advertising.
即时使用3个不同的BLE / Beacon扫描仪肯定。
请以前查看屏幕截图的命令部分。预计会得到该输出吗?
所以我是igonore的“***错误125,第10行:AGDI:内存写入失败(0x50000012)”在我运行调试时仍然存在的错误?
嗨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.
在初始安装后我有类似的行为,并尝试鞍骨示例。我通过做一个干净的构建“项目 - >清洁目标”,然后修理它,后跟“项目 - >构建目标”。然后启动调试会话并运行程序时,它开始发布。......克劳斯
嗨Robech,
感谢你的指示。
问候,pm_dialog