Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1997 | - | 1 | 1 .file "eeprom.c" |
2 | 2 .arch atmega1284p |
||
3 | 3 __SREG__ = 0x3f |
||
4 | 4 __SP_H__ = 0x3e |
||
5 | 5 __SP_L__ = 0x3d |
||
6 | 6 __tmp_reg__ = 0 |
||
7 | 7 __zero_reg__ = 1 |
||
8 | 8 .global __do_copy_data |
||
9 | 9 .global __do_clear_bss |
||
10 | 10 .text |
||
11 | 12 eeprom_read_byte: |
||
12 | 13 /* prologue: frame size=0 */ |
||
13 | 14 /* prologue end (size=0) */ |
||
14 | 15 .L2: |
||
15 | 16 0000 F999 sbic 63-0x20,1 |
||
16 | 17 0002 00C0 rjmp .L2 |
||
17 | 18 0004 92BD out (65)+1-0x20,r25 |
||
18 | 19 0006 81BD out 65-0x20,r24 |
||
19 | 20 /* #APP */ |
||
20 | 21 /* START EEPROM READ CRITICAL SECTION */ |
||
21 | 22 0008 F89A sbi 31, 0 |
||
22 | 23 000a 80B5 in r24, 32 |
||
23 | 24 /* END EEPROM READ CRITICAL SECTION */ |
||
24 | 25 |
||
25 | 26 /* #NOAPP */ |
||
26 | 27 000c 9927 clr r25 |
||
27 | 28 /* epilogue: frame size=0 */ |
||
28 | 29 000e 0895 ret |
||
29 | 30 /* epilogue end (size=1) */ |
||
30 | 31 /* function eeprom_read_byte size 16 (15) */ |
||
31 | 34 eeprom_write_byte: |
||
32 | 35 /* prologue: frame size=0 */ |
||
33 | 36 /* prologue end (size=0) */ |
||
34 | 37 .L6: |
||
35 | 38 0010 F999 sbic 63-0x20,1 |
||
36 | 39 0012 00C0 rjmp .L6 |
||
37 | 40 0014 1FBA out 63-0x20,__zero_reg__ |
||
38 | 41 0016 92BD out (65)+1-0x20,r25 |
||
39 | 42 0018 81BD out 65-0x20,r24 |
||
40 | 43 001a 60BD out 64-0x20,r22 |
||
41 | 44 /* #APP */ |
||
42 | 45 /* START EEPROM WRITE CRITICAL SECTION */ |
||
43 | 46 001c 0FB6 in r0, 63 |
||
44 | 47 001e F894 cli |
||
45 | 48 0020 FA9A sbi 31, 2 |
||
46 | 49 0022 F99A sbi 31, 1 |
||
47 | 50 0024 0FBE out 63, r0 |
||
48 | 51 /* END EEPROM WRITE CRITICAL SECTION */ |
||
49 | 52 /* #NOAPP */ |
||
50 | 53 /* epilogue: frame size=0 */ |
||
51 | 54 0026 0895 ret |
||
52 | 55 /* epilogue end (size=1) */ |
||
53 | 56 /* function eeprom_write_byte size 21 (20) */ |
||
54 | 58 .global RAM_Checksum |
||
55 | 60 RAM_Checksum: |
||
56 | 61 /* prologue: frame size=0 */ |
||
57 | 62 /* prologue end (size=0) */ |
||
58 | 63 0028 4AEA ldi r20,lo8(-86) |
||
59 | 64 002a 20E0 ldi r18,lo8(0) |
||
60 | 65 002c 30E0 ldi r19,hi8(0) |
||
61 | 66 002e 2617 cp r18,r22 |
||
62 | 67 0030 3707 cpc r19,r23 |
||
63 | 68 0032 00F4 brsh .L15 |
||
64 | 69 0034 FC01 movw r30,r24 |
||
65 | 70 .L13: |
||
66 | 71 0036 8191 ld r24,Z+ |
||
67 | 72 0038 480F add r20,r24 |
||
68 | 73 003a 2F5F subi r18,lo8(-(1)) |
||
69 | 74 003c 3F4F sbci r19,hi8(-(1)) |
||
70 | 75 003e 2617 cp r18,r22 |
||
71 | 76 0040 3707 cpc r19,r23 |
||
72 | 77 0042 00F0 brlo .L13 |
||
73 | 78 .L15: |
||
74 | 79 0044 842F mov r24,r20 |
||
75 | 80 0046 9927 clr r25 |
||
76 | 81 /* epilogue: frame size=0 */ |
||
77 | 82 0048 0895 ret |
||
78 | 83 /* epilogue end (size=1) */ |
||
79 | 84 /* function RAM_Checksum size 17 (16) */ |
||
80 | 86 .global EEProm_Checksum |
||
81 | 88 EEProm_Checksum: |
||
82 | 89 /* prologue: frame size=0 */ |
||
83 | 90 /* prologue end (size=0) */ |
||
84 | 91 004a EAEA ldi r30,lo8(-86) |
||
85 | 92 004c 40E0 ldi r20,lo8(0) |
||
86 | 93 004e 50E0 ldi r21,hi8(0) |
||
87 | 94 0050 4617 cp r20,r22 |
||
88 | 95 0052 5707 cpc r21,r23 |
||
89 | 96 0054 00F4 brsh .L26 |
||
90 | 97 0056 9C01 movw r18,r24 |
||
91 | 98 .L30: |
||
92 | 99 0058 F999 sbic 63-0x20,1 |
||
93 | 100 005a 00C0 rjmp .L30 |
||
94 | 101 005c 32BD out (65)+1-0x20,r19 |
||
95 | 102 005e 21BD out 65-0x20,r18 |
||
96 | 103 /* #APP */ |
||
97 | 104 /* START EEPROM READ CRITICAL SECTION */ |
||
98 | 105 0060 F89A sbi 31, 0 |
||
99 | 106 0062 80B5 in r24, 32 |
||
100 | 107 /* END EEPROM READ CRITICAL SECTION */ |
||
101 | 108 |
||
102 | 109 /* #NOAPP */ |
||
103 | 110 0064 E80F add r30,r24 |
||
104 | 111 0066 4F5F subi r20,lo8(-(1)) |
||
105 | 112 0068 5F4F sbci r21,hi8(-(1)) |
||
106 | 113 006a 2F5F subi r18,lo8(-(1)) |
||
107 | 114 006c 3F4F sbci r19,hi8(-(1)) |
||
108 | 115 006e 4617 cp r20,r22 |
||
109 | 116 0070 5707 cpc r21,r23 |
||
110 | 117 0072 00F0 brlo .L30 |
||
111 | 118 .L26: |
||
112 | 119 0074 8E2F mov r24,r30 |
||
113 | 120 0076 9927 clr r25 |
||
114 | 121 /* epilogue: frame size=0 */ |
||
115 | 122 0078 0895 ret |
||
116 | 123 /* epilogue end (size=1) */ |
||
117 | 124 /* function EEProm_Checksum size 32 (31) */ |
||
118 | 126 .global ParamSet_DefaultStickMapping |
||
119 | 128 ParamSet_DefaultStickMapping: |
||
120 | 129 /* prologue: frame size=0 */ |
||
121 | 130 /* prologue end (size=0) */ |
||
122 | 131 007a 81E0 ldi r24,lo8(1) |
||
123 | 132 007c 8093 0000 sts EE_Parameter+3,r24 |
||
124 | 133 0080 82E0 ldi r24,lo8(2) |
||
125 | 134 0082 8093 0000 sts EE_Parameter+2,r24 |
||
126 | 135 0086 83E0 ldi r24,lo8(3) |
||
127 | 136 0088 8093 0000 sts EE_Parameter+1,r24 |
||
128 | 137 008c 84E0 ldi r24,lo8(4) |
||
129 | 138 008e 8093 0000 sts EE_Parameter+4,r24 |
||
130 | 139 0092 85E0 ldi r24,lo8(5) |
||
131 | 140 0094 8093 0000 sts EE_Parameter+5,r24 |
||
132 | 141 0098 86E0 ldi r24,lo8(6) |
||
133 | 142 009a 8093 0000 sts EE_Parameter+6,r24 |
||
134 | 143 009e 87E0 ldi r24,lo8(7) |
||
135 | 144 00a0 8093 0000 sts EE_Parameter+7,r24 |
||
136 | 145 00a4 88E0 ldi r24,lo8(8) |
||
137 | 146 00a6 8093 0000 sts EE_Parameter+8,r24 |
||
138 | 147 00aa 89E0 ldi r24,lo8(9) |
||
139 | 148 00ac 8093 0000 sts EE_Parameter+9,r24 |
||
140 | 149 00b0 8AE0 ldi r24,lo8(10) |
||
141 | 150 00b2 8093 0000 sts EE_Parameter+10,r24 |
||
142 | 151 00b6 8BE0 ldi r24,lo8(11) |
||
143 | 152 00b8 8093 0000 sts EE_Parameter+11,r24 |
||
144 | 153 00bc 8CE0 ldi r24,lo8(12) |
||
145 | 154 00be 8093 0000 sts EE_Parameter+12,r24 |
||
146 | 155 /* epilogue: frame size=0 */ |
||
147 | 156 00c2 0895 ret |
||
148 | 157 /* epilogue end (size=1) */ |
||
149 | 158 /* function ParamSet_DefaultStickMapping size 37 (36) */ |
||
150 | 160 .global CommonDefaults |
||
151 | 162 CommonDefaults: |
||
152 | 163 /* prologue: frame size=0 */ |
||
153 | 164 /* prologue end (size=0) */ |
||
154 | 165 00c4 88E5 ldi r24,lo8(88) |
||
155 | 166 00c6 8093 0000 sts EE_Parameter,r24 |
||
156 | 167 00ca 8091 0000 lds r24,PlatinenVersion |
||
157 | 168 00ce 8431 cpi r24,lo8(20) |
||
158 | 169 00d0 00F0 brlo .L33 |
||
159 | 170 00d2 8AE0 ldi r24,lo8(10) |
||
160 | 171 00d4 8093 0000 sts EE_Parameter+32,r24 |
||
161 | 172 00d8 1092 0000 sts EE_Parameter+68,__zero_reg__ |
||
162 | 173 00dc 8BE1 ldi r24,lo8(27) |
||
163 | 174 00de 8093 0000 sts EE_Parameter+28,r24 |
||
164 | 175 00e2 8EE4 ldi r24,lo8(78) |
||
165 | 176 00e4 00C0 rjmp .L35 |
||
166 | 177 .L33: |
||
167 | 178 00e6 83E0 ldi r24,lo8(3) |
||
168 | 179 00e8 8093 0000 sts EE_Parameter+32,r24 |
||
169 | 180 00ec 80E2 ldi r24,lo8(32) |
||
170 | 181 00ee 8093 0000 sts EE_Parameter+68,r24 |
||
171 | 182 00f2 8EE1 ldi r24,lo8(30) |
||
172 | 183 00f4 8093 0000 sts EE_Parameter+28,r24 |
||
173 | 184 00f8 85E5 ldi r24,lo8(85) |
||
174 | 185 .L35: |
||
175 | 186 00fa 8093 0000 sts EE_Parameter+65,r24 |
||
176 | 187 00fe 8093 0000 sts EE_Parameter+66,r24 |
||
177 | 188 0102 80E2 ldi r24,lo8(32) |
||
178 | 189 0104 8093 0000 sts EE_Parameter+67,r24 |
||
179 | 190 0108 8AE6 ldi r24,lo8(106) |
||
180 | 191 010a 8093 0000 sts EE_Parameter+13,r24 |
||
181 | 192 010e 82E2 ldi r24,lo8(34) |
||
182 | 193 0110 8093 0000 sts EE_Parameter+106,r24 |
||
183 | 194 0114 64E0 ldi r22,lo8(4) |
||
184 | 195 0116 6093 0000 sts EE_Parameter+39,r22 |
||
185 | 196 011a 1092 0000 sts EE_Parameter+99,__zero_reg__ |
||
186 | 197 011e 1092 0000 sts EE_Parameter+96,__zero_reg__ |
||
187 | 198 0122 48E0 ldi r20,lo8(8) |
||
188 | 199 0124 4093 0000 sts EE_Parameter+26,r20 |
||
189 | 200 0128 56EE ldi r21,lo8(-26) |
||
190 | 201 012a 5093 0000 sts EE_Parameter+27,r21 |
||
191 | 202 012e 30E4 ldi r19,lo8(64) |
||
192 | 203 0130 3093 0000 sts EE_Parameter+29,r19 |
||
193 | 204 0134 9EE1 ldi r25,lo8(30) |
||
194 | 205 0136 9093 0000 sts EE_Parameter+14,r25 |
||
195 | 206 013a 8FEF ldi r24,lo8(-1) |
||
196 | 207 013c 8093 0000 sts EE_Parameter+16,r24 |
||
197 | 208 0140 2FE0 ldi r18,lo8(15) |
||
198 | 209 0142 2093 0000 sts EE_Parameter+17,r18 |
||
199 | 210 0146 9093 0000 sts EE_Parameter+15,r25 |
||
200 | 211 014a 1092 0000 sts EE_Parameter+19,__zero_reg__ |
||
201 | 212 014e 4093 0000 sts EE_Parameter+20,r20 |
||
202 | 213 0152 3093 0000 sts EE_Parameter+21,r19 |
||
203 | 214 0156 1092 0000 sts EE_Parameter+22,__zero_reg__ |
||
204 | 215 015a 2093 0000 sts EE_Parameter+18,r18 |
||
205 | 216 015e 1092 0000 sts EE_Parameter+41,__zero_reg__ |
||
206 | 217 0162 1092 0000 sts EE_Parameter+42,__zero_reg__ |
||
207 | 218 0166 1092 0000 sts EE_Parameter+43,__zero_reg__ |
||
208 | 219 016a 1092 0000 sts EE_Parameter+44,__zero_reg__ |
||
209 | 220 016e 1092 0000 sts EE_Parameter+70,__zero_reg__ |
||
210 | 221 0172 1092 0000 sts EE_Parameter+71,__zero_reg__ |
||
211 | 222 0176 1092 0000 sts EE_Parameter+72,__zero_reg__ |
||
212 | 223 017a 1092 0000 sts EE_Parameter+73,__zero_reg__ |
||
213 | 224 017e 90E8 ldi r25,lo8(-128) |
||
214 | 225 0180 9093 0000 sts EE_Parameter+45,r25 |
||
215 | 226 0184 32E3 ldi r19,lo8(50) |
||
216 | 227 0186 3093 0000 sts EE_Parameter+46,r19 |
||
217 | 228 018a 82E0 ldi r24,lo8(2) |
||
218 | 229 018c 8093 0000 sts EE_Parameter+105,r24 |
||
219 | 230 0190 2093 0000 sts EE_Parameter+47,r18 |
||
220 | 231 0194 5093 0000 sts EE_Parameter+48,r21 |
||
221 | 232 0198 6093 0000 sts EE_Parameter+53,r22 |
||
222 | 233 019c 8DE7 ldi r24,lo8(125) |
||
223 | 234 019e 8093 0000 sts EE_Parameter+56,r24 |
||
224 | 235 01a2 8093 0000 sts EE_Parameter+57,r24 |
||
225 | 236 01a6 8093 0000 sts EE_Parameter+58,r24 |
||
226 | 237 01aa 9093 0000 sts EE_Parameter+49,r25 |
||
227 | 238 01ae 25E5 ldi r18,lo8(85) |
||
228 | 239 01b0 2093 0000 sts EE_Parameter+50,r18 |
||
229 | 240 01b4 86E4 ldi r24,lo8(70) |
||
230 | 241 01b6 8093 0000 sts EE_Parameter+51,r24 |
||
231 | 242 01ba 8CED ldi r24,lo8(-36) |
||
232 | 243 01bc 8093 0000 sts EE_Parameter+52,r24 |
||
233 | 244 01c0 8CE3 ldi r24,lo8(60) |
||
234 | 245 01c2 8093 0000 sts EE_Parameter+54,r24 |
||
235 | 246 01c6 1092 0000 sts EE_Parameter+55,__zero_reg__ |
||
236 | 247 01ca 8FE5 ldi r24,lo8(95) |
||
237 | 248 01cc 8093 0000 sts EE_Parameter+74,r24 |
||
238 | 249 01d0 83EF ldi r24,lo8(-13) |
||
239 | 250 01d2 8093 0000 sts EE_Parameter+76,r24 |
||
240 | 251 01d6 8AEA ldi r24,lo8(-86) |
||
241 | 252 01d8 8093 0000 sts EE_Parameter+78,r24 |
||
242 | 253 01dc 8093 0000 sts EE_Parameter+79,r24 |
||
243 | 254 01e0 84E1 ldi r24,lo8(20) |
||
244 | 255 01e2 8093 0000 sts EE_Parameter+75,r24 |
||
245 | 256 01e6 8093 0000 sts EE_Parameter+77,r24 |
||
246 | 257 01ea 3093 0000 sts EE_Parameter+59,r19 |
||
247 | 258 01ee 9AE5 ldi r25,lo8(90) |
||
248 | 259 01f0 9093 0000 sts EE_Parameter+60,r25 |
||
249 | 260 01f4 3093 0000 sts EE_Parameter+61,r19 |
||
250 | 261 01f8 1092 0000 sts EE_Parameter+104,__zero_reg__ |
||
251 | 262 01fc 8EEF ldi r24,lo8(-2) |
||
252 | 263 01fe 8093 0000 sts EE_Parameter+80,r24 |
||
253 | 264 0202 84E6 ldi r24,lo8(100) |
||
254 | 265 0204 8093 0000 sts EE_Parameter+81,r24 |
||
255 | 266 0208 9093 0000 sts EE_Parameter+82,r25 |
||
256 | 267 020c 9093 0000 sts EE_Parameter+83,r25 |
||
257 | 268 0210 9093 0000 sts EE_Parameter+84,r25 |
||
258 | 269 0214 8BE4 ldi r24,lo8(75) |
||
259 | 270 0216 8093 0000 sts EE_Parameter+85,r24 |
||
260 | 271 021a 2093 0000 sts EE_Parameter+86,r18 |
||
261 | 272 021e 8093 0000 sts EE_Parameter+87,r24 |
||
262 | 273 0222 1092 0000 sts EE_Parameter+88,__zero_reg__ |
||
263 | 274 0226 86E0 ldi r24,lo8(6) |
||
264 | 275 0228 8093 0000 sts EE_Parameter+89,r24 |
||
265 | 276 022c 4093 0000 sts EE_Parameter+90,r20 |
||
266 | 277 0230 9093 0000 sts EE_Parameter+91,r25 |
||
267 | 278 0234 8AE2 ldi r24,lo8(42) |
||
268 | 279 0236 8093 0000 sts EE_Parameter+92,r24 |
||
269 | 280 023a 85EF ldi r24,lo8(-11) |
||
270 | 281 023c 8093 0000 sts EE_Parameter+93,r24 |
||
271 | 282 0240 8CE8 ldi r24,lo8(-116) |
||
272 | 283 0242 8093 0000 sts EE_Parameter+94,r24 |
||
273 | 284 0246 85E0 ldi r24,lo8(5) |
||
274 | 285 0248 8093 0000 sts EE_Parameter+95,r24 |
||
275 | 286 024c 1092 0000 sts EE_Parameter+97,__zero_reg__ |
||
276 | 287 0250 1092 0000 sts EE_Parameter+98,__zero_reg__ |
||
277 | 288 0254 81E2 ldi r24,lo8(33) |
||
278 | 289 0256 8093 0000 sts EE_Parameter+36,r24 |
||
279 | 290 025a 8DE2 ldi r24,lo8(45) |
||
280 | 291 025c 8093 0000 sts EE_Parameter+37,r24 |
||
281 | 292 0260 9093 0000 sts EE_Parameter+38,r25 |
||
282 | 293 0264 1092 0000 sts EE_Parameter+100,__zero_reg__ |
||
283 | 294 0268 1092 0000 sts EE_Parameter+101,__zero_reg__ |
||
284 | 295 026c 1092 0000 sts EE_Parameter+102,__zero_reg__ |
||
285 | 296 0270 86E9 ldi r24,lo8(-106) |
||
286 | 297 0272 8093 0000 sts EE_Parameter+103,r24 |
||
287 | 298 0276 9093 0000 sts EE_Parameter+62,r25 |
||
288 | 299 027a 87E3 ldi r24,lo8(55) |
||
289 | 300 027c 8093 0000 sts EE_Parameter+63,r24 |
||
290 | 301 /* epilogue: frame size=0 */ |
||
291 | 302 0280 0895 ret |
||
292 | 303 /* epilogue end (size=1) */ |
||
293 | 304 /* function CommonDefaults size 223 (222) */ |
||
294 | 306 .data |
||
295 | 307 .LC0: |
||
296 | 308 0000 4661 7374 .string "Fast" |
||
297 | 308 00 |
||
298 | 309 0005 00 .string "" |
||
299 | 310 .text |
||
300 | 311 .global ParamSet_DefaultSet1 |
||
301 | 313 ParamSet_DefaultSet1: |
||
302 | 314 /* prologue: frame size=0 */ |
||
303 | 315 0282 CF93 push r28 |
||
304 | 316 0284 DF93 push r29 |
||
305 | 317 /* prologue end (size=2) */ |
||
306 | 318 0286 0E94 0000 call CommonDefaults |
||
307 | 319 028a 8AE0 ldi r24,lo8(10) |
||
308 | 320 028c 8093 0000 sts EE_Parameter+23,r24 |
||
309 | 321 0290 80E1 ldi r24,lo8(16) |
||
310 | 322 0292 8093 0000 sts EE_Parameter+24,r24 |
||
311 | 323 0296 26E0 ldi r18,lo8(6) |
||
312 | 324 0298 2093 0000 sts EE_Parameter+25,r18 |
||
313 | 325 029c 9AE5 ldi r25,lo8(90) |
||
314 | 326 029e 9093 0000 sts EE_Parameter+30,r25 |
||
315 | 327 02a2 88E7 ldi r24,lo8(120) |
||
316 | 328 02a4 8093 0000 sts EE_Parameter+31,r24 |
||
317 | 329 02a8 9093 0000 sts EE_Parameter+33,r25 |
||
318 | 330 02ac 8093 0000 sts EE_Parameter+34,r24 |
||
319 | 331 02b0 2093 0000 sts EE_Parameter+35,r18 |
||
320 | 332 02b4 80E2 ldi r24,lo8(32) |
||
321 | 333 02b6 8093 0000 sts EE_Parameter+40,r24 |
||
322 | 334 02ba 8CE3 ldi r24,lo8(60) |
||
323 | 335 02bc 8093 0000 sts EE_Parameter+64,r24 |
||
324 | 336 02c0 8BE4 ldi r24,lo8(75) |
||
325 | 337 02c2 8093 0000 sts EE_Parameter+69,r24 |
||
326 | 338 02c6 A0E0 ldi r26,lo8(EE_Parameter+107) |
||
327 | 339 02c8 B0E0 ldi r27,hi8(EE_Parameter+107) |
||
328 | 340 02ca 8CE0 ldi r24,lo8(12) |
||
329 | 341 02cc E0E0 ldi r30,lo8(.LC0) |
||
330 | 342 02ce F0E0 ldi r31,hi8(.LC0) |
||
331 | 343 02d0 ED01 movw r28,r26 |
||
332 | 344 02d2 0190 ld __tmp_reg__,Z+ |
||
333 | 345 02d4 0992 st Y+,__tmp_reg__ |
||
334 | 346 02d6 8A95 dec r24 |
||
335 | 347 02d8 01F4 brne .-8 |
||
336 | 348 02da 67E7 ldi r22,lo8(119) |
||
337 | 349 02dc 70E0 ldi r23,hi8(119) |
||
338 | 350 02de CD01 movw r24,r26 |
||
339 | 351 02e0 8B56 subi r24,lo8(-(-107)) |
||
340 | 352 02e2 9040 sbci r25,hi8(-(-107)) |
||
341 | 353 02e4 0E94 0000 call RAM_Checksum |
||
342 | 354 02e8 8093 0000 sts EE_Parameter+119,r24 |
||
343 | 355 /* epilogue: frame size=0 */ |
||
344 | 356 02ec DF91 pop r29 |
||
345 | 357 02ee CF91 pop r28 |
||
346 | 358 02f0 0895 ret |
||
347 | 359 /* epilogue end (size=3) */ |
||
348 | 360 /* function ParamSet_DefaultSet1 size 56 (51) */ |
||
349 | 362 .data |
||
350 | 363 .LC1: |
||
351 | 364 0006 4E6F 726D .string "Normal" |
||
352 | 364 616C 00 |
||
353 | 365 000d 00 .string "" |
||
354 | 366 .text |
||
355 | 367 .global ParamSet_DefaultSet2 |
||
356 | 369 ParamSet_DefaultSet2: |
||
357 | 370 /* prologue: frame size=0 */ |
||
358 | 371 02f2 CF93 push r28 |
||
359 | 372 02f4 DF93 push r29 |
||
360 | 373 /* prologue end (size=2) */ |
||
361 | 374 02f6 0E94 0000 call CommonDefaults |
||
362 | 375 02fa 88E0 ldi r24,lo8(8) |
||
363 | 376 02fc 8093 0000 sts EE_Parameter+23,r24 |
||
364 | 377 0300 30E1 ldi r19,lo8(16) |
||
365 | 378 0302 3093 0000 sts EE_Parameter+24,r19 |
||
366 | 379 0306 26E0 ldi r18,lo8(6) |
||
367 | 380 0308 2093 0000 sts EE_Parameter+25,r18 |
||
368 | 381 030c 94E6 ldi r25,lo8(100) |
||
369 | 382 030e 9093 0000 sts EE_Parameter+30,r25 |
||
370 | 383 0312 88E7 ldi r24,lo8(120) |
||
371 | 384 0314 8093 0000 sts EE_Parameter+31,r24 |
||
372 | 385 0318 9093 0000 sts EE_Parameter+33,r25 |
||
373 | 386 031c 8093 0000 sts EE_Parameter+34,r24 |
||
374 | 387 0320 2093 0000 sts EE_Parameter+35,r18 |
||
375 | 388 0324 3093 0000 sts EE_Parameter+40,r19 |
||
376 | 389 0328 86E4 ldi r24,lo8(70) |
||
377 | 390 032a 8093 0000 sts EE_Parameter+64,r24 |
||
378 | 391 032e 8093 0000 sts EE_Parameter+69,r24 |
||
379 | 392 0332 A0E0 ldi r26,lo8(EE_Parameter+107) |
||
380 | 393 0334 B0E0 ldi r27,hi8(EE_Parameter+107) |
||
381 | 394 0336 8CE0 ldi r24,lo8(12) |
||
382 | 395 0338 E0E0 ldi r30,lo8(.LC1) |
||
383 | 396 033a F0E0 ldi r31,hi8(.LC1) |
||
384 | 397 033c ED01 movw r28,r26 |
||
385 | 398 033e 0190 ld __tmp_reg__,Z+ |
||
386 | 399 0340 0992 st Y+,__tmp_reg__ |
||
387 | 400 0342 8A95 dec r24 |
||
388 | 401 0344 01F4 brne .-8 |
||
389 | 402 0346 67E7 ldi r22,lo8(119) |
||
390 | 403 0348 70E0 ldi r23,hi8(119) |
||
391 | 404 034a CD01 movw r24,r26 |
||
392 | 405 034c 8B56 subi r24,lo8(-(-107)) |
||
393 | 406 034e 9040 sbci r25,hi8(-(-107)) |
||
394 | 407 0350 0E94 0000 call RAM_Checksum |
||
395 | 408 0354 8093 0000 sts EE_Parameter+119,r24 |
||
396 | 409 /* epilogue: frame size=0 */ |
||
397 | 410 0358 DF91 pop r29 |
||
398 | 411 035a CF91 pop r28 |
||
399 | 412 035c 0895 ret |
||
400 | 413 /* epilogue end (size=3) */ |
||
401 | 414 /* function ParamSet_DefaultSet2 size 54 (49) */ |
||
402 | 416 .data |
||
403 | 417 .LC2: |
||
404 | 418 000e 4561 7379 .string "Easy" |
||
405 | 418 00 |
||
406 | 419 0013 00 .string "" |
||
407 | 420 .text |
||
408 | 421 .global ParamSet_DefaultSet3 |
||
409 | 423 ParamSet_DefaultSet3: |
||
410 | 424 /* prologue: frame size=0 */ |
||
411 | 425 035e CF93 push r28 |
||
412 | 426 0360 DF93 push r29 |
||
413 | 427 /* prologue end (size=2) */ |
||
414 | 428 0362 0E94 0000 call CommonDefaults |
||
415 | 429 0366 26E0 ldi r18,lo8(6) |
||
416 | 430 0368 2093 0000 sts EE_Parameter+23,r18 |
||
417 | 431 036c 8AE0 ldi r24,lo8(10) |
||
418 | 432 036e 8093 0000 sts EE_Parameter+24,r24 |
||
419 | 433 0372 84E0 ldi r24,lo8(4) |
||
420 | 434 0374 8093 0000 sts EE_Parameter+25,r24 |
||
421 | 435 0378 94E6 ldi r25,lo8(100) |
||
422 | 436 037a 9093 0000 sts EE_Parameter+30,r25 |
||
423 | 437 037e 88E7 ldi r24,lo8(120) |
||
424 | 438 0380 8093 0000 sts EE_Parameter+31,r24 |
||
425 | 439 0384 9093 0000 sts EE_Parameter+33,r25 |
||
426 | 440 0388 8093 0000 sts EE_Parameter+34,r24 |
||
427 | 441 038c 2093 0000 sts EE_Parameter+35,r18 |
||
428 | 442 0390 80E1 ldi r24,lo8(16) |
||
429 | 443 0392 8093 0000 sts EE_Parameter+40,r24 |
||
430 | 444 0396 86E4 ldi r24,lo8(70) |
||
431 | 445 0398 8093 0000 sts EE_Parameter+64,r24 |
||
432 | 446 039c 8093 0000 sts EE_Parameter+69,r24 |
||
433 | 447 03a0 A0E0 ldi r26,lo8(EE_Parameter+107) |
||
434 | 448 03a2 B0E0 ldi r27,hi8(EE_Parameter+107) |
||
435 | 449 03a4 8CE0 ldi r24,lo8(12) |
||
436 | 450 03a6 E0E0 ldi r30,lo8(.LC2) |
||
437 | 451 03a8 F0E0 ldi r31,hi8(.LC2) |
||
438 | 452 03aa ED01 movw r28,r26 |
||
439 | 453 03ac 0190 ld __tmp_reg__,Z+ |
||
440 | 454 03ae 0992 st Y+,__tmp_reg__ |
||
441 | 455 03b0 8A95 dec r24 |
||
442 | 456 03b2 01F4 brne .-8 |
||
443 | 457 03b4 67E7 ldi r22,lo8(119) |
||
444 | 458 03b6 70E0 ldi r23,hi8(119) |
||
445 | 459 03b8 CD01 movw r24,r26 |
||
446 | 460 03ba 8B56 subi r24,lo8(-(-107)) |
||
447 | 461 03bc 9040 sbci r25,hi8(-(-107)) |
||
448 | 462 03be 0E94 0000 call RAM_Checksum |
||
449 | 463 03c2 8093 0000 sts EE_Parameter+119,r24 |
||
450 | 464 /* epilogue: frame size=0 */ |
||
451 | 465 03c6 DF91 pop r29 |
||
452 | 466 03c8 CF91 pop r28 |
||
453 | 467 03ca 0895 ret |
||
454 | 468 /* epilogue end (size=3) */ |
||
455 | 469 /* function ParamSet_DefaultSet3 size 55 (50) */ |
||
456 | 471 .global GetParamByte |
||
457 | 473 GetParamByte: |
||
458 | 474 /* prologue: frame size=0 */ |
||
459 | 475 /* prologue end (size=0) */ |
||
460 | 476 .L40: |
||
461 | 477 03cc F999 sbic 63-0x20,1 |
||
462 | 478 03ce 00C0 rjmp .L40 |
||
463 | 479 03d0 92BD out (65)+1-0x20,r25 |
||
464 | 480 03d2 81BD out 65-0x20,r24 |
||
465 | 481 /* #APP */ |
||
466 | 482 /* START EEPROM READ CRITICAL SECTION */ |
||
467 | 483 03d4 F89A sbi 31, 0 |
||
468 | 484 03d6 80B5 in r24, 32 |
||
469 | 485 /* END EEPROM READ CRITICAL SECTION */ |
||
470 | 486 |
||
471 | 487 /* #NOAPP */ |
||
472 | 488 03d8 9927 clr r25 |
||
473 | 489 /* epilogue: frame size=0 */ |
||
474 | 490 03da 0895 ret |
||
475 | 491 /* epilogue end (size=1) */ |
||
476 | 492 /* function GetParamByte size 16 (15) */ |
||
477 | 494 .global SetParamByte |
||
478 | 496 SetParamByte: |
||
479 | 497 /* prologue: frame size=0 */ |
||
480 | 498 /* prologue end (size=0) */ |
||
481 | 499 .L45: |
||
482 | 500 03dc F999 sbic 63-0x20,1 |
||
483 | 501 03de 00C0 rjmp .L45 |
||
484 | 502 03e0 1FBA out 63-0x20,__zero_reg__ |
||
485 | 503 03e2 92BD out (65)+1-0x20,r25 |
||
486 | 504 03e4 81BD out 65-0x20,r24 |
||
487 | 505 03e6 60BD out 64-0x20,r22 |
||
488 | 506 /* #APP */ |
||
489 | 507 /* START EEPROM WRITE CRITICAL SECTION */ |
||
490 | 508 03e8 0FB6 in r0, 63 |
||
491 | 509 03ea F894 cli |
||
492 | 510 03ec FA9A sbi 31, 2 |
||
493 | 511 03ee F99A sbi 31, 1 |
||
494 | 512 03f0 0FBE out 63, r0 |
||
495 | 513 /* END EEPROM WRITE CRITICAL SECTION */ |
||
496 | 514 /* #NOAPP */ |
||
497 | 515 /* epilogue: frame size=0 */ |
||
498 | 516 03f2 0895 ret |
||
499 | 517 /* epilogue end (size=1) */ |
||
500 | 518 /* function SetParamByte size 21 (20) */ |
||
501 | 520 .global GetParamWord |
||
502 | 522 GetParamWord: |
||
503 | 523 /* prologue: frame size=0 */ |
||
504 | 524 /* prologue end (size=0) */ |
||
505 | 525 03f4 60E0 ldi r22,lo8(pm(eeprom_read_byte)) |
||
506 | 526 03f6 70E0 ldi r23,hi8(pm(eeprom_read_byte)) |
||
507 | 527 03f8 0E94 0000 call __eerd_word |
||
508 | 528 /* epilogue: frame size=0 */ |
||
509 | 529 03fc 0895 ret |
||
510 | 530 /* epilogue end (size=1) */ |
||
511 | 531 /* function GetParamWord size 5 (4) */ |
||
512 | 533 .global SetParamWord |
||
513 | 535 SetParamWord: |
||
514 | 536 /* prologue: frame size=0 */ |
||
515 | 537 /* prologue end (size=0) */ |
||
516 | 538 03fe 40E0 ldi r20,lo8(pm(eeprom_write_byte)) |
||
517 | 539 0400 50E0 ldi r21,hi8(pm(eeprom_write_byte)) |
||
518 | 540 0402 0E94 0000 call __eewr_word |
||
519 | 541 /* epilogue: frame size=0 */ |
||
520 | 542 0406 0895 ret |
||
521 | 543 /* epilogue end (size=1) */ |
||
522 | 544 /* function SetParamWord size 5 (4) */ |
||
523 | 546 .global ParamSet_ReadFromEEProm |
||
524 | 548 ParamSet_ReadFromEEProm: |
||
525 | 549 /* prologue: frame size=0 */ |
||
526 | 550 0408 EF92 push r14 |
||
527 | 551 040a FF92 push r15 |
||
528 | 552 040c 0F93 push r16 |
||
529 | 553 040e 1F93 push r17 |
||
530 | 554 0410 CF93 push r28 |
||
531 | 555 /* prologue end (size=5) */ |
||
532 | 556 0412 C82F mov r28,r24 |
||
533 | 557 0414 8150 subi r24,lo8(-(-1)) |
||
534 | 558 0416 8530 cpi r24,lo8(5) |
||
535 | 559 0418 00F0 brlo .L54 |
||
536 | 560 041a C3E0 ldi r28,lo8(3) |
||
537 | 561 .L54: |
||
538 | 562 041c 88E7 ldi r24,lo8(120) |
||
539 | 563 041e C89F mul r28,r24 |
||
540 | 564 0420 8001 movw r16,r0 |
||
541 | 565 0422 1124 clr r1 |
||
542 | 566 0424 8CEE ldi r24,lo8(-20) |
||
543 | 567 0426 E82E mov r14,r24 |
||
544 | 568 0428 8FEF ldi r24,hi8(-20) |
||
545 | 569 042a F82E mov r15,r24 |
||
546 | 570 042c E00E add r14,r16 |
||
547 | 571 042e F11E adc r15,r17 |
||
548 | 572 0430 67E7 ldi r22,lo8(119) |
||
549 | 573 0432 70E0 ldi r23,hi8(119) |
||
550 | 574 0434 C701 movw r24,r14 |
||
551 | 575 0436 0E94 0000 call EEProm_Checksum |
||
552 | 576 043a 682F mov r22,r24 |
||
553 | 577 043c 9801 movw r18,r16 |
||
554 | 578 043e 2D59 subi r18,lo8(-(99)) |
||
555 | 579 0440 3F4F sbci r19,hi8(-(99)) |
||
556 | 580 .L56: |
||
557 | 581 0442 8FB3 in r24,63-0x20 |
||
558 | 582 0444 9927 clr r25 |
||
559 | 583 0446 AC01 movw r20,r24 |
||
560 | 584 0448 4270 andi r20,lo8(2) |
||
561 | 585 044a 5070 andi r21,hi8(2) |
||
562 | 586 044c 81FD sbrc r24,1 |
||
563 | 587 044e 00C0 rjmp .L56 |
||
564 | 588 0450 32BD out (65)+1-0x20,r19 |
||
565 | 589 0452 21BD out 65-0x20,r18 |
||
566 | 590 /* #APP */ |
||
567 | 591 /* START EEPROM READ CRITICAL SECTION */ |
||
568 | 592 0454 F89A sbi 31, 0 |
||
569 | 593 0456 80B5 in r24, 32 |
||
570 | 594 /* END EEPROM READ CRITICAL SECTION */ |
||
571 | 595 |
||
572 | 596 /* #NOAPP */ |
||
573 | 597 0458 8617 cp r24,r22 |
||
574 | 598 045a 01F0 breq .L61 |
||
575 | 599 045c CA01 movw r24,r20 |
||
576 | 600 045e 00C0 rjmp .L53 |
||
577 | 601 .L61: |
||
578 | 602 0460 8FB3 in r24,63-0x20 |
||
579 | 603 0462 9927 clr r25 |
||
580 | 604 0464 9C01 movw r18,r24 |
||
581 | 605 0466 2270 andi r18,lo8(2) |
||
582 | 606 0468 3070 andi r19,hi8(2) |
||
583 | 607 046a 81FD sbrc r24,1 |
||
584 | 608 046c 00C0 rjmp .L61 |
||
585 | 609 046e F2BC out (65)+1-0x20,r15 |
||
586 | 610 0470 E1BC out 65-0x20,r14 |
||
587 | 611 /* #APP */ |
||
588 | 612 /* START EEPROM READ CRITICAL SECTION */ |
||
589 | 613 0472 F89A sbi 31, 0 |
||
590 | 614 0474 80B5 in r24, 32 |
||
591 | 615 /* END EEPROM READ CRITICAL SECTION */ |
||
592 | 616 |
||
593 | 617 /* #NOAPP */ |
||
594 | 618 0476 8835 cpi r24,lo8(88) |
||
595 | 619 0478 01F0 breq .L60 |
||
596 | 620 047a C901 movw r24,r18 |
||
597 | 621 047c 00C0 rjmp .L53 |
||
598 | 622 .L60: |
||
599 | 623 047e 88E7 ldi r24,lo8(120) |
||
600 | 624 0480 C89F mul r28,r24 |
||
601 | 625 0482 C001 movw r24,r0 |
||
602 | 626 0484 1124 clr r1 |
||
603 | 627 0486 4497 sbiw r24,20 |
||
604 | 628 0488 20E0 ldi r18,lo8(pm(eeprom_read_byte)) |
||
605 | 629 048a 30E0 ldi r19,hi8(pm(eeprom_read_byte)) |
||
606 | 630 048c 48E7 ldi r20,lo8(120) |
||
607 | 631 048e 50E0 ldi r21,hi8(120) |
||
608 | 632 0490 BC01 movw r22,r24 |
||
609 | 633 0492 80E0 ldi r24,lo8(EE_Parameter) |
||
610 | 634 0494 90E0 ldi r25,hi8(EE_Parameter) |
||
611 | 635 0496 0E94 0000 call __eerd_block |
||
612 | 636 049a 0E94 0000 call LED_Init |
||
613 | 637 049e 81E0 ldi r24,lo8(1) |
||
614 | 638 04a0 90E0 ldi r25,hi8(1) |
||
615 | 639 .L53: |
||
616 | 640 /* epilogue: frame size=0 */ |
||
617 | 641 04a2 CF91 pop r28 |
||
618 | 642 04a4 1F91 pop r17 |
||
619 | 643 04a6 0F91 pop r16 |
||
620 | 644 04a8 FF90 pop r15 |
||
621 | 645 04aa EF90 pop r14 |
||
622 | 646 04ac 0895 ret |
||
623 | 647 /* epilogue end (size=6) */ |
||
624 | 648 /* function ParamSet_ReadFromEEProm size 99 (88) */ |
||
625 | 650 .global SetActiveParamSet |
||
626 | 652 SetActiveParamSet: |
||
627 | 653 /* prologue: frame size=0 */ |
||
628 | 654 /* prologue end (size=0) */ |
||
629 | 655 04ae 282F mov r18,r24 |
||
630 | 656 04b0 8630 cpi r24,lo8(6) |
||
631 | 657 04b2 00F0 brlo .L67 |
||
632 | 658 04b4 25E0 ldi r18,lo8(5) |
||
633 | 659 04b6 00C0 rjmp .L69 |
||
634 | 660 .L67: |
||
635 | 661 04b8 8823 tst r24 |
||
636 | 662 04ba 01F4 brne .L69 |
||
637 | 663 04bc 21E0 ldi r18,lo8(1) |
||
638 | 664 .L69: |
||
639 | 665 04be F999 sbic 63-0x20,1 |
||
640 | 666 04c0 00C0 rjmp .L69 |
||
641 | 667 04c2 1FBA out 63-0x20,__zero_reg__ |
||
642 | 668 04c4 82E0 ldi r24,lo8(2) |
||
643 | 669 04c6 90E0 ldi r25,hi8(2) |
||
644 | 670 04c8 92BD out (65)+1-0x20,r25 |
||
645 | 671 04ca 81BD out 65-0x20,r24 |
||
646 | 672 04cc 20BD out 64-0x20,r18 |
||
647 | 673 /* #APP */ |
||
648 | 674 /* START EEPROM WRITE CRITICAL SECTION */ |
||
649 | 675 04ce 0FB6 in r0, 63 |
||
650 | 676 04d0 F894 cli |
||
651 | 677 04d2 FA9A sbi 31, 2 |
||
652 | 678 04d4 F99A sbi 31, 1 |
||
653 | 679 04d6 0FBE out 63, r0 |
||
654 | 680 /* END EEPROM WRITE CRITICAL SECTION */ |
||
655 | 681 /* #NOAPP */ |
||
656 | 682 /* epilogue: frame size=0 */ |
||
657 | 683 04d8 0895 ret |
||
658 | 684 /* epilogue end (size=1) */ |
||
659 | 685 /* function SetActiveParamSet size 31 (30) */ |
||
660 | 687 .global ParamSet_WriteToEEProm |
||
661 | 689 ParamSet_WriteToEEProm: |
||
662 | 690 /* prologue: frame size=0 */ |
||
663 | 691 04da CF93 push r28 |
||
664 | 692 /* prologue end (size=1) */ |
||
665 | 693 04dc C82F mov r28,r24 |
||
666 | 694 04de 8091 0000 lds r24,EE_Parameter |
||
667 | 695 04e2 8835 cpi r24,lo8(88) |
||
668 | 696 04e4 01F0 breq .+2 |
||
669 | 697 04e6 00C0 rjmp .L74 |
||
670 | 698 04e8 C630 cpi r28,lo8(6) |
||
671 | 699 04ea 00F0 brlo .L75 |
||
672 | 700 04ec C5E0 ldi r28,lo8(5) |
||
673 | 701 04ee 00C0 rjmp .L76 |
||
674 | 702 .L75: |
||
675 | 703 04f0 CC23 tst r28 |
||
676 | 704 04f2 01F4 brne .+2 |
||
677 | 705 04f4 00C0 rjmp .L74 |
||
678 | 706 .L76: |
||
679 | 707 04f6 0E94 0000 call LIBFC_CheckSettings |
||
680 | 708 04fa 67E7 ldi r22,lo8(119) |
||
681 | 709 04fc 70E0 ldi r23,hi8(119) |
||
682 | 710 04fe 80E0 ldi r24,lo8(EE_Parameter) |
||
683 | 711 0500 90E0 ldi r25,hi8(EE_Parameter) |
||
684 | 712 0502 0E94 0000 call RAM_Checksum |
||
685 | 713 0506 8093 0000 sts EE_Parameter+119,r24 |
||
686 | 714 050a 88E7 ldi r24,lo8(120) |
||
687 | 715 050c C89F mul r28,r24 |
||
688 | 716 050e C001 movw r24,r0 |
||
689 | 717 0510 1124 clr r1 |
||
690 | 718 0512 20E0 ldi r18,lo8(pm(eeprom_write_byte)) |
||
691 | 719 0514 30E0 ldi r19,hi8(pm(eeprom_write_byte)) |
||
692 | 720 0516 48E7 ldi r20,lo8(120) |
||
693 | 721 0518 50E0 ldi r21,hi8(120) |
||
694 | 722 051a 60E0 ldi r22,lo8(EE_Parameter) |
||
695 | 723 051c 70E0 ldi r23,hi8(EE_Parameter) |
||
696 | 724 051e 4497 sbiw r24,20 |
||
697 | 725 0520 0E94 0000 call __eewr_block |
||
698 | 726 0524 20E0 ldi r18,lo8(pm(eeprom_write_byte)) |
||
699 | 727 0526 30E0 ldi r19,hi8(pm(eeprom_write_byte)) |
||
700 | 728 0528 4CE0 ldi r20,lo8(12) |
||
701 | 729 052a 50E0 ldi r21,hi8(12) |
||
702 | 730 052c 60E0 ldi r22,lo8(EE_Parameter+1) |
||
703 | 731 052e 70E0 ldi r23,hi8(EE_Parameter+1) |
||
704 | 732 0530 80E5 ldi r24,lo8(80) |
||
705 | 733 0532 90E0 ldi r25,hi8(80) |
||
706 | 734 0534 0E94 0000 call __eewr_block |
||
707 | 735 0538 6CE0 ldi r22,lo8(12) |
||
708 | 736 053a 70E0 ldi r23,hi8(12) |
||
709 | 737 053c 80E0 ldi r24,lo8(EE_Parameter+1) |
||
710 | 738 053e 90E0 ldi r25,hi8(EE_Parameter+1) |
||
711 | 739 0540 0E94 0000 call RAM_Checksum |
||
712 | 740 0544 282F mov r18,r24 |
||
713 | 741 .L79: |
||
714 | 742 0546 F999 sbic 63-0x20,1 |
||
715 | 743 0548 00C0 rjmp .L79 |
||
716 | 744 054a 1FBA out 63-0x20,__zero_reg__ |
||
717 | 745 054c 8CE5 ldi r24,lo8(92) |
||
718 | 746 054e 90E0 ldi r25,hi8(92) |
||
719 | 747 0550 92BD out (65)+1-0x20,r25 |
||
720 | 748 0552 81BD out 65-0x20,r24 |
||
721 | 749 0554 20BD out 64-0x20,r18 |
||
722 | 750 /* #APP */ |
||
723 | 751 /* START EEPROM WRITE CRITICAL SECTION */ |
||
724 | 752 0556 0FB6 in r0, 63 |
||
725 | 753 0558 F894 cli |
||
726 | 754 055a FA9A sbi 31, 2 |
||
727 | 755 055c F99A sbi 31, 1 |
||
728 | 756 055e 0FBE out 63, r0 |
||
729 | 757 /* END EEPROM WRITE CRITICAL SECTION */ |
||
730 | 758 /* #NOAPP */ |
||
731 | 759 0560 8C2F mov r24,r28 |
||
732 | 760 0562 0E94 0000 call SetActiveParamSet |
||
733 | 761 0566 0E94 0000 call LED_Init |
||
734 | 762 056a 81E0 ldi r24,lo8(1) |
||
735 | 763 056c 90E0 ldi r25,hi8(1) |
||
736 | 764 056e 00C0 rjmp .L73 |
||
737 | 765 .L74: |
||
738 | 766 0570 80E0 ldi r24,lo8(0) |
||
739 | 767 0572 90E0 ldi r25,hi8(0) |
||
740 | 768 .L73: |
||
741 | 769 /* epilogue: frame size=0 */ |
||
742 | 770 0574 CF91 pop r28 |
||
743 | 771 0576 0895 ret |
||
744 | 772 /* epilogue end (size=2) */ |
||
745 | 773 /* function ParamSet_WriteToEEProm size 88 (85) */ |
||
746 | 775 .global MixerTable_ReadFromEEProm |
||
747 | 777 MixerTable_ReadFromEEProm: |
||
748 | 778 /* prologue: frame size=0 */ |
||
749 | 779 /* prologue end (size=0) */ |
||
750 | 780 0578 6DE4 ldi r22,lo8(77) |
||
751 | 781 057a 70E0 ldi r23,hi8(77) |
||
752 | 782 057c 88EE ldi r24,lo8(1000) |
||
753 | 783 057e 93E0 ldi r25,hi8(1000) |
||
754 | 784 0580 0E94 0000 call EEProm_Checksum |
||
755 | 785 0584 482F mov r20,r24 |
||
756 | 786 .L85: |
||
757 | 787 0586 8FB3 in r24,63-0x20 |
||
758 | 788 0588 9927 clr r25 |
||
759 | 789 058a 9C01 movw r18,r24 |
||
760 | 790 058c 2270 andi r18,lo8(2) |
||
761 | 791 058e 3070 andi r19,hi8(2) |
||
762 | 792 0590 81FD sbrc r24,1 |
||
763 | 793 0592 00C0 rjmp .L85 |
||
764 | 794 0594 85E3 ldi r24,lo8(1077) |
||
765 | 795 0596 94E0 ldi r25,hi8(1077) |
||
766 | 796 0598 92BD out (65)+1-0x20,r25 |
||
767 | 797 059a 81BD out 65-0x20,r24 |
||
768 | 798 /* #APP */ |
||
769 | 799 /* START EEPROM READ CRITICAL SECTION */ |
||
770 | 800 059c F89A sbi 31, 0 |
||
771 | 801 059e 80B5 in r24, 32 |
||
772 | 802 /* END EEPROM READ CRITICAL SECTION */ |
||
773 | 803 |
||
774 | 804 /* #NOAPP */ |
||
775 | 805 05a0 8417 cp r24,r20 |
||
776 | 806 05a2 01F4 brne .L95 |
||
777 | 807 .L90: |
||
778 | 808 05a4 8FB3 in r24,63-0x20 |
||
779 | 809 05a6 9927 clr r25 |
||
780 | 810 05a8 9C01 movw r18,r24 |
||
781 | 811 05aa 2270 andi r18,lo8(2) |
||
782 | 812 05ac 3070 andi r19,hi8(2) |
||
783 | 813 05ae 81FD sbrc r24,1 |
||
784 | 814 05b0 00C0 rjmp .L90 |
||
785 | 815 05b2 88EE ldi r24,lo8(1000) |
||
786 | 816 05b4 93E0 ldi r25,hi8(1000) |
||
787 | 817 05b6 92BD out (65)+1-0x20,r25 |
||
788 | 818 05b8 81BD out 65-0x20,r24 |
||
789 | 819 /* #APP */ |
||
790 | 820 /* START EEPROM READ CRITICAL SECTION */ |
||
791 | 821 05ba F89A sbi 31, 0 |
||
792 | 822 05bc 80B5 in r24, 32 |
||
793 | 823 /* END EEPROM READ CRITICAL SECTION */ |
||
794 | 824 |
||
795 | 825 /* #NOAPP */ |
||
796 | 826 05be 8130 cpi r24,lo8(1) |
||
797 | 827 05c0 01F0 breq .L89 |
||
798 | 828 .L95: |
||
799 | 829 05c2 C901 movw r24,r18 |
||
800 | 830 05c4 0895 ret |
||
801 | 831 .L89: |
||
802 | 832 05c6 20E0 ldi r18,lo8(pm(eeprom_read_byte)) |
||
803 | 833 05c8 30E0 ldi r19,hi8(pm(eeprom_read_byte)) |
||
804 | 834 05ca 4EE4 ldi r20,lo8(78) |
||
805 | 835 05cc 50E0 ldi r21,hi8(78) |
||
806 | 836 05ce 68EE ldi r22,lo8(1000) |
||
807 | 837 05d0 73E0 ldi r23,hi8(1000) |
||
808 | 838 05d2 80E0 ldi r24,lo8(Mixer) |
||
809 | 839 05d4 90E0 ldi r25,hi8(Mixer) |
||
810 | 840 05d6 0E94 0000 call __eerd_block |
||
811 | 841 05da 81E0 ldi r24,lo8(1) |
||
812 | 842 05dc 90E0 ldi r25,hi8(1) |
||
813 | 843 05de 0895 ret |
||
814 | 844 /* epilogue: frame size=0 */ |
||
815 | 845 /* epilogue: noreturn */ |
||
816 | 846 /* epilogue end (size=0) */ |
||
817 | 847 /* function MixerTable_ReadFromEEProm size 68 (68) */ |
||
818 | 849 .global MixerTable_WriteToEEProm |
||
819 | 851 MixerTable_WriteToEEProm: |
||
820 | 852 /* prologue: frame size=0 */ |
||
821 | 853 /* prologue end (size=0) */ |
||
822 | 854 05e0 8091 0000 lds r24,Mixer |
||
823 | 855 05e4 8130 cpi r24,lo8(1) |
||
824 | 856 05e6 01F4 brne .L97 |
||
825 | 857 05e8 6DE4 ldi r22,lo8(77) |
||
826 | 858 05ea 70E0 ldi r23,hi8(77) |
||
827 | 859 05ec 80E0 ldi r24,lo8(Mixer) |
||
828 | 860 05ee 90E0 ldi r25,hi8(Mixer) |
||
829 | 861 05f0 0E94 0000 call RAM_Checksum |
||
830 | 862 05f4 8093 0000 sts Mixer+77,r24 |
||
831 | 863 05f8 20E0 ldi r18,lo8(pm(eeprom_write_byte)) |
||
832 | 864 05fa 30E0 ldi r19,hi8(pm(eeprom_write_byte)) |
||
833 | 865 05fc 4EE4 ldi r20,lo8(78) |
||
834 | 866 05fe 50E0 ldi r21,hi8(78) |
||
835 | 867 0600 60E0 ldi r22,lo8(Mixer) |
||
836 | 868 0602 70E0 ldi r23,hi8(Mixer) |
||
837 | 869 0604 88EE ldi r24,lo8(1000) |
||
838 | 870 0606 93E0 ldi r25,hi8(1000) |
||
839 | 871 0608 0E94 0000 call __eewr_block |
||
840 | 872 060c 81E0 ldi r24,lo8(1) |
||
841 | 873 060e 90E0 ldi r25,hi8(1) |
||
842 | 874 0610 0895 ret |
||
843 | 875 .L97: |
||
844 | 876 0612 80E0 ldi r24,lo8(0) |
||
845 | 877 0614 90E0 ldi r25,hi8(0) |
||
846 | 878 0616 0895 ret |
||
847 | 879 /* epilogue: frame size=0 */ |
||
848 | 880 /* epilogue: noreturn */ |
||
849 | 881 /* epilogue end (size=0) */ |
||
850 | 882 /* function MixerTable_WriteToEEProm size 28 (28) */ |
||
851 | 884 .data |
||
852 | 885 .LC3: |
||
853 | 886 0014 5175 6164 .string "Quadro" |
||
854 | 886 726F 00 |
||
855 | 887 001b 00 .string "" |
||
856 | 888 .text |
||
857 | 889 .global MixerTable_Default |
||
858 | 891 MixerTable_Default: |
||
859 | 892 /* prologue: frame size=0 */ |
||
860 | 893 0618 CF93 push r28 |
||
861 | 894 061a DF93 push r29 |
||
862 | 895 /* prologue end (size=2) */ |
||
863 | 896 061c 81E0 ldi r24,lo8(1) |
||
864 | 897 061e 8093 0000 sts Mixer,r24 |
||
865 | 898 0622 E0E0 ldi r30,lo8(Mixer) |
||
866 | 899 0624 F0E0 ldi r31,hi8(Mixer) |
||
867 | 900 0626 8FE0 ldi r24,lo8(15) |
||
868 | 901 .L104: |
||
869 | 902 0628 1586 std Z+13,__zero_reg__ |
||
870 | 903 062a 1686 std Z+14,__zero_reg__ |
||
871 | 904 062c 1786 std Z+15,__zero_reg__ |
||
872 | 905 062e 108A std Z+16,__zero_reg__ |
||
873 | 906 0630 8150 subi r24,lo8(-(-1)) |
||
874 | 907 0632 3496 adiw r30,4 |
||
875 | 908 0634 87FF sbrs r24,7 |
||
876 | 909 0636 00C0 rjmp .L104 |
||
877 | 910 0638 80E4 ldi r24,lo8(64) |
||
878 | 911 063a 8093 0000 sts Mixer+13,r24 |
||
879 | 912 063e 8093 0000 sts Mixer+14,r24 |
||
880 | 913 0642 1092 0000 sts Mixer+15,__zero_reg__ |
||
881 | 914 0646 8093 0000 sts Mixer+16,r24 |
||
882 | 915 064a 8093 0000 sts Mixer+17,r24 |
||
883 | 916 064e 90EC ldi r25,lo8(-64) |
||
884 | 917 0650 9093 0000 sts Mixer+18,r25 |
||
885 | 918 0654 1092 0000 sts Mixer+19,__zero_reg__ |
||
886 | 919 0658 8093 0000 sts Mixer+20,r24 |
||
887 | 920 065c 8093 0000 sts Mixer+21,r24 |
||
888 | 921 0660 1092 0000 sts Mixer+22,__zero_reg__ |
||
889 | 922 0664 9093 0000 sts Mixer+23,r25 |
||
890 | 923 0668 9093 0000 sts Mixer+24,r25 |
||
891 | 924 066c 8093 0000 sts Mixer+25,r24 |
||
892 | 925 0670 1092 0000 sts Mixer+26,__zero_reg__ |
||
893 | 926 0674 8093 0000 sts Mixer+27,r24 |
||
894 | 927 0678 9093 0000 sts Mixer+28,r25 |
||
895 | 928 067c A0E0 ldi r26,lo8(Mixer+1) |
||
896 | 929 067e B0E0 ldi r27,hi8(Mixer+1) |
||
897 | 930 0680 87E0 ldi r24,lo8(7) |
||
898 | 931 0682 E0E0 ldi r30,lo8(.LC3) |
||
899 | 932 0684 F0E0 ldi r31,hi8(.LC3) |
||
900 | 933 0686 ED01 movw r28,r26 |
||
901 | 934 0688 0190 ld __tmp_reg__,Z+ |
||
902 | 935 068a 0992 st Y+,__tmp_reg__ |
||
903 | 936 068c 8A95 dec r24 |
||
904 | 937 068e 01F4 brne .-8 |
||
905 | 938 0690 6DE4 ldi r22,lo8(77) |
||
906 | 939 0692 70E0 ldi r23,hi8(77) |
||
907 | 940 0694 CD01 movw r24,r26 |
||
908 | 941 0696 0197 sbiw r24,1 |
||
909 | 942 0698 0E94 0000 call RAM_Checksum |
||
910 | 943 069c 8093 0000 sts Mixer+77,r24 |
||
911 | 944 /* epilogue: frame size=0 */ |
||
912 | 945 06a0 DF91 pop r29 |
||
913 | 946 06a2 CF91 pop r28 |
||
914 | 947 06a4 0895 ret |
||
915 | 948 /* epilogue end (size=3) */ |
||
916 | 949 /* function MixerTable_Default size 71 (66) */ |
||
917 | 951 .global GetActiveParamSet |
||
918 | 953 GetActiveParamSet: |
||
919 | 954 /* prologue: frame size=0 */ |
||
920 | 955 /* prologue end (size=0) */ |
||
921 | 956 .L108: |
||
922 | 957 06a6 F999 sbic 63-0x20,1 |
||
923 | 958 06a8 00C0 rjmp .L108 |
||
924 | 959 06aa 82E0 ldi r24,lo8(2) |
||
925 | 960 06ac 90E0 ldi r25,hi8(2) |
||
926 | 961 06ae 92BD out (65)+1-0x20,r25 |
||
927 | 962 06b0 81BD out 65-0x20,r24 |
||
928 | 963 /* #APP */ |
||
929 | 964 /* START EEPROM READ CRITICAL SECTION */ |
||
930 | 965 06b2 F89A sbi 31, 0 |
||
931 | 966 06b4 80B5 in r24, 32 |
||
932 | 967 /* END EEPROM READ CRITICAL SECTION */ |
||
933 | 968 |
||
934 | 969 /* #NOAPP */ |
||
935 | 970 06b6 282F mov r18,r24 |
||
936 | 971 06b8 8630 cpi r24,lo8(6) |
||
937 | 972 06ba 00F0 brlo .L112 |
||
938 | 973 06bc 23E0 ldi r18,lo8(3) |
||
939 | 974 06be 322F mov r19,r18 |
||
940 | 975 .L113: |
||
941 | 976 06c0 F999 sbic 63-0x20,1 |
||
942 | 977 06c2 00C0 rjmp .L113 |
||
943 | 978 06c4 1FBA out 63-0x20,__zero_reg__ |
||
944 | 979 06c6 82E0 ldi r24,lo8(2) |
||
945 | 980 06c8 90E0 ldi r25,hi8(2) |
||
946 | 981 06ca 92BD out (65)+1-0x20,r25 |
||
947 | 982 06cc 81BD out 65-0x20,r24 |
||
948 | 983 06ce 30BD out 64-0x20,r19 |
||
949 | 984 /* #APP */ |
||
950 | 985 /* START EEPROM WRITE CRITICAL SECTION */ |
||
951 | 986 06d0 0FB6 in r0, 63 |
||
952 | 987 06d2 F894 cli |
||
953 | 988 06d4 FA9A sbi 31, 2 |
||
954 | 989 06d6 F99A sbi 31, 1 |
||
955 | 990 06d8 0FBE out 63, r0 |
||
956 | 991 /* END EEPROM WRITE CRITICAL SECTION */ |
||
957 | 992 /* #NOAPP */ |
||
958 | 993 .L112: |
||
959 | 994 06da 822F mov r24,r18 |
||
960 | 995 06dc 9927 clr r25 |
||
961 | 996 /* epilogue: frame size=0 */ |
||
962 | 997 06de 0895 ret |
||
963 | 998 /* epilogue end (size=1) */ |
||
964 | 999 /* function GetActiveParamSet size 46 (45) */ |
||
965 | 1001 .global SetDefaultParameter |
||
966 | 1003 SetDefaultParameter: |
||
967 | 1004 /* prologue: frame size=0 */ |
||
968 | 1005 06e0 1F93 push r17 |
||
969 | 1006 06e2 CF93 push r28 |
||
970 | 1007 /* prologue end (size=2) */ |
||
971 | 1008 06e4 C82F mov r28,r24 |
||
972 | 1009 06e6 162F mov r17,r22 |
||
973 | 1010 06e8 8630 cpi r24,lo8(6) |
||
974 | 1011 06ea 00F0 brlo .L118 |
||
975 | 1012 06ec C5E0 ldi r28,lo8(5) |
||
976 | 1013 06ee 00C0 rjmp .L119 |
||
977 | 1014 .L118: |
||
978 | 1015 06f0 8823 tst r24 |
||
979 | 1016 06f2 01F4 brne .L119 |
||
980 | 1017 06f4 C1E0 ldi r28,lo8(1) |
||
981 | 1018 .L119: |
||
982 | 1019 06f6 8C2F mov r24,r28 |
||
983 | 1020 06f8 9927 clr r25 |
||
984 | 1021 06fa 8230 cpi r24,2 |
||
985 | 1022 06fc 9105 cpc r25,__zero_reg__ |
||
986 | 1023 06fe 01F0 breq .L123 |
||
987 | 1024 0700 8330 cpi r24,3 |
||
988 | 1025 0702 9105 cpc r25,__zero_reg__ |
||
989 | 1026 0704 04F4 brge .L125 |
||
990 | 1027 0706 0197 sbiw r24,1 |
||
991 | 1028 0708 01F4 brne .L125 |
||
992 | 1029 070a 0E94 0000 call ParamSet_DefaultSet1 |
||
993 | 1030 070e 00C0 rjmp .L121 |
||
994 | 1031 .L123: |
||
995 | 1032 0710 0E94 0000 call ParamSet_DefaultSet2 |
||
996 | 1033 0714 00C0 rjmp .L121 |
||
997 | 1034 .L125: |
||
998 | 1035 0716 0E94 0000 call ParamSet_DefaultSet3 |
||
999 | 1036 .L121: |
||
1000 | 1037 071a 1123 tst r17 |
||
1001 | 1038 071c 01F0 breq .L127 |
||
1002 | 1039 071e 6CE0 ldi r22,lo8(12) |
||
1003 | 1040 0720 70E0 ldi r23,hi8(12) |
||
1004 | 1041 0722 80E5 ldi r24,lo8(80) |
||
1005 | 1042 0724 90E0 ldi r25,hi8(80) |
||
1006 | 1043 0726 0E94 0000 call EEProm_Checksum |
||
1007 | 1044 072a 282F mov r18,r24 |
||
1008 | 1045 .L129: |
||
1009 | 1046 072c F999 sbic 63-0x20,1 |
||
1010 | 1047 072e 00C0 rjmp .L129 |
||
1011 | 1048 0730 8CE5 ldi r24,lo8(92) |
||
1012 | 1049 0732 90E0 ldi r25,hi8(92) |
||
1013 | 1050 0734 92BD out (65)+1-0x20,r25 |
||
1014 | 1051 0736 81BD out 65-0x20,r24 |
||
1015 | 1052 /* #APP */ |
||
1016 | 1053 /* START EEPROM READ CRITICAL SECTION */ |
||
1017 | 1054 0738 F89A sbi 31, 0 |
||
1018 | 1055 073a 80B5 in r24, 32 |
||
1019 | 1056 /* END EEPROM READ CRITICAL SECTION */ |
||
1020 | 1057 |
||
1021 | 1058 /* #NOAPP */ |
||
1022 | 1059 073c 8217 cp r24,r18 |
||
1023 | 1060 073e 01F4 brne .L127 |
||
1024 | 1061 0740 20E0 ldi r18,lo8(pm(eeprom_read_byte)) |
||
1025 | 1062 0742 30E0 ldi r19,hi8(pm(eeprom_read_byte)) |
||
1026 | 1063 0744 4CE0 ldi r20,lo8(12) |
||
1027 | 1064 0746 50E0 ldi r21,hi8(12) |
||
1028 | 1065 0748 60E5 ldi r22,lo8(80) |
||
1029 | 1066 074a 70E0 ldi r23,hi8(80) |
||
1030 | 1067 074c 80E0 ldi r24,lo8(EE_Parameter+1) |
||
1031 | 1068 074e 90E0 ldi r25,hi8(EE_Parameter+1) |
||
1032 | 1069 0750 0E94 0000 call __eerd_block |
||
1033 | 1070 0754 00C0 rjmp .L135 |
||
1034 | 1071 .L127: |
||
1035 | 1072 0756 0E94 0000 call ParamSet_DefaultStickMapping |
||
1036 | 1073 .L135: |
||
1037 | 1074 075a 8C2F mov r24,r28 |
||
1038 | 1075 075c 0E94 0000 call ParamSet_WriteToEEProm |
||
1039 | 1076 /* epilogue: frame size=0 */ |
||
1040 | 1077 0760 CF91 pop r28 |
||
1041 | 1078 0762 1F91 pop r17 |
||
1042 | 1079 0764 0895 ret |
||
1043 | 1080 /* epilogue end (size=3) */ |
||
1044 | 1081 /* function SetDefaultParameter size 76 (71) */ |
||
1045 | 1083 .section .progmem.data,"a",@progbits |
||
1046 | 1086 __c.0: |
||
1047 | 1087 0000 0A0D 4765 .string "\n\rGenerating default Parameter Set %d" |
||
1048 | 1087 6E65 7261 |
||
1049 | 1087 7469 6E67 |
||
1050 | 1087 2064 6566 |
||
1051 | 1087 6175 6C74 |
||
1052 | 1090 __c.1: |
||
1053 | 1091 0026 0A0D 5573 .string "\n\rUsing Parameter Set %d" |
||
1054 | 1091 696E 6720 |
||
1055 | 1091 5061 7261 |
||
1056 | 1091 6D65 7465 |
||
1057 | 1091 7220 5365 |
||
1058 | 1094 __c.2: |
||
1059 | 1095 003f 0A0D 4765 .string "\n\rGenerating default Mixer Table" |
||
1060 | 1095 6E65 7261 |
||
1061 | 1095 7469 6E67 |
||
1062 | 1095 2064 6566 |
||
1063 | 1095 6175 6C74 |
||
1064 | 1098 __c.3: |
||
1065 | 1099 0060 0A0D 4D69 .string "\n\rMixer-Config: '%s' (%u Motors)" |
||
1066 | 1099 7865 722D |
||
1067 | 1099 436F 6E66 |
||
1068 | 1099 6967 3A20 |
||
1069 | 1099 2725 7327 |
||
1070 | 1102 __c.4: |
||
1071 | 1103 0081 0A0D 3D00 .string "\n\r=" |
||
1072 | 1104 .text |
||
1073 | 1105 .global ParamSet_Init |
||
1074 | 1107 ParamSet_Init: |
||
1075 | 1108 /* prologue: frame size=0 */ |
||
1076 | 1109 0766 DF92 push r13 |
||
1077 | 1110 0768 EF92 push r14 |
||
1078 | 1111 076a FF92 push r15 |
||
1079 | 1112 076c 0F93 push r16 |
||
1080 | 1113 076e 1F93 push r17 |
||
1081 | 1114 0770 CF93 push r28 |
||
1082 | 1115 /* prologue end (size=6) */ |
||
1083 | 1116 0772 FF24 clr r15 |
||
1084 | 1117 0774 DF2C mov r13,r15 |
||
1085 | 1118 0776 EF2C mov r14,r15 |
||
1086 | 1119 0778 81E0 ldi r24,lo8(1) |
||
1087 | 1120 077a 90E0 ldi r25,hi8(1) |
||
1088 | 1121 077c 0E94 0000 call GetParamByte |
||
1089 | 1122 0780 8835 cpi r24,lo8(88) |
||
1090 | 1123 0782 01F0 breq .L137 |
||
1091 | 1124 0784 31E0 ldi r19,lo8(1) |
||
1092 | 1125 0786 E32E mov r14,r19 |
||
1093 | 1126 .L137: |
||
1094 | 1127 0788 6CE0 ldi r22,lo8(12) |
||
1095 | 1128 078a 70E0 ldi r23,hi8(12) |
||
1096 | 1129 078c 80E5 ldi r24,lo8(80) |
||
1097 | 1130 078e 90E0 ldi r25,hi8(80) |
||
1098 | 1131 0790 0E94 0000 call EEProm_Checksum |
||
1099 | 1132 0794 C82F mov r28,r24 |
||
1100 | 1133 .L139: |
||
1101 | 1134 0796 F999 sbic 63-0x20,1 |
||
1102 | 1135 0798 00C0 rjmp .L139 |
||
1103 | 1136 079a 8CE5 ldi r24,lo8(92) |
||
1104 | 1137 079c 90E0 ldi r25,hi8(92) |
||
1105 | 1138 079e 92BD out (65)+1-0x20,r25 |
||
1106 | 1139 07a0 81BD out 65-0x20,r24 |
||
1107 | 1140 /* #APP */ |
||
1108 | 1141 /* START EEPROM READ CRITICAL SECTION */ |
||
1109 | 1142 07a2 F89A sbi 31, 0 |
||
1110 | 1143 07a4 80B5 in r24, 32 |
||
1111 | 1144 /* END EEPROM READ CRITICAL SECTION */ |
||
1112 | 1145 |
||
1113 | 1146 /* #NOAPP */ |
||
1114 | 1147 07a6 8C17 cp r24,r28 |
||
1115 | 1148 07a8 01F4 brne .L138 |
||
1116 | 1149 07aa 21E0 ldi r18,lo8(1) |
||
1117 | 1150 07ac D22E mov r13,r18 |
||
1118 | 1151 .L138: |
||
1119 | 1152 07ae C1E0 ldi r28,lo8(1) |
||
1120 | 1153 07b0 01E0 ldi r16,lo8(1) |
||
1121 | 1154 07b2 10E0 ldi r17,hi8(1) |
||
1122 | 1155 .L157: |
||
1123 | 1156 07b4 EE20 tst r14 |
||
1124 | 1157 07b6 01F4 brne .L147 |
||
1125 | 1158 07b8 8C2F mov r24,r28 |
||
1126 | 1159 07ba 0E94 0000 call ParamSet_ReadFromEEProm |
||
1127 | 1160 07be 8823 tst r24 |
||
1128 | 1161 07c0 01F4 brne .L145 |
||
1129 | 1162 .L147: |
||
1130 | 1163 07c2 91E0 ldi r25,lo8(1) |
||
1131 | 1164 07c4 F92E mov r15,r25 |
||
1132 | 1165 07c6 1F93 push r17 |
||
1133 | 1166 07c8 0F93 push r16 |
||
1134 | 1167 07ca 80E0 ldi r24,lo8(__c.0) |
||
1135 | 1168 07cc 90E0 ldi r25,hi8(__c.0) |
||
1136 | 1169 07ce 9F93 push r25 |
||
1137 | 1170 07d0 8F93 push r24 |
||
1138 | 1171 07d2 80E0 ldi r24,lo8(pm(uart_putchar)) |
||
1139 | 1172 07d4 90E0 ldi r25,hi8(pm(uart_putchar)) |
||
1140 | 1173 07d6 9F93 push r25 |
||
1141 | 1174 07d8 8F93 push r24 |
||
1142 | 1175 07da E091 0000 lds r30,_printf_P |
||
1143 | 1176 07de F091 0000 lds r31,(_printf_P)+1 |
||
1144 | 1177 07e2 0995 icall |
||
1145 | 1178 07e4 2DB7 in r18,__SP_L__ |
||
1146 | 1179 07e6 3EB7 in r19,__SP_H__ |
||
1147 | 1180 07e8 2A5F subi r18,lo8(-(6)) |
||
1148 | 1181 07ea 3F4F sbci r19,hi8(-(6)) |
||
1149 | 1182 07ec 2DBF out __SP_L__,r18 |
||
1150 | 1183 07ee 0230 cpi r16,2 |
||
1151 | 1184 07f0 1105 cpc r17,__zero_reg__ |
||
1152 | 1185 07f2 01F0 breq .L150 |
||
1153 | 1186 07f4 0330 cpi r16,3 |
||
1154 | 1187 07f6 1105 cpc r17,__zero_reg__ |
||
1155 | 1188 07f8 04F4 brge .L152 |
||
1156 | 1189 07fa 0130 cpi r16,1 |
||
1157 | 1190 07fc 1105 cpc r17,__zero_reg__ |
||
1158 | 1191 07fe 01F4 brne .L152 |
||
1159 | 1192 0800 0E94 0000 call ParamSet_DefaultSet1 |
||
1160 | 1193 0804 00C0 rjmp .L148 |
||
1161 | 1194 .L150: |
||
1162 | 1195 0806 0E94 0000 call ParamSet_DefaultSet2 |
||
1163 | 1196 080a 00C0 rjmp .L148 |
||
1164 | 1197 .L152: |
||
1165 | 1198 080c 0E94 0000 call ParamSet_DefaultSet3 |
||
1166 | 1199 .L148: |
||
1167 | 1200 0810 DD20 tst r13 |
||
1168 | 1201 0812 01F0 breq .L154 |
||
1169 | 1202 0814 20E0 ldi r18,lo8(pm(eeprom_read_byte)) |
||
1170 | 1203 0816 30E0 ldi r19,hi8(pm(eeprom_read_byte)) |
||
1171 | 1204 0818 4CE0 ldi r20,lo8(12) |
||
1172 | 1205 081a 50E0 ldi r21,hi8(12) |
||
1173 | 1206 081c 60E5 ldi r22,lo8(80) |
||
1174 | 1207 081e 70E0 ldi r23,hi8(80) |
||
1175 | 1208 0820 80E0 ldi r24,lo8(EE_Parameter+1) |
||
1176 | 1209 0822 90E0 ldi r25,hi8(EE_Parameter+1) |
||
1177 | 1210 0824 0E94 0000 call __eerd_block |
||
1178 | 1211 0828 00C0 rjmp .L156 |
||
1179 | 1212 .L154: |
||
1180 | 1213 082a 0E94 0000 call ParamSet_DefaultStickMapping |
||
1181 | 1214 .L156: |
||
1182 | 1215 082e 8C2F mov r24,r28 |
||
1183 | 1216 0830 0E94 0000 call ParamSet_WriteToEEProm |
||
1184 | 1217 .L145: |
||
1185 | 1218 0834 CF5F subi r28,lo8(-(1)) |
||
1186 | 1219 0836 0F5F subi r16,lo8(-(1)) |
||
1187 | 1220 0838 1F4F sbci r17,hi8(-(1)) |
||
1188 | 1221 083a C630 cpi r28,lo8(6) |
||
1189 | 1222 083c 00F4 brsh .+2 |
||
1190 | 1223 083e 00C0 rjmp .L157 |
||
1191 | 1224 0840 FF20 tst r15 |
||
1192 | 1225 0842 01F0 breq .L158 |
||
1193 | 1226 0844 83E0 ldi r24,lo8(3) |
||
1194 | 1227 0846 0E94 0000 call SetActiveParamSet |
||
1195 | 1228 .L158: |
||
1196 | 1229 084a 0E94 0000 call GetActiveParamSet |
||
1197 | 1230 084e C82F mov r28,r24 |
||
1198 | 1231 0850 0E94 0000 call ParamSet_ReadFromEEProm |
||
1199 | 1232 0854 8C2F mov r24,r28 |
||
1200 | 1233 0856 9927 clr r25 |
||
1201 | 1234 0858 9F93 push r25 |
||
1202 | 1235 085a 8F93 push r24 |
||
1203 | 1236 085c 80E0 ldi r24,lo8(__c.1) |
||
1204 | 1237 085e 90E0 ldi r25,hi8(__c.1) |
||
1205 | 1238 0860 9F93 push r25 |
||
1206 | 1239 0862 8F93 push r24 |
||
1207 | 1240 0864 00E0 ldi r16,lo8(pm(uart_putchar)) |
||
1208 | 1241 0866 10E0 ldi r17,hi8(pm(uart_putchar)) |
||
1209 | 1242 0868 1F93 push r17 |
||
1210 | 1243 086a 0F93 push r16 |
||
1211 | 1244 086c E091 0000 lds r30,_printf_P |
||
1212 | 1245 0870 F091 0000 lds r31,(_printf_P)+1 |
||
1213 | 1246 0874 0995 icall |
||
1214 | 1247 0876 81E0 ldi r24,lo8(1) |
||
1215 | 1248 0878 90E0 ldi r25,hi8(1) |
||
1216 | 1249 087a 0E94 0000 call GetParamByte |
||
1217 | 1250 087e 2DB7 in r18,__SP_L__ |
||
1218 | 1251 0880 3EB7 in r19,__SP_H__ |
||
1219 | 1252 0882 2A5F subi r18,lo8(-(6)) |
||
1220 | 1253 0884 3F4F sbci r19,hi8(-(6)) |
||
1221 | 1254 0886 2DBF out __SP_L__,r18 |
||
1222 | 1255 0888 8F3F cpi r24,lo8(-1) |
||
1223 | 1256 088a 01F0 breq .L160 |
||
1224 | 1257 088c 0E94 0000 call MixerTable_ReadFromEEProm |
||
1225 | 1258 0890 8823 tst r24 |
||
1226 | 1259 0892 01F4 brne .L159 |
||
1227 | 1260 .L160: |
||
1228 | 1261 0894 80E0 ldi r24,lo8(__c.2) |
||
1229 | 1262 0896 90E0 ldi r25,hi8(__c.2) |
||
1230 | 1263 0898 9F93 push r25 |
||
1231 | 1264 089a 8F93 push r24 |
||
1232 | 1265 089c 1F93 push r17 |
||
1233 | 1266 089e 0F93 push r16 |
||
1234 | 1267 08a0 E091 0000 lds r30,_printf_P |
||
1235 | 1268 08a4 F091 0000 lds r31,(_printf_P)+1 |
||
1236 | 1269 08a8 0995 icall |
||
1237 | 1270 08aa 0E94 0000 call MixerTable_Default |
||
1238 | 1271 08ae 0E94 0000 call MixerTable_WriteToEEProm |
||
1239 | 1272 08b2 0F90 pop __tmp_reg__ |
||
1240 | 1273 08b4 0F90 pop __tmp_reg__ |
||
1241 | 1274 08b6 0F90 pop __tmp_reg__ |
||
1242 | 1275 08b8 0F90 pop __tmp_reg__ |
||
1243 | 1276 .L159: |
||
1244 | 1277 08ba EE20 tst r14 |
||
1245 | 1278 08bc 01F0 breq .L161 |
||
1246 | 1279 08be 68E5 ldi r22,lo8(88) |
||
1247 | 1280 08c0 81E0 ldi r24,lo8(1) |
||
1248 | 1281 08c2 90E0 ldi r25,hi8(1) |
||
1249 | 1282 08c4 0E94 0000 call SetParamByte |
||
1250 | 1283 .L161: |
||
1251 | 1284 08c8 1092 0000 sts RequiredMotors,__zero_reg__ |
||
1252 | 1285 08cc 90E0 ldi r25,lo8(0) |
||
1253 | 1286 08ce E0E0 ldi r30,lo8(Mixer+13) |
||
1254 | 1287 08d0 F0E0 ldi r31,hi8(Mixer+13) |
||
1255 | 1288 08d2 CFE0 ldi r28,lo8(15) |
||
1256 | 1289 .L166: |
||
1257 | 1290 08d4 8081 ld r24,Z |
||
1258 | 1291 08d6 3496 adiw r30,4 |
||
1259 | 1292 08d8 1816 cp __zero_reg__,r24 |
||
1260 | 1293 08da 04F4 brge .L164 |
||
1261 | 1294 08dc 9F5F subi r25,lo8(-(1)) |
||
1262 | 1295 .L164: |
||
1263 | 1296 08de C150 subi r28,lo8(-(-1)) |
||
1264 | 1297 08e0 C7FF sbrs r28,7 |
||
1265 | 1298 08e2 00C0 rjmp .L166 |
||
1266 | 1299 08e4 9093 0000 sts RequiredMotors,r25 |
||
1267 | 1300 08e8 892F mov r24,r25 |
||
1268 | 1301 08ea 9927 clr r25 |
||
1269 | 1302 08ec 9F93 push r25 |
||
1270 | 1303 08ee 8F93 push r24 |
||
1271 | 1304 08f0 80E0 ldi r24,lo8(Mixer+1) |
||
1272 | 1305 08f2 90E0 ldi r25,hi8(Mixer+1) |
||
1273 | 1306 08f4 9F93 push r25 |
||
1274 | 1307 08f6 8F93 push r24 |
||
1275 | 1308 08f8 80E0 ldi r24,lo8(__c.3) |
||
1276 | 1309 08fa 90E0 ldi r25,hi8(__c.3) |
||
1277 | 1310 08fc 9F93 push r25 |
||
1278 | 1311 08fe 8F93 push r24 |
||
1279 | 1312 0900 1F93 push r17 |
||
1280 | 1313 0902 0F93 push r16 |
||
1281 | 1314 0904 E091 0000 lds r30,_printf_P |
||
1282 | 1315 0908 F091 0000 lds r31,(_printf_P)+1 |
||
1283 | 1316 090c 0995 icall |
||
1284 | 1317 090e 8DB7 in r24,__SP_L__ |
||
1285 | 1318 0910 9EB7 in r25,__SP_H__ |
||
1286 | 1319 0912 0896 adiw r24,8 |
||
1287 | 1320 0914 8DBF out __SP_L__,r24 |
||
1288 | 1321 0916 80E0 ldi r24,lo8(__c.4) |
||
1289 | 1322 0918 90E0 ldi r25,hi8(__c.4) |
||
1290 | 1323 091a 9F93 push r25 |
||
1291 | 1324 091c 8F93 push r24 |
||
1292 | 1325 091e 1F93 push r17 |
||
1293 | 1326 0920 0F93 push r16 |
||
1294 | 1327 0922 E091 0000 lds r30,_printf_P |
||
1295 | 1328 0926 F091 0000 lds r31,(_printf_P)+1 |
||
1296 | 1329 092a 0995 icall |
||
1297 | 1330 092c 0F90 pop __tmp_reg__ |
||
1298 | 1331 092e 0F90 pop __tmp_reg__ |
||
1299 | 1332 0930 0F90 pop __tmp_reg__ |
||
1300 | 1333 0932 0F90 pop __tmp_reg__ |
||
1301 | 1334 /* epilogue: frame size=0 */ |
||
1302 | 1335 0934 CF91 pop r28 |
||
1303 | 1336 0936 1F91 pop r17 |
||
1304 | 1337 0938 0F91 pop r16 |
||
1305 | 1338 093a FF90 pop r15 |
||
1306 | 1339 093c EF90 pop r14 |
||
1307 | 1340 093e DF90 pop r13 |
||
1308 | 1341 0940 0895 ret |
||
1309 | 1342 /* epilogue end (size=7) */ |
||
1310 | 1343 /* function ParamSet_Init size 246 (233) */ |
||
1311 | 1345 .comm Mixer,78,1 |
||
1312 | 1346 .comm RequiredMotors,1,1 |
||
1313 | 1347 .comm EE_Parameter,120,1 |
||
1314 | 1348 .comm Motorsmax,8,1 |
||
1315 | 1349 .comm MotorsTmax,2,1 |
||
1316 | 1350 /* File "eeprom.c": code 1311 = 0x051f (1247), prologues 22, epilogues 42 */ |
||
1317 | DEFINED SYMBOLS |
||
1318 | *ABS*:00000000 eeprom.c |
||
1319 | C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:3 *ABS*:0000003f __SREG__ |
||
1320 | C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:4 *ABS*:0000003e __SP_H__ |
||
1321 | C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:5 *ABS*:0000003d __SP_L__ |
||
1322 | C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:6 *ABS*:00000000 __tmp_reg__ |
||
1323 | C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:7 *ABS*:00000001 __zero_reg__ |
||
1324 | C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:12 .text:00000000 eeprom_read_byte |
||
1325 | C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:34 .text:00000010 eeprom_write_byte |
||
1326 | C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:60 .text:00000028 RAM_Checksum |
||
1327 | C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:88 .text:0000004a EEProm_Checksum |
||
1328 | C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:128 .text:0000007a ParamSet_DefaultStickMapping |
||
1329 | *COM*:00000078 EE_Parameter |
||
1330 | C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:162 .text:000000c4 CommonDefaults |
||
1331 | C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:313 .text:00000282 ParamSet_DefaultSet1 |
||
1332 | C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:369 .text:000002f2 ParamSet_DefaultSet2 |
||
1333 | C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:423 .text:0000035e ParamSet_DefaultSet3 |
||
1334 | C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:473 .text:000003cc GetParamByte |
||
1335 | C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:496 .text:000003dc SetParamByte |
||
1336 | C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:522 .text:000003f4 GetParamWord |
||
1337 | C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:535 .text:000003fe SetParamWord |
||
1338 | C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:548 .text:00000408 ParamSet_ReadFromEEProm |
||
1339 | C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:652 .text:000004ae SetActiveParamSet |
||
1340 | C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:689 .text:000004da ParamSet_WriteToEEProm |
||
1341 | C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:777 .text:00000578 MixerTable_ReadFromEEProm |
||
1342 | *COM*:0000004e Mixer |
||
1343 | C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:851 .text:000005e0 MixerTable_WriteToEEProm |
||
1344 | C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:891 .text:00000618 MixerTable_Default |
||
1345 | C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:953 .text:000006a6 GetActiveParamSet |
||
1346 | C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:1003 .text:000006e0 SetDefaultParameter |
||
1347 | C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:1086 .progmem.data:00000000 __c.0 |
||
1348 | C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:1090 .progmem.data:00000026 __c.1 |
||
1349 | C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:1094 .progmem.data:0000003f __c.2 |
||
1350 | C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:1098 .progmem.data:00000060 __c.3 |
||
1351 | C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:1102 .progmem.data:00000081 __c.4 |
||
1352 | C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:1107 .text:00000766 ParamSet_Init |
||
1353 | *COM*:00000001 RequiredMotors |
||
1354 | *COM*:00000008 Motorsmax |
||
1355 | *COM*:00000002 MotorsTmax |
||
1356 | |||
1357 | UNDEFINED SYMBOLS |
||
1358 | __do_copy_data |
||
1359 | __do_clear_bss |
||
1360 | PlatinenVersion |
||
1361 | __eerd_word |
||
1362 | __eewr_word |
||
1363 | __eerd_block |
||
1364 | LED_Init |
||
1365 | LIBFC_CheckSettings |
||
1366 | __eewr_block |
||
1367 | uart_putchar |
||
1368 | _printf_P |