📄 nwk_globals.s51
字号:
CFI DPL0 Frame(CFA_SP, 4)
CFI CFA_SP SP+-4
PUSH DPH
CFI DPH0 Frame(CFA_SP, 5)
CFI CFA_SP SP+-5
; Saved register size: 2
; Auto size: 0
// 239 AddrMgrInit( NWK_MAX_ADDRESSES );
; Setup parameters for call to function AddrMgrInit
MOV R2,#0x20
MOV R3,#0x0
MOV DPTR,#(AddrMgrInit & 0xffff)
MOV A,#((AddrMgrInit >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 240
// 241 #if defined ( RTR_NWK )
// 242 // Initialize the Cskip Table
// 243 Cskip = osal_mem_alloc(sizeof(uint16) *(MAX_NODE_DEPTH+1));
; Setup parameters for call to function osal_mem_alloc
MOV R2,#0xc
MOV R3,#0x0
MOV DPTR,#(osal_mem_alloc & 0xffff)
MOV A,#((osal_mem_alloc >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
MOV DPTR,#Cskip
MOV A,R2
MOVX @DPTR,A
INC DPTR
MOV A,R3
MOVX @DPTR,A
// 244 RTG_FillCSkipTable(CskipChldrn, CskipRtrs, MAX_NODE_DEPTH, Cskip);
; Setup parameters for call to function RTG_FillCSkipTable
MOV DPTR,#Cskip
LCALL ?PUSH_XSTACK8_X_TWO
CFI CFA_XSP16 add(XSP16, 2)
MOV R1,#0x5
MOV R4,#(CskipRtrs & 0xff)
MOV R5,#((CskipRtrs >> 8) & 0xff)
MOV R2,#(CskipChldrn & 0xff)
MOV R3,#((CskipChldrn >> 8) & 0xff)
MOV DPTR,#(RTG_FillCSkipTable & 0xffff)
MOV A,#((RTG_FillCSkipTable >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
MOV A,#0x2
LCALL ?DEALLOC_XSTACK8
CFI EndBlock cfiBlock0
// 245 #endif
// 246 }
REQUIRE ?Subroutine0
; // Fall through to label ?Subroutine0
RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine0:
CFI Block cfiBlock1 Using cfiCommon0
CFI NoFunction
CFI CFA_SP SP+-5
CFI DPL0 Frame(CFA_SP, 4)
CFI DPH0 Frame(CFA_SP, 5)
POP DPH
CFI CFA_SP SP+-4
CFI DPH0 SameValue
POP DPL
CFI CFA_SP SP+-3
CFI DPL0 SameValue
LJMP ?BRET
CFI EndBlock cfiBlock1
// 247
// 248 /*********************************************************************
// 249 * @fn NIB_init()
// 250 *
// 251 * @brief
// 252 *
// 253 * Initialize attribute values in NIB
// 254 *
// 255 * @param none
// 256 *
// 257 * @return none
// 258 */
RSEG BANKED_CODE:CODE:NOROOT(0)
// 259 void NIB_init()
NIB_init:
CFI Block cfiBlock2 Using cfiCommon0
CFI Function NIB_init
// 260 {
FUNCALL NIB_init, osal_memset
LOCFRAME ISTACK, 2, STACK
ARGFRAME ISTACK, 2, STACK
FUNCALL NIB_init, osal_cpyExtAddr
LOCFRAME ISTACK, 2, STACK
ARGFRAME ISTACK, 2, STACK
PUSH DPL
CFI DPL0 Frame(CFA_SP, 4)
CFI CFA_SP SP+-4
PUSH DPH
CFI DPH0 Frame(CFA_SP, 5)
CFI CFA_SP SP+-5
; Saved register size: 2
; Auto size: 0
// 261 #if defined ( AUTO_SOFT_START )
// 262 byte extAddr[Z_EXTADDR_LEN];
// 263 ZMacGetReq( ZMacExtAddr, extAddr );
// 264 _NIB.SequenceNum = extAddr[0];
// 265 #else
// 266 _NIB.SequenceNum = 1;
MOV A,#0x1
MOV DPTR,#_NIB
MOVX @DPTR,A
// 267 #endif
// 268
// 269 _NIB.MaxDepth = MAX_NODE_DEPTH;
MOV A,#0x5
MOV DPTR,#(_NIB + 4)
MOVX @DPTR,A
// 270
// 271 #if ( NWK_MODE == NWK_MODE_MESH )
// 272 _NIB.beaconOrder = BEACON_ORDER_NO_BEACONS;
MOV A,#0xf
MOV DPTR,#(_NIB + 40)
MOVX @DPTR,A
// 273 _NIB.superFrameOrder = BEACON_ORDER_NO_BEACONS;
MOV DPTR,#(_NIB + 41)
MOVX @DPTR,A
// 274 #endif
// 275
// 276 // BROADCAST SETTINGS:
// 277 // *******************
// 278 // Broadcast Delivery Time
// 279 // - set to multiples of 100ms
// 280 // - should be 500ms more than the retry time
// 281 // - "retry time" = PassiveAckTimeout * (MaxBroadcastRetries + 1)
// 282 // Passive Ack Timeout
// 283 // - set to multiples of 100ms
// 284 _NIB.BroadcastDeliveryTime = zgBcastDeliveryTime;
MOV DPTR,#zgBcastDeliveryTime
MOVX A,@DPTR
MOV DPTR,#(_NIB + 7)
MOVX @DPTR,A
// 285 _NIB.PassiveAckTimeout = zgPassiveAckTimeout;
MOV DPTR,#zgPassiveAckTimeout
MOVX A,@DPTR
MOV DPTR,#(_NIB + 1)
MOVX @DPTR,A
// 286 _NIB.MaxBroadcastRetries = zgMaxBcastRetires;
MOV DPTR,#zgMaxBcastRetires
MOVX A,@DPTR
MOV DPTR,#(_NIB + 2)
MOVX @DPTR,A
// 287
// 288 _NIB.ReportConstantCost = 0;
CLR A
MOV DPTR,#(_NIB + 8)
MOVX @DPTR,A
// 289 _NIB.RouteDiscRetries = 0;
MOV DPTR,#(_NIB + 9)
MOVX @DPTR,A
// 290 _NIB.SecureAllFrames = USE_NWK_SECURITY;
MOV DPTR,#(_NIB + 11)
MOVX @DPTR,A
// 291 _NIB.SecurityLevel = zgSecurityLevel;
MOV DPTR,#zgSecurityLevel
MOVX A,@DPTR
MOV DPTR,#(_NIB + 12)
MOVX @DPTR,A
// 292 _NIB.SymLink = 0;
CLR A
MOV DPTR,#(_NIB + 13)
MOVX @DPTR,A
// 293 _NIB.CapabilityInfo = ZDO_Config_Node_Descriptor.CapabilityFlags;
MOV DPTR,#(ZDO_Config_Node_Descriptor + 2)
MOVX A,@DPTR
MOV DPTR,#(_NIB + 14)
MOVX @DPTR,A
// 294
// 295 _NIB.TransactionPersistenceTime = zgIndirectMsgTimeout;
MOV DPTR,#zgIndirectMsgTimeout
MOVX A,@DPTR
MOV DPTR,#(_NIB + 15)
MOVX @DPTR,A
INC DPTR
CLR A
MOVX @DPTR,A
// 296
// 297 _NIB.RouteDiscoveryTime = 5;
MOV A,#0x5
MOV DPTR,#(_NIB + 18)
MOVX @DPTR,A
// 298 _NIB.RouteExpiryTime = zgRouteExpiryTime;
MOV DPTR,#zgRouteExpiryTime
MOVX A,@DPTR
MOV DPTR,#(_NIB + 19)
MOVX @DPTR,A
// 299
// 300 _NIB.nwkDevAddress = INVALID_NODE_ADDR;
MOV DPTR,#(_NIB + 20)
MOV A,#-0x2
MOVX @DPTR,A
INC DPTR
MOV A,#-0x1
MOVX @DPTR,A
// 301 _NIB.nwkLogicalChannel = 0;
CLR A
MOV DPTR,#(_NIB + 22)
MOVX @DPTR,A
// 302 _NIB.nwkCoordAddress = INVALID_NODE_ADDR;
MOV DPTR,#(_NIB + 23)
MOV A,#-0x2
MOVX @DPTR,A
INC DPTR
MOV A,#-0x1
MOVX @DPTR,A
// 303 osal_memset( _NIB.nwkCoordExtAddress, 0, Z_EXTADDR_LEN );
; Setup parameters for call to function osal_memset
MOV R4,#0x8
MOV R5,#0x0
MOV R1,#0x0
MOV R2,#((_NIB + 25) & 0xff)
MOV R3,#(((_NIB + 25) >> 8) & 0xff)
MOV DPTR,#(osal_memset & 0xffff)
MOV A,#((osal_memset >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 304 _NIB.nwkPanId = INVALID_NODE_ADDR;
MOV DPTR,#(_NIB + 33)
MOV A,#-0x2
MOVX @DPTR,A
INC DPTR
MOV A,#-0x1
MOVX @DPTR,A
// 305
// 306 osal_cpyExtAddr( _NIB.extendedPANID, zgExtendedPANID );
; Setup parameters for call to function osal_cpyExtAddr
MOV R4,#(zgExtendedPANID & 0xff)
MOV R5,#((zgExtendedPANID >> 8) & 0xff)
MOV R2,#((_NIB + 53) & 0xff)
MOV R3,#(((_NIB + 53) >> 8) & 0xff)
MOV DPTR,#(osal_cpyExtAddr & 0xffff)
MOV A,#((osal_cpyExtAddr >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 307
// 308 _NIB.nwkKeyLoaded = FALSE;
CLR A
MOV DPTR,#(_NIB + 61)
MOVX @DPTR,A
// 309 }
LJMP ?Subroutine0 & 0xFFFF
CFI EndBlock cfiBlock2
// 310
// 311 /*********************************************************************
// 312 * @fn nwk_Status()
// 313 *
// 314 * @brief
// 315 *
// 316 * Status report.
// 317 *
// 318 * @param statusCode
// 319 * @param statusValue
// 320 *
// 321 * @return none
// 322 */
RSEG BANKED_CODE:CODE:NOROOT(0)
// 323 void nwk_Status( uint16 statusCode, uint16 statusValue )
nwk_Status:
CFI Block cfiBlock3 Using cfiCommon0
CFI Function nwk_Status
// 324 {
; Saved register size: 0
; Auto size: 0
// 325 #if defined ( LCD_SUPPORTED )
// 326 switch ( statusCode )
// 327 {
// 328
// 329 #if defined( RTR_NWK )
// 330 case NWK_STATUS_COORD_ADDR:
// 331 HalLcdWriteString( (char*)ZigbeeCoordStr, HAL_LCD_LINE_1 );
// 332 HalLcdWriteStringValue( (char*)NetworkIDStr, (uint32)statusValue, 16, HAL_LCD_LINE_2 );
// 333 BuzzerControl( BUZZER_BLIP );
// 334 break;
// 335
// 336 case NWK_STATUS_ROUTER_ADDR:
// 337 HalLcdWriteStringValue( (char*)RouterStr, (uint32)statusValue, 16, HAL_LCD_LINE_1 );
// 338 break;
// 339
// 340 case NWK_STATUS_ORPHAN_RSP:
// 341 if ( statusValue == ZSuccess )
// 342 HalLcdWriteScreen( (char*)OrphanRspStr, (char*)SentStr );
// 343 else
// 344 HalLcdWriteScreen( (char*)OrphanRspStr, (char*)FailedStr );
// 345 break;
// 346
// 347 case NWK_ERROR_ASSOC_RSP:
// 348 HalLcdWriteString( (char*)AssocRspFailStr, HAL_LCD_LINE_1 );
// 349 HalLcdWriteValue( (uint32)(statusValue), 16, HAL_LCD_LINE_2 );
// 350 break;
// 351 #else
// 352 case NWK_STATUS_ED_ADDR:
// 353 HalLcdWriteStringValue( (char*)EndDeviceStr, (uint32)statusValue, 16, HAL_LCD_LINE_1 );
// 354 break;
// 355 #endif
// 356
// 357 case NWK_STATUS_PARENT_ADDR:
// 358 HalLcdWriteStringValue( (char*)ParentStr, (uint32)statusValue, 16, HAL_LCD_LINE_2 );
// 359 break;
// 360
// 361 case NWK_STATUS_ASSOC_CNF:
// 362 HalLcdWriteScreen( (char*)AssocCnfStr, (char*)SuccessStr );
// 363 break;
// 364
// 365 case NWK_ERROR_ASSOC_CNF_DENIED:
// 366 HalLcdWriteString((char*)AssocCnfFailStr, HAL_LCD_LINE_1 );
// 367 HalLcdWriteValue( (uint32)(statusValue), 16, HAL_LCD_LINE_2 );
// 368 break;
// 369
// 370 case NWK_ERROR_ENERGY_SCAN_FAILED:
// 371 HalLcdWriteScreen( (char*)EnergyLevelStr, (char*)ScanFailedStr );
// 372 break;
// 373 }
// 374 #endif
// 375 }
LJMP ?BRET
CFI EndBlock cfiBlock3
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for CskipRtrs>`:
DB 6, 6, 6, 6, 6, 0
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for CskipChldrn>`:
DB 20, 20, 20, 20, 20, 0
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for gMIN_TREE_LINK_COST>`:
DB 6
END
// 376
// 377 /*********************************************************************
// 378 *********************************************************************/
//
// 261 bytes in segment BANKED_CODE
// 39 bytes in segment CODE_C
// 13 bytes in segment XDATA_I
// 13 bytes in segment XDATA_ID
// 881 bytes in segment XDATA_Z
//
// 313 bytes of CODE memory
// 894 bytes of XDATA memory
//
//Errors: none
//Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -