6 years, 6 months ago.

Linker startup / entry point issue - cannot build offline - Embedded Artists LPC4088 dev kit

EDIT 2: Instead of updating this post, I've made a new one: Cannot build offline - Embedded Artists LPC4088 Experiment Base Board.

EDIT: I've made progress, but not resolved the issue yet. This post needs to be updated with new information. I will do that ASAP.

--

What else do I need to do to build the "Demo Application" for the Embedded Artists LPC4088 Experiment Base Board in an offline IDE? I'm currently trying to get it going in NXP's MCUXpresso (which is apparently subsuming LPCXpresso), but I'm open to alternatives.

Direct link to the application: https://os.mbed.com/users/embeddedartists/code/lpc4088_ebb_ptp/

It is linked from here in the "Demo Application" section: https://os.mbed.com/users/embeddedartists/notebook/lpc4088-experiment-base-board---projects/

I modified a couple source files to resolve some compiler errors/warnings. Now I'm left with the 2 linker errors shown below.

Why can't the linker find these references, and how do I fix the issues? (Note regarding the first error, the exported code comes with startup_LPC408x.o, not the source startup_LPC408x.S.)

What I've done so far:

  1. Installed MCUXpresso IDE v10.0.2 [Build 411] [2017-07-11] on Windows 7 Enterprise x64 w/ SP1
  2. Clicked "Import into Compiler" from the lpc4088_ebb_ptp project page. (I did *not* check the "Update all libraries..." option.)
  3. From the online mbed IDE, I right-clicked the imported lpc4088_ebb_ptp project, chose "Export Program...", set the toolchain as LPCXpresso, selected "Export All Files" option, clicked Export.
  4. Extracted the downloaded project onto filesystem. Moved to desired working location.
  5. "Import project(s) from file system..." in Eclipse. (Browsed to "Project directory (unpacked)". Next. Unselected "Copy projects into workspace".)
  6. Edited source to resolve a few errors/warnings (TestAcc.cpp and WM8731.cpp - hopefully attached).
  7. Right-clicked project, chose "Build Project".

Building target: lpc4088_ebb_ptp__mod.axf
Invoking: MCU C++ Linker

arm-none-eabi-c++ -nostdlib -L"C:\dev\lpc4088_ebb_ptp__mod" -L"C:\dev\lpc4088_ebb_ptp__mod\EALib" -L"C:\dev\lpc4088_ebb_ptp__mod\EALib\FATFileSystem" -L"C:\dev\lpc4088_ebb_ptp__mod\EALib\FATFileSystem\ChaN" -L"C:\dev\lpc4088_ebb_ptp__mod\I2S" -L"C:\dev\lpc4088_ebb_ptp__mod\LM75B" -L"C:\dev\lpc4088_ebb_ptp__mod\SDFileSystem" -L"C:\dev\lpc4088_ebb_ptp__mod\mbed" -L"C:\dev\lpc4088_ebb_ptp__mod\mbed\TARGET_LPC4088" -L"C:\dev\lpc4088_ebb_ptp__mod\mbed\TARGET_LPC4088\TARGET_NXP" -L"C:\dev\lpc4088_ebb_ptp__mod\mbed\TARGET_LPC4088\TARGET_NXP\TARGET_LPC408X" -L"C:\dev\lpc4088_ebb_ptp__mod\mbed\TARGET_LPC4088\TOOLCHAIN_GCC_ARM" -L"C:\dev\lpc4088_ebb_ptp__mod" -Xlinker -Map="lpc4088_ebb_ptp__mod.map" -Xlinker --gc-sections -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=softfp -mthumb -T "C:\dev\lpc4088_ebb_ptp__mod\mbed\TARGET_LPC4088\TOOLCHAIN_GCC_ARM\LPC4088.ld" -o "lpc4088_ebb_ptp__mod.axf"  ./SDFileSystem/SDFileSystem.o  ./LM75B/LM75B.o  ./I2S/I2S.o  ./EALib/FATFileSystem/ChaN/ccsbcs.o ./EALib/FATFileSystem/ChaN/diskio.o ./EALib/FATFileSystem/ChaN/ff.o  ./EALib/FATFileSystem/FATDirHandle.o ./EALib/FATFileSystem/FATFileHandle.o ./EALib/FATFileSystem/FATFileSystem.o  ./EALib/AR1021.o ./EALib/Adafruit_GFX.o ./EALib/EaLcdBoard.o ./EALib/GFXFb.o ./EALib/LcdController.o ./EALib/MCIFileSystem.o ./EALib/MMA7455.o ./EALib/QSPIFileSystem.o ./EALib/SPIFI.o ./EALib/TSC2046.o ./EALib/XBee.o ./EALib/glcdfont.o ./EALib/gpdma.o ./EALib/sdram.o  ./AR1021I2C.o ./EaLcdBoardGPIO.o ./Graphics.o ./TestAcc.o ./TestAudio.o ./TestDisplay.o ./TestFileSystemMCI.o ./TestFileSystemSPI.o ./TestJoystick.o ./TestRGBLed.o ./TestShiftreg.o ./TestTemperature.o ./TestTrimpot.o ./WM8731.o ./main.o  C:/dev/lpc4088_ebb_ptp__mod/mbed/TARGET_LPC4088/TOOLCHAIN_GCC_ARM/system_LPC407x_8x_177x_8x.o C:/dev/lpc4088_ebb_ptp__mod/mbed/TARGET_LPC4088/TOOLCHAIN_GCC_ARM/board.o C:/dev/lpc4088_ebb_ptp__mod/mbed/TARGET_LPC4088/TOOLCHAIN_GCC_ARM/cmsis_nvic.o C:/dev/lpc4088_ebb_ptp__mod/mbed/TARGET_LPC4088/TOOLCHAIN_GCC_ARM/retarget.o C:/dev/lpc4088_ebb_ptp__mod/mbed/TARGET_LPC4088/TOOLCHAIN_GCC_ARM/startup_LPC408x.o -lmbed
C:/dev/lpc4088_ebb_ptp__mod/mbed/TARGET_LPC4088/TOOLCHAIN_GCC_ARM/startup_LPC408x.o: In function `Reset_Handler':
(.text+0x2c): undefined reference to `_start'

C:\dev\lpc4088_ebb_ptp__mod\mbed\TARGET_LPC4088\TOOLCHAIN_GCC_ARM\libmbed.a(assert.o): In function `mbed_assert_internal':
assert.c:(.text.mbed_assert_internal+0x2): undefined reference to `_impure_ptr'
assert.c:(.text.mbed_assert_internal+0x6): undefined reference to `_impure_ptr'
assert.c:(.text.mbed_assert_internal+0x20): undefined reference to `fprintf'
collect2.exe: error: ld returned 1 exit status
make: *** [lpc4088_ebb_ptp__mod.axf] Error 1

You may want to post this question here for a better response : https://os.mbed.com/teams/Semtech/community/

posted by Austin Blackstone 16 Oct 2017

What does Semtech have to do with this issue?

Note that I posted much more info at the link at the top ("EDIT 2"). The discussion in following posts there went off-topic, though.

posted by Brendan McDonnell 16 Oct 2017
Be the first to answer this question.

Assigned to Semtech 6 years, 6 months ago.

This means that the question has been accepted and is being worked on.