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

📄 hal_uart.lst

📁 cc2430应用实例
💻 LST
📖 第 1 页 / 共 5 页
字号:
##############################################################################
#                                                                            #
# IAR 8051 C/C++ Compiler V7.20H/W32                   08/Mar/2009  09:16:10 #
# 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        =  C:\Texas Instruments\ZStack-1.4.2-1.1.0\Component #
#                          s\hal\target\CC2430DB\hal_uart.c                  #
#    Command line       =  -f "C:\Texas Instruments\ZStack-1.4.2-1.1.0\Proje #
#                          cts\zstack\Samples\GenericApp\CC2430DB\..\..\..\T #
#                          ools\CC2430DB\f8wEndev.cfg" (-DCPU32MHZ           #
#                          -DFORCE_MAC_NEAR -DROOT=__near_func               #
#                          -DMAC_OPT_FFD=0 -DBLINK_LEDS "-DCONST=const       #
#                          __code" -DGENERIC=__generic) -f "C:\Texas         #
#                          Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
#                          mples\GenericApp\CC2430DB\..\..\..\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 "C:\Program Files\IAR      #
#                          Systems\Embedded Workbench 4.05 Evaluation        #
#                          version\8051\inc\" -I "C:\Program Files\IAR       #
#                          Systems\Embedded Workbench 4.05 Evaluation        #
#                          version\8051\inc\clib\" -I "C:\Texas              #
#                          Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
#                          mples\GenericApp\CC2430DB\" -I "C:\Texas          #
#                          Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
#                          mples\GenericApp\CC2430DB\..\Source\" -I          #
#                          "C:\Texas Instruments\ZStack-1.4.2-1.1.0\Projects #
#                          \zstack\Samples\GenericApp\CC2430DB\..\..\..\ZMai #
#                          n\TI2430DB\" -I "C:\Texas                         #
#                          Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
#                          mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
#                          ts\mt\" -I "C:\Texas Instruments\ZStack-1.4.2-1.1 #
#                          .0\Projects\zstack\Samples\GenericApp\CC2430DB\.. #
#                          \..\..\..\..\Components\hal\include\" -I          #
#                          "C:\Texas Instruments\ZStack-1.4.2-1.1.0\Projects #
#                          \zstack\Samples\GenericApp\CC2430DB\..\..\..\..\. #
#                          .\Components\hal\target\CC2430DB\" -I "C:\Texas   #
#                          Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
#                          mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
#                          ts\osal\mcu\ccsoc\" -I "C:\Texas                  #
#                          Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
#                          mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
#                          ts\osal\include\" -I "C:\Texas                    #
#                          Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
#                          mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
#                          ts\stack\af\" -I "C:\Texas                        #
#                          Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
#                          mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
#                          ts\stack\nwk\" -I "C:\Texas                       #
#                          Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
#                          mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
#                          ts\stack\sec\" -I "C:\Texas                       #
#                          Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
#                          mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
#                          ts\stack\sys\" -I "C:\Texas                       #
#                          Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
#                          mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
#                          ts\stack\zdo\" -I "C:\Texas                       #
#                          Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
#                          mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
#                          ts\zmac\f8w\" -I "C:\Texas                        #
#                          Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
#                          mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
#                          ts\zmac\" -I "C:\Texas Instruments\ZStack-1.4.2-1 #
#                          .1.0\Projects\zstack\Samples\GenericApp\CC2430DB\ #
#                          ..\..\..\..\..\Components\services\saddr\" -I     #
#                          "C:\Texas Instruments\ZStack-1.4.2-1.1.0\Projects #
#                          \zstack\Samples\GenericApp\CC2430DB\..\..\..\..\. #
#                          .\Components\services\sdata\" -I "C:\Texas        #
#                          Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
#                          mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
#                          ts\mac\include\" -I "C:\Texas                     #
#                          Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
#                          mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
#                          ts\mac\high_level\" -I "C:\Texas                  #
#                          Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
#                          mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
#                          ts\mac\low_level\srf03\" -I "C:\Texas             #
#                          Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
#                          mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
#                          ts\mac\low_level\srf03\single_chip\" -D CC2430DB  #
#                          -D NWK_AUTO_POLL -D xZTOOL_P2 -D xMT_TASK -D      #
#                          xMT_ZDO_FUNC -D xLCD_SUPPORTED=DEBUG -D           #
#                          xPOWER_SAVING -lC "C:\Texas                       #
#                          Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
#                          mples\GenericApp\CC2430DB\EndDeviceDB\List\" -lA  #
#                          "C:\Texas Instruments\ZStack-1.4.2-1.1.0\Projects #
#                          \zstack\Samples\GenericApp\CC2430DB\EndDeviceDB\L #
#                          ist\" --diag_suppress Pe001,Pa010 --diag_remark   #
#                          pe550 -o "C:\Texas Instruments\ZStack-1.4.2-1.1.0 #
#                          \Projects\zstack\Samples\GenericApp\CC2430DB\EndD #
#                          eviceDB\Obj\" -e --require_prototypes -z9         #
#                          --no_code_motion --debug --core=plain             #
#                          --dptr=16,1 --data_model=large                    #
#                          --code_model=banked --calling_convention=xdata_re #
#                          entrant --place_constants=data --nr_virtual_regs  #
#                          8 "C:\Texas Instruments\ZStack-1.4.2-1.1.0\Compon #
#                          ents\hal\target\CC2430DB\hal_uart.c"              #
#    List file          =  C:\Texas Instruments\ZStack-1.4.2-1.1.0\Projects\ #
#                          zstack\Samples\GenericApp\CC2430DB\EndDeviceDB\Li #
#                          st\hal_uart.lst                                   #
#    Object file        =  C:\Texas Instruments\ZStack-1.4.2-1.1.0\Projects\ #
#                          zstack\Samples\GenericApp\CC2430DB\EndDeviceDB\Ob #
#                          j\hal_uart.r51                                    #
#                                                                            #
#                                                                            #
##############################################################################

