When boots, it runs the Boot2 Bootloader Firmware at 0x2300 0000 ... Which loads the Application Firmware into (yikes!) 0x2300 0000 ... Let's investigate how the Bootloader makes this self-overlay possible

github.com/lupyuen/bl_iot_sdk/

Quick check of Boot2 Disassembly ... To be sure that it matches the Boot2 Bootloader that we have been flashing to BL602. Great exercise for learning Assembly! 👍

github.com/lupyuen/bl_iot_sdk/

Linker Script for Bootloader says that some System Functions will be placed in ITCM (0x2201 0000) ... Like Global Register (GLB), Power (PDS), XIP Flash and eFuse 🤔

github.com/lupyuen/bl_iot_sdk/

Some parts of Bootloader are located in ITCM Cache Memory (instead of XIP Flash) ... Maybe that's why the Bootloader is able to overwrite itself in XIP Flash Memory 🤔

github.com/lupyuen/bl_iot_sdk/

Show newer
Sign in to participate in the conversation
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.