Hi,
Savin Zlobec wrote:
Claudio Leonel wrote:
Hi all,
I thought main() was a normal thread but if I ran the
following application step by step in gdb there is no
return from the function cyg_thread_delay(). Apparently
it hangs in the call to cyg_thread_delay().
Check the CYGSEM_LIBC_STARTUP_MAIN_THREAD option -
it controls how main() is invoked (from an eCos thread or not).
It is enabled: main() will be invoked as an eCos thread
with 8192 bytes of stack and priority 10.
If I interrupt the application in gdb and execute 'info threads'
main() appears in the thread list.
The most strange thing is that, I if precede 'cyg_thread_delay(100)'
with a diag_printf("..."), cyg_thread_delay() works and returns
after 100 ticks:
---------------------------------------------------------------
int main(void) {
while (1) {
diag_printf("...\n"); // Works if I insert this line !
cyg_thread_delay(100);
}
}
---------------------------------------------------------------