CH32V203 的免表中斷和mtvec的配置相互沖突嗎?

您好:

為了編寫B(tài)ootloader程序,我的程序計(jì)劃完全采用免表中斷,并取消使用中斷向量表。image.png

image.png

按照說明,我將mtevc的低2位設(shè)置為全0:

image.png


根據(jù)調(diào)試信息,將mtvec設(shè)置為函數(shù)allPficEnter的地址

接著,我啟動了串口2中斷,調(diào)試可以看到,這段代碼正確運(yùn)行:

image.png

但是當(dāng)我發(fā)送數(shù)據(jù)時,程序立即進(jìn)入之前設(shè)置的中斷向量

image.png

此時讀到的mcause為0x36 = 54 既串口2中斷

image.png

image.png


請問,免表中斷是否要求mtvec必須配置成中斷向量表?

總結(jié)上述問題:

我將mtvec 設(shè)置為 0x7C (也就是allPficEnter()函數(shù)的地址,最低2byte為 0 0 ),然后啟動串口2的免表中斷,

發(fā)現(xiàn)免表中斷不起作用,程序進(jìn)入了allPficEnter()函數(shù)。

在函數(shù)中,讀到mcause值為0x80000036 也就是十進(jìn)制的54號中斷(串口2的中斷)

這說明免表中斷在這種情況下失效了。




經(jīng)過驗(yàn)證,只需要下圖中的改動,就能讓程序正確運(yùn)行,進(jìn)入免表中斷:

image.png

這些改動將中斷從所有中斷共用一個入口改為了使用中斷向量表并自動跳轉(zhuǎn)。


請問免表中斷和mtvec配置為統(tǒng)一中斷服務(wù)函數(shù)是否相互沖突?

只有mtvec配置為向量表的情況,才能使用免表中斷?
能否mtvec配置為統(tǒng)一入口,同時使用免表中斷?


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频