Search My Blog

Sunday, October 21, 2012

OpenOCD and Debugging the TI Stellaris LaunchPad

The TI Stellaris LaunchPad Looks very interesting. With allot of possible applications, being that it is 32 bit. And OpenOCD may be a nice alternative App for us Linux users, who like working in the Command Line (I don't though)...

Here's the Command Line Output for my first run of openocd. After installation on my Fedora 14 System. There is an Error, saying "Can't find openocd.cfg". I may need to manually setup this file or it may be done on next Reboot. Not sure, but I don't want to do that now. Maybe later...

[don@RedBlackBioStarFedora14 ~]$ openocd
Open On-Chip Debugger 0.4.0 (2010-02-22-22:50)
Licensed under GNU GPL v2
For bug reports, read
Can't find openocd.cfg
Error: JTAG interface has to be specified, see "interface" command
Command handler execution failed
[don@RedBlackBioStarFedora14 ~]$ help
GNU bash, version 4.1.7(1)-release (i386-redhat-linux-gnu)
These shell commands are defined internally.  Type `help' to see this list.
Type `help name' to find out more about the function `name'.
Use `info bash' to find out more about the shell in general.
Use `man -k' or `info' to find out more about commands not in this list.

A star (*) next to a name means that the command is disabled.

 job_spec [&]                                                                                   history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]
 (( expression ))                                                                               if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi
 . filename [arguments]                                                                         jobs [-lnprs] [jobspec ...] or jobs -x command [args]
 :                                                                                              kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
 [ arg... ]                                                                                     let arg [arg ...]
 [[ expression ]]                                                                               local [option] name[=value] ...
 alias [-p] [name[=value] ... ]                                                                 logout [n]
 bg [job_spec ...]                                                                              mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]
 bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-c>  popd [-n] [+N | -N]
 break [n]                                                                                      printf [-v var] format [arguments]
 builtin [shell-builtin [arg ...]]                                                              pushd [-n] [+N | -N | dir]
 caller [expr]                                                                                  pwd [-LP]
 case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac                                     read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout>
 cd [-L|-P] [dir]                                                                               readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]>
 command [-pVv] command [arg ...]                                                               readonly [-af] [name[=value] ...] or readonly -p
 compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  [-F function] [>  return [n]
 complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F>  select NAME [in WORDS ... ;] do COMMANDS; done
 compopt [-o|+o option] [-DE] [name ...]                                                        set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]
 continue [n]                                                                                   shift [n]
 coproc [NAME] command [redirections]                                                           shopt [-pqsu] [-o] [optname ...]
 declare [-aAfFilrtux] [-p] [name[=value] ...]                                                  source filename [arguments]
 dirs [-clpv] [+N] [-N]                                                                         suspend [-f]
 disown [-h] [-ar] [jobspec ...]                                                                test [expr]
 echo [-neE] [arg ...]                                                                          time [-p] pipeline                                                                           
 enable [-a] [-dnps] [-f filename] [name ...]                                                   times                                                                                        
 eval [arg ...]                                                                                 trap [-lp] [[arg] signal_spec ...]
 exec [-cl] [-a name] [command [arguments ...]] [redirection ...]                               true
 exit [n]                                                                                       type [-afptP] name [name ...]
 export [-fn] [name[=value] ...] or export -p                                                   typeset [-aAfFilrtux] [-p] name[=value] ...
 false                                                                                          ulimit [-SHacdefilmnpqrstuvx] [limit]
 fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]                               umask [-p] [-S] [mode]
 fg [job_spec]                                                                                  unalias [-a] name [name ...]
 for NAME [in WORDS ... ] ; do COMMANDS; done                                                   unset [-f] [-v] [name ...]
 for (( exp1; exp2; exp3 )); do COMMANDS; done                                                  until COMMANDS; do COMMANDS; done
 function name { COMMANDS ; } or name () { COMMANDS ; }                                         variables - Names and meanings of some shell variables
 getopts optstring name [arg]                                                                   wait [id]
 hash [-lr] [-p pathname] [-dt] [name ...]                                                      while COMMANDS; do COMMANDS; done
 help [-dms] [pattern ...]                                                                      { COMMANDS ; }
