3.4 Boot configurationใน the STM32F10xxx, 3 different boot modes สามารถถูกเลือกผ่านทาง BOOT[1:0] pins ดังแสดงใน Table 9.

ค่าบน the BOOT pins ถูกลงกลอน(latched) บน the 4th rising edge ของ SYSCLK หลังจาก a reset. มันขึ้นอยู่กับผู้ใช้ที่จะเซ็ต the BOOT1 และ BOOT0 pins หลังจาก Reset เพื่อเลือก the required boot mode.
The BOOT pins ยังถูกสุ่มอีกครั้ง(re-sampled) เมื่อออกจาก Standby mode. ด้วยเหตุนี้พวกมันต้องถูกเก็บไว้ใน the required Boot mode ที่กำหนดค่าใน Standby mode. หลังจาก startup delay นี้ผ่านไป, the CPU ดึงข้อมูล(fetches) the top-of-stack value จาก address 0x0000 0000, จากนั้นเริ่ม code execution จาก the boot memory ที่เริ่มจาก 0x0000 0004.
เนื่องจาก fixed memory map ของมัน, the code area เริ่มจาก address 0x0000 0000 (เข้าถึงผ่านทาง the ICode/DCode buses) ขณะที่ the data area (SRAM) เริ่มจาก address 0x2000 0000 (เข้าถึงผ่านทาง the system bus). The Cortex®-M3 CPU ดึงข้อมูล(fetches) the reset vector บน the ICode bus เสมอ, ซึ่งหมายความว่ามี the boot space มีให้ใช้ใน the code area (โดยทั่วไป, Flash memory)เท่านั้น. STM32F10xxx microcontrollers จัดให้มีกลไกพิเศษเพื่อสามารถ boot จาก SRAM ได้อีกด้วยและไม่เพียงจาก main Flash memory และ System memory เท่านั้น.
ขึ้นอยู่กับ the selected boot mode, main Flash memory, system memory หรือ SRAM สามารถเข้าถึงได้ดังต่อไปนี้ :
• Boot จาก main Flash memory: the main Flash memory ถูกนามแฝง(aliased) ใน the boot memory space (0x0000
0000), แต่ยังคงเข้าถึงได้จาก original memory space (0x800 0000) ของมัน. กล่าวอีกนัยหนึ่ง, the Flash memory contents
สามารถถูกเข้าถึงเริ่มจาก 0x0000 0000 หรือ 0x800 0000.
• Boot จาก system memory: the system memory ถูกนามแฝง(aliased) ใน the boot memory space (0x0000 0000), แต่
ยังคงเข้าถึงได้จาก original memory space ของมัน (0x1FFF B000 ใน connectivity line devices, 0x1FFF F000 ใน mcu
เบอร์อื่น).
• Boot จาก the embedded SRAM: SRAM เข้าถึงได้เพียงที่ address 0x2000 0000 เท่านั้น
Note: เมื่อ booting จาก SRAM, ใน the application initialization code, คุณต้องย้ายที่ the vector table ใน SRAM โดย
ใช้ the NVIC exception table และ offset register.
สำหรับ XL-density devices, เมื่อ booting จาก the main Flash memory, คุณมีทางเลือกที่จะ boot จากหนึ่งใน two memory banks. โดบค่าเริ่มต้น, boot จาก Flash memory bank 1 ถูกเลือก. คุณสามารถเลือกที่จะ boot จาก Flash memory bank 2 โดยการเคลียร์ the BFB2 bit ใน the user option bytes. เมื่อบิตนี้ถูกเคลียร์และ the boot pins อยู่ใน the boot จาก main Flash
memory configuration, the device บู๊ท(boots) จาก system memory, และ the boot loader กระโดดไปปฏิบัติงาน the user application ที่โปรแกรมใน Flash memory bank 2. สำหรับรายละเอียดที่มากขึ้นอ้างอิงถึง AN2606.
Note: เมื่อ booting จาก Bank2 ใน the applications initialization code, ย้ายที่ the vector table ไปยัง the Bank2
base address. (0x0808 0000) โดยใช้ the NVIC exception table and offset register.