ST10F276E
Bootstrap loader
Figure 8.
Memory configuration after reset
16 Mbytes
16 Mbytes
16 Mbytes
access to
external
bus
access to
external
bus
Depends on
reset config.
(EA, P0)
enabled
disabled
1
1
0
1
0
int.
RAM
int.
RAM
int.
RAM
0
access to
int. Flash
enabled
access to
int. Flash
enabled
Depends on
reset config.
BSL mode active
EA pin
Yes (P0L.4 = ‘0’)
Yes (P0L.4 = ‘0’)
No (P0L.4 = ‘1’)
High
Low
According to application
Code fetch from
internal Flash area
Test-Flash access
Test-Flash access
User IFLASH access
User IFLASH access
Data fetch from
internal Flash area
User IFLASH access
User IFLASH access
Note:
As long as ST10F276E is in BSL, the user’s software should not try to execute code from
the internal IFlash, as the fetches are redirected to the Test-Flash.
5.2.6
Loading the start-up code
After the serial link initialization sequence (see following chapters), the BSL enters a loop to
receive 32 bytes (boot via UART) or 128 bytes (boot via CAN).
These bytes are stored sequentially into ST10F276E Dual-Port RAM from location
00’FA40h.
To execute the loaded code, the BSL then jumps to location 00’FA40h. The bootstrap
sequence running from the Test-Flash is now terminated; however, the microcontroller
remains in BSL mode.
Most probably, the initially loaded routine, being the first level user code, will load additional
code and data. This first level user code may use the pre-initialized interface (UART or CAN)
to receive data and a second level of code, and store it in arbitrary user-defined locations.
This second level of code may be
●
the final application code
●
another, more sophisticated, loader routine that adds a transmission protocol to
enhance the integrity of the loaded code or data
●
a code sequence to change the system configuration and enable the bus interface to
store the received data into external memory
In all cases, the ST10F276E still runs in BSL mode, that is, with the watchdog timer disabled
and limited access to the internal IFLASH area.
Doc ID 12303 Rev 3
53/235