beautypg.com

Maxq610 user’s guide – Maxim Integrated MAXQ610 User Manual

Page 195

background image

15-2

MAXQ610 User’s Guide

SECTION 15: UTILITY ROM

The MAXQ610 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 use with lookup tables
• Entry into stop mode
• Ability to check a value against a stored secret
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 = dataMemory[0800Dh]
2) flashWriteEntry = dataMemory[functionTable + 0]

It is also possible to call utility ROM functions directly, using the entry points given above . Standard include files are
provided for this purpose with the MAXQ development toolset . This method calls functions more quickly, but the appli-
cation might need to be recompiled in order to run properly with a different version of the utility ROM .

Table 15-1. Functions for MAXQ610 Utility ROM Version 1.00

INDEX

FUNCTION NAME

ENTRY

POINT

SUMMARY

0

UROM_flashWrite

8544h

Programs a single word of flash memory .

1

UROM_flashErasePage

8566h

Erases (programs to FFFFh) a 512-word sector of flash memory .

2

UROM_flashEraseAll

857Bh

Erases (programs to FFFFh) all flash memory .

3

UROM_moveDP0

8589h

Reads a byte/word at DP[0] .

4

UROM_moveDP0inc

858Ch

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

5

UROM_moveDP0dec

858Fh

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

6

UROM_moveDP1

8592h

Reads a byte/word at DP[1] .

7

UROM_moveDP1inc

8595h

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

8

UROM_moveDP1dec

8598h

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

9

UROM_moveFP

859Bh

Reads a byte/word at BP[OFFS] .

10

UROM_moveFPinc

859Eh

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

11

UROM_moveFPdec

85A1h

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

12

UROM_copyBuffer

85A4h

Copies LC[0] values (up to 255) from DP[0] to BP[OFFS] .

13

UROM_stopMode

85AAh

Enters stop mode .