beautypg.com

Zilog Z8F0130 User Manual

Page 108

background image

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

section on page

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

Limit Opti-

mizations for Easier Debugging

section on page 77).

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: