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

📄 os_cpu_c.ls1

📁 一个关于UCOS的KEIL工程
💻 LS1
📖 第 1 页 / 共 4 页
字号:
                     243     ; END OF _?OSTaskCreateHook
                     244     
                     245     ; #endif
                     246     ; 
                     247     ; 
A51 MACRO ASSEMBLER  OS_CPU_C                                                             01/12/2005 13:55:43 PAGE     5

                     248     ; /*
                     249     ; *****************************************************************************************
                             ****************
                     250     ; *                                           TASK DELETION HOOK
                     251     ; *
                     252     ; * Description: This function is called when a task is deleted.
                     253     ; *
                     254     ; * Arguments  : ptcb   is a pointer to the task control block of the task being deleted.
                     255     ; *
                     256     ; * Note(s)    : 1) Interrupts are disabled during this call.
                     257     ; *****************************************************************************************
                             ****************
                     258     ; */
                     259     ; #if OS_CPU_HOOKS_EN > 0 
                     260     ; void  OSTaskDelHook (OS_TCB *ptcb) KCREENTRANT
                     261     
----                 262             RSEG  ?PR?_?OSTaskDelHook?OS_CPU_C
0000                 263     _?OSTaskDelHook:
                     264             USING   0
                     265                             ; SOURCE LINE # 92
0000 90FFFD          266             MOV     DPTR,#0FFFDH
0003 120000   F      267             LCALL   ?C?ADDXBP
0006 EB              268             MOV     A,R3
0007 F0              269             MOVX    @DPTR,A
0008 A3              270             INC     DPTR
0009 EA              271             MOV     A,R2
000A F0              272             MOVX    @DPTR,A
000B A3              273             INC     DPTR
000C E9              274             MOV     A,R1
000D F0              275             MOVX    @DPTR,A
                     276     ; {
                     277     ;     ptcb = ptcb;                       /* Prevent compiler warning                       
                                           */
                     278                             ; SOURCE LINE # 94
000E 850083   F      279             MOV     DPH,?C_XBP
0011 850082   F      280             MOV     DPL,?C_XBP+01H
0014 E0              281             MOVX    A,@DPTR
0015 F9              282             MOV     R1,A
0016 A3              283             INC     DPTR
0017 E0              284             MOVX    A,@DPTR
0018 FA              285             MOV     R2,A
0019 A3              286             INC     DPTR
001A E0              287             MOVX    A,@DPTR
001B 850083   F      288             MOV     DPH,?C_XBP
001E 850082   F      289             MOV     DPL,?C_XBP+01H
0021 C9              290             XCH     A,R1
0022 F0              291             MOVX    @DPTR,A
0023 A3              292             INC     DPTR
0024 EA              293             MOV     A,R2
0025 F0              294             MOVX    @DPTR,A
0026 A3              295             INC     DPTR
0027 E9              296             MOV     A,R1
0028 F0              297             MOVX    @DPTR,A
                     298     ; }
                     299                             ; SOURCE LINE # 95
0029 900003          300             MOV     DPTR,#03H
002C 020000   F      301             LJMP    ?C?ADDXBP
                     302     ; END OF _?OSTaskDelHook
                     303     
                     304     ; #endif
                     305     ; 
                     306     ; /*
                     307     ; *****************************************************************************************
                             ****************
                     308     ; *                                             IDLE TASK HOOK
                     309     ; *
A51 MACRO ASSEMBLER  OS_CPU_C                                                             01/12/2005 13:55:43 PAGE     6

                     310     ; * Description: This function is called by the idle task.  This hook has been added to all
                             ow you to do  
                     311     ; *              such things as STOP the CPU to conserve power.
                     312     ; *
                     313     ; * Arguments  : none
                     314     ; *
                     315     ; * Note(s)    : 1) Interrupts are enabled during this call.
                     316     ; *****************************************************************************************
                             ****************
                     317     ; */
                     318     ; #if OS_CPU_HOOKS_EN > 0 && OS_VERSION >= 251
                     319     ; void  OSTaskIdleHook (void) KCREENTRANT
                     320     
----                 321             RSEG  ?PR?_?OSTaskIdleHook?OS_CPU_C
0000                 322     _?OSTaskIdleHook:
                     323                             ; SOURCE LINE # 111
                     324     ; {
                     325     ; }
                     326                             ; SOURCE LINE # 113
0000 22              327             RET     
                     328     ; END OF _?OSTaskIdleHook
                     329     
                     330     ; #endif
                     331     ; 
                     332     ; /*
                     333     ; *****************************************************************************************
                             ****************
                     334     ; *                                           STATISTIC TASK HOOK
                     335     ; *
                     336     ; * Description: This function is called every second by uC/OS-II's statistics task.  This 
                             allows your 
                     337     ; *              application to add functionality to the statistics task.
                     338     ; *
                     339     ; * Arguments  : none
                     340     ; *****************************************************************************************
                             ****************
                     341     ; */
                     342     ; 
                     343     ; #if OS_CPU_HOOKS_EN > 0 
                     344     ; void  OSTaskStatHook (void) KCREENTRANT
                     345     
----                 346             RSEG  ?PR?_?OSTaskStatHook?OS_CPU_C
0000                 347     _?OSTaskStatHook:
                     348                             ; SOURCE LINE # 128
                     349     ; {
                     350     ; }
                     351                             ; SOURCE LINE # 130
0000 22              352             RET     
                     353     ; END OF _?OSTaskStatHook
                     354     
                     355     ; #endif
                     356     ; 
                     357     ; /*$PAGE*/
                     358     ; /*
                     359     ; *****************************************************************************************
                             ****************
                     360     ; *                                        INITIALIZE A TASK'S STACK
                     361     ; *
                     362     ; * Description: This function is called by either OSTaskCreate() or OSTaskCreateExt() to i
                             nitialize the
                     363     ; *              stack frame of the task being created.  This function is highly processor 
                             specific.
                     364     ; *
                     365     ; * Arguments  : task          is a pointer to the task code
                     366     ; *
                     367     ; *              pdata         is a pointer to a user supplied data area that will be passe
A51 MACRO ASSEMBLER  OS_CPU_C                                                             01/12/2005 13:55:43 PAGE     7

                             d to the task
                     368     ; *                            when the task first executes.
                     369     ; *
                     370     ; *              ptos          is a pointer to the top of stack.  It is assumed that 'ptos'
                              points to
                     371     ; *                            a 'free' entry on the task stack.  If OS_STK_GROWTH is set t
                             o 1 then 
                     372     ; *                            'ptos' will contain the HIGHEST valid address of the stack. 
                              Similarly, if
                     373     ; *                            OS_STK_GROWTH is set to 0, the 'ptos' will contains the LOWE
                             ST valid address
                     374     ; *                            of the stack.
                     375     ; *
                     376     ; *              opt           specifies options that can be used to alter the behavior of 
                             OSTaskStkInit().
                     377     ; *                            (see uCOS_II.H for OS_TASK_OPT_???).
                     378     ; *
                     379     ; * Returns    : Always returns the location of the new top-of-stack' once the processor re
                             gisters have
                     380     ; *              been placed on the stack in the proper order.
                     381     ; *
                     382     ; * Note(s)    : Interrupts are enabled when your task starts executing. You can change thi
                             s by setting the
                     383     ; *              PSW to 0x0002 instead.  In this case, interrupts would be disabled upon ta
                             sk startup.  The
                     384     ; *              application code would be responsible for enabling interrupts at the begin
                             ning of the task
                     385     ; *              code.  You will need to modify OSTaskIdle() and OSTaskStat() so that they 
                             enable 
                     386     ; *              interrupts.  Failure to do this will make your system crash!
                     387     ; *****************************************************************************************
                             ****************
                     388     ; */
                     389     ; 
                     390     ; OS_STK  *OSTaskStkInit (void (*task)(void *pd) KCREENTRANT, void *pdata, OS_STK *ptos, IN
                             T16U opt) KCREENTRANT
                     391     
----                 392             RSEG  ?PR?_?OSTaskStkInit?OS_CPU_C
0000                 393     _?OSTaskStkInit:
                     394             USING   0
                     395                             ; SOURCE LINE # 166
