1856 lines
67 KiB
Plaintext
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
|