手写rtos视频记录

177 阅读1分钟

视频链接: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出去,否则显示未定义

用到的函数:
在这里插入图片描述