OS_CPU_AASM编写-μC/OS-II嵌入式系统移植
SoftwareInterrupt
LDR SP, StackSvc
STMFD SP!, {R0-R3, R12, LR}
MOV R1, SP
MRS R3, SPSR
TST R3, #T_bit
LDRNEH R0, [LR,#-2]
BICNE R0, #0xff00
LDREQ R0, [LR,#-4]
BICEQ R0, #0xFF000
CMP R0, #1
LDRLO PC, =OSIntCtxSw
LDREQ PC, =__OSStartHighRdy
BL SWI_Exception
LDMFD SP!, {R0-R3, R12, PC}^中断号执行程序0进行任务切换1启动多任务环境,运行就绪的最高优先级任务其它软件中断服务函数保护被中断的现场将要用到的寄存器压栈判断中断前的指令集类型从产生软件中断的指令中提取中断号ARM Thumb根据不同的中断号执行不同的程序返回被中断的任务
1.22MB
文件大小:
评论区