背景
参与一个项目,遇到Timebase Source从SysTick切换到定时器TIMx发生Default_Handler,向各位求助,之前都是解答别人的疑难杂症,这次抛出这个问题,希望ST的技术支持也能看到,给个思路。
实验情况
总体情况
硬件上采用st-link v2,使用Serial Wire,连接板卡STM32L151CB,时钟配置使用内部高速时钟倍频到32MHz,使用FreeRTOS,为了避免和FreeRTOS共用时钟,这里切换Timebase Source从SysTick切换到定时器TIMx,代码烧录进去出现Default_Handler。
具体配置
STM32CubeIDE版本
Version: 1.17.0
Build: 23558_20241125_2245 (UTC)
时钟配置
Timebase Source从SysTick切换到定时器TIMx
FreeRTOS配置保持默认。
仿真调试
单步调试中发现,程序可以跑到下图中,之后就进入了异常状态,
最后程序跑死到这里
网上一些解决思路
网上也自己搜索排查了这个问题,主要是通修改代码生成的中断如下图所示
这个方法我尝试了,也没有效果,网友之所以有效可能是因为使用的STM32CubeIDE版本太低了,高版本都直接默认勾选了。
其他思考
1.我之前在STM32F4上Timebase Source从SysTick切换到定时器TIMx,没有问题
2.这个问题目前比较大的怀疑对象是STM32CubeIDE生成的代码问题,可能没有处理好中断,但是又找不到思路,希望ST的技术支持可以看到,有需要的话我可以上传工程。