LINK PROBLEMS AFTER CHANGING COMPILER TOOLCHAIN
Applies to: GNU C Compiler for ARM
Information in this article applies to:
- GNU C Compiler for ARM Version 3.22
My ARM project was previously configured for the ARM ADS or Keil
ARM toolchain. Since I have changed it to the GNU toolset I can no
longer link my program.
I changed the Startup Code (Startup.s), but when I link my
application I receive several error messages from the linker:
arm-thumb-elf/bin/ld: warning: cannot find entry symbol _start; defaulting to 00008000
startup.o(.text+0x14c):/cygdrive/h/TestProject/Startup.s:250: undefined reference to `_data'
collect2: ld returned 1 exit status
Target not created
The following things are required for a GNU project setup:
In most cases you need a Linker Script file, that fits the
controller configuration you are using. The generic linker script
can be found under ARMGNULinkerScript.ld. Copy this file
to your project and customize it according to your needs.
Alternatively you may use a preconfigured *.ld file from one of the
example projects in ARMGNUExamples or
ARMGNUBoards. Specify the file under Options for
Target - Linker.
Enter the start address of the Text Section (used for
Code/Constants) and the Data Section. These settings can be made
Options for Target - Linker. Be sure that the start address
is within the range of the areas defined in your Linker Description
Make sure that you have activated the checkbox Do not use
Standard System Startup Files. Otherwise, your Startup.s is not
used and the Standard Startup is unsuitable for most
- Getting Started User's Guide for ARM, CPU Setup
Article last edited on: 2006-07-10 18:42:15
Rate this article
Disagree? Move your mouse over the bar and click