Section 25 – utility rom, 1 – overview – Maxim Integrated DS4830A Optical Microcontroller User Manual
Page 231
DS4830A User’s Guide
231
SECTION 25 – UTILITY ROM
25.1 – Overview
The DS4830A 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: DS4830A Utility ROM Functions
INDEX
FUNCTION NAME
ENTRY
POINT
SUMMARY
0
UROM_flashWrite
843Ch
Programs a single word of flash memory.
1
UROM_flashErasePage
845Fh
Erases (programs to FFFFh) a 256-word page of flash.
2
UROM_flashEraseAll
8475h
Erases (programs to FFFFh) all flash memory.
3
UROM_moveDP0
8484h
Reads a byte/word at DP[0].
4
UROM_moveDP0inc
8487h
Reads a byte/word at DP[0], then increments DP[0].
5
UROM_moveDP0dec
848Ah
Reads a byte/word at DP[0], then decrements DP[0].
6
UROM_moveDP1
848Dh
Reads a byte/word at DP[1].
7
UROM_moveDP1inc
8490h
Reads a byte/word at DP[1], then increments DP[0].
8
UROM_moveDP1dec
8493h
Reads a byte/word at DP[1], then decrements DP[0].
9
UROM_moveBP
8496h
Reads a byte/word at BP[OFFS].
10
UROM_moveBPinc
8499h
Reads a byte/word at BP[OFFS], then increments OFFS.
11
UROM_moveBPdec
849Ch
Reads a byte/word at BP[OFFS], then decrements OFFS.
12
UROM_copyBuffer
849Fh
Copies LC[0] bytes/words (up to 255) from DP[0] to
BP[OFFS].