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

📄 zmac.s51

📁 cc2430应用实例
💻 S51
📖 第 1 页 / 共 5 页
字号:
        ARGFRAME XSTACK, 8, STACK
        FUNCALL ZMacInit, MAC_InitCoord
        LOCFRAME XSTACK, 8, STACK
        ARGFRAME XSTACK, 8, STACK
        FUNCALL ZMacInit, ZMacReset
        LOCFRAME XSTACK, 8, STACK
        ARGFRAME XSTACK, 8, STACK
        FUNCALL ZMacInit, osal_int_disable
        LOCFRAME XSTACK, 8, STACK
        ARGFRAME XSTACK, 8, STACK
        MOV	A,#-0x8
        LCALL	?FUNC_ENTER_XDATA
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 8)
        ; Saved register size: 8
        ; Auto size: 0
//   85   uint8 stat;
//   86 
//   87   MAC_Init();
        ; Setup parameters for call to function MAC_Init
        MOV	DPTR,#(MAC_Init & 0xffff)
        MOV	A,#((MAC_Init >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//   88   MAC_InitDevice();
        ; Setup parameters for call to function MAC_InitDevice
        MOV	DPTR,#(MAC_InitDevice & 0xffff)
        MOV	A,#((MAC_InitDevice >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//   89 
//   90 #if defined ( RTR_NWK )
//   91   MAC_InitCoord();
        ; Setup parameters for call to function MAC_InitCoord
        MOV	DPTR,#(MAC_InitCoord & 0xffff)
        MOV	A,#((MAC_InitCoord >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//   92 #endif
//   93 
//   94   // If OK, initialize the MAC
//   95   stat = ZMacReset( TRUE );
        ; Setup parameters for call to function ZMacReset
        MOV	R1,#0x1
        LCALL	ZMacReset
        MOV	A,R1
        MOV	R6,A
//   96 
//   97   // Turn off interrupts
//   98   osal_int_disable( INTS_ALL );
        ; Setup parameters for call to function osal_int_disable
        MOV	R1,#-0x1
        MOV	DPTR,#(osal_int_disable & 0xffff)
        MOV	A,#((osal_int_disable >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//   99 
//  100   return ( stat );
        MOV	A,R6
        MOV	R1,A
        SJMP	??Subroutine6_0
        CFI EndBlock cfiBlock0
//  101 }

        RSEG NEAR_CODE:CODE:NOROOT(0)
?Subroutine6:
        CFI Block cfiBlock1 Using cfiCommon0
        CFI NoFunction
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 9)
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-4)))
        MOV	A,#0x1
        LCALL	?DEALLOC_XSTACK8
        CFI CFA_XSP16 add(XSP16, 8)
??Subroutine6_0:
        MOV	R7,#0x1
        LJMP	?FUNC_LEAVE_XDATA
        CFI EndBlock cfiBlock1
//  102 
//  103 /********************************************************************************************************
//  104  * @fn      ZMacUpdate
//  105  *
//  106  * @brief   Gives MAC (or others) some processing time.
//  107  *
//  108  * @param   none.
//  109  *
//  110  * @return  true if CPU needs to keep running (not sleep).
//  111  ********************************************************************************************************/

        RSEG NEAR_CODE:CODE:NOROOT(0)
//  112 ROOT byte ZMacUpdate( void )
ZMacUpdate:
        CFI Block cfiBlock2 Using cfiCommon0
        CFI Function ZMacUpdate
//  113 {
        ; Saved register size: 0
        ; Auto size: 0
//  114   /* Put code here that needs to run each OSAL event loop */
//  115   return ( false );
        MOV	R1,#0x0
        RET
        CFI EndBlock cfiBlock2
//  116 }
//  117 
//  118 /********************************************************************************************************
//  119  * @fn      ZMacReset
//  120  *
//  121  * @brief   Reset the MAC.
//  122  *
//  123  * @param   Default to PIB defaults.
//  124  *
//  125  * @return  status.
//  126  ********************************************************************************************************/

        RSEG NEAR_CODE:CODE:NOROOT(0)
//  127 ROOT uint8 ZMacReset( bool SetDefaultPIB )
ZMacReset:
        CFI Block cfiBlock3 Using cfiCommon0
        CFI Function ZMacReset
//  128 {
        FUNCALL ZMacReset, MAC_MlmeResetReq
        LOCFRAME XSTACK, 9, STACK
        ARGFRAME XSTACK, 9, STACK
        FUNCALL ZMacReset, MAC_MlmeSetReq
        LOCFRAME XSTACK, 9, STACK
        ARGFRAME XSTACK, 9, STACK
        FUNCALL ZMacReset, MAC_MlmeSetReq
        LOCFRAME XSTACK, 9, STACK
        ARGFRAME XSTACK, 9, STACK
        FUNCALL ZMacReset, osal_mem_free
        LOCFRAME XSTACK, 9, STACK
        ARGFRAME XSTACK, 9, STACK
        MOV	A,#-0x8
        LCALL	?FUNC_ENTER_XDATA
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 8)
        ; Saved register size: 8
        ; Auto size: 1
        MOV	A,#-0x1
        LCALL	?ALLOC_XSTACK8
        CFI CFA_XSP16 add(XSP16, 9)
//  129   byte stat;
//  130   byte value;
//  131 
//  132   stat = MAC_MlmeResetReq( SetDefaultPIB );
        ; Setup parameters for call to function MAC_MlmeResetReq
        MOV	DPTR,#(MAC_MlmeResetReq & 0xffff)
        MOV	A,#((MAC_MlmeResetReq >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
        MOV	A,R1
        MOV	R6,A
