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

📄 port.lst

📁 Sistema operacional de tempo real
💻 LST
📖 第 1 页 / 共 3 页
字号:
   1              		.code	16
   2              		.file	"port.c"
  10              	.Ltext0:
  11              		.align	2
  12              		.global	pxPortInitialiseStack
  13              		.code 16
  14              		.thumb_func
  16              	pxPortInitialiseStack:
  17              	.LFB2:
  18              		.file 1 "FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c"
   1:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** /*
   2:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	FreeRTOS V4.0.0 - Copyright (C) 2003-2006 Richard Barry.
   3:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 
   4:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	This file is part of the FreeRTOS distribution.
   5:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 
   6:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	FreeRTOS is free software; you can redistribute it and/or modify
   7:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	it under the terms of the GNU General Public License as published by
   8:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	the Free Software Foundation; either version 2 of the License, or
   9:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	(at your option) any later version.
  10:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 
  11:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	FreeRTOS is distributed in the hope that it will be useful,
  12:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	but WITHOUT ANY WARRANTY; without even the implied warranty of
  13:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	GNU General Public License for more details.
  15:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 
  16:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	You should have received a copy of the GNU General Public License
  17:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	along with FreeRTOS; if not, write to the Free Software
  18:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  19:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 
  20:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	A special exception to the GPL can be applied should you wish to distribute
  21:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	a combined work that includes FreeRTOS, without being obliged to provide
  22:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	the source code for any proprietary components.  See the licensing section 
  23:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	of http://www.FreeRTOS.org for full details of how and when the exception
  24:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	can be applied.
  25:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 
  26:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	***************************************************************************
  27:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	See http://www.FreeRTOS.org for documentation, latest information, license 
  28:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	and contact details.  Please ensure to read the configuration and relevant 
  29:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	port sections of the online documentation.
  30:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	***************************************************************************
  31:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** */
  32:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 
  33:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 
  34:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** /*-----------------------------------------------------------
  35:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c ****  * Implementation of functions defined in portable.h for the ARM7 port.
  36:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c ****  *
  37:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c ****  * Components that can be compiled to either ARM or THUMB mode are
  38:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c ****  * contained in this file.  The ISR routines, which can only be compiled
  39:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c ****  * to ARM mode are contained in portISR.c.
  40:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c ****  *----------------------------------------------------------*/
  41:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 
  42:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** /*
  43:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	Changes from V2.5.2
  44:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 		
  45:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	+ ulCriticalNesting is now saved as part of the task context, as is 
  46:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	  therefore added to the initial task stack during pxPortInitialiseStack.
  47:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 
  48:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	Changes from V3.2.2
  49:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 
  50:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	+ Bug fix - The prescale value for the timer setup is now written to T0_PR 
  51:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	  instead of T0_PC.  This bug would have had no effect unless a prescale 
  52:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	  value was actually used.
  53:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** */
  54:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 
  55:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 
  56:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** /* Standard includes. */
  57:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** #include <stdlib.h>
  58:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 
  59:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** /* Scheduler includes. */
  60:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** #include "FreeRTOS.h"
  61:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** #include "task.h"
  62:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 
  63:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** /* Constants required to setup the task context. */
  64:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** #define portINITIAL_SPSR				( ( portSTACK_TYPE ) 0x1f ) /* System mode, ARM mode, interrupts enable
  65:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** #define portTHUMB_MODE_BIT				( ( portSTACK_TYPE ) 0x20 )
  66:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** #define portINSTRUCTION_SIZE			( ( portSTACK_TYPE ) 4 )
  67:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** #define portNO_CRITICAL_SECTION_NESTING	( ( portSTACK_TYPE ) 0 )
  68:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 
  69:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** /* Constants required to setup the tick ISR. */
  70:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** #define portENABLE_TIMER			( ( unsigned portCHAR ) 0x01 )
  71:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** #define portPRESCALE_VALUE			0x00
  72:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** #define portINTERRUPT_ON_MATCH		( ( unsigned portLONG ) 0x01 )
  73:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** #define portRESET_COUNT_ON_MATCH	( ( unsigned portLONG ) 0x02 )
  74:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 
  75:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** /* Constants required to setup the VIC for the tick ISR. */
  76:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** #define portTIMER_VIC_CHANNEL		( ( unsigned portLONG ) 0x0004 )
  77:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** #define portTIMER_VIC_CHANNEL_BIT	( ( unsigned portLONG ) 0x0010 )
  78:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** #define portTIMER_VIC_ENABLE		( ( unsigned portLONG ) 0x0020 )
  79:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 
  80:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** /*-----------------------------------------------------------*/
  81:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 
  82:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** /* Setup the timer to generate the tick interrupts. */
  83:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** static void prvSetupTimerInterrupt( void );
  84:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 
  85:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** /* 
  86:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c ****  * The scheduler can only be started from ARM mode, so 
  87:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c ****  * vPortISRStartFirstSTask() is defined in portISR.c. 
  88:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c ****  */
  89:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** extern void vPortISRStartFirstTask( void );
  90:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 
  91:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** /*-----------------------------------------------------------*/
  92:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 
  93:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** /* 
  94:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c ****  * Initialise the stack of a task to look exactly as if a call to 
  95:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c ****  * portSAVE_CONTEXT had been called.
  96:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c ****  *
  97:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c ****  * See header file for description. 
  98:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c ****  */
  99:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** portSTACK_TYPE *pxPortInitialiseStack( portSTACK_TYPE *pxTopOfStack, pdTASK_CODE pxCode, void *pvPa
 100:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** {
  19              	0:
  20              		.loc 1 111 0
 101:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** portSTACK_TYPE *pxOriginalTOS;
 102:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 
 103:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	pxOriginalTOS = pxTopOfStack;
 104:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 
 105:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	/* Setup the initial stack of the task.  The stack is set exactly as 
 106:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	expected by the portRESTORE_CONTEXT() macro. */
 107:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 
 108:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	/* First on the stack is the return address - which in this case is the
 109:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	start of the task.  The offset is added to make the return address appear
 110:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	as it would within an IRQ ISR. */
 111:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	*pxTopOfStack = ( portSTACK_TYPE ) pxCode + portINSTRUCTION_SIZE;		
  21              	dd	r1, r1, #4
  22 0000 0431     	.LVL1:
  23              		.loc 1 114 0
 112:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	pxTopOfStack--;
 113:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 
 114:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	*pxTopOfStack = ( portSTACK_TYPE ) 0xaaaaaaaa;	/* R14 */
  24              	r	r3, .L3
  25 0002 1B4B     		.loc 1 111 0
  26              		str	r1, [r0]
  27 0004 0160     		.loc 1 112 0
  28              		sub	r1, r0, #4
  29 0006 011F     	.LVL2:
  30              		.loc 1 114 0
  31              		str	r3, [r1]
  32 0008 0B60     		.loc 1 115 0
 115:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	pxTopOfStack--;	
  33              	r0
  34 000a 031C     	.LVL3:
  35              		sub	r3, r3, #8
  36 000c 083B     		.loc 1 116 0
 116:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	*pxTopOfStack = ( portSTACK_TYPE ) pxOriginalTOS; /* Stack used when task starts goes in R13. */
  37              		r0, [r3]
  38 000e 1860     		.loc 1 118 0
 117:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	pxTopOfStack--;
 118:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	*pxTopOfStack = ( portSTACK_TYPE ) 0x12121212;	/* R12 */
  39              	dr	r3, .L3+4
  40 0010 184B     	.LVL4:
  41              	.LVL5:
  42              		.loc 1 117 0
  43              		sub	r1, r1, #8
  44 0012 0839     		.loc 1 118 0
  45              		str	r3, [r1]
  46 0014 0B60     		.loc 1 120 0
 119:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	pxTopOfStack--;	
 120:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** 	*pxTopOfStack = ( portSTACK_TYPE ) 0x11111111;	/* R11 */
  47              	 .L3+8
  48 0016 184B     	.LVL6:
  49              		.loc 1 119 0
  50              		sub	r1, r1, #4
  51 0018 0439     		.loc 1 120 0
  52              		str	r3, [r1]

⌨️ 快捷键说明

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