Subversion Repositories svnkaklik

Rev

Rev 182 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 182 Rev 409
1
GAS LISTING /tmp/cc4KZ7ps.s 			page 1
1
GAS LISTING /tmp/cc4KZ7ps.s 			page 1
2
 
2
 
3
 
3
 
4
   1               		.file	"CamInterface.c"
4
   1               		.file	"CamInterface.c"
5
   2               		.arch atmega8
5
   2               		.arch atmega8
6
   3               	__SREG__ = 0x3f
6
   3               	__SREG__ = 0x3f
7
   4               	__SP_H__ = 0x3e
7
   4               	__SP_H__ = 0x3e
8
   5               	__SP_L__ = 0x3d
8
   5               	__SP_L__ = 0x3d
9
   6               	__tmp_reg__ = 0
9
   6               	__tmp_reg__ = 0
10
   7               	__zero_reg__ = 1
10
   7               	__zero_reg__ = 1
11
   8               		.global __do_copy_data
11
   8               		.global __do_copy_data
12
   9               		.global __do_clear_bss
12
   9               		.global __do_clear_bss
13
  10               		.stabs	"/home/kaklik/projects/programy/Atmel_C/AVRcam/",100,0,2,.Ltext0
13
  10               		.stabs	"/home/kaklik/projects/programy/Atmel_C/AVRcam/",100,0,2,.Ltext0
14
  11               		.stabs	"CamInterface.c",100,0,2,.Ltext0
14
  11               		.stabs	"CamInterface.c",100,0,2,.Ltext0
15
  12               		.text
15
  12               		.text
16
  13               	.Ltext0:
16
  13               	.Ltext0:
17
  14               		.stabs	"gcc2_compiled.",60,0,0,0
17
  14               		.stabs	"gcc2_compiled.",60,0,0,0
18
  15               		.stabs	"int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
18
  15               		.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
19
  16               		.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
20
  17               		.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
21
  18               		.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
22
  19               		.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,
23
  20               		.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
24
  21               		.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
25
  22               		.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
26
  23               		.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
27
  24               		.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
28
  25               		.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
29
  26               		.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
30
  27               		.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
31
  28               		.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
32
  29               		.stabs	"void:t(0,15)=(0,15)",128,0,0,0
33
  30               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/interrupt.h",130,0,0,0
33
  30               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/interrupt.h",130,0,0,0
34
  31               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/io.h",130,0,0,0
34
  31               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/io.h",130,0,0,0
35
  32               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/sfr_defs.h",130,0,0,0
35
  32               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/sfr_defs.h",130,0,0,0
36
  33               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/inttypes.h",130,0,0,0
36
  33               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/inttypes.h",130,0,0,0
37
  34               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/stdint.h",130,0,0,0
37
  34               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/stdint.h",130,0,0,0
38
  35               		.stabs	"int8_t:t(5,1)=(0,10)",128,0,116,0
38
  35               		.stabs	"int8_t:t(5,1)=(0,10)",128,0,116,0
39
  36               		.stabs	"uint8_t:t(5,2)=(0,11)",128,0,117,0
39
  36               		.stabs	"uint8_t:t(5,2)=(0,11)",128,0,117,0
40
  37               		.stabs	"int16_t:t(5,3)=(0,1)",128,0,118,0
40
  37               		.stabs	"int16_t:t(5,3)=(0,1)",128,0,118,0
41
  38               		.stabs	"uint16_t:t(5,4)=(0,4)",128,0,119,0
41
  38               		.stabs	"uint16_t:t(5,4)=(0,4)",128,0,119,0
42
  39               		.stabs	"int32_t:t(5,5)=(0,3)",128,0,120,0
42
  39               		.stabs	"int32_t:t(5,5)=(0,3)",128,0,120,0
43
  40               		.stabs	"uint32_t:t(5,6)=(0,5)",128,0,121,0
43
  40               		.stabs	"uint32_t:t(5,6)=(0,5)",128,0,121,0
44
  41               		.stabs	"int64_t:t(5,7)=(0,6)",128,0,122,0
44
  41               		.stabs	"int64_t:t(5,7)=(0,6)",128,0,122,0
45
  42               		.stabs	"uint64_t:t(5,8)=(0,7)",128,0,123,0
45
  42               		.stabs	"uint64_t:t(5,8)=(0,7)",128,0,123,0
46
  43               		.stabs	"intptr_t:t(5,9)=(5,3)",128,0,135,0
46
  43               		.stabs	"intptr_t:t(5,9)=(5,3)",128,0,135,0
47
  44               		.stabs	"uintptr_t:t(5,10)=(5,4)",128,0,140,0
47
  44               		.stabs	"uintptr_t:t(5,10)=(5,4)",128,0,140,0
48
  45               		.stabs	"int_least8_t:t(5,11)=(5,1)",128,0,152,0
48
  45               		.stabs	"int_least8_t:t(5,11)=(5,1)",128,0,152,0
49
  46               		.stabs	"uint_least8_t:t(5,12)=(5,2)",128,0,157,0
49
  46               		.stabs	"uint_least8_t:t(5,12)=(5,2)",128,0,157,0
50
  47               		.stabs	"int_least16_t:t(5,13)=(5,3)",128,0,162,0
50
  47               		.stabs	"int_least16_t:t(5,13)=(5,3)",128,0,162,0
51
  48               		.stabs	"uint_least16_t:t(5,14)=(5,4)",128,0,167,0
51
  48               		.stabs	"uint_least16_t:t(5,14)=(5,4)",128,0,167,0
52
  49               		.stabs	"int_least32_t:t(5,15)=(5,5)",128,0,172,0
52
  49               		.stabs	"int_least32_t:t(5,15)=(5,5)",128,0,172,0
53
  50               		.stabs	"uint_least32_t:t(5,16)=(5,6)",128,0,177,0
53
  50               		.stabs	"uint_least32_t:t(5,16)=(5,6)",128,0,177,0
54
  51               		.stabs	"int_least64_t:t(5,17)=(5,7)",128,0,182,0
54
  51               		.stabs	"int_least64_t:t(5,17)=(5,7)",128,0,182,0
55
  52               		.stabs	"uint_least64_t:t(5,18)=(5,8)",128,0,187,0
55
  52               		.stabs	"uint_least64_t:t(5,18)=(5,8)",128,0,187,0
56
  53               		.stabs	"int_fast8_t:t(5,19)=(5,1)",128,0,200,0
56
  53               		.stabs	"int_fast8_t:t(5,19)=(5,1)",128,0,200,0
57
  54               		.stabs	"uint_fast8_t:t(5,20)=(5,2)",128,0,205,0
57
  54               		.stabs	"uint_fast8_t:t(5,20)=(5,2)",128,0,205,0
58
  55               		.stabs	"int_fast16_t:t(5,21)=(5,3)",128,0,210,0
58
  55               		.stabs	"int_fast16_t:t(5,21)=(5,3)",128,0,210,0
59
  56               		.stabs	"uint_fast16_t:t(5,22)=(5,4)",128,0,215,0
59
  56               		.stabs	"uint_fast16_t:t(5,22)=(5,4)",128,0,215,0
60
  57               		.stabs	"int_fast32_t:t(5,23)=(5,5)",128,0,220,0
60
  57               		.stabs	"int_fast32_t:t(5,23)=(5,5)",128,0,220,0
61
GAS LISTING /tmp/cc4KZ7ps.s 			page 2
61
GAS LISTING /tmp/cc4KZ7ps.s 			page 2
62
 
62
 
63
 
63
 
64
  58               		.stabs	"uint_fast32_t:t(5,24)=(5,6)",128,0,225,0
64
  58               		.stabs	"uint_fast32_t:t(5,24)=(5,6)",128,0,225,0
65
  59               		.stabs	"int_fast64_t:t(5,25)=(5,7)",128,0,230,0
65
  59               		.stabs	"int_fast64_t:t(5,25)=(5,7)",128,0,230,0
66
  60               		.stabs	"uint_fast64_t:t(5,26)=(5,8)",128,0,235,0
66
  60               		.stabs	"uint_fast64_t:t(5,26)=(5,8)",128,0,235,0
67
  61               		.stabs	"intmax_t:t(5,27)=(5,7)",128,0,249,0
67
  61               		.stabs	"intmax_t:t(5,27)=(5,7)",128,0,249,0
68
  62               		.stabs	"uintmax_t:t(5,28)=(5,8)",128,0,254,0
68
  62               		.stabs	"uintmax_t:t(5,28)=(5,8)",128,0,254,0
69
  63               		.stabn	162,0,0,0
69
  63               		.stabn	162,0,0,0
70
  64               		.stabs	"int_farptr_t:t(4,1)=(5,5)",128,0,76,0
70
  64               		.stabs	"int_farptr_t:t(4,1)=(5,5)",128,0,76,0
71
  65               		.stabs	"uint_farptr_t:t(4,2)=(5,6)",128,0,80,0
71
  65               		.stabs	"uint_farptr_t:t(4,2)=(5,6)",128,0,80,0
72
  66               		.stabn	162,0,0,0
72
  66               		.stabn	162,0,0,0
73
  67               		.stabn	162,0,0,0
73
  67               		.stabn	162,0,0,0
74
  68               		.stabn	162,0,0,0
74
  68               		.stabn	162,0,0,0
75
  69               		.stabn	162,0,0,0
75
  69               		.stabn	162,0,0,0
76
  70               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h",130,0,0,0
76
  70               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h",130,0,0,0
77
  71               		.stabs	"/usr/lib/gcc/avr/4.1.0/include/stddef.h",130,0,0,0
77
  71               		.stabs	"/usr/lib/gcc/avr/4.1.0/include/stddef.h",130,0,0,0
78
  72               		.stabs	"size_t:t(7,1)=(0,4)",128,0,214,0
78
  72               		.stabs	"size_t:t(7,1)=(0,4)",128,0,214,0
79
  73               		.stabn	162,0,0,0
79
  73               		.stabn	162,0,0,0
80
  74               		.stabn	162,0,0,0
80
  74               		.stabn	162,0,0,0
81
  75               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/stdlib.h",130,0,0,0
81
  75               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/stdlib.h",130,0,0,0
82
  76               		.stabs	"/usr/lib/gcc/avr/4.1.0/include/stddef.h",130,0,0,0
82
  76               		.stabs	"/usr/lib/gcc/avr/4.1.0/include/stddef.h",130,0,0,0
83
  77               		.stabs	"wchar_t:t(9,1)=(0,1)",128,0,326,0
83
  77               		.stabs	"wchar_t:t(9,1)=(0,1)",128,0,326,0
84
  78               		.stabn	162,0,0,0
84
  78               		.stabn	162,0,0,0
85
  79               		.stabs	"div_t:t(8,1)=(8,2)=s4quot:(0,1),0,16;rem:(0,1),16,16;;",128,0,69,0
85
  79               		.stabs	"div_t:t(8,1)=(8,2)=s4quot:(0,1),0,16;rem:(0,1),16,16;;",128,0,69,0
86
  80               		.stabs	"ldiv_t:t(8,3)=(8,4)=s8quot:(0,3),0,32;rem:(0,3),32,32;;",128,0,75,0
86
  80               		.stabs	"ldiv_t:t(8,3)=(8,4)=s8quot:(0,3),0,32;rem:(0,3),32,32;;",128,0,75,0
87
  81               		.stabs	"__compar_fn_t:t(8,5)=(8,6)=*(8,7)=f(0,1)",128,0,78,0
