📄 hal_assert.lst
字号:
92 */
93 HAL_BOARD_INIT();
\ 00000C 43FE01 ORL 0xfe,#0x1
\ 00000F 43FE02 ORL 0xfe,#0x2
\ 000012 43F701 ORL 0xf7,#0x1
\ 000015 43FE04 ORL 0xfe,#0x4
\ 000018 C292 CLR 0x90.2
94
95 HAL_TURN_OFF_LED1();
\ 00001A D290 SETB 0x90.0
96 HAL_TURN_OFF_LED2();
\ 00001C D291 SETB 0x90.1
97 HAL_TURN_OFF_LED3();
\ 00001E D291 SETB 0x90.1
\ 000020 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:
\ 000023 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 */
\ 000024 740A MOV A,#0xa
\ 000026 6A XRL A,R2
\ 000027 6070 JZ ??halAssertHazardLights_2
\ ??halAssertHazardLights_3:
\ 000029 90.... MOV DPTR,#__Constant_0
\ 00002C 78.. MOV R0,#?V0 + 0
\ 00002E 12.... LCALL ?L_MOV_X
\ 000031 7405 MOV A,#0x5
\ 000033 12.... LCALL ?XSTACK_DISP0_8
\ 000036 78.. MOV R0,#?V0 + 0
\ 000038 12.... LCALL ?L_MOV_TO_X
\ 00003B 8012 SJMP ??halAssertHazardLights_4
\ ??halAssertHazardLights_5:
\ 00003D 90.... MOV DPTR,#__Constant_1
\ 000040 78.. MOV R0,#?V0 + 0
\ 000042 12.... LCALL ?L_MOV_X
\ 000045 7405 MOV A,#0x5
\ 000047 12.... LCALL ?XSTACK_DISP0_8
\ 00004A 78.. MOV R0,#?V0 + 0
\ 00004C 12.... LCALL ?L_ADD_TO_X
\ ??halAssertHazardLights_4:
\ 00004F 7405 MOV A,#0x5
\ 000051 12.... LCALL ?XSTACK_DISP0_8
\ 000054 C082 PUSH DPL
\ 000056 C083 PUSH DPH
\ 000058 90.... MOV DPTR,#__Constant_5800
\ 00005B 78.. MOV R0,#?V0 + 0
\ 00005D 12.... LCALL ?L_MOV_X
\ 000060 D083 POP DPH
\ 000062 D082 POP DPL
\ 000064 78.. MOV R0,#?V0 + 0
\ 000066 12.... LCALL ?UL_GT_X
\ 000069 40D2 JC ??halAssertHazardLights_5
\ 00006B A290 MOV C,0x90.0
\ 00006D 5004 JNC ??halAssertHazardLights_6
\ 00006F C290 CLR 0x90.0
\ 000071 8002 SJMP ??halAssertHazardLights_7
\ ??halAssertHazardLights_6:
\ 000073 D290 SETB 0x90.0
\ ??halAssertHazardLights_7:
\ 000075 A291 MOV C,0x90.1
\ 000077 5004 JNC ??halAssertHazardLights_8
\ 000079 C291 CLR 0x90.1
\ 00007B 8002 SJMP ??halAssertHazardLights_9
\ ??halAssertHazardLights_8:
\ 00007D D291 SETB 0x90.1
\ ??halAssertHazardLights_9:
\ 00007F 90.... MOV DPTR,#??escape
\ 000082 E0 MOVX A,@DPTR
\ 000083 600C JZ ??halAssertHazardLights_10
\ 000085 E4 CLR A
\ 000086 F0 MOVX @DPTR,A
\ 000087 7409 MOV A,#0x9
\ 000089 12.... LCALL ?DEALLOC_XSTACK8
\ 00008C 7F04 MOV R7,#0x4
\ 00008E 02.... LJMP ?BANKED_LEAVE_XDATA
\ ??halAssertHazardLights_10:
\ 000091 A281 MOV C,0x80.1
\ 000093 508E JNC ??halAssertHazardLights_1
\ ??halAssertHazardLights_11:
\ 000095 7A00 MOV R2,#0x0
\ 000097 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:
\ 000099 D290 SETB 0x90.0
156 HAL_TURN_OFF_LED2();
\ 00009B D291 SETB 0x90.1
157 HAL_TURN_OFF_LED3();
\ 00009D D291 SETB 0x90.1
158 HAL_TURN_OFF_LED4();
\ 00009F D290 SETB 0x90.0
159
160 /* wait for button release */
161 HAL_DEBOUNCE(!HAL_PUSH_BUTTON1());
\ 0000A1 7800 MOV R0,#0x0
\ 0000A3 7900 MOV R1,#0x0
\ ??halAssertHazardLights_12:
\ 0000A5 A281 MOV C,0x80.1
\ 0000A7 4004 JC ??halAssertHazardLights_13
\ 0000A9 7800 MOV R0,#0x0
\ 0000AB 7900 MOV R1,#0x0
\ ??halAssertHazardLights_13:
\ 0000AD 12.... LCALL ?Subroutine0 & 0xFFFF
\ ??CrossCallReturnLabel_0:
\ 0000B0 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;
\ 0000B2 E591 MOV A,0x91
\ 0000B4 C0E0 PUSH A
\ 0000B6 7404 MOV A,#0x4
\ 0000B8 12.... LCALL ?XSTACK_DISP0_8
\ 0000BB D0E0 POP A
\ 0000BD F0 MOVX @DPTR,A
180 #endif
181
182 debugData[DEBUG_DATA_TX_ACTIVE_OFS] = macTxActive;
\ 0000BE 90.... MOV DPTR,#macTxActive
\ 0000C1 E0 MOVX A,@DPTR
\ 0000C2 C0E0 PUSH A
\ 0000C4 7402 MOV A,#0x2
\ 0000C6 12.... LCALL ?XSTACK_DISP0_8
\ 0000C9 D0E0 POP A
\ 0000CB F0 MOVX @DPTR,A
183 debugData[DEBUG_DATA_RX_ACTIVE_OFS] = macRxActive;
\ 0000CC 90.... MOV DPTR,#macRxActive
\ 0000CF E0 MOVX A,@DPTR
\ 0000D0 C0E0 PUSH A
\ 0000D2 7403 MOV A,#0x3
\ 0000D4 12.... LCALL ?XSTACK_DISP0_8
\ 0000D7 D0E0 POP A
\ 0000D9 F0 MOVX @DPTR,A
184
185 /* initialize for data dump loop */
186 {
187 uint8 iBit;
188 uint8 iByte;
189
190 iBit = 0;
\ 0000DA 7C00 MOV R4,#0x0
191 iByte = 0;
\ 0000DC 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:
\ 0000DE A281 MOV C,0x80.1
\ 0000E0 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();
\ 0000E2 C290 CLR 0x90.0
203 HAL_TURN_ON_LED2();
\ 0000E4 C291 CLR 0x90.1
204 HAL_TURN_ON_LED3();
\ 0000E6 C291 CLR 0x90.1
205 if (iBit == 0)
\ 0000E8 EC MOV A,R4
\ 0000E9 7004 JNZ ??halAssertHazardLights_15
206 {
207 HAL_TURN_ON_LED4();
\ 0000EB C290 CLR 0x90.0
\ 0000ED 8002 SJMP ??halAssertHazardLights_16
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -