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