1690 lines
62 KiB
Plaintext
1690 lines
62 KiB
Plaintext
///////////////////////////////////////////////////////////////////////////////
|
||
//
|
||
// IAR C/C++ Compiler V10.30.1.6000 for 8051 21/May/2019 08:36:51
|
||
// Copyright 2004-2018 IAR Systems AB.
|
||
// PC-locked license - IAR Embedded Workbench for 8051
|
||
//
|
||
// Core = plain
|
||
// Code model = banked
|
||
// Data model = large
|
||
// Calling convention = xdata reentrant
|
||
// Constant location = data_rom
|
||
// Dptr setup = 1,16
|
||
//
|
||
// Source file =
|
||
// C:\Users\97110\Desktop\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\zstack\ZMain\TI2530DB\ZMain.c
|
||
// Command line =
|
||
// -f C:\Users\97110\AppData\Local\Temp\EW9D18.tmp
|
||
// (C:\Users\97110\Desktop\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\zstack\ZMain\TI2530DB\ZMain.c
|
||
// -D NWK_AUTO_POLL -D ZTOOL_P1 -D MT_TASK -D xMT_SYS_FUNC -D
|
||
// MT_ZDO_FUNC -D SAPP_ZSTACK_DEMO -lC
|
||
// C:\Users\97110\Desktop\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\Demo\List
|
||
// -lA
|
||
// C:\Users\97110\Desktop\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\Demo\List
|
||
// --diag_suppress Pe001,Pa010 -o
|
||
// C:\Users\97110\Desktop\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\Demo\Obj
|
||
// -e --debug --core=plain --dptr=16,1 --data_model=large
|
||
// --code_model=banked --calling_convention=xdata_reentrant
|
||
// --place_constants=data_rom --nr_virtual_regs 8 -f
|
||
// C:\Users\97110\Desktop\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\zstack\Tools\CC2530DB\f8wEndev.cfg
|
||
// (-DCPU32MHZ -DROOT=__near_func -DMAC_CFG_TX_DATA_MAX=3
|
||
// -DMAC_CFG_TX_MAX=6 -DMAC_CFG_RX_MAX=3) -f
|
||
// C:\Users\97110\Desktop\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\zstack\Tools\CC2530DB\f8wConfig.cfg
|
||
// (-DZIGBEEPRO -DSECURE=0 -DZG_SECURE_DYNAMIC=0 -DREFLECTOR
|
||
// -DDEFAULT_CHANLIST=0x00000800 -DZDAPP_CONFIG_PAN_ID=0x0031
|
||
// -DNWK_START_DELAY=100 -DEXTENDED_JOINING_RANDOM_MASK=0x007F
|
||
// -DBEACON_REQUEST_DELAY=100 -DBEACON_REQ_DELAY_MASK=0x00FF
|
||
// -DLINK_STATUS_JITTER_MASK=0x007F -DROUTE_EXPIRY_TIME=30
|
||
// -DAPSC_ACK_WAIT_DURATION_POLLED=3000 -DNWK_INDIRECT_MSG_TIMEOUT=7
|
||
// -DMAX_RREQ_ENTRIES=8 -DAPSC_MAX_FRAME_RETRIES=3
|
||
// -DNWK_MAX_DATA_RETRIES=2 -DMAX_POLL_FAILURE_RETRIES=2 -DMAX_BCAST=9
|
||
// -DAPS_MAX_GROUPS=16 -DMAX_RTG_ENTRIES=40 -DNWK_MAX_BINDING_ENTRIES=4
|
||
// -DMAX_BINDING_CLUSTER_IDS=4 "-DDEFAULT_KEY={0x01, 0x03, 0x05, 0x07,
|
||
// 0x09, 0x0B, 0x0D, 0x0F, 0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C,
|
||
// 0x0D}" -DMAC_MAX_FRAME_SIZE=116 -DZDNWKMGR_MIN_TRANSMISSIONS=20
|
||
// "-DCONST=const __code" -DGENERIC=__generic -DRFD_RCVC_ALWAYS_ON=FALSE
|
||
// -DPOLL_RATE=1000 -DQUEUED_POLL_RATE=100 -DRESPONSE_POLL_RATE=100
|
||
// -DREJOIN_POLL_RATE=440) -I
|
||
// C:\Users\97110\Desktop\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\
|
||
// -I
|
||
// C:\Users\97110\Desktop\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\Source\
|
||
// -I
|
||
// C:\Users\97110\Desktop\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\zstack\ZMain\TI2530DB\
|
||
// -I
|
||
// C:\Users\97110\Desktop\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\hal\include\
|
||
// -I
|
||
// C:\Users\97110\Desktop\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\hal\target\CC2530EB\
|
||
// -I
|
||
// C:\Users\97110\Desktop\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\mac\include\
|
||
// -I
|
||
// C:\Users\97110\Desktop\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\mac\high_level\
|
||
// -I
|
||
// C:\Users\97110\Desktop\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\mac\low_level\srf04\
|
||
// -I
|
||
// C:\Users\97110\Desktop\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\mac\low_level\srf04\single_chip\
|
||
// -I
|
||
// C:\Users\97110\Desktop\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\mt\
|
||
// -I
|
||
// C:\Users\97110\Desktop\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\osal\include\
|
||
// -I
|
||
// C:\Users\97110\Desktop\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\services\saddr\
|
||
// -I
|
||
// C:\Users\97110\Desktop\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\services\sdata\
|
||
// -I
|
||
// C:\Users\97110\Desktop\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\stack\af\
|
||
// -I
|
||
// C:\Users\97110\Desktop\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\stack\nwk\
|
||
// -I
|
||
// C:\Users\97110\Desktop\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\stack\sapi\
|
||
// -I
|
||
// C:\Users\97110\Desktop\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\stack\sec\
|
||
// -I
|
||
// C:\Users\97110\Desktop\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\stack\sys\
|
||
// -I
|
||
// C:\Users\97110\Desktop\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\stack\zdo\
|
||
// -I
|
||
// C:\Users\97110\Desktop\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\zmac\
|
||
// -I
|
||
// C:\Users\97110\Desktop\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\zmac\f8w\
|
||
// -Ohz --require_prototypes --no_code_motion)
|
||
// Locale = Chinese (Simplified)_CHN.936
|
||
// List file =
|
||
// C:\Users\97110\Desktop\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\Demo\List\ZMain.s51
|
||
//
|
||
///////////////////////////////////////////////////////////////////////////////
|
||
|
||
NAME ZMain
|
||
|
||
RTMODEL "__SystemLibrary", "CLib"
|
||
RTMODEL "__calling_convention", "xdata_reentrant"
|
||
RTMODEL "__code_model", "banked"
|
||
RTMODEL "__core", "plain"
|
||
RTMODEL "__data_model", "large"
|
||
RTMODEL "__dptr_size", "16"
|
||
RTMODEL "__extended_stack", "disabled"
|
||
RTMODEL "__location_for_constants", "data"
|
||
RTMODEL "__number_of_dptrs", "1"
|
||
RTMODEL "__register_banks", "*"
|
||
RTMODEL "__rt_version", "1"
|
||
|
||
RSEG DOVERLAY:DATA:NOROOT(0)
|
||
RSEG IOVERLAY:IDATA:NOROOT(0)
|
||
RSEG ISTACK:IDATA:NOROOT(0)
|
||
RSEG PSTACK:XDATA:NOROOT(0)
|
||
RSEG XSTACK:XDATA:NOROOT(0)
|
||
|
||
EXTERN ?V0
|
||
EXTERN ?V1
|
||
EXTERN ?V2
|
||
EXTERN ?ALLOC_XSTACK8
|
||
EXTERN ?BANKED_ENTER_XDATA
|
||
EXTERN ?BANKED_LEAVE_XDATA
|
||
EXTERN ?BDISPATCH
|
||
EXTERN ?BRET
|
||
EXTERN ?DEALLOC_XSTACK8
|
||
EXTERN ?MOVE_LONG8_XDATA_XDATA
|
||
EXTERN ?PUSH_XSTACK_I_THREE
|
||
EXTERN ?PUSH_XSTACK_I_TWO
|
||
EXTERN ?XSP
|
||
EXTERN ?XSTACK_DISP100_8
|
||
EXTERN ?XSTACK_DISP102_8
|
||
|
||
PUBLIC `??main::?relay`
|
||
FUNCTION `??main::?relay`,0203H
|
||
FUNCTION `??zmain_ext_addr::?relay`,0203H
|
||
PUBWEAK CLKCONCMD
|
||
PUBWEAK CLKCONSTA
|
||
PUBWEAK P0INP
|
||
PUBWEAK P1DIR
|
||
PUBWEAK P2DIR
|
||
PUBWEAK SLEEPCMD
|
||
PUBWEAK SLEEPSTA
|
||
PUBWEAK _A_P1
|
||
PUBWEAK _A_P2
|
||
PUBLIC main
|
||
FUNCTION main,0a1a03H
|
||
ARGFRAME XSTACK, 0, STACK
|
||
FUNCTION zmain_ext_addr,0a1203H
|
||
ARGFRAME XSTACK, 0, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
LOCFRAME ISTACK, 1, STACK
|
||
LOCFRAME XSTACK, 25, STACK
|
||
|
||
CFI Names cfiNames0
|
||
CFI StackFrame CFA_SP SP IDATA
|
||
CFI StackFrame CFA_PSP16 PSP16 XDATA
|
||
CFI StackFrame CFA_XSP16 XSP16 XDATA
|
||
CFI StaticOverlayFrame CFA_IOVERLAY IOVERLAY
|
||
CFI StaticOverlayFrame CFA_DOVERLAY DOVERLAY
|
||
CFI Resource `PSW.CY`:1, `B.BR0`:1, `B.BR1`:1, `B.BR2`:1, `B.BR3`:1
|
||
CFI Resource `B.BR4`:1, `B.BR5`:1, `B.BR6`:1, `B.BR7`:1, `VB.BR8`:1
|
||
CFI Resource `VB.BR9`:1, `VB.BR10`:1, `VB.BR11`:1, `VB.BR12`:1
|
||
CFI Resource `VB.BR13`:1, `VB.BR14`:1, `VB.BR15`:1, VB:8, B:8, A:8
|
||
CFI Resource PSW:8, DPL0:8, DPH0:8, R0:8, R1:8, R2:8, R3:8, R4:8, R5:8
|
||
CFI Resource R6:8, R7:8, V0:8, V1:8, V2:8, V3:8, V4:8, V5:8, V6:8, V7:8
|
||
CFI Resource SP:8, PSPH:8, PSPL:8, PSP16:16, XSPH:8, XSPL:8, XSP16:16
|
||
CFI VirtualResource ?RET:24
|
||
CFI Resource ?BRET_EXT:8
|
||
CFI VirtualResource ?RET_HIGH:8, ?RET_LOW:8
|
||
CFI ResourceParts PSP16 PSPH, PSPL
|
||
CFI ResourceParts XSP16 XSPH, XSPL
|
||
CFI ResourceParts ?RET ?BRET_EXT, ?RET_HIGH, ?RET_LOW
|
||
CFI EndNames cfiNames0
|
||
|
||
CFI Common cfiCommon0 Using cfiNames0
|
||
CFI CodeAlign 1
|
||
CFI DataAlign -1
|
||
CFI ReturnAddress ?RET CODE
|
||
CFI CFA_DOVERLAY Used
|
||
CFI CFA_IOVERLAY Used
|
||
CFI CFA_SP SP+-3
|
||
CFI CFA_PSP16 PSP16+0
|
||
CFI CFA_XSP16 XSP16+0
|
||
CFI `PSW.CY` Undefined
|
||
CFI `B.BR0` Undefined
|
||
CFI `B.BR1` Undefined
|
||
CFI `B.BR2` Undefined
|
||
CFI `B.BR3` Undefined
|
||
CFI `B.BR4` Undefined
|
||
CFI `B.BR5` Undefined
|
||
CFI `B.BR6` Undefined
|
||
CFI `B.BR7` Undefined
|
||
CFI `VB.BR8` Undefined
|
||
CFI `VB.BR9` Undefined
|
||
CFI `VB.BR10` Undefined
|
||
CFI `VB.BR11` Undefined
|
||
CFI `VB.BR12` Undefined
|
||
CFI `VB.BR13` Undefined
|
||
CFI `VB.BR14` Undefined
|
||
CFI `VB.BR15` Undefined
|
||
CFI VB Undefined
|
||
CFI B Undefined
|
||
CFI A Undefined
|
||
CFI PSW Undefined
|
||
CFI DPL0 Undefined
|
||
CFI DPH0 Undefined
|
||
CFI R0 Undefined
|
||
CFI R1 Undefined
|
||
CFI R2 Undefined
|
||
CFI R3 Undefined
|
||
CFI R4 Undefined
|
||
CFI R5 Undefined
|
||
CFI R6 Undefined
|
||
CFI R7 Undefined
|
||
CFI V0 Undefined
|
||
CFI V1 Undefined
|
||
CFI V2 Undefined
|
||
CFI V3 Undefined
|
||
CFI V4 Undefined
|
||
CFI V5 Undefined
|
||
CFI V6 Undefined
|
||
CFI V7 Undefined
|
||
CFI PSPH Undefined
|
||
CFI PSPL Undefined
|
||
CFI XSPH Undefined
|
||
CFI XSPL Undefined
|
||
CFI ?RET Concat
|
||
CFI ?BRET_EXT Frame(CFA_SP, 3)
|
||
CFI ?RET_HIGH Frame(CFA_SP, 2)
|
||
CFI ?RET_LOW Frame(CFA_SP, 1)
|
||
CFI EndCommon cfiCommon0
|
||
|
||
|
||
CFI Common cfiCommon1 Using cfiNames0
|
||
CFI CodeAlign 1
|
||
CFI DataAlign -1
|
||
CFI ReturnAddress ?RET CODE
|
||
CFI CFA_DOVERLAY Used
|
||
CFI CFA_IOVERLAY Used
|
||
CFI CFA_SP SP+-3
|
||
CFI CFA_PSP16 PSP16+0
|
||
CFI CFA_XSP16 XSP16+0
|
||
CFI `PSW.CY` SameValue
|
||
CFI `B.BR0` SameValue
|
||
CFI `B.BR1` SameValue
|
||
CFI `B.BR2` SameValue
|
||
CFI `B.BR3` SameValue
|
||
CFI `B.BR4` SameValue
|
||
CFI `B.BR5` SameValue
|
||
CFI `B.BR6` SameValue
|
||
CFI `B.BR7` SameValue
|
||
CFI `VB.BR8` SameValue
|
||
CFI `VB.BR9` SameValue
|
||
CFI `VB.BR10` SameValue
|
||
CFI `VB.BR11` SameValue
|
||
CFI `VB.BR12` SameValue
|
||
CFI `VB.BR13` SameValue
|
||
CFI `VB.BR14` SameValue
|
||
CFI `VB.BR15` SameValue
|
||
CFI VB SameValue
|
||
CFI B Undefined
|
||
CFI A Undefined
|
||
CFI PSW SameValue
|
||
CFI DPL0 SameValue
|
||
CFI DPH0 SameValue
|
||
CFI R0 Undefined
|
||
CFI R1 Undefined
|
||
CFI R2 Undefined
|
||
CFI R3 Undefined
|
||
CFI R4 Undefined
|
||
CFI R5 Undefined
|
||
CFI R6 SameValue
|
||
CFI R7 SameValue
|
||
CFI V0 SameValue
|
||
CFI V1 SameValue
|
||
CFI V2 SameValue
|
||
CFI V3 SameValue
|
||
CFI V4 SameValue
|
||
CFI V5 SameValue
|
||
CFI V6 SameValue
|
||
CFI V7 SameValue
|
||
CFI PSPH Undefined
|
||
CFI PSPL Undefined
|
||
CFI XSPH Undefined
|
||
CFI XSPL Undefined
|
||
CFI ?RET Concat
|
||
CFI ?BRET_EXT Frame(CFA_SP, 3)
|
||
CFI ?RET_HIGH Frame(CFA_SP, 2)
|
||
CFI ?RET_LOW Frame(CFA_SP, 1)
|
||
CFI EndCommon cfiCommon1
|
||
|
||
|
||
CFI Common cfiCommon2 Using cfiNames0
|
||
CFI CodeAlign 1
|
||
CFI DataAlign -1
|
||
CFI ReturnAddress ?RET CODE
|
||
CFI CFA_DOVERLAY Used
|
||
CFI CFA_IOVERLAY Used
|
||
CFI CFA_SP SP+-2
|
||
CFI CFA_PSP16 PSP16+0
|
||
CFI CFA_XSP16 XSP16+0
|
||
CFI `PSW.CY` SameValue
|
||
CFI `B.BR0` SameValue
|
||
CFI `B.BR1` SameValue
|
||
CFI `B.BR2` SameValue
|
||
CFI `B.BR3` SameValue
|
||
CFI `B.BR4` SameValue
|
||
CFI `B.BR5` SameValue
|
||
CFI `B.BR6` SameValue
|
||
CFI `B.BR7` SameValue
|
||
CFI `VB.BR8` SameValue
|
||
CFI `VB.BR9` SameValue
|
||
CFI `VB.BR10` SameValue
|
||
CFI `VB.BR11` SameValue
|
||
CFI `VB.BR12` SameValue
|
||
CFI `VB.BR13` SameValue
|
||
CFI `VB.BR14` SameValue
|
||
CFI `VB.BR15` SameValue
|
||
CFI VB SameValue
|
||
CFI B SameValue
|
||
CFI A SameValue
|
||
CFI PSW SameValue
|
||
CFI DPL0 SameValue
|
||
CFI DPH0 SameValue
|
||
CFI R0 SameValue
|
||
CFI R1 SameValue
|
||
CFI R2 SameValue
|
||
CFI R3 SameValue
|
||
CFI R4 SameValue
|
||
CFI R5 SameValue
|
||
CFI R6 SameValue
|
||
CFI R7 SameValue
|
||
CFI V0 SameValue
|
||
CFI V1 SameValue
|
||
CFI V2 SameValue
|
||
CFI V3 SameValue
|
||
CFI V4 SameValue
|
||
CFI V5 SameValue
|
||
CFI V6 SameValue
|
||
CFI V7 SameValue
|
||
CFI PSPH Undefined
|
||
CFI PSPL Undefined
|
||
CFI XSPH Undefined
|
||
CFI XSPL Undefined
|
||
CFI ?RET Concat
|
||
CFI ?BRET_EXT SameValue
|
||
CFI ?RET_HIGH Frame(CFA_SP, 2)
|
||
CFI ?RET_LOW Frame(CFA_SP, 1)
|
||
CFI EndCommon cfiCommon2
|
||
|
||
HalAdcCheckVdd SYMBOL "HalAdcCheckVdd"
|
||
`??HalAdcCheckVdd::?relay` SYMBOL "?relay", HalAdcCheckVdd
|
||
HalDriverInit SYMBOL "HalDriverInit"
|
||
`??HalDriverInit::?relay` SYMBOL "?relay", HalDriverInit
|
||
HalFlashRead SYMBOL "HalFlashRead"
|
||
`??HalFlashRead::?relay` SYMBOL "?relay", HalFlashRead
|
||
InitBoard SYMBOL "InitBoard"
|
||
`??InitBoard::?relay` SYMBOL "?relay", InitBoard
|
||
ZMacInit SYMBOL "ZMacInit"
|
||
`??ZMacInit::?relay` SYMBOL "?relay", ZMacInit
|
||
ZMacSetReq SYMBOL "ZMacSetReq"
|
||
`??ZMacSetReq::?relay` SYMBOL "?relay", ZMacSetReq
|
||
osal_init_system SYMBOL "osal_init_system"
|
||
`??osal_init_system::?relay` SYMBOL "?relay", osal_init_system
|
||
osal_int_disable SYMBOL "osal_int_disable"
|
||
`??osal_int_disable::?relay` SYMBOL "?relay", osal_int_disable
|
||
osal_int_enable SYMBOL "osal_int_enable"
|
||
`??osal_int_enable::?relay` SYMBOL "?relay", osal_int_enable
|
||
osal_memcmp SYMBOL "osal_memcmp"
|
||
`??osal_memcmp::?relay` SYMBOL "?relay", osal_memcmp
|
||
osal_memcpy SYMBOL "osal_memcpy"
|
||
`??osal_memcpy::?relay` SYMBOL "?relay", osal_memcpy
|
||
osal_nv_init SYMBOL "osal_nv_init"
|
||
`??osal_nv_init::?relay` SYMBOL "?relay", osal_nv_init
|
||
osal_nv_item_init SYMBOL "osal_nv_item_init"
|
||
`??osal_nv_item_init::?relay` SYMBOL "?relay", osal_nv_item_init
|
||
osal_nv_read SYMBOL "osal_nv_read"
|
||
`??osal_nv_read::?relay` SYMBOL "?relay", osal_nv_read
|
||
osal_nv_write SYMBOL "osal_nv_write"
|
||
`??osal_nv_write::?relay` SYMBOL "?relay", osal_nv_write
|
||
osal_rand SYMBOL "osal_rand"
|
||
`??osal_rand::?relay` SYMBOL "?relay", osal_rand
|
||
osal_start_system SYMBOL "osal_start_system"
|
||
`??osal_start_system::?relay` SYMBOL "?relay", osal_start_system
|
||
zgInit SYMBOL "zgInit"
|
||
`??zgInit::?relay` SYMBOL "?relay", zgInit
|
||
main SYMBOL "main"
|
||
`??main::?relay` SYMBOL "?relay", main
|
||
|
||
EXTERN `??HalAdcCheckVdd::?relay`
|
||
FUNCTION `??HalAdcCheckVdd::?relay`,00H
|
||
EXTERN `??HalDriverInit::?relay`
|
||
FUNCTION `??HalDriverInit::?relay`,00H
|
||
EXTERN `??HalFlashRead::?relay`
|
||
FUNCTION `??HalFlashRead::?relay`,00H
|
||
EXTERN `??InitBoard::?relay`
|
||
FUNCTION `??InitBoard::?relay`,00H
|
||
EXTERN `??ZMacInit::?relay`
|
||
FUNCTION `??ZMacInit::?relay`,00H
|
||
EXTERN `??ZMacSetReq::?relay`
|
||
FUNCTION `??ZMacSetReq::?relay`,00H
|
||
EXTERN `??osal_init_system::?relay`
|
||
FUNCTION `??osal_init_system::?relay`,00H
|
||
EXTERN `??osal_int_disable::?relay`
|
||
FUNCTION `??osal_int_disable::?relay`,00H
|
||
EXTERN `??osal_int_enable::?relay`
|
||
FUNCTION `??osal_int_enable::?relay`,00H
|
||
EXTERN `??osal_memcmp::?relay`
|
||
FUNCTION `??osal_memcmp::?relay`,00H
|
||
EXTERN `??osal_memcpy::?relay`
|
||
FUNCTION `??osal_memcpy::?relay`,00H
|
||
EXTERN `??osal_nv_init::?relay`
|
||
FUNCTION `??osal_nv_init::?relay`,00H
|
||
EXTERN `??osal_nv_item_init::?relay`
|
||
FUNCTION `??osal_nv_item_init::?relay`,00H
|
||
EXTERN `??osal_nv_read::?relay`
|
||
FUNCTION `??osal_nv_read::?relay`,00H
|
||
EXTERN `??osal_nv_write::?relay`
|
||
FUNCTION `??osal_nv_write::?relay`,00H
|
||
EXTERN `??osal_rand::?relay`
|
||
FUNCTION `??osal_rand::?relay`,00H
|
||
EXTERN `??osal_start_system::?relay`
|
||
FUNCTION `??osal_start_system::?relay`,00H
|
||
EXTERN `??zgInit::?relay`
|
||
FUNCTION `??zgInit::?relay`,00H
|
||
EXTERN HalAdcCheckVdd
|
||
FUNCTION HalAdcCheckVdd,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 0, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN HalDriverInit
|
||
FUNCTION HalDriverInit,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 0, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN HalFlashRead
|
||
FUNCTION HalFlashRead,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 23, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN InitBoard
|
||
FUNCTION InitBoard,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 0, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN ZMacInit
|
||
FUNCTION ZMacInit,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 0, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN ZMacSetReq
|
||
FUNCTION ZMacSetReq,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 21, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN aExtendedAddress
|
||
EXTERN osal_init_system
|
||
FUNCTION osal_init_system,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 0, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN osal_int_disable
|
||
FUNCTION osal_int_disable,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 0, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN osal_int_enable
|
||
FUNCTION osal_int_enable,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 0, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN osal_memcmp
|
||
FUNCTION osal_memcmp,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 24, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN osal_memcpy
|
||
FUNCTION osal_memcpy,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 24, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN osal_nv_init
|
||
FUNCTION osal_nv_init,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 0, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN osal_nv_item_init
|
||
FUNCTION osal_nv_item_init,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 23, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN osal_nv_read
|
||
FUNCTION osal_nv_read,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 25, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN osal_nv_write
|
||
FUNCTION osal_nv_write,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 25, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN osal_rand
|
||
FUNCTION osal_rand,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 21, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN osal_start_system
|
||
FUNCTION osal_start_system,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 0, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN zgConfigPANID
|
||
EXTERN zgInit
|
||
FUNCTION zgInit,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 0, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
|
||
// C:\Users\97110\Desktop\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\zstack\ZMain\TI2530DB\ZMain.c
|
||
// 1 /**************************************************************************************************
|
||
// 2 Filename: ZMain.c
|
||
// 3 Revised: $Date: 2010-09-17 16:25:30 -0700 (Fri, 17 Sep 2010) $
|
||
// 4 Revision: $Revision: 23835 $
|
||
// 5
|
||
// 6 Description: Startup and shutdown code for ZStack
|
||
// 7 Notes: This version targets the Chipcon CC2530
|
||
// 8
|
||
// 9
|
||
// 10 Copyright 2005-2010 Texas Instruments Incorporated. All rights reserved.
|
||
// 11
|
||
// 12 IMPORTANT: Your use of this Software is limited to those specific rights
|
||
// 13 granted under the terms of a software license agreement between the user
|
||
// 14 who downloaded the software, his/her employer (which must be your employer)
|
||
// 15 and Texas Instruments Incorporated (the "License"). You may not use this
|
||
// 16 Software unless you agree to abide by the terms of the License. The License
|
||
// 17 limits your use, and you acknowledge, that the Software may not be modified,
|
||
// 18 copied or distributed unless embedded on a Texas Instruments microcontroller
|
||
// 19 or used solely and exclusively in conjunction with a Texas Instruments radio
|
||
// 20 frequency transceiver, which is integrated into your product. Other than for
|
||
// 21 the foregoing purpose, you may not use, reproduce, copy, prepare derivative
|
||
// 22 works of, modify, distribute, perform, display or sell this Software and/or
|
||
// 23 its documentation for any purpose.
|
||
// 24
|
||
// 25 YOU FURTHER ACKNOWLEDGE AND AGREE THAT THE SOFTWARE AND DOCUMENTATION ARE
|
||
// 26 PROVIDED <20>AS IS?WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
|
||
// 27 INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY, TITLE,
|
||
// 28 NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL
|
||
// 29 TEXAS INSTRUMENTS OR ITS LICENSORS BE LIABLE OR OBLIGATED UNDER CONTRACT,
|
||
// 30 NEGLIGENCE, STRICT LIABILITY, CONTRIBUTION, BREACH OF WARRANTY, OR OTHER
|
||
// 31 LEGAL EQUITABLE THEORY ANY DIRECT OR INDIRECT DAMAGES OR EXPENSES
|
||
// 32 INCLUDING BUT NOT LIMITED TO ANY INCIDENTAL, SPECIAL, INDIRECT, PUNITIVE
|
||
// 33 OR CONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST DATA, COST OF PROCUREMENT
|
||
// 34 OF SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
|
||
// 35 (INCLUDING BUT NOT LIMITED TO ANY DEFENSE THEREOF), OR OTHER SIMILAR COSTS.
|
||
// 36
|
||
// 37 Should you have any questions regarding your right to use this Software,
|
||
// 38 contact Texas Instruments Incorporated at www.TI.com.
|
||
// 39 **************************************************************************************************/
|
||
// 40
|
||
// 41 /*********************************************************************
|
||
// 42 * INCLUDES
|
||
// 43 */
|
||
// 44
|
||
// 45 #ifndef NONWK
|
||
// 46 #include "AF.h"
|
||
// 47 #endif
|
||
// 48 #include "hal_adc.h"
|
||
|
||
ASEGN SFR_AN:DATA:NOROOT,08fH
|
||
// unsigned char volatile __sfr P0INP
|
||
P0INP:
|
||
DATA8
|
||
DS 1
|
||
|
||
ASEGN SFR_AN:DATA:NOROOT,090H
|
||
// union <unnamed> volatile __sfr _A_P1
|
||
_A_P1:
|
||
DATA8
|
||
DS 1
|
||
|
||
ASEGN SFR_AN:DATA:NOROOT,09dH
|
||
// unsigned char volatile __sfr SLEEPSTA
|
||
SLEEPSTA:
|
||
DATA8
|
||
DS 1
|
||
|
||
ASEGN SFR_AN:DATA:NOROOT,09eH
|
||
// unsigned char volatile __sfr CLKCONSTA
|
||
CLKCONSTA:
|
||
DATA8
|
||
DS 1
|
||
|
||
ASEGN SFR_AN:DATA:NOROOT,0a0H
|
||
// union <unnamed> volatile __sfr _A_P2
|
||
_A_P2:
|
||
DATA8
|
||
DS 1
|
||
|
||
ASEGN SFR_AN:DATA:NOROOT,0beH
|
||
// unsigned char volatile __sfr SLEEPCMD
|
||
SLEEPCMD:
|
||
DATA8
|
||
DS 1
|
||
|
||
ASEGN SFR_AN:DATA:NOROOT,0c6H
|
||
// unsigned char volatile __sfr CLKCONCMD
|
||
CLKCONCMD:
|
||
DATA8
|
||
DS 1
|
||
|
||
ASEGN SFR_AN:DATA:NOROOT,0feH
|
||
// unsigned char volatile __sfr P1DIR
|
||
P1DIR:
|
||
DATA8
|
||
DS 1
|
||
|
||
ASEGN SFR_AN:DATA:NOROOT,0ffH
|
||
// unsigned char volatile __sfr P2DIR
|
||
P2DIR:
|
||
DATA8
|
||
DS 1
|
||
// 49 #include "hal_flash.h"
|
||
// 50 #include "hal_lcd.h"
|
||
// 51 #include "hal_led.h"
|
||
// 52 #include "hal_drivers.h"
|
||
// 53 #include "OnBoard.h"
|
||
// 54 #include "OSAL.h"
|
||
// 55 #include "OSAL_Nv.h"
|
||
// 56 #include "ZComDef.h"
|
||
// 57 #include "ZMAC.h"
|
||
// 58
|
||
// 59 /*********************************************************************
|
||
// 60 * LOCAL FUNCTIONS
|
||
// 61 */
|
||
// 62
|
||
// 63 static void zmain_ext_addr( void );
|
||
// 64 #if defined ZCL_KEY_ESTABLISH
|
||
// 65 static void zmain_cert_init( void );
|
||
// 66 #endif
|
||
// 67 static void zmain_dev_info( void );
|
||
// 68 static void zmain_vdd_check( void );
|
||
// 69
|
||
// 70 #ifdef LCD_SUPPORTED
|
||
// 71 static void zmain_lcd_init( void );
|
||
// 72 #endif
|
||
// 73
|
||
// 74 /*********************************************************************
|
||
// 75 * @fn main
|
||
// 76 * @brief First function called after startup.
|
||
// 77 * @return don't care
|
||
// 78 */
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 79 int main(void)
|
||
main:
|
||
CFI Block cfiBlock0 Using cfiCommon0
|
||
CFI Function main
|
||
CODE
|
||
// 80 {
|
||
FUNCALL main, osal_int_disable
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 0, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 0, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL main, HalAdcCheckVdd
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 0, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 0, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL main, InitBoard
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 0, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 0, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL main, HalDriverInit
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 0, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 0, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL main, osal_nv_init
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 0, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 0, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL main, ZMacInit
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 0, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 0, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL main, zmain_ext_addr
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 0, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 0, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL main, zgInit
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 0, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 0, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL main, osal_init_system
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 0, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 0, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL main, osal_int_enable
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 0, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 0, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL main, InitBoard
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 0, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 0, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL main, osal_start_system
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 0, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 0, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
; Auto size: 0
|
||
// 81 // Turn off interrupts
|
||
// 82 osal_int_disable( INTS_ALL );
|
||
; Setup parameters for call to function osal_int_disable
|
||
MOV R1,#-0x1
|
||
LCALL `??osal_int_disable::?relay`; Banked call to: osal_int_disable
|
||
// 83
|
||
// 84 // Initialization for board related stuff such as LEDs
|
||
// 85 HAL_BOARD_INIT();
|
||
ANL 0xbe,#0xfb
|
||
??main_0:
|
||
MOV A,0x9d
|
||
MOV C,0xE0 /* A */.6
|
||
JNC ??main_0
|
||
NOP
|
||
MOV R0,#-0x8
|
||
MOV R1,#0x1
|
||
??main_1:
|
||
NOP
|
||
MOV A,R0
|
||
ADD A,#-0x1
|
||
DEC R0
|
||
MOV A,R1
|
||
ADDC A,#-0x1
|
||
MOV R1,A
|
||
MOV A,R0
|
||
ORL A,R1
|
||
JNZ ??main_1
|
||
MOV 0xc6,#0x0
|
||
??main_2:
|
||
MOV A,0x9e
|
||
JNZ ??main_2
|
||
ORL 0xbe,#0x4
|
||
MOV DPTR,#0x6270
|
||
MOV A,#0x8
|
||
MOVX @DPTR,A
|
||
SETB 0xa0.0
|
||
ORL 0xff,#0x1
|
||
SETB 0x90.1
|
||
ORL 0xfe,#0x2
|
||
CLR 0x90.4
|
||
ORL 0xfe,#0x10
|
||
ORL 0x8f,#0x1
|
||
// 86
|
||
// 87 // Make sure supply voltage is high enough to run
|
||
// 88 zmain_vdd_check();
|
||
MOV R6,#0x10
|
||
??main_3:
|
||
; Setup parameters for call to function HalAdcCheckVdd
|
||
MOV R1,#0x4a
|
||
LCALL `??HalAdcCheckVdd::?relay`; Banked call to: HalAdcCheckVdd
|
||
MOV A,R1
|
||
JZ ??main_3
|
||
DEC R6
|
||
MOV A,R6
|
||
JNZ ??main_3
|
||
// 89
|
||
// 90 // Initialize board I/O
|
||
// 91 InitBoard( OB_COLD );
|
||
; Setup parameters for call to function InitBoard
|
||
MOV R1,#0x0
|
||
LCALL `??InitBoard::?relay`; Banked call to: InitBoard
|
||
// 92
|
||
// 93 // Initialze HAL drivers
|
||
// 94 HalDriverInit();
|
||
; Setup parameters for call to function HalDriverInit
|
||
LCALL `??HalDriverInit::?relay`; Banked call to: HalDriverInit
|
||
// 95
|
||
// 96 // Initialize NV System
|
||
// 97 osal_nv_init( NULL );
|
||
; Setup parameters for call to function osal_nv_init
|
||
MOV R2,#0x0
|
||
MOV R3,#0x0
|
||
LCALL `??osal_nv_init::?relay`; Banked call to: osal_nv_init
|
||
// 98
|
||
// 99 // Initialize the MAC
|
||
// 100 ZMacInit();
|
||
; Setup parameters for call to function ZMacInit
|
||
LCALL `??ZMacInit::?relay`; Banked call to: ZMacInit
|
||
// 101
|
||
// 102 // Determine the extended address
|
||
// 103 zmain_ext_addr();
|
||
; Setup parameters for call to function zmain_ext_addr
|
||
LCALL `??zmain_ext_addr::?relay`; Banked call to: zmain_ext_addr
|
||
// 104
|
||
// 105 #if defined ZCL_KEY_ESTABLISH
|
||
// 106 // Initialize the Certicom certificate information.
|
||
// 107 zmain_cert_init();
|
||
// 108 #endif
|
||
// 109
|
||
// 110 // Initialize basic NV items
|
||
// 111 zgInit();
|
||
; Setup parameters for call to function zgInit
|
||
LCALL `??zgInit::?relay`; Banked call to: zgInit
|
||
// 112
|
||
// 113 #ifndef NONWK
|
||
// 114 // Since the AF isn't a task, call it's initialization routine
|
||
// 115 afInit();
|
||
// 116 #endif
|
||
// 117
|
||
// 118 // Initialize the operating system
|
||
// 119 osal_init_system();
|
||
; Setup parameters for call to function osal_init_system
|
||
LCALL `??osal_init_system::?relay`; Banked call to: osal_init_system
|
||
// 120
|
||
// 121 // Allow interrupts
|
||
// 122 osal_int_enable( INTS_ALL );
|
||
; Setup parameters for call to function osal_int_enable
|
||
MOV R1,#-0x1
|
||
LCALL `??osal_int_enable::?relay`; Banked call to: osal_int_enable
|
||
// 123
|
||
// 124 // Final board initialization
|
||
// 125 InitBoard( OB_READY );
|
||
; Setup parameters for call to function InitBoard
|
||
MOV R1,#0x2
|
||
LCALL `??InitBoard::?relay`; Banked call to: InitBoard
|
||
// 126
|
||
// 127 // Display information about this device
|
||
// 128 zmain_dev_info();
|
||
// 129
|
||
// 130 /* Display the device info on the LCD */
|
||
// 131 #ifdef LCD_SUPPORTED
|
||
// 132 zmain_lcd_init();
|
||
// 133 #endif
|
||
// 134
|
||
// 135 #ifdef WDT_IN_PM1
|
||
// 136 /* If WDT is used, this is a good place to enable it. */
|
||
// 137 WatchDogEnable( WDTIMX );
|
||
// 138 #endif
|
||
// 139
|
||
// 140 osal_start_system(); // No Return from here
|
||
; Setup parameters for call to function osal_start_system
|
||
LCALL `??osal_start_system::?relay`; Banked call to: osal_start_system
|
||
// 141
|
||
// 142 return 0; // Shouldn't get here.
|
||
MOV R2,#0x0
|
||
MOV R3,#0x0
|
||
LJMP ?BRET
|
||
CFI EndBlock cfiBlock0
|
||
REQUIRE SLEEPCMD
|
||
REQUIRE SLEEPSTA
|
||
REQUIRE CLKCONCMD
|
||
REQUIRE CLKCONSTA
|
||
REQUIRE _A_P2
|
||
REQUIRE P2DIR
|
||
REQUIRE _A_P1
|
||
REQUIRE P1DIR
|
||
REQUIRE P0INP
|
||
// 143 } // main()
|
||
// 144
|
||
// 145 /*********************************************************************
|
||
// 146 * @fn zmain_vdd_check
|
||
// 147 * @brief Check if the Vdd is OK to run the processor.
|
||
// 148 * @return Return if Vdd is ok; otherwise, flash LED, then reset
|
||
// 149 *********************************************************************/
|
||
// 150 static void zmain_vdd_check( void )
|
||
// 151 {
|
||
// 152 uint8 cnt = 16;
|
||
// 153
|
||
// 154 do {
|
||
// 155 while (!HalAdcCheckVdd(VDD_MIN_RUN));
|
||
// 156 } while (--cnt);
|
||
// 157 }
|
||
// 158
|
||
// 159 /**************************************************************************************************
|
||
// 160 * @fn zmain_ext_addr
|
||
// 161 *
|
||
// 162 * @brief Execute a prioritized search for a valid extended address and write the results
|
||
// 163 * into the OSAL NV system for use by the system. Temporary address not saved to NV.
|
||
// 164 *
|
||
// 165 * input parameters
|
||
// 166 *
|
||
// 167 * None.
|
||
// 168 *
|
||
// 169 * output parameters
|
||
// 170 *
|
||
// 171 * None.
|
||
// 172 *
|
||
// 173 * @return None.
|
||
// 174 **************************************************************************************************
|
||
// 175 */
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 176 static void zmain_ext_addr(void)
|
||
zmain_ext_addr:
|
||
CFI Block cfiBlock1 Using cfiCommon1
|
||
CFI Function zmain_ext_addr
|
||
CODE
|
||
// 177 {
|
||
FUNCALL zmain_ext_addr, osal_nv_item_init
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 23, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 23, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL zmain_ext_addr, osal_nv_read
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 25, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 25, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL zmain_ext_addr, osal_memcmp
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 24, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 24, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL zmain_ext_addr, HalFlashRead
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 23, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 23, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL zmain_ext_addr, osal_memcmp
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 24, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 24, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL zmain_ext_addr, osal_memcmp
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 24, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 24, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL zmain_ext_addr, osal_memcpy
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 24, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 24, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL zmain_ext_addr, osal_nv_write
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 25, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 25, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL zmain_ext_addr, HalFlashRead
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 23, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 23, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL zmain_ext_addr, ZMacSetReq
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 21, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 21, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL zmain_ext_addr, osal_rand
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 21, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 21, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
REQUIRE ?V0
|
||
REQUIRE ?V1
|
||
REQUIRE ?V2
|
||
MOV A,#-0xb
|
||
LCALL ?BANKED_ENTER_XDATA
|
||
CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI CFA_SP SP+0
|
||
CFI CFA_XSP16 add(XSP16, 11)
|
||
; Saved register size: 11
|
||
; Auto size: 10
|
||
MOV A,#-0xa
|
||
LCALL ?ALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 21)
|
||
// 178 uint8 nullAddr[Z_EXTADDR_LEN] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
|
||
MOV DPTR,#`?<Constant {255, 255, 255, 255, 255, 255, 255,`
|
||
MOV A,#0x2
|
||
LCALL ?XSTACK_DISP102_8
|
||
MOV A,#0x8
|
||
LCALL ?MOVE_LONG8_XDATA_XDATA
|
||
// 179 uint8 writeNV = TRUE;
|
||
// 180
|
||
// 181 // First check whether a non-erased extended address exists in the OSAL NV.
|
||
// 182 if ((SUCCESS != osal_nv_item_init(ZCD_NV_EXTADDR, Z_EXTADDR_LEN, NULL)) ||
|
||
// 183 (SUCCESS != osal_nv_read(ZCD_NV_EXTADDR, 0, Z_EXTADDR_LEN, aExtendedAddress)) ||
|
||
// 184 (osal_memcmp(aExtendedAddress, nullAddr, Z_EXTADDR_LEN)))
|
||
; Setup parameters for call to function osal_nv_item_init
|
||
MOV ?V0,A
|
||
MOV ?V1,A
|
||
MOV R0,#?V0
|
||
LCALL ?PUSH_XSTACK_I_TWO
|
||
CFI CFA_XSP16 add(XSP16, 23)
|
||
MOV R4,#0x8
|
||
MOV R5,#0x0
|
||
MOV R2,#0x1
|
||
MOV R3,#0x0
|
||
LCALL `??osal_nv_item_init::?relay`; Banked call to: osal_nv_item_init
|
||
MOV A,#0x2
|
||
LCALL ?DEALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 21)
|
||
MOV A,R1
|
||
JNZ ??zmain_ext_addr_0
|
||
; Setup parameters for call to function osal_nv_read
|
||
MOV ?V0,#aExtendedAddress & 0xff
|
||
MOV ?V1,#(aExtendedAddress >> 8) & 0xff
|
||
MOV R0,#?V0
|
||
LCALL ?PUSH_XSTACK_I_TWO
|
||
CFI CFA_XSP16 add(XSP16, 23)
|
||
MOV ?V0,#0x8
|
||
MOV ?V1,#0x0
|
||
MOV R0,#?V0
|
||
LCALL ?PUSH_XSTACK_I_TWO
|
||
CFI CFA_XSP16 add(XSP16, 25)
|
||
MOV R4,#0x0
|
||
MOV R5,#0x0
|
||
MOV R2,#0x1
|
||
MOV R3,#0x0
|
||
LCALL `??osal_nv_read::?relay`; Banked call to: osal_nv_read
|
||
MOV A,#0x4
|
||
LCALL ?DEALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 21)
|
||
MOV A,R1
|
||
JNZ ??zmain_ext_addr_0
|
||
; Setup parameters for call to function osal_memcmp
|
||
MOV A,#0x2
|
||
LCALL ?XSTACK_DISP100_8
|
||
MOV ?V0,R0
|
||
MOV ?V1,R1
|
||
MOV ?V2,#0x0
|
||
MOV R0,#?V0
|
||
LCALL ?PUSH_XSTACK_I_THREE
|
||
CFI CFA_XSP16 add(XSP16, 24)
|
||
MOV R4,#0x8
|
||
MOV R5,#0x0
|
||
MOV R1,#aExtendedAddress & 0xff
|
||
MOV R2,#(aExtendedAddress >> 8) & 0xff
|
||
MOV R3,#0x0
|
||
LCALL `??osal_memcmp::?relay`; Banked call to: osal_memcmp
|
||
MOV A,#0x3
|
||
LCALL ?DEALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 21)
|
||
MOV A,R1
|
||
JNZ $+5
|
||
LJMP ??zmain_ext_addr_1 & 0xFFFF
|
||
// 185 {
|
||
// 186 // Attempt to read the extended address from the location on the lock bits page
|
||
// 187 // where the programming tools know to reserve it.
|
||
// 188 HalFlashRead(HAL_FLASH_IEEE_PAGE, HAL_FLASH_IEEE_OSET, aExtendedAddress, Z_EXTADDR_LEN);
|
||
??zmain_ext_addr_0:
|
||
; Setup parameters for call to function HalFlashRead
|
||
MOV ?V0,#0x8
|
||
MOV ?V1,#0x0
|
||
MOV R0,#?V0
|
||
LCALL ?PUSH_XSTACK_I_TWO
|
||
CFI CFA_XSP16 add(XSP16, 23)
|
||
MOV R4,#aExtendedAddress & 0xff
|
||
MOV R5,#(aExtendedAddress >> 8) & 0xff
|
||
MOV R2,#-0x18
|
||
MOV R3,#0x7
|
||
MOV R1,#0x7f
|
||
LCALL `??HalFlashRead::?relay`; Banked call to: HalFlashRead
|
||
MOV A,#0x2
|
||
LCALL ?DEALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 21)
|
||
// 189
|
||
// 190 if (osal_memcmp(aExtendedAddress, nullAddr, Z_EXTADDR_LEN))
|
||
; Setup parameters for call to function osal_memcmp
|
||
MOV A,#0x2
|
||
LCALL ?XSTACK_DISP100_8
|
||
MOV ?V0,R0
|
||
MOV ?V1,R1
|
||
MOV ?V2,#0x0
|
||
MOV R0,#?V0
|
||
LCALL ?PUSH_XSTACK_I_THREE
|
||
CFI CFA_XSP16 add(XSP16, 24)
|
||
MOV R4,#0x8
|
||
MOV R5,#0x0
|
||
MOV R1,#aExtendedAddress & 0xff
|
||
MOV R2,#(aExtendedAddress >> 8) & 0xff
|
||
MOV R3,#0x0
|
||
LCALL `??osal_memcmp::?relay`; Banked call to: osal_memcmp
|
||
MOV A,#0x3
|
||
LCALL ?DEALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 21)
|
||
MOV A,R1
|
||
JZ ??zmain_ext_addr_2
|
||
// 191 {
|
||
// 192 // Attempt to read the extended address from the designated location in the Info Page.
|
||
// 193 if (!osal_memcmp((uint8 *)(P_INFOPAGE+HAL_INFOP_IEEE_OSET), nullAddr, Z_EXTADDR_LEN))
|
||
; Setup parameters for call to function osal_memcmp
|
||
MOV R0,#?V0
|
||
LCALL ?PUSH_XSTACK_I_THREE
|
||
CFI CFA_XSP16 add(XSP16, 24)
|
||
MOV R4,#0x8
|
||
MOV R5,#0x0
|
||
MOV R1,#0xc
|
||
MOV R2,#0x78
|
||
MOV R3,#0x0
|
||
LCALL `??osal_memcmp::?relay`; Banked call to: osal_memcmp
|
||
MOV A,#0x3
|
||
LCALL ?DEALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 21)
|
||
MOV A,R1
|
||
JZ $+5
|
||
LJMP ??zmain_ext_addr_3 & 0xFFFF
|
||
// 194 {
|
||
// 195 osal_memcpy(aExtendedAddress, (uint8 *)(P_INFOPAGE+HAL_INFOP_IEEE_OSET), Z_EXTADDR_LEN);
|
||
; Setup parameters for call to function osal_memcpy
|
||
MOV ?V0,#0xc
|
||
MOV ?V1,#0x78
|
||
MOV R0,#?V0
|
||
LCALL ?PUSH_XSTACK_I_THREE
|
||
CFI CFA_XSP16 add(XSP16, 24)
|
||
MOV R4,#0x8
|
||
MOV R5,#0x0
|
||
MOV R2,#aExtendedAddress & 0xff
|
||
MOV R3,#(aExtendedAddress >> 8) & 0xff
|
||
LCALL `??osal_memcpy::?relay`; Banked call to: osal_memcpy
|
||
MOV A,#0x3
|
||
LCALL ?DEALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 21)
|
||
// 196 }
|
||
// 197 else // No valid extended address was found.
|
||
// 198 {
|
||
// 199 uint8 idx;
|
||
// 200
|
||
// 201 #if !defined ( NV_RESTORE )
|
||
// 202 writeNV = FALSE; // Make this a temporary IEEE address
|
||
// 203 #endif
|
||
// 204
|
||
// 205 /* Attempt to create a sufficiently random extended address for expediency.
|
||
// 206 * Note: this is only valid/legal in a test environment and
|
||
// 207 * must never be used for a commercial product.
|
||
// 208 */
|
||
// 209 for (idx = 0; idx < (Z_EXTADDR_LEN - 2);)
|
||
// 210 {
|
||
// 211 uint16 randy = osal_rand();
|
||
// 212 aExtendedAddress[idx++] = LO_UINT16(randy);
|
||
// 213 aExtendedAddress[idx++] = HI_UINT16(randy);
|
||
// 214 }
|
||
// 215 // Next-to-MSB identifies ZigBee devicetype.
|
||
// 216 #if ZG_BUILD_COORDINATOR_TYPE && !ZG_BUILD_JOINING_TYPE
|
||
// 217 aExtendedAddress[idx++] = 0x10;
|
||
// 218 #elif ZG_BUILD_RTRONLY_TYPE
|
||
// 219 aExtendedAddress[idx++] = 0x20;
|
||
// 220 #else
|
||
// 221 aExtendedAddress[idx++] = 0x30;
|
||
// 222 #endif
|
||
// 223 // MSB has historical signficance.
|
||
// 224 aExtendedAddress[idx] = 0xF8;
|
||
// 225 }
|
||
// 226 }
|
||
// 227
|
||
// 228 if (writeNV)
|
||
// 229 {
|
||
// 230 (void)osal_nv_write(ZCD_NV_EXTADDR, 0, Z_EXTADDR_LEN, aExtendedAddress);
|
||
??zmain_ext_addr_2:
|
||
; Setup parameters for call to function osal_nv_write
|
||
MOV ?V0,#aExtendedAddress & 0xff
|
||
MOV ?V1,#(aExtendedAddress >> 8) & 0xff
|
||
MOV R0,#?V0
|
||
LCALL ?PUSH_XSTACK_I_TWO
|
||
CFI CFA_XSP16 add(XSP16, 23)
|
||
MOV ?V0,#0x8
|
||
MOV ?V1,#0x0
|
||
MOV R0,#?V0
|
||
LCALL ?PUSH_XSTACK_I_TWO
|
||
CFI CFA_XSP16 add(XSP16, 25)
|
||
MOV R4,#0x0
|
||
MOV R5,#0x0
|
||
MOV R2,#0x1
|
||
MOV R3,#0x0
|
||
LCALL `??osal_nv_write::?relay`; Banked call to: osal_nv_write
|
||
MOV A,#0x4
|
||
LCALL ?DEALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 21)
|
||
// 231 }
|
||
// 232 }
|
||
// 233 // add by lijian 20120821
|
||
// 234 if(zgConfigPANID == 0xFFFF)
|
||
??zmain_ext_addr_1:
|
||
MOV DPTR,#zgConfigPANID
|
||
MOVX A,@DPTR
|
||
CPL A
|
||
JNZ ??zmain_ext_addr_4
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
CPL A
|
||
??zmain_ext_addr_4:
|
||
JNZ ??zmain_ext_addr_5
|
||
// 235 {
|
||
// 236 uint8 pid[2];
|
||
// 237 HalFlashRead(HAL_FLASH_IEEE_PAGE, HAL_FLASH_PID_OSET, pid, HAL_FLASH_PID_SIZE);
|
||
; Setup parameters for call to function HalFlashRead
|
||
MOV ?V0,#0x2
|
||
MOV ?V1,#0x0
|
||
MOV R0,#?V0
|
||
LCALL ?PUSH_XSTACK_I_TWO
|
||
CFI CFA_XSP16 add(XSP16, 23)
|
||
MOV A,#0x2
|
||
LCALL ?XSTACK_DISP102_8
|
||
MOV R2,#0x0
|
||
MOV R3,#0x0
|
||
MOV R1,#0x7f
|
||
LCALL `??HalFlashRead::?relay`; Banked call to: HalFlashRead
|
||
MOV A,#0x2
|
||
LCALL ?DEALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 21)
|
||
// 238 zgConfigPANID = *(uint16 *)pid;
|
||
MOV DPL,?XSP + 0
|
||
MOV DPH,?XSP + 1
|
||
MOVX A,@DPTR
|
||
MOV R0,A
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
MOV R1,A
|
||
MOV DPTR,#zgConfigPANID
|
||
MOV A,R0
|
||
MOVX @DPTR,A
|
||
INC DPTR
|
||
MOV A,R1
|
||
MOVX @DPTR,A
|
||
// 239 }
|
||
// 240 // end of add
|
||
// 241
|
||
// 242 // Set the MAC PIB extended address according to results from above.
|
||
// 243 (void)ZMacSetReq(MAC_EXTENDED_ADDRESS, aExtendedAddress);
|
||
??zmain_ext_addr_5:
|
||
; Setup parameters for call to function ZMacSetReq
|
||
MOV R2,#aExtendedAddress & 0xff
|
||
MOV R3,#(aExtendedAddress >> 8) & 0xff
|
||
MOV R1,#-0x1e
|
||
LCALL `??ZMacSetReq::?relay`; Banked call to: ZMacSetReq
|
||
// 244 }
|
||
MOV A,#0xa
|
||
LCALL ?DEALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 11)
|
||
MOV R7,#0x3
|
||
LJMP ?BANKED_LEAVE_XDATA
|
||
CFI CFA_XSP16 add(XSP16, 21)
|
||
??zmain_ext_addr_3:
|
||
MOV R6,#0x0
|
||
??zmain_ext_addr_6:
|
||
; Setup parameters for call to function osal_rand
|
||
LCALL `??osal_rand::?relay`; Banked call to: osal_rand
|
||
MOV ?V0,R2
|
||
MOV A,R6
|
||
MOV R2,A
|
||
MOV A,#aExtendedAddress & 0xff
|
||
ADD A,R2
|
||
MOV DPL,A
|
||
CLR A
|
||
ADDC A,#(aExtendedAddress >> 8) & 0xff
|
||
MOV DPH,A
|
||
MOV A,?V0
|
||
MOVX @DPTR,A
|
||
INC R6
|
||
MOV A,R6
|
||
MOV R0,A
|
||
LCALL ?Subroutine0 & 0xFFFF
|
||
??CrossCallReturnLabel_0:
|
||
MOV A,R3
|
||
MOVX @DPTR,A
|
||
INC R6
|
||
MOV A,R6
|
||
CLR C
|
||
SUBB A,#0x6
|
||
JC ??zmain_ext_addr_6
|
||
INC R0
|
||
LCALL ?Subroutine0 & 0xFFFF
|
||
??CrossCallReturnLabel_1:
|
||
MOV A,#0x30
|
||
MOVX @DPTR,A
|
||
INC R0
|
||
MOV A,#aExtendedAddress & 0xff
|
||
ADD A,R0
|
||
MOV DPL,A
|
||
CLR A
|
||
ADDC A,#(aExtendedAddress >> 8) & 0xff
|
||
MOV DPH,A
|
||
MOV A,#-0x8
|
||
MOVX @DPTR,A
|
||
LJMP ??zmain_ext_addr_1 & 0xFFFF
|
||
CFI EndBlock cfiBlock1
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine0:
|
||
CFI Block cfiCond2 Using cfiCommon1
|
||
CFI Function zmain_ext_addr
|
||
CFI Conditional ??CrossCallReturnLabel_0
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI CFA_SP SP+-2
|
||
CFI CFA_XSP16 add(XSP16, 21)
|
||
CFI Block cfiCond3 Using cfiCommon1
|
||
CFI (cfiCond3) Function zmain_ext_addr
|
||
CFI (cfiCond3) Conditional ??CrossCallReturnLabel_1
|
||
CFI (cfiCond3) R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond3) VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond3) V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond3) V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond3) V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond3) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond3) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond3) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond3) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond3) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond3) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond3) CFA_SP SP+-2
|
||
CFI (cfiCond3) CFA_XSP16 add(XSP16, 21)
|
||
CFI Block cfiPicker4 Using cfiCommon2
|
||
CFI (cfiPicker4) NoFunction
|
||
CFI (cfiPicker4) Picker
|
||
MOV A,#aExtendedAddress & 0xff
|
||
ADD A,R6
|
||
MOV DPL,A
|
||
CLR A
|
||
ADDC A,#(aExtendedAddress >> 8) & 0xff
|
||
MOV DPH,A
|
||
RET
|
||
CFI EndBlock cfiCond2
|
||
CFI EndBlock cfiCond3
|
||
CFI EndBlock cfiPicker4
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??main::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 main
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??zmain_ext_addr::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 zmain_ext_addr
|
||
|
||
RSEG XDATA_ROM_C:CONST:REORDER:NOROOT(0)
|
||
DATA8
|
||
`?<Constant {255, 255, 255, 255, 255, 255, 255,`:
|
||
DB 255
|
||
DB 255
|
||
DB 255
|
||
DB 255
|
||
DB 255
|
||
DB 255
|
||
DB 255
|
||
DB 255
|
||
|
||
END
|
||
// 245
|
||
// 246 #if defined ZCL_KEY_ESTABLISH
|
||
// 247 /**************************************************************************************************
|
||
// 248 * @fn zmain_cert_init
|
||
// 249 *
|
||
// 250 * @brief Initialize the Certicom certificate information.
|
||
// 251 *
|
||
// 252 * input parameters
|
||
// 253 *
|
||
// 254 * None.
|
||
// 255 *
|
||
// 256 * output parameters
|
||
// 257 *
|
||
// 258 * None.
|
||
// 259 *
|
||
// 260 * @return None.
|
||
// 261 **************************************************************************************************
|
||
// 262 */
|
||
// 263 static void zmain_cert_init(void)
|
||
// 264 {
|
||
// 265 uint8 certData[ZCL_KE_IMPLICIT_CERTIFICATE_LEN];
|
||
// 266 uint8 nullData[ZCL_KE_IMPLICIT_CERTIFICATE_LEN] = {
|
||
// 267 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||
// 268 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||
// 269 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||
// 270 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||
// 271 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||
// 272 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
|
||
// 273 };
|
||
// 274
|
||
// 275 (void)osal_nv_item_init(ZCD_NV_IMPLICIT_CERTIFICATE, ZCL_KE_IMPLICIT_CERTIFICATE_LEN, NULL);
|
||
// 276 (void)osal_nv_item_init(ZCD_NV_DEVICE_PRIVATE_KEY, ZCL_KE_DEVICE_PRIVATE_KEY_LEN, NULL);
|
||
// 277
|
||
// 278 // First check whether non-null certificate data exists in the OSAL NV. To save on code space,
|
||
// 279 // just use the ZCD_NV_CA_PUBLIC_KEY as the bellwether for all three.
|
||
// 280 if ((SUCCESS != osal_nv_item_init(ZCD_NV_CA_PUBLIC_KEY, ZCL_KE_CA_PUBLIC_KEY_LEN, NULL)) ||
|
||
// 281 (SUCCESS != osal_nv_read(ZCD_NV_CA_PUBLIC_KEY, 0, ZCL_KE_CA_PUBLIC_KEY_LEN, certData)) ||
|
||
// 282 (osal_memcmp(certData, nullData, ZCL_KE_CA_PUBLIC_KEY_LEN)))
|
||
// 283 {
|
||
// 284 // Attempt to read the certificate data from its corresponding location on the lock bits page.
|
||
// 285 HalFlashRead(HAL_FLASH_IEEE_PAGE, HAL_FLASH_CA_PUBLIC_KEY_OSET, certData,
|
||
// 286 ZCL_KE_CA_PUBLIC_KEY_LEN);
|
||
// 287 // If the certificate data is not NULL, use it to update the corresponding NV items.
|
||
// 288 if (!osal_memcmp(certData, nullData, ZCL_KE_CA_PUBLIC_KEY_LEN))
|
||
// 289 {
|
||
// 290 (void)osal_nv_write(ZCD_NV_CA_PUBLIC_KEY, 0, ZCL_KE_CA_PUBLIC_KEY_LEN, certData);
|
||
// 291 HalFlashRead(HAL_FLASH_IEEE_PAGE, HAL_FLASH_IMPLICIT_CERT_OSET, certData,
|
||
// 292 ZCL_KE_IMPLICIT_CERTIFICATE_LEN);
|
||
// 293 (void)osal_nv_write(ZCD_NV_IMPLICIT_CERTIFICATE, 0,
|
||
// 294 ZCL_KE_IMPLICIT_CERTIFICATE_LEN, certData);
|
||
// 295 HalFlashRead(HAL_FLASH_IEEE_PAGE, HAL_FLASH_DEV_PRIVATE_KEY_OSET, certData,
|
||
// 296 ZCL_KE_DEVICE_PRIVATE_KEY_LEN);
|
||
// 297 (void)osal_nv_write(ZCD_NV_DEVICE_PRIVATE_KEY, 0, ZCL_KE_DEVICE_PRIVATE_KEY_LEN, certData);
|
||
// 298 }
|
||
// 299 }
|
||
// 300 }
|
||
// 301 #endif
|
||
// 302
|
||
// 303 /**************************************************************************************************
|
||
// 304 * @fn zmain_dev_info
|
||
// 305 *
|
||
// 306 * @brief This displays the IEEE (MSB to LSB) on the LCD.
|
||
// 307 *
|
||
// 308 * input parameters
|
||
// 309 *
|
||
// 310 * None.
|
||
// 311 *
|
||
// 312 * output parameters
|
||
// 313 *
|
||
// 314 * None.
|
||
// 315 *
|
||
// 316 * @return None.
|
||
// 317 **************************************************************************************************
|
||
// 318 */
|
||
// 319 static void zmain_dev_info(void)
|
||
// 320 {
|
||
// 321 #ifdef LCD_SUPPORTED
|
||
// 322 uint8 i;
|
||
// 323 uint8 *xad;
|
||
// 324 uint8 lcd_buf[Z_EXTADDR_LEN*2+1];
|
||
// 325
|
||
// 326 // Display the extended address.
|
||
// 327 xad = aExtendedAddress + Z_EXTADDR_LEN - 1;
|
||
// 328
|
||
// 329 for (i = 0; i < Z_EXTADDR_LEN*2; xad--)
|
||
// 330 {
|
||
// 331 uint8 ch;
|
||
// 332 ch = (*xad >> 4) & 0x0F;
|
||
// 333 lcd_buf[i++] = ch + (( ch < 10 ) ? '0' : '7');
|
||
// 334 ch = *xad & 0x0F;
|
||
// 335 lcd_buf[i++] = ch + (( ch < 10 ) ? '0' : '7');
|
||
// 336 }
|
||
// 337 lcd_buf[Z_EXTADDR_LEN*2] = '\0';
|
||
// 338 HalLcdWriteString( "IEEE: ", HAL_LCD_LINE_1 );
|
||
// 339 HalLcdWriteString( (char*)lcd_buf, HAL_LCD_LINE_2 );
|
||
// 340 #endif
|
||
// 341 }
|
||
// 342
|
||
// 343 #ifdef LCD_SUPPORTED
|
||
// 344 /*********************************************************************
|
||
// 345 * @fn zmain_lcd_init
|
||
// 346 * @brief Initialize LCD at start up.
|
||
// 347 * @return none
|
||
// 348 *********************************************************************/
|
||
// 349 static void zmain_lcd_init ( void )
|
||
// 350 {
|
||
// 351 #ifdef SERIAL_DEBUG_SUPPORTED
|
||
// 352 {
|
||
// 353 HalLcdWriteString( "TexasInstruments", HAL_LCD_LINE_1 );
|
||
// 354
|
||
// 355 #if defined( MT_MAC_FUNC )
|
||
// 356 #if defined( ZDO_COORDINATOR )
|
||
// 357 HalLcdWriteString( "MAC-MT Coord", HAL_LCD_LINE_2 );
|
||
// 358 #else
|
||
// 359 HalLcdWriteString( "MAC-MT Device", HAL_LCD_LINE_2 );
|
||
// 360 #endif // ZDO
|
||
// 361 #elif defined( MT_NWK_FUNC )
|
||
// 362 #if defined( ZDO_COORDINATOR )
|
||
// 363 HalLcdWriteString( "NWK Coordinator", HAL_LCD_LINE_2 );
|
||
// 364 #else
|
||
// 365 HalLcdWriteString( "NWK Device", HAL_LCD_LINE_2 );
|
||
// 366 #endif // ZDO
|
||
// 367 #endif // MT_FUNC
|
||
// 368 }
|
||
// 369 #endif // SERIAL_DEBUG_SUPPORTED
|
||
// 370 }
|
||
// 371 #endif
|
||
// 372
|
||
// 373 /*********************************************************************
|
||
// 374 *********************************************************************/
|
||
//
|
||
// 573 bytes in segment BANKED_CODE
|
||
// 12 bytes in segment BANK_RELAYS
|
||
// 9 bytes in segment SFR_AN
|
||
// 8 bytes in segment XDATA_ROM_C
|
||
//
|
||
// 12 bytes of CODE memory
|
||
// 8 bytes of CONST memory
|
||
// 0 bytes of DATA memory (+ 9 bytes shared)
|
||
// 573 bytes of HUGECODE memory
|
||
//
|
||
//Errors: none
|
||
//Warnings: none
|