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

📄 list.lst

📁 本代码已经经过修改
💻 LST
📖 第 1 页 / 共 2 页
字号:
##############################################################################
#                                                                            #
# IAR ARM ANSI C/C++ Compiler V4.30A/W32 KICKSTART     14/Dec/2005  14:41:45 #
# Copyright 1999-2005 IAR Systems. All rights reserved.                      #
#                                                                            #
#    Cpu mode        =  interwork                                            #
#    Endian          =  little                                               #
#    Stack alignment =  4                                                    #
#    Source file     =  D:\board\FreeRTOSV3.2.3\FreeRTOS\Source\list.c       #
#    Command line    =  D:\board\FreeRTOSV3.2.3\FreeRTOS\Source\list.c -D    #
#                       _NDEBUG -D STR71X_IAR -lC                            #
#                       D:\board\FreeRTOSV3.2.3\FreeRTOS\Demo\ARM7_STR71x_IA #
#                       R\binary\List\ --diag_suppress pe191,pa082 -o        #
#                       D:\board\FreeRTOSV3.2.3\FreeRTOS\Demo\ARM7_STR71x_IA #
#                       R\binary\Obj\ -s9 --no_clustering --cpu_mode thumb   #
#                       --endian little --cpu ARM7TDMI --stack_align 4       #
#                       --interwork -e --require_prototypes --fpu None       #
#                       --dlib_config "C:\Program Files\IAR                  #
#                       Systems\Embedded Workbench 4.0                       #
#                       Kickstart\arm\LIB\dl4tptinl8n.h" -I                  #
#                       D:\board\FreeRTOSV3.2.3\FreeRTOS\Demo\ARM7_STR71x_IA #
#                       R\ -I D:\board\FreeRTOSV3.2.3\FreeRTOS\Demo\ARM7_STR #
#                       71x_IAR\library\include\ -I                          #
#                       D:\board\FreeRTOSV3.2.3\FreeRTOS\Demo\ARM7_STR71x_IA #
#                       R\..\common\include\ -I D:\board\FreeRTOSV3.2.3\Free #
#                       RTOS\Demo\ARM7_STR71x_IAR\..\..\source\include\ -I   #
#                       "C:\Program Files\IAR Systems\Embedded Workbench     #
#                       4.0 Kickstart\arm\INC\"                              #
#    List file       =  D:\board\FreeRTOSV3.2.3\FreeRTOS\Demo\ARM7_STR71x_IA #
#                       R\binary\List\list.lst                               #
#    Object file     =  D:\board\FreeRTOSV3.2.3\FreeRTOS\Demo\ARM7_STR71x_IA #
#                       R\binary\Obj\list.r79                                #
#                                                                            #
#                                                                            #
##############################################################################

