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

📄 main.lst

📁 本代码已经经过修改
💻 LST
📖 第 1 页 / 共 2 页
字号:
   \   00000052   01B4               PUSH        {R0}
   \   00000054   0023               MOV         R3,#+0
   \   00000056   6422               MOV         R2,#+0x64
   \   00000058   0649               LDR         R1,??main_0+0x8    ;; `?<Constant "Check">`
   \   0000005A   0748               LDR         R0,??main_0+0xC    ;; ??vErrorChecks
   \   0000005C   ........           _BLF        xTaskCreate,xTaskCreate??rT
    139          
    140          	/* Start the scheduler.
    141          
    142          	NOTE : Tasks run in system mode and the scheduler runs in Supervisor mode.
    143          	The processor MUST be in supervisor mode when vTaskStartScheduler is
    144          	called.  The demo applications included in the FreeRTOS.org download switch
    145          	to supervisor mode prior to main being called.  If you are not using one of
    146          	these demo application projects then ensure Supervisor mode is used here. */
    147          
    148          	vTaskStartScheduler();
   \   00000060   ........           _BLF        vTaskStartScheduler,vTaskStartScheduler??rT
    149          
    150          	/* We should never get here as control is now taken by the scheduler. */
    151          	return;
   \   00000064   02B0               ADD         SP,#+0x8
   \   00000066   01BC               POP         {R0}
   \   00000068   0047               BX          R0                 ;; return
   \   0000006A   C046               NOP         
   \                     ??main_0:
   \   0000006C   080000A0           DC32        0xa0000008
   \   00000070   FF7FFFFF           DC32        0xffff7fff
   \   00000074   ........           DC32        `?<Constant "Check">`
   \   00000078   ........           DC32        ??vErrorChecks
    152          }
    153          /*-----------------------------------------------------------*/
    154          
    155          static void prvSetupHardware( void )
    156          {
    157              /* Setup the PLL to generate a 48MHz clock from the 4MHz CLK. */
    158          
    159              /* Turn of the div by two. */
    160          	RCCU_Div2Config( DISABLE );
    161          
    162              /* 48MHz = ( 4MHz * 12 ) / 1 */
    163          	RCCU_PLL1Config( RCCU_PLL1_Mul_12, RCCU_Div_1 );
    164              RCCU_RCLKSourceConfig( RCCU_PLL1_Output );
    165          }
    166          /*-----------------------------------------------------------*/
    167          

   \                                 In segment CODE, align 4, keep-with-next
    168          static void vErrorChecks( void *pvParameters )
    169          {
   \                     ??vErrorChecks:
   \   00000000   50B5               PUSH        {R4,R6,LR}
   \   00000002   81B0               SUB         SP,#+0x4
    170          portTickType xDelayPeriod = mainNO_ERROR_FLASH_PERIOD;
   \   00000004   164C               LDR         R4,??vErrorChecks_1  ;; 0xbb8
    171          portTickType xLastWakeTime;
    172          
    173          	/* The parameters are not used in this task. */
    174          	( void ) pvParameters;
    175          
    176          	/* Initialise xLastWakeTime to ensure the first call to vTaskDelayUntil()
    177          	functions correctly. */
    178          	xLastWakeTime = xTaskGetTickCount();
   \   00000006   ........           _BLF        xTaskGetTickCount,xTaskGetTickCount??rT
   \   0000000A   0090               STR         R0,[SP, #+0]
    179          
    180          	/* Cycle for ever, delaying then checking all the other tasks are still
    181          	operating without error.  If an error is detected then the delay period
    182          	is decreased from mainNO_ERROR_FLASH_PERIOD to mainERROR_FLASH_PERIOD so
    183          	the on board LED flash rate will increase. */
    184          
    185          	for( ;; )
    186          	{
    187          		/* Delay until it is time to execute again.  The delay period is
    188          		shorter following an error so the LED flashes faster. */
    189          		vTaskDelayUntil( &xLastWakeTime, xDelayPeriod );
   \                     ??vErrorChecks_2:
   \   0000000C   211C               MOV         R1,R4
   \   0000000E   6846               MOV         R0,SP
   \   00000010   ........           _BLF        vTaskDelayUntil,vTaskDelayUntil??rT
    190          	
    191          		/* Check all the standard demo application tasks are executing without
    192          		error. */
    193          		if( prvCheckOtherTasksAreStillRunning() != pdPASS )
   \   00000014   0126               MOV         R6,#+0x1
   \   00000016   ........           _BLF        xAreIntegerMathsTaskStillRunning,xAreIntegerMathsTaskStillRunning??rT
   \   0000001A   0128               CMP         R0,#+0x1
   \   0000001C   00D0               BEQ         ??vErrorChecks_3
   \   0000001E   0026               MOV         R6,#+0
   \                     ??vErrorChecks_3:
   \   00000020   ........           _BLF        xArePollingQueuesStillRunning,xArePollingQueuesStillRunning??rT
   \   00000024   0128               CMP         R0,#+0x1
   \   00000026   00D0               BEQ         ??vErrorChecks_4
   \   00000028   0026               MOV         R6,#+0
   \                     ??vErrorChecks_4:
   \   0000002A   ........           _BLF        xAreSemaphoreTasksStillRunning,xAreSemaphoreTasksStillRunning??rT
   \   0000002E   0128               CMP         R0,#+0x1
   \   00000030   00D0               BEQ         ??vErrorChecks_5
   \   00000032   0026               MOV         R6,#+0
   \                     ??vErrorChecks_5:
   \   00000034   ........           _BLF        xAreBlockingQueuesStillRunning,xAreBlockingQueuesStillRunning??rT
   \   00000038   0128               CMP         R0,#+0x1
   \   0000003A   00D0               BEQ         ??vErrorChecks_6
   \   0000003C   0026               MOV         R6,#+0
   \                     ??vErrorChecks_6:
   \   0000003E   ........           _BLF        xAreComTestTasksStillRunning,xAreComTestTasksStillRunning??rT
   \   00000042   0128               CMP         R0,#+0x1
   \   00000044   00D0               BEQ         ??vErrorChecks_7
   \   00000046   0026               MOV         R6,#+0
   \                     ??vErrorChecks_7:
   \   00000048   ........           _BLF        xAreDynamicPriorityTasksStillRunning,xAreDynamicPriorityTasksStillRunning??rT
   \   0000004C   0128               CMP         R0,#+0x1
   \   0000004E   01D1               BNE         ??vErrorChecks_8
   \   00000050   012E               CMP         R6,#+0x1
   \   00000052   01D0               BEQ         ??vErrorChecks_9
    194          		{
    195          			/* An error has been detected in one of the tasks - flash faster. */
    196          			xDelayPeriod = mainERROR_FLASH_PERIOD;
   \                     ??vErrorChecks_8:
   \   00000054   FA24               MOV         R4,#+0xFA
   \   00000056   6400               LSL         R4,R4,#+0x1        ;; #+0x1F4
    197          		}
    198          		
    199          		vParTestToggleLED( mainCHECK_TASK_LED );
   \                     ??vErrorChecks_9:
   \   00000058   0420               MOV         R0,#+0x4
   \   0000005A   ........           _BLF        vParTestToggleLED,vParTestToggleLED??rT
   \   0000005E   D5E7               B           ??vErrorChecks_2
   \                     ??vErrorChecks_1:
   \   00000060   B80B0000           DC32        0xbb8
    200          	}
    201          }

   \                                 In segment DATA_C, align 4, align-sorted
   \                     `?<Constant "Check">`:
   \   00000000   436865636B00       DC8 "Check"
   \   00000006   0000               DC8 0, 0
    202          /*-----------------------------------------------------------*/
    203          
    204          static portLONG prvCheckOtherTasksAreStillRunning( void )
    205          {
    206          portLONG lReturn = ( portLONG ) pdPASS;
    207          
    208          	/* Check all the demo tasks (other than the flash tasks) to ensure
    209          	that they are all still running, and that none of them have detected
    210          	an error. */
    211          
    212          	if( xAreIntegerMathsTaskStillRunning() != pdTRUE )
    213          	{
    214          		lReturn = ( portLONG ) pdFAIL;
    215          	}
    216          
    217          	if( xArePollingQueuesStillRunning() != pdTRUE )
    218          	{
    219          		lReturn = ( portLONG ) pdFAIL;
    220          	}
    221          
    222          	if( xAreSemaphoreTasksStillRunning() != pdTRUE )
    223          	{
    224          		lReturn = ( portLONG ) pdFAIL;
    225          	}
    226          
    227          	if( xAreBlockingQueuesStillRunning() != pdTRUE )
    228          	{
    229          		lReturn = ( portLONG ) pdFAIL;
    230          	}
    231          
    232          	if( xAreComTestTasksStillRunning() != pdTRUE )
    233          	{
    234          		lReturn = ( portLONG ) pdFAIL;
    235          	}
    236          
    237          	if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )
    238          	{
    239          		lReturn = ( portLONG ) pdFAIL;
    240          	}
    241          
    242          	return lReturn;
    243          }
    244          /*-----------------------------------------------------------*/
    245          
    246          

   Maximum stack usage in bytes:

     Function     CSTACK
     --------     ------
     main            12
     vErrorChecks    24


   Segment part sizes:

     Function/Label      Bytes
     --------------      -----
     main                 124
     vErrorChecks         100
     ?<Constant "Check">    8
      Others              192

 
 416 bytes in segment CODE
   8 bytes in segment DATA_C
 
 224 bytes of CODE  memory (+ 192 bytes shared)
   8 bytes of CONST memory

Errors: none
Warnings: none

⌨️ 快捷键说明

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