Stellaris support in CCS

From Texas Instruments Embedded Processors Wiki

Jump to: navigation, search


  • Image:Google-16x16.png Search for an article here:


The purpose of this page is to clarify the existing TI tools support for the Stellaris® Cortex M3 microcontrollers.

Contents

Introduction

The Stellaris® family of CortexM3 devices is supported by an extensive set of in-house hardware development tools and third-party software tools from several vendors.  Stellaris development in Code Composer Studio is first supported by the 4.1.0.  

Tool support

Compilers

A key item required to support Stellaris development was the addition of packed structure support.  The 4.6.1 compiler included in CCSv4.1 has this support.  Packed structures are commonly used by many off the self libraries for Cortex M3 including some used in the Stellarisware software.  

Debugger

It is possible to connect to a Stellaris development board using an XDS510 or XDS560 class emulator using the instructions provided in the links below.  CCSv4.1 has added support for the programming of Flash on Stellaris devices and debugging using the onboard emulation that comes with the Stellaris development kits.

Simulation

It contains Cortex M3 Cycle accurate and Functional simulators.  For Stellaris you will want to select the little endian memory models. These Cortex M3 functional simulator model the Cortex-M3 core, Memory Protection Unit, NVIC, systick timer, memory interfaces and external memory. The cycle accurate simulator models the Cortex-M3 core in a highly accurate fashion and the memory interfaces in a protocol accurate fashion. These simulators support TI BIOS based applications development and benchmarking.

Simulators support the following rich set of debug and analysis features:

  1. Data Watchpoint
  2. Interrupt Latency Detector
  3. Function Profiling
  4. Code Coverage
  5. Pin Connect

Hardware Adapters

  • Some Stellaris DSK come with a 10 pin ARM connector. An Adapter is available here.

What is not supported

  • Serial Wire Output for TPIU trace output
  • Standard Console I/O operations (fread, fwrite, fopen, etc.) are not yet supported on the current release of CCS when using the on-board emulator
  • XDS100

What CCS License types support Stellaris?

Stellaris is supported by both Platinum and Microcontroller licenses starting with CCSv4.1. There will not be a code size limited version (MCU Core) for Stellaris. You can use the Stellaris development kits with the free bundle license. With the free license you are restricted to using the development board that comes with the Stellaris development kits, there will be no code size limit.

Getting started with CCS & Stellaris

  • LM3S9B92 DSK board: This comes with the ARM 10 pin connector. To connect an XDS560 or XDS510 emulator, you will need the 10 pin ARM target to 20 pin ARM emulator adapter (TI tools support for Cortex M3#Hardware_Adapters). Then, check to see if your XDS560 or XDS510 come with the 20 pin ARM connector in the box. If your XDS560 or XDS510 do not support the ARM 20 connector, then you will also need to get an adapter for your XDS510 or XDS560 emulator. Adapters are available from JTAG Connectors#Adapters or from your 3rd party tools vendor directly. The ARM 20 pin connector on the smaller DSK board is designed to connect via a ribbon cable to a target card.

Known Issues

Clocking Features

The Profile Clock is disabled due to Hardware limitations of the M3 core. However, CCSv4 can still profile by reading the SCTM registers.

To enable this feature:

  • From the Main Menu in the Debug View, Select View->Breakpoints
  • The Breakpoints window will be added to the View. A Count Event can be selected from the drop-down menu, next to the three breakpoints icon, as shown below.
  • This gives you the option to select an event to count Clock Cycles.
  • Enable a breakpoint in your code by double-clicking on the source file. Select the Run icon. When the breakpoint is reached the Count Event will display the number of Clock Cycles.

Hardware Breakpoints Limitations

Warning! As with any debugging environment where the code is loaded to non-volatile memory (FLASH in this case), the number of Hardware Breakpoints is relatively small. The breakpoint manager lets you configure all the hardware resources in the system as you please, and if you happen to use them all up, there may not be enough to perform other activities as a result (more on this below).

The Breakpoint Manager for this device shows the message below when the maximum number of hardware breakpoints is reached:

"Breakpoint Manager: Error programming AET Job: There is no AET resource to support this job.".

I am respecting the number of hardware breakpoints available but I still get the error message above when stepping in my code. Why?

  • This happens if you select the maximum amount of Hardware Breakpoints allowed then attempt to step through the code. F6 is a step over which is implemented detecting if a function call is present, stepping into if not, or setting a temporary breakpoint after the call and running if there is one. As such, if all hw breakpoints are used up, and the code you are stepping is in ROM (so you can't use software breakpoints), then step over won't be possible if on a function call.

RTS Library Selection

  • Output Format - The current release does not automatically update the RTS Library file when the output format is changed. If you change the output format from ELF to COFF you must also update the RTS library file.


Device Endianness

Note: Not an Issue but a Warning The Stellaris devices use little endian, therefore the device endianess should be selected as “little” in the Project Settings. If you receive an error similar to the following you should verify the device endianess selected.

fatal error: object files have incompatible byte orderings ("C:/Program Files/Texas  Instruments3/ccsv4/tools/compiler/tms470/lib/rtsv7M3_T_le_eabi.lib<boot.obj>
  " = little endian, "./blinky.obj" = big endian)

References

Demonstrating CCS

Creating custom targets when using CCSv4

More about TI support for ARM cores

General information about Simulators: Category:Simulation


For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article Stellaris support in CCS here.
Leave a Comment
Personal tools