Thanks a lot for your reply. But that code is okay because the floating point unit is not used during > that sequence. it is untouched and up to a point it doesn't matter when the > floating point unit is restored as long as it's before the thread needs it. > And RTEMS should not be using floating point operations except in very > special places in the code base. > not sure that helps but the floating point unit and the integer unit are > separate and most of the time can be contact switched separately completely > safely.
I understand. This is smart. The _Context_Switch() function changes the thread stack and the > non-volatile (callee save) registers. So, the value of the executing > local variable changes with a call to _Context_Switch(). I understand. Thank you. On Mon, Nov 2, 2020 at 11:48 AM Sebastian Huber < sebastian.hu...@embedded-brains.de> wrote: > On 31/10/2020 16:50, Richi Dubey wrote: > > > > > I want to learn more about how context switching works in RTEMS. I saw > > the following lines in theaddispatch.c: > > > > _Thread_Save_fp( executing ); > > _Context_Switch( &executing->Registers, &heir->Registers ); > > _Thread_Restore_fp( executing ); > > > > I do not understand how it works. Here, the executing process saves > > its context by calling _Thread_Save_fp( executing ), then if a > > different process resumes execution after the context switch, why does > > it get the context of previous process (executing)? > The _Context_Switch() function changes the thread stack and the > non-volatile (callee save) registers. So, the value of the executing > local variable changes with a call to _Context_Switch(). > > -- > Sebastian Huber, embedded brains GmbH > > Address : Dornierstr. 4, D-82178 Puchheim, Germany > Phone : +49 89 189 47 41-16 > Fax : +49 89 189 47 41-09 > E-Mail : sebastian.hu...@embedded-brains.de > PGP : Public key available on request. > > Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG. > >
_______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel