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 + -
显示快捷键?