📄 os_cpu_c.lis
字号:
007A F101 movw R30,R2
007C 8083 std z+0,R24
007E ; *psoft_stk-- = (INT8U)0x04; /* R4 = 0x04 */
007E 1A01 movw R2,R20
0080 4150 subi R20,1
0082 5040 sbci R21,0
0084 84E0 ldi R24,4
0086 F101 movw R30,R2
0088 8083 std z+0,R24
008A ; *psoft_stk-- = (INT8U)0x05; /* R5 = 0x05 */
008A 1A01 movw R2,R20
008C 4150 subi R20,1
008E 5040 sbci R21,0
0090 85E0 ldi R24,5
0092 F101 movw R30,R2
0094 8083 std z+0,R24
0096 ; *psoft_stk-- = (INT8U)0x06; /* R6 = 0x06 */
0096 1A01 movw R2,R20
0098 4150 subi R20,1
009A 5040 sbci R21,0
009C 86E0 ldi R24,6
009E F101 movw R30,R2
00A0 8083 std z+0,R24
00A2 ; *psoft_stk-- = (INT8U)0x07; /* R7 = 0x07 */
00A2 1A01 movw R2,R20
00A4 4150 subi R20,1
00A6 5040 sbci R21,0
00A8 87E0 ldi R24,7
00AA F101 movw R30,R2
00AC 8083 std z+0,R24
00AE ; *psoft_stk-- = (INT8U)0x08; /* R8 = 0x08 */
00AE 1A01 movw R2,R20
00B0 4150 subi R20,1
00B2 5040 sbci R21,0
00B4 88E0 ldi R24,8
00B6 F101 movw R30,R2
00B8 8083 std z+0,R24
00BA ; *psoft_stk-- = (INT8U)0x09; /* R9 = 0x09 */
00BA 1A01 movw R2,R20
00BC 4150 subi R20,1
00BE 5040 sbci R21,0
00C0 89E0 ldi R24,9
00C2 F101 movw R30,R2
00C4 8083 std z+0,R24
00C6 ; *psoft_stk-- = (INT8U)0x10; /* R10 = 0x10 */
00C6 1A01 movw R2,R20
00C8 4150 subi R20,1
00CA 5040 sbci R21,0
00CC 80E1 ldi R24,16
00CE F101 movw R30,R2
00D0 8083 std z+0,R24
00D2 ; *psoft_stk-- = (INT8U)0x11; /* R11 = 0x11 */
00D2 1A01 movw R2,R20
00D4 4150 subi R20,1
00D6 5040 sbci R21,0
00D8 81E1 ldi R24,17
00DA F101 movw R30,R2
00DC 8083 std z+0,R24
00DE ; *psoft_stk-- = (INT8U)0x12; /* R12 = 0x12 */
00DE 1A01 movw R2,R20
00E0 4150 subi R20,1
00E2 5040 sbci R21,0
00E4 82E1 ldi R24,18
00E6 F101 movw R30,R2
00E8 8083 std z+0,R24
00EA ; *psoft_stk-- = (INT8U)0x13; /* R13 = 0x13 */
00EA 1A01 movw R2,R20
00EC 4150 subi R20,1
00EE 5040 sbci R21,0
00F0 83E1 ldi R24,19
00F2 F101 movw R30,R2
00F4 8083 std z+0,R24
00F6 ; *psoft_stk-- = (INT8U)0x14; /* R14 = 0x14 */
00F6 1A01 movw R2,R20
00F8 4150 subi R20,1
00FA 5040 sbci R21,0
00FC 84E1 ldi R24,20
00FE F101 movw R30,R2
0100 8083 std z+0,R24
0102 ; *psoft_stk-- = (INT8U)0x15; /* R15 = 0x15 */
0102 1A01 movw R2,R20
0104 4150 subi R20,1
0106 5040 sbci R21,0
0108 85E1 ldi R24,21
010A F101 movw R30,R2
010C 8083 std z+0,R24
010E ; tmp = (INT16U)p_arg;
010E B901 movw R22,R18
0110 ; *psoft_stk-- = (INT8U)tmp; /* 'p_arg' passed in R17:R16 */
0110 1A01 movw R2,R20
0112 4150 subi R20,1
0114 5040 sbci R21,0
0116 F101 movw R30,R2
0118 6083 std z+0,R22
011A ; *psoft_stk-- = (INT8U)(tmp >> 8);
011A 1A01 movw R2,R20
011C 4150 subi R20,1
011E 5040 sbci R21,0
0120 2B01 movw R4,R22
0122 452C mov R4,R5
0124 5524 clr R5
0126 F101 movw R30,R2
0128 4082 std z+0,R4
012A ; *psoft_stk-- = (INT8U)0x18; /* R18 = 0x18 */
012A 1A01 movw R2,R20
012C 4150 subi R20,1
012E 5040 sbci R21,0
0130 88E1 ldi R24,24
0132 F101 movw R30,R2
0134 8083 std z+0,R24
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 ; *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 ; *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 ; *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 ; *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 ; *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 ; *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 ; *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 ; *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 ; /* 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 ; *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 ; *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 ; *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 ; tmp = (INT16U)phard_stk;
01D2 B501 movw R22,R10
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 ; *psoft_stk = (INT8U) tmp; /* SPL */
01E4 FA01 movw R30,R20
01E6 6083 std z+0,R22
01E8 ; return ((void *)psoft_stk);
01E8 8F01 movw R16,R30
01EA L7:
01EA 0E940000 xcall pop_gset3
01EE .dbline 0 ; func end
01EE 0895 ret
.even
01F0 _OSTaskSwHook::
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 L8:
01F0 .dbline 0 ; func end
01F0 0895 ret
01F2 ; ptcb -> R16,R17
.even
01F2 _OSTCBInitHook::
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 ; ptcb = ptcb; /* Prevent Compiler warning */
01F2 L9:
01F2 .dbline 0 ; func end
01F2 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 + -