Last month I covered the details of using ARM Compiler 6 to compile bare metal software included in Carbon Performance Analysis Kits (CPAKs) for ARMv8 processors such as the Cortex-A53. This time I will outline the flow used to connect ARM DS-5 version 5.19 to debug software. DS-5 is a full set of tools for end-to-end software development for ARM processors and includes the ability to connect to cycle accurate models running in SoC Designer and debug software.

Overview of DS-5 to SoC Designer Connection

Setting up SoC Designer for use with DS-5 involves the following steps:

Use a DS-5 supplied program called cdbimporter to create a DS-5 configuration database.

Add the configuration database to the list of systems to which DS-5 can connect.

Create a DS-5 Debug Configuration which specifies the system to connect to and the software to debug.

Connect to a SoC Designer simulation using the Debug Configuration to perform software debugging tasks.

This article presents a summary of the flow. The last two steps are common to debugging with eclipse, but the first two steps may be new to eclipse users. There is an application note in the SoC Designer release which provides additional information about cdbimporter. SoC Designer users can look at the file $MAXSIM_HOME/doc/DS5_App_Note.pdf

Generating a DS-5 Configuration Database

The database is created with a DS-5 utility called cdbimporter, which provides a number of useful features to help automate the process such as:

Use the Browse button to navigate to the directory which contains the configuration database created in the first step.

Use the Name field to name this database for later identification in the Preferences (it can also be left blank).Click OK to close the Add configuration database location dialog.Click OK again to close the Preference window. You will see a dialog box indicating it is adding the new database.

The configuration database is now included in the DS-5 list of target systems.

Create a DS-5 Debug Configuration

The next step is to create a DS-5 Debug Configuration that creates the connection to the system to be debugged.

Start the DS-5 debug perspective as follows:

From the top menu, select Windows -> open perspective -> DS5 Debug.

From the top menu, select Run > Debug Configurations… (or right-click from the upper left “Debug Control” view and select debug configurations -> DS-5 Debugger).

From the “Debug Configurations” pop up, right-click on DS5-Debugger and select New.

On the Files tab select the .axf file of the application, in this case sorts_v8.axf.

Load symbols from file assumes you already loaded the application to debug from SoC Designer. To load the application from DS-5 instead, enter the name in the Application on host to download box and the application will be written to memory when the debugger connects.

On the Debugger tab, in the Run Control panel, select "Connect only."

Connect DS-5 to a SoC Designer Simulation and Debug Software

The final step is to launch the Debugger Configuration and connect to the SoC Designer simulation. You can do this immediately using the Debug button on the lower right of the Debug Configurations dialog.

You can also use the Debug Control tab by right-clicking on the connection and selecting “Connect to Target” from the context menu (shown below).

After the debugger is connected the status is shown as “connected”:

After connection, DS-5 can be used to debug the software running on the SoC Designer simulation.

Simulation on Another Machine or Port

If multiple simulations are starting and stopping there is a chance the port number the simulator is using is different than it was when the configuration database was created. The first simulation is normally port 7000, then the next is 7001. The numbers will recycle as simulations start and stop. It’s not necessary to start from scratch and create a new configuration database. There is an environment variable that is the easiest way to adjust to a new port number:

For bash I use:

$ export CADI_TARGET_MACHINE=localhost:7001

This environment variable can also be used to connect to a simulator on another machine by using the name or IP address of the machine which has the running simulation.

Conclusion

This summary covered the steps to connect DS-5 to SoC Designer. DS-5 is the best debugger to handle bare metal software for the AARCH64 state compiled with ARM Compiler 6 and DWARF4 debug information. Make sure to review the application note provided with each SoC Designer release for the latest information.