© Koninklijke Philips Electronics N.V. 2005. All rights reserved.
User manual
Rev. 01 — 15 August 2005
292
Philips Semiconductors
UM10139
Volume 1
Chapter 21: Flash Memory
memory area but both the ISP and IAP software use parts of the on-chip RAM. The RAM
usage is described later in this chapter. The interrupt vectors residing in the boot block of
the on-chip flash memory also become active after reset, i.e., the bottom 64 bytes of the
boot block are also visible in the memory region starting from the address 0x0000 0000.
The reset vector contains a jump instruction to the entry point of the flash boot loader
software.
21.4.2 Criterion for valid user code
Criterion for valid user code: The reserved ARM interrupt vector location (0x0000 0014)
should contain the 2’s complement of the check-sum of the remaining interrupt vectors.
This causes the checksum of all of the vectors together to be 0. The boot loader code
disables the overlaying of the interrupt vectors from the boot block, then checksums the
interrupt vectors in sector 0 of the flash. If the signatures match then the execution control
is transferred to the user code by loading the program counter with 0x0000 0000. Hence
the user flash reset vector should contain a jump instruction to the entry point of the user
application code.
If the signature is not valid, the auto-baud routine synchronizes with the host via serial port
0. The host should send a ’?’ (0x3F) as a synchronization character and wait for a
response. The host side serial port settings should be 8 data bits, 1 stop bit and no parity.
The auto-baud routine measures the bit time of the received synchronization character in
terms of its own frequency and programs the baud rate generator of the serial port. It also
sends an ASCII string ("Synchronized<CR><LF>") to the Host. In response to this host
should send the same string ("Synchronized<CR><LF>"). The auto-baud routine looks at
Fig 65. Map of lower memory after reset
12 kB BOOT BLOCK
(RE-MAPPED FROM TOP OF FLASH MEMORY)
ON-CHIP FLASH MEMORY
0.0 GB
ACTIVE INTERRUPT VECTORS
FROM THE BOOT BLOCK
0x7FFF FFFF
Note: Memory regions are not drawn to scale.
2.0 GB - 12kB
2.0 GB
(BOOT BLOCK INTERRUPT VECTORS)
12 kB BOOT BLOCK RE-MAPPED TO
HIGHER ADDRESS RANGE
0x0000 0000
0x0007 FFFF
0x7FFF D000
0x0007 D000