This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
(Is main() a normal thread ?) problem was my fault...
Hi,
I found the problem why the following program
does not work as intended:
------------------------------------------------
int main(void) {
while (1) {
cyg_thread_delay(100);
}
}
------------------------------------------------
It will work if the header file <cyg/kernel/kapi.h>
is included.
The reason is that the parameter of cyg_thread_delay()
is a 64 bit variable. Without the header file, the compiler
will pass a 32 bit variable and the most significant word
is undefined, and could be a huge value,
so cyg_thread_delay() will delay for much more than 100 ticks...
The problem had nothing to do with main(). In my other
test program which used cyg_user_start() and another
thread, the header file was included, so the problem
didn't occur...
The moral of the story for me is:
Allways include the header files !!!
Regards,
Claudio L. Salvadori
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss