📄 os_cpu_c.lis
字号:
0096 8083 std z+0,R24
0098 ; *psoft_stk-- = (INT8U)0x06; /* R6 = 0x06 */
0098 1A01 movw R2,R20
009A 4150 subi R20,1
009C 5040 sbci R21,0
009E 86E0 ldi R24,6
00A0 F101 movw R30,R2
00A2 8083 std z+0,R24
00A4 ; *psoft_stk-- = (INT8U)0x07; /* R7 = 0x07 */
00A4 1A01 movw R2,R20
00A6 4150 subi R20,1
00A8 5040 sbci R21,0
00AA 87E0 ldi R24,7
00AC F101 movw R30,R2
00AE 8083 std z+0,R24
00B0 ; *psoft_stk-- = (INT8U)0x08; /* R8 = 0x08 */
00B0 1A01 movw R2,R20
00B2 4150 subi R20,1
00B4 5040 sbci R21,0
00B6 88E0 ldi R24,8
00B8 F101 movw R30,R2
00BA 8083 std z+0,R24
00BC ; *psoft_stk-- = (INT8U)0x09; /* R9 = 0x09 */
00BC 1A01 movw R2,R20
00BE 4150 subi R20,1
00C0 5040 sbci R21,0
00C2 89E0 ldi R24,9
00C4 F101 movw R30,R2
00C6 8083 std z+0,R24
00C8 ; *psoft_stk-- = (INT8U)0x10; /* R10 = 0x10 */
00C8 1A01 movw R2,R20
00CA 4150 subi R20,1
00CC 5040 sbci R21,0
00CE 80E1 ldi R24,16
00D0 F101 movw R30,R2
00D2 8083 std z+0,R24
00D4 ; *psoft_stk-- = (INT8U)0x11; /* R11 = 0x11 */
00D4 1A01 movw R2,R20
00D6 4150 subi R20,1
00D8 5040 sbci R21,0
00DA 81E1 ldi R24,17
00DC F101 movw R30,R2
00DE 8083 std z+0,R24
00E0 ; *psoft_stk-- = (INT8U)0x12; /* R12 = 0x12 */
00E0 1A01 movw R2,R20
00E2 4150 subi R20,1
00E4 5040 sbci R21,0
00E6 82E1 ldi R24,18
00E8 F101 movw R30,R2
00EA 8083 std z+0,R24
00EC ; *psoft_stk-- = (INT8U)0x13; /* R13 = 0x13 */
00EC 1A01 movw R2,R20
00EE 4150 subi R20,1
00F0 5040 sbci R21,0
00F2 83E1 ldi R24,19
00F4 F101 movw R30,R2
00F6 8083 std z+0,R24
00F8 ; *psoft_stk-- = (INT8U)0x14; /* R14 = 0x14 */
00F8 1A01 movw R2,R20
00FA 4150 subi R20,1
00FC 5040 sbci R21,0
00FE 84E1 ldi R24,20
0100 F101 movw R30,R2
0102 8083 std z+0,R24
0104 ; *psoft_stk-- = (INT8U)0x15; /* R15 = 0x15 */
0104 1A01 movw R2,R20
0106 4150 subi R20,1
0108 5040 sbci R21,0
010A 85E1 ldi R24,21
010C F101 movw R30,R2
010E 8083 std z+0,R24
0110 ; tmp = (INT16U)p_arg;
0110 B901 movw R22,R18
0112 ; *psoft_stk-- = (INT8U)tmp; /* 'p_arg' passed in R17:R16 */
0112 1A01 movw R2,R20
0114 4150 subi R20,1
0116 5040 sbci R21,0
0118 F101 movw R30,R2
011A 6083 std z+0,R22
011C ; *psoft_stk-- = (INT8U)(tmp >> 8);
011C 1A01 movw R2,R20
011E 4150 subi R20,1
0120 5040 sbci R21,0
0122 2B01 movw R4,R22
0124 452C mov R4,R5
0126 5524 clr R5
0128 F101 movw R30,R2
012A 4082 std z+0,R4
012C ; *psoft_stk-- = (INT8U)0x18; /* R18 = 0x18 */
012C 1A01 movw R2,R20
012E 4150 subi R20,1
0130 5040 sbci R21,0
0132 88E1 ldi R24,24
0134 F101 movw R30,R2
0136 8083 std z+0,R24
0138 ; *psoft_stk-- = (INT8U)0x19; /* R19 = 0x19 */
0138 1A01 movw R2,R20
013A 4150 subi R20,1
013C 5040 sbci R21,0
013E 89E1 ldi R24,25
0140 F101 movw R30,R2
0142 8083 std z+0,R24
0144 ; *psoft_stk-- = (INT8U)0x20; /* R20 = 0x20 */
0144 1A01 movw R2,R20
0146 4150 subi R20,1
0148 5040 sbci R21,0
014A 80E2 ldi R24,32
014C F101 movw R30,R2
014E 8083 std z+0,R24
0150 ; *psoft_stk-- = (INT8U)0x21; /* R21 = 0x21 */
0150 1A01 movw R2,R20
0152 4150 subi R20,1
0154 5040 sbci R21,0
0156 81E2 ldi R24,33
0158 F101 movw R30,R2
015A 8083 std z+0,R24
015C ; *psoft_stk-- = (INT8U)0x22; /* R22 = 0x22 */
015C 1A01 movw R2,R20
015E 4150 subi R20,1
0160 5040 sbci R21,0
0162 82E2 ldi R24,34
0164 F101 movw R30,R2
0166 8083 std z+0,R24
0168 ; *psoft_stk-- = (INT8U)0x23; /* R23 = 0x23 */
0168 1A01 movw R2,R20
016A 4150 subi R20,1
016C 5040 sbci R21,0
016E 83E2 ldi R24,35
0170 F101 movw R30,R2
0172 8083 std z+0,R24
0174 ; *psoft_stk-- = (INT8U)0x24; /* R24 = 0x24 */
0174 1A01 movw R2,R20
0176 4150 subi R20,1
0178 5040 sbci R21,0
017A 84E2 ldi R24,36
017C F101 movw R30,R2
017E 8083 std z+0,R24
0180 ; *psoft_stk-- = (INT8U)0x25; /* R25 = 0x25 */
0180 1A01 movw R2,R20
0182 4150 subi R20,1
0184 5040 sbci R21,0
0186 85E2 ldi R24,37
0188 F101 movw R30,R2
018A 8083 std z+0,R24
018C ; *psoft_stk-- = (INT8U)0x26; /* R26 = 0x26 */
018C 1A01 movw R2,R20
018E 4150 subi R20,1
0190 5040 sbci R21,0
0192 86E2 ldi R24,38
0194 F101 movw R30,R2
0196 8083 std z+0,R24
0198 ; *psoft_stk-- = (INT8U)0x27; /* R27 = 0x27 */
0198 1A01 movw R2,R20
019A 4150 subi R20,1
019C 5040 sbci R21,0
019E 87E2 ldi R24,39
01A0 F101 movw R30,R2
01A2 8083 std z+0,R24
01A4 ; /* R28 R29:R28 is the software stack which gets ... */
01A4 ; /* R29 ... stored in the task's OS_TCB. */
01A4 ; *psoft_stk-- = (INT8U)0x30; /* R30 = 0x30 */
01A4 1A01 movw R2,R20
01A6 4150 subi R20,1
01A8 5040 sbci R21,0
01AA 80E3 ldi R24,48
01AC F101 movw R30,R2
01AE 8083 std z+0,R24
01B0 ; *psoft_stk-- = (INT8U)0x31; /* R31 = 0x31 */
01B0 1A01 movw R2,R20
01B2 4150 subi R20,1
01B4 5040 sbci R21,0
01B6 81E3 ldi R24,49
01B8 F101 movw R30,R2
01BA 8083 std z+0,R24
01BC ; *psoft_stk-- = (INT8U)0x00; /* RAMPZ = 0x00 */
01BC 1A01 movw R2,R20
01BE 4150 subi R20,1
01C0 5040 sbci R21,0
01C2 4424 clr R4
01C4 F101 movw R30,R2
01C6 4082 std z+0,R4
01C8 ; *psoft_stk-- = (INT8U)0x80; /* SREG = Interrupts enabled */
01C8 1A01 movw R2,R20
01CA 4150 subi R20,1
01CC 5040 sbci R21,0
01CE 80E8 ldi R24,128
01D0 F101 movw R30,R2
01D2 8083 std z+0,R24
01D4 ; tmp = (INT16U)phard_stk;
01D4 B501 movw R22,R10
01D6 ; *psoft_stk-- = (INT8U)(tmp >> 8); /* SPH */
01D6 1A01 movw R2,R20
01D8 4150 subi R20,1
01DA 5040 sbci R21,0
01DC 2B01 movw R4,R22
01DE 452C mov R4,R5
01E0 5524 clr R5
01E2 F101 movw R30,R2
01E4 4082 std z+0,R4
01E6 ; *psoft_stk = (INT8U) tmp; /* SPL */
01E6 FA01 movw R30,R20
01E8 6083 std z+0,R22
01EA ; return ((void *)psoft_stk);
01EA 042F mov R16,R20
01EC 152F mov R17,R21
01EE L7:
01EE 0E940000 xcall pop_gset3
01F2 .dbline 0 ; func end
01F2 0895 ret
.even
01F4 _OSTaskSwHook::
01F4 ; }
01F4 ;
01F4 ; /*$PAGE*/
01F4 ; /*
01F4 ; *********************************************************************************************************
01F4 ; * TASK SWITCH HOOK
01F4 ; *
01F4 ; * Description: This function is called when a task switch is performed. This allows you to perform other
01F4 ; * operations during a context switch.
01F4 ; *
01F4 ; * Arguments : none
01F4 ; *
01F4 ; * Note(s) : 1) Interrupts are disabled during this call.
01F4 ; * 2) It is assumed that the global pointer 'OSTCBHighRdy' points to the TCB of the task that
01F4 ; * will be 'switched in' (i.e. the highest priority task) and, 'OSTCBCur' points to the
01F4 ; * task being switched out (i.e. the preempted task).
01F4 ; *********************************************************************************************************
01F4 ; */
01F4 ; #if (OS_CPU_HOOKS_EN > 0) && (OS_TASK_SW_HOOK_EN > 0)
01F4 ; void OSTaskSwHook (void)
01F4 ; {
01F4 ; #ifdef OS_VIEW_MODULE
01F4 ; OSView_TaskSwHook();
01F4 ; #endif
01F4 ; }
01F4 L8:
01F4 .dbline 0 ; func end
01F4 0895 ret
01F6 ; ptcb -> R16,R17
.even
01F6 _OSTCBInitHook::
01F6 ; #endif
01F6 ;
01F6 ; /*
01F6 ; *********************************************************************************************************
01F6 ; * OS_TCBInit() HOOK
01F6 ; *
01F6 ; * Description: This function is called by OS_TCBInit() after setting up most of the TCB.
01F6 ; *
01F6 ; * Arguments : ptcb is a pointer to the TCB of the task being created.
01F6 ; *
01F6 ; * Note(s) : 1) Interrupts may or may not be ENABLED during this call.
01F6 ; *********************************************************************************************************
01F6 ; */
01F6 ; #if OS_CPU_HOOKS_EN > 0 && OS_VERSION > 203
01F6 ; void OSTCBInitHook (OS_TCB *ptcb)
01F6 ; {
01F6 ; ptcb = ptcb; /* Prevent Compiler warning */
01F6 ; }
01F6 L9:
01F6 .dbline 0 ; func end
01F6 0895 ret
.even
01F8 _OSTimeTickHook::
01F8 ; #endif
01F8 ;
01F8 ;
01F8 ; /*
01F8 ; *********************************************************************************************************
01F8 ; * TICK HOOK
01F8 ; *
01F8 ; * Description: This function is called every tick.
01F8 ; *
01F8 ; * Arguments : none
01F8 ; *
01F8 ; * Note(s) : 1) Interrupts may or may not be ENABLED during this call.
01F8 ; *********************************************************************************************************
01F8 ; */
01F8 ; #if (OS_CPU_HOOKS_EN > 0) && (OS_TIME_TICK_HOOK_EN > 0)
01F8 ; void OSTimeTickHook (void)
01F8 ; {
01F8 ; #ifdef OS_VIEW_MODULE
01F8 ; OSView_TickHook();
01F8 ; #endif
01F8 ; }
01F8 L10:
01F8 .dbline 0 ; func end
01F8 0895 ret
.area bss(ram, con, rel)
0000 _OSTaskHardStkSize::
0000 .blkb 2
0002 _OSTaskStkSize::
0002 .blkb 2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -