Files
OldPeopleHome/zigbee/ZStack-CC2530-r200/Projects/SappWsn/RouterEB/List/ZMain.s51
LitterDryFish 6b0d1c0743 add node
2019-08-23 12:26:53 +08:00

1856 lines
67 KiB
Plaintext

///////////////////////////////////////////////////////////////////////////////
//
// IAR C/C++ Compiler V10.30.1.6000 for 8051 23/Aug/2019 12:13:11
// 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 =
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\zstack\ZMain\TI2530DB\ZMain.c
// Command line =
// -f C:\Users\VULCAN\AppData\Local\Temp\EWEA2D.tmp
// (E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\zstack\ZMain\TI2530DB\ZMain.c
// -D ZIGBEEPRO -D ZTOOL_P1 -D MT_TASK -D MT_SYS_FUNC -D MT_ZDO_FUNC -D
// LCD_SUPPORTED=DEBUG -D SAPP_ZSTACK -lC
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\RouterEB\List
// -lA
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\RouterEB\List
// --diag_suppress Pe001,Pa010 -o
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\RouterEB\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
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\zstack\Tools\CC2530DB\f8wRouter.cfg
// (-DCPU32MHZ -DROOT=__near_func -DMAC_CFG_APP_PENDING_QUEUE=TRUE
// -DMAC_CFG_TX_DATA_MAX=5 -DMAC_CFG_TX_MAX=8 -DMAC_CFG_RX_MAX=5
// -DRTR_NWK) -f
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\zstack\Tools\CC2530DB\f8wConfig.cfg
// (-DZIGBEEPRO -DSECURE=0 -DZG_SECURE_DYNAMIC=0 -DREFLECTOR
// -DDEFAULT_CHANLIST=0x00800000 -DZDAPP_CONFIG_PAN_ID=0x0057
// -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
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\Source\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\zstack\ZMain\TI2530DB\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\hal\include\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\hal\target\CC2530EB\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\mac\include\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\mac\high_level\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\mac\low_level\srf04\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\mac\low_level\srf04\single_chip\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\mt\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\osal\include\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\services\saddr\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\services\sdata\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\stack\af\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\stack\nwk\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\stack\sapi\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\stack\sec\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\stack\sys\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\stack\zdo\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\zmac\
// -I
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\zmac\f8w\
// -Ohz --require_prototypes --no_code_motion)
// Locale = Chinese (Simplified)_CHN.936
// List file =
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\RouterEB\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_DISP0_8
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
LOCFRAME ISTACK, 1, STACK
LOCFRAME XSTACK, 17, STACK
FUNCTION zmain_ext_addr,0a1203H
ARGFRAME XSTACK, 17, 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
HalLcdWriteString SYMBOL "HalLcdWriteString"
`??HalLcdWriteString::?relay` SYMBOL "?relay", HalLcdWriteString
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 `??HalLcdWriteString::?relay`
FUNCTION `??HalLcdWriteString::?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, 17, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
EXTERN HalDriverInit
FUNCTION HalDriverInit,0202H
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 17, 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 HalLcdWriteString
FUNCTION HalLcdWriteString,0202H
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 17, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
EXTERN InitBoard
FUNCTION InitBoard,0202H
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 17, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
EXTERN ZMacInit
FUNCTION ZMacInit,0202H
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 17, 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, 17, 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, 17, 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, 17, 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, 17, 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, 17, 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, 17, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
// E:\qq下载文件\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 揂S 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, 17, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 17, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
FUNCALL main, HalAdcCheckVdd
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 17, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 17, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
FUNCALL main, InitBoard
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 17, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 17, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
FUNCALL main, HalDriverInit
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 17, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 17, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
FUNCALL main, osal_nv_init
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 17, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 17, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
FUNCALL main, ZMacInit
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 17, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 17, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
FUNCALL main, zmain_ext_addr
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 17, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 17, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
FUNCALL main, zgInit
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 17, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 17, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
FUNCALL main, osal_init_system
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 17, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 17, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
FUNCALL main, osal_int_enable
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 17, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 17, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
FUNCALL main, InitBoard
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 17, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 17, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
FUNCALL main, HalLcdWriteString
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 17, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 17, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
FUNCALL main, HalLcdWriteString
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 17, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 17, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
FUNCALL main, HalLcdWriteString
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 17, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 17, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
FUNCALL main, osal_start_system
LOCFRAME ISTACK, 0, STACK
LOCFRAME PSTACK, 0, STACK
LOCFRAME XSTACK, 17, STACK
LOCFRAME IOVERLAY, 0, STATIC
LOCFRAME DOVERLAY, 0, STATIC
ARGFRAME ISTACK, 0, STACK
ARGFRAME PSTACK, 0, STACK
ARGFRAME XSTACK, 17, STACK
ARGFRAME IOVERLAY, 0, STATIC
ARGFRAME DOVERLAY, 0, STATIC
; Auto size: 17
MOV A,#-0x11
LCALL ?ALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 17)
// 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();
MOV R0,#(aExtendedAddress + 7) & 0xff
MOV R1,#((aExtendedAddress + 7) >> 8) & 0xff
MOV R2,#0x0
??main_4:
MOV DPL,R0
MOV DPH,R1
MOVX A,@DPTR
SWAP A
ANL A,#0xf
MOV R4,A
MOV A,R2
MOV R6,A
MOV A,#0x1
ADD A,R6
MOV R2,A
MOV A,R4
CLR C
SUBB A,#0xa
JNC ??main_5
MOV R3,#0x30
SJMP ??main_6
??main_5:
MOV R3,#0x37
??main_6:
MOV A,R4
ADD A,R3
PUSH A
CFI CFA_SP SP+-4
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOV A,DPL
ADD A,R6
MOV DPL,A
CLR A
ADDC A,DPH
MOV DPH,A
POP A
CFI CFA_SP SP+-3
MOVX @DPTR,A
MOV DPL,R0
MOV DPH,R1
MOVX A,@DPTR
ANL A,#0xf
MOV R4,A
MOV A,R2
MOV R7,A
MOV A,#0x1
ADD A,R2
MOV R2,A
MOV A,R4
CLR C
SUBB A,#0xa
JNC ??main_7
MOV R3,#0x30
SJMP ??main_8
??main_7:
MOV R3,#0x37
??main_8:
MOV A,R4
ADD A,R3
PUSH A
CFI CFA_SP SP+-4
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOV A,DPL
ADD A,R7
MOV DPL,A
CLR A
ADDC A,DPH
MOV DPH,A
POP A
CFI CFA_SP SP+-3
MOVX @DPTR,A
MOV A,R0
ADD A,#-0x1
DEC R0
MOV A,R1
ADDC A,#-0x1
MOV R1,A
MOV A,R2
CLR C
SUBB A,#0x10
JC ??main_4
MOV A,#0x10
LCALL ?XSTACK_DISP0_8
CLR A
MOVX @DPTR,A
; Setup parameters for call to function HalLcdWriteString
MOV R1,#0x1
MOV R2,#`?<Constant "IEEE: ">` & 0xff
MOV R3,#(`?<Constant "IEEE: ">` >> 8) & 0xff
LCALL `??HalLcdWriteString::?relay`; Banked call to: HalLcdWriteString
; Setup parameters for call to function HalLcdWriteString
MOV R1,#0x2
MOV R2,?XSP + 0
MOV R3,?XSP + 1
LCALL `??HalLcdWriteString::?relay`; Banked call to: HalLcdWriteString
// 129
// 130 /* Display the device info on the LCD */
// 131 #ifdef LCD_SUPPORTED
// 132 zmain_lcd_init();
; Setup parameters for call to function HalLcdWriteString
MOV R1,#0x1
MOV R2,#`?<Constant "TexasInstruments">` & 0xff
MOV R3,#(`?<Constant "TexasInstruments">` >> 8) & 0xff
LCALL `??HalLcdWriteString::?relay`; Banked call to: HalLcdWriteString
// 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
MOV A,#0x11
LCALL ?DEALLOC_XSTACK8
CFI CFA_XSP16 XSP16+0
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,#0x20
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
RSEG XDATA_ROM_C:CONST:REORDER:NOROOT(0)
DATA8
`?<Constant "IEEE: ">`:
DB "IEEE: "
RSEG XDATA_ROM_C:CONST:REORDER:NOROOT(0)
DATA8
`?<Constant "TexasInstruments">`:
DB "TexasInstruments"
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 *********************************************************************/
//
// 736 bytes in segment BANKED_CODE
// 12 bytes in segment BANK_RELAYS
// 9 bytes in segment SFR_AN
// 32 bytes in segment XDATA_ROM_C
//
// 12 bytes of CODE memory
// 32 bytes of CONST memory
// 0 bytes of DATA memory (+ 9 bytes shared)
// 736 bytes of HUGECODE memory
//
//Errors: none
//Warnings: none