找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

請問stm32中斷入口地址如何定義,匯編

查看數(shù): 1928 | 評論數(shù): 9 | 收藏 1
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2023-5-11 12:38

正文摘要:

進入中斷l(xiāng)ed燈關(guān)閉,中斷返回led燈。中斷入口地址不知道怎么寫。 以下是程序 RCCAPB2_ENR        EQU        0X40021018 GPIOC_CRH        EQ ...

回復(fù)

ID:883242 發(fā)表于 2023-5-14 00:24
lyonkon 發(fā)表于 2023-5-13 23:12
這個圖片是一個視頻教程的畫面。他是keil4mdk,外接的arm連接器。不是keil連接器。而且視頻是針對arm核心 ...

你看的視頻教程講的是ARMv3~v5體系結(jié)構(gòu),中斷向量表跟51類似,要放跳轉(zhuǎn)指令。而STM32是v6(Cortex-M0)或v7(Cortex-M3以及更以后的產(chǎn)品)體系,中斷向量表里面只有地址沒有指令。

你要么不看書,不看例程,現(xiàn)在稍微進步了,開始看視頻學(xué)了,又找到了錯誤的視頻,你到底是怎么做到無論怎么做都是錯的呢???
ID:883242 發(fā)表于 2023-5-13 02:13
yzwzfyz 發(fā)表于 2023-5-12 10:57
51:是到指定的地方去運行:
32:是到指定的地方取地址,再到這個地址處運行。這個指定的地方叫中斷向量。 ...

STM32有“手冊”,但是全英文的,很難翻譯,能看懂原文不需要翻譯,對于看不懂的人來說,就算是最好的翻譯,翻譯過來也看不懂,F(xiàn)在只有《cortex-m*權(quán)威指南》一本科普讀物介紹STM32匯編,請問你看的是什么“手冊”?
ID:123289 發(fā)表于 2023-5-12 10:57
51:是到指定的地方去運行:
32:是到指定的地方取地址,再到這個地址處運行。這個指定的地方叫中斷向量。
單片機復(fù)位也有多種形式:
51:是0000H處執(zhí)行。
32:是到00000004H處取4個字節(jié)作為地址,再到這個地址處運行。
6502:是到FFFEH處取2個字節(jié)作為地址,再到這個地址處運行。MSP430普通運行也如此。
MSP430:有兩個起動地址源,從哪個源起動運行,由RESET和TEST引腳上的信號決定。
這些都需要你讀CPU的手冊,CPU手冊讀多了,讀通了,你也就趨于高手了。

記。憾嘧x芯片手冊。
ID:123289 發(fā)表于 2023-5-12 10:31
不是放跳轉(zhuǎn)指令!而是放目標(biāo)地址。
由于你是用【標(biāo)號】來表址的,所以在地址位置上,寫入【標(biāo)號】即可,剩下的事讓編譯器替你做。
有些頭文件中,已經(jīng)將中斷向量的【標(biāo)號】定義好了。如果你INCLUDE了這個頭文件,那么直接引用它定義的【標(biāo)號】也可以。

STM32執(zhí)行中斷的過程序:
1、保護現(xiàn)場(與你無關(guān))。
2、從中斷源地址中取出4個字節(jié)組成一個32的地址(這個地址由你事先放置),放入PC指針中,即執(zhí)行了跳轉(zhuǎn)(至中斷響應(yīng)地址)!如果你的CPU地址不足32位,則高位自動丟棄。
3、執(zhí)行PC指向的中斷服務(wù)程序……
4、遇到RETI時,恢復(fù)現(xiàn)場(與你無關(guān)),并從現(xiàn)場中取出中斷前的地址,送入PC,即中斷返回。


ID:883242 發(fā)表于 2023-5-11 21:19
那個s文件里面有了完整的中斷處理程序,你不去看,反而像個沒頭蒼蠅一樣四處碰壁有意思嗎?照著startup_stm32f10x_md.s里面的中斷處理程序?qū)懩阕约旱闹袛嗵幚沓绦颍缓笕サ魒eak屬性即可。那個weak屬性是在連接obj文件的時候,遇到同名的兩個模塊,直接去掉有weak屬性的那個,使用沒有weak屬性的,連warning都不會有。
ID:73992 發(fā)表于 2023-5-11 20:33
yzwzfyz 發(fā)表于 2023-5-11 14:34
讀STM32的手冊,手冊上有。
從地址0起,每四個字節(jié)中的數(shù)據(jù),構(gòu)成一個32位的地址,這個地址就是中斷向量, ...

請問,EXTI0 中斷地址是0x00000058 , 中斷地址當(dāng)中放一條跳轉(zhuǎn)指令。在程序中用什么語句 或者方法才能做到 。
ID:123289 發(fā)表于 2023-5-11 14:34
讀STM32的手冊,手冊上有。
從地址0起,每四個字節(jié)中的數(shù)據(jù),構(gòu)成一個32位的地址,這個地址就是中斷向量,即這個中斷被響應(yīng)后,要去運行的地方。
ID:883242 發(fā)表于 2023-5-11 13:06
圖中你選定的那個s文件就是中斷入口。早就跟你說過了,匯編完全不通用,你要忘掉以前學(xué)過的其他平臺全部匯編知識,重新學(xué)一門新的匯編才可以。你還是用51匯編那一套寫出不堪入目完全不能用的代碼。

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表