SLAU646F September   2015  – June 2020

 

  1.   Read This First
    1.     How to Use This User's Guide
    2.     Related Documentation
    3.     If You Need Assistance
    4.     Trademarks
  2. 1Introduction
  3. 2Installing MSP430 GCC Toolchain
    1. 2.1 Installing MSP430 GCC in CCS Releases Before v7.2
    2. 2.2 Installing MSP430 GCC as Stand-Alone Package
  4. 3Using MSP430 GCC Within CCS
    1. 3.1 Create New Project
    2. 3.2 Debug Using MSP-FET, MSPFET430UIF, eZ-FET, eZ430
    3. 3.3 Build Options for MSP430 GCC
      1. 3.3.1  GNU Compiler
      2. 3.3.2  GNU Compiler: Runtime
      3. 3.3.3  GNU Compiler: Symbols
      4. 3.3.4  GNU Compiler: Directories
      5. 3.3.5  GNU Compiler: Optimization
      6. 3.3.6  GNU Compiler: Preprocessor
      7. 3.3.7  GNU Compiler: Assembler
      8. 3.3.8  GNU Compiler: Debugging
      9. 3.3.9  GNU Compiler: Diagnostic Options
      10. 3.3.10 GNU Compiler: Miscellaneous
      11. 3.3.11 GNU Linker
      12. 3.3.12 GNU Linker: Basic
      13. 3.3.13 GNU Linker: Libraries
      14. 3.3.14 GNU Linker: Symbols
      15. 3.3.15 GNU Linker: Miscellaneous
      16. 3.3.16 GNU Objcopy Utility
    4. 3.4 CCS Compared to MSP430 GCC
  5. 4MSP430 GCC Stand-Alone Package
    1. 4.1 MSP430 GCC Stand-Alone Package Folder Structure
    2. 4.2 Package Content
    3. 4.3 MSP430 GCC Options
    4. 4.4 MSP430 Built-in Functions
    5. 4.5 Using MSP430 GCC Support Files
    6. 4.6 Quick Start: Blink the LED
      1. 4.6.1 Building with a Makefile
      2. 4.6.2 Building Manually with gcc
      3. 4.6.3 Debugging
        1. 4.6.3.1 Starting GDB Agent
          1. 4.6.3.1.1 Using the GUI
          2. 4.6.3.1.2 Using the Command Line
        2. 4.6.3.2 Debugging With GDB
          1. 4.6.3.2.1 Running a Program in the Debugger
          2. 4.6.3.2.2 Setting a Breakpoint
          3. 4.6.3.2.3 Single Stepping
          4. 4.6.3.2.4 Stopping or Interrupting a Running Program
      4. 4.6.4 Creating a New Project
    7. 4.7 GDB Settings
      1. 4.7.1 Console Application
      2. 4.7.2 Optional Parameters for msp430.dat
      3. 4.7.3 GUI Application
      4. 4.7.4 Attaching the Debugger
      5. 4.7.5 Configuring the Target Voltage
      6. 4.7.6 Resetting the Target
      7. 4.7.7 Halting the Target
  6. 5MSP430 GCC Features
    1. 5.1 C/C++ Attributes
      1. 5.1.1 GCC Function Attribute Support
      2. 5.1.2 GCC Data Attribute Support
      3. 5.1.3 GCC Section Attribute Support
    2. 5.2 Hints for Reducing the Size of MSP430 GCC Programs
      1. 5.2.1 The -mtiny-printf Option
      2. 5.2.2 The -ffunction-sections and -fdata-sections Options
      3. 5.2.3 Making Large Programs Fit Across Upper and Lower Memory
      4. 5.2.4 NOP Instructions Surrounding Interrupt State Changes
    3. 5.3 C Runtime Library (CRT) Startup Behavior
    4. 5.4 Using printf with MSP430 GCC
    5. 5.5 Link-time Optimization (LTO)
    6. 5.6 The __int20 Type and Pointers in the Large Memory Model
  7. 6Building MSP430 GCC From Sources
    1. 6.1 Required Tools
    2. 6.2 Building MSP430 GCC (Mitto Systems Limited)
      1. 6.2.1 Building a Native MSP430 GCC Toolchain
      2. 6.2.2 Building the MSP430 GCC Toolchain for Windows
    3. 6.3 Building MSP430 GCC Stand-Alone Full Package
  8. 7MSP430 GCC and MSPGCC
    1. 7.1 Calling Convention
    2. 7.2 Other Portions of the ABI
  9. 8Appendix
    1. 8.1 GCC Intrinsic Support
    2. 8.2 NOP Instructions Required Between Interrupt State Changes
  10. 9References
  11.   Revision History

Optional Parameters for msp430.dat

Add the following lines to msp430.dat to enable or modify the specific debug options.

MSP430 low-power debugging

msp430_lowpowerdebug=true

MSP430 programming and erase options for GDB

The BSL or the protected memory can be unlocked at the start of the session using the msp430_connectaction keyword.

msp430_connectaction=[unlockbsl] [unlockprotected] [<other connect options>]

If protected memory is unlocked, it is erased on download if the download erase option is set to erasefactory , erasemain , or erasemainandinfo , or if the download erase option is set to erasesegment and the download image includes protected memory data.

msp430_loadaction controls whether a reset is done before or after download and also configures erase options for download.

msp430_loadaction =[resetbefore] [resetafter] [erasefactory|erasemain|erasemainandinfo|eraseuser|erasesegment] [<other load options>]

Where:

erasefactory = MSP430_Erase(type = ERASE_TOTAL, ...) called at the start of each download

erasemain = MSP430_Erase(type = ERASE_MAIN, ...) called at the start of each download

erasemainandinfo = MSP430_Erase(type = ERASE_ALL, ...) called at the start of each download

eraseuser = MSP430_Erase(type = ERASE_USER, ...) called at the start of each download

erasesegment = MSP430_Erase(type = ERASE_SEGMENT, ...) called the first time that the segment is written to during each download

Another optional connect action is to reset or erase on connect:

msp430_connectaction=[reset] [erasefactory|erasemain|erasemainandinfo|eraseuser]

If this line is not present, the default is to not reset or erase on connect.

If the BSL or protected areas are unlocked, they are erased on connect if the erasefactory or erasemainandinfo options are set. They are erased on download if the erasefactory , erasemainandinfo , or erasesegment options are set and the image includes the BSL or protected segment.

No action is taken on the auto run or launch options as they are outside the scope of the GDB agent.

MSP430 verification options for GDB

msp430_loadaction includes a verify keyword. If this keyword is present, each write to flash is verified.

msp430_loadaction=[verify]

Add MSP430 breakpoints options for GDB

msp430_default_breakpoint = [software|hardware]

By default, the MSP430 GDB agent uses software breakpoints (type=BP_SOFTWARE) for all GDB break commands. If a software breakpoint fails, the GDB agent then attempts to set a hardware (type=BP_CODE) breakpoint. A hardware breakpoint can be set explicitly using the GDB hbreak command.

If the msp430_default_breakpoint option is set to hardware, the GDB agent uses type BP_CODE for all GDB breakpoints (both break and hbreak commands).