關於解決工程編譯出現Undefined symbol __use_two_region_memory 和Undefined symbol __initial_sp的問題

Justice_Gao發表於2017-06-28

開發環境:KEIL MDK 5.23

MCU型號:MAX32630

在編譯工程檔案是,出現Undefined symbol __use_two_region_memory 和Undefined symbol __initial_sp,如下圖所示


知其然就要知其所以然,我們先來了解一下 __use_two_region_memory是什麼東西吧。

use_two_region_memory用於指定儲存器模式為雙段模式,即一部分儲存區用於棧空間,其他的儲存區用於堆空間,堆區空間可以為0。

在彙編程式碼中,通過 IMPORT __use_two_region_memory 表明使用雙段模式;
在C語言中,通過 #pragma import(__use_two_region_memory)語句表明使用雙段模式。
__use_two_region_memory是用在 startup.S裡面的
如果__use_two_region_memory 未定義:在 startup.S加入即可。

如果在 startup.S有定義,則應該按照一下操作,如圖勾選Use MircroLib就不會出現這種問題,編譯通過


相關文章