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

📄 flop.lst

📁 MSP430 IAR project with FreeRTOS port.
💻 LST
📖 第 1 页 / 共 3 页
字号:
   \   00001C   0C5C         RLA.W   R12
   \   00001E   0C5C         RLA.W   R12
   \   000020   B012....     CALL    #pvPortMalloc
   \   000024   0B4C         MOV.W   R12, R11
    261          
    262          	/* Keep filling an array, keeping a running total of the values placed in the 
    263          	array.  Then run through the array adding up all the values.  If the two totals 
    264          	do not match, stop the check variable from incrementing. */
    265          	for( ;; )
    266          	{
    267          		dTotal1 = 0.0;
   \                     ??vCompetingMathTask4_2:
   \   000026   81430000     MOV.W   #0x0, 0x0(SP)
   \   00002A   81430200     MOV.W   #0x0, 0x2(SP)
    268          		dTotal2 = 0.0;
   \   00002E   81430400     MOV.W   #0x0, 0x4(SP)
   \   000032   81430600     MOV.W   #0x0, 0x6(SP)
    269          
    270          		for( xPosition = 0; xPosition < xArraySize; xPosition++ )
   \   000036   0A43         MOV.W   #0x0, R10
   \                     ??vCompetingMathTask4_0:
   \   000038   0A98         CMP.W   R8, R10
   \   00003A   2A2C         JC      ??vCompetingMathTask4_3
    271          		{
    272          			pdArray[ xPosition ] = ( portDOUBLE ) xPosition * 12.123;
   \   00003C   0C4A         MOV.W   R10, R12
   \   00003E   0D43         MOV.W   #0x0, R13
   \   000040   B012....     CALL    #_Cast32uto32f
   \   000044   3E40CFF7     MOV.W   #0xf7cf, R14
   \   000048   3F404141     MOV.W   #0x4141, R15
   \   00004C   B012....     CALL    #_Mul32f
   \   000050   0E4A         MOV.W   R10, R14
   \   000052   0E5E         RLA.W   R14
   \   000054   0E5E         RLA.W   R14
   \   000056   0F4B         MOV.W   R11, R15
   \   000058   0F5E         ADD.W   R14, R15
   \   00005A   8F4C0000     MOV.W   R12, 0(R15)
   \   00005E   8F4D0200     MOV.W   R13, 0x2(R15)
    273          			dTotal1 += ( portDOUBLE ) xPosition * 12.123;	
   \   000062   0C4A         MOV.W   R10, R12
   \   000064   0D43         MOV.W   #0x0, R13
   \   000066   B012....     CALL    #_Cast32uto32f
   \   00006A   3E40CFF7     MOV.W   #0xf7cf, R14
   \   00006E   3F404141     MOV.W   #0x4141, R15
   \   000072   B012....     CALL    #_Mul32f
   \   000076   0E4C         MOV.W   R12, R14
   \   000078   0F4D         MOV.W   R13, R15
   \   00007A   2C41         MOV.W   0x0(SP), R12
   \   00007C   1D410200     MOV.W   0x2(SP), R13
   \   000080   B012....     CALL    #_Add32f
   \   000084   814C0000     MOV.W   R12, 0x0(SP)
   \   000088   814D0200     MOV.W   R13, 0x2(SP)
    274          		}
   \   00008C   1A53         ADD.W   #0x1, R10
   \   00008E   D43F         JMP     ??vCompetingMathTask4_0
    275          
    276          		#if configUSE_PREEMPTION == 0
    277          			taskYIELD();
    278          		#endif
    279          
    280          		for( xPosition = 0; xPosition < xArraySize; xPosition++ )
   \                     ??vCompetingMathTask4_3:
   \   000090   0A43         MOV.W   #0x0, R10
   \                     ??vCompetingMathTask4_1:
   \   000092   0A98         CMP.W   R8, R10
   \   000094   142C         JC      ??vCompetingMathTask4_4
    281          		{
    282          			dTotal2 += pdArray[ xPosition ];
                 			                               ^
Warning[Pa082]: undefined behavior: the order of volatile accesses is
          undefined in this statement
   \   000096   0E4A         MOV.W   R10, R14
   \   000098   0E5E         RLA.W   R14
   \   00009A   0E5E         RLA.W   R14
   \   00009C   0F4B         MOV.W   R11, R15
   \   00009E   0F5E         ADD.W   R14, R15
   \   0000A0   2E4F         MOV.W   @R15, R14
   \   0000A2   1F4F0200     MOV.W   0x2(R15), R15
   \   0000A6   1C410400     MOV.W   0x4(SP), R12
   \   0000AA   1D410600     MOV.W   0x6(SP), R13
   \   0000AE   B012....     CALL    #_Add32f
   \   0000B2   814C0400     MOV.W   R12, 0x4(SP)
   \   0000B6   814D0600     MOV.W   R13, 0x6(SP)
    283          		}
   \   0000BA   1A53         ADD.W   #0x1, R10
   \   0000BC   EA3F         JMP     ??vCompetingMathTask4_1
    284          
    285          		dDifference = dTotal1 - dTotal2;
                 		                               ^
Warning[Pa082]: undefined behavior: the order of volatile accesses is
          undefined in this statement
   \                     ??vCompetingMathTask4_4:
   \   0000BE   1E410400     MOV.W   0x4(SP), R14
   \   0000C2   1F410600     MOV.W   0x6(SP), R15
   \   0000C6   2C41         MOV.W   0x0(SP), R12
   \   0000C8   1D410200     MOV.W   0x2(SP), R13
   \   0000CC   B012....     CALL    #_Sub32f
   \   0000D0   814C0800     MOV.W   R12, 0x8(SP)
   \   0000D4   814D0A00     MOV.W   R13, 0xa(SP)
    286          		if( fabs( dDifference ) > 0.001 )
   \   0000D8   1C410800     MOV.W   0x8(SP), R12
   \   0000DC   1D410A00     MOV.W   0xa(SP), R13
   \   0000E0   B012....     CALL    #fabs
   \   0000E4   3E407012     MOV.W   #0x1270, R14
   \   0000E8   3F40833A     MOV.W   #0x3a83, R15
   \   0000EC   B012....     CALL    #_CmpGe32f
   \   0000F0   0C93         CMP.W   #0x0, R12
   \   0000F2   0124         JEQ     ??vCompetingMathTask4_5
    287          		{
    288          			sError = pdTRUE;
   \   0000F4   1943         MOV.W   #0x1, R9
    289          		}
    290          
    291          		#if configUSE_PREEMPTION == 0
    292          			taskYIELD();
    293          		#endif
    294          
    295          		if( sError == pdFALSE )
   \                     ??vCompetingMathTask4_5:
   \   0000F6   0993         CMP.W   #0x0, R9
   \   0000F8   9623         JNE     ??vCompetingMathTask4_2
    296          		{
    297          			/* If the calculation has always been correct, increment the check 
    298          			variable so we know	this task is still running okay. */
    299          			( *pusTaskCheckVariable )++;
   \   0000FA   0F46         MOV.W   R6, R15
   \   0000FC   9F530000     ADD.W   #0x1, 0(R15)
   \   000100   923F         JMP     ??vCompetingMathTask4_2
    300          		}
    301          	}
    302          }				 
    303          /*-----------------------------------------------------------*/
    304          
    305          /* This is called to check that all the created tasks are still running. */

   \                                 In segment CODE, align 2
    306          portBASE_TYPE xAreMathsTaskStillRunning( void )
   \                     xAreMathsTaskStillRunning:
    307          {
   \   000000   0A12         PUSH.W  R10
    308          /* Keep a history of the check variables so we know if they have been incremented 
    309          since the last call. */
    310          static unsigned portSHORT usLastTaskCheck[ mathNUMBER_OF_TASKS ] = { ( unsigned portSHORT ) 0 };
    311          portBASE_TYPE xReturn = pdTRUE, xTask;
   \   000002   1C43         MOV.W   #0x1, R12
    312          
    313          	/* Check the maths tasks are still running by ensuring their check variables 
    314          	are still incrementing. */
    315          	for( xTask = 0; xTask < mathNUMBER_OF_TASKS; xTask++ )
   \   000004   0E43         MOV.W   #0x0, R14
   \                     ??xAreMathsTaskStillRunning_0:
   \   000006   3E92         CMP.W   #0x8, R14
   \   000008   1234         JGE     ??xAreMathsTaskStillRunning_1
    316          	{
    317          		if( usTaskCheck[ xTask ] == usLastTaskCheck[ 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   ??usLastTaskCheck(R15), usTaskCheck(R13)
   \   000018   0120         JNE     ??xAreMathsTaskStillRunning_2
    318          		{
    319          			/* The check has not incremented so an error exists. */
    320          			xReturn = pdFALSE;
   \   00001A   0C43         MOV.W   #0x0, R12
    321          		}
    322          
    323          		usLastTaskCheck[ xTask ] = usTaskCheck[ xTask ];
   \                     ??xAreMathsTaskStillRunning_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   usTaskCheck(R13), ??usLastTaskCheck(R15)
    324          	}
   \   00002A   1E53         ADD.W   #0x1, R14
   \   00002C   EC3F         JMP     ??xAreMathsTaskStillRunning_0
    325          
    326          	return xReturn;
   \                     ??xAreMathsTaskStillRunning_1:
   \   00002E   3A41         POP.W   R10
   \   000030   3041         RET
    327          }

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

   \                                 In segment DATA16_C, align 1, align-sorted
   \                     `?<Constant "Math1">`:
   \   000000   4D6174683100 DC8 "Math1"

   \                                 In segment DATA16_C, align 1, align-sorted
   \                     `?<Constant "Math2">`:
   \   000000   4D6174683200 DC8 "Math2"

   \                                 In segment DATA16_C, align 1, align-sorted
   \                     `?<Constant "Math3">`:
   \   000000   4D6174683300 DC8 "Math3"

   \                                 In segment DATA16_C, align 1, align-sorted
   \                     `?<Constant "Math4">`:
   \   000000   4D6174683400 DC8 "Math4"

   \                                 In segment DATA16_C, align 1, align-sorted
   \                     `?<Constant "Math5">`:
   \   000000   4D6174683500 DC8 "Math5"

   \                                 In segment DATA16_C, align 1, align-sorted
   \                     `?<Constant "Math6">`:
   \   000000   4D6174683600 DC8 "Math6"

   \                                 In segment DATA16_C, align 1, align-sorted
   \                     `?<Constant "Math7">`:
   \   000000   4D6174683700 DC8 "Math7"

   \                                 In segment DATA16_C, align 1, align-sorted
   \                     `?<Constant "Math8">`:
   \   000000   4D6174683800 DC8 "Math8"
    328          
    329          
    330          

   Maximum stack usage in bytes:

     Function                  CSTACK
     --------                  ------
     vCompetingMathTask1          28
       -> _Add32f                 28
       -> _Mul32f                 28
       -> _Add32f                 28
       -> _Mul32f                 28
       -> _Sub32f                 28
       -> fabs                    28
       -> _CmpGe32f               28
     vCompetingMathTask2          28
       -> _Div32f                 28
       -> _Mul32f                 28
       -> _Div32f                 28
       -> _Mul32f                 28
       -> _Sub32f                 28
       -> fabs                    28
       -> _CmpGe32f               28
     vCompetingMathTask3          26
       -> pvPortMalloc            26
       -> _Cast32uto32f           26
       -> _Add32f                 26
       -> _Cast32uto32f           26
       -> _Add32f                 26
       -> _Add32f                 26
       -> _Add32f                 26
       -> _Sub32f                 26
       -> fabs                    26
       -> _CmpGe32f               26
     vCompetingMathTask4          26
       -> pvPortMalloc            26
       -> _Cast32uto32f           26
       -> _Mul32f                 26
       -> _Cast32uto32f           26
       -> _Mul32f                 26
       -> _Add32f                 26
       -> _Add32f                 26
       -> _Sub32f                 26
       -> fabs                    26
       -> _CmpGe32f               26
     vStartMathTasks              68
       -> xTaskCreate             12
       -> xTaskCreate             20
       -> xTaskCreate             28
       -> xTaskCreate             36
       -> xTaskCreate             44
       -> xTaskCreate             52
       -> xTaskCreate             60
       -> xTaskCreate             68
     xAreMathsTaskStillRunning     4


   Segment part sizes:

     Function/Label            Bytes
     --------------            -----
     usTaskCheck                 16
     vStartMathTasks            204
     vCompetingMathTask1        218
     vCompetingMathTask2        218
     vCompetingMathTask3        254
     vCompetingMathTask4        258
     xAreMathsTaskStillRunning   50
     usLastTaskCheck             16
     ?<Constant "Math1">          6
     ?<Constant "Math2">          6
     ?<Constant "Math3">          6
     ?<Constant "Math4">          6
     ?<Constant "Math5">          6
     ?<Constant "Math6">          6
     ?<Constant "Math7">          6
     ?<Constant "Math8">          6

 
 1 202 bytes in segment CODE
    48 bytes in segment DATA16_C
    32 bytes in segment DATA16_Z
 
 1 202 bytes of CODE  memory
    48 bytes of CONST memory
    32 bytes of DATA  memory

Errors: none
Warnings: 10

⌨️ 快捷键说明

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