📄 node.lst
字号:
\ 00005D F0 MOVX @DPTR,A
149 DataRequest(PC_SHORT, nbrOfChars + 3, sendBuffer);
\ 00005E ; Setup parameters for call to function DataRequest
\ 00005E 7402 MOV A,#0x2
\ 000060 12.... LCALL ?XSTACK_DISP0_8
\ 000063 AC82 MOV R4,DPL
\ 000065 AD83 MOV R5,DPH
\ 000067 7403 MOV A,#0x3
\ 000069 2A ADD A,R2
\ 00006A F9 MOV R1,A
\ 00006B 7A34 MOV R2,#0x34
\ 00006D 7B12 MOV R3,#0x12
\ 00006F 90.... MOV DPTR,#(DataRequest & 0xffff)
\ 000072 74.. MOV A,#((DataRequest >> 16) & 0xff)
\ 000074 12.... LCALL ?BCALL ; Banked call to: DPTR()
150 }
\ 000077 7482 MOV A,#-0x7e
\ 000079 12.... LCALL ?DEALLOC_XSTACK8
\ 00007C 02.... LJMP ?Subroutine0 & 0xFFFF
151
152
153 /******************************************************************************
154 *
155 * Add _msec_ number of milliseconds to sleep timer.
156 * Using 33 Hz insted of 32.768 Hz for the RC osc.
157 ******************************************************************************/
\ In segment BANKED_CODE, align 1, keep-with-next
158 void AddToSleepTimer(UINT16 msec)
\ AddToSleepTimer:
159 {
\ 000000 74F0 MOV A,#-0x10
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
\ 000005 ; Saved register size: 16
\ 000005 ; Auto size: 4
\ 000005 74FC MOV A,#-0x4
\ 000007 12.... LCALL ?ALLOC_XSTACK8
160 UINT32 sleepTimer;
161
162 sleepTimer = ST0;
\ 00000A E595 MOV A,0x95
\ 00000C 85..82 MOV DPL,?XSP + 0
\ 00000F 85..83 MOV DPH,?XSP + 1
\ 000012 F0 MOVX @DPTR,A
\ 000013 A3 INC DPTR
\ 000014 E4 CLR A
\ 000015 F0 MOVX @DPTR,A
\ 000016 A3 INC DPTR
\ 000017 F0 MOVX @DPTR,A
\ 000018 A3 INC DPTR
\ 000019 F0 MOVX @DPTR,A
163 sleepTimer |= (UINT32)ST1 << 8;
\ 00001A 8596.. MOV ?V0 + 0,0x96
\ 00001D F5.. MOV ?V0 + 1,A
\ 00001F F5.. MOV ?V0 + 2,A
\ 000021 F5.. MOV ?V0 + 3,A
\ 000023 7408 MOV A,#0x8
\ 000025 78.. MOV R0,#?V0 + 0
\ 000027 12.... LCALL ?L_SHL
\ 00002A 85..82 MOV DPL,?XSP + 0
\ 00002D 85..83 MOV DPH,?XSP + 1
\ 000030 78.. MOV R0,#?V0 + 0
\ 000032 12.... LCALL ?L_IOR_TO_X
164 sleepTimer |= (UINT32)ST2 << 16;
\ 000035 8597.. MOV ?V0 + 0,0x97
\ 000038 75..00 MOV ?V0 + 1,#0x0
\ 00003B 7410 MOV A,#0x10
\ 00003D 78.. MOV R0,#?V0 + 0
\ 00003F 12.... LCALL ?L_SHL
\ 000042 85..82 MOV DPL,?XSP + 0
\ 000045 85..83 MOV DPH,?XSP + 1
\ 000048 78.. MOV R0,#?V0 + 0
\ 00004A 12.... LCALL ?L_IOR_TO_X
165
166 sleepTimer += ((UINT32)msec * (UINT32)33); // 32 768 kHz ~ 33 each mSecond
\ 00004D 8A.. MOV ?V0 + 0,R2
\ 00004F 8B.. MOV ?V0 + 1,R3
\ 000051 75..00 MOV ?V0 + 2,#0x0
\ 000054 90.... MOV DPTR,#__Constant_21
\ 000057 78.. MOV R0,#?V0 + 4
\ 000059 12.... LCALL ?L_MOV_X
\ 00005C 78.. MOV R0,#?V0 + 0
\ 00005E 79.. MOV R1,#?V0 + 4
\ 000060 12.... LCALL ?L_MUL
\ 000063 85..82 MOV DPL,?XSP + 0
\ 000066 85..83 MOV DPH,?XSP + 1
\ 000069 78.. MOV R0,#?V0 + 0
\ 00006B 12.... LCALL ?L_ADD_TO_X
167
168 if(sleepTimer > 0x00FFFFFF){
\ 00006E 85..82 MOV DPL,?XSP + 0
\ 000071 85..83 MOV DPH,?XSP + 1
\ 000074 C082 PUSH DPL
\ 000076 C083 PUSH DPH
\ 000078 90.... MOV DPTR,#__Constant_1000000
\ 00007B 78.. MOV R0,#?V0 + 0
\ 00007D 12.... LCALL ?L_MOV_X
\ 000080 D083 POP DPH
\ 000082 D082 POP DPL
\ 000084 78.. MOV R0,#?V0 + 0
\ 000086 12.... LCALL ?UL_GT_X
\ 000089 4013 JC ??AddToSleepTimer_0
169 sleepTimer -= 0x00FFFFFF;
\ 00008B 90.... MOV DPTR,#__Constant_ff000001
\ 00008E 78.. MOV R0,#?V0 + 0
\ 000090 12.... LCALL ?L_MOV_X
\ 000093 85..82 MOV DPL,?XSP + 0
\ 000096 85..83 MOV DPH,?XSP + 1
\ 000099 78.. MOV R0,#?V0 + 0
\ 00009B 12.... LCALL ?L_ADD_TO_X
170 }
171
172 ST2 = (UINT8)(sleepTimer >> 16);
\ ??AddToSleepTimer_0:
\ 00009E 85..82 MOV DPL,?XSP + 0
\ 0000A1 85..83 MOV DPH,?XSP + 1
\ 0000A4 78.. MOV R0,#?V0 + 0
\ 0000A6 12.... LCALL ?L_MOV_X
\ 0000A9 7410 MOV A,#0x10
\ 0000AB 78.. MOV R0,#?V0 + 0
\ 0000AD 12.... LCALL ?UL_SHR
\ 0000B0 E5.. MOV A,?V0 + 0
\ 0000B2 F597 MOV 0x97,A
173 ST1 = (UINT8)(sleepTimer >> 8);
\ 0000B4 85..82 MOV DPL,?XSP + 0
\ 0000B7 85..83 MOV DPH,?XSP + 1
\ 0000BA 78.. MOV R0,#?V0 + 0
\ 0000BC 12.... LCALL ?L_MOV_X
\ 0000BF E5.. MOV A,?V0 + 1
\ 0000C1 F596 MOV 0x96,A
174 ST0 = (UINT8) sleepTimer;
\ 0000C3 E5.. MOV A,?V0 + 0
\ 0000C5 F595 MOV 0x95,A
175 }
\ 0000C7 7404 MOV A,#0x4
\ 0000C9 12.... LCALL ?DEALLOC_XSTACK8
\ 0000CC 7F08 MOV R7,#0x8
\ 0000CE 02.... LJMP ?BANKED_LEAVE_XDATA
\ In segment INTVEC, offset 0x2b, root
\ `ST_IRQ??INTVEC 43`:
\ 00002B 02.... LJMP (ST_IRQ)
\ In segment XDATA_I, align 1, keep-with-next
\ __Constant_21:
\ 000000 DS 4
\ 000004 REQUIRE `?<Initializer for __Constant_21>`
\ 000004 REQUIRE __INIT_XDATA_I
\ In segment XDATA_ID, align 1, keep-with-next
\ `?<Initializer for __Constant_21>`:
\ 000000 21000000 DD 33
\ In segment XDATA_I, align 1, keep-with-next
\ __Constant_1000000:
\ 000000 DS 4
\ 000004 REQUIRE `?<Initializer for __Constant_1000000>`
\ 000004 REQUIRE __INIT_XDATA_I
\ In segment XDATA_ID, align 1, keep-with-next
\ `?<Initializer for __Constant_1000000>`:
\ 000000 00000001 DD 16777216
\ In segment XDATA_I, align 1, keep-with-next
\ __Constant_ff000001:
\ 000000 DS 4
\ 000004 REQUIRE `?<Initializer for __Constant_ff000001>`
\ 000004 REQUIRE __INIT_XDATA_I
\ In segment XDATA_ID, align 1, keep-with-next
\ `?<Initializer for __Constant_ff000001>`:
\ 000000 010000FF DD 4278190081
176
177 #ifdef CC2430EB
178 /******************************************************************************
179 *
180 * Print X and Y on LCD display, can only be used on SmartRF04EB
181 ******************************************************************************/
182 void PrintXY(void){
183 char s[16];
184 sprintf(s, "X: %d.%d", UINT16_2_INT(x), FRAC_2_TO_DEC(x));
185 lcdUpdateLine(LINE1, s);
186 sprintf(s, "Y: %d.%d", UINT16_2_INT(y), FRAC_2_TO_DEC(y));
187 lcdUpdateLine(LINE2, s);
188 }
189 #endif
Maximum stack usage in bytes:
Function ISTACK PSTACK XSTACK
-------- ------ ------ ------
AddToSleepTimer 2 0 20
NodeDataIndication 0 0 12
-> SetupRefNode 0 0 20
-> SetupBlindNode 0 0 20
-> memcpy 0 0 24
ST_IRQ 11 0 0
-> ST_IRQ_RefNode 22 0 0
-> ST_IRQ_BlindNode 22 0 0
SendPosition 3 0 6
-> DataRequest 4 0 12
SendText 1 0 142
-> vsprintf 0 0 284
-> DataRequest 0 0 280
Segment part sizes:
Function/Label Bytes
-------------- -----
ST0 1
ST1 1
ST2 1
parametersReceived 1
blinkLed 1
ledBlinkCounter 1
nodeType 1
x 2
y 2
z 1
buffer 145
msgReceived 1
NodeDataIndication 121
?Subroutine0 5
ST_IRQ 78
SendPosition 130
SendText 127
AddToSleepTimer 209
ST_IRQ??INTVEC 43 3
__Constant_21 4
?<Initializer for __Constant_21>
4
__Constant_1000000 4
?<Initializer for __Constant_1000000>
4
__Constant_ff000001 4
?<Initializer for __Constant_ff000001>
4
592 bytes in segment BANKED_CODE
3 bytes in segment INTVEC
78 bytes in segment NEAR_CODE
3 bytes in segment SFR_AN
12 bytes in segment XDATA_I
12 bytes in segment XDATA_ID
155 bytes in segment XDATA_Z
670 bytes of CODE memory (+ 15 bytes shared)
0 bytes of DATA memory (+ 3 bytes shared)
155 bytes of XDATA memory (+ 12 bytes shared)
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -