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文件,則編譯會報錯 ..Intermediatetprj.axf: error: L6031U: Could not open scatter description file .tprj.sct: No such file or directory 這時候要么不加載外部文件,在target處寫好地址,要么在對應的sct文件里寫明地址。
上一篇:STM32開發 -- 燒寫/啟動模式
下一篇:在LINUX環境在編譯STM32并燒寫代碼
推薦閱讀
史海拾趣