Take a look at how imote defines their start function in
tos/platforms/intelmote2/toscrt0.s assembly file.
And then see how this gets compiled in with everything else in
support/make/intelmote2.target
Kevin
On Dec 14, 2007 7:20 PM, Michael Schippling <[EMAIL PROTECTED]> wrote:
> I'm sorry, but there's been too much water under the bridge for me...
>
> What I was trying to say, and it seems to be somewhat true, is that
> you need a symbol named "_start" that tells the link/loader where to put
> the very first executable instruction in 'physical' memory. I believe
> there was an invisible .o that did this for UNIX compiles back in the day,
> and I forget what it's name was...but it was automagically included
> in every compile. If this is not covered in the TOS "porting"
> "documentation" then you may need to do some code archaeology on
> existing platforms, down to the .asm level. The ELF linker doc may
> have something to say about it too.
>
> MS
>
> mejda chouaieb wrote:
> > I didn't really understand if this warning comes from TinyOS or from the
> Toolchain !
> > II'm porting TinyOS to Jennic JN5139R1 microcontroller and i'm compiling
> for my new platform called iSense which is based on the JN5139R1
> microcontroller, it seams to compile the Null application but I still have
> this warning that is very important. I wrote the functions that starts
> Jennic.
> > as follows:
> >
> -------------------------------------------------------------------------------------------
> > PUBLIC void AppColdStart() {
> > HAL_GDB_INIT();
> > HAL_BREAKPOINT();
> > /* Register peripheral callbacks */
> > u32AppApiInit( NULL, NULL, NULL, NULL, NULL, NULL);
> > u32AHI_Init();
> > }
> > PUBLIC void AppWarmStart() {
> > AppColdStart();
> > }
> >
> ------------------------------------------------------------------------------------------
> > every thing is related to this Makefile line :
> >
> _________________________________________________________________________________________________________________
> > $(NCC) -o $(MAIN_EXE) $(OPTFLAGS) $(PFLAGS) $(CFLAGS)
> $(WIRING_CHECK_FLAGS) $(COMPONENT).nc $(LIBS) $(LDFLAGS)
> >
> _________________________________________________________________________________________________________________
> > when I compile the Null application I have :
> > [EMAIL PROTECTED] /cygdrive/c/jennic/cygwin/opt/tinyos-2.x/apps/Null
> > $ make isense
> > mkdir -p build/isense
> > compiling NullAppC to a isense binary
> > ncc -o build/isense/main.exe -Os -Wall -Wshadow -DDEF_TOS_AM_GROUP=0x7d
> -Wnesc-a
> > ll -target=isense -fnesc-cfile=build/isense/app.c -board=
> -DIDENT_PROGRAM_NAME=\
> > "NullAppC\" -DIDENT_USER_ID=\"Mejda\" -DIDENT_HOSTNAME=\"MEJDA\"
> -DIDENT_USER_HA
> > SH=0x9dac3aceL -DIDENT_UNIX_TIME=0x476341cfL
> -DIDENT_UID_HASH=0x8c7e27ebL -I. -D
> > OR1K -g -Os -Wall -fomit-frame-pointer -msibcall -mno-entri -mno-multi
> -mno-setc
> > c -mno-cmov -mno-carry -mno-subb -mno-sext -mno-ror -mno-ff1
> -mno-hard-div -mhar
> > d-mul -mbranch-cost=3 -msimple-mul -mabi=1 -march=ba1 -mredzone-size=4
> -DPCB_DEV
> > KIT2 -DEMBEDDED -DLEAN_N_MEAN -DSINGLE_CONTEXT -DCHIP_RELEASE_5131
> -Iinclude -I/
> > opt/tinyos-2.x/tos/chips/JN5139R1/Platform/DK2/Include -I./Source
> -I/opt/tinyos-
> > 2.x/tos/chips/JN5139R1/Common/Include -I/opt/tinyos-2.x
> /tos/chips/JN5139R1/Chip/
> > JN513xR1/Include -I -I/opt/tinyos-2.x/tos/chips/JN5139R1/Chip/Common/Include
> Nu
> > llAppC.nc -lm
> > /ba-elf/bin/../lib/gcc/ba-elf/4.1.2/../../../../ba-elf/bin/ld: warning:
> cannot f
> > ind entry symbol _start; defaulting to 00000000
> > compiled NullAppC to build/isense/main.exe
> > 360 bytes in ROM
> > 4 bytes in RAM
> > ba-elf-objcopy --output-target=ihex build/isense/main.exe
> build/isense/main.ihex
> > writing TOS image
> > [EMAIL PROTECTED] /cygdrive/c/jennic/cygwin/opt/tinyos-2.x/apps/Null
> > $
> >
> ___________________________________________________________________________________
> > I'm really confused and I couldn't fix this warning since 2 weeks, so if
> some one has an idea or if someone can explain to me what happen when this
> makefile line is used it will be great. because when I commit it out I have
> no more this warning as follows:
> >
> _____________________________________________________________________________________
> > $ make isense
> > mkdir -p build/isense
> > compiling NullAppC to a isense binary
> > #ncc -o build/isense/main.exe -Os -Wall -Wshadow -DDEF_TOS_AM_GROUP=0x7d
> -Wnesc-
> > all -target=isense -fnesc-cfile=build/isense/app.c -board=
> -DIDENT_PROGRAM_NAME=
> > \"NullAppC\" -DIDENT_USER_ID=\"Mejda\" -DIDENT_HOSTNAME=\"MEJDA\"
> -DIDENT_USER_H
> > ASH=0x9dac3aceL -DIDENT_UNIX_TIME=0x476344dfL
> -DIDENT_UID_HASH=0xaad354f0L -I. -
> > DOR1K -g -Os -Wall -fomit-frame-pointer -msibcall -mno-entri -mno-multi
> -mno-set
> > cc -mno-cmov -mno-carry -mno-subb -mno-sext -mno-ror -mno-ff1
> -mno-hard-div -mha
> > rd-mul -mbranch-cost=3 -msimple-mul -mabi=1 -march=ba1 -mredzone-size=4
> -DPCB_DE
> > VKIT2 -DEMBEDDED -DLEAN_N_MEAN -DSINGLE_CONTEXT -DCHIP_RELEASE_5131
> -Iinclude -I
> > /opt/tinyos-2.x/tos/chips/JN5139R1/Platform/DK2/Include -I./Source
> -I/opt/tinyos
> > -2.x/tos/chips/JN5139R1/Common/Include -I/opt/tinyos-2.x
> /tos/chips/JN5139R1/Chip
> > /JN513xR1/Include -I
> > -I/opt/tinyos-2.x/tos/chips/JN5139R1/Chip/Common/Include
> N
> > ullAppC.nc -lm
> > compiled NullAppC to build/isense/main.exe
> > 360 bytes in ROM
> > 4 bytes in RAM
> > ba-elf-objcopy --output-target=ihex build/isense/main.exe
> build/isense/main.ihex
> > writing TOS image
> >
> _____________________________________________________________________________________
> >
> > Thanks
> > ----- Message d'origine ----
> > De : Michael Schippling <[EMAIL PROTECTED]>
> > À : mejda chouaieb <[EMAIL PROTECTED]>
> > Cc : [email protected]
> > Envoyé le : Vendredi, 14 Décembre 2007, 18h48mn 09s
> > Objet : Re: Tr : Re : [Tinyos-help] linking problems
> >
> > My guess would be that there is a 'hidden' main() component
> > that sets the entry address "_start". The tos/system/RealMain.nc
> > might have something to do with this, but probably something needs
> > to be defined into the compiler or assembler to tie it all together...
> >
> > Of course, if your controller's entry address IS 0x0000,
> > it's might JustWork(TM) as is.
> >
> > MS
> >
> > mejda chouaieb wrote:
> >> Hello,
> >> i´m trying to compile the Null application, I type ´make isense´
> >> when I compile because my new platform is called isense
> >> yes when I commit out this line the program is not compiled. what do
> >> you mean by a problem with the software setup?
> >> I didn´t try to compile Blink right now, I want first to compile the
> >> Null application for that platform.
> >> Thanks
> >>
> >>
> >>
> >> ----- Message d'origine ----
> >> De : Urs Hunkeler <[EMAIL PROTECTED]>
> >> À : mejda chouaieb <[EMAIL PROTECTED]>
> >> Cc : [email protected]
> >> Envoyé le : Vendredi, 14 Décembre 2007, 9h58mn 07s
> >> Objet : Re: [Tinyos-help] linking problems
> >>
> >> Hi,
> >>
> >> You probably won't get any errors anymore because the program is not
> >> being compiled. I would guess that this line is the single most
> >> important line in the whole Makefile :-)
> >>
> >> I don't know the detailed meaning of this line, but the $(LDFLAGS) is
> >> usually the set of flags specific for linking.
> >>
> >> Your warning seems to indicate a problem with your software setup. What
> >> is the exact command you use to compile? What application are you
> >> trying
> >> to compile? Do you manage to compile the Null application for the
> >> desired platform? If so, what about Blink?
> >>
> >> Cheers,
> >> Urs
> >>
> >>
> >> mejda chouaieb schrieb:
> >>> Hello All,
> >>> can someone please expalin to me the meaning of this line and if
> >> something for linking is present here :
> >>> $(NCC) -o $(MAIN_EXE) $(OPTFLAGS) $(PFLAGS) $(CFLAGS)
> >> $(WIRING_CHECK_FLAGS) $(COMPONENT).nc $(LIBS) $(LDFLAGS)
> >>> because when i copile for my new platform I have a linking error from
> >> the toolchain:
> >>> /ba-elf/bin/../lib/gcc/ba-elf/4.1.2/../../../../ba-elf/bin/ld:
> >> warning: cannot find entry symbol _start; defaulting to 00000000
> >>> and when I put # in front of this line this warning disappears !!!
> >>> Thanks for help
> >>
> >>
> >>
> >>
> >>
> >>
> >>
>
> ____________________________________________________________________________________________
> >> Yahoo! Mail innove : interface hyper pratique, messenger intégré,
> >> couleurs - http://mail.yahoo.fr
> >>
> >>
> >>
> >>
> >>
> >>
> _____________________________________________________________________________
> >> Ne gardez plus qu'une seule adresse mail ! Copiez vos mails vers Yahoo!
> Mail http://mail.yahoo.fr
> >>
> >> _______________________________________________
> >> Tinyos-help mailing list
> >> [email protected]
> >>
> https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
> >
>
> --
> Platform: WinXP/Cygwin
> TinyOS version: 1.x, Boomerang
> Programmer: MIB510
> Device(s): Mica2, MicaZ, Tmote
> Sensor board: homebrew
>
> _______________________________________________
> Tinyos-help mailing list
> [email protected]
> https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
>
--
~Kevin
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help