182 |
kaklik |
1 |
GAS LISTING /tmp/ccRvT1Qm.s page 1
|
151 |
kaklik |
2 |
|
|
|
3 |
|
|
|
4 |
1 .file "UIMgr.c"
|
|
|
5 |
2 .arch atmega8
|
|
|
6 |
3 __SREG__ = 0x3f
|
|
|
7 |
4 __SP_H__ = 0x3e
|
|
|
8 |
5 __SP_L__ = 0x3d
|
|
|
9 |
6 __tmp_reg__ = 0
|
|
|
10 |
7 __zero_reg__ = 1
|
|
|
11 |
8 .global __do_copy_data
|
|
|
12 |
9 .global __do_clear_bss
|
174 |
kaklik |
13 |
10 .stabs "/home/kaklik/projects/programy/Atmel_C/AVRcam/",100,0,2,.Ltext0
|
151 |
kaklik |
14 |
11 .stabs "UIMgr.c",100,0,2,.Ltext0
|
|
|
15 |
12 .text
|
|
|
16 |
13 .Ltext0:
|
|
|
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
|
|
|
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
|
|
|
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
|
|
|
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
|
|
|
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
|
|
|
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
|
|
|
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
|
|
|
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
|
|
|
33 |
30 .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/sfr_defs.h",130,0,0,0
|
|
|
35 |
32 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/inttypes.h",130,0,0,0
|
|
|
36 |
33 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/stdint.h",130,0,0,0
|
|
|
37 |
34 .stabs "int8_t:t(4,1)=(0,10)",128,0,116,0
|
|
|
38 |
35 .stabs "uint8_t:t(4,2)=(0,11)",128,0,117,0
|
|
|
39 |
36 .stabs "int16_t:t(4,3)=(0,1)",128,0,118,0
|
|
|
40 |
37 .stabs "uint16_t:t(4,4)=(0,4)",128,0,119,0
|
|
|
41 |
38 .stabs "int32_t:t(4,5)=(0,3)",128,0,120,0
|
|
|
42 |
39 .stabs "uint32_t:t(4,6)=(0,5)",128,0,121,0
|
|
|
43 |
40 .stabs "int64_t:t(4,7)=(0,6)",128,0,122,0
|
|
|
44 |
41 .stabs "uint64_t:t(4,8)=(0,7)",128,0,123,0
|
|
|
45 |
42 .stabs "intptr_t:t(4,9)=(4,3)",128,0,135,0
|
|
|
46 |
43 .stabs "uintptr_t:t(4,10)=(4,4)",128,0,140,0
|
|
|
47 |
44 .stabs "int_least8_t:t(4,11)=(4,1)",128,0,152,0
|
|
|
48 |
45 .stabs "uint_least8_t:t(4,12)=(4,2)",128,0,157,0
|
|
|
49 |
46 .stabs "int_least16_t:t(4,13)=(4,3)",128,0,162,0
|
|
|
50 |
47 .stabs "uint_least16_t:t(4,14)=(4,4)",128,0,167,0
|
|
|
51 |
48 .stabs "int_least32_t:t(4,15)=(4,5)",128,0,172,0
|
|
|
52 |
49 .stabs "uint_least32_t:t(4,16)=(4,6)",128,0,177,0
|
|
|
53 |
50 .stabs "int_least64_t:t(4,17)=(4,7)",128,0,182,0
|
|
|
54 |
51 .stabs "uint_least64_t:t(4,18)=(4,8)",128,0,187,0
|
|
|
55 |
52 .stabs "int_fast8_t:t(4,19)=(4,1)",128,0,200,0
|
|
|
56 |
53 .stabs "uint_fast8_t:t(4,20)=(4,2)",128,0,205,0
|
|
|
57 |
54 .stabs "int_fast16_t:t(4,21)=(4,3)",128,0,210,0
|
|
|
58 |
55 .stabs "uint_fast16_t:t(4,22)=(4,4)",128,0,215,0
|
|
|
59 |
56 .stabs "int_fast32_t:t(4,23)=(4,5)",128,0,220,0
|
|
|
60 |
57 .stabs "uint_fast32_t:t(4,24)=(4,6)",128,0,225,0
|
182 |
kaklik |
61 |
GAS LISTING /tmp/ccRvT1Qm.s page 2
|
151 |
kaklik |
62 |
|
|
|
63 |
|
|
|
64 |
58 .stabs "int_fast64_t:t(4,25)=(4,7)",128,0,230,0
|
|
|
65 |
59 .stabs "uint_fast64_t:t(4,26)=(4,8)",128,0,235,0
|
|
|
66 |
60 .stabs "intmax_t:t(4,27)=(4,7)",128,0,249,0
|
|
|
67 |
61 .stabs "uintmax_t:t(4,28)=(4,8)",128,0,254,0
|
|
|
68 |
62 .stabn 162,0,0,0
|
|
|
69 |
63 .stabs "int_farptr_t:t(3,1)=(4,5)",128,0,76,0
|
|
|
70 |
64 .stabs "uint_farptr_t:t(3,2)=(4,6)",128,0,80,0
|
|
|
71 |
65 .stabn 162,0,0,0
|
|
|
72 |
66 .stabn 162,0,0,0
|
|
|
73 |
67 .stabn 162,0,0,0
|
|
|
74 |
68 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/stdlib.h",130,0,0,0
|
|
|
75 |
69 .stabs "/usr/lib/gcc/avr/4.1.0/include/stddef.h",130,0,0,0
|
|
|
76 |
70 .stabs "size_t:t(6,1)=(0,4)",128,0,214,0
|
|
|
77 |
71 .stabs "wchar_t:t(6,2)=(0,1)",128,0,326,0
|
|
|
78 |
72 .stabn 162,0,0,0
|
|
|
79 |
73 .stabs "div_t:t(5,1)=(5,2)=s4quot:(0,1),0,16;rem:(0,1),16,16;;",128,0,69,0
|
|
|
80 |
74 .stabs "ldiv_t:t(5,3)=(5,4)=s8quot:(0,3),0,32;rem:(0,3),32,32;;",128,0,75,0
|
|
|
81 |
75 .stabs "__compar_fn_t:t(5,5)=(5,6)=*(5,7)=f(0,1)",128,0,78,0
|
|
|
82 |
76 .stabn 162,0,0,0
|
|
|
83 |
77 .stabs "CommonDefs.h",130,0,0,0
|
|
|
84 |
78 .stabs "bool_t:t(7,1)=(0,11)",128,0,56,0
|
|
|
85 |
79 .stabn 162,0,0,0
|
|
|
86 |
80 .stabs "CamConfig.h",130,0,0,0
|
|
|
87 |
81 .stabs "I2CInterface.h",130,0,0,0
|
|
|
88 |
82 .stabs "i2cCmd_t:t(9,1)=(9,2)=s2configReg:(0,11),0,8;data:(0,11),8,8;;",128,0,53,0
|
|
|
89 |
83 .stabn 162,0,0,0
|
|
|
90 |
84 .stabn 162,0,0,0
|
|
|
91 |
85 .stabs " :T(0,16)=@s8;egetVersionCmd:0,pingCmd:1,setCameraRegsCmd:2,dumpFrameCmd:3,enableTrackingC
|
|
|
92 |
86 .stabs "UIMgr_Cmd_t:t(0,17)=(0,16)",128,0,81,0
|
|
|
93 |
87 .stabs " :T(0,18)=@s8;esetRed:0,setGreen:1,setBlue:2,;",128,0,0,0
|
|
|
94 |
88 .stabs "setColorState_t:t(0,19)=(0,18)",128,0,88,0
|
|
|
95 |
89 .stabs "UIMgr_writeBufferToTxFifo:F(0,15)",36,0,547,UIMgr_writeBufferToTxFifo
|
|
|
96 |
90 .stabs "pData:P(0,20)=*(0,11)",64,0,546,26
|
|
|
97 |
91 .stabs "length:P(0,11)",64,0,546,24
|
|
|
98 |
92 .global UIMgr_writeBufferToTxFifo
|
|
|
99 |
93 .type UIMgr_writeBufferToTxFifo, @function
|
|
|
100 |
94 UIMgr_writeBufferToTxFifo:
|
|
|
101 |
95 .stabd 46,0,0
|
|
|
102 |
1:UIMgr.c **** /*
|
|
|
103 |
2:UIMgr.c **** Copyright (C) 2004 John Orlando
|
|
|
104 |
3:UIMgr.c ****
|
|
|
105 |
4:UIMgr.c **** AVRcam: a small real-time image processing engine.
|
|
|
106 |
5:UIMgr.c ****
|
|
|
107 |
6:UIMgr.c **** This program is free software; you can redistribute it and/or
|
|
|
108 |
7:UIMgr.c **** modify it under the terms of the GNU General Public
|
|
|
109 |
8:UIMgr.c **** License as published by the Free Software Foundation; either
|
|
|
110 |
9:UIMgr.c **** version 2 of the License, or (at your option) any later version.
|
|
|
111 |
10:UIMgr.c ****
|
|
|
112 |
11:UIMgr.c **** This program is distributed in the hope that it will be useful,
|
|
|
113 |
12:UIMgr.c **** but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
114 |
13:UIMgr.c **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
115 |
14:UIMgr.c **** General Public License for more details.
|
|
|
116 |
15:UIMgr.c ****
|
|
|
117 |
16:UIMgr.c **** You should have received a copy of the GNU General Public
|
|
|
118 |
17:UIMgr.c **** License along with this program; if not, write to the Free Software
|
|
|
119 |
18:UIMgr.c **** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
120 |
19:UIMgr.c ****
|
182 |
kaklik |
121 |
GAS LISTING /tmp/ccRvT1Qm.s page 3
|
151 |
kaklik |
122 |
|
|
|
123 |
|
|
|
124 |
20:UIMgr.c **** For more information on the AVRcam, please contact:
|
|
|
125 |
21:UIMgr.c ****
|
|
|
126 |
22:UIMgr.c **** john@jrobot.net
|
|
|
127 |
23:UIMgr.c ****
|
|
|
128 |
24:UIMgr.c **** or go to www.jrobot.net for more details regarding the system.
|
|
|
129 |
25:UIMgr.c **** */
|
|
|
130 |
26:UIMgr.c **** /***********************************************************
|
|
|
131 |
27:UIMgr.c **** Module Name: UIMgr.c
|
|
|
132 |
28:UIMgr.c **** Module Date: 04/10/2004
|
|
|
133 |
29:UIMgr.c **** Module Auth: John Orlando
|
|
|
134 |
30:UIMgr.c ****
|
|
|
135 |
31:UIMgr.c **** Description: This module is responsible for providing
|
|
|
136 |
32:UIMgr.c **** the processing to manage the user interface of the
|
|
|
137 |
33:UIMgr.c **** system. This user interface is provided via the UART.
|
|
|
138 |
34:UIMgr.c **** This module handles the incoming serial commands, and
|
|
|
139 |
35:UIMgr.c **** performs the needed functionality. It is then
|
|
|
140 |
36:UIMgr.c **** responsible for generating any needed response to
|
|
|
141 |
37:UIMgr.c **** the external entity.
|
|
|
142 |
38:UIMgr.c ****
|
|
|
143 |
39:UIMgr.c **** Revision History:
|
|
|
144 |
40:UIMgr.c **** Date Rel Ver. Notes
|
|
|
145 |
41:UIMgr.c **** 4/10/2004 0.1 Module created
|
|
|
146 |
42:UIMgr.c **** 6/30/2004 1.0 Initial release for Circuit Cellar
|
|
|
147 |
43:UIMgr.c **** contest.
|
|
|
148 |
44:UIMgr.c **** 11/15/2004 1.2 Updated version string to 1.2.
|
|
|
149 |
45:UIMgr.c **** 1/16/2005 1.4 Added code to write the colorMap
|
|
|
150 |
46:UIMgr.c **** to EEPROM one byte at a time,
|
|
|
151 |
47:UIMgr.c **** ensuring that the EEPROM is only
|
|
|
152 |
48:UIMgr.c **** written when the data is different
|
|
|
153 |
49:UIMgr.c **** than the current value (thus saving
|
|
|
154 |
50:UIMgr.c **** EEPROM writes). Updated version
|
|
|
155 |
51:UIMgr.c **** string to 1.4.
|
|
|
156 |
52:UIMgr.c **** ***********************************************************/
|
|
|
157 |
53:UIMgr.c ****
|
|
|
158 |
54:UIMgr.c **** /* Includes */
|
|
|
159 |
55:UIMgr.c **** #include <avr/io.h>
|
|
|
160 |
56:UIMgr.c **** #include <stdlib.h>
|
|
|
161 |
57:UIMgr.c **** #include <string.h>
|
|
|
162 |
58:UIMgr.c **** #include <avr/eeprom.h>
|
|
|
163 |
59:UIMgr.c **** #include "CommonDefs.h"
|
|
|
164 |
60:UIMgr.c **** #include "UIMgr.h"
|
|
|
165 |
61:UIMgr.c **** #include "UartInterface.h"
|
|
|
166 |
62:UIMgr.c **** #include "CamConfig.h"
|
|
|
167 |
63:UIMgr.c **** #include "Utility.h"
|
|
|
168 |
64:UIMgr.c **** #include "Executive.h"
|
|
|
169 |
65:UIMgr.c **** #include "CamInterface.h"
|
|
|
170 |
66:UIMgr.c ****
|
|
|
171 |
67:UIMgr.c **** /* Local Structures and Typedefs */
|
|
|
172 |
68:UIMgr.c ****
|
|
|
173 |
69:UIMgr.c **** typedef enum
|
|
|
174 |
70:UIMgr.c **** {
|
|
|
175 |
71:UIMgr.c **** getVersionCmd,
|
|
|
176 |
72:UIMgr.c **** pingCmd,
|
|
|
177 |
73:UIMgr.c **** setCameraRegsCmd,
|
|
|
178 |
74:UIMgr.c **** dumpFrameCmd,
|
|
|
179 |
75:UIMgr.c **** enableTrackingCmd,
|
|
|
180 |
76:UIMgr.c **** disableTrackingCmd,
|
182 |
kaklik |
181 |
GAS LISTING /tmp/ccRvT1Qm.s page 4
|
151 |
kaklik |
182 |
|
|
|
183 |
|
|
|
184 |
77:UIMgr.c **** setColorMapCmd,
|
|
|
185 |
78:UIMgr.c **** resetCameraCmd,
|
|
|
186 |
79:UIMgr.c **** noCmd,
|
|
|
187 |
80:UIMgr.c **** invalidCmd
|
|
|
188 |
81:UIMgr.c **** } UIMgr_Cmd_t;
|
|
|
189 |
82:UIMgr.c ****
|
|
|
190 |
83:UIMgr.c **** typedef enum
|
|
|
191 |
84:UIMgr.c **** {
|
|
|
192 |
85:UIMgr.c **** setRed,
|
|
|
193 |
86:UIMgr.c **** setGreen,
|
|
|
194 |
87:UIMgr.c **** setBlue
|
|
|
195 |
88:UIMgr.c **** } setColorState_t;
|
|
|
196 |
89:UIMgr.c ****
|
|
|
197 |
90:UIMgr.c ****
|
|
|
198 |
91:UIMgr.c **** /* Local Variables */
|
|
|
199 |
92:UIMgr.c **** static unsigned char charCount = 0;
|
|
|
200 |
93:UIMgr.c **** static unsigned char charIndex = 0;
|
|
|
201 |
94:UIMgr.c **** static unsigned char asciiTokenBuffer[MAX_TOKEN_LENGTH+1]; /* +1 to ensure NULL at end */
|
|
|
202 |
95:UIMgr.c **** static unsigned char tokenCount = 0;
|
|
|
203 |
96:UIMgr.c **** static unsigned char tokenBuffer[MAX_TOKEN_COUNT];
|
|
|
204 |
97:UIMgr.c **** static UIMgr_Cmd_t receivedCmd = noCmd;
|
|
|
205 |
98:UIMgr.c **** static unsigned char AVRcamVersion[] = "AVRcam v1.4\r";
|
|
|
206 |
99:UIMgr.c ****
|
|
|
207 |
100:UIMgr.c **** /* Local Function Declaration */
|
|
|
208 |
101:UIMgr.c **** static unsigned char UIMgr_readRxFifo(void);
|
|
|
209 |
102:UIMgr.c **** static unsigned char UIMgr_readTxFifo(void);
|
|
|
210 |
103:UIMgr.c **** static unsigned char UIMgr_readRxFifo(void);
|
|
|
211 |
104:UIMgr.c **** static void UIMgr_sendNck(void);
|
|
|
212 |
105:UIMgr.c **** static void UIMgr_sendAck(void);
|
|
|
213 |
106:UIMgr.c **** static void UIMgr_convertTokenToCmd(void);
|
|
|
214 |
107:UIMgr.c **** static void UIMgr_convertTokenToValue(void);
|
|
|
215 |
108:UIMgr.c **** static void UIMgr_executeCmd(void);
|
|
|
216 |
109:UIMgr.c ****
|
|
|
217 |
110:UIMgr.c **** /* Extern Variables */
|
|
|
218 |
111:UIMgr.c **** unsigned char UIMgr_rxFifo[UI_MGR_RX_FIFO_SIZE];
|
|
|
219 |
112:UIMgr.c **** unsigned char UIMgr_rxFifoHead=0;
|
|
|
220 |
113:UIMgr.c **** unsigned char UIMgr_rxFifoTail=0;
|
|
|
221 |
114:UIMgr.c ****
|
|
|
222 |
115:UIMgr.c **** unsigned char UIMgr_txFifo[UI_MGR_TX_FIFO_SIZE];
|
|
|
223 |
116:UIMgr.c **** unsigned char UIMgr_txFifoHead=0;
|
|
|
224 |
117:UIMgr.c **** unsigned char UIMgr_txFifoTail=0;
|
|
|
225 |
118:UIMgr.c ****
|
|
|
226 |
119:UIMgr.c **** /* Definitions */
|
|
|
227 |
120:UIMgr.c **** #define IS_DATA_IN_TX_FIFO() (!(UIMgr_txFifoHead == UIMgr_txFifoTail))
|
|
|
228 |
121:UIMgr.c **** #define IS_DATA_IN_RX_FIFO() (!(UIMgr_rxFifoHead == UIMgr_rxFifoTail))
|
|
|
229 |
122:UIMgr.c ****
|
|
|
230 |
123:UIMgr.c **** /* MAX_EEPROM_WRITE_ATTEMPTS limits the number of writes that can be
|
|
|
231 |
124:UIMgr.c **** done to a particular EEPROM cell, so that it can't possible just
|
|
|
232 |
125:UIMgr.c **** write to the same cell over and over */
|
|
|
233 |
126:UIMgr.c **** #define MAX_EEPROM_WRITE_ATTEMPTS 3
|
|
|
234 |
127:UIMgr.c ****
|
|
|
235 |
128:UIMgr.c **** /***********************************************************
|
|
|
236 |
129:UIMgr.c **** Function Name: UIMgr_init
|
|
|
237 |
130:UIMgr.c **** Function Description: This function is responsible for
|
|
|
238 |
131:UIMgr.c **** initializing the UIMgr module. It sets up the fifo
|
|
|
239 |
132:UIMgr.c **** used to hold incoming data, etc.
|
|
|
240 |
133:UIMgr.c **** Inputs: none
|
182 |
kaklik |
241 |
GAS LISTING /tmp/ccRvT1Qm.s page 5
|
151 |
kaklik |
242 |
|
|
|
243 |
|
|
|
244 |
134:UIMgr.c **** Outputs: none
|
|
|
245 |
135:UIMgr.c **** ***********************************************************/
|
|
|
246 |
136:UIMgr.c **** void UIMgr_init(void)
|
|
|
247 |
137:UIMgr.c **** {
|
|
|
248 |
138:UIMgr.c **** memset(asciiTokenBuffer,0x00,MAX_TOKEN_LENGTH+1);
|
|
|
249 |
139:UIMgr.c **** memset(tokenBuffer,0x00,MAX_TOKEN_COUNT);
|
|
|
250 |
140:UIMgr.c **** memset(UIMgr_txFifo,0x00,UI_MGR_TX_FIFO_SIZE);
|
|
|
251 |
141:UIMgr.c **** memset(UIMgr_rxFifo,0x00,UI_MGR_RX_FIFO_SIZE);
|
|
|
252 |
142:UIMgr.c **** }
|
|
|
253 |
143:UIMgr.c ****
|
|
|
254 |
144:UIMgr.c **** /***********************************************************
|
|
|
255 |
145:UIMgr.c **** Function Name: UIMgr_dispatchEvent
|
|
|
256 |
146:UIMgr.c **** Function Description: This function is responsible for
|
|
|
257 |
147:UIMgr.c **** processing events that pertain to the UIMgr.
|
|
|
258 |
148:UIMgr.c **** Inputs: event - the generated event
|
|
|
259 |
149:UIMgr.c **** Outputs: none
|
|
|
260 |
150:UIMgr.c **** ***********************************************************/
|
|
|
261 |
151:UIMgr.c **** void UIMgr_dispatchEvent(unsigned char event)
|
|
|
262 |
152:UIMgr.c **** {
|
|
|
263 |
153:UIMgr.c **** switch(event)
|
|
|
264 |
154:UIMgr.c **** {
|
|
|
265 |
155:UIMgr.c **** case EV_ACQUIRE_LINE_COMPLETE:
|
|
|
266 |
156:UIMgr.c **** UIMgr_transmitPendingData();
|
|
|
267 |
157:UIMgr.c **** break;
|
|
|
268 |
158:UIMgr.c ****
|
|
|
269 |
159:UIMgr.c **** case EV_SERIAL_DATA_RECEIVED:
|
|
|
270 |
160:UIMgr.c **** UIMgr_processReceivedData();
|
|
|
271 |
161:UIMgr.c **** break;
|
|
|
272 |
162:UIMgr.c ****
|
|
|
273 |
163:UIMgr.c **** case EV_SERIAL_DATA_PENDING_TX:
|
|
|
274 |
164:UIMgr.c **** UIMgr_flushTxBuffer();
|
|
|
275 |
165:UIMgr.c **** break;
|
|
|
276 |
166:UIMgr.c **** }
|
|
|
277 |
167:UIMgr.c **** }
|
|
|
278 |
168:UIMgr.c **** /***********************************************************
|
|
|
279 |
169:UIMgr.c **** Function Name: UIMgr_transmitPendingData
|
|
|
280 |
170:UIMgr.c **** Function Description: This function is responsible for
|
|
|
281 |
171:UIMgr.c **** transmitting a single byte of data if data is waiting
|
|
|
282 |
172:UIMgr.c **** to be sent. Otherwise, if nothing is waiting, the
|
|
|
283 |
173:UIMgr.c **** function just returns.
|
|
|
284 |
174:UIMgr.c **** Inputs: none
|
|
|
285 |
175:UIMgr.c **** Outputs: none
|
|
|
286 |
176:UIMgr.c **** ***********************************************************/
|
|
|
287 |
177:UIMgr.c **** void UIMgr_transmitPendingData(void)
|
|
|
288 |
178:UIMgr.c **** {
|
|
|
289 |
179:UIMgr.c **** if (IS_DATA_IN_TX_FIFO() == TRUE)
|
|
|
290 |
180:UIMgr.c **** {
|
|
|
291 |
181:UIMgr.c **** /* data is waiting...send a single byte */
|
|
|
292 |
182:UIMgr.c **** UartInt_txByte( UIMgr_readTxFifo() );
|
|
|
293 |
183:UIMgr.c **** }
|
|
|
294 |
184:UIMgr.c **** }
|
|
|
295 |
185:UIMgr.c **** /***********************************************************
|
|
|
296 |
186:UIMgr.c **** Function Name: UIMgr_processReceivedData
|
|
|
297 |
187:UIMgr.c **** Function Description: This function is responsible for
|
|
|
298 |
188:UIMgr.c **** parsing any serial data waiting in the rx fifo
|
|
|
299 |
189:UIMgr.c **** Inputs: none
|
|
|
300 |
190:UIMgr.c **** Outputs: none
|
182 |
kaklik |
301 |
GAS LISTING /tmp/ccRvT1Qm.s page 6
|
151 |
kaklik |
302 |
|
|
|
303 |
|
|
|
304 |
191:UIMgr.c **** ***********************************************************/
|
|
|
305 |
192:UIMgr.c **** void UIMgr_processReceivedData(void)
|
|
|
306 |
193:UIMgr.c **** {
|
|
|
307 |
194:UIMgr.c **** unsigned char tmpData = 0;
|
|
|
308 |
195:UIMgr.c ****
|
|
|
309 |
196:UIMgr.c **** /* still need to add a mechanism to handle token counts
|
|
|
310 |
197:UIMgr.c **** that are excessive!!! FIX ME!!! */
|
|
|
311 |
198:UIMgr.c ****
|
|
|
312 |
199:UIMgr.c **** while(IS_DATA_IN_RX_FIFO() == TRUE)
|
|
|
313 |
200:UIMgr.c **** {
|
|
|
314 |
201:UIMgr.c **** tmpData = UIMgr_readRxFifo();
|
|
|
315 |
202:UIMgr.c **** if (tmpData == '\r')
|
|
|
316 |
203:UIMgr.c **** {
|
|
|
317 |
204:UIMgr.c **** /* we have reached a token separator */
|
|
|
318 |
205:UIMgr.c **** if (tokenCount == 0)
|
|
|
319 |
206:UIMgr.c **** {
|
|
|
320 |
207:UIMgr.c **** /* convert the command */
|
|
|
321 |
208:UIMgr.c **** UIMgr_convertTokenToCmd();
|
|
|
322 |
209:UIMgr.c **** }
|
|
|
323 |
210:UIMgr.c **** else
|
|
|
324 |
211:UIMgr.c **** {
|
|
|
325 |
212:UIMgr.c **** /* convert a value */
|
|
|
326 |
213:UIMgr.c **** UIMgr_convertTokenToValue();
|
|
|
327 |
214:UIMgr.c **** tokenCount++;
|
|
|
328 |
215:UIMgr.c **** }
|
|
|
329 |
216:UIMgr.c **** /* either way, it is time to try to process the received
|
|
|
330 |
217:UIMgr.c **** token list since we have reached the end of the cmd. */
|
|
|
331 |
218:UIMgr.c **** Utility_delay(100);
|
|
|
332 |
219:UIMgr.c **** if (receivedCmd == invalidCmd ||
|
|
|
333 |
220:UIMgr.c **** receivedCmd == noCmd )
|
|
|
334 |
221:UIMgr.c **** {
|
|
|
335 |
222:UIMgr.c **** UIMgr_sendNck();
|
|
|
336 |
223:UIMgr.c **** PUBLISH_EVENT(EV_SERIAL_DATA_PENDING_TX);
|
|
|
337 |
224:UIMgr.c **** }
|
|
|
338 |
225:UIMgr.c **** else
|
|
|
339 |
226:UIMgr.c **** {
|
|
|
340 |
227:UIMgr.c **** UIMgr_sendAck();
|
|
|
341 |
228:UIMgr.c **** /* publish the serial data pending event, so it
|
|
|
342 |
229:UIMgr.c **** will push the ACK out before we execute the cmd */
|
|
|
343 |
230:UIMgr.c **** PUBLISH_EVENT(EV_SERIAL_DATA_PENDING_TX);
|
|
|
344 |
231:UIMgr.c **** UIMgr_executeCmd();
|
|
|
345 |
232:UIMgr.c **** }
|
|
|
346 |
233:UIMgr.c ****
|
|
|
347 |
234:UIMgr.c **** /* reset any necessary data */
|
|
|
348 |
235:UIMgr.c **** tokenCount = 0;
|
|
|
349 |
236:UIMgr.c **** memset(tokenBuffer,0x00,MAX_TOKEN_COUNT);
|
|
|
350 |
237:UIMgr.c **** }
|
|
|
351 |
238:UIMgr.c **** else if (tmpData == ' ') /* space char */
|
|
|
352 |
239:UIMgr.c **** {
|
|
|
353 |
240:UIMgr.c **** /* the end of a token has been reached */
|
|
|
354 |
241:UIMgr.c **** if (tokenCount == 0)
|
|
|
355 |
242:UIMgr.c **** {
|
|
|
356 |
243:UIMgr.c **** UIMgr_convertTokenToCmd();
|
|
|
357 |
244:UIMgr.c **** tokenCount++; /* check this...why is this being incremented here??? This
|
|
|
358 |
245:UIMgr.c **** means we have received a token, with tokenCount == 0, which means it is a
|
|
|
359 |
246:UIMgr.c **** command...why is this contributing to tokenCount?
|
|
|
360 |
247:UIMgr.c **** This might cause the set color map command to include too much data, since
|
182 |
kaklik |
361 |
GAS LISTING /tmp/ccRvT1Qm.s page 7
|
151 |
kaklik |
362 |
|
|
|
363 |
|
|
|
364 |
248:UIMgr.c **** it sets the color map based on tokenCount...CHECK*/
|
|
|
365 |
249:UIMgr.c **** }
|
|
|
366 |
250:UIMgr.c **** else
|
|
|
367 |
251:UIMgr.c **** {
|
|
|
368 |
252:UIMgr.c **** /* check to see if this token is going to push
|
|
|
369 |
253:UIMgr.c **** us over the limit...if so, abort the transaction */
|
|
|
370 |
254:UIMgr.c **** if (tokenCount+1 >= MAX_TOKEN_COUNT)
|
|
|
371 |
255:UIMgr.c **** {
|
|
|
372 |
256:UIMgr.c **** /* we received too many tokens, and
|
|
|
373 |
257:UIMgr.c **** need to NCK this request, since its too
|
|
|
374 |
258:UIMgr.c **** large...reset everything...*/
|
|
|
375 |
259:UIMgr.c **** charCount=0;
|
|
|
376 |
260:UIMgr.c **** charIndex=0;
|
|
|
377 |
261:UIMgr.c **** tokenCount=0;
|
|
|
378 |
262:UIMgr.c **** receivedCmd = invalidCmd;
|
|
|
379 |
263:UIMgr.c **** }
|
|
|
380 |
264:UIMgr.c **** else
|
|
|
381 |
265:UIMgr.c **** {
|
|
|
382 |
266:UIMgr.c **** /* tokenCount is still in range...*/
|
|
|
383 |
267:UIMgr.c **** UIMgr_convertTokenToValue();
|
|
|
384 |
268:UIMgr.c **** tokenCount++;
|
|
|
385 |
269:UIMgr.c **** }
|
|
|
386 |
270:UIMgr.c **** }
|
|
|
387 |
271:UIMgr.c **** }
|
|
|
388 |
272:UIMgr.c **** else if ( (tmpData >= 'A' && tmpData <= 'Z') ||
|
|
|
389 |
273:UIMgr.c **** (tmpData >= '0' && tmpData <= '9') )
|
|
|
390 |
274:UIMgr.c **** {
|
|
|
391 |
275:UIMgr.c **** /* a valid range of token was received */
|
|
|
392 |
276:UIMgr.c **** asciiTokenBuffer[charIndex] = tmpData;
|
|
|
393 |
277:UIMgr.c **** charCount++;
|
|
|
394 |
278:UIMgr.c **** charIndex++;
|
|
|
395 |
279:UIMgr.c **** if (charCount > MAX_TOKEN_LENGTH)
|
|
|
396 |
280:UIMgr.c **** {
|
|
|
397 |
281:UIMgr.c **** /* we have received a token that cannot be handled...
|
|
|
398 |
282:UIMgr.c **** set the received cmd to an invalid cmd, and wait
|
|
|
399 |
283:UIMgr.c **** for the \r to process it */
|
|
|
400 |
284:UIMgr.c **** receivedCmd = invalidCmd;
|
|
|
401 |
285:UIMgr.c **** charIndex = 0; /* ...so we won't overwrite memory */
|
|
|
402 |
286:UIMgr.c **** }
|
|
|
403 |
287:UIMgr.c **** }
|
|
|
404 |
288:UIMgr.c **** else
|
|
|
405 |
289:UIMgr.c **** {
|
|
|
406 |
290:UIMgr.c **** /* an invalid character was received */
|
|
|
407 |
291:UIMgr.c **** receivedCmd = invalidCmd;
|
|
|
408 |
292:UIMgr.c **** }
|
|
|
409 |
293:UIMgr.c **** } /* end while */
|
|
|
410 |
294:UIMgr.c ****
|
|
|
411 |
295:UIMgr.c **** asm volatile("clt"::); /* clear out the T flag in case it wasn't
|
|
|
412 |
296:UIMgr.c **** cleared already */
|
|
|
413 |
297:UIMgr.c **** }
|
|
|
414 |
298:UIMgr.c ****
|
|
|
415 |
299:UIMgr.c **** /***********************************************************
|
|
|
416 |
300:UIMgr.c **** Function Name: UIMgr_executeCmd
|
|
|
417 |
301:UIMgr.c **** Function Description: This function is responsible for
|
|
|
418 |
302:UIMgr.c **** executing whatever cmd is stored in the receivedCmd
|
|
|
419 |
303:UIMgr.c **** object.
|
|
|
420 |
304:UIMgr.c **** Inputs: none
|
182 |
kaklik |
421 |
GAS LISTING /tmp/ccRvT1Qm.s page 8
|
151 |
kaklik |
422 |
|
|
|
423 |
|
|
|
424 |
305:UIMgr.c **** Outputs: none
|
|
|
425 |
306:UIMgr.c **** ***********************************************************/
|
|
|
426 |
307:UIMgr.c **** static void UIMgr_executeCmd(void)
|
|
|
427 |
308:UIMgr.c **** {
|
|
|
428 |
309:UIMgr.c **** unsigned char i,eepromData, num_writes=0;
|
|
|
429 |
310:UIMgr.c **** unsigned char *pData;
|
|
|
430 |
311:UIMgr.c **** unsigned char eeprom_write_succeeded = FALSE;
|
|
|
431 |
312:UIMgr.c **** #if DEBUG_COLOR_MAP
|
|
|
432 |
313:UIMgr.c **** unsigned char asciiBuffer[5];
|
|
|
433 |
314:UIMgr.c **** #endif
|
|
|
434 |
315:UIMgr.c ****
|
|
|
435 |
316:UIMgr.c **** if (receivedCmd == pingCmd)
|
|
|
436 |
317:UIMgr.c **** {
|
|
|
437 |
318:UIMgr.c **** }
|
|
|
438 |
319:UIMgr.c **** else if (receivedCmd == getVersionCmd)
|
|
|
439 |
320:UIMgr.c **** {
|
|
|
440 |
321:UIMgr.c **** pData = AVRcamVersion;
|
|
|
441 |
322:UIMgr.c **** while(*pData != 0)
|
|
|
442 |
323:UIMgr.c **** {
|
|
|
443 |
324:UIMgr.c **** UIMgr_writeTxFifo(*pData++);
|
|
|
444 |
325:UIMgr.c **** }
|
|
|
445 |
326:UIMgr.c **** }
|
|
|
446 |
327:UIMgr.c **** else if (receivedCmd == resetCameraCmd)
|
|
|
447 |
328:UIMgr.c **** {
|
|
|
448 |
329:UIMgr.c **** CamInt_resetCam();
|
|
|
449 |
330:UIMgr.c **** }
|
|
|
450 |
331:UIMgr.c **** else if (receivedCmd == dumpFrameCmd)
|
|
|
451 |
332:UIMgr.c **** {
|
|
|
452 |
333:UIMgr.c **** /* publish the event that will indicate that
|
|
|
453 |
334:UIMgr.c **** a request has come to dump a frame...this will
|
|
|
454 |
335:UIMgr.c **** be received by the FrameMgr, which will begin
|
|
|
455 |
336:UIMgr.c **** dumping the frame...a short delay is needed
|
|
|
456 |
337:UIMgr.c **** here to keep the Java demo app happy (sometimes
|
|
|
457 |
338:UIMgr.c **** it wouldn't be able to receive the serial data
|
|
|
458 |
339:UIMgr.c **** as quickly as AVRcam can provide it). */
|
|
|
459 |
340:UIMgr.c **** Utility_delay(100);
|
|
|
460 |
341:UIMgr.c **** PUBLISH_EVENT(EV_DUMP_FRAME);
|
|
|
461 |
342:UIMgr.c **** }
|
|
|
462 |
343:UIMgr.c **** else if (receivedCmd == setCameraRegsCmd)
|
|
|
463 |
344:UIMgr.c **** {
|
|
|
464 |
345:UIMgr.c **** /* we need to gather the tokens and
|
|
|
465 |
346:UIMgr.c **** build config cmds to be sent to the camera */
|
|
|
466 |
347:UIMgr.c **** for (i=1; i<tokenCount; i+=2) /* starts at 1 since first token
|
|
|
467 |
348:UIMgr.c **** is the CR cmd */
|
|
|
468 |
349:UIMgr.c **** {
|
|
|
469 |
350:UIMgr.c **** CamConfig_setCamReg(tokenBuffer[i],tokenBuffer[i+1]);
|
|
|
470 |
351:UIMgr.c **** }
|
|
|
471 |
352:UIMgr.c **** CamConfig_sendFifoCmds();
|
|
|
472 |
353:UIMgr.c **** }
|
|
|
473 |
354:UIMgr.c **** else if (receivedCmd == enableTrackingCmd)
|
|
|
474 |
355:UIMgr.c **** {
|
|
|
475 |
356:UIMgr.c **** /* publish the event...again with a short delay */
|
|
|
476 |
357:UIMgr.c **** Utility_delay(100);
|
|
|
477 |
358:UIMgr.c **** PUBLISH_EVENT(EV_ENABLE_TRACKING);
|
|
|
478 |
359:UIMgr.c **** }
|
|
|
479 |
360:UIMgr.c **** else if (receivedCmd == disableTrackingCmd)
|
|
|
480 |
361:UIMgr.c **** {
|
182 |
kaklik |
481 |
GAS LISTING /tmp/ccRvT1Qm.s page 9
|
151 |
kaklik |
482 |
|
|
|
483 |
|
|
|
484 |
362:UIMgr.c **** PUBLISH_EVENT(EV_DISABLE_TRACKING);
|
|
|
485 |
363:UIMgr.c **** }
|
|
|
486 |
364:UIMgr.c **** else if (receivedCmd == setColorMapCmd)
|
|
|
487 |
365:UIMgr.c **** {
|
|
|
488 |
366:UIMgr.c **** /* copy the received tokens into the color map */
|
|
|
489 |
367:UIMgr.c **** for (i=0; i<tokenCount; i++)
|
|
|
490 |
368:UIMgr.c **** {
|
|
|
491 |
369:UIMgr.c **** colorMap[i] = tokenBuffer[i+1];
|
|
|
492 |
370:UIMgr.c ****
|
|
|
493 |
371:UIMgr.c **** /* write each colorMap byte to EEPROM, but only those
|
|
|
494 |
372:UIMgr.c **** that changed...this will help reduce wear on the EEPROM */
|
|
|
495 |
373:UIMgr.c **** eepromData = eeprom_read_byte( (unsigned char*)(i+1));
|
|
|
496 |
374:UIMgr.c **** if (eepromData != colorMap[i])
|
|
|
497 |
375:UIMgr.c **** {
|
|
|
498 |
376:UIMgr.c **** /* need to actually perform the write because the
|
|
|
499 |
377:UIMgr.c **** data in eeprom is different than the current colorMap */
|
|
|
500 |
378:UIMgr.c **** eeprom_write_succeeded = FALSE;
|
|
|
501 |
379:UIMgr.c **** while(eeprom_write_succeeded == FALSE && num_writes < MAX_EEPROM_WRITE_ATTEMPTS)
|
|
|
502 |
380:UIMgr.c **** {
|
|
|
503 |
381:UIMgr.c **** eeprom_write_byte((unsigned char*)(i+1),colorMap[i]);
|
|
|
504 |
382:UIMgr.c **** num_writes++;
|
|
|
505 |
383:UIMgr.c **** eepromData = eeprom_read_byte( (unsigned char*)(i+1));
|
|
|
506 |
384:UIMgr.c **** if (eepromData == colorMap[i])
|
|
|
507 |
385:UIMgr.c **** {
|
|
|
508 |
386:UIMgr.c **** eeprom_write_succeeded = TRUE;
|
|
|
509 |
387:UIMgr.c **** }
|
|
|
510 |
388:UIMgr.c **** }
|
|
|
511 |
389:UIMgr.c **** num_writes = 0;
|
|
|
512 |
390:UIMgr.c **** }
|
|
|
513 |
391:UIMgr.c **** }
|
|
|
514 |
392:UIMgr.c ****
|
|
|
515 |
393:UIMgr.c **** #if DEBUG_COLOR_MAP
|
|
|
516 |
394:UIMgr.c **** /* for debugging...send out the entire color map */
|
|
|
517 |
395:UIMgr.c **** UIMgr_txBuffer("\r\n",2);
|
|
|
518 |
396:UIMgr.c **** for (i=0; i<NUM_ELEMENTS_IN_COLOR_MAP; i++)
|
|
|
519 |
397:UIMgr.c **** {
|
|
|
520 |
398:UIMgr.c **** memset(asciiBuffer,0x00,5);
|
|
|
521 |
399:UIMgr.c **** itoa(colorMap[i],asciiBuffer,10);
|
|
|
522 |
400:UIMgr.c **** UIMgr_txBuffer(asciiBuffer,3);
|
|
|
523 |
401:UIMgr.c **** UIMgr_txBuffer(" ",1);
|
|
|
524 |
402:UIMgr.c **** if (i==15 || i == 31)
|
|
|
525 |
403:UIMgr.c **** {
|
|
|
526 |
404:UIMgr.c **** /* break up the output */
|
|
|
527 |
405:UIMgr.c **** UIMgr_txBuffer("\r\n",2);
|
|
|
528 |
406:UIMgr.c **** }
|
|
|
529 |
407:UIMgr.c **** }
|
|
|
530 |
408:UIMgr.c **** #endif
|
|
|
531 |
409:UIMgr.c **** }
|
|
|
532 |
410:UIMgr.c **** }
|
|
|
533 |
411:UIMgr.c ****
|
|
|
534 |
412:UIMgr.c **** /***********************************************************
|
|
|
535 |
413:UIMgr.c **** Function Name: UIMgr_convertTokenToValue
|
|
|
536 |
414:UIMgr.c **** Function Description: This function is responsible for
|
|
|
537 |
415:UIMgr.c **** converting a received token to a hex value It will
|
|
|
538 |
416:UIMgr.c **** access the asciiTokenBuffer directly, and store the
|
|
|
539 |
417:UIMgr.c **** result in the appropriate token buffer.
|
|
|
540 |
418:UIMgr.c **** Inputs: none
|
182 |
kaklik |
541 |
GAS LISTING /tmp/ccRvT1Qm.s page 10
|
151 |
kaklik |
542 |
|
|
|
543 |
|
|
|
544 |
419:UIMgr.c **** Outputs: none
|
|
|
545 |
420:UIMgr.c **** ***********************************************************/
|
|
|
546 |
421:UIMgr.c **** static void UIMgr_convertTokenToValue(void)
|
|
|
547 |
422:UIMgr.c **** {
|
|
|
548 |
423:UIMgr.c **** unsigned int newValue;
|
|
|
549 |
424:UIMgr.c ****
|
|
|
550 |
425:UIMgr.c **** newValue = atoi(asciiTokenBuffer);
|
|
|
551 |
426:UIMgr.c **** if (newValue > 255)
|
|
|
552 |
427:UIMgr.c **** {
|
|
|
553 |
428:UIMgr.c **** /* the value is too large */
|
|
|
554 |
429:UIMgr.c **** receivedCmd = invalidCmd;
|
|
|
555 |
430:UIMgr.c **** tokenBuffer[tokenCount] = 0xFF; /* to indicate an error */
|
|
|
556 |
431:UIMgr.c **** }
|
|
|
557 |
432:UIMgr.c **** else
|
|
|
558 |
433:UIMgr.c **** {
|
|
|
559 |
434:UIMgr.c **** /* copy the value into the tokenBuffer */
|
|
|
560 |
435:UIMgr.c **** tokenBuffer[tokenCount] = newValue;
|
|
|
561 |
436:UIMgr.c **** }
|
|
|
562 |
437:UIMgr.c **** memset(asciiTokenBuffer,0x00,MAX_TOKEN_LENGTH);
|
|
|
563 |
438:UIMgr.c **** charIndex = 0;
|
|
|
564 |
439:UIMgr.c **** charCount = 0;
|
|
|
565 |
440:UIMgr.c **** }
|
|
|
566 |
441:UIMgr.c **** /***********************************************************
|
|
|
567 |
442:UIMgr.c **** Function Name: UIMgr_convertTokenToCmd
|
|
|
568 |
443:UIMgr.c **** Function Description: This function is responsible for
|
|
|
569 |
444:UIMgr.c **** parsing a received 2-character command. It will
|
|
|
570 |
445:UIMgr.c **** access the asciiTokenBuffer directly.
|
|
|
571 |
446:UIMgr.c **** Inputs: none
|
|
|
572 |
447:UIMgr.c **** Outputs: none
|
|
|
573 |
448:UIMgr.c **** ***********************************************************/
|
|
|
574 |
449:UIMgr.c **** static void UIMgr_convertTokenToCmd(void)
|
|
|
575 |
450:UIMgr.c **** {
|
|
|
576 |
451:UIMgr.c **** if ( (asciiTokenBuffer[0] == 'P') &&
|
|
|
577 |
452:UIMgr.c **** (asciiTokenBuffer[1] == 'G') )
|
|
|
578 |
453:UIMgr.c **** {
|
|
|
579 |
454:UIMgr.c **** /* we got a "ping" command...but we still need to see
|
|
|
580 |
455:UIMgr.c **** if we are going to get the \r */
|
|
|
581 |
456:UIMgr.c **** receivedCmd = pingCmd;
|
|
|
582 |
457:UIMgr.c **** }
|
|
|
583 |
458:UIMgr.c **** else if ( (asciiTokenBuffer[0] == 'G') &&
|
|
|
584 |
459:UIMgr.c **** (asciiTokenBuffer[1] == 'V') )
|
|
|
585 |
460:UIMgr.c **** {
|
|
|
586 |
461:UIMgr.c **** /* we got the "get version" command */
|
|
|
587 |
462:UIMgr.c **** receivedCmd = getVersionCmd;
|
|
|
588 |
463:UIMgr.c **** }
|
|
|
589 |
464:UIMgr.c **** else if ( (asciiTokenBuffer[0] == 'D') &&
|
|
|
590 |
465:UIMgr.c **** (asciiTokenBuffer[1] == 'F') )
|
|
|
591 |
466:UIMgr.c **** {
|
|
|
592 |
467:UIMgr.c **** /* we should go into frame dump mode */
|
|
|
593 |
468:UIMgr.c **** receivedCmd = dumpFrameCmd;
|
|
|
594 |
469:UIMgr.c **** }
|
|
|
595 |
470:UIMgr.c **** else if ( (asciiTokenBuffer[0] == 'C') &&
|
|
|
596 |
471:UIMgr.c **** (asciiTokenBuffer[1] == 'R') )
|
|
|
597 |
472:UIMgr.c **** {
|
|
|
598 |
473:UIMgr.c **** /* the user wants to set registers in the OV6620 */
|
|
|
599 |
474:UIMgr.c **** receivedCmd = setCameraRegsCmd;
|
|
|
600 |
475:UIMgr.c **** }
|
182 |
kaklik |
601 |
GAS LISTING /tmp/ccRvT1Qm.s page 11
|
151 |
kaklik |
602 |
|
|
|
603 |
|
|
|
604 |
476:UIMgr.c **** else if ( (asciiTokenBuffer[0] == 'E') &&
|
|
|
605 |
477:UIMgr.c **** (asciiTokenBuffer[1] == 'T') )
|
|
|
606 |
478:UIMgr.c **** {
|
|
|
607 |
479:UIMgr.c **** /* the user wants to enable tracking */
|
|
|
608 |
480:UIMgr.c **** receivedCmd = enableTrackingCmd;
|
|
|
609 |
481:UIMgr.c **** }
|
|
|
610 |
482:UIMgr.c **** else if ( (asciiTokenBuffer[0] == 'S') &&
|
|
|
611 |
483:UIMgr.c **** (asciiTokenBuffer[1] == 'M') )
|
|
|
612 |
484:UIMgr.c **** {
|
|
|
613 |
485:UIMgr.c **** /* the user wants to set the color map */
|
|
|
614 |
486:UIMgr.c **** receivedCmd = setColorMapCmd;
|
|
|
615 |
487:UIMgr.c **** }
|
|
|
616 |
488:UIMgr.c **** else if ( (asciiTokenBuffer[0] == 'D') &&
|
|
|
617 |
489:UIMgr.c **** (asciiTokenBuffer[1] == 'T') )
|
|
|
618 |
490:UIMgr.c **** {
|
|
|
619 |
491:UIMgr.c **** receivedCmd = disableTrackingCmd;
|
|
|
620 |
492:UIMgr.c **** }
|
|
|
621 |
493:UIMgr.c **** else if ( (asciiTokenBuffer[0] == 'R') &&
|
|
|
622 |
494:UIMgr.c **** (asciiTokenBuffer[1] == 'S') )
|
|
|
623 |
495:UIMgr.c **** {
|
|
|
624 |
496:UIMgr.c **** receivedCmd = resetCameraCmd;
|
|
|
625 |
497:UIMgr.c **** }
|
|
|
626 |
498:UIMgr.c **** else
|
|
|
627 |
499:UIMgr.c **** {
|
|
|
628 |
500:UIMgr.c **** /* don't recognize the cmd */
|
|
|
629 |
501:UIMgr.c **** receivedCmd = invalidCmd;
|
|
|
630 |
502:UIMgr.c **** }
|
|
|
631 |
503:UIMgr.c **** memset(asciiTokenBuffer,0x00,MAX_TOKEN_LENGTH);
|
|
|
632 |
504:UIMgr.c **** charIndex = 0;
|
|
|
633 |
505:UIMgr.c **** charCount = 0;
|
|
|
634 |
506:UIMgr.c **** }
|
|
|
635 |
507:UIMgr.c **** /***********************************************************
|
|
|
636 |
508:UIMgr.c **** Function Name: UIMgr_sendAck
|
|
|
637 |
509:UIMgr.c **** Function Description: This function is responsible for
|
|
|
638 |
510:UIMgr.c **** queuing up an ACK to be sent to the user.
|
|
|
639 |
511:UIMgr.c **** Inputs: none
|
|
|
640 |
512:UIMgr.c **** Outputs: none
|
|
|
641 |
513:UIMgr.c **** ***********************************************************/
|
|
|
642 |
514:UIMgr.c **** static void UIMgr_sendAck(void)
|
|
|
643 |
515:UIMgr.c **** {
|
|
|
644 |
516:UIMgr.c **** UIMgr_writeTxFifo('A');
|
|
|
645 |
517:UIMgr.c **** UIMgr_writeTxFifo('C');
|
|
|
646 |
518:UIMgr.c **** UIMgr_writeTxFifo('K');
|
|
|
647 |
519:UIMgr.c **** UIMgr_writeTxFifo('\r');
|
|
|
648 |
520:UIMgr.c **** }
|
|
|
649 |
521:UIMgr.c ****
|
|
|
650 |
522:UIMgr.c **** /***********************************************************
|
|
|
651 |
523:UIMgr.c **** Function Name: UIMgr_sendNck
|
|
|
652 |
524:UIMgr.c **** Function Description: This function is responsible for
|
|
|
653 |
525:UIMgr.c **** queueing up an NCK to be sent to the user.
|
|
|
654 |
526:UIMgr.c **** Inputs: none
|
|
|
655 |
527:UIMgr.c **** Outputs: none
|
|
|
656 |
528:UIMgr.c **** ***********************************************************/
|
|
|
657 |
529:UIMgr.c **** static void UIMgr_sendNck(void)
|
|
|
658 |
530:UIMgr.c **** {
|
|
|
659 |
531:UIMgr.c **** UIMgr_writeTxFifo('N');
|
|
|
660 |
532:UIMgr.c **** UIMgr_writeTxFifo('C');
|
182 |
kaklik |
661 |
GAS LISTING /tmp/ccRvT1Qm.s page 12
|
151 |
kaklik |
662 |
|
|
|
663 |
|
|
|
664 |
533:UIMgr.c **** UIMgr_writeTxFifo('K');
|
|
|
665 |
534:UIMgr.c **** UIMgr_writeTxFifo('\r');
|
|
|
666 |
535:UIMgr.c **** }
|
|
|
667 |
536:UIMgr.c ****
|
|
|
668 |
537:UIMgr.c ****
|
|
|
669 |
538:UIMgr.c **** /***********************************************************
|
|
|
670 |
539:UIMgr.c **** Function Name: UIMgr_writeBufferToTxFifo
|
|
|
671 |
540:UIMgr.c **** Function Description: This function is responsible for
|
|
|
672 |
541:UIMgr.c **** placing "length" bytes into the tx FIFO.
|
|
|
673 |
542:UIMgr.c **** Inputs: pData - a pointer to the data to send
|
|
|
674 |
543:UIMgr.c **** length - the number of bytes to send
|
|
|
675 |
544:UIMgr.c **** Outputs: none
|
|
|
676 |
545:UIMgr.c **** ***********************************************************/
|
|
|
677 |
546:UIMgr.c **** void UIMgr_writeBufferToTxFifo(unsigned char *pData, unsigned char length)
|
|
|
678 |
547:UIMgr.c **** {
|
|
|
679 |
96 .stabn 68,0,547,.LM0-UIMgr_writeBufferToTxFifo
|
|
|
680 |
97 .LM0:
|
|
|
681 |
98 /* prologue: frame size=0 */
|
|
|
682 |
99 /* prologue end (size=0) */
|
|
|
683 |
100 0000 DC01 movw r26,r24
|
|
|
684 |
101 0002 862F mov r24,r22
|
|
|
685 |
548:UIMgr.c **** unsigned char tmpHead;
|
|
|
686 |
549:UIMgr.c **** if (length == 0)
|
|
|
687 |
102 .stabn 68,0,549,.LM1-UIMgr_writeBufferToTxFifo
|
|
|
688 |
103 .LM1:
|
|
|
689 |
104 0004 6623 tst r22
|
|
|
690 |
105 0006 C9F0 breq .L7
|
|
|
691 |
550:UIMgr.c **** {
|
|
|
692 |
551:UIMgr.c **** return;
|
|
|
693 |
552:UIMgr.c **** }
|
|
|
694 |
553:UIMgr.c ****
|
|
|
695 |
554:UIMgr.c **** DISABLE_INTS();
|
|
|
696 |
106 .stabn 68,0,554,.LM2-UIMgr_writeBufferToTxFifo
|
|
|
697 |
107 .LM2:
|
|
|
698 |
108 /* #APP */
|
|
|
699 |
109 0008 F894 cli
|
|
|
700 |
555:UIMgr.c **** while(length-- != 0)
|
|
|
701 |
110 .stabn 68,0,555,.LM3-UIMgr_writeBufferToTxFifo
|
|
|
702 |
111 .LM3:
|
|
|
703 |
112 /* #NOAPP */
|
|
|
704 |
113 000a 6150 subi r22,lo8(-(-1))
|
|
|
705 |
114 000c 6F3F cpi r22,lo8(-1)
|
|
|
706 |
115 000e A1F0 breq .L4
|
|
|
707 |
116 0010 262F mov r18,r22
|
|
|
708 |
117 0012 40E0 ldi r20,lo8(UIMgr_txFifo)
|
|
|
709 |
118 0014 50E0 ldi r21,hi8(UIMgr_txFifo)
|
|
|
710 |
119 0016 861B sub r24,r22
|
|
|
711 |
120 0018 682F mov r22,r24
|
|
|
712 |
121 001a 6250 subi r22,lo8(-(-2))
|
|
|
713 |
122 .L6:
|
|
|
714 |
556:UIMgr.c **** {
|
|
|
715 |
557:UIMgr.c **** UIMgr_txFifo[UIMgr_txFifoHead] = *pData++;
|
|
|
716 |
123 .stabn 68,0,557,.LM4-UIMgr_writeBufferToTxFifo
|
|
|
717 |
124 .LM4:
|
|
|
718 |
125 001c 8091 0000 lds r24,UIMgr_txFifoHead
|
|
|
719 |
126 0020 FA01 movw r30,r20
|
|
|
720 |
127 0022 E80F add r30,r24
|
182 |
kaklik |
721 |
GAS LISTING /tmp/ccRvT1Qm.s page 13
|
151 |
kaklik |
722 |
|
|
|
723 |
|
|
|
724 |
128 0024 F11D adc r31,__zero_reg__
|
|
|
725 |
129 0026 9D91 ld r25,X+
|
|
|
726 |
130 0028 9083 st Z,r25
|
|
|
727 |
558:UIMgr.c ****
|
|
|
728 |
559:UIMgr.c **** /* now move the head up */
|
|
|
729 |
560:UIMgr.c **** tmpHead = (UIMgr_txFifoHead + 1) & (UI_MGR_TX_FIFO_MASK);
|
|
|
730 |
561:UIMgr.c **** UIMgr_txFifoHead = tmpHead;
|
|
|
731 |
131 .stabn 68,0,561,.LM5-UIMgr_writeBufferToTxFifo
|
|
|
732 |
132 .LM5:
|
|
|
733 |
133 002a 8F5F subi r24,lo8(-(1))
|
|
|
734 |
134 002c 8F73 andi r24,lo8(63)
|
|
|
735 |
135 002e 8093 0000 sts UIMgr_txFifoHead,r24
|
|
|
736 |
136 .stabn 68,0,555,.LM6-UIMgr_writeBufferToTxFifo
|
|
|
737 |
137 .LM6:
|
|
|
738 |
138 0032 2150 subi r18,lo8(-(-1))
|
|
|
739 |
139 0034 6217 cp r22,r18
|
|
|
740 |
140 0036 91F7 brne .L6
|
|
|
741 |
141 .L4:
|
|
|
742 |
562:UIMgr.c **** }
|
|
|
743 |
563:UIMgr.c **** ENABLE_INTS();
|
|
|
744 |
142 .stabn 68,0,563,.LM7-UIMgr_writeBufferToTxFifo
|
|
|
745 |
143 .LM7:
|
|
|
746 |
144 /* #APP */
|
|
|
747 |
145 0038 7894 sei
|
|
|
748 |
146 /* #NOAPP */
|
|
|
749 |
147 .L7:
|
|
|
750 |
148 003a 0895 ret
|
|
|
751 |
149 /* epilogue: frame size=0 */
|
|
|
752 |
150 /* epilogue: noreturn */
|
|
|
753 |
151 /* epilogue end (size=0) */
|
|
|
754 |
152 /* function UIMgr_writeBufferToTxFifo size 32 (32) */
|
|
|
755 |
153 .size UIMgr_writeBufferToTxFifo, .-UIMgr_writeBufferToTxFifo
|
|
|
756 |
154 .Lscope0:
|
|
|
757 |
155 .stabs "",36,0,0,.Lscope0-UIMgr_writeBufferToTxFifo
|
|
|
758 |
156 .stabd 78,0,0
|
|
|
759 |
157 .stabs "UIMgr_readTxFifo:f(0,11)",36,0,630,UIMgr_readTxFifo
|
|
|
760 |
158 .type UIMgr_readTxFifo, @function
|
|
|
761 |
159 UIMgr_readTxFifo:
|
|
|
762 |
160 .stabd 46,0,0
|
|
|
763 |
564:UIMgr.c **** }
|
|
|
764 |
565:UIMgr.c ****
|
|
|
765 |
566:UIMgr.c **** /***********************************************************
|
|
|
766 |
567:UIMgr.c **** Function Name: UIMgr_txBuffer
|
|
|
767 |
568:UIMgr.c **** Function Description: This function is responsible for
|
|
|
768 |
569:UIMgr.c **** sending 'length' bytes out using the UartInterface
|
|
|
769 |
570:UIMgr.c **** module.
|
|
|
770 |
571:UIMgr.c **** Inputs: pData - a pointer to the data to send
|
|
|
771 |
572:UIMgr.c **** length - the number of bytes to send
|
|
|
772 |
573:UIMgr.c **** Outputs: none
|
|
|
773 |
574:UIMgr.c **** ***********************************************************/
|
|
|
774 |
575:UIMgr.c **** void UIMgr_txBuffer(unsigned char *pData, unsigned char length)
|
|
|
775 |
576:UIMgr.c **** {
|
|
|
776 |
577:UIMgr.c **** while(length-- != 0)
|
|
|
777 |
578:UIMgr.c **** {
|
|
|
778 |
579:UIMgr.c **** UartInt_txByte(*pData++);
|
|
|
779 |
580:UIMgr.c **** }
|
|
|
780 |
581:UIMgr.c **** }
|
182 |
kaklik |
781 |
GAS LISTING /tmp/ccRvT1Qm.s page 14
|
151 |
kaklik |
782 |
|
|
|
783 |
|
|
|
784 |
582:UIMgr.c ****
|
|
|
785 |
583:UIMgr.c **** /***********************************************************
|
|
|
786 |
584:UIMgr.c **** Function Name: UIMgr_flushTxBuffer
|
|
|
787 |
585:UIMgr.c **** Function Description: This function is responsible for
|
|
|
788 |
586:UIMgr.c **** sending all data currently in the serial tx buffer
|
|
|
789 |
587:UIMgr.c **** to the user.
|
|
|
790 |
588:UIMgr.c **** Inputs: none
|
|
|
791 |
589:UIMgr.c **** Outputs: none
|
|
|
792 |
590:UIMgr.c **** ***********************************************************/
|
|
|
793 |
591:UIMgr.c **** void UIMgr_flushTxBuffer(void)
|
|
|
794 |
592:UIMgr.c **** {
|
|
|
795 |
593:UIMgr.c **** while(IS_DATA_IN_TX_FIFO() == TRUE)
|
|
|
796 |
594:UIMgr.c **** {
|
|
|
797 |
595:UIMgr.c **** UartInt_txByte(UIMgr_readTxFifo() );
|
|
|
798 |
596:UIMgr.c **** }
|
|
|
799 |
597:UIMgr.c **** }
|
|
|
800 |
598:UIMgr.c ****
|
|
|
801 |
599:UIMgr.c **** /***********************************************************
|
|
|
802 |
600:UIMgr.c **** Function Name: UIMgr_readRxFifo
|
|
|
803 |
601:UIMgr.c **** Function Description: This function is responsible for
|
|
|
804 |
602:UIMgr.c **** reading a single byte of data from the rx fifo, and
|
|
|
805 |
603:UIMgr.c **** updating the appropriate pointers.
|
|
|
806 |
604:UIMgr.c **** Inputs: none
|
|
|
807 |
605:UIMgr.c **** Outputs: unsigned char-the data read
|
|
|
808 |
606:UIMgr.c **** ***********************************************************/
|
|
|
809 |
607:UIMgr.c **** static unsigned char UIMgr_readRxFifo(void)
|
|
|
810 |
608:UIMgr.c **** {
|
|
|
811 |
609:UIMgr.c **** unsigned char dataByte, tmpTail;
|
|
|
812 |
610:UIMgr.c ****
|
|
|
813 |
611:UIMgr.c **** /* just return the current tail from the rx fifo */
|
|
|
814 |
612:UIMgr.c **** DISABLE_INTS();
|
|
|
815 |
613:UIMgr.c **** dataByte = UIMgr_rxFifo[UIMgr_rxFifoTail];
|
|
|
816 |
614:UIMgr.c **** tmpTail = (UIMgr_rxFifoTail+1) & (UI_MGR_RX_FIFO_MASK);
|
|
|
817 |
615:UIMgr.c **** UIMgr_rxFifoTail = tmpTail;
|
|
|
818 |
616:UIMgr.c **** ENABLE_INTS();
|
|
|
819 |
617:UIMgr.c ****
|
|
|
820 |
618:UIMgr.c **** return(dataByte);
|
|
|
821 |
619:UIMgr.c **** }
|
|
|
822 |
620:UIMgr.c ****
|
|
|
823 |
621:UIMgr.c **** /***********************************************************
|
|
|
824 |
622:UIMgr.c **** Function Name: UIMgr_readTxFifo
|
|
|
825 |
623:UIMgr.c **** Function Description: This function is responsible for
|
|
|
826 |
624:UIMgr.c **** reading a single byte of data from the tx fifo, and
|
|
|
827 |
625:UIMgr.c **** updating the appropriate pointers.
|
|
|
828 |
626:UIMgr.c **** Inputs: none
|
|
|
829 |
627:UIMgr.c **** Outputs: unsigned char-the data read
|
|
|
830 |
628:UIMgr.c **** ***********************************************************/
|
|
|
831 |
629:UIMgr.c **** static unsigned char UIMgr_readTxFifo(void)
|
|
|
832 |
630:UIMgr.c **** {
|
|
|
833 |
161 .stabn 68,0,630,.LM8-UIMgr_readTxFifo
|
|
|
834 |
162 .LM8:
|
|
|
835 |
163 /* prologue: frame size=0 */
|
|
|
836 |
164 /* prologue end (size=0) */
|
|
|
837 |
631:UIMgr.c **** unsigned char dataByte, tmpTail;
|
|
|
838 |
632:UIMgr.c ****
|
|
|
839 |
633:UIMgr.c **** /* just return the current tail from the tx fifo */
|
|
|
840 |
634:UIMgr.c **** DISABLE_INTS();
|
182 |
kaklik |
841 |
GAS LISTING /tmp/ccRvT1Qm.s page 15
|
151 |
kaklik |
842 |
|
|
|
843 |
|
|
|
844 |
165 .stabn 68,0,634,.LM9-UIMgr_readTxFifo
|
|
|
845 |
166 .LM9:
|
|
|
846 |
167 /* #APP */
|
|
|
847 |
168 003c F894 cli
|
|
|
848 |
635:UIMgr.c **** dataByte = UIMgr_txFifo[UIMgr_txFifoTail];
|
|
|
849 |
169 .stabn 68,0,635,.LM10-UIMgr_readTxFifo
|
|
|
850 |
170 .LM10:
|
|
|
851 |
171 /* #NOAPP */
|
|
|
852 |
172 003e 9091 0000 lds r25,UIMgr_txFifoTail
|
|
|
853 |
173 0042 E0E0 ldi r30,lo8(UIMgr_txFifo)
|
|
|
854 |
174 0044 F0E0 ldi r31,hi8(UIMgr_txFifo)
|
|
|
855 |
175 0046 E90F add r30,r25
|
|
|
856 |
176 0048 F11D adc r31,__zero_reg__
|
|
|
857 |
177 004a 8081 ld r24,Z
|
|
|
858 |
636:UIMgr.c **** tmpTail = (UIMgr_txFifoTail+1) & (UI_MGR_TX_FIFO_MASK);
|
|
|
859 |
637:UIMgr.c **** UIMgr_txFifoTail = tmpTail;
|
|
|
860 |
178 .stabn 68,0,637,.LM11-UIMgr_readTxFifo
|
|
|
861 |
179 .LM11:
|
|
|
862 |
180 004c 9F5F subi r25,lo8(-(1))
|
|
|
863 |
181 004e 9F73 andi r25,lo8(63)
|
|
|
864 |
182 0050 9093 0000 sts UIMgr_txFifoTail,r25
|
|
|
865 |
638:UIMgr.c **** ENABLE_INTS();
|
|
|
866 |
183 .stabn 68,0,638,.LM12-UIMgr_readTxFifo
|
|
|
867 |
184 .LM12:
|
|
|
868 |
185 /* #APP */
|
|
|
869 |
186 0054 7894 sei
|
|
|
870 |
639:UIMgr.c ****
|
|
|
871 |
640:UIMgr.c **** return(dataByte);
|
|
|
872 |
641:UIMgr.c **** }
|
|
|
873 |
187 .stabn 68,0,641,.LM13-UIMgr_readTxFifo
|
|
|
874 |
188 .LM13:
|
|
|
875 |
189 /* #NOAPP */
|
|
|
876 |
190 0056 9927 clr r25
|
|
|
877 |
191 /* epilogue: frame size=0 */
|
|
|
878 |
192 0058 0895 ret
|
|
|
879 |
193 /* epilogue end (size=1) */
|
|
|
880 |
194 /* function UIMgr_readTxFifo size 17 (16) */
|
|
|
881 |
195 .size UIMgr_readTxFifo, .-UIMgr_readTxFifo
|
|
|
882 |
196 .stabs "dataByte:r(0,11)",64,0,631,24
|
|
|
883 |
197 .stabn 192,0,0,UIMgr_readTxFifo-UIMgr_readTxFifo
|
|
|
884 |
198 .stabn 224,0,0,.Lscope1-UIMgr_readTxFifo
|
|
|
885 |
199 .Lscope1:
|
|
|
886 |
200 .stabs "",36,0,0,.Lscope1-UIMgr_readTxFifo
|
|
|
887 |
201 .stabd 78,0,0
|
|
|
888 |
202 .stabs "UIMgr_writeTxFifo:F(0,15)",36,0,652,UIMgr_writeTxFifo
|
|
|
889 |
203 .stabs "data:P(0,11)",64,0,651,24
|
|
|
890 |
204 .global UIMgr_writeTxFifo
|
|
|
891 |
205 .type UIMgr_writeTxFifo, @function
|
|
|
892 |
206 UIMgr_writeTxFifo:
|
|
|
893 |
207 .stabd 46,0,0
|
|
|
894 |
642:UIMgr.c ****
|
|
|
895 |
643:UIMgr.c **** /***********************************************************
|
|
|
896 |
644:UIMgr.c **** Function Name: UIMgr_writeTxFifo
|
|
|
897 |
645:UIMgr.c **** Function Description: This function is responsible for
|
|
|
898 |
646:UIMgr.c **** writing a single byte to the TxFifo and
|
|
|
899 |
647:UIMgr.c **** updating the appropriate pointers.
|
|
|
900 |
648:UIMgr.c **** Inputs: data - the byte to write to the Fifo
|
182 |
kaklik |
901 |
GAS LISTING /tmp/ccRvT1Qm.s page 16
|
151 |
kaklik |
902 |
|
|
|
903 |
|
|
|
904 |
649:UIMgr.c **** Outputs: none
|
|
|
905 |
650:UIMgr.c **** ***********************************************************/
|
|
|
906 |
651:UIMgr.c **** void UIMgr_writeTxFifo(unsigned char data)
|
|
|
907 |
652:UIMgr.c **** {
|
|
|
908 |
208 .stabn 68,0,652,.LM14-UIMgr_writeTxFifo
|
|
|
909 |
209 .LM14:
|
|
|
910 |
210 /* prologue: frame size=0 */
|
|
|
911 |
211 /* prologue end (size=0) */
|
|
|
912 |
653:UIMgr.c **** unsigned char tmpHead;
|
|
|
913 |
654:UIMgr.c ****
|
|
|
914 |
655:UIMgr.c **** DISABLE_INTS();
|
|
|
915 |
212 .stabn 68,0,655,.LM15-UIMgr_writeTxFifo
|
|
|
916 |
213 .LM15:
|
|
|
917 |
214 /* #APP */
|
|
|
918 |
215 005a F894 cli
|
|
|
919 |
656:UIMgr.c **** UIMgr_txFifo[UIMgr_txFifoHead] = data;
|
|
|
920 |
216 .stabn 68,0,656,.LM16-UIMgr_writeTxFifo
|
|
|
921 |
217 .LM16:
|
|
|
922 |
218 /* #NOAPP */
|
|
|
923 |
219 005c 9091 0000 lds r25,UIMgr_txFifoHead
|
|
|
924 |
220 0060 E0E0 ldi r30,lo8(UIMgr_txFifo)
|
|
|
925 |
221 0062 F0E0 ldi r31,hi8(UIMgr_txFifo)
|
|
|
926 |
222 0064 E90F add r30,r25
|
|
|
927 |
223 0066 F11D adc r31,__zero_reg__
|
|
|
928 |
224 0068 8083 st Z,r24
|
|
|
929 |
657:UIMgr.c ****
|
|
|
930 |
658:UIMgr.c **** /* now move the head up */
|
|
|
931 |
659:UIMgr.c **** tmpHead = (UIMgr_txFifoHead + 1) & (UI_MGR_TX_FIFO_MASK);
|
|
|
932 |
660:UIMgr.c **** UIMgr_txFifoHead = tmpHead;
|
|
|
933 |
225 .stabn 68,0,660,.LM17-UIMgr_writeTxFifo
|
|
|
934 |
226 .LM17:
|
|
|
935 |
227 006a 9F5F subi r25,lo8(-(1))
|
|
|
936 |
228 006c 9F73 andi r25,lo8(63)
|
|
|
937 |
229 006e 9093 0000 sts UIMgr_txFifoHead,r25
|
|
|
938 |
661:UIMgr.c **** ENABLE_INTS();
|
|
|
939 |
230 .stabn 68,0,661,.LM18-UIMgr_writeTxFifo
|
|
|
940 |
231 .LM18:
|
|
|
941 |
232 /* #APP */
|
|
|
942 |
233 0072 7894 sei
|
|
|
943 |
234 /* #NOAPP */
|
|
|
944 |
235 /* epilogue: frame size=0 */
|
|
|
945 |
236 0074 0895 ret
|
|
|
946 |
237 /* epilogue end (size=1) */
|
|
|
947 |
238 /* function UIMgr_writeTxFifo size 16 (15) */
|
|
|
948 |
239 .size UIMgr_writeTxFifo, .-UIMgr_writeTxFifo
|
|
|
949 |
240 .Lscope2:
|
|
|
950 |
241 .stabs "",36,0,0,.Lscope2-UIMgr_writeTxFifo
|
|
|
951 |
242 .stabd 78,0,0
|
|
|
952 |
243 .stabs "UIMgr_flushTxBuffer:F(0,15)",36,0,592,UIMgr_flushTxBuffer
|
|
|
953 |
244 .global UIMgr_flushTxBuffer
|
|
|
954 |
245 .type UIMgr_flushTxBuffer, @function
|
|
|
955 |
246 UIMgr_flushTxBuffer:
|
|
|
956 |
247 .stabd 46,0,0
|
|
|
957 |
248 .stabn 68,0,592,.LM19-UIMgr_flushTxBuffer
|
|
|
958 |
249 .LM19:
|
|
|
959 |
250 /* prologue: frame size=0 */
|
|
|
960 |
251 /* prologue end (size=0) */
|
182 |
kaklik |
961 |
GAS LISTING /tmp/ccRvT1Qm.s page 17
|
151 |
kaklik |
962 |
|
|
|
963 |
|
|
|
964 |
252 .stabn 68,0,593,.LM20-UIMgr_flushTxBuffer
|
|
|
965 |
253 .LM20:
|
|
|
966 |
254 0076 9091 0000 lds r25,UIMgr_txFifoHead
|
|
|
967 |
255 007a 8091 0000 lds r24,UIMgr_txFifoTail
|
|
|
968 |
256 007e 9817 cp r25,r24
|
|
|
969 |
257 0080 41F0 breq .L16
|
|
|
970 |
258 .L17:
|
|
|
971 |
259 .stabn 68,0,595,.LM21-UIMgr_flushTxBuffer
|
|
|
972 |
260 .LM21:
|
|
|
973 |
261 0082 DCDF rcall UIMgr_readTxFifo
|
|
|
974 |
262 0084 00D0 rcall UartInt_txByte
|
|
|
975 |
263 .stabn 68,0,593,.LM22-UIMgr_flushTxBuffer
|
|
|
976 |
264 .LM22:
|
|
|
977 |
265 0086 9091 0000 lds r25,UIMgr_txFifoHead
|
|
|
978 |
266 008a 8091 0000 lds r24,UIMgr_txFifoTail
|
|
|
979 |
267 008e 9817 cp r25,r24
|
|
|
980 |
268 0090 C1F7 brne .L17
|
|
|
981 |
269 .L16:
|
|
|
982 |
270 0092 0895 ret
|
|
|
983 |
271 /* epilogue: frame size=0 */
|
|
|
984 |
272 /* epilogue: noreturn */
|
|
|
985 |
273 /* epilogue end (size=0) */
|
|
|
986 |
274 /* function UIMgr_flushTxBuffer size 15 (15) */
|
|
|
987 |
275 .size UIMgr_flushTxBuffer, .-UIMgr_flushTxBuffer
|
|
|
988 |
276 .Lscope3:
|
|
|
989 |
277 .stabs "",36,0,0,.Lscope3-UIMgr_flushTxBuffer
|
|
|
990 |
278 .stabd 78,0,0
|
|
|
991 |
279 .stabs "UIMgr_txBuffer:F(0,15)",36,0,576,UIMgr_txBuffer
|
|
|
992 |
280 .stabs "pData:P(0,20)",64,0,575,28
|
|
|
993 |
281 .stabs "length:P(0,11)",64,0,575,24
|
|
|
994 |
282 .global UIMgr_txBuffer
|
|
|
995 |
283 .type UIMgr_txBuffer, @function
|
|
|
996 |
284 UIMgr_txBuffer:
|
|
|
997 |
285 .stabd 46,0,0
|
|
|
998 |
286 .stabn 68,0,576,.LM23-UIMgr_txBuffer
|
|
|
999 |
287 .LM23:
|
|
|
1000 |
288 /* prologue: frame size=0 */
|
|
|
1001 |
289 0094 0F93 push r16
|
|
|
1002 |
290 0096 1F93 push r17
|
|
|
1003 |
291 0098 CF93 push r28
|
|
|
1004 |
292 009a DF93 push r29
|
|
|
1005 |
293 /* prologue end (size=4) */
|
|
|
1006 |
294 009c EC01 movw r28,r24
|
|
|
1007 |
295 009e 862F mov r24,r22
|
|
|
1008 |
296 .stabn 68,0,577,.LM24-UIMgr_txBuffer
|
|
|
1009 |
297 .LM24:
|
|
|
1010 |
298 00a0 6150 subi r22,lo8(-(-1))
|
|
|
1011 |
299 00a2 6F3F cpi r22,lo8(-1)
|
|
|
1012 |
300 00a4 49F0 breq .L23
|
|
|
1013 |
301 .stabn 68,0,577,.LM25-UIMgr_txBuffer
|
|
|
1014 |
302 .LM25:
|
|
|
1015 |
303 00a6 162F mov r17,r22
|
|
|
1016 |
304 00a8 861B sub r24,r22
|
|
|
1017 |
305 00aa 082F mov r16,r24
|
|
|
1018 |
306 00ac 0250 subi r16,lo8(-(-2))
|
|
|
1019 |
307 .L22:
|
|
|
1020 |
308 .stabn 68,0,579,.LM26-UIMgr_txBuffer
|
182 |
kaklik |
1021 |
GAS LISTING /tmp/ccRvT1Qm.s page 18
|
151 |
kaklik |
1022 |
|
|
|
1023 |
|
|
|
1024 |
309 .LM26:
|
|
|
1025 |
310 00ae 8991 ld r24,Y+
|
|
|
1026 |
311 00b0 00D0 rcall UartInt_txByte
|
|
|
1027 |
312 .stabn 68,0,577,.LM27-UIMgr_txBuffer
|
|
|
1028 |
313 .LM27:
|
|
|
1029 |
314 00b2 1150 subi r17,lo8(-(-1))
|
|
|
1030 |
315 00b4 0117 cp r16,r17
|
|
|
1031 |
316 00b6 D9F7 brne .L22
|
|
|
1032 |
317 .L23:
|
|
|
1033 |
318 /* epilogue: frame size=0 */
|
|
|
1034 |
319 00b8 DF91 pop r29
|
|
|
1035 |
320 00ba CF91 pop r28
|
|
|
1036 |
321 00bc 1F91 pop r17
|
|
|
1037 |
322 00be 0F91 pop r16
|
|
|
1038 |
323 00c0 0895 ret
|
|
|
1039 |
324 /* epilogue end (size=5) */
|
|
|
1040 |
325 /* function UIMgr_txBuffer size 23 (14) */
|
|
|
1041 |
326 .size UIMgr_txBuffer, .-UIMgr_txBuffer
|
|
|
1042 |
327 .Lscope4:
|
|
|
1043 |
328 .stabs "",36,0,0,.Lscope4-UIMgr_txBuffer
|
|
|
1044 |
329 .stabd 78,0,0
|
|
|
1045 |
330 .stabs "UIMgr_transmitPendingData:F(0,15)",36,0,178,UIMgr_transmitPendingData
|
|
|
1046 |
331 .global UIMgr_transmitPendingData
|
|
|
1047 |
332 .type UIMgr_transmitPendingData, @function
|
|
|
1048 |
333 UIMgr_transmitPendingData:
|
|
|
1049 |
334 .stabd 46,0,0
|
|
|
1050 |
335 .stabn 68,0,178,.LM28-UIMgr_transmitPendingData
|
|
|
1051 |
336 .LM28:
|
|
|
1052 |
337 /* prologue: frame size=0 */
|
|
|
1053 |
338 /* prologue end (size=0) */
|
|
|
1054 |
339 .stabn 68,0,179,.LM29-UIMgr_transmitPendingData
|
|
|
1055 |
340 .LM29:
|
|
|
1056 |
341 00c2 9091 0000 lds r25,UIMgr_txFifoHead
|
|
|
1057 |
342 00c6 8091 0000 lds r24,UIMgr_txFifoTail
|
|
|
1058 |
343 00ca 9817 cp r25,r24
|
|
|
1059 |
344 00cc 11F0 breq .L28
|
|
|
1060 |
345 .stabn 68,0,182,.LM30-UIMgr_transmitPendingData
|
|
|
1061 |
346 .LM30:
|
|
|
1062 |
347 00ce B6DF rcall UIMgr_readTxFifo
|
|
|
1063 |
348 00d0 00D0 rcall UartInt_txByte
|
|
|
1064 |
349 .L28:
|
|
|
1065 |
350 00d2 0895 ret
|
|
|
1066 |
351 /* epilogue: frame size=0 */
|
|
|
1067 |
352 /* epilogue: noreturn */
|
|
|
1068 |
353 /* epilogue end (size=0) */
|
|
|
1069 |
354 /* function UIMgr_transmitPendingData size 9 (9) */
|
|
|
1070 |
355 .size UIMgr_transmitPendingData, .-UIMgr_transmitPendingData
|
|
|
1071 |
356 .Lscope5:
|
|
|
1072 |
357 .stabs "",36,0,0,.Lscope5-UIMgr_transmitPendingData
|
|
|
1073 |
358 .stabd 78,0,0
|
|
|
1074 |
359 .stabs "UIMgr_convertTokenToCmd:f(0,15)",36,0,450,UIMgr_convertTokenToCmd
|
|
|
1075 |
360 .type UIMgr_convertTokenToCmd, @function
|
|
|
1076 |
361 UIMgr_convertTokenToCmd:
|
|
|
1077 |
362 .stabd 46,0,0
|
|
|
1078 |
363 .stabn 68,0,450,.LM31-UIMgr_convertTokenToCmd
|
|
|
1079 |
364 .LM31:
|
|
|
1080 |
365 /* prologue: frame size=0 */
|
182 |
kaklik |
1081 |
GAS LISTING /tmp/ccRvT1Qm.s page 19
|
151 |
kaklik |
1082 |
|
|
|
1083 |
|
|
|
1084 |
366 /* prologue end (size=0) */
|
|
|
1085 |
367 .stabn 68,0,451,.LM32-UIMgr_convertTokenToCmd
|
|
|
1086 |
368 .LM32:
|
|
|
1087 |
369 00d4 9091 0000 lds r25,asciiTokenBuffer
|
|
|
1088 |
370 00d8 9035 cpi r25,lo8(80)
|
|
|
1089 |
371 00da 41F4 brne .L30
|
|
|
1090 |
372 .stabn 68,0,451,.LM33-UIMgr_convertTokenToCmd
|
|
|
1091 |
373 .LM33:
|
|
|
1092 |
374 00dc 8091 0000 lds r24,asciiTokenBuffer+1
|
|
|
1093 |
375 00e0 8734 cpi r24,lo8(71)
|
|
|
1094 |
376 00e2 09F5 brne .L32
|
|
|
1095 |
377 .stabn 68,0,456,.LM34-UIMgr_convertTokenToCmd
|
|
|
1096 |
378 .LM34:
|
|
|
1097 |
379 00e4 81E0 ldi r24,lo8(1)
|
|
|
1098 |
380 00e6 8093 0000 sts receivedCmd,r24
|
|
|
1099 |
381 00ea 48C0 rjmp .L34
|
|
|
1100 |
382 .L30:
|
|
|
1101 |
383 .stabn 68,0,458,.LM35-UIMgr_convertTokenToCmd
|
|
|
1102 |
384 .LM35:
|
|
|
1103 |
385 00ec 9734 cpi r25,lo8(71)
|
|
|
1104 |
386 00ee 39F4 brne .L35
|
|
|
1105 |
387 00f0 8091 0000 lds r24,asciiTokenBuffer+1
|
|
|
1106 |
388 00f4 8635 cpi r24,lo8(86)
|
|
|
1107 |
389 00f6 09F5 brne .L37
|
|
|
1108 |
390 .stabn 68,0,462,.LM36-UIMgr_convertTokenToCmd
|
|
|
1109 |
391 .LM36:
|
|
|
1110 |
392 00f8 1092 0000 sts receivedCmd,__zero_reg__
|
|
|
1111 |
393 00fc 3FC0 rjmp .L34
|
|
|
1112 |
394 .L35:
|
|
|
1113 |
395 .stabn 68,0,464,.LM37-UIMgr_convertTokenToCmd
|
|
|
1114 |
396 .LM37:
|
|
|
1115 |
397 00fe 9434 cpi r25,lo8(68)
|
|
|
1116 |
398 0100 41F4 brne .L39
|
|
|
1117 |
399 0102 8091 0000 lds r24,asciiTokenBuffer+1
|
|
|
1118 |
400 0106 8634 cpi r24,lo8(70)
|
|
|
1119 |
401 0108 11F5 brne .L41
|
|
|
1120 |
402 .stabn 68,0,468,.LM38-UIMgr_convertTokenToCmd
|
|
|
1121 |
403 .LM38:
|
|
|
1122 |
404 010a 83E0 ldi r24,lo8(3)
|
|
|
1123 |
405 010c 8093 0000 sts receivedCmd,r24
|
|
|
1124 |
406 0110 35C0 rjmp .L34
|
|
|
1125 |
407 .L39:
|
|
|
1126 |
408 .stabn 68,0,470,.LM39-UIMgr_convertTokenToCmd
|
|
|
1127 |
409 .LM39:
|
|
|
1128 |
410 0112 9334 cpi r25,lo8(67)
|
|
|
1129 |
411 0114 41F4 brne .L32
|
|
|
1130 |
412 0116 8091 0000 lds r24,asciiTokenBuffer+1
|
|
|
1131 |
413 011a 8235 cpi r24,lo8(82)
|
|
|
1132 |
414 011c 11F5 brne .L44
|
|
|
1133 |
415 .stabn 68,0,474,.LM40-UIMgr_convertTokenToCmd
|
|
|
1134 |
416 .LM40:
|
|
|
1135 |
417 011e 82E0 ldi r24,lo8(2)
|
|
|
1136 |
418 0120 8093 0000 sts receivedCmd,r24
|
|
|
1137 |
419 0124 2BC0 rjmp .L34
|
|
|
1138 |
420 .L32:
|
|
|
1139 |
421 .stabn 68,0,476,.LM41-UIMgr_convertTokenToCmd
|
|
|
1140 |
422 .LM41:
|
182 |
kaklik |
1141 |
GAS LISTING /tmp/ccRvT1Qm.s page 20
|
151 |
kaklik |
1142 |
|
|
|
1143 |
|
|
|
1144 |
423 0126 9534 cpi r25,lo8(69)
|
|
|
1145 |
424 0128 41F4 brne .L37
|
|
|
1146 |
425 012a 8091 0000 lds r24,asciiTokenBuffer+1
|
|
|
1147 |
426 012e 8435 cpi r24,lo8(84)
|
|
|
1148 |
427 0130 11F5 brne .L47
|
|
|
1149 |
428 .stabn 68,0,480,.LM42-UIMgr_convertTokenToCmd
|
|
|
1150 |
429 .LM42:
|
|
|
1151 |
430 0132 84E0 ldi r24,lo8(4)
|
|
|
1152 |
431 0134 8093 0000 sts receivedCmd,r24
|
|
|
1153 |
432 0138 21C0 rjmp .L34
|
|
|
1154 |
433 .L37:
|
|
|
1155 |
434 .stabn 68,0,482,.LM43-UIMgr_convertTokenToCmd
|
|
|
1156 |
435 .LM43:
|
|
|
1157 |
436 013a 9335 cpi r25,lo8(83)
|
|
|
1158 |
437 013c 41F4 brne .L41
|
|
|
1159 |
438 013e 8091 0000 lds r24,asciiTokenBuffer+1
|
|
|
1160 |
439 0142 8D34 cpi r24,lo8(77)
|
|
|
1161 |
440 0144 C1F4 brne .L47
|
|
|
1162 |
441 .stabn 68,0,486,.LM44-UIMgr_convertTokenToCmd
|
|
|
1163 |
442 .LM44:
|
|
|
1164 |
443 0146 86E0 ldi r24,lo8(6)
|
|
|
1165 |
444 0148 8093 0000 sts receivedCmd,r24
|
|
|
1166 |
445 014c 17C0 rjmp .L34
|
|
|
1167 |
446 .L41:
|
|
|
1168 |
447 .stabn 68,0,488,.LM45-UIMgr_convertTokenToCmd
|
|
|
1169 |
448 .LM45:
|
|
|
1170 |
449 014e 9434 cpi r25,lo8(68)
|
|
|
1171 |
450 0150 41F4 brne .L44
|
|
|
1172 |
451 0152 8091 0000 lds r24,asciiTokenBuffer+1
|
|
|
1173 |
452 0156 8435 cpi r24,lo8(84)
|
|
|
1174 |
453 0158 71F4 brne .L47
|
|
|
1175 |
454 .stabn 68,0,491,.LM46-UIMgr_convertTokenToCmd
|
|
|
1176 |
455 .LM46:
|
|
|
1177 |
456 015a 85E0 ldi r24,lo8(5)
|
|
|
1178 |
457 015c 8093 0000 sts receivedCmd,r24
|
|
|
1179 |
458 0160 0DC0 rjmp .L34
|
|
|
1180 |
459 .L44:
|
|
|
1181 |
460 .stabn 68,0,493,.LM47-UIMgr_convertTokenToCmd
|
|
|
1182 |
461 .LM47:
|
|
|
1183 |
462 0162 9235 cpi r25,lo8(82)
|
|
|
1184 |
463 0164 41F4 brne .L47
|
|
|
1185 |
464 0166 8091 0000 lds r24,asciiTokenBuffer+1
|
|
|
1186 |
465 016a 8335 cpi r24,lo8(83)
|
|
|
1187 |
466 016c 21F4 brne .L47
|
|
|
1188 |
467 .stabn 68,0,496,.LM48-UIMgr_convertTokenToCmd
|
|
|
1189 |
468 .LM48:
|
|
|
1190 |
469 016e 87E0 ldi r24,lo8(7)
|
|
|
1191 |
470 0170 8093 0000 sts receivedCmd,r24
|
|
|
1192 |
471 0174 03C0 rjmp .L34
|
|
|
1193 |
472 .L47:
|
|
|
1194 |
473 .stabn 68,0,501,.LM49-UIMgr_convertTokenToCmd
|
|
|
1195 |
474 .LM49:
|
|
|
1196 |
475 0176 89E0 ldi r24,lo8(9)
|
|
|
1197 |
476 0178 8093 0000 sts receivedCmd,r24
|
|
|
1198 |
477 .L34:
|
|
|
1199 |
478 .stabn 68,0,503,.LM50-UIMgr_convertTokenToCmd
|
|
|
1200 |
479 .LM50:
|
182 |
kaklik |
1201 |
GAS LISTING /tmp/ccRvT1Qm.s page 21
|
151 |
kaklik |
1202 |
|
|
|
1203 |
|
|
|
1204 |
480 017c 83E0 ldi r24,lo8(3)
|
|
|
1205 |
481 017e E0E0 ldi r30,lo8(asciiTokenBuffer)
|
|
|
1206 |
482 0180 F0E0 ldi r31,hi8(asciiTokenBuffer)
|
|
|
1207 |
483 0182 1192 st Z+,__zero_reg__
|
|
|
1208 |
484 0184 8A95 dec r24
|
|
|
1209 |
485 0186 E9F7 brne .-6
|
|
|
1210 |
486 .stabn 68,0,504,.LM51-UIMgr_convertTokenToCmd
|
|
|
1211 |
487 .LM51:
|
|
|
1212 |
488 0188 1092 0000 sts charIndex,__zero_reg__
|
|
|
1213 |
489 .stabn 68,0,505,.LM52-UIMgr_convertTokenToCmd
|
|
|
1214 |
490 .LM52:
|
|
|
1215 |
491 018c 1092 0000 sts charCount,__zero_reg__
|
|
|
1216 |
492 /* epilogue: frame size=0 */
|
|
|
1217 |
493 0190 0895 ret
|
|
|
1218 |
494 /* epilogue end (size=1) */
|
|
|
1219 |
495 /* function UIMgr_convertTokenToCmd size 95 (94) */
|
|
|
1220 |
496 .size UIMgr_convertTokenToCmd, .-UIMgr_convertTokenToCmd
|
|
|
1221 |
497 .Lscope6:
|
|
|
1222 |
498 .stabs "",36,0,0,.Lscope6-UIMgr_convertTokenToCmd
|
|
|
1223 |
499 .stabd 78,0,0
|
|
|
1224 |
500 .stabs "UIMgr_init:F(0,15)",36,0,137,UIMgr_init
|
|
|
1225 |
501 .global UIMgr_init
|
|
|
1226 |
502 .type UIMgr_init, @function
|
|
|
1227 |
503 UIMgr_init:
|
|
|
1228 |
504 .stabd 46,0,0
|
|
|
1229 |
505 .stabn 68,0,137,.LM53-UIMgr_init
|
|
|
1230 |
506 .LM53:
|
|
|
1231 |
507 /* prologue: frame size=0 */
|
|
|
1232 |
508 /* prologue end (size=0) */
|
|
|
1233 |
509 .stabn 68,0,138,.LM54-UIMgr_init
|
|
|
1234 |
510 .LM54:
|
|
|
1235 |
511 0192 1092 0000 sts asciiTokenBuffer,__zero_reg__
|
|
|
1236 |
512 0196 1092 0000 sts (asciiTokenBuffer)+1,__zero_reg__
|
|
|
1237 |
513 019a 1092 0000 sts (asciiTokenBuffer)+2,__zero_reg__
|
|
|
1238 |
514 019e 1092 0000 sts (asciiTokenBuffer)+3,__zero_reg__
|
|
|
1239 |
515 .stabn 68,0,139,.LM55-UIMgr_init
|
|
|
1240 |
516 .LM55:
|
|
|
1241 |
517 01a2 80E4 ldi r24,lo8(64)
|
|
|
1242 |
518 01a4 E0E0 ldi r30,lo8(tokenBuffer)
|
|
|
1243 |
519 01a6 F0E0 ldi r31,hi8(tokenBuffer)
|
|
|
1244 |
520 01a8 982F mov r25,r24
|
|
|
1245 |
521 01aa 1192 st Z+,__zero_reg__
|
|
|
1246 |
522 01ac 9A95 dec r25
|
|
|
1247 |
523 01ae E9F7 brne .-6
|
|
|
1248 |
524 .stabn 68,0,140,.LM56-UIMgr_init
|
|
|
1249 |
525 .LM56:
|
|
|
1250 |
526 01b0 E0E0 ldi r30,lo8(UIMgr_txFifo)
|
|
|
1251 |
527 01b2 F0E0 ldi r31,hi8(UIMgr_txFifo)
|
|
|
1252 |
528 01b4 1192 st Z+,__zero_reg__
|
|
|
1253 |
529 01b6 8A95 dec r24
|
|
|
1254 |
530 01b8 E9F7 brne .-6
|
|
|
1255 |
531 .stabn 68,0,141,.LM57-UIMgr_init
|
|
|
1256 |
532 .LM57:
|
|
|
1257 |
533 01ba 80E2 ldi r24,lo8(32)
|
|
|
1258 |
534 01bc E0E0 ldi r30,lo8(UIMgr_rxFifo)
|
|
|
1259 |
535 01be F0E0 ldi r31,hi8(UIMgr_rxFifo)
|
|
|
1260 |
536 01c0 1192 st Z+,__zero_reg__
|
182 |
kaklik |
1261 |
GAS LISTING /tmp/ccRvT1Qm.s page 22
|
151 |
kaklik |
1262 |
|
|
|
1263 |
|
|
|
1264 |
537 01c2 8A95 dec r24
|
|
|
1265 |
538 01c4 E9F7 brne .-6
|
|
|
1266 |
539 /* epilogue: frame size=0 */
|
|
|
1267 |
540 01c6 0895 ret
|
|
|
1268 |
541 /* epilogue end (size=1) */
|
|
|
1269 |
542 /* function UIMgr_init size 27 (26) */
|
|
|
1270 |
543 .size UIMgr_init, .-UIMgr_init
|
|
|
1271 |
544 .Lscope7:
|
|
|
1272 |
545 .stabs "",36,0,0,.Lscope7-UIMgr_init
|
|
|
1273 |
546 .stabd 78,0,0
|
|
|
1274 |
547 .stabs "UIMgr_convertTokenToValue:f(0,15)",36,0,422,UIMgr_convertTokenToValue
|
|
|
1275 |
548 .type UIMgr_convertTokenToValue, @function
|
|
|
1276 |
549 UIMgr_convertTokenToValue:
|
|
|
1277 |
550 .stabd 46,0,0
|
|
|
1278 |
551 .stabn 68,0,422,.LM58-UIMgr_convertTokenToValue
|
|
|
1279 |
552 .LM58:
|
|
|
1280 |
553 /* prologue: frame size=0 */
|
|
|
1281 |
554 /* prologue end (size=0) */
|
|
|
1282 |
555 .stabn 68,0,425,.LM59-UIMgr_convertTokenToValue
|
|
|
1283 |
556 .LM59:
|
|
|
1284 |
557 01c8 80E0 ldi r24,lo8(asciiTokenBuffer)
|
|
|
1285 |
558 01ca 90E0 ldi r25,hi8(asciiTokenBuffer)
|
|
|
1286 |
559 01cc 00D0 rcall atoi
|
|
|
1287 |
560 01ce 9C01 movw r18,r24
|
|
|
1288 |
561 .stabn 68,0,426,.LM60-UIMgr_convertTokenToValue
|
|
|
1289 |
562 .LM60:
|
|
|
1290 |
563 01d0 8F3F cpi r24,255
|
|
|
1291 |
564 01d2 9105 cpc r25,__zero_reg__
|
|
|
1292 |
565 01d4 69F0 breq .L59
|
|
|
1293 |
566 01d6 60F0 brlo .L59
|
|
|
1294 |
567 .stabn 68,0,429,.LM61-UIMgr_convertTokenToValue
|
|
|
1295 |
568 .LM61:
|
|
|
1296 |
569 01d8 89E0 ldi r24,lo8(9)
|
|
|
1297 |
570 01da 8093 0000 sts receivedCmd,r24
|
|
|
1298 |
571 .stabn 68,0,430,.LM62-UIMgr_convertTokenToValue
|
|
|
1299 |
572 .LM62:
|
|
|
1300 |
573 01de 8091 0000 lds r24,tokenCount
|
|
|
1301 |
574 01e2 E0E0 ldi r30,lo8(tokenBuffer)
|
|
|
1302 |
575 01e4 F0E0 ldi r31,hi8(tokenBuffer)
|
|
|
1303 |
576 01e6 E80F add r30,r24
|
|
|
1304 |
577 01e8 F11D adc r31,__zero_reg__
|
|
|
1305 |
578 01ea 8FEF ldi r24,lo8(-1)
|
|
|
1306 |
579 01ec 8083 st Z,r24
|
|
|
1307 |
580 01ee 07C0 rjmp .L61
|
|
|
1308 |
581 .L59:
|
|
|
1309 |
582 .stabn 68,0,435,.LM63-UIMgr_convertTokenToValue
|
|
|
1310 |
583 .LM63:
|
|
|
1311 |
584 01f0 8091 0000 lds r24,tokenCount
|
|
|
1312 |
585 01f4 E0E0 ldi r30,lo8(tokenBuffer)
|
|
|
1313 |
586 01f6 F0E0 ldi r31,hi8(tokenBuffer)
|
|
|
1314 |
587 01f8 E80F add r30,r24
|
|
|
1315 |
588 01fa F11D adc r31,__zero_reg__
|
|
|
1316 |
589 01fc 2083 st Z,r18
|
|
|
1317 |
590 .L61:
|
|
|
1318 |
591 .stabn 68,0,437,.LM64-UIMgr_convertTokenToValue
|
|
|
1319 |
592 .LM64:
|
|
|
1320 |
593 01fe 83E0 ldi r24,lo8(3)
|
182 |
kaklik |
1321 |
GAS LISTING /tmp/ccRvT1Qm.s page 23
|
151 |
kaklik |
1322 |
|
|
|
1323 |
|
|
|
1324 |
594 0200 E0E0 ldi r30,lo8(asciiTokenBuffer)
|
|
|
1325 |
595 0202 F0E0 ldi r31,hi8(asciiTokenBuffer)
|
|
|
1326 |
596 0204 1192 st Z+,__zero_reg__
|
|
|
1327 |
597 0206 8A95 dec r24
|
|
|
1328 |
598 0208 E9F7 brne .-6
|
|
|
1329 |
599 .stabn 68,0,438,.LM65-UIMgr_convertTokenToValue
|
|
|
1330 |
600 .LM65:
|
|
|
1331 |
601 020a 1092 0000 sts charIndex,__zero_reg__
|
|
|
1332 |
602 .stabn 68,0,439,.LM66-UIMgr_convertTokenToValue
|
|
|
1333 |
603 .LM66:
|
|
|
1334 |
604 020e 1092 0000 sts charCount,__zero_reg__
|
|
|
1335 |
605 /* epilogue: frame size=0 */
|
|
|
1336 |
606 0212 0895 ret
|
|
|
1337 |
607 /* epilogue end (size=1) */
|
|
|
1338 |
608 /* function UIMgr_convertTokenToValue size 38 (37) */
|
|
|
1339 |
609 .size UIMgr_convertTokenToValue, .-UIMgr_convertTokenToValue
|
|
|
1340 |
610 .stabs "newValue:r(0,4)",64,0,423,18
|
|
|
1341 |
611 .stabn 192,0,0,UIMgr_convertTokenToValue-UIMgr_convertTokenToValue
|
|
|
1342 |
612 .stabn 224,0,0,.Lscope8-UIMgr_convertTokenToValue
|
|
|
1343 |
613 .Lscope8:
|
|
|
1344 |
614 .stabs "",36,0,0,.Lscope8-UIMgr_convertTokenToValue
|
|
|
1345 |
615 .stabd 78,0,0
|
|
|
1346 |
616 .stabs "UIMgr_processReceivedData:F(0,15)",36,0,193,UIMgr_processReceivedData
|
|
|
1347 |
617 .global UIMgr_processReceivedData
|
|
|
1348 |
618 .type UIMgr_processReceivedData, @function
|
|
|
1349 |
619 UIMgr_processReceivedData:
|
|
|
1350 |
620 .stabd 46,0,0
|
|
|
1351 |
621 .stabn 68,0,193,.LM67-UIMgr_processReceivedData
|
|
|
1352 |
622 .LM67:
|
|
|
1353 |
623 /* prologue: frame size=0 */
|
|
|
1354 |
624 0214 FF92 push r15
|
|
|
1355 |
625 0216 0F93 push r16
|
|
|
1356 |
626 0218 1F93 push r17
|
|
|
1357 |
627 021a CF93 push r28
|
|
|
1358 |
628 021c DF93 push r29
|
|
|
1359 |
629 /* prologue end (size=5) */
|
|
|
1360 |
630 021e 0F2E mov __tmp_reg__,r31
|
|
|
1361 |
631 0220 F9E0 ldi r31,lo8(9)
|
|
|
1362 |
632 0222 FF2E mov r15,r31
|
|
|
1363 |
633 0224 F02D mov r31,__tmp_reg__
|
|
|
1364 |
634 0226 FFC0 rjmp .L119
|
|
|
1365 |
635 .L65:
|
|
|
1366 |
636 .LBB22:
|
|
|
1367 |
637 .LBB23:
|
|
|
1368 |
638 .stabn 68,0,612,.LM68-UIMgr_processReceivedData
|
|
|
1369 |
639 .LM68:
|
|
|
1370 |
640 /* #APP */
|
|
|
1371 |
641 0228 F894 cli
|
|
|
1372 |
642 .stabn 68,0,613,.LM69-UIMgr_processReceivedData
|
|
|
1373 |
643 .LM69:
|
|
|
1374 |
644 /* #NOAPP */
|
|
|
1375 |
645 022a E22F mov r30,r18
|
|
|
1376 |
646 022c FF27 clr r31
|
|
|
1377 |
647 022e E050 subi r30,lo8(-(UIMgr_rxFifo))
|
|
|
1378 |
648 0230 F040 sbci r31,hi8(-(UIMgr_rxFifo))
|
|
|
1379 |
649 0232 9081 ld r25,Z
|
|
|
1380 |
650 .stabn 68,0,615,.LM70-UIMgr_processReceivedData
|
182 |
kaklik |
1381 |
GAS LISTING /tmp/ccRvT1Qm.s page 24
|
151 |
kaklik |
1382 |
|
|
|
1383 |
|
|
|
1384 |
651 .LM70:
|
|
|
1385 |
652 0234 822F mov r24,r18
|
|
|
1386 |
653 0236 8F5F subi r24,lo8(-(1))
|
|
|
1387 |
654 0238 8F71 andi r24,lo8(31)
|
|
|
1388 |
655 023a 8093 0000 sts UIMgr_rxFifoTail,r24
|
|
|
1389 |
656 .stabn 68,0,616,.LM71-UIMgr_processReceivedData
|
|
|
1390 |
657 .LM71:
|
|
|
1391 |
658 /* #APP */
|
|
|
1392 |
659 023e 7894 sei
|
|
|
1393 |
660 /* #NOAPP */
|
|
|
1394 |
661 .LBE23:
|
|
|
1395 |
662 .LBE22:
|
|
|
1396 |
663 .stabn 68,0,202,.LM72-UIMgr_processReceivedData
|
|
|
1397 |
664 .LM72:
|
|
|
1398 |
665 0240 9D30 cpi r25,lo8(13)
|
|
|
1399 |
666 0242 09F0 breq .+2
|
|
|
1400 |
667 0244 B1C0 rjmp .L66
|
|
|
1401 |
668 .stabn 68,0,205,.LM73-UIMgr_processReceivedData
|
|
|
1402 |
669 .LM73:
|
|
|
1403 |
670 0246 8091 0000 lds r24,tokenCount
|
|
|
1404 |
671 024a 8823 tst r24
|
|
|
1405 |
672 024c 11F4 brne .L68
|
|
|
1406 |
673 .stabn 68,0,208,.LM74-UIMgr_processReceivedData
|
|
|
1407 |
674 .LM74:
|
|
|
1408 |
675 024e 42DF rcall UIMgr_convertTokenToCmd
|
|
|
1409 |
676 0250 06C0 rjmp .L70
|
|
|
1410 |
677 .L68:
|
|
|
1411 |
678 .stabn 68,0,213,.LM75-UIMgr_processReceivedData
|
|
|
1412 |
679 .LM75:
|
|
|
1413 |
680 0252 BADF rcall UIMgr_convertTokenToValue
|
|
|
1414 |
681 .stabn 68,0,214,.LM76-UIMgr_processReceivedData
|
|
|
1415 |
682 .LM76:
|
|
|
1416 |
683 0254 8091 0000 lds r24,tokenCount
|
|
|
1417 |
684 0258 8F5F subi r24,lo8(-(1))
|
|
|
1418 |
685 025a 8093 0000 sts tokenCount,r24
|
|
|
1419 |
686 .L70:
|
|
|
1420 |
687 .stabn 68,0,218,.LM77-UIMgr_processReceivedData
|
|
|
1421 |
688 .LM77:
|
|
|
1422 |
689 025e 84E6 ldi r24,lo8(100)
|
|
|
1423 |
690 0260 90E0 ldi r25,hi8(100)
|
|
|
1424 |
691 0262 00D0 rcall Utility_delay
|
|
|
1425 |
692 .stabn 68,0,219,.LM78-UIMgr_processReceivedData
|
|
|
1426 |
693 .LM78:
|
|
|
1427 |
694 0264 8091 0000 lds r24,receivedCmd
|
|
|
1428 |
695 0268 8850 subi r24,lo8(-(-8))
|
|
|
1429 |
696 026a 8230 cpi r24,lo8(2)
|
|
|
1430 |
697 026c 58F4 brsh .L71
|
|
|
1431 |
698 .LBB24:
|
|
|
1432 |
699 .LBB25:
|
|
|
1433 |
700 .stabn 68,0,531,.LM79-UIMgr_processReceivedData
|
|
|
1434 |
701 .LM79:
|
|
|
1435 |
702 026e 8EE4 ldi r24,lo8(78)
|
|
|
1436 |
703 0270 F4DE rcall UIMgr_writeTxFifo
|
|
|
1437 |
704 .stabn 68,0,532,.LM80-UIMgr_processReceivedData
|
|
|
1438 |
705 .LM80:
|
|
|
1439 |
706 0272 83E4 ldi r24,lo8(67)
|
|
|
1440 |
707 0274 F2DE rcall UIMgr_writeTxFifo
|
182 |
kaklik |
1441 |
GAS LISTING /tmp/ccRvT1Qm.s page 25
|
151 |
kaklik |
1442 |
|
|
|
1443 |
|
|
|
1444 |
708 .stabn 68,0,533,.LM81-UIMgr_processReceivedData
|
|
|
1445 |
709 .LM81:
|
|
|
1446 |
710 0276 8BE4 ldi r24,lo8(75)
|
|
|
1447 |
711 0278 F0DE rcall UIMgr_writeTxFifo
|
|
|
1448 |
712 .stabn 68,0,534,.LM82-UIMgr_processReceivedData
|
|
|
1449 |
713 .LM82:
|
|
|
1450 |
714 027a 8DE0 ldi r24,lo8(13)
|
|
|
1451 |
715 027c EEDE rcall UIMgr_writeTxFifo
|
|
|
1452 |
716 .LBE25:
|
|
|
1453 |
717 .LBE24:
|
|
|
1454 |
718 .stabn 68,0,223,.LM83-UIMgr_processReceivedData
|
|
|
1455 |
719 .LM83:
|
|
|
1456 |
720 027e 80E9 ldi r24,lo8(-112)
|
|
|
1457 |
721 0280 00D0 rcall Exec_writeEventFifo
|
|
|
1458 |
722 0282 89C0 rjmp .L73
|
|
|
1459 |
723 .L71:
|
|
|
1460 |
724 .LBB26:
|
|
|
1461 |
725 .LBB27:
|
|
|
1462 |
726 .stabn 68,0,516,.LM84-UIMgr_processReceivedData
|
|
|
1463 |
727 .LM84:
|
|
|
1464 |
728 0284 81E4 ldi r24,lo8(65)
|
|
|
1465 |
729 0286 E9DE rcall UIMgr_writeTxFifo
|
|
|
1466 |
730 .stabn 68,0,517,.LM85-UIMgr_processReceivedData
|
|
|
1467 |
731 .LM85:
|
|
|
1468 |
732 0288 83E4 ldi r24,lo8(67)
|
|
|
1469 |
733 028a E7DE rcall UIMgr_writeTxFifo
|
|
|
1470 |
734 .stabn 68,0,518,.LM86-UIMgr_processReceivedData
|
|
|
1471 |
735 .LM86:
|
|
|
1472 |
736 028c 8BE4 ldi r24,lo8(75)
|
|
|
1473 |
737 028e E5DE rcall UIMgr_writeTxFifo
|
|
|
1474 |
738 .stabn 68,0,519,.LM87-UIMgr_processReceivedData
|
|
|
1475 |
739 .LM87:
|
|
|
1476 |
740 0290 8DE0 ldi r24,lo8(13)
|
|
|
1477 |
741 0292 E3DE rcall UIMgr_writeTxFifo
|
|
|
1478 |
742 .LBE27:
|
|
|
1479 |
743 .LBE26:
|
|
|
1480 |
744 .stabn 68,0,230,.LM88-UIMgr_processReceivedData
|
|
|
1481 |
745 .LM88:
|
|
|
1482 |
746 0294 80E9 ldi r24,lo8(-112)
|
|
|
1483 |
747 0296 00D0 rcall Exec_writeEventFifo
|
|
|
1484 |
748 .LBB28:
|
|
|
1485 |
749 .LBB29:
|
|
|
1486 |
750 .stabn 68,0,316,.LM89-UIMgr_processReceivedData
|
|
|
1487 |
751 .LM89:
|
|
|
1488 |
752 0298 8091 0000 lds r24,receivedCmd
|
|
|
1489 |
753 029c 8130 cpi r24,lo8(1)
|
|
|
1490 |
754 029e 09F4 brne .+2
|
|
|
1491 |
755 02a0 7AC0 rjmp .L73
|
|
|
1492 |
756 .stabn 68,0,319,.LM90-UIMgr_processReceivedData
|
|
|
1493 |
757 .LM90:
|
|
|
1494 |
758 02a2 8823 tst r24
|
|
|
1495 |
759 02a4 71F4 brne .L75
|
|
|
1496 |
760 .stabn 68,0,322,.LM91-UIMgr_processReceivedData
|
|
|
1497 |
761 .LM91:
|
|
|
1498 |
762 02a6 8091 0000 lds r24,AVRcamVersion
|
|
|
1499 |
763 02aa 8823 tst r24
|
|
|
1500 |
764 02ac 09F4 brne .+2
|
182 |
kaklik |
1501 |
GAS LISTING /tmp/ccRvT1Qm.s page 26
|
151 |
kaklik |
1502 |
|
|
|
1503 |
|
|
|
1504 |
765 02ae 73C0 rjmp .L73
|
|
|
1505 |
766 02b0 C0E0 ldi r28,lo8(AVRcamVersion)
|
|
|
1506 |
767 02b2 D0E0 ldi r29,hi8(AVRcamVersion)
|
|
|
1507 |
768 .L78:
|
|
|
1508 |
769 .stabn 68,0,324,.LM92-UIMgr_processReceivedData
|
|
|
1509 |
770 .LM92:
|
|
|
1510 |
771 02b4 2196 adiw r28,1
|
|
|
1511 |
772 02b6 D1DE rcall UIMgr_writeTxFifo
|
|
|
1512 |
773 .stabn 68,0,322,.LM93-UIMgr_processReceivedData
|
|
|
1513 |
774 .LM93:
|
|
|
1514 |
775 02b8 8881 ld r24,Y
|
|
|
1515 |
776 02ba 8823 tst r24
|
|
|
1516 |
777 02bc 09F4 brne .+2
|
|
|
1517 |
778 02be 6BC0 rjmp .L73
|
|
|
1518 |
779 02c0 F9CF rjmp .L78
|
|
|
1519 |
780 .L75:
|
|
|
1520 |
781 .stabn 68,0,327,.LM94-UIMgr_processReceivedData
|
|
|
1521 |
782 .LM94:
|
|
|
1522 |
783 02c2 8730 cpi r24,lo8(7)
|
|
|
1523 |
784 02c4 11F4 brne .L79
|
|
|
1524 |
785 .stabn 68,0,329,.LM95-UIMgr_processReceivedData
|
|
|
1525 |
786 .LM95:
|
|
|
1526 |
787 02c6 00D0 rcall CamInt_resetCam
|
|
|
1527 |
788 02c8 66C0 rjmp .L73
|
|
|
1528 |
789 .L79:
|
|
|
1529 |
790 .stabn 68,0,331,.LM96-UIMgr_processReceivedData
|
|
|
1530 |
791 .LM96:
|
|
|
1531 |
792 02ca 8330 cpi r24,lo8(3)
|
|
|
1532 |
793 02cc 31F4 brne .L81
|
|
|
1533 |
794 .stabn 68,0,340,.LM97-UIMgr_processReceivedData
|
|
|
1534 |
795 .LM97:
|
|
|
1535 |
796 02ce 84E6 ldi r24,lo8(100)
|
|
|
1536 |
797 02d0 90E0 ldi r25,hi8(100)
|
|
|
1537 |
798 02d2 00D0 rcall Utility_delay
|
|
|
1538 |
799 .stabn 68,0,341,.LM98-UIMgr_processReceivedData
|
|
|
1539 |
800 .LM98:
|
|
|
1540 |
801 02d4 82E0 ldi r24,lo8(2)
|
|
|
1541 |
802 02d6 00D0 rcall Exec_writeEventFifo
|
|
|
1542 |
803 02d8 5EC0 rjmp .L73
|
|
|
1543 |
804 .L81:
|
|
|
1544 |
805 .stabn 68,0,343,.LM99-UIMgr_processReceivedData
|
|
|
1545 |
806 .LM99:
|
|
|
1546 |
807 02da 8230 cpi r24,lo8(2)
|
|
|
1547 |
808 02dc 99F4 brne .L83
|
|
|
1548 |
809 .stabn 68,0,347,.LM100-UIMgr_processReceivedData
|
|
|
1549 |
810 .LM100:
|
|
|
1550 |
811 02de 8091 0000 lds r24,tokenCount
|
|
|
1551 |
812 02e2 8230 cpi r24,lo8(2)
|
|
|
1552 |
813 02e4 68F0 brlo .L85
|
|
|
1553 |
814 02e6 11E0 ldi r17,lo8(1)
|
|
|
1554 |
815 .L87:
|
|
|
1555 |
816 .stabn 68,0,350,.LM101-UIMgr_processReceivedData
|
|
|
1556 |
817 .LM101:
|
|
|
1557 |
818 02e8 E12F mov r30,r17
|
|
|
1558 |
819 02ea FF27 clr r31
|
|
|
1559 |
820 02ec E050 subi r30,lo8(-(tokenBuffer))
|
|
|
1560 |
821 02ee F040 sbci r31,hi8(-(tokenBuffer))
|
182 |
kaklik |
1561 |
GAS LISTING /tmp/ccRvT1Qm.s page 27
|
151 |
kaklik |
1562 |
|
|
|
1563 |
|
|
|
1564 |
822 02f0 6181 ldd r22,Z+1
|
|
|
1565 |
823 02f2 8081 ld r24,Z
|
|
|
1566 |
824 02f4 00D0 rcall CamConfig_setCamReg
|
|
|
1567 |
825 .stabn 68,0,347,.LM102-UIMgr_processReceivedData
|
|
|
1568 |
826 .LM102:
|
|
|
1569 |
827 02f6 1E5F subi r17,lo8(-(2))
|
|
|
1570 |
828 02f8 8091 0000 lds r24,tokenCount
|
|
|
1571 |
829 02fc 1817 cp r17,r24
|
|
|
1572 |
830 02fe A0F3 brlo .L87
|
|
|
1573 |
831 .L85:
|
|
|
1574 |
832 .stabn 68,0,352,.LM103-UIMgr_processReceivedData
|
|
|
1575 |
833 .LM103:
|
|
|
1576 |
834 0300 00D0 rcall CamConfig_sendFifoCmds
|
|
|
1577 |
835 0302 49C0 rjmp .L73
|
|
|
1578 |
836 .L83:
|
|
|
1579 |
837 .stabn 68,0,354,.LM104-UIMgr_processReceivedData
|
|
|
1580 |
838 .LM104:
|
|
|
1581 |
839 0304 8430 cpi r24,lo8(4)
|
|
|
1582 |
840 0306 31F4 brne .L88
|
|
|
1583 |
841 .stabn 68,0,357,.LM105-UIMgr_processReceivedData
|
|
|
1584 |
842 .LM105:
|
|
|
1585 |
843 0308 84E6 ldi r24,lo8(100)
|
|
|
1586 |
844 030a 90E0 ldi r25,hi8(100)
|
|
|
1587 |
845 030c 00D0 rcall Utility_delay
|
|
|
1588 |
846 .stabn 68,0,358,.LM106-UIMgr_processReceivedData
|
|
|
1589 |
847 .LM106:
|
|
|
1590 |
848 030e 80E8 ldi r24,lo8(-128)
|
|
|
1591 |
849 0310 00D0 rcall Exec_writeEventFifo
|
|
|
1592 |
850 0312 41C0 rjmp .L73
|
|
|
1593 |
851 .L88:
|
|
|
1594 |
852 .stabn 68,0,360,.LM107-UIMgr_processReceivedData
|
|
|
1595 |
853 .LM107:
|
|
|
1596 |
854 0314 8530 cpi r24,lo8(5)
|
|
|
1597 |
855 0316 19F4 brne .L90
|
|
|
1598 |
856 .stabn 68,0,362,.LM108-UIMgr_processReceivedData
|
|
|
1599 |
857 .LM108:
|
|
|
1600 |
858 0318 81E8 ldi r24,lo8(-127)
|
|
|
1601 |
859 031a 00D0 rcall Exec_writeEventFifo
|
|
|
1602 |
860 031c 3CC0 rjmp .L73
|
|
|
1603 |
861 .L90:
|
|
|
1604 |
862 .stabn 68,0,364,.LM109-UIMgr_processReceivedData
|
|
|
1605 |
863 .LM109:
|
|
|
1606 |
864 031e 8630 cpi r24,lo8(6)
|
|
|
1607 |
865 0320 09F0 breq .+2
|
|
|
1608 |
866 0322 39C0 rjmp .L73
|
|
|
1609 |
867 .stabn 68,0,367,.LM110-UIMgr_processReceivedData
|
|
|
1610 |
868 .LM110:
|
|
|
1611 |
869 0324 8091 0000 lds r24,tokenCount
|
|
|
1612 |
870 0328 8823 tst r24
|
|
|
1613 |
871 032a 09F4 brne .+2
|
|
|
1614 |
872 032c 34C0 rjmp .L73
|
|
|
1615 |
873 032e 40E0 ldi r20,lo8(0)
|
|
|
1616 |
874 0330 00E0 ldi r16,lo8(tokenBuffer)
|
|
|
1617 |
875 0332 10E0 ldi r17,hi8(tokenBuffer)
|
|
|
1618 |
876 0334 60E0 ldi r22,lo8(colorMap)
|
|
|
1619 |
877 0336 70E0 ldi r23,hi8(colorMap)
|
|
|
1620 |
878 .L94:
|
182 |
kaklik |
1621 |
GAS LISTING /tmp/ccRvT1Qm.s page 28
|
151 |
kaklik |
1622 |
|
|
|
1623 |
|
|
|
1624 |
879 .stabn 68,0,369,.LM111-UIMgr_processReceivedData
|
|
|
1625 |
880 .LM111:
|
|
|
1626 |
881 0338 842F mov r24,r20
|
|
|
1627 |
882 033a 9927 clr r25
|
|
|
1628 |
883 033c 9C01 movw r18,r24
|
|
|
1629 |
884 033e 2F5F subi r18,lo8(-(1))
|
|
|
1630 |
885 0340 3F4F sbci r19,hi8(-(1))
|
|
|
1631 |
886 0342 F901 movw r30,r18
|
|
|
1632 |
887 0344 E00F add r30,r16
|
|
|
1633 |
888 0346 F11F adc r31,r17
|
|
|
1634 |
889 0348 E081 ld r30,Z
|
|
|
1635 |
890 034a EC01 movw r28,r24
|
|
|
1636 |
891 034c C60F add r28,r22
|
|
|
1637 |
892 034e D71F adc r29,r23
|
|
|
1638 |
893 0350 E883 st Y,r30
|
|
|
1639 |
894 .LBB30:
|
|
|
1640 |
895 .LBB31:
|
|
|
1641 |
896 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h",132,0,0,.Ltext1
|
|
|
1642 |
897 .Ltext1:
|
|
|
1643 |
1:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /* Copyright (c) 2002, 2003, 2004 Marek Michalkiewicz
|
|
|
1644 |
2:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Copyright (c) 2005, 2006 Bjoern Haase
|
|
|
1645 |
3:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** All rights reserved.
|
|
|
1646 |
4:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1647 |
5:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Redistribution and use in source and binary forms, with or without
|
|
|
1648 |
6:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** modification, are permitted provided that the following conditions are met:
|
|
|
1649 |
7:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1650 |
8:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** * Redistributions of source code must retain the above copyright
|
|
|
1651 |
9:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** notice, this list of conditions and the following disclaimer.
|
|
|
1652 |
10:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1653 |
11:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** * Redistributions in binary form must reproduce the above copyright
|
|
|
1654 |
12:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** notice, this list of conditions and the following disclaimer in
|
|
|
1655 |
13:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** the documentation and/or other materials provided with the
|
|
|
1656 |
14:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** distribution.
|
|
|
1657 |
15:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1658 |
16:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** * Neither the name of the copyright holders nor the names of
|
|
|
1659 |
17:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** contributors may be used to endorse or promote products derived
|
|
|
1660 |
18:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** from this software without specific prior written permission.
|
|
|
1661 |
19:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1662 |
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"
|
|
|
1663 |
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
|
|
|
1664 |
22:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
|
1665 |
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
|
|
|
1666 |
24:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
|
1667 |
25:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
|
1668 |
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
|
|
|
1669 |
27:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
|
1670 |
28:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
|
1671 |
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
|
|
|
1672 |
30:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** POSSIBILITY OF SUCH DAMAGE. */
|
|
|
1673 |
31:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1674 |
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 $ */
|
|
|
1675 |
33:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1676 |
34:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /*
|
|
|
1677 |
35:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom.h
|
|
|
1678 |
36:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1679 |
37:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Contributors:
|
|
|
1680 |
38:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Created by Marek Michalkiewicz <marekm@linux.org.pl>
|
182 |
kaklik |
1681 |
GAS LISTING /tmp/ccRvT1Qm.s page 29
|
151 |
kaklik |
1682 |
|
|
|
1683 |
|
|
|
1684 |
39:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_write_word and eeprom_write_block added by Artur Lipowski
|
|
|
1685 |
40:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** <LAL@pro.onet.pl>
|
|
|
1686 |
41:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Complete rewrite using the original interface by Bjoern Haase
|
|
|
1687 |
42:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** <bjoern.haase@de.bosch.com>.
|
|
|
1688 |
43:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** */
|
|
|
1689 |
44:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1690 |
45:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #ifndef _EEPROM_H_
|
|
|
1691 |
46:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define _EEPROM_H_ 1
|
|
|
1692 |
47:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1693 |
48:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define __need_size_t
|
|
|
1694 |
49:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #include <stddef.h>
|
|
|
1695 |
50:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #include <inttypes.h>
|
|
|
1696 |
51:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1697 |
52:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1698 |
53:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #ifdef __AVR_MEGA__
|
|
|
1699 |
54:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define XCALL "call"
|
|
|
1700 |
55:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #else
|
|
|
1701 |
56:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define XCALL "rcall"
|
|
|
1702 |
57:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #endif
|
|
|
1703 |
58:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1704 |
59:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #include <avr/io.h>
|
|
|
1705 |
60:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #ifndef __EEPROM_REG_LOCATIONS__
|
|
|
1706 |
61:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \def __EEPROM_REG_LOCATIONS__
|
|
|
1707 |
62:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** \ingroup avr_eeprom
|
|
|
1708 |
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
|
|
|
1709 |
64:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** approach for dealing with controllers having the EEPROM registers
|
|
|
1710 |
65:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** at different positions in memory space, the eeprom functions evaluate
|
|
|
1711 |
66:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** __EEPROM_REG_LOCATIONS__: It is assumed to be defined by
|
|
|
1712 |
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
|
|
|
1713 |
68:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** addresses of EECR,EEDR and EEAR.
|
|
|
1714 |
69:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** First two letters: EECR address.
|
|
|
1715 |
70:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Second two letters: EEDR address.
|
|
|
1716 |
71:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Last two letters: EEAR address.
|
|
|
1717 |
72:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** The default 1C1D1E corresponds to the
|
|
|
1718 |
73:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** register location that is valid for most controllers. The value
|
|
|
1719 |
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
|
|
|
1720 |
75:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** assembler functions. */
|
|
|
1721 |
76:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define __EEPROM_REG_LOCATIONS__ 1C1D1E
|
|
|
1722 |
77:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #endif
|
|
|
1723 |
78:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define _STR2(EXP) _STR1(EXP)
|
|
|
1724 |
79:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define _STR1(EXP) #EXP
|
|
|
1725 |
80:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define _REG_LOCATION_SUFFIX _STR2(__EEPROM_REG_LOCATIONS__)
|
|
|
1726 |
81:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1727 |
82:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #ifndef CR_TAB
|
|
|
1728 |
83:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define CR_TAB "\n\t"
|
|
|
1729 |
84:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #endif
|
|
|
1730 |
85:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1731 |
86:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1732 |
87:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \defgroup avr_eeprom <avr/eeprom.h>: EEPROM handling
|
|
|
1733 |
88:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** \code #include <avr/eeprom.h> \endcode
|
|
|
1734 |
89:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1735 |
90:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** This header file declares the interface to some simple library
|
|
|
1736 |
91:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** routines suitable for handling the data EEPROM contained in the
|
|
|
1737 |
92:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** AVR microcontrollers. The implementation uses a simple polled
|
|
|
1738 |
93:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** mode interface. Applications that require interrupt-controlled
|
|
|
1739 |
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
|
|
|
1740 |
95:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** will have to deploy their own implementation.
|
182 |
kaklik |
1741 |
GAS LISTING /tmp/ccRvT1Qm.s page 30
|
151 |
kaklik |
1742 |
|
|
|
1743 |
|
|
|
1744 |
96:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1745 |
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
|
|
|
1746 |
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
|
|
|
1747 |
99:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** write operation is still pending, time-critical applications
|
|
|
1748 |
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
|
|
|
1749 |
101:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** attempting any actual I/O.
|
|
|
1750 |
102:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1751 |
103:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** \note This header file declares inline functions that call the
|
|
|
1752 |
104:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** assembler subroutines directly. This prevents that the compiler
|
|
|
1753 |
105:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** generates push/pops for the call-clobbered registers. This way
|
|
|
1754 |
106:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** also a specific calling convention could be used for the eeprom
|
|
|
1755 |
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
|
|
|
1756 |
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
|
|
|
1757 |
109:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** size.
|
|
|
1758 |
110:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1759 |
111:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** \note Presently supported are two locations of the EEPROM register
|
|
|
1760 |
112:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** set: 0x1F,0x20,0x21 and 0x1C,0x1D,0x1E
|
|
|
1761 |
113:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** (see ::__EEPROM_REG_LOCATIONS__).
|
|
|
1762 |
114:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1763 |
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
|
|
|
1764 |
116:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** non-reentrant. If any of these functions are used from both,
|
|
|
1765 |
117:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** standard and interrupt context, the applications must ensure
|
|
|
1766 |
118:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** proper protection (e.g. by disabling interrupts before accessing
|
|
|
1767 |
119:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** them).
|
|
|
1768 |
120:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1769 |
121:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** */
|
|
|
1770 |
122:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1771 |
123:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1772 |
124:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /* forward declarations of the inline functions so that doxygen does
|
|
|
1773 |
125:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** not get confused by the attribute expression. */
|
|
|
1774 |
126:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1775 |
127:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline uint8_t __attribute__ ((always_inline))
|
|
|
1776 |
128:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_byte (const uint8_t *addr);
|
|
|
1777 |
129:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1778 |
130:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline uint16_t __attribute__ ((always_inline))
|
|
|
1779 |
131:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_word (const uint16_t *addr);
|
|
|
1780 |
132:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1781 |
133:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
|
|
|
1782 |
134:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_block (void *pointer_ram,
|
|
|
1783 |
135:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** const void *pointer_eeprom,
|
|
|
1784 |
136:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** size_t size);
|
|
|
1785 |
137:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1786 |
138:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
|
|
|
1787 |
139:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_write_byte (uint8_t *addr,uint8_t value);
|
|
|
1788 |
140:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1789 |
141:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
|
|
|
1790 |
142:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_write_word (uint16_t *addr,uint16_t value);
|
|
|
1791 |
143:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1792 |
144:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
|
|
|
1793 |
145:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_write_block (const void *pointer_ram,
|
|
|
1794 |
146:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** void *pointer_eeprom,
|
|
|
1795 |
147:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** size_t size);
|
|
|
1796 |
148:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1797 |
149:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \name avr-libc declarations */
|
|
|
1798 |
150:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1799 |
151:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /*@{*/
|
|
|
1800 |
152:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
182 |
kaklik |
1801 |
GAS LISTING /tmp/ccRvT1Qm.s page 31
|
151 |
kaklik |
1802 |
|
|
|
1803 |
|
|
|
1804 |
153:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \def EEMEM
|
|
|
1805 |
154:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** \ingroup avr_eeprom
|
|
|
1806 |
155:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Attribute expression causing a variable to be allocated within the .eeprom
|
|
|
1807 |
156:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** section. */
|
|
|
1808 |
157:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define EEMEM __attribute__((section(".eeprom")))
|
|
|
1809 |
158:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1810 |
159:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \def eeprom_is_ready
|
|
|
1811 |
160:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** \ingroup avr_eeprom
|
|
|
1812 |
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. */
|
|
|
1813 |
162:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1814 |
163:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #if defined(__DOXYGEN__)
|
|
|
1815 |
164:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** # define eeprom_is_ready()
|
|
|
1816 |
165:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #elif defined(EEWE)
|
|
|
1817 |
166:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** # define eeprom_is_ready() bit_is_clear(EECR, EEWE)
|
|
|
1818 |
167:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #elif defined(EEPE)
|
|
|
1819 |
168:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** # define eeprom_is_ready() bit_is_clear(EECR, EEPE)
|
|
|
1820 |
169:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #elif defined(DEECR) && defined(EEL)
|
|
|
1821 |
170:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** # define eeprom_is_ready() bit_is_clear(DEECR, EEL)
|
|
|
1822 |
171:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #else
|
|
|
1823 |
172:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** # error "No write enable bit known for this device's EEPROM."
|
|
|
1824 |
173:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #endif
|
|
|
1825 |
174:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1826 |
175:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \def eeprom_busy_wait
|
|
|
1827 |
176:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** \ingroup avr_eeprom
|
|
|
1828 |
177:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1829 |
178:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Loops until the eeprom is no longer busy.
|
|
|
1830 |
179:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1831 |
180:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** \returns Nothing. */
|
|
|
1832 |
181:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1833 |
182:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define eeprom_busy_wait() do {} while (!eeprom_is_ready())
|
|
|
1834 |
183:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1835 |
184:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1836 |
185:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
|
|
|
1837 |
186:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Read one byte from EEPROM address \c addr. */
|
|
|
1838 |
187:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1839 |
188:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** uint8_t
|
|
|
1840 |
189:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_byte (const uint8_t *addr)
|
|
|
1841 |
190:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
|
|
|
1842 |
191:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** uint8_t result;
|
|
|
1843 |
192:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** asm volatile
|
|
|
1844 |
898 .stabn 68,0,192,.LM112-UIMgr_processReceivedData
|
|
|
1845 |
899 .LM112:
|
|
|
1846 |
900 0352 D901 movw r26,r18
|
|
|
1847 |
901 /* #APP */
|
|
|
1848 |
902 0354 00D0 rcall __eeprom_read_byte_1C1D1E
|
|
|
1849 |
903 0356 802D mov r24,__tmp_reg__
|
|
|
1850 |
904 /* #NOAPP */
|
|
|
1851 |
905 .LBE31:
|
|
|
1852 |
906 .LBE30:
|
|
|
1853 |
907 .stabs "UIMgr.c",132,0,0,.Ltext2
|
|
|
1854 |
908 .Ltext2:
|
|
|
1855 |
909 .stabn 68,0,374,.LM113-UIMgr_processReceivedData
|
|
|
1856 |
910 .LM113:
|
|
|
1857 |
911 0358 E817 cp r30,r24
|
|
|
1858 |
912 035a C1F0 breq .L95
|
|
|
1859 |
913 .LBB32:
|
|
|
1860 |
914 .LBB33:
|
182 |
kaklik |
1861 |
GAS LISTING /tmp/ccRvT1Qm.s page 32
|
151 |
kaklik |
1862 |
|
|
|
1863 |
|
|
|
1864 |
915 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h",132,0,0,.Ltext3
|
|
|
1865 |
916 .Ltext3:
|
|
|
1866 |
193:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** ( XCALL " __eeprom_read_byte_" _REG_LOCATION_SUFFIX CR_TAB
|
|
|
1867 |
194:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "mov %1,__tmp_reg__"
|
|
|
1868 |
195:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : "+x" (addr),
|
|
|
1869 |
196:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "=r" (result)
|
|
|
1870 |
197:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : );
|
|
|
1871 |
198:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** return result;
|
|
|
1872 |
199:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** }
|
|
|
1873 |
200:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1874 |
201:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
|
|
|
1875 |
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. */
|
|
|
1876 |
203:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** uint16_t
|
|
|
1877 |
204:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_word (const uint16_t *addr)
|
|
|
1878 |
205:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
|
|
|
1879 |
206:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** uint16_t result;
|
|
|
1880 |
207:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1881 |
208:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** asm (
|
|
|
1882 |
209:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** XCALL " __eeprom_read_word_" _REG_LOCATION_SUFFIX CR_TAB
|
|
|
1883 |
210:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : "+x" (addr),
|
|
|
1884 |
211:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "=z" (result)
|
|
|
1885 |
212:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : );
|
|
|
1886 |
213:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** return result;
|
|
|
1887 |
214:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** }
|
|
|
1888 |
215:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1889 |
216:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
|
|
|
1890 |
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
|
|
|
1891 |
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.
|
|
|
1892 |
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
|
|
|
1893 |
220:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** loop is expanded. */
|
|
|
1894 |
221:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1895 |
222:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** void
|
|
|
1896 |
223:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_block (void *pointer_ram,
|
|
|
1897 |
224:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** const void *pointer_eeprom,
|
|
|
1898 |
225:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** size_t n)
|
|
|
1899 |
226:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
|
|
|
1900 |
227:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** if (!__builtin_constant_p (n)
|
|
|
1901 |
228:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** || n > 256)
|
|
|
1902 |
229:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
|
|
|
1903 |
230:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /* make sure size is a 16 bit variable. */
|
|
|
1904 |
231:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** uint16_t size = n;
|
|
|
1905 |
232:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1906 |
233:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** asm volatile (
|
|
|
1907 |
234:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** ".%=_start:" CR_TAB
|
|
|
1908 |
235:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "sbiw %2,1" CR_TAB
|
|
|
1909 |
236:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "brlt .%=_finished" CR_TAB
|
|
|
1910 |
237:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** XCALL " __eeprom_read_byte_" _REG_LOCATION_SUFFIX CR_TAB
|
|
|
1911 |
238:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "st z+,__tmp_reg__" CR_TAB
|
|
|
1912 |
239:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "rjmp .%=_start" CR_TAB
|
|
|
1913 |
240:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** ".%=_finished:"
|
|
|
1914 |
241:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : "=x" (pointer_eeprom),
|
|
|
1915 |
242:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "=z" (pointer_ram),
|
|
|
1916 |
243:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "+w" (size)
|
|
|
1917 |
244:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : "x" (pointer_eeprom),
|
|
|
1918 |
245:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "z" (pointer_ram)
|
|
|
1919 |
246:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : "memory");
|
|
|
1920 |
247:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** }
|
182 |
kaklik |
1921 |
GAS LISTING /tmp/ccRvT1Qm.s page 33
|
151 |
kaklik |
1922 |
|
|
|
1923 |
|
|
|
1924 |
248:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** else
|
|
|
1925 |
249:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
|
|
|
1926 |
250:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** if (n != 0)
|
|
|
1927 |
251:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
|
|
|
1928 |
252:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** if (n == 256)
|
|
|
1929 |
253:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
|
|
|
1930 |
254:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** asm volatile (
|
|
|
1931 |
255:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** XCALL " __eeprom_read_block_" _REG_LOCATION_SUFFIX
|
|
|
1932 |
256:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : "+x" (pointer_eeprom),
|
|
|
1933 |
257:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "=z" (pointer_ram)
|
|
|
1934 |
258:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : "z" (pointer_ram)
|
|
|
1935 |
259:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : "memory");
|
|
|
1936 |
260:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** }
|
|
|
1937 |
261:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** else
|
|
|
1938 |
262:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
|
|
|
1939 |
263:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /* Needed in order to truncate to 8 bit. */
|
|
|
1940 |
264:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** uint8_t len;
|
|
|
1941 |
265:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** len = (uint8_t) n;
|
|
|
1942 |
266:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1943 |
267:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** asm volatile (
|
|
|
1944 |
268:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "mov __zero_reg__,%2" CR_TAB
|
|
|
1945 |
269:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** XCALL " __eeprom_read_block_" _REG_LOCATION_SUFFIX
|
|
|
1946 |
270:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : "+x" (pointer_eeprom),
|
|
|
1947 |
271:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "=z" (pointer_ram)
|
|
|
1948 |
272:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : "r" (len),
|
|
|
1949 |
273:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "z" (pointer_ram)
|
|
|
1950 |
274:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : "memory");
|
|
|
1951 |
275:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** }
|
|
|
1952 |
276:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** }
|
|
|
1953 |
277:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** }
|
|
|
1954 |
278:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** }
|
|
|
1955 |
279:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1956 |
280:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
|
|
|
1957 |
281:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Write a byte \c value to EEPROM address \c addr. */
|
|
|
1958 |
282:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
|
|
|
1959 |
283:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** void
|
|
|
1960 |
284:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_write_byte (uint8_t *addr,uint8_t value)
|
|
|
1961 |
285:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
|
|
|
1962 |
286:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** asm volatile (
|
|
|
1963 |
917 .stabn 68,0,286,.LM114-UIMgr_processReceivedData
|
|
|
1964 |
918 .LM114:
|
|
|
1965 |
919 035c D901 movw r26,r18
|
|
|
1966 |
920 /* #APP */
|
|
|
1967 |
921 035e 0E2E mov __tmp_reg__,r30
|
|
|
1968 |
922 0360 00D0 rcall __eeprom_write_byte_1C1D1E
|
|
|
1969 |
923 /* #NOAPP */
|
|
|
1970 |
924 .LBE33:
|
|
|
1971 |
925 .LBE32:
|
|
|
1972 |
926 .LBB34:
|
|
|
1973 |
927 .LBB35:
|
|
|
1974 |
928 .stabn 68,0,192,.LM115-UIMgr_processReceivedData
|
|
|
1975 |
929 .LM115:
|
|
|
1976 |
930 0362 D901 movw r26,r18
|
|
|
1977 |
931 /* #APP */
|
|
|
1978 |
932 0364 00D0 rcall __eeprom_read_byte_1C1D1E
|
|
|
1979 |
933 0366 802D mov r24,__tmp_reg__
|
|
|
1980 |
934 /* #NOAPP */
|
182 |
kaklik |
1981 |
GAS LISTING /tmp/ccRvT1Qm.s page 34
|
151 |
kaklik |
1982 |
|
|
|
1983 |
|
|
|
1984 |
935 .LBE35:
|
|
|
1985 |
936 .LBE34:
|
|
|
1986 |
937 .stabs "UIMgr.c",132,0,0,.Ltext4
|
|
|
1987 |
938 .Ltext4:
|
|
|
1988 |
939 .stabn 68,0,384,.LM116-UIMgr_processReceivedData
|
|
|
1989 |
940 .LM116:
|
|
|
1990 |
941 0368 9881 ld r25,Y
|
|
|
1991 |
942 036a 9817 cp r25,r24
|
|
|
1992 |
943 036c 79F0 breq .L95
|
|
|
1993 |
944 .LBB36:
|
|
|
1994 |
945 .LBB37:
|
|
|
1995 |
946 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h",132,0,0,.Ltext5
|
|
|
1996 |
947 .Ltext5:
|
|
|
1997 |
948 .stabn 68,0,286,.LM117-UIMgr_processReceivedData
|
|
|
1998 |
949 .LM117:
|
|
|
1999 |
950 036e D901 movw r26,r18
|
|
|
2000 |
951 /* #APP */
|
|
|
2001 |
952 0370 092E mov __tmp_reg__,r25
|
|
|
2002 |
953 0372 00D0 rcall __eeprom_write_byte_1C1D1E
|
|
|
2003 |
954 /* #NOAPP */
|
|
|
2004 |
955 .LBE37:
|
|
|
2005 |
956 .LBE36:
|
|
|
2006 |
957 .LBB38:
|
|
|
2007 |
958 .LBB39:
|
|
|
2008 |
959 .stabn 68,0,192,.LM118-UIMgr_processReceivedData
|
|
|
2009 |
960 .LM118:
|
|
|
2010 |
961 0374 D901 movw r26,r18
|
|
|
2011 |
962 /* #APP */
|
|
|
2012 |
963 0376 00D0 rcall __eeprom_read_byte_1C1D1E
|
|
|
2013 |
964 0378 802D mov r24,__tmp_reg__
|
|
|
2014 |
965 /* #NOAPP */
|
|
|
2015 |
966 .LBE39:
|
|
|
2016 |
967 .LBE38:
|
|
|
2017 |
968 .stabs "UIMgr.c",132,0,0,.Ltext6
|
|
|
2018 |
969 .Ltext6:
|
|
|
2019 |
970 .stabn 68,0,384,.LM119-UIMgr_processReceivedData
|
|
|
2020 |
971 .LM119:
|
|
|
2021 |
972 037a 9881 ld r25,Y
|
|
|
2022 |
973 037c 9817 cp r25,r24
|
|
|
2023 |
974 037e 31F0 breq .L95
|
|
|
2024 |
975 .LBB40:
|
|
|
2025 |
976 .LBB41:
|
|
|
2026 |
977 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h",132,0,0,.Ltext7
|
|
|
2027 |
978 .Ltext7:
|
|
|
2028 |
979 .stabn 68,0,286,.LM120-UIMgr_processReceivedData
|
|
|
2029 |
980 .LM120:
|
|
|
2030 |
981 0380 D901 movw r26,r18
|
|
|
2031 |
982 /* #APP */
|
|
|
2032 |
983 0382 092E mov __tmp_reg__,r25
|
|
|
2033 |
984 0384 00D0 rcall __eeprom_write_byte_1C1D1E
|
|
|
2034 |
985 /* #NOAPP */
|
|
|
2035 |
986 .LBE41:
|
|
|
2036 |
987 .LBE40:
|
|
|
2037 |
988 .LBB42:
|
|
|
2038 |
989 .LBB43:
|
|
|
2039 |
990 .stabn 68,0,192,.LM121-UIMgr_processReceivedData
|
|
|
2040 |
991 .LM121:
|
182 |
kaklik |
2041 |
GAS LISTING /tmp/ccRvT1Qm.s page 35
|
151 |
kaklik |
2042 |
|
|
|
2043 |
|
|
|
2044 |
992 0386 D901 movw r26,r18
|
|
|
2045 |
993 /* #APP */
|
|
|
2046 |
994 0388 00D0 rcall __eeprom_read_byte_1C1D1E
|
|
|
2047 |
995 038a 802D mov r24,__tmp_reg__
|
|
|
2048 |
996 /* #NOAPP */
|
|
|
2049 |
997 .L95:
|
|
|
2050 |
998 .LBE43:
|
|
|
2051 |
999 .LBE42:
|
|
|
2052 |
1000 .stabs "UIMgr.c",132,0,0,.Ltext8
|
|
|
2053 |
1001 .Ltext8:
|
|
|
2054 |
1002 .stabn 68,0,367,.LM122-UIMgr_processReceivedData
|
|
|
2055 |
1003 .LM122:
|
|
|
2056 |
1004 038c 4F5F subi r20,lo8(-(1))
|
|
|
2057 |
1005 038e 8091 0000 lds r24,tokenCount
|
|
|
2058 |
1006 0392 4817 cp r20,r24
|
|
|
2059 |
1007 0394 88F2 brlo .L94
|
|
|
2060 |
1008 .L73:
|
|
|
2061 |
1009 .LBE29:
|
|
|
2062 |
1010 .LBE28:
|
|
|
2063 |
1011 .stabn 68,0,235,.LM123-UIMgr_processReceivedData
|
|
|
2064 |
1012 .LM123:
|
|
|
2065 |
1013 0396 1092 0000 sts tokenCount,__zero_reg__
|
|
|
2066 |
1014 .stabn 68,0,236,.LM124-UIMgr_processReceivedData
|
|
|
2067 |
1015 .LM124:
|
|
|
2068 |
1016 039a 80E4 ldi r24,lo8(64)
|
|
|
2069 |
1017 039c E0E0 ldi r30,lo8(tokenBuffer)
|
|
|
2070 |
1018 039e F0E0 ldi r31,hi8(tokenBuffer)
|
|
|
2071 |
1019 03a0 1192 st Z+,__zero_reg__
|
|
|
2072 |
1020 03a2 8A95 dec r24
|
|
|
2073 |
1021 03a4 E9F7 brne .-6
|
|
|
2074 |
1022 03a6 3FC0 rjmp .L119
|
|
|
2075 |
1023 .L66:
|
|
|
2076 |
1024 .stabn 68,0,238,.LM125-UIMgr_processReceivedData
|
|
|
2077 |
1025 .LM125:
|
|
|
2078 |
1026 03a8 9032 cpi r25,lo8(32)
|
|
|
2079 |
1027 03aa F1F4 brne .L99
|
|
|
2080 |
1028 .stabn 68,0,241,.LM126-UIMgr_processReceivedData
|
|
|
2081 |
1029 .LM126:
|
|
|
2082 |
1030 03ac 8091 0000 lds r24,tokenCount
|
|
|
2083 |
1031 03b0 8823 tst r24
|
|
|
2084 |
1032 03b2 39F4 brne .L101
|
|
|
2085 |
1033 .stabn 68,0,243,.LM127-UIMgr_processReceivedData
|
|
|
2086 |
1034 .LM127:
|
|
|
2087 |
1035 03b4 8FDE rcall UIMgr_convertTokenToCmd
|
|
|
2088 |
1036 .stabn 68,0,244,.LM128-UIMgr_processReceivedData
|
|
|
2089 |
1037 .LM128:
|
|
|
2090 |
1038 03b6 8091 0000 lds r24,tokenCount
|
|
|
2091 |
1039 03ba 8F5F subi r24,lo8(-(1))
|
|
|
2092 |
1040 03bc 8093 0000 sts tokenCount,r24
|
|
|
2093 |
1041 03c0 32C0 rjmp .L119
|
|
|
2094 |
1042 .L101:
|
|
|
2095 |
1043 .stabn 68,0,254,.LM129-UIMgr_processReceivedData
|
|
|
2096 |
1044 .LM129:
|
|
|
2097 |
1045 03c2 9927 clr r25
|
|
|
2098 |
1046 03c4 CF97 sbiw r24,63
|
|
|
2099 |
1047 03c6 4CF0 brlt .L103
|
|
|
2100 |
1048 .stabn 68,0,259,.LM130-UIMgr_processReceivedData
|
182 |
kaklik |
2101 |
GAS LISTING /tmp/ccRvT1Qm.s page 36
|
151 |
kaklik |
2102 |
|
|
|
2103 |
|
|
|
2104 |
1049 .LM130:
|
|
|
2105 |
1050 03c8 1092 0000 sts charCount,__zero_reg__
|
|
|
2106 |
1051 .stabn 68,0,260,.LM131-UIMgr_processReceivedData
|
|
|
2107 |
1052 .LM131:
|
|
|
2108 |
1053 03cc 1092 0000 sts charIndex,__zero_reg__
|
|
|
2109 |
1054 .stabn 68,0,261,.LM132-UIMgr_processReceivedData
|
|
|
2110 |
1055 .LM132:
|
|
|
2111 |
1056 03d0 1092 0000 sts tokenCount,__zero_reg__
|
|
|
2112 |
1057 .stabn 68,0,262,.LM133-UIMgr_processReceivedData
|
|
|
2113 |
1058 .LM133:
|
|
|
2114 |
1059 03d4 F092 0000 sts receivedCmd,r15
|
|
|
2115 |
1060 03d8 26C0 rjmp .L119
|
|
|
2116 |
1061 .L103:
|
|
|
2117 |
1062 .stabn 68,0,267,.LM134-UIMgr_processReceivedData
|
|
|
2118 |
1063 .LM134:
|
|
|
2119 |
1064 03da F6DE rcall UIMgr_convertTokenToValue
|
|
|
2120 |
1065 .stabn 68,0,268,.LM135-UIMgr_processReceivedData
|
|
|
2121 |
1066 .LM135:
|
|
|
2122 |
1067 03dc 8091 0000 lds r24,tokenCount
|
|
|
2123 |
1068 03e0 8F5F subi r24,lo8(-(1))
|
|
|
2124 |
1069 03e2 8093 0000 sts tokenCount,r24
|
|
|
2125 |
1070 03e6 1FC0 rjmp .L119
|
|
|
2126 |
1071 .L99:
|
|
|
2127 |
1072 .stabn 68,0,272,.LM136-UIMgr_processReceivedData
|
|
|
2128 |
1073 .LM136:
|
|
|
2129 |
1074 03e8 892F mov r24,r25
|
|
|
2130 |
1075 03ea 8154 subi r24,lo8(-(-65))
|
|
|
2131 |
1076 03ec 8A31 cpi r24,lo8(26)
|
|
|
2132 |
1077 03ee 18F0 brlo .L105
|
|
|
2133 |
1078 03f0 8F5E subi r24,lo8(-(17))
|
|
|
2134 |
1079 03f2 8A30 cpi r24,lo8(10)
|
|
|
2135 |
1080 03f4 B0F4 brsh .L107
|
|
|
2136 |
1081 .L105:
|
|
|
2137 |
1082 .stabn 68,0,276,.LM137-UIMgr_processReceivedData
|
|
|
2138 |
1083 .LM137:
|
|
|
2139 |
1084 03f6 8091 0000 lds r24,charIndex
|
|
|
2140 |
1085 03fa E82F mov r30,r24
|
|
|
2141 |
1086 03fc FF27 clr r31
|
|
|
2142 |
1087 03fe E050 subi r30,lo8(-(asciiTokenBuffer))
|
|
|
2143 |
1088 0400 F040 sbci r31,hi8(-(asciiTokenBuffer))
|
|
|
2144 |
1089 0402 9083 st Z,r25
|
|
|
2145 |
1090 .stabn 68,0,277,.LM138-UIMgr_processReceivedData
|
|
|
2146 |
1091 .LM138:
|
|
|
2147 |
1092 0404 9091 0000 lds r25,charCount
|
|
|
2148 |
1093 0408 9F5F subi r25,lo8(-(1))
|
|
|
2149 |
1094 040a 9093 0000 sts charCount,r25
|
|
|
2150 |
1095 .stabn 68,0,278,.LM139-UIMgr_processReceivedData
|
|
|
2151 |
1096 .LM139:
|
|
|
2152 |
1097 040e 8F5F subi r24,lo8(-(1))
|
|
|
2153 |
1098 0410 8093 0000 sts charIndex,r24
|
|
|
2154 |
1099 .stabn 68,0,279,.LM140-UIMgr_processReceivedData
|
|
|
2155 |
1100 .LM140:
|
|
|
2156 |
1101 0414 9430 cpi r25,lo8(4)
|
|
|
2157 |
1102 0416 38F0 brlo .L119
|
|
|
2158 |
1103 .stabn 68,0,284,.LM141-UIMgr_processReceivedData
|
|
|
2159 |
1104 .LM141:
|
|
|
2160 |
1105 0418 F092 0000 sts receivedCmd,r15
|
182 |
kaklik |
2161 |
GAS LISTING /tmp/ccRvT1Qm.s page 37
|
151 |
kaklik |
2162 |
|
|
|
2163 |
|
|
|
2164 |
1106 .stabn 68,0,285,.LM142-UIMgr_processReceivedData
|
|
|
2165 |
1107 .LM142:
|
|
|
2166 |
1108 041c 1092 0000 sts charIndex,__zero_reg__
|
|
|
2167 |
1109 0420 02C0 rjmp .L119
|
|
|
2168 |
1110 .L107:
|
|
|
2169 |
1111 .stabn 68,0,291,.LM143-UIMgr_processReceivedData
|
|
|
2170 |
1112 .LM143:
|
|
|
2171 |
1113 0422 F092 0000 sts receivedCmd,r15
|
|
|
2172 |
1114 .L119:
|
|
|
2173 |
1115 .stabn 68,0,199,.LM144-UIMgr_processReceivedData
|
|
|
2174 |
1116 .LM144:
|
|
|
2175 |
1117 0426 2091 0000 lds r18,UIMgr_rxFifoTail
|
|
|
2176 |
1118 042a 8091 0000 lds r24,UIMgr_rxFifoHead
|
|
|
2177 |
1119 042e 8217 cp r24,r18
|
|
|
2178 |
1120 0430 09F0 breq .+2
|
|
|
2179 |
1121 0432 FACE rjmp .L65
|
|
|
2180 |
1122 .stabn 68,0,295,.LM145-UIMgr_processReceivedData
|
|
|
2181 |
1123 .LM145:
|
|
|
2182 |
1124 /* #APP */
|
|
|
2183 |
1125 0434 E894 clt
|
|
|
2184 |
1126 /* #NOAPP */
|
|
|
2185 |
1127 /* epilogue: frame size=0 */
|
|
|
2186 |
1128 0436 DF91 pop r29
|
|
|
2187 |
1129 0438 CF91 pop r28
|
|
|
2188 |
1130 043a 1F91 pop r17
|
|
|
2189 |
1131 043c 0F91 pop r16
|
|
|
2190 |
1132 043e FF90 pop r15
|
|
|
2191 |
1133 0440 0895 ret
|
|
|
2192 |
1134 /* epilogue end (size=6) */
|
|
|
2193 |
1135 /* function UIMgr_processReceivedData size 297 (286) */
|
|
|
2194 |
1136 .size UIMgr_processReceivedData, .-UIMgr_processReceivedData
|
|
|
2195 |
1137 .stabs "tmpData:r(0,11)",64,0,194,25
|
|
|
2196 |
1138 .stabn 192,0,0,UIMgr_processReceivedData-UIMgr_processReceivedData
|
|
|
2197 |
1139 .stabs "dataByte:r(0,11)",64,0,609,25
|
|
|
2198 |
1140 .stabn 192,0,0,.LBB23-UIMgr_processReceivedData
|
|
|
2199 |
1141 .stabn 224,0,0,.LBE23-UIMgr_processReceivedData
|
|
|
2200 |
1142 .stabn 224,0,0,.Lscope9-UIMgr_processReceivedData
|
|
|
2201 |
1143 .Lscope9:
|
|
|
2202 |
1144 .stabs "",36,0,0,.Lscope9-UIMgr_processReceivedData
|
|
|
2203 |
1145 .stabd 78,0,0
|
|
|
2204 |
1146 .stabs "UIMgr_dispatchEvent:F(0,15)",36,0,152,UIMgr_dispatchEvent
|
|
|
2205 |
1147 .stabs "event:P(0,11)",64,0,151,24
|
|
|
2206 |
1148 .global UIMgr_dispatchEvent
|
|
|
2207 |
1149 .type UIMgr_dispatchEvent, @function
|
|
|
2208 |
1150 UIMgr_dispatchEvent:
|
|
|
2209 |
1151 .stabd 46,0,0
|
|
|
2210 |
1152 .stabn 68,0,152,.LM146-UIMgr_dispatchEvent
|
|
|
2211 |
1153 .LM146:
|
|
|
2212 |
1154 /* prologue: frame size=0 */
|
|
|
2213 |
1155 /* prologue end (size=0) */
|
|
|
2214 |
1156 .stabn 68,0,153,.LM147-UIMgr_dispatchEvent
|
|
|
2215 |
1157 .LM147:
|
|
|
2216 |
1158 0442 8031 cpi r24,lo8(16)
|
|
|
2217 |
1159 0444 29F0 breq .L123
|
|
|
2218 |
1160 .stabn 68,0,153,.LM148-UIMgr_dispatchEvent
|
|
|
2219 |
1161 .LM148:
|
|
|
2220 |
1162 0446 8039 cpi r24,lo8(-112)
|
182 |
kaklik |
2221 |
GAS LISTING /tmp/ccRvT1Qm.s page 38
|
151 |
kaklik |
2222 |
|
|
|
2223 |
|
|
|
2224 |
1163 0448 39F0 breq .L124
|
|
|
2225 |
1164 044a 8130 cpi r24,lo8(1)
|
|
|
2226 |
1165 044c 31F4 brne .L125
|
|
|
2227 |
1166 044e 02C0 rjmp .L122
|
|
|
2228 |
1167 .L123:
|
|
|
2229 |
1168 .stabn 68,0,156,.LM149-UIMgr_dispatchEvent
|
|
|
2230 |
1169 .LM149:
|
|
|
2231 |
1170 0450 38DE rcall UIMgr_transmitPendingData
|
|
|
2232 |
1171 0452 0895 ret
|
|
|
2233 |
1172 .L122:
|
|
|
2234 |
1173 .stabn 68,0,160,.LM150-UIMgr_dispatchEvent
|
|
|
2235 |
1174 .LM150:
|
|
|
2236 |
1175 0454 DFDE rcall UIMgr_processReceivedData
|
|
|
2237 |
1176 0456 0895 ret
|
|
|
2238 |
1177 .L124:
|
|
|
2239 |
1178 .stabn 68,0,164,.LM151-UIMgr_dispatchEvent
|
|
|
2240 |
1179 .LM151:
|
|
|
2241 |
1180 0458 0EDE rcall UIMgr_flushTxBuffer
|
|
|
2242 |
1181 .L125:
|
|
|
2243 |
1182 045a 0895 ret
|
|
|
2244 |
1183 /* epilogue: frame size=0 */
|
|
|
2245 |
1184 /* epilogue: noreturn */
|
|
|
2246 |
1185 /* epilogue end (size=0) */
|
|
|
2247 |
1186 /* function UIMgr_dispatchEvent size 13 (13) */
|
|
|
2248 |
1187 .size UIMgr_dispatchEvent, .-UIMgr_dispatchEvent
|
|
|
2249 |
1188 .Lscope10:
|
|
|
2250 |
1189 .stabs "",36,0,0,.Lscope10-UIMgr_dispatchEvent
|
|
|
2251 |
1190 .stabd 78,0,0
|
|
|
2252 |
1191 .global UIMgr_rxFifoHead
|
|
|
2253 |
1192 .global UIMgr_rxFifoHead
|
|
|
2254 |
1193 .section .bss
|
|
|
2255 |
1194 .type UIMgr_rxFifoHead, @object
|
|
|
2256 |
1195 .size UIMgr_rxFifoHead, 1
|
|
|
2257 |
1196 UIMgr_rxFifoHead:
|
|
|
2258 |
1197 0000 00 .skip 1,0
|
|
|
2259 |
1198 .global UIMgr_rxFifoTail
|
|
|
2260 |
1199 .global UIMgr_rxFifoTail
|
|
|
2261 |
1200 .type UIMgr_rxFifoTail, @object
|
|
|
2262 |
1201 .size UIMgr_rxFifoTail, 1
|
|
|
2263 |
1202 UIMgr_rxFifoTail:
|
|
|
2264 |
1203 0001 00 .skip 1,0
|
|
|
2265 |
1204 .global UIMgr_txFifoHead
|
|
|
2266 |
1205 .global UIMgr_txFifoHead
|
|
|
2267 |
1206 .type UIMgr_txFifoHead, @object
|
|
|
2268 |
1207 .size UIMgr_txFifoHead, 1
|
|
|
2269 |
1208 UIMgr_txFifoHead:
|
|
|
2270 |
1209 0002 00 .skip 1,0
|
|
|
2271 |
1210 .global UIMgr_txFifoTail
|
|
|
2272 |
1211 .global UIMgr_txFifoTail
|
|
|
2273 |
1212 .type UIMgr_txFifoTail, @object
|
|
|
2274 |
1213 .size UIMgr_txFifoTail, 1
|
|
|
2275 |
1214 UIMgr_txFifoTail:
|
|
|
2276 |
1215 0003 00 .skip 1,0
|
|
|
2277 |
1216 .lcomm tokenCount,1
|
|
|
2278 |
1217 .data
|
|
|
2279 |
1218 .type receivedCmd, @object
|
|
|
2280 |
1219 .size receivedCmd, 1
|
182 |
kaklik |
2281 |
GAS LISTING /tmp/ccRvT1Qm.s page 39
|
151 |
kaklik |
2282 |
|
|
|
2283 |
|
|
|
2284 |
1220 receivedCmd:
|
|
|
2285 |
1221 0000 08 .byte 8
|
|
|
2286 |
1222 .lcomm charCount,1
|
|
|
2287 |
1223 .lcomm charIndex,1
|
|
|
2288 |
1224 .type AVRcamVersion, @object
|
|
|
2289 |
1225 .size AVRcamVersion, 13
|
|
|
2290 |
1226 AVRcamVersion:
|
|
|
2291 |
1227 0001 4156 5263 .string "AVRcam v1.4\r"
|
|
|
2292 |
1227 616D 2076
|
|
|
2293 |
1227 312E 340D
|
|
|
2294 |
1227 00
|
|
|
2295 |
1228 .lcomm asciiTokenBuffer,4
|
|
|
2296 |
1229 .lcomm tokenBuffer,64
|
|
|
2297 |
1230 .comm UIMgr_rxFifo,32,1
|
|
|
2298 |
1231 .comm UIMgr_txFifo,64,1
|
|
|
2299 |
1232 .stabs "charCount:S(0,11)",38,0,92,charCount
|
|
|
2300 |
1233 .stabs "charIndex:S(0,11)",38,0,93,charIndex
|
|
|
2301 |
1234 .stabs "asciiTokenBuffer:S(0,21)=ar(0,22)=r(0,22);0;0177777;;0;3;(0,11)",40,0,94,asciiTokenBuffer
|
|
|
2302 |
1235 .stabs "tokenCount:S(0,11)",38,0,95,tokenCount
|
|
|
2303 |
1236 .stabs "tokenBuffer:S(0,23)=ar(0,22);0;63;(0,11)",40,0,96,tokenBuffer
|
|
|
2304 |
1237 .stabs "receivedCmd:S(0,17)",38,0,97,receivedCmd
|
|
|
2305 |
1238 .stabs "AVRcamVersion:S(0,24)=ar(0,22);0;12;(0,11)",38,0,98,AVRcamVersion
|
|
|
2306 |
1239 .stabs "UIMgr_rxFifo:G(0,25)=ar(0,22);0;31;(0,11)",32,0,111,0
|
|
|
2307 |
1240 .stabs "UIMgr_rxFifoHead:G(0,11)",32,0,112,0
|
|
|
2308 |
1241 .stabs "UIMgr_rxFifoTail:G(0,11)",32,0,113,0
|
|
|
2309 |
1242 .stabs "UIMgr_txFifo:G(0,23)",32,0,115,0
|
|
|
2310 |
1243 .stabs "UIMgr_txFifoHead:G(0,11)",32,0,116,0
|
|
|
2311 |
1244 .stabs "UIMgr_txFifoTail:G(0,11)",32,0,117,0
|
|
|
2312 |
1245 .text
|
|
|
2313 |
1246 .stabs "",100,0,0,.Letext0
|
|
|
2314 |
1247 .Letext0:
|
|
|
2315 |
1248 /* File "UIMgr.c": code 582 = 0x0246 ( 557), prologues 9, epilogues 16 */
|
182 |
kaklik |
2316 |
GAS LISTING /tmp/ccRvT1Qm.s page 40
|
151 |
kaklik |
2317 |
|
|
|
2318 |
|
|
|
2319 |
DEFINED SYMBOLS
|
|
|
2320 |
*ABS*:00000000 UIMgr.c
|
182 |
kaklik |
2321 |
/tmp/ccRvT1Qm.s:3 *ABS*:0000003f __SREG__
|
|
|
2322 |
/tmp/ccRvT1Qm.s:4 *ABS*:0000003e __SP_H__
|
|
|
2323 |
/tmp/ccRvT1Qm.s:5 *ABS*:0000003d __SP_L__
|
|
|
2324 |
/tmp/ccRvT1Qm.s:6 *ABS*:00000000 __tmp_reg__
|
|
|
2325 |
/tmp/ccRvT1Qm.s:7 *ABS*:00000001 __zero_reg__
|
|
|
2326 |
/tmp/ccRvT1Qm.s:94 .text:00000000 UIMgr_writeBufferToTxFifo
|
151 |
kaklik |
2327 |
*COM*:00000040 UIMgr_txFifo
|
182 |
kaklik |
2328 |
/tmp/ccRvT1Qm.s:1208 .bss:00000002 UIMgr_txFifoHead
|
|
|
2329 |
/tmp/ccRvT1Qm.s:159 .text:0000003c UIMgr_readTxFifo
|
|
|
2330 |
/tmp/ccRvT1Qm.s:1214 .bss:00000003 UIMgr_txFifoTail
|
|
|
2331 |
/tmp/ccRvT1Qm.s:206 .text:0000005a UIMgr_writeTxFifo
|
|
|
2332 |
/tmp/ccRvT1Qm.s:246 .text:00000076 UIMgr_flushTxBuffer
|
|
|
2333 |
/tmp/ccRvT1Qm.s:284 .text:00000094 UIMgr_txBuffer
|
|
|
2334 |
/tmp/ccRvT1Qm.s:333 .text:000000c2 UIMgr_transmitPendingData
|
|
|
2335 |
/tmp/ccRvT1Qm.s:361 .text:000000d4 UIMgr_convertTokenToCmd
|
|
|
2336 |
/tmp/ccRvT1Qm.s:1223 .bss:00000007 asciiTokenBuffer
|
|
|
2337 |
/tmp/ccRvT1Qm.s:1220 .data:00000000 receivedCmd
|
|
|
2338 |
/tmp/ccRvT1Qm.s:1222 .bss:00000006 charIndex
|
|
|
2339 |
/tmp/ccRvT1Qm.s:1216 .bss:00000005 charCount
|
|
|
2340 |
/tmp/ccRvT1Qm.s:503 .text:00000192 UIMgr_init
|
|
|
2341 |
/tmp/ccRvT1Qm.s:1228 .bss:0000000b tokenBuffer
|
151 |
kaklik |
2342 |
*COM*:00000020 UIMgr_rxFifo
|
182 |
kaklik |
2343 |
/tmp/ccRvT1Qm.s:549 .text:000001c8 UIMgr_convertTokenToValue
|
151 |
kaklik |
2344 |
.bss:00000004 tokenCount
|
182 |
kaklik |
2345 |
/tmp/ccRvT1Qm.s:619 .text:00000214 UIMgr_processReceivedData
|
|
|
2346 |
/tmp/ccRvT1Qm.s:1202 .bss:00000001 UIMgr_rxFifoTail
|
|
|
2347 |
/tmp/ccRvT1Qm.s:1226 .data:00000001 AVRcamVersion
|
|
|
2348 |
/tmp/ccRvT1Qm.s:1196 .bss:00000000 UIMgr_rxFifoHead
|
|
|
2349 |
/tmp/ccRvT1Qm.s:1150 .text:00000442 UIMgr_dispatchEvent
|
151 |
kaklik |
2350 |
|
|
|
2351 |
UNDEFINED SYMBOLS
|
|
|
2352 |
__do_copy_data
|
|
|
2353 |
__do_clear_bss
|
|
|
2354 |
UartInt_txByte
|
|
|
2355 |
atoi
|
|
|
2356 |
Utility_delay
|
|
|
2357 |
Exec_writeEventFifo
|
|
|
2358 |
CamInt_resetCam
|
|
|
2359 |
CamConfig_setCamReg
|
|
|
2360 |
CamConfig_sendFifoCmds
|
|
|
2361 |
colorMap
|
|
|
2362 |
__eeprom_read_byte_1C1D1E
|
|
|
2363 |
__eeprom_write_byte_1C1D1E
|