STM32外部中斷的錯誤

2021-07-04 15:39:28 字數 1644 閱讀 5987

今天在玩stm32的外部中斷的時候遇到下邊問題:

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定義,後來發現定義了。那為什麼還會有問題咧?開啟 stm32f10x_nvic.c檔案,在裡邊看見這個函式,裡邊呼叫函式了__resetprimask();可__resetprimask()的來 源在哪兒,

void nvic_resetprimask(void)

用**閱讀器查詢了一下,它們在cortexm3_macro.h中宣告了,那它就應該在cortexm3_macro.c中,可stm32的庫中沒有 cortexm3_macro.c檔案,但找到了乙個cortexm3_macro.s檔案,開啟cortexm3_macro.s檔案,看到:

export __resetprimask

export __setprimask

export __read_primask

export __resetfaultmask 等函式,終於找到地方了,呵呵、、、還有.s檔案一般是啟動檔案,所以就把cortexm3_macro.s檔案加到工程啟動檔案的地方:

這樣就好了!

STM32外部中斷

一 基本概念 arm coetex m3核心共支援256個中斷,其中16個內部中斷,240個外部中斷和可程式設計的256級中斷優先順序的設定。stm32目前支援的中斷共84個 16個內部 68個外部 還有16級可程式設計的中斷優先順序的設定,僅使用中斷優先順序設定8bit中的高4位。stm32可支援...

stm32外部中斷

外部中斷程式配置流程 rcc 時鐘配置 void rcc configuration void 時鐘配置 開啟各路時鐘 rcc apb2periphclockcmd rcc apb2periph usart1 rcc apb2periph gpioa rcc apb2periph afio,enab...

stm32外部中斷

好久沒玩微控制器了,最近閒著沒事想拿出來玩玩,沒想到乙個stm32的外部中斷讓我花費了兩天時間,好的的挫折啊!終於下午除錯成功,下面來說一下我的除錯之路吧!硬體就是兩個按鍵,四個led,led事共陽極接法,按鍵一端接地一端接gpio口,通過按鍵中斷控制led。程式寫好以後發現始終無法進入中斷,開始查...