979 lines
38 KiB
Plaintext
979 lines
38 KiB
Plaintext
///////////////////////////////////////////////////////////////////////////////
|
||
//
|
||
// IAR C/C++ Compiler V10.30.1.6000 for 8051 23/Aug/2019 12:13:00
|
||
// 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\Components\mt\DebugTrace.c
|
||
// Command line =
|
||
// -f C:\Users\VULCAN\AppData\Local\Temp\EWBF5D.tmp
|
||
// (E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Components\mt\DebugTrace.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\DebugTrace.s51
|
||
//
|
||
///////////////////////////////////////////////////////////////////////////////
|
||
|
||
NAME DebugTrace
|
||
|
||
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 ?V2
|
||
EXTERN ?V3
|
||
EXTERN ?V4
|
||
EXTERN ?V5
|
||
EXTERN ?V1
|
||
EXTERN ?BANKED_ENTER_XDATA
|
||
EXTERN ?BANKED_LEAVE_XDATA
|
||
EXTERN ?BDISPATCH
|
||
EXTERN ?DEALLOC_XSTACK8
|
||
EXTERN ?PUSH_XSTACK_I_THREE
|
||
EXTERN ?XSTACK_DISP0_8
|
||
|
||
PUBLIC `??debug_msg::?relay`
|
||
FUNCTION `??debug_msg::?relay`,0203H
|
||
PUBLIC `??debug_str::?relay`
|
||
FUNCTION `??debug_str::?relay`,0203H
|
||
PUBLIC debug_msg
|
||
FUNCTION debug_msg,0a1203H
|
||
ARGFRAME XSTACK, 4, STACK
|
||
LOCFRAME ISTACK, 1, STACK
|
||
LOCFRAME XSTACK, 14, STACK
|
||
PUBLIC debug_str
|
||
FUNCTION debug_str,0a1203H
|
||
ARGFRAME XSTACK, 0, STACK
|
||
LOCFRAME ISTACK, 1, STACK
|
||
LOCFRAME XSTACK, 17, 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` 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 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 cfiCommon1
|
||
|
||
osal_memcpy SYMBOL "osal_memcpy"
|
||
`??osal_memcpy::?relay` SYMBOL "?relay", osal_memcpy
|
||
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
|
||
osal_strlen SYMBOL "osal_strlen"
|
||
`??osal_strlen::?relay` SYMBOL "?relay", osal_strlen
|
||
debug_msg SYMBOL "debug_msg"
|
||
`??debug_msg::?relay` SYMBOL "?relay", debug_msg
|
||
debug_str SYMBOL "debug_str"
|
||
`??debug_str::?relay` SYMBOL "?relay", debug_str
|
||
|
||
EXTERN `??osal_memcpy::?relay`
|
||
FUNCTION `??osal_memcpy::?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 `??osal_strlen::?relay`
|
||
FUNCTION `??osal_strlen::?relay`,00H
|
||
EXTERN MT_TaskID
|
||
EXTERN debugCompId
|
||
EXTERN debugThreshold
|
||
EXTERN osal_memcpy
|
||
FUNCTION osal_memcpy,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 17, 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, 14, 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, 14, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
EXTERN osal_strlen
|
||
FUNCTION osal_strlen,0202H
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 14, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
|
||
// E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Components\mt\DebugTrace.c
|
||
// 1 /**************************************************************************************************
|
||
// 2 Filename: DebugTrace.c
|
||
// 3 Revised: $Date: 2008-01-17 12:22:57 -0800 (Thu, 17 Jan 2008) $
|
||
// 4 Revision: $Revision: 16223 $
|
||
// 5
|
||
// 6
|
||
// 7 Description: This interface provides quick one-function-call functions to
|
||
// 8 Monitor and Test reporting mechanisms.
|
||
// 9
|
||
// 10
|
||
// 11 Copyright 2007 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 #if defined( MT_TASK ) || defined( APP_DEBUG )
|
||
// 44
|
||
// 45 /*********************************************************************
|
||
// 46 * INCLUDES
|
||
// 47 */
|
||
// 48 #include "ZComDef.h"
|
||
// 49 #include "OSAL.h"
|
||
// 50 #include "MT.h"
|
||
// 51 #include "MT_TASK.h"
|
||
// 52 #include "MT_DEBUG.h"
|
||
// 53 #include "DebugTrace.h"
|
||
// 54
|
||
// 55 #if defined ( APP_DEBUG )
|
||
// 56 #include "DebugApp.h"
|
||
// 57 #endif
|
||
// 58
|
||
// 59 /*********************************************************************
|
||
// 60 * MACROS
|
||
// 61 */
|
||
// 62
|
||
// 63 /*********************************************************************
|
||
// 64 * CONSTANTS
|
||
// 65 */
|
||
// 66
|
||
// 67
|
||
// 68 /*********************************************************************
|
||
// 69 * TYPEDEFS
|
||
// 70 */
|
||
// 71
|
||
// 72 /*********************************************************************
|
||
// 73 * GLOBAL VARIABLES
|
||
// 74 */
|
||
// 75
|
||
// 76 /*********************************************************************
|
||
// 77 * EXTERNAL VARIABLES
|
||
// 78 */
|
||
// 79
|
||
// 80 /*********************************************************************
|
||
// 81 * EXTERNAL FUNCTIONS
|
||
// 82 */
|
||
// 83
|
||
// 84 /*********************************************************************
|
||
// 85 * LOCAL VARIABLES
|
||
// 86 */
|
||
// 87
|
||
// 88 /*********************************************************************
|
||
// 89 * LOCAL FUNCTIONS
|
||
// 90 */
|
||
// 91
|
||
// 92 /*********************************************************************
|
||
// 93 * @fn debug_msg
|
||
// 94 *
|
||
// 95 * @brief
|
||
// 96 *
|
||
// 97 * This feature allows modules to display debug information as
|
||
// 98 * applications execute in real-time. This feature will work similar
|
||
// 99 * to "printf()" but will output to the serial port for display in
|
||
// 100 * the Z-Test tool.
|
||
// 101 *
|
||
// 102 * This feature will most likely be compiled out in the production code
|
||
// 103 * to save code space.
|
||
// 104 *
|
||
// 105 * @param byte compID - Component ID
|
||
// 106 * @param byte severity - CRITICAL(0x01), ERROR(0x02), INFORMATION(0x03)
|
||
// 107 * or TRACE(0x04)
|
||
// 108 * @param byte numParams - number of parameter fields (param1-3)
|
||
// 109 * @param UINT16 param1 - user defined data
|
||
// 110 * @param UINT16 param2 - user defined data
|
||
// 111 * @param UINT16 param3 - user defined data
|
||
// 112 *
|
||
// 113 * @return void
|
||
// 114 */
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 115 void debug_msg( byte compID, byte severity, byte numParams, UINT16 param1,
|
||
debug_msg:
|
||
CFI Block cfiBlock0 Using cfiCommon0
|
||
CFI Function debug_msg
|
||
CODE
|
||
// 116 UINT16 param2, UINT16 param3 )
|
||
// 117 {
|
||
FUNCALL debug_msg, osal_msg_allocate
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 14, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 14, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL debug_msg, osal_msg_send
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 14, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 14, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
REQUIRE ?V0
|
||
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: 0
|
||
MOV A,R1
|
||
MOV R6,A
|
||
MOV A,R2
|
||
MOV R7,A
|
||
MOV ?V0,R3
|
||
MOV ?V4,R4
|
||
MOV ?V5,R5
|
||
// 118
|
||
// 119 mtDebugMsg_t *mtDebugMsg;
|
||
// 120 UINT16 timestamp;
|
||
// 121
|
||
// 122 if ( debugThreshold == 0 || debugCompId != compID )
|
||
MOV DPTR,#debugThreshold
|
||
MOVX A,@DPTR
|
||
JZ ??debug_msg_0
|
||
MOV DPTR,#debugCompId
|
||
MOVX A,@DPTR
|
||
XRL A,R6
|
||
JZ ??debug_msg_1
|
||
// 123 return;
|
||
??debug_msg_2:
|
||
SJMP ??debug_msg_0
|
||
// 124
|
||
// 125 // Fill in the timestamp
|
||
// 126 timestamp = 0;
|
||
// 127
|
||
// 128 // Get a message buffer to build the debug message
|
||
// 129 mtDebugMsg = (mtDebugMsg_t *)osal_msg_allocate( sizeof( mtDebugMsg_t ) );
|
||
??debug_msg_1:
|
||
; Setup parameters for call to function osal_msg_allocate
|
||
MOV R2,#0xd
|
||
MOV R3,#0x0
|
||
LCALL `??osal_msg_allocate::?relay`; Banked call to: osal_msg_allocate
|
||
// 130 if ( mtDebugMsg )
|
||
MOV A,R2
|
||
ORL A,R3
|
||
JZ ??debug_msg_0
|
||
// 131 {
|
||
// 132 mtDebugMsg->hdr.event = CMD_DEBUG_MSG;
|
||
MOV DPL,R2
|
||
MOV DPH,R3
|
||
MOV A,#0x2
|
||
MOVX @DPTR,A
|
||
// 133 mtDebugMsg->compID = compID;
|
||
MOV A,R6
|
||
INC DPTR
|
||
INC DPTR
|
||
MOVX @DPTR,A
|
||
// 134 mtDebugMsg->severity = severity;
|
||
MOV A,R7
|
||
MOV DPL,R2
|
||
MOV DPH,R3
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
LCALL ?Subroutine2 & 0xFFFF
|
||
// 135 mtDebugMsg->numParams = numParams;
|
||
??CrossCallReturnLabel_2:
|
||
MOV A,?V0
|
||
LCALL ?Subroutine2 & 0xFFFF
|
||
// 136
|
||
// 137 mtDebugMsg->param1 = param1;
|
||
??CrossCallReturnLabel_3:
|
||
INC DPTR
|
||
MOV A,?V4
|
||
MOVX @DPTR,A
|
||
INC DPTR
|
||
MOV A,?V5
|
||
MOVX @DPTR,A
|
||
// 138 mtDebugMsg->param2 = param2;
|
||
MOV A,#0xe
|
||
LCALL ?XSTACK_DISP0_8
|
||
LCALL ?Subroutine1 & 0xFFFF
|
||
??CrossCallReturnLabel_0:
|
||
MOV A,R0
|
||
MOVX @DPTR,A
|
||
INC DPTR
|
||
MOV A,R1
|
||
MOVX @DPTR,A
|
||
// 139 mtDebugMsg->param3 = param3;
|
||
MOV A,#0x10
|
||
LCALL ?XSTACK_DISP0_8
|
||
LCALL ?Subroutine1 & 0xFFFF
|
||
??CrossCallReturnLabel_1:
|
||
INC DPTR
|
||
INC DPTR
|
||
MOV A,R0
|
||
MOVX @DPTR,A
|
||
INC DPTR
|
||
MOV A,R1
|
||
MOVX @DPTR,A
|
||
// 140 mtDebugMsg->timestamp = timestamp;
|
||
MOV A,R2
|
||
ADD A,#0xb
|
||
MOV DPL,A
|
||
CLR A
|
||
ADDC A,R3
|
||
MOV DPH,A
|
||
CLR A
|
||
MOVX @DPTR,A
|
||
INC DPTR
|
||
MOVX @DPTR,A
|
||
// 141
|
||
// 142 osal_msg_send( MT_TaskID, (uint8 *)mtDebugMsg );
|
||
; Setup parameters for call to function osal_msg_send
|
||
MOV DPTR,#MT_TaskID
|
||
MOVX A,@DPTR
|
||
MOV R1,A
|
||
LCALL `??osal_msg_send::?relay`; Banked call to: osal_msg_send
|
||
// 143 }
|
||
// 144
|
||
// 145 } /* debug_msg() */
|
||
??debug_msg_0:
|
||
CFI EndBlock cfiBlock0
|
||
REQUIRE ?Subroutine0
|
||
; // 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, 14)
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
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(-14)))
|
||
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V5 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,#0x6
|
||
LJMP ?BANKED_LEAVE_XDATA
|
||
CFI EndBlock cfiBlock1
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine2:
|
||
CFI Block cfiCond2 Using cfiCommon0
|
||
CFI Function debug_msg
|
||
CFI Conditional ??CrossCallReturnLabel_2
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-14)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V5 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, 14)
|
||
CFI Block cfiCond3 Using cfiCommon0
|
||
CFI (cfiCond3) Function debug_msg
|
||
CFI (cfiCond3) Conditional ??CrossCallReturnLabel_3
|
||
CFI (cfiCond3) R6 load(1, XDATA, add(CFA_XSP16, literal(-14)))
|
||
CFI (cfiCond3) VB load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI (cfiCond3) V0 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond3) V1 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond3) V2 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond3) V3 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond3) V4 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond3) V5 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, 14)
|
||
CFI Block cfiPicker4 Using cfiCommon1
|
||
CFI (cfiPicker4) NoFunction
|
||
CFI (cfiPicker4) Picker
|
||
MOVX @DPTR,A
|
||
MOV DPL,R2
|
||
MOV DPH,R3
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
RET
|
||
CFI EndBlock cfiCond2
|
||
CFI EndBlock cfiCond3
|
||
CFI EndBlock cfiPicker4
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
?Subroutine1:
|
||
CFI Block cfiCond5 Using cfiCommon0
|
||
CFI Function debug_msg
|
||
CFI Conditional ??CrossCallReturnLabel_0
|
||
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-14)))
|
||
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI V5 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, 14)
|
||
CFI Block cfiCond6 Using cfiCommon0
|
||
CFI (cfiCond6) Function debug_msg
|
||
CFI (cfiCond6) Conditional ??CrossCallReturnLabel_1
|
||
CFI (cfiCond6) R6 load(1, XDATA, add(CFA_XSP16, literal(-14)))
|
||
CFI (cfiCond6) VB load(1, XDATA, add(CFA_XSP16, literal(-13)))
|
||
CFI (cfiCond6) V0 load(1, XDATA, add(CFA_XSP16, literal(-12)))
|
||
CFI (cfiCond6) V1 load(1, XDATA, add(CFA_XSP16, literal(-11)))
|
||
CFI (cfiCond6) V2 load(1, XDATA, add(CFA_XSP16, literal(-10)))
|
||
CFI (cfiCond6) V3 load(1, XDATA, add(CFA_XSP16, literal(-9)))
|
||
CFI (cfiCond6) V4 load(1, XDATA, add(CFA_XSP16, literal(-8)))
|
||
CFI (cfiCond6) V5 load(1, XDATA, add(CFA_XSP16, literal(-7)))
|
||
CFI (cfiCond6) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
|
||
CFI (cfiCond6) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
|
||
CFI (cfiCond6) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
|
||
CFI (cfiCond6) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
|
||
CFI (cfiCond6) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
|
||
CFI (cfiCond6) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
|
||
CFI (cfiCond6) CFA_SP SP+-2
|
||
CFI (cfiCond6) CFA_XSP16 add(XSP16, 14)
|
||
CFI Block cfiPicker7 Using cfiCommon1
|
||
CFI (cfiPicker7) NoFunction
|
||
CFI (cfiPicker7) Picker
|
||
MOVX A,@DPTR
|
||
MOV R0,A
|
||
INC DPTR
|
||
MOVX A,@DPTR
|
||
MOV R1,A
|
||
MOV DPL,R2
|
||
MOV DPH,R3
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
RET
|
||
CFI EndBlock cfiCond5
|
||
CFI EndBlock cfiCond6
|
||
CFI EndBlock cfiPicker7
|
||
// 146
|
||
// 147 /*********************************************************************
|
||
// 148 * @fn debug_str
|
||
// 149 *
|
||
// 150 * @brief
|
||
// 151 *
|
||
// 152 * This feature allows modules to display a debug text string as
|
||
// 153 * applications execute in real-time. This feature will output to
|
||
// 154 * the serial port for display in the Z-Test tool.
|
||
// 155 *
|
||
// 156 * This feature will most likely be compiled out in the production
|
||
// 157 * code in order to save code space.
|
||
// 158 *
|
||
// 159 * @param byte *str_ptr - pointer to null-terminated string
|
||
// 160 *
|
||
// 161 * @return void
|
||
// 162 */
|
||
|
||
RSEG BANKED_CODE:HUGECODE:NOROOT(0)
|
||
// 163 void debug_str( byte *str_ptr )
|
||
debug_str:
|
||
CFI Block cfiBlock8 Using cfiCommon0
|
||
CFI Function debug_str
|
||
CODE
|
||
// 164 {
|
||
FUNCALL debug_str, osal_strlen
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 14, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 14, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL debug_str, osal_msg_allocate
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 14, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 14, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
FUNCALL debug_str, osal_memcpy
|
||
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 debug_str, osal_msg_send
|
||
LOCFRAME ISTACK, 0, STACK
|
||
LOCFRAME PSTACK, 0, STACK
|
||
LOCFRAME XSTACK, 14, STACK
|
||
LOCFRAME IOVERLAY, 0, STATIC
|
||
LOCFRAME DOVERLAY, 0, STATIC
|
||
ARGFRAME ISTACK, 0, STACK
|
||
ARGFRAME PSTACK, 0, STACK
|
||
ARGFRAME XSTACK, 14, STACK
|
||
ARGFRAME IOVERLAY, 0, STATIC
|
||
ARGFRAME DOVERLAY, 0, STATIC
|
||
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: 0
|
||
MOV ?V0,R2
|
||
MOV ?V1,R3
|
||
// 165 mtDebugStr_t *msg;
|
||
// 166 byte mln;
|
||
// 167 byte strLen;
|
||
// 168
|
||
// 169 // Text string length
|
||
// 170 strLen = (byte)osal_strlen( (void*)str_ptr );
|
||
; Setup parameters for call to function osal_strlen
|
||
LCALL `??osal_strlen::?relay`; Banked call to: osal_strlen
|
||
MOV A,R2
|
||
MOV ?V3,A
|
||
// 171
|
||
// 172 // Debug string message length
|
||
// 173 mln = sizeof ( mtDebugStr_t ) + strLen;
|
||
// 174
|
||
// 175 // Get a message buffer to build the debug message
|
||
// 176 msg = (mtDebugStr_t *)osal_msg_allocate( mln );
|
||
; Setup parameters for call to function osal_msg_allocate
|
||
MOV A,#0x5
|
||
ADD A,R2
|
||
MOV R2,A
|
||
MOV R3,#0x0
|
||
LCALL `??osal_msg_allocate::?relay`; Banked call to: osal_msg_allocate
|
||
MOV ?V4,R2
|
||
MOV ?V5,R3
|
||
MOV R6,?V4
|
||
MOV R7,?V5
|
||
// 177 if ( msg )
|
||
MOV A,R2
|
||
ORL A,R7
|
||
JZ ??debug_str_0
|
||
// 178 {
|
||
// 179 // Message type, length
|
||
// 180 msg->hdr.event = CMD_DEBUG_STR;
|
||
MOV DPL,R2
|
||
MOV DPH,R3
|
||
MOV A,#0x6
|
||
MOVX @DPTR,A
|
||
// 181 msg->strLen = strLen;
|
||
INC DPTR
|
||
INC DPTR
|
||
MOV A,?V3
|
||
MOVX @DPTR,A
|
||
// 182
|
||
// 183 // Append message, no terminator
|
||
// 184 msg->pString = (uint8 *)(msg+1);
|
||
MOV A,R2
|
||
ADD A,#0x5
|
||
MOV R2,A
|
||
CLR A
|
||
ADDC A,R7
|
||
MOV R3,A
|
||
MOV DPL,R6
|
||
MOV DPH,R7
|
||
INC DPTR
|
||
INC DPTR
|
||
INC DPTR
|
||
MOV A,R2
|
||
MOVX @DPTR,A
|
||
INC DPTR
|
||
MOV A,R3
|
||
MOVX @DPTR,A
|
||
// 185 osal_memcpy ( msg->pString, str_ptr, strLen );
|
||
; Setup parameters for call to function osal_memcpy
|
||
MOV ?V2,#0x0
|
||
MOV R0,#?V0
|
||
LCALL ?PUSH_XSTACK_I_THREE
|
||
CFI CFA_XSP16 add(XSP16, 17)
|
||
MOV R4,?V3
|
||
MOV R5,#0x0
|
||
LCALL `??osal_memcpy::?relay`; Banked call to: osal_memcpy
|
||
MOV A,#0x3
|
||
LCALL ?DEALLOC_XSTACK8
|
||
CFI CFA_XSP16 add(XSP16, 14)
|
||
// 186
|
||
// 187 osal_msg_send( MT_TaskID, (uint8 *)msg );
|
||
; Setup parameters for call to function osal_msg_send
|
||
MOV A,R6
|
||
MOV R2,A
|
||
MOV A,R7
|
||
MOV R3,A
|
||
MOV DPTR,#MT_TaskID
|
||
MOVX A,@DPTR
|
||
MOV R1,A
|
||
LCALL `??osal_msg_send::?relay`; Banked call to: osal_msg_send
|
||
// 188 }
|
||
// 189 } // debug_str()
|
||
??debug_str_0:
|
||
LJMP ?Subroutine0 & 0xFFFF
|
||
CFI EndBlock cfiBlock8
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??debug_msg::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 debug_msg
|
||
|
||
RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0)
|
||
`??debug_str::?relay`:
|
||
CODE
|
||
LCALL ?BDISPATCH
|
||
DATA24
|
||
DC24 debug_str
|
||
|
||
END
|
||
// 190
|
||
// 191 /*********************************************************************
|
||
// 192 *********************************************************************/
|
||
// 193 #endif // MT_TASK
|
||
//
|
||
// 259 bytes in segment BANKED_CODE
|
||
// 12 bytes in segment BANK_RELAYS
|
||
//
|
||
// 12 bytes of CODE memory
|
||
// 259 bytes of HUGECODE memory
|
||
//
|
||
//Errors: none
|
||
//Warnings: none
|