📄 zmain.lst
字号:
\ 0000B5 74.. MOV A,#((Onboard_wait >> 16) & 0xff)
\ 0000B7 12.... LCALL ?BCALL ; Banked call to: DPTR()
265 }
\ ??zmain_ext_addr_4:
\ 0000BA ; Setup parameters for call to function HalKeyRead
\ 0000BA 90.... MOV DPTR,#(HalKeyRead & 0xffff)
\ 0000BD 74.. MOV A,#((HalKeyRead >> 16) & 0xff)
\ 0000BF 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 0000C2 E9 MOV A,R1
\ 0000C3 6404 XRL A,#0x4
\ 0000C5 70CC JNZ ??zmain_ext_addr_5
266 HalLedSet( HAL_LED_1, HAL_LED_MODE_OFF );
\ 0000C7 ; Setup parameters for call to function HalLedSet
\ 0000C7 7A00 MOV R2,#0x0
\ 0000C9 7901 MOV R1,#0x1
\ 0000CB 90.... MOV DPTR,#(HalLedSet & 0xffff)
\ 0000CE 74.. MOV A,#((HalLedSet >> 16) & 0xff)
\ 0000D0 12.... LCALL ?BCALL ; Banked call to: DPTR()
267
268 // Plug AtoD data into lower bytes
269 AtoD = HalAdcRead (HAL_ADC_CHANNEL_7, HAL_ADC_RESOLUTION_10);
\ 0000D3 ; Setup parameters for call to function HalAdcRead
\ 0000D3 7A02 MOV R2,#0x2
\ 0000D5 7907 MOV R1,#0x7
\ 0000D7 90.... MOV DPTR,#(HalAdcRead & 0xffff)
\ 0000DA 74.. MOV A,#((HalAdcRead >> 16) & 0xff)
\ 0000DC 12.... LCALL ?BCALL ; Banked call to: DPTR()
270 xad = (uint8*)&aExtendedAddress;
271 *xad++ = LO_UINT16( AtoD );
\ 0000DF EA MOV A,R2
\ 0000E0 90.... MOV DPTR,#aExtendedAddress
\ 0000E3 F0 MOVX @DPTR,A
272 *xad = HI_UINT16( AtoD );
\ 0000E4 EB MOV A,R3
\ 0000E5 90.... MOV DPTR,#(aExtendedAddress + 1)
\ 0000E8 F0 MOVX @DPTR,A
273
274 #if !defined( ZTOOL_PORT ) || defined( ZPORT ) || defined( NV_RESTORE )
275 // If no support for Z-Tool serial I/O,
276 // Write temporary 64-bit address to NV
277 osal_nv_write( ZCD_NV_EXTADDR, 0, Z_EXTADDR_LEN, &aExtendedAddress );
\ 0000E9 ; Setup parameters for call to function osal_nv_write
\ 0000E9 75.... MOV ?V0 + 0,#(aExtendedAddress & 0xff)
\ 0000EC 75.... MOV ?V0 + 1,#((aExtendedAddress >> 8) & 0xff)
\ 0000EF 78.. MOV R0,#?V0 + 0
\ 0000F1 12.... LCALL ?PUSH_XSTACK_I_TWO
\ 0000F4 75..08 MOV ?V0 + 0,#0x8
\ 0000F7 75..00 MOV ?V0 + 1,#0x0
\ 0000FA 78.. MOV R0,#?V0 + 0
\ 0000FC 12.... LCALL ?PUSH_XSTACK_I_TWO
\ 0000FF 7C00 MOV R4,#0x0
\ 000101 7D00 MOV R5,#0x0
\ 000103 7A01 MOV R2,#0x1
\ 000105 7B00 MOV R3,#0x0
\ 000107 90.... MOV DPTR,#(osal_nv_write & 0xffff)
\ 00010A 74.. MOV A,#((osal_nv_write >> 16) & 0xff)
\ 00010C 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 00010F 7404 MOV A,#0x4
\ 000111 12.... LCALL ?DEALLOC_XSTACK8
278 #endif
279 }
\ ??zmain_ext_addr_2:
\ 000114 7F02 MOV R7,#0x2
\ 000116 02.... LJMP ?FUNC_LEAVE_XDATA
\ In segment NEAR_CODE, align 1, keep-with-next
\ ?Subroutine0:
\ 000000 E582 MOV A,DPL
\ 000002 24FF ADD A,#-0x1
\ 000004 F582 MOV DPL,A
\ 000006 E583 MOV A,DPH
\ 000008 34FF ADDC A,#-0x1
\ 00000A F583 MOV DPH,A
\ 00000C 22 RET
\ In segment XSP, align 1
\ In segment SFR_AN, at 0x90
\ union <unnamed> volatile __sfr _A_P1
\ _A_P1:
\ 000000 DS 1
280
281 /*********************************************************************
282 * @fn zmain_dev_info
283 * @brief Gets or makes extended address.
284 * @return none
285 *********************************************************************/
286 static ZSEG void zmain_dev_info ( void )
287 {
288 #ifdef LCD_SUPPORTED
289 uint8 i;
290 uint8 ch;
291 uint8 *xad;
292 unsigned char lcd_buf[18];
293
294 // Display the extended address
295 xad = (uint8*)&aExtendedAddress + Z_EXTADDR_LEN - 1;
296 for ( i = 0; i < Z_EXTADDR_LEN*2; xad-- ) {
297 ch = (*xad >> 4) & 0x0F;
298 lcd_buf[i++] = ch + (( ch < 10 ) ? '0' : '7');
299 ch = *xad & 0x0F;
300 lcd_buf[i++] = ch + (( ch < 10 ) ? '0' : '7');
301 }
302 lcd_buf[Z_EXTADDR_LEN*2] = '\0';
303 HalLcdWriteString( "IEEE Address:", HAL_LCD_LINE_1 );
304 HalLcdWriteString( (char*)lcd_buf, HAL_LCD_LINE_2 );
305 #endif // LCD
306 }
307
308 /*********************************************************************
309 * @fn zmain_ram_init
310 * @brief Initialize ram for stack "high-water-mark" observations.
311 * @return none
312 *********************************************************************/
313 static ZSEG void zmain_ram_init( void )
314 {
315 uint8 *end;
316 uint8 *ptr;
317
318 // Initialize the call (parameter) stack
319 end = (uint8*)CSTK_BEG; // Lower end
320 ptr = (uint8*)(*( __idata uint16*)(CSTK_PTR)); // Upper end
321 while ( --ptr > end )
322 *ptr = STACK_INIT_VALUE;
323
324 // Initialize the return (address) stack
325 ptr = (uint8*)RSTK_END - 1; // Upper end
326 while ( --ptr > (uint8*)SP )
327 *(__idata uint8*)ptr = STACK_INIT_VALUE;
328 }
329
330 #ifdef LCD_SUPPORTED
331 /*********************************************************************
332 * @fn zmain_lcd_init
333 * @brief Initialize LCD at start up.
334 * @return none
335 *********************************************************************/
336 static ZSEG void zmain_lcd_init ( void )
337 {
338 #ifdef LCD_SD
339 // if ( LcdLine1 == NULL )
340 {
341 HalLcdWriteString( "Figure8 Wireless", HAL_LCD_LINE_1 );
342
343 #if defined( MT_MAC_FUNC )
344 #if defined( ZDO_COORDINATOR )
345 HalLcdWriteString( "MAC-MT Coord", HAL_LCD_LINE_2 );
346 #else
347 HalLcdWriteString( "MAC-MT Device", HAL_LCD_LINE_2 );
348 #endif // ZDO
349 #elif defined( MT_NWK_FUNC )
350 #if defined( ZDO_COORDINATOR )
351 HalLcdWriteString( "NWK Coordinator", HAL_LCD_LINE_2 );
352 #else
353 HalLcdWriteString( "NWK Device", HAL_LCD_LINE_2 );
354 #endif // ZDO
355 #endif // MT_FUNC
356 }
357 #endif // LCD_SD
358 }
359 #endif
360
361 /*********************************************************************
362 *********************************************************************/
Maximum stack usage in bytes:
Function ISTACK PSTACK XSTACK
-------- ------ ------ ------
main 1 0 0
-> osal_int_disable 0 0 0
-> zmain_vdd_check 0 0 0
-> InitBoard 0 0 0
-> HalDriverInit 0 0 0
-> osal_nv_init 0 0 0
-> zmain_ext_addr 0 0 0
-> zgInit 0 0 0
-> ZMacInit 0 0 0
-> afInit 0 0 0
-> osal_init_system 0 0 0
-> osal_int_enable 0 0 0
-> InitBoard 0 0 0
-> osal_start_system 0 0 0
zmain_ext_addr 1 0 13
-> osal_nv_item_init 0 0 22
-> osal_nv_read 0 0 26
-> Onboard_wait 0 0 18
-> HalLedSet 0 0 18
-> Onboard_wait 0 0 18
-> HalKeyRead 0 0 18
-> HalLedSet 0 0 18
-> HalAdcRead 0 0 18
-> osal_nv_write 0 0 26
zmain_vdd_check 0 0 8
-> Onboard_wait 0 0 16
-> HalAdcCheckVdd 0 0 16
-> Onboard_wait 0 0 16
-> Onboard_wait 0 0 16
Segment part sizes:
Function/Label Bytes
-------------- -----
SP 1
P2INP 1
P1DIR 1
main 164
zmain_vdd_check 122
zmain_ext_addr 281
?Subroutine0 13
_A_P1 1
580 bytes in segment NEAR_CODE
4 bytes in segment SFR_AN
580 bytes of CODE memory
0 bytes of DATA memory (+ 4 bytes shared)
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -