[En-Nut-Discussion] arm port (RFC: Changing ARM mode)

Thiago A. Corrêa thiago.correa at gmail.com
Tue Jan 13 20:39:32 CET 2009


On Tue, Jan 13, 2009 at 4:39 PM, Alain M. <alainm at pobox.com> wrote:
>
> Rocendo Bracamontes del toro escreveu:
>>
>>   void NutSleep (uint32_t ms)
>>    {
>>        ENTRY_KERNEL_MODE(); // change mode to supervisor when applicable
>>
>>       ..... code execute at kernel level here ....
>>
>>        EXIT_KERNEL_MODE(); exit supervisor mode, enter user mode when
>> applicable
>>   }
>
> I am no expert in the matter, but in my undertanding this is not very
> good. The problem is that SWI is a CALL, not a command has one parameter
> for the function and parametters have to be fetch from the user stack.
> This calls for an entire different achitecture.
>

I have no knowleadge or experience in this so far, but I can tell that
FreeRTOS follows this approach.
But it seams that they use that only in preemptive threads mode, not
with cooperative threads mode.

Kind Regards,
   Thiago A. Correa



More information about the En-Nut-Discussion mailing list