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

📄 dynamic.lst

📁 MSP430 IAR project with FreeRTOS port.
💻 LST
📖 第 1 页 / 共 3 页
字号:
    308          				xSuspendedQueueSendError = pdTRUE;
   \   00001C   9243....     MOV.W   #0x1, &xSuspendedQueueSendError
    309          			}
    310          		}
    311          		xTaskResumeAll();
   \                     ??vQueueSendWhenSuspendedTask_1:
   \   000020   B012....     CALL    #xTaskResumeAll
    312          
    313          		vTaskDelay( priSLEEP_TIME );
   \   000024   3C403200     MOV.W   #0x32, R12
   \   000028   B012....     CALL    #vTaskDelay
    314          
    315          		++ulValueToSend;
   \   00002C   9253....     ADD.W   #0x1, &??ulValueToSend
   \   000030   8263....     ADDC.W  #0x0, &??ulValueToSend + 2
   \   000034   E73F         JMP     ??vQueueSendWhenSuspendedTask_0
    316          	}
    317          }

   \                                 In segment DATA16_Z, align 2, align-sorted
   \   000000                REQUIRE ?cstart_init_zero
   \                     ??ulValueToSend:
   \   000000                DS8 4
    318          /*-----------------------------------------------------------*/
    319          

   \                                 In segment CODE, align 2
    320          static portTASK_FUNCTION( vQueueReceiveWhenSuspendedTask, pvParameters )
   \                     vQueueReceiveWhenSuspendedTask:
    321          {
   \   000000   0A12         PUSH.W  R10
   \   000002   0B12         PUSH.W  R11
   \   000004   0A4C         MOV.W   R12, R10
    322          static unsigned portLONG ulExpectedValue = ( unsigned portLONG ) 0, ulReceivedValue;
    323          portBASE_TYPE xGotValue;
    324          
    325          	/* Just to stop warning messages. */
    326          	( void ) pvParameters;
    327          
    328          	for( ;; )
    329          	{
    330          		do
    331          		{
    332          			/* Suspending the scheduler here is fairly pointless and 
    333          			undesirable for a normal application.  It is done here purely
    334          			to test the scheduler.  The inner xTaskResumeAll() should
    335          			never return pdTRUE as the scheduler is still locked by the
    336          			outer call. */
    337          			vTaskSuspendAll();
   \                     ??vQueueReceiveWhenSuspendedTask_0:
   \   000006   B012....     CALL    #vTaskSuspendAll
    338          			{
    339          				vTaskSuspendAll();
   \   00000A   B012....     CALL    #vTaskSuspendAll
    340          				{
    341          					xGotValue = xQueueReceive( xSuspendedTestQueue, ( void * ) &ulReceivedValue, priNO_BLOCK );
   \   00000E   0312         PUSH.W  #0x0
   \   000010   3E40....     MOV.W   #??ulReceivedValue, R14
   \   000014   1C42....     MOV.W   &xSuspendedTestQueue, R12
   \   000018   B012....     CALL    #xQueueReceive
   \   00001C   0B4C         MOV.W   R12, R11
    342          				}
    343          				if( xTaskResumeAll() )
   \   00001E   B012....     CALL    #xTaskResumeAll
   \   000022   2153         ADD.W   #0x2, SP
   \   000024   0C93         CMP.W   #0x0, R12
   \   000026   0224         JEQ     ??vQueueReceiveWhenSuspendedTask_1
    344          				{
    345          					xSuspendedQueueReceiveError = pdTRUE;
   \   000028   9243....     MOV.W   #0x1, &xSuspendedQueueReceiveError
    346          				}
    347          			}
    348          			xTaskResumeAll();
   \                     ??vQueueReceiveWhenSuspendedTask_1:
   \   00002C   B012....     CALL    #xTaskResumeAll
    349          
    350          		} while( xGotValue == pdFALSE );
   \   000030   0B93         CMP.W   #0x0, R11
   \   000032   E927         JEQ     ??vQueueReceiveWhenSuspendedTask_0
    351          
    352          		if( ulReceivedValue != ulExpectedValue )
   \   000034   9292........ CMP.W   &??ulExpectedValue, &??ulReceivedValue
   \   00003A   0420         JNE     ??vQueueReceiveWhenSuspendedTask_2
   \   00003C   9292........ CMP.W   &??ulExpectedValue + 2, &??ulReceivedValue + 2
   \   000042   0224         JEQ     ??vQueueReceiveWhenSuspendedTask_3
    353          		{
    354          			xSuspendedQueueReceiveError = pdTRUE;
   \                     ??vQueueReceiveWhenSuspendedTask_2:
   \   000044   9243....     MOV.W   #0x1, &xSuspendedQueueReceiveError
    355          		}
    356          
    357          		++ulExpectedValue;
   \                     ??vQueueReceiveWhenSuspendedTask_3:
   \   000048   9253....     ADD.W   #0x1, &??ulExpectedValue
   \   00004C   8263....     ADDC.W  #0x0, &??ulExpectedValue + 2
   \   000050   DA3F         JMP     ??vQueueReceiveWhenSuspendedTask_0
    358          	}
    359          }

   \                                 In segment DATA16_Z, align 2, align-sorted
   \   000000                REQUIRE ?cstart_init_zero
   \                     ??ulExpectedValue:
   \   000000                DS8 4

   \                                 In segment DATA16_Z, align 2, align-sorted
   \   000000                REQUIRE ?cstart_init_zero
   \                     ??ulReceivedValue:
   \   000000                DS8 4
    360          /*-----------------------------------------------------------*/
    361          
    362          /* Called to check that all the created tasks are still running without error. */

   \                                 In segment CODE, align 2
    363          portBASE_TYPE xAreDynamicPriorityTasksStillRunning( void )
   \                     xAreDynamicPriorityTasksStillRunning:
    364          {
    365          /* Keep a history of the check variables so we know if it has been incremented 
    366          since the last call. */
    367          static unsigned portSHORT usLastTaskCheck = ( unsigned portSHORT ) 0;
    368          portBASE_TYPE xReturn = pdTRUE;
   \   000000   1C43         MOV.W   #0x1, R12
    369          
    370          	/* Check the tasks are still running by ensuring the check variable
    371          	is still incrementing. */
    372          
    373          	if( usCheckVariable == usLastTaskCheck )
   \   000002   9292........ CMP.W   &??usLastTaskCheck, &usCheckVariable
   \   000008   0120         JNE     ??xAreDynamicPriorityTasksStillRunning_0
    374          	{
    375          		/* The check has not incremented so an error exists. */
    376          		xReturn = pdFALSE;
   \   00000A   0C43         MOV.W   #0x0, R12
    377          	}
    378          
    379          	if( xSuspendedQueueSendError == pdTRUE )
   \                     ??xAreDynamicPriorityTasksStillRunning_0:
   \   00000C   9293....     CMP.W   #0x1, &xSuspendedQueueSendError
   \   000010   0120         JNE     ??xAreDynamicPriorityTasksStillRunning_1
    380          	{
    381          		xReturn = pdFALSE;
   \   000012   0C43         MOV.W   #0x0, R12
    382          	}
    383          
    384          	if( xSuspendedQueueReceiveError == pdTRUE )
   \                     ??xAreDynamicPriorityTasksStillRunning_1:
   \   000014   9293....     CMP.W   #0x1, &xSuspendedQueueReceiveError
   \   000018   0120         JNE     ??xAreDynamicPriorityTasksStillRunning_2
    385          	{
    386          		xReturn = pdFALSE;
   \   00001A   0C43         MOV.W   #0x0, R12
    387          	}
    388          
    389          	usLastTaskCheck = usCheckVariable;
   \                     ??xAreDynamicPriorityTasksStillRunning_2:
   \   00001C   9242........ MOV.W   &usCheckVariable, &??usLastTaskCheck
    390          	return xReturn;
   \   000022   3041         RET
    391          }

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

   \                                 In segment DATA16_C, align 1, align-sorted
   \                     `?<Constant "CNT_INC">`:
   \   000000   434E545F494E DC8 "CNT_INC"
   \            4300        

   \                                 In segment DATA16_C, align 1, align-sorted
   \                     `?<Constant "LIM_INC">`:
   \   000000   4C494D5F494E DC8 "LIM_INC"
   \            4300        

   \                                 In segment DATA16_C, align 1, align-sorted
   \                     `?<Constant "C_CTRL">`:
   \   000000   435F4354524C DC8 "C_CTRL"
   \            00          

   \                                 In segment DATA16_C, align 1, align-sorted
   \                     `?<Constant "SUSP_TX">`:
   \   000000   535553505F54 DC8 "SUSP_TX"
   \            5800        

   \                                 In segment DATA16_C, align 1, align-sorted
   \                     `?<Constant "SUSP_RX">`:
   \   000000   535553505F52 DC8 "SUSP_RX"
   \            5800        

   Maximum stack usage in bytes:

     Function                       CSTACK
     --------                       ------
     vContinuousIncrementTask           8
       -> uxTaskPriorityGet             8
       -> vTaskPrioritySet              8
       -> vTaskPrioritySet              8
     vCounterControlTask               12
       -> vTaskSuspend                 12
       -> vTaskResume                  12
       -> vTaskDelay                   12
       -> vTaskSuspendAll              12
       -> xTaskResumeAll               12
       -> vTaskSuspend                 12
       -> vTaskResume                  12
       -> vTaskResume                  12
     vLimitedIncrementTask              6
       -> vTaskSuspend                  6
       -> vTaskSuspend                  6
     vQueueReceiveWhenSuspendedTask     8
       -> vTaskSuspendAll               6
       -> vTaskSuspendAll               6
       -> xQueueReceive                 8
       -> xTaskResumeAll                8
       -> xTaskResumeAll                6
     vQueueSendWhenSuspendedTask        6
       -> vTaskSuspendAll               4
       -> xQueueSend                    6
       -> xTaskResumeAll                4
       -> vTaskDelay                    4
     vStartDynamicPriorityTasks        42
       -> xQueueCreate                  2
       -> xTaskCreate                  10
       -> xTaskCreate                  18
       -> xTaskCreate                  26
       -> xTaskCreate                  34
       -> xTaskCreate                  42
     xAreDynamicPriorityTasksStillRunning
                                        2


   Segment part sizes:

     Function/Label                 Bytes
     --------------                 -----
     xContinousIncrementHandle         2
     xLimitedIncrementHandle           2
     ulCounter                         4
     usCheckVariable                   2
     xSuspendedQueueSendError          2
     xSuspendedQueueReceiveError       2
     xSuspendedTestQueue               2
     vStartDynamicPriorityTasks      136
     vLimitedIncrementTask            48
     vContinuousIncrementTask         48
     vCounterControlTask             172
     vQueueSendWhenSuspendedTask      54
     ulValueToSend                     4
     vQueueReceiveWhenSuspendedTask   82
     ulExpectedValue                   4
     ulReceivedValue                   4
     xAreDynamicPriorityTasksStillRunning
                                      36
     usLastTaskCheck                   2
     ?<Constant "CNT_INC">             8
     ?<Constant "LIM_INC">             8
     ?<Constant "C_CTRL">              7
     ?<Constant "SUSP_TX">             8
     ?<Constant "SUSP_RX">             8

 
 576 bytes in segment CODE
  39 bytes in segment DATA16_C
  30 bytes in segment DATA16_Z
 
 576 bytes of CODE  memory
  39 bytes of CONST memory
  30 bytes of DATA  memory

Errors: none
Warnings: none

⌨️ 快捷键说明

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