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

📄 mac_support.lst

📁 zigbee location examples
💻 LST
📖 第 1 页 / 共 5 页
字号:
     80          
     81          
     82          
     83          //-------------------------------------------------------------------------------------------------------
     84          //  void msupReverseCopy(BYTE *pDestination, BYTE *pSource, UINT8 length)
     85          //
     86          //  DESCRIPTION:
     87          //      Copies an array of data in the reverse order, so that the first part of the destination can
     88          //      overlap with the last part of the source:
     89          //
     90          //      Source      F---------------L        (last byte "L" is moved first -> avoids overwriting)
     91          //      Destination        F---------------L
     92          //-------------------------------------------------------------------------------------------------------

   \                                 In segment NEAR_CODE, align 1, keep-with-next
     93          ROOT void msupReverseCopy(BYTE   *pDestination, BYTE   *pSource, UINT8 length) {
   \                     msupReverseCopy:
   \   000000   74F8         MOV     A,#-0x8
   \   000002   12....       LCALL   ?FUNC_ENTER_XDATA
   \   000005                ; Saved register size: 8
   \   000005                ; Auto size: 0
     94              pDestination += length;
   \   000005   8982         MOV     DPL,R1
   \   000007   AE82         MOV     R6,DPL
   \   000009   EA           MOV     A,R2
   \   00000A   2E           ADD     A,R6
   \   00000B   FA           MOV     R2,A
   \   00000C   EB           MOV     A,R3
   \   00000D   3400         ADDC    A,#0x0
   \   00000F   FB           MOV     R3,A
     95              pSource += length;
   \   000010   EC           MOV     A,R4
   \   000011   2E           ADD     A,R6
   \   000012   FC           MOV     R4,A
   \   000013   ED           MOV     A,R5
   \   000014   3400         ADDC    A,#0x0
   \   000016   FD           MOV     R5,A
   \   000017   801A         SJMP    ??msupReverseCopy_0
     96              while (length--) {
     97                  *(--pDestination) = *(--pSource);
   \                     ??msupReverseCopy_1:
   \   000019   EA           MOV     A,R2
   \   00001A   24FF         ADD     A,#-0x1
   \   00001C   1A           DEC     R2
   \   00001D   EB           MOV     A,R3
   \   00001E   34FF         ADDC    A,#-0x1
   \   000020   FB           MOV     R3,A
   \   000021   EC           MOV     A,R4
   \   000022   24FF         ADD     A,#-0x1
   \   000024   1C           DEC     R4
   \   000025   ED           MOV     A,R5
   \   000026   34FF         ADDC    A,#-0x1
   \   000028   FD           MOV     R5,A
   \   000029   8C82         MOV     DPL,R4
   \   00002B   8D83         MOV     DPH,R5
   \   00002D   E0           MOVX    A,@DPTR
   \   00002E   8A82         MOV     DPL,R2
   \   000030   8B83         MOV     DPH,R3
   \   000032   F0           MOVX    @DPTR,A
     98              }
   \                     ??msupReverseCopy_0:
   \   000033   E9           MOV     A,R1
   \   000034   19           DEC     R1
   \   000035   70E2         JNZ     ??msupReverseCopy_1
     99          } // msupReverseCopy
   \   000037   80..         SJMP    ?Subroutine0
    100          
    101          
    102          
    103          
    104          //-------------------------------------------------------------------------------------------------------
    105          // The random generator polynom
    106          #define RANDOM_POLY 0x1021
    107          
    108          // The 16-bit shift register which is used to generate random numbers

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
    109          WORD random;
   \                     random:
   \   000000                DS 2
    110          //-------------------------------------------------------------------------------------------------------
    111          
    112          
    113          //-------------------------------------------------------------------------------------------------------
    114          //  void msupSetTransmitPower(void)
    115          //
    116          //  DESCRIPTION:
    117          //      Changes the Transiver transmit power.
    118          //      The function checks the ppib.phyTransmitPower to see if it has changed.
    119          //      if the parameter is changed the changes will be writen to the radio chip.
    120          //      Alowed values of ppib.phyTransmitPower are: OUTPUT_POWER_0DBM, OUTPUT_POWER_N1DBM
    121          //      OUTPUT_POWER_N3DBM, OUTPUT_POWER_N5DBM, OUTPUT_POWER_N7DBM, OUTPUT_POWER_N10DBM
    122          //      OUTPUT_POWER_N15DBM and OUTPUT_POWER_N25DBM
    123          //
    124          //  PARAMETERS:
    125          //------------------------------------------------------------------------------------------------------

   \                                 In segment NEAR_CODE, align 1, keep-with-next
    126          ROOT void msupSetTransmitPower(void) {
   \                     msupSetTransmitPower:
   \   000000                ; Saved register size: 0
   \   000000                ; Auto size: 0
    127          // TBD: Not safe (should disable interrupts or something...)
    128          /*    UINT16 txctrl;
    129          
    130              //If parameter is changed verify and write to chip.
    131              if (oldPhyTransmitPower != ppib.phyTransmitPower) {
    132                  switch(ppib.phyTransmitPower) {
    133                  case OUTPUT_POWER_0DBM:
    134                      txctrl = CC2430_0DBM;
    135                      break;
    136                  case OUTPUT_POWER_N1DBM:
    137                      txctrl = CC2430_N1DBM;
    138                      break;
    139                  case OUTPUT_POWER_N3DBM:
    140                      txctrl = CC2430_N3DBM;
    141                      break;
    142                  case OUTPUT_POWER_N5DBM:
    143                      txctrl = CC2430_N5DBM;
    144                      break;
    145                  case OUTPUT_POWER_N7DBM:
    146                      txctrl = CC2430_N7DBM;
    147                      break;
    148                  case OUTPUT_POWER_N10DBM:
    149                      txctrl = CC2430_N10DBM;
    150                      break;
    151                  case OUTPUT_POWER_N15DBM:
    152                      txctrl = CC2430_N15DBM;
    153                      break;
    154                  case OUTPUT_POWER_N25DBM:
    155                      txctrl = CC2430_N25DBM;
    156                      break;
    157                  //No valid value reset to old
    158                  default:
    159                      ppib.phyTransmitPower = oldPhyTransmitPower;
    160                      txctrl = CC2430_0DBM;
    161                      break;
    162                  }
    163                  oldPhyTransmitPower = ppib.phyTransmitPower;
    164                  WRITE_RFR16(RFR_TXCTRL, txctrl);
    165              }
    166          */
    167          }// msupSetTransmitPower
   \   000000   22           RET
    168          
    169          

   \                                 In segment NEAR_CODE, align 1, keep-with-next
    170          ROOT BOOL msupIsSfdActive(void) {
   \                     msupIsSfdActive:
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    171              UINT8 rfrFsmstate = FSMSTATE;
   \   000004   90DF39       MOV     DPTR,#-0x20c7
   \   000007   E0           MOVX    A,@DPTR
   \   000008   FA           MOV     R2,A
    172              return (((rfrFsmstate >= 7)  && (rfrFsmstate <= 13)) || // RX
    173                      ((rfrFsmstate >= 51) && (rfrFsmstate <= 54)) || // TX ack
    174                      ((rfrFsmstate >= 36) && (rfrFsmstate <= 39)));  // TX
   \   000009   C3           CLR     C
   \   00000A   9407         SUBB    A,#0x7
   \   00000C   4006         JC      ??msupIsSfdActive_0
   \   00000E   EA           MOV     A,R2
   \   00000F   C3           CLR     C
   \   000010   940E         SUBB    A,#0xe
   \   000012   401B         JC      ??msupIsSfdActive_1
   \                     ??msupIsSfdActive_0:
   \   000014   EA           MOV     A,R2
   \   000015   C3           CLR     C
   \   000016   9433         SUBB    A,#0x33
   \   000018   EA           MOV     A,R2
   \   000019   4009         JC      ??msupIsSfdActive_2
   \   00001B   C3           CLR     C
   \   00001C   9437         SUBB    A,#0x37
   \   00001E   400F         JC      ??msupIsSfdActive_1
   \                     ??msupIsSfdActive_3:
   \   000020   7900         MOV     R1,#0x0
   \                     ??msupIsSfdActive_4:
   \   000022   80..         SJMP    ?Subroutine1
   \                     ??msupIsSfdActive_2:
   \   000024   C3           CLR     C
   \   000025   9424         SUBB    A,#0x24
   \   000027   40F7         JC      ??msupIsSfdActive_3
   \   000029   EA           MOV     A,R2
   \   00002A   C3           CLR     C
   \   00002B   9428         SUBB    A,#0x28
   \   00002D   50F1         JNC     ??msupIsSfdActive_3
   \                     ??msupIsSfdActive_1:
   \   00002F   7901         MOV     R1,#0x1
   \   000031   80EF         SJMP    ??msupIsSfdActive_4
    175          }

   \                                 In segment NEAR_CODE, align 1, keep-with-next
   \                     ?Subroutine1:
   \   000000   D083         POP     DPH
   \   000002   D082         POP     DPL
   \   000004   22           RET
    176          

   \                                 In segment NEAR_CODE, align 1, keep-with-next
    177          ROOT BOOL msupIsTxActive(void) {
   \                     msupIsTxActive:
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    178              if (FSMSTATE & 0x30) {
   \   000004   90DF39       MOV     DPTR,#-0x20c7
   \   000007   E0           MOVX    A,@DPTR
   \   000008   5430         ANL     A,#0x30
   \   00000A   6004         JZ      ??msupIsTxActive_0
    179                  return TRUE;
   \   00000C   7901         MOV     R1,#0x1
   \   00000E   8002         SJMP    ??msupIsTxActive_1
    180              } else {
    181                  return FALSE;
   \                     ??msupIsTxActive_0:
   \   000010   7900         MOV     R1,#0x0
   \                     ??msupIsTxActive_1:
   \   000012   80..         SJMP    ?Subroutine1
    182              }
    183          }
    184          

   \                                 In segment NEAR_CODE, align 1, keep-with-next
    185          ROOT BOOL msupIsCspInCriticalSection(void) {
   \                     msupIsCspInCriticalSection:
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    186              switch (RFST) {
   \   000004   E5E1         MOV     A,0xe1
   \   000006   12....       LCALL   ?UC_SWITCH_SPARSE
   \                     `?<Jumptable for msupIsCspInCriticalSection>_0`:
   \   000009   00           DB        0
   \   00000A   02           DB        2
   \   00000B   BB           DB        187
   \   00000C   ....         DW        ??msupIsCspInCriticalSection_0
   \   00000E   C0           DB        192
   \   00000F   ....         DW        ??msupIsCspInCriticalSection_0
   \   000011   ....         DW        ??msupIsCspInCriticalSection_1
    187              case CSP_INSTR_SNOP:
    188              case CSP_INSTR_WAITX:
    189                  return FALSE;
   \                     ??msupIsCspInCriticalSection_0:
   \   000013   7900         MOV     R1,#0x0
   \   000015   8002         SJMP    ??msupIsCspInCriticalSection_2
    190              default:
    191                  return TRUE;

⌨️ 快捷键说明

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