87
  81               		.stabs	"__compar_fn_t:t(8,5)=(8,6)=*(8,7)=f(0,1)",128,0,78,0
88
  82               		.stabn	162,0,0,0
88
  82               		.stabn	162,0,0,0
89
  83               		.stabs	"CommonDefs.h",130,0,0,0
89
  83               		.stabs	"CommonDefs.h",130,0,0,0
90
  84               		.stabs	"bool_t:t(10,1)=(0,11)",128,0,56,0
90
  84               		.stabs	"bool_t:t(10,1)=(0,11)",128,0,56,0
91
  85               		.stabn	162,0,0,0
91
  85               		.stabn	162,0,0,0
92
  86               		.stabs	"CamInt_resetCam:F(0,15)",36,0,225,CamInt_resetCam
92
  86               		.stabs	"CamInt_resetCam:F(0,15)",36,0,225,CamInt_resetCam
93
  87               	.global	CamInt_resetCam
93
  87               	.global	CamInt_resetCam
94
  88               		.type	CamInt_resetCam, @function
94
  88               		.type	CamInt_resetCam, @function
95
  89               	CamInt_resetCam:
95
  89               	CamInt_resetCam:
96
  90               		.stabd	46,0,0
96
  90               		.stabd	46,0,0
97
   1:CamInterface.c **** /*
97
   1:CamInterface.c **** /*
98
   2:CamInterface.c ****     Copyright (C) 2004    John Orlando
98
   2:CamInterface.c ****     Copyright (C) 2004    John Orlando
99
   3:CamInterface.c ****     
99
   3:CamInterface.c ****     
100
   4:CamInterface.c ****    AVRcam: a small real-time image processing engine.
100
   4:CamInterface.c ****    AVRcam: a small real-time image processing engine.
101
   5:CamInterface.c **** 
101
   5:CamInterface.c **** 
102
   6:CamInterface.c ****     This program is free software; you can redistribute it and/or
102
   6:CamInterface.c ****     This program is free software; you can redistribute it and/or
103
   7:CamInterface.c ****     modify it under the terms of the GNU General Public
103
   7:CamInterface.c ****     modify it under the terms of the GNU General Public
104
   8:CamInterface.c ****     License as published by the Free Software Foundation; either
104
   8:CamInterface.c ****     License as published by the Free Software Foundation; either
105
   9:CamInterface.c ****     version 2 of the License, or (at your option) any later version.
105
   9:CamInterface.c ****     version 2 of the License, or (at your option) any later version.
106
  10:CamInterface.c **** 
106
  10:CamInterface.c **** 
107
  11:CamInterface.c ****     This program is distributed in the hope that it will be useful,
107
  11:CamInterface.c ****     This program is distributed in the hope that it will be useful,
108
  12:CamInterface.c ****     but WITHOUT ANY WARRANTY; without even the implied warranty of
108
  12:CamInterface.c ****     but WITHOUT ANY WARRANTY; without even the implied warranty of
109
  13:CamInterface.c ****     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
109
  13:CamInterface.c ****     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
110
  14:CamInterface.c ****     General Public License for more details.
110
  14:CamInterface.c ****     General Public License for more details.
111
  15:CamInterface.c **** 
111
  15:CamInterface.c **** 
112
  16:CamInterface.c ****     You should have received a copy of the GNU General Public
112
  16:CamInterface.c ****     You should have received a copy of the GNU General Public
113
  17:CamInterface.c ****     License along with this program; if not, write to the Free Software
113
  17:CamInterface.c ****     License along with this program; if not, write to the Free Software
114
  18:CamInterface.c ****     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
114
  18:CamInterface.c ****     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
115
  19:CamInterface.c **** 
115
  19:CamInterface.c **** 
116
  20:CamInterface.c ****    For more information on the AVRcam, please contact:
116
  20:CamInterface.c ****    For more information on the AVRcam, please contact:
117
  21:CamInterface.c **** 
117
  21:CamInterface.c **** 
118
  22:CamInterface.c ****    john@jrobot.net
118
  22:CamInterface.c ****    john@jrobot.net
119
  23:CamInterface.c **** 
119
  23:CamInterface.c **** 
120
  24:CamInterface.c ****    or go to www.jrobot.net for more details regarding the system.
120
  24:CamInterface.c ****    or go to www.jrobot.net for more details regarding the system.
121
GAS LISTING /tmp/cc4KZ7ps.s 			page 3
121
GAS LISTING /tmp/cc4KZ7ps.s 			page 3
122
 
122
 
123
 
123
 
124
  25:CamInterface.c **** */
124
  25:CamInterface.c **** */
125
  26:CamInterface.c **** /***********************************************************
125
  26:CamInterface.c **** /***********************************************************
126
  27:CamInterface.c **** 	Module Name: CamInterface.c
126
  27:CamInterface.c **** 	Module Name: CamInterface.c
127
  28:CamInterface.c **** 	Module Date: 04/12/2004
127
  28:CamInterface.c **** 	Module Date: 04/12/2004
128
  29:CamInterface.c **** 	Module Auth: John Orlando
128
  29:CamInterface.c **** 	Module Auth: John Orlando
129
  30:CamInterface.c **** 	
129
  30:CamInterface.c **** 	
130
  31:CamInterface.c **** 	Description: This file is responsible for providing an
130
  31:CamInterface.c **** 	Description: This file is responsible for providing an
131
  32:CamInterface.c **** 	interface to the OV6620 camera hardware.  This includes
131
  32:CamInterface.c **** 	interface to the OV6620 camera hardware.  This includes
132
  33:CamInterface.c **** 	an interface to CamInterface.S for certain low-level,
132
  33:CamInterface.c **** 	an interface to CamInterface.S for certain low-level,
133
  34:CamInterface.c **** 	optimized camera access routines.
133
  34:CamInterface.c **** 	optimized camera access routines.
134
  35:CamInterface.c ****     
134
  35:CamInterface.c ****     
135
  36:CamInterface.c ****     Revision History:
135
  36:CamInterface.c ****     Revision History:
136
  37:CamInterface.c ****     Date        Rel Ver.    Notes
136
  37:CamInterface.c ****     Date        Rel Ver.    Notes
137
  38:CamInterface.c ****     4/10/2004      0.1     Module created
137
  38:CamInterface.c ****     4/10/2004      0.1     Module created
138
  39:CamInterface.c ****     6/30/2004      1.0     Initial release for Circuit Cellar
138
  39:CamInterface.c ****     6/30/2004      1.0     Initial release for Circuit Cellar
139
  40:CamInterface.c ****                            contest.
139
  40:CamInterface.c ****                            contest.
140
  41:CamInterface.c ****     11/15/2004     1.2     ifdef'd out the resetCam routine, since
140
  41:CamInterface.c ****     11/15/2004     1.2     ifdef'd out the resetCam routine, since
141
  42:CamInterface.c ****                            resetting the cam now causes the OV6620's
141
  42:CamInterface.c ****                            resetting the cam now causes the OV6620's
142
  43:CamInterface.c ****                            clock to not be output (we have to start
142
  43:CamInterface.c ****                            clock to not be output (we have to start
143
  44:CamInterface.c ****                            it up after each reset with the external
143
  44:CamInterface.c ****                            it up after each reset with the external
144
  45:CamInterface.c ****                            tiny12 processor).
144
  45:CamInterface.c ****                            tiny12 processor).
145
  46:CamInterface.c ****     1/16/2005      1.4     Ensure that the TCCR1B register is set so
145
  46:CamInterface.c ****     1/16/2005      1.4     Ensure that the TCCR1B register is set so
146
  47:CamInterface.c ****                            nothing is clocking timer1 at startup.                             
146
  47:CamInterface.c ****                            nothing is clocking timer1 at startup.                             
147
  48:CamInterface.c **** ***********************************************************/
147
  48:CamInterface.c **** ***********************************************************/
148
  49:CamInterface.c **** 
148
  49:CamInterface.c **** 
149
  50:CamInterface.c **** /*	Includes */
149
  50:CamInterface.c **** /*	Includes */
150
  51:CamInterface.c **** #include <avr/interrupt.h>
150
  51:CamInterface.c **** #include <avr/interrupt.h>
151
  52:CamInterface.c **** #include <avr/sleep.h>
151
  52:CamInterface.c **** #include <avr/sleep.h>
152
  53:CamInterface.c **** #include <avr/eeprom.h>
152
  53:CamInterface.c **** #include <avr/eeprom.h>
153
  54:CamInterface.c **** #include <stdlib.h>
153
  54:CamInterface.c **** #include <stdlib.h>
154
  55:CamInterface.c **** #include <string.h>
154
  55:CamInterface.c **** #include <string.h>
155
  56:CamInterface.c **** #include "CommonDefs.h"
155
  56:CamInterface.c **** #include "CommonDefs.h"
156
  57:CamInterface.c **** #include "CamInterface.h"
156
  57:CamInterface.c **** #include "CamInterface.h"
157
  58:CamInterface.c **** #include "Utility.h"
157
  58:CamInterface.c **** #include "Utility.h"
158
  59:CamInterface.c **** #include "UIMgr.h"
158
  59:CamInterface.c **** #include "UIMgr.h"
159
  60:CamInterface.c **** #include "Executive.h"
159
  60:CamInterface.c **** #include "Executive.h"
160
  61:CamInterface.c **** #include "UartInterface.h"
160
  61:CamInterface.c **** #include "UartInterface.h"
161
  62:CamInterface.c **** 
161
  62:CamInterface.c **** 
162
  63:CamInterface.c **** /*  Local Variables */
162
  63:CamInterface.c **** /*  Local Variables */
163
  64:CamInterface.c **** 
163
  64:CamInterface.c **** 
164
  65:CamInterface.c **** /* 	Local Structures and Typedefs */
164
  65:CamInterface.c **** /* 	Local Structures and Typedefs */
165
  66:CamInterface.c **** 
165
  66:CamInterface.c **** 
166
  67:CamInterface.c **** /*  Definitions */
166
  67:CamInterface.c **** /*  Definitions */
167
  68:CamInterface.c **** //#define OUTPUT_INITIAL_COLOR_MAP 1
167
  68:CamInterface.c **** //#define OUTPUT_INITIAL_COLOR_MAP 1
168
  69:CamInterface.c **** 
168
  69:CamInterface.c **** 
169
  70:CamInterface.c **** #define FAST_ACQUIRE 1
169
  70:CamInterface.c **** #define FAST_ACQUIRE 1
170
  71:CamInterface.c **** #define CAM_G_BUS          	PINB
170
  71:CamInterface.c **** #define CAM_G_BUS          	PINB
171
  72:CamInterface.c **** #define CAM_G_BUS_DIR      	DDRB
171
  72:CamInterface.c **** #define CAM_G_BUS_DIR      	DDRB
172
  73:CamInterface.c **** #define CAM_RB_BUS          PINC
172
  73:CamInterface.c **** #define CAM_RB_BUS          PINC
173
  74:CamInterface.c **** #define CAM_RB_BUS_DIR 		DDRC
173
  74:CamInterface.c **** #define CAM_RB_BUS_DIR 		DDRC
174
  75:CamInterface.c **** 
174
  75:CamInterface.c **** 
175
  76:CamInterface.c **** #define CAM_CONTROL_PORT     PORTD
175
  76:CamInterface.c **** #define CAM_CONTROL_PORT     PORTD
176
  77:CamInterface.c **** #define CAM_CONTROL_PORT_DIR DDRD
176
  77:CamInterface.c **** #define CAM_CONTROL_PORT_DIR DDRD
177
  78:CamInterface.c **** #define CAM_RESET_LINE       BIT7
177
  78:CamInterface.c **** #define CAM_RESET_LINE       BIT7
178
  79:CamInterface.c **** #define CAM_PIXEL_CLK_COUNT  BIT5
178
  79:CamInterface.c **** #define CAM_PIXEL_CLK_COUNT  BIT5
179
  80:CamInterface.c **** #define CAM_HREF             BIT4
179
  80:CamInterface.c **** #define CAM_HREF             BIT4
180
  81:CamInterface.c **** #define CAM_PIXEL_CLK_INT    BIT3
180
  81:CamInterface.c **** #define CAM_PIXEL_CLK_INT    BIT3
181
GAS LISTING /tmp/cc4KZ7ps.s 			page 4
181
GAS LISTING /tmp/cc4KZ7ps.s 			page 4
182
 
182
 
183
 
183
 
184
  82:CamInterface.c **** #define CAM_VSYNC            BIT2
184
  82:CamInterface.c **** #define CAM_VSYNC            BIT2
185
  83:CamInterface.c **** 
185
  83:CamInterface.c **** 
186
  84:CamInterface.c **** /*  Global Variables */
186
  84:CamInterface.c **** /*  Global Variables */
187
  85:CamInterface.c **** /* NOTE: This file MUST appear first in the Makefile for these variables to
187
  85:CamInterface.c **** /* NOTE: This file MUST appear first in the Makefile for these variables to
188
  86:CamInterface.c **** be placed properly in RAM */
188
  86:CamInterface.c **** be placed properly in RAM */
189
  87:CamInterface.c **** 
189
  87:CamInterface.c **** 
190
  88:CamInterface.c **** /* The colorMap[] table provides the membership lookup table to convert 
190
  88:CamInterface.c **** /* The colorMap[] table provides the membership lookup table to convert 
191
  89:CamInterface.c **** RGB or YUV pixel values into actual colors.  The membership table contains
191
  89:CamInterface.c **** RGB or YUV pixel values into actual colors.  The membership table contains
192
  90:CamInterface.c **** 16 elements for each color channel, concatenated together.  The Red (or Y)
192
  90:CamInterface.c **** 16 elements for each color channel, concatenated together.  The Red (or Y)
193
  91:CamInterface.c **** value is located in the first 16 bytes, the G (or U) value is located in
193
  91:CamInterface.c **** value is located in the first 16 bytes, the G (or U) value is located in
194
  92:CamInterface.c **** the second 16 bytes, and the B (or V) value is located in the last 16 bytes:
194
  92:CamInterface.c **** the second 16 bytes, and the B (or V) value is located in the last 16 bytes:
195
  93:CamInterface.c **** 
195
  93:CamInterface.c **** 
196
  94:CamInterface.c ****     ----------------------------------------------------------------------------------
196
  94:CamInterface.c ****     ----------------------------------------------------------------------------------
197
  95:CamInterface.c ****     |red0|red1|red2|...|red15|green0|green1|green2|...|green15|blue0|blue1|...|blue15|
197
  95:CamInterface.c ****     |red0|red1|red2|...|red15|green0|green1|green2|...|green15|blue0|blue1|...|blue15|
198
  96:CamInterface.c **** mem:|0x00 0x01 0x02     0x15   0x16   0x17   0x18       0x31   0x32  0x33       0x47 |
198
  96:CamInterface.c **** mem:|0x00 0x01 0x02     0x15   0x16   0x17   0x18       0x31   0x32  0x33       0x47 |
199
  97:CamInterface.c ****     ---------------------------------------------------------------------------------
199
  97:CamInterface.c ****     ---------------------------------------------------------------------------------
200
  98:CamInterface.c **** Thus, the red lookup is accessed at colorMap+0, the green lookup is accessed 
200
  98:CamInterface.c **** Thus, the red lookup is accessed at colorMap+0, the green lookup is accessed 
201
  99:CamInterface.c **** at colorMap+16, and the blue lookup is accessed at colorMap+32.  */	
201
  99:CamInterface.c **** at colorMap+16, and the blue lookup is accessed at colorMap+32.  */	
202
 100:CamInterface.c **** unsigned char colorMap[NUM_ELEMENTS_IN_COLOR_MAP] __attribute__ ((section (".noinit")));
202
 100:CamInterface.c **** unsigned char colorMap[NUM_ELEMENTS_IN_COLOR_MAP] __attribute__ ((section (".noinit")));
203
 101:CamInterface.c **** 
203
 101:CamInterface.c **** 
204
 102:CamInterface.c **** /*  Extern Variables */
204
 102:CamInterface.c **** /*  Extern Variables */
205
 103:CamInterface.c **** /* These two buffers hold the current and previous lines
205
 103:CamInterface.c **** /* These two buffers hold the current and previous lines
206
 104:CamInterface.c **** of pixel data.  They are sized to the worst case scenario,
206
 104:CamInterface.c **** of pixel data.  They are sized to the worst case scenario,
207
 105:CamInterface.c **** where the color changes between every pixel (unrealistic).
207
 105:CamInterface.c **** where the color changes between every pixel (unrealistic).
208
 106:CamInterface.c **** The format of each buffer is for all the even bytes to hold
208
 106:CamInterface.c **** The format of each buffer is for all the even bytes to hold
209
 107:CamInterface.c **** the run-length, and the odd bytes to hold the color data. */
209
 107:CamInterface.c **** the run-length, and the odd bytes to hold the color data. */
210
 108:CamInterface.c **** 
210
 108:CamInterface.c **** 
211
 109:CamInterface.c **** /* In addition, if we are in frameDump mode, we use these buffers
211
 109:CamInterface.c **** /* In addition, if we are in frameDump mode, we use these buffers
212
 110:CamInterface.c **** to store the acquired line data...we are actually grabbing ALL of the
212
 110:CamInterface.c **** to store the acquired line data...we are actually grabbing ALL of the
213
 111:CamInterface.c **** pixels in a line (176) instead of the 88 we get normally during tracking.
213
 111:CamInterface.c **** pixels in a line (176) instead of the 88 we get normally during tracking.
214
 112:CamInterface.c **** But since we have enough to hold 88-RLE blocks, we already have the 176
214
 112:CamInterface.c **** But since we have enough to hold 88-RLE blocks, we already have the 176
215
 113:CamInterface.c **** allocated for this... */
215
 113:CamInterface.c **** allocated for this... */
216
 114:CamInterface.c **** unsigned char currentLineBuffer[LENGTH_OF_LINE_BUFFER];
216
 114:CamInterface.c **** unsigned char currentLineBuffer[LENGTH_OF_LINE_BUFFER];
217
 115:CamInterface.c **** unsigned char previousLineBuffer[LENGTH_OF_LINE_BUFFER];
217
 115:CamInterface.c **** unsigned char previousLineBuffer[LENGTH_OF_LINE_BUFFER];
218
 116:CamInterface.c **** 
218
 116:CamInterface.c **** 
219
 117:CamInterface.c **** /*  Extern Functions */
219
 117:CamInterface.c **** /*  Extern Functions */
220
 118:CamInterface.c **** /* These functions are located in assembly files, and thus
220
 118:CamInterface.c **** /* These functions are located in assembly files, and thus
221
 119:CamInterface.c **** must be externed here so they can be referenced in the source below. */
221
 119:CamInterface.c **** must be externed here so they can be referenced in the source below. */
222
 120:CamInterface.c **** extern void CamIntAsm_waitForNewTrackingFrame(unsigned char *pBuffer, unsigned char *pMemLookup);
222
 120:CamInterface.c **** extern void CamIntAsm_waitForNewTrackingFrame(unsigned char *pBuffer, unsigned char *pMemLookup);
223
 121:CamInterface.c **** extern void CamIntAsm_waitForNewDumpFrame(unsigned char *pCurrBuffer, unsigned char *pPrevBuffer);
223
 121:CamInterface.c **** extern void CamIntAsm_waitForNewDumpFrame(unsigned char *pCurrBuffer, unsigned char *pPrevBuffer);
224
 122:CamInterface.c **** extern void CamIntAsm_acquireTrackingLine(unsigned char *pBuffer, unsigned char *pMemLookup);
224
 122:CamInterface.c **** extern void CamIntAsm_acquireTrackingLine(unsigned char *pBuffer, unsigned char *pMemLookup);
225
 123:CamInterface.c **** extern void CamIntAsm_acquireDumpLine(unsigned char *pCurrBuffer, unsigned char *pPrevBuffer);
225
 123:CamInterface.c **** extern void CamIntAsm_acquireDumpLine(unsigned char *pCurrBuffer, unsigned char *pPrevBuffer);
226
 124:CamInterface.c **** 
226
 124:CamInterface.c **** 
227
 125:CamInterface.c **** /***********************************************************
227
 125:CamInterface.c **** /***********************************************************
228
 126:CamInterface.c **** 	Function Name: CamInt_init
228
 126:CamInterface.c **** 	Function Name: CamInt_init
229
 127:CamInterface.c **** 	Function Description: This function is responsible
229
 127:CamInterface.c **** 	Function Description: This function is responsible
230
 128:CamInterface.c **** 	for initializing the camera interface.  This includes
230
 128:CamInterface.c **** 	for initializing the camera interface.  This includes
231
 129:CamInterface.c **** 	setting up the i/o ports that are used to read the
231
 129:CamInterface.c **** 	setting up the i/o ports that are used to read the
232
 130:CamInterface.c **** 	camera busses, as well as resetting the camera.
232
 130:CamInterface.c **** 	camera busses, as well as resetting the camera.
233
 131:CamInterface.c **** 	Inputs:  none
233
 131:CamInterface.c **** 	Inputs:  none
234
 132:CamInterface.c **** 	Outputs: none
234
 132:CamInterface.c **** 	Outputs: none
235
 133:CamInterface.c **** ***********************************************************/	
235
 133:CamInterface.c **** ***********************************************************/	
236
 134:CamInterface.c **** void CamInt_init(void)
236
 134:CamInterface.c **** void CamInt_init(void)
237
 135:CamInterface.c **** {
237
 135:CamInterface.c **** {
238
 136:CamInterface.c **** #if OUTPUT_INITIAL_COLOR_MAP
238
 136:CamInterface.c **** #if OUTPUT_INITIAL_COLOR_MAP
239
 137:CamInterface.c **** 	unsigned char asciiBuffer[5];
239
 137:CamInterface.c **** 	unsigned char asciiBuffer[5];
240
 138:CamInterface.c ****     unsigned char i;
240
 138:CamInterface.c ****     unsigned char i;
241
GAS LISTING /tmp/cc4KZ7ps.s 			page 5
241
GAS LISTING /tmp/cc4KZ7ps.s 			page 5
242
 
242
 
243
 
243
 
244
 139:CamInterface.c **** #endif    
244
 139:CamInterface.c **** #endif    
245
 140:CamInterface.c ****     
245
 140:CamInterface.c ****     
246
 141:CamInterface.c **** 	/* set up the mega8 ports that will be interfacing
246
 141:CamInterface.c **** 	/* set up the mega8 ports that will be interfacing
247
 142:CamInterface.c **** 	with the camera */	
247
 142:CamInterface.c **** 	with the camera */	
248
 143:CamInterface.c **** 	CAM_CONTROL_PORT_DIR |= (1<<CAM_RESET_LINE); /* cam reset is output */
248
 143:CamInterface.c **** 	CAM_CONTROL_PORT_DIR |= (1<<CAM_RESET_LINE); /* cam reset is output */
249
 144:CamInterface.c **** 	CAM_CONTROL_PORT_DIR |= 0x80;   /* set just the MSB as an output */
249
 144:CamInterface.c **** 	CAM_CONTROL_PORT_DIR |= 0x80;   /* set just the MSB as an output */
250
 145:CamInterface.c **** 	CAM_CONTROL_PORT_DIR &= 0xFB;   /* make sure bit2 is clear (input) */
250
 145:CamInterface.c **** 	CAM_CONTROL_PORT_DIR &= 0xFB;   /* make sure bit2 is clear (input) */
251
 146:CamInterface.c **** 	CAM_CONTROL_PORT &= 0x7F;   /* set reset line low */
251
 146:CamInterface.c **** 	CAM_CONTROL_PORT &= 0x7F;   /* set reset line low */
252
 147:CamInterface.c **** 	CAM_G_BUS_DIR &= 0xF0;  /* 4-bit G bus all inputs */
252
 147:CamInterface.c **** 	CAM_G_BUS_DIR &= 0xF0;  /* 4-bit G bus all inputs */
253
 148:CamInterface.c ****     CAM_G_BUS_DIR |= 0xF0;  /* disable the pull-up on PB4 and PB5 */
253
 148:CamInterface.c ****     CAM_G_BUS_DIR |= 0xF0;  /* disable the pull-up on PB4 and PB5 */
254
 149:CamInterface.c **** 	CAM_RB_BUS_DIR &= 0xF0;  /* 4-bit RB bus all inputs */
254
 149:CamInterface.c **** 	CAM_RB_BUS_DIR &= 0xF0;  /* 4-bit RB bus all inputs */
255
 150:CamInterface.c **** 	
255
 150:CamInterface.c **** 	
256
 151:CamInterface.c ****     /* ensure that timer1 is disabled to start...eventually, when PCLK needs
256
 151:CamInterface.c ****     /* ensure that timer1 is disabled to start...eventually, when PCLK needs
257
 152:CamInterface.c ****     to feed timer1 through the external counter, it will be enabled on an
257
 152:CamInterface.c ****     to feed timer1 through the external counter, it will be enabled on an
258
 153:CamInterface.c ****     "as needed" basis...*/
258
 153:CamInterface.c ****     "as needed" basis...*/
259
 154:CamInterface.c **** 	TCCR1B &= ~( (1<<CS12)|(1<<CS11)|(1<<CS10) );
259
 154:CamInterface.c **** 	TCCR1B &= ~( (1<<CS12)|(1<<CS11)|(1<<CS10) );
260
 155:CamInterface.c **** 	
260
 155:CamInterface.c **** 	
261
 156:CamInterface.c **** 	/* we'll turn on the interrupt after we assign the initial TCNT value */
261
 156:CamInterface.c **** 	/* we'll turn on the interrupt after we assign the initial TCNT value */
262
 157:CamInterface.c **** 	
262
 157:CamInterface.c **** 	
263
 158:CamInterface.c **** 	/* set up External Interrupt1 to interrupt us on rising edges (HREF)...
263
 158:CamInterface.c **** 	/* set up External Interrupt1 to interrupt us on rising edges (HREF)...
264
 159:CamInterface.c **** 	this is needed to indicate when the first pixel of each line is about to start, so
264
 159:CamInterface.c **** 	this is needed to indicate when the first pixel of each line is about to start, so
265
 160:CamInterface.c **** 	we can synch up with it...this interrupt will be disabled once HREF goes high */
265
 160:CamInterface.c **** 	we can synch up with it...this interrupt will be disabled once HREF goes high */
266
 161:CamInterface.c **** 	
266
 161:CamInterface.c **** 	
267
 162:CamInterface.c **** 	MCUCR |= (1<<ISC11) | (1<<ISC10);  /* rising edge interrupt */
267
 162:CamInterface.c **** 	MCUCR |= (1<<ISC11) | (1<<ISC10);  /* rising edge interrupt */
268
 163:CamInterface.c **** 	/* the interrupt will be enabled when we are ready to detect the rising edge of
268
 163:CamInterface.c **** 	/* the interrupt will be enabled when we are ready to detect the rising edge of
269
 164:CamInterface.c **** 	HREF...its now primed and ready to go */
269
 164:CamInterface.c **** 	HREF...its now primed and ready to go */
270
 165:CamInterface.c **** 	
270
 165:CamInterface.c **** 	
271
 166:CamInterface.c **** 	/* set up External Interrupt0 to interrupt us on rising edges (VSYNC) */
271
 166:CamInterface.c **** 	/* set up External Interrupt0 to interrupt us on rising edges (VSYNC) */
272
 167:CamInterface.c **** 	MCUCR |= (1<<ISC01) | (1<<ISC00);	/* rising edge interrupt */ 
272
 167:CamInterface.c **** 	MCUCR |= (1<<ISC01) | (1<<ISC00);	/* rising edge interrupt */ 
273
 168:CamInterface.c **** 	GICR  |= (1<<INT0);    /* interrupt request enabled */
273
 168:CamInterface.c **** 	GICR  |= (1<<INT0);    /* interrupt request enabled */
274
 169:CamInterface.c **** 	
274
 169:CamInterface.c **** 	
275
 170:CamInterface.c **** 	/* set up TimerO to count and be clocked from an external pulse source
275
 170:CamInterface.c **** 	/* set up TimerO to count and be clocked from an external pulse source
276
 171:CamInterface.c **** 	(HREF) on falling edges...eventually, we need to enable the interrupt
276
 171:CamInterface.c **** 	(HREF) on falling edges...eventually, we need to enable the interrupt
277
 172:CamInterface.c **** 	for this!  FIX THIS */
277
 172:CamInterface.c **** 	for this!  FIX THIS */
278
 173:CamInterface.c **** 	TCCR0 = (1<<CS02)|(1<<CS01)|(0<<CS00);
278
 173:CamInterface.c **** 	TCCR0 = (1<<CS02)|(1<<CS01)|(0<<CS00);
279
 174:CamInterface.c **** 	
279
 174:CamInterface.c **** 	
280
 175:CamInterface.c **** 	/* setting up the PCLK counter with Timer1 will be done right after
280
 175:CamInterface.c **** 	/* setting up the PCLK counter with Timer1 will be done right after
281
 176:CamInterface.c **** 	we start receiving pixels in each line...we sacrifice the first pixel
281
 176:CamInterface.c **** 	we start receiving pixels in each line...we sacrifice the first pixel
282
 177:CamInterface.c **** 	in each line, but we'll account for it...*/
282
 177:CamInterface.c **** 	in each line, but we'll account for it...*/
283
 178:CamInterface.c **** 	
283
 178:CamInterface.c **** 	
284
 179:CamInterface.c **** 	/* set up the mega8 so that its sleep mode puts it in an IDLE sleep
284
 179:CamInterface.c **** 	/* set up the mega8 so that its sleep mode puts it in an IDLE sleep
285
 180:CamInterface.c **** 	mode, where it can wake up as fast as possible */
285
 180:CamInterface.c **** 	mode, where it can wake up as fast as possible */
286
 181:CamInterface.c **** 	set_sleep_mode(SLEEP_MODE_IDLE);
286
 181:CamInterface.c **** 	set_sleep_mode(SLEEP_MODE_IDLE);
287
 182:CamInterface.c **** 	/* umm....we need to actually enable the sleep mode...*/
287
 182:CamInterface.c **** 	/* umm....we need to actually enable the sleep mode...*/
288
 183:CamInterface.c **** 	MCUCR |= 0x80;
288
 183:CamInterface.c **** 	MCUCR |= 0x80;
289
 184:CamInterface.c **** 	
289
 184:CamInterface.c **** 	
290
 185:CamInterface.c **** 	/* initialize the memLookup table */
290
 185:CamInterface.c **** 	/* initialize the memLookup table */
291
 186:CamInterface.c **** 	memset(colorMap,0x00,NUM_ELEMENTS_IN_COLOR_MAP);   
291
 186:CamInterface.c **** 	memset(colorMap,0x00,NUM_ELEMENTS_IN_COLOR_MAP);   
292
 187:CamInterface.c **** 	
292
 187:CamInterface.c **** 	
293
 188:CamInterface.c **** 	/* read the color map out of EEPROM */
293
 188:CamInterface.c **** 	/* read the color map out of EEPROM */
294
 189:CamInterface.c **** 	eeprom_read_block(colorMap, (unsigned char*)0x01,NUM_ELEMENTS_IN_COLOR_MAP);
294
 189:CamInterface.c **** 	eeprom_read_block(colorMap, (unsigned char*)0x01,NUM_ELEMENTS_IN_COLOR_MAP);
295
 190:CamInterface.c **** 
295
 190:CamInterface.c **** 
296
 191:CamInterface.c **** #if OUTPUT_INITIAL_COLOR_MAP    
296
 191:CamInterface.c **** #if OUTPUT_INITIAL_COLOR_MAP    
297
 192:CamInterface.c ****     UIMgr_txBuffer("\r\n",2);
297
 192:CamInterface.c ****     UIMgr_txBuffer("\r\n",2);
298
 193:CamInterface.c ****     for (i=0; i<NUM_ELEMENTS_IN_COLOR_MAP; i++)
298
 193:CamInterface.c ****     for (i=0; i<NUM_ELEMENTS_IN_COLOR_MAP; i++)
299
 194:CamInterface.c **** 	{
299
 194:CamInterface.c **** 	{
300
 195:CamInterface.c **** 		memset(asciiBuffer,0x00,5);
300
 195:CamInterface.c **** 		memset(asciiBuffer,0x00,5);
301
GAS LISTING /tmp/cc4KZ7ps.s 			page 6
301
GAS LISTING /tmp/cc4KZ7ps.s 			page 6
302
 
302
 
303
 
303
 
304
 196:CamInterface.c **** 		itoa(colorMap[i],asciiBuffer,10);
304
 196:CamInterface.c **** 		itoa(colorMap[i],asciiBuffer,10);
305
 197:CamInterface.c **** 		UIMgr_txBuffer(asciiBuffer,3);
305
 197:CamInterface.c **** 		UIMgr_txBuffer(asciiBuffer,3);
306
 198:CamInterface.c **** 		UIMgr_txBuffer(" ",1);
306
 198:CamInterface.c **** 		UIMgr_txBuffer(" ",1);
307
 199:CamInterface.c **** 		if (i==15 || i == 31)
307
 199:CamInterface.c **** 		if (i==15 || i == 31)
308
 200:CamInterface.c **** 		{
308
 200:CamInterface.c **** 		{
309
 201:CamInterface.c **** 			/* break up the output */
309
 201:CamInterface.c **** 			/* break up the output */
310
 202:CamInterface.c **** 			UIMgr_txBuffer("\r\n",2);
310
 202:CamInterface.c **** 			UIMgr_txBuffer("\r\n",2);
311
 203:CamInterface.c **** 		}
311
 203:CamInterface.c **** 		}
312
 204:CamInterface.c **** 	}
312
 204:CamInterface.c **** 	}
313
 205:CamInterface.c **** #endif    
313
 205:CamInterface.c **** #endif    
314
 206:CamInterface.c **** 
314
 206:CamInterface.c **** 
315
 207:CamInterface.c **** #ifndef NO_CRYSTAL
315
 207:CamInterface.c **** #ifndef NO_CRYSTAL
316
 208:CamInterface.c **** 	CamInt_resetCam();	
316
 208:CamInterface.c **** 	CamInt_resetCam();	
317
 209:CamInterface.c **** #endif    
317
 209:CamInterface.c **** #endif    
318
 210:CamInterface.c **** }
318
 210:CamInterface.c **** }
319
 211:CamInterface.c **** 
319
 211:CamInterface.c **** 
320
 212:CamInterface.c **** /***********************************************************
320
 212:CamInterface.c **** /***********************************************************
321
 213:CamInterface.c **** 	Function Name: CamInt_resetCam
321
 213:CamInterface.c **** 	Function Name: CamInt_resetCam
322
 214:CamInterface.c **** 	Function Description: This function is responsible
322
 214:CamInterface.c **** 	Function Description: This function is responsible
323
 215:CamInterface.c **** 	for resetting the camera.  This is accomplished by
323
 215:CamInterface.c **** 	for resetting the camera.  This is accomplished by
324
 216:CamInterface.c **** 	toggling the reset line on the OV6620 for ~100 mS.
324
 216:CamInterface.c **** 	toggling the reset line on the OV6620 for ~100 mS.
325
 217:CamInterface.c **** 	Inputs:  none
325
 217:CamInterface.c **** 	Inputs:  none
326
 218:CamInterface.c **** 	Outputs: none
326
 218:CamInterface.c **** 	Outputs: none
327
 219:CamInterface.c ****     IMPORTANT NOTE: This function has effectively been removed
327
 219:CamInterface.c ****     IMPORTANT NOTE: This function has effectively been removed
328
 220:CamInterface.c ****     since resetting the camera now causes the camera to not
328
 220:CamInterface.c ****     since resetting the camera now causes the camera to not
329
 221:CamInterface.c ****     output the clock signal.  Thus, if we reset the cam, the
329
 221:CamInterface.c ****     output the clock signal.  Thus, if we reset the cam, the
330
 222:CamInterface.c ****     AVR has no clock, and thus doesn't run...
330
 222:CamInterface.c ****     AVR has no clock, and thus doesn't run...
331
 223:CamInterface.c **** ***********************************************************/	
331
 223:CamInterface.c **** ***********************************************************/	
332
 224:CamInterface.c **** void CamInt_resetCam(void)
332
 224:CamInterface.c **** void CamInt_resetCam(void)
