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

📄 os_tickisr.asm

📁 f2812的初始化构架
💻 ASM
字号:
.page
.text
_OSTickISR:
	.ref _OSTimeTick
	.ref _OSIntEnter
    .ref _OSTCBCur
    .ref _OSIntExit
    .ref _OSIntCtxFlag
    .ref _OSIntCtxSwExe
  	.global _OSTickISR	
    

	PUSH	XAR7
	PUSH	XAR6
    PUSH	XAR5
	PUSH	XAR4
	PUSH	XAR3
	PUSH	XAR2
	PUSH	AR1H:AR0H
	PUSH  	XT 
	PUSH    RPC

    MOV       AL,  #0X01
	MOV       *(0:0xce1), @AL       ;手动清除中断应答寄存器中标志位
	
	;MOVW      DP,#_OSIntNesting     ;提示uc/OS-II 进入中断
    ;INC       @_OSIntNesting        ;     
    
    LCR _OSIntEnter
    LCR _OSTimeTick    
    LCR _OSIntExit
    
                                     ;判断是否有抢占发生,有则进行任务切换
    CMP @_OSIntCtxFlag, #1		     ;并保存本次任务的现场
    SB  BACK, NEQ
    
    MOVW     DP,#_OSTCBCur	          ; OSTCBCur->OSTCBStkPtr = SP
    MOVL     XAR4,@_OSTCBCur          ; 
    MOV      AL,SP     
    MOV      *+XAR4[0],AL             ; SAVE the context
    
    SUB @_OSIntCtxFlag, #1            ;CLEAR THE _OSIntCtxFlag
    LC       _OSIntCtxSwExe
 ;  NASP

    
BACK:  
    POP  RPC   
    POP	XT
    POP AR1H:AR0H
    POP	XAR2
    POP	XAR3
    POP	XAR4
    POP	XAR5
    POP	XAR6
    POP	XAR7
    IRET
	.end

⌨️ 快捷键说明

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