您的位置 首页 数字

STM32单片机是怎样履行中止函数中的使用的

STM32单片机是怎样执行中断函数中的应用的-ST提供的固件库当中,有提供一个stm32f10x_it.c文件,打开之后会发现里面放的都是些空函数,但是名字都是“xxx_Handler()”格式,需要使用某个中断的时候,在代码中使能该中断,并到这个文件中将中断服务函数添加上,就可以了。

STM32单片机的编程傍边,中止函数的称号都是xxx_IRQHandler格局的。那当编译程序的时分是怎样知道这是一个中止函数的呢?

每个中止都是有进口地址的。程序在履行进程中遇到中止的时分,会先判别这个中止的类型,依据类型再到中止向量表中查找,找到之后,依据表中指明的地址,程序就跳到该地址开端履行代码。

ST供给的固件库傍边,有供给一个stm32f10x_it.c文件,翻开之后会发现里边放的都是些空函数,可是姓名都是“xxx_Handler()”格局,需求运用某个中止的时分,在代码中使能该中止,并到这个文件中将中止服务函数添加上,就能够了。

而这些姓名便是一个个的中止函数进口地址。在发动代码中便有这些界说。如下图所示:

能够看到,里边界说了一个个称号,这些称号便是中止函数进口的地址,用这些称号来替代了详细的地址值。

其间DCD是一条数据界说伪指令,用于分配一片接连的字存储单元并用指定的数据初始化。当装备好相应外设的操控寄存器中止使能时,当产生中止(反常)时,该反常被Cortex-M3内核承受,对应的反常Handler就会履行。而这个呼应进程都是硬件来完结的,当然为了决议Handler的进口地址,Cortex-M3运用了“向量表查表机制”。startup_stm32f10x_hd.s发动文件现已为相应外设的中止服务函数赋予了相应的地址。所以在反常产生后,CPU进入反常形式,一起程序计数器PC主动指向反常进口地址,从而履行中止服务函数中的使用。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/shuzi/346166.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部