333
 225:CamInterface.c **** {
333
 225:CamInterface.c **** {
334
  91               		.stabn	68,0,225,.LM0-CamInt_resetCam
334
  91               		.stabn	68,0,225,.LM0-CamInt_resetCam
335
  92               	.LM0:
335
  92               	.LM0:
336
  93               	/* prologue: frame size=0 */
336
  93               	/* prologue: frame size=0 */
337
  94               	/* prologue end (size=0) */
337
  94               	/* prologue end (size=0) */
338
  95               	/* epilogue: frame size=0 */
338
  95               	/* epilogue: frame size=0 */
339
  96 0000 0895      		ret
339
  96 0000 0895      		ret
340
  97               	/* epilogue end (size=1) */
340
  97               	/* epilogue end (size=1) */
341
  98               	/* function CamInt_resetCam size 1 (0) */
341
  98               	/* function CamInt_resetCam size 1 (0) */
342
  99               		.size	CamInt_resetCam, .-CamInt_resetCam
342
  99               		.size	CamInt_resetCam, .-CamInt_resetCam
343
 100               	.Lscope0:
343
 100               	.Lscope0:
344
 101               		.stabs	"",36,0,0,.Lscope0-CamInt_resetCam
344
 101               		.stabs	"",36,0,0,.Lscope0-CamInt_resetCam
345
 102               		.stabd	78,0,0
345
 102               		.stabd	78,0,0
346
 103               		.stabs	"CamInt_init:F(0,15)",36,0,135,CamInt_init
346
 103               		.stabs	"CamInt_init:F(0,15)",36,0,135,CamInt_init
347
 104               	.global	CamInt_init
347
 104               	.global	CamInt_init
348
 105               		.type	CamInt_init, @function
348
 105               		.type	CamInt_init, @function
349
 106               	CamInt_init:
349
 106               	CamInt_init:
350
 107               		.stabd	46,0,0
350
 107               		.stabd	46,0,0
351
 108               		.stabn	68,0,135,.LM1-CamInt_init
351
 108               		.stabn	68,0,135,.LM1-CamInt_init
352
 109               	.LM1:
352
 109               	.LM1:
353
 110               	/* prologue: frame size=0 */
353
 110               	/* prologue: frame size=0 */
354
 111               	/* prologue end (size=0) */
354
 111               	/* prologue end (size=0) */
355
 112               		.stabn	68,0,143,.LM2-CamInt_init
355
 112               		.stabn	68,0,143,.LM2-CamInt_init
356
 113               	.LM2:
356
 113               	.LM2:
357
 114 0002 8F9A      		sbi 49-0x20,7
357
 114 0002 8F9A      		sbi 49-0x20,7
358
 115               		.stabn	68,0,144,.LM3-CamInt_init
358
 115               		.stabn	68,0,144,.LM3-CamInt_init
359
 116               	.LM3:
359
 116               	.LM3:
360
 117 0004 8F9A      		sbi 49-0x20,7
360
 117 0004 8F9A      		sbi 49-0x20,7
361
GAS LISTING /tmp/cc4KZ7ps.s 			page 7
361
GAS LISTING /tmp/cc4KZ7ps.s 			page 7
362
 
362
 
363
 
363
 
364
 118               		.stabn	68,0,145,.LM4-CamInt_init
364
 118               		.stabn	68,0,145,.LM4-CamInt_init
365
 119               	.LM4:
365
 119               	.LM4:
366
 120 0006 8A98      		cbi 49-0x20,2
366
 120 0006 8A98      		cbi 49-0x20,2
367
 121               		.stabn	68,0,146,.LM5-CamInt_init
367
 121               		.stabn	68,0,146,.LM5-CamInt_init
368
 122               	.LM5:
368
 122               	.LM5:
369
 123 0008 9798      		cbi 50-0x20,7
369
 123 0008 9798      		cbi 50-0x20,7
370
 124               		.stabn	68,0,147,.LM6-CamInt_init
370
 124               		.stabn	68,0,147,.LM6-CamInt_init
371
 125               	.LM6:
371
 125               	.LM6:
372
 126 000a 87B3      		in r24,55-0x20
372
 126 000a 87B3      		in r24,55-0x20
373
 127 000c 807F      		andi r24,lo8(-16)
373
 127 000c 807F      		andi r24,lo8(-16)
374
 128 000e 87BB      		out 55-0x20,r24
374
 128 000e 87BB      		out 55-0x20,r24
375
 129               		.stabn	68,0,148,.LM7-CamInt_init
375
 129               		.stabn	68,0,148,.LM7-CamInt_init
376
 130               	.LM7:
376
 130               	.LM7:
377
 131 0010 87B3      		in r24,55-0x20
377
 131 0010 87B3      		in r24,55-0x20
378
 132 0012 806F      		ori r24,lo8(-16)
378
 132 0012 806F      		ori r24,lo8(-16)
379
 133 0014 87BB      		out 55-0x20,r24
379
 133 0014 87BB      		out 55-0x20,r24
380
 134               		.stabn	68,0,149,.LM8-CamInt_init
380
 134               		.stabn	68,0,149,.LM8-CamInt_init
381
 135               	.LM8:
381
 135               	.LM8:
382
 136 0016 84B3      		in r24,52-0x20
382
 136 0016 84B3      		in r24,52-0x20
383
 137 0018 807F      		andi r24,lo8(-16)
383
 137 0018 807F      		andi r24,lo8(-16)
384
 138 001a 84BB      		out 52-0x20,r24
384
 138 001a 84BB      		out 52-0x20,r24
385
 139               		.stabn	68,0,154,.LM9-CamInt_init
385
 139               		.stabn	68,0,154,.LM9-CamInt_init
386
 140               	.LM9:
386
 140               	.LM9:
387
 141 001c 8EB5      		in r24,78-0x20
387
 141 001c 8EB5      		in r24,78-0x20
388
 142 001e 887F      		andi r24,lo8(-8)
388
 142 001e 887F      		andi r24,lo8(-8)
389
 143 0020 8EBD      		out 78-0x20,r24
389
 143 0020 8EBD      		out 78-0x20,r24
390
 144               		.stabn	68,0,162,.LM10-CamInt_init
390
 144               		.stabn	68,0,162,.LM10-CamInt_init
391
 145               	.LM10:
391
 145               	.LM10:
392
 146 0022 85B7      		in r24,85-0x20
392
 146 0022 85B7      		in r24,85-0x20
393
 147 0024 8C60      		ori r24,lo8(12)
393
 147 0024 8C60      		ori r24,lo8(12)
394
 148 0026 85BF      		out 85-0x20,r24
394
 148 0026 85BF      		out 85-0x20,r24
395
 149               		.stabn	68,0,167,.LM11-CamInt_init
395
 149               		.stabn	68,0,167,.LM11-CamInt_init
396
 150               	.LM11:
396
 150               	.LM11:
397
 151 0028 85B7      		in r24,85-0x20
397
 151 0028 85B7      		in r24,85-0x20
398
 152 002a 8360      		ori r24,lo8(3)
398
 152 002a 8360      		ori r24,lo8(3)
399
 153 002c 85BF      		out 85-0x20,r24
399
 153 002c 85BF      		out 85-0x20,r24
400
 154               		.stabn	68,0,168,.LM12-CamInt_init
400
 154               		.stabn	68,0,168,.LM12-CamInt_init
401
 155               	.LM12:
401
 155               	.LM12:
402
 156 002e 8BB7      		in r24,91-0x20
402
 156 002e 8BB7      		in r24,91-0x20
403
 157 0030 8064      		ori r24,lo8(64)
403
 157 0030 8064      		ori r24,lo8(64)
404
 158 0032 8BBF      		out 91-0x20,r24
404
 158 0032 8BBF      		out 91-0x20,r24
405
 159               		.stabn	68,0,173,.LM13-CamInt_init
405
 159               		.stabn	68,0,173,.LM13-CamInt_init
406
 160               	.LM13:
406
 160               	.LM13:
407
 161 0034 86E0      		ldi r24,lo8(6)
407
 161 0034 86E0      		ldi r24,lo8(6)
408
 162 0036 83BF      		out 83-0x20,r24
408
 162 0036 83BF      		out 83-0x20,r24
409
 163               		.stabn	68,0,181,.LM14-CamInt_init
409
 163               		.stabn	68,0,181,.LM14-CamInt_init
410
 164               	.LM14:
410
 164               	.LM14:
411
 165 0038 85B7      		in r24,85-0x20
411
 165 0038 85B7      		in r24,85-0x20
412
 166 003a 8F78      		andi r24,lo8(-113)
412
 166 003a 8F78      		andi r24,lo8(-113)
413
 167 003c 85BF      		out 85-0x20,r24
413
 167 003c 85BF      		out 85-0x20,r24
414
 168               		.stabn	68,0,183,.LM15-CamInt_init
414
 168               		.stabn	68,0,183,.LM15-CamInt_init
415
 169               	.LM15:
415
 169               	.LM15:
416
 170 003e 85B7      		in r24,85-0x20
416
 170 003e 85B7      		in r24,85-0x20
417
 171 0040 8068      		ori r24,lo8(-128)
417
 171 0040 8068      		ori r24,lo8(-128)
418
 172 0042 85BF      		out 85-0x20,r24
418
 172 0042 85BF      		out 85-0x20,r24
419
 173               		.stabn	68,0,186,.LM16-CamInt_init
419
 173               		.stabn	68,0,186,.LM16-CamInt_init
420
 174               	.LM16:
420
 174               	.LM16:
421
GAS LISTING /tmp/cc4KZ7ps.s 			page 8
421
GAS LISTING /tmp/cc4KZ7ps.s 			page 8
422
 
422
 
423
 
423
 
424
 175 0044 E0E0      		ldi r30,lo8(colorMap)
424
 175 0044 E0E0      		ldi r30,lo8(colorMap)
425
 176 0046 F0E0      		ldi r31,hi8(colorMap)
425
 176 0046 F0E0      		ldi r31,hi8(colorMap)
426
 177 0048 80E3      		ldi r24,lo8(48)
426
 177 0048 80E3      		ldi r24,lo8(48)
427
 178 004a DF01      		movw r26,r30
427
 178 004a DF01      		movw r26,r30
428
 179 004c 982F      		mov r25,r24
428
 179 004c 982F      		mov r25,r24
429
 180 004e 1D92      		st X+,__zero_reg__
429
 180 004e 1D92      		st X+,__zero_reg__
430
 181 0050 9A95      	        dec r25
430
 181 0050 9A95      	        dec r25
431
 182 0052 E9F7      		brne .-6
431
 182 0052 E9F7      		brne .-6
432
 183               	.LBB6:
432
 183               	.LBB6:
433
 184               	.LBB7:
433
 184               	.LBB7:
434
 185               	.LBB8:
434
 185               	.LBB8:
435
 186               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h",132,0,0,.Ltext1
435
 186               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h",132,0,0,.Ltext1
436
 187               	.Ltext1:
436
 187               	.Ltext1:
437
   1:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /* Copyright (c) 2002, 2003, 2004 Marek Michalkiewicz
437
   1:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /* Copyright (c) 2002, 2003, 2004 Marek Michalkiewicz
438
   2:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****    Copyright (c) 2005, 2006 Bjoern Haase
438
   2:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****    Copyright (c) 2005, 2006 Bjoern Haase
439
   3:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****    All rights reserved.
439
   3:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****    All rights reserved.
440
   4:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
440
   4:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
441
   5:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****    Redistribution and use in source and binary forms, with or without
441
   5:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****    Redistribution and use in source and binary forms, with or without
442
   6:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****    modification, are permitted provided that the following conditions are met:
442
   6:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****    modification, are permitted provided that the following conditions are met:
443
   7:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
443
   7:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
444
   8:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****    * Redistributions of source code must retain the above copyright
444
   8:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****    * Redistributions of source code must retain the above copyright
445
   9:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      notice, this list of conditions and the following disclaimer.
445
   9:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      notice, this list of conditions and the following disclaimer.
446
  10:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
446
  10:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
447
  11:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****    * Redistributions in binary form must reproduce the above copyright
447
  11:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****    * Redistributions in binary form must reproduce the above copyright
448
  12:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      notice, this list of conditions and the following disclaimer in
448
  12:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      notice, this list of conditions and the following disclaimer in
449
  13:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      the documentation and/or other materials provided with the
449
  13:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      the documentation and/or other materials provided with the
450
  14:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      distribution.
450
  14:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      distribution.
451
  15:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
451
  15:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
452
  16:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****    * Neither the name of the copyright holders nor the names of
452
  16:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****    * Neither the name of the copyright holders nor the names of
453
  17:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      contributors may be used to endorse or promote products derived
453
  17:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      contributors may be used to endorse or promote products derived
454
  18:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      from this software without specific prior written permission.
454
  18:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      from this software without specific prior written permission.
455
  19:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
455
  19:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
456
  20:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
456
  20:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
457
  21:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
457
  21:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
458
  22:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
458
  22:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
459
  23:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
459
  23:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
460
  24:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
460
  24:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
461
  25:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
461
  25:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
462
  26:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
462
  26:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
463
  27:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
463
  27:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
464
  28:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
464
  28:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
465
  29:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
465
  29:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
466
  30:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   POSSIBILITY OF SUCH DAMAGE. */
466
  30:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   POSSIBILITY OF SUCH DAMAGE. */
467
  31:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
467
  31:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
468
  32:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /* $Id: eeprom.h,v 1.17.2.1 2006/02/26 21:51:04 aesok Exp $ */
468
  32:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /* $Id: eeprom.h,v 1.17.2.1 2006/02/26 21:51:04 aesok Exp $ */
469
  33:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
469
  33:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
470
  34:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /*
470
  34:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /*
471
  35:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****    eeprom.h
471
  35:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****    eeprom.h
472
  36:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
472
  36:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
473
  37:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****    Contributors:
473
  37:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****    Contributors:
474
  38:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      Created by Marek Michalkiewicz <marekm@linux.org.pl>
474
  38:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      Created by Marek Michalkiewicz <marekm@linux.org.pl>
475
  39:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      eeprom_write_word and eeprom_write_block added by Artur Lipowski 
475
  39:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      eeprom_write_word and eeprom_write_block added by Artur Lipowski 
476
  40:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      <LAL@pro.onet.pl>
476
  40:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      <LAL@pro.onet.pl>
477
  41:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      Complete rewrite using the original interface by Bjoern Haase 
477
  41:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      Complete rewrite using the original interface by Bjoern Haase 
478
  42:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      <bjoern.haase@de.bosch.com>. 
478
  42:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      <bjoern.haase@de.bosch.com>. 
479
  43:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****  */
479
  43:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****  */
480
  44:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
480
  44:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
481
GAS LISTING /tmp/cc4KZ7ps.s 			page 9
481
GAS LISTING /tmp/cc4KZ7ps.s 			page 9
482
 
482
 
483
 
483
 
484
  45:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #ifndef _EEPROM_H_
484
  45:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #ifndef _EEPROM_H_
485
  46:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define _EEPROM_H_ 1
485
  46:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define _EEPROM_H_ 1
486
  47:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
486
  47:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
487
  48:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define __need_size_t
487
  48:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define __need_size_t
488
  49:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #include <stddef.h>
488
  49:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #include <stddef.h>
489
  50:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #include <inttypes.h>
489
  50:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #include <inttypes.h>
490
  51:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
490
  51:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
491
  52:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
491
  52:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
492
  53:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #ifdef __AVR_MEGA__
492
  53:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #ifdef __AVR_MEGA__
493
  54:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define XCALL "call"
493
  54:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define XCALL "call"
494
  55:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #else
494
  55:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #else
495
  56:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define XCALL "rcall"
495
  56:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define XCALL "rcall"
496
  57:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #endif
496
  57:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #endif
497
  58:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
497
  58:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
498
  59:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #include <avr/io.h>
498
  59:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #include <avr/io.h>
499
  60:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #ifndef __EEPROM_REG_LOCATIONS__
499
  60:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #ifndef __EEPROM_REG_LOCATIONS__
500
  61:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \def __EEPROM_REG_LOCATIONS__
500
  61:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \def __EEPROM_REG_LOCATIONS__
501
  62:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \ingroup avr_eeprom
501
  62:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \ingroup avr_eeprom
502
  63:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      In order to be able to work without a requiring a multilib 
502
  63:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      In order to be able to work without a requiring a multilib 
503
  64:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      approach for dealing with controllers having the EEPROM registers
503
  64:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      approach for dealing with controllers having the EEPROM registers
504
  65:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      at different positions in memory space, the eeprom functions evaluate
504
  65:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      at different positions in memory space, the eeprom functions evaluate
505
  66:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      __EEPROM_REG_LOCATIONS__: It is assumed to be defined by
505
  66:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      __EEPROM_REG_LOCATIONS__: It is assumed to be defined by
506
  67:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      the device io header and contains 6 uppercase hex digits encoding the 
506
  67:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      the device io header and contains 6 uppercase hex digits encoding the 
507
  68:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      addresses of EECR,EEDR and EEAR. 
507
  68:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      addresses of EECR,EEDR and EEAR. 
508
  69:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      First two letters:  EECR address.
508
  69:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      First two letters:  EECR address.
509
  70:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      Second two letters: EEDR address.
509
  70:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      Second two letters: EEDR address.
510
  71:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      Last two letters:   EEAR address.
510
  71:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      Last two letters:   EEAR address.
511
  72:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      The default 1C1D1E corresponds to the
511
  72:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      The default 1C1D1E corresponds to the
512
  73:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      register location that is valid for most controllers. The value
512
  73:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      register location that is valid for most controllers. The value
513
  74:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      of this define symbol is used for appending it to the base name of the
513
  74:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      of this define symbol is used for appending it to the base name of the
514
  75:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      assembler functions.  */
514
  75:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      assembler functions.  */
515
  76:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define __EEPROM_REG_LOCATIONS__ 1C1D1E
515
  76:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define __EEPROM_REG_LOCATIONS__ 1C1D1E
516
  77:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #endif
516
  77:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #endif
517
  78:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define _STR2(EXP) _STR1(EXP)
517
  78:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define _STR2(EXP) _STR1(EXP)
518
  79:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define _STR1(EXP) #EXP
518
  79:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define _STR1(EXP) #EXP
519
  80:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define _REG_LOCATION_SUFFIX _STR2(__EEPROM_REG_LOCATIONS__)
519
  80:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define _REG_LOCATION_SUFFIX _STR2(__EEPROM_REG_LOCATIONS__)
520
  81:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
520
  81:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
521
  82:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #ifndef CR_TAB
521
  82:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #ifndef CR_TAB
522
  83:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define CR_TAB "\n\t"
522
  83:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define CR_TAB "\n\t"
523
  84:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #endif
523
  84:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #endif
524
  85:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
524
  85:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
525
  86:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
525
  86:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
526
  87:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \defgroup avr_eeprom <avr/eeprom.h>: EEPROM handling
526
  87:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \defgroup avr_eeprom <avr/eeprom.h>: EEPROM handling
527
  88:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \code #include <avr/eeprom.h> \endcode
527
  88:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \code #include <avr/eeprom.h> \endcode
528
  89:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
528
  89:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
529
  90:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     This header file declares the interface to some simple library
529
  90:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     This header file declares the interface to some simple library
530
  91:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     routines suitable for handling the data EEPROM contained in the
530
  91:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     routines suitable for handling the data EEPROM contained in the
531
  92:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     AVR microcontrollers.  The implementation uses a simple polled
531
  92:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     AVR microcontrollers.  The implementation uses a simple polled
532
  93:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     mode interface.  Applications that require interrupt-controlled
532
  93:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     mode interface.  Applications that require interrupt-controlled
533
  94:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     EEPROM access to ensure that no time will be wasted in spinloops
533
  94:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     EEPROM access to ensure that no time will be wasted in spinloops
534
  95:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     will have to deploy their own implementation.
534
  95:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     will have to deploy their own implementation.
535
  96:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
535
  96:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
536
  97:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \note All of the read/write functions first make sure the EEPROM
536
  97:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \note All of the read/write functions first make sure the EEPROM
537
  98:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      is ready to be accessed.  Since this may cause long delays if a
537
  98:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      is ready to be accessed.  Since this may cause long delays if a
538
  99:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      write operation is still pending, time-critical applications
538
  99:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      write operation is still pending, time-critical applications
539
 100:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      should first poll the EEPROM e. g. using eeprom_is_ready() before
539
 100:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      should first poll the EEPROM e. g. using eeprom_is_ready() before
540
 101:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      attempting any actual I/O.
540
 101:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      attempting any actual I/O.
541
GAS LISTING /tmp/cc4KZ7ps.s 			page 10
541
GAS LISTING /tmp/cc4KZ7ps.s 			page 10
542
 
542
 
543
 
543
 
544
 102:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
544
 102:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
545
 103:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \note This header file declares inline functions that call the
545
 103:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \note This header file declares inline functions that call the
546
 104:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      assembler subroutines directly. This prevents that the compiler
546
 104:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      assembler subroutines directly. This prevents that the compiler
547
 105:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      generates push/pops for the call-clobbered registers. This way
547
 105:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      generates push/pops for the call-clobbered registers. This way
548
 106:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      also a specific calling convention could be used for the eeprom
548
 106:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      also a specific calling convention could be used for the eeprom
549
 107:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      routines e.g. by passing values in __tmp_reg__, eeprom addresses in
549
 107:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      routines e.g. by passing values in __tmp_reg__, eeprom addresses in
550
 108:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      X and memory addresses in Z registers. Method is optimized for code 
550
 108:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      X and memory addresses in Z registers. Method is optimized for code 
551
 109:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      size.
551
 109:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      size.
552
 110:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
552
 110:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
553
 111:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \note Presently supported are two locations of the EEPROM register
553
 111:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \note Presently supported are two locations of the EEPROM register
554
 112:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      set: 0x1F,0x20,0x21 and 0x1C,0x1D,0x1E 
554
 112:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      set: 0x1F,0x20,0x21 and 0x1C,0x1D,0x1E 
555
 113:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      (see ::__EEPROM_REG_LOCATIONS__).
555
 113:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      (see ::__EEPROM_REG_LOCATIONS__).
556
 114:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
556
 114:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
557
 115:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \note As these functions modify IO registers, they are known to be
557
 115:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \note As these functions modify IO registers, they are known to be
558
 116:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      non-reentrant.  If any of these functions are used from both,
558
 116:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      non-reentrant.  If any of these functions are used from both,
559
 117:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      standard and interrupt context, the applications must ensure
559
 117:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      standard and interrupt context, the applications must ensure
560
 118:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      proper protection (e.g. by disabling interrupts before accessing
560
 118:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      proper protection (e.g. by disabling interrupts before accessing
561
 119:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      them).
561
 119:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      them).
562
 120:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
562
 120:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
563
 121:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** */
563
 121:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** */
564
 122:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
564
 122:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
565
 123:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
565
 123:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
566
 124:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /* forward declarations of the inline functions so that doxygen does
566
 124:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /* forward declarations of the inline functions so that doxygen does
567
 125:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****    not get confused by the attribute expression.  */
567
 125:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****    not get confused by the attribute expression.  */
568
 126:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
568
 126:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
569
 127:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline uint8_t __attribute__ ((always_inline))
569
 127:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline uint8_t __attribute__ ((always_inline))
570
 128:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_byte (const uint8_t *addr);
570
 128:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_byte (const uint8_t *addr);
571
 129:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
571
 129:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
572
 130:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline uint16_t __attribute__ ((always_inline)) 
572
 130:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline uint16_t __attribute__ ((always_inline)) 
573
 131:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_word (const uint16_t *addr);
573
 131:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_word (const uint16_t *addr);
574
 132:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
574
 132:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
575
 133:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
575
 133:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
576
 134:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_block (void *pointer_ram,
576
 134:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_block (void *pointer_ram,
577
 135:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                    const void *pointer_eeprom,
577
 135:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                    const void *pointer_eeprom,
578
 136:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                    size_t size);
578
 136:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                    size_t size);
579
 137:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
579
 137:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
580
 138:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
580
 138:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
581
 139:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_write_byte (uint8_t *addr,uint8_t value);
581
 139:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_write_byte (uint8_t *addr,uint8_t value);
582
 140:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
582
 140:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
583
 141:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
583
 141:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
584
 142:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_write_word (uint16_t *addr,uint16_t value);
584
 142:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_write_word (uint16_t *addr,uint16_t value);
585
 143:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
585
 143:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
586
 144:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
586
 144:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
587
 145:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_write_block (const void *pointer_ram,
587
 145:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_write_block (const void *pointer_ram,
588
 146:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                     void *pointer_eeprom,
588
 146:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                     void *pointer_eeprom,
589
 147:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                     size_t size);
589
 147:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                     size_t size);
590
 148:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
590
 148:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
591
 149:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \name avr-libc declarations */
591
 149:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \name avr-libc declarations */
592
 150:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
592
 150:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
593
 151:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /*@{*/
593
 151:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /*@{*/
594
 152:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
594
 152:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
595
 153:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \def EEMEM
595
 153:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \def EEMEM
596
 154:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \ingroup avr_eeprom
596
 154:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \ingroup avr_eeprom
597
 155:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     Attribute expression causing a variable to be allocated within the .eeprom
597
 155:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     Attribute expression causing a variable to be allocated within the .eeprom
598
 156:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      section.  */
598
 156:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      section.  */
599
 157:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define EEMEM __attribute__((section(".eeprom")))
599
 157:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define EEMEM __attribute__((section(".eeprom")))
600
 158:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
600
 158:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
601
GAS LISTING /tmp/cc4KZ7ps.s 			page 11
601
GAS LISTING /tmp/cc4KZ7ps.s 			page 11
602
 
602
 
603
 
603
 
604
 159:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \def eeprom_is_ready
604
 159:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \def eeprom_is_ready
605
 160:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \ingroup avr_eeprom
605
 160:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \ingroup avr_eeprom
606
 161:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \returns 1 if EEPROM is ready for a new read/write operation, 0 if not. */
606
 161:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \returns 1 if EEPROM is ready for a new read/write operation, 0 if not. */
607
 162:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
607
 162:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
608
 163:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #if defined(__DOXYGEN__)
608
 163:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #if defined(__DOXYGEN__)
609
 164:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** # define eeprom_is_ready()
609
 164:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** # define eeprom_is_ready()
610
 165:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #elif defined(EEWE)
610
 165:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #elif defined(EEWE)
611
 166:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** # define eeprom_is_ready() bit_is_clear(EECR, EEWE)
611
 166:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** # define eeprom_is_ready() bit_is_clear(EECR, EEWE)
612
 167:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #elif defined(EEPE)
612
 167:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #elif defined(EEPE)
613
 168:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** # define eeprom_is_ready() bit_is_clear(EECR, EEPE)
613
 168:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** # define eeprom_is_ready() bit_is_clear(EECR, EEPE)
614
 169:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #elif defined(DEECR) && defined(EEL)
614
 169:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #elif defined(DEECR) && defined(EEL)
615
 170:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** # define eeprom_is_ready() bit_is_clear(DEECR, EEL)
615
 170:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** # define eeprom_is_ready() bit_is_clear(DEECR, EEL)
616
 171:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #else
616
 171:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #else
617
 172:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** # error "No write enable bit known for this device's EEPROM."
617
 172:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** # error "No write enable bit known for this device's EEPROM."
618
 173:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #endif
618
 173:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #endif
619
 174:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
619
 174:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
620
 175:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \def eeprom_busy_wait
620
 175:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \def eeprom_busy_wait
621
 176:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \ingroup avr_eeprom
621
 176:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \ingroup avr_eeprom
622
 177:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
622
 177:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
623
 178:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     Loops until the eeprom is no longer busy.
623
 178:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     Loops until the eeprom is no longer busy.
624
 179:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
624
 179:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
625
 180:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \returns Nothing. */
625
 180:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \returns Nothing. */
626
 181:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
626
 181:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
627
 182:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define eeprom_busy_wait() do {} while (!eeprom_is_ready())
627
 182:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define eeprom_busy_wait() do {} while (!eeprom_is_ready())
628
 183:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
628
 183:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
629
 184:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
629
 184:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
630
 185:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
630
 185:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
631
 186:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     Read one byte from EEPROM address \c addr. */
631
 186:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     Read one byte from EEPROM address \c addr. */
632
 187:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
632
 187:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
633
 188:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** uint8_t 
633
 188:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** uint8_t 
634
 189:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_byte (const uint8_t *addr) 
634
 189:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_byte (const uint8_t *addr) 
635
 190:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
635
 190:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
636
 191:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   uint8_t result;
636
 191:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   uint8_t result;
637
 192:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   asm volatile
637
 192:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   asm volatile
638
 193:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****       ( XCALL " __eeprom_read_byte_" _REG_LOCATION_SUFFIX CR_TAB
638
 193:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****       ( XCALL " __eeprom_read_byte_" _REG_LOCATION_SUFFIX CR_TAB
639
 194:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****         "mov %1,__tmp_reg__"
639
 194:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****         "mov %1,__tmp_reg__"
640
 195:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****        : "+x" (addr),
640
 195:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****        : "+x" (addr),
641
 196:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****          "=r" (result)
641
 196:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****          "=r" (result)
642
 197:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****        : );
642
 197:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****        : );
643
 198:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   return result;
643
 198:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   return result;
644
 199:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** }
644
 199:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** }
645
 200:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
645
 200:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
646
 201:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
646
 201:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
647
 202:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     Read one 16-bit word (little endian) from EEPROM address \c addr. */
647
 202:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     Read one 16-bit word (little endian) from EEPROM address \c addr. */
648
 203:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** uint16_t
648
 203:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** uint16_t
649
 204:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_word (const uint16_t *addr)
649
 204:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_word (const uint16_t *addr)
650
 205:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
650
 205:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
651
 206:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   uint16_t result;
651
 206:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   uint16_t result;
652
 207:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
652
 207:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
653
 208:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   asm ( 
653
 208:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   asm ( 
654
 209:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****         XCALL " __eeprom_read_word_" _REG_LOCATION_SUFFIX CR_TAB
654
 209:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****         XCALL " __eeprom_read_word_" _REG_LOCATION_SUFFIX CR_TAB
655
 210:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****        : "+x" (addr),
655
 210:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****        : "+x" (addr),
656
 211:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****          "=z" (result)
656
 211:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****          "=z" (result)
657
 212:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****        : );
657
 212:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****        : );
658
 213:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   return result;
658
 213:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   return result;
659
 214:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** }
659
 214:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** }
660
 215:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
660
 215:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
661
GAS LISTING /tmp/cc4KZ7ps.s 			page 12
661
GAS LISTING /tmp/cc4KZ7ps.s 			page 12
662
 
662
 
663
 
663
 
664
 216:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
664
 216:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
665
 217:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     Read a block of \c n bytes from EEPROM address \c pointer_eeprom to
665
 217:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     Read a block of \c n bytes from EEPROM address \c pointer_eeprom to
666
 218:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \c pointer_ram.  For constant n <= 256 bytes a library function is used.
666
 218:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \c pointer_ram.  For constant n <= 256 bytes a library function is used.
667
 219:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     For block sizes unknown at compile time or block sizes > 256 an inline
667
 219:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     For block sizes unknown at compile time or block sizes > 256 an inline
668
 220:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     loop is expanded. */
668
 220:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     loop is expanded. */
669
 221:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
669
 221:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
670
 222:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** void 
670
 222:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** void 