0000 90FFFD          396             MOV     DPTR,#0FFFDH
0003 120000   F      397             LCALL   ?C?ADDXBP
0006 EB              398             MOV     A,R3
0007 F0              399             MOVX    @DPTR,A
0008 A3              400             INC     DPTR
0009 EA              401             MOV     A,R2
000A F0              402             MOVX    @DPTR,A
000B A3              403             INC     DPTR
000C E9              404             MOV     A,R1
000D F0              405             MOVX    @DPTR,A
000E 90FFFD          406             MOV     DPTR,#0FFFDH
0011 120000   F      407             LCALL   ?C?ADDXBP
                     408     ; {
                     409     ;     INT8U * stk;
                     410     ; 
                     411     ;     opt    = opt;                           /* 'opt' is not used, prevent warning        
                                           */
                     412                             ; SOURCE LINE # 170
0014 90000C          413             MOV     DPTR,#0CH
0017 120000   F      414             LCALL   ?C?XBPOFF
001A E0              415             MOVX    A,@DPTR
001B FE              416             MOV     R6,A
001C A3              417             INC     DPTR
001D E0              418             MOVX    A,@DPTR
001E FF              419             MOV     R7,A
A51 MACRO ASSEMBLER  OS_CPU_C                                                             01/12/2005 13:55:43 PAGE     8

001F 90000C          420             MOV     DPTR,#0CH
0022 120000   F      421             LCALL   ?C?XBPOFF
0025 EE              422             MOV     A,R6
0026 F0              423             MOVX    @DPTR,A
0027 A3              424             INC     DPTR
0028 EF              425             MOV     A,R7
0029 F0              426             MOVX    @DPTR,A
                     427     ;     stk    = (INT8U *) ptos;                /* Load stack pointer                        
                                           */
                     428                             ; SOURCE LINE # 171
002A 900009          429             MOV     DPTR,#09H
002D 120000   F      430             LCALL   ?C?XBPOFF
0030 E0              431             MOVX    A,@DPTR
0031 F9              432             MOV     R1,A
0032 A3              433             INC     DPTR
0033 E0              434             MOVX    A,@DPTR
0034 FA              435             MOV     R2,A
0035 A3              436             INC     DPTR
0036 E0              437             MOVX    A,@DPTR
0037 850083   F      438             MOV     DPH,?C_XBP
003A 850082   F      439             MOV     DPL,?C_XBP+01H
003D C9              440             XCH     A,R1
003E F0              441             MOVX    @DPTR,A
003F A3              442             INC     DPTR
0040 EA              443             MOV     A,R2
0041 F0              444             MOVX    @DPTR,A
0042 A3              445             INC     DPTR
0043 E9              446             MOV     A,R1
0044 F0              447             MOVX    @DPTR,A
                     448     ;     
                     449     ;       stk                             -= sizeof(void *);
                     450                             ; SOURCE LINE # 173
0045 850083   F      451             MOV     DPH,?C_XBP
0048 850082   F      452             MOV     DPL,?C_XBP+01H
004B A3              453             INC     DPTR
004C 74FF            454             MOV     A,#0FFH
004E 75F0FD          455             MOV     B,#0FDH
0051 120000   F      456             LCALL   ?C?IILDX
                     457     ;       *(void**)stk     = pdata;
                     458                             ; SOURCE LINE # 174
0054 900006          459             MOV     DPTR,#06H
0057 120000   F      460             LCALL   ?C?XBPOFF
005A E0              461             MOVX    A,@DPTR
005B FB              462             MOV     R3,A
005C A3              463             INC     DPTR
005D E0              464             MOVX    A,@DPTR
005E FA              465             MOV     R2,A
005F A3              466             INC     DPTR
0060 E0              467             MOVX    A,@DPTR
0061 F9              468             MOV     R1,A
0062 C003            469             PUSH    AR3
0064 C002            470             PUSH    AR2
0066 C001            471             PUSH    AR1
0068 850083   F      472             MOV     DPH,?C_XBP
006B 850082   F      473             MOV     DPL,?C_XBP+01H

⌨️ 快捷键说明

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