ST意法半导体
直播中

刘浩

7年用户 1110经验值
私信 关注
[问答]

请问如何在汇编程序中正确处理弱中断函数和覆盖?

我在弱默认函数的实现和汇编器中用真实函数覆盖方面遇到问题。
我在 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 中结束。我显然做错了什么?
谢谢。


回帖(1)

李姜芫

2022-12-2 16:20:34

  •   .syntax unified
  •   .cpu cortex-m7
  •   .fpu softvfp
  •   .thumb

  • ...

  •   .global SysTick_Handler
  •   .section  .text.SysTick_Handler,"ax",%progbits
  •   .type  SysTick_Handler, %function


  • SysTick_Handler:
  •     push {r3, r4, r5, r6, lr}
  • ...
  •   .size  SysTick_Handler, .-SysTick_Handler
举报

更多回帖

发帖
×
20
完善资料,
赚取积分