671
 223:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_block (void *pointer_ram,
671
 223:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_block (void *pointer_ram,
672
 224:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                    const void *pointer_eeprom,
672
 224:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                    const void *pointer_eeprom,
673
 225:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                    size_t n)
673
 225:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                    size_t n)
674
 226:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
674
 226:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
675
 227:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   if (!__builtin_constant_p (n)
675
 227:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   if (!__builtin_constant_p (n)
676
 228:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****       || n > 256)
676
 228:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****       || n > 256)
677
 229:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     {
677
 229:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     {
678
 230:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****       /* make sure size is a 16 bit variable.  */
678
 230:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****       /* make sure size is a 16 bit variable.  */
679
 231:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****       uint16_t size = n; 
679
 231:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****       uint16_t size = n; 
680
 232:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
680
 232:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
681
 233:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****       asm volatile ( 
681
 233:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****       asm volatile ( 
682
 234:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             ".%=_start:" CR_TAB
682
 234:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             ".%=_start:" CR_TAB
683
 235:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             "sbiw %2,1" CR_TAB
683
 235:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             "sbiw %2,1" CR_TAB
684
 236:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             "brlt .%=_finished" CR_TAB
684
 236:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             "brlt .%=_finished" CR_TAB
685
 237:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****              XCALL " __eeprom_read_byte_" _REG_LOCATION_SUFFIX CR_TAB
685
 237:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****              XCALL " __eeprom_read_byte_" _REG_LOCATION_SUFFIX CR_TAB
686
 238:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             "st z+,__tmp_reg__" CR_TAB
686
 238:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             "st z+,__tmp_reg__" CR_TAB
687
 239:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             "rjmp .%=_start" CR_TAB
687
 239:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             "rjmp .%=_start" CR_TAB
688
 240:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             ".%=_finished:" 
688
 240:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             ".%=_finished:" 
689
 241:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****           : "=x" (pointer_eeprom),
689
 241:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****           : "=x" (pointer_eeprom),
690
 242:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             "=z" (pointer_ram),
690
 242:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             "=z" (pointer_ram),
691
 243:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             "+w" (size)
691
 243:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             "+w" (size)
692
 244:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****            : "x" (pointer_eeprom), 
692
 244:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****            : "x" (pointer_eeprom), 
693
 245:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****              "z" (pointer_ram)
693
 245:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****              "z" (pointer_ram)
694
 246:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****            : "memory");
694
 246:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****            : "memory");
695
 247:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     }
695
 247:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     }
696
 248:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   else
696
 248:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   else
697
 249:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     {
697
 249:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     {
698
 250:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****       if (n != 0)
698
 250:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****       if (n != 0)
699
 251:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****         {
699
 251:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****         {
700
 252:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****           if (n == 256)
700
 252:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****           if (n == 256)
701
 253:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             {
701
 253:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             {
702
 254:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****               asm volatile (
702
 254:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****               asm volatile (
703
 255:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                   XCALL " __eeprom_read_block_" _REG_LOCATION_SUFFIX 
703
 255:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                   XCALL " __eeprom_read_block_" _REG_LOCATION_SUFFIX 
704
 256:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                 : "+x" (pointer_eeprom),
704
 256:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                 : "+x" (pointer_eeprom),
705
 257:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                   "=z" (pointer_ram)
705
 257:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                   "=z" (pointer_ram)
706
 258:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                 : "z"  (pointer_ram)
706
 258:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                 : "z"  (pointer_ram)
707
 259:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                 : "memory");
707
 259:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                 : "memory");
708
 260:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             }
708
 260:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             }
709
 261:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****           else
709
 261:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****           else
710
 262:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             {
710
 262:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             {
711
 263:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****               /* Needed in order to truncate to 8 bit.  */
711
 263:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****               /* Needed in order to truncate to 8 bit.  */
712
 264:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****               uint8_t len;
712
 264:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****               uint8_t len;
713
 265:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****               len = (uint8_t) n; 
713
 265:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****               len = (uint8_t) n; 
714
 266:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
714
 266:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
715
 267:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****               asm volatile (
715
 267:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****               asm volatile (
716
 188               		.stabn	68,0,267,.LM17-CamInt_init
716
 188               		.stabn	68,0,267,.LM17-CamInt_init
717
 189               	.LM17:
717
 189               	.LM17:
718
 190 0054 A1E0      		ldi r26,lo8(1)
718
 190 0054 A1E0      		ldi r26,lo8(1)
719
 191 0056 B0E0      		ldi r27,hi8(1)
719
 191 0056 B0E0      		ldi r27,hi8(1)
720
 192               	/* #APP */
720
 192               	/* #APP */
721
GAS LISTING /tmp/cc4KZ7ps.s 			page 13
721
GAS LISTING /tmp/cc4KZ7ps.s 			page 13
722
 
722
 
723
 
723
 
724
 193 0058 182E      		mov __zero_reg__,r24
724
 193 0058 182E      		mov __zero_reg__,r24
725
 194 005a 00D0      		rcall __eeprom_read_block_1C1D1E
725
 194 005a 00D0      		rcall __eeprom_read_block_1C1D1E
726
 195               	/* #NOAPP */
726
 195               	/* #NOAPP */
727
 196               	.LBE8:
727
 196               	.LBE8:
728
 197               	.LBE7:
728
 197               	.LBE7:
729
 198               	.LBE6:
729
 198               	.LBE6:
730
 199               	/* epilogue: frame size=0 */
730
 199               	/* epilogue: frame size=0 */
731
 200 005c 0895      		ret
731
 200 005c 0895      		ret
732
 201               	/* epilogue end (size=1) */
732
 201               	/* epilogue end (size=1) */
733
 202               	/* function CamInt_init size 48 (47) */
733
 202               	/* function CamInt_init size 48 (47) */
734
 203               		.size	CamInt_init, .-CamInt_init
734
 203               		.size	CamInt_init, .-CamInt_init
735
 204               		.stabs	"pointer_eeprom:r(0,16)=*(0,17)=k(0,15)",64,0,189,26
735
 204               		.stabs	"pointer_eeprom:r(0,16)=*(0,17)=k(0,15)",64,0,189,26
736
 205               		.stabs	"pointer_ram:r(0,18)=*(0,15)",64,0,189,30
736
 205               		.stabs	"pointer_ram:r(0,18)=*(0,15)",64,0,189,30
737
 206               		.stabn	192,0,0,.LBB6-CamInt_init
737
 206               		.stabn	192,0,0,.LBB6-CamInt_init
738
 207               		.stabn	224,0,0,.LBE6-CamInt_init
738
 207               		.stabn	224,0,0,.LBE6-CamInt_init
739
 208               	.Lscope1:
739
 208               	.Lscope1:
740
 209               		.stabs	"",36,0,0,.Lscope1-CamInt_init
740
 209               		.stabs	"",36,0,0,.Lscope1-CamInt_init
741
 210               		.stabd	78,0,0
741
 210               		.stabd	78,0,0
742
 211               		.comm currentLineBuffer,176,1
742
 211               		.comm currentLineBuffer,176,1
743
 212               		.comm previousLineBuffer,176,1
743
 212               		.comm previousLineBuffer,176,1
744
 213               	.global	colorMap
744
 213               	.global	colorMap
745
 214               		.section	.noinit,"aw",@nobits
745
 214               		.section	.noinit,"aw",@nobits
746
 215               		.type	colorMap, @object
746
 215               		.type	colorMap, @object
747
 216               		.size	colorMap, 48
747
 216               		.size	colorMap, 48
748
 217               	colorMap:
748
 217               	colorMap:
749
 218 0000 0000 0000 		.skip 48,0
749
 218 0000 0000 0000 		.skip 48,0
750
 218      0000 0000 
750
 218      0000 0000 
751
 218      0000 0000 
751
 218      0000 0000 
752
 218      0000 0000 
752
 218      0000 0000 
753
 218      0000 0000 
753
 218      0000 0000 
754
 219               		.stabs	"currentLineBuffer:G(0,19)=ar(0,20)=r(0,20);0;0177777;;0;175;(0,11)",32,0,114,0
754
 219               		.stabs	"currentLineBuffer:G(0,19)=ar(0,20)=r(0,20);0;0177777;;0;175;(0,11)",32,0,114,0
755
 220               		.stabs	"previousLineBuffer:G(0,19)",32,0,115,0
755
 220               		.stabs	"previousLineBuffer:G(0,19)",32,0,115,0
756
 221               		.stabs	"colorMap:G(0,21)=ar(0,20);0;47;(0,11)",32,0,100,0
756
 221               		.stabs	"colorMap:G(0,21)=ar(0,20);0;47;(0,11)",32,0,100,0
757
 222               		.text
757
 222               		.text
758
 223               		.stabs	"",100,0,0,.Letext0
758
 223               		.stabs	"",100,0,0,.Letext0
759
 224               	.Letext0:
759
 224               	.Letext0:
760
 225               	/* File "CamInterface.c": code   49 = 0x0031 (  47), prologues   0, epilogues   2 */
760
 225               	/* File "CamInterface.c": code   49 = 0x0031 (  47), prologues   0, epilogues   2 */
761
GAS LISTING /tmp/cc4KZ7ps.s 			page 14
761
GAS LISTING /tmp/cc4KZ7ps.s 			page 14
762
 
762
 
763
 
763
 
764
DEFINED SYMBOLS
764
DEFINED SYMBOLS
765
                            *ABS*:00000000 CamInterface.c
765
                            *ABS*:00000000 CamInterface.c
766
     /tmp/cc4KZ7ps.s:3      *ABS*:0000003f __SREG__
766
     /tmp/cc4KZ7ps.s:3      *ABS*:0000003f __SREG__
767
     /tmp/cc4KZ7ps.s:4      *ABS*:0000003e __SP_H__
767
     /tmp/cc4KZ7ps.s:4      *ABS*:0000003e __SP_H__
768
     /tmp/cc4KZ7ps.s:5      *ABS*:0000003d __SP_L__
768
     /tmp/cc4KZ7ps.s:5      *ABS*:0000003d __SP_L__
769
     /tmp/cc4KZ7ps.s:6      *ABS*:00000000 __tmp_reg__
769
     /tmp/cc4KZ7ps.s:6      *ABS*:00000000 __tmp_reg__
770
     /tmp/cc4KZ7ps.s:7      *ABS*:00000001 __zero_reg__
770
     /tmp/cc4KZ7ps.s:7      *ABS*:00000001 __zero_reg__
771
     /tmp/cc4KZ7ps.s:89     .text:00000000 CamInt_resetCam
771
     /tmp/cc4KZ7ps.s:89     .text:00000000 CamInt_resetCam
772
     /tmp/cc4KZ7ps.s:106    .text:00000002 CamInt_init
772
     /tmp/cc4KZ7ps.s:106    .text:00000002 CamInt_init
773
     /tmp/cc4KZ7ps.s:217    .noinit:00000000 colorMap
773
     /tmp/cc4KZ7ps.s:217    .noinit:00000000 colorMap
774
                            *COM*:000000b0 currentLineBuffer
774
                            *COM*:000000b0 currentLineBuffer
775
                            *COM*:000000b0 previousLineBuffer
775
                            *COM*:000000b0 previousLineBuffer
776
 
776
 
777
UNDEFINED SYMBOLS
777
UNDEFINED SYMBOLS
778
__do_copy_data
778
__do_copy_data
779
__do_clear_bss
779
__do_clear_bss
780
__eeprom_read_block_1C1D1E
780
__eeprom_read_block_1C1D1E