beautypg.com

Section 25 – utility rom, 1 – overview, Section 25 – Maxim Integrated DS4830 Optical Microcontroller User Manual

Page 220: Utility rom, Overview

background image

DS4830 User’s Guide

220

SECTION 25

– UTILITY ROM

25.1

– Overview

The DS4830 utility ROM includes routines that provide the following functions to application software:

In-application programming routines for flash memory (program, erase, mass erase)

Single word/byte copy and buffer copy routines for lookup tables in flash

To provide backwards compatibility among different versions of the utility ROM, a function address table is included
that contains the entry points for all user-callable functions. With this table, user code can determine the entry point
for a given function as follows:

1.

Read the location of the function address table from address 0800Dh in the utility ROM.

2. The entry points for each function listed below are contained in the function address table, one word per function,

in the order given by their function numbers.

For example, the entry point for the UROM_flashEraseAll function can be determined by the following procedure.

1. functionTable = romMemory[800Dh]

2.

flashEraseAllEntry = romMemory[functionTable + 2]

It is also possible to call utility ROM functions directly, using the entry points given in Table 25-1.

Calling a function

directly will provide faster code execution.

Table 25-1 DS4830 Utility ROM Functions

INDEX

FUNCTION NAME

ENTRY

POINT

SUMMARY

0

UROM_flashWrite

8438h

Programs a single word of flash memory.

1

UROM_flashErasePage

845Bh

Erases (programs to FFFFh) a 256-word page of flash.

2

UROM_flashEraseAll

8471h

Erases (programs to FFFFh) all flash memory.

3

UROM_moveDP0

8480h

Reads a byte/word at DP[0].

4

UROM_moveDP0inc

8483h

Reads a byte/word at DP[0], then increments DP[0].

5

UROM_moveDP0dec

8486h

Reads a byte/word at DP[0], then decrements DP[0].

6

UROM_moveDP1

8489h

Reads a byte/word at DP[1].

7

UROM_moveDP1inc

848Ch

Reads a byte/word at DP[1], then increments DP[0].

8

UROM_moveDP1dec

848Fh

Reads a byte/word at DP[1], then decrements DP[0].

9

UROM_moveBP

8492h

Reads a byte/word at BP[OFFS].

10

UROM_moveBPinc

8495h

Reads a byte/word at BP[OFFS], then increments OFFS.

11

UROM_moveBPdec

8498h

Reads a byte/word at BP[OFFS], then decrements OFFS.

12

UROM_copyBuffer

849Bh

Copies LC[0] bytes/words (up to 255) from DP[0] to BP[OFFS].