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

📄 semtest.lst

📁 本代码已经经过修改
💻 LST
📖 第 1 页 / 共 3 页
字号:
   \   00000042   0180               STRH        R1,[R0, #+0]
    211          				}
    212          			}
    213          
    214          			/* If we have a block time then we are running at a priority higher
    215          			than the idle priority.  This task takes a long time to complete
    216          			a cycle	(deliberately so to test the guarding) so will be starving
    217          			out lower priority tasks.  Block for some time to allow give lower
    218          			priority tasks some processor time. */
    219          			vTaskDelay( pxParameters->xBlockTime * semtstDELAY_FACTOR );
   \                     ??prvSemaphoreTest_6:
   \   00000044   A068               LDR         R0,[R4, #+0x8]
   \   00000046   0A21               MOV         R1,#+0xA
   \   00000048   4843               MUL         R0,R1
   \   0000004A   ........           _BLF        vTaskDelay,vTaskDelay??rT
   \                     ??prvSemaphoreTest_4:
   \   0000004E   A268               LDR         R2,[R4, #+0x8]
   \   00000050   0021               MOV         R1,#+0
   \   00000052   2068               LDR         R0,[R4, #+0]
   \   00000054   ........           _BLF        xQueueReceive,xQueueReceive??rT
   \   00000058   0128               CMP         R0,#+0x1
   \   0000005A   18D1               BNE         ??prvSemaphoreTest_7
   \   0000005C   3868               LDR         R0,[R7, #+0]
   \   0000005E   0099               LDR         R1,[SP, #+0]
   \   00000060   8842               CMP         R0,R1
   \   00000062   00D0               BEQ         ??prvSemaphoreTest_8
   \   00000064   0125               MOV         R5,#+0x1
   \                     ??prvSemaphoreTest_8:
   \   00000066   0020               MOV         R0,#+0
   \   00000068   05E0               B           ??prvSemaphoreTest_9
   \                     ??prvSemaphoreTest_10:
   \   0000006A   3860               STR         R0,[R7, #+0]
   \   0000006C   3968               LDR         R1,[R7, #+0]
   \   0000006E   8142               CMP         R1,R0
   \   00000070   00D0               BEQ         ??prvSemaphoreTest_11
   \   00000072   0125               MOV         R5,#+0x1
   \                     ??prvSemaphoreTest_11:
   \   00000074   401C               ADD         R0,R0,#+0x1
   \                     ??prvSemaphoreTest_9:
   \   00000076   0099               LDR         R1,[SP, #+0]
   \   00000078   8142               CMP         R1,R0
   \   0000007A   F6D2               BCS         ??prvSemaphoreTest_10
   \   0000007C   0022               MOV         R2,#+0
   \   0000007E   0021               MOV         R1,#+0
   \   00000080   2068               LDR         R0,[R4, #+0]
   \   00000082   ........           _BLF        xQueueSend,xQueueSend??rT
   \   00000086   0028               CMP         R0,#+0
   \   00000088   D1D1               BNE         ??prvSemaphoreTest_5
   \   0000008A   0125               MOV         R5,#+0x1
   \   0000008C   DAE7               B           ??prvSemaphoreTest_6
    220          		}
    221          		else
    222          		{
    223          			if( pxParameters->xBlockTime == ( portTickType ) 0 )
   \                     ??prvSemaphoreTest_7:
   \   0000008E   A068               LDR         R0,[R4, #+0x8]
   \   00000090   0028               CMP         R0,#+0
   \   00000092   DCD1               BNE         ??prvSemaphoreTest_4
    224          			{
    225          				/* We have not got the semaphore yet, so no point using the
    226          				processor.  We are not blocking when attempting to obtain the
    227          				semaphore. */
    228          				taskYIELD();
   \   00000094   00DF               SWI 0          
   \   00000096   DAE7               B           ??prvSemaphoreTest_4
   \                     ??prvSemaphoreTest_1:
   \   00000098   ........           DC32        ??sNextCheckVariable
    229          			}
    230          		}
    231          	}
    232          }
    233          /*-----------------------------------------------------------*/
    234          
    235          /* This is called to check that all the created tasks are still running. */

   \                                 In segment CODE, align 4, keep-with-next
    236          portBASE_TYPE xAreSemaphoreTasksStillRunning( void )
    237          {
   \                     xAreSemaphoreTasksStillRunning:
   \   00000000   30B4               PUSH        {R4,R5}
    238          static portSHORT sLastCheckVariables[ semtstNUM_TASKS ] = { 0 };
    239          portBASE_TYPE xTask, xReturn = pdTRUE;
   \   00000002   0120               MOV         R0,#+0x1
    240          
    241          	for( xTask = 0; xTask < semtstNUM_TASKS; xTask++ )
   \   00000004   ....               LDR         R1,??DataTable3    ;; ??sCheckVariables
   \   00000006   094A               LDR         R2,??xAreSemaphoreTasksStillRunning_0  ;; ??sLastCheckVariables
   \   00000008   0423               MOV         R3,#+0x4
    242          	{
    243          		if( sLastCheckVariables[ xTask ] == sCheckVariables[ xTask ] )
   \                     ??xAreSemaphoreTasksStillRunning_1:
   \   0000000A   0024               MOV         R4,#+0
   \   0000000C   145F               LDRSH       R4,[R2, R4]
   \   0000000E   0025               MOV         R5,#+0
   \   00000010   4D5F               LDRSH       R5,[R1, R5]
   \   00000012   AC42               CMP         R4,R5
   \   00000014   00D1               BNE         ??xAreSemaphoreTasksStillRunning_2
    244          		{
    245          			xReturn = pdFALSE;
   \   00000016   0020               MOV         R0,#+0
    246          		}
    247          
    248          		sLastCheckVariables[ xTask ] = sCheckVariables[ xTask ];
   \                     ??xAreSemaphoreTasksStillRunning_2:
   \   00000018   0C88               LDRH        R4,[R1, #+0]
   \   0000001A   1480               STRH        R4,[R2, #+0]
    249          	}
   \   0000001C   921C               ADD         R2,R2,#+0x2
   \   0000001E   891C               ADD         R1,R1,#+0x2
   \   00000020   5B1E               SUB         R3,R3,#+0x1
   \   00000022   F2D1               BNE         ??xAreSemaphoreTasksStillRunning_1
    250          
    251          	return xReturn;
   \   00000024   30BC               POP         {R4,R5}
   \   00000026   00B0               ADD         SP,#+0
   \   00000028   7047               BX          LR                 ;; return
   \   0000002A   C046               NOP         
   \                     ??xAreSemaphoreTasksStillRunning_0:
   \   0000002C   ........           DC32        ??sLastCheckVariables
    252          }

   \                                 In segment DATA_Z, align 4, align-sorted
   \                     ??sLastCheckVariables:
   \   00000000                      DS8 8

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable1:
   \   00000000   FF0F0000           DC32        0xfff

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

   \                                 In segment DATA_C, align 4, align-sorted
   \                     `?<Constant "PolSEM1">`:
   \   00000000   506F6C53454D       DC8 "PolSEM1"
   \              3100        

   \                                 In segment DATA_C, align 4, align-sorted
   \                     `?<Constant "PolSEM2">`:
   \   00000000   506F6C53454D       DC8 "PolSEM2"
   \              3200        

   \                                 In segment DATA_C, align 4, align-sorted
   \                     `?<Constant "BlkSEM1">`:
   \   00000000   426C6B53454D       DC8 "BlkSEM1"
   \              3100        

   \                                 In segment DATA_C, align 4, align-sorted
   \                     `?<Constant "BlkSEM2">`:
   \   00000000   426C6B53454D       DC8 "BlkSEM2"
   \              3200        
    253          
    254          

   Maximum stack usage in bytes:

     Function                       CSTACK
     --------                       ------
     prvSemaphoreTest                  24
     vStartSemaphoreTasks              32
     xAreSemaphoreTasksStillRunning    12


   Segment part sizes:

     Function/Label                 Bytes
     --------------                 -----
     sCheckVariables                   8
     sNextCheckVariable                2
     vStartSemaphoreTasks            216
     prvSemaphoreTest                156
     xAreSemaphoreTasksStillRunning   48
     sLastCheckVariables               8
     ??DataTable1                      4
     ??DataTable3                      4
     ?<Constant "PolSEM1">             8
     ?<Constant "PolSEM2">             8
     ?<Constant "BlkSEM1">             8
     ?<Constant "BlkSEM2">             8
      Others                         108

 
 524 bytes in segment CODE
  32 bytes in segment DATA_C
  18 bytes in segment DATA_Z
  12 bytes in segment INITTAB
 
 428 bytes of CODE  memory (+ 108 bytes shared)
  32 bytes of CONST memory
  18 bytes of DATA  memory

Errors: none
Warnings: none

⌨️ 快捷键说明

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