天天看點

keil/STM32/ARM之分散加載檔案scatter file

官方資料:

依次打開 -> keil -> help -> uVision help,打開幫助檔案,然後定位到分散加載檔案章節:

keil/STM32/ARM之分散加載檔案scatter file
keil/STM32/ARM之分散加載檔案scatter file

 分散加載檔案有什麼用?

我們知道,在嵌入式程式中,main函數并不是首先被執行的代碼,還有一個隐藏的函數,名字叫__main,他會在main之前被執行,還有一些彙編代碼也會在main之前被執行。他們主要幹了這些事情:1、設定棧頂位址;2、設定PC指針;3、把0初始化變量所在記憶體區清0;4、給非0初始化的變量指派;3、設定棧頂位址。

keil/STM32/ARM之分散加載檔案scatter file
keil/STM32/ARM之分散加載檔案scatter file

load view中就是編譯完的整個固件的内容,非0初始化的變量的初值,就存在于上圖所示的Load View的RW section區域,__main中會有一段代碼,把這些值一一複制到記憶體的RW section區域,這樣非0初始化變量的初始化就完成了,進入main函數時,這些變量就已經被正确賦好值了。

 常見文法:

keil/STM32/ARM之分散加載檔案scatter file

繼續閱讀