⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 os_cpu_c.lis

📁 mega16 ucos操作系统
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 015C F601              movw R30,R12
 015E 8083              std z+0,R24
 0160                   .dbline 225
 0160           ;     *psoft_stk-- = (INT8U)0x21;             /* R21   = 0x21                                             */
 0160 6A01              movw R12,R20
 0162 4150              subi R20,1
 0164 5040              sbci R21,0
 0166 81E2              ldi R24,33
 0168 F601              movw R30,R12
 016A 8083              std z+0,R24
 016C                   .dbline 226
 016C           ;     *psoft_stk-- = (INT8U)0x22;             /* R22   = 0x22                                             */
 016C 6A01              movw R12,R20
 016E 4150              subi R20,1
 0170 5040              sbci R21,0
 0172 82E2              ldi R24,34
 0174 F601              movw R30,R12
 0176 8083              std z+0,R24
 0178                   .dbline 227
 0178           ;     *psoft_stk-- = (INT8U)0x23;             /* R23   = 0x23                                             */
 0178 6A01              movw R12,R20
 017A 4150              subi R20,1
 017C 5040              sbci R21,0
 017E 83E2              ldi R24,35
 0180 F601              movw R30,R12
 0182 8083              std z+0,R24
 0184                   .dbline 228
 0184           ;     *psoft_stk-- = (INT8U)0x24;             /* R24   = 0x24                                             */
 0184 6A01              movw R12,R20
 0186 4150              subi R20,1
 0188 5040              sbci R21,0
 018A 84E2              ldi R24,36
 018C F601              movw R30,R12
 018E 8083              std z+0,R24
 0190                   .dbline 229
 0190           ;     *psoft_stk-- = (INT8U)0x25;             /* R25   = 0x25                                             */
 0190 6A01              movw R12,R20
 0192 4150              subi R20,1
 0194 5040              sbci R21,0
 0196 85E2              ldi R24,37
 0198 F601              movw R30,R12
 019A 8083              std z+0,R24
 019C                   .dbline 230
 019C           ;     *psoft_stk-- = (INT8U)0x26;             /* R26   = 0x26                                             */
 019C 6A01              movw R12,R20
 019E 4150              subi R20,1
 01A0 5040              sbci R21,0
 01A2 86E2              ldi R24,38
 01A4 F601              movw R30,R12
 01A6 8083              std z+0,R24
 01A8                   .dbline 231
 01A8           ;     *psoft_stk-- = (INT8U)0x27;             /* R27   = 0x27                                             */
 01A8 6A01              movw R12,R20
 01AA 4150              subi R20,1
 01AC 5040              sbci R21,0
 01AE 87E2              ldi R24,39
 01B0 F601              movw R30,R12
 01B2 8083              std z+0,R24
 01B4                   .dbline 234
 01B4           ;                                             /* R28     R29:R28 is the software stack which gets ...     */
 01B4           ;                                             /* R29     ... stored in the task's OS_TCB.                 */
 01B4           ;     *psoft_stk-- = (INT8U)0x30;             /* R30   = 0x30                                             */
 01B4 6A01              movw R12,R20
 01B6 4150              subi R20,1
 01B8 5040              sbci R21,0
 01BA 80E3              ldi R24,48
 01BC F601              movw R30,R12
 01BE 8083              std z+0,R24
 01C0                   .dbline 235
 01C0           ;     *psoft_stk-- = (INT8U)0x31;             /* R31   = 0x31                                             */ 
 01C0 6A01              movw R12,R20
 01C2 4150              subi R20,1
 01C4 5040              sbci R21,0
 01C6 81E3              ldi R24,49
 01C8 F601              movw R30,R12
 01CA 8083              std z+0,R24
 01CC                   .dbline 237
 01CC           ;       
 01CC           ;     *psoft_stk-- = (INT8U)0x80;             /* SREG  = Interrupts enabled                               */
 01CC 6A01              movw R12,R20
 01CE 4150              subi R20,1
 01D0 5040              sbci R21,0
 01D2 80E8              ldi R24,128
 01D4 F601              movw R30,R12
 01D6 8083              std z+0,R24
 01D8                   .dbline 239
 01D8           ;     
 01D8           ;        tmp          = (INT16U)phard_stk;
 01D8 B501              movw R22,R10
 01DA                   .dbline 240
 01DA           ;     *psoft_stk-- = (INT8U)(tmp >> 8);       /* SPH                                                      */
 01DA 5A01              movw R10,R20
 01DC 4150              subi R20,1
 01DE 5040              sbci R21,0
 01E0 1B01              movw R2,R22
 01E2 232C              mov R2,R3
 01E4 3324              clr R3
 01E6 F501              movw R30,R10
 01E8 2082              std z+0,R2
 01EA                   .dbline 241
 01EA           ;     *psoft_stk   = (INT8U) tmp;             /* SPL                                                      */
 01EA FA01              movw R30,R20
 01EC 6083              std z+0,R22
 01EE                   .dbline 242
 01EE           ;     return ((OS_STK *)psoft_stk);
 01EE 8F01              movw R16,R30
 01F0                   .dbline -2
 01F0           L7:
 01F0                   .dbline 0 ; func end
 01F0 0C940000          xjmp pop_xgsetF03C
 01F4                   .dbsym r phard_stk 10 pc
 01F4                   .dbsym r tmp 22 i
 01F4                   .dbsym r psoft_stk 20 pc
 01F4                   .dbsym l opt 10 i
 01F4                   .dbsym r ptos 10 pc
 01F4                   .dbsym r p_arg 18 pV
 01F4                   .dbsym r task 16 pfV
 01F4                   .dbend
 01F4                   .dbfunc e OSTaskSwHook _OSTaskSwHook fV
                        .even
 01F4           _OSTaskSwHook::
 01F4                   .dbline -1
 01F4                   .dbline 264
 01F4           ; }
 01F4           ; 
 01F4           ; 
 01F4           ; 
 01F4           ; /*
 01F4           ; *********************************************************************************************************
 01F4           ; *                                           TASK SWITCH HOOK
 01F4           ; *
 01F4           ; * Description: This function is called when a task switch is performed.  This allows you to perform other
 01F4           ; *              operations during a context switch.
 01F4           ; *
 01F4           ; * Arguments  : none
 01F4           ; *
 01F4           ; * Note(s)    : 1) Interrupts are disabled during this call.
 01F4           ; *              2) It is assumed that the global pointer 'OSTCBHighRdy' points to the TCB of the task that
 01F4           ; *                 will be 'switched in' (i.e. the highest priority task) and, 'OSTCBCur' points to the 
 01F4           ; *                 task being switched out (i.e. the preempted task).
 01F4           ; *********************************************************************************************************
 01F4           ; */
 01F4           ; #if (OS_CPU_HOOKS_EN > 0) && (OS_TASK_SW_HOOK_EN > 0)
 01F4           ; void  OSTaskSwHook (void)
 01F4           ; {
 01F4                   .dbline -2
 01F4           L8:
 01F4                   .dbline 0 ; func end
 01F4 0895              ret
 01F6                   .dbend
 01F6                   .dbfunc e OSTCBInitHook _OSTCBInitHook fV
 01F6           ;           ptcb -> R0,R1
                        .even
 01F6           _OSTCBInitHook::
 01F6                   .dbline -1
 01F6                   .dbline 283
 01F6           ;    
 01F6           ; }
 01F6           ; #endif
 01F6           ; 
 01F6           ; 
 01F6           ; /*
 01F6           ; *********************************************************************************************************
 01F6           ; *                                           OS_TCBInit() HOOK
 01F6           ; *
 01F6           ; * Description: This function is called by OS_TCBInit() after setting up most of the TCB.
 01F6           ; *
 01F6           ; * Arguments  : ptcb    is a pointer to the TCB of the task being created.
 01F6           ; *
 01F6           ; * Note(s)    : 1) Interrupts may or may not be ENABLED during this call.
 01F6           ; *********************************************************************************************************
 01F6           ; */
 01F6           ; #if OS_CPU_HOOKS_EN > 0 && OS_VERSION > 203
 01F6           ; void  OSTCBInitHook (OS_TCB *ptcb)
 01F6           ; {
 01F6                   .dbline 284
 01F6           ;     ptcb = ptcb;                                           /* Prevent Compiler warning                 */
 01F6                   .dbline -2
 01F6           L9:
 01F6                   .dbline 0 ; func end
 01F6 0895              ret
 01F8                   .dbsym l ptcb 0 pS[os_tcb]
 01F8                   .dbend
 01F8                   .dbfunc e OSTimeTickHook _OSTimeTickHook fV
                        .even
 01F8           _OSTimeTickHook::
 01F8                   .dbline -1
 01F8                   .dbline 301
 01F8           ; }
 01F8           ; #endif
 01F8           ; 
 01F8           ; /*
 01F8           ; *********************************************************************************************************
 01F8           ; *                                               TICK HOOK
 01F8           ; *
 01F8           ; * Description: This function is called every tick.
 01F8           ; *
 01F8           ; * Arguments  : none
 01F8           ; *
 01F8           ; * Note(s)    : 1) Interrupts may or may not be ENABLED during this call.
 01F8           ; *********************************************************************************************************
 01F8           ; */
 01F8           ; #if (OS_CPU_HOOKS_EN > 0) && (OS_TIME_TICK_HOOK_EN > 0)
 01F8           ; void  OSTimeTickHook (void)
 01F8           ; {
 01F8                   .dbline 310
 01F8           ; 
 01F8           ; #if OS_VERSION >= 281 && OS_TMR_EN > 0
 01F8           ;     OSTmrCtr++;
 01F8           ;     if (OSTmrCtr >= (OS_TICKS_PER_SEC / OS_TMR_CFG_TICKS_PER_SEC)) {
 01F8           ;         OSTmrCtr = 0;
 01F8           ;         OSTmrSignal();
 01F8           ;     }
 01F8           ; #endif
 01F8           ;     WDR();
 01F8 A895              wdr
 01FA                   .dbline -2
 01FA           L10:
 01FA                   .dbline 0 ; func end
 01FA 0895              ret
 01FC                   .dbend
 01FC                   .dbfunc e OSTickISR_Handler _OSTickISR_Handler fV
                        .even
 01FC           _OSTickISR_Handler::
 01FC                   .dbline -1
 01FC                   .dbline 325
 01FC           ; }
 01FC           ; #endif
 01FC           ; 
 01FC           ; 
 01FC           ; /*
 01FC           ; *********************************************************************************************************
 01FC           ; *                                     HANDLE THE TICK INTERRUPT
 01FC           ; *
 01FC           ; * Note(s): 1) No need to clear the interrupt source since we use output compare mode for Timer #0 and
 01FC           ; *             the interrupt is automatically cleard in hardware when the ISR runs.
 01FC           ; *********************************************************************************************************
 01FC           ; */
 01FC           ; 
 01FC           ; void  OSTickISR_Handler (void)
 01FC           ; {
 01FC                   .dbline 326
 01FC           ;     OSTimeTick();
 01FC                   .dbline -2
 01FC           L11:
 01FC                   .dbline 0 ; func end
 01FC 0C940000          xjmp _OSTimeTick
 0200                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile C:\DOCUME~1\Administrator\桌面\MEGA16\source\CPU_source\os_cpu_c.c
 0000           _OSTaskStkSizeHard::
 0000                   .blkb 2
 0002                   .dbfile C:\DOCUME~1\Administrator\桌面\MEGA16\source\CPU_source\os_cpu.h
 0002                   .dbsym e OSTaskStkSizeHard _OSTaskStkSizeHard i
 0002           _OSTaskStkSize::
 0002                   .blkb 2
 0004                   .dbsym e OSTaskStkSize _OSTaskStkSize i
 0004           ; }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -