1643 lines
55 KiB
Plaintext
1643 lines
55 KiB
Plaintext
///////////////////////////////////////////////////////////////////////////////
|
||
//
|
||
// IAR C/C++ Compiler V10.30.1.6000 for 8051 23/Aug/2019 12:13:06
|
||
// 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\OnBoard.c
|
||
// Command line =
|
||
// -f C:\Users\VULCAN\AppData\Local\Temp\EWD6AF.tmp
|
||
// (E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\zstack\ZMain\TI2530DB\OnBoard.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\OnBoard.s51
|
||
//
|
||
///////////////////////////////////////////////////////////////////////////////
|
||
|
||
NAME OnBoard
|
||
|
||
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:DATA:REORDER:NOROOT(0)
|
||
|
||
EXTERN ?V0
|
||
EXTERN ?V1
|
||
EXTERN ?V2
|
||
EXTERN ?V3
|
||
EXTERN ?V4
|
||
EXTERN ?V5
|
||
EXTERN ?ALLOC_XSTACK8
|
||
EXTERN ?BANKED_ENTER_XDATA
|
||
EXTERN ?BANKED_LEAVE_XDATA
|
||
EXTERN ?BDISPATCH
|
||
EXTERN ?BRET
|
||
EXTERN ?DEALLOC_XSTACK8
|
||
EXTERN ?US_DIV_MOD
|
||
EXTERN ?XSP
|
||
EXTERN __INIT_XDATA_I
|
||
EXTERN __INIT_XDATA_Z
|
||
|
||
PUBLIC `??BigLight_Off::?relay`
|
||
FUNCTION `??BigLight_Off::?relay`,0203H
|
||
PUBLIC `??BigLight_On::?relay`
|
||
FUNCTION `??BigLight_On::?relay`,0203H
|
||
PUBLIC `??BuzzerControl::?relay`
|
||
FUNCTION `??BuzzerControl::?relay`,0203H
|
||
PUBLIC `??Dimmer::?relay`
|
||
FUNCTION `??Dimmer::?relay`,0203H
|
||
PUBLIC `??GetUserDipSw::?relay`
|
||
FUNCTION `??GetUserDipSw::?relay`,0203H
|
||
PUBLIC `??InitBoard::?relay`
|
||
FUNCTION `??InitBoard::?relay`,0203H
|
||
PUBLIC `??OnBoard_KeyCallback::?relay`
|
||
FUNCTION `??OnBoard_KeyCallback::?relay`,0203H
|
||
PUBLIC `??OnBoard_SendKeys::?relay`
|
||
FUNCTION `??OnBoard_SendKeys::?relay`,0203H
|
||
PUBLIC `??OnBoard_stack_used::?relay`
|
||
FUNCTION `??OnBoard_stack_used::?relay`,0203H
|
||
PUBLIC `??Onboard_rand::?relay`
|
||
FUNCTION `??Onboard_rand::?relay`,0203H
|
||
PUBLIC `??Onboard_wait::?relay`
|
||
FUNCTION `??Onboard_wait::?relay`,0203H
|
||
PUBLIC `??RegisterForKeys::?relay`
|
||
FUNCTION `??RegisterForKeys::?relay`,0203H
|
||
PUBLIC `??_itoa::?relay`
|
||
FUNCTION `??_itoa::?relay`,0203H
|
||
PUBLIC BigLight_Off
|
||
FUNCTION BigLight_Off,0203H
|
||
ARGFRAME XSTACK, 0, STACK
|
||
PUBLIC BigLight_On
|
||
FUNCTION BigLight_On,0203H
|
||
ARGFRAME XSTACK, 0, STACK
|
||
PUBLIC BuzzerControl
|
||
FUNCTION BuzzerControl,0203H
|
||
ARGFRAME XSTACK, 0, STACK
|
||
PUBWEAK DMAARM
|
||
PUBLIC Dimmer
|
||
FUNCTION Dimmer,0203H
|
||
ARGFRAME XSTACK, 0, STACK
|
||
PUBLIC GetUserDipSw
|
||
FUNCTION GetUserDipSw,0203H
|
||
ARGFRAME XSTACK, 0, STACK
|
||
PUBLIC InitBoard
|
||
FUNCTION InitBoard,021203H
|
||
ARGFRAME XSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 9, STACK
|
||
PUBLIC OnBoard_KeyCallback
|
||
FUNCTION OnBoard_KeyCallback,021603H
|
||
ARGFRAME XSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 9, STACK
|
||
PUBLIC OnBoard_SendKeys
|
||
FUNCTION OnBoard_SendKeys,0a1203H
|
||
ARGFRAME XSTACK, 9, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
LOCFRAME ISTACK, 1, STACK
|
||
LOCFRAME XSTACK, 10, STACK
|
||
PUBLIC OnBoard_stack_used
|
||
FUNCTION OnBoard_stack_used,0203H
|
||
ARGFRAME XSTACK, 0, STACK
|
||
LOCFRAME ISTACK, 2, STACK
|
||
PUBLIC Onboard_rand
|
||
FUNCTION Onboard_rand,021203H
|
||
ARGFRAME XSTACK, 0, STACK
|
||
LOCFRAME ISTACK, 2, STACK
|
||
PUBLIC Onboard_soft_reset
|
||
FUNCTION Onboard_soft_reset,080203H
|
||
ARGFRAME XSTACK, 0, STACK
|
||
PUBLIC Onboard_wait
|
||
FUNCTION Onboard_wait,080203H
|
||
ARGFRAME XSTACK, 0, STACK
|
||
PUBLIC RegisterForKeys
|
||
FUNCTION RegisterForKeys,0203H
|
||
ARGFRAME XSTACK, 0, STACK
|
||
LOCFRAME ISTACK, 2, STACK
|
||
PUBWEAK SLEEPSTA
|
||
PUBWEAK _A_IEN0
|
||
PUBLIC _itoa
|
||
FUNCTION _itoa,080203H
|
||
ARGFRAME XSTACK, 0, STACK
|
||
LOCFRAME ISTACK, 1, STACK
|
||
LOCFRAME XSTACK, 19, STACK
|
||
PUBLIC _lockBits
|
||
PUBLIC _nvIEEE
|
||
PUBLIC _reserved
|
||
PUBLIC aExtendedAddress
|
||
|
||
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` 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 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+-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 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 SameValue
|
||
CFI ?RET_HIGH Frame(CFA_SP, 2)
|
||
CFI ?RET_LOW Frame(CFA_SP, 1)
|
||
CFI EndCommon cfiCommon1
|
||
|
||
HalKeyConfig SYMBOL "HalKeyConfig"
|
||
`??HalKeyConfig::?relay` SYMBOL "?relay", HalKeyConfig
|
||
halAssertHandler SYMBOL "halAssertHandler"
|
||
`??halAssertHandler::?relay` SYMBOL "?relay", halAssertHandler
|
||
macMcuRandomWord SYMBOL "macMcuRandomWord"
|
||
`??macMcuRandomWord::?relay` SYMBOL "?relay", macMcuRandomWord
|
||
osal_int_disable SYMBOL "osal_int_disable"
|
||
`??osal_int_disable::?relay` SYMBOL "?relay", osal_int_disable
|
||
osal_msg_allocate SYMBOL "osal_msg_allocate"
|
||
`??osal_msg_allocate::?relay` SYMBOL "?relay", osal_msg_allocate
|
||
osal_msg_send SYMBOL "osal_msg_send"
|
||
`??osal_msg_send::?relay` SYMBOL "?relay", osal_msg_send
|
||
BigLight_Off SYMBOL "BigLight_Off"
|
||
`??BigLight_Off::?relay` SYMBOL "?relay", BigLight_Off
|
||
BigLight_On SYMBOL "BigLight_On"
|
||
`??BigLight_On::?relay` SYMBOL "?relay", BigLight_On
|
||
BuzzerControl SYMBOL "BuzzerControl"
|
||
`??BuzzerControl::?relay` SYMBOL "?relay", BuzzerControl
|
||
Dimmer SYMBOL "Dimmer"
|
||
`??Dimmer::?relay` SYMBOL "?relay", Dimmer
|
||
GetUserDipSw SYMBOL "GetUserDipSw"
|
||
`??GetUserDipSw::?relay` SYMBOL "?relay", GetUserDipSw
|
||
InitBoard SYMBOL "InitBoard"
|
||
`??InitBoard::?relay` SYMBOL "?relay", InitBoard
|
||
OnBoard_KeyCallback SYMBOL "OnBoard_KeyCallback"
|
||
`??OnBoard_KeyCallback::?relay` SYMBOL "?relay", OnBoard_KeyCallback
|
||
OnBoard_SendKeys SYMBOL "OnBoard_SendKeys"
|
||
`??OnBoard_SendKeys::?relay` SYMBOL "?relay", OnBoard_SendKeys
|
||
OnBoard_stack_used SYMBOL "OnBoard_stack_used"
|
||
`??OnBoard_stack_used::?relay` SYMBOL "?relay", OnBoard_stack_used
|
||
Onboard_rand SYMBOL "Onboard_rand"
|
||
`??Onboard_rand::?relay` SYMBOL "?relay", Onboard_rand
|
||
Onboard_wait SYMBOL "Onboard_wait"
|
||
`??Onboard_wait::?relay` SYMBOL "?relay", Onboard_wait
|
||
RegisterForKeys SYMBOL "RegisterForKeys"
|
||
`??RegisterForKeys::?relay` SYMBOL "?relay", RegisterForKeys
|
||
_itoa SYMBOL "_itoa"
|
||
`??_itoa::?relay` SYMBOL "?relay", _itoa
|
||
|
||
EXTERN `??HalKeyConfig::?relay`
|
||
FUNCTION `??HalKeyConfig::?relay`,00H
|
||
EXTERN `??halAssertHandler::?relay`
|
||
FUNCTION `??halAssertHandler::?relay`,00H
|
||
EXTERN `??macMcuRandomWord::?relay`
|
||
FUNCTION `??macMcuRandomWord::?relay`,00H
|
||
EXTERN `??osal_int_disable::?relay`
|
||
FUNCTION `??osal_int_disable::?relay`,00H
|
||
EXTERN `??osal_msg_allocate::?relay`
|
||
FUNCTION `??osal_msg_allocate::?relay`,00H
|
||
EXTERN `??osal_msg_send::?relay`
|
||
FUNCTION `??osal_msg_send::?relay`,00H
|
||
EXTERN HalKeyConfig
|
||
FUNCTION HalKeyConfig,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 9, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN halAssertHandler
|
||
FUNCTION halAssertHandler,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 9, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN macMcuRandomWord
|
||
FUNCTION macMcuRandomWord,0202H
|
||
ARGFRAME ISTACK, 2, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 0, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN osal_int_disable
|
||
FUNCTION osal_int_disable,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 9, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN osal_msg_allocate
|
||
FUNCTION osal_msg_allocate,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 10, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN osal_msg_send
|
||
FUNCTION osal_msg_send,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 10, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
|
||
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\zstack\ZMain\TI2530DB\OnBoard.c
|
||
// 1 /**************************************************************************************************
|
||
// 2 Filename: OnBoard.c
|
||
// 3 Revised: $Date: 2010-08-02 13:44:14 -0700 (Mon, 02 Aug 2010) $
|
||
// 4 Revision: $Revision: 23273 $
|
||
// 5
|
||
// 6 Description: This file contains the UI and control for the
|
||
// 7 peripherals on the EVAL development board
|
||
// 8 Notes: This file targets the Chipcon CC2530/31
|
||
// 9
|
||
// 10
|
||
// 11 Copyright 2005-2010 Texas Instruments Incorporated. All rights reserved.
|
||
// 12
|
||
// 13 IMPORTANT: Your use of this Software is limited to those specific rights
|
||
// 14 granted under the terms of a software license agreement between the user
|
||
// 15 who downloaded the software, his/her employer (which must be your employer)
|
||
// 16 and Texas Instruments Incorporated (the "License"). You may not use this
|
||
// 17 Software unless you agree to abide by the terms of the License. The License
|
||
// 18 limits your use, and you acknowledge, that the Software may not be modified,
|
||
// 19 copied or distributed unless embedded on a Texas Instruments microcontroller
|
||
// 20 or used solely and exclusively in conjunction with a Texas Instruments radio
|
||
// 21 frequency transceiver, which is integrated into your product. Other than for
|
||
// 22 the foregoing purpose, you may not use, reproduce, copy, prepare derivative
|
||
// 23 works of, modify, distribute, perform, display or sell this Software and/or
|
||
// 24 its documentation for any purpose.
|
||
// 25
|
||
// 26 YOU FURTHER ACKNOWLEDGE AND AGREE THAT THE SOFTWARE AND DOCUMENTATION ARE
|
||
// 27 PROVIDED 揂S IS<49> WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
|
||
// 28 INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY, TITLE,
|
||
// 29 NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL
|
||
// 30 TEXAS INSTRUMENTS OR ITS LICENSORS BE LIABLE OR OBLIGATED UNDER CONTRACT,
|
||
// 31 NEGLIGENCE, STRICT LIABILITY, CONTRIBUTION, BREACH OF WARRANTY, OR OTHER
|
||
// 32 LEGAL EQUITABLE THEORY ANY DIRECT OR INDIRECT DAMAGES OR EXPENSES
|
||
// 33 INCLUDING BUT NOT LIMITED TO ANY INCIDENTAL, SPECIAL, INDIRECT, PUNITIVE
|
||
// 34 OR CONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST DATA, COST OF PROCUREMENT
|
||
// 35 OF SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
|
||
// 36 (INCLUDING BUT NOT LIMITED TO ANY DEFENSE THEREOF), OR OTHER SIMILAR COSTS.
|
||
// 37
|
||
// 38 Should you have any questions regarding your right to use this Software,
|
||
// 39 contact Texas Instruments Incorporated at www.TI.com.
|
||
// 40 **************************************************************************************************/
|
||
// 41
|
||
// 42 /*********************************************************************
|
||
// 43 * INCLUDES
|
||
// 44 */
|
||
// 45
|
||
// 46 #include "ZComDef.h"
|
||
// 47 #include "ZGlobals.h"
|
||
// 48 #include "OnBoard.h"
|
||
|
||
ASEGN SFR_AN:DATA:NOROOT,09dH
|
||
// unsigned char volatile __sfr SLEEPSTA
|
||
SLEEPSTA:
|
||
DATA8
|
||
DS 1
|
||
|
||
ASEGN SFR_AN:DATA:NOROOT,0a8H
|
||
// union <unnamed> volatile __sfr _A_IEN0
|
||
_A_IEN0:
|
||
DATA8
|
||
DS 1
|
||
|
||
ASEGN SFR_AN:DATA:NOROOT,0d6H
|
||
// unsigned char volatile __sfr DMAARM
|
||
DMAARM:
|
||
DATA8
|
||
DS 1
|
||
// 49 #include "OSAL.h"
|
||
// 50 #include "MT.h"
|
||
// 51 #include "MT_SYS.h"
|
||
// 52 #include "DebugTrace.h"
|
||
// 53
|
||
// 54 /* Hal */
|
||
// 55 #include "hal_lcd.h"
|
||
// 56 #include "hal_mcu.h"
|
||
// 57 #include "hal_timer.h"
|
||
// 58 #include "hal_key.h"
|
||
// 59 #include "hal_led.h"
|
||
// 60
|
||
// 61 /* Allow access macRandomByte() */
|
||
// 62 #include "mac_radio_defs.h"
|
||
// 63
|
||
// 64 /*********************************************************************
|
||
// 65 * CONSTANTS
|
||
// 66 */
|
||
// 67
|
||
// 68 // Task ID not initialized
|
||
// 69 #define NO_TASK_ID 0xFF
|
||
// 70
|
||
// 71 // Minimum length RAM "pattern" for Stack check
|
||
// 72 #define MIN_RAM_INIT 12
|
||
// 73
|
||
// 74 /*********************************************************************
|
||
// 75 * GLOBAL VARIABLES
|
||
// 76 */
|
||
// 77
|
||
// 78 #if defined MAKE_CRC_SHDW
|
||
// 79 #pragma location="CRC_SHDW"
|
||
// 80 const CODE uint16 _crcShdw = 0xFFFF;
|
||
// 81 #pragma required=_crcShdw
|
||
// 82
|
||
// 83 #else // if !defined MAKE_CRC_SHDW
|
||
// 84
|
||
// 85 #pragma location="LOCK_BITS_ADDRESS_SPACE"
|
||
|
||
RSEG LOCK_BITS_ADDRESS_SPACE:XDATA:REORDER:NOROOT(0)
|
||
DATA8
|
||
// 86 __no_init uint8 _lockBits[16];
|
||
_lockBits:
|
||
DS 16
|
||
// 87 #pragma required=_lockBits
|
||
// 88
|
||
// 89 #if defined ZCL_KEY_ESTABLISH
|
||
// 90 #include "zcl_cert_data.c"
|
||
// 91 #else
|
||
// 92 #pragma location="IEEE_ADDRESS_SPACE"
|
||
|
||
RSEG IEEE_ADDRESS_SPACE:XDATA:REORDER:NOROOT(0)
|
||
DATA8
|
||
// 93 __no_init uint8 _nvIEEE[Z_EXTADDR_LEN];
|
||
_nvIEEE:
|
||
DS 8
|
||
REQUIRE _lockBits
|
||
// 94 #pragma required=_nvIEEE
|
||
// 95 #endif
|
||
// 96
|
||
// 97 #pragma location="RESERVED_ADDRESS_SPACE"
|
||
|
||
RSEG RESERVED_ADDRESS_SPACE:XDATA:REORDER:NOROOT(0)
|
||
DATA8
|
||
// 98 __no_init uint8 _reserved[1932];
|
||
_reserved:
|
||
DS 1932
|
||
REQUIRE _nvIEEE
|
||
// 99 #pragma required=_reserved
|
||
// 100 #endif
|
||
// 101
|
||
// 102 // 64-bit Extended Address of this device
|
||
|
||
RSEG XDATA_Z:XDATA:NOROOT(0)
|
||
DATA8
|
||
// 103 uint8 aExtendedAddress[8];
|
||
aExtendedAddress:
|
||
DS 8
|
||
REQUIRE __INIT_XDATA_Z
|
||
REQUIRE _reserved
|
||
// 104
|
||
// 105 /*********************************************************************
|
||
// 106 * LOCAL VARIABLES
|
||
// 107 */
|
||
// 108
|
||
// 109 // Registered keys task ID, initialized to NOT USED.
|
||
|
||
RSEG XDATA_I:XDATA:NOROOT(0)
|
||
// 110 static uint8 registeredKeysTaskID = NO_TASK_ID;
|
||
registeredKeysTaskID:
|
||
DATA8
|
||
DS 1
|
||
REQUIRE `?<Initializer for registeredKeysTaskID>`
|
||
REQUIRE __INIT_XDATA_I
|
||
// 111
|
||
// 112 /*********************************************************************
|
||
// 113 * LOCAL FUNCTIONS
|
||
// 114 */
|
||
// 115
|
||
// 116 static void ChkReset( void );
|
||
// 117
|
||
// 118 /*********************************************************************
|
||
// 119 * @fn InitBoard()
|
||
// 120 * @brief Initialize the CC2420DB Board Peripherals
|
||
// 121 * @param level: COLD,WARM,READY
|
||
// 122 * @return None
|
||
// 123 */
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 124 void InitBoard( uint8 level )
|
||
InitBoard:
|
||
CFI Block cfiBlock0 Using cfiCommon0
|
||
CFI Function InitBoard
|
||
CODE
|
||
// 125 {
|
||
FUNCALL InitBoard, osal_int_disable
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 9, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 9, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL InitBoard, halAssertHandler
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 9, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 9, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL InitBoard, HalKeyConfig
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 9, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 9, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
MOV A,#-0x9
|
||
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 V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI CFA_SP SP+0
|
||
CFI CFA_XSP16 add(XSP16, 9)
|
||
; Saved register size: 9
|
||
; Auto size: 0
|
||
MOV A,R1
|
||
// 126 if ( level == OB_COLD )
|
||
JNZ ??InitBoard_0
|
||
// 127 {
|
||
// 128 // IAR does not zero-out this byte below the XSTACK.
|
||
// 129 *(uint8 *)0x0 = 0;
|
||
MOV DPTR,#0x0
|
||
CLR A
|
||
MOVX @DPTR,A
|
||
// 130 // Interrupts off
|
||
// 131 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
|
||
// 132 // Check for Brown-Out reset
|
||
// 133 ChkReset();
|
||
MOV A,0x9d
|
||
ANL A,#0x18
|
||
MOV R0,A
|
||
JZ ??InitBoard_1
|
||
MOV A,#0x8
|
||
XRL A,R0
|
||
JZ ??InitBoard_1
|
||
MOV A,#0x10
|
||
XRL A,R0
|
||
JZ ??InitBoard_1
|
||
; Setup parameters for call to function halAssertHandler
|
||
LCALL `??halAssertHandler::?relay`; Banked call to: halAssertHandler
|
||
SJMP ??InitBoard_1
|
||
// 134 }
|
||
// 135 else // !OB_COLD
|
||
// 136 {
|
||
// 137 /* Initialize Key stuff */
|
||
// 138 HalKeyConfig(HAL_KEY_INTERRUPT_DISABLE, OnBoard_KeyCallback);
|
||
??InitBoard_0:
|
||
; Setup parameters for call to function HalKeyConfig
|
||
MOV R2,#`??OnBoard_KeyCallback::?relay` & 0xff
|
||
MOV R3,#(`??OnBoard_KeyCallback::?relay` >> 8) & 0xff
|
||
MOV R1,#0x0
|
||
LCALL `??HalKeyConfig::?relay`; Banked call to: HalKeyConfig
|
||
// 139 }
|
||
// 140 }
|
||
??InitBoard_1:
|
||
CFI EndBlock cfiBlock0
|
||
REQUIRE ?Subroutine0
|
||
REQUIRE SLEEPSTA
|
||
; // Fall through to label ?Subroutine0
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine0:
|
||
CFI Block cfiBlock1 Using cfiCommon0
|
||
CFI NoFunction
|
||
CFI CFA_SP SP+0
|
||
CFI CFA_XSP16 add(XSP16, 9)
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
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)))
|
||
MOV R7,#0x1
|
||
LJMP ?BANKED_LEAVE_XDATA
|
||
CFI EndBlock cfiBlock1
|
||
// 141
|
||
// 142 /*********************************************************************
|
||
// 143 * @fn ChkReset()
|
||
// 144 * @brief Check reset bits - if reset cause is unknown, assume a
|
||
// 145 * brown-out (low power), assume batteries are not reliable,
|
||
// 146 * hang in a loop and sequence through the LEDs.
|
||
// 147 * @param None
|
||
// 148 * @return None
|
||
// 149 *********************************************************************/
|
||
// 150 void ChkReset( void )
|
||
// 151 {
|
||
// 152 uint8 rib;
|
||
// 153
|
||
// 154 // Isolate reset indicator bits
|
||
// 155 rib = SLEEPSTA & LRESET;
|
||
// 156
|
||
// 157 if ( rib == RESETPO )
|
||
// 158 {
|
||
// 159 // Put code here to handle Power-On reset
|
||
// 160 }
|
||
// 161 else if ( rib == RESETEX )
|
||
// 162 {
|
||
// 163 // Put code here to handle External reset
|
||
// 164 }
|
||
// 165 else if ( rib == RESETWD )
|
||
// 166 {
|
||
// 167 // Put code here to handle WatchDog reset
|
||
// 168 }
|
||
// 169 else // Unknown reason - not expected.
|
||
// 170 {
|
||
// 171 HAL_ASSERT(0);
|
||
// 172 }
|
||
// 173 }
|
||
// 174
|
||
// 175 /*********************************************************************
|
||
// 176 * "Keyboard" Support
|
||
// 177 *********************************************************************/
|
||
// 178
|
||
// 179 /*********************************************************************
|
||
// 180 * Keyboard Register function
|
||
// 181 *
|
||
// 182 * The keyboard handler is setup to send all keyboard changes to
|
||
// 183 * one task (if a task is registered).
|
||
// 184 *
|
||
// 185 * If a task registers, it will get all the keys. You can change this
|
||
// 186 * to register for individual keys.
|
||
// 187 *********************************************************************/
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 188 uint8 RegisterForKeys( uint8 task_id )
|
||
RegisterForKeys:
|
||
CFI Block cfiBlock2 Using cfiCommon0
|
||
CFI Function RegisterForKeys
|
||
CODE
|
||
// 189 {
|
||
PUSH DPL
|
||
CFI DPL0 Frame(CFA_SP, 4)
|
||
CFI CFA_SP SP+-4
|
||
PUSH DPH
|
||
CFI DPH0 Frame(CFA_SP, 5)
|
||
CFI CFA_SP SP+-5
|
||
; Saved register size: 2
|
||
; Auto size: 0
|
||
// 190 // Allow only the first task
|
||
// 191 if ( registeredKeysTaskID == NO_TASK_ID )
|
||
MOV DPTR,#registeredKeysTaskID
|
||
MOVX A,@DPTR
|
||
CPL A
|
||
JNZ ??RegisterForKeys_0
|
||
// 192 {
|
||
// 193 registeredKeysTaskID = task_id;
|
||
MOV A,R1
|
||
MOVX @DPTR,A
|
||
// 194 return ( true );
|
||
MOV R1,#0x1
|
||
SJMP ??RegisterForKeys_1
|
||
// 195 }
|
||
// 196 else
|
||
// 197 return ( false );
|
||
??RegisterForKeys_0:
|
||
MOV R1,#0x0
|
||
??RegisterForKeys_1:
|
||
CFI EndBlock cfiBlock2
|
||
REQUIRE ?Subroutine1
|
||
; // Fall through to label ?Subroutine1
|
||
// 198 }
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine1:
|
||
CFI Block cfiBlock3 Using cfiCommon0
|
||
CFI NoFunction
|
||
CFI CFA_SP SP+-5
|
||
CFI DPL0 Frame(CFA_SP, 4)
|
||
CFI DPH0 Frame(CFA_SP, 5)
|
||
POP DPH
|
||
CFI CFA_SP SP+-4
|
||
CFI DPH0 SameValue
|
||
POP DPL
|
||
CFI CFA_SP SP+-3
|
||
CFI DPL0 SameValue
|
||
LJMP ?BRET
|
||
CFI EndBlock cfiBlock3
|
||
// 199
|
||
// 200 /*********************************************************************
|
||
// 201 * @fn OnBoard_SendKeys
|
||
// 202 *
|
||
// 203 * @brief Send "Key Pressed" message to application.
|
||
// 204 *
|
||
// 205 * @param keys - keys that were pressed
|
||
// 206 * state - shifted
|
||
// 207 *
|
||
// 208 * @return status
|
||
// 209 *********************************************************************/
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 210 uint8 OnBoard_SendKeys( uint8 keys, uint8 state )
|
||
OnBoard_SendKeys:
|
||
CFI Block cfiBlock4 Using cfiCommon0
|
||
CFI Function OnBoard_SendKeys
|
||
CODE
|
||
// 211 {
|
||
FUNCALL OnBoard_SendKeys, osal_msg_allocate
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 10, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 10, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL OnBoard_SendKeys, osal_msg_send
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 10, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 10, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
REQUIRE ?V0
|
||
REQUIRE ?V1
|
||
MOV A,#-0xa
|
||
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 V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI CFA_SP SP+0
|
||
CFI CFA_XSP16 add(XSP16, 10)
|
||
; Saved register size: 10
|
||
; Auto size: 0
|
||
MOV A,R1
|
||
MOV R6,A
|
||
MOV A,R2
|
||
MOV R7,A
|
||
// 212 keyChange_t *msgPtr;
|
||
// 213
|
||
// 214 if ( registeredKeysTaskID != NO_TASK_ID )
|
||
MOV DPTR,#registeredKeysTaskID
|
||
MOVX A,@DPTR
|
||
CPL A
|
||
JZ ??OnBoard_SendKeys_0
|
||
// 215 {
|
||
// 216 // Send the address to the task
|
||
// 217 msgPtr = (keyChange_t *)osal_msg_allocate( sizeof(keyChange_t) );
|
||
; Setup parameters for call to function osal_msg_allocate
|
||
MOV R2,#0x4
|
||
MOV R3,#0x0
|
||
LCALL `??osal_msg_allocate::?relay`; Banked call to: osal_msg_allocate
|
||
// 218 if ( msgPtr )
|
||
MOV A,R2
|
||
ORL A,R3
|
||
JZ ??OnBoard_SendKeys_1
|
||
// 219 {
|
||
// 220 msgPtr->hdr.event = KEY_CHANGE;
|
||
MOV DPL,R2
|
||
MOV DPH,R3
|
||
MOV A,#-0x40
|
||
MOVX @DPTR,A
|
||
// 221 msgPtr->state = state;
|
||
MOV A,R7
|
||
INC DPTR
|
||
INC DPTR
|
||
MOVX @DPTR,A
|
||
// 222 msgPtr->keys = keys;
|
||
MOV A,R6
|
||
MOV DPL,R2
|
||
MOV DPH,R3
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
MOVX @DPTR,A
|
||
// 223
|
||
// 224 osal_msg_send( registeredKeysTaskID, (uint8 *)msgPtr );
|
||
; Setup parameters for call to function osal_msg_send
|
||
MOV DPTR,#registeredKeysTaskID
|
||
MOVX A,@DPTR
|
||
MOV R1,A
|
||
LCALL `??osal_msg_send::?relay`; Banked call to: osal_msg_send
|
||
// 225 }
|
||
// 226 return ( ZSuccess );
|
||
??OnBoard_SendKeys_1:
|
||
MOV R1,#0x0
|
||
SJMP ??OnBoard_SendKeys_2
|
||
// 227 }
|
||
// 228 else
|
||
// 229 return ( ZFailure );
|
||
??OnBoard_SendKeys_0:
|
||
MOV R1,#0x1
|
||
??OnBoard_SendKeys_2:
|
||
MOV R7,#0x2
|
||
LJMP ?BANKED_LEAVE_XDATA
|
||
// 230 }
|
||
CFI EndBlock cfiBlock4
|
||
// 231
|
||
// 232 /*********************************************************************
|
||
// 233 * @fn OnBoard_KeyCallback
|
||
// 234 *
|
||
// 235 * @brief Callback service for keys
|
||
// 236 *
|
||
// 237 * @param keys - keys that were pressed
|
||
// 238 * state - shifted
|
||
// 239 *
|
||
// 240 * @return void
|
||
// 241 *********************************************************************/
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 242 void OnBoard_KeyCallback ( uint8 keys, uint8 state )
|
||
OnBoard_KeyCallback:
|
||
CFI Block cfiBlock5 Using cfiCommon0
|
||
CFI Function OnBoard_KeyCallback
|
||
CODE
|
||
// 243 {
|
||
FUNCALL OnBoard_KeyCallback, OnBoard_SendKeys
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 9, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 9, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
MOV A,#-0x9
|
||
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 V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI CFA_SP SP+0
|
||
CFI CFA_XSP16 add(XSP16, 9)
|
||
; Saved register size: 9
|
||
; Auto size: 0
|
||
MOV A,R1
|
||
// 244 uint8 shift;
|
||
// 245 (void)state;
|
||
// 246
|
||
// 247 shift = (keys & HAL_KEY_SW_6) ? true : false;
|
||
// 248
|
||
// 249 if ( OnBoard_SendKeys( keys, shift ) != ZSuccess )
|
||
; Setup parameters for call to function OnBoard_SendKeys
|
||
MOV C,0xE0 /* A */.5
|
||
CLR A
|
||
RLC A
|
||
MOV R2,A
|
||
LCALL `??OnBoard_SendKeys::?relay`; Banked call to: OnBoard_SendKeys
|
||
// 250 {
|
||
// 251 // Process SW1 here
|
||
// 252 if ( keys & HAL_KEY_SW_1 ) // Switch 1
|
||
// 253 {
|
||
// 254 }
|
||
// 255 // Process SW2 here
|
||
// 256 if ( keys & HAL_KEY_SW_2 ) // Switch 2
|
||
// 257 {
|
||
// 258 }
|
||
// 259 // Process SW3 here
|
||
// 260 if ( keys & HAL_KEY_SW_3 ) // Switch 3
|
||
// 261 {
|
||
// 262 }
|
||
// 263 // Process SW4 here
|
||
// 264 if ( keys & HAL_KEY_SW_4 ) // Switch 4
|
||
// 265 {
|
||
// 266 }
|
||
// 267 // Process SW5 here
|
||
// 268 if ( keys & HAL_KEY_SW_5 ) // Switch 5
|
||
// 269 {
|
||
// 270 }
|
||
// 271 // Process SW6 here
|
||
// 272 if ( keys & HAL_KEY_SW_6 ) // Switch 6
|
||
// 273 {
|
||
// 274 }
|
||
// 275 }
|
||
// 276 }
|
||
SJMP ?Subroutine0
|
||
CFI EndBlock cfiBlock5
|
||
// 277
|
||
// 278 /*********************************************************************
|
||
// 279 * @fn OnBoard_stack_used
|
||
// 280 *
|
||
// 281 * @brief Runs through the stack looking for touched memory.
|
||
// 282 *
|
||
// 283 * @param none
|
||
// 284 *
|
||
// 285 * @return Maximum number of bytes used by the stack.
|
||
// 286 *********************************************************************/
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 287 uint16 OnBoard_stack_used(void)
|
||
OnBoard_stack_used:
|
||
CFI Block cfiBlock6 Using cfiCommon0
|
||
CFI Function OnBoard_stack_used
|
||
CODE
|
||
// 288 {
|
||
PUSH DPL
|
||
CFI DPL0 Frame(CFA_SP, 4)
|
||
CFI CFA_SP SP+-4
|
||
PUSH DPH
|
||
CFI DPH0 Frame(CFA_SP, 5)
|
||
CFI CFA_SP SP+-5
|
||
; Saved register size: 2
|
||
; Auto size: 0
|
||
// 289 uint8 const *ptr;
|
||
// 290 uint8 cnt = 0;
|
||
MOV R0,#0x0
|
||
// 291
|
||
// 292 for (ptr = CSTACK_END; ptr > CSTACK_BEG; ptr--)
|
||
MOV DPL,#(SFE(XSTACK) + 255) & 0xff
|
||
MOV DPH,#((SFE(XSTACK) - 1) >> 8) & 0xff
|
||
SJMP ??OnBoard_stack_used_0
|
||
// 293 {
|
||
// 294 if (STACK_INIT_VALUE == *ptr)
|
||
// 295 {
|
||
// 296 if (++cnt >= MIN_RAM_INIT)
|
||
// 297 {
|
||
// 298 ptr += MIN_RAM_INIT;
|
||
// 299 break;
|
||
// 300 }
|
||
// 301 }
|
||
// 302 else
|
||
// 303 {
|
||
// 304 cnt = 0;
|
||
??OnBoard_stack_used_1:
|
||
MOV R0,#0x0
|
||
// 305 }
|
||
??OnBoard_stack_used_2:
|
||
MOV A,DPL
|
||
ADD A,#-0x1
|
||
MOV DPL,A
|
||
MOV A,DPH
|
||
ADDC A,#-0x1
|
||
MOV DPH,A
|
||
??OnBoard_stack_used_0:
|
||
CLR C
|
||
MOV A,#SFB(XSTACK) & 0xff
|
||
SUBB A,DPL
|
||
MOV A,#(SFB(XSTACK) >> 8) & 0xff
|
||
SUBB A,DPH
|
||
JNC ??OnBoard_stack_used_3
|
||
MOVX A,@DPTR
|
||
XRL A,#0xcd
|
||
JNZ ??OnBoard_stack_used_1
|
||
INC R0
|
||
MOV A,R0
|
||
CLR C
|
||
SUBB A,#0xc
|
||
JC ??OnBoard_stack_used_2
|
||
MOV A,DPL
|
||
ADD A,#0xc
|
||
MOV DPL,A
|
||
JNC ??OnBoard_stack_used_3
|
||
INC DPH
|
||
// 306 }
|
||
// 307
|
||
// 308 return (uint16)(CSTACK_END - ptr + 1);
|
||
??OnBoard_stack_used_3:
|
||
MOV A,#(SFE(XSTACK) + 255) & 0xff
|
||
CLR C
|
||
SUBB A,DPL
|
||
MOV R0,A
|
||
MOV A,#((SFE(XSTACK) - 1) >> 8) & 0xff
|
||
SUBB A,DPH
|
||
MOV R1,A
|
||
MOV A,R0
|
||
ADD A,#0x1
|
||
MOV R2,A
|
||
CLR A
|
||
ADDC A,R1
|
||
MOV R3,A
|
||
LJMP ?Subroutine1 & 0xFFFF
|
||
// 309 }
|
||
CFI EndBlock cfiBlock6
|
||
// 310
|
||
// 311 /*********************************************************************
|
||
// 312 * @fn _itoa
|
||
// 313 *
|
||
// 314 * @brief convert a 16bit number to ASCII
|
||
// 315 *
|
||
// 316 * @param num -
|
||
// 317 * buf -
|
||
// 318 * radix -
|
||
// 319 *
|
||
// 320 * @return void
|
||
// 321 *
|
||
// 322 *********************************************************************/
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 323 void _itoa(uint16 num, uint8 *buf, uint8 radix)
|
||
_itoa:
|
||
CFI Block cfiBlock7 Using cfiCommon0
|
||
CFI Function _itoa
|
||
CODE
|
||
// 324 {
|
||
REQUIRE ?V0
|
||
REQUIRE ?V1
|
||
REQUIRE ?V2
|
||
REQUIRE ?V3
|
||
REQUIRE ?V4
|
||
REQUIRE ?V5
|
||
MOV A,#-0xe
|
||
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 V5 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-14)))
|
||
CFI CFA_SP SP+0
|
||
CFI CFA_XSP16 add(XSP16, 14)
|
||
; Saved register size: 14
|
||
; Auto size: 5
|
||
MOV A,#-0x5
|
||
LCALL ?ALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 19)
|
||
MOV A,R2
|
||
MOV R6,A
|
||
MOV A,R3
|
||
MOV R7,A
|
||
MOV ?V0,R1
|
||
// 325 char c,i;
|
||
// 326 uint8 *p, rst[5];
|
||
// 327
|
||
// 328 p = rst;
|
||
MOV R0,?XSP + 0
|
||
MOV R1,?XSP + 1
|
||
MOV ?V4,R0
|
||
MOV ?V5,R1
|
||
// 329 for ( i=0; i<5; i++,p++ )
|
||
MOV ?V1,#0x0
|
||
// 330 {
|
||
// 331 c = num % radix; // Isolate a digit
|
||
??_itoa_0:
|
||
MOV A,R6
|
||
MOV R0,A
|
||
MOV A,R7
|
||
MOV R1,A
|
||
MOV R2,?V0
|
||
MOV R3,#0x0
|
||
LCALL ?US_DIV_MOD
|
||
MOV A,R2
|
||
MOV R0,A
|
||
// 332 *p = c + (( c < 10 ) ? '0' : '7'); // Convert to Ascii
|
||
SUBB A,#0xa
|
||
JNC ??_itoa_1
|
||
MOV R1,#0x30
|
||
SJMP ??_itoa_2
|
||
??_itoa_1:
|
||
MOV R1,#0x37
|
||
??_itoa_2:
|
||
MOV A,R2
|
||
ADD A,R1
|
||
MOV DPL,?V4
|
||
MOV DPH,?V5
|
||
MOVX @DPTR,A
|
||
// 333 num /= radix;
|
||
MOV A,R6
|
||
MOV R0,A
|
||
MOV A,R7
|
||
MOV R1,A
|
||
MOV R2,?V0
|
||
MOV R3,#0x0
|
||
LCALL ?US_DIV_MOD
|
||
MOV ?V2,R0
|
||
MOV ?V3,R1
|
||
MOV R6,?V2
|
||
MOV R7,?V3
|
||
// 334 if ( !num )
|
||
MOV A,R0
|
||
ORL A,R7
|
||
JZ ??_itoa_3
|
||
// 335 break;
|
||
// 336 }
|
||
INC ?V1
|
||
INC DPTR
|
||
MOV ?V4,DPL
|
||
MOV ?V5,DPH
|
||
MOV A,?V1
|
||
SUBB A,#0x5
|
||
JC ??_itoa_0
|
||
// 337
|
||
// 338 for ( c=0 ; c<=i; c++ )
|
||
??_itoa_3:
|
||
MOV R0,#0x0
|
||
// 339 *buf++ = *p--; // Reverse character order
|
||
??_itoa_4:
|
||
MOV DPL,?V4
|
||
MOV DPH,?V5
|
||
MOVX A,@DPTR
|
||
MOV DPL,R4
|
||
MOV DPH,R5
|
||
MOVX @DPTR,A
|
||
MOV A,?V4
|
||
ADD A,#-0x1
|
||
MOV ?V4,A
|
||
MOV A,?V5
|
||
ADDC A,#-0x1
|
||
MOV ?V5,A
|
||
INC DPTR
|
||
MOV R4,DPL
|
||
MOV R5,DPH
|
||
INC R0
|
||
MOV A,?V1
|
||
CLR C
|
||
SUBB A,R0
|
||
JNC ??_itoa_4
|
||
// 340
|
||
// 341 *buf = '\0';
|
||
CLR A
|
||
MOVX @DPTR,A
|
||
// 342 }
|
||
MOV A,#0x5
|
||
LCALL ?DEALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 14)
|
||
MOV R7,#0x6
|
||
LJMP ?BANKED_LEAVE_XDATA
|
||
CFI EndBlock cfiBlock7
|
||
// 343
|
||
// 344 /*********************************************************************
|
||
// 345 * @fn Onboard_rand
|
||
// 346 *
|
||
// 347 * @brief Random number generator
|
||
// 348 *
|
||
// 349 * @param none
|
||
// 350 *
|
||
// 351 * @return uint16 - new random number
|
||
// 352 *
|
||
// 353 *********************************************************************/
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 354 uint16 Onboard_rand( void )
|
||
Onboard_rand:
|
||
CFI Block cfiBlock8 Using cfiCommon0
|
||
CFI Function Onboard_rand
|
||
CODE
|
||
// 355 {
|
||
FUNCALL Onboard_rand, macMcuRandomWord
|
||
LOCFRAME ISTACK, 2, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 0, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 2, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 0, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
PUSH DPL
|
||
CFI DPL0 Frame(CFA_SP, 4)
|
||
CFI CFA_SP SP+-4
|
||
PUSH DPH
|
||
CFI DPH0 Frame(CFA_SP, 5)
|
||
CFI CFA_SP SP+-5
|
||
; Saved register size: 2
|
||
; Auto size: 0
|
||
// 356 return ( MAC_RADIO_RANDOM_WORD() );
|
||
; Setup parameters for call to function macMcuRandomWord
|
||
LCALL `??macMcuRandomWord::?relay`; Banked call to: macMcuRandomWord
|
||
LJMP ?Subroutine1 & 0xFFFF
|
||
// 357 }
|
||
CFI EndBlock cfiBlock8
|
||
// 358
|
||
// 359 /*********************************************************************
|
||
// 360 * @fn Onboard_wait
|
||
// 361 *
|
||
// 362 * @brief Delay wait
|
||
// 363 *
|
||
// 364 * @param uint16 - time to wait
|
||
// 365 *
|
||
// 366 * @return none
|
||
// 367 *
|
||
// 368 *********************************************************************/
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 369 void Onboard_wait( uint16 timeout )
|
||
Onboard_wait:
|
||
CFI Block cfiBlock9 Using cfiCommon0
|
||
CFI Function Onboard_wait
|
||
CODE
|
||
// 370 {
|
||
; Saved register size: 0
|
||
; Auto size: 0
|
||
SJMP ??Onboard_wait_0
|
||
// 371 while (timeout--)
|
||
// 372 {
|
||
// 373 asm("NOP");
|
||
??Onboard_wait_1:
|
||
NOP
|
||
// 374 asm("NOP");
|
||
NOP
|
||
// 375 asm("NOP");
|
||
NOP
|
||
// 376 }
|
||
??Onboard_wait_0:
|
||
MOV A,R2
|
||
MOV R0,A
|
||
MOV A,R3
|
||
MOV R1,A
|
||
MOV A,R0
|
||
ADD A,#-0x1
|
||
DEC R2
|
||
MOV A,R1
|
||
ADDC A,#-0x1
|
||
MOV R3,A
|
||
MOV A,R0
|
||
ORL A,R1
|
||
JNZ ??Onboard_wait_1
|
||
// 377 }
|
||
LJMP ?BRET
|
||
CFI EndBlock cfiBlock9
|
||
// 378
|
||
// 379 /*********************************************************************
|
||
// 380 * @fn Onboard_soft_reset
|
||
// 381 *
|
||
// 382 * @brief Effect a soft reset.
|
||
// 383 *
|
||
// 384 * @param none
|
||
// 385 *
|
||
// 386 * @return none
|
||
// 387 *
|
||
// 388 *********************************************************************/
|
||
|
||
RSEG NEAR_CODE:CODE:NOROOT(0)
|
||
// 389 __near_func void Onboard_soft_reset( void )
|
||
Onboard_soft_reset:
|
||
CFI Block cfiBlock10 Using cfiCommon1
|
||
CFI Function Onboard_soft_reset
|
||
CODE
|
||
// 390 {
|
||
; Saved register size: 0
|
||
; Auto size: 0
|
||
// 391 HAL_DISABLE_INTERRUPTS();
|
||
CLR 0xa8.7
|
||
// 392 // Abort all DMA channels to insure that ongoing operations do not
|
||
// 393 // interfere with re-configuration.
|
||
// 394 DMAARM = 0x80 | 0x1F;
|
||
MOV 0xd6,#-0x61
|
||
// 395 asm("LJMP 0x0");
|
||
LJMP 0x0
|
||
// 396 }
|
||
RET
|
||
CFI EndBlock cfiBlock10
|
||
REQUIRE _A_IEN0
|
||
REQUIRE DMAARM
|
||
// 397
|
||
// 398 /*********************************************************************
|
||
// 399 * EXTERNAL I/O FUNCTIONS
|
||
// 400 *
|
||
// 401 * User defined functions to control external devices. Add your code
|
||
// 402 * to the following functions to control devices wired to DB outputs.
|
||
// 403 *
|
||
// 404 *********************************************************************/
|
||
// 405
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 406 void BigLight_On( void )
|
||
BigLight_On:
|
||
CFI Block cfiBlock11 Using cfiCommon0
|
||
CFI Function BigLight_On
|
||
CODE
|
||
// 407 {
|
||
; Saved register size: 0
|
||
; Auto size: 0
|
||
// 408 // Put code here to turn on an external light
|
||
// 409 }
|
||
LJMP ?BRET
|
||
CFI EndBlock cfiBlock11
|
||
// 410
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 411 void BigLight_Off( void )
|
||
BigLight_Off:
|
||
CFI Block cfiBlock12 Using cfiCommon0
|
||
CFI Function BigLight_Off
|
||
CODE
|
||
// 412 {
|
||
; Saved register size: 0
|
||
; Auto size: 0
|
||
// 413 // Put code here to turn off an external light
|
||
// 414 }
|
||
LJMP ?BRET
|
||
CFI EndBlock cfiBlock12
|
||
// 415
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 416 void BuzzerControl( uint8 on )
|
||
BuzzerControl:
|
||
CFI Block cfiBlock13 Using cfiCommon0
|
||
CFI Function BuzzerControl
|
||
CODE
|
||
// 417 {
|
||
; Saved register size: 0
|
||
; Auto size: 0
|
||
// 418 // Put code here to turn a buzzer on/off
|
||
// 419 (void)on;
|
||
// 420 }
|
||
LJMP ?BRET
|
||
CFI EndBlock cfiBlock13
|
||
// 421
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 422 void Dimmer( uint8 lvl )
|
||
Dimmer:
|
||
CFI Block cfiBlock14 Using cfiCommon0
|
||
CFI Function Dimmer
|
||
CODE
|
||
// 423 {
|
||
; Saved register size: 0
|
||
; Auto size: 0
|
||
// 424 // Put code here to control a dimmer
|
||
// 425 (void)lvl;
|
||
// 426 }
|
||
LJMP ?BRET
|
||
CFI EndBlock cfiBlock14
|
||
// 427
|
||
// 428 // No dip switches on this board
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 429 uint8 GetUserDipSw( void )
|
||
GetUserDipSw:
|
||
CFI Block cfiBlock15 Using cfiCommon0
|
||
CFI Function GetUserDipSw
|
||
CODE
|
||
// 430 {
|
||
; Saved register size: 0
|
||
; Auto size: 0
|
||
// 431 return 0;
|
||
MOV R1,#0x0
|
||
LJMP ?BRET
|
||
// 432 }
|
||
CFI EndBlock cfiBlock15
|
||
|
||
RSEG XDATA_ID:CODE:NOROOT(0)
|
||
`?<Initializer for registeredKeysTaskID>`:
|
||
DATA8
|
||
DB 255
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??InitBoard::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 InitBoard
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??RegisterForKeys::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 RegisterForKeys
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??OnBoard_SendKeys::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 OnBoard_SendKeys
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??OnBoard_KeyCallback::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 OnBoard_KeyCallback
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??OnBoard_stack_used::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 OnBoard_stack_used
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??_itoa::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 _itoa
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??Onboard_rand::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 Onboard_rand
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??Onboard_wait::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 Onboard_wait
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??BigLight_On::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 BigLight_On
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??BigLight_Off::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 BigLight_Off
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??BuzzerControl::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 BuzzerControl
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??Dimmer::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 Dimmer
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??GetUserDipSw::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 GetUserDipSw
|
||
|
||
RSEG XSTACK:DATA:REORDER:NOROOT(0)
|
||
|
||
END
|
||
// 433
|
||
// 434 /*********************************************************************
|
||
// 435 *********************************************************************/
|
||
//
|
||
// 442 bytes in segment BANKED_CODE
|
||
// 78 bytes in segment BANK_RELAYS
|
||
// 8 bytes in segment IEEE_ADDRESS_SPACE
|
||
// 16 bytes in segment LOCK_BITS_ADDRESS_SPACE
|
||
// 9 bytes in segment NEAR_CODE
|
||
// 1 932 bytes in segment RESERVED_ADDRESS_SPACE
|
||
// 3 bytes in segment SFR_AN
|
||
// 1 byte in segment XDATA_I
|
||
// 1 byte in segment XDATA_ID
|
||
// 8 bytes in segment XDATA_Z
|
||
//
|
||
// 88 bytes of CODE memory
|
||
// 0 bytes of DATA memory (+ 3 bytes shared)
|
||
// 442 bytes of HUGECODE memory
|
||
// 1 965 bytes of XDATA memory
|
||
//
|
||
//Errors: none
|
||
//Warnings: none
|