[don@RedBlackBioStarFedora14 ~]$


About « Open On-Chip Debugger

OpenOCD, the Open On-Chip Debugger has been created by Dominic Rath as part of a diploma thesis at the University of Applied Sciences, FH-Augsburg. For other material presented on this site, see the respective notes of authorship.


OpenOCD 0.6.1 bugfix release

October 7th, 2012

Today OpenOCD 0.6.1 bugfix release was published on project’s download area on SourceForge. Appropriate changes were also committed to GIT repository.

This release addresses serious regression in 0.6.0 and 0.6.0-rc2 releases which caused some functionalities to work correctly only on the first run – all following operations would fail until OpenOCD would be restarted. Some of affected modules:


Stellaris® ARM® Cortex™-M Microcontrollers

Stellaris® ARM® Cortex™-M microcontrollers offer embedded MCU designers the option of obtaining 32-bit performance for the same price as their current 8- and 16- bit microcontroller designs. Designers who migrate to Stellaris benefit from great tools, small code footprint, and outstanding performance.

In addition, microcontroller applications built on the Stellaris family have access to the ARM ecosystem of silicon, development tools, support, and software, and a breadth of instruction-set compatible performance options that exist only in the ARM architectural community.

The Stellaris family offers the industry's first and broadest implementation of Cortex-M and the Thumb-2 instruction set. This technology combines both 16-bit and 32-bit instructions to deliver the optimal balance of code density and performance. Thumb-2 uses 26% less memory than pure 32-bit code to reduce overall system cost while delivering improved, better performance.

Go there...

Stellaris® Flash Programmer, GUI and command line


LM Flash Programmer is a free flash programming utility intended to be used with Texas Instruments Stellaris microcontrollers, development boards, or evaluation boards.

Get software updates


LM Flash Programmer is also compatible with a Stellaris microcontroller custom board if the board has a serial (UART) interface, Ethernet interface, USB interface, or a standard JTAG connector. For the JTAG connector, a Stellaris evaluation board can be used as an In-Circuit Debug Interface.

Go there...

Stellaris® ICDI Drivers


Stellaris® evaluation and reference design kits provide an integrated Stellaris® In-Circuit Debug Interface (ICDI) which allows programming and debugging of the onboard LM4F microcontroller. The Stellaris ICDI can be used with the Stellaris LM Flash Programmer as well as any of the Stellaris-supported toolchains such as Texas Instruments’ Code Composer Studio. Both JTAG and Serial Wire Debug (SWD) are also supported. To use the Stellaris ICDI, follow the instructions in the Quick Start document (literature number SPMU287) on this page to install the appropriate drivers on the host computer.

Technical Documents


OpenOCD and Debugging the TI Stellaris LaunchPad
Debugging the Stellaris with OpenOCD - Hack a Day
Can I debug the stellaris launchpad via gcc/gdb? - General - Stellaris Arm Community Forums
Stellaris® ICDI Drivers - STELLARIS_ICDI_DRIVERS - TI Software Folder
spmu287.pdf (application/pdf Object)
Stellaris® Flash Programmer, GUI and command line - LMFLASHPROGRAMMER - TI Software Folder
Open On-Chip Debugger
Can I debug the stellaris launchpad via gcc/gdb? - General - Stellaris Arm Community Forums
utzig/lm4tools · GitHub
Stellaris ARM Cortex-M | ARM Microcontroller | ARM MCU
OpenOCD - Open On-Chip Debugger - Browse /openocd/0.6.1 at
About « Open On-Chip Debugger
Quick Datasheets from Texas Instruments

No comments: