A port of the GNU tools to the Texas Instruments MSP430 microcontrollers

Steve Underwood

documentation in progress

Table of Contents
What is mspgcc?
The GNU Binutils
The GNU GCC C Compiler
The GNU GDB and Insight debuggers
Installing mspgcc
Windows installation
RedHat Linux installation
Installation on other platforms
An introduction to the TI MSP430 low-power microcontrollers
The memory map
The register set
The available addressing modes
Byte and word issues
The instruction set
Instruction timing
The hardware multiplier
Low power modes
Programming the flash memory
Decoding part numbers
MSP430 specific extensions to the GNU toolchain
Compiler options
Compiler defined symbols
The mspgcc header files
Function attributes
Writing interrupt service routines
Customising the interrupt vector table
Controlling interrupt processing
Data types and memory handling
Accessing the MSP430's peripheral registers - the SFRs
Reserving space above the stack
Handling the status register
The standard library functions
Starting from reset
Redefining the startup procedure
Redefining the end up procedure
Initializing the stack
mspgcc's ABI
Register usage
Function calling conventions
Fixed argument lists
Variable argument lists
Return values
Call definitions
Assembler extensions
Using inline assembly language in C programs with mspgcc
Inline assembly language syntax
Registers, variables and labels
Library calls
Tips and trick for efficient programming
Hardware tools
What is available?
Setting up the JTAG interface
Parallel port issue with Windows
Parallel port issues with Linux
MSP430 evaluation and prototyping cards
Compiling and linking MSP430 programs
Getting started
Assembling assembly language programs
Programming and debugging MSP430s
Using the JTAG FET tool with gdbproxy
Downloading code to a target processor
Running code
Additional tools
pySerJTAG and the serial-JTAG adapter
Building mspgcc from source code
Shopping list
The basic GNU packages
The mspgcc specific code
Tools required to build mspgcc
The build procedure