/////////////////////////////////////////////////////////////////////////////// // // 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 “AS IS” 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