Maxq610 user’s guide – Maxim Integrated MAXQ610 User Manual
Page 195
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 .