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 + -
显示快捷键?