Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Code Block
themeEclipse
languagecpp
firstline1
linenumberstrue
#include <stdint.h>
#define GPIO_C_DIR                0x400DB400
#define GPIO_C_DATA                0x400DB000
#define HWREG(x)                                                              \
    (*((volatile uint32_t *)(x)))

int main(void)
{
    volatile uint32_t ui32LoopCount;
    volatile uint32_t ui32LoopXV=0;
    // Set direction output and initial value for PC2 and PC0
    // Greed LED on PC2
    // Red LED on PC0
    HWREG(GPIO_C_DIR) |= 0x05;
    HWREG(GPIO_C_DATA + (0x05 << 2)) = 0;
    // Loop forever.
    while(1)
    {
        // Turn on both LED's.
        HWREG(GPIO_C_DATA + (0x05 << 2)) ^= 0x05;
        // Delay for a bit
        for(ui32LoopCount = 200000; ui32LoopCount > 0; ui32LoopCount--)
        {
            ui32LoopXV++;
        }
    }
}

...

The folder structure should look something like:

Image Added

Make sure you can compile the code by using the "hammer". The console output should indicate something like that.

Code Block
languagebash
13:37:30 **** Incremental Build of configuration Debug for project artest ****
make all 
Invoking: ARM Windows GNU Print Size
arm-none-eabi-size  --format=berkeley artest.elf
   text       data        bss        dec        hex    filename
    824          0        512       1336        538    artest.elf
Finished building: artest.siz
 
13:37:33 Build Finished (took 2s.612ms)

 

Create a Debug Configuration using JTAG and GDB

 

Before starting a Debug configuration we have to make sure that the GDB hardware debug plugin in Eclipse is installed. To install it go to Help - Install New Software

Use the filtering option to find the GDB plugin and select the GDB Hardware Debugging option.

Image Added

This will require you to restart eclipse.

Before starting a debug configuration GDB server needs to be started. This is a tool provided by Segger and can be started by executing Segger J-link GDB server from the segger application menu.

The following screen will allow you to configure the target chip and the connection features.

Image Added

After that press OK and the following screen will appear.

Image Added

 

Now that GDB is running and we have the GDB server plugin installed in Eclipse we can create a configuration to debug our CC2538 platform.

To do so, create a Debug Configuration as follows (click on the little arrow in the side of the little bug on the menu panel in eclipse):

Image Added

Make sure to select the Standard GDB Hardware Debugging Launcher (click select if this is not the case)

In the Debugger tab configure the debugger as follow (choose the location of the arm-none-eabi-gdb script)

 

Image Added

Configure the startup tab as follows:

Image Added

The code to put in the box is the following one.

Code Block
target remote localhost:2331
monitor interface jtag
monitor speed 5000
monitor endian little
monitor flash download = 1
monitor flash breakpoints = 1
monitor reset

Click Apply to save the settings and Debug to start the debugging session.

Debugging

Finally, that everything is configured we can just lunch our debug session. Make sure first that:

  • the JTAG is connected to the board
  • the Segger GDB Server app is running

Image Added

If you look at the GDB Server app all Color labels MUST be green.

Image Added

And that's all folks!!