test.lst
来自「将本站的UCOSFORAVR128V276版本升级到了280版」· LST 代码 · 共 1,505 行 · 第 1/5 页
LST
1,505 行
0262 1CB5 ADC R11,R5
(0176) - OSTaskStkSize /* Task stack size */
(0177) + OSTaskHardStkSize; /* AVR return stack ("hardware stack") */
(0178)
(0179) tmp = *(INT16U const *)task; /* (1) ICC compiler handles function pointers indirectly! */
0263 01F8 MOVW R30,R16
0264 9165 LPM R22,Z+
0265 9174 LPM R23,0(Z)
(0180)
(0181) *phard_stk-- = (INT8U)tmp; /* Put task start address on top of "hardware stack" */
0266 0115 MOVW R2,R10
0267 01C1 MOVW R24,R2
0268 9701 SBIW R24,1
0269 01F1 MOVW R30,R2
026A 8360 STD Z+0,R22
(0182) *phard_stk-- = (INT8U)(tmp >> 8);
026B 011C MOVW R2,R24
026C 9701 SBIW R24,1
026D 015C MOVW R10,R24
026E 012B MOVW R4,R22
026F 2C45 MOV R4,R5
0270 2455 CLR R5
0271 01F1 MOVW R30,R2
0272 8240 STD Z+0,R4
(0183)
(0184) *psoft_stk-- = (INT8U)0x00; /* R0 = 0x00 */
0273 011A MOVW R2,R20
0274 5041 SUBI R20,1
0275 4050 SBCI R21,0
0276 2444 CLR R4
0277 01F1 MOVW R30,R2
0278 8240 STD Z+0,R4
(0185) *psoft_stk-- = (INT8U)0x01; /* R1 = 0x01 */
0279 011A MOVW R2,R20
027A 5041 SUBI R20,1
027B 4050 SBCI R21,0
027C E081 LDI R24,1
027D 01F1 MOVW R30,R2
027E 8380 STD Z+0,R24
(0186) *psoft_stk-- = (INT8U)0x02; /* R2 = 0x02 */
027F 011A MOVW R2,R20
0280 5041 SUBI R20,1
0281 4050 SBCI R21,0
0282 E082 LDI R24,2
0283 01F1 MOVW R30,R2
0284 8380 STD Z+0,R24
(0187) *psoft_stk-- = (INT8U)0x03; /* R3 = 0x03 */
0285 011A MOVW R2,R20
0286 5041 SUBI R20,1
0287 4050 SBCI R21,0
0288 E083 LDI R24,3
0289 01F1 MOVW R30,R2
028A 8380 STD Z+0,R24
(0188) *psoft_stk-- = (INT8U)0x04; /* R4 = 0x04 */
028B 011A MOVW R2,R20
028C 5041 SUBI R20,1
028D 4050 SBCI R21,0
028E E084 LDI R24,4
028F 01F1 MOVW R30,R2
0290 8380 STD Z+0,R24
(0189) *psoft_stk-- = (INT8U)0x05; /* R5 = 0x05 */
0291 011A MOVW R2,R20
0292 5041 SUBI R20,1
0293 4050 SBCI R21,0
0294 E085 LDI R24,5
0295 01F1 MOVW R30,R2
0296 8380 STD Z+0,R24
(0190) *psoft_stk-- = (INT8U)0x06; /* R6 = 0x06 */
0297 011A MOVW R2,R20
0298 5041 SUBI R20,1
0299 4050 SBCI R21,0
029A E086 LDI R24,6
029B 01F1 MOVW R30,R2
029C 8380 STD Z+0,R24
(0191) *psoft_stk-- = (INT8U)0x07; /* R7 = 0x07 */
029D 011A MOVW R2,R20
029E 5041 SUBI R20,1
029F 4050 SBCI R21,0
02A0 E087 LDI R24,7
02A1 01F1 MOVW R30,R2
02A2 8380 STD Z+0,R24
(0192) *psoft_stk-- = (INT8U)0x08; /* R8 = 0x08 */
02A3 011A MOVW R2,R20
02A4 5041 SUBI R20,1
02A5 4050 SBCI R21,0
02A6 E088 LDI R24,0x8
02A7 01F1 MOVW R30,R2
02A8 8380 STD Z+0,R24
(0193) *psoft_stk-- = (INT8U)0x09; /* R9 = 0x09 */
02A9 011A MOVW R2,R20
02AA 5041 SUBI R20,1
02AB 4050 SBCI R21,0
02AC E089 LDI R24,0x9
02AD 01F1 MOVW R30,R2
02AE 8380 STD Z+0,R24
(0194) *psoft_stk-- = (INT8U)0x10; /* R10 = 0x10 */
02AF 011A MOVW R2,R20
02B0 5041 SUBI R20,1
02B1 4050 SBCI R21,0
02B2 E180 LDI R24,0x10
02B3 01F1 MOVW R30,R2
02B4 8380 STD Z+0,R24
(0195) *psoft_stk-- = (INT8U)0x11; /* R11 = 0x11 */
02B5 011A MOVW R2,R20
02B6 5041 SUBI R20,1
02B7 4050 SBCI R21,0
02B8 E181 LDI R24,0x11
02B9 01F1 MOVW R30,R2
02BA 8380 STD Z+0,R24
(0196) *psoft_stk-- = (INT8U)0x12; /* R12 = 0x12 */
02BB 011A MOVW R2,R20
02BC 5041 SUBI R20,1
02BD 4050 SBCI R21,0
02BE E182 LDI R24,0x12
02BF 01F1 MOVW R30,R2
02C0 8380 STD Z+0,R24
(0197) *psoft_stk-- = (INT8U)0x13; /* R13 = 0x13 */
02C1 011A MOVW R2,R20
02C2 5041 SUBI R20,1
02C3 4050 SBCI R21,0
02C4 E183 LDI R24,0x13
02C5 01F1 MOVW R30,R2
02C6 8380 STD Z+0,R24
(0198) *psoft_stk-- = (INT8U)0x14; /* R14 = 0x14 */
02C7 011A MOVW R2,R20
02C8 5041 SUBI R20,1
02C9 4050 SBCI R21,0
02CA E184 LDI R24,0x14
02CB 01F1 MOVW R30,R2
02CC 8380 STD Z+0,R24
(0199) *psoft_stk-- = (INT8U)0x15; /* R15 = 0x15 */
02CD 011A MOVW R2,R20
02CE 5041 SUBI R20,1
02CF 4050 SBCI R21,0
02D0 E185 LDI R24,0x15
02D1 01F1 MOVW R30,R2
02D2 8380 STD Z+0,R24
(0200) tmp = (INT16U)p_arg;
02D3 01B9 MOVW R22,R18
(0201) *psoft_stk-- = (INT8U)tmp; /* 'p_arg' passed in R17:R16 */
02D4 011A MOVW R2,R20
02D5 5041 SUBI R20,1
02D6 4050 SBCI R21,0
02D7 01F1 MOVW R30,R2
02D8 8360 STD Z+0,R22
(0202) *psoft_stk-- = (INT8U)(tmp >> 8);
02D9 011A MOVW R2,R20
02DA 5041 SUBI R20,1
02DB 4050 SBCI R21,0
02DC 012B MOVW R4,R22
02DD 2C45 MOV R4,R5
02DE 2455 CLR R5
02DF 01F1 MOVW R30,R2
02E0 8240 STD Z+0,R4
(0203) *psoft_stk-- = (INT8U)0x18; /* R18 = 0x18 */
02E1 011A MOVW R2,R20
02E2 5041 SUBI R20,1
02E3 4050 SBCI R21,0
02E4 E188 LDI R24,0x18
02E5 01F1 MOVW R30,R2
02E6 8380 STD Z+0,R24
(0204) *psoft_stk-- = (INT8U)0x19; /* R19 = 0x19 */
02E7 011A MOVW R2,R20
02E8 5041 SUBI R20,1
02E9 4050 SBCI R21,0
02EA E189 LDI R24,0x19
02EB 01F1 MOVW R30,R2
02EC 8380 STD Z+0,R24
(0205) *psoft_stk-- = (INT8U)0x20; /* R20 = 0x20 */
02ED 011A MOVW R2,R20
02EE 5041 SUBI R20,1
02EF 4050 SBCI R21,0
02F0 E280 LDI R24,0x20
02F1 01F1 MOVW R30,R2
02F2 8380 STD Z+0,R24
(0206) *psoft_stk-- = (INT8U)0x21; /* R21 = 0x21 */
02F3 011A MOVW R2,R20
02F4 5041 SUBI R20,1
02F5 4050 SBCI R21,0
02F6 E281 LDI R24,0x21
02F7 01F1 MOVW R30,R2
02F8 8380 STD Z+0,R24
(0207) *psoft_stk-- = (INT8U)0x22; /* R22 = 0x22 */
02F9 011A MOVW R2,R20
02FA 5041 SUBI R20,1
02FB 4050 SBCI R21,0
02FC E282 LDI R24,0x22
02FD 01F1 MOVW R30,R2
02FE 8380 STD Z+0,R24
(0208) *psoft_stk-- = (INT8U)0x23; /* R23 = 0x23 */
02FF 011A MOVW R2,R20
0300 5041 SUBI R20,1
0301 4050 SBCI R21,0
0302 E283 LDI R24,0x23
0303 01F1 MOVW R30,R2
0304 8380 STD Z+0,R24
(0209) *psoft_stk-- = (INT8U)0x24; /* R24 = 0x24 */
0305 011A MOVW R2,R20
0306 5041 SUBI R20,1
0307 4050 SBCI R21,0
0308 E284 LDI R24,0x24
0309 01F1 MOVW R30,R2
030A 8380 STD Z+0,R24
(0210) *psoft_stk-- = (INT8U)0x25; /* R25 = 0x25 */
030B 011A MOVW R2,R20
030C 5041 SUBI R20,1
030D 4050 SBCI R21,0
030E E285 LDI R24,0x25
030F 01F1 MOVW R30,R2
0310 8380 STD Z+0,R24
(0211) *psoft_stk-- = (INT8U)0x26; /* R26 = 0x26 */
0311 011A MOVW R2,R20
0312 5041 SUBI R20,1
0313 4050 SBCI R21,0
0314 E286 LDI R24,0x26
0315 01F1 MOVW R30,R2
0316 8380 STD Z+0,R24
(0212) *psoft_stk-- = (INT8U)0x27; /* R27 = 0x27 */
0317 011A MOVW R2,R20
0318 5041 SUBI R20,1
0319 4050 SBCI R21,0
031A E287 LDI R24,0x27
031B 01F1 MOVW R30,R2
031C 8380 STD Z+0,R24
(0213) /* R28 R29:R28 is the software stack which gets ... */
(0214) /* R29 ... stored in the task's OS_TCB. */
(0215) *psoft_stk-- = (INT8U)0x30; /* R30 = 0x30 */
031D 011A MOVW R2,R20
031E 5041 SUBI R20,1
031F 4050 SBCI R21,0
0320 E380 LDI R24,0x30
0321 01F1 MOVW R30,R2
0322 8380 STD Z+0,R24
(0216) *psoft_stk-- = (INT8U)0x31; /* R31 = 0x31 */
0323 011A MOVW R2,R20
0324 5041 SUBI R20,1
0325 4050 SBCI R21,0
0326 E381 LDI R24,0x31
0327 01F1 MOVW R30,R2
0328 8380 STD Z+0,R24
(0217) *psoft_stk-- = (INT8U)0x00; /* RAMPZ = 0x00 */
0329 011A MOVW R2,R20
032A 5041 SUBI R20,1
032B 4050 SBCI R21,0
032C 2444 CLR R4
032D 01F1 MOVW R30,R2
032E 8240 STD Z+0,R4
(0218) *psoft_stk-- = (INT8U)0x80; /* SREG = Interrupts enabled */
032F 011A MOVW R2,R20
0330 5041 SUBI R20,1
0331 4050 SBCI R21,0
0332 E880 LDI R24,0x80
0333 01F1 MOVW R30,R2
0334 8380 STD Z+0,R24
(0219) tmp = (INT16U)phard_stk;
0335 01B5 MOVW R22,R10
(0220) *psoft_stk-- = (INT8U)(tmp >> 8); /* SPH */
0336 011A MOVW R2,R20
0337 5041 SUBI R20,1
0338 4050 SBCI R21,0
0339 012B MOVW R4,R22
033A 2C45 MOV R4,R5
033B 2455 CLR R5
033C 01F1 MOVW R30,R2
033D 8240 STD Z+0,R4
(0221) *psoft_stk = (INT8U) tmp; /* SPL */
033E 01FA MOVW R30,R20
033F 8360 STD Z+0,R22
(0222) return ((void *)psoft_stk);
0340 018F MOVW R16,R30
0341 940E0F08 CALL pop_gset3
0343 9508 RET
(0223) }
(0224)
(0225) /*$PAGE*/
(0226) /*
(0227) *********************************************************************************************************
(0228) * TASK SWITCH HOOK
(0229) *
(0230) * Description: This function is called when a task switch is performed. This allows you to perform other
(0231) * operations during a context switch.
(0232) *
(0233) * Arguments : none
(0234) *
(0235) * Note(s) : 1) Interrupts are disabled during this call.
(0236) * 2) It is assumed that the global pointer 'OSTCBHighRdy' points to the TCB of the task that
(0237) * will be 'switched in' (i.e. the highest priority task) and, 'OSTCBCur' points to the
(0238) * task being switched out (i.e. the preempted task).
(0239) *********************************************************************************************************
(0240) */
(0241) #if (OS_CPU_HOOKS_EN > 0) && (OS_TASK_SW_HOOK_EN > 0)
(0242) void OSTaskSwHook (void)
(0243) {
_OSTaskSwHook:
0344 9508 RET
(0244) #ifdef OS_VIEW_MODULE
(0245) // OSView_TaskSwHook();
(0246) #endif
(0247) }
(0248) #endif
(0249)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?