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根据不同的中断号执行不同的程序返回被中断的任务

ppt 文件大小:1.22MB