📄 basic_rf_receive.lst
字号:
229 0090 8FE7 ldi r24,lo8(127)
230 0092 8FB9 out 47-0x20,r24
231 .L40:
232 0094 779B sbis 46-0x20,7
233 0096 FECF rjmp .L40
234 0098 1FB8 out 47-0x20,__zero_reg__
235 .L45:
236 009a 779B sbis 46-0x20,7
237 009c FECF rjmp .L45
238 009e 2FB1 in r18,47-0x20
239 00a0 C09A sbi 56-0x20,0
97:../../../lib/basic_rf/basic_rf_receive.c **** length &= BASIC_RF_LENGTH_MASK; // Ignore MSB
241 .LM18:
242 00a2 2F77 andi r18,lo8(127)
98:../../../lib/basic_rf/basic_rf_receive.c ****
99:../../../lib/basic_rf/basic_rf_receive.c **** // Ignore the packet if the length is too short
100:../../../lib/basic_rf/basic_rf_receive.c **** if (length < BASIC_RF_ACK_PACKET_SIZE) {
244 .LM19:
245 00a4 2530 cpi r18,lo8(5)
246 00a6 E4F4 brge .L48
101:../../../lib/basic_rf/basic_rf_receive.c **** FASTSPI_READ_FIFO_GARBAGE(length);
248 .LM20:
249 00a8 C098 cbi 56-0x20,0
250 00aa 8FE7 ldi r24,lo8(127)
251 00ac 8FB9 out 47-0x20,r24
252 .L52:
253 00ae 779B sbis 46-0x20,7
254 00b0 FECF rjmp .L52
255 .LBB2:
256 00b2 40E0 ldi r20,lo8(0)
257 00b4 3327 clr r19
258 00b6 27FD sbrc r18,7
259 00b8 3095 com r19
260 00ba 1216 cp __zero_reg__,r18
261 00bc 1306 cpc __zero_reg__,r19
262 00be 0CF0 brlt .+2
263 00c0 8DC0 rjmp .L117
264 00c2 819B sbis 48-0x20,1
265 00c4 8BC0 rjmp .L117
266 .L63:
267 00c6 1FB8 out 47-0x20,__zero_reg__
268 .L60:
269 00c8 779B sbis 46-0x20,7
270 00ca FECF rjmp .L60
271 00cc 4F5F subi r20,lo8(-(1))
272 00ce 842F mov r24,r20
273 00d0 9927 clr r25
274 00d2 8217 cp r24,r18
275 00d4 9307 cpc r25,r19
276 00d6 0CF0 brlt .+2
277 00d8 81C0 rjmp .L117
278 00da 8199 sbic 48-0x20,1
279 00dc F4CF rjmp .L63
280 00de 7EC0 rjmp .L117
281 .L48:
282 .LBE2:
102:../../../lib/basic_rf/basic_rf_receive.c ****
103:../../../lib/basic_rf/basic_rf_receive.c **** // Otherwise, if the length is valid, then proceed with the rest of the packet
104:../../../lib/basic_rf/basic_rf_receive.c **** } else {
105:../../../lib/basic_rf/basic_rf_receive.c ****
106:../../../lib/basic_rf/basic_rf_receive.c **** // Register the payload length
107:../../../lib/basic_rf/basic_rf_receive.c **** rfSettings.pRxInfo->length = length - BASIC_RF_PACKET_OVERHEAD_SIZE;
284 .LM21:
285 00e0 E091 0000 lds r30,rfSettings
286 00e4 F091 0000 lds r31,(rfSettings)+1
287 00e8 2B50 subi r18,lo8(-(-11))
288 00ea 2583 std Z+5,r18
289 00ec 255F subi r18,lo8(-(11))
108:../../../lib/basic_rf/basic_rf_receive.c ****
109:../../../lib/basic_rf/basic_rf_receive.c **** // Read the frame control field and the data sequence number
110:../../../lib/basic_rf/basic_rf_receive.c **** FASTSPI_READ_FIFO_NO_WAIT((BYTE*) &frameControlField, 2);
291 .LM22:
292 00ee C098 cbi 56-0x20,0
293 00f0 8FE7 ldi r24,lo8(127)
294 00f2 8FB9 out 47-0x20,r24
295 .L68:
296 00f4 779B sbis 46-0x20,7
297 00f6 FECF rjmp .L68
298 .LBB3:
299 00f8 90E0 ldi r25,lo8(0)
300 00fa AE01 movw r20,r28
301 00fc 4F5F subi r20,lo8(-(1))
302 00fe 5F4F sbci r21,hi8(-(1))
303 .L79:
304 0100 1FB8 out 47-0x20,__zero_reg__
305 .L76:
306 0102 779B sbis 46-0x20,7
307 0104 FECF rjmp .L76
308 0106 FA01 movw r30,r20
309 0108 E90F add r30,r25
310 010a F11D adc r31,__zero_reg__
311 010c 8FB1 in r24,47-0x20
312 010e 8083 st Z,r24
313 0110 9F5F subi r25,lo8(-(1))
314 0112 9230 cpi r25,lo8(2)
315 0114 A8F3 brlo .L79
316 .LBE3:
317 0116 C09A sbi 56-0x20,0
111:../../../lib/basic_rf/basic_rf_receive.c **** rfSettings.pRxInfo->ackRequest = !!(frameControlField & BASIC_RF_FCF_ACK_BM);
319 .LM23:
320 0118 E091 0000 lds r30,rfSettings
321 011c F091 0000 lds r31,(rfSettings)+1
322 0120 8981 ldd r24,Y+1
323 0122 9A81 ldd r25,Y+2
324 0124 35E0 ldi r19,5
325 0126 9695 1: lsr r25
326 0128 8795 ror r24
327 012a 3A95 dec r19
328 012c E1F7 brne 1b
329 012e 8170 andi r24,lo8(1)
330 0130 8087 std Z+8,r24
112:../../../lib/basic_rf/basic_rf_receive.c **** FASTSPI_READ_FIFO_BYTE(rfSettings.pRxInfo->seqNumber);
332 .LM24:
333 0132 C098 cbi 56-0x20,0
334 0134 8FE7 ldi r24,lo8(127)
335 0136 8FB9 out 47-0x20,r24
336 .L83:
337 0138 779B sbis 46-0x20,7
338 013a FECF rjmp .L83
339 013c 1FB8 out 47-0x20,__zero_reg__
340 .L88:
341 013e 779B sbis 46-0x20,7
342 0140 FECF rjmp .L88
343 0142 E091 0000 lds r30,rfSettings
344 0146 F091 0000 lds r31,(rfSettings)+1
345 014a 8FB1 in r24,47-0x20
346 014c 8083 st Z,r24
347 014e C09A sbi 56-0x20,0
113:../../../lib/basic_rf/basic_rf_receive.c ****
114:../../../lib/basic_rf/basic_rf_receive.c **** // Is this an acknowledgment packet?
115:../../../lib/basic_rf/basic_rf_receive.c **** if ((length == BASIC_RF_ACK_PACKET_SIZE) && (frameControlField == BASIC_RF_ACK_FCF) && (rfSett
349 .LM25:
350 0150 2530 cpi r18,lo8(5)
351 0152 31F5 brne .L91
352 0154 8981 ldd r24,Y+1
353 0156 9A81 ldd r25,Y+2
354 0158 0297 sbiw r24,2
355 015a 21F5 brne .L200
356 015c E091 0000 lds r30,rfSettings
357 0160 F091 0000 lds r31,(rfSettings)+1
358 0164 9081 ld r25,Z
359 0166 8091 0000 lds r24,rfSettings+2
360 016a 9817 cp r25,r24
361 016c D9F4 brne .L200
116:../../../lib/basic_rf/basic_rf_receive.c ****
117:../../../lib/basic_rf/basic_rf_receive.c **** // Read the footer and check for CRC OK
118:../../../lib/basic_rf/basic_rf_receive.c **** FASTSPI_READ_FIFO_NO_WAIT((BYTE*) pFooter, 2);
363 .LM26:
364 016e C098 cbi 56-0x20,0
365 0170 8FE7 ldi r24,lo8(127)
366 0172 8FB9 out 47-0x20,r24
367 .L95:
368 0174 779B sbis 46-0x20,7
369 0176 FECF rjmp .L95
370 .LBB4:
371 0178 90E0 ldi r25,lo8(0)
372 .L106:
373 017a 1FB8 out 47-0x20,__zero_reg__
374 .L103:
375 017c 779B sbis 46-0x20,7
376 017e FECF rjmp .L103
377 0180 FE01 movw r30,r28
378 0182 E90F add r30,r25
379 0184 F11D adc r31,__zero_reg__
380 0186 8FB1 in r24,47-0x20
381 0188 8383 std Z+3,r24
382 018a 9F5F subi r25,lo8(-(1))
383 018c 9230 cpi r25,lo8(2)
384 018e A8F3 brlo .L106
385 .LBE4:
386 0190 C09A sbi 56-0x20,0
119:../../../lib/basic_rf/basic_rf_receive.c ****
120:../../../lib/basic_rf/basic_rf_receive.c **** // Indicate the successful ack reception (this flag is polled by the transmission routine)
121:../../../lib/basic_rf/basic_rf_receive.c **** if (pFooter[1] & BASIC_RF_CRC_OK_BM) rfSettings.ackReceived = TRUE;
388 .LM27:
389 0192 8C81 ldd r24,Y+4
390 0194 87FF sbrs r24,7
391 0196 A3C0 rjmp .L23
392 0198 81E0 ldi r24,lo8(1)
393 019a 8093 0000 sts rfSettings+3,r24
394 019e 9FC0 rjmp .L23
395 .L91:
122:../../../lib/basic_rf/basic_rf_receive.c ****
123:../../../lib/basic_rf/basic_rf_receive.c **** // Too small to be a valid packet?
124:../../../lib/basic_rf/basic_rf_receive.c **** } else if (length < BASIC_RF_PACKET_OVERHEAD_SIZE) {
397 .LM28:
398 01a0 2B30 cpi r18,lo8(11)
399 01a2 F4F4 brge .L109
400 .L200:
125:../../../lib/basic_rf/basic_rf_receive.c **** FASTSPI_READ_FIFO_GARBAGE(length - 3);
402 .LM29:
403 01a4 C098 cbi 56-0x20,0
404 01a6 8FE7 ldi r24,lo8(127)
405 01a8 8FB9 out 47-0x20,r24
406 .L113:
407 01aa 779B sbis 46-0x20,7
408 01ac FECF rjmp .L113
409 .LBB5:
410 01ae 40E0 ldi r20,lo8(0)
411 01b0 822F mov r24,r18
412 01b2 9927 clr r25
413 01b4 87FD sbrc r24,7
414 01b6 9095 com r25
415 01b8 0397 sbiw r24,3
416 01ba 1816 cp __zero_reg__,r24
417 01bc 1906 cpc __zero_reg__,r25
418 01be 74F4 brge .L117
419 01c0 819B sbis 48-0x20,1
420 01c2 0CC0 rjmp .L117
421 01c4 9C01 movw r18,r24
422 .L124:
423 01c6 1FB8 out 47-0x20,__zero_reg__
424 .L121:
425 01c8 779B sbis 46-0x20,7
426 01ca FECF rjmp .L121
427 01cc 4F5F subi r20,lo8(-(1))
428 01ce 842F mov r24,r20
429 01d0 9927 clr r25
430 01d2 8217 cp r24,r18
431 01d4 9307 cpc r25,r19
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -