Zilog Z8F0130 User Manual
Page 108
Using the Integrated Development Environment
UM013037-1212
84
Zilog Developer Studio II – Z8 Encore!
User Manual
rule. For example, in an application that contains 50 functions, this drop-down list box
might make 2 functions larger and the other 48 functions smaller. Also, if those two func-
tions run slower with the drop-down list box enabled but the others run faster, then
whether the overall program speed is improved or worsened depends on how much time
the application spends in each function.
Because the effect of applying this drop-down list box must be evaluated across an appli-
cation as a whole, user experimentation is required to test this for an individual applica-
tion. Only a small fraction of applications benefit from setting the
Use Register
Variables
drop-down list box to
Off
.
This drop-down list box interacts with the
Limit Optimizations for Easier Debugging
checkbox on the C page (see the
Limit Optimizations for Easier Debugging
77). When the
Limit Optimizations for Easier Debugging
checkbox is selected, register
variables are not used because they can cause confusion when debugging. The
Use Regis-
ter Variables
drop-down list box is disabled (grayed out) when the
Limit Optimizations
for Easier Debugging
checkbox is selected. If the
Limit Optimizations for Easier
Debugging
checkbox is later deselected (even in a later ZDS II session), the
Use Register
Variables
drop-down list box returns to the setting it had before the
Limit Optimizations
for Easier Debugging
checkbox was selected.
Using register variables can complicate debugging in at least two ways. One way is that
register variables are more likely to be optimized away by the compiler. If variables you
want to observe while debugging are being optimized away, you can usually prevent this
by any of the following actions:
•
Select the
Limit Optimizations for Easier Debugging
checkbox (see the
mizations for Easier Debugging
•
Set the
Use Register Variables
drop-down list box to
Off
.
•
Rewrite your code so that the variables in question become global rather than local.
The other way that register variables can lead to confusing behavior when debugging is
that the same register can be used for different variables or temporary results at different
times in the execution of your code. Because the debugger is not always aware of these
multiple uses, sometimes a value for a register variable might be shown in the
Watch
win-
dow that is not actually related to that variable at all.
Generate Printfs Inline
Normally, a call to
printf()
or
sprintf()
parses the format string at run time to gener-
ate the required output. When the
Generate Printfs Inline
checkbox is selected, the for-
mat string is parsed at compile time, and direct inline calls to the lower level helper
functions are generated. This results in significantly smaller overall code size because the
Note:
- Z8F0131 Z8F0230 Z8F0231 Z8F0430 Z8F0431 Z8F043A Z8F0830 Z8F0831 Z8F083A Z8F1232 Z8F1233 Z8F0113 Z8F011A Z8F0123 Z8F012A Z8F0213 Z8F021A Z8F0223 Z8F022A Z8F0411 Z8F0412 Z8F0413 Z8F041A Z8F0421 Z8F0422 Z8F0423 Z8F042A Z8F0811 Z8F0812 Z8F0813 Z8F081A Z8F0821 Z8F0822 Z8F0823 Z8F082A Z8F0880 Z8F1621 Z8F1622 Z8F1680 Z8F1681 Z8F1682 Z8F2421 Z8F2422 Z8F2480 Z8F3221 Z8F3222 Z8F3281 Z8F3282 Z8F4821 Z8F4822 Z8F4823 Z8F6081 Z8F6082 Z8F6421 Z8F6422 Z8F6423 Z8F6481 Z8F6482 Z8FS021A ZMOT1AHH Z8FS040B ZMOT0BHH ZMOT0BSB Z8FMC04 Z8FMC08 Z8FMC16