當前位置:編程學習大全網 - 網站源碼 - rtx51-tiny關於os_wait函數的相關問題?

rtx51-tiny關於os_wait函數的相關問題?

通過單步調試,基本已經能確定是死在下面這段匯編代碼裏了,但是不知道為何,誰能解釋壹下?

代碼:

os_switch_task1:

; next = current;

IF (TIMESHARING <> 0)

SETB ?RTX_TS_DELAY ; Delay Task Switching

ENDIF

MOV A,?RTX_CURRENTTASK

MOV R7,A

; while (1) {

RL A

ADD A,#?RTX?TASKSTATE?S+1

MOV R0,A

C0001:

; if (++next == MAXTASKN+1) next = 0;

INC R7

INC R0

INC R0

IF (CPU_IDLE_CODE)

MOV A,R7

CJNE A,?RTX_CURRENTTASK,NoIDLE

JBC ?RTX_ISR_SIG,NoIDLE

CPU_IDLE ; CPU sleep

NoIDLE:

ENDIF

CJNE R7,#?RTX_MAXTASKN+1,?C0003

MOV R7,#0

MOV R0,#?RTX?TASKSTATE?S+1

C0003:

; if (STATE[next].st & K_READY) break;

MOV A,@R0

JNB ACC.B_READY,?C0001

; }

  • 上一篇:用JAVA實現P2P文件***享功能的代碼
  • 下一篇:修改linux源代碼
  • copyright 2024編程學習大全網