next up previous contents index
Next: 3.9.2 Enabling and Disabling Up: 3.9 Enabling and Disabling Previous: 3.9 Enabling and Disabling   Contents   Index

3.9.1 Critical Functions and Critical Statements

A special keyword may be associated with a block or a function declaring it as critical. SDCC will generate code to disable all interrupts upon entry to a critical function and restore the interrupt enable to the previous state before returning. Nesting critical functions will need one additional byte on the stack for each call.

int foo () critical  
{  
    ...  
    ...  
}
The critical attribute maybe used with other attributes like reentrant.
The keyword critical may also be used to disable interrupts more locally:

critical{ i++; }
More than one statement could have been included in the block.



Erik Petrich 2006-05-02