Re: I have a problem with the priority of ecos

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]




[ moving to ecos-discuss ]

Hi Moktar

moktar_bouain wrote:

> void cyg_user_start(void)
> {
>   printf("Entering twothreads' cyg_user_start() function\n");
> 
>   cyg_mutex_init(&cliblock);
> 
>   cyg_thread_create(10, taska, (cyg_addrword_t) 0,"Thread A", (void *)
> stack[0], 4096,&simple_threadA, &thread_s[0]);
>   cyg_thread_create(0, taskb, (cyg_addrword_t) 1,"Thread B", (void *)
> stack[1], 4096,&simple_threadB, &thread_s[1]);
>   }
> 
> void main (cyg_addrword_t data)
> {
>   for(;;)
>  {
>   cyg_thread_resume(simple_threadA);
>   cyg_thread_resume(simple_threadB);
> }
> }
> 
>  when I execute  this configuration:
> TASKB 
> TASKB 
> TASKB 
> TASKB 
> TASKB 
> TASKB 
> TASKB 
> TASKB 
> TASKB 
> TASKB 
> TASKB 

It looks like the issue is with main() which will run as an eCos thread
at priority 10 by default (CYGNUM_LIBC_MAIN_THREAD_PRIORITY). The bitmap
scheduler will not handle two threads at the same priority correctly.
Assuming you have a good reason to use main() and to restart the
application threads in this way, main() should be of lower priority than
the other threads.

I hope this helps...

John Dallaway
eCos maintainer
http://www.dallaway.org.uk/john

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss



[Linux Embedded]     [U-Boot V2]     [Linux Kernel]     [Linux MIPS]     [Linux ARM]     [Linux for the Blind]     [Linux Resources]     [Photo]     [Yosemite]     [ISDN Cause Codes]     [ECOS Home]

Add to Google Powered by Linux