📄 os_cpu_c.lis
字号:
00F8 .dbline 99
00F8 ; *stk-- = (INT8U)(tmp >> 8);
00F8 1A01 movw R2,R20
00FA 4150 subi R20,1
00FC 5040 sbci R21,0
00FE 2B01 movw R4,R22
0100 452C mov R4,R5
0102 5524 clr R5
0104 F101 movw R30,R2
0106 4082 std z+0,R4
0108 .dbline 100
0108 ; *stk-- = (INT8U)0x18;
0108 1A01 movw R2,R20
010A 4150 subi R20,1
010C 5040 sbci R21,0
010E 88E1 ldi R24,24
0110 F101 movw R30,R2
0112 8083 std z+0,R24
0114 .dbline 101
0114 ; *stk-- = (INT8U)0x19;
0114 1A01 movw R2,R20
0116 4150 subi R20,1
0118 5040 sbci R21,0
011A 89E1 ldi R24,25
011C F101 movw R30,R2
011E 8083 std z+0,R24
0120 .dbline 102
0120 ; *stk-- = (INT8U)0x20;
0120 1A01 movw R2,R20
0122 4150 subi R20,1
0124 5040 sbci R21,0
0126 80E2 ldi R24,32
0128 F101 movw R30,R2
012A 8083 std z+0,R24
012C .dbline 103
012C ; *stk-- = (INT8U)0x21;
012C 1A01 movw R2,R20
012E 4150 subi R20,1
0130 5040 sbci R21,0
0132 81E2 ldi R24,33
0134 F101 movw R30,R2
0136 8083 std z+0,R24
0138 .dbline 104
0138 ; *stk-- = (INT8U)0x22;
0138 1A01 movw R2,R20
013A 4150 subi R20,1
013C 5040 sbci R21,0
013E 82E2 ldi R24,34
0140 F101 movw R30,R2
0142 8083 std z+0,R24
0144 .dbline 105
0144 ; *stk-- = (INT8U)0x23;
0144 1A01 movw R2,R20
0146 4150 subi R20,1
0148 5040 sbci R21,0
014A 83E2 ldi R24,35
014C F101 movw R30,R2
014E 8083 std z+0,R24
0150 .dbline 106
0150 ; *stk-- = (INT8U)0x24;
0150 1A01 movw R2,R20
0152 4150 subi R20,1
0154 5040 sbci R21,0
0156 84E2 ldi R24,36
0158 F101 movw R30,R2
015A 8083 std z+0,R24
015C .dbline 107
015C ; *stk-- = (INT8U)0x25;
015C 1A01 movw R2,R20
015E 4150 subi R20,1
0160 5040 sbci R21,0
0162 85E2 ldi R24,37
0164 F101 movw R30,R2
0166 8083 std z+0,R24
0168 .dbline 108
0168 ; *stk-- = (INT8U)0x26;
0168 1A01 movw R2,R20
016A 4150 subi R20,1
016C 5040 sbci R21,0
016E 86E2 ldi R24,38
0170 F101 movw R30,R2
0172 8083 std z+0,R24
0174 .dbline 109
0174 ; *stk-- = (INT8U)0x27;
0174 1A01 movw R2,R20
0176 4150 subi R20,1
0178 5040 sbci R21,0
017A 87E2 ldi R24,39
017C F101 movw R30,R2
017E 8083 std z+0,R24
0180 .dbline 111
0180 ; // the heap pointer Y=R29:R28 will not be stored
0180 ; *stk-- = (INT8U)0x30;
0180 1A01 movw R2,R20
0182 4150 subi R20,1
0184 5040 sbci R21,0
0186 80E3 ldi R24,48
0188 F101 movw R30,R2
018A 8083 std z+0,R24
018C .dbline 112
018C ; *stk-- = (INT8U)0x31;
018C 1A01 movw R2,R20
018E 4150 subi R20,1
0190 5040 sbci R21,0
0192 81E3 ldi R24,49
0194 F101 movw R30,R2
0196 8083 std z+0,R24
0198 .dbline 113
0198 ; *stk-- = (INT8U)0x3B;
0198 1A01 movw R2,R20
019A 4150 subi R20,1
019C 5040 sbci R21,0
019E 8BE3 ldi R24,59
01A0 F101 movw R30,R2
01A2 8083 std z+0,R24
01A4 .dbline 114
01A4 ; *stk-- = (INT8U)0x80; //SREG = Interrupts enabled
01A4 1A01 movw R2,R20
01A6 4150 subi R20,1
01A8 5040 sbci R21,0
01AA 80E8 ldi R24,128
01AC F101 movw R30,R2
01AE 8083 std z+0,R24
01B0 .dbline 116
01B0 ;
01B0 ; tmp = (INT16U)(stks);
01B0 B501 movw R22,R10
01B2 .dbline 117
01B2 ; *stk-- = (INT8U)(tmp >> 8);
01B2 1A01 movw R2,R20
01B4 4150 subi R20,1
01B6 5040 sbci R21,0
01B8 2B01 movw R4,R22
01BA 452C mov R4,R5
01BC 5524 clr R5
01BE F101 movw R30,R2
01C0 4082 std z+0,R4
01C2 .dbline 118
01C2 ; *stk = (INT8U)(tmp);
01C2 FA01 movw R30,R20
01C4 6083 std z+0,R22
01C6 .dbline 119
01C6 ; return ((void *)stk);
01C6 8F01 movw R16,R30
01C8 .dbline -2
01C8 L3:
01C8 0E940000 xcall pop_gset3
01CC .dbline 0 ; func end
01CC 0895 ret
01CE .dbsym r stks 10 pc
01CE .dbsym r tmp 22 i
01CE .dbsym r stk 20 pc
01CE .dbsym l opt 8 i
01CE .dbsym l ptos 6 pc
01CE .dbsym r pdata 18 pV
01CE .dbsym r task 16 pfV
01CE .dbend
01CE .dbfunc e OSTaskCreateHook _OSTaskCreateHook fV
01CE .dbstruct 0 10 .2
01CE .dbfield 0 OSFlagNodeNext pV
01CE .dbfield 2 OSFlagNodePrev pV
01CE .dbfield 4 OSFlagNodeTCB pV
01CE .dbfield 6 OSFlagNodeFlagGrp pV
01CE .dbfield 8 OSFlagNodeFlags c
01CE .dbfield 9 OSFlagNodeWaitType c
01CE .dbend
01CE .dbstruct 0 18 os_tcb
01CE .dbfield 0 OSTCBStkPtr pc
01CE .dbfield 2 OSTCBNext pS[os_tcb]
01CE .dbfield 4 OSTCBPrev pS[os_tcb]
01CE .dbfield 6 OSTCBFlagNode pS[.2]
01CE .dbfield 8 OSTCBFlagsRdy c
01CE .dbfield 9 OSTCBDly i
01CE .dbfield 11 OSTCBStat c
01CE .dbfield 12 OSTCBPrio c
01CE .dbfield 13 OSTCBX c
01CE .dbfield 14 OSTCBY c
01CE .dbfield 15 OSTCBBitX c
01CE .dbfield 16 OSTCBBitY c
01CE .dbfield 17 OSTCBDelReq c
01CE .dbend
01CE ; ptcb -> R16,R17
.even
01CE _OSTaskCreateHook::
01CE .dbline -1
01CE .dbline 136
01CE ; }
01CE ;
01CE ; #if OS_CPU_HOOKS_EN
01CE ; /*
01CE ; ********************************************************************************
01CE ; * TASK CREATION HOOK
01CE ; *
01CE ; * Description: This function is called when a task is created.
01CE ; *
01CE ; * Arguments:
01CE ; * ptcb is a pointer to the task control block of the task being created.
01CE ; *
01CE ; * Note(s): 1) Interrupts are disabled during this call.
01CE ; ********************************************************************************
01CE ; */
01CE ; void OSTaskCreateHook (OS_TCB *ptcb)
01CE ; {
01CE .dbline 137
01CE ; ptcb = ptcb; // Prevent compiler warning
01CE .dbline -2
01CE L4:
01CE .dbline 0 ; func end
01CE 0895 ret
01D0 .dbsym r ptcb 16 pS[os_tcb]
01D0 .dbend
01D0 .dbfunc e OSTaskDelHook _OSTaskDelHook fV
01D0 ; ptcb -> R16,R17
.even
01D0 _OSTaskDelHook::
01D0 .dbline -1
01D0 .dbline 154
01D0 ; }
01D0 ;
01D0 ;
01D0 ; /*
01D0 ; ********************************************************************************
01D0 ; * TASK DELETION HOOK
01D0 ; *
01D0 ; * Description: This function is called when a task is deleted.
01D0 ; *
01D0 ; * Arguments:
01D0 ; * ptcb is a pointer to the task control block of the task being deleted.
01D0 ; *
01D0 ; * Note(s): 1) Interrupts are disabled during this call.
01D0 ; ********************************************************************************
01D0 ; */
01D0 ; void OSTaskDelHook (OS_TCB *ptcb)
01D0 ; {
01D0 .dbline 155
01D0 ; ptcb = ptcb; // Prevent compiler warning
01D0 .dbline -2
01D0 L5:
01D0 .dbline 0 ; func end
01D0 0895 ret
01D2 .dbsym r ptcb 16 pS[os_tcb]
01D2 .dbend
01D2 .dbfunc e OSTaskSwHook _OSTaskSwHook fV
.even
01D2 _OSTaskSwHook::
01D2 .dbline -1
01D2 .dbline 177
01D2 ; }
01D2 ;
01D2 ; /*
01D2 ; ********************************************************************************
01D2 ; * TASK SWITCH HOOK
01D2 ; *
01D2 ; * Description:
01D2 ; * This function is called when a task switch is performed. This allows you to
01D2 ; * perform other operations during a context switch.
01D2 ; *
01D2 ; * Arguments: none
01D2 ; *
01D2 ; * Note(s):
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -