[ECOS] One question..
anton yakovlev
antony@inbox.ru
Sat Jun 26 12:26:00 GMT 2004
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?..
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()".. :(
>>>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?..
>>>>
>>>>
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
More information about the Ecos-discuss
mailing list