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

📄 os_cpu_c.ls1

📁 本文面向首次接触uC/OS-II的程序员
💻 LS1
📖 第 1 页 / 共 4 页
字号:
0000                 210     _?OSTaskCreateHook:
                     211             USING   0
                     212                             ; SOURCE LINE # 72
0000 90FFFD          213             MOV     DPTR,#0FFFDH
0003 120000   F      214             LCALL   ?C?ADDXBP
0006 120000   F      215             LCALL   ?C?PSTXDATA
                     216     ; {
                     217     ;     ptcb = ptcb;                       /* Prevent compiler warning                       
                                           */
                     218                             ; SOURCE LINE # 74
0009 850083   F      219             MOV     DPH,?C_XBP
000C 850082   F      220             MOV     DPL,?C_XBP+01H
000F 120000   F      221             LCALL   ?C?PLDXDATA
0012 850083   F      222             MOV     DPH,?C_XBP
0015 850082   F      223             MOV     DPL,?C_XBP+01H
0018 120000   F      224             LCALL   ?C?PSTXDATA
                     225     ; }
                     226                             ; SOURCE LINE # 75
001B 900003          227             MOV     DPTR,#03H
001E 020000   F      228             LJMP    ?C?ADDXBP
                     229     ; END OF _?OSTaskCreateHook
                     230     
                     231     ; #endif
                     232     ; 
                     233     ; 
                     234     ; /*
                     235     ; *****************************************************************************************
                             ****************
                     236     ; *                                           TASK DELETION HOOK
                     237     ; *
                     238     ; * Description: This function is called when a task is deleted.
                     239     ; *
                     240     ; * Arguments  : ptcb   is a pointer to the task control block of the task being deleted.
                     241     ; *
                     242     ; * Note(s)    : 1) Interrupts are disabled during this call.
                     243     ; *****************************************************************************************
                             ****************
                     244     ; */
A51 MACRO ASSEMBLER  OS_CPU_C                                                             07/05/2005 11:17:07 PAGE     5

                     245     ; #if OS_CPU_HOOKS_EN > 0 
                     246     ; void  OSTaskDelHook (OS_TCB *ptcb) reentrant
                     247     
----                 248             RSEG  ?PR?_?OSTaskDelHook?OS_CPU_C
0000                 249     _?OSTaskDelHook:
                     250             USING   0
                     251                             ; SOURCE LINE # 91
0000 90FFFD          252             MOV     DPTR,#0FFFDH
0003 120000   F      253             LCALL   ?C?ADDXBP
0006 120000   F      254             LCALL   ?C?PSTXDATA
                     255     ; {
                     256     ;     ptcb = ptcb;                       /* Prevent compiler warning                       
                                           */
                     257                             ; SOURCE LINE # 93
0009 850083   F      258             MOV     DPH,?C_XBP
000C 850082   F      259             MOV     DPL,?C_XBP+01H
000F 120000   F      260             LCALL   ?C?PLDXDATA
0012 850083   F      261             MOV     DPH,?C_XBP
0015 850082   F      262             MOV     DPL,?C_XBP+01H
0018 120000   F      263             LCALL   ?C?PSTXDATA
                     264     ; }
                     265                             ; SOURCE LINE # 94
001B 900003          266             MOV     DPTR,#03H
001E 020000   F      267             LJMP    ?C?ADDXBP
                     268     ; END OF _?OSTaskDelHook
                     269     
                     270     ; #endif
                     271     ; 
                     272     ; /*
                     273     ; *****************************************************************************************
                             ****************
                     274     ; *                                             IDLE TASK HOOK
                     275     ; *
                     276     ; * Description: This function is called by the idle task.  This hook has been added to all
                             ow you to do  
                     277     ; *              such things as STOP the CPU to conserve power.
                     278     ; *
                     279     ; * Arguments  : none
                     280     ; *
                     281     ; * Note(s)    : 1) Interrupts are enabled during this call.
                     282     ; *****************************************************************************************
                             ****************
                     283     ; */
                     284     ; #if OS_CPU_HOOKS_EN > 0 && OS_VERSION >= 251
                     285     ; void  OSTaskIdleHook (void) reentrant
                     286     
----                 287             RSEG  ?PR?_?OSTaskIdleHook?OS_CPU_C
0000                 288     _?OSTaskIdleHook:
                     289                             ; SOURCE LINE # 110
                     290     ; {
                     291     ; }
                     292                             ; SOURCE LINE # 112
0000 22              293             RET     
                     294     ; END OF _?OSTaskIdleHook
                     295     
                     296     ; #endif
                     297     ; 
                     298     ; /*
                     299     ; *****************************************************************************************
                             ****************
                     300     ; *                                           STATISTIC TASK HOOK
                     301     ; *
                     302     ; * Description: This function is called every second by uC/OS-II's statistics task.  This 
                             allows your 
                     303     ; *              application to add functionality to the statistics task.
                     304     ; *
A51 MACRO ASSEMBLER  OS_CPU_C                                                             07/05/2005 11:17:07 PAGE     6

                     305     ; * Arguments  : none
                     306     ; *****************************************************************************************
                             ****************
                     307     ; */
                     308     ; 
                     309     ; #if OS_CPU_HOOKS_EN > 0 
                     310     ; void  OSTaskStatHook (void) reentrant
                     311     
