
DocID13284 Rev 2
303/564
UM0404
The bootstrap loader
15.2
Standard bootstrap loader
The built-in bootstrap loader of the ST10F276 provides a mechanism to load the startup
program, which is executed after reset, via the serial interface. In this case no external
(ROM) memory or an internal ROM is required for the initialization code starting at location
00’0000
H
. The bootstrap loader moves code/data into the IRAM, but it is also possible to
transfer data via the serial interface into an external RAM using a second level loader
routine. ROM memory (internal or external) is not necessary. However, it may be used to
provide lookup tables or may provide “core-code”, that is, a set of general purpose
subroutines, for example, such as for I/O operations, number crunching, or system
initialization.
The Bootstrap Loader may be used to load the complete application software into ROMless
systems, it may load temporary software into complete systems for testing or calibration, it
may also be used to load a programming routine for Flash devices.
The BSL mechanism may be used for standard system startup as well as only for special
occasions like system maintenance (firmware update) or end-of-line programming or
testing.
15.2.1 Entering
the
standard bootstrap loader
As with the old ST10 bootstrap mode, the ST10F276 enters BSL mode, if pin P0L.4 is
sampled low at the end of a hardware reset. In this case the built-in bootstrap loader is
activated independently of the selected bus mode. The bootstrap loader code is stored in a
special Test-Flash: no part of the standard of the Flash memory area is required for this.
After entering BSL mode and the respective initialization, the ST10F276 scans the RxD0
line and the CAN1_RxD line to receive either a valid dominant bit from CAN interface, or a
start condition from UART line.
Start condition on UART RxD:
ST10F276 starts standard bootstrap loader. This bootstrap
loader is identical to other ST10 devices (example: ST10F269, ST10F168). See
Section 15.3: Standard bootstrap with UART (RS232 or K-Line)
for details.
Valid dominant bit on CAN1 RxD:
ST10F276 start bootstrapping via CAN1; the
bootstrapping method is new and is described in the
Section 15.4: Standard bootstrap with
.
shows the program flow of the new bootstrap loader. It illustrates clearly
how the new functionalities are implemented:
•
UART: UART has priority over CAN after a falling edge on CAN1_RxD till the 1st valid
rising edge on CAN1_RxD;
•
CAN: pulses on CAN1_RxD shorter than 20*CPU-cycles are filtered.
Table 45. ST10F276x boot mode selection
P0.5
P0.4
ST10 decoding
1
1
User Mode:
user Flash mapped at 00’0000h
1
0
Standard Bootstrap Loader:
User Flash mapped from 00’0000h, code
fetches redirected to Test-Flash at 00’0000h
0
1
Alternate Boot Mode:
Flash mapping depends on signatures integrity
check
0
0
Reserved