?? com2iic.lst
字號:
1 .file "COM2IIC.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:
59 .global main
61 main:
1:COM2IIC.c **** ///////////////////////////////////////////
2:COM2IIC.c **** // COM2IIC.C
3:COM2IIC.c **** // Function:
4:COM2IIC.c **** // Create : Guobg
5:COM2IIC.c **** // Date : 20060212
6:COM2IIC.c **** // Revision: 0.0
7:COM2IIC.c **** ///////////////////////////////////////////
8:COM2IIC.c **** // Modify History
9:COM2IIC.c **** //
10:COM2IIC.c **** ///////////////////////////////////////////
11:COM2IIC.c **** #include "IIC_AVR.H"
12:COM2IIC.c **** #include "COM2IIC.h"
13:COM2IIC.c **** #include "UART.H"
14:COM2IIC.c **** #include "globle.h"
15:COM2IIC.c ****
16:COM2IIC.c **** extern struct data bit_flag;
17:COM2IIC.c **** extern struct IIC_BUFFER IIC_Buffer_In,IIC_Buffer_Out;
18:COM2IIC.c **** extern U8 ucIICTimeoutCount; // IIC Time out counter
19:COM2IIC.c ****
20:COM2IIC.c **** int main(void)
21:COM2IIC.c **** {
63 .LM1:
64 /* prologue: frame size=1 */
65 0000 C0E0 ldi r28,lo8(__stack - 1)
66 0002 D0E0 ldi r29,hi8(__stack - 1)
67 0004 DEBF out __SP_H__,r29
68 0006 CDBF out __SP_L__,r28
69 /* prologue end (size=4) */
22:COM2IIC.c **** U8 i;
23:COM2IIC.c **** IIC_Init(IIC_SLAVE_ADDRESS,IIC_BAUDRATE_100K);
71 .LM2:
72 0008 61E0 ldi r22,lo8(1)
73 000a 81E0 ldi r24,lo8(1)
74 000c 0E94 0000 call IIC_Init
24:COM2IIC.c ****
25:COM2IIC.c ****
26:COM2IIC.c **** SerialInit();
76 .LM3:
77 0010 0E94 0000 call SerialInit
27:COM2IIC.c **** IIC_Buffer_Out.ucDestinationAddress=10;
79 .LM4:
80 0014 8AE0 ldi r24,lo8(10)
81 0016 8093 0000 sts IIC_Buffer_Out+18,r24
82 .L2:
28:COM2IIC.c **** while(1)
29:COM2IIC.c **** {
30:COM2IIC.c **** if(inbufful)
84 .LM5:
85 001a 8091 0000 lds r24,bit_flag
86 001e 8695 lsr r24
87 0020 8695 lsr r24
88 0022 9927 clr r25
89 0024 8170 andi r24,lo8(1)
90 0026 9070 andi r25,hi8(1)
91 0028 0097 sbiw r24,0
92 002a 49F1 breq .L4
93 .L5:
31:COM2IIC.c **** {// Uart Rx buffer full
32:COM2IIC.c **** while(!IIC_Buffer_Out.ucIICBufferStatus.bEnAccess);
95 .LM6:
96 002c 8091 0000 lds r24,IIC_Buffer_Out+19
97 0030 9927 clr r25
98 0032 8170 andi r24,lo8(1)
99 0034 9070 andi r25,hi8(1)
100 0036 0097 sbiw r24,0
101 0038 09F4 brne .L6
102 003a F8CF rjmp .L5
103 .L6:
33:COM2IIC.c **** for(i=0;i<ILEN;i++)
105 .LM7:
106 003c 1982 std Y+1,__zero_reg__
107 .L7:
108 003e 8981 ldd r24,Y+1
109 0040 8C30 cpi r24,lo8(12)
110 0042 90F4 brsh .L8
34:COM2IIC.c **** {
35:COM2IIC.c **** IIC_Buffer_Out.ucIICBufferStatus.bEnAccess=0;
112 .LM8:
113 0044 8091 0000 lds r24,IIC_Buffer_Out+19
114 0048 8E7F andi r24,lo8(-2)
115 004a 8093 0000 sts IIC_Buffer_Out+19,r24
36:COM2IIC.c **** IIC_Buffer_Out.IIC_BUFFER_UNION.ucData[i]=GetByte();
117 .LM9:
118 004e 8981 ldd r24,Y+1
119 0050 9927 clr r25
120 0052 8C01 movw r16,r24
121 0054 0050 subi r16,lo8(-(IIC_Buffer_Out))
122 0056 1040 sbci r17,hi8(-(IIC_Buffer_Out))
123 0058 0E94 0000 call GetByte
124 005c F801 movw r30,r16
125 005e 8083 st Z,r24
127 .LM10:
128 0060 8981 ldd r24,Y+1
129 0062 8F5F subi r24,lo8(-(1))
130 0064 8983 std Y+1,r24
131 0066 EBCF rjmp .L7
132 .L8:
37:COM2IIC.c **** }
38:COM2IIC.c **** IIC_Buffer_Out.ucWriteP=i;
134 .LM11:
135 0068 8981 ldd r24,Y+1
136 006a 8093 0000 sts IIC_Buffer_Out+16,r24
39:COM2IIC.c **** IIC_START;
138 .LM12:
139 006e 8091 5600 lds r24,86
140 0072 856A ori r24,lo8(-91)
141 0074 8093 5600 sts 86,r24
142 0078 8FEF ldi r24,lo8(-1)
143 007a 8093 0000 sts ucIICTimeoutCount,r24
144 .L4:
40:COM2IIC.c **** }
41:COM2IIC.c ****
42:COM2IIC.c **** if(IIC_Buffer_In.ucIICBufferStatus.bEnAccess)
146 .LM13:
147 007e 8091 0000 lds r24,IIC_Buffer_In+19
148 0082 9927 clr r25
149 0084 8170 andi r24,lo8(1)
150 0086 9070 andi r25,hi8(1)
151 0088 0097 sbiw r24,0
152 008a 39F2 breq .L2
43:COM2IIC.c **** {// Recieved a frame from IIC
44:COM2IIC.c **** IIC_Buffer_In.ucIICBufferStatus.bEnAccess=0;
154 .LM14:
155 008c 8091 0000 lds r24,IIC_Buffer_In+19
156 0090 8E7F andi r24,lo8(-2)
157 0092 8093 0000 sts IIC_Buffer_In+19,r24
45:COM2IIC.c **** for(i=0;i<IIC_Buffer_In.ucWriteP;i++)
159 .LM15:
160 0096 1982 std Y+1,__zero_reg__
161 .L11:
162 0098 9091 0000 lds r25,IIC_Buffer_In+16
163 009c 8981 ldd r24,Y+1
164 009e 8917 cp r24,r25
165 00a0 08F0 brlo .+2
166 00a2 BBCF rjmp .L2
46:COM2IIC.c **** {
47:COM2IIC.c **** PutByte(IIC_Buffer_In.IIC_BUFFER_UNION.ucData[i]);
168 .LM16:
169 00a4 8981 ldd r24,Y+1
170 00a6 9927 clr r25
171 00a8 FC01 movw r30,r24
172 00aa E050 subi r30,lo8(-(IIC_Buffer_In))
173 00ac F040 sbci r31,hi8(-(IIC_Buffer_In))
174 00ae 8081 ld r24,Z
175 00b0 0E94 0000 call PutByte
177 .LM17:
178 00b4 8981 ldd r24,Y+1
179 00b6 8F5F subi r24,lo8(-(1))
180 00b8 8983 std Y+1,r24
181 00ba EECF rjmp .L11
182 /* epilogue: frame size=1 */
183 /* epilogue: noreturn */
184 /* epilogue end (size=0) */
185 /* function main size 94 (90) */
188 .text
190 Letext:
191 /* File "COM2IIC.c": code 94 = 0x005e ( 90), prologues 4, epilogues 0 */
DEFINED SYMBOLS
*ABS*:00000000 COM2IIC.c
*ABS*:0000003f __SREG__
*ABS*:0000003e __SP_H__
*ABS*:0000003d __SP_L__
*ABS*:00000000 __tmp_reg__
*ABS*:00000001 __zero_reg__
C:\DOCUME~1\Guobg\LOCALS~1\Temp/ccglaaaa.s:61 .text:00000000 main
C:\DOCUME~1\Guobg\LOCALS~1\Temp/ccglaaaa.s:190 .text:000000bc Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__stack
IIC_Init
SerialInit
IIC_Buffer_Out
bit_flag
GetByte
ucIICTimeoutCount
IIC_Buffer_In
PutByte
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -