Monitor ROM (MON)
The start location of the FLASH to be programmed is specified by the address ADDRH:ADDRL and the
number of bytes from this location is specified by DATASIZE. The maximum number of bytes that can be
programmed in one routine call is 255 bytes (max. DATASIZE is 255).
ADDRH:ADDRL do not need to be at a page boundary, the routine handles any boundary misalignment
during programming. A check to see that all bytes in the specified range are erased is not performed by
this routine prior programming. Nor does this routine do a verification after programming, so there is no
return confirmation that programming was successful. User must assure that the range specified is first
erased.
The coding example below is to program 64 bytes of data starting at FLASH location $EE00, with a bus
speed of 4.9152 MHz. The coding assumes the data block is already loaded in RAM, with the address
pointer, FILE_PTR, pointing to the first byte of the data block.
ORG
RAM
:
FILE_PTR:
BUS_SPD
DATASIZE
START_ADDR
DATAARRAY
DS.B
DS.B
DS.W
DS.B
1
1
1
64
; Indicates 4x bus frequency
; Data size to be programmed
; FLASH start address
; Reserved data array
PRGRNGE
FLASH_START
EQU
EQU
$FC34
$EE00
ORG
FLASH
INITIALISATION:
MOV
MOV
#20,
#64,
BUS_SPD
DATASIZE
LDHX
STHX
RTS
#FLASH_START
START_ADDR
MAIN:
BSR
:
INITIALISATION
:
LDHX
JSR
#FILE_PTR
PRGRNGE
MC68HC908AP Family Data Sheet, Rev. 4
128
Freescale Semiconductor