📄 onboard.lst
字号:
\ 000088 9A SUBB A,R2
\ 000089 50DE JNC ??_itoa_5
364
365 *buf = '\0';
\ 00008B E4 CLR A
\ 00008C F0 MOVX @DPTR,A
366 }
\ 00008D 7405 MOV A,#0x5
\ 00008F 12.... LCALL ?DEALLOC_XSTACK8
\ 000092 7F06 MOV R7,#0x6
\ 000094 02.... LJMP ?BANKED_LEAVE_XDATA
367
368 /*********************************************************************
369 * @fn Onboard_rand
370 *
371 * @brief Random number generator
372 *
373 * @param none
374 *
375 * @return uint16 - new random number
376 *
377 *********************************************************************/
\ In segment BANKED_CODE, align 1, keep-with-next
378 uint16 Onboard_rand( void )
\ Onboard_rand:
379 {
\ 000000 74F7 MOV A,#-0x9
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
\ 000005 ; Saved register size: 9
\ 000005 ; Auto size: 0
380 uint16 randNum;
381
382 randNum = macMcuRandomByte();
\ 000005 ; Setup parameters for call to function macMcuRandomByte
\ 000005 90.... MOV DPTR,#(macMcuRandomByte & 0xffff)
\ 000008 74.. MOV A,#((macMcuRandomByte >> 16) & 0xff)
\ 00000A 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 00000D E9 MOV A,R1
\ 00000E FE MOV R6,A
383 randNum += (macMcuRandomByte() << 8);
\ 00000F ; Setup parameters for call to function macMcuRandomByte
\ 00000F 74.. MOV A,#((macMcuRandomByte >> 16) & 0xff)
\ 000011 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 000014 EE MOV A,R6
\ 000015 2400 ADD A,#0x0
\ 000017 E4 CLR A
\ 000018 39 ADDC A,R1
\ 000019 FF MOV R7,A
384 return ( randNum );
\ 00001A EE MOV A,R6
\ 00001B FA MOV R2,A
\ 00001C EF MOV A,R7
\ 00001D FB MOV R3,A
\ 00001E 7F01 MOV R7,#0x1
\ 000020 02.... LJMP ?BANKED_LEAVE_XDATA
385 }
386
387 /*********************************************************************
388 * @fn Onboard_wait
389 *
390 * @brief Random number generator
391 *
392 * @param uint16 - time to wait
393 *
394 * @return none
395 *
396 *********************************************************************/
\ In segment BANKED_CODE, align 1, keep-with-next
397 void Onboard_wait( uint16 timeout )
\ Onboard_wait:
398 {
\ 000000 ; Saved register size: 0
\ 000000 ; Auto size: 0
\ 000000 8003 SJMP ??Onboard_wait_0
399 while (timeout--)
400 {
401 asm("NOP");
\ ??Onboard_wait_1:
\ 000002 00 NOP
402 asm("NOP");
\ 000003 00 NOP
403 asm("NOP");
\ 000004 00 NOP
404 }
\ ??Onboard_wait_0:
\ 000005 EA MOV A,R2
\ 000006 F8 MOV R0,A
\ 000007 EB MOV A,R3
\ 000008 F9 MOV R1,A
\ 000009 74FF MOV A,#-0x1
\ 00000B 28 ADD A,R0
\ 00000C 1A DEC R2
\ 00000D 74FF MOV A,#-0x1
\ 00000F 39 ADDC A,R1
\ 000010 FB MOV R3,A
\ 000011 E8 MOV A,R0
\ 000012 7001 JNZ ??Onboard_wait_2
\ 000014 E9 MOV A,R1
\ ??Onboard_wait_2:
\ 000015 70EB JNZ ??Onboard_wait_1
405 }
\ 000017 02.... LJMP ?BRET
406
407 /*********************************************************************
408 * @fn Osal_TimerCallBack()
409 *
410 * @brief Update the timer per tick
411 *
412 * @param none
413 *
414 * @return local clock in milliseconds
415 **********************************************************************/
\ In segment BANKED_CODE, align 1, keep-with-next
416 void Onboard_TimerCallBack ( uint8 timerId, uint8 channel, uint8 channelMode)
\ Onboard_TimerCallBack:
417 {
\ 000000 C082 PUSH DPL
\ 000002 C083 PUSH DPH
\ 000004 ; Saved register size: 2
\ 000004 ; Auto size: 0
418
419 if ((timerId == OSAL_TIMER) && (channelMode == HAL_TIMER_CH_MODE_OUTPUT_COMPARE))
\ 000004 7402 MOV A,#0x2
\ 000006 69 XRL A,R1
\ 000007 700D JNZ ??Onboard_TimerCallBack_0
\ 000009 7402 MOV A,#0x2
\ 00000B 6B XRL A,R3
\ 00000C 7008 JNZ ??Onboard_TimerCallBack_0
420 {
421 osal_update_timers();
\ 00000E ; Setup parameters for call to function osal_update_timers
\ 00000E 90.... MOV DPTR,#(osal_update_timers & 0xffff)
\ 000011 74.. MOV A,#((osal_update_timers >> 16) & 0xff)
\ 000013 12.... LCALL ?BCALL ; Banked call to: DPTR()
422 }
423 }
\ ??Onboard_TimerCallBack_0:
\ 000016 02.... LJMP ?Subroutine0 & 0xFFFF
424
425 /*********************************************************************
426 * EXTERNAL I/O FUNCTIONS
427 *
428 * User defined functions to control external devices. Add your code
429 * to the following functions to control devices wired to DB outputs.
430 *
431 *********************************************************************/
432
\ In segment BANKED_CODE, align 1, keep-with-next
433 void BigLight_On( void )
\ BigLight_On:
434 {
\ 000000 ; Saved register size: 0
\ 000000 ; Auto size: 0
435 // Put code here to turn on an external light
436 }
\ 000000 02.... LJMP ?BRET
437
\ In segment BANKED_CODE, align 1, keep-with-next
438 void BigLight_Off( void )
\ BigLight_Off:
439 {
\ 000000 ; Saved register size: 0
\ 000000 ; Auto size: 0
440 // Put code here to turn off an external light
441 }
\ 000000 02.... LJMP ?BRET
442
\ In segment BANKED_CODE, align 1, keep-with-next
443 void BuzzerControl( byte on )
\ BuzzerControl:
444 {
\ 000000 ; Saved register size: 0
\ 000000 ; Auto size: 0
445 // Put code here to turn a buzzer on/off
446 }
\ 000000 02.... LJMP ?BRET
447
\ In segment BANKED_CODE, align 1, keep-with-next
448 void Dimmer( byte lvl )
\ Dimmer:
449 {
\ 000000 ; Saved register size: 0
\ 000000 ; Auto size: 0
450 // Put code here to control a dimmer
451 }
\ 000000 02.... LJMP ?BRET
452
453 // No dip switches on this board
\ In segment BANKED_CODE, align 1, keep-with-next
454 byte GetUserDipSw( void )
\ GetUserDipSw:
455 {
\ 000000 ; Saved register size: 0
\ 000000 ; Auto size: 0
456 return 0;
\ 000000 7900 MOV R1,#0x0
\ 000002 02.... LJMP ?BRET
457 }
\ In segment XDATA_ID, align 1, keep-with-next
\ `?<Initializer for registeredKeysTaskID>`:
\ 000000 FF DB 255
\ 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
458
459 /*********************************************************************
460 *********************************************************************/
Maximum stack usage in bytes:
Function ISTACK PSTACK XSTACK
-------- ------ ------ ------
BigLight_Off 0 0 0
BigLight_On 0 0 0
BuzzerControl 0 0 0
Dimmer 0 0 0
GetUserDipSw 0 0 0
InitBoard 0 0 14
-> osal_int_disable 0 0 22
-> HalLedSet 0 0 22
-> HalLedSet 0 0 22
-> Onboard_wait 0 0 22
-> Onboard_wait 0 0 22
-> HalLedSet 0 0 22
-> Onboard_wait 0 0 22
-> Onboard_wait 0 0 22
-> HalTimerConfig 0 0 28
-> HalKeyConfig 0 0 28
OnBoard_KeyCallback 2 0 0
-> OnBoard_SendKeys 4 0 0
OnBoard_SendKeys 3 0 10
-> osal_msg_allocate 0 0 20
-> osal_msg_send 0 0 20
OnBoard_stack_used 2 0 0
Onboard_TimerCallBack 2 0 0
-> osal_update_timers 4 0 0
Onboard_rand 0 0 9
-> macMcuRandomByte 0 0 18
-> macMcuRandomByte 0 0 18
Onboard_wait 0 0 11
RegisterForKeys 2 0 0
_itoa 1 0 19
Segment part sizes:
Function/Label Bytes
-------------- -----
SLEEP 1
P2INP 1
P1DIR 1
OnboardKeyIntEnable 1
OnboardTimerIntEnable 1
aExtendedAddress 8
registeredKeysTaskID 1
InitBoard 219
RegisterForKeys 23
?Subroutine0 7
OnBoard_SendKeys 79
OnBoard_KeyCallback 43
OnBoard_stack_used 80
_itoa 151
Onboard_rand 35
Onboard_wait 26
Onboard_TimerCallBack 25
BigLight_On 3
BigLight_Off 3
BuzzerControl 3
Dimmer 3
GetUserDipSw 5
?<Initializer for registeredKeysTaskID>
1
_A_P1 1
_A_IEN0 1
705 bytes in segment BANKED_CODE
5 bytes in segment SFR_AN
1 byte in segment XDATA_I
1 byte in segment XDATA_ID
10 bytes in segment XDATA_Z
706 bytes of CODE memory
0 bytes of DATA memory (+ 5 bytes shared)
11 bytes of XDATA memory
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -