出現以下錯誤:
Error: L6915E: Library reports error: The semihosting __user_initial_stackheap cannot reliably set up a usable heap region if scatter loading is in use
__user_initial_stackheap應該是一個初始化堆棧的函數,這個函數被__user_setup_stackheap取代,我們需要自己重新定義這個函數來解決這個問題,或者在scatter file中定義一個ARM_LIB_HEAP或ARM_LIB_STACK域。
然后打開test.scf,在里面加上一個段:
ARM_LIB_STACKHEAP 0x0 EMPTY 0 {}
例如:
; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************
LR_ROM1 0x20008000 0x02000000 ;load region size_region
{
ER_ROM1 0x20008000 0x00FF8000 ;load address = execution address
{
*.o (RESET, +First)
.ANY (+RO +RW +ZI)
}
RW_RAM1 0x21000000 0x01000000
{
.ANY( +ZI)
}
ARM_LIB_STACKHEAP 0x0 EMPTY 0 {}
}