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

📄 osal_memory.lst

📁 用IAR开发的ZIGBEE网络路由例子
💻 LST
📖 第 1 页 / 共 4 页
字号:
##############################################################################
#                                                                            #
# IAR 8051 C/C++ Compiler V7.20H/W32                   06/Nov/2008  11:13:08 #
# Copyright 2004-2006 IAR Systems. All rights reserved.                      #
#                                                                            #
#    Core               =  plain                                             #
#    Code model         =  banked                                            #
#    Data model         =  large                                             #
#    Calling convention =  xdata reentrant                                   #
#    Constant location  =  data                                              #
#    Dptr setup         =  1,16                                              #
#    Source file        =  E:\解决\路由\Components\osal\common\OSAL_Memory.c #
#    Command line       =  -f E:\解决\路由\Projects\zstack\Samples\SampleApp #
#                          \CC2430DB\..\..\..\Tools\CC2430DB\f8wCoord.cfg    #
#                          (-DCPU32MHZ -DFORCE_MAC_NEAR -DROOT=__near_func   #
#                          -DMAC_CFG_APP_PENDING_QUEUE=TRUE                  #
#                          -DZDO_COORDINATOR -DRTR_NWK -DBLINK_LEDS          #
#                          "-DCONST=const __code" -DGENERIC=__generic) -f    #
#                          E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
#                          2430DB\..\..\..\Tools\CC2430DB\f8wConfig.cfg      #
#                          (-DSECURE=0 -DDEFAULT_CHANLIST=0x00000800         #
#                          -DZDAPP_CONFIG_PAN_ID=0xFFFF                      #
#                          -DNWK_START_DELAY=100 -DEXTENDED_JOINING_RANDOM_M #
#                          ASK=0x007F -DBEACON_REQUEST_DELAY=100             #
#                          -DBEACON_REQ_DELAY_MASK=0x00FF                    #
#                          -DROUTE_EXPIRY_TIME=30 -DAPSC_ACK_WAIT_DURATION_P #
#                          OLLED=3000 -DNWK_INDIRECT_MSG_TIMEOUT=7           #
#                          -DMAX_RREQ_ENTRIES=10 -DAPSC_MAX_FRAME_RETRIES=3  #
#                          -DNWK_MAX_DATA_RETRIES=2                          #
#                          -DMAX_POLL_FAILURE_RETRIES=2 -DMAX_BCAST=9        #
#                          -DAPS_MAX_GROUPS=16 -DMAX_RTG_ENTRIES=20          #
#                          -DNWK_MAX_BINDING_ENTRIES=10                      #
#                          -DMAX_BINDING_CLUSTER_IDS=5                       #
#                          "-DDEFAULT_KEY={0x01, 0x03, 0x05, 0x07, 0x09,     #
#                          0x0B, 0x0D, 0x0F, 0x00, 0x02, 0x04, 0x06, 0x08,   #
#                          0x0A, 0x0C, 0x0D}" -DRFD_RCVC_ALWAYS_ON=FALSE     #
#                          -DPOLL_RATE=1000 -DQUEUED_POLL_RATE=100           #
#                          -DRESPONSE_POLL_RATE=100 -DREJOIN_POLL_RATE=440   #
#                          -DTOP_BOOT_PAGES=0) -I "D:\Program Files\IAR      #
#                          Systems\Embedded Workbench 4.05 Evaluation        #
#                          version\8051\inc\" -I "D:\Program Files\IAR       #
#                          Systems\Embedded Workbench 4.05 Evaluation        #
#                          version\8051\inc\clib\" -I                        #
#                          E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
#                          2430DB\ -I E:\解决\路由\Projects\zstack\Samples\S #
#                          ampleApp\CC2430DB\..\Source\ -I                   #
#                          E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
#                          2430DB\..\..\..\ZMain\TI2430DB\ -I                #
#                          E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
#                          2430DB\..\..\..\..\..\Components\mt\ -I           #
#                          E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
#                          2430DB\..\..\..\..\..\Components\hal\include\ -I  #
#                          E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
#                          2430DB\..\..\..\..\..\Components\hal\target\CC243 #
#                          0DB\ -I E:\解决\路由\Projects\zstack\Samples\Samp #
#                          leApp\CC2430DB\..\..\..\..\..\Components\osal\mcu #
#                          \ccsoc\ -I E:\解决\路由\Projects\zstack\Samples\S #
#                          ampleApp\CC2430DB\..\..\..\..\..\Components\osal\ #
#                          include\ -I E:\解决\路由\Projects\zstack\Samples\ #
#                          SampleApp\CC2430DB\..\..\..\..\..\Components\stac #
#                          k\af\ -I E:\解决\路由\Projects\zstack\Samples\Sam #
#                          pleApp\CC2430DB\..\..\..\..\..\Components\stack\n #
#                          wk\ -I E:\解决\路由\Projects\zstack\Samples\Sampl #
#                          eApp\CC2430DB\..\..\..\..\..\Components\stack\sec #
#                          \ -I E:\解决\路由\Projects\zstack\Samples\SampleA #
#                          pp\CC2430DB\..\..\..\..\..\Components\stack\sys\  #
#                          -I E:\解决\路由\Projects\zstack\Samples\SampleApp #
#                          \CC2430DB\..\..\..\..\..\Components\stack\zdo\    #
#                          -I E:\解决\路由\Projects\zstack\Samples\SampleApp #
#                          \CC2430DB\..\..\..\..\..\Components\zmac\f8w\ -I  #
#                          E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
#                          2430DB\..\..\..\..\..\Components\zmac\ -I         #
#                          E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
#                          2430DB\..\..\..\..\..\Components\services\saddr\  #
#                          -I E:\解决\路由\Projects\zstack\Samples\SampleApp #
#                          \CC2430DB\..\..\..\..\..\Components\services\sdat #
#                          a\ -I E:\解决\路由\Projects\zstack\Samples\Sample #
#                          App\CC2430DB\..\..\..\..\..\Components\mac\includ #
#                          e\ -I E:\解决\路由\Projects\zstack\Samples\Sample #
#                          App\CC2430DB\..\..\..\..\..\Components\mac\high_l #
#                          evel\ -I E:\解决\路由\Projects\zstack\Samples\Sam #
#                          pleApp\CC2430DB\..\..\..\..\..\Components\mac\low #
#                          _level\srf03\ -I E:\解决\路由\Projects\zstack\Sam #
#                          ples\SampleApp\CC2430DB\..\..\..\..\..\Components #
#                          \mac\low_level\srf03\single_chip\ -D CC2430DB     #
#                          -lC E:\解决\路由\Projects\zstack\Samples\SampleAp #
#                          p\CC2430DB\CoordinatorDB\List\ -lA                #
#                          E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
#                          2430DB\CoordinatorDB\List\ --diag_suppress        #
#                          Pe001,Pa010 --diag_remark pe550 -o                #
#                          E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
#                          2430DB\CoordinatorDB\Obj\ -e                      #
#                          --require_prototypes -z9 --no_code_motion         #
#                          --debug --core=plain --dptr=16,1                  #
#                          --data_model=large --code_model=banked            #
#                          --calling_convention=xdata_reentrant              #
#                          --place_constants=data --nr_virtual_regs 8        #
#                          E:\解决\路由\Components\osal\common\OSAL_Memory.c #
#    List file          =  E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
#                          2430DB\CoordinatorDB\List\OSAL_Memory.lst         #
#    Object file        =  E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
#                          2430DB\CoordinatorDB\Obj\OSAL_Memory.r51          #
#                                                                            #
#                                                                            #
##############################################################################

