Stellaris support in CCS

From Texas Instruments Embedded Processors Wiki

Jump to: navigation, search
Translate this page to   

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 CortexM 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 in CCSv4.1.0. Cortex-M4 support starts in CCSv5.1.0, although some of the earlier development boards have a package that adds support to CCSv4.2.4.

Tool support

Compilers

A key item required to support Stellaris development was the addition of packed structure support. Compiler releases starting with 4.6.1 (included in CCSv4.1.0) and newer have this support. Packed structures are commonly used by many off-the-shelf libraries for Cortex M including some used in the Stellarisware software.

Support for Cortex-M4 devices started in compiler release 4.9.0.

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.0 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




What is not supported

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 and Stellaris

Known Issues

Clocking Features

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

To enable this feature:

View breakpoints.JPG
Count event.JPG
Clock cycles.JPG
Number Cycles.JPG

You can also set two breakpoints to count the number of events between two places in your code (useful to profile functions):

Stellaris event counter properties.png
Stellaris breakpoints.png
Stellaris breakpoint end.png

Important! The number of CPU cycles greatly varies with the type of memory being used (Flash, RAM, external) and if the code needs to wait for a peripheral to respond, therefore keep this in mind when interpreting the results obtained.

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?

RTS Library Selection


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)

Frequency out of range error

One of the causes that throw a "frequency out of range" error (while trying to connect to a Stellaris device using an ICDI) is the improper installation of USB device drivers.

To solve that, open the Device Manager: right-click on the icon My Computer --> select Properties --> (if using XP, select the tab Hardware --> click on Device Manager and see if the option Other devices shows any entries named Stellaris with an exclamation mark. If so, right click and select Update Driver Software... (Update Driver if using XP) and browse to the placement of Stellaris device drivers inside the CCS install directory.



References

Demonstrating CCS

Creating custom targets

More about TI support for ARM cores

General information about Simulators: Category:Simulation

Leave a Comment
Personal tools
Namespaces
Variants
Actions
Navigation
Print/export
Toolbox