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

GNU Linker: Basic

Figure 3-14 shows the MSP430 GCC Linker Basic settings window.

GUID-1E934C0A-F9C6-4E89-9C54-6BB4C4575FF3-low.pngFigure 3-14 MSP430 GCC Linker Basic Settings

Table 3-12 describes the options that are available for MSP430 GCC Linker Basic settings.

Table 3-12 MSP430 GCC Linker Basic Settings
Option Description
Output file (-o) Use output as the name for the file produced by ld; if this option is not specified, the name 'a.out' is used by default. The script command OUTPUT can also specify the output file name.
Write a map file (-Map) Print to the file mapfile a link map, which contains diagnostic information about where symbols are mapped by Id and information on global common storage allocation.
Set start address (-e, --entry) Use entry as the explicit symbol for beginning program execution, rather than the default entry point.
Do not use the standard system startup files when linking
(-nostartfiles)
Do not use the standard system startup files when linking. The standard system libraries are used unless -nostdlib or -nodefaultlibs is used.
Do not use the standard system libraries when linking
(-nodefaultlibs)
Do not use the standard system libraries when linking. Only the specified libraries are passed to the linker, and options specifying linkage of the system libraries, such as ‑static‑libgcc or ‑shared‑libgcc, are ignored. The standard startup files are used unless -nostartfiles is used. The compiler may generate calls to memcmp, memset, memcpy, and memmove. These entries are usually resolved by entries in libc. These entry points should be supplied through some other mechanism when this option is specified.
Do not use the standard system startup files or libraries when linking (-nostdlib) Do not use the standard system startup files or libraries when linking.
Do not link with the shared libraries (-static) On systems that support dynamic linking, this prevents linking with the shared libraries. On other systems, this option has no effect.
Remove unused sections
(--gc-sections)
Enable garbage collection of unused input sections. Ignored on targets that do not support this option.