Interesting Error - very cryptic to me

02 Aug 2013

I am new to MBED but not to programming nor MCUs, for ARM processors I am closer to a newby than a guru though. I have written a few short programs and all was working quite well so I wrote up an application that I was hoping to use the timing ability of the 96Mhz clock running flat out.

It took me a few minutes to get down to one compile error and to me it is cryptic and the link that is offered for help in the IDE is blank.

Here is the error cut and paste directly from the IDE:

""/extras/mbed_b3110cd2dd17/LPC1768/ARM/LPC1768.sct", line 4 (column 9): Error: L6235E: More than one section matches selector - cannot all be FIRST/LAST." in file "/"

Here are my includes statements:

#include <mbed.h>
#include <timers.h>
#include <TextLCD.h>
#include <SDFileSystem.h>

I do not mind people telling me I have made some stupid mistakes, trust me I have made lots of those and my skin is pretty thick so pour it on.

Thank you,

wade

02 Aug 2013

Hello wade brown,

what have you imported to your project? Seems like something there is twice.

Regards, 0xc0170

02 Aug 2013

I thought of that also, but when I have made multiple definitions other environments have returned something to the effect of "redefinition of XXXX.X in zzzz.h".

I will check for multiple defs in my imported files.

Thanks wade

03 Aug 2013

I think this is a linker error and not a compiler error.

It would appear to be indicating that there are multiple object files in your project which are trying to place data/code in the RESET section. I would only expect the mbed library to have an object file which wants to be placed in this section. Have you placed any special section attributes in your C/C++ code that would place the code in the RESET section? If not, maybe you have somehow imported the mbed library into your project twice?

I was able to reproduce this error on a project of mine by importing the main mbed library again under a different name.

You could look for the multiple imports in the Program Workspace pane. I don't know what else would cause it other than another rogue library trying to incorrectly place data in that section or maybe your particular code causing a condition which gets the linker to pull in two different object files from the mbed library which are incorrectly going to the same RESET section.

Hope that helps,

Adam

03 Aug 2013

Adam,

You were right it was a linker error, unfortunately I lumped compiler and linker errors together a long time ago when I talk about them. I found some duplicate definitions in the libraries I included and deleted the offending ones and the program compiles, links, and ran the first time a with a couple of simple runtime errors. The runtime errors were easy to find and fix once it was running, and all is good now.

I was not overly excited about the environment when I kept getting the original error, but now that life is good the environment seems to be working well for my early ARM prototyping.

Thanks for the help, wade

20 May 2016

I had a problem like this with an assembly program and it turned out that I had a label and some dead code that was never called. Once I deleted the label, the problem went away.