This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: One question..
On Sat, 2004-06-26 at 06:26, anton yakovlev wrote:
> Gary Thomas wrote:
>
> >On Sat, 2004-06-26 at 02:59, anton yakovlev wrote:
> >
> >
> >>Gary Thomas wrote:
> >>
> >>
> >>>On Fri, 2004-06-25 at 02:09, anton yakovlev wrote:
> >>>
> >>>
> >>>>Hi, all!
> >>>>
> >>>>I have a programm:
> >>>>=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
> >>>>#include <stdio.h>
> >>>>#include <cyg/kernel/kapi.h>
> >>>>
> >>>>void first(cyg_addrword_t threadData) {
> >>>>
> >>>> (void) threadData;
> >>>> printf("the first thread\n");
> >>>>
> >>>>}
> >>>>
> >>>>static char stack_a[4096];
> >>>>static cyg_thread thread_a;
> >>>>static cyg_handle_t handle_a;
> >>>>
> >>>>void cyg_user_start(void) {
> >>>>
> >>>> cyg_thread_create(10, first, 0, "first", stack_a, 4096, &handle_a,
> >>>>&thread_a);
> >>>> cyg_thread_resume(handle_a);
> >>>>
> >>>>}
> >>>>=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
> >>>>but when i try to executing it, i see only following:
> >>>>=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
> >>>>RedBoot> load -r -m y -b 0x205000
> >>>>Raw file loaded 0x00205000-0x00210500
> >>>>xyzModem - CRC mode, 363(SOH)/0(STX)/0(CAN) packets, 3 retries
> >>>>RedBoot> go 0x205000
> >>>>
> >>>>
> >>>Why did you specify raw mode (-r)? When you do this, RedBoot loads the
> >>>file directly into memory without any processing at all, probably not
> >>>what you want to do.
> >>>
> >>>
> >>Because I upload exactly raw image.. neither elf-image, nor s-record..
> >>
> >>
> >
> >That's fine (many people make mistakes here, but you've not).
> >
> >Was the program linked to load at 0x205000? eCos programs are *not*
> >position independent and must be loaded to memory that matches how they
> >are built/linked.
> >
> >
> Hm.. I did not think about this.. I use GNU ld with "-L <smth>
> -Wl,--gc-sections -nostartfiles -Ttarget.ld -nostdlib" flags.. Simple
> "hello, world" and some more complex programms work's properly.. How to
> check, which way the program was linked?..
The command "XXX-objdump -h file.elf" will show how the program was
linked.
>
> PS: When I turn on full kernel debug, that my above programm work's
> fine.. but when I try to execute more complex multithreaded program,
> this programm failed while system initialization with "ASSERT FAIL:
> mutex.cxx cyg_bool Cyg_Mutex::lock()".. :(
This would be a separate problem. Have you run the standard tests to
see how they perform on your platform?
>
> >>>How did you create the file that's being downloaded? Is it an
> >>>executable (ELF) image? or possibly S-records?
> >>>
> >>>
> >> From elf-image using objcopy..
> >>
> >>
> >>>>=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
> >>>>i.e. thread want not to start.. Why so?..
> >>>>
> >>>>I have Falcom fx35xxlsi (based on NEC V850 processors family) platform
> >>>>with eCos 2.0.. I build eCos from the sources.. Maybe I have broken
> >>>>configuration?..
> >>>>
> >>>>
--
Gary Thomas <gary@mlbassoc.com>
MLB Associates
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss