⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 os_cpu_a.s

📁 这是一个嵌入式系统的ucos-ii的移植程序。
💻 S
字号:
            .global OSTickISR
            .global OSStartHighRdy
            .global OSCtxSw
            .global OSIntCtxSw


OSStartHighRdy:

	xcall   OSTaskSwHook

	xld.w 	%r1,OSRunning
	ld.w	%r2,0x1
	xld.b 	[%r1],%r2

	xld.w 	%r1,[OSTCBHighRdy]
	ld.w	%r2,[%r1]
	ld.w 	%sp,%r2
	
	popn	%r1
	ld.w	%ahr,%r0
	ld.w	%alr,%r1
	popn 	%r15

        reti                                ; Run task


OSCtxSw:
	pushn 	%r15
	ld.w	%r1,%alr
	ld.w	%r0,%ahr
	pushn	%r1

	ld.w	%r2,%sp
	xld.w 	%r3,[OSTCBCur]
	ld.w 	[%r3],%r2


	xcall	OSTaskSwHook

	xld.w	%r3,[OSTCBHighRdy]
	xld.w	%r4,OSTCBCur
	ld.w	[%r4],%r3

	xld.w	%r3,[OSPrioHighRdy]
	xld.w	%r4,OSPrioCur
	ld.b	[%r4],%r3
	
	xld.w 	%r5,[OSTCBHighRdy]
	ld.w 	%r4,[%r5]
	ld.w	%sp,%r4   

	popn	%r1
	ld.w	%ahr,%r0
	ld.w	%alr,%r1
	popn 	%r15	
	
	reti


OSIntCtxSw:

	xcall	OSTaskSwHook

	xld.w	%r3,[OSTCBHighRdy]
	xld.w	%r4,OSTCBCur
	ld.w	[%r4],%r3

	xld.w	%r3,[OSPrioHighRdy]
	xld.w	%r4,OSPrioCur
	ld.b	[%r4],%r3
	
	xld.w 	%r5,[OSTCBHighRdy]
	ld.w 	%r4,[%r5]
	ld.w	%sp,%r4

	popn	%r1
	ld.w	%ahr,%r0
	ld.w	%alr,%r1
	popn 	%r15	
	
	reti                    ; Return to new task
;


OSTickISR:
	
	pushn 	%r15
	ld.w	%r1,%alr
	ld.w	%r0,%ahr
	pushn	%r1
	
	xld.w	%r4,0x00040282
	xld.w	%r5,0x08	
	xld.b	[%r4],%r5
	
	xcall	OSIntEnter
	xld.b	%r1,[OSIntNesting]
	
	cmp	%r1,0x1
	jrne	ppp
	ld.w 	%r2,%sp
	xld.w	%r3,[OSTCBCur]
	ld.w 	[%r3],%r2
	
ppp:	
	xcall	OSTimeTick
	xcall	OSIntExit
	
	popn	%r1
	ld.w	%ahr,%r0
	ld.w	%alr,%r1
	popn 	%r15
	
	reti                                 ; Return to interrupted task

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -