|
今天在玩STM32的外部中斷的時(shí)候遇到下邊問題:
compiling stm32f10x_nvic.c...
linking...
EXIT.axf: Error: L6218E: Undefined symbol __BASEPRICONFIG (referred from stm32f10x_nvic.o).
EXIT.axf: Error: L6218E: Undefined symbol __GetBASEPRI (referred from stm32f10x_nvic.o).
EXIT.axf: Error: L6218E: Undefined symbol __RESETFAULTMASK (referred from stm32f10x_nvic.o).
EXIT.axf: Error: L6218E: Undefined symbol __RESETPRIMASK (referred from stm32f10x_nvic.o).
EXIT.axf: Error: L6218E: Undefined symbol __SETFAULTMASK (referred from stm32f10x_nvic.o).
EXIT.axf: Error: L6218E: Undefined symbol __SETPRIMASK (referred from stm32f10x_nvic.o).
Target not created
先一開始覺得是不是stm32f10x_conf.h里面沒有把NVIC定義,后來發(fā)現(xiàn)定義了。那為什么還會(huì)有問題咧?打開stm32f10x_nvic.c文件,在里邊看見這個(gè)函數(shù),里邊調(diào)用函數(shù)了__RESETPRIMASK();可__RESETPRIMASK()的來源在哪兒,
void NVIC_RESETPRIMASK(void)
{
__RESETPRIMASK();
}
用代碼閱讀器查找了一下,它們?cè)赾ortexm3_macro.h中聲明了,那它就應(yīng)該在cortexm3_macro.c中,可STM32的庫中沒有cortexm3_macro.c文件,但找到了一個(gè)cortexm3_macro.s文件,打開cortexm3_macro.s文件,看到:
EXPORT __RESETPRIMASK
EXPORT __SETPRIMASK
EXPORT __READ_PRIMASK
EXPORT __RESETFAULTMASK等函數(shù),終于找到地方了,呵呵、、、還有.s文件一般是啟動(dòng)文件,所以就把cortexm3_macro.s文件加到工程啟動(dòng)文件的地方:
這樣就好了!
|
|