hal_assert.s51
来自「TI的基于ZIGBEE2006的协议栈」· S51 代码 · 共 1,013 行 · 第 1/3 页
S51
1,013 行
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
EXTERN macRxActive
EXTERN macTxActive
// C:\Texas Instruments\ZStack-1.4.2\Components\hal\common\hal_assert.c
// 1 /**************************************************************************************************
// 2 Filename:
// 3 Revised: $Date: 2007-03-29 11:10:56 -0700 (Thu, 29 Mar 2007) $
// 4 Revision: $Revision: 13891 $
// 5
// 6 Description:
// 7
// 8 Describe the purpose and contents of the file.
// 9
// 10 Copyright (c) 2006 by Texas Instruments, Inc.
// 11 All Rights Reserved. Permission to use, reproduce, copy, prepare
// 12 derivative works, modify, distribute, perform, display or sell this
// 13 software and/or its documentation for any purpose is prohibited
// 14 without the express written consent of Texas Instruments, Inc.
// 15 **************************************************************************************************/
// 16
// 17
// 18 /* ------------------------------------------------------------------------------------------------
// 19 * Includes
// 20 * ------------------------------------------------------------------------------------------------
// 21 */
// 22 #include "hal_assert.h"
// 23 #include "hal_types.h"
// 24 #include "hal_board.h"
ASEGN SFR_AN:DATA:NOROOT,08fH
// unsigned char volatile __sfr P0INP
P0INP:
DS 1
ASEGN SFR_AN:DATA:NOROOT,091H
// unsigned char volatile __sfr RFIM
RFIM:
DS 1
ASEGN SFR_AN:DATA:NOROOT,0feH
// unsigned char volatile __sfr P1DIR
P1DIR:
DS 1
// 25 #include "hal_defs.h"
// 26 #include "hal_mcu.h"
// 27
// 28 /* for access to debug data */
// 29 #include "mac_rx.h"
// 30 #include "mac_tx.h"
// 31
// 32
// 33 /* ------------------------------------------------------------------------------------------------
// 34 * Local Prototypes
// 35 * ------------------------------------------------------------------------------------------------
// 36 */
// 37 void halAssertHazardLights(void);
// 38
// 39
// 40 /**************************************************************************************************
// 41 * @fn halAssertHandler
// 42 *
// 43 * @brief Logic to handle an assert.
// 44 *
// 45 * @param none
// 46 *
// 47 * @return none
// 48 **************************************************************************************************
// 49 */
RSEG BANKED_CODE:CODE:NOROOT(0)
// 50 void halAssertHandler(void)
halAssertHandler:
CFI Block cfiBlock0 Using cfiCommon0
CFI Function halAssertHandler
// 51 {
FUNCALL halAssertHandler, halAssertHazardLights
LOCFRAME ISTACK, 2, STACK
ARGFRAME ISTACK, 2, STACK
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
// 52 /* execute code that handles asserts */
// 53 #ifdef ASSERT_RESET
// 54 HAL_SYSTEM_RESET();
// 55 #else
// 56 halAssertHazardLights();
; Setup parameters for call to function halAssertHazardLights
MOV DPTR,#(halAssertHazardLights & 0xffff)
MOV A,#((halAssertHazardLights >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 57 #endif
// 58
// 59 }
POP DPH
CFI DPH0 SameValue
CFI CFA_SP SP+-4
POP DPL
CFI DPL0 SameValue
CFI CFA_SP SP+-3
LJMP ?BRET
CFI EndBlock cfiBlock0
// 60
// 61
// 62 /**************************************************************************************************
// 63 * @fn halAssertHazardLights
// 64 *
// 65 * @brief Blink LEDs to indicate an error.
// 66 *
// 67 * @param none
// 68 *
// 69 * @return none
// 70 **************************************************************************************************
// 71 */
RSEG BANKED_CODE:CODE:NOROOT(0)
// 72 void halAssertHazardLights(void)
halAssertHazardLights:
CFI Block cfiBlock1 Using cfiCommon0
CFI Function halAssertHazardLights
// 73 {
MOV A,#-0xc
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 V3 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 12)
; Saved register size: 12
; Auto size: 9
MOV A,#-0x9
LCALL ?ALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 21)
// 74 enum
// 75 {
// 76 DEBUG_DATA_RSTACK_HIGH_OFS,
// 77 DEBUG_DATA_RSTACK_LOW_OFS,
// 78 DEBUG_DATA_TX_ACTIVE_OFS,
// 79 DEBUG_DATA_RX_ACTIVE_OFS,
// 80 DEBUG_DATA_INT_MASK_OFS,
// 81 DEBUG_DATA_SIZE
// 82 };
// 83
// 84 uint8 buttonHeld;
// 85 uint8 debugData[DEBUG_DATA_SIZE];
// 86
// 87 /* disable all interrupts before anything else */
// 88 HAL_DISABLE_INTERRUPTS();
CLR 0xa8.7
// 89
// 90 /*-------------------------------------------------------------------------------
// 91 * Initialize LEDs and turn them off.
// 92 */
// 93 HAL_BOARD_INIT();
ORL 0xfe,#0x2
ORL 0xfe,#0x1
ORL 0x8f,#0x20
// 94
// 95 HAL_TURN_OFF_LED1();
SETB 0x90.1
// 96 HAL_TURN_OFF_LED2();
SETB 0x90.0
// 97 HAL_TURN_OFF_LED3();
SETB 0x90.0
LJMP ??halAssertHazardLights_0 & 0xFFFF
// 98 HAL_TURN_OFF_LED4();
// 99
// 100 /*-------------------------------------------------------------------------------
// 101 * Master infinite loop.
// 102 */
// 103 for (;;)
// 104 {
// 105 buttonHeld = 0;
// 106
// 107 /*-------------------------------------------------------------------------------
// 108 * "Hazard lights" loop. A held keypress will exit this loop.
// 109 */
// 110 do
// 111 {
// 112 HAL_LED_BLINK_DELAY();
// 113
// 114 /* toggle LEDS, the #ifdefs are in case HAL has logically remapped non-existent LEDs */
// 115 #if (HAL_NUM_LEDS >= 1)
// 116 HAL_TOGGLE_LED1();
// 117 #if (HAL_NUM_LEDS >= 2)
// 118 HAL_TOGGLE_LED2();
// 119 #if (HAL_NUM_LEDS >= 3)
// 120 HAL_TOGGLE_LED3();
// 121 #if (HAL_NUM_LEDS >= 4)
// 122 HAL_TOGGLE_LED4();
// 123 #endif
// 124 #endif
// 125 #endif
// 126 #endif
// 127
// 128 /* escape hatch to continue execution, set escape to '1' to continue execution */
// 129 {
// 130 static uint8 escape = 0;
// 131 if (escape)
// 132 {
// 133 escape = 0;
// 134 return;
// 135 }
// 136 }
// 137
// 138 /* break out of loop if button is held long enough */
// 139 if (HAL_PUSH_BUTTON1())
// 140 {
// 141 buttonHeld++;
??halAssertHazardLights_1:
INC R2
// 142 }
// 143 else
// 144 {
// 145 buttonHeld = 0;
// 146 }
// 147 }
// 148 while (buttonHeld != 10); /* loop until button is held specified number of loops */
MOV A,#0xa
XRL A,R2
JZ ??halAssertHazardLights_2
??halAssertHazardLights_3:
MOV DPTR,#__Constant_0
MOV R0,#?V0 + 0
LCALL ?L_MOV_X
MOV A,#0x5
LCALL ?XSTACK_DISP0_8
MOV R0,#?V0 + 0
LCALL ?L_MOV_TO_X
SJMP ??halAssertHazardLights_4
??halAssertHazardLights_5:
MOV DPTR,#__Constant_1
MOV R0,#?V0 + 0
LCALL ?L_MOV_X
MOV A,#0x5
LCALL ?XSTACK_DISP0_8
MOV R0,#?V0 + 0
LCALL ?L_ADD_TO_X
??halAssertHazardLights_4:
MOV A,#0x5
LCALL ?XSTACK_DISP0_8
PUSH DPL
CFI CFA_SP SP+-1
PUSH DPH
CFI CFA_SP SP+-2
MOV DPTR,#__Constant_5800
MOV R0,#?V0 + 0
LCALL ?L_MOV_X
POP DPH
CFI CFA_SP SP+-1
POP DPL
CFI CFA_SP SP+0
MOV R0,#?V0 + 0
LCALL ?UL_GT_X
JC ??halAssertHazardLights_5
MOV C,0x90.1
JNC ??halAssertHazardLights_6
CLR 0x90.1
SJMP ??halAssertHazardLights_7
??halAssertHazardLights_6:
SETB 0x90.1
??halAssertHazardLights_7:
MOV C,0x90.0
JNC ??halAssertHazardLights_8
CLR 0x90.0
SJMP ??halAssertHazardLights_9
??halAssertHazardLights_8:
SETB 0x90.0
??halAssertHazardLights_9:
MOV DPTR,#??escape
MOVX A,@DPTR
JZ ??halAssertHazardLights_10
CLR A
MOVX @DPTR,A
MOV A,#0x9
LCALL ?DEALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 12)
MOV R7,#0x4
LJMP ?BANKED_LEAVE_XDATA
CFI CFA_XSP16 add(XSP16, 21)
??halAssertHazardLights_10:
MOV C,0x80.1
JNC ??halAssertHazardLights_1
??halAssertHazardLights_11:
MOV R2,#0x0
SJMP ??halAssertHazardLights_3
// 149
// 150 /*-------------------------------------------------------------------------------
// 151 * Just exited from "hazard lights" loop.
// 152 */
// 153
// 154 /* turn off all LEDs */
// 155 HAL_TURN_OFF_LED1();
??halAssertHazardLights_2:
SETB 0x90.1
// 156 HAL_TURN_OFF_LED2();
SETB 0x90.0
// 157 HAL_TURN_OFF_LED3();
SETB 0x90.0
// 158 HAL_TURN_OFF_LED4();
SETB 0x90.1
// 159
// 160 /* wait for button release */
// 161 HAL_DEBOUNCE(!HAL_PUSH_BUTTON1());
MOV R0,#0x0
MOV R1,#0x0
??halAssertHazardLights_12:
MOV C,0x80.1
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?