D:\board\FreeRTOSV3.2.3\FreeRTOS\Source\list.c
      1          /*
      2          	FreeRTOS V3.2.3 - Copyright (C) 2003-2005 Richard Barry.
      3          
      4          	This file is part of the FreeRTOS distribution.
      5          
      6          	FreeRTOS is free software; you can redistribute it and/or modify
      7          	it under the terms of the GNU General Public License as published by
      8          	the Free Software Foundation; either version 2 of the License, or
      9          	(at your option) any later version.
     10          
     11          	FreeRTOS is distributed in the hope that it will be useful,
     12          	but WITHOUT ANY WARRANTY; without even the implied warranty of
     13          	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     14          	GNU General Public License for more details.
     15          
     16          	You should have received a copy of the GNU General Public License
     17          	along with FreeRTOS; if not, write to the Free Software
     18          	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
     19          
     20          	A special exception to the GPL can be applied should you wish to distribute
     21          	a combined work that includes FreeRTOS, without being obliged to provide
     22          	the source code for any proprietary components.  See the licensing section 
     23          	of http://www.FreeRTOS.org for full details of how and when the exception
     24          	can be applied.
     25          
     26          	***************************************************************************
     27          	See http://www.FreeRTOS.org for documentation, latest information, license 
     28          	and contact details.  Please ensure to read the configuration and relevant 
     29          	port sections of the online documentation.
     30          	***************************************************************************
     31          */
     32          
     33          /*
     34          Changes from V1.2.0
     35          
     36          	+ Removed the volatile modifier from the function parameters.  This was
     37          	  only ever included to prevent compiler warnings.  Now warnings are 
     38          	  removed by casting parameters where the calls are made.
     39          
     40          	+ prvListGetOwnerOfNextEntry() and prvListGetOwnerOfHeadEntry() have been
     41          	  removed from the c file and added as macros to the h file.
     42          
     43          	+ uxNumberOfItems has been added to the list structure.  This removes the
     44          	  need for a pointer comparison when checking if a list is empty, and so
     45          	  is slightly faster.
     46          
     47          	+ Removed the NULL check in vListRemove().  This makes the call faster but
     48          	  necessitates any application code utilising the list implementation to
     49          	  ensure NULL pointers are not passed.
     50          
     51          Changes from V2.0.0
     52          
     53          	+ Double linked the lists to allow faster removal item removal.
     54          
     55          Changes from V2.6.1
     56          
     57          	+ Make use of the new portBASE_TYPE definition where ever appropriate.
     58          
     59          Changes from V3.0.0
     60          
     61          	+ API changes as described on the FreeRTOS.org WEB site.
     62          */
     63          
     64          #include <stdlib.h>
     65          #include "FreeRTOS.h"
     66          #include "list.h"
     67          
     68          /*-----------------------------------------------------------
     69           * PUBLIC LIST API documented in list.h
     70           *----------------------------------------------------------*/
     71          

   \                                 In segment CODE, align 4, keep-with-next
     72          void vListInitialise( xList *pxList )
     73          {
     74          	/* The list structure contains a list item which is used to mark the 
     75          	end of the list.  To initialise the list the list end is inserted
     76          	as the only list entry. */
     77          	pxList->pxHead = &( pxList->xListEnd );
   \                     vListInitialise:
   \   00000000   011C               MOV         R1,R0
   \   00000002   0C31               ADD         R1,#+0xC
   \   00000004   4160               STR         R1,[R0, #+0x4]
     78          	pxList->pxIndex = pxList->pxHead;
   \   00000006   8160               STR         R1,[R0, #+0x8]
     79          
     80          	/* The list end value is the highest possible value in the list to
     81          	ensure it remains at the end of the list. */
     82          	pxList->xListEnd.xItemValue = portMAX_DELAY;
   \   00000008   0021               MOV         R1,#+0
   \   0000000A   C943               MVN         R1,R1              ;; #-1
   \   0000000C   C160               STR         R1,[R0, #+0xC]
     83          
     84          	/* The list end next and previous pointers point to itself so we know
     85          	when the list is empty. */
     86          	pxList->xListEnd.pxNext = &( pxList->xListEnd );
   \   0000000E   011C               MOV         R1,R0
   \   00000010   0C31               ADD         R1,#+0xC
   \   00000012   0161               STR         R1,[R0, #+0x10]
     87          	pxList->xListEnd.pxPrevious = &( pxList->xListEnd );
   \   00000014   011C               MOV         R1,R0
   \   00000016   0C31               ADD         R1,#+0xC
   \   00000018   4161               STR         R1,[R0, #+0x14]
     88          
     89          	/* The list head will never get used and has no owner. */
     90          	pxList->xListEnd.pvOwner = NULL;
   \   0000001A   0021               MOV         R1,#+0
   \   0000001C   8161               STR         R1,[R0, #+0x18]
     91          
     92          	/* Make sure the marker items are not mistaken for being on a list. */
     93          	vListInitialiseItem( ( xListItem * ) &( pxList->xListEnd ) );
   \   0000001E   C161               STR         R1,[R0, #+0x1C]
     94          
     95          	pxList->uxNumberOfItems = 0;
   \   00000020   0160               STR         R1,[R0, #+0]
     96          }
   \   00000022   7047               BX          LR                 ;; return
     97          /*-----------------------------------------------------------*/
     98          

   \                                 In segment CODE, align 4, keep-with-next
     99          void vListInitialiseItem( xListItem *pxItem )
    100          {
    101          	/* Make sure the list item is not recorded as being on a list. */
    102          	pxItem->pvContainer = NULL;
   \                     vListInitialiseItem:
   \   00000000   0021               MOV         R1,#+0
   \   00000002   0161               STR         R1,[R0, #+0x10]
    103          }
   \   00000004   7047               BX          LR                 ;; return
    104          /*-----------------------------------------------------------*/
    105          

   \                                 In segment CODE, align 4, keep-with-next
    106          void vListInsertEnd( xList *pxList, xListItem *pxNewListItem )
    107          {
    108          volatile xListItem * pxIndex;
    109          
    110          	/* Insert a new list item into pxList, but rather than sort the list, 
    111          	makes the new list item the last item to be removed by a call to 
    112          	pvListGetOwnerOfNextEntry.  This means it has to be the item pointed to by
    113          	the pxIndex member. */
    114          	pxIndex = pxList->pxIndex;
   \                     vListInsertEnd:
   \   00000000   8268               LDR         R2,[R0, #+0x8]
    115          
    116          	pxNewListItem->pxNext = pxIndex->pxNext;

⌨️ 快捷键说明

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