对于STM32的FWLib,个人觉得不太满意,但还算可用,就懒得去自己做库了。
原来IAR5.20下,使用'Mulit-file Compilation' + 'Discard Unused Publics'总是有问题,连USB都无法正确通信。5.30也同样如此,花了一些时间找到了原因和解决方法。
问题的现象:
当优化等级过高时,某些中断无法正常触发(我这里碰到的是USB中断)。
责任方:
找到原因后,完全确定是ST的FWLib中的IAR示例代码的Bug,确切地说是stm32f10x_vector.c中的Bug。
Bug引发原因:
当优化等级过高的时候,中断向量被优化。
图片(中断向量位于0x08002000):
解决方法:
找到原因了,解决起来就很简单了。
以向ST的ARM部门提出这个问题,那个老兄可能出差,要到2月8号回到Office后再处理。到时候公布,不过,估计应该已经有人发现了这个Bug了,还算比较明显的(如果有一定经验的话)。
文章评论(0条评论)
登录后参与讨论