你好,
我仍然与编程新固件凯尔和da14580DEVKT-B sdk。
当我编译和调试之前,我没有问题运行示例代码。
然而在我Jlink firware升级,我调试的时候,这个错误出现:
* * *错误125,10号线:AGDI:内存写失败(0 x50000012)
下面是运行调试凯尔的输出。
运行代码大小限制:32 k
JLink项目文件设置为“C: \ \ DA1458x \ 5.0.4 \ target_apps \ ble_examples \ \项目ble_app_peripheral \ Keil_5 \ JLinkSettings。ini CORTEX-M0“* JLink信息:设备选择。
JLink信息:
- - - - - - - - - - - -
DLL: V6.46d,编制2019年6月7日17:33:40
固件:J-Link OB-SAM3U128 V1编制2019年1月7日14:05:40
硬件:V1.00
S / N: 480063501
* JLink信息:发现SW-DP x0bb11477 ID为0
* JLink信息:扫描美联社地图找到所有可用的APs
* JLink信息:美联社[1]:停止美联社扫描结束美联社地图
* JLink信息:美联社[0]:AHB-AP(印尼盾:0 x04770021)
* JLink信息:遍历美联社地图找到AHB-AP使用
* JLink信息:美联社[0]:核心发现
* JLink信息:美联社[0]:xe00ff000 AHB-AP ROM基础:0
* JLink信息:x410cc200 CPUID注册:0。实现者代码:0 x41 (ARM)
* JLink信息:发现Cortex-M0 r0p0,小端字节序。
* JLink信息:FPUnit: 4代码(BP)槽和0文字插槽
* JLink信息:CoreSight组件:
* JLink信息:ROMTbl [0] @ E00FF000
* JLink信息:ROMTbl [0] [0]: E000E000, CID: PID: 000 bb008 SCS B105E00D
* JLink信息:ROMTbl [0] [1]: E0001000, CID: PID: 000 bb00a DWT B105E00D
* JLink信息:ROMTbl [0] [2]: E0002000, CID: B105E00D, PID: 000 bb00b FPB
ROMTableAddr = 0 xe00ff000
* JLink信息:重置:停止通过DEMCR.VC_CORERESET核心后重置。
* JLink信息:通过AIRCR.SYSRESETREQ重置:复位设备。
目标信息:
- - - - - - - - - - - -
设备:ARMCM0
VTarget = 3.300 v
针的状态:TCK: 0, TDI: 1, TDO: 1、经颅磁刺激:1,非常:1,TRST: 1
Hardware-Breakpoints: 4
Software-Breakpoints: 8192
监测点:2
JTAG速度:2000千赫
负载“C: \ \ \ \ \ \ DA1458x \ \ 5.0.4 \ \项目target_apps \ \ ble_examples \ \ ble_app_peripheral \ \ Keil_5 \ \ out_580 \ \ ble_app_peripheral_580.axf”
* JLink信息:重置:停止通过DEMCR.VC_CORERESET核心后重置。
* JLink信息:通过AIRCR.SYSRESETREQ重置:复位设备。
包括“C: \ \ \ \ \ \ DA1458x \ \ 5.0.4 \ \项目target_apps \ \ ble_examples \ \ ble_app_peripheral \ \ Keil_5 \ \ . \ \ . . \ \ . \ \ . \ \ . \ \ sdk \ \ common_project_files \ \ misc \ \ sysram_case23.ini”
/ * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* DA1458x对象加载脚本通过调试器接口(例如JLink等)。
*这个脚本的目的是加载凯尔DA1458x RAM的对象文件
*确保DA1458x之前清理干净。
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* /
/ /写DA1458x SYS_CTRL_REG - >生成SW重置,启用调试器
x50000012 _WWORD (0, 0 x80a4)
^
* * *错误125,10号线:AGDI:内存写失败(0 x50000012)
/ /前一个命令(SW重置)unhalts处理器
/ /写Cortex-M0 DHCSR核心调试注册- >停止Cortex-M0
xe000edf0 _WDWORD (0, 0 xa05f0003)
^
* * *错误125,14行:AGDI:内存写失败(0 xe000edf0)
/ /需要的睡眠时间(毫秒)之前调试器执行重置
_sleep_ (1000)
/ /调试器复位(检查凯尔调试器设置)
/ /预选重置类型(在选项- >调试- >设置)是正常的(0):
/ / -正常:重置通过SYSRESETREQ & VECTRESET核心和外围设备
重置
* JLink信息:重置:停止通过DEMCR.VC_CORERESET核心后重置。
* JLink信息:通过AIRCR.SYSRESETREQ重置:复位设备。
/ /加载对象文件
负载% L
* JLink信息:重置:停止通过DEMCR.VC_CORERESET核心后重置。
* JLink信息:通过AIRCR.SYSRESETREQ重置:复位设备。
/ /加载堆栈指针
SP = _RDWORD (0 x20000000)
/ /加载程序计数器
美元= _RDWORD (0 x20000004)
函数void disp_memlog(空白)
{
int idx;
unsigned int min_delta;
exec(“日志> Memlog.log”);
printf (" \ n \ n * * *内存日志结果* * * \ n \ n”);
printf (" > > > ENV堆< < < \ n ");
printf("在这堆:大小使用% 4 d(当前)- % 4 d(最大)\ n”, mem_log [0]。used_sz, mem_log [0] .max_used_sz);
printf("大小用于其他堆:% 4 d(当前)- % 4 d(最大值)\ n \ n”, mem_log [0]。used_other_sz, mem_log [0] .max_used_other_sz);
printf (" > > > DB堆< < < \ n ");
printf("在这堆:大小使用% 4 d(当前)- % 4 d(最大)\ n”, mem_log [1]。used_sz, mem_log [1] .max_used_sz);
printf("大小用于其他堆:% 4 d(当前)- % 4 d(最大值)\ n \ n”, mem_log [1]。used_other_sz, mem_log [1] .max_used_other_sz);
printf(" > > >味精堆< < < \ n ");
printf("在这堆:大小使用% 4 d(当前)- % 4 d(最大)\ n”, mem_log [2]。used_sz, mem_log [2] .max_used_sz);
printf("大小用于其他堆:% 4 d(当前)- % 4 d(最大值)\ n \ n”, mem_log [2]。used_other_sz, mem_log [2] .max_used_other_sz);
printf (" > > > Non-Ret堆< < < \ n ");
printf("在这堆:大小使用% 4 d(当前)- % 4 d(最大)\ n”, mem_log [3]。used_sz, mem_log [3] .max_used_sz);
printf("大小用于其他堆:% 4 d(当前)- % 4 d(最大值)\ n \ n”, mem_log [3]。used_other_sz, mem_log [3] .max_used_other_sz);
exec(“注销”);
}/ / disp_memlog()结束
附加信息:我使用“DA1458x \ \ 5.0.4 \ \项目\ \ target_apps \ \ ble_examples \ \ ble_app_peripheral”示例代码。
嗨ridzuwary,
我认为,这个问题不是与JLink更新。也许,你有调试器禁用。你做了任何修改ble_app_peripheral SDK的例子吗?你烧SPI flash或者你只是想下载固件到系统内存吗?你能复制这个问题与另一个SDK的例子吗?
谢谢,PM_Dialog
你好,
我没有做任何修改ble_app_peripheral。
我试图使用调试运行程序。以前我没有问题。
我尝试其他祝福的例子和125年同样的错误。
我没有做任何修改ble_app_peripheral。
我试图使用调试运行程序。以前我没有问题。
我尝试其他祝福的例子和125年同样的错误。
我使用这个文档:
DA14580蓝牙®智能开发工具包-基本嗯- b - 025
连接从凯尔,这是一个问题吗?
嗨ridzuwary,
请检查附加的快照。你能请注明如果你有同样的配置吗?只要你有正确的跳线设置,你可以计划你的董事会。
谢谢,PM_Dialog
你好,
我仍然关注按你们的照片共享。
唯一的试验方法是,DLL版本v6.30c时v6.46d示例。
跳线设置correctlya年代/教程。
输出如下:
运行代码大小限制:32 k
JLink项目文件设置为“C: \ \ DA1458x \ 5.0.4 \ target_apps \ ble_examples \ \项目ble_app_barebone \ Keil_5 \ JLinkSettings。ini CORTEX-M0“* JLink信息:设备选择。
JLink信息:
- - - - - - - - - - - -
DLL: V6.46d,编制2019年6月7日17:33:40
固件:J-Link OB-SAM3U128 V1编制2019年1月7日14:05:40
硬件:V1.00
S / N: 480063501
* JLink信息:发现SW-DP x0bb11477 ID为0
* JLink信息:扫描美联社地图找到所有可用的APs
* JLink信息:美联社[1]:停止美联社扫描结束美联社地图
* JLink信息:美联社[0]:AHB-AP(印尼盾:0 x04770021)
* JLink信息:遍历美联社地图找到AHB-AP使用
* JLink信息:美联社[0]:核心发现
* JLink信息:美联社[0]:xe00ff000 AHB-AP ROM基础:0
* JLink信息:x410cc200 CPUID注册:0。实现者代码:0 x41 (ARM)
* JLink信息:发现Cortex-M0 r0p0,小端字节序。
* JLink信息:FPUnit: 4代码(BP)槽和0文字插槽
* JLink信息:CoreSight组件:
* JLink信息:ROMTbl [0] @ E00FF000
* JLink信息:ROMTbl [0] [0]: E000E000, CID: PID: 000 bb008 SCS B105E00D
* JLink信息:ROMTbl [0] [1]: E0001000, CID: PID: 000 bb00a DWT B105E00D
* JLink信息:ROMTbl [0] [2]: E0002000, CID: B105E00D, PID: 000 bb00b FPB
ROMTableAddr = 0 xe00ff000
* JLink信息:重置:停止通过DEMCR.VC_CORERESET核心后重置。
* JLink信息:通过AIRCR.SYSRESETREQ重置:复位设备。
目标信息:
- - - - - - - - - - - -
设备:ARMCM0
VTarget = 3.300 v
针的状态:TCK: 0, TDI: 1, TDO: 1、经颅磁刺激:1,非常:1,TRST: 1
Hardware-Breakpoints: 4
Software-Breakpoints: 8192
监测点:2
JTAG速度:2667千赫
包括“C: \ \ \ \ \ \ DA1458x \ \ 5.0.4 \ \项目target_apps \ \ ble_examples \ \ ble_app_barebone \ \ Keil_5 \ \ . \ \ . . \ \ . \ \ . \ \ . \ \ sdk \ \ common_project_files \ \ misc \ \ sysram_case23.ini”
/ * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* DA1458x对象加载脚本通过调试器接口(例如JLink等)。
*这个脚本的目的是加载凯尔DA1458x RAM的对象文件
*确保DA1458x之前清理干净。
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* /
/ /写DA1458x SYS_CTRL_REG - >生成SW重置,启用调试器
x50000012 _WWORD (0, 0 x80a4)
^
* * *错误125,10号线:AGDI:内存写失败(0 x50000012)
/ /前一个命令(SW重置)unhalts处理器
/ /写Cortex-M0 DHCSR核心调试注册- >停止Cortex-M0
xe000edf0 _WDWORD (0, 0 xa05f0003)
^
* * *错误125,14行:AGDI:内存写失败(0 xe000edf0)
/ /需要的睡眠时间(毫秒)之前调试器执行重置
_sleep_ (1000)
/ /调试器复位(检查凯尔调试器设置)
/ /预选重置类型(在选项- >调试- >设置)是正常的(0):
/ / -正常:重置通过SYSRESETREQ & VECTRESET核心和外围设备
重置
* JLink信息:重置:停止通过DEMCR.VC_CORERESET核心后重置。
* JLink信息:通过AIRCR.SYSRESETREQ重置:复位设备。
/ /加载对象文件
负载% L
* JLink信息:重置:停止通过DEMCR.VC_CORERESET核心后重置。
* JLink信息:通过AIRCR.SYSRESETREQ重置:复位设备。
/ /加载堆栈指针
SP = _RDWORD (0 x20000000)
/ /加载程序计数器
美元= _RDWORD (0 x20000004)
函数void disp_memlog(空白)
{
int idx;
unsigned int min_delta;
exec(“日志> Memlog.log”);
printf (" \ n \ n * * *内存日志结果* * * \ n \ n”);
printf (" > > > ENV堆< < < \ n ");
printf("在这堆:大小使用% 4 d(当前)- % 4 d(最大)\ n”, mem_log [0]。used_sz, mem_log [0] .max_used_sz);
printf("大小用于其他堆:% 4 d(当前)- % 4 d(最大值)\ n \ n”, mem_log [0]。used_other_sz, mem_log [0] .max_used_other_sz);
printf (" > > > DB堆< < < \ n ");
printf("在这堆:大小使用% 4 d(当前)- % 4 d(最大)\ n”, mem_log [1]。used_sz, mem_log [1] .max_used_sz);
printf("大小用于其他堆:% 4 d(当前)- % 4 d(最大值)\ n \ n”, mem_log [1]。used_other_sz, mem_log [1] .max_used_other_sz);
printf(" > > >味精堆< < < \ n ");
printf("在这堆:大小使用% 4 d(当前)- % 4 d(最大)\ n”, mem_log [2]。used_sz, mem_log [2] .max_used_sz);
printf("大小用于其他堆:% 4 d(当前)- % 4 d(最大值)\ n \ n”, mem_log [2]。used_other_sz, mem_log [2] .max_used_other_sz);
printf (" > > > Non-Ret堆< < < \ n ");
printf("在这堆:大小使用% 4 d(当前)- % 4 d(最大)\ n”, mem_log [3]。used_sz, mem_log [3] .max_used_sz);
printf("大小用于其他堆:% 4 d(当前)- % 4 d(最大值)\ n \ n”, mem_log [3]。used_other_sz, mem_log [3] .max_used_other_sz);
exec(“注销”);
}/ / disp_memlog()结束
嗨ridzuwary,
看来您正在运行的代码在睡眠模式下,尝试再次启动调试会话,然后单击停止调试。通过做广告,你应该看到你的设备。如果你想调试代码,禁用睡眠功能和运行代码。请把所有的跳投,除了JTAG的跳线连接。如果你把它放在消除电池。你是否检查运行任何其他SDK的例子吗?
谢谢,PM_Dialog
1。我怎么睡眠/ unsleep模式启用/禁用睡眠功能?
2。我一直在调试模式下运行wthout成功输出如上,
3所示。我已经检查所有其他例子,作品是工作,因为它不使用参数/内存。当运行调试其他Ble具有相同的错误。
4所示。让我来总结一下为了调试没有任何错误,我应该:
除了JTAG。删除所有的跳投(这种支持遵循UART跳投设置)。
b。取出电池
c。选择项目文件夹
d .构建
e。调试>启动调试会话
f .单击“运行
5。你能解释为什么发生这个错误吗?
/ /写DA1458x SYS_CTRL_REG - >生成SW重置,启用调试器
x50000012 _WWORD (0, 0 x80a4)
^
* * *错误125,10号线:AGDI:内存写失败(0 x50000012)
/ /前一个命令(SW重置)unhalts处理器
顺便说一下,在开始调试,当发出运行命令,它停留在init。
我附上图片。
顺便说一下,在开始调试,当发出运行命令,它停留在init。
我附上图片。
嗨ridzuwary,
截图是正确的!你的设备应该开始广告。你检查它与通用移动BLE应用程序?设备应在空气中。
谢谢,PM_Dialog
不幸的是,我不能检测设备。
这不是广告。
我使用3种不同的祝福/扫描仪就可以肯定的灯塔。
请看之前的命令部分截图。它将得到输出?
所以我igonore“* * *错误125,10行:AGDI:内存写(0 x50000012)失败”错误,仍然存在当我运行调试?
嗨ridzuwary,
这是非常奇怪的行为!试着在一个新的推导出路径的文件夹解压SDK JLink基尔工具,然后重新安装。在那之后,尝试构建项目。你能够建立他们正确吗?请注意,我不能复制你的问题,所以请试试这个,让我知道。
c: \ myWorkshop \ DA1458x_SDK \ 5.0.4
也请尽量禁用所有的破发点你将在你的代码。
谢谢,PM_Dialog
我有类似behavoir在最初安装和尝试准系统的例子。我固定它,做一个干净的构建”项目- >清洁目标”后跟一个“项目- >构建目标”。之后启动调试会话,运行程序开始广告。……老人
嗨robech,
感谢你的指示。
问候,PM_Dialog