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