📄 halstack.lst
字号:
\ 000048 90FFFD MOV DPTR,#-0x3
\ 00004B E4 CLR A
\ 00004C 93 MOVC A,@A+DPTR
\ 00004D 8A82 MOV DPL,R2
\ 00004F 8B83 MOV DPH,R3
\ 000051 A3 INC DPTR
\ 000052 A3 INC DPTR
\ 000053 A3 INC DPTR
\ 000054 A3 INC DPTR
\ 000055 A3 INC DPTR
\ 000056 F0 MOVX @DPTR,A
193 buf[6] = *(unsigned char __code *)(IEEE_ADDRESS_ARRAY+6);
\ 000057 90FFFE MOV DPTR,#-0x2
\ 00005A E4 CLR A
\ 00005B 93 MOVC A,@A+DPTR
\ 00005C 8A82 MOV DPL,R2
\ 00005E 8B83 MOV DPH,R3
\ 000060 A3 INC DPTR
\ 000061 A3 INC DPTR
\ 000062 A3 INC DPTR
\ 000063 A3 INC DPTR
\ 000064 A3 INC DPTR
\ 000065 A3 INC DPTR
\ 000066 F0 MOVX @DPTR,A
194 buf[7] = *(unsigned char __code *)(IEEE_ADDRESS_ARRAY+7);
\ 000067 90FFFF MOV DPTR,#-0x1
\ 00006A E4 CLR A
\ 00006B 93 MOVC A,@A+DPTR
\ 00006C 8A82 MOV DPL,R2
\ 00006E 8B83 MOV DPH,R3
\ 000070 A3 INC DPTR
\ 000071 A3 INC DPTR
\ 000072 A3 INC DPTR
\ 000073 A3 INC DPTR
\ 000074 A3 INC DPTR
\ 000075 A3 INC DPTR
\ 000076 A3 INC DPTR
\ 000077 F0 MOVX @DPTR,A
195 #if (CC2430_FLASH_SIZE == 128)
196 //resore old bank settings
197 MEMCTR = bank;
\ 000078 8CC7 MOV 0xc7,R4
198 #endif
199 }
\ 00007A D083 POP DPH
\ 00007C D082 POP DPL
\ 00007E 22 RET
200
201
202
203
204
205
\ In segment NEAR_CODE, align 1, keep-with-next
206 void halSetRadioIEEEAddress(void) {
\ halSetRadioIEEEAddress:
\ 000000 C082 PUSH DPL
\ 000002 C083 PUSH DPH
\ 000004 ; Saved register size: 2
\ 000004 ; Auto size: 8
\ 000004 74F8 MOV A,#-0x8
\ 000006 12.... LCALL ?ALLOC_XSTACK8
207 BYTE buf[8];
208 halGetProcessorIEEEAddress(buf);
\ 000009 ; Setup parameters for call to function halGetProcessorIEEEAddress
\ 000009 85..82 MOV DPL,?XSP + 0
\ 00000C 85..83 MOV DPH,?XSP + 1
\ 00000F AA82 MOV R2,DPL
\ 000011 AB83 MOV R3,DPH
\ 000013 12.... LCALL halGetProcessorIEEEAddress
209 IEEE_ADDR0 = buf[0];
\ 000016 85..82 MOV DPL,?XSP + 0
\ 000019 85..83 MOV DPH,?XSP + 1
\ 00001C E0 MOVX A,@DPTR
\ 00001D 90DF43 MOV DPTR,#-0x20bd
\ 000020 F0 MOVX @DPTR,A
210 IEEE_ADDR1 = buf[1];
\ 000021 7401 MOV A,#0x1
\ 000023 12.... LCALL ?XSTACK_DISP0_8
\ 000026 E0 MOVX A,@DPTR
\ 000027 90DF44 MOV DPTR,#-0x20bc
\ 00002A F0 MOVX @DPTR,A
211 IEEE_ADDR2 = buf[2];
\ 00002B 7402 MOV A,#0x2
\ 00002D 12.... LCALL ?XSTACK_DISP0_8
\ 000030 E0 MOVX A,@DPTR
\ 000031 90DF45 MOV DPTR,#-0x20bb
\ 000034 F0 MOVX @DPTR,A
212 IEEE_ADDR3 = buf[3];
\ 000035 7403 MOV A,#0x3
\ 000037 12.... LCALL ?XSTACK_DISP0_8
\ 00003A E0 MOVX A,@DPTR
\ 00003B 90DF46 MOV DPTR,#-0x20ba
\ 00003E F0 MOVX @DPTR,A
213 IEEE_ADDR4 = buf[4];
\ 00003F 7404 MOV A,#0x4
\ 000041 12.... LCALL ?XSTACK_DISP0_8
\ 000044 E0 MOVX A,@DPTR
\ 000045 90DF47 MOV DPTR,#-0x20b9
\ 000048 F0 MOVX @DPTR,A
214 IEEE_ADDR5 = buf[5];
\ 000049 7405 MOV A,#0x5
\ 00004B 12.... LCALL ?XSTACK_DISP0_8
\ 00004E E0 MOVX A,@DPTR
\ 00004F 90DF48 MOV DPTR,#-0x20b8
\ 000052 F0 MOVX @DPTR,A
215 IEEE_ADDR6 = buf[6];
\ 000053 7406 MOV A,#0x6
\ 000055 12.... LCALL ?XSTACK_DISP0_8
\ 000058 E0 MOVX A,@DPTR
\ 000059 90DF49 MOV DPTR,#-0x20b7
\ 00005C F0 MOVX @DPTR,A
216 IEEE_ADDR7 = buf[7];
\ 00005D 7407 MOV A,#0x7
\ 00005F 12.... LCALL ?XSTACK_DISP0_8
\ 000062 E0 MOVX A,@DPTR
\ 000063 90DF4A MOV DPTR,#-0x20b6
\ 000066 F0 MOVX @DPTR,A
217 }
\ 000067 7408 MOV A,#0x8
\ 000069 12.... LCALL ?DEALLOC_XSTACK8
\ 00006C D083 POP DPH
\ 00006E D082 POP DPL
\ 000070 22 RET
218
\ In segment NEAR_CODE, align 1, keep-with-next
219 void halSetRadioPANID(UINT16 panid){
\ halSetRadioPANID:
\ 000000 C082 PUSH DPL
\ 000002 C083 PUSH DPH
\ 000004 ; Saved register size: 2
\ 000004 ; Auto size: 0
220 PANIDL = (BYTE) (panid);
\ 000004 EA MOV A,R2
\ 000005 90DF4C MOV DPTR,#-0x20b4
\ 000008 F0 MOVX @DPTR,A
221 PANIDH = (BYTE) (panid>>8);
\ 000009 EB MOV A,R3
\ 00000A F9 MOV R1,A
\ 00000B E9 MOV A,R1
\ 00000C 90DF4B MOV DPTR,#-0x20b5
\ 00000F F0 MOVX @DPTR,A
222 }
\ 000010 D083 POP DPH
\ 000012 D082 POP DPL
\ 000014 22 RET
223
\ In segment NEAR_CODE, align 1, keep-with-next
224 void halSetRadioShortAddr(SADDR saddr){
\ halSetRadioShortAddr:
\ 000000 C082 PUSH DPL
\ 000002 C083 PUSH DPH
\ 000004 ; Saved register size: 2
\ 000004 ; Auto size: 0
225 SHORTADDRL = (BYTE) (saddr);
\ 000004 EA MOV A,R2
\ 000005 90DF4E MOV DPTR,#-0x20b2
\ 000008 F0 MOVX @DPTR,A
226 SHORTADDRH = (BYTE) (saddr>>8);
\ 000009 EB MOV A,R3
\ 00000A F9 MOV R1,A
\ 00000B E9 MOV A,R1
\ 00000C 90DF4D MOV DPTR,#-0x20b3
\ 00000F F0 MOVX @DPTR,A
227 }
\ 000010 D083 POP DPH
\ 000012 D082 POP DPL
\ 000014 22 RET
228
\ In segment NEAR_CODE, align 1, keep-with-next
229 void halSetTxPower(BYTE val)
\ halSetTxPower:
230 {
\ 000000 74F7 MOV A,#-0x9
\ 000002 12.... LCALL ?FUNC_ENTER_XDATA
\ 000005 ; Saved register size: 9
\ 000005 ; Auto size: 8
\ 000005 74F8 MOV A,#-0x8
\ 000007 12.... LCALL ?ALLOC_XSTACK8
231 //val:0~7 ;0-min 7-max
232 BYTE VALTAB[]={0xE3,0xE7,0xEB,0xEF,0xF3,0xF7,0xFB,0xFF};
\ 00000A 90.... MOV DPTR,#`?<Constant {227, 231, 235, 239, 243, 247, 251,`
\ 00000D C082 PUSH DPL
\ 00000F C083 PUSH DPH
\ 000011 85..82 MOV DPL,?XSP + 0
\ 000014 85..83 MOV DPH,?XSP + 1
\ 000017 AC82 MOV R4,DPL
\ 000019 AD83 MOV R5,DPH
\ 00001B D083 POP DPH
\ 00001D D082 POP DPL
\ 00001F 7408 MOV A,#0x8
\ 000021 12.... LCALL ?MOVE_LONG8_XDATA_XDATA
233 if(val>7)return;
\ 000024 E9 MOV A,R1
\ 000025 C3 CLR C
\ 000026 9408 SUBB A,#0x8
\ 000028 501C JNC ??halSetTxPower_0
234 TXCTRLL=VALTAB[val];
\ 00002A 89.. MOV ?V0 + 0,R1
\ 00002C 75..00 MOV ?V0 + 1,#0x0
\ 00002F 85..82 MOV DPL,?XSP + 0
\ 000032 85..83 MOV DPH,?XSP + 1
\ 000035 E582 MOV A,DPL
\ 000037 25.. ADD A,?V0 + 0
\ 000039 F582 MOV DPL,A
\ 00003B E583 MOV A,DPH
\ 00003D 35.. ADDC A,?V0 + 1
\ 00003F F583 MOV DPH,A
\ 000041 E0 MOVX A,@DPTR
\ 000042 90DF0B MOV DPTR,#-0x20f5
\ 000045 F0 MOVX @DPTR,A
235 }
\ ??halSetTxPower_0:
\ 000046 7408 MOV A,#0x8
\ 000048 12.... LCALL ?DEALLOC_XSTACK8
\ 00004B 7F02 MOV R7,#0x2
\ 00004D 02.... LJMP ?FUNC_LEAVE_XDATA
236
237
\ In segment NEAR_CODE, align 1, keep-with-next
238 LRWPAN_STATUS_ENUM halInitRadio(PHY_FREQ_ENUM frequency, BYTE channel, RADIO_FLAGS radio_flags)
\ halInitRadio:
239 {
\ 000000 74F8 MOV A,#-0x8
\ 000002 12.... LCALL ?FUNC_ENTER_XDATA
\ 000005 ; Saved register size: 8
\ 000005 ; Auto size: 0
\ 000005 E9 MOV A,R1
\ 000006 FE MOV R6,A
\ 000007 EA MOV A,R2
\ 000008 FF MOV R7,A
240 LRWPAN_STATUS_ENUM status;
241 DEBUG_STRING(DBG_TX,"halInitRadio()\n");
\ 000009 90.... MOV DPTR,#debug_level
\ 00000C E0 MOVX A,@DPTR
\ 00000D C3 CLR C
\ 00000E 9402 SUBB A,#0x2
\ 000010 4007 JC ??halInitRadio_0
\ 000012 ; Setup parameters for call to function conPrintROMString_func
\ 000012 7A.. MOV R2,#(??xxxxromstr & 0xff)
\ 000014 7B.. MOV R3,#((??xxxxromstr >> 8) & 0xff)
\ 000016 12.... LCALL conPrintROMString_func
242
243 // Setting the frequency
244 status = halSetRadioIEEEFrequency(frequency, channel);
\ ??halInitRadio_0:
\ 000019 ; Setup parameters for call to function halSetRadioIEEEFrequency
\ 000019 EF MOV A,R7
\ 00001A FA MOV R2,A
\ 00001B EE MOV A,R6
\ 00001C F9 MOV R1,A
\ 00001D 12.... LCALL halSetRadioIEEEFrequency
\ 000020 E9 MOV A,R1
\ 000021 F5.. MOV ?V0 + 0,A
245 if (status != LRWPAN_STATUS_SUCCESS) return(status);
\ 000023 E5.. MOV A,?V0 + 0
\ 000025 6005 JZ ??halInitRadio_1
\ 000027 A9.. MOV R1,?V0 + 0
\ 000029 02.... LJMP ??halInitRadio_2
246
247 //turning on power to analog part of radio and waiting for voltage regulator.
248 RFPWR = 0x04;
\ ??halInitRadio_1:
\ 00002C 7404 MOV A,#0x4
\ 00002E 90DF17 MOV DPTR,#-0x20e9
\ 000031 F0 MOVX @DPTR,A
249 while((RFPWR & 0x10)){}
\ ??halInitRadio_3:
\ 000032 90DF17 MOV DPTR,#-0x20e9
\ 000035 E0 MOVX A,@DPTR
\ 000036 A2E4 MOV C,0xE0 /* A */.4
\ 000038 40F8 JC ??halInitRadio_3
250 //radio_flags.listen_mode=1; //debug
251 if (radio_flags.bits.listen_mode) {
\ 00003A 7408 MOV A,#0x8
\ 00003C 12.... LCALL ?XSTACK_DISP0_8
\ 00003F E0 MOVX A,@DPTR
\ 000040 5401 ANL A,#0x1
\ 000042 A2E0 MOV C,0xE0 /* A */.0
\ 000044 5010 JNC ??halInitRadio_4
252 //corresponds to promiscuous modes
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -