[STM32F3] STM32F373的比较器中断程序进不去

[复制链接]
4296|11
 楼主| EAMCU 发表于 2021-8-7 12:00 | 显示全部楼层 |阅读模式
比较器中断触发时卡死,用debug发现程序停在了B.这里
89772610e049866827.png
网上查询表示中断没有进入服务程序?
但是我看NVIC,中断已经设置触发了,并且是Active的
6288610e04bf615a3.png
中断服务程序也是写了的,为啥进不去呢,请问可能的原因是什么?
41439610e0516abe75.png
11845610e04f843ef9.png
yangxiaor520 发表于 2021-8-7 18:06 来自手机 | 显示全部楼层
开启了中断后,读标志应该是对应readITflag,你看下库函数。
 楼主| EAMCU 发表于 2021-8-9 11:14 | 显示全部楼层
yangxiaor520 发表于 2021-8-7 18:06
开启了中断后,读标志应该是对应readITflag,你看下库函数。

我用的LL库,函数名称有变化
现在的问题是中断服务程序进不去,根本到不了执行readflag这一步
 楼主| EAMCU 发表于 2021-8-10 17:59 | 显示全部楼层
问题解决了,不是我自己的问题,应该是官方的问题。
LL库为了F3之间通用,整了一堆别名,如下描述
/******************************************************************************/
/*  For a painless codes migration between the STM32F3xx device product       */
/*  lines, the aliases defined below are put in place to overcome the         */
/*  differences in the interrupt handlers and IRQn definitions.               */
/*  No need to update developed interrupt code when moving across             */
/*  product lines within the same STM32F3 Family                              */
/******************************************************************************/

这个会导致COMP1_2_IRQHandler被编译成COMP_IRQHandler,而检查map文件,发现COMP_IRQHandler居然在最后链接时被remove掉了,说明编译器认为该函数没有用上。
于是把startup_stm32f373xc.s文件中所有的COMP1_2_IRQHandler都改成COMP_IRQHandler,于是中断服务程序正常调用了。

因此,出现问题的原因应该是:startup_stm32f373xc.s文件命名,别名设置,编译器链接判断综合在一起除了1个BUG
我的解决办法不美观,但是不管了,能用就行
sonicll 发表于 2021-8-11 08:54 | 显示全部楼层
EAMCU 发表于 2021-8-10 17:59
问题解决了,不是我自己的问题,应该是官方的问题。
LL库为了F3之间通用,整了一堆别名,如下描述
/******* ...

中断服务函数的名字,一定要和中断向量表里的函数名字一致,如果不一致,编译器会认为这是两个不同的函数,没被调用的函数当然就被优化删除掉了
 楼主| EAMCU 发表于 2021-8-11 09:18 | 显示全部楼层
sonicll 发表于 2021-8-11 08:54
中断服务函数的名字,一定要和中断向量表里的函数名字一致,如果不一致,编译器会认为这是两个不同的函数 ...

我是一致的,原本和LL库里的startup_stm32f373xc.s里一样写的COMP1_2_IRQHandler
但是LL库多了下面这么一个东西 67324611324b695c6c.png
导致被编译成了COMP_IRQHandler,然后链接时被优化掉了
为了不改库文件,我只能把startup_stm32f373xc.s里的COMP1_2_IRQHandler手动改成COMP_IRQHandler
我看了cube库,里面的373、383没有比较器中断例程,估计官方库编写人员就没有发现这个问题
磨砂 发表于 2021-9-7 10:50 | 显示全部楼层
有中断源了吗
八层楼 发表于 2021-9-7 10:55 | 显示全部楼层
请问能进入其他中断吗
观海 发表于 2021-9-7 10:58 | 显示全部楼层
中断使能了没有
guanjiaer 发表于 2021-9-7 11:01 | 显示全部楼层
需要解除屏蔽吗?
heimaojingzhang 发表于 2021-9-7 11:06 | 显示全部楼层
是的 要吧相关的屏蔽解除
keaibukelian 发表于 2021-9-7 11:09 | 显示全部楼层
好像需要修改的地方比较多
您需要登录后才可以回帖 登录 | 注册

本版积分规则

38

主题

396

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部