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

📄 uart.lst

📁 AVRMEG32编写的一个项目代码,里面包含一般应用的模块.
💻 LST
📖 第 1 页 / 共 2 页
字号:
   1               		.file	"uart.c"
   2               		.arch atmega32
   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
  17               	.Ltext0:
  18               	.global	uartSetBaudRate
  20               	uartSetBaudRate:
  21               	.LFB5:
  22               	.LM1:
  23               	/* prologue: frame size=0 */
  24               	/* prologue end (size=0) */
  25 0000 DC01      		movw r26,r24
  26 0002 CB01      		movw r24,r22
  27               	.LM2:
  28 0004 73E0      		ldi r23,3
  29 0006 880F      	1:	lsl r24
  30 0008 991F      		rol r25
  31 000a AA1F      		rol r26
  32 000c BB1F      		rol r27
  33 000e 7A95      		dec r23
  34 0010 D1F7      		brne 1b
  35 0012 9C01      		movw r18,r24
  36 0014 AD01      		movw r20,r26
  37 0016 220F      		lsl r18
  38 0018 331F      		rol r19
  39 001a 441F      		rol r20
  40 001c 551F      		rol r21
  41 001e 8050      		subi r24,lo8(-(7372800))
  42 0020 9048      		sbci r25,hi8(-(7372800))
  43 0022 AF48      		sbci r26,hlo8(-(7372800))
  44 0024 BF4F      		sbci r27,hhi8(-(7372800))
  45 0026 BC01      		movw r22,r24
  46 0028 CD01      		movw r24,r26
  47 002a 0E94 0000 		call __udivmodsi4
  48 002e DA01      		movw r26,r20
  49 0030 C901      		movw r24,r18
  50 0032 0197      		sbiw r24,1
  51               	.LM3:
  52 0034 89B9      		out 41-0x20,r24
  53               	.LM4:
  54 0036 892F      		mov r24,r25
  55 0038 9927      		clr r25
  56 003a 80BD      		out 64-0x20,r24
  57               	/* epilogue: frame size=0 */
  58 003c 0895      		ret
  59               	/* epilogue end (size=1) */
  60               	/* function uartSetBaudRate size 31 (30) */
  61               	.LFE5:
  63               	.global	uartInit
  65               	uartInit:
  66               	.LFB2:
  67               	.LM5:
  68               	/* prologue: frame size=0 */
  69               	/* prologue end (size=0) */
  70               	.LM6:
  71 003e 88ED      		ldi r24,lo8(-40)
  72 0040 8AB9      		out 42-0x20,r24
  73               	.LM7:
  74 0042 86E8      		ldi r24,lo8(-122)
  75 0044 80BD      		out 64-0x20,r24
  76               	.LM8:
  77 0046 60E8      		ldi r22,lo8(9600)
  78 0048 75E2      		ldi r23,hi8(9600)
  79 004a 80E0      		ldi r24,hlo8(9600)
  80 004c 90E0      		ldi r25,hhi8(9600)
  81 004e 0E94 0000 		call uartSetBaudRate
  82               	.LM9:
  83 0052 8FEF      		ldi r24,lo8(-1)
  84 0054 8093 0000 		sts uartReadyTx,r24
  85               	.LM10:
  86               	/* #APP */
  87 0058 7894      		sei
  88               	/* #NOAPP */
  89               	/* epilogue: frame size=0 */
  90 005a 0895      		ret
  91               	/* epilogue end (size=1) */
  92               	/* function uartInit size 16 (15) */
  93               	.LFE2:
  95               	.global	uartInitBuffers
  97               	uartInitBuffers:
  98               	.LFB3:
  99               	.LM11:
 100               	/* prologue: frame size=0 */
 101               	/* prologue end (size=0) */
 102               	.LM12:
 103 005c 40EA      		ldi r20,lo8(160)
 104 005e 50E0      		ldi r21,hi8(160)
 105 0060 60E0      		ldi r22,lo8(uartRxData)
 106 0062 70E0      		ldi r23,hi8(uartRxData)
 107 0064 80E0      		ldi r24,lo8(uartRxBuffer)
 108 0066 90E0      		ldi r25,hi8(uartRxBuffer)
 109 0068 0E94 0000 		call bufferInit
 110               	.LM13:
 111 006c 40E1      		ldi r20,lo8(16)
 112 006e 50E0      		ldi r21,hi8(16)
 113 0070 60E0      		ldi r22,lo8(uartTxData)
 114 0072 70E0      		ldi r23,hi8(uartTxData)
 115 0074 80E0      		ldi r24,lo8(uartTxBuffer)
 116 0076 90E0      		ldi r25,hi8(uartTxBuffer)
 117 0078 0E94 0000 		call bufferInit
 118               	/* epilogue: frame size=0 */
 119 007c 0895      		ret
 120               	/* epilogue end (size=1) */
 121               	/* function uartInitBuffers size 17 (16) */
 122               	.LFE3:
 124               	.global	uartSetRxHandler
 126               	uartSetRxHandler:
 127               	.LFB4:
 128               	.LM14:
 129               	/* prologue: frame size=0 */
 130               	/* prologue end (size=0) */
 131               	.LM15:
 132 007e 9093 0000 		sts (UartRxFunc)+1,r25
 133 0082 8093 0000 		sts UartRxFunc,r24
 134               	/* epilogue: frame size=0 */
 135 0086 0895      		ret
 136               	/* epilogue end (size=1) */
 137               	/* function uartSetRxHandler size 5 (4) */
 138               	.LFE4:
 140               	.global	uartGetRxBuffer
 142               	uartGetRxBuffer:
 143               	.LFB6:
 144               	.LM16:
 145               	/* prologue: frame size=0 */
 146               	/* prologue end (size=0) */
 147               	.LM17:
 148 0088 80E0      		ldi r24,lo8(uartRxBuffer)
 149 008a 90E0      		ldi r25,hi8(uartRxBuffer)
 150               	/* epilogue: frame size=0 */
 151 008c 0895      		ret
 152               	/* epilogue end (size=1) */
 153               	/* function uartGetRxBuffer size 3 (2) */
 154               	.LFE6:
 156               	.global	uartGetTxBuffer
 158               	uartGetTxBuffer:
 159               	.LFB7:
 160               	.LM18:
 161               	/* prologue: frame size=0 */
 162               	/* prologue end (size=0) */
 163               	.LM19:
 164 008e 80E0      		ldi r24,lo8(uartTxBuffer)
 165 0090 90E0      		ldi r25,hi8(uartTxBuffer)
 166               	/* epilogue: frame size=0 */
 167 0092 0895      		ret
 168               	/* epilogue end (size=1) */
 169               	/* function uartGetTxBuffer size 3 (2) */
 170               	.LFE7:
 172               	.global	uartSendByte
 174               	uartSendByte:
 175               	.LFB8:
 176               	.LM20:
 177               	/* prologue: frame size=0 */
 178               	/* prologue end (size=0) */
 179 0094 982F      		mov r25,r24
 180               	.L8:
 181               	.LM21:
 182 0096 8091 0000 		lds r24,uartReadyTx
 183 009a 8823      		tst r24
 184 009c E1F3      		breq .L8
 185               	.LM22:
 186 009e 9CB9      		out 44-0x20,r25
 187               	.LM23:
 188 00a0 1092 0000 		sts uartReadyTx,__zero_reg__
 189               	/* epilogue: frame size=0 */
 190 00a4 0895      		ret
 191               	/* epilogue end (size=1) */
 192               	/* function uartSendByte size 9 (8) */
 193               	.LFE8:
 195               	.global	uartReceiveByte
 197               	uartReceiveByte:
 198               	.LFB10:
 199               	.LM24:
 200               	/* prologue: frame size=0 */
 201 00a6 CF93      		push r28
 202 00a8 DF93      		push r29
 203               	/* prologue end (size=2) */
 204 00aa EC01      		movw r28,r24
 205               	.LM25:
 206 00ac 8091 0000 		lds r24,uartRxBuffer+2
 207 00b0 9091 0000 		lds r25,(uartRxBuffer+2)+1
 208 00b4 0097      		sbiw r24,0
 209 00b6 69F0      		breq .L11
 210               	.LM26:
 211 00b8 8091 0000 		lds r24,uartRxBuffer+4
 212 00bc 9091 0000 		lds r25,(uartRxBuffer+4)+1
 213 00c0 0097      		sbiw r24,0
 214 00c2 39F0      		breq .L11
 215               	.LM27:
 216 00c4 80E0      		ldi r24,lo8(uartRxBuffer)
 217 00c6 90E0      		ldi r25,hi8(uartRxBuffer)
 218 00c8 0E94 0000 		call bufferGetFromFront
 219 00cc 8883      		st Y,r24
 220               	.LM28:
 221 00ce 8FEF      		ldi r24,lo8(255)
 222 00d0 90E0      		ldi r25,hi8(255)
 223               	.L11:
 224               	/* epilogue: frame size=0 */
 225 00d2 DF91      		pop r29
 226 00d4 CF91      		pop r28
 227 00d6 0895      		ret
 228               	/* epilogue end (size=3) */
 229               	/* function uartReceiveByte size 25 (20) */
 230               	.LFE10:
 232               	.global	uartGetByte
 234               	uartGetByte:
 235               	.LFB9:
 236               	.LM29:
 237               	/* prologue: frame size=1 */
 238 00d8 CF93      		push r28
 239 00da DF93      		push r29
 240 00dc CDB7      		in r28,__SP_L__
 241 00de DEB7      		in r29,__SP_H__
 242 00e0 2197      		sbiw r28,1
 243 00e2 0FB6      		in __tmp_reg__,__SREG__
 244 00e4 F894      		cli
 245 00e6 DEBF      		out __SP_H__,r29
 246 00e8 0FBE      		out __SREG__,__tmp_reg__
 247 00ea CDBF      		out __SP_L__,r28
 248               	/* prologue end (size=10) */
 249               	.LM30:
 250 00ec CE01      		movw r24,r28
 251 00ee 0196      		adiw r24,1
 252 00f0 0E94 0000 		call uartReceiveByte
 253 00f4 8823      		tst r24
 254 00f6 19F0      		breq .L17
 255               	.LM31:
 256 00f8 8981      		ldd r24,Y+1
 257 00fa 9927      		clr r25
 258 00fc 02C0      		rjmp .L16
 259               	.L17:
 260               	.LM32:
 261 00fe 8FEF      		ldi r24,lo8(-1)
 262 0100 9FEF      		ldi r25,hi8(-1)
 263               	.L16:
 264               	/* epilogue: frame size=1 */
 265 0102 2196      		adiw r28,1
 266 0104 0FB6      		in __tmp_reg__,__SREG__
 267 0106 F894      		cli
 268 0108 DEBF      		out __SP_H__,r29
 269 010a 0FBE      		out __SREG__,__tmp_reg__
 270 010c CDBF      		out __SP_L__,r28
 271 010e DF91      		pop r29
 272 0110 CF91      		pop r28
 273 0112 0895      		ret
 274               	/* epilogue end (size=9) */
 275               	/* function uartGetByte size 30 (11) */
 276               	.LFE9:
 278               	.global	uartFlushReceiveBuffer
 280               	uartFlushReceiveBuffer:
 281               	.LFB11:
 282               	.LM33:
 283               	/* prologue: frame size=0 */
 284               	/* prologue end (size=0) */
 285               	.LM34:
 286 0114 1092 0000 		sts (uartRxBuffer+4)+1,__zero_reg__
 287 0118 1092 0000 		sts uartRxBuffer+4,__zero_reg__
 288               	/* epilogue: frame size=0 */
 289 011c 0895      		ret
 290               	/* epilogue end (size=1) */
 291               	/* function uartFlushReceiveBuffer size 5 (4) */
 292               	.LFE11:
 294               	.global	uartReceiveBufferIsEmpty
 296               	uartReceiveBufferIsEmpty:
 297               	.LFB12:
 298               	.LM35:
 299               	/* prologue: frame size=0 */
 300               	/* prologue end (size=0) */
 301               	.LM36:
 302 011e 8091 0000 		lds r24,uartRxBuffer+4
 303 0122 9091 0000 		lds r25,(uartRxBuffer+4)+1
 304 0126 892B      		or r24,r25
 305 0128 19F4      		brne .L21
 306               	.LM37:

⌨️ 快捷键说明

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