找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

请问stm32中断入口地址如何定义,汇编

查看数: 1899 | 评论数: 9 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2023-5-11 12:38

正文摘要:

进入中断led灯关闭,中断返回led灯。中断入口地址不知道怎么写。 以下是程序 RCCAPB2_ENR        EQU        0X40021018 GPIOC_CRH        EQ ...

回复

ID:883242 发表于 2023-5-14 00:24
lyonkon 发表于 2023-5-13 23:12
这个图片是一个视频教程的画面。他是keil4mdk,外接的arm连接器。不是keil连接器。而且视频是针对arm核心 ...

你看的视频教程讲的是ARMv3~v5体系结构,中断向量表跟51类似,要放跳转指令。而STM32是v6(Cortex-M0)或v7(Cortex-M3以及更以后的产品)体系,中断向量表里面只有地址没有指令。

你要么不看书,不看例程,现在稍微进步了,开始看视频学了,又找到了错误的视频,你到底是怎么做到无论怎么做都是错的呢???
ID:883242 发表于 2023-5-13 02:13
yzwzfyz 发表于 2023-5-12 10:57
51:是到指定的地方去运行:
32:是到指定的地方取地址,再到这个地址处运行。这个指定的地方叫中断向量。 ...

STM32有“手册”,但是全英文的,很难翻译,能看懂原文不需要翻译,对于看不懂的人来说,就算是最好的翻译,翻译过来也看不懂。现在只有《cortex-m*权威指南》一本科普读物介绍STM32汇编,请问你看的是什么“手册”?
ID:123289 发表于 2023-5-12 10:57
51:是到指定的地方去运行:
32:是到指定的地方取地址,再到这个地址处运行。这个指定的地方叫中断向量。
单片机复位也有多种形式:
51:是0000H处执行。
32:是到00000004H处取4个字节作为地址,再到这个地址处运行。
6502:是到FFFEH处取2个字节作为地址,再到这个地址处运行。MSP430普通运行也如此。
MSP430:有两个起动地址源,从哪个源起动运行,由RESET和TEST引脚上的信号决定。
这些都需要你读CPU的手册,CPU手册读多了,读通了,你也就趋于高手了。

记住:多读芯片手册。
ID:123289 发表于 2023-5-12 10:31
不是放跳转指令!而是放目标地址。
由于你是用【标号】来表址的,所以在地址位置上,写入【标号】即可,剩下的事让编译器替你做。
有些头文件中,已经将中断向量的【标号】定义好了。如果你INCLUDE了这个头文件,那么直接引用它定义的【标号】也可以。

STM32执行中断的过程序:
1、保护现场(与你无关)。
2、从中断源地址中取出4个字节组成一个32的地址(这个地址由你事先放置),放入PC指针中,即执行了跳转(至中断响应地址)!如果你的CPU地址不足32位,则高位自动丢弃。
3、执行PC指向的中断服务程序……
4、遇到RETI时,恢复现场(与你无关),并从现场中取出中断前的地址,送入PC,即中断返回。


ID:883242 发表于 2023-5-11 21:19
那个s文件里面有了完整的中断处理程序,你不去看,反而像个没头苍蝇一样四处碰壁有意思吗?照着startup_stm32f10x_md.s里面的中断处理程序写你自己的中断处理程序,然后去掉weak属性即可。那个weak属性是在连接obj文件的时候,遇到同名的两个模块,直接去掉有weak属性的那个,使用没有weak属性的,连warning都不会有。
ID:73992 发表于 2023-5-11 20:33
yzwzfyz 发表于 2023-5-11 14:34
读STM32的手册,手册上有。
从地址0起,每四个字节中的数据,构成一个32位的地址,这个地址就是中断向量, ...

请问,EXTI0 中断地址是0x00000058 , 中断地址当中放一条跳转指令。在程序中用什么语句 或者方法才能做到 。
ID:123289 发表于 2023-5-11 14:34
读STM32的手册,手册上有。
从地址0起,每四个字节中的数据,构成一个32位的地址,这个地址就是中断向量,即这个中断被响应后,要去运行的地方。
ID:883242 发表于 2023-5-11 13:06
图中你选定的那个s文件就是中断入口。早就跟你说过了,汇编完全不通用,你要忘掉以前学过的其他平台全部汇编知识,重新学一门新的汇编才可以。你还是用51汇编那一套写出不堪入目完全不能用的代码。

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表