[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
Ok...
What Nut/OS normally suggests is to have a project folder, let's call it
my_prj.
So you have
my_prj
my_prj/nut
my_prj/stm32_can_app
my_prj/stm32_can_bld
In this basic directory setup I normally work. Actually with testing for
several architecures my setup looks like this:
nutos/stm32_4.9.3
nutos/stm32_4.9.3/nut
nutos/stm32_4.9.3/nutapp_stm32_gcc
nutos/stm32_4.9.3/nutbld_stm32_gcc
nutos/stm32_4.9.3/nutapp_stm32_ecoss
nutos/stm32_4.9.3/nutbld_stm32_ecoss
nutos/stm32_4.9.3/nutapp_at91_gcc
nutos/stm32_4.9.3/nutbld_at91_gcc
nutos/stm32_4.9.3/nutapp_eir_gcc
nutos/stm32_4.9.3/nutbld_eir_gcc
...
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
nut/arch/cm3/ldscripts...
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
Ulrich
More information about the En-Nut-Discussion
mailing list