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

📄 semtest.lst

📁 MSP430 IAR project with FreeRTOS port.
💻 LST
📖 第 1 页 / 共 3 页
字号:
    194          				{
    195          					sError = pdTRUE;
   \                     ??prvSemaphoreTest_9:
   \   0000A0   1743         MOV.W   #0x1, R7
    196          				}
    197          			}
   \                     ??prvSemaphoreTest_10:
   \   0000A2   1A53         ADD.W   #0x1, R10
   \   0000A4   0B63         ADDC.W  #0x0, R11
   \   0000A6   EB3F         JMP     ??prvSemaphoreTest_0
    198          
    199          			/* Release the semaphore, and if no errors have occurred increment the check
    200          			variable. */
    201          			if(	xSemaphoreGive( pxParameters->xSemaphore ) == pdFALSE )
   \                     ??prvSemaphoreTest_7:
   \   0000A8   0312         PUSH.W  #0x0
   \   0000AA   0E43         MOV.W   #0x0, R14
   \   0000AC   2C49         MOV.W   @R9, R12
   \   0000AE   B012....     CALL    #xQueueSend
   \   0000B2   2153         ADD.W   #0x2, SP
   \   0000B4   0C93         CMP.W   #0x0, R12
   \   0000B6   0120         JNE     ??prvSemaphoreTest_11
    202          			{
    203          				sError = pdTRUE;
   \   0000B8   1743         MOV.W   #0x1, R7
    204          			}
    205          
    206          			if( sError == pdFALSE )
   \                     ??prvSemaphoreTest_11:
   \   0000BA   0793         CMP.W   #0x0, R7
   \   0000BC   0620         JNE     ??prvSemaphoreTest_12
    207          			{
    208          				if( sCheckVariableToUse < semtstNUM_TASKS )
   \   0000BE   2492         CMP.W   #0x4, R4
   \   0000C0   0434         JGE     ??prvSemaphoreTest_12
    209          				{
    210          					( sCheckVariables[ sCheckVariableToUse ] )++;
   \   0000C2   0F44         MOV.W   R4, R15
   \   0000C4   0F5F         RLA.W   R15
   \   0000C6   9F53....     ADD.W   #0x1, sCheckVariables(R15)
    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_12:
   \   0000CA   1C490400     MOV.W   0x4(R9), R12
   \   0000CE   0C5C         RLA.W   R12
   \   0000D0   0F4C         MOV.W   R12, R15
   \   0000D2   0C5C         RLA.W   R12
   \   0000D4   0C5C         RLA.W   R12
   \   0000D6   0C5F         ADD.W   R15, R12
   \   0000D8   B012....     CALL    #vTaskDelay
   \   0000DC   BD3F         JMP     ??prvSemaphoreTest_1
    220          		}
    221          		else
    222          		{
    223          			if( pxParameters->xBlockTime == ( portTickType ) 0 )
   \                     ??prvSemaphoreTest_4:
   \   0000DE   89930400     CMP.W   #0x0, 0x4(R9)
   \   0000E2   BA23         JNE     ??prvSemaphoreTest_1
    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();
   \   0000E4   B012....     CALL    #vPortYield
   \   0000E8   B73F         JMP     ??prvSemaphoreTest_1
    229          			}
    230          		}
    231          	}
    232          }
    233          /*-----------------------------------------------------------*/
    234          
    235          /* This is called to check that all the created tasks are still running. */

   \                                 In segment CODE, align 2
    236          portBASE_TYPE xAreSemaphoreTasksStillRunning( void )
   \                     xAreSemaphoreTasksStillRunning:
    237          {
   \   000000   0A12         PUSH.W  R10
    238          static portSHORT sLastCheckVariables[ semtstNUM_TASKS ] = { 0 };
    239          portBASE_TYPE xTask, xReturn = pdTRUE;
   \   000002   1C43         MOV.W   #0x1, R12
    240          
    241          	for( xTask = 0; xTask < semtstNUM_TASKS; xTask++ )
   \   000004   0E43         MOV.W   #0x0, R14
   \                     ??xAreSemaphoreTasksStillRunning_0:
   \   000006   2E92         CMP.W   #0x4, R14
   \   000008   1234         JGE     ??xAreSemaphoreTasksStillRunning_1
    242          	{
    243          		if( sLastCheckVariables[ xTask ] == sCheckVariables[ xTask ] )
   \   00000A   0D4E         MOV.W   R14, R13
   \   00000C   0D5D         RLA.W   R13
   \   00000E   0F4E         MOV.W   R14, R15
   \   000010   0F5F         RLA.W   R15
   \   000012   9D9F........ CMP.W   sCheckVariables(R15), ??sLastCheckVariables(R13)
   \   000018   0120         JNE     ??xAreSemaphoreTasksStillRunning_2
    244          		{
    245          			xReturn = pdFALSE;
   \   00001A   0C43         MOV.W   #0x0, R12
    246          		}
    247          
    248          		sLastCheckVariables[ xTask ] = sCheckVariables[ xTask ];
   \                     ??xAreSemaphoreTasksStillRunning_2:
   \   00001C   0D4E         MOV.W   R14, R13
   \   00001E   0D5D         RLA.W   R13
   \   000020   0F4E         MOV.W   R14, R15
   \   000022   0F5F         RLA.W   R15
   \   000024   9F4D........ MOV.W   sCheckVariables(R13), ??sLastCheckVariables(R15)
    249          	}
   \   00002A   1E53         ADD.W   #0x1, R14
   \   00002C   EC3F         JMP     ??xAreSemaphoreTasksStillRunning_0
    250          
    251          	return xReturn;
   \                     ??xAreSemaphoreTasksStillRunning_1:
   \   00002E   3A41         POP.W   R10
   \   000030   3041         RET
    252          }

   \                                 In segment DATA16_Z, align 2, align-sorted
   \   000000                REQUIRE ?cstart_init_zero
   \                     ??sLastCheckVariables:
   \   000000                DS8 8

   \                                 In segment DATA16_C, align 1, align-sorted
   \                     `?<Constant "PolSEM1">`:
   \   000000   506F6C53454D DC8 "PolSEM1"
   \            3100        

   \                                 In segment DATA16_C, align 1, align-sorted
   \                     `?<Constant "PolSEM2">`:
   \   000000   506F6C53454D DC8 "PolSEM2"
   \            3200        

   \                                 In segment DATA16_C, align 1, align-sorted
   \                     `?<Constant "BlkSEM1">`:
   \   000000   426C6B53454D DC8 "BlkSEM1"
   \            3100        

   \                                 In segment DATA16_C, align 1, align-sorted
   \                     `?<Constant "BlkSEM2">`:
   \   000000   426C6B53454D DC8 "BlkSEM2"
   \            3200        
    253          
    254          

   Maximum stack usage in bytes:

     Function                       CSTACK
     --------                       ------
     prvSemaphoreTest                  22
       -> xQueueReceive                22
       -> xQueueSend                   22
       -> vTaskDelay                   20
       -> vPortYield                   20
     vStartSemaphoreTasks              26
       -> pvPortMalloc                 10
       -> xQueueCreate                 10
       -> xQueueSend                   12
       -> pvPortMalloc                 10
       -> xTaskCreate                  18
       -> xTaskCreate                  26
       -> pvPortMalloc                 10
       -> xQueueCreate                 10
       -> xQueueSend                   12
       -> pvPortMalloc                 10
       -> xTaskCreate                  18
       -> xTaskCreate                  26
     xAreSemaphoreTasksStillRunning     4


   Segment part sizes:

     Function/Label                 Bytes
     --------------                 -----
     sCheckVariables                   8
     sNextCheckVariable                2
     vStartSemaphoreTasks            278
     prvSemaphoreTest                234
     xAreSemaphoreTasksStillRunning   50
     sLastCheckVariables               8
     ?<Constant "PolSEM1">             8
     ?<Constant "PolSEM2">             8
     ?<Constant "BlkSEM1">             8
     ?<Constant "BlkSEM2">             8

 
 562 bytes in segment CODE
  32 bytes in segment DATA16_C
  18 bytes in segment DATA16_Z
 
 562 bytes of CODE  memory
  32 bytes of CONST memory
  18 bytes of DATA  memory

Errors: none
Warnings: 1

⌨️ 快捷键说明

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