beautypg.com

Customizing start-up files – Zilog Z8F0130 User Manual

Page 268

background image

Using the ANSI C-Compiler

UM013037-1212

244

Zilog Developer Studio II – Z8 Encore!
User Manual

Customizing Start-Up Files

The C start-up object files provided with the Z8 Encore! C Compiler are generic files and
can be tailored to meet the application requirements. Before modifying the C start-up
module, perform the following steps:

1. Copy the corresponding C start-up source file to a new file in your project directory.

For the small model, use

startups.asm

as the file from which you copy; for the

large model, use

startupl.asm

.

2. Add the newly copied C start-up file to your project files by using the Add Files com-

mand from the

Project

menu.

3. Select the Settings command from the

Project

menu.

The

Project Settings

dialog box is displayed.

4. Select the Objects and Libraries page.

5. Select the

Included in Project

and

Use Standard Start-Up Linker Commands

checkboxes.

Use the following guidelines when customizing the C start-up file:

If you do not have any uninitialized global or static variables in near memory, the
start-up file does not have to clear the near uninitialized variables to zero.

As an example, for the large model:

near int val; // Not OK to skip clearing uninitialized near

data:

// Uninitialized global in near memory

int val ; // OK to skip clearing uninitialized near data:

// Uninitialized global in far memory

For the small model:

int val; // Not OK to skip clearing uninitialized near data:

// Uninitialized global in near memory

far int val ; // OK to skip clearing uninitialized near data:

// Uninitialized global in far memory

Alternatively, if your application does not assume that the near uninitialized global or
static variables are initialized to zero by the C start-up module, the start-up code does
not have to perform this function.

This can be achieved by adding the following code just before

segment startup

:

CLRRRAM SET FALSE

If you do not have any initialized global or static variables in near memory, the start-
up code does not have to set the initialized global and static near variables to their ini-
tial value from ROM.

As an example, for the large model: