Subversion Repositories svnkaklik

Rev

Rev 410 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 410 Rev 484
Line 1... Line 1...
1
GAS LISTING /tmp/ccZHfAgR.s 			page 1
1
GAS LISTING /tmp/ccfEG7oP.s 			page 1
2
 
2
 
3
 
3
 
4
   1               		.file	"I2CInterface.c"
4
   1               		.file	"I2CInterface.c"
5
   2               		.arch atmega8
-
 
6
   3               	__SREG__ = 0x3f
5
   2               	__SREG__ = 0x3f
7
   4               	__SP_H__ = 0x3e
6
   3               	__SP_H__ = 0x3e
8
   5               	__SP_L__ = 0x3d
7
   4               	__SP_L__ = 0x3d
9
   6               	__tmp_reg__ = 0
8
   5               	__tmp_reg__ = 0
10
   7               	__zero_reg__ = 1
9
   6               	__zero_reg__ = 1
11
   8               		.global __do_copy_data
10
   7               		.global __do_copy_data
12
   9               		.global __do_clear_bss
11
   8               		.global __do_clear_bss
13
  10               		.stabs	"/home/kaklik/projects/programy/Atmel_C/AVRcam/",100,0,2,.Ltext0
12
   9               		.stabs	"/home/kaklik/projects/programy/C/avr/AVRcam/",100,0,2,.Ltext0
14
  11               		.stabs	"I2CInterface.c",100,0,2,.Ltext0
13
  10               		.stabs	"I2CInterface.c",100,0,2,.Ltext0
15
  12               		.text
14
  11               		.text
16
  13               	.Ltext0:
15
  12               	.Ltext0:
17
  14               		.stabs	"gcc2_compiled.",60,0,0,0
16
  13               		.stabs	"gcc2_compiled.",60,0,0,0
18
  15               		.stabs	"int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
17
  14               		.stabs	"int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
19
  16               		.stabs	"char:t(0,2)=@s8;r(0,2);0;255;",128,0,0,0
18
  15               		.stabs	"char:t(0,2)=@s8;r(0,2);0;255;",128,0,0,0
20
  17               		.stabs	"long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,0,0
19
  16               		.stabs	"long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,0,0
21
  18               		.stabs	"unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,0,0
20
  17               		.stabs	"unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,0,0
22
  19               		.stabs	"long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,0,0
21
  18               		.stabs	"long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,0,0
23
  20               		.stabs	"long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,
22
  19               		.stabs	"long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,
24
  21               		.stabs	"long long unsigned int:t(0,7)=@s64;r(0,7);0;01777777777777777777777;",128,0,0,0
23
  20               		.stabs	"long long unsigned int:t(0,7)=@s64;r(0,7);0;01777777777777777777777;",128,0,0,0
25
  22               		.stabs	"short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
24
  21               		.stabs	"short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
26
  23               		.stabs	"short unsigned int:t(0,9)=r(0,9);0;0177777;",128,0,0,0
25
  22               		.stabs	"short unsigned int:t(0,9)=r(0,9);0;0177777;",128,0,0,0
27
  24               		.stabs	"signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0
26
  23               		.stabs	"signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0
28
  25               		.stabs	"unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0
27
  24               		.stabs	"unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0
29
  26               		.stabs	"float:t(0,12)=r(0,1);4;0;",128,0,0,0
28
  25               		.stabs	"float:t(0,12)=r(0,1);4;0;",128,0,0,0
30
  27               		.stabs	"double:t(0,13)=r(0,1);4;0;",128,0,0,0
29
  26               		.stabs	"double:t(0,13)=r(0,1);4;0;",128,0,0,0
31
  28               		.stabs	"long double:t(0,14)=r(0,1);4;0;",128,0,0,0
30
  27               		.stabs	"long double:t(0,14)=r(0,1);4;0;",128,0,0,0
32
  29               		.stabs	"void:t(0,15)=(0,15)",128,0,0,0
31
  28               		.stabs	"void:t(0,15)=(0,15)",128,0,0,0
33
  30               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/io.h",130,0,0,0
32
  29               		.stabs	"/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/io.h",130,0,0,0
34
  31               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/sfr_defs.h",130,0,0,0
33
  30               		.stabs	"/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/sfr_defs.h",130,0,0,0
35
  32               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/inttypes.h",130,0,0,0
34
  31               		.stabs	"/usr/lib/gcc/avr/4.2.1/../../../../avr/include/inttypes.h",130,0,0,0
36
  33               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/stdint.h",130,0,0,0
35
  32               		.stabs	"/usr/lib/gcc/avr/4.2.1/../../../../avr/include/stdint.h",130,0,0,0
37
  34               		.stabs	"int8_t:t(4,1)=(0,10)",128,0,116,0
36
  33               		.stabs	"int8_t:t(4,1)=(0,10)",128,0,116,0
38
  35               		.stabs	"uint8_t:t(4,2)=(0,11)",128,0,117,0
37
  34               		.stabs	"uint8_t:t(4,2)=(0,11)",128,0,117,0
39
  36               		.stabs	"int16_t:t(4,3)=(0,1)",128,0,118,0
38
  35               		.stabs	"int16_t:t(4,3)=(0,1)",128,0,118,0
40
  37               		.stabs	"uint16_t:t(4,4)=(0,4)",128,0,119,0
39
  36               		.stabs	"uint16_t:t(4,4)=(0,4)",128,0,119,0
41
  38               		.stabs	"int32_t:t(4,5)=(0,3)",128,0,120,0
40
  37               		.stabs	"int32_t:t(4,5)=(0,3)",128,0,120,0
42
  39               		.stabs	"uint32_t:t(4,6)=(0,5)",128,0,121,0
41
  38               		.stabs	"uint32_t:t(4,6)=(0,5)",128,0,121,0
43
  40               		.stabs	"int64_t:t(4,7)=(0,6)",128,0,122,0
42
  39               		.stabs	"int64_t:t(4,7)=(0,6)",128,0,122,0
44
  41               		.stabs	"uint64_t:t(4,8)=(0,7)",128,0,123,0
43
  40               		.stabs	"uint64_t:t(4,8)=(0,7)",128,0,123,0
45
  42               		.stabs	"intptr_t:t(4,9)=(4,3)",128,0,135,0
44
  41               		.stabs	"intptr_t:t(4,9)=(4,3)",128,0,135,0
46
  43               		.stabs	"uintptr_t:t(4,10)=(4,4)",128,0,140,0
45
  42               		.stabs	"uintptr_t:t(4,10)=(4,4)",128,0,140,0
47
  44               		.stabs	"int_least8_t:t(4,11)=(4,1)",128,0,152,0
46
  43               		.stabs	"int_least8_t:t(4,11)=(4,1)",128,0,152,0
48
  45               		.stabs	"uint_least8_t:t(4,12)=(4,2)",128,0,157,0
47
  44               		.stabs	"uint_least8_t:t(4,12)=(4,2)",128,0,157,0
49
  46               		.stabs	"int_least16_t:t(4,13)=(4,3)",128,0,162,0
48
  45               		.stabs	"int_least16_t:t(4,13)=(4,3)",128,0,162,0
50
  47               		.stabs	"uint_least16_t:t(4,14)=(4,4)",128,0,167,0
49
  46               		.stabs	"uint_least16_t:t(4,14)=(4,4)",128,0,167,0
51
  48               		.stabs	"int_least32_t:t(4,15)=(4,5)",128,0,172,0
50
  47               		.stabs	"int_least32_t:t(4,15)=(4,5)",128,0,172,0
52
  49               		.stabs	"uint_least32_t:t(4,16)=(4,6)",128,0,177,0
51
  48               		.stabs	"uint_least32_t:t(4,16)=(4,6)",128,0,177,0
53
  50               		.stabs	"int_least64_t:t(4,17)=(4,7)",128,0,182,0
52
  49               		.stabs	"int_least64_t:t(4,17)=(4,7)",128,0,182,0
54
  51               		.stabs	"uint_least64_t:t(4,18)=(4,8)",128,0,187,0
53
  50               		.stabs	"uint_least64_t:t(4,18)=(4,8)",128,0,187,0
55
  52               		.stabs	"int_fast8_t:t(4,19)=(4,1)",128,0,200,0
54
  51               		.stabs	"int_fast8_t:t(4,19)=(4,1)",128,0,200,0
56
  53               		.stabs	"uint_fast8_t:t(4,20)=(4,2)",128,0,205,0
55
  52               		.stabs	"uint_fast8_t:t(4,20)=(4,2)",128,0,205,0
57
  54               		.stabs	"int_fast16_t:t(4,21)=(4,3)",128,0,210,0
56
  53               		.stabs	"int_fast16_t:t(4,21)=(4,3)",128,0,210,0
58
  55               		.stabs	"uint_fast16_t:t(4,22)=(4,4)",128,0,215,0
57
  54               		.stabs	"uint_fast16_t:t(4,22)=(4,4)",128,0,215,0
59
  56               		.stabs	"int_fast32_t:t(4,23)=(4,5)",128,0,220,0
58
  55               		.stabs	"int_fast32_t:t(4,23)=(4,5)",128,0,220,0
60
  57               		.stabs	"uint_fast32_t:t(4,24)=(4,6)",128,0,225,0
59
  56               		.stabs	"uint_fast32_t:t(4,24)=(4,6)",128,0,225,0
-
 
60
  57               		.stabs	"int_fast64_t:t(4,25)=(4,7)",128,0,230,0
61
GAS LISTING /tmp/ccZHfAgR.s 			page 2
61
GAS LISTING /tmp/ccfEG7oP.s 			page 2
62
 
62
 
63
 
63
 
64
  58               		.stabs	"int_fast64_t:t(4,25)=(4,7)",128,0,230,0
-
 
65
  59               		.stabs	"uint_fast64_t:t(4,26)=(4,8)",128,0,235,0
64
  58               		.stabs	"uint_fast64_t:t(4,26)=(4,8)",128,0,235,0
66
  60               		.stabs	"intmax_t:t(4,27)=(4,7)",128,0,249,0
65
  59               		.stabs	"intmax_t:t(4,27)=(4,7)",128,0,249,0
67
  61               		.stabs	"uintmax_t:t(4,28)=(4,8)",128,0,254,0
66
  60               		.stabs	"uintmax_t:t(4,28)=(4,8)",128,0,254,0
68
  62               		.stabn	162,0,0,0
67
  61               		.stabn	162,0,0,0
69
  63               		.stabs	"int_farptr_t:t(3,1)=(4,5)",128,0,76,0
68
  62               		.stabs	"int_farptr_t:t(3,1)=(4,5)",128,0,76,0
70
  64               		.stabs	"uint_farptr_t:t(3,2)=(4,6)",128,0,80,0
69
  63               		.stabs	"uint_farptr_t:t(3,2)=(4,6)",128,0,80,0
-
 
70
  64               		.stabn	162,0,0,0
71
  65               		.stabn	162,0,0,0
71
  65               		.stabn	162,0,0,0
72
  66               		.stabn	162,0,0,0
72
  66               		.stabn	162,0,0,0
73
  67               		.stabn	162,0,0,0
-
 
74
  68               		.stabs	"CamConfig.h",130,0,0,0
73
  67               		.stabs	"CamConfig.h",130,0,0,0
75
  69               		.stabs	"I2CInterface.h",130,0,0,0
74
  68               		.stabs	"I2CInterface.h",130,0,0,0
76
  70               		.stabs	"CommonDefs.h",130,0,0,0
75
  69               		.stabs	"CommonDefs.h",130,0,0,0
77
  71               		.stabs	"bool_t:t(7,1)=(0,11)",128,0,56,0
76
  70               		.stabs	"bool_t:t(7,1)=(0,11)",128,0,56,0
78
  72               		.stabn	162,0,0,0
77
  71               		.stabn	162,0,0,0
79
  73               		.stabs	"i2cCmd_t:t(6,1)=(6,2)=s2configReg:(0,11),0,8;data:(0,11),8,8;;",128,0,53,0
78
  72               		.stabs	"i2cCmd_t:t(6,1)=(6,2)=s2configReg:(0,11),0,8;data:(0,11),8,8;;",128,0,53,0
-
 
79
  73               		.stabn	162,0,0,0
80
  74               		.stabn	162,0,0,0
80
  74               		.stabn	162,0,0,0
81
  75               		.stabn	162,0,0,0
-
 
82
  76               		.stabs	"I2CInt_init:F(0,15)",36,0,85,I2CInt_init
81
  75               		.stabs	"I2CInt_init:F(0,15)",36,0,85,I2CInt_init
83
  77               	.global	I2CInt_init
82
  76               	.global	I2CInt_init
84
  78               		.type	I2CInt_init, @function
83
  77               		.type	I2CInt_init, @function
85
  79               	I2CInt_init:
84
  78               	I2CInt_init:
86
  80               		.stabd	46,0,0
85
  79               		.stabd	46,0,0
87
   1:I2CInterface.c **** /*
86
   1:I2CInterface.c **** /*
88
   2:I2CInterface.c ****     Copyright (C) 2004    John Orlando
87
   2:I2CInterface.c ****     Copyright (C) 2004    John Orlando
89
   3:I2CInterface.c ****     
88
   3:I2CInterface.c ****     
90
   4:I2CInterface.c ****    AVRcam: a small real-time image processing engine.
89
   4:I2CInterface.c ****    AVRcam: a small real-time image processing engine.
91
   5:I2CInterface.c **** 
90
   5:I2CInterface.c **** 
Line 116... Line 115...
116
  30:I2CInterface.c **** 	
115
  30:I2CInterface.c **** 	
117
  31:I2CInterface.c **** 	Description: This module is responsible for providing a
116
  31:I2CInterface.c **** 	Description: This module is responsible for providing a
118
  32:I2CInterface.c **** 	low-level interface to the I2C hardware resident on the
117
  32:I2CInterface.c **** 	low-level interface to the I2C hardware resident on the
119
  33:I2CInterface.c **** 	mega8 processor (also known as the Two-Wire Interface,
118
  33:I2CInterface.c **** 	mega8 processor (also known as the Two-Wire Interface,
120
  34:I2CInterface.c **** 	or TWI).  The interface is needed to configure the
119
  34:I2CInterface.c **** 	or TWI).  The interface is needed to configure the
-
 
120
  35:I2CInterface.c **** 	needed registers in the OV6620 camera.  This interface
121
GAS LISTING /tmp/ccZHfAgR.s 			page 3
121
GAS LISTING /tmp/ccfEG7oP.s 			page 3
122
 
122
 
123
 
123
 
124
  35:I2CInterface.c **** 	needed registers in the OV6620 camera.  This interface
-
 
125
  36:I2CInterface.c **** 	is interrupt-driven based on the events that should
124
  36:I2CInterface.c **** 	is interrupt-driven based on the events that should
126
  37:I2CInterface.c **** 	occur upon successful writing of an I2C register.
125
  37:I2CInterface.c **** 	occur upon successful writing of an I2C register.
127
  38:I2CInterface.c ****     
126
  38:I2CInterface.c ****     
128
  39:I2CInterface.c ****     Revision History:
127
  39:I2CInterface.c ****     Revision History:
129
  40:I2CInterface.c ****     Date        Rel Ver.    Notes
128
  40:I2CInterface.c ****     Date        Rel Ver.    Notes
Line 170... Line 169...
170
  81:I2CInterface.c **** 	Inputs:  none
169
  81:I2CInterface.c **** 	Inputs:  none
171
  82:I2CInterface.c **** 	Outputs: none
170
  82:I2CInterface.c **** 	Outputs: none
172
  83:I2CInterface.c **** ***********************************************************/	
171
  83:I2CInterface.c **** ***********************************************************/	
173
  84:I2CInterface.c **** void I2CInt_init(void)
172
  84:I2CInterface.c **** void I2CInt_init(void)
174
  85:I2CInterface.c **** {
173
  85:I2CInterface.c **** {
175
  81               		.stabn	68,0,85,.LM0-I2CInt_init
174
  80               		.stabn	68,0,85,.LM0-.LFBB1
176
  82               	.LM0:
175
  81               	.LM0:
-
 
176
  82               	.LFBB1:
177
  83               	/* prologue: frame size=0 */
177
  83               	/* prologue: frame size=0 */
178
  84               	/* prologue end (size=0) */
178
  84               	/* prologue end (size=0) */
179
  86:I2CInterface.c **** 	TWSR = 0;
179
  86:I2CInterface.c **** 	TWSR = 0;
180
  85               		.stabn	68,0,86,.LM1-I2CInt_init
180
  85               		.stabn	68,0,86,.LM1-.LFBB1
181
GAS LISTING /tmp/ccZHfAgR.s 			page 4
181
GAS LISTING /tmp/ccfEG7oP.s 			page 4
182
 
182
 
183
 
183
 
184
  86               	.LM1:
184
  86               	.LM1:
185
  87 0000 11B8      		out 33-0x20,__zero_reg__
185
  87 0000 11B8      		out 33-0x20,__zero_reg__
186
  87:I2CInterface.c ****     
186
  87:I2CInterface.c ****     
187
  88:I2CInterface.c **** 	/* init the speed of the I2C interface, running at
187
  88:I2CInterface.c **** 	/* init the speed of the I2C interface, running at
188
  89:I2CInterface.c ****     100 Kbps */
188
  89:I2CInterface.c ****     100 Kbps */
189
  90:I2CInterface.c **** 	TWBR = (FOSC / I2C_SPEED - 16)/2;
189
  90:I2CInterface.c **** 	TWBR = (FOSC / I2C_SPEED - 16)/2;
190
  88               		.stabn	68,0,90,.LM2-I2CInt_init
190
  88               		.stabn	68,0,90,.LM2-.LFBB1
191
  89               	.LM2:
191
  89               	.LM2:
192
  90 0002 88E4      		ldi r24,lo8(72)
192
  90 0002 88E4      		ldi r24,lo8(72)
193
  91 0004 80B9      		out 32-0x20,r24
193
  91 0004 80B9      		out 32-0x20,r24
194
  92               	/* epilogue: frame size=0 */
194
  92               	/* epilogue: frame size=0 */
195
  93 0006 0895      		ret
195
  93 0006 0895      		ret
196
  94               	/* epilogue end (size=1) */
196
  94               	/* epilogue end (size=1) */
197
  95               	/* function I2CInt_init size 4 (3) */
197
  95               	/* function I2CInt_init size 4 (3) */
198
  96               		.size	I2CInt_init, .-I2CInt_init
198
  96               		.size	I2CInt_init, .-I2CInt_init
199
  97               	.Lscope0:
199
  97               	.Lscope1:
200
  98               		.stabs	"",36,0,0,.Lscope0-I2CInt_init
200
  98               		.stabs	"",36,0,0,.Lscope1-.LFBB1
201
  99               		.stabd	78,0,0
201
  99               		.stabd	78,0,0
202
 100               		.stabs	"I2CInt_writeData:F(0,15)",36,0,108,I2CInt_writeData
202
 100               		.stabs	"I2CInt_writeData:F(0,15)",36,0,108,I2CInt_writeData
203
 101               		.stabs	"address:P(0,11)",64,0,107,25
203
 101               		.stabs	"address:P(0,11)",64,0,107,25
204
 102               		.stabs	"data:P(0,16)=*(0,11)",64,0,107,22
204
 102               		.stabs	"data:P(0,16)=*(0,11)",64,0,107,22
205
 103               		.stabs	"bytes:P(0,11)",64,0,107,20
205
 103               		.stabs	"bytes:P(0,11)",64,0,107,20
Line 223... Line 223...
223
 104:I2CInterface.c **** 			bytes: the number of bytes to write 
223
 104:I2CInterface.c **** 			bytes: the number of bytes to write 
224
 105:I2CInterface.c **** 	Outputs: none
224
 105:I2CInterface.c **** 	Outputs: none
225
 106:I2CInterface.c **** ***********************************************************/
225
 106:I2CInterface.c **** ***********************************************************/
226
 107:I2CInterface.c **** void I2CInt_writeData(unsigned char address, unsigned char *data, unsigned char bytes)
226
 107:I2CInterface.c **** void I2CInt_writeData(unsigned char address, unsigned char *data, unsigned char bytes)
227
 108:I2CInterface.c **** {
227
 108:I2CInterface.c **** {
228
 108               		.stabn	68,0,108,.LM3-I2CInt_writeData
228
 108               		.stabn	68,0,108,.LM3-.LFBB2
229
 109               	.LM3:
229
 109               	.LM3:
-
 
230
 110               	.LFBB2:
230
 110               	/* prologue: frame size=0 */
231
 111               	/* prologue: frame size=0 */
231
 111               	/* prologue end (size=0) */
232
 112               	/* prologue end (size=0) */
232
 112 0008 982F      		mov r25,r24
233
 113 0008 982F      		mov r25,r24
233
 113               	.L5:
234
 114               	.L5:
234
 109:I2CInterface.c **** 	while(status & (1<<BUSY));		/* Bus is busy wait (or exit with error code) */
235
 109:I2CInterface.c **** 	while(status & (1<<BUSY));		/* Bus is busy wait (or exit with error code) */
235
 114               		.stabn	68,0,109,.LM4-I2CInt_writeData
236
 115               		.stabn	68,0,109,.LM4-.LFBB2
236
 115               	.LM4:
237
 116               	.LM4:
237
 116 000a 8091 0000 		lds r24,status
238
 117 000a 8091 0000 		lds r24,status
238
 117 000e 8823      		tst r24
239
 118 000e 8823      		tst r24
239
 118 0010 E4F3      		brlt .L5
240
 119 0010 04F0      		brlt .L5
240
 119               	.L9:
-
 
241
GAS LISTING /tmp/ccZHfAgR.s 			page 5
241
GAS LISTING /tmp/ccfEG7oP.s 			page 5
242
 
242
 
243
 
243
 
-
 
244
 120               	.L9:
244
 110:I2CInterface.c **** 	while(TWCR & (1<<TWSTO));
245
 110:I2CInterface.c **** 	while(TWCR & (1<<TWSTO));
245
 120               		.stabn	68,0,110,.LM5-I2CInt_writeData
246
 121               		.stabn	68,0,110,.LM5-.LFBB2
246
 121               	.LM5:
247
 122               	.LM5:
247
 122 0012 06B6      		in __tmp_reg__,86-0x20
248
 123 0012 06B6      		in __tmp_reg__,86-0x20
248
 123 0014 04FC      		sbrc __tmp_reg__,4
249
 124 0014 04FC      		sbrc __tmp_reg__,4
249
 124 0016 FDCF      		rjmp .L9
250
 125 0016 00C0      		rjmp .L9
250
 111:I2CInterface.c **** 	
251
 111:I2CInterface.c **** 	
251
 112:I2CInterface.c **** 	/* copy the needed data and state info to our local I2C command structure */
252
 112:I2CInterface.c **** 	/* copy the needed data and state info to our local I2C command structure */
252
 113:I2CInterface.c **** 	twi_address = address;
253
 113:I2CInterface.c **** 	twi_address = address;
253
 125               		.stabn	68,0,113,.LM6-I2CInt_writeData
254
 126               		.stabn	68,0,113,.LM6-.LFBB2
254
 126               	.LM6:
255
 127               	.LM6:
255
 127 0018 9093 0000 		sts twi_address,r25
256
 128 0018 9093 0000 		sts twi_address,r25
256
 114:I2CInterface.c **** 	twi_data = data;
257
 114:I2CInterface.c **** 	twi_data = data;
257
 128               		.stabn	68,0,114,.LM7-I2CInt_writeData
258
 129               		.stabn	68,0,114,.LM7-.LFBB2
258
 129               	.LM7:
259
 130               	.LM7:
259
 130 001c 7093 0000 		sts (twi_data)+1,r23
260
 131 001c 7093 0000 		sts (twi_data)+1,r23
260
 131 0020 6093 0000 		sts twi_data,r22
261
 132 0020 6093 0000 		sts twi_data,r22
261
 115:I2CInterface.c **** 	twi_bytes = bytes;
262
 115:I2CInterface.c **** 	twi_bytes = bytes;
262
 132               		.stabn	68,0,115,.LM8-I2CInt_writeData
263
 133               		.stabn	68,0,115,.LM8-.LFBB2
263
 133               	.LM8:
264
 134               	.LM8:
264
 134 0024 4093 0000 		sts twi_bytes,r20
265
 135 0024 4093 0000 		sts twi_bytes,r20
265
 116:I2CInterface.c **** 	twi_ddr = TW_WRITE;
266
 116:I2CInterface.c **** 	twi_ddr = TW_WRITE;
266
 135               		.stabn	68,0,116,.LM9-I2CInt_writeData
267
 136               		.stabn	68,0,116,.LM9-.LFBB2
267
 136               	.LM9:
268
 137               	.LM9:
268
 137 0028 1092 0000 		sts twi_ddr,__zero_reg__
269
 138 0028 1092 0000 		sts twi_ddr,__zero_reg__
269
 117:I2CInterface.c **** 
270
 117:I2CInterface.c **** 
270
 118:I2CInterface.c **** 	retry_cnt = 0;
271
 118:I2CInterface.c **** 	retry_cnt = 0;
271
 138               		.stabn	68,0,118,.LM10-I2CInt_writeData
272
 139               		.stabn	68,0,118,.LM10-.LFBB2
272
 139               	.LM10:
273
 140               	.LM10:
273
 140 002c 1092 0000 		sts retry_cnt,__zero_reg__
274
 141 002c 1092 0000 		sts retry_cnt,__zero_reg__
274
 119:I2CInterface.c **** 	
275
 119:I2CInterface.c **** 	
275
 120:I2CInterface.c **** 	/* Generate start condition, the remainder of the transfer is interrupt driven and
276
 120:I2CInterface.c **** 	/* Generate start condition, the remainder of the transfer is interrupt driven and
276
 121:I2CInterface.c **** 	   will be performed in the background */
277
 121:I2CInterface.c **** 	   will be performed in the background */
277
 122:I2CInterface.c **** 	TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN)|(1<<TWIE);
278
 122:I2CInterface.c **** 	TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN)|(1<<TWIE);
278
 141               		.stabn	68,0,122,.LM11-I2CInt_writeData
279
 142               		.stabn	68,0,122,.LM11-.LFBB2
279
 142               	.LM11:
280
 143               	.LM11:
280
 143 0030 85EA      		ldi r24,lo8(-91)
281
 144 0030 85EA      		ldi r24,lo8(-91)
281
 144 0032 86BF      		out 86-0x20,r24
282
 145 0032 86BF      		out 86-0x20,r24
282
 123:I2CInterface.c **** 	
283
 123:I2CInterface.c **** 	
283
 124:I2CInterface.c **** 	status |= (1<<BUSY);
284
 124:I2CInterface.c **** 	status |= (1<<BUSY);
284
 145               		.stabn	68,0,124,.LM12-I2CInt_writeData
285
 146               		.stabn	68,0,124,.LM12-.LFBB2
285
 146               	.LM12:
286
 147               	.LM12:
286
 147 0034 8091 0000 		lds r24,status
287
 148 0034 8091 0000 		lds r24,status
287
 148 0038 8068      		ori r24,lo8(-128)
288
 149 0038 8068      		ori r24,lo8(-128)
288
 149 003a 8093 0000 		sts status,r24
289
 150 003a 8093 0000 		sts status,r24
289
 150               	/* epilogue: frame size=0 */
290
 151               	/* epilogue: frame size=0 */
290
 151 003e 0895      		ret
291
 152 003e 0895      		ret
291
 152               	/* epilogue end (size=1) */
292
 153               	/* epilogue end (size=1) */
292
 153               	/* function I2CInt_writeData size 28 (27) */
293
 154               	/* function I2CInt_writeData size 28 (27) */
293
 154               		.size	I2CInt_writeData, .-I2CInt_writeData
294
 155               		.size	I2CInt_writeData, .-I2CInt_writeData
294
 155               	.Lscope1:
295
 156               	.Lscope2:
295
 156               		.stabs	"",36,0,0,.Lscope1-I2CInt_writeData
296
 157               		.stabs	"",36,0,0,.Lscope2-.LFBB2
296
 157               		.stabd	78,0,0
297
 158               		.stabd	78,0,0
297
 158               		.stabs	"I2CInt_readData:F(0,15)",36,0,138,I2CInt_readData
298
 159               		.stabs	"I2CInt_readData:F(0,15)",36,0,138,I2CInt_readData
298
 159               		.stabs	"address:P(0,11)",64,0,137,25
299
 160               		.stabs	"address:P(0,11)",64,0,137,25
299
 160               		.stabs	"data:P(0,16)",64,0,137,22
300
 161               		.stabs	"data:P(0,16)",64,0,137,22
300
 161               		.stabs	"bytes:P(0,11)",64,0,137,20
-
 
301
GAS LISTING /tmp/ccZHfAgR.s 			page 6
301
GAS LISTING /tmp/ccfEG7oP.s 			page 6
302
 
302
 
303
 
303
 
-
 
304
 162               		.stabs	"bytes:P(0,11)",64,0,137,20
304
 162               	.global	I2CInt_readData
305
 163               	.global	I2CInt_readData
305
 163               		.type	I2CInt_readData, @function
306
 164               		.type	I2CInt_readData, @function
306
 164               	I2CInt_readData:
307
 165               	I2CInt_readData:
307
 165               		.stabd	46,0,0
308
 166               		.stabd	46,0,0
308
 125:I2CInterface.c **** }
309
 125:I2CInterface.c **** }
309
 126:I2CInterface.c **** 
310
 126:I2CInterface.c **** 
310
 127:I2CInterface.c **** /***********************************************************
311
 127:I2CInterface.c **** /***********************************************************
311
 128:I2CInterface.c **** 	Function Name: I2CInt_readData
312
 128:I2CInterface.c **** 	Function Name: I2CInt_readData
312
 129:I2CInterface.c **** 	Function Description: This funcion is responsible for
313
 129:I2CInterface.c **** 	Function Description: This funcion is responsible for
Line 317... Line 318...
317
 134:I2CInterface.c **** 			 bytes: the number of bytes to read
318
 134:I2CInterface.c **** 			 bytes: the number of bytes to read
318
 135:I2CInterface.c **** 	Outputs: none
319
 135:I2CInterface.c **** 	Outputs: none
319
 136:I2CInterface.c **** ***********************************************************/
320
 136:I2CInterface.c **** ***********************************************************/
320
 137:I2CInterface.c **** void I2CInt_readData(unsigned char address, unsigned char *data, unsigned char bytes)
321
 137:I2CInterface.c **** void I2CInt_readData(unsigned char address, unsigned char *data, unsigned char bytes)
321
 138:I2CInterface.c **** {
322
 138:I2CInterface.c **** {
322
 166               		.stabn	68,0,138,.LM13-I2CInt_readData
323
 167               		.stabn	68,0,138,.LM13-.LFBB3
323
 167               	.LM13:
324
 168               	.LM13:
-
 
325
 169               	.LFBB3:
324
 168               	/* prologue: frame size=0 */
326
 170               	/* prologue: frame size=0 */
325
 169               	/* prologue end (size=0) */
327
 171               	/* prologue end (size=0) */
326
 170 0040 982F      		mov r25,r24
328
 172 0040 982F      		mov r25,r24
327
 171               	.L15:
329
 173               	.L15:
328
 139:I2CInterface.c ****     /* Bus is busy wait (or exit with error code) */
330
 139:I2CInterface.c ****     /* Bus is busy wait (or exit with error code) */
329
 140:I2CInterface.c **** 	while(status & (1<<BUSY));									
331
 140:I2CInterface.c **** 	while(status & (1<<BUSY));									
330
 172               		.stabn	68,0,140,.LM14-I2CInt_readData
332
 174               		.stabn	68,0,140,.LM14-.LFBB3
331
 173               	.LM14:
333
 175               	.LM14:
332
 174 0042 8091 0000 		lds r24,status
334
 176 0042 8091 0000 		lds r24,status
333
 175 0046 8823      		tst r24
335
 177 0046 8823      		tst r24
334
 176 0048 E4F3      		brlt .L15
336
 178 0048 04F0      		brlt .L15
335
 141:I2CInterface.c **** 
337
 141:I2CInterface.c **** 
336
 142:I2CInterface.c **** 	twi_address = address;
338
 142:I2CInterface.c **** 	twi_address = address;
337
 177               		.stabn	68,0,142,.LM15-I2CInt_readData
339
 179               		.stabn	68,0,142,.LM15-.LFBB3
338
 178               	.LM15:
340
 180               	.LM15:
339
 179 004a 9093 0000 		sts twi_address,r25
341
 181 004a 9093 0000 		sts twi_address,r25
340
 143:I2CInterface.c **** 	twi_data = data;
342
 143:I2CInterface.c **** 	twi_data = data;
341
 180               		.stabn	68,0,143,.LM16-I2CInt_readData
343
 182               		.stabn	68,0,143,.LM16-.LFBB3
342
 181               	.LM16:
344
 183               	.LM16:
343
 182 004e 7093 0000 		sts (twi_data)+1,r23
345
 184 004e 7093 0000 		sts (twi_data)+1,r23
344
 183 0052 6093 0000 		sts twi_data,r22
346
 185 0052 6093 0000 		sts twi_data,r22
345
 144:I2CInterface.c **** 	twi_bytes = bytes;
347
 144:I2CInterface.c **** 	twi_bytes = bytes;
346
 184               		.stabn	68,0,144,.LM17-I2CInt_readData
348
 186               		.stabn	68,0,144,.LM17-.LFBB3
347
 185               	.LM17:
349
 187               	.LM17:
348
 186 0056 4093 0000 		sts twi_bytes,r20
350
 188 0056 4093 0000 		sts twi_bytes,r20
349
 145:I2CInterface.c **** 	twi_ddr = TW_READ;
351
 145:I2CInterface.c **** 	twi_ddr = TW_READ;
350
 187               		.stabn	68,0,145,.LM18-I2CInt_readData
352
 189               		.stabn	68,0,145,.LM18-.LFBB3
351
 188               	.LM18:
353
 190               	.LM18:
352
 189 005a 81E0      		ldi r24,lo8(1)
354
 191 005a 81E0      		ldi r24,lo8(1)
353
 190 005c 8093 0000 		sts twi_ddr,r24
355
 192 005c 8093 0000 		sts twi_ddr,r24
354
 146:I2CInterface.c **** 
356
 146:I2CInterface.c **** 
355
 147:I2CInterface.c **** 	retry_cnt = 0;
357
 147:I2CInterface.c **** 	retry_cnt = 0;
356
 191               		.stabn	68,0,147,.LM19-I2CInt_readData
358
 193               		.stabn	68,0,147,.LM19-.LFBB3
357
 192               	.LM19:
359
 194               	.LM19:
358
 193 0060 1092 0000 		sts retry_cnt,__zero_reg__
360
 195 0060 1092 0000 		sts retry_cnt,__zero_reg__
359
 148:I2CInterface.c **** 	
-
 
360
 149:I2CInterface.c **** 	/* Generate start condition, the remainder of the transfer is interrupt driven and
-
 
361
GAS LISTING /tmp/ccZHfAgR.s 			page 7
361
GAS LISTING /tmp/ccfEG7oP.s 			page 7
362
 
362
 
363
 
363
 
-
 
364
 148:I2CInterface.c **** 	
-
 
365
 149:I2CInterface.c **** 	/* Generate start condition, the remainder of the transfer is interrupt driven and
364
 150:I2CInterface.c **** 	   will be performed in the background */
366
 150:I2CInterface.c **** 	   will be performed in the background */
365
 151:I2CInterface.c **** 	TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN)|(1<<TWIE);
367
 151:I2CInterface.c **** 	TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN)|(1<<TWIE);
366
 194               		.stabn	68,0,151,.LM20-I2CInt_readData
368
 196               		.stabn	68,0,151,.LM20-.LFBB3
367
 195               	.LM20:
369
 197               	.LM20:
368
 196 0064 85EA      		ldi r24,lo8(-91)
370
 198 0064 85EA      		ldi r24,lo8(-91)
369
 197 0066 86BF      		out 86-0x20,r24
371
 199 0066 86BF      		out 86-0x20,r24
370
 152:I2CInterface.c **** 	
372
 152:I2CInterface.c **** 	
371
 153:I2CInterface.c **** 	status |= (1<<BUSY);
373
 153:I2CInterface.c **** 	status |= (1<<BUSY);
372
 198               		.stabn	68,0,153,.LM21-I2CInt_readData
374
 200               		.stabn	68,0,153,.LM21-.LFBB3
373
 199               	.LM21:
375
 201               	.LM21:
374
 200 0068 8091 0000 		lds r24,status
376
 202 0068 8091 0000 		lds r24,status
375
 201 006c 8068      		ori r24,lo8(-128)
377
 203 006c 8068      		ori r24,lo8(-128)
376
 202 006e 8093 0000 		sts status,r24
378
 204 006e 8093 0000 		sts status,r24
377
 203               	/* epilogue: frame size=0 */
379
 205               	/* epilogue: frame size=0 */
378
 204 0072 0895      		ret
380
 206 0072 0895      		ret
379
 205               	/* epilogue end (size=1) */
381
 207               	/* epilogue end (size=1) */
380
 206               	/* function I2CInt_readData size 26 (25) */
382
 208               	/* function I2CInt_readData size 26 (25) */
381
 207               		.size	I2CInt_readData, .-I2CInt_readData
383
 209               		.size	I2CInt_readData, .-I2CInt_readData
382
 208               	.Lscope2:
384
 210               	.Lscope3:
383
 209               		.stabs	"",36,0,0,.Lscope2-I2CInt_readData
385
 211               		.stabs	"",36,0,0,.Lscope3-.LFBB3
