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

📄 bsp_os.lst

📁 stm32+ucos-ii
💻 LST
📖 第 1 页 / 共 2 页
字号:
   \   00000020   3800               MOVS     R0,R7
   \   00000022   ........           BL       OSEventNameSet
    159          #endif
    160              
    161          
    162              return (DEF_OK);
   \   00000026   0120               MOVS     R0,#+1
   \                     ??BSP_OS_SemCreate_1:
   \   00000028   F2BD               POP      {R1,R4-R7,PC}    ;; return
    163          }
    164          
    165          
    166          /*
    167          *********************************************************************************************************
    168          *                                     BSP_OS_SemWait()
    169          *
    170          * Description : Wait on a semaphore to become available
    171          *
    172          * Argument(s) : p_sem        Pointer to the sempahore handler.
    173          *  
    174          *               dly_ms       delay in miliseconds to wait on the semaphore
    175          *
    176          * Return(s)   : error code return     DEF_OK       if the semaphore was acquire
    177          *                                     DEF_FAIL     if the sempahore could not be acquire
    178          *     
    179          * Caller(s)   : Application.
    180          *
    181          * Note(s)     : none.
    182          *********************************************************************************************************
    183          */
    184          

   \                                 In section .text, align 2, keep-with-next
    185          CPU_BOOLEAN  BSP_OS_SemWait (BSP_OS_SEM *p_sem,
    186                                       CPU_INT32U  dly_ms)
    187          {
   \                     BSP_OS_SemWait:
   \   00000000   70B5               PUSH     {R4-R6,LR}
   \   00000002   82B0               SUB      SP,SP,#+8
   \   00000004   0400               MOVS     R4,R0
   \   00000006   0D00               MOVS     R5,R1
    188              CPU_INT08U  err;
    189              CPU_INT32U  dly_ticks;
    190              
    191          
    192              dly_ticks  = ((dly_ms * DEF_TIME_NBR_mS_PER_SEC) / OS_TICKS_PER_SEC);
   \   00000008   4FF47A70           MOV      R0,#+1000
   \   0000000C   00FB05F0           MUL      R0,R0,R5
   \   00000010   4FF47A71           MOV      R1,#+1000
   \   00000014   B0FBF1F0           UDIV     R0,R0,R1
   \   00000018   0600               MOVS     R6,R0
    193              
    194              OSSemPend((OS_EVENT   *)*p_sem,
    195                        (CPU_INT32U  )dly_ticks,
    196                        (CPU_INT08U *)&err);
   \   0000001A   00AA               ADD      R2,SP,#+0
   \   0000001C   3100               MOVS     R1,R6
   \   0000001E   2068               LDR      R0,[R4, #+0]
   \   00000020   ........           BL       OSSemPend
    197          
    198              if (err != OS_ERR_NONE) {
   \   00000024   9DF80000           LDRB     R0,[SP, #+0]
   \   00000028   0028               CMP      R0,#+0
   \   0000002A   01D0               BEQ.N    ??BSP_OS_SemWait_0
    199                 return (DEF_FAIL);
   \   0000002C   0020               MOVS     R0,#+0
   \   0000002E   00E0               B.N      ??BSP_OS_SemWait_1
    200              }
    201          
    202              return (DEF_OK);
   \                     ??BSP_OS_SemWait_0:
   \   00000030   0120               MOVS     R0,#+1
   \                     ??BSP_OS_SemWait_1:
   \   00000032   76BD               POP      {R1,R2,R4-R6,PC}  ;; return
    203          }
    204          
    205          /*
    206          *********************************************************************************************************
    207          *                                      BSP_OS_SemCreate()
    208          *
    209          * Description : Post a semaphore
    210          *
    211          * Argument(s) : p_sem                 Pointer to the Semaphore handler.
    212          *  
    213          * Return(s)   : error code return     DEF_OK     if the semaphore was posted.
    214          *                                     DEF_FAIL   if the sempahore could not be posted.
    215          *     
    216          * Caller(s)   : Application.
    217          *
    218          * Note(s)     : none.
    219          *********************************************************************************************************
    220          */
    221          

   \                                 In section .text, align 2, keep-with-next
    222          CPU_BOOLEAN  BSP_OS_SemPost (BSP_OS_SEM * p_sem)
    223          {
   \                     BSP_OS_SemPost:
   \   00000000   38B5               PUSH     {R3-R5,LR}
   \   00000002   0400               MOVS     R4,R0
    224              CPU_INT08U  err;
    225              
    226                  
    227              err = OSSemPost((OS_EVENT *)*p_sem);
   \   00000004   2068               LDR      R0,[R4, #+0]
   \   00000006   ........           BL       OSSemPost
   \   0000000A   0500               MOVS     R5,R0
    228              
    229              if (err != OS_ERR_NONE) {
   \   0000000C   EDB2               UXTB     R5,R5            ;; ZeroExt  R5,R5,#+24,#+24
   \   0000000E   002D               CMP      R5,#+0
   \   00000010   01D0               BEQ.N    ??BSP_OS_SemPost_0
    230                  return (DEF_FAIL);
   \   00000012   0020               MOVS     R0,#+0
   \   00000014   00E0               B.N      ??BSP_OS_SemPost_1
    231              }
    232          
    233              return (DEF_OK);
   \                     ??BSP_OS_SemPost_0:
   \   00000016   0120               MOVS     R0,#+1
   \                     ??BSP_OS_SemPost_1:
   \   00000018   32BD               POP      {R1,R4,R5,PC}    ;; return
    234          }
    235          
    236          
    237          
    238          /*
    239          *********************************************************************************************************
    240          *********************************************************************************************************
    241          **                                     uC/OS-II TIMER FUNCTIONS
    242          *********************************************************************************************************
    243          *********************************************************************************************************
    244          */
    245          
    246          /*
    247          *********************************************************************************************************
    248          *                                    BSP_TimeDlyMs()
    249          *
    250          * Description : This function delay the exceution for specifi amount of miliseconds
    251          *
    252          * Argument(s) : dly_ms       Delay in miliseconds
    253          *
    254          * Return(s)   : none.
    255          *
    256          * Caller(s)   : Application
    257          *
    258          * Note(s)     : none.
    259          *               
    260          *********************************************************************************************************
    261          */
    262          

   \                                 In section .text, align 2, keep-with-next
    263          void   BSP_OS_TimeDlyMs (CPU_INT32U  dly_ms)
    264          {
   \                     BSP_OS_TimeDlyMs:
   \   00000000   70B5               PUSH     {R4-R6,LR}
   \   00000002   0400               MOVS     R4,R0
    265              CPU_INT16U  os_ms;
    266              CPU_INT08U  os_sec;
    267              
    268          
    269              if (dly_ms > 10000) {                                       /* Limit delays to 10 seconds.                        */
   \   00000004   42F21170           MOVW     R0,#+10001
   \   00000008   8442               CMP      R4,R0
   \   0000000A   02D3               BCC.N    ??BSP_OS_TimeDlyMs_0
    270                  dly_ms = 10000;
   \   0000000C   42F21070           MOVW     R0,#+10000
   \   00000010   0400               MOVS     R4,R0
    271              }
    272          
    273              os_sec = dly_ms / 1000;
   \                     ??BSP_OS_TimeDlyMs_0:
   \   00000012   4FF47A70           MOV      R0,#+1000
   \   00000016   B4FBF0F0           UDIV     R0,R4,R0
   \   0000001A   0600               MOVS     R6,R0
    274              os_ms  = dly_ms % 1000;
   \   0000001C   4FF47A70           MOV      R0,#+1000
   \   00000020   B4FBF0F1           UDIV     R1,R4,R0
   \   00000024   00FB1140           MLS      R0,R0,R1,R4
   \   00000028   0500               MOVS     R5,R0
    275          
    276              OSTimeDlyHMSM(0, 0, os_sec, os_ms);    
   \   0000002A   2B00               MOVS     R3,R5
   \   0000002C   9BB2               UXTH     R3,R3            ;; ZeroExt  R3,R3,#+16,#+16
   \   0000002E   3200               MOVS     R2,R6
   \   00000030   D2B2               UXTB     R2,R2            ;; ZeroExt  R2,R2,#+24,#+24
   \   00000032   0021               MOVS     R1,#+0
   \   00000034   0020               MOVS     R0,#+0
   \   00000036   ........           BL       OSTimeDlyHMSM
    277          }
   \   0000003A   70BD               POP      {R4-R6,PC}       ;; return
    278          

   Maximum stack usage in bytes:

     Function         .cstack
     --------         -------
     BSP_OS_SemCreate     24
     BSP_OS_SemPost       16
     BSP_OS_SemWait       24
     BSP_OS_TimeDlyMs     16


   Section sizes:

     Function/Label   Bytes
     --------------   -----
     BSP_OS_SemCreate   42
     BSP_OS_SemWait     52
     BSP_OS_SemPost     26
     BSP_OS_TimeDlyMs   60

 
 180 bytes in section .text
 
 180 bytes of CODE memory

Errors: none
Warnings: none

⌨️ 快捷键说明

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