ΣSigmaStudio Ask AI Русский Log in

Debug session in CCES 2.9.1 slows down ADSP-SP589 ARM cortex core

Processors & DSP hzoli Oct 4, 2019 00:00 2 replies Original on forum ↗
Thread Summary

Thread Summary

The user experienced significant delays in USB communication when debugging an ARM core application on the ADSP-SC589 EZ board with FreeRTOS 10.0.0 and CrossCore Studio 2.9.1. The issue was caused by the emulator setting breakpoints on the SWI interrupt, which is used by FreeRTOS. Upgrading to the latest FreeRTOS version and disabling semi-hosting resolved the problem, allowing the debug session to run smoothly without delays.
AI Generated Content
Subscribe
hzoli Question
Oct 4, 2019 00:00

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

ADIApproved Reply
Oct 4, 2019 00:00

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

hzoli Reply
Oct 4, 2019 00:00

Hi Dave,

Thanks for pointing out this info. Now, my Debug session works as expected.

Regards,

Zoltan