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

📄 port.lst

📁 MSP430 IAR project with FreeRTOS port.
💻 LST
📖 第 1 页 / 共 2 页
字号:
   \   00001A   3C50FEFF     ADD.W   #0xfffe, R12
    105          	*pxTopOfStack = ( portSTACK_TYPE ) 0x5555;
   \   00001E   BC4055550000 MOV.W   #0x5555, 0(R12)
    106          	pxTopOfStack--;
   \   000024   3C50FEFF     ADD.W   #0xfffe, R12
    107          	*pxTopOfStack = ( portSTACK_TYPE ) 0x6666;
   \   000028   BC4066660000 MOV.W   #0x6666, 0(R12)
    108          	pxTopOfStack--;
   \   00002E   3C50FEFF     ADD.W   #0xfffe, R12
    109          	*pxTopOfStack = ( portSTACK_TYPE ) 0x7777;
   \   000032   BC4077770000 MOV.W   #0x7777, 0(R12)
    110          	pxTopOfStack--;
   \   000038   3C50FEFF     ADD.W   #0xfffe, R12
    111          	*pxTopOfStack = ( portSTACK_TYPE ) 0x8888;
   \   00003C   BC4088880000 MOV.W   #0x8888, 0(R12)
    112          	pxTopOfStack--;
   \   000042   3C50FEFF     ADD.W   #0xfffe, R12
    113          	*pxTopOfStack = ( portSTACK_TYPE ) 0x9999;
   \   000046   BC4099990000 MOV.W   #0x9999, 0(R12)
    114          	pxTopOfStack--;
   \   00004C   3C50FEFF     ADD.W   #0xfffe, R12
    115          	*pxTopOfStack = ( portSTACK_TYPE ) 0xaaaa;
   \   000050   BC40AAAA0000 MOV.W   #0xaaaa, 0(R12)
    116          	pxTopOfStack--;
   \   000056   3C50FEFF     ADD.W   #0xfffe, R12
    117          //	*pxTopOfStack = ( portSTACK_TYPE ) pvParameters;
    118          //	pxTopOfStack--;
    119          	*pxTopOfStack = ( portSTACK_TYPE ) 0xbbbb;
   \   00005A   BC40BBBB0000 MOV.W   #0xbbbb, 0(R12)
    120          	pxTopOfStack--;
   \   000060   3C50FEFF     ADD.W   #0xfffe, R12
    121          // XXX - ok - something strange going on here...
    122          	
    123          //	*pxTopOfStack = ( portSTACK_TYPE ) 0xcccc;
    124          //	pxTopOfStack--;
    125          
    126          // pvParameters has been moved from R15 to R12.  The IAR compiler will
    127          // move R12 into R10 upon task (function) entry.  Note this may not
    128          // work on all data types...Data types may need to be known apriori
    129          // to make this work in all cases.	
    130          	
    131          // Pass in R12...
    132          	*pxTopOfStack = ( portSTACK_TYPE ) pvParameters;
   \   000064   8C4F0000     MOV.W   R15, 0(R12)
    133          	pxTopOfStack--;
   \   000068   3C50FEFF     ADD.W   #0xfffe, R12
    134          	*pxTopOfStack = ( portSTACK_TYPE ) 0xdddd;
   \   00006C   BC40DDDD0000 MOV.W   #0xdddd, 0(R12)
    135          	pxTopOfStack--;
   \   000072   3C50FEFF     ADD.W   #0xfffe, R12
    136          	*pxTopOfStack = ( portSTACK_TYPE ) 0xeeee;
   \   000076   BC40EEEE0000 MOV.W   #0xeeee, 0(R12)
    137          	pxTopOfStack--;
   \   00007C   3C50FEFF     ADD.W   #0xfffe, R12
    138          
    139          	/* When the task starts is will expect to find the function parameter in
    140          	R15. */
    141          	*pxTopOfStack = ( portSTACK_TYPE ) 0xffff;
   \   000080   BC430000     MOV.W   #0xffff, 0(R12)
    142          	pxTopOfStack--;
   \   000084   3C50FEFF     ADD.W   #0xfffe, R12
    143          //	*pxTopOfStack = ( portSTACK_TYPE ) pvParameters;
    144          //	pxTopOfStack--;
    145          
    146          	/* A variable is used to keep track of the critical section nesting.  
    147          	This variable has to be stored as part of the task context and is 
    148          	initially set to zero. */
    149          	*pxTopOfStack = ( portSTACK_TYPE ) portNO_CRITICAL_SECTION_NESTING;	
   \   000088   8C430000     MOV.W   #0x0, 0(R12)
    150          
    151          	/* Return a pointer to the top of the stack we have generated so this can
    152          	be stored in the task control block for the task. */
    153          	return pxTopOfStack;
   \   00008C   3041         RET
    154          }
    155          /*-----------------------------------------------------------*/
    156          

   \                                 In segment CODE, align 2
    157          void vPortEndScheduler( void )
   \                     vPortEndScheduler:
    158          {
    159          	/* It is unlikely that the MSP430 port will get stopped.  If required simply
    160          	disable the tick interrupt here. */
    161          }
   \   000000   3041         RET
    162          /*-----------------------------------------------------------*/
    163          
    164          /*
    165           * Hardware initialisation to generate the RTOS tick.  This uses timer 0
    166           * but could alternatively use the watchdog timer or timer 1. 
    167           */
    168          

   \                                 In segment CODE, align 2
    169          void prvSetupTimerInterrupt( void )
   \                     prvSetupTimerInterrupt:
    170          {
    171          	/* Ensure the timer is stopped. */
    172          	TACTL = 0;
   \   000000   82436001     MOV.W   #0x0, &0x160
    173          
    174          	/* Run the timer of the ACLK. */
    175          	TACTL = TASSEL_1|CNTL_0|ID_0;		// use ACLK as 32768;
   \   000004   B24000016001 MOV.W   #0x100, &0x160
    176          
    177          	/* Clear everything to start with. */
    178          	TACTL |= TACLR;
   \   00000A   A2D26001     BIS.W   #0x4, &0x160
    179          
    180          	/* Set the compare match value according to the tick rate we want. */
    181          	TACCR0 = ( portACLK_FREQUENCY_HZ / configTICK_RATE_HZ ) - 1;
   \   00000E   B2401F007201 MOV.W   #0x1f, &0x172
    182          
    183          	/* Enable the interrupts. */
    184          	TACCTL0 = CCIE;
   \   000014   B24010006201 MOV.W   #0x10, &0x162
    185          
    186          	/* Start up clean. */
    187          	TACTL |= TACLR;
   \   00001A   A2D26001     BIS.W   #0x4, &0x160
    188          
    189          	/* Up mode. */
    190          	TACTL |= TASSEL_1 | MC_1 | CNTL_0 | ID_0;
   \   00001E   B2D010016001 BIS.W   #0x110, &0x160
    191          }
   \   000024   3041         RET

   \                                 In segment DATA16_ID, align 2, align-sorted
   \                     `?<Initializer for usCriticalNesting>`:
   \   000000   0A00         DC16 10
    192          /*-----------------------------------------------------------*/
    193          
    194          
    195          	

   Maximum stack usage in bytes:

     Function               CSTACK
     --------               ------
     prvSetupTimerInterrupt     2
     pxPortInitialiseStack      2
     vPortEndScheduler          2


   Segment part sizes:

     Function/Label                 Bytes
     --------------                 -----
     _A_TACTL                          2
     _A_TACCTL0                        2
     TACCR0                            2
     usCriticalNesting                 2
     pxPortInitialiseStack           142
     vPortEndScheduler                 2
     prvSetupTimerInterrupt           38
     ?<Initializer for usCriticalNesting>
                                       2

 
 182 bytes in segment CODE
   6 bytes in segment DATA16_AN
   2 bytes in segment DATA16_I
   2 bytes in segment DATA16_ID
 
 182 bytes of CODE  memory
   2 bytes of CONST memory
   2 bytes of DATA  memory (+ 6 bytes shared)

Errors: none
Warnings: none

⌨️ 快捷键说明

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