[En-Nut-Discussion] devnut_m3n and possibly others: Locating the Linker script

Ulrich Prinz ulrich.prinz at googlemail.com
Sun Dec 18 17:48:34 CET 2011

Hi Uwe,

Am 18.12.2011 13:44, schrieb Uwe Bonnes:
>>>>>> "Ulrich" == Ulrich Prinz <ulrich.prinz at googlemail.com> writes:
>     Ulrich> Hi Uwe, I cannot follow...
>     Ulrich> Here it works without a problem, so I simply set up a new
>     Ulrich> project on STM32F100RBT6 and compiled nut/os then uart
>     Ulrich> application. No problem.
>     Ulrich> Then I saw that you wrote 'outside the branch' and I don't know
>     Ulrich> what you mean. But I checked Makevars.cm3-gcc and found
> E.g. "stm32_can_app" is the application tree. 
> By "out of the branch", I meant e.g.
> ../ethernut/branches/stm32_can_app
> versus "in the branch"
> ../ethernut/branches/devnut_m3n/stm32_can_app

What Nut/OS normally suggests is to have a project folder, let's call it

So you have


In this basic directory setup I normally work. Actually with testing for
several architecures my setup looks like this:



What I then do is to switch to the desirged nutapp_xxx_yyy directory and
do a simple make clean all program or, if I modified the os itself, I
switch to nutbld_xxx_yyy and do a make clean all install.

That works perfectly.
>     Ulrich> ARCH = cm3 TRGT = arm-none-eabi- MCFLAGS = -mcpu=$(MCU) -mthumb
>     Ulrich> -mlittle-endian -D__CORTEX__
>     Ulrich> // CXXFLAGS_OPT = -Os -fno-delete-null-pointer-checks
>     Ulrich> -fno-exceptions -fno-rtti LDFLAGS = $(MCFLAGS) -g -nostartfiles
>     Ulrich> -T$(LDSCRIPT) -Wl,-Map=$(PROJ).map,--cref,--no-warn-mismatch
>     Ulrich> -L$(LIBDIR)
>     Ulrich> where you can see in the last line that -T$(LDSCRIPT).
>     Ulrich> That one should be build by the .nut files through
>     Ulrich> qnutconf. There is no filename separation from file-path in the
>     Ulrich> lua functions. And it is more or less a copy from existing
>     Ulrich> Makefiles...
> I use the command line tool "nutconf" most of the time, as this fits better
> in a "make" environment than a gui tool.

I just moved from Windows to linux but as lots of people still develop
in Windows and so does my company do, I set priority to Windows. I hoped
not to mess up Linux environment. But there seems to be a problem  now,
let's fix it.

The path is seen from where make is started, what normally is the
projects base directory.
So sticking to the usart example it is my_project/nutapp_can_gcc/usart
Now with setting the path of the linker script, the relative dir is
../../ to get back to my_project/ and then get down to

I check the Makefile sequence as normally it should be possible to set
an absolute path for that just by the abilities of make.
>     Ulrich> Have you any suggestion how to solve that? And did you compile
>     Ulrich> in linux or windows?
> Fix lua or work around that defienency? Will try to have a look.
> I primary work on Linux. However I try to keep WIN interoperation in mind. 
I will switch to that soon, I hope, but for now I can work more
efficient in Windows using Tortoise and WinMerge. I hope that they
finish the QT based cross version of WinMerge for Linux soon.

Best regards

More information about the En-Nut-Discussion mailing list