Hello,
I just started programming on the LPC1768 and I am now facing some issues regarding the Linker/Compiler of the LPCXpresso IDE. Actually I am programming with Keil uVision since many years, unfortunately the code size limit here is not big enough. That's very unfortunately, because generating Binary-Files with uVision works perfectly.
I just wanted to compile and link the mbed blinky template for my LPC1768 on LPCXpresso.
1. I opened the mbed online compiler and added a new project. Platform LPC1768, Template: Blinky LED Hello World, and checked the point "Update this program and libraries to latest version" (Actual Revision is 123)
2. I exported the project for LPCXpresso
3. I opened LPCXpresso and imported the zip file.
4. My first "Build All" gave the following errors:
c:/nxp/lpcxpresso_8.2.0_647/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.3.1/../../../../arm-none-eabi/bin/ld.exe: unrecognized option '-T'
c:/nxp/lpcxpresso_8.2.0_647/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.3.1/../../../../arm-none-eabi/bin/ld.exe: use the --help option for usage information
collect2.exe: error: ld returned 1 exit status
make: *** [mbed_blinky.axf] Error 1
14:11:16 Build Finished (took 539ms)
5. After googling I found out that is has something to do with the Linker Scripts, so I checked the following settings:
-> Properties for mbed_blinky-project, C/C++ Build, Settings, Tools Settings, MCU c++ Linker, Managed Linker Script:
The checkmark for Manage Linker Script was not checked. The Linker script referenced to "${workspace_loc:/${ProjName}/None}"
6. Now I tried two ways. The first way was deleting the linker script reference. This led to the following error:
./main.o: In function `mbed::DigitalOut::DigitalOut(PinName)':
C:\Users\***\Documents\LPCXpresso_8.2.0_647\workspace\mbed_blinky\mbed/DigitalOut.h:51: undefined reference to `memset'
C:\Users\***\Documents\LPCXpresso_8.2.0_647\workspace\mbed_blinky\mbed/DigitalOut.h:53: undefined reference to `gpio_init_out'
collect2.exe: error: ld returned 1 exit status
make: *** [mbed_blinky.axf] Error 1
7. Second way was checking the checkmark for "Manage Linker Script", this was the output:
./main.o: In function `mbed::DigitalOut::DigitalOut(PinName)':
C:\Users\***\Documents\LPCXpresso_8.2.0_647\workspace\mbed_blinky\mbed/DigitalOut.h:53: undefined reference to `gpio_init_out'
collect2.exe: error: ld returned 1 exit status
make: *** [mbed_blinky.axf] Error 1
With the checked "Manage Linker Scripts" checkmark, it hat no influence which Library I chose (Newlib(semihost),newlib(None) etc) All ways led to the same result.
I just don't understand the error "undefined reference to `gpio_init_out'".
The main.cpp includes the mbed.h. mbed.h includes DigitalOut.h, DigitalOut.h includes gpio_api.h, which contains the function header of gpio_init_out. Certainly gpio_init_out is just an example function. It throws the error because its the only function I am referring to.
You can find the project here:
/media/uploads/fabian90/mbed_blinky.zip
I worked with mBed Library Revision 123 and LPCXpresso 8.2.0. [Build 657]
I hope someone can help me. I see a lot of people on google having similar problems, but none of the solutions are working for me.
Sincerely,
Fabian
Hello,
I just started programming on the LPC1768 and I am now facing some issues regarding the Linker/Compiler of the LPCXpresso IDE. Actually I am programming with Keil uVision since many years, unfortunately the code size limit here is not big enough. That's very unfortunately, because generating Binary-Files with uVision works perfectly.
I just wanted to compile and link the mbed blinky template for my LPC1768 on LPCXpresso.
1. I opened the mbed online compiler and added a new project. Platform LPC1768, Template: Blinky LED Hello World, and checked the point "Update this program and libraries to latest version" (Actual Revision is 123)
2. I exported the project for LPCXpresso
3. I opened LPCXpresso and imported the zip file.
4. My first "Build All" gave the following errors:
5. After googling I found out that is has something to do with the Linker Scripts, so I checked the following settings: -> Properties for mbed_blinky-project, C/C++ Build, Settings, Tools Settings, MCU c++ Linker, Managed Linker Script:
The checkmark for Manage Linker Script was not checked. The Linker script referenced to "${workspace_loc:/${ProjName}/None}"
6. Now I tried two ways. The first way was deleting the linker script reference. This led to the following error:
7. Second way was checking the checkmark for "Manage Linker Script", this was the output:
With the checked "Manage Linker Scripts" checkmark, it hat no influence which Library I chose (Newlib(semihost),newlib(None) etc) All ways led to the same result.
I just don't understand the error "undefined reference to `gpio_init_out'". The main.cpp includes the mbed.h. mbed.h includes DigitalOut.h, DigitalOut.h includes gpio_api.h, which contains the function header of gpio_init_out. Certainly gpio_init_out is just an example function. It throws the error because its the only function I am referring to.
You can find the project here: /media/uploads/fabian90/mbed_blinky.zip
I worked with mBed Library Revision 123 and LPCXpresso 8.2.0. [Build 657]
I hope someone can help me. I see a lot of people on google having similar problems, but none of the solutions are working for me.
Sincerely, Fabian