test.lst
来自「将本站的UCOSFORAVR128V276版本升级到了280版」· LST 代码 · 共 1,505 行 · 第 1/5 页
LST
1,505 行
0266 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! */
0267 01F8 MOVW R30,R16
0268 9165 LPM R22,Z+
0269 9174 LPM R23,0(Z)
(0180)
(0181) *phard_stk-- = (INT8U)tmp; /* Put task start address on top of "hardware stack" */
026A 0115 MOVW R2,R10
026B 01C1 MOVW R24,R2
026C 9701 SBIW R24,1
026D 01F1 MOVW R30,R2
026E 8360 STD Z+0,R22
(0182) *phard_stk-- = (INT8U)(tmp >> 8);
026F 011C MOVW R2,R24
0270 9701 SBIW R24,1
0271 015C MOVW R10,R24
0272 012B MOVW R4,R22
0273 2C45 MOV R4,R5
0274 2455 CLR R5
0275 01F1 MOVW R30,R2
0276 8240 STD Z+0,R4
(0183)
(0184) *psoft_stk-- = (INT8U)0x00; /* R0 = 0x00 */
0277 011A MOVW R2,R20
0278 5041 SUBI R20,1
0279 4050 SBCI R21,0
027A 2444 CLR R4
027B 01F1 MOVW R30,R2
027C 8240 STD Z+0,R4
(0185) *psoft_stk-- = (INT8U)0x01; /* R1 = 0x01 */
027D 011A MOVW R2,R20
027E 5041 SUBI R20,1
027F 4050 SBCI R21,0
0280 E081 LDI R24,1
0281 01F1 MOVW R30,R2
0282 8380 STD Z+0,R24
(0186) *psoft_stk-- = (INT8U)0x02; /* R2 = 0x02 */
0283 011A MOVW R2,R20
0284 5041 SUBI R20,1
0285 4050 SBCI R21,0
0286 E082 LDI R24,2
0287 01F1 MOVW R30,R2
0288 8380 STD Z+0,R24
(0187) *psoft_stk-- = (INT8U)0x03; /* R3 = 0x03 */
0289 011A MOVW R2,R20
028A 5041 SUBI R20,1
028B 4050 SBCI R21,0
028C E083 LDI R24,3
028D 01F1 MOVW R30,R2
028E 8380 STD Z+0,R24
(0188) *psoft_stk-- = (INT8U)0x04; /* R4 = 0x04 */
028F 011A MOVW R2,R20
0290 5041 SUBI R20,1
0291 4050 SBCI R21,0
0292 E084 LDI R24,4
0293 01F1 MOVW R30,R2
0294 8380 STD Z+0,R24
(0189) *psoft_stk-- = (INT8U)0x05; /* R5 = 0x05 */
0295 011A MOVW R2,R20
0296 5041 SUBI R20,1
0297 4050 SBCI R21,0
0298 E085 LDI R24,5
0299 01F1 MOVW R30,R2
029A 8380 STD Z+0,R24
(0190) *psoft_stk-- = (INT8U)0x06; /* R6 = 0x06 */
029B 011A MOVW R2,R20
029C 5041 SUBI R20,1
029D 4050 SBCI R21,0
029E E086 LDI R24,6
029F 01F1 MOVW R30,R2
02A0 8380 STD Z+0,R24
(0191) *psoft_stk-- = (INT8U)0x07; /* R7 = 0x07 */
02A1 011A MOVW R2,R20
02A2 5041 SUBI R20,1
02A3 4050 SBCI R21,0
02A4 E087 LDI R24,7
02A5 01F1 MOVW R30,R2
02A6 8380 STD Z+0,R24
(0192) *psoft_stk-- = (INT8U)0x08; /* R8 = 0x08 */
02A7 011A MOVW R2,R20
02A8 5041 SUBI R20,1
02A9 4050 SBCI R21,0
02AA E088 LDI R24,0x8
02AB 01F1 MOVW R30,R2
02AC 8380 STD Z+0,R24
(0193) *psoft_stk-- = (INT8U)0x09; /* R9 = 0x09 */
02AD 011A MOVW R2,R20
02AE 5041 SUBI R20,1
02AF 4050 SBCI R21,0
02B0 E089 LDI R24,0x9
02B1 01F1 MOVW R30,R2
02B2 8380 STD Z+0,R24
(0194) *psoft_stk-- = (INT8U)0x10; /* R10 = 0x10 */
02B3 011A MOVW R2,R20
02B4 5041 SUBI R20,1
02B5 4050 SBCI R21,0
02B6 E180 LDI R24,0x10
02B7 01F1 MOVW R30,R2
02B8 8380 STD Z+0,R24
(0195) *psoft_stk-- = (INT8U)0x11; /* R11 = 0x11 */
02B9 011A MOVW R2,R20
02BA 5041 SUBI R20,1
02BB 4050 SBCI R21,0
02BC E181 LDI R24,0x11
02BD 01F1 MOVW R30,R2
02BE 8380 STD Z+0,R24
(0196) *psoft_stk-- = (INT8U)0x12; /* R12 = 0x12 */
02BF 011A MOVW R2,R20
02C0 5041 SUBI R20,1
02C1 4050 SBCI R21,0
02C2 E182 LDI R24,0x12
02C3 01F1 MOVW R30,R2
02C4 8380 STD Z+0,R24
(0197) *psoft_stk-- = (INT8U)0x13; /* R13 = 0x13 */
02C5 011A MOVW R2,R20
02C6 5041 SUBI R20,1
02C7 4050 SBCI R21,0
02C8 E183 LDI R24,0x13
02C9 01F1 MOVW R30,R2
02CA 8380 STD Z+0,R24
(0198) *psoft_stk-- = (INT8U)0x14; /* R14 = 0x14 */
02CB 011A MOVW R2,R20
02CC 5041 SUBI R20,1
02CD 4050 SBCI R21,0
02CE E184 LDI R24,0x14
02CF 01F1 MOVW R30,R2
02D0 8380 STD Z+0,R24
(0199) *psoft_stk-- = (INT8U)0x15; /* R15 = 0x15 */
02D1 011A MOVW R2,R20
02D2 5041 SUBI R20,1
02D3 4050 SBCI R21,0
02D4 E185 LDI R24,0x15
02D5 01F1 MOVW R30,R2
02D6 8380 STD Z+0,R24
(0200) tmp = (INT16U)p_arg;
02D7 01B9 MOVW R22,R18
(0201) *psoft_stk-- = (INT8U)tmp; /* 'p_arg' passed in R17:R16 */
02D8 011A MOVW R2,R20
02D9 5041 SUBI R20,1
02DA 4050 SBCI R21,0
02DB 01F1 MOVW R30,R2
02DC 8360 STD Z+0,R22
(0202) *psoft_stk-- = (INT8U)(tmp >> 8);
02DD 011A MOVW R2,R20
02DE 5041 SUBI R20,1
02DF 4050 SBCI R21,0
02E0 012B MOVW R4,R22
02E1 2C45 MOV R4,R5
02E2 2455 CLR R5
02E3 01F1 MOVW R30,R2
02E4 8240 STD Z+0,R4
(0203) *psoft_stk-- = (INT8U)0x18; /* R18 = 0x18 */
02E5 011A MOVW R2,R20
02E6 5041 SUBI R20,1
02E7 4050 SBCI R21,0
02E8 E188 LDI R24,0x18
02E9 01F1 MOVW R30,R2
02EA 8380 STD Z+0,R24
(0204) *psoft_stk-- = (INT8U)0x19; /* R19 = 0x19 */
02EB 011A MOVW R2,R20
02EC 5041 SUBI R20,1
02ED 4050 SBCI R21,0
02EE E189 LDI R24,0x19
02EF 01F1 MOVW R30,R2
02F0 8380 STD Z+0,R24
(0205) *psoft_stk-- = (INT8U)0x20; /* R20 = 0x20 */
02F1 011A MOVW R2,R20
02F2 5041 SUBI R20,1
02F3 4050 SBCI R21,0
02F4 E280 LDI R24,0x20
02F5 01F1 MOVW R30,R2
02F6 8380 STD Z+0,R24
(0206) *psoft_stk-- = (INT8U)0x21; /* R21 = 0x21 */
02F7 011A MOVW R2,R20
02F8 5041 SUBI R20,1
02F9 4050 SBCI R21,0
02FA E281 LDI R24,0x21
02FB 01F1 MOVW R30,R2
02FC 8380 STD Z+0,R24
(0207) *psoft_stk-- = (INT8U)0x22; /* R22 = 0x22 */
02FD 011A MOVW R2,R20
02FE 5041 SUBI R20,1
02FF 4050 SBCI R21,0
0300 E282 LDI R24,0x22
0301 01F1 MOVW R30,R2
0302 8380 STD Z+0,R24
(0208) *psoft_stk-- = (INT8U)0x23; /* R23 = 0x23 */
0303 011A MOVW R2,R20
0304 5041 SUBI R20,1
0305 4050 SBCI R21,0
0306 E283 LDI R24,0x23
0307 01F1 MOVW R30,R2
0308 8380 STD Z+0,R24
(0209) *psoft_stk-- = (INT8U)0x24; /* R24 = 0x24 */
0309 011A MOVW R2,R20
030A 5041 SUBI R20,1
030B 4050 SBCI R21,0
030C E284 LDI R24,0x24
030D 01F1 MOVW R30,R2
030E 8380 STD Z+0,R24
(0210) *psoft_stk-- = (INT8U)0x25; /* R25 = 0x25 */
030F 011A MOVW R2,R20
0310 5041 SUBI R20,1
0311 4050 SBCI R21,0
0312 E285 LDI R24,0x25
0313 01F1 MOVW R30,R2
0314 8380 STD Z+0,R24
(0211) *psoft_stk-- = (INT8U)0x26; /* R26 = 0x26 */
0315 011A MOVW R2,R20
0316 5041 SUBI R20,1
0317 4050 SBCI R21,0
0318 E286 LDI R24,0x26
0319 01F1 MOVW R30,R2
031A 8380 STD Z+0,R24
(0212) *psoft_stk-- = (INT8U)0x27; /* R27 = 0x27 */
031B 011A MOVW R2,R20
031C 5041 SUBI R20,1
031D 4050 SBCI R21,0
031E E287 LDI R24,0x27
031F 01F1 MOVW R30,R2
0320 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 */
0321 011A MOVW R2,R20
0322 5041 SUBI R20,1
0323 4050 SBCI R21,0
0324 E380 LDI R24,0x30
0325 01F1 MOVW R30,R2
0326 8380 STD Z+0,R24
(0216) *psoft_stk-- = (INT8U)0x31; /* R31 = 0x31 */
0327 011A MOVW R2,R20
0328 5041 SUBI R20,1
0329 4050 SBCI R21,0
032A E381 LDI R24,0x31
032B 01F1 MOVW R30,R2
032C 8380 STD Z+0,R24
(0217) *psoft_stk-- = (INT8U)0x00; /* RAMPZ = 0x00 */
032D 011A MOVW R2,R20
032E 5041 SUBI R20,1
032F 4050 SBCI R21,0
0330 2444 CLR R4
0331 01F1 MOVW R30,R2
0332 8240 STD Z+0,R4
(0218) *psoft_stk-- = (INT8U)0x80; /* SREG = Interrupts enabled */
0333 011A MOVW R2,R20
0334 5041 SUBI R20,1
0335 4050 SBCI R21,0
0336 E880 LDI R24,0x80
0337 01F1 MOVW R30,R2
0338 8380 STD Z+0,R24
(0219) tmp = (INT16U)phard_stk;
0339 01B5 MOVW R22,R10
(0220) *psoft_stk-- = (INT8U)(tmp >> 8); /* SPH */
033A 011A MOVW R2,R20
033B 5041 SUBI R20,1
033C 4050 SBCI R21,0
033D 012B MOVW R4,R22
033E 2C45 MOV R4,R5
033F 2455 CLR R5
0340 01F1 MOVW R30,R2
0341 8240 STD Z+0,R4
(0221) *psoft_stk = (INT8U) tmp; /* SPL */
0342 01FA MOVW R30,R20
0343 8360 STD Z+0,R22
(0222) return ((void *)psoft_stk);
0344 018F MOVW R16,R30
0345 940E0C7B CALL pop_gset3
0347 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:
0348 9508 RET
(0244) #ifdef OS_VIEW_MODULE
(0245) OSView_TaskSwHook();
(0246) #endif
(0247) }
(0248) #endif
(0249)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?