📄 os_cpu_c.lis
字号:
0138 5040 sbci R21,0
013A 89E1 ldi R24,25
013C F101 movw R30,R2
013E 8083 std z+0,R24
0140 .dbline 205
0140 ; *psoft_stk-- = (INT8U)0x20; /* R20 = 0x20 */
0140 1A01 movw R2,R20
0142 4150 subi R20,1
0144 5040 sbci R21,0
0146 80E2 ldi R24,32
0148 F101 movw R30,R2
014A 8083 std z+0,R24
014C .dbline 206
014C ; *psoft_stk-- = (INT8U)0x21; /* R21 = 0x21 */
014C 1A01 movw R2,R20
014E 4150 subi R20,1
0150 5040 sbci R21,0
0152 81E2 ldi R24,33
0154 F101 movw R30,R2
0156 8083 std z+0,R24
0158 .dbline 207
0158 ; *psoft_stk-- = (INT8U)0x22; /* R22 = 0x22 */
0158 1A01 movw R2,R20
015A 4150 subi R20,1
015C 5040 sbci R21,0
015E 82E2 ldi R24,34
0160 F101 movw R30,R2
0162 8083 std z+0,R24
0164 .dbline 208
0164 ; *psoft_stk-- = (INT8U)0x23; /* R23 = 0x23 */
0164 1A01 movw R2,R20
0166 4150 subi R20,1
0168 5040 sbci R21,0
016A 83E2 ldi R24,35
016C F101 movw R30,R2
016E 8083 std z+0,R24
0170 .dbline 209
0170 ; *psoft_stk-- = (INT8U)0x24; /* R24 = 0x24 */
0170 1A01 movw R2,R20
0172 4150 subi R20,1
0174 5040 sbci R21,0
0176 84E2 ldi R24,36
0178 F101 movw R30,R2
017A 8083 std z+0,R24
017C .dbline 210
017C ; *psoft_stk-- = (INT8U)0x25; /* R25 = 0x25 */
017C 1A01 movw R2,R20
017E 4150 subi R20,1
0180 5040 sbci R21,0
0182 85E2 ldi R24,37
0184 F101 movw R30,R2
0186 8083 std z+0,R24
0188 .dbline 211
0188 ; *psoft_stk-- = (INT8U)0x26; /* R26 = 0x26 */
0188 1A01 movw R2,R20
018A 4150 subi R20,1
018C 5040 sbci R21,0
018E 86E2 ldi R24,38
0190 F101 movw R30,R2
0192 8083 std z+0,R24
0194 .dbline 212
0194 ; *psoft_stk-- = (INT8U)0x27; /* R27 = 0x27 */
0194 1A01 movw R2,R20
0196 4150 subi R20,1
0198 5040 sbci R21,0
019A 87E2 ldi R24,39
019C F101 movw R30,R2
019E 8083 std z+0,R24
01A0 .dbline 215
01A0 ; /* R28 R29:R28 is the software stack which gets ... */
01A0 ; /* R29 ... stored in the task's OS_TCB. */
01A0 ; *psoft_stk-- = (INT8U)0x30; /* R30 = 0x30 */
01A0 1A01 movw R2,R20
01A2 4150 subi R20,1
01A4 5040 sbci R21,0
01A6 80E3 ldi R24,48
01A8 F101 movw R30,R2
01AA 8083 std z+0,R24
01AC .dbline 216
01AC ; *psoft_stk-- = (INT8U)0x31; /* R31 = 0x31 */
01AC 1A01 movw R2,R20
01AE 4150 subi R20,1
01B0 5040 sbci R21,0
01B2 81E3 ldi R24,49
01B4 F101 movw R30,R2
01B6 8083 std z+0,R24
01B8 .dbline 217
01B8 ; *psoft_stk-- = (INT8U)0x00; /* RAMPZ = 0x00 */
01B8 1A01 movw R2,R20
01BA 4150 subi R20,1
01BC 5040 sbci R21,0
01BE 4424 clr R4
01C0 F101 movw R30,R2
01C2 4082 std z+0,R4
01C4 .dbline 218
01C4 ; *psoft_stk-- = (INT8U)0x80; /* SREG = Interrupts enabled */
01C4 1A01 movw R2,R20
01C6 4150 subi R20,1
01C8 5040 sbci R21,0
01CA 80E8 ldi R24,128
01CC F101 movw R30,R2
01CE 8083 std z+0,R24
01D0 .dbline 219
01D0 ; tmp = (INT16U)phard_stk;
01D0 B501 movw R22,R10
01D2 .dbline 220
01D2 ; *psoft_stk-- = (INT8U)(tmp >> 8); /* SPH */
01D2 1A01 movw R2,R20
01D4 4150 subi R20,1
01D6 5040 sbci R21,0
01D8 2B01 movw R4,R22
01DA 452C mov R4,R5
01DC 5524 clr R5
01DE F101 movw R30,R2
01E0 4082 std z+0,R4
01E2 .dbline 221
01E2 ; *psoft_stk = (INT8U) tmp; /* SPL */
01E2 FA01 movw R30,R20
01E4 6083 std z+0,R22
01E6 .dbline 222
01E6 ; return ((void *)psoft_stk);
01E6 8F01 movw R16,R30
01E8 .dbline -2
01E8 L9:
01E8 00D0 rcall pop_gset3
01EA .dbline 0 ; func end
01EA 0895 ret
01EC .dbsym r phard_stk 10 pc
01EC .dbsym r tmp 22 i
01EC .dbsym r psoft_stk 20 pc
01EC .dbsym l opt 8 i
01EC .dbsym l ptos 6 pc
01EC .dbsym r p_arg 18 pV
01EC .dbsym r task 16 pfV
01EC .dbend
01EC .dbfunc e OSTaskSwHook _OSTaskSwHook fV
.even
01EC _OSTaskSwHook::
01EC .dbline -1
01EC .dbline 243
01EC ; }
01EC ;
01EC ; /*$PAGE*/
01EC ; /*
01EC ; *********************************************************************************************************
01EC ; * TASK SWITCH HOOK
01EC ; *
01EC ; * Description: This function is called when a task switch is performed. This allows you to perform other
01EC ; * operations during a context switch.
01EC ; *
01EC ; * Arguments : none
01EC ; *
01EC ; * Note(s) : 1) Interrupts are disabled during this call.
01EC ; * 2) It is assumed that the global pointer 'OSTCBHighRdy' points to the TCB of the task that
01EC ; * will be 'switched in' (i.e. the highest priority task) and, 'OSTCBCur' points to the
01EC ; * task being switched out (i.e. the preempted task).
01EC ; *********************************************************************************************************
01EC ; */
01EC ; #if (OS_CPU_HOOKS_EN > 0) && (OS_TASK_SW_HOOK_EN > 0)
01EC ; void OSTaskSwHook (void)
01EC ; {
01EC .dbline -2
01EC L10:
01EC .dbline 0 ; func end
01EC 0895 ret
01EE .dbend
01EE .dbfunc e OSTCBInitHook _OSTCBInitHook fV
01EE ; ptcb -> R16,R17
.even
01EE _OSTCBInitHook::
01EE .dbline -1
01EE .dbline 263
01EE ; #ifdef OS_VIEW_MODULE
01EE ; OSView_TaskSwHook();
01EE ; #endif
01EE ; }
01EE ; #endif
01EE ;
01EE ; /*
01EE ; *********************************************************************************************************
01EE ; * OS_TCBInit() HOOK
01EE ; *
01EE ; * Description: This function is called by OS_TCBInit() after setting up most of the TCB.
01EE ; *
01EE ; * Arguments : ptcb is a pointer to the TCB of the task being created.
01EE ; *
01EE ; * Note(s) : 1) Interrupts may or may not be ENABLED during this call.
01EE ; *********************************************************************************************************
01EE ; */
01EE ; #if OS_CPU_HOOKS_EN > 0 && OS_VERSION > 203
01EE ; void OSTCBInitHook (OS_TCB *ptcb)
01EE ; {
01EE .dbline 264
01EE ; ptcb = ptcb; /* Prevent Compiler warning */
01EE .dbline -2
01EE L11:
01EE .dbline 0 ; func end
01EE 0895 ret
01F0 .dbsym r ptcb 16 pS[os_tcb]
01F0 .dbend
01F0 .dbfunc e OSTimeTickHook _OSTimeTickHook fV
.even
01F0 _OSTimeTickHook::
01F0 .dbline -1
01F0 .dbline 282
01F0 ; }
01F0 ; #endif
01F0 ;
01F0 ;
01F0 ; /*
01F0 ; *********************************************************************************************************
01F0 ; * TICK HOOK
01F0 ; *
01F0 ; * Description: This function is called every tick.
01F0 ; *
01F0 ; * Arguments : none
01F0 ; *
01F0 ; * Note(s) : 1) Interrupts may or may not be ENABLED during this call.
01F0 ; *********************************************************************************************************
01F0 ; */
01F0 ; #if (OS_CPU_HOOKS_EN > 0) && (OS_TIME_TICK_HOOK_EN > 0)
01F0 ; void OSTimeTickHook (void)
01F0 ; {
01F0 .dbline -2
01F0 L12:
01F0 .dbline 0 ; func end
01F0 0895 ret
01F2 .dbend
.area bss(ram, con, rel)
0000 .dbfile F:\AVRPRA~1\ucosii-port2-mega8\os_cpu_c.c
0000 _OSTaskHardStkSize::
0000 .blkb 2
0002 .dbfile F:\AVRPRA~1\ucosii-port2-mega8/os_cpu.h
0002 .dbsym e OSTaskHardStkSize _OSTaskHardStkSize i
0002 _OSTaskStkSize::
0002 .blkb 2
0004 .dbsym e OSTaskStkSize _OSTaskStkSize i
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -