cc2420db_library.lst
来自「MatLab图像传感器网络仿真平台WiSNAP」· LST 代码 · 共 1,465 行 · 第 1/5 页
LST
1,465 行
166:cc2420db_library.c **** value = _SFR_MEM8(address);
244 .LM20:
245 0092 E981 ldd r30,Y+1
246 0094 FA81 ldd r31,Y+2
247 0096 8081 ld r24,Z
248 0098 9927 clr r25
167:cc2420db_library.c ****
168:cc2420db_library.c **** /* generate command response */
169:cc2420db_library.c **** status = sprintf(&response[0], ":%c%02X%02X\r\n",
250 .LM21:
251 009a 9F93 push r25
252 009c 8F93 push r24
253 009e 8981 ldd r24,Y+1
254 00a0 9A81 ldd r25,Y+2
255 00a2 9F93 push r25
256 00a4 8F93 push r24
257 00a6 F801 movw r30,r16
258 00a8 8291 ld r24,-Z
259 00aa 9927 clr r25
260 00ac 9F93 push r25
261 00ae 8F93 push r24
262 00b0 80E0 ldi r24,lo8(.LC1)
263 00b2 90E0 ldi r25,hi8(.LC1)
264 00b4 9F93 push r25
265 00b6 8F93 push r24
266 00b8 FF92 push r15
267 00ba EF92 push r14
268 00bc 0E94 0000 call sprintf
170:cc2420db_library.c **** command[0], address, value);
171:cc2420db_library.c ****
172:cc2420db_library.c **** /* return status */
173:cc2420db_library.c **** return status;
270 .LM22:
271 00c0 2DB7 in r18,__SP_L__
272 00c2 3EB7 in r19,__SP_H__
273 00c4 205F subi r18,lo8(-(16))
274 00c6 3F4F sbci r19,hi8(-(16))
275 00c8 0FB6 in __tmp_reg__,__SREG__
276 00ca F894 cli
277 00cc 3EBF out __SP_H__,r19
278 00ce 0FBE out __SREG__,__tmp_reg__
279 00d0 2DBF out __SP_L__,r18
280 /* epilogue: frame size=2 */
281 00d2 2296 adiw r28,2
282 00d4 0FB6 in __tmp_reg__,__SREG__
283 00d6 F894 cli
284 00d8 DEBF out __SP_H__,r29
285 00da 0FBE out __SREG__,__tmp_reg__
286 00dc CDBF out __SP_L__,r28
287 00de DF91 pop r29
288 00e0 CF91 pop r28
289 00e2 1F91 pop r17
290 00e4 0F91 pop r16
291 00e6 FF90 pop r15
292 00e8 EF90 pop r14
293 00ea 0895 ret
294 /* epilogue end (size=13) */
295 /* function read_at_register size 77 (50) */
299 .Lscope2:
301 .data
302 .LC2:
303 0012 2532 5825 .string "%2X%2X"
303 3258 00
304 .text
308 .global write_at_register
310 write_at_register:
174:cc2420db_library.c **** }
175:cc2420db_library.c ****
176:cc2420db_library.c **** /*******************************************************************************
177:cc2420db_library.c **** * Function: Write ATmega128 register. *
178:cc2420db_library.c **** *******************************************************************************/
179:cc2420db_library.c **** int write_at_register(char *command, char *response)
180:cc2420db_library.c **** {
312 .LM23:
313 /* prologue: frame size=4 */
314 00ec EF92 push r14
315 00ee FF92 push r15
316 00f0 0F93 push r16
317 00f2 1F93 push r17
318 00f4 CF93 push r28
319 00f6 DF93 push r29
320 00f8 CDB7 in r28,__SP_L__
321 00fa DEB7 in r29,__SP_H__
322 00fc 2497 sbiw r28,4
323 00fe 0FB6 in __tmp_reg__,__SREG__
324 0100 F894 cli
325 0102 DEBF out __SP_H__,r29
326 0104 0FBE out __SREG__,__tmp_reg__
327 0106 CDBF out __SP_L__,r28
328 /* prologue end (size=14) */
329 0108 8C01 movw r16,r24
330 010a 7B01 movw r14,r22
181:cc2420db_library.c **** int status;
182:cc2420db_library.c **** unsigned int address = 0, value = 0;
332 .LM24:
333 010c 80E0 ldi r24,lo8(0)
334 010e 90E0 ldi r25,hi8(0)
335 0110 8B83 std Y+3,r24
336 0112 9C83 std Y+4,r25
337 0114 8983 std Y+1,r24
338 0116 9A83 std Y+2,r25
183:cc2420db_library.c ****
184:cc2420db_library.c **** /* parse command argument(s) */
185:cc2420db_library.c **** status = sscanf(&command[1], "%2X%2X", &address, &value);
340 .LM25:
341 0118 CE01 movw r24,r28
342 011a 0196 adiw r24,1
343 011c 9F93 push r25
344 011e 8F93 push r24
345 0120 CE01 movw r24,r28
346 0122 0396 adiw r24,3
347 0124 9F93 push r25
348 0126 8F93 push r24
349 0128 80E0 ldi r24,lo8(.LC2)
350 012a 90E0 ldi r25,hi8(.LC2)
351 012c 9F93 push r25
352 012e 8F93 push r24
353 0130 0F5F subi r16,lo8(-(1))
354 0132 1F4F sbci r17,hi8(-(1))
355 0134 1F93 push r17
356 0136 0F93 push r16
357 0138 0E94 0000 call sscanf
186:cc2420db_library.c ****
187:cc2420db_library.c **** /* execute command */
188:cc2420db_library.c **** _SFR_MEM8(address) = value;
359 .LM26:
360 013c EB81 ldd r30,Y+3
361 013e FC81 ldd r31,Y+4
362 0140 8981 ldd r24,Y+1
363 0142 8083 st Z,r24
189:cc2420db_library.c ****
190:cc2420db_library.c **** /* generate command response */
191:cc2420db_library.c **** status = sprintf(&response[0], ":%c%02X%02X\r\n",
365 .LM27:
366 0144 8981 ldd r24,Y+1
367 0146 9A81 ldd r25,Y+2
368 0148 9F93 push r25
369 014a 8F93 push r24
370 014c 8B81 ldd r24,Y+3
371 014e 9C81 ldd r25,Y+4
372 0150 9F93 push r25
373 0152 8F93 push r24
374 0154 F801 movw r30,r16
375 0156 8291 ld r24,-Z
376 0158 9927 clr r25
377 015a 9F93 push r25
378 015c 8F93 push r24
379 015e 80E0 ldi r24,lo8(.LC1)
380 0160 90E0 ldi r25,hi8(.LC1)
381 0162 9F93 push r25
382 0164 8F93 push r24
383 0166 FF92 push r15
384 0168 EF92 push r14
385 016a 0E94 0000 call sprintf
192:cc2420db_library.c **** command[0], address, value);
193:cc2420db_library.c ****
194:cc2420db_library.c **** /* return status */
195:cc2420db_library.c **** return status;
387 .LM28:
388 016e 2DB7 in r18,__SP_L__
389 0170 3EB7 in r19,__SP_H__
390 0172 2E5E subi r18,lo8(-(18))
391 0174 3F4F sbci r19,hi8(-(18))
392 0176 0FB6 in __tmp_reg__,__SREG__
393 0178 F894 cli
394 017a 3EBF out __SP_H__,r19
395 017c 0FBE out __SREG__,__tmp_reg__
396 017e 2DBF out __SP_L__,r18
397 /* epilogue: frame size=4 */
398 0180 2496 adiw r28,4
399 0182 0FB6 in __tmp_reg__,__SREG__
400 0184 F894 cli
401 0186 DEBF out __SP_H__,r29
402 0188 0FBE out __SREG__,__tmp_reg__
403 018a CDBF out __SP_L__,r28
404 018c DF91 pop r29
405 018e CF91 pop r28
406 0190 1F91 pop r17
407 0192 0F91 pop r16
408 0194 FF90 pop r15
409 0196 EF90 pop r14
410 0198 0895 ret
411 /* epilogue end (size=13) */
412 /* function write_at_register size 87 (60) */
416 .Lscope3:
418 .data
419 .LC3:
420 0019 3A25 6325 .string ":%c%02X%04X\r\n"
420 3032 5825
420 3034 580D
420 0A00
421 .text
425 .global read_cc_register
427 read_cc_register:
196:cc2420db_library.c **** }
197:cc2420db_library.c ****
198:cc2420db_library.c **** /*******************************************************************************
199:cc2420db_library.c **** * Function: Read CC2420 register. *
200:cc2420db_library.c **** *******************************************************************************/
201:cc2420db_library.c **** int read_cc_register(char *command, char *response)
202:cc2420db_library.c **** {
429 .LM29:
430 /* prologue: frame size=2 */
431 019a EF92 push r14
432 019c FF92 push r15
433 019e 0F93 push r16
434 01a0 1F93 push r17
435 01a2 CF93 push r28
436 01a4 DF93 push r29
437 01a6 CDB7 in r28,__SP_L__
438 01a8 DEB7 in r29,__SP_H__
439 01aa 2297 sbiw r28,2
440 01ac 0FB6 in __tmp_reg__,__SREG__
441 01ae F894 cli
442 01b0 DEBF out __SP_H__,r29
443 01b2 0FBE out __SREG__,__tmp_reg__
444 01b4 CDBF out __SP_L__,r28
445 /* prologue end (size=14) */
446 01b6 8C01 movw r16,r24
447 01b8 7B01 movw r14,r22
203:cc2420db_library.c **** int status;
204:cc2420db_library.c **** unsigned int address = 0, value = 0;
449 .LM30:
450 01ba 1982 std Y+1,__zero_reg__
451 01bc 1A82 std Y+2,__zero_reg__
205:cc2420db_library.c ****
206:cc2420db_library.c **** /* parse command argument(s) */
207:cc2420db_library.c **** status = sscanf(&command[1], "%2X", &address);
453 .LM31:
454 01be CE01 movw r24,r28
455 01c0 0196 adiw r24,1
456 01c2 9F93 push r25
457 01c4 8F93 push r24
458 01c6 80E0 ldi r24,lo8(.LC0)
459 01c8 90E0 ldi r25,hi8(.LC0)
460 01ca 9F93 push r25
461 01cc 8F93 push r24
462 01ce 0F5F subi r16,lo8(-(1))
463 01d0 1F4F sbci r17,hi8(-(1))
464 01d2 1F93 push r17
465 01d4 0F93 push r16
466 01d6 0150 subi r16,lo8(-(-1))
467 01d8 1040 sbci r17,hi8(-(-1))
468 01da 0E94 0000 call sscanf
208:cc2420db_library.c ****
209:cc2420db_library.c **** /* execute command */
210:cc2420db_library.c **** FASTSPI_GETREG(address, value);
470 .LM32:
471 01de C098 cbi 56-0x20,0
472 01e0 8981 ldd r24,Y+1
473 01e2 8064 ori r24,lo8(64)
474 01e4 8FB9 out 47-0x20,r24
475 01e6 2DB7 in r18,__SP_L__
476 01e8 3EB7 in r19,__SP_H__
477 01ea 2A5F subi r18,lo8(-(6))
478 01ec 3F4F sbci r19,hi8(-(6))
479 01ee 0FB6 in __tmp_reg__,__SREG__
480 01f0 F894 cli
481 01f2 3EBF out __SP_H__,r19
482 01f4 0FBE out __SREG__,__tmp_reg__
483 01f6 2DBF out __SP_L__,r18
484 .L11:
486 .LM33:
487 01f8 779B sbis 46-0x20,7
488 01fa FECF rjmp .L11
489 01fc 1FB8 out 47-0x20,__zero_reg__
490 .L16:
491 01fe 779B sbis 46-0x20,7
492 0200 FECF rjmp .L16
493 0202 8FB1 in r24,47-0x20
494 0204 9927 clr r25
495 0206 382F mov r19,r24
496 0208 2227 clr r18
497 020a 1FB8 out 47-0x20,__zero_reg__
498 .L20:
499 020c 779B sbis 46-0x20,7
500 020e FECF rjmp .L20
501 0210 8FB1 in r24,47-0x20
502 0212 9927 clr r25
503 0214 282B or r18,r24
504 0216 392B or r19,r25
505 0218 C09A sbi 56-0x20,0
211:cc2420db_library.c ****
212:cc2420db_library.c **** /* generate command response */
213:cc2420db_library.c **** status = sprintf(&response[0], ":%c%02X%04X\r\n",
507 .LM34:
508 021a 3F93 push r19
509 021c 2F93 push r18
510 021e 8981 ldd r24,Y+1
511 0220 9A81 ldd r25,Y+2
512 0222 9F93 push r25
513 0224 8F93 push r24
514 0226 F801 movw r30,r16
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?