Zilog ZUSBOPTS Manual de usuario Pagina 87

  • Descarga
  • Añadir a mis manuales
  • Imprimir
  • Pagina
    / 520
  • Tabla de contenidos
  • SOLUCIÓN DE PROBLEMAS
  • MARCADORES
  • Valorado. / 5. Basado en revisión del cliente
Vista de pagina 86
UM017105-0511 Menu Bar
Zilog Developer Studio II – ZNEO™
User Manual
59
All calls to printf() and sprintf() must use string literals, rather than char*
variables, as parameters. For example, the following code allows the compiler to
reduce the code size:
sprintf ("Timer will be reset in %d seconds", reset_time);
But code such as the following results in larger code:
char * timerWarningMessage;
...
sprintf (timerWarningMessage, reset_time);
The functions vprintf() and vsprintf() cannot be used, even if the format string
is a string literal.
If the
Generate Printfs Inline checkbox is selected and these conditions are not met, the
compiler warns you that the code size cannot be reduced. In this case, the compiler gener-
ates correct code, and the execution is significantly faster than with normal
printf calls.
However, there is a net increase in code size because the generated inline calls to lower
level functions require more space with no compensating savings from removing the top-
level functions.
In addition, an application that makes over 100 separate calls of
printf or sprintf
might result in larger code size with the
Generate Printfs Inline checkbox selected
because of the cumulative effect of all of the inline calls. The compiler cannot warn about
this situation. If in doubt, simply compile the application both ways and compare the
resulting code sizes.
The
Generate Printfs Inline checkbox is selected by default.
Distinct Code Segment for Each Module. For most applications, the code segment for
each module compiled by the ZNEO compiler is named CODE. Later, in the linker step of
the build process, the linker gathers all these small CODE segments into a single large
CODE segment and then places that segment in the appropriate address space, thus ensur-
ing that all of the executable code is kept in a single contiguous block within a single
address space. However, some users might need a more complex configuration in which
particular code modules are put in different address spaces.
Such users can select the
Distinct Code Segment for Each Module checkbox to accom-
plish this purpose. When this checkbox is selected, the code segment for every module
receives a distinct name; for example, the code segment generated for the
myModule.c
module is given the name
myModule_TEXT. You can then add linker directives to the
linker command file to place selected modules in the appropriate address spaces. This
checkbox is deselected by default.
An example of the use of this feature is to place most of the application’s code in the usual
EROM address space (see the Project Settings—Address Spaces Page
section on page 68
Vista de pagina 86
1 2 ... 82 83 84 85 86 87 88 89 90 91 92 ... 519 520

Comentarios a estos manuales

Sin comentarios