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

📄 os_cpu_c.ls1

📁 uC/OS操作系统在51平台的移植代码
💻 LS1
📖 第 1 页 / 共 4 页
字号:
                     357     ;     return ((void *)stk);
                     358                             ; SOURCE LINE # 102
00A6 120000   F      359             LCALL   L?0013
00A9 120000   F      360             LCALL   ?C?PLDXDATA
                     361     ; }
                     362                             ; SOURCE LINE # 103
00AC                 363     ?C0001:
A51 MACRO ASSEMBLER  OS_CPU_C                                                             07/03/2002 08:51:27 PAGE     7

00AC 90000E          364             MOV     DPTR,#0EH
00AF 020000   F      365             LJMP    ?C?ADDXBP
                     366     ; END OF _?OSTaskStkInit
                     367     
----                 368     CSEG    AT      0000BH
000B 020000   F      369             LJMP    _?OSTickISR
                     370     
                     371     ; 
                     372     ; 
                     373     ; 
                     374     ; void UserTickTimer(void) KCREENTRANT;
                     375     ; 
                     376     ; /* OSTickISR can be writen in c language now, so it is more easy for user to write code f
                             or their own */
                     377     ; void OSTickISR(void) KCREENTRANT interrupt 1 
                     378     
----                 379             RSEG  ?PR?_?OSTickISR?OS_CPU_C
                     380             USING   0
0000                 381     _?OSTickISR:
0000 C0E0            382             PUSH    ACC
0002 C0F0            383             PUSH    B
0004 C083            384             PUSH    DPH
0006 C082            385             PUSH    DPL
0008 C0D0            386             PUSH    PSW
000A 75D000          387             MOV     PSW,#00H
000D C000            388             PUSH    AR0
000F C001            389             PUSH    AR1
0011 C002            390             PUSH    AR2
0013 C003            391             PUSH    AR3
0015 C004            392             PUSH    AR4
0017 C005            393             PUSH    AR5
0019 C006            394             PUSH    AR6
001B C007            395             PUSH    AR7
                     396             USING   0
                     397                             ; SOURCE LINE # 110
                     398     ; {
                     399     ;  
                     400     ; #pragma ASM
                     401     ; PUSH IE
001D C0A8            402               PUSH IE
                     403     ; #pragma ENDASM
                     404     ; OSIntEnter();
                     405                             ; SOURCE LINE # 116
001F 120000   F      406             LCALL   _?OSIntEnter
                     407     ; UserTickTimer();                              
                     408                             ; SOURCE LINE # 117
0022 120000   F      409             LCALL   _?UserTickTimer
                     410     ; OSTimeTick();                                 
                     411                             ; SOURCE LINE # 118
0025 120000   F      412             LCALL   _?OSTimeTick
                     413     ; OSIntExit();
                     414                             ; SOURCE LINE # 119
0028 120000   F      415             LCALL   _?OSIntExit
                     416     ; #pragma ASM
                     417     ; POP IE
002B D0A8            418               POP IE
                     419     ; #pragma ENDASM                
                     420     ; }
                     421                             ; SOURCE LINE # 123
002D D007            422             POP     AR7
002F D006            423             POP     AR6
0031 D005            424             POP     AR5
0033 D004            425             POP     AR4
0035 D003            426             POP     AR3
0037 D002            427             POP     AR2
0039 D001            428             POP     AR1
A51 MACRO ASSEMBLER  OS_CPU_C                                                             07/03/2002 08:51:27 PAGE     8

003B D000            429             POP     AR0
003D D0D0            430             POP     PSW
003F D082            431             POP     DPL
0041 D083            432             POP     DPH
0043 D0F0            433             POP     B
0045 D0E0            434             POP     ACC
0047 32              435             RETI    
                     436     ; END OF _?OSTickISR
                     437     
                     438     ; 
                     439     ; /* If you want to write ISRs for your own, just do as OSTickISR() */
                     440     ; 
                     441     ; /*$PAGE*/
                     442     ; #if OS_CPU_HOOKS_EN
                     443     ; 
                     444     ; 
                     445     ; /*
                     446     ; *****************************************************************************************
                             ****************
                     447     ; *                                          TASK CREATION HOOK
                     448     ; *
                     449     ; * Description: This function is called when a task is created.
                     450     ; *
                     451     ; * Arguments  : ptcb   is a pointer to the task control block of the task being created.
                     452     ; *
                     453     ; * Note(s)    : 1) Interrupts are disabled during this call.
                     454     ; *****************************************************************************************
                             ****************
                     455     ; */
                     456     ; void OSTaskCreateHook (OS_TCB *ptcb) KCREENTRANT
                     457     
