⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 demo.lst

📁 avr单片机的一些实际应用源码
💻 LST
📖 第 1 页 / 共 2 页
字号:
 259               		
 260               	/* #NOAPP */
 261               	.LBE5:
  71:demo.c        ****     while(boot_rww_busy())
  72:demo.c        ****         boot_rww_enable();
 263               	.LM17:
 264 00c0 07B6      		in __tmp_reg__,87-0x20
 265 00c2 06FE      		sbrs __tmp_reg__,6
 266 00c4 0CC0      		rjmp .L59
 267 00c6 81E1      		ldi r24,lo8(17)
 268               	.L71:
 269               	.LBB6:
 270 00c8 07B6      		in __tmp_reg__,87-0x20
 271 00ca 00FC      		sbrc __tmp_reg__,0
 272 00cc FDCF      		rjmp .L71
 273               	.L50:
 274 00ce E199      		sbic 60-0x20,1
 275 00d0 FECF      		rjmp .L50
 276               	/* #APP */
 277 00d2 8093 5700 		sts 87, r24
 278 00d6 E895      		spm
 279               		
 280               	/* #NOAPP */
 281               	.LBE6:
 282 00d8 07B6      		in __tmp_reg__,87-0x20
 283 00da 06FC      		sbrc __tmp_reg__,6
 284 00dc F5CF      		rjmp .L71
 285               	.L59:
  73:demo.c        ****     
  74:demo.c        ****     g_wPageIndex++;
 287               	.LM18:
 288 00de 4F5F      		subi r20,lo8(-(1))
 289 00e0 5F4F      		sbci r21,hi8(-(1))
 290 00e2 5093 0000 		sts (g_wPageIndex)+1,r21
 291 00e6 4093 0000 		sts g_wPageIndex,r20
 292               	/* epilogue: frame size=0 */
 293 00ea CF91      		pop r28
 294 00ec 1F91      		pop r17
 295 00ee 0F91      		pop r16
 296 00f0 0895      		ret
 297               	/* epilogue end (size=4) */
 298               	/* function WritePage size 132 (125) */
 302               	.global	ReadPage
 304               	ReadPage:
  75:demo.c        **** }
  76:demo.c        **** 
  77:demo.c        **** void ReadPage(void)
  78:demo.c        **** {
 306               	.LM19:
 307               	/* prologue: frame size=0 */
 308 00f2 1F93      		push r17
 309 00f4 CF93      		push r28
 310 00f6 DF93      		push r29
 311               	/* prologue end (size=3) */
 312 00f8 C0E0      		ldi r28,lo8(0)
 313 00fa D0E0      		ldi r29,hi8(0)
 314 00fc 1FE3      		ldi r17,lo8(63)
 315               	.L76:
 316               	.LBB7:
  79:demo.c        ****     uchar i;
  80:demo.c        ****     
  81:demo.c        ****     for(i=0;i<PAGE_SIZE;i++)
  82:demo.c        ****     	uart_putc(pgm_read_byte(i+(g_wPageIndex*PAGE_SIZE)));
 318               	.LM20:
 319 00fe E091 0000 		lds r30,g_wPageIndex
 320 0102 F091 0000 		lds r31,(g_wPageIndex)+1
 321 0106 76E0      		ldi r23,6
 322 0108 EE0F      	1:	lsl r30
 323 010a FF1F      		rol r31
 324 010c 7A95      		dec r23
 325 010e E1F7      		brne 1b
 326 0110 EC0F      		add r30,r28
 327 0112 FD1F      		adc r31,r29
 328               	/* #APP */
 329 0114 8491      		lpm r24, Z
 330               		
 331               	/* #NOAPP */
 332               	.LBE7:
 333 0116 74DF      		rcall uart_putc
 335               	.LM21:
 336 0118 1150      		subi r17,lo8(-(-1))
 337 011a 2196      		adiw r28,1
 338 011c 17FF      		sbrs r17,7
 339 011e EFCF      		rjmp .L76
  83:demo.c        **** 
  84:demo.c        **** 	g_wPageIndex++;
 341               	.LM22:
 342 0120 8091 0000 		lds r24,g_wPageIndex
 343 0124 9091 0000 		lds r25,(g_wPageIndex)+1
 344 0128 0196      		adiw r24,1
 345 012a 9093 0000 		sts (g_wPageIndex)+1,r25
 346 012e 8093 0000 		sts g_wPageIndex,r24
 347               	/* epilogue: frame size=0 */
 348 0132 DF91      		pop r29
 349 0134 CF91      		pop r28
 350 0136 1F91      		pop r17
 351 0138 0895      		ret
 352               	/* epilogue end (size=4) */
 353               	/* function ReadPage size 39 (32) */
 360               	.global	main
 362               	main:
  85:demo.c        **** }
  86:demo.c        **** 
  87:demo.c        **** int  main(void) 
  88:demo.c        **** {
 364               	.LM23:
 365               	/* prologue: frame size=0 */
 366 013a C0E0      		ldi r28,lo8(__stack - 0)
 367 013c D0E0      		ldi r29,hi8(__stack - 0)
 368 013e DEBF      		out __SP_H__,r29
 369 0140 CDBF      		out __SP_L__,r28
 370               	/* prologue end (size=4) */
  89:demo.c        **** 	uchar tmp;
  90:demo.c        **** 
  91:demo.c        **** 	//uart init
  92:demo.c        **** 	UBRRH=0;
 372               	.LM24:
 373 0142 10BC      		out 64-0x20,__zero_reg__
  93:demo.c        **** 	UBRRL=25;//9600 baud 6MHz:38  4MHz:25
 375               	.LM25:
 376 0144 89E1      		ldi r24,lo8(25)
 377 0146 89B9      		out 41-0x20,r24
  94:demo.c        **** 	UCSRB=(1<<RXEN)|(1<<TXEN);
 379               	.LM26:
 380 0148 88E1      		ldi r24,lo8(24)
 381 014a 8AB9      		out 42-0x20,r24
 382               	.L94:
  95:demo.c        **** 	
  96:demo.c        **** 	while(1)
  97:demo.c        **** 	{
  98:demo.c        **** 		tmp=uart_getc();//recv command
 384               	.LM27:
 385 014c 5DDF      		rcall uart_getc
  99:demo.c        **** 		
 100:demo.c        **** 		
 101:demo.c        **** 		switch(tmp)
 387               	.LM28:
 388 014e 9927      		clr r25
 389 0150 8F3A      		cpi r24,175
 390 0152 9105      		cpc r25,__zero_reg__
 391 0154 01F1      		breq .L85
 392 0156 803B      		cpi r24,176
 393 0158 9105      		cpc r25,__zero_reg__
 394 015a 3CF4      		brge .L89
 395 015c 803A      		cpi r24,160
 396 015e 9105      		cpc r25,__zero_reg__
 397 0160 E1F0      		breq .L86
 398 0162 8A3A      		cpi r24,170
 399 0164 9105      		cpc r25,__zero_reg__
 400 0166 D9F0      		breq .L87
 401 0168 F1CF      		rjmp .L94
 402               	.L89:
 403 016a 803B      		cpi r24,176
 404 016c 9105      		cpc r25,__zero_reg__
 405 016e 21F0      		breq .L83
 406 0170 8F3B      		cpi r24,191
 407 0172 9105      		cpc r25,__zero_reg__
 408 0174 51F0      		breq .L84
 409 0176 EACF      		rjmp .L94
 410               	.L83:
 102:demo.c        **** 		{
 103:demo.c        **** 			case 0xB0://设置页地址
 104:demo.c        **** 				g_wPageIndex=uart_getc();
 412               	.LM29:
 413 0178 47DF      		rcall uart_getc
 414 017a 9927      		clr r25
 415 017c 9093 0000 		sts (g_wPageIndex)+1,r25
 416 0180 8093 0000 		sts g_wPageIndex,r24
 105:demo.c        **** 				uart_putc(g_wPageIndex);
 418               	.LM30:
 419 0184 8091 0000 		lds r24,g_wPageIndex
 420 0188 0BC0      		rjmp .L93
 421               	.L84:
 106:demo.c        **** 				break;
 107:demo.c        **** 				
 108:demo.c        **** 			case 0xBF:
 109:demo.c        **** 				reset();
 423               	.LM31:
 424 018a E091 0000 		lds r30,reset
 425 018e F091 0000 		lds r31,(reset)+1
 426 0192 0995      		icall
 110:demo.c        **** 				break;
 428               	.LM32:
 429 0194 DBCF      		rjmp .L94
 430               	.L85:
 111:demo.c        **** 				
 112:demo.c        **** 			case 0xAF://写一页
 113:demo.c        **** 				WritePage();
 432               	.LM33:
 433 0196 3DDF      		rcall WritePage
 434 0198 02C0      		rjmp .L87
 435               	.L86:
 114:demo.c        **** 				uart_putc(UART_ACK);	//应答
 115:demo.c        **** 				break;
 116:demo.c        **** 				
 117:demo.c        **** 			case 0xA0://读一页
 118:demo.c        **** 				ReadPage();
 437               	.LM34:
 438 019a ABDF      		rcall ReadPage
 119:demo.c        **** 				break;
 440               	.LM35:
 441 019c D7CF      		rjmp .L94
 442               	.L87:
 120:demo.c        **** 				
 121:demo.c        **** 			case UART_ACK:
 122:demo.c        **** 				uart_putc(UART_ACK);
 444               	.LM36:
 445 019e 8AEA      		ldi r24,lo8(-86)
 446               	.L93:
 447 01a0 2FDF      		rcall uart_putc
 123:demo.c        **** 				break;
 449               	.LM37:
 450 01a2 D4CF      		rjmp .L94
 451               	/* epilogue: frame size=0 */
 452               	/* epilogue: noreturn */
 453               	/* epilogue end (size=0) */
 454               	/* function main size 53 (49) */
 456               		.comm g_aPageTemp,64,1
 460               		.text
 462               	Letext:
 463               	/* File "demo.c": code  233 = 0x00e9 ( 213), prologues  10, epilogues  10 */
DEFINED SYMBOLS
                            *ABS*:00000000 demo.c
                            *ABS*:0000003f __SREG__
                            *ABS*:0000003e __SP_H__
                            *ABS*:0000003d __SP_L__
                            *ABS*:00000000 __tmp_reg__
                            *ABS*:00000001 __zero_reg__
J:\DOCUME~1\tcf\LOCALS~1\Temp/cckjaaaa.s:72     .bss:00000000 reset
J:\DOCUME~1\tcf\LOCALS~1\Temp/cckjaaaa.s:78     .bss:00000002 g_wPageIndex
J:\DOCUME~1\tcf\LOCALS~1\Temp/cckjaaaa.s:85     .text:00000000 uart_putc
J:\DOCUME~1\tcf\LOCALS~1\Temp/cckjaaaa.s:106    .text:00000008 uart_getc
J:\DOCUME~1\tcf\LOCALS~1\Temp/cckjaaaa.s:130    .text:00000012 WritePage
                            *COM*:00000040 g_aPageTemp
J:\DOCUME~1\tcf\LOCALS~1\Temp/cckjaaaa.s:304    .text:000000f2 ReadPage
J:\DOCUME~1\tcf\LOCALS~1\Temp/cckjaaaa.s:362    .text:0000013a main
J:\DOCUME~1\tcf\LOCALS~1\Temp/cckjaaaa.s:462    .text:000001a4 Letext

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__stack

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -