问题解决了,不是我自己的问题,应该是官方的问题。
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
我的解决办法不美观,但是不管了,能用就行
|