?? taskisr.lst
字號:
C51 COMPILER V8.02 TASKISR 11/05/2004 10:43:36 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE TASKISR
OBJECT MODULE PLACED IN TASKISR.OBJ
COMPILER INVOKED BY: D:\C51\BIN\C51.EXE TASKISR.C BROWSE DEBUG OBJECTEXTEND SRC(.\TASKISR.SRC)
line level source
1 /********************************************
2 嵌入式系統 小型操作系統
3 作者:汪普宏
4 制作日期:2006.9
5 *********************************************/
6
7 #include "os.h"
8 #include"OS_Mail.h"
9 #include "OS_Memory.h"
10 /****************************************
11 模塊功能:任務級任務調度
12 模塊接口:當前任務優先級,任務掛起延遲時間
13 調用者:任務
14 返回值: 無
15 *****************************************/
16
17 void OSTask_TimeDal(uchar TimeDal) //任務級任務切換函數
18 {
19 1 ISR_num++;
20 1 #pragma ASM
21 1 PUSH ACC
22 1 PUSH B
23 1 PUSH DPH
24 1 PUSH DPL
25 1 PUSH PSW
26 1 MOV PSW, 0
27 1 PUSH AR0
28 1 PUSH AR1
29 1 PUSH AR2
30 1 PUSH AR3
31 1 PUSH AR4
32 1 PUSH AR5
33 1 PUSH AR6
34 1 PUSH AR7
35 1 #pragma ENDASM
36 1 OSPCB[Prio].timedal=TimeDal;
37 1 if(Prio!=FREE_TASK)
38 1 {
39 2 if(TimeDal>0)
40 2 {
41 3 OSPCB[Prio].flg=WAIT_TIME; //任務因時間延遲掛起
42 3 }
43 2 else
44 2 {
45 3 OSPCB[Prio].flg=WAIT_MSG; //非空閑任務應因等待消息掛起
46 3 }
47 2 if((OSRdyTab[Prio>>3]&=~OSMapTab[Prio&0x07])==0) //從就緒表中刪除該任務
48 2 {
49 3 OSRdyGrp&=~OSMapTab[Prio>>3];
50 3 }
51 2 OSISR_Task_Sched();
52 2 }
53 1 #pragma ASM
54 1 POP AR7
55 1 POP AR6
C51 COMPILER V8.02 TASKISR 11/05/2004 10:43:36 PAGE 2
56 1 POP AR5
57 1 POP AR4
58 1 POP AR3
59 1 POP AR2
60 1 POP AR1
61 1 POP AR0
62 1 POP PSW
63 1 POP DPL
64 1 POP DPH
65 1 POP B
66 1 POP ACC
67 1 DEC ISR_num
68 1 RETI
69 1 #pragma ENDASM
70 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 185 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -