视频链接:www.bilibili.com/video/BV19L…
ARM架构过程调用的标准是AAPCS:
参数超过4个变量,用栈传递,否则是R0-R3
C函数:
R0\R1\R2\R3 随意使用,无需保存
R4~R11 先保存\入栈,用完要恢复
故意使用R4:
register in sum asm(“r4”);
中断处理过程:
1、保存:
硬件自动保存以下寄存器
上图,LR是被中断打断的函数所在的地址
2、处理:
保证不破坏R4-R11
3、恢复现场:
硬件恢复R0-R3
启动任务:
上面函数的形参改为void SysTick_Handler(int lr),如下SysTick_Handler_asm PROC中,LR是一个用来触发硬件中断返回的特殊值(只在中断瞬间)
汇编在start.s里面写
在汇编里面写好后,要EXPORT出去,否则显示未定义
用到的函数: