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

📄 main.lst

📁 AVRGCC编写的很好用的串口通讯源程序
💻 LST
字号:
   1               		.file	"main.c"
   2               		.arch atmega16
   3               	__SREG__ = 0x3f
   4               	__SP_H__ = 0x3e
   5               	__SP_L__ = 0x3d
   6               	__tmp_reg__ = 0
   7               	__zero_reg__ = 1
   8               		.global __do_copy_data
   9               		.global __do_clear_bss
  11               		.text
  12               	.Ltext0:
  93               	.global	DisplayTcb
  94               		.section	.progmem.data,"a",@progbits
  97               	DisplayTcb:
  98 0000 0000      		.word	DisplayStk+134
  99 0002 0000      		.word	pm(Display)
 100 0004 0000      		.word	DisplayPid
 101 0006 05        		.byte	5
 102               	.global	KeyPressTcb
 105               	KeyPressTcb:
 106 0007 0000      		.word	KeyPressStk+134
 107 0009 0000      		.word	pm(KeyPress)
 108 000b 0000      		.word	KeyPressPid
 109 000d 05        		.byte	5
 110               		.text
 112               	.global	__vector_9
 114               	__vector_9:
   1:main.c        **** #include <stdio.h>
   2:main.c        **** #include <string.h>
   3:main.c        **** #include <avr/io.h>
   4:main.c        **** #include <avr/pgmspace.h>
   5:main.c        **** 
   6:main.c        **** #include <avrx/avrx.h>
   7:main.c        **** 
   8:main.c        **** //#include "hardware.h"
   9:main.c        **** #include "uart.h"
  10:main.c        **** 
  11:main.c        **** Mutex key_pressed;
  12:main.c        **** TimerControlBlock delay;
  13:main.c        **** 
  14:main.c        **** // 1ms
  15:main.c        **** AVRX_SIGINT(SIG_OVERFLOW0) 
  16:main.c        **** {
 116               	.LM1:
 117               	/* prologue: frame size=0 */
 118               	/* prologue: naked */
 119               	/* prologue end (size=0) */
  17:main.c        **** 	IntProlog();
 121               	.LM2:
 122 0000 0E94 0000 		call IntProlog
  18:main.c        ****     TCNT0 = (0xFF - F_CPU / 256 / 1000);//TCNT0_INIT;
 124               	.LM3:
 125 0004 83EE      		ldi r24,lo8(-29)
 126 0006 82BF      		out 82-0x20,r24
  19:main.c        **** 	AvrXTimerHandler();
 128               	.LM4:
 129 0008 0E94 0000 		call AvrXTimerHandler
  20:main.c        **** 	Epilog();
 131               	.LM5:
 132 000c 0E94 0000 		call Epilog
 133               	/* epilogue: frame size=0 */
 134               	/* epilogue: naked */
 135               	/* epilogue end (size=0) */
 136               	/* function __vector_9 size 8 (8) */
 138               	.Lscope0:
 140               	.global	__vector_1
 142               	__vector_1:
  21:main.c        **** }
  22:main.c        **** 
  23:main.c        **** AVRX_SIGINT(SIG_INTERRUPT0) 
  24:main.c        **** {
 144               	.LM6:
 145               	/* prologue: frame size=0 */
 146               	/* prologue: naked */
 147               	/* prologue end (size=0) */
  25:main.c        **** 	IntProlog();
 149               	.LM7:
 150 0010 0E94 0000 		call IntProlog
  26:main.c        **** 	AvrXSetSemaphore(&key_pressed);
 152               	.LM8:
 153 0014 80E0      		ldi r24,lo8(key_pressed)
 154 0016 90E0      		ldi r25,hi8(key_pressed)
 155 0018 0E94 0000 		call AvrXSetSemaphore
  27:main.c        **** 	Epilog();
 157               	.LM9:
 158 001c 0E94 0000 		call Epilog
 159               	/* epilogue: frame size=0 */
 160               	/* epilogue: naked */
 161               	/* epilogue end (size=0) */
 162               	/* function __vector_1 size 8 (8) */
 164               	.Lscope1:
 165               		.section	.progmem.data
 168               	__c.1:
 169 000e 6B65 7920 		.string	"key bn\326\320\271\372 pool pressed!\r"
 169      626E D6D0 
 169      B9FA 2070 
 169      6F6F 6C20 
 169      7072 6573 
 170               		.text
 172               	.global	KeyPress
 174               	KeyPress:
  28:main.c        **** }
  29:main.c        **** 
  30:main.c        **** AVRX_GCC_TASKDEF(KeyPress, 100, 5)
  31:main.c        **** {
 176               	.LM10:
 177               	/* prologue: frame size=0 */
 178               	/* prologue: naked */
 179               	/* prologue end (size=0) */
  32:main.c        **** 	MCUCR |= _BV(ISC01) | _BV(ISC00);
 181               	.LM11:
 182 0020 85B7      		in r24,85-0x20
 183 0022 8360      		ori r24,lo8(3)
 184 0024 85BF      		out 85-0x20,r24
  33:main.c        **** 	GIFR |= _BV(INTF0);
 186               	.LM12:
 187 0026 8AB7      		in r24,90-0x20
 188 0028 8064      		ori r24,lo8(64)
 189 002a 8ABF      		out 90-0x20,r24
  34:main.c        **** 	GICR |= _BV(INT0);
 191               	.LM13:
 192 002c 8BB7      		in r24,91-0x20
 193 002e 8064      		ori r24,lo8(64)
 194 0030 8BBF      		out 91-0x20,r24
 195               	.L12:
  35:main.c        **** 	
  36:main.c        **** 	while(1)
  37:main.c        **** 	{
  38:main.c        **** 		while(1)
  39:main.c        **** 		{
  40:main.c        **** 			AvrXResetSemaphore(&key_pressed);
 197               	.LM14:
 198 0032 80E0      		ldi r24,lo8(key_pressed)
 199 0034 90E0      		ldi r25,hi8(key_pressed)
 200 0036 0E94 0000 		call AvrXResetSemaphore
  41:main.c        **** 			AvrXWaitSemaphore(&key_pressed);
 202               	.LM15:
 203 003a 80E0      		ldi r24,lo8(key_pressed)
 204 003c 90E0      		ldi r25,hi8(key_pressed)
 205 003e 0E94 0000 		call AvrXWaitSemaphore
  42:main.c        **** 			AvrXDelay(&delay, 20);
 207               	.LM16:
 208 0042 64E1      		ldi r22,lo8(20)
 209 0044 70E0      		ldi r23,hi8(20)
 210 0046 80E0      		ldi r24,lo8(delay)
 211 0048 90E0      		ldi r25,hi8(delay)
 212 004a 0E94 0000 		call AvrXDelay
  43:main.c        **** 			if (PIND & _BV(PD2)) break;
 214               	.LM17:
 215 004e 829B      		sbis 48-0x20,2
 216 0050 F0CF      		rjmp .L12
  44:main.c        **** 		}
  45:main.c        **** 		puts_P(PSTR("key bn中国 pool pressed!\r"));
 218               	.LM18:
 219 0052 80E0      		ldi r24,lo8(__c.1)
 220 0054 90E0      		ldi r25,hi8(__c.1)
 221 0056 0E94 0000 		call puts_P
 222 005a EBCF      		rjmp .L12
 223               	/* epilogue: frame size=0 */
 224               	/* epilogue: naked */
 225               	/* epilogue end (size=0) */
 226               	/* function KeyPress size 30 (30) */
 228               	.Lscope2:
 229               		.section	.progmem.data
 232               	__c.0:
 233 0028 3031 3233 		.string	"0123456789\326\320\273\252\310\313\303\361\271\262\272\315\271\372\315\362\313\352\243\24
 233      3435 3637 
 233      3839 D6D0 
 233      BBAA C8CB 
 233      C3F1 B9B2 
 234               		.text
 236               	.global	Display
 238               	Display:
  46:main.c        **** 	}
  47:main.c        **** }
  48:main.c        **** 
  49:main.c        **** AVRX_GCC_TASKDEF(Display, 100, 5)
  50:main.c        **** {
 240               	.LM19:
 241               	/* prologue: frame size=0 */
 242               	/* prologue: naked */
 243               	/* prologue end (size=0) */
  51:main.c        **** 	DDRB |= _BV(PB1);
 245               	.LM20:
 246 005c B99A      		sbi 55-0x20,1
 247               	.L14:
  52:main.c        **** 	
  53:main.c        **** 	while(1)
  54:main.c        **** 	{
  55:main.c        **** 		puts_P(PSTR("0123456789中华人民共和国万岁!\r"));
 249               	.LM21:
 250 005e 80E0      		ldi r24,lo8(__c.0)
 251 0060 90E0      		ldi r25,hi8(__c.0)
 252 0062 0E94 0000 		call puts_P
  56:main.c        **** 		PORTB &= ~_BV(PB1);
 254               	.LM22:
 255 0066 C198      		cbi 56-0x20,1
  57:main.c        **** 		AvrXDelay(&delay, 20);
 257               	.LM23:
 258 0068 64E1      		ldi r22,lo8(20)
 259 006a 70E0      		ldi r23,hi8(20)
 260 006c 80E0      		ldi r24,lo8(delay)
 261 006e 90E0      		ldi r25,hi8(delay)
 262 0070 0E94 0000 		call AvrXDelay
  58:main.c        **** 		PORTB |= _BV(PB1);
 264               	.LM24:
 265 0074 C19A      		sbi 56-0x20,1
  59:main.c        **** 		AvrXDelay(&delay, 980);
 267               	.LM25:
 268 0076 64ED      		ldi r22,lo8(980)
 269 0078 73E0      		ldi r23,hi8(980)
 270 007a 80E0      		ldi r24,lo8(delay)
 271 007c 90E0      		ldi r25,hi8(delay)
 272 007e 0E94 0000 		call AvrXDelay
 273 0082 EDCF      		rjmp .L14
 274               	/* epilogue: frame size=0 */
 275               	/* epilogue: naked */
 276               	/* epilogue end (size=0) */
 277               	/* function Display size 20 (20) */
 279               	.Lscope3:
 281               	.global	main
 283               	main:
  60:main.c        **** 	}
  61:main.c        **** }
  62:main.c        **** 
  63:main.c        **** int
  64:main.c        **** main(void)
  65:main.c        **** {
 285               	.LM26:
 286               	/* prologue: frame size=0 */
 287 0084 C0E0      		ldi r28,lo8(__stack - 0)
 288 0086 D0E0      		ldi r29,hi8(__stack - 0)
 289 0088 DEBF      		out __SP_H__,r29
 290 008a CDBF      		out __SP_L__,r28
 291               	/* prologue end (size=4) */
  66:main.c        **** 	//OSCCAL = 0xB7;
  67:main.c        **** 
  68:main.c        **** 	AvrXSetKernelStack(0);
 293               	.LM27:
 294 008c 80E0      		ldi r24,lo8(0)
 295 008e 90E0      		ldi r25,hi8(0)
 296 0090 0E94 0000 		call AvrXSetKernelStack
  69:main.c        **** 
  70:main.c        **** 	// Analog Comparator initialization
  71:main.c        **** 	// Analog Comparator: Off
  72:main.c        **** 	// Analog Comparator Input Capture by Timer/Counter 1: Off
  73:main.c        **** 	// Analog Comparator Output: Off
  74:main.c        **** 	ACSR = 0x80;
 298               	.LM28:
 299 0094 80E8      		ldi r24,lo8(-128)
 300 0096 88B9      		out 40-0x20,r24
  75:main.c        **** 	SFIOR = 0x00;
 302               	.LM29:
 303 0098 10BE      		out 80-0x20,__zero_reg__
  76:main.c        **** 
  77:main.c        **** 	TCCR0 = _BV(CS02);//T0MC8_CK256; 	// Set up Timer0 for CLK/256 rate
 305               	.LM30:
 306 009a 84E0      		ldi r24,lo8(4)
 307 009c 83BF      		out 83-0x20,r24
  78:main.c        **** 	TCNT0 = (0xFF - F_CPU / 256 / 1000);//TCNT0_INIT;
 309               	.LM31:
 310 009e 83EE      		ldi r24,lo8(-29)
 311 00a0 82BF      		out 82-0x20,r24
  79:main.c        **** 	TIMSK |= _BV(TOIE0);  	// Enable Timer0 overflow interrupt
 313               	.LM32:
 314 00a2 89B7      		in r24,89-0x20
 315 00a4 8160      		ori r24,lo8(1)
 316 00a6 89BF      		out 89-0x20,r24
  80:main.c        **** 
  81:main.c        **** 	UartInit();
 318               	.LM33:
 319 00a8 0E94 0000 		call UartInit
  82:main.c        **** 	
  83:main.c        **** 	AvrXRunTask(TCB(Display));
 321               	.LM34:
 322 00ac 80E0      		ldi r24,lo8(DisplayTcb)
 323 00ae 90E0      		ldi r25,hi8(DisplayTcb)
 324 00b0 0E94 0000 		call AvrXRunTask
  84:main.c        **** 	AvrXRunTask(TCB(KeyPress));
 326               	.LM35:
 327 00b4 80E0      		ldi r24,lo8(KeyPressTcb)
 328 00b6 90E0      		ldi r25,hi8(KeyPressTcb)
 329 00b8 0E94 0000 		call AvrXRunTask
  85:main.c        **** 
  86:main.c        ****     Epilog();                   // Switch from AvrX Stack to first task
 331               	.LM36:
 332 00bc 0E94 0000 		call Epilog
  87:main.c        **** 
  88:main.c        **** 	return 0;
  89:main.c        **** }
 334               	.LM37:
 335 00c0 80E0      		ldi r24,lo8(0)
 336 00c2 90E0      		ldi r25,hi8(0)
 337               	/* epilogue: frame size=0 */
 338 00c4 0C94 0000 		jmp exit
 339               	/* epilogue end (size=2) */
 340               	/* function main size 34 (28) */
 342               	.Lscope4:
 343               		.comm key_pressed,2,1
 344               		.comm delay,6,1
 345               		.comm KeyPressStk,135,1
 346               		.comm KeyPressPid,6,1
 347               		.comm DisplayStk,135,1
 348               		.comm DisplayPid,6,1
 357               		.text
 359               	Letext:
 360               	/* File "main.c": code  100 = 0x0064 (  94), prologues   4, epilogues   2 */
DEFINED SYMBOLS
                            *ABS*:00000000 main.c
                            *ABS*:0000003f __SREG__
                            *ABS*:0000003e __SP_H__
                            *ABS*:0000003d __SP_L__
                            *ABS*:00000000 __tmp_reg__
                            *ABS*:00000001 __zero_reg__
C:\DOCUME~1\KAIFA\LOCALS~1\Temp/ccO8aaaa.s:97     .progmem.data:00000000 DisplayTcb
                            *COM*:00000087 DisplayStk
C:\DOCUME~1\KAIFA\LOCALS~1\Temp/ccO8aaaa.s:238    .text:0000005c Display
                            *COM*:00000006 DisplayPid
C:\DOCUME~1\KAIFA\LOCALS~1\Temp/ccO8aaaa.s:105    .progmem.data:00000007 KeyPressTcb
                            *COM*:00000087 KeyPressStk
C:\DOCUME~1\KAIFA\LOCALS~1\Temp/ccO8aaaa.s:174    .text:00000020 KeyPress
                            *COM*:00000006 KeyPressPid
C:\DOCUME~1\KAIFA\LOCALS~1\Temp/ccO8aaaa.s:114    .text:00000000 __vector_9
C:\DOCUME~1\KAIFA\LOCALS~1\Temp/ccO8aaaa.s:142    .text:00000010 __vector_1
                            *COM*:00000002 key_pressed
C:\DOCUME~1\KAIFA\LOCALS~1\Temp/ccO8aaaa.s:168    .progmem.data:0000000e __c.1
                            *COM*:00000006 delay
C:\DOCUME~1\KAIFA\LOCALS~1\Temp/ccO8aaaa.s:232    .progmem.data:00000028 __c.0
C:\DOCUME~1\KAIFA\LOCALS~1\Temp/ccO8aaaa.s:283    .text:00000084 main
C:\DOCUME~1\KAIFA\LOCALS~1\Temp/ccO8aaaa.s:359    .text:000000c8 Letext

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
IntProlog
AvrXTimerHandler
Epilog
AvrXSetSemaphore
AvrXResetSemaphore
AvrXWaitSemaphore
AvrXDelay
puts_P
__stack
AvrXSetKernelStack
UartInit
AvrXRunTask
exit

⌨️ 快捷键说明

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