请选择 进入手机版 | 继续访问电脑版

你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F429的工程标准库移植到HAL库后中断向量表异常

[复制链接]
巫妖寒心 提问时间:2023-1-12 10:42 / 未解决
微信图片_20230111183133.png 上图标准库的工程
微信图片_20230111182914.png
上图Hal库的工程

红色部分0x8008004正常来说应该也是ResetHandler吧,但是我仿真发现的却是这个结果,不太清楚会是什么原因造成的,请问有人能解答下吗?


收藏 评论6 发布时间:2023-1-12 10:42

举报

6个回答
废鱼 回答时间:2023-1-12 11:39:15
检查一下map文件中ResetHandler的地址是否和你这个图中的一样,还要注意使用的.s文件是否一致。
butterflyspring 回答时间:2023-1-12 12:22:47
个人认为,HAL库本身搭好了完整的平台架构,包括向量表,中断入口等。 所以应用移植最好是移植应用部分的代码,按照HAL库的结构调整过来,包括驱动等。 照搬标准库的模式过来(尤其是架构部分),必然有很多冲突,去修改费时费力不划算。 我记得HAL库中有模板工程,在上面添加应用代码就能用。当然前提是需要了解基本架构。
xmshao 回答时间:2023-1-12 14:05:43
你做移植的话,将基于CubeMx建立HAL库的工程,然后将标准库那边的应用文件慢慢移植过来,其它东西就不要了。在创建HAL库的工程时,中断矢量表在启动文件里按默认情况都做好了,复位向量地址一般是不会出什么错的。另外,从你的带红框的截图来看,复位向量地址应该是0x801d334,你进一步通过GOto跟踪看看是否指向了复位程序入口,并在那里调用SystemInit()函数。你确认下。其实,搞个中断看看能否正常响应很快能验证中断矢量表是否OK.
胡兆强-William HU 回答时间:2023-1-12 14:44:01
谢谢楼主分享。
1+1=2 回答时间:2023-1-13 08:28:33
你的移植有问题,你先把框架移植了,然后再移植你的APP部分,把你的程序分层
yyc1997 回答时间:2023-3-2 17:13:10

你的板子是disco的还是null的

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版