5 years, 4 months ago.

Building with GNU Tools ARM Embedded


I'm trying to compile the interface in an attempt to port it to the LPC11U24. As I can't afford a full version of Keil, and the evaluation version gives an error of (L6047U. The size of this image (<actual_size> bytes) exceeds the maximum allowed for this version of the linker). I've been trying to use GNU Tools ARM Embedded instead.

I was wondering if anyone has managed to get this working? So far what I have discovered is.

-The software only works with Python 2 and will fail with Python 3. - You need to install a version of Keil -I commented out versions of the build script that didn't seem necessary /media/uploads/john_ginger/build.py (i've attached my version) -You can change Keil to use GCC by opening \interface\mdk\lpc11u35\lpc11u35_interface.uvproj and then selecting Project ->Manage->Components,Enviroments and Book then going to enviroments and ticking Use GCC (which should really be a radio button) You then will get an error about it not being an ARM processor on compliation so you need to go to Project ->Options for Target then go to CC and tick "Compile Thumb Code"

If I then attempt to build using tools python build.py I get the error

[WARNING] Using default settings. Define your settings in the file private_setti ngs.py Building target k20dx128_bootloader of k20dx128_bootloader.uvproj... Status = 1 Building target lpc11u35_bootloader of lpc11u35_bootloader.uvproj... Status = 1 Building target lpc11u35_lpc1114_if of lpc11u35_interface.uvproj... Status = 2

  • Error building target lpc11u35_lpc1114_if of lpc11u35_interface.uvproj

Digging a little further into \interface\mdk\lpc11u35\Obj\lpc11u35_lpc1114\lpc11u35_lpc1114_if.build_log.htm I get

.\Obj\lpc11u35_lpc1114\lpc11u35_lpc1114_if.axf: error: L6047U: The size of this image (33376 bytes) exceeds the maximum allowed for this version of the linker Finished: 0 information, 0 warning, 0 error and 1 fatal error messages. ".\Obj\lpc11u35_lpc1114\lpc11u35_lpc1114_if.axf" - 1 Error(s), 5 Warning(s).

Which doesn't seem to make sense as I should be using the GCC linker

I don't know if any of these steps are the correct ones but I was wondering if anyone had managed to get any further and could give me some pointers.

Question relating to:

Comment on this question

2 Answers

5 years, 4 months ago.

Hello John Ginger,

the gcc support for the CMSIS-DAP will appear eventually, I am currently spending my free-time creating exporters.. This should allow us to port it to various IDE. Currently, GCC is not supported, so you have to supply required files (startup, linker command file).


Is there any way to use the interface firmware on an LPC 11U24 then without spending money on purchasing a full version of Keil uVision?

posted by John Ginger 21 Jul 2014

I believe currently no.. I am trying to compile it currently using gcc arm, but it fails by big number of errors. Reason? Most of code (let's take USBStack as example, not to mention RTX and other middleware there) is written using ARMCC specific syntax (like _swi, pragmas and other specifiers), it requires quite large refactoring... This one should work under GCC: http://mbed.org/users/va009039/code/Simple-CMSIS-DAP/, haven't looked it yet, what it offers, but could be a good start :)

posted by Martin Kojtal 21 Jul 2014
5 years, 4 months ago.

Be wary of this warning:

[WARNING] Using default settings. Define your settings in the file private_setti ngs.py

It's imperative to define the correct settings in private_settings.py.

Do you know where private_settings.py is? Or where it should be? I've edited settings.py to FROMELF = 'C:\Keil\ARM\ARMCC\bin\fromelf.exe' UV4 = r'C:\Keil\UV4\UV4.exe'

posted by John Ginger 21 Jul 2014

in workspace_tools directory, scripts are looking for it there.

posted by Martin Kojtal 21 Jul 2014

I can find the tools directory - where is the workspace_tools directory?

posted by John Ginger 21 Jul 2014

Which repo are you using? The mbed repo https://github.com/mbedmicro/mbed is what I started with. It's recommended to copy workspace_tools/settings.py to workspace_tools/private_settings.py and make your modifications there.

I started an mbed API port for MSP430 https://github.com/atamariya/mbed. I'm trying to simplify the build process. This allows one to use a Makefile in addition to default Python script. Doing a blinky example with this code should be an easy win. Just make a copy of mbed\libraries\mbed\targets\hal\TARGET_TI and mbed\libraries\mbed\targets\cmsis\TARGET_TI folders and modify the files as per the platform. Let me know if that helps you.

posted by Anand Tamariya 22 Jul 2014

Thanks - I will check it out. I'm working off the https://github.com/mbedmicro/CMSIS-DAP repo

posted by John Ginger 25 Jul 2014