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

📄 os_probe.lst

📁 针对STM32F103的UCOS移植
💻 LST
📖 第 1 页 / 共 4 页
字号:
   \   0000001A   4160               STR      R1,[R0, #+4]
    125              OSProbe_TmrCntsPrev = 0;
   \   0000001C   0180               STRH     R1,[R0, #+0]
    126          #endif
    127          }
   \   0000001E   00BD               POP      {PC}             ;; return
    128          
    129          
    130          /*
    131          *********************************************************************************************************
    132          *                  Initialize uC/OS-II Objects for uC/Probe Plug-In
    133          *
    134          * Description: This function creates system objects--one task--for the uC/Probe Plug-In for uC/OS-II.
    135          *
    136          * Argument(s): None.
    137          *
    138          * Returns    : None
    139          *********************************************************************************************************
    140          */
    141          
    142          #if OS_PROBE_TASK > 0

   \                                 In segment CODE, align 4, keep-with-next
    143          static  void  OSProbe_InitOS (void)
    144          {
   \                     OSProbe_InitOS:
   \   00000000   01B5               PUSH     {R0,LR}
    145          #if OS_TASK_NAME_SIZE > 12
    146              INT8U  err;
    147          #endif
    148          
    149          
    150          #if OS_TASK_CREATE_EXT_EN > 0
    151              #if OS_STK_GROWTH == 1
    152              (void)OSTaskCreateExt(OSProbe_Task,
    153                                    (void *)0,                                    /* No arguments passed to OSProbe_Task()            */
    154                                    &OSProbe_TaskStk[OS_PROBE_TASK_STK_SIZE - 1], /* Set Top-Of-Stack                                 */
    155                                    OS_PROBE_TASK_PRIO,                           /* Lowest priority level                            */
    156                                    OS_PROBE_TASK_ID,
    157                                    &OSProbe_TaskStk[0],                          /* Set Bottom-Of-Stack                              */
    158                                    OS_PROBE_TASK_STK_SIZE,
    159                                    (void *)0,                                    /* No TCB extension                                 */
    160                                    OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);   /* Enable stack checking + clear stack              */
   \   00000002   0B48               LDR.N    R0,??OSProbe_InitOS_0  ;; OSProbe_TaskStk
   \   00000004   0323               MOVS     R3,#+3
   \   00000006   0022               MOVS     R2,#+0
   \   00000008   5FF48071           MOVS     R1,#+256
   \   0000000C   0FB4               PUSH     {R0-R3}
   \   0000000E   0821               MOVS     R1,#+8
   \   00000010   02B4               PUSH     {R1}
   \   00000012   0B46               MOV      R3,R1
   \   00000014   00F2FC32           ADDW     R2,R0,#+1020
   \   00000018   0021               MOVS     R1,#+0
   \   0000001A   0648               LDR.N    R0,??OSProbe_InitOS_0+0x4  ;; OSProbe_Task
   \   0000001C   ........           _BLF     OSTaskCreateExt,??OSTaskCreateExt??rT
    161              #else
    162              (void)OSTaskCreateExt(OSProbe_Task,
    163                                    (void *)0,                                    /* No arguments passed to OSProbe_Task()            */
    164                                    &OSProbe_TaskStk[0],                          /* Set Top-Of-Stack                                 */
    165                                    OS_PROBE_TASK_PRIO,                           /* Lowest priority level                            */
    166                                    OS_PROBE_TASK_ID,
    167                                    &OSProbe_TaskStk[OS_PROBE_TASK_STK_SIZE - 1], /* Set Bottom-Of-Stack                              */
    168                                    OS_PROBE_TASK_STK_SIZE,
    169                                    (void *)0,                                    /* No TCB extension                                 */
    170                                    OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);   /* Enable stack checking + clear stack              */
    171              #endif
    172          #else
    173              #if OS_STK_GROWTH == 1
    174              (void)OSTaskCreate(OSProbe_Task,
    175                                 (void *)0,
    176                                 &OSProbe_TaskStk[OS_PROBE_TASK_STK_SIZE - 1],
    177                                 OS_PROBE_TASK_PRIO);
    178              #else
    179              (void)OSTaskCreate(OSProbe_Task,
    180                                 (void *)0,
    181                                 &OSProbe_TaskStk[0],
    182                                 OS_PROBE_TASK_PRIO);
    183              #endif
    184          #endif
    185          
    186          #if OS_TASK_NAME_SIZE > 20
    187              OSTaskNameSet(OS_PROBE_TASK_PRIO, (INT8U *)"uC/Probe OS Plug-In", &err);
    188          #else
    189          #if OS_TASK_NAME_SIZE > 12
    190              OSTaskNameSet(OS_PROBE_TASK_PRIO, (INT8U *)"uC/Probe OS", &err);
   \   00000020   05AA               ADD      R2,SP,#+20
   \   00000022   0549               LDR.N    R1,??OSProbe_InitOS_0+0x8  ;; `?<Constant "uC/Probe OS">`
   \   00000024   0820               MOVS     R0,#+8
   \   00000026   ........           _BLF     OSTaskNameSet,??OSTaskNameSet??rT
    191          #endif
    192          #endif
    193          }
   \   0000002A   06B0               ADD      SP,SP,#+24
   \   0000002C   00BD               POP      {PC}             ;; return
   \   0000002E   00BF               Nop      
   \                     ??OSProbe_InitOS_0:
   \   00000030   ........           DC32     OSProbe_TaskStk
   \   00000034   ........           DC32     OSProbe_Task
   \   00000038   ........           DC32     `?<Constant "uC/Probe OS">`
    194          #endif
    195          
    196          
    197          /*
    198          *********************************************************************************************************
    199          *                                      Set Callback Function
    200          *
    201          * Description: This routine sets the callback function which will be invoked in OSProbe_Task()
    202          *
    203          * Argument(s): call_back    is a pointer to the callback function.
    204          *
    205          * Returns    : none.
    206          *********************************************************************************************************
    207          */
    208          
    209          #if OS_PROBE_TASK > 0

   \                                 In segment CODE, align 4, keep-with-next
    210          void    OSProbe_SetCallback (void (*call_back)(void))
    211          {
    212              OSProbe_CallbackFnct = call_back;
   \                     OSProbe_SetCallback:
   \   00000000   0149               LDR.N    R1,??OSProbe_SetCallback_0  ;; OSProbe_Delay + 4
   \   00000002   0860               STR      R0,[R1, #+0]
    213          }
   \   00000004   7047               BX       LR               ;; return
   \   00000006   00BF               Nop      
   \                     ??OSProbe_SetCallback_0:
   \   00000008   ........           DC32     OSProbe_Delay + 4
    214          #endif
    215          
    216          
    217          /*
    218          *********************************************************************************************************
    219          *                                      Set Task Delay
    220          *
    221          * Description: This routine sets the delay used in OSProbe_Task()
    222          *
    223          * Argument(s): delay    is the delay, in milliseconds.
    224          *
    225          * Returns    : none.
    226          *********************************************************************************************************
    227          */
    228          
    229          #if OS_PROBE_TASK > 0

   \                                 In segment CODE, align 4, keep-with-next
    230          void    OSProbe_SetDelay (INT16U  delay)
    231          {
    232              OSProbe_Delay = delay;
   \                     OSProbe_SetDelay:
   \   00000000   ....               LDR.N    R1,??DataTable3  ;; OSProbe_Delay
   \   00000002   0880               STRH     R0,[R1, #+0]
    233          }
   \   00000004   7047               BX       LR               ;; return
    234          #endif
    235          
    236          
    237          /*
    238          *********************************************************************************************************
    239          *********************************************************************************************************
    240          **                                             TASK HOOKS
    241          *********************************************************************************************************
    242          *********************************************************************************************************
    243          */
    244          
    245          /*
    246          *********************************************************************************************************
    247          *                               uC/Probe Plug-in for uC/OS-II TASK CREATE HOOK
    248          *
    249          * Description: This function MUST be called by uC/OS-II's Task Create Hook function: OSTaskCreateHook().
    250          *********************************************************************************************************
    251          */
    252          
    253          #if OS_PROBE_HOOKS_EN > 0

   \                                 In segment CODE, align 4, keep-with-next
    254          void  OSProbe_TaskCreateHook (OS_TCB *ptcb)
    255          {
   \                     OSProbe_TaskCreateHook:
   \   00000000   10B5               PUSH     {R4,LR}
   \   00000002   0400               MOVS     R4,R0
    256              ptcb->OSTCBCyclesStart = OSProbe_TimeGetCycles();               /* Get the current start time for this task.            */
   \   00000004   ........           BL       OSProbe_TimeGetCycles
   \   00000008   E063               STR      R0,[R4, #+60]
    257              ptcb->OSTCBCyclesTot   = 0;                                     /* Update the task's total execution time               */
   \   0000000A   0020               MOVS     R0,#+0
   \   0000000C   A063               STR      R0,[R4, #+56]
    258          }
   \   0000000E   10BD               POP      {R4,PC}          ;; return
    259          #endif
    260          
    261          
    262          /*
    263          *********************************************************************************************************
    264          *                               uC/Probe Plug-in for uC/OS-II TASK SWITCH HOOK
    265          *
    266          * Description: This function MUST be called by uC/OS-II's Task Switch Hook function: OSTaskSwHook().
    267          *********************************************************************************************************
    268          */
    269          
    270          #if OS_PROBE_HOOKS_EN > 0

   \                                 In segment CODE, align 4, keep-with-next
    271          void  OSProbe_TaskSwHook (void)
    272          {
   \                     OSProbe_TaskSwHook:

⌨️ 快捷键说明

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