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

📄 os_probe.lst

📁 针对STM32F103的UCOS移植
💻 LST
📖 第 1 页 / 共 4 页
字号:
   \   0000004C   C346               MOV      R11,R8
    399                  ptcb       = &OSTCBTbl[0];                                  /*  ... Get pointer to first TCB ...                    */
   \   0000004E   2A4E               LDR.N    R6,??OSProbe_Task_0+0x8  ;; OSTCBTbl
   \   00000050   15E0               B.N      ??OSProbe_Task_5
    400                  while (i < OS_MAX_TASKS) {
    401                      if (ptcb == (OS_TCB *)0 || ptcb == (OS_TCB *)1) {
    402                          break;                                              /*  ... If ptcb is NULL, then last TCB reached ...      */
    403                      }
    404          
    405                                                                              /*  ... Calculate new CyclesDif, the number of cycles   */
    406                                                                              /*  ... used by the task since the last reading.  Half  */
    407                                                                              /*  ... the previous value is added to provide some     */
    408                                                                              /*  ... hysteresis, thereby reducing the natural        */
    409                                                                              /*  ... "jitter" in the data.                           */
    410                      cycles_dif[i]       = (ptcb->OSTCBCyclesTot - cycles_tot_last[i]) / 2 + (cycles_dif[i] / 2);
    411                      cycles_tot_last[i]  = ptcb->OSTCBCyclesTot;
    412                      cycles_tot         += cycles_dif[i];
    413          
    414                      if (ptcb->OSTCBStkSize == 0) {
    415                          OSProbe_TaskStkUsage[i] = 0;
    416                      } else {
    417          #if OS_STK_GROWTH == 1
    418                          OSProbe_TaskStkUsage[i] = (FP32)(((INT32U)(ptcb->OSTCBStkBase) - (INT32U)(ptcb->OSTCBStkPtr)) * 100)
    419                                                  / ((ptcb->OSTCBStkSize) * sizeof (OS_STK));
   \                     ??OSProbe_Task_6:
   \   00000052   02B4               PUSH     {R1}
   \   00000054   306C               LDR      R0,[R6, #+64]
   \   00000056   3168               LDR      R1,[R6, #+0]
   \   00000058   401A               SUBS     R0,R0,R1
   \   0000005A   6421               MOVS     R1,#+100
   \   0000005C   4843               MULS     R0,R1,R0
   \   0000005E   ........           _BLF     __ulongToFloat,??__ulongToFloat??rT
   \   00000062   0700               MOVS     R7,R0
   \   00000064   F068               LDR      R0,[R6, #+12]
   \   00000066   8000               LSLS     R0,R0,#+2
   \   00000068   ........           _BLF     __ulongToFloat,??__ulongToFloat??rT
   \   0000006C   0100               MOVS     R1,R0
   \   0000006E   3800               MOVS     R0,R7
   \   00000070   ........           _BLF     __fDiv,??__fDiv??rT
   \   00000074   02BC               POP      {R1}
   \   00000076   0860               STR      R0,[R1, #+0]
    420          #else
    421                          OSProbe_TaskStkUsage[i] = (FP32)(((INT32U)(ptcb->OSTCBStkPtr) - (INT32U)(ptcb->OSTCBStkBase)) * 100)
    422                                                  / ((ptcb->OSTCBStkSize) * sizeof (OS_STK));
    423          #endif
    424                      }
    425          
    426                      ptcb = ptcb->OSTCBPrev;
   \                     ??OSProbe_Task_7:
   \   00000078   B669               LDR      R6,[R6, #+24]
    427          
    428                      i++;
   \   0000007A   6D1C               ADDS     R5,R5,#+1
   \   0000007C   ADB2               UXTH     R5,R5
   \                     ??OSProbe_Task_5:
   \   0000007E   2800               MOVS     R0,R5
   \   00000080   1028               CMP      R0,#+16
   \   00000082   1CD2               BCS.N    ??OSProbe_Task_8
   \   00000084   002E               CMP      R6,#+0
   \   00000086   1AD0               BEQ.N    ??OSProbe_Task_8
   \   00000088   012E               CMP      R6,#+1
   \   0000008A   18D0               BEQ.N    ??OSProbe_Task_8
   \   0000008C   14EB8001           ADDS     R1,R4,R0, LSL #+2
   \   00000090   174A               LDR.N    R2,??OSProbe_Task_0  ;; ??cycles_tot_last
   \   00000092   12EB8002           ADDS     R2,R2,R0, LSL #+2
   \   00000096   B36B               LDR      R3,[R6, #+56]
   \   00000098   1768               LDR      R7,[R2, #+0]
   \   0000009A   DB1B               SUBS     R3,R3,R7
   \   0000009C   0F6C               LDR      R7,[R1, #+64]
   \   0000009E   7F08               LSRS     R7,R7,#+1
   \   000000A0   17EB5303           ADDS     R3,R7,R3, LSR #+1
   \   000000A4   0B64               STR      R3,[R1, #+64]
   \   000000A6   B16B               LDR      R1,[R6, #+56]
   \   000000A8   1160               STR      R1,[R2, #+0]
   \   000000AA   13EB0B0B           ADDS     R11,R3,R11
   \   000000AE   14EB8001           ADDS     R1,R4,R0, LSL #+2
   \   000000B2   F068               LDR      R0,[R6, #+12]
   \   000000B4   0028               CMP      R0,#+0
   \   000000B6   CCD1               BNE.N    ??OSProbe_Task_6
   \   000000B8   C1F80090           STR      R9,[R1, #+0]
   \   000000BC   DCE7               B.N      ??OSProbe_Task_7
    429                  }
    430                                                                              /*  ... For each task, calculate percent CPU usage.     */
    431                  for (i = 0; i < OS_MAX_TASKS; i++) {
   \                     ??OSProbe_Task_8:
   \   000000BE   4546               MOV      R5,R8
   \                     ??OSProbe_Task_9:
   \   000000C0   2800               MOVS     R0,R5
   \   000000C2   1028               CMP      R0,#+16
   \   000000C4   B5D2               BCS.N    ??OSProbe_Task_3
    432                      OSProbe_TaskCPUUsage[i] = (FP32)(cycles_dif[i] * 100) / cycles_tot;
   \   000000C6   1AEB8006           ADDS     R6,R10,R0, LSL #+2
   \   000000CA   14EB8000           ADDS     R0,R4,R0, LSL #+2
   \   000000CE   006C               LDR      R0,[R0, #+64]
   \   000000D0   6421               MOVS     R1,#+100
   \   000000D2   4843               MULS     R0,R1,R0
   \   000000D4   ........           _BLF     __ulongToFloat,??__ulongToFloat??rT
   \   000000D8   0700               MOVS     R7,R0
   \   000000DA   5846               MOV      R0,R11
   \   000000DC   ........           _BLF     __ulongToFloat,??__ulongToFloat??rT
   \   000000E0   0100               MOVS     R1,R0
   \   000000E2   3800               MOVS     R0,R7
   \   000000E4   ........           _BLF     __fDiv,??__fDiv??rT
   \   000000E8   B060               STR      R0,[R6, #+8]
    433                  }
   \   000000EA   6D1C               ADDS     R5,R5,#+1
   \   000000EC   ADB2               UXTH     R5,R5
   \   000000EE   E7E7               B.N      ??OSProbe_Task_9
   \                     ??OSProbe_Task_0:
   \   000000F0   ........           DC32     ??cycles_tot_last
   \   000000F4   ........           DC32     OSProbe_TaskStkUsage
   \   000000F8   ........           DC32     OSTCBTbl
    434              }
    435          }

   \                                 In segment DATA_Z, align 4, align-sorted
   \   FP32 __data OSProbe_TaskStkUsage[16]
   \                     OSProbe_TaskStkUsage:
   \   00000000                      DS8 64
   \   00000040                      DS8 64

   \                                 In segment DATA_Z, align 4, align-sorted
   \   INT16U __data OSProbe_TmrCntsPrev
   \                     OSProbe_TmrCntsPrev:
   \   00000000                      DS8 2
   \   00000002                      DS8 2
   \   INT32U __data OSProbe_CyclesCtr
   \                     OSProbe_CyclesCtr:
   \   00000004                      DS8 4

   \                                 In segment DATA_Z, align 4, align-sorted
   \                     OSProbe_TaskStk:
   \   00000000                      DS8 1024

   \                                 In segment DATA_Z, align 4, align-sorted
   \                     ??cycles_tot_last:
   \   00000000                      DS8 64

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable2:
   \   00000000   ........           DC32     OSProbe_TmrCntsPrev

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable3:
   \   00000000   ........           DC32     OSProbe_Delay

   \                                 In segment DATA_C, align 4, align-sorted
   \                     `?<Constant "uC/Probe OS">`:
   \   00000000   75432F50726F       DC8 "uC/Probe OS"
   \              6265204F5300
    436          #endif

   Maximum stack usage in bytes:

     Function               CSTACK
     --------               ------
     OSProbe_Init               4
     OSProbe_InitOS            28
     OSProbe_SetCallback        0
     OSProbe_SetDelay           0
     OSProbe_Task              40
     OSProbe_TaskCreateHook     8
     OSProbe_TaskSwHook         4
     OSProbe_TickHook           4
     OSProbe_TimeGetCycles     12


   Segment part sizes:

     Function/Label            Bytes
     --------------            -----
     OSProbe_Delay               72
     OSProbe_Init                32
     OSProbe_InitOS              60
     OSProbe_SetCallback         12
     OSProbe_SetDelay             6
     OSProbe_TaskCreateHook      16
     OSProbe_TaskSwHook          36
     OSProbe_TickHook             8
     OSProbe_TimeGetCycles       42
     OSProbe_Task               252
     OSProbe_TaskStkUsage       128
     OSProbe_TmrCntsPrev          8
     OSProbe_TaskStk           1024
     cycles_tot_last             64
     ??DataTable2                 4
     ??DataTable3                 4
     ?<Constant "uC/Probe OS">   12
      Others                    100

 
   560 bytes in segment CODE
    12 bytes in segment DATA_C
 1 296 bytes in segment DATA_Z
    12 bytes in segment INITTAB
 
   472 bytes of CODE  memory (+ 100 bytes shared)
    12 bytes of CONST memory
 1 296 bytes of DATA  memory

Errors: none
Warnings: none

⌨️ 快捷键说明

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