构建良好,但在启动调试器时获得以下内容。
使用Uvusion 5.15,SDK 3.0.6,根据外设测试将调试器设置为内部RAM,
启动文件似乎是问题 - 如果我用可执行运行评论它,但我看不到任何BLE广告。第一个问题是这个启动文件抛出错误吗?
谢谢 - 克里斯
=============== || =================
JLink信息:
------------
DLL:v4.96i,2015年2月19日编译11:29:51
固件:J-Link OB-SAM3U128 V1编译2014年11月28日10:24:11
硬件:v1.00
S / N: 480054962
* JLink Info: Found SWD-DP with ID 0x0BB11477
* jlink信息:找到cortex-m0 r0p0,小endian。
* jlink信息:fpUnit:4代码(BP)插槽和0个字幕插槽
ROMTableAddr = 0 xe00ff003
目标信息:
------------
设备:ARMC0.
VTarget = 3.300 v
引脚状态:TCK:0,TDI:0,TDO:1,TMS:1,TRES:1,TRST:1
Hardware-Breakpoints: 4
Software-Breakpoints: 8192
监测点:2
JTAG速度:16667千赫
负载“C: \ \ DialogSemiTools \ \ DA14580_DSPS_3.150.2 \ \ dk_apps \ \ keil_projects \ \ sps \ \ sps_device \ \ \ \ sps_device.axf”
***受限版本32768字节代码大小限制
***当前使用:15516字节(47%)
包括“C: \ \ DialogSemiTools \ \ DA14580_DSPS_3.150.2 \ \ dk_apps \ \ keil_projects \ \ sps \ \ sps_device \\..\\..\\..\\ misc \ \ sysram_case23.ini”
/*关闭按钮* */
/ *定义按钮“重置dk580”,“包含../../misc/sysram_case23.ini”* /
重启
E长0x50000012 = 0xa4
e long 0x50003308 = 0x2e
负载% L
***受限版本32768字节代码大小限制
***当前使用:15516字节(47%)
sp = _rdword(0x20000000)
$ = _RDWORD (0x20000004)
函数void disp_memlog(空白)
{
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("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("Used size in this HEAP: %4d (current) - %4d (maximum)\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("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(“注销”);
} / / disp_memlog()结束
Func void显示屏(空白)
{
int idx;
unsigned int min_delta;
exec(“日志> MyValues.log”);
printf(“*** dbg_remailing_times [] \ n”);
For (idx = 0;idx < 100;idx + +) {
printf (" % d \ n”,dbg_remaining_times [idx]);
____________________ ^
***错误34,第51行:未定义的标识符
}
printf(“*** dbg_sleep_times [] \ n”);
For (idx = 0;idx < 100;idx + +) {
printf (" % d \ n”,dbg_sleep_times [idx]);
____________________ ^
***错误34,第55行:未定义的标识符
}
printf(“*** dbg_check_times [] \ n”);
For (idx = 0;idx < 100;idx + +) {
printf (" % d \ n”,dbg_check_times [idx]);
____________________ ^
***错误34,第59行:未定义的标识符
}
printf(“\ n \ n ===== ==== \ n”);
min_delta = 0xffffffff;
printf(“delta max \ n”);
For (idx = 0;idx < 100;idx + +) {
结果;
If (dbg_remaining_times[idx] < 170)
________ ^
***错误34,第66行:未定义的标识符
结果= 625 + dbg_remaining_times [Idx] - 170;
_____________________ ^
***错误34,第67行:未定义的标识符
别的
Result = dbg_remaining_times[idx] - 170;
________________ ^
***错误34,第69行:未定义的标识符
If (min_delta > result) min_delta = result;
printf(“%d \ n”,结果);
}
printf(“delta min \ n”);
For (idx = 0;idx < 100;idx + +) {
结果;
if(dbg_remaining_times [idx] <400)
________ ^
***错误34,第76行:未定义的标识符
Result = 625 + dbg_remaining_times[idx] - 400;
_____________________ ^
***错误34,第77行:未定义的标识符
别的
结果= dbg_remaining_times [idx] - 400;
________________ ^
***错误34,第79行:未定义标识符
If (min_delta > result) min_delta = result;
printf(“%d \ n”,结果);
}
printf(“mininum logged delta:%d \ n”,min_delta);
printf(“slp剩余时间\ n”);
For (idx = 0;idx < 100;idx + +) {
printf (" % d \ n”,dbg_slp_rem [idx]);
____________________ ^
***错误34,第86行:未定义标识符
}
printf("最小记录SLP rem时间:%d\n", dbg_slp_rem_min);
______________________________________________^
***错误34,第88行:未定义标识符
printf("最大记录SLP rem时间:%d\n", dbg_slp_rem_max);
______________________________________________^
***错误34,第89行:未定义的标识符
printf("SLP hit to clk补偿程序延迟:%d\n", dbg_slp_rem_diff_min);
__________________________________________________________ ^
***错误34,第90行:未定义标识符
exec(“注销”);
} / / displayvalues()结束
Ws 1,`rxdesc
你好克里斯,我本周我会与美国队讨论这个问题。快速问:您使用的是什么目标HW?基本或专业或专家套件或Pan1740 / Murata模块?
谢谢&br.
JE_Dialog
我用的是BASIC板
Rgsd -克里斯
嗨克里斯:
我也看到了启动文件引起的错误。我会向我们的开发团队沟通。尽管有错误,我会看到广告。你可以尝试加载另一个样本项目吗?我的建议是,从SDK 3.0.6:c:\ da1458x_sdk_3.0.6 \ dk_apps \ keil_projects \ proximity \ eporter_fh中加载了Proximitiy报道项目。让我们退出与此项目看到广告。我们会从那里去。
谢谢,
TR_DIALOG
该项目不会抛出错误,但我仍然没有看到广告
使用连接管理器来验证芯片是OK的-外设模式发布OK
更有趣的是,当下载DSPS项目时,它简单地宣传了DialogDemo。一旦我运行DSPS项目,广告就会停止
RGDS - Chris.
你好,
你能解释一下你所说的“外围模式广告OK”是什么意思吗?
Proximity reporter_fh也是一个外围项目。
谢谢,
TR_DIALOG
我的意思是,当我使用Connection Manager(作为外设)启用它时,外围广告工作正常 - 使用iOS上的闪烁测试
我对项目所做的唯一改变是在Keil目标选项设置内部内存-根据外设测试项目。
你能把在BASIC板上在内存中运行的dsp项目的版本发给我吗?如果这不起作用,一定是工具问题?
-当我停止调试广告启动,我也看到一些字符从Android应用程序使它的USB串口
- 我也有点困惑,为什么我无法获得标准样本,以便在框中开放标准eval板。如果这不起作用,它不会为未来提供良好:)
看起来我们在check_sys_startup_period(),第849行- while ((GetWord16(SYS_STAT_REG) & DBG_IS_UP) == DBG_IS_UP) {};
为什么DBG_IS_UP标记没有被声明?你能确认他的软件真的在BASIC板上测试过吗?这在专家委员会上似乎很管用。
嗨克里斯:
使用DSPS的基本套件需要一些额外的步骤,如用户手册8.1节所述。
你试过这个配置吗?
谢谢,
TR_DIALOG
非常感谢回复。
DSPS用户手册的第8.1节(UM-B-038)?这就是如何获取串行端口运行。我不是那里 - 广告不起作用,我无法连接。
或者我错过了一些相互作用吗?例如,由于未设置RTS,因此SW正在爆炸出来?
另外,为什么我不能在没有流量控制的segger连接上使用串行端口?我可以在另一个串行端口,但这似乎是一个不必要的麻烦?
问候-克里斯
嗨克里斯:
以下是我们在电话中讨论过的几点:
-你必须停止M0处理器的调试器来执行代码。这是必要的,因为深度睡眠或延长睡眠与J-Link调试器冲突。你必须停止调试器,设备才能开始发布广告。您还可以在每个项目的da14580_config.h文件中禁用(取消定义)这两种睡眠模式,这将允许您也使用调试器。
-当使用DSPS项目与基本套件,需要一些额外的步骤,以使数据在两个方向移动。这些步骤在用户手册8.1节中概述。
-专家工具包可能是您评估过程更好的平台。专家工具包还允许您使用智能片段的电能表功能,以实时监控当前的消费。你也可以连接外部电流表来测量峰值和休眠模式电流。
谢谢,
TR_DIALOG
谢谢 。是的,睡眠模式是罪魁祸首。关闭深睡眠,调试器很开心。
还启用SW流量控制而不是HW流量控制,并且SEGGER UART工作正常。
关闭。
使用Expert Kit,我面临着与原始帖子相同的问题。
我该怎么办?在用户手册的8.1节中,专家工具包没有额外的步骤。
我使用基本开发套件和DSPS参考设计存在问题。SPS_DEVICE项目使用JTAG编译并下载到电路板,但设备不会显示在DSPS Android应用程序中。我使用了sw_flow_ctrl:
#定义CFG_UART_SW_FLOW_CTRL
#undef cfg_uart_hw_flow_ctrl.
停止调试也没有帮助。
使用SmartSnippets下载将不会有任何区别。
同样的问题发生在我的自定义板使用DA14580_1。
你能帮忙吗?
嗨behzad,
检查您的FTDI连接,如果您的连接是好的,请删除睡眠配置,以便调试您的程序,并查看程序卡住的地方。
谢谢MT_dialog。
你好,谢谢你的回复
现在,基本的开发板与DSPS工作,并宣传设备。
然而,相同的代码在我的定制板上没有广告,也没有显示在DSPS android应用程序。我已经在buck模式下为50欧姆天线使用ref设计,并使用了非常接近芯片的3.3nH电感。当DSPS下载和调试器停止,我从RFIOp探针和没有显示在范围(除了一个非常低的幅度信号约50mv),而在开发板我可以观察到一个良好的信号。定制板使用这个小天线:http://www.farnell.com/datasheets/1819371.pdf使用匹配的PI电路(没有匹配组件)。
50欧姆阻抗匹配有多重要?
你认为为什么在dsp运行的时候我看不到任何信号?
我需要为我的自定义板更改任何dsp代码(除了GPIO分配)吗?
非常感谢你的帮助。
谢谢