无法连接到DSP设备。

⚠️
Hi there.. thanks for coming to the forums. Exciting news! we’re now in the process of moving to our new forum platform that will offer better functionality and is contained within the main Dialog website. All posts and accounts have been migrated. We’re now accepting traffic on the new forum only - please POST any new threads at//www.wsdof.com/support. We’ll be fixing bugs / optimising the searching and tagging over the coming days.
12 posts / 0 new
Last post
Maurizio Malaspina
Offline
Last seen:9 months 1 week ago
加入:2019-01-16 21:40
无法连接到DSP设备。

Hello,

I'm running the "DA1458x_DSPS\v_5.150.2\projects\target_apps\dsps\sps_device\Keil_5\sps_device.uvprojx" in RAM on a DA14580DEVKIT-PRO.
I'm not able to detect the device with your DSPS App 3.210.4 (25 July 2017) running on my Android device (Huawey P9 Lite).
What is the right procedure to work this demo?

Thank you very much in advance,
Maurizio

关键词:
Device:
PM_Dialog
Offline
Last seen:3 days 12 hours ago
工作人员
加入:2018-02-08 11:03
嗨Maurizio Malaspina,

嗨Maurizio Malaspina,

The default dpsp_device application code uses hardware flow control. Please check the CFG_UART_HW_FLOW_CTRL in the user_periph_setup.h header file. So, in case you have the Pro-DK you should correctly configure the jumpers. I would suggest to have a look at Figure 19 of the UM-B-088 user manual. Do you have the same jumper configurations?

https://support.dialog-seminile.com/system/files/resources/um-b-088%20da14585%20serial%20port%20service%20reference%20application_v1.0.pdf.

Thanks, PM_Dialog

Maurizio Malaspina
Offline
Last seen:9 months 1 week ago
加入:2019-01-16 21:40
感谢您的答复。

感谢您的答复。
The jumpers are correctly configured for UART with HW flow control communication.
I've rebuilt the target and now I can see the "DIALOG-SPS" device detected by the Bluetooth of my Android smartphone.
The problem now is that the debug stops.
I can see in the "Command" Window of the Keil IDE:

Running with Code Size Limit: 32K
Set JLink Project File to "C:\Users\Utente\Desktop\DA1458x_DSPS\v_5.150.2\projects\target_apps\dsps\sps_device\Keil_5\JLinkSettings.ini"* JLink Info: Device "CORTEX-M0" selected.

JLink info:
------------
DLL: V6.32i, compiled Jul 24 2018 15:19:55
Firmware: J-Link OB-SAM3U128 V1 compiled Jul 12 2018 12:17:48
Hardware: V1.00
S/N : 480068119

* JLink Info: Found SW-DP with ID 0x0BB11477
* JLink Info: Scanning AP map to find all available APs
* JLink Info: AP[1]: Stopped AP scan as end of AP map has been reached
* JLink Info: AP[0]: AHB-AP (IDR: 0x04770021)
* JLink Info: Iterating through AP map to find AHB-AP to use
* JLink Info: AP[0]: Core found
* JLink Info: AP[0]: AHB-AP ROM base: 0xE00FF000
* JLink Info: CPUID register: 0x410CC200. Implementer code: 0x41 (ARM)
* jlink信息:找到cortex-m0 r0p0,小endian。
* JLink Info: FPUnit: 4 code (BP) slots and 0 literal slots
* JLink Info: CoreSight components:
* JLink Info: ROMTbl[0] @ E00FF000
* JLink Info: ROMTbl[0][0]: E000E000, 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
ROMTableAddr = 0xE00FF000
* JLink Info: Reset: Halt core after reset via DEMCR.VC_CORERESET.
* jlink信息:重置:通过aircr.sysresetreq重置设备。

目标信息:
------------
Device: ARMCM0
vtarget = 3.300V.
State of Pins: TCK: 0, TDI: 1, TDO: 1, TMS: 1, TRES: 1, TRST: 1
Hardware-Breakpoints: 4
Software-Breakpoints: 8192
Watchpoints: 2
JTAG速度:1000 kHz

