STM32 KEIL軟件設置程序燒寫起始地址選擇
STM32系列的mcu,這兒以cortex-M4為例,我們在線調試時,一般會設置程序燒寫起始地址和大小。這個大小一般是0x08000000,也就是內部flash的映射地址。不過有些產品是從0x08020000開始的,這是為什么呢?是因為在0x08000000-0x08020000這段空間放的是引導程序,也就是引導程序是從0x08000000開始存放,一般而言,引導程序最終也是要跳轉到主app執行的,對於我們這兒而言,就是引導程序會跳轉到0x08020000繼續執行,而主工程代碼是從0x08020000開始存放的,所以就這樣串聯起來了。
這兒可以看到我們設置的程序燒寫的地址和大小,這個的設置是要和use memory layout from target dialog 選項配合使用的,
也就是要勾選:use memory layout from target dialog
不勾選這個選項的話,則是要加載外部對應的sct文件
如果這兒沒有選擇use memory layout from target dialog 這個選項,則對應的sct文件則要寫明地址,如下:
在這兒里面指定的0x08020000和0x00100000,效果也是一樣的。
如果你沒有勾選這個選項,而又沒有指定的sct文件,則編譯會報錯
..\Intermediate\tprj.axf: error: L6031U: Could not open scatter description file .\tprj.sct: No such file or directory
這時候要么不加載外部文件,在target處寫好地址,要么在對應的sct文件里寫明地址。