构建精细,但在启动调试器上获取以下内容。
使用uVusion 5.15, SDK 3.0.6,根据外设测试设置调试器到内部RAM,
启动文件似乎有问题-如果我注释它的可执行程序运行,但我不能看到任何BLE广告。第一个问题是什么是启动文件抛出错误?
谢谢,克里斯
=============== ||=================.
jlink信息:
-------------
DLL: V4.96i,编译Feb 19 2015 11:29:51
固件:J-Link obs - sam3u128 V1编译Nov 28 2014 10:24:11
硬件:V1.00
S / N:480054962
* JLINK信息:找到了带ID 0x0BB11477的SWD-DP
* JLink Info: Found Cortex-M0 r0p0, Little endian。
* JLink Info: FPUnit: 4 code (BP)插槽和0字面值插槽
romtableaddr = 0xe00ff003.
目标信息:
-------------
设备:ARMCM0
vtarget = 3.300V.
引脚状态:TCK: 0, TDI: 0, TDO: 1, TMS: 1, TRES: 1, TRST: 1
硬件断点:4
软件断点:8192
观察点:2
JTAG速度:16667 kHz
load“c:\\ dialogsemitools \\ da14580_dsps_3.150.2 \\ dk_apps \\ keil_projects \\ sps \\ sps_device \\ out \\ sps_device.axf”
***具有32768字节代码大小限制的限制版本
***目前使用:15516个字节(47%)
包括“c:\\ dialogsemitools \\ da14580_dsps_3.150.2 \\ dk_apps \\ keil_projects \\ sps \\ sps_device \\ .. \\ .. \\ .. \\ misc \\ sysram_case23.ini”
/ *杀死按钮* * /
/* DEFINE BUTTON "Reset DK580", "include ../../misc/sysram_case23.ini
重置
e long 0x50000012 = 0xA4
E长0x50003308 = 0x2e
加载%L.
***具有32768字节代码大小限制的限制版本
***目前使用:15516个字节(47%)
SP = _RDWORD (0x20000000)
$ = _rdword(0x20000004)
func void disp_memlog(void)
{
int idx;
unsigned int min_delta;
exec(“日志> 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("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(“此堆中的使用大小:%4d(当前) - %4d(最大)\ 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(">>> Non-Ret HEAP <<<\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()结束
函数void displayvalues(空白)
{
int idx;
unsigned int min_delta;
exc(“log> myvalues.log”);
printf (" * * * dbg_remaining_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 = 0 xffffffff;
printf("三角洲max \ n”);
for(idx = 0; idx <100; idx ++){
int结果;
if(dbg_remaining_times [idx] <170)
________ ^
***错误34,第66行:未定义的标识符
Result = 625 + dbg_remaining_times[idx] - 170;
_____________________^
***错误34,第67行:未定义标识符
其他的
结果= dbg_remaining_times [idx] - 170;
_______________^
***错误34,第69行:未定义的标识符
if(min_delta>结果)min_delta =结果;
printf (" % d \ n”,结果);
}
printf("达美航空敏\ n”);
for(idx = 0; idx <100; idx ++){
int结果;
If (dbg_remaining_times[idx] < 400)
________ ^
***错误34,第76行:未定义的标识符
结果= 625 + dbg_remaining_tips [Idx] - 400;
_____________________^
***错误34,第77行:未定义的标识符
其他的
Result = dbg_remaining_times[idx] - 400;
_______________^
***错误34,第79行:未定义的标识符
if(min_delta>结果)min_delta =结果;
printf (" % d \ n”,结果);
}
Printf (" min_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 to clk补偿程序progray:%d \ n”,dbg_slp_rem_diff_min);
__________________________________________________________^
***错误34,第90行:未定义的标识符
exec(“注销”);
} // displayValues()结束
rxdesc WS 1”
你好Chris,这周我会和美国队讨论这个问题。快速问:你使用的目标HW是什么?BASIC或PRO或Expert套件或PAN1740 / Murata模块?
谢谢& BR
je_dialog
我正在使用基本董事会
RGSD - Chris.
嗨,克里斯:
我也看到错误由于启动文件。我会将此信息传达给我们的开发团队。尽管有错误,我还是看到了广告。您可以尝试加载另一个示例项目吗?我的建议是,您从SDK 3.0.6: C:\DA1458x_SDK_3.0.6\dk_apps\keil_projects\proximity\reporter_fh加载近似报告程序项目。让我们看看你是否能看到这个项目的广告。我们将从那里开始。
谢谢,
tr_dialog.
这个项目没有出现错误,但我仍然没有看到广告
使用的Connection Manager验证芯片是否正常 - 外设模式通告正常
甚至更有趣 - 当IDOWNLOAD项目时,它简要宣传DIALIDDEMO。一旦我运行DSP项目,广告就会停止
祝好,克里斯
你好,
你能解释一下你的意思吗?“外围模式宣传正常”
Proximity Reporter_FH也是一个外设项目。
谢谢,
tr_dialog.
我的意思是,当我使用连接管理器(作为外设启动)启用它时,外设广告工作良好——在iOS上使用LightBlue进行测试
只有我对项目进行的更改是内部存储器的KEIL目标选项中的设置 - 根据外设测试项目。
你能把你的版本的DSP项目发布在内存中的基本电囊上吗?如果这不起作用,则必须是一个刀具问题?
- 当我停止调试器时,广告开始,我也看到了来自Android应用的一些字符,使其成为USB串口
-我也有点困惑,为什么我不能得到一个标准样本工作的标准eval板开箱。如果这行不通,那就预示着未来不妙:)
看起来我们在check_sys_startup_period(),第849行 - 时((getword16(sys_stat_reg)&dbg_is_up)== dbg_is_up){};
为什么DBG_IS_UP标志没有被断言?您能否确认他的SW实际上已经在基本董事会上进行了测试?它似乎在专家委员会上工作。
嗨,克里斯:
使用DSP的基本套件需要一些额外的步骤,如用户手册的第8.1节中所述。
你试过这种配置吗?
谢谢,
tr_dialog.
非常感谢您的回复。
DSPS用户手册(UM-B-038) 8.1节?这就是让串口运行的方法。我还没到那一步,广告还没上线,我无法连接。
还是我错过了什么互动?例如,因为RTS游戏没有设置,所以SW被炸毁了?
此外,为什么我不能在盲手连接上使用串行端口没有流量控制?我可以在另一个串口中电线,但ot似乎是不必要的麻烦?
问候 - 克里斯
嗨,克里斯:
以下是我们在电话交谈中讨论的几点:
- 您必须停止调试器的M0处理器以执行代码。这是必要的,因为与J-Link调试器的深度睡眠或延长休眠冲突。您必须停止调试器为设备启动广告。您还可以在每个项目的DA14580_CONFIG.H文件中禁用(undefine)睡眠模式,这将允许您使用调试器。
- 在使用基本套件的DSP项目时,需要一些额外的步骤来让数据在两个方向上移动。这些步骤在用户手册的第8.1节中概述。
- 专家套件可能是您的评估过程的更好平台。专家套件还允许您使用智能片段的功率计功能来实时监控电流消耗。您还可以连接外部电流仪表以测量峰值和睡眠模式电流。
谢谢,
tr_dialog.
谢谢。是的,睡眠模式是罪魁祸首。关闭深度睡眠&调试器是愉快的。
也使SW流量控制代替HW流量控制和Segger UART工作良好。
关闭。
我面临着使用专家套件的原始帖子的问题。
我应该怎么办?在用户手册的8.1节中专家套件没有额外的步骤。
我有一个问题使用基本开发工具和DSPS参考设计。sps_device项目使用JTAG编译和下载到板,但设备没有显示在DSPS android应用程序。我使用SW_FLOW_CTRL:
#define cfg_uart_sw_flow_ctrl.
# undef CFG_UART_HW_FLOW_CTRL
停止调试无关。
使用SmartSnippets下载也不会有任何区别。
使用DA14580_1,我的自定义板发生了同样的问题。
能否请你帮忙?
嗨之列,
检查您的FTDI连接,如果您的连接正常,请删除睡眠配置以调试程序并查看程序卡在哪里。
谢谢mt_dialog。
你好,谢谢你的回复
现在,基本DEV板与DSP配合使用并宣传设备。
但是,我的自定义板上的代码在DSPS Android应用程序中没有宣传并且不会出现。我在50OHM天线中使用了Cuck模式的REF设计,并使用了3.3nh电感非常靠近芯片。当DSP下载并且调试器停止时,我从RFIOP探测器探测器,在DEV板中的范围(大约50mV大约为50mV之外)我可以观察到良好的信号。定制板使用此小天线:http://www.farnell.com/datasheets/1819371.pdf.有匹配的PI电路(还没有匹配的元件)。
50OHM阻抗匹配是多么重要?
为什么当DSP运行时,你认为我没有看到任何信号?
我是否需要改变我的定制委员会的DSP代码中的任何东西(除了GPIO拨款)?
我真的很感激你的帮助。
谢谢你!