Debug session in CCES 2.9.1 slows down ADSP-SP589 ARM cortex core
Hi,
I am developing an USB device under FreeRTOS 10.0.0 on ADSP-SC589 EZ board with CrossCore Studio 2.9.1.
I only run application on ARM core, Core 1 and Core 2 application is not loaded.
When the debug session is active the the core is extremely slow. Ex. when an USB packet received from from host
it will be answered (sent to the USB core) immediately, but it is sent out after 150-200 ms.
I measured this time in USB tracer and in SW as well.
However, if I start debug session: application is downloaded, and started, then I terminate debug session.
After that I connect USB cable to the board everything is working fine and no delay in USB communication.
I tried to set up de bug session using both 'Application with CrossCore Debugger' and 'Applicaqtion with GDB and OpenOCD (Emulator)' launch
with the same result.
An ICE-1000 is used as a debugger.
Have anybody had similar problem, and can suggest me a solution for this problem?
Thanks,
Regards,
Zoltan
Audio Signal Processors
adsp-sc589
Processors & Microcontrollers
Processors and Microcontrollers
SHARC Audio Processors/SoCs
Heterogeneous Multicore Processors
Show More
Hi Zoltan,
this is a known issue.
FreeRTOS on the ARM core of the SC5xx uses the SWI interrupt, which is also used by the emulator to perform inter-core communication with the host in bare metal applications. For this the emulator sets a breakpoint on the SWI instruction and this is what's probably causing the slow-down that you are seeing.
If you upgrade to the latest FreeRTOS from Analog Devices, there are some guidelines for avoiding this in the user guide.
https://www.analog.com/en/design-center/evaluation-hardware-and-software/software/freertos.html
Section 5.1 talks through running the basic example for SC589 ARM, and instructs you how to disable the semi-hosting feature to avoid the slow down.
Since this stops the default host I/O mechanism from working we have implemented a UART based I/O module for FreeRTOS. There are instructions for using that in the same chapter of the User Guide.
I should also mention that earlier versions of the FreeRTOS Add-In did not work well with the System Services and Device Drivers.
A critical fix for these was added in the ADI FreeRTOS product 1.3.1 and above.
This requires some additional options to be configured in your CCES project.
Please refer to section 10 of the FreeRTOS User Guide - Using CrossCore Embedded Studio System Services and Device Drivers with FreeRTOS - for more details.
Dave
Hi Dave,
Thanks for pointing out this info. Now, my Debug session works as expected.
Regards,
Zoltan
Please log in to reply.