📄 avr_mmc.lst
字号:
1 .file "AVR_MMC.c"
2 .arch atmega128
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:
82 .global _Z7DelayMsm
84 _Z7DelayMsm:
1:AVR_MMC.c **** /*
2:AVR_MMC.c **** ;**************************************************************************************************
3:AVR_MMC.c **** ;* Copyright (c) 2006 by JiaoJinXing.
4:AVR_MMC.c **** ;* All rights reserved.
5:AVR_MMC.c **** ;*
6:AVR_MMC.c **** ;*---- 文件信息 -----------------------------------------------------------------------------------
7:AVR_MMC.c **** ;* 文 件 名 : AVR_MMC.c
8:AVR_MMC.c **** ;* 创 建 人 : 焦进星
9:AVR_MMC.c **** ;* 描 述 : MMC卡驱动文件文件
10:AVR_MMC.c **** ;*
11:AVR_MMC.c **** ;*---- 历史版本信息 -------------------------------------------------------------------------------
12:AVR_MMC.c **** ;* 日 期 : 2008年 12 月 15 日
13:AVR_MMC.c **** ;* 创 建 人 : 焦进星
14:AVR_MMC.c **** ;* 描 述 : 建立版本 V1.0.0
15:AVR_MMC.c **** ;*
16:AVR_MMC.c **** ;*---- 联系方式 -----------------------------------------------------------------------------------
17:AVR_MMC.c **** ;* Email : wyoujtg@163.com
18:AVR_MMC.c **** ;* Web : http://wyoujtg.blog.163.com
19:AVR_MMC.c **** ;**************************************************************************************************
20:AVR_MMC.c **** ;*/
21:AVR_MMC.c ****
22:AVR_MMC.c **** #include "minifs.h"
23:AVR_MMC.c ****
24:AVR_MMC.c **** #ifdef AVR_MMC
25:AVR_MMC.c ****
26:AVR_MMC.c **** /*
27:AVR_MMC.c **** ;**************************************************************************************************
28:AVR_MMC.c **** ;* 函数名称 : SPI_Init
29:AVR_MMC.c **** ;* 描 述 : SPI初始化
30:AVR_MMC.c **** ;* 输 入 : 无
31:AVR_MMC.c **** ;*
32:AVR_MMC.c **** ;* 输 出 : 无
33:AVR_MMC.c **** ;**************************************************************************************************
34:AVR_MMC.c **** ;*/
35:AVR_MMC.c **** void DelayMs(uint32 time)
36:AVR_MMC.c **** {
86 .LM1:
87 /* prologue: frame size=0 */
88 /* prologue end (size=0) */
89 .LBB2:
90 .LBB3:
37:AVR_MMC.c **** uint32 temp;
38:AVR_MMC.c **** uint32 count;
39:AVR_MMC.c ****
40:AVR_MMC.c **** count = 2663;
41:AVR_MMC.c **** while (count-- > 0)
42:AVR_MMC.c **** {
43:AVR_MMC.c **** for (temp = 0; temp < 512; temp++);
44:AVR_MMC.c **** {
45:AVR_MMC.c **** __asm__ __volatile__("nop");
92 .LM2:
93 0000 26E6 ldi r18,lo8(2662)
94 0002 3AE0 ldi r19,hi8(2662)
95 0004 40E0 ldi r20,hlo8(2662)
96 0006 50E0 ldi r21,hhi8(2662)
97 .L8:
98 0008 8FEF ldi r24,lo8(511)
99 000a 91E0 ldi r25,hi8(511)
100 000c A0E0 ldi r26,hlo8(511)
101 000e B0E0 ldi r27,hhi8(511)
102 .L7:
104 .LM3:
105 0010 8054 subi r24,lo8(-(-64))
106 0012 9040 sbci r25,hi8(-(-64))
107 0014 A040 sbci r26,hlo8(-(-64))
108 0016 B040 sbci r27,hhi8(-(-64))
109 0018 B7FF sbrs r27,7
110 001a FACF rjmp .L7
112 .LM4:
113 /* #APP */
114 001c 0000 nop
115 /* #NOAPP */
116 001e 2150 subi r18,1
117 0020 3109 sbc r19,__zero_reg__
118 0022 4109 sbc r20,__zero_reg__
119 0024 5109 sbc r21,__zero_reg__
120
121 0026 80F7 brcc .L8
122 .LBE3:
123 .LBE2:
124 /* epilogue: frame size=0 */
125 0028 0895 ret
126 /* epilogue end (size=1) */
127 /* function void DelayMs(uint32) size 21 (20) */
134 .global _Z8SPI_Initv
136 _Z8SPI_Initv:
46:AVR_MMC.c **** }
47:AVR_MMC.c **** }
48:AVR_MMC.c **** }
49:AVR_MMC.c ****
50:AVR_MMC.c **** /*
51:AVR_MMC.c **** ;**************************************************************************************************
52:AVR_MMC.c **** ;* 函数名称 : SPI_Init
53:AVR_MMC.c **** ;* 描 述 : SPI初始化
54:AVR_MMC.c **** ;* 输 入 : 无
55:AVR_MMC.c **** ;*
56:AVR_MMC.c **** ;* 输 出 : 无
57:AVR_MMC.c **** ;**************************************************************************************************
58:AVR_MMC.c **** ;*/
59:AVR_MMC.c **** void SPI_Init(void)
60:AVR_MMC.c **** {
138 .LM5:
139 /* prologue: frame size=0 */
140 /* prologue end (size=0) */
141 .LBB4:
61:AVR_MMC.c **** DDRB |= (1 << PB0); /* SS端口设置为输出 */
143 .LM6:
144 002a B89A sbi 55-0x20,0
62:AVR_MMC.c **** DDRB |= (1 << PB2); /* MOSI端口设置为输出 */
146 .LM7:
147 002c BA9A sbi 55-0x20,2
63:AVR_MMC.c **** DDRB &= ~(1 << PB3); /* MISO端口设置为输入 */
149 .LM8:
150 002e BB98 cbi 55-0x20,3
64:AVR_MMC.c **** DDRB |= (1 << PB1); /* SCK端口设置为输出 */
152 .LM9:
153 0030 B99A sbi 55-0x20,1
65:AVR_MMC.c **** /* SPI ENABLE, MASTER MODE, Fsoc/16 */
66:AVR_MMC.c **** SPCR |= (1 << SPE) | (1 << MSTR) | (1 << SPR1) | (1 << SPR0);
155 .LM10:
156 0032 8DB1 in r24,45-0x20
157 0034 8365 ori r24,lo8(83)
158 0036 8DB9 out 45-0x20,r24
67:AVR_MMC.c **** PORTB |= (1 << PB0); /* SS=1 */
160 .LM11:
161 0038 C09A sbi 56-0x20,0
162 .LBE4:
163 /* epilogue: frame size=0 */
164 003a 0895 ret
165 /* epilogue end (size=1) */
166 /* function void SPI_Init() size 9 (8) */
169 .global _Z9SPI_HiSPDv
171 _Z9SPI_HiSPDv:
68:AVR_MMC.c **** }
69:AVR_MMC.c ****
70:AVR_MMC.c **** /*
71:AVR_MMC.c **** ;**************************************************************************************************
72:AVR_MMC.c **** ;* 函数名称 : SPI_HiSPD
73:AVR_MMC.c **** ;* 描 述 : SPI转入高速模式
74:AVR_MMC.c **** ;* 输 入 : 无
75:AVR_MMC.c **** ;*
76:AVR_MMC.c **** ;* 输 出 : 无
77:AVR_MMC.c **** ;**************************************************************************************************
78:AVR_MMC.c **** ;*/
79:AVR_MMC.c **** void SPI_HiSPD(void)
80:AVR_MMC.c **** {
173 .LM12:
174 /* prologue: frame size=0 */
175 /* prologue end (size=0) */
176 .LBB5:
81:AVR_MMC.c **** SPCR |= (0 << SPR1) | (0 << SPR0); /* SPI ENABLE, MASTER MODE, Fsoc/16 */
178 .LM13:
179 003c 8DB1 in r24,45-0x20
180 003e 8DB9 out 45-0x20,r24
82:AVR_MMC.c **** SPSR |= (1 << SPI2X);
182 .LM14:
183 0040 709A sbi 46-0x20,0
184 .LBE5:
185 /* epilogue: frame size=0 */
186 0042 0895 ret
187 /* epilogue end (size=1) */
188 /* function void SPI_HiSPD() size 4 (3) */
192 .global _Z12SPI_SendDatah
194 _Z12SPI_SendDatah:
83:AVR_MMC.c **** }
84:AVR_MMC.c ****
85:AVR_MMC.c **** /*
86:AVR_MMC.c **** ;**************************************************************************************************
87:AVR_MMC.c **** ;* 函数名称 : SPI_SendData
88:AVR_MMC.c **** ;* 描 述 : SPI发送数据
89:AVR_MMC.c **** ;* 输 入 : data: 数据
90:AVR_MMC.c **** ;*
91:AVR_MMC.c **** ;* 输 出 : SPDR
92:AVR_MMC.c **** ;**************************************************************************************************
93:AVR_MMC.c **** ;*/
94:AVR_MMC.c **** uint8 SPI_SendData(uint8 data)
95:AVR_MMC.c **** {
196 .LM15:
197 /* prologue: frame size=0 */
198 /* prologue end (size=0) */
199 .LBB6:
200 .LBB7:
96:AVR_MMC.c **** uint8 temp;
97:AVR_MMC.c ****
98:AVR_MMC.c **** SPDR = data;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -