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

📄 hal_drivers.lst

📁 用IAR开发的ZIGBEE网络路由例子
💻 LST
📖 第 1 页 / 共 2 页
字号:
    108            /* AES */
    109          #if (defined HAL_AES) && (HAL_AES == TRUE)
    110            HalAesInit();
   \   00001C                ; Setup parameters for call to function HalAesInit
   \   00001C   90....       MOV     DPTR,#(HalAesInit & 0xffff)
   \   00001F   74..         MOV     A,#((HalAesInit >> 16) & 0xff)
   \   000021   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    111          #endif
    112          
    113            /* LCD */
    114          #if (defined HAL_LCD) && (HAL_LCD == TRUE)
    115            HalLcdInit();
   \   000024                ; Setup parameters for call to function HalLcdInit
   \   000024   90....       MOV     DPTR,#(HalLcdInit & 0xffff)
   \   000027   74..         MOV     A,#((HalLcdInit >> 16) & 0xff)
   \   000029   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    116          #endif
    117          
    118            /* LED */
    119          #if (defined HAL_LED) && (HAL_LED == TRUE)
    120            HalLedInit();
   \   00002C                ; Setup parameters for call to function HalLedInit
   \   00002C   90....       MOV     DPTR,#(HalLedInit & 0xffff)
   \   00002F   74..         MOV     A,#((HalLedInit >> 16) & 0xff)
   \   000031                REQUIRE ?Subroutine0
   \   000031                ; // Fall through to label ?Subroutine0
    121          #endif
    122          
    123            /* UART */
    124          #if (defined HAL_UART) && (HAL_UART == TRUE)
    125            HalUARTInit();
    126          #endif
    127          
    128            /* KEY */
    129          #if (defined HAL_KEY) && (HAL_KEY == TRUE)
    130            HalKeyInit();
    131          #endif
    132          }
    133          
    134          
    135          /**************************************************************************************************
    136           * @fn      Hal_ProcessEvent
    137           *
    138           * @brief   Hal Process Event
    139           *
    140           * @param   task_id - Hal TaskId
    141           *          events - events
    142           *
    143           * @return  None
    144           **************************************************************************************************/

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    145          uint16 Hal_ProcessEvent( uint8 task_id, uint16 events )
   \                     Hal_ProcessEvent:
    146          {
   \   000000   74F6         MOV     A,#-0xa
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 10
   \   000005                ; Auto size: 0
   \   000005   EA           MOV     A,R2
   \   000006   FE           MOV     R6,A
   \   000007   EB           MOV     A,R3
   \   000008   FF           MOV     R7,A
    147            uint8 *msgPtr;
    148          
    149            if ( events & SYS_EVENT_MSG )
   \   000009   7480         MOV     A,#-0x80
   \   00000B   5F           ANL     A,R7
   \   00000C   F9           MOV     R1,A
   \   00000D   E4           CLR     A
   \   00000E   7001         JNZ     ??Hal_ProcessEvent_0
   \   000010   E9           MOV     A,R1
   \                     ??Hal_ProcessEvent_0:
   \   000011   701D         JNZ     ??Hal_ProcessEvent_1
    150            {
    151              msgPtr = osal_msg_receive(Hal_TaskID);
    152          
    153              while (msgPtr)
    154              {
    155                /* Do something here - for now, just deallocate the msg and move on */
    156          
    157                /* De-allocate */
    158                osal_msg_deallocate( msgPtr );
    159                /* Next */
    160                msgPtr = osal_msg_receive( Hal_TaskID );
    161              }
    162              return events ^ SYS_EVENT_MSG;
    163            }
    164          
    165            if ( events & HAL_LED_BLINK_EVENT )
   \   000013   EE           MOV     A,R6
   \   000014   5402         ANL     A,#0x2
   \   000016   6032         JZ      ??Hal_ProcessEvent_2
    166            {
    167          #if (defined (BLINK_LEDS)) && (HAL_LED == TRUE)
    168              HalLedUpdate();
   \   000018                ; Setup parameters for call to function HalLedUpdate
   \   000018   90....       MOV     DPTR,#(HalLedUpdate & 0xffff)
   \   00001B   74..         MOV     A,#((HalLedUpdate >> 16) & 0xff)
   \   00001D   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    169          #endif /* BLINK_LEDS && HAL_LED */
    170              return events ^ HAL_LED_BLINK_EVENT;
   \   000020   7402         MOV     A,#0x2
   \   000022   6E           XRL     A,R6
   \   000023   FA           MOV     R2,A
   \   000024   EF           MOV     A,R7
   \                     ??Hal_ProcessEvent_3:
   \   000025   FB           MOV     R3,A
   \   000026   8031         SJMP    ??Hal_ProcessEvent_4
    171            }
   \                     ??Hal_ProcessEvent_5:
   \   000028                ; Setup parameters for call to function osal_msg_deallocate
   \   000028   90....       MOV     DPTR,#(osal_msg_deallocate & 0xffff)
   \   00002B   74..         MOV     A,#((osal_msg_deallocate >> 16) & 0xff)
   \   00002D   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \                     ??Hal_ProcessEvent_1:
   \   000030                ; Setup parameters for call to function osal_msg_receive
   \   000030   90....       MOV     DPTR,#Hal_TaskID
   \   000033   E0           MOVX    A,@DPTR
   \   000034   F9           MOV     R1,A
   \   000035   90....       MOV     DPTR,#(osal_msg_receive & 0xffff)
   \   000038   74..         MOV     A,#((osal_msg_receive >> 16) & 0xff)
   \   00003A   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   00003D   EA           MOV     A,R2
   \   00003E   7001         JNZ     ??Hal_ProcessEvent_6
   \   000040   EB           MOV     A,R3
   \                     ??Hal_ProcessEvent_6:
   \   000041   70E5         JNZ     ??Hal_ProcessEvent_5
   \   000043   EE           MOV     A,R6
   \   000044   FA           MOV     R2,A
   \   000045   7480         MOV     A,#-0x80
   \   000047   6F           XRL     A,R7
   \   000048   80DB         SJMP    ??Hal_ProcessEvent_3
    172          
    173            if (events & HAL_KEY_EVENT)
   \                     ??Hal_ProcessEvent_2:
   \   00004A   EE           MOV     A,R6
   \   00004B   A2E0         MOV     C,0xE0 /* A   */.0
   \   00004D   5006         JNC     ??Hal_ProcessEvent_7
    174            {
    175          
    176          #if (defined HAL_KEY) && (HAL_KEY == TRUE)
    177              /* Check for keys */
    178              HalKeyPoll();
    179          
    180              /* if interrupt disabled, do next polling */
    181              if (!Hal_KeyIntEnable)
    182              {
    183                osal_start_timerEx( Hal_TaskID, HAL_KEY_EVENT, 100);
    184              }
    185          #endif // HAL_KEY
    186          
    187              return events ^ HAL_KEY_EVENT;
   \   00004F   7401         MOV     A,#0x1
   \   000051   6E           XRL     A,R6
   \   000052   FA           MOV     R2,A
   \   000053   8004         SJMP    ??Hal_ProcessEvent_4
    188            }
    189          
    190          #ifdef POWER_SAVING
    191            if ( events & HAL_SLEEP_TIMER_EVENT )
    192            {
    193              halRestoreSleepLevel();
    194              return events ^ HAL_SLEEP_TIMER_EVENT;
    195            }
    196          #endif
    197          
    198            /* Nothing interested, discard the message */
    199            return 0;
   \                     ??Hal_ProcessEvent_7:
   \   000055   7A00         MOV     R2,#0x0
   \   000057   7B00         MOV     R3,#0x0
   \                     ??Hal_ProcessEvent_4:
   \   000059   7F02         MOV     R7,#0x2
   \   00005B   02....       LJMP    ?BANKED_LEAVE_XDATA
    200          
    201          }
    202          
    203          /**************************************************************************************************
    204           * @fn      Hal_ProcessPoll
    205           *
    206           * @brief   This routine will be called by OSAL to poll UART, TIMER...
    207           *
    208           * @param   task_id - Hal TaskId
    209           *
    210           * @return  None
    211           **************************************************************************************************/

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    212          void Hal_ProcessPoll ()
   \                     Hal_ProcessPoll:
    213          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    214          
    215            /* Timer Poll */
    216            HalTimerTick();
   \   000004                ; Setup parameters for call to function HalTimerTick
   \   000004   90....       MOV     DPTR,#(HalTimerTick & 0xffff)
   \   000007   74..         MOV     A,#((HalTimerTick >> 16) & 0xff)
   \   000009   80..         SJMP    ?Subroutine0
    217          
    218            /* UART Poll */
    219          #if (defined HAL_UART) && (HAL_UART == TRUE)
    220            HalUARTPoll();
    221          #endif
    222          
    223          }
    224          
    225          
    226          /**************************************************************************************************
    227          **************************************************************************************************/
    228          

   Maximum stack usage in bytes:

     Function                 ISTACK PSTACK XSTACK
     --------                 ------ ------ ------
     HalDriverInit                2      0      0
       -> HalTimerInit            4      0      0
       -> HalAdcInit              4      0      0
       -> HalDmaInit              4      0      0
       -> HalAesInit              4      0      0
       -> HalLcdInit              4      0      0
       -> HalLedInit              4      0      0
     Hal_Init                     2      0      0
     Hal_ProcessEvent             0      0     10
       -> HalLedUpdate            0      0     20
       -> osal_msg_deallocate     0      0     20
       -> osal_msg_receive        0      0     20
     Hal_ProcessPoll              2      0      0
       -> HalTimerTick            4      0      0


   Segment part sizes:

     Function/Label   Bytes
     --------------   -----
     Hal_TaskID          1
     Hal_Init           11
     ?Subroutine0       10
     HalDriverInit      49
     Hal_ProcessEvent   94
     Hal_ProcessPoll    11

 
 175 bytes in segment BANKED_CODE
   1 byte  in segment XDATA_Z
 
 175 bytes of CODE  memory
   1 byte  of XDATA memory

Errors: none
Warnings: none

⌨️ 快捷键说明

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