----                 312             RSEG  ?PR?_?OSTaskStatHook?OS_CPU_C
0000                 313     _?OSTaskStatHook:
                     314                             ; SOURCE LINE # 127
                     315     ; {
                     316     ; }
                     317                             ; SOURCE LINE # 129
0000 22              318             RET     
                     319     ; END OF _?OSTaskStatHook
                     320     
                     321     ; #endif
                     322     ; 
                     323     ; /*$PAGE*/
                     324     ; /*
                     325     ; *****************************************************************************************
                             ****************
                     326     ; *                                          OSTaskStkInit
                     327     ; *
                     328     ; * Description: Init stack before task running.
                     329     ; *
                     330     ; * Arguments  : task          is a pointer to the task code
                     331     ; *
                     332     ; *              pdata         is a pointer to a user supplied data area that will be passe
                             d to the task
                     333     ; *                            when the task first executes.
                     334     ; *
                     335     ; *              ptos          is a pointer to the top of stack.  It is assumed that 'ptos'
                              points to
                     336     ; *                            a 'free' entry on the task stack.  If OS_STK_GROWTH is set t
                             o 1 then 
                     337     ; *                            'ptos' will contain the HIGHEST valid address of the stack. 
                              Similarly, if
                     338     ; *                            OS_STK_GROWTH is set to 0, the 'ptos' will contains the LOWE
                             ST valid address
                     339     ; *                            of the stack.
                     340     ; *
                     341     ; *              opt           specifies options that can be used to alter the behavior of 
                             OSTaskStkInit().
                     342     ; *                            (see uCOS_II.H for OS_TASK_OPT_???).
                     343     ; *
                     344     ; * Returns    : Always returns the bottom of stack.
                     345     ; *
                     346     ; * Note(s)    : 1) stack stored as following format
                     347     ; 
                     348     ; ;     CONTENT                                                                            
                                                  START POSITION IN OSTCBStk      
                     349     ; ;     ----------                                                                         
                                                  ----------------------          
                     350     ; ;     AR7                                                                     
                     351     ; ;     AR6
                     352     ; ;     AR5
                     353     ; ;     AR4
                     354     ; ;     AR3
                     355     ; ;     AR2
                     356     ; ;     AR1
                     357     ; ;     AR0
                     358     ; ;     PSW
                     359     ; ;     DPL
                     360     ; ;     DPH
A51 MACRO ASSEMBLER  OS_CPU_C                                                             07/05/2005 11:17:07 PAGE     7

                     361     ; ;     B
                     362     ; ;     ACC                                                             
                     363     ; ;     HARDWARE STACK CONTENT(NOT INCLUDE REGISTERS)                   2+SmltStkSize      
                                                                  
                     364     ; ;     HARDWARE STACK SIZE(INCLUDE REGISTERS)                                  1+SmltStkSi
                             ze           
                     365     ; ;     SIMULATED STACK CONTENT                                                            
                                  1                               
                     366     ; ;     ?C_IBP                                                                             
                                                  0
                     367     ;                       
                     368     ; *****************************************************************************************
                             ****************
                     369     ; */
                     370     ; OS_STK  *OSTaskStkInit (void (*task)(void *pd) reentrant, void *os_pdata, OS_STK *ptos, I
                             NT16U opt) reentrant
                     371     
----                 372             RSEG  ?PR?_?OSTaskStkInit?OS_CPU_C
0000                 373     _?OSTaskStkInit:
                     374             USING   0
                     375                             ; SOURCE LINE # 179
0000 90FFFD          376             MOV     DPTR,#0FFFDH
0003 120000   F      377             LCALL   ?C?ADDXBP
0006 120000   F      378             LCALL   ?C?PSTXDATA
0009 90FFFD          379             MOV     DPTR,#0FFFDH
000C 120000   F      380             LCALL   ?C?ADDXBP
                     381     ; {
                     382     ;       OS_STK *stk;
                     383     ; 
                     384     ;     os_pdata = os_pdata;
                     385                             ; SOURCE LINE # 183
000F 900006          386             MOV     DPTR,#06H
0012 120000   F      387             LCALL   ?C?XBPOFF
0015 120000   F      388             LCALL   ?C?PLDXDATA
0018 900006          389             MOV     DPTR,#06H
001B 120000   F      390             LCALL   ?C?XBPOFF
001E 120000   F      391             LCALL   ?C?PSTXDATA
                     392     ;     opt    = opt;                               //opt没被用到,保留此语句防止告警产生
                     393                             ; SOURCE LINE # 184
0021 90000C          394             MOV     DPTR,#0CH
0024 120000   F      395             LCALL   ?C?XBPOFF
0027 E0              396             MOVX    A,@DPTR
0028 FE              397             MOV     R6,A
0029 A3              398             INC     DPTR
002A E0              399             MOVX    A,@DPTR
002B FF              400             MOV     R7,A
002C 90000C          401             MOV     DPTR,#0CH
002F 120000   F      402             LCALL   ?C?XBPOFF
0032 EE              403             MOV     A,R6
0033 F0              404             MOVX    @DPTR,A
0034 A3              405             INC     DPTR
0035 EF              406             MOV     A,R7
0036 F0              407             MOVX    @DPTR,A
                     408     ;     
                     409     ;     stk    = (OS_STK *)ptos;                    //用户堆栈最低有效地址
                     410                             ; SOURCE LINE # 186
0037 900009          411             MOV     DPTR,#09H

⌨️ 快捷键说明

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