In an MSP430 C function, local variables without any modifiers are dynamically allocated upon each function call. This requires additional code & RAM space and the impact increases depending on the function call frequency. On the other hand, when declared as 'static', the variables are only generated once and remain available throughout the lifetime of the application. This minimizes the amount of code needed to re-allocate/re-initialize the variables every time the function is invoked. Alternatively, when the const modifier is used, the variable is stored as data in flash as part of the function, hence requiring no further re-allocation for each function entry.
Using local variables without 'static' or 'const' modifier requires additional code execution to reallocate & reinitialize the variables each time the function is invoked.
The project code contains a function with local variables that
are not but can be declared with the 'static' and/or 'const'
modifiers.
Use 'static' and/or 'const' modifiers for all applicable local variables (i.e. variables that do not change in values).
void functionA(void) { static const variable1 = 0xFA; P1DIR = variable1; }
See the rest of the code examples for all MSP430 devices here!
Want to squeeze a few more nanoAmps out of your application? Leverage the e2e (Engineer-to-Engineer) online community to get all of your ULP questions answered! Or, if you are an Ultra-Low Power pro, give back to the community with your expertise.
Go to MSP430's e2e online forum!
If you are posting on the forums in relation to this rule, try using the tag "ULP_8.1"
For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article Compiler/diagnostic messages/MSP430/1535 here. |