----                 458             RSEG  ?PR?_?OSTaskCreateHook?OS_CPU_C
0000                 459     _?OSTaskCreateHook:
                     460             USING   0
                     461                             ; SOURCE LINE # 142
0000 120000   F      462             LCALL   L?0014
                     463     ; {
                     464     ;     ptcb = ptcb;                       /* Prevent compiler warning                       
                                           */
                     465                             ; SOURCE LINE # 144
0003 120000   F      466             LCALL   L?0013
0006 120000   F      467             LCALL   ?C?PLDXDATA
0009 120000   F      468             LCALL   L?0013
000C 120000   F      469             LCALL   ?C?PSTXDATA
                     470     ; }
                     471                             ; SOURCE LINE # 145
000F 900003          472             MOV     DPTR,#03H
0012 020000   F      473             LJMP    ?C?ADDXBP
                     474     ; END OF _?OSTaskCreateHook
                     475     
                     476     ; 
                     477     ; 
                     478     ; /*
                     479     ; *****************************************************************************************
                             ****************
                     480     ; *                                           TASK DELETION HOOK
                     481     ; *
                     482     ; * Description: This function is called when a task is deleted.
                     483     ; *
                     484     ; * Arguments  : ptcb   is a pointer to the task control block of the task being deleted.
                     485     ; *
                     486     ; * Note(s)    : 1) Interrupts are disabled during this call.
                     487     ; *****************************************************************************************
                             ****************
                     488     ; */
                     489     ; void OSTaskDelHook (OS_TCB *ptcb) KCREENTRANT
A51 MACRO ASSEMBLER  OS_CPU_C                                                             07/03/2002 08:51:27 PAGE     9

                     490     
----                 491             RSEG  ?PR?_?OSTaskDelHook?OS_CPU_C
0000                 492     _?OSTaskDelHook:
                     493             USING   0
                     494                             ; SOURCE LINE # 159
0000 120000   F      495             LCALL   L?0015
                     496     ; {
                     497     ;     ptcb = ptcb;                       /* Prevent compiler warning                       
                                           */
                     498                             ; SOURCE LINE # 161
0003 120000   F      499             LCALL   L?0013
0006 120000   F      500             LCALL   ?C?PLDXDATA
0009 120000   F      501             LCALL   L?0013
000C 120000   F      502             LCALL   ?C?PSTXDATA
                     503     ; }
                     504                             ; SOURCE LINE # 162
000F 900003          505             MOV     DPTR,#03H
0012 020000   F      506             LJMP    ?C?ADDXBP
                     507     ; END OF _?OSTaskDelHook
                     508     
                     509     ; 
                     510     ; /*
                     511     ; *****************************************************************************************
                             ****************
                     512     ; *                                           TASK SWITCH HOOK
                     513     ; *
                     514     ; * Description: This function is called when a task switch is performed.  This allows you 
                             to perform other
                     515     ; *              operations during a context switch.
                     516     ; *
                     517     ; * Arguments  : none
                     518     ; *
                     519     ; * Note(s)    : 1) Interrupts are disabled during this call.
                     520     ; *              2) It is assumed that the global pointer 'OSTCBHighRdy' points to the TCB 
                             of the task that
                     521     ; *                 will be 'switched in' (i.e. the highest priority task) and, 'OSTCBCur' 
                             points to the 
                     522     ; *                 task being switched out (i.e. the preempted task).
                     523     ; *****************************************************************************************
                             ****************
                     524     ; */
                     525     ; void OSTaskSwHook (void) KCREENTRANT
                     526     
----                 527             RSEG  ?PR?_?OSTaskSwHook?OS_CPU_C
0000                 528     _?OSTaskSwHook:
                     529                             ; SOURCE LINE # 179
                     530     ; {
                     531     ; }
                     532                             ; SOURCE LINE # 181
0000 22              533             RET     
                     534     ; END OF _?OSTaskSwHook
                     535     
                     536     ; 
                     537     ; /*
                     538     ; *****************************************************************************************

⌨️ 快捷键说明

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