Bootloder的啟動流程:
1. 啟動上電,ROM被映射到 0x01xx.xxxx,Flash映射到0x0000.0000;
2. 程式讀取 bootcfg中的EN位,如果EN為0,則讀取相應的GPIO管腳的高低電平。如果讀取到高低電平和BOOTCFG的高低極性匹配(比如之前BOOTCFIG設定控制引腳PB7極性為高,而此時讀取也為高電平),則執行Bootloader。如果不匹配,轉而去查看Flash地址的0x0000.0004地址是否為0xFFFF.FFFF,如果為0xFFFF則表明該晶片沒有被編程過,因此繼續執行Bootloader。如果讀取Flash地址不是0xFFFF.FFFF,表明Flash內部有程式可執行,於是執行Flash中的指令。
Stellaris LM3S Tempest產品中包含27K左右容量的ROM區。在該ROM區中,包含Stellaris 外設驅動庫、Bootloader、AES加密解密表格、CRC校驗功能,另外在LM3S9B96中,還預裝有SafeRTOS。