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

📄 sampleapp.lst

📁 用IAR开发的ZIGBEE网络路由例子
💻 LST
📖 第 1 页 / 共 5 页
字号:
    217           *
    218           * @brief   Generic Application Task event processor.  This function
    219           *          is called to process all events for the task.  Events
    220           *          include timers, messages and any other user defined events.
    221           *
    222           * @param   task_id  - The OSAL assigned task ID.
    223           * @param   events - events to process.  This is a bit map and can
    224           *                   contain more than one event.
    225           *
    226           * @return  none
    227           */

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
    228          byte mubiaoIEEE[8];
   \                     mubiaoIEEE:
   \   000000                DS 8

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
    229          uint16 rspaddr;
   \                     rspaddr:
   \   000000                DS 2

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    230          uint16 SampleApp_ProcessEvent( uint8 task_id, uint16 events )
   \                     SampleApp_ProcessEvent:
    231          {
   \   000000   74F4         MOV     A,#-0xc
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 12
   \   000005                ; Auto size: 0
   \   000005   EA           MOV     A,R2
   \   000006   FE           MOV     R6,A
   \   000007   EB           MOV     A,R3
   \   000008   FF           MOV     R7,A
    232            afIncomingMSGPacket_t *MSGpkt;
    233          
    234            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     ??SampleApp_ProcessEvent_0
   \   000010   E9           MOV     A,R1
   \                     ??SampleApp_ProcessEvent_0:
   \   000011   7003         JNZ     $+5
   \   000013   02....       LJMP    ??SampleApp_ProcessEvent_1 & 0xFFFF
    235            {
    236              MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID );
   \   000016                ; Setup parameters for call to function osal_msg_receive
   \   000016   8039         SJMP    ??SampleApp_ProcessEvent_2
    237              while ( MSGpkt )
    238              {
    239                switch ( MSGpkt->hdr.event )
    240                {
    241                  // Received when a key is pressed
    242                  case KEY_CHANGE:
    243                    SampleApp_HandleKeys( ((keyChange_t *)MSGpkt)->state, ((keyChange_t *)MSGpkt)->keys );
    244                    break;
    245          
    246                  // Received when a messages is received (OTA) for this endpoint
    247                  case AF_INCOMING_MSG_CMD:
    248                    //SampleApp_MessageMSGCB( MSGpkt );
    249                    P1_1=~P1_1;
    250                    break;
    251          
    252                  // Received whenever the device changes state in the network
    253                  case ZDO_STATE_CHANGE:
    254                    SampleApp_NwkState = (devStates_t)(MSGpkt->hdr.status);
    255                    if  (SampleApp_NwkState == DEV_ZB_COORD)
    256                    {
    257          mubiaoIEEE[0]=0xa7;
    258              for(byte i=1;i<8;i++)
    259              {
    260              mubiaoIEEE[i]=0xff;
    261              }
    262              ZDP_NwkAddrReq(mubiaoIEEE,1,1,0);
    263                    }
    264                      /*
    265                    SampleApp_NwkState = (devStates_t)(MSGpkt->hdr.status);
    266                    if ( (SampleApp_NwkState == DEV_ZB_COORD)
    267                       // || (SampleApp_NwkState == DEV_ROUTER)
    268                       // || (SampleApp_NwkState == DEV_END_DEVICE)
    269                        )
    270                    {
    271                      // Start sending the periodic message in a regular interval.
    272                      osal_start_timerEx( SampleApp_TaskID,
    273                                        SAMPLEAPP_SEND_PERIODIC_MSG_EVT,
    274                                        SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT );
    275          
    276                    }
    277               */
    278                    break;
    279                case ZDO_NWK_ADDR_RESP:
    280          
    281          
    282              SampleApp_Periodic_DstAddr.addrMode = (afAddrMode_t)Addr16Bit;
   \                     ??SampleApp_ProcessEvent_3:
   \   000018   7402         MOV     A,#0x2
   \   00001A   90....       MOV     DPTR,#(SampleApp_Periodic_DstAddr + 2)
   \   00001D   F0           MOVX    @DPTR,A
    283            SampleApp_Periodic_DstAddr.endPoint = SAMPLEAPP_ENDPOINT;
   \   00001E   7414         MOV     A,#0x14
   \   000020   90....       MOV     DPTR,#(SampleApp_Periodic_DstAddr + 3)
   \   000023   F0           MOVX    @DPTR,A
    284            SampleApp_Periodic_DstAddr.addr.shortAddr = rspaddr;
   \   000024   90....       MOV     DPTR,#rspaddr
   \   000027   E0           MOVX    A,@DPTR
   \   000028   F8           MOV     R0,A
   \   000029   A3           INC     DPTR
   \   00002A   E0           MOVX    A,@DPTR
   \   00002B   F9           MOV     R1,A
   \   00002C   90....       MOV     DPTR,#SampleApp_Periodic_DstAddr
   \   00002F   E8           MOV     A,R0
   \   000030   F0           MOVX    @DPTR,A
   \   000031   A3           INC     DPTR
   \   000032   E9           MOV     A,R1
   \   000033   F0           MOVX    @DPTR,A
    285              osal_set_event(SampleApp_TaskID,SAMPLEAPP_SEND_PERIODIC_MSG_EVT);
   \   000034                ; Setup parameters for call to function osal_set_event
   \   000034   7A01         MOV     R2,#0x1
   \   000036   7B00         MOV     R3,#0x0
   \   000038   90....       MOV     DPTR,#SampleApp_TaskID
   \   00003B   E0           MOVX    A,@DPTR
   \   00003C   F9           MOV     R1,A
   \   00003D   90....       MOV     DPTR,#(osal_set_event & 0xffff)
   \   000040   74..         MOV     A,#((osal_set_event >> 16) & 0xff)
   \                     ??SampleApp_ProcessEvent_4:
   \   000042   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    286                  break;
    287                  default:
    288                    break;
    289                }
    290          
    291                // Release the memory
    292                osal_msg_deallocate( (uint8 *)MSGpkt );
   \                     ??SampleApp_ProcessEvent_5:
   \   000045                ; Setup parameters for call to function osal_msg_deallocate
   \   000045   AA..         MOV     R2,?V0 + 0
   \   000047   AB..         MOV     R3,?V0 + 1
   \   000049   90....       MOV     DPTR,#(osal_msg_deallocate & 0xffff)
   \   00004C   74..         MOV     A,#((osal_msg_deallocate >> 16) & 0xff)
   \   00004E   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    293          
    294                // Next - if one is available
    295                MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID );
   \   000051                ; Setup parameters for call to function osal_msg_receive
   \                     ??SampleApp_ProcessEvent_2:
   \   000051   90....       MOV     DPTR,#SampleApp_TaskID
   \   000054   E0           MOVX    A,@DPTR
   \   000055   F9           MOV     R1,A
   \   000056   90....       MOV     DPTR,#(osal_msg_receive & 0xffff)
   \   000059   74..         MOV     A,#((osal_msg_receive >> 16) & 0xff)
   \   00005B   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   00005E   8A..         MOV     ?V0 + 0,R2
   \   000060   8B..         MOV     ?V0 + 1,R3
   \   000062   E5..         MOV     A,?V0 + 0
   \   000064   7002         JNZ     ??SampleApp_ProcessEvent_6
   \   000066   E5..         MOV     A,?V0 + 1
   \                     ??SampleApp_ProcessEvent_6:
   \   000068   607E         JZ      ??SampleApp_ProcessEvent_7
   \   00006A   85..82       MOV     DPL,?V0 + 0
   \   00006D   85..83       MOV     DPH,?V0 + 1
   \   000070   E0           MOVX    A,@DPTR
   \   000071   12....       LCALL   ?UC_SWITCH_SPARSE
   \                     `?<Jumptable for SampleApp_ProcessEvent>_0`:
   \   000074   00           DB        0
   \   000075   04           DB        4
   \   000076   1A           DB        26
   \   000077   ....         DW        ??SampleApp_ProcessEvent_8
   \   000079   C0           DB        192
   \   00007A   ....         DW        ??SampleApp_ProcessEvent_9
   \   00007C   D1           DB        209
   \   00007D   ....         DW        ??SampleApp_ProcessEvent_10
   \   00007F   D3           DB        211
   \   000080   ....         DW        ??SampleApp_ProcessEvent_3
   \   000082   ....         DW        ??SampleApp_ProcessEvent_5
   \                     ??SampleApp_ProcessEvent_9:
   \   000084                ; Setup parameters for call to function SampleApp_HandleKeys
   \   000084   85..82       MOV     DPL,?V0 + 0
   \   000087   85..83       MOV     DPH,?V0 + 1
   \   00008A   A3           INC     DPTR
   \   00008B   A3           INC     DPTR
   \   00008C   A3           INC     DPTR
   \   00008D   E0           MOVX    A,@DPTR
   \   00008E   FA           MOV     R2,A
   \   00008F   85..82       MOV     DPL,?V0 + 0
   \   000092   85..83       MOV     DPH,?V0 + 1
   \   000095   A3           INC     DPTR
   \   000096   A3           INC     DPTR
   \   000097   E0           MOVX    A,@DPTR
   \   000098   F9           MOV     R1,A
   \   000099   90....       MOV     DPTR,#(SampleApp_HandleKeys & 0xffff)
   \   00009C   74..         MOV     A,#((SampleApp_HandleKeys >> 16) & 0xff)
   \   00009E   80A2         SJMP    ??SampleApp_ProcessEvent_4
   \                     ??SampleApp_ProcessEvent_8:
   \   0000A0   A291         MOV     C,0x90.1
   \   0000A2   B3           CPL     C
   \   0000A3   9291         MOV     0x90.1,C
   \   0000A5   809E         SJMP    ??SampleApp_ProcessEvent_5
   \                     ??SampleApp_ProcessEvent_10:
   \   0000A7   85..82       MOV     DPL,?V0 + 0
   \   0000AA   85..83       MOV     DPH,?V0 + 1
   \   0000AD   A3           INC     DPTR
   \   0000AE   E0           MOVX    A,@DPTR
   \   0000AF   90....       MOV     DPTR,#SampleApp_NwkState
   \   0000B2   F0           MOVX    @DPTR,A
   \   0000B3   6409         XRL     A,#0x9
   \   0000B5   708E         JNZ     ??SampleApp_ProcessEvent_5
   \   0000B7   74A7         MOV     A,#-0x59
   \   0000B9   90....       MOV     DPTR,#mubiaoIEEE
   \   0000BC   F0           MOVX    @DPTR,A
   \   0000BD   7A01         MOV     R2,#0x1
   \                     ??SampleApp_ProcessEvent_11:
   \   0000BF   8A..         MOV     ?V0 + 2,R2
   \   0000C1   E5..         MOV     A,?V0 + 2
   \   0000C3   24..         ADD     A,#(mubiaoIEEE & 0xff)
   \   0000C5   F582         MOV     DPL,A
   \   0000C7   E4           CLR     A
   \   0000C8   34..         ADDC    A,#((mubiaoIEEE >> 8) & 0xff)
   \   0000CA   F583         MOV     DPH,A
   \   0000CC   74FF         MOV     A,#-0x1
   \   0000CE   F0           MOVX    @DPTR,A
   \   0000CF   0A           INC     R2
   \   0000D0   EA           MOV     A,R2
   \   0000D1   C3           CLR     C
   \   0000D2   9408         SUBB    A,#0x8
   \   0000D4   40E9         JC      ??SampleApp_ProcessEvent_11
   \   0000D6                ; Setup parameters for call to function ZDP_NwkAddrReq
   \   0000D6   7D00         MOV     R5,#0x0
   \   0000D8   7C01         MOV     R4,#0x1
   \   0000DA   7901         MOV     R1,#0x1
   \   0000DC   7A..         MOV     R2,#(mubiaoIEEE & 0xff)
   \   0000DE   7B..         MOV     R3,#((mubiaoIEEE >> 8) & 0xff)
   \   0000E0   90....       MOV     DPTR,#(ZDP_NwkAddrReq & 0xffff)
   \   0000E3   74..         MOV     A,#((ZDP_NwkAddrReq >> 16) & 0xff)
   \   0000E5   02....       LJMP    ??SampleApp_ProcessEvent_4 & 0xFFFF
    296              }
    297          
    298              // return unprocessed events

⌨️ 快捷键说明

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