//  133 
//  134   // Don't send PAN ID conflict
//  135   value = FALSE;
        CLR	A
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOVX	@DPTR,A
//  136   MAC_MlmeSetReq( MAC_ASSOCIATED_PAN_COORD, &value );
        ; Setup parameters for call to function MAC_MlmeSetReq
        MOV	R2,DPL
        MOV	R3,DPH
        MOV	R1,#0x56
        MOV	DPTR,#(MAC_MlmeSetReq & 0xffff)
        MOV	A,#((MAC_MlmeSetReq >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  137   MAC_MlmeSetReq( MAC_EXTENDED_ADDRESS, &aExtendedAddress );
        ; Setup parameters for call to function MAC_MlmeSetReq
        MOV	R2,#(aExtendedAddress & 0xff)
        MOV	R3,#((aExtendedAddress >> 8) & 0xff)
        MOV	R1,#-0x1e
        MOV	A,#((MAC_MlmeSetReq >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  138 
//  139   if (ZMac_ScanBuf)
        MOV	DPTR,#ZMac_ScanBuf
        MOVX	A,@DPTR
        JNZ	??ZMacReset_0
        INC	DPTR
        MOVX	A,@DPTR
??ZMacReset_0:
        JZ	??ZMacReset_1
//  140   {
//  141     osal_mem_free(ZMac_ScanBuf);
        ; Setup parameters for call to function osal_mem_free
        MOV	DPTR,#ZMac_ScanBuf
        MOVX	A,@DPTR
        MOV	R2,A
        INC	DPTR
        MOVX	A,@DPTR
        MOV	R3,A
        MOV	DPTR,#(osal_mem_free & 0xffff)
        MOV	A,#((osal_mem_free >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  142     ZMac_ScanBuf = NULL;
        MOV	DPTR,#ZMac_ScanBuf
        CLR	A
        MOVX	@DPTR,A
        INC	DPTR
        MOVX	@DPTR,A
//  143   }
//  144 
//  145   return ( stat );
??ZMacReset_1:
        MOV	A,R6
        MOV	R1,A
        SJMP	?Subroutine6
        CFI EndBlock cfiBlock3
//  146 }
//  147 
//  148 
//  149 /********************************************************************************************************
//  150  * @fn      ZMacGetReq
//  151  *
//  152  * @brief   Read a MAC PIB attribute.
//  153  *
//  154  * @param   attr - PIB attribute to get
//  155  * @param   value - pointer to the buffer to store the attribute
//  156  *
//  157  * @return  status
//  158  ********************************************************************************************************/

        RSEG NEAR_CODE:CODE:NOROOT(0)
//  159 ROOT uint8 ZMacGetReq( uint8 attr, uint8 *value )
ZMacGetReq:
        CFI Block cfiBlock4 Using cfiCommon0
        CFI Function ZMacGetReq
//  160 {
        FUNCALL ZMacGetReq, osal_cpyExtAddr
        LOCFRAME ISTACK, 2, STACK
        ARGFRAME ISTACK, 2, STACK
        FUNCALL ZMacGetReq, MAC_MlmeGetReq
        LOCFRAME ISTACK, 2, STACK
        ARGFRAME ISTACK, 2, STACK
        PUSH	DPL
        CFI DPL0 Frame(CFA_SP, 3)
        CFI CFA_SP SP+-3
        PUSH	DPH
        CFI DPH0 Frame(CFA_SP, 4)
        CFI CFA_SP SP+-4
        ; Saved register size: 2
        ; Auto size: 0
//  161   if ( attr == ZMacExtAddr )
        MOV	A,#-0x1e
        XRL	A,R1
        JNZ	??ZMacGetReq_0
//  162   {
//  163     osal_cpyExtAddr( value, &aExtendedAddress );
        ; Setup parameters for call to function osal_cpyExtAddr
        MOV	R4,#(aExtendedAddress & 0xff)
        MOV	R5,#((aExtendedAddress >> 8) & 0xff)
        MOV	DPTR,#(osal_cpyExtAddr & 0xffff)
        MOV	A,#((osal_cpyExtAddr >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  164     return ZMacSuccess;
        MOV	R1,#0x0
        SJMP	??ZMacGetReq_1
//  165   }
//  166 
//  167   return (ZMacStatus_t) MAC_MlmeGetReq( attr, value );
??ZMacGetReq_0:
        ; Setup parameters for call to function MAC_MlmeGetReq
        MOV	DPTR,#(MAC_MlmeGetReq & 0xffff)
        MOV	A,#((MAC_MlmeGetReq >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
??ZMacGetReq_1:
        LJMP	??Subroutine7_0
        CFI EndBlock cfiBlock4
//  168 }
//  169 
//  170 
//  171 /********************************************************************************************************
//  172  * @fn      ZMacSetReq
//  173  *
//  174  * @brief   Write a MAC PIB attribute.
//  175  *
//  176  * @param   attr - PIB attribute to Set
//  177  * @param   value - pointer to the data
//  178  *
//  179  * @return  status
//  180  ********************************************************************************************************/

        RSEG NEAR_CODE:CODE:NOROOT(0)
//  181 ROOT uint8 ZMacSetReq( uint8 attr, byte *value )
ZMacSetReq:
        CFI Block cfiBlock5 Using cfiCommon0
        CFI Function ZMacSetReq
//  182 {

⌨️ 快捷键说明

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