📄 hal_assert.lst
字号:
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();
\ 00000A C2AF CLR 0xa8.7
89
90 /*-------------------------------------------------------------------------------
91 * Initialize LEDs and turn them off.
92 */
93 HAL_BOARD_INIT();
\ 00000C 43FE01 ORL 0xfe,#0x1
\ 00000F 43FE08 ORL 0xfe,#0x8
\ 000012 438F20 ORL 0x8f,#0x20
94
95 HAL_TURN_OFF_LED1();
\ 000015 D290 SETB 0x90.0
96 HAL_TURN_OFF_LED2();
\ 000017 D293 SETB 0x90.3
97 HAL_TURN_OFF_LED3();
\ 000019 D293 SETB 0x90.3
\ 00001B 02.... 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:
\ 00001E 0A INC R2
142 }
143 else
144 {
145 buttonHeld = 0;
146 }
147 }
148 while (buttonHeld != 10); /* loop until button is held specified number of loops */
\ 00001F 740A MOV A,#0xa
\ 000021 6A XRL A,R2
\ 000022 6070 JZ ??halAssertHazardLights_2
\ ??halAssertHazardLights_3:
\ 000024 90.... MOV DPTR,#__Constant_0
\ 000027 78.. MOV R0,#?V0 + 0
\ 000029 12.... LCALL ?L_MOV_X
\ 00002C 7405 MOV A,#0x5
\ 00002E 12.... LCALL ?XSTACK_DISP0_8
\ 000031 78.. MOV R0,#?V0 + 0
\ 000033 12.... LCALL ?L_MOV_TO_X
\ 000036 8012 SJMP ??halAssertHazardLights_4
\ ??halAssertHazardLights_5:
\ 000038 90.... MOV DPTR,#__Constant_1
\ 00003B 78.. MOV R0,#?V0 + 0
\ 00003D 12.... LCALL ?L_MOV_X
\ 000040 7405 MOV A,#0x5
\ 000042 12.... LCALL ?XSTACK_DISP0_8
\ 000045 78.. MOV R0,#?V0 + 0
\ 000047 12.... LCALL ?L_ADD_TO_X
\ ??halAssertHazardLights_4:
\ 00004A 7405 MOV A,#0x5
\ 00004C 12.... LCALL ?XSTACK_DISP0_8
\ 00004F C082 PUSH DPL
\ 000051 C083 PUSH DPH
\ 000053 90.... MOV DPTR,#__Constant_5800
\ 000056 78.. MOV R0,#?V0 + 0
\ 000058 12.... LCALL ?L_MOV_X
\ 00005B D083 POP DPH
\ 00005D D082 POP DPL
\ 00005F 78.. MOV R0,#?V0 + 0
\ 000061 12.... LCALL ?UL_GT_X
\ 000064 40D2 JC ??halAssertHazardLights_5
\ 000066 A290 MOV C,0x90.0
\ 000068 5004 JNC ??halAssertHazardLights_6
\ 00006A C290 CLR 0x90.0
\ 00006C 8002 SJMP ??halAssertHazardLights_7
\ ??halAssertHazardLights_6:
\ 00006E D290 SETB 0x90.0
\ ??halAssertHazardLights_7:
\ 000070 A293 MOV C,0x90.3
\ 000072 5004 JNC ??halAssertHazardLights_8
\ 000074 C293 CLR 0x90.3
\ 000076 8002 SJMP ??halAssertHazardLights_9
\ ??halAssertHazardLights_8:
\ 000078 D293 SETB 0x90.3
\ ??halAssertHazardLights_9:
\ 00007A 90.... MOV DPTR,#??escape
\ 00007D E0 MOVX A,@DPTR
\ 00007E 600C JZ ??halAssertHazardLights_10
\ 000080 E4 CLR A
\ 000081 F0 MOVX @DPTR,A
\ 000082 7409 MOV A,#0x9
\ 000084 12.... LCALL ?DEALLOC_XSTACK8
\ 000087 7F04 MOV R7,#0x4
\ 000089 02.... LJMP ?BANKED_LEAVE_XDATA
\ ??halAssertHazardLights_10:
\ 00008C A281 MOV C,0x80.1
\ 00008E 508E JNC ??halAssertHazardLights_1
\ ??halAssertHazardLights_11:
\ 000090 7A00 MOV R2,#0x0
\ 000092 8090 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:
\ 000094 D290 SETB 0x90.0
156 HAL_TURN_OFF_LED2();
\ 000096 D293 SETB 0x90.3
157 HAL_TURN_OFF_LED3();
\ 000098 D293 SETB 0x90.3
158 HAL_TURN_OFF_LED4();
\ 00009A D290 SETB 0x90.0
159
160 /* wait for button release */
161 HAL_DEBOUNCE(!HAL_PUSH_BUTTON1());
\ 00009C 7800 MOV R0,#0x0
\ 00009E 7900 MOV R1,#0x0
\ ??halAssertHazardLights_12:
\ 0000A0 A281 MOV C,0x80.1
\ 0000A2 4004 JC ??halAssertHazardLights_13
\ 0000A4 7800 MOV R0,#0x0
\ 0000A6 7900 MOV R1,#0x0
\ ??halAssertHazardLights_13:
\ 0000A8 12.... LCALL ?Subroutine0 & 0xFFFF
\ ??CrossCallReturnLabel_0:
\ 0000AB 40F3 JC ??halAssertHazardLights_12
162
163 /*-------------------------------------------------------------------------------
164 * Load debug data into memory.
165 */
166 #ifdef HAL_MCU_AVR
167 {
168 uint8 * pStack;
169 pStack = (uint8 *) SP;
170 pStack++; /* point to return address on stack */
171 debugData[DEBUG_DATA_RSTACK_HIGH_OFS] = *pStack;
172 pStack++;
173 debugData[DEBUG_DATA_RSTACK_LOW_OFS] = *pStack;
174 }
175 debugData[DEBUG_DATA_INT_MASK_OFS] = EIMSK;
176 #endif
177
178 #ifdef HAL_MCU_CC2430
179 debugData[DEBUG_DATA_INT_MASK_OFS] = RFIM;
\ 0000AD E591 MOV A,0x91
\ 0000AF C0E0 PUSH A
\ 0000B1 7404 MOV A,#0x4
\ 0000B3 12.... LCALL ?XSTACK_DISP0_8
\ 0000B6 D0E0 POP A
\ 0000B8 F0 MOVX @DPTR,A
180 #endif
181
182 debugData[DEBUG_DATA_TX_ACTIVE_OFS] = macTxActive;
\ 0000B9 90.... MOV DPTR,#macTxActive
\ 0000BC E0 MOVX A,@DPTR
\ 0000BD C0E0 PUSH A
\ 0000BF 7402 MOV A,#0x2
\ 0000C1 12.... LCALL ?XSTACK_DISP0_8
\ 0000C4 D0E0 POP A
\ 0000C6 F0 MOVX @DPTR,A
183 debugData[DEBUG_DATA_RX_ACTIVE_OFS] = macRxActive;
\ 0000C7 90.... MOV DPTR,#macRxActive
\ 0000CA E0 MOVX A,@DPTR
\ 0000CB C0E0 PUSH A
\ 0000CD 7403 MOV A,#0x3
\ 0000CF 12.... LCALL ?XSTACK_DISP0_8
\ 0000D2 D0E0 POP A
\ 0000D4 F0 MOVX @DPTR,A
184
185 /* initialize for data dump loop */
186 {
187 uint8 iBit;
188 uint8 iByte;
189
190 iBit = 0;
\ 0000D5 7C00 MOV R4,#0x0
191 iByte = 0;
\ 0000D7 7B00 MOV R3,#0x0
192
193 /*-------------------------------------------------------------------------------
194 * Data dump loop. A button press cycles data bits to an LED.
195 */
196 while (iByte < DEBUG_DATA_SIZE)
197 {
198 /* wait for key press */
199 while(!HAL_PUSH_BUTTON1());
\ ??halAssertHazardLights_14:
\ 0000D9 A281 MOV C,0x80.1
\ 0000DB 40FC JC ??halAssertHazardLights_14
200
201 /* turn on all LEDs for first bit of byte, turn on three LEDs if not first bit */
202 HAL_TURN_ON_LED1();
\ 0000DD C290 CLR 0x90.0
203 HAL_TURN_ON_LED2();
\ 0000DF C293 CLR 0x90.3
204 HAL_TURN_ON_LED3();
\ 0000E1 C293 CLR 0x90.3
205 if (iBit == 0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -