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