question to freertos implementation

Hi!
Can someone explain me why “cli” is not at line 1? Couldn’t it be that if it’s not called in an isr there could be an interrupt at line 1 – 2 and then r0 isn’t saved correct? And I don’t get why r1 has to be cleared?

question to freertos implementation

oops i forgot the link: http://www.freertos.org/implementation/a00016.html

question to freertos implementation

Presumably because CLI will change the status register and you the status register cannot be changed until it has first been saved.

question to freertos implementation

Okay that is plausible, but there’s still the chance that it may interrupt between line 1-2?
And why has r1 to be cleared? Just because the compiler generated code assumes something is a little vague reason.

question to freertos implementation

but there’s still the chance that it may interrupt between line 1-2?
From reading the explanation on the webpage you link to, it looks like if the function is entered through an interrupt then it can’t get interrupted between lines 1 and 2, and if it is entered by a function call then it does not matter if it gets interrupted between lines 1 and 2 (any more than it matters that any function call gets interrupted). I would have to look at the compiler documentation to know why R1 is cleared, but without doing that just assume the compiler expects it to be zero at some point.