E:\解决\路由\Components\osal\common\OSAL_Memory.c
      1          /*********************************************************************
      2              Filename:       OSAL_Memory.c
      3              Revised:        $Date: 2006-10-26 11:15:57 -0700 (Thu, 26 Oct 2006) $
      4              Revision:       $Revision: 12421 $
      5          
      6              Description: OSAL Heap Memory management functions.
      7          
      8              Copyright (c) 2006 by Texas Instruments, Inc.
      9              All Rights Reserved.  Permission to use, reproduce, copy, prepare
     10              derivative works, modify, distribute, perform, display or sell this
     11              software and/or its documentation for any purpose is prohibited
     12              without the express written consent of Texas Instruments, Inc.
     13          *********************************************************************/
     14          
     15          /*********************************************************************
     16           * INCLUDES
     17           */
     18          
     19          #include "ZComDef.h"
     20          #include "OSAL_Memory.h"
     21          #include "OnBoard.h"
     22          #include "hal_assert.h"
     23          
     24          #if ( MAXMEMHEAP >= 32768 )
     25            #error MAXMEMHEAP is too big to manage!
     26          #endif
     27          
     28          // Minimum wasted bytes to justify splitting a block before allocation.
     29          #if !defined ( OSALMEM_MIN_BLKSZ )
     30            #define OSALMEM_MIN_BLKSZ    4
     31          #endif
     32          
     33          /* Profiling memory allocations showed that a significant % of very high
     34           * frequency allocations/frees are for block sizes less than or equal to 16.
     35           */
     36          #if !defined ( OSALMEM_SMALL_BLKSZ )
     37            #define OSALMEM_SMALL_BLKSZ  16
     38          #endif
     39          
     40          #if !defined ( OSALMEM_NODEBUG )
     41            #define OSALMEM_NODEBUG      TRUE
     42          #endif
     43          
     44          #if !defined ( OSALMEM_PROFILER )
     45            #define OSALMEM_PROFILER     FALSE
     46          #endif
     47          
     48          #if !defined ( OSALMEM_GUARD )
     49            #define OSALMEM_GUARD  TRUE  // TBD - Hacky workaround til Bugzilla 1252 is fixed!
     50            #define OSALMEM_READY  0xE2
     51          #endif
     52          
     53          #if ( OSALMEM_PROFILER )
     54            #define OSALMEM_INIT   'X'
     55            #define OSALMEM_ALOC   'A'
     56            #define OSALMEM_REIN   'F'
     57          #endif
     58          
     59          /*********************************************************************
     60           * MACROS
     61           */
     62          
     63          /*
     64           *  The MAC_ASSERT macro is for use during debugging.
     65           *  The given expression must evaluate as "true" or else fatal error occurs.
     66           *  At that point, the call stack feature of the debugger can pinpoint where
     67           *  the problem occurred.
     68           *
     69           *  To disable this feature and save code size, the project should define
     70           *  OSALMEM_NODEBUG to TRUE.
     71           */
     72          #if ( OSALMEM_NODEBUG )
     73            #define OSALMEM_ASSERT( expr )
     74            #define OSALMEM_DEBUG( statement )
     75          #else
     76            #define OSALMEM_ASSERT( expr)        HAL_ASSERT( expr )
     77            #define OSALMEM_DEBUG( statement)    st( statement )
     78          #endif
     79          
     80          /*********************************************************************
     81           * TYPEDEFS
     82           */
     83          
     84          typedef uint16  osalMemHdr_t;
     85          
     86          /*********************************************************************
     87           * CONSTANTS
     88           */
     89          
     90          #define OSALMEM_IN_USE  0x8000
     91          
     92          /* This number sets the size of the small-block bucket. Although profiling
     93           * shows max simultaneous alloc of 16x18, timing without profiling overhead
     94           * shows that the best worst case is achieved with the following.
     95           */
     96          #define SMALLBLKHEAP    232
     97          
     98          // To maintain data alignment of the pointer returned, reserve the greater
     99          // space for the memory block header.
    100          #define HDRSZ  ( (sizeof ( halDataAlign_t ) > sizeof( osalMemHdr_t )) ? \
    101                            sizeof ( halDataAlign_t ) : sizeof( osalMemHdr_t ) )
    102          
    103          /*********************************************************************
    104           * GLOBAL VARIABLES
    105           */
    106          
    107          /*********************************************************************
    108           * EXTERNAL VARIABLES
    109           */
    110          
    111          /*********************************************************************
    112           * EXTERNAL FUNCTIONS
    113           */
    114          
    115          /*********************************************************************
    116           * LOCAL VARIABLES
    117           */
    118          
    119          #if ( OSALMEM_GUARD )

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
    120            static byte ready = 0;
   \                     ??ready:
   \   000000                DS 1
    121          #endif
    122          

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
    123          static osalMemHdr_t *ff1;  // First free block in the small-block bucket.
   \                     ??ff1:
   \   000000                DS 2

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
    124          static osalMemHdr_t *ff2;  // First free block after the small-block bucket.
   \                     ??ff2:
   \   000000                DS 2
    125          
    126          #if ( OSALMEM_METRICS )
    127            static uint16 blkMax;  // Max cnt of all blocks ever seen at once.
    128            static uint16 blkCnt;  // Current cnt of all blocks.
    129            static uint16 blkFree; // Current cnt of free blocks.
    130            static uint16 memAlo;  // Current total memory allocated.
    131            static uint16 memMax;  // Max total memory ever allocated at once.
    132          #endif
    133          
    134          #if ( OSALMEM_PROFILER )
    135            #define OSALMEM_PROMAX  8
    136            /* The profiling buckets must differ by at least OSALMEM_MIN_BLKSZ; the
    137             * last bucket must equal the max alloc size. Set the bucket sizes to
    138             * whatever sizes necessary to show how your application is using memory.
    139             */
    140            static uint16 proCnt[OSALMEM_PROMAX] = { 
    141              OSALMEM_SMALL_BLKSZ, 48, 112, 176, 192, 224, 256, 65535 };
    142            static uint16 proCur[OSALMEM_PROMAX] = { 0 };
    143            static uint16 proMax[OSALMEM_PROMAX] = { 0 };
    144            static uint16 proTot[OSALMEM_PROMAX] = { 0 };
    145            static uint16 proSmallBlkMiss;
    146          #endif
    147          
    148          // Memory Allocation Heap.
    149          #if defined( EXTERNAL_RAM )
    150            static byte *theHeap = (byte *)EXT_RAM_BEG;
    151          #else

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
    152            static halDataAlign_t _theHeap[ MAXMEMHEAP / sizeof( halDataAlign_t ) ];
   \                     ??_theHeap:
   \   000000                DS 4096

   \                                 In segment XDATA_I, align 1, keep-with-next
    153            static byte *theHeap = (byte *)_theHeap;

⌨️ 快捷键说明

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