384
 210               		.stabd	78,0,0
386
 212               		.stabd	78,0,0
385
 211               		.stabs	"I2CInt_isI2cBusy:F(7,1)",36,0,166,I2CInt_isI2cBusy
387
 213               		.stabs	"I2CInt_isI2cBusy:F(7,1)",36,0,166,I2CInt_isI2cBusy
386
 212               	.global	I2CInt_isI2cBusy
388
 214               	.global	I2CInt_isI2cBusy
387
 213               		.type	I2CInt_isI2cBusy, @function
389
 215               		.type	I2CInt_isI2cBusy, @function
388
 214               	I2CInt_isI2cBusy:
390
 216               	I2CInt_isI2cBusy:
389
 215               		.stabd	46,0,0
391
 217               		.stabd	46,0,0
390
 154:I2CInterface.c **** }
392
 154:I2CInterface.c **** }
391
 155:I2CInterface.c **** 
393
 155:I2CInterface.c **** 
392
 156:I2CInterface.c **** /***********************************************************
394
 156:I2CInterface.c **** /***********************************************************
393
 157:I2CInterface.c **** 	Function Name: I2CInt_isI2cBusy
395
 157:I2CInterface.c **** 	Function Name: I2CInt_isI2cBusy
394
 158:I2CInterface.c **** 	Function Description: This funcion is responsible for
396
 158:I2CInterface.c **** 	Function Description: This funcion is responsible for
Line 398... Line 400...
398
 162:I2CInterface.c **** 	Inputs:  none
400
 162:I2CInterface.c **** 	Inputs:  none
399
 163:I2CInterface.c **** 	Outputs: bool_t - indicating if bus is busy
401
 163:I2CInterface.c **** 	Outputs: bool_t - indicating if bus is busy
400
 164:I2CInterface.c **** ***********************************************************/
402
 164:I2CInterface.c **** ***********************************************************/
401
 165:I2CInterface.c **** bool_t I2CInt_isI2cBusy(void)
403
 165:I2CInterface.c **** bool_t I2CInt_isI2cBusy(void)
402
 166:I2CInterface.c **** {
404
 166:I2CInterface.c **** {
403
 216               		.stabn	68,0,166,.LM22-I2CInt_isI2cBusy
405
 218               		.stabn	68,0,166,.LM22-.LFBB4
404
 217               	.LM22:
406
 219               	.LM22:
-
 
407
 220               	.LFBB4:
405
 218               	/* prologue: frame size=0 */
408
 221               	/* prologue: frame size=0 */
406
 219               	/* prologue end (size=0) */
409
 222               	/* prologue end (size=0) */
407
 167:I2CInterface.c **** 	bool_t retVal = FALSE;
410
 167:I2CInterface.c **** 	bool_t retVal = FALSE;
408
 168:I2CInterface.c **** 	if ( (status & (1<<BUSY)) != 0)
411
 168:I2CInterface.c **** 	if ( (status & (1<<BUSY)) != 0)
409
 220               		.stabn	68,0,168,.LM23-I2CInt_isI2cBusy
412
 223               		.stabn	68,0,168,.LM23-.LFBB4
410
 221               	.LM23:
413
 224               	.LM23:
411
 222 0074 8091 0000 		lds r24,status
414
 225 0074 8091 0000 		lds r24,status
412
 223 0078 881F      		rol r24
415
 226 0078 881F      		rol r24
413
 224 007a 8827      		clr r24
416
 227 007a 8827      		clr r24
414
 225 007c 881F      		rol r24
417
 228 007c 881F      		rol r24
415
 169:I2CInterface.c **** 	{
418
 169:I2CInterface.c **** 	{
416
 170:I2CInterface.c **** 		retVal = TRUE;
419
 170:I2CInterface.c **** 		retVal = TRUE;
417
 171:I2CInterface.c **** 	}
420
 171:I2CInterface.c **** 	}
-
 
421
GAS LISTING /tmp/ccfEG7oP.s 			page 8
-
 
422
 
-
 
423
 
418
 172:I2CInterface.c **** 	
424
 172:I2CInterface.c **** 	
419
 173:I2CInterface.c **** 	return(retVal);
425
 173:I2CInterface.c **** 	return(retVal);
420
 174:I2CInterface.c **** }
426
 174:I2CInterface.c **** }
421
GAS LISTING /tmp/ccZHfAgR.s 			page 8
-
 
422
 
-
 
423
 
-
 
424
 226               		.stabn	68,0,174,.LM24-I2CInt_isI2cBusy
427
 229               		.stabn	68,0,174,.LM24-.LFBB4
425
 227               	.LM24:
428
 230               	.LM24:
426
 228 007e 9927      		clr r25
429
 231 007e 9927      		clr r25
427
 229               	/* epilogue: frame size=0 */
430
 232               	/* epilogue: frame size=0 */
428
 230 0080 0895      		ret
431
 233 0080 0895      		ret
429
 231               	/* epilogue end (size=1) */
432
 234               	/* epilogue end (size=1) */
430
 232               	/* function I2CInt_isI2cBusy size 7 (6) */
433
 235               	/* function I2CInt_isI2cBusy size 7 (6) */
431
 233               		.size	I2CInt_isI2cBusy, .-I2CInt_isI2cBusy
434
 236               		.size	I2CInt_isI2cBusy, .-I2CInt_isI2cBusy
432
 234               	.Lscope3:
435
 237               	.Lscope4:
433
 235               		.stabs	"",36,0,0,.Lscope3-I2CInt_isI2cBusy
436
 238               		.stabs	"",36,0,0,.Lscope4-.LFBB4
434
 236               		.stabd	78,0,0
437
 239               		.stabd	78,0,0
435
 237               		.stabs	"__vector_17:F(0,15)",36,0,185,__vector_17
438
 240               		.stabs	"__vector_17:F(0,15)",36,0,185,__vector_17
436
 238               	.global	__vector_17
439
 241               	.global	__vector_17
437
 239               		.type	__vector_17, @function
440
 242               		.type	__vector_17, @function
438
 240               	__vector_17:
441
 243               	__vector_17:
439
 241               		.stabd	46,0,0
442
 244               		.stabd	46,0,0
440
 175:I2CInterface.c **** 
443
 175:I2CInterface.c **** 
441
 176:I2CInterface.c **** /***********************************************************
444
 176:I2CInterface.c **** /***********************************************************
442
 177:I2CInterface.c **** 	Function Name: <interrupt handler for I2C>
445
 177:I2CInterface.c **** 	Function Name: <interrupt handler for I2C>
443
 178:I2CInterface.c **** 	Function Description: This function is responsible for
446
 178:I2CInterface.c **** 	Function Description: This function is responsible for
444
 179:I2CInterface.c **** 	implementing the control logic needed to perform a
447
 179:I2CInterface.c **** 	implementing the control logic needed to perform a
Line 446... Line 449...
446
 181:I2CInterface.c **** 	Inputs:  none
449
 181:I2CInterface.c **** 	Inputs:  none
447
 182:I2CInterface.c **** 	Outputs: none
450
 182:I2CInterface.c **** 	Outputs: none
448
 183:I2CInterface.c **** ***********************************************************/
451
 183:I2CInterface.c **** ***********************************************************/
449
 184:I2CInterface.c **** SIGNAL(SIG_2WIRE_SERIAL)
452
 184:I2CInterface.c **** SIGNAL(SIG_2WIRE_SERIAL)
450
 185:I2CInterface.c **** {
453
 185:I2CInterface.c **** {
451
 242               		.stabn	68,0,185,.LM25-__vector_17
454
 245               		.stabn	68,0,185,.LM25-.LFBB5
452
 243               	.LM25:
455
 246               	.LM25:
-
 
456
 247               	.LFBB5:
453
 244               	/* prologue: frame size=0 */
457
 248               	/* prologue: frame size=0 */
454
 245 0082 1F92      		push __zero_reg__
458
 249 0082 1F92      		push __zero_reg__
455
 246 0084 0F92      		push __tmp_reg__
459
 250 0084 0F92      		push __tmp_reg__
456
 247 0086 0FB6      		in __tmp_reg__,__SREG__
460
 251 0086 0FB6      		in __tmp_reg__,__SREG__
457
 248 0088 0F92      		push __tmp_reg__
461
 252 0088 0F92      		push __tmp_reg__
458
 249 008a 1124      		clr __zero_reg__
462
 253 008a 1124      		clr __zero_reg__
459
 250 008c 8F93      		push r24
463
 254 008c 8F93      		push r24
460
 251 008e 9F93      		push r25
464
 255 008e 9F93      		push r25
461
 252 0090 AF93      		push r26
465
 256 0090 AF93      		push r26
462
 253 0092 BF93      		push r27
466
 257 0092 BF93      		push r27
463
 254 0094 EF93      		push r30
467
 258 0094 EF93      		push r30
464
 255 0096 FF93      		push r31
468
 259 0096 FF93      		push r31
465
 256               	/* prologue end (size=11) */
469
 260               	/* prologue end (size=11) */
466
 186:I2CInterface.c **** 	unsigned char TWI_status = TWSR & TW_STATUS_MASK;   /* grab just the status bits */
470
 186:I2CInterface.c **** 	unsigned char TWI_status = TWSR & TW_STATUS_MASK;   /* grab just the status bits */
467
 257               		.stabn	68,0,186,.LM26-__vector_17
471
 261               		.stabn	68,0,186,.LM26-.LFBB5
468
 258               	.LM26:
472
 262               	.LM26:
469
 259 0098 81B1      		in r24,33-0x20
473
 263 0098 81B1      		in r24,33-0x20
470
 187:I2CInterface.c **** 	
474
 187:I2CInterface.c **** 	
471
 188:I2CInterface.c ****     /* the entire I2C handler is state-based...determine
475
 188:I2CInterface.c ****     /* the entire I2C handler is state-based...determine
472
 189:I2CInterface.c ****     what needs to be done based on TWI_status */
476
 189:I2CInterface.c ****     what needs to be done based on TWI_status */
473
 190:I2CInterface.c **** 	switch(TWI_status) 
477
 190:I2CInterface.c **** 	switch(TWI_status) 
474
 260               		.stabn	68,0,190,.LM27-__vector_17
478
 264               		.stabn	68,0,190,.LM27-.LFBB5
475
 261               	.LM27:
479
 265               	.LM27:
476
 262 009a 9927      		clr r25
480
 266 009a 9927      		clr r25
-
 
481
GAS LISTING /tmp/ccfEG7oP.s 			page 9
-
 
482
 
-
 
483
 
477
 263 009c AA27      		clr r26
484
 267 009c AA27      		clr r26
478
 264 009e BB27      		clr r27
485
 268 009e BB27      		clr r27
479
 265 00a0 887F      		andi r24,lo8(248)
486
 269 00a0 887F      		andi r24,lo8(248)
480
 266 00a2 9070      		andi r25,hi8(248)
487
 270 00a2 9070      		andi r25,hi8(248)
481
GAS LISTING /tmp/ccZHfAgR.s 			page 9
-
 
482
 
-
 
483
 
-
 
484
 267 00a4 A070      		andi r26,hlo8(248)
488
 271 00a4 A070      		andi r26,hlo8(248)
485
 268 00a6 B070      		andi r27,hhi8(248)
489
 272 00a6 B070      		andi r27,hhi8(248)
486
 269 00a8 FC01      		movw r30,r24
490
 273 00a8 FC01      		movw r30,r24
487
 270 00aa 3897      		sbiw r30,8
491
 274 00aa 3897      		sbiw r30,8
488
 271 00ac E135      		cpi r30,81
492
 275 00ac E135      		cpi r30,81
489
 272 00ae F105      		cpc r31,__zero_reg__
493
 276 00ae F105      		cpc r31,__zero_reg__
490
 273 00b0 08F0      		brlo .+2
494
 277 00b0 00F0      		brlo .+2
491
 274 00b2 9AC0      		rjmp .L42
495
 278 00b2 00C0      		rjmp .L42
492
 275               		.stabn	68,0,190,.LM28-__vector_17
496
 279               		.stabn	68,0,190,.LM28-.LFBB5
493
 276               	.LM28:
497
 280               	.LM28:
494
 277 00b4 E050      		subi r30,lo8(-(pm(.L33)))
498
 281 00b4 E050      		subi r30,lo8(-(pm(.L33)))
495
 278 00b6 F040      		sbci r31,hi8(-(pm(.L33)))
499
 282 00b6 F040      		sbci r31,hi8(-(pm(.L33)))
496
 279 00b8 0994      		ijmp
500
 283 00b8 0994      		ijmp
497
 280               		.data
-
 
498
 281               		.section .progmem.gcc_sw_table, "ax", @progbits
-
 
499
 282               		.p2align 1
-
 
500
 283               	.L33:
-
 
501
 284               		.data
501
 284               		.data
502
 285               		.section .progmem.gcc_sw_table, "ax", @progbits
502
 285               		.section .progmem.gcc_sw_table, "ax", @progbits
503
 286               		.p2align 1
503
 286               		.p2align 1
504
 287 0000 00C0      		rjmp .L25
504
 287               	.L33:
505
 288 0002 00C0      		rjmp .L42
505
 288               		.data
506
 289 0004 00C0      		rjmp .L42
506
 289               		.section .progmem.gcc_sw_table, "ax", @progbits
507
 290 0006 00C0      		rjmp .L42
507
 290               		.p2align 1
508
 291 0008 00C0      		rjmp .L42
508
 291 0000 00C0      		rjmp .L25
509
 292 000a 00C0      		rjmp .L42
509
 292 0002 00C0      		rjmp .L42
510
 293 000c 00C0      		rjmp .L42
510
 293 0004 00C0      		rjmp .L42
511
 294 000e 00C0      		rjmp .L42
511
 294 0006 00C0      		rjmp .L42
512
 295 0010 00C0      		rjmp .L25
512
 295 0008 00C0      		rjmp .L42
513
 296 0012 00C0      		rjmp .L42
513
 296 000a 00C0      		rjmp .L42
514
 297 0014 00C0      		rjmp .L42
514
 297 000c 00C0      		rjmp .L42
515
 298 0016 00C0      		rjmp .L42
515
 298 000e 00C0      		rjmp .L42
516
 299 0018 00C0      		rjmp .L42
516
 299 0010 00C0      		rjmp .L25
517
 300 001a 00C0      		rjmp .L42
517
 300 0012 00C0      		rjmp .L42
518
 301 001c 00C0      		rjmp .L42
518
 301 0014 00C0      		rjmp .L42
519
 302 001e 00C0      		rjmp .L42
519
 302 0016 00C0      		rjmp .L42
520
 303 0020 00C0      		rjmp .L26
520
 303 0018 00C0      		rjmp .L42
521
 304 0022 00C0      		rjmp .L42
521
 304 001a 00C0      		rjmp .L42
522
 305 0024 00C0      		rjmp .L42
522
 305 001c 00C0      		rjmp .L42
523
 306 0026 00C0      		rjmp .L42
523
 306 001e 00C0      		rjmp .L42
524
 307 0028 00C0      		rjmp .L42
524
 307 0020 00C0      		rjmp .L26
525
 308 002a 00C0      		rjmp .L42
525
 308 0022 00C0      		rjmp .L42
526
 309 002c 00C0      		rjmp .L42
526
 309 0024 00C0      		rjmp .L42
527
 310 002e 00C0      		rjmp .L42
527
 310 0026 00C0      		rjmp .L42
528
 311 0030 00C0      		rjmp .L27
528
 311 0028 00C0      		rjmp .L42
529
 312 0032 00C0      		rjmp .L42
529
 312 002a 00C0      		rjmp .L42
530
 313 0034 00C0      		rjmp .L42
530
 313 002c 00C0      		rjmp .L42
531
 314 0036 00C0      		rjmp .L42
531
 314 002e 00C0      		rjmp .L42
532
 315 0038 00C0      		rjmp .L42
532
 315 0030 00C0      		rjmp .L27
533
 316 003a 00C0      		rjmp .L42
533
 316 0032 00C0      		rjmp .L42
534
 317 003c 00C0      		rjmp .L42
534
 317 0034 00C0      		rjmp .L42
535
 318 003e 00C0      		rjmp .L42
535
 318 0036 00C0      		rjmp .L42
536
 319 0040 00C0      		rjmp .L28
536
 319 0038 00C0      		rjmp .L42
537
 320 0042 00C0      		rjmp .L42
537
 320 003a 00C0      		rjmp .L42
538
 321 0044 00C0      		rjmp .L42
538
 321 003c 00C0      		rjmp .L42
539
 322 0046 00C0      		rjmp .L42
539
 322 003e 00C0      		rjmp .L42
540
 323 0048 00C0      		rjmp .L42
540
 323 0040 00C0      		rjmp .L28
541
GAS LISTING /tmp/ccZHfAgR.s 			page 10
541
GAS LISTING /tmp/ccfEG7oP.s 			page 10
542
 
542
 
543
 
543
 
544
 324 004a 00C0      		rjmp .L42
544
 324 0042 00C0      		rjmp .L42
545
 325 004c 00C0      		rjmp .L42
545
 325 0044 00C0      		rjmp .L42
546
 326 004e 00C0      		rjmp .L42
546
 326 0046 00C0      		rjmp .L42
-
 
547
 327 0048 00C0      		rjmp .L42
-
 
548
 328 004a 00C0      		rjmp .L42
-
 
549
 329 004c 00C0      		rjmp .L42
-
 
550
 330 004e 00C0      		rjmp .L42
547
 327 0050 00C0      		rjmp .L29
551
 331 0050 00C0      		rjmp .L29
548
 328 0052 00C0      		rjmp .L42
552
 332 0052 00C0      		rjmp .L42
549
 329 0054 00C0      		rjmp .L42
553
 333 0054 00C0      		rjmp .L42
550
 330 0056 00C0      		rjmp .L42
554
 334 0056 00C0      		rjmp .L42
551
 331 0058 00C0      		rjmp .L42
555
 335 0058 00C0      		rjmp .L42
552
 332 005a 00C0      		rjmp .L42
556
 336 005a 00C0      		rjmp .L42
553
 333 005c 00C0      		rjmp .L42
557
 337 005c 00C0      		rjmp .L42
554
 334 005e 00C0      		rjmp .L42
558
 338 005e 00C0      		rjmp .L42
555
 335 0060 00C0      		rjmp .L42
559
 339 0060 00C0      		rjmp .L42
556
 336 0062 00C0      		rjmp .L42
560
 340 0062 00C0      		rjmp .L42
557
 337 0064 00C0      		rjmp .L42
561
 341 0064 00C0      		rjmp .L42
558
 338 0066 00C0      		rjmp .L42
562
 342 0066 00C0      		rjmp .L42
559
 339 0068 00C0      		rjmp .L42
563
 343 0068 00C0      		rjmp .L42
560
 340 006a 00C0      		rjmp .L42
564
 344 006a 00C0      		rjmp .L42
561
 341 006c 00C0      		rjmp .L42
565
 345 006c 00C0      		rjmp .L42
562
 342 006e 00C0      		rjmp .L42
566
 346 006e 00C0      		rjmp .L42
563
 343 0070 00C0      		rjmp .L30
567
 347 0070 00C0      		rjmp .L30
564
 344 0072 00C0      		rjmp .L42
568
 348 0072 00C0      		rjmp .L42
565
 345 0074 00C0      		rjmp .L42
569
 349 0074 00C0      		rjmp .L42
566
 346 0076 00C0      		rjmp .L42
570
 350 0076 00C0      		rjmp .L42
567
 347 0078 00C0      		rjmp .L42
571
 351 0078 00C0      		rjmp .L42
568
 348 007a 00C0      		rjmp .L42
572
 352 007a 00C0      		rjmp .L42
569
 349 007c 00C0      		rjmp .L42
573
 353 007c 00C0      		rjmp .L42
570
 350 007e 00C0      		rjmp .L42
574
 354 007e 00C0      		rjmp .L42
571
 351 0080 00C0      		rjmp .L27
575
 355 0080 00C0      		rjmp .L27
572
 352 0082 00C0      		rjmp .L42
576
 356 0082 00C0      		rjmp .L42
573
 353 0084 00C0      		rjmp .L42
577
 357 0084 00C0      		rjmp .L42
574
 354 0086 00C0      		rjmp .L42
578
 358 0086 00C0      		rjmp .L42
575
 355 0088 00C0      		rjmp .L42
579
 359 0088 00C0      		rjmp .L42
576
 356 008a 00C0      		rjmp .L42
580
 360 008a 00C0      		rjmp .L42
577
 357 008c 00C0      		rjmp .L42
581
 361 008c 00C0      		rjmp .L42
578
 358 008e 00C0      		rjmp .L42
582
 362 008e 00C0      		rjmp .L42
579
 359 0090 00C0      		rjmp .L31
583
 363 0090 00C0      		rjmp .L31
580
 360 0092 00C0      		rjmp .L42
584
 364 0092 00C0      		rjmp .L42
581
 361 0094 00C0      		rjmp .L42
585
 365 0094 00C0      		rjmp .L42
582
 362 0096 00C0      		rjmp .L42
586
 366 0096 00C0      		rjmp .L42
583
 363 0098 00C0      		rjmp .L42
587
 367 0098 00C0      		rjmp .L42
584
 364 009a 00C0      		rjmp .L42
588
 368 009a 00C0      		rjmp .L42
585
 365 009c 00C0      		rjmp .L42
589
 369 009c 00C0      		rjmp .L42
586
 366 009e 00C0      		rjmp .L42
590
 370 009e 00C0      		rjmp .L42
587
 367 00a0 00C0      		rjmp .L32
591
 371 00a0 00C0      		rjmp .L32
588
 368               		.text
592
 372               		.text
589
 369               	.L25:
593
 373               	.L25:
590
 191:I2CInterface.c ****     {
594
 191:I2CInterface.c ****     {
591
 192:I2CInterface.c ****         case TW_START:									/* Start condition */
595
 192:I2CInterface.c ****         case TW_START:									/* Start condition */
592
 193:I2CInterface.c ****         case TW_REP_START:								/* Repeated start condition */
596
 193:I2CInterface.c ****         case TW_REP_START:								/* Repeated start condition */
593
 194:I2CInterface.c ****             if(retry_cnt > MAX_TWI_RETRIES) 
597
 194:I2CInterface.c ****             if(retry_cnt > MAX_TWI_RETRIES) 
594
 370               		.stabn	68,0,194,.LM29-__vector_17
598
 374               		.stabn	68,0,194,.LM29-.LFBB5
595
 371               	.LM29:
599
 375               	.LM29:
596
 372 00ba 8091 0000 		lds r24,retry_cnt
600
 376 00ba 8091 0000 		lds r24,retry_cnt
597
 373 00be 8330      		cpi r24,lo8(3)
-
 
598
 374 00c0 48F0      		brlo .L34
-
 
599
 195:I2CInterface.c ****             {
-
 
600
 196:I2CInterface.c ****                 /* generate stop condition if we've reached our retry limit */
-
 
601
GAS LISTING /tmp/ccZHfAgR.s 			page 11
601
GAS LISTING /tmp/ccfEG7oP.s 			page 11
602
 
602
 
603
 
603
 
-
 
604
 377 00be 8330      		cpi r24,lo8(3)
-
 
605
 378 00c0 00F0      		brlo .L34
-
 
606
 195:I2CInterface.c ****             {
-
 
607
 196:I2CInterface.c ****                 /* generate stop condition if we've reached our retry limit */
604
 197:I2CInterface.c ****                 TWCR |= (1<<TWINT)|(1<<TWSTO);					
608
 197:I2CInterface.c ****                 TWCR |= (1<<TWINT)|(1<<TWSTO);					
605
 375               		.stabn	68,0,197,.LM30-__vector_17
609
 379               		.stabn	68,0,197,.LM30-.LFBB5
606
 376               	.LM30:
610
 380               	.LM30:
607
 377 00c2 86B7      		in r24,86-0x20
611
 381 00c2 86B7      		in r24,86-0x20
608
 378 00c4 8069      		ori r24,lo8(-112)
612
 382 00c4 8069      		ori r24,lo8(-112)
609
 379 00c6 86BF      		out 86-0x20,r24
613
 383 00c6 86BF      		out 86-0x20,r24
610
 198:I2CInterface.c ****                 status &= ~(1<<BUSY);								
614
 198:I2CInterface.c ****                 status &= ~(1<<BUSY);								
611
 380               		.stabn	68,0,198,.LM31-__vector_17
615
 384               		.stabn	68,0,198,.LM31-.LFBB5
612
 381               	.LM31:
616
 385               	.LM31:
613
 382 00c8 8091 0000 		lds r24,status
617
 386 00c8 8091 0000 		lds r24,status
614
 383 00cc 8F77      		andi r24,lo8(127)
618
 387 00cc 8F77      		andi r24,lo8(127)
615
 384 00ce 8093 0000 		sts status,r24
619
 388 00ce 8093 0000 		sts status,r24
616
 385 00d2 8AC0      		rjmp .L42
620
 389 00d2 00C0      		rjmp .L42
617
 386               	.L34:
621
 390               	.L34:
618
 199:I2CInterface.c ****                 return;												
622
 199:I2CInterface.c ****                 return;												
619
 200:I2CInterface.c ****             }
623
 200:I2CInterface.c ****             }
620
 201:I2CInterface.c ****             /* indicate read or write */
624
 201:I2CInterface.c ****             /* indicate read or write */
621
 202:I2CInterface.c ****             TWDR = (twi_address<<1) + twi_ddr;	
625
 202:I2CInterface.c ****             TWDR = (twi_address<<1) + twi_ddr;	
622
 387               		.stabn	68,0,202,.LM32-__vector_17
626
 391               		.stabn	68,0,202,.LM32-.LFBB5
623
 388               	.LM32:
627
 392               	.LM32:
624
 389 00d4 8091 0000 		lds r24,twi_address
628
 393 00d4 8091 0000 		lds r24,twi_address
625
 390 00d8 9091 0000 		lds r25,twi_ddr
629
 394 00d8 9091 0000 		lds r25,twi_ddr
626
 391 00dc 880F      		lsl r24
630
 395 00dc 880F      		lsl r24
627
 392 00de 890F      		add r24,r25
631
 396 00de 890F      		add r24,r25
628
 393 00e0 83B9      		out 35-0x20,r24
632
 397 00e0 83B9      		out 35-0x20,r24
629
 203:I2CInterface.c ****             /* TWSTA must be cleared...also clears TWINT */
633
 203:I2CInterface.c ****             /* TWSTA must be cleared...also clears TWINT */
630
 204:I2CInterface.c ****             TWCR &= ~(1<<TWSTA);
634
 204:I2CInterface.c ****             TWCR &= ~(1<<TWSTA);
631
 394               		.stabn	68,0,204,.LM33-__vector_17
635
 398               		.stabn	68,0,204,.LM33-.LFBB5
632
 395               	.LM33:
636
 399               	.LM33:
633
 396 00e2 86B7      		in r24,86-0x20
637
 400 00e2 86B7      		in r24,86-0x20
634
 397 00e4 8F7D      		andi r24,lo8(-33)
638
 401 00e4 8F7D      		andi r24,lo8(-33)
635
 398 00e6 86BF      		out 86-0x20,r24
639
 402 00e6 86BF      		out 86-0x20,r24
636
 399 00e8 7FC0      		rjmp .L42
640
 403 00e8 00C0      		rjmp .L42
637
 400               	.L26:
641
 404               	.L26:
638
 205:I2CInterface.c ****             break;
642
 205:I2CInterface.c ****             break;
639
 206:I2CInterface.c **** 
643
 206:I2CInterface.c **** 
640
 207:I2CInterface.c ****         case TW_MT_SLA_ACK:							/* Slave acknowledged address, */
644
 207:I2CInterface.c ****         case TW_MT_SLA_ACK:							/* Slave acknowledged address, */
641
 208:I2CInterface.c ****             retry_cnt = 0;					
645
 208:I2CInterface.c ****             retry_cnt = 0;					
642
 401               		.stabn	68,0,208,.LM34-__vector_17
646
 405               		.stabn	68,0,208,.LM34-.LFBB5
643
 402               	.LM34:
647
 406               	.LM34:
644
 403 00ea 1092 0000 		sts retry_cnt,__zero_reg__
648
 407 00ea 1092 0000 		sts retry_cnt,__zero_reg__
645
 209:I2CInterface.c ****             /* tx the data, and increment the data pointer */
649
 209:I2CInterface.c ****             /* tx the data, and increment the data pointer */
646
 210:I2CInterface.c ****             TWDR = *twi_data;										
650
 210:I2CInterface.c ****             TWDR = *twi_data;										
647
 404               		.stabn	68,0,210,.LM35-__vector_17
651
 408               		.stabn	68,0,210,.LM35-.LFBB5
648
 405               	.LM35:
652
 409               	.LM35:
649
 406 00ee E091 0000 		lds r30,twi_data
653
 410 00ee E091 0000 		lds r30,twi_data
650
 407 00f2 F091 0000 		lds r31,(twi_data)+1
654
 411 00f2 F091 0000 		lds r31,(twi_data)+1
651
 408 00f6 8081      		ld r24,Z
655
 412 00f6 8191      		ld r24,Z+
652
 409 00f8 83B9      		out 35-0x20,r24
656
 413 00f8 83B9      		out 35-0x20,r24
653
 211:I2CInterface.c ****             twi_data++;			
657
 211:I2CInterface.c ****             twi_data++;			
654
 410               		.stabn	68,0,211,.LM36-__vector_17
658
 414               		.stabn	68,0,211,.LM36-.LFBB5
655
 411               	.LM36:
659
 415               	.LM36:
656
 412 00fa 3196      		adiw r30,1
-
 
657
 413 00fc F093 0000 		sts (twi_data)+1,r31
660
 416 00fa F093 0000 		sts (twi_data)+1,r31
658
 414 0100 E093 0000 		sts twi_data,r30
-
 
659
 212:I2CInterface.c **** 
-
 
660
 213:I2CInterface.c ****             /* clear the int to continue */
-
 
661
GAS LISTING /tmp/ccZHfAgR.s 			page 12
661
GAS LISTING /tmp/ccfEG7oP.s 			page 12
662
 
662
 
663
 
663
 
-
 
664
 417 00fe E093 0000 		sts twi_data,r30
-
 
665
 212:I2CInterface.c **** 
-
 
666
 213:I2CInterface.c ****             /* clear the int to continue */
664
 214:I2CInterface.c ****             TWCR |= (1<<TWINT);						
667
 214:I2CInterface.c ****             TWCR |= (1<<TWINT);						
665
 415               		.stabn	68,0,214,.LM37-__vector_17
668
 418               		.stabn	68,0,214,.LM37-.LFBB5
666
 416               	.LM37:
669
 419               	.LM37:
667
 417 0104 86B7      		in r24,86-0x20
670
 420 0102 86B7      		in r24,86-0x20
668
 418 0106 8068      		ori r24,lo8(-128)
671
 421 0104 8068      		ori r24,lo8(-128)
669
 419 0108 86BF      		out 86-0x20,r24
672
 422 0106 86BF      		out 86-0x20,r24
670
 420 010a 6EC0      		rjmp .L42
673
 423 0108 00C0      		rjmp .L42
671
 421               	.L27:
674
 424               	.L27:
672
 215:I2CInterface.c ****             break;
675
 215:I2CInterface.c ****             break;
673
 216:I2CInterface.c **** 
676
 216:I2CInterface.c **** 
674
 217:I2CInterface.c ****         case TW_MT_SLA_NACK:							/* Slave didn't acknowledge address, */
677
 217:I2CInterface.c ****         case TW_MT_SLA_NACK:							/* Slave didn't acknowledge address, */
675
 218:I2CInterface.c ****         case TW_MR_SLA_NACK:
678
 218:I2CInterface.c ****         case TW_MR_SLA_NACK:
676
 219:I2CInterface.c ****             retry_cnt++;		
679
 219:I2CInterface.c ****             retry_cnt++;		
677
 422               		.stabn	68,0,219,.LM38-__vector_17
680
 425               		.stabn	68,0,219,.LM38-.LFBB5
678
 423               	.LM38:
681
 426               	.LM38:
679
 424 010c 8091 0000 		lds r24,retry_cnt
682
 427 010a 8091 0000 		lds r24,retry_cnt
680
 425 0110 8F5F      		subi r24,lo8(-(1))
683
 428 010e 8F5F      		subi r24,lo8(-(1))
681
 426 0112 8093 0000 		sts retry_cnt,r24
684
 429 0110 8093 0000 		sts retry_cnt,r24
682
 220:I2CInterface.c **** 
685
 220:I2CInterface.c **** 
683
 221:I2CInterface.c ****             /* retry...*/
686
 221:I2CInterface.c ****             /* retry...*/
684
 222:I2CInterface.c ****             TWCR |= (1<<TWINT)|(1<<TWSTA)|(1<<TWSTO);	
687
 222:I2CInterface.c ****             TWCR |= (1<<TWINT)|(1<<TWSTA)|(1<<TWSTO);	
685
 427               		.stabn	68,0,222,.LM39-__vector_17
688
 430               		.stabn	68,0,222,.LM39-.LFBB5
686
 428               	.LM39:
689
 431               	.LM39:
687
 429 0116 86B7      		in r24,86-0x20
690
 432 0114 86B7      		in r24,86-0x20
688
 430 0118 806B      		ori r24,lo8(-80)
691
 433 0116 806B      		ori r24,lo8(-80)
689
 431 011a 86BF      		out 86-0x20,r24
692
 434 0118 86BF      		out 86-0x20,r24
690
 432 011c 65C0      		rjmp .L42
693
 435 011a 00C0      		rjmp .L42
691
 433               	.L28:
694
 436               	.L28:
692
 223:I2CInterface.c ****             break;
695
 223:I2CInterface.c ****             break;
693
 224:I2CInterface.c **** 
696
 224:I2CInterface.c **** 
694
 225:I2CInterface.c ****         case TW_MT_DATA_ACK:							/* Slave Acknowledged data, */
697
 225:I2CInterface.c ****         case TW_MT_DATA_ACK:							/* Slave Acknowledged data, */
695
 226:I2CInterface.c ****             if(--twi_bytes > 0) 
698
 226:I2CInterface.c ****             if(--twi_bytes > 0) 
696
 434               		.stabn	68,0,226,.LM40-__vector_17
699
 437               		.stabn	68,0,226,.LM40-.LFBB5
697
 435               	.LM40:
700
 438               	.LM40:
698
 436 011e 8091 0000 		lds r24,twi_bytes
701
 439 011c 8091 0000 		lds r24,twi_bytes
699
 437 0122 8150      		subi r24,lo8(-(-1))
702
 440 0120 8150      		subi r24,lo8(-(-1))
700
 438 0124 8093 0000 		sts twi_bytes,r24
703
 441 0122 8093 0000 		sts twi_bytes,r24
701
 439 0128 8091 0000 		lds r24,twi_bytes
704
 442 0126 8091 0000 		lds r24,twi_bytes
702
 440 012c 8823      		tst r24
705
 443 012a 8823      		tst r24
703
 441 012e 79F0      		breq .L36
706
 444 012c 01F0      		breq .L36
704
 227:I2CInterface.c ****             {						
707
 227:I2CInterface.c ****             {						
705
 228:I2CInterface.c ****                 /* more data to send, so send it */
708
 228:I2CInterface.c ****                 /* more data to send, so send it */
706
 229:I2CInterface.c ****                 TWDR = *twi_data;									
709
 229:I2CInterface.c ****                 TWDR = *twi_data;									
707
 442               		.stabn	68,0,229,.LM41-__vector_17
710
 445               		.stabn	68,0,229,.LM41-.LFBB5
708
 443               	.LM41:
711
 446               	.LM41:
709
 444 0130 E091 0000 		lds r30,twi_data
712
 447 012e E091 0000 		lds r30,twi_data
710
 445 0134 F091 0000 		lds r31,(twi_data)+1
713
 448 0132 F091 0000 		lds r31,(twi_data)+1
711
 446 0138 8081      		ld r24,Z
714
 449 0136 8191      		ld r24,Z+
712
 447 013a 83B9      		out 35-0x20,r24
715
 450 0138 83B9      		out 35-0x20,r24
713
 230:I2CInterface.c ****                 twi_data++;											
716
 230:I2CInterface.c ****                 twi_data++;											
714
 448               		.stabn	68,0,230,.LM42-__vector_17
717
 451               		.stabn	68,0,230,.LM42-.LFBB5
715
 449               	.LM42:
718
 452               	.LM42:
716
 450 013c 3196      		adiw r30,1
-
 
717
 451 013e F093 0000 		sts (twi_data)+1,r31
719
 453 013a F093 0000 		sts (twi_data)+1,r31
718
 452 0142 E093 0000 		sts twi_data,r30
720
 454 013e E093 0000 		sts twi_data,r30
719
 231:I2CInterface.c ****                 TWCR |= (1<<TWINT);								
-
 
720
 453               		.stabn	68,0,231,.LM43-__vector_17
-
 
721
GAS LISTING /tmp/ccZHfAgR.s 			page 13
721
GAS LISTING /tmp/ccfEG7oP.s 			page 13
722
 
722
 
723
 
723
 
-
 
724
 231:I2CInterface.c ****                 TWCR |= (1<<TWINT);								
-
 
725
 455               		.stabn	68,0,231,.LM43-.LFBB5
724
 454               	.LM43:
726
 456               	.LM43:
725
 455 0146 86B7      		in r24,86-0x20
727
 457 0142 86B7      		in r24,86-0x20
726
 456 0148 8068      		ori r24,lo8(-128)
728
 458 0144 8068      		ori r24,lo8(-128)
727
 457 014a 86BF      		out 86-0x20,r24
729
 459 0146 86BF      		out 86-0x20,r24
728
 458 014c 4DC0      		rjmp .L42
730
 460 0148 00C0      		rjmp .L42
729
 459               	.L36:
731
 461               	.L36:
730
 232:I2CInterface.c ****             }
732
 232:I2CInterface.c ****             }
731
 233:I2CInterface.c ****             else 
733
 233:I2CInterface.c ****             else 
732
 234:I2CInterface.c ****             {
734
 234:I2CInterface.c ****             {
733
 235:I2CInterface.c ****                 /* generate the stop condition if needed */
735
 235:I2CInterface.c ****                 /* generate the stop condition if needed */
734
 236:I2CInterface.c ****                 TWCR |= (1<<TWSTO)|(1<<TWINT);					
736
 236:I2CInterface.c ****                 TWCR |= (1<<TWSTO)|(1<<TWINT);					
735
 460               		.stabn	68,0,236,.LM44-__vector_17
737
 462               		.stabn	68,0,236,.LM44-.LFBB5
736
 461               	.LM44:
738
 463               	.LM44:
737
 462 014e 86B7      		in r24,86-0x20
739
 464 014a 86B7      		in r24,86-0x20
738
 463 0150 8069      		ori r24,lo8(-112)
740
 465 014c 8069      		ori r24,lo8(-112)
739
 464 0152 86BF      		out 86-0x20,r24
741
 466 014e 86BF      		out 86-0x20,r24
740
 237:I2CInterface.c ****                 status &= ~(1<<BUSY);								
742
 237:I2CInterface.c ****                 status &= ~(1<<BUSY);								
741
 465               		.stabn	68,0,237,.LM45-__vector_17
743
 467               		.stabn	68,0,237,.LM45-.LFBB5
742
 466               	.LM45:
744
 468               	.LM45:
743
 467 0154 8091 0000 		lds r24,status
745
 469 0150 8091 0000 		lds r24,status
744
 468 0158 8F77      		andi r24,lo8(127)
746
 470 0154 8F77      		andi r24,lo8(127)
745
 469 015a 8093 0000 		sts status,r24
747
 471 0156 8093 0000 		sts status,r24
746
 470 015e 44C0      		rjmp .L42
748
 472 015a 00C0      		rjmp .L42
747
 471               	.L29:
749
 473               	.L29:
748
 238:I2CInterface.c ****             }
750
 238:I2CInterface.c ****             }
749
 239:I2CInterface.c ****             break;
751
 239:I2CInterface.c ****             break;
750
 240:I2CInterface.c **** 
752
 240:I2CInterface.c **** 
751
 241:I2CInterface.c ****         case TW_MT_DATA_NACK:							/* Slave didn't acknowledge data */
753
 241:I2CInterface.c ****         case TW_MT_DATA_NACK:							/* Slave didn't acknowledge data */
752
 242:I2CInterface.c ****             /* send the stop condition */
754
 242:I2CInterface.c ****             /* send the stop condition */
753
 243:I2CInterface.c ****             TWCR |= (1<<TWINT)|(1<<TWSTO);						
755
 243:I2CInterface.c ****             TWCR |= (1<<TWINT)|(1<<TWSTO);						
754
 472               		.stabn	68,0,243,.LM46-__vector_17
756
 474               		.stabn	68,0,243,.LM46-.LFBB5
755
 473               	.LM46:
757
 475               	.LM46:
756
 474 0160 86B7      		in r24,86-0x20
758
 476 015c 86B7      		in r24,86-0x20
757
 475 0162 8069      		ori r24,lo8(-112)
759
 477 015e 8069      		ori r24,lo8(-112)
758
 476 0164 86BF      		out 86-0x20,r24
760
 478 0160 86BF      		out 86-0x20,r24
759
 244:I2CInterface.c ****             status &= ~(1<<BUSY);									
761
 244:I2CInterface.c ****             status &= ~(1<<BUSY);									
760
 477               		.stabn	68,0,244,.LM47-__vector_17
762
 479               		.stabn	68,0,244,.LM47-.LFBB5
761
 478               	.LM47:
763
 480               	.LM47:
762
 479 0166 8091 0000 		lds r24,status
764
 481 0162 8091 0000 		lds r24,status
763
 480 016a 8F77      		andi r24,lo8(127)
765
 482 0166 8F77      		andi r24,lo8(127)
764
 481 016c 8093 0000 		sts status,r24
766
 483 0168 8093 0000 		sts status,r24
765
 482 0170 3BC0      		rjmp .L42
767
 484 016c 00C0      		rjmp .L42
766
 483               	.L30:
768
 485               	.L30:
767
 245:I2CInterface.c ****             break;
769
 245:I2CInterface.c ****             break;
768
 246:I2CInterface.c **** 
770
 246:I2CInterface.c **** 
769
 247:I2CInterface.c ****         case TW_MR_SLA_ACK:                             /* Slave acknowledged address */
771
 247:I2CInterface.c ****         case TW_MR_SLA_ACK:                             /* Slave acknowledged address */
770
 248:I2CInterface.c ****             if(--twi_bytes > 0) 
772
 248:I2CInterface.c ****             if(--twi_bytes > 0) 
771
 484               		.stabn	68,0,248,.LM48-__vector_17
773
 486               		.stabn	68,0,248,.LM48-.LFBB5
772
 485               	.LM48:
774
 487               	.LM48:
773
 486 0172 8091 0000 		lds r24,twi_bytes
775
 488 016e 8091 0000 		lds r24,twi_bytes
774
 487 0176 8150      		subi r24,lo8(-(-1))
776
 489 0172 8150      		subi r24,lo8(-(-1))
775
 488 0178 8093 0000 		sts twi_bytes,r24
777
 490 0174 8093 0000 		sts twi_bytes,r24
776
 489 017c 8091 0000 		lds r24,twi_bytes
778
 491 0178 8091 0000 		lds r24,twi_bytes
777
 490 0180 8823      		tst r24
779
 492 017c 8823      		tst r24
778
 491 0182 21F0      		breq .L38
780
 493 017e 01F0      		breq .L38
779
 249:I2CInterface.c ****             {
-
 
780
 250:I2CInterface.c ****                 /* if there is more than one byte to read, acknowledge */
-
 
781
GAS LISTING /tmp/ccZHfAgR.s 			page 14
781
GAS LISTING /tmp/ccfEG7oP.s 			page 14
782
 
782
 
783
 
783
 
-
 
784
 249:I2CInterface.c ****             {
-
 
785
 250:I2CInterface.c ****                 /* if there is more than one byte to read, acknowledge */
784
 251:I2CInterface.c ****                 TWCR |= (1<<TWEA)|(1<<TWINT);	
786
 251:I2CInterface.c ****                 TWCR |= (1<<TWEA)|(1<<TWINT);	
785
 492               		.stabn	68,0,251,.LM49-__vector_17
787
 494               		.stabn	68,0,251,.LM49-.LFBB5
786
 493               	.LM49:
788
 495               	.LM49:
787
 494 0184 86B7      		in r24,86-0x20
789
 496 0180 86B7      		in r24,86-0x20
788
 495 0186 806C      		ori r24,lo8(-64)
790
 497 0182 806C      		ori r24,lo8(-64)
789
 496 0188 86BF      		out 86-0x20,r24
791
 498 0184 86BF      		out 86-0x20,r24
790
 497 018a 2EC0      		rjmp .L42
792
 499 0186 00C0      		rjmp .L42
791
 498               	.L38:
793
 500               	.L38:
792
 252:I2CInterface.c ****             }
794
 252:I2CInterface.c ****             }
793
 253:I2CInterface.c **** 			else
795
 253:I2CInterface.c **** 			else
794
 254:I2CInterface.c ****             {
796
 254:I2CInterface.c ****             {
795
 255:I2CInterface.c ****                 /* no acknowledge */
797
 255:I2CInterface.c ****                 /* no acknowledge */
796
 256:I2CInterface.c ****                 TWCR |= (1<<TWINT);					
798
 256:I2CInterface.c ****                 TWCR |= (1<<TWINT);					
797
 499               		.stabn	68,0,256,.LM50-__vector_17
799
 501               		.stabn	68,0,256,.LM50-.LFBB5
798
 500               	.LM50:
800
 502               	.LM50:
799
 501 018c 86B7      		in r24,86-0x20
801
 503 0188 86B7      		in r24,86-0x20
800
 502 018e 8068      		ori r24,lo8(-128)
802
 504 018a 8068      		ori r24,lo8(-128)
801
 503 0190 86BF      		out 86-0x20,r24
803
 505 018c 86BF      		out 86-0x20,r24
802
 504 0192 2AC0      		rjmp .L42
804
 506 018e 00C0      		rjmp .L42
803
 505               	.L31:
805
 507               	.L31:
804
 257:I2CInterface.c ****             }
806
 257:I2CInterface.c ****             }
805
 258:I2CInterface.c ****             break;
807
 258:I2CInterface.c ****             break;
806
 259:I2CInterface.c **** 
808
 259:I2CInterface.c **** 
807
 260:I2CInterface.c ****         case TW_MR_DATA_ACK: 							/* Master acknowledged data */
809
 260:I2CInterface.c ****         case TW_MR_DATA_ACK: 							/* Master acknowledged data */
808
 261:I2CInterface.c ****         
810
 261:I2CInterface.c ****         
809
 262:I2CInterface.c ****             /* grab the received data */
811
 262:I2CInterface.c ****             /* grab the received data */
810
 263:I2CInterface.c ****             *twi_data = TWDR;										
812
 263:I2CInterface.c ****             *twi_data = TWDR;										
811
 506               		.stabn	68,0,263,.LM51-__vector_17
813
 508               		.stabn	68,0,263,.LM51-.LFBB5
812
 507               	.LM51:
814
 509               	.LM51:
813
 508 0194 E091 0000 		lds r30,twi_data
815
 510 0190 E091 0000 		lds r30,twi_data
814
 509 0198 F091 0000 		lds r31,(twi_data)+1
816
 511 0194 F091 0000 		lds r31,(twi_data)+1
815
 510 019c 83B1      		in r24,35-0x20
817
 512 0198 83B1      		in r24,35-0x20
816
 511 019e 8083      		st Z,r24
818
 513 019a 8193      		st Z+,r24
817
 264:I2CInterface.c ****             twi_data++;											
819
 264:I2CInterface.c ****             twi_data++;											
818
 512               		.stabn	68,0,264,.LM52-__vector_17
820
 514               		.stabn	68,0,264,.LM52-.LFBB5
819
 513               	.LM52:
821
 515               	.LM52:
820
 514 01a0 3196      		adiw r30,1
-
 
821
 515 01a2 F093 0000 		sts (twi_data)+1,r31
822
 516 019c F093 0000 		sts (twi_data)+1,r31
822
 516 01a6 E093 0000 		sts twi_data,r30
823
 517 01a0 E093 0000 		sts twi_data,r30
823
 265:I2CInterface.c ****             if(--twi_bytes > 0) 
824
 265:I2CInterface.c ****             if(--twi_bytes > 0) 
824
 517               		.stabn	68,0,265,.LM53-__vector_17
825
 518               		.stabn	68,0,265,.LM53-.LFBB5
825
 518               	.LM53:
826
 519               	.LM53:
826
 519 01aa 8091 0000 		lds r24,twi_bytes
827
 520 01a4 8091 0000 		lds r24,twi_bytes
827
 520 01ae 8150      		subi r24,lo8(-(-1))
828
 521 01a8 8150      		subi r24,lo8(-(-1))
828
 521 01b0 8093 0000 		sts twi_bytes,r24
829
 522 01aa 8093 0000 		sts twi_bytes,r24
829
 522 01b4 8091 0000 		lds r24,twi_bytes
830
 523 01ae 8091 0000 		lds r24,twi_bytes
830
 523 01b8 8823      		tst r24
831
 524 01b2 8823      		tst r24
831
 524 01ba 21F0      		breq .L40
832
 525 01b4 01F0      		breq .L40
832
 266:I2CInterface.c ****             {
833
 266:I2CInterface.c ****             {
833
 267:I2CInterface.c ****                 /* get the next data byte and ack */
834
 267:I2CInterface.c ****                 /* get the next data byte and ack */
834
 268:I2CInterface.c ****                 TWCR |= (1<<TWEA)|(1<<TWINT);	
835
 268:I2CInterface.c ****                 TWCR |= (1<<TWEA)|(1<<TWINT);	
835
 525               		.stabn	68,0,268,.LM54-__vector_17
836
 526               		.stabn	68,0,268,.LM54-.LFBB5
836
 526               	.LM54:
837
 527               	.LM54:
837
 527 01bc 86B7      		in r24,86-0x20
838
 528 01b6 86B7      		in r24,86-0x20
838
 528 01be 806C      		ori r24,lo8(-64)
839
 529 01b8 806C      		ori r24,lo8(-64)
839
 529 01c0 86BF      		out 86-0x20,r24
840
 530 01ba 86BF      		out 86-0x20,r24
840
 530 01c2 12C0      		rjmp .L42
-
 
841
GAS LISTING /tmp/ccZHfAgR.s 			page 15
841
GAS LISTING /tmp/ccfEG7oP.s 			page 15
842
 
842
 
843
 
843
 
-
 
844
 531 01bc 00C0      		rjmp .L42
844
 531               	.L40:
845
 532               	.L40:
845
 269:I2CInterface.c ****             }
846
 269:I2CInterface.c ****             }
846
 270:I2CInterface.c ****             else
847
 270:I2CInterface.c ****             else
847
 271:I2CInterface.c ****             {
848
 271:I2CInterface.c ****             {
848
 272:I2CInterface.c ****                 /* clear out the enable acknowledge bit */
849
 272:I2CInterface.c ****                 /* clear out the enable acknowledge bit */
849
 273:I2CInterface.c ****                 TWCR &= ~(1<<TWEA);							
850
 273:I2CInterface.c ****                 TWCR &= ~(1<<TWEA);							
850
 532               		.stabn	68,0,273,.LM55-__vector_17
851
 533               		.stabn	68,0,273,.LM55-.LFBB5
851
 533               	.LM55:
852
 534               	.LM55:
852
 534 01c4 86B7      		in r24,86-0x20
853
 535 01be 86B7      		in r24,86-0x20
853
 535 01c6 8F7B      		andi r24,lo8(-65)
854
 536 01c0 8F7B      		andi r24,lo8(-65)
854
 536 01c8 86BF      		out 86-0x20,r24
855
 537 01c2 86BF      		out 86-0x20,r24
855
 537 01ca 0EC0      		rjmp .L42
856
 538 01c4 00C0      		rjmp .L42
856
 538               	.L32:
857
 539               	.L32:
857
 274:I2CInterface.c ****             }
858
 274:I2CInterface.c ****             }
858
 275:I2CInterface.c ****             break;
859
 275:I2CInterface.c ****             break;
859
 276:I2CInterface.c **** 
860
 276:I2CInterface.c **** 
860
 277:I2CInterface.c ****         case TW_MR_DATA_NACK:						/* Master didn't acknowledge data -> end of read process */
861
 277:I2CInterface.c ****         case TW_MR_DATA_NACK:						/* Master didn't acknowledge data -> end of read process */
861
 278:I2CInterface.c ****             /* read data, and generate the stop condition */
862
 278:I2CInterface.c ****             /* read data, and generate the stop condition */
862
 279:I2CInterface.c ****             *twi_data = TWDR;										
863
 279:I2CInterface.c ****             *twi_data = TWDR;										
863
 539               		.stabn	68,0,279,.LM56-__vector_17
864
 540               		.stabn	68,0,279,.LM56-.LFBB5
864
 540               	.LM56:
865
 541               	.LM56:
865
 541 01cc E091 0000 		lds r30,twi_data
866
 542 01c6 E091 0000 		lds r30,twi_data
866
 542 01d0 F091 0000 		lds r31,(twi_data)+1
867
 543 01ca F091 0000 		lds r31,(twi_data)+1
867
 543 01d4 83B1      		in r24,35-0x20
868
 544 01ce 83B1      		in r24,35-0x20
868
 544 01d6 8083      		st Z,r24
869
 545 01d0 8083      		st Z,r24
869
 280:I2CInterface.c ****             TWCR |= (1<<TWSTO)|(1<<TWINT); 						
870
 280:I2CInterface.c ****             TWCR |= (1<<TWSTO)|(1<<TWINT); 						
870
 545               		.stabn	68,0,280,.LM57-__vector_17
871
 546               		.stabn	68,0,280,.LM57-.LFBB5
871
 546               	.LM57:
872
 547               	.LM57:
872
 547 01d8 86B7      		in r24,86-0x20
873
 548 01d2 86B7      		in r24,86-0x20
873
 548 01da 8069      		ori r24,lo8(-112)
874
 549 01d4 8069      		ori r24,lo8(-112)
874
 549 01dc 86BF      		out 86-0x20,r24
875
 550 01d6 86BF      		out 86-0x20,r24
875
 281:I2CInterface.c ****             status &= ~(1<<BUSY);											
876
 281:I2CInterface.c ****             status &= ~(1<<BUSY);											
876
 550               		.stabn	68,0,281,.LM58-__vector_17
877
 551               		.stabn	68,0,281,.LM58-.LFBB5
877
 551               	.LM58:
878
 552               	.LM58:
878
 552 01de 8091 0000 		lds r24,status
879
 553 01d8 8091 0000 		lds r24,status
879
 553 01e2 8F77      		andi r24,lo8(127)
880
 554 01dc 8F77      		andi r24,lo8(127)
880
 554 01e4 8093 0000 		sts status,r24
881
 555 01de 8093 0000 		sts status,r24
881
 555               	.L42:
882
 556               	.L42:
882
 556               	/* epilogue: frame size=0 */
883
 557               	/* epilogue: frame size=0 */
883
 557 01e8 FF91      		pop r31
884
 558 01e2 FF91      		pop r31
884
 558 01ea EF91      		pop r30
885
 559 01e4 EF91      		pop r30
885
 559 01ec BF91      		pop r27
886
 560 01e6 BF91      		pop r27
886
 560 01ee AF91      		pop r26
887
 561 01e8 AF91      		pop r26
887
 561 01f0 9F91      		pop r25
888
 562 01ea 9F91      		pop r25
888
 562 01f2 8F91      		pop r24
889
 563 01ec 8F91      		pop r24
889
 563 01f4 0F90      		pop __tmp_reg__
890
 564 01ee 0F90      		pop __tmp_reg__
890
 564 01f6 0FBE      		out __SREG__,__tmp_reg__
891
 565 01f0 0FBE      		out __SREG__,__tmp_reg__
891
 565 01f8 0F90      		pop __tmp_reg__
892
 566 01f2 0F90      		pop __tmp_reg__
892
 566 01fa 1F90      		pop __zero_reg__
893
 567 01f4 1F90      		pop __zero_reg__
893
 567 01fc 1895      		reti
894
 568 01f6 1895      		reti
894
 568               	/* epilogue end (size=11) */
895
 569               	/* epilogue end (size=11) */
895
 569               	/* function __vector_17 size 271 (249) */
896
 570               	/* function __vector_17 size 268 (246) */
896
 570               		.size	__vector_17, .-__vector_17
897
 571               		.size	__vector_17, .-__vector_17
897
 571               	.Lscope4:
898
 572               	.Lscope5:
898
 572               		.stabs	"",36,0,0,.Lscope4-__vector_17
899
 573               		.stabs	"",36,0,0,.Lscope5-.LFBB5
899
 573               		.stabd	78,0,0
900
 574               		.stabd	78,0,0
900
 574               		.lcomm twi_address,1
-
 
901
GAS LISTING /tmp/ccZHfAgR.s 			page 16
901
GAS LISTING /tmp/ccfEG7oP.s 			page 16
902
 
902
 
903
 
903
 
-
 
904
 575               		.lcomm twi_address,1
904
 575               		.lcomm twi_data,2
905
 576               		.lcomm twi_data,2
905
 576               		.lcomm twi_ddr,1
906
 577               		.lcomm twi_ddr,1
906
 577               		.lcomm twi_bytes,1
907
 578               		.lcomm twi_bytes,1
907
 578               		.lcomm status,1
908
 579               		.lcomm status,1
908
 579               		.lcomm retry_cnt,1
909
 580               		.lcomm retry_cnt,1
909
 580               		.stabs	"twi_address:S(0,17)=B(0,11)",40,0,59,twi_address
910
 581               		.stabs	"twi_address:S(0,17)=B(0,11)",40,0,59,twi_address
910
 581               		.stabs	"twi_data:S(0,18)=*(0,17)",40,0,60,twi_data
911
 582               		.stabs	"twi_data:S(0,18)=*(0,17)",40,0,60,twi_data
911
 582               		.stabs	"twi_ddr:S(0,17)",40,0,61,twi_ddr
912
 583               		.stabs	"twi_ddr:S(0,17)",40,0,61,twi_ddr
912
 583               		.stabs	"twi_bytes:S(0,17)",40,0,62,twi_bytes
913
 584               		.stabs	"twi_bytes:S(0,17)",40,0,62,twi_bytes
913
 584               		.stabs	"status:S(0,17)",40,0,63,status
914
 585               		.stabs	"status:S(0,17)",40,0,63,status
914
 585               		.stabs	"retry_cnt:S(0,17)",40,0,64,retry_cnt
915
 586               		.stabs	"retry_cnt:S(0,17)",40,0,64,retry_cnt
915
 586               		.stabs	"",100,0,0,.Letext0
916
 587               		.stabs	"",100,0,0,.Letext0
916
 587               	.Letext0:
917
 588               	.Letext0:
917
 588               	/* File "I2CInterface.c": code  336 = 0x0150 ( 310), prologues  11, epilogues  15 */
918
 589               	/* File "I2CInterface.c": code  333 = 0x014d ( 307), prologues  11, epilogues  15 */
918
GAS LISTING /tmp/ccZHfAgR.s 			page 17
919
GAS LISTING /tmp/ccfEG7oP.s 			page 17
919
 
920
 
920
 
921
 
921
DEFINED SYMBOLS
922
DEFINED SYMBOLS
922
                            *ABS*:00000000 I2CInterface.c
923
                            *ABS*:00000000 I2CInterface.c
923
     /tmp/ccZHfAgR.s:3      *ABS*:0000003f __SREG__
924
     /tmp/ccfEG7oP.s:2      *ABS*:0000003f __SREG__
924
     /tmp/ccZHfAgR.s:4      *ABS*:0000003e __SP_H__
925
     /tmp/ccfEG7oP.s:3      *ABS*:0000003e __SP_H__
925
     /tmp/ccZHfAgR.s:5      *ABS*:0000003d __SP_L__
926
     /tmp/ccfEG7oP.s:4      *ABS*:0000003d __SP_L__
926
     /tmp/ccZHfAgR.s:6      *ABS*:00000000 __tmp_reg__
927
     /tmp/ccfEG7oP.s:5      *ABS*:00000000 __tmp_reg__
927
     /tmp/ccZHfAgR.s:7      *ABS*:00000001 __zero_reg__
928
     /tmp/ccfEG7oP.s:6      *ABS*:00000001 __zero_reg__
928
     /tmp/ccZHfAgR.s:79     .text:00000000 I2CInt_init
929
     /tmp/ccfEG7oP.s:78     .text:00000000 I2CInt_init
929
     /tmp/ccZHfAgR.s:106    .text:00000008 I2CInt_writeData
930
     /tmp/ccfEG7oP.s:106    .text:00000008 I2CInt_writeData
930
     /tmp/ccZHfAgR.s:577    .bss:00000005 status
931
     /tmp/ccfEG7oP.s:578    .bss:00000005 status
931
                             .bss:00000000 twi_address
932
                             .bss:00000000 twi_address
932
     /tmp/ccZHfAgR.s:574    .bss:00000001 twi_data
933
     /tmp/ccfEG7oP.s:575    .bss:00000001 twi_data
933
     /tmp/ccZHfAgR.s:576    .bss:00000004 twi_bytes
934
     /tmp/ccfEG7oP.s:577    .bss:00000004 twi_bytes
934
     /tmp/ccZHfAgR.s:575    .bss:00000003 twi_ddr
935
     /tmp/ccfEG7oP.s:576    .bss:00000003 twi_ddr
935
     /tmp/ccZHfAgR.s:578    .bss:00000006 retry_cnt
936
     /tmp/ccfEG7oP.s:579    .bss:00000006 retry_cnt
936
     /tmp/ccZHfAgR.s:164    .text:00000040 I2CInt_readData
937
     /tmp/ccfEG7oP.s:165    .text:00000040 I2CInt_readData
937
     /tmp/ccZHfAgR.s:214    .text:00000074 I2CInt_isI2cBusy
938
     /tmp/ccfEG7oP.s:216    .text:00000074 I2CInt_isI2cBusy
938
     /tmp/ccZHfAgR.s:240    .text:00000082 __vector_17
939
     /tmp/ccfEG7oP.s:243    .text:00000082 __vector_17
939
 
940
 
940
UNDEFINED SYMBOLS
941
UNDEFINED SYMBOLS
941
__do_copy_data
942
__do_copy_data
942
__do_clear_bss
943
__do_clear_bss