📄 hal_assert.lst
字号:
208 }
209 else
210 {
211 HAL_TURN_OFF_LED4();
\ ??halAssertHazardLights_15:
\ 0000EF D290 SETB 0x90.0
212 }
213
214 /* wait for debounced key release */
215 HAL_DEBOUNCE(!HAL_PUSH_BUTTON1());
\ ??halAssertHazardLights_16:
\ 0000F1 7800 MOV R0,#0x0
\ 0000F3 7900 MOV R1,#0x0
\ ??halAssertHazardLights_17:
\ 0000F5 A281 MOV C,0x80.1
\ 0000F7 4004 JC ??halAssertHazardLights_18
\ 0000F9 7800 MOV R0,#0x0
\ 0000FB 7900 MOV R1,#0x0
\ ??halAssertHazardLights_18:
\ 0000FD 12.... LCALL ?Subroutine0 & 0xFFFF
\ ??CrossCallReturnLabel_1:
\ 000100 40F3 JC ??halAssertHazardLights_17
216
217 /* turn off all LEDs */
218 HAL_TURN_OFF_LED1();
\ 000102 D290 SETB 0x90.0
219 HAL_TURN_OFF_LED2();
\ 000104 D291 SETB 0x90.1
220 HAL_TURN_OFF_LED3();
\ 000106 D291 SETB 0x90.1
221 HAL_TURN_OFF_LED4();
\ 000108 D290 SETB 0x90.0
222
223 /* output value of data bit to LED1 */
224 if (debugData[iByte] & (1 << (7 - iBit)))
\ 00010A 75..01 MOV ?V0 + 0,#0x1
\ 00010D 75..00 MOV ?V0 + 1,#0x0
\ 000110 7407 MOV A,#0x7
\ 000112 C3 CLR C
\ 000113 9C SUBB A,R4
\ 000114 78.. MOV R0,#?V0 + 0
\ 000116 12.... LCALL ?S_SHL
\ 000119 C0.. PUSH ?V0 + 0
\ 00011B 8B.. MOV ?V0 + 0,R3
\ 00011D 85..82 MOV DPL,?XSP + 0
\ 000120 85..83 MOV DPH,?XSP + 1
\ 000123 E582 MOV A,DPL
\ 000125 25.. ADD A,?V0 + 0
\ 000127 F582 MOV DPL,A
\ 000129 E583 MOV A,DPH
\ 00012B 3400 ADDC A,#0x0
\ 00012D F583 MOV DPH,A
\ 00012F D0E0 POP A
\ 000131 FA MOV R2,A
\ 000132 E0 MOVX A,@DPTR
\ 000133 5A ANL A,R2
\ 000134 6004 JZ ??halAssertHazardLights_19
225 {
226 HAL_TURN_ON_LED1();
\ 000136 C290 CLR 0x90.0
\ 000138 8002 SJMP ??halAssertHazardLights_20
227 }
228 else
229 {
230 HAL_TURN_OFF_LED1();
\ ??halAssertHazardLights_19:
\ 00013A D290 SETB 0x90.0
231 }
232
233 /* advance to next bit */
234 iBit++;
\ ??halAssertHazardLights_20:
\ 00013C 0C INC R4
235 if (iBit == 8)
\ 00013D 7408 MOV A,#0x8
\ 00013F 6C XRL A,R4
\ 000140 709C JNZ ??halAssertHazardLights_14
236 {
237 iBit = 0;
\ 000142 7C00 MOV R4,#0x0
238 iByte++;
\ 000144 0B INC R3
239 }
240 }
\ 000145 EB MOV A,R3
\ 000146 C3 CLR C
\ 000147 9405 SUBB A,#0x5
\ 000149 4093 JC ??halAssertHazardLights_14
241 }
242
243 /*
244 * About to enter "hazard lights" loop again. Turn off LED1 in case the last bit
245 * displayed happened to be one. This guarantees all LEDs are off at the start of
246 * the flashing loop which uses a toggle operation to change LED states.
247 */
248 HAL_TURN_OFF_LED1();
\ ??halAssertHazardLights_0:
\ 00014B D290 SETB 0x90.0
\ 00014D 02.... LJMP ??halAssertHazardLights_11 & 0xFFFF
249 }
250 }
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine0:
\ 000000 E8 MOV A,R0
\ 000001 2401 ADD A,#0x1
\ 000003 08 INC R0
\ 000004 E9 MOV A,R1
\ 000005 3400 ADDC A,#0x0
\ 000007 F9 MOV R1,A
\ 000008 C3 CLR C
\ 000009 E8 MOV A,R0
\ 00000A 94F4 SUBB A,#-0xc
\ 00000C E9 MOV A,R1
\ 00000D 9401 SUBB A,#0x1
\ 00000F A2D2 MOV C,0xD0 /* PSW */.2
\ 000011 65D0 XRL A,PSW
\ 000013 33 RLC A
\ 000014 22 RET
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
\ ??escape:
\ 000000 DS 1
\ In segment XDATA_I, align 1, keep-with-next
\ __Constant_0:
\ 000000 DS 4
\ 000004 REQUIRE `?<Initializer for __Constant_0>`
\ 000004 REQUIRE __INIT_XDATA_I
\ In segment XDATA_ID, align 1, keep-with-next
\ `?<Initializer for __Constant_0>`:
\ 000000 00000000 DD 0
\ In segment XDATA_I, align 1, keep-with-next
\ __Constant_1:
\ 000000 DS 4
\ 000004 REQUIRE `?<Initializer for __Constant_1>`
\ 000004 REQUIRE __INIT_XDATA_I
\ In segment XDATA_ID, align 1, keep-with-next
\ `?<Initializer for __Constant_1>`:
\ 000000 01000000 DD 1
\ In segment XDATA_I, align 1, keep-with-next
\ __Constant_5800:
\ 000000 DS 4
\ 000004 REQUIRE `?<Initializer for __Constant_5800>`
\ 000004 REQUIRE __INIT_XDATA_I
\ In segment XDATA_ID, align 1, keep-with-next
\ `?<Initializer for __Constant_5800>`:
\ 000000 00580000 DD 22528
\ In segment SFR_AN, at 0x80
\ union <unnamed> volatile __sfr _A_P0
\ _A_P0:
\ 000000 DS 1
\ In segment SFR_AN, at 0x90
\ union <unnamed> volatile __sfr _A_P1
\ _A_P1:
\ 000000 DS 1
\ In segment SFR_AN, at 0xa8
\ union <unnamed> volatile __sfr _A_IEN0
\ _A_IEN0:
\ 000000 DS 1
251
252
253 /* ------------------------------------------------------------------------------------------------
254 * Compile Time Assertions
255 * ------------------------------------------------------------------------------------------------
256 */
257
258 /* integrity check of type sizes */
259 HAL_ASSERT_SIZE( int8, 1);
260 HAL_ASSERT_SIZE( uint8, 1);
261 HAL_ASSERT_SIZE( int16, 2);
262 HAL_ASSERT_SIZE(uint16, 2);
263 HAL_ASSERT_SIZE( int32, 4);
264 HAL_ASSERT_SIZE(uint32, 4);
265
266
267 /**************************************************************************************************
268 */
Maximum stack usage in bytes:
Function ISTACK PSTACK XSTACK
-------- ------ ------ ------
halAssertHandler 2 0 0
-> halAssertHazardLights 4 0 0
halAssertHazardLights 4 0 21
Segment part sizes:
Function/Label Bytes
-------------- -----
RFIM 1
P2INP 1
P1DIR 1
halAssertHandler 19
halAssertHazardLights 336
?Subroutine0 21
escape 1
__Constant_0 4
?<Initializer for __Constant_0>
4
__Constant_1 4
?<Initializer for __Constant_1>
4
__Constant_5800 4
?<Initializer for __Constant_5800>
4
_A_P0 1
_A_P1 1
_A_IEN0 1
376 bytes in segment BANKED_CODE
6 bytes in segment SFR_AN
12 bytes in segment XDATA_I
12 bytes in segment XDATA_ID
1 byte in segment XDATA_Z
376 bytes of CODE memory (+ 12 bytes shared)
0 bytes of DATA memory (+ 6 bytes shared)
1 byte of XDATA memory (+ 12 bytes shared)
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -