On 04/12/2011 03:25 PM, moktar_bouain wrote:

Hello ,
I have a problem  with  the priority of ecos.
  I have the following configuration:

#include<cyg/kernel/kapi.h>

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
cyg_thread thread_s[2];         
char stack[2][4096];
cyg_handle_t simple_threadA, simple_threadB;
cyg_mutex_t cliblock;
void taska(cyg_addrword_t data)
{
printf("TASKA \n");
   }
void taskb(cyg_addrword_t data)
{
printf("TASKB \n");

}

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

but when  I changed the priority:

   cyg_thread_create(1, 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]);
I find  this  false result
TASKB
TASKA
TASKB
TASKA
TASKB
TASKA
TASKB
TASKA
TASKB
TASKA
TASKB
TASKA
TASKB
TASKA
TASKB

Any help??

What scheduler are you using? (this controls how many priorities and what
type of  priority mechanism is available)

Also, what makes you think that after a thread does a printf() call, it
should yield the CPU to the other thread?  There is no reason for it and
in the simplest configuration printf() is just diag_printf() which is not
interrupt driven and there would never be a reason for one thread to lose
control of the CPU.

--
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------

Reply via email to