[STM32F1] 如何处理弱中断函数并在汇编中重写?

[复制链接]
154|5
zhouyou99 发表于 2025-10-14 12:34 | 显示全部楼层 |阅读模式
我在汇编中用实际函数重写默认弱函数时遇到了问题。
在 startup.s 中有这样的代码:
.weak      SysTick_Handler
.thumb_set SysTick_Handler,Default_Handler
然后在 main.s 中定义了函数:
.global SysTick_Handler
.type  SysTick_Handler, %function
SysTick_Handler:
    push {r3, r4, r5, r6, lr}
...
如果我在 startup.s 中注释掉这两行,那么正确的 SysTick_Handler 会被触发,否则它会在 Default_Handler 中结束。不知道哪里错了?

jcky001 发表于 2025-10-14 15:45 | 显示全部楼层
链接顺序问题?
onlycook 发表于 2025-10-14 16:46 | 显示全部楼层
符号名称是不是不匹配?
powerantone 发表于 2025-10-14 19:47 | 显示全部楼层
目标文件估计没正确编译/链接
probedog 发表于 2025-10-14 20:48 | 显示全部楼层
工具链不兼容?
solty 发表于 2025-10-14 22:49 | 显示全部楼层
临时修改 startup.s,直接删除 SysTick_Handler 的弱定义,然后重新编译。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

56

主题

56

帖子

0

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