Include "C:\\Users\\Utente\\Desktop\\DA1458x_DSPS\\v_5.150.2\\projects\\target_apps\\dsps\\sps_device\\Keil_5\\..\\..\\..\\..\\..\\sdk_580\\sdk\\common_project_files\\misc\\sysram_case23.ini"
/* KILL BUTTON * */
/* DEFINE BUTTON "Reset DK580" , "include ../../../misc/sysram_case23.ini" */
重启
* JLink Info: Reset: Halt core after reset via DEMCR.VC_CORERESET.
* jlink信息:重置:通过aircr.sysresetreq重置设备。
e long 0x50000012 = 0xA4
E long 0x50003308 = 0x2e
LOAD %L
* JLink Info: Reset: Halt core after reset via 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*** Memory Logging Results ***\n\n");

printf(“>>> env heap <<< \ n”);
printf(“此堆中的使用大小:%4d(当前) - %4d(最大)\ n”,mem_log [0] .use_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("Used size in this HEAP : %4d (current) - %4d (maximum)\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("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("Used size in this HEAP : %4d (current) - %4d (maximum)\n", mem_log[3].used_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("log off");
} //disp_memlog() ends

**JLink Warning: CPU could not be halted
***JLink Error: Can not read register 15 (R15) while CPU is running
***JLink Error: Can not read register 16 (XPSR) while CPU is running
***JLink Error: Can not read register 0 (R0) while CPU is running
***JLink Error: Can not read register 1 (R1) while CPU is running
*** JLINK错误:CPU运行时无法读取寄存器2(R2)
***JLink Error: Can not read register 3 (R3) while CPU is running
***JLink Error: Can not read register 4 (R4) while CPU is running
*** jlink错误:CPU运行时无法读取寄存器5(R5)
*** jlink错误:CPU运行时无法读取寄存器6(R6)
***JLink Error: Can not read register 7 (R7) while CPU is running
***JLink Error: Can not read register 8 (R8) while CPU is running
***JLink Error: Can not read register 9 (R9) while CPU is running
***JLink Error: Can not read register 10 (R10) while CPU is running
***JLink Error: Can not read register 11 (R11) while CPU is running
*** jlink错误:CPU运行时无法读取寄存器12(R12)
***JLink Error: Can not read register 13 (R13) while CPU is running
***JLink Error: Can not read register 14 (R14) while CPU is running
***JLink Error: Can not read register 15 (R15) while CPU is running
***JLink Error: Can not read register 16 (XPSR) while CPU is running
***JLink Error: Can not read register 17 (MSP) while CPU is running
***JLink Error: Can not read register 18 (PSP) while CPU is running
*** jlink错误:CPU正在运行时无法读取寄存器20(CFBP)

What could be the issue?

Thank you in advance,
Maurizio

PM_Dialog
Offline
Last seen:3 days 12 hours ago
工作人员
加入:2018-02-08 11:03
嗨Maurizio Malaspina,

嗨Maurizio Malaspina,

Could you please run it with hot attach the debugger in order to find where the firmware gets crashed? When the code get crashed? When you are trying to connect from you phone? Since you downloaded the firmware to System-RAM, the DA14580 starts advertising? Could you please check it with the power profiler of SmartSnipptes toolbox?

Thanks, PM_Dialog

Maurizio Malaspina
Offline
Last seen:9 months 1 week ago
加入:2019-01-16 21:40
感谢您的答复。

感谢您的答复。

我正确地指出“.....\DA1458x_DSPS\v_5.150.2\projects\target_apps\dsps\sps_device\Keil_5\JLinkSettings.ini" initialization file in the debug tab of the "option for target 'spds_device_580'" inthe KEIL uVision IDE.

通过这种方式,在调试RAM期间不会发生崩溃,并在我的Android智能手机上启动“Dialog-SPS”应用程序,我的“Dialog-SPS”设备被找到。

Despite of this the connection cannot be established during debugging.

If I upload the application in RAM using the "booter" tool provided by "SmartSnippet Toolbox v.5.0.6.2196" the application run and the connection can be established!

Why the application doesn't properly run during debug?

PM_Dialog
Offline
Last seen:3 days 12 hours ago
工作人员
加入:2018-02-08 11:03
嗨Maurizio Malaspina,

嗨Maurizio Malaspina,

>>尽管这有,但在调试期间无法建立连接。

Do you mean that you have the debugger hot attached and you are not able to connect?

>> If I upload the application in RAM using the "booter" tool provided by "SmartSnippet Toolbox v.5.0.6.2196" the application run and the connection can be established!

Could you please clarify it? Do you mean that you download the firmware into the SPI Flash?

Thanks, PM_Dialog

Maurizio Malaspina
Offline
Last seen:9 months 1 week ago
加入:2019-01-16 21:40
Thank you for the reply and

Thank you for the reply and excuse me for the delay.

>>你的意思是你有调试器热门的调试器,你无法连接?

Exactly (see "Picture_1.png" attached)

当我启动调试会话时,我注意到命令提示符中的“***错误10:语法错误”。

>> Could you please clarify it? Do you mean that you download the firmware into the SPI Flash?

我正在将十六进制文件加载到芯片的主Sysram中(请参阅“picture_2.png”和“picture_3.png”附加),并检测到对话框(请参阅“screenshot_android.png”)。

This is the complete command prompt output:

Running with Code Size Limit: 32K
Set JLink Project File to "C:\Users\Utente\Desktop\DA1458x_DSPS\v_5.150.2\projects\target_apps\dsps\sps_device\Keil_5\JLinkSettings.ini"* JLink Info: Device "CORTEX-M0" selected.

JLink info:
------------
DLL: V6.32i, compiled Jul 24 2018 15:19:55
Firmware: J-Link OB-SAM3U128 V1 compiled Jul 12 2018 12:17:48
Hardware: V1.00
S/N : 480068119

* JLink Info: Found SW-DP with ID 0x0BB11477
* JLink Info: Scanning AP map to find all available APs
* JLink Info: AP[1]: Stopped AP scan as end of AP map has been reached
* JLink Info: AP[0]: AHB-AP (IDR: 0x04770021)
* JLink Info: Iterating through AP map to find AHB-AP to use
* JLink Info: AP[0]: Core found
* JLink Info: AP[0]: AHB-AP ROM base: 0xE00FF000
* JLink Info: CPUID register: 0x410CC200. Implementer code: 0x41 (ARM)
* jlink信息:找到cortex-m0 r0p0,小endian。
* JLink Info: FPUnit: 4 code (BP) slots and 0 literal slots
* JLink Info: CoreSight components:
* JLink Info: ROMTbl[0] @ E00FF000
* JLink Info: ROMTbl[0][0]: E000E000, 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
ROMTableAddr = 0xE00FF000
* JLink Info: Reset: Halt core after reset via DEMCR.VC_CORERESET.
* jlink信息:重置:通过aircr.sysresetreq重置设备。

目标信息:
------------
Device: ARMCM0
vtarget = 3.300V.
State of Pins: TCK: 0, TDI: 1, TDO: 1, TMS: 1, TRES: 1, TRST: 1
Hardware-Breakpoints: 4
Software-Breakpoints: 8192
Watchpoints: 2
JTAG速度:1000 kHz

Load "C:\\Users\\Utente\\Desktop\\DA1458x_DSPS\\v_5.150.2\\projects\\target_apps\\dsps\\sps_device\\Keil_5\\out_580\\sps_device_580.axf"
* JLink Info: Reset: Halt core after reset via DEMCR.VC_CORERESET.
* jlink信息:重置:通过aircr.sysresetreq重置设备。
包括“c:\\ users \\ utente \\ desktop \\ da1458x_dsps \\ v_5.150.2 \\ projects \\ target_apps \\ dsps \\ sps_device \\ keil_5 \\ jlinksettings.ini”
[BREAKPOINTS]
^
*** error 10: Syntax error

你觉得怎么样是错的?

Thank you in advance,

Maurizio

PM_Dialog
Offline
Last seen:3 days 12 hours ago
工作人员
加入:2018-02-08 11:03
嗨Maurizio Malaspina

嗨Maurizio Malaspina

Could you please read the教程8:调试方法tutorial from our support website in order to see how you can run the code in debug mode?

Thanks, PM_Dialog

Maurizio Malaspina
Offline
Last seen:9 months 1 week ago
加入:2019-01-16 21:40
亲爱的pm_dialog,

亲爱的pm_dialog,

thanks for the support.

我已成功阅读并推动了教程的第一部分。

Subsequently I've tried to perform the same steps in the sps_device project.

The first attempt failed. I've discovered that the default initialization file for the JLINK pointed in the "Option for target 'sps_device_580' --> Debug" tab was wrong.

The right one to point is "..\..\..\..\..\sdk_580\sdk\common_project_files\misc\sysram_case23.ini".

In this way, no more "*** error 10: Syntax error" raises in the command prompt output window.

In this project, unfortunately, the UART2 port is used as I/O terminal for the UART over BLE, so I cannot activate the "CFG_PRINTF" as described in the tutorial 8, but the debug starts in the KEIL IDE.

With this configuration, the DIALOG-SPS application is able to detect the device and all is properly working but the JLINK loses the connection preventing to perform real-time debugging from the IDE.

When the connection to the uC is lost, the command prompt output windows shows:

Running with Code Size Limit: 32K
Set JLink Project File to "C:\Users\Utente\Desktop\DA1458x_DSPS\v_5.150.2\projects\target_apps\dsps\sps_device\Keil_5\JLinkSettings.ini"* JLink Info: Device "CORTEX-M0" selected.

JLink info:
------------
DLL: V6.32i, compiled Jul 24 2018 15:19:55
Firmware: J-Link OB-SAM3U128 V1 compiled Jul 12 2018 12:17:48
Hardware: V1.00
S/N : 480068119

* JLink Info: Found SW-DP with ID 0x0BB11477
* JLink Info: Scanning AP map to find all available APs
* JLink Info: AP[1]: Stopped AP scan as end of AP map has been reached
* JLink Info: AP[0]: AHB-AP (IDR: 0x04770021)
* JLink Info: Iterating through AP map to find AHB-AP to use
* JLink Info: AP[0]: Core found
* JLink Info: AP[0]: AHB-AP ROM base: 0xE00FF000
* JLink Info: CPUID register: 0x410CC200. Implementer code: 0x41 (ARM)
* jlink信息:找到cortex-m0 r0p0,小endian。
* JLink Info: FPUnit: 4 code (BP) slots and 0 literal slots
* JLink Info: CoreSight components:
* JLink Info: ROMTbl[0] @ E00FF000
* JLink Info: ROMTbl[0][0]: E000E000, 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
ROMTableAddr = 0xE00FF000
* JLink Info: Reset: Halt core after reset via DEMCR.VC_CORERESET.
* jlink信息:重置:通过aircr.sysresetreq重置设备。

目标信息:
------------
Device: ARMCM0
vtarget = 3.300V.
State of Pins: TCK: 0, TDI: 1, TDO: 1, TMS: 1, TRES: 1, TRST: 1
Hardware-Breakpoints: 4
Software-Breakpoints: 8192
Watchpoints: 2
JTAG速度:1000 kHz

Load "C:\\Users\\Utente\\Desktop\\DA1458x_DSPS\\v_5.150.2\\projects\\target_apps\\dsps\\sps_device\\Keil_5\\out_580\\sps_device_580.axf"
* JLink Info: Reset: Halt core after reset via DEMCR.VC_CORERESET.
* jlink信息:重置:通过aircr.sysresetreq重置设备。
Include "C:\\Users\\Utente\\Desktop\\DA1458x_DSPS\\v_5.150.2\\projects\\target_apps\\dsps\\sps_device\\Keil_5\\..\\..\\..\\..\\..\\sdk_580\\sdk\\common_project_files\\misc\\sysram_case23.ini"
/* KILL BUTTON * */
/* DEFINE BUTTON "Reset DK580" , "include ../../../misc/sysram_case23.ini" */
重启
* JLink Info: Reset: Halt core after reset via DEMCR.VC_CORERESET.
* jlink信息:重置:通过aircr.sysresetreq重置设备。
e long 0x50000012 = 0xA4
E long 0x50003308 = 0x2e
LOAD %L
* JLink Info: Reset: Halt core after reset via 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*** Memory Logging Results ***\n\n");

printf(“>>> env heap <<< \ n”);
printf(“此堆中的使用大小:%4d(当前) - %4d(最大)\ n”,mem_log [0] .use_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("Used size in this HEAP : %4d (current) - %4d (maximum)\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("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("Used size in this HEAP : %4d (current) - %4d (maximum)\n", mem_log[3].used_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("log off");
} //disp_memlog() ends

**JLink Warning: CPU could not be halted
***JLink Error: Can not read register 15 (R15) while CPU is running
***JLink Error: Can not read register 16 (XPSR) while CPU is running
***JLink Error: Can not read register 0 (R0) while CPU is running
***JLink Error: Can not read register 1 (R1) while CPU is running
*** JLINK错误:CPU运行时无法读取寄存器2(R2)
***JLink Error: Can not read register 3 (R3) while CPU is running
***JLink Error: Can not read register 4 (R4) while CPU is running
*** jlink错误:CPU运行时无法读取寄存器5(R5)
*** jlink错误:CPU运行时无法读取寄存器6(R6)
***JLink Error: Can not read register 7 (R7) while CPU is running
***JLink Error: Can not read register 8 (R8) while CPU is running
***JLink Error: Can not read register 9 (R9) while CPU is running
***JLink Error: Can not read register 10 (R10) while CPU is running
***JLink Error: Can not read register 11 (R11) while CPU is running
*** jlink错误:CPU运行时无法读取寄存器12(R12)
***JLink Error: Can not read register 13 (R13) while CPU is running
***JLink Error: Can not read register 14 (R14) while CPU is running
***JLink Error: Can not read register 15 (R15) while CPU is running
***JLink Error: Can not read register 16 (XPSR) while CPU is running
***JLink Error: Can not read register 17 (MSP) while CPU is running
***JLink Error: Can not read register 18 (PSP) while CPU is running
*** jlink错误:CPU正在运行时无法读取寄存器20(CFBP)

Perhaps any sleep mode enters making thus the JLINK connection falling down?

Is possible to perform a standard debug of this project?

Am I forced to use serial ports to debg?

What are the limitations/constraints in general?

Thank you very much indeed in advance,

Maurizio

PM_Dialog
Offline
Last seen:3 days 12 hours ago
工作人员
加入:2018-02-08 11:03
嗨Maurizio Malaspina,

嗨Maurizio Malaspina,

The DSPS projects is by default using the extended sleep mode, so if you change it into the active mode, could you please let me now if you have the same issue?

app_default_sleep_mode = arch_sleep_off;//在user_config.h.中

Thanks, PM_Dialog

Maurizio Malaspina
Offline
Last seen:9 months 1 week ago
加入:2019-01-16 21:40
Yes, thanks al lot!

Yes, thanks al lot!

In this way the debugger seems to properly work.

Could you pse send me some links to the debugging limitations / what to know in order to understand what are the debugging limitations and/or how sleep modes influence the behaviour of the code?

问候,

Maurizio

PM_Dialog
Offline
Last seen:3 days 12 hours ago
工作人员
加入:2018-02-08 11:03
嗨Maurizio Malaspina,

嗨Maurizio Malaspina,

You can refer to ARM for debugging limitation. We haven’t any document describing this kind of limitations. A debugging limitation is up 4 breakpoint and up to 8 watch points. When you run the project in extended sleep mode the debugger is powered off, so that’s the reason why you were not able to attach it. If you found any answer useful, pleas mark it as “accepted”.

Thanks, PM_Dialog