C:\Texas Instruments\ZStack-1.4.2-1.1.0\Components\hal\target\CC2430DB\hal_uart.c
      1          /******************************************************************************
      2              Filename:       _hal_uart.c
      3              Revised:        $Date: 2007-03-26 11:53:55 -0700 (Mon, 26 Mar 2007) $
      4              Revision:       $Revision: 13853 $
      5          
      6              Description: This file contains the interface to the H/W UART driver.
      7          
      8              Copyright (c) 2007 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 "hal_types.h"
     20          #include "hal_assert.h"
     21          #include "hal_board.h"

   \                                 In segment SFR_AN, at 0xff
   \   unsigned char volatile __sfr P2DIR
   \                     P2DIR:
   \   000000                DS 1
     22          #include "hal_defs.h"
     23          #if defined( HAL_UART_DMA ) && HAL_UART_DMA
     24            #include "hal_dma.h"
     25          #endif
     26          #include "hal_mcu.h"
     27          #include "hal_uart.h"
     28          #include "osal.h"
     29          
     30          /*********************************************************************
     31           * MACROS
     32           */
     33          
     34          #if !defined ( HAL_UART_DEBUG )
     35            #define HAL_UART_DEBUG  FALSE
     36          #endif
     37          
     38          #if !defined ( HAL_UART_CLOSE )
     39            #define HAL_UART_CLOSE  FALSE
     40          #endif
     41          
     42          #if !defined ( HAL_UART_BIG_TX_BUF )
     43            #define HAL_UART_BIG_TX_BUF  FALSE
     44          #endif
     45          
     46          /*
     47           *  The MAC_ASSERT macro is for use during debugging.
     48           *  The given expression must evaluate as "true" or else fatal error occurs.
     49           *  At that point, the call stack feature of the debugger can pinpoint where
     50           *  the problem occurred.
     51           *
     52           *  To disable this feature and save code size, the project should define
     53           *  HAL_UART_DEBUG to FALSE.
     54           */
     55          #if ( HAL_UART_DEBUG )
     56            #define HAL_UART_ASSERT( expr)        HAL_ASSERT( expr )
     57          #else
     58            #define HAL_UART_ASSERT( expr )
     59          #endif
     60          
     61          #define P2DIR_PRIPO               0xC0
     62          #if HAL_UART_0_ENABLE
     63            #define HAL_UART_PRIPO          0x00
     64          #else
     65            #define HAL_UART_PRIPO          0x40
     66          #endif
     67          
     68          #define HAL_UART_0_PERCFG_BIT     0x01  // USART0 on P0, so clear this bit.
     69          #define HAL_UART_0_P0_RX_TX       0x0c  // Peripheral I/O Select for Rx/Tx.
     70          #define HAL_UART_0_P0_RTS         0x10  // Peripheral I/O Select for RTS.
     71          #define HAL_UART_0_P0_CTS         0x20  // Peripheral I/O Select for CTS.
     72          
     73          #define HAL_UART_1_PERCFG_BIT     0x02  // USART1 on P1, so set this bit.
     74          #define HAL_UART_1_P1_RTS         0x10  // Peripheral I/O Select for RTS.
     75          #define HAL_UART_1_P1_CTS         0x20  // Peripheral I/O Select for CTS.
     76          #define HAL_UART_1_P1_RX_TX       0xC0  // Peripheral I/O Select for Rx/Tx.
     77          
     78          #define TX_AVAIL( cfg ) \
     79            ((cfg->txTail == cfg->txHead) ? (cfg->txMax-1) : \
     80            ((cfg->txTail >  cfg->txHead) ? (cfg->txTail - cfg->txHead - 1) : \
     81                               (cfg->txMax - cfg->txHead + cfg->txTail)))
     82          
     83          #define RX0_FLOW_ON  ( P0 &= ~HAL_UART_0_P0_CTS )
     84          #define RX0_FLOW_OFF ( P0 |= HAL_UART_0_P0_CTS )
     85          #define RX1_FLOW_ON  ( P1 &= ~HAL_UART_1_P1_CTS)
     86          #define RX1_FLOW_OFF ( P1 |= HAL_UART_1_P1_CTS )
     87          
     88          #define RX_STOP_FLOW( cfg ) { \
     89            if ( !(cfg->flag & UART_CFG_U1F) ) \
     90            { \
     91              RX0_FLOW_OFF; \
     92            } \
     93            else \
     94            { \
     95              RX1_FLOW_OFF; \
     96            } \
     97            if ( cfg->flag & UART_CFG_DMA ) \
     98            { \
     99              cfg->rxTick = DMA_RX_DLY; \
    100            } \
    101            cfg->flag |= UART_CFG_RXF; \
    102          }
    103          
    104          #define RX_STRT_FLOW( cfg ) { \
    105            if ( !(cfg->flag & UART_CFG_U1F) ) \
    106            { \
    107              RX0_FLOW_ON; \
    108            } \
    109            else \
    110            { \
    111              RX1_FLOW_ON; \
    112            } \
    113            cfg->flag &= ~UART_CFG_RXF; \
    114          }
    115          
    116          #define UART_RX_AVAIL( cfg ) \
    117            ( (cfg->rxHead >= cfg->rxTail) ? (cfg->rxHead - cfg->rxTail) : \
    118                                             (cfg->rxMax - cfg->rxTail + cfg->rxHead +1 ) )
    119          
    120          /* Need to leave enough of the Rx buffer free to handle the incoming bytes
    121           * after asserting flow control, but before the transmitter has obeyed it.
    122           * At the max expected baud rate of 115.2k, 16 bytes will only take ~1.3 msecs,
    123           * but at the min expected baud rate of 38.4k, they could take ~4.2 msecs.
    124           * SAFE_RX_MIN and DMA_RX_DLY must both be consistent according to
    125           * the min & max expected baud rate.
    126           */
    127          #if !defined( SAFE_RX_MIN )
    128            #define SAFE_RX_MIN  48  // bytes - max expected per poll @ 115.2k
    129            // 16 bytes @ 38.4 kBaud -> 4.16 msecs -> 138 32-kHz ticks.
    130            #define DMA_RX_DLY  140
    131            //  2 bytes @ 38.4 kBaud -> 0.52 msecs ->  17 32-kHz ticks.
    132            #define DMA_TX_DLY   20
    133          #endif
    134          
    135          // The timeout tick is at 32-kHz, so multiply msecs by 33.
    136          #define RX_MSECS_TO_TICKS  33
    137          
    138          // The timeout only supports 1 byte.
    139          #if !defined( HAL_UART_RX_IDLE )
    140            #define HAL_UART_RX_IDLE  (6 * RX_MSECS_TO_TICKS)
    141          #endif

⌨️ 快捷键说明

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