Subversion Repositories svnkaklik

Compare Revisions

Ignore whitespace Rev 410 → Rev 484

/programy/C/avr/AVRcam/AVRcam.lss
3,125 → 3,123
 
Sections:
Idx Name Size VMA LMA File off Algn
0 .noinit 00000030 00800300 00800300 00001182 2**0
0 .noinit 00000030 00800300 00800300 0000119a 2**0
ALLOC
1 .bss 00000274 00800070 00800070 00001182 2**0
1 .bss 00000274 00800070 00800070 0000119a 2**0
ALLOC
2 .data 00000010 00800060 000010be 00001172 2**0
2 .data 00000010 00800060 000010d6 0000118a 2**0
CONTENTS, ALLOC, LOAD, DATA
3 .text 000010be 00000000 00000000 000000b4 2**1
3 .text 000010d6 00000000 00000000 000000b4 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
4 .eeprom 00000000 00810000 00810000 00001182 2**0
CONTENTS
5 .stab 00003ed0 00000000 00000000 00001184 2**2
4 .stab 00003f9c 00000000 00000000 0000119c 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 000017c9 00000000 00000000 00005054 2**0
5 .stabstr 000017b7 00000000 00000000 00005138 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
 
00000000 <__vectors>:
0: 63 c0 rjmp .+198 ; 0xc8 <__init>
2: 05 c8 rjmp .-4086 ; 0xfffff00e <__eeprom_end+0xff7ef00e>
4: 05 c8 rjmp .-4086 ; 0xfffff010 <__eeprom_end+0xff7ef010>
2: 11 c8 rjmp .-4062 ; 0xfffff026 <__eeprom_end+0xff7ef026>
4: 11 c8 rjmp .-4062 ; 0xfffff028 <__eeprom_end+0xff7ef028>
6: 7a c0 rjmp .+244 ; 0xfc <__bad_interrupt>
8: 79 c0 rjmp .+242 ; 0xfc <__bad_interrupt>
a: 78 c0 rjmp .+240 ; 0xfc <__bad_interrupt>
c: 77 c0 rjmp .+238 ; 0xfc <__bad_interrupt>
e: 76 c0 rjmp .+236 ; 0xfc <__bad_interrupt>
10: 00 c8 rjmp .-4096 ; 0xfffff012 <__eeprom_end+0xff7ef012>
10: 0c c8 rjmp .-4072 ; 0xfffff02a <__eeprom_end+0xff7ef02a>
12: 74 c0 rjmp .+232 ; 0xfc <__bad_interrupt>
14: 73 c0 rjmp .+230 ; 0xfc <__bad_interrupt>
16: aa c5 rjmp .+2900 ; 0xb6c <__vector_11>
16: af c5 rjmp .+2910 ; 0xb76 <__vector_11>
18: 71 c0 rjmp .+226 ; 0xfc <__bad_interrupt>
1a: 70 c0 rjmp .+224 ; 0xfc <__bad_interrupt>
1c: 6f c0 rjmp .+222 ; 0xfc <__bad_interrupt>
1e: 6e c0 rjmp .+220 ; 0xfc <__bad_interrupt>
20: 6d c0 rjmp .+218 ; 0xfc <__bad_interrupt>
22: 0f c6 rjmp .+3102 ; 0xc42 <__vector_17>
22: 14 c6 rjmp .+3112 ; 0xc4c <__vector_17>
24: 6b c0 rjmp .+214 ; 0xfc <__bad_interrupt>
 
00000026 <__ctors_end>:
26: 29 c6 rjmp .+3154 ; 0xc7a <__vector_17+0x38>
28: bf c6 rjmp .+3454 ; 0xda8 <__vector_17+0x166>
2a: be c6 rjmp .+3452 ; 0xda8 <__vector_17+0x166>
2c: bd c6 rjmp .+3450 ; 0xda8 <__vector_17+0x166>
2e: bc c6 rjmp .+3448 ; 0xda8 <__vector_17+0x166>
30: bb c6 rjmp .+3446 ; 0xda8 <__vector_17+0x166>
32: ba c6 rjmp .+3444 ; 0xda8 <__vector_17+0x166>
34: b9 c6 rjmp .+3442 ; 0xda8 <__vector_17+0x166>
36: 21 c6 rjmp .+3138 ; 0xc7a <__vector_17+0x38>
38: b7 c6 rjmp .+3438 ; 0xda8 <__vector_17+0x166>
3a: b6 c6 rjmp .+3436 ; 0xda8 <__vector_17+0x166>
3c: b5 c6 rjmp .+3434 ; 0xda8 <__vector_17+0x166>
3e: b4 c6 rjmp .+3432 ; 0xda8 <__vector_17+0x166>
40: b3 c6 rjmp .+3430 ; 0xda8 <__vector_17+0x166>
42: b2 c6 rjmp .+3428 ; 0xda8 <__vector_17+0x166>
44: b1 c6 rjmp .+3426 ; 0xda8 <__vector_17+0x166>
46: 31 c6 rjmp .+3170 ; 0xcaa <__vector_17+0x68>
48: af c6 rjmp .+3422 ; 0xda8 <__vector_17+0x166>
4a: ae c6 rjmp .+3420 ; 0xda8 <__vector_17+0x166>
4c: ad c6 rjmp .+3418 ; 0xda8 <__vector_17+0x166>
4e: ac c6 rjmp .+3416 ; 0xda8 <__vector_17+0x166>
50: ab c6 rjmp .+3414 ; 0xda8 <__vector_17+0x166>
52: aa c6 rjmp .+3412 ; 0xda8 <__vector_17+0x166>
54: a9 c6 rjmp .+3410 ; 0xda8 <__vector_17+0x166>
56: 3a c6 rjmp .+3188 ; 0xccc <__vector_17+0x8a>
58: a7 c6 rjmp .+3406 ; 0xda8 <__vector_17+0x166>
5a: a6 c6 rjmp .+3404 ; 0xda8 <__vector_17+0x166>
5c: a5 c6 rjmp .+3402 ; 0xda8 <__vector_17+0x166>
5e: a4 c6 rjmp .+3400 ; 0xda8 <__vector_17+0x166>
60: a3 c6 rjmp .+3398 ; 0xda8 <__vector_17+0x166>
62: a2 c6 rjmp .+3396 ; 0xda8 <__vector_17+0x166>
64: a1 c6 rjmp .+3394 ; 0xda8 <__vector_17+0x166>
66: 3b c6 rjmp .+3190 ; 0xcde <__vector_17+0x9c>
68: 9f c6 rjmp .+3390 ; 0xda8 <__vector_17+0x166>
6a: 9e c6 rjmp .+3388 ; 0xda8 <__vector_17+0x166>
6c: 9d c6 rjmp .+3386 ; 0xda8 <__vector_17+0x166>
6e: 9c c6 rjmp .+3384 ; 0xda8 <__vector_17+0x166>
70: 9b c6 rjmp .+3382 ; 0xda8 <__vector_17+0x166>
72: 9a c6 rjmp .+3380 ; 0xda8 <__vector_17+0x166>
74: 99 c6 rjmp .+3378 ; 0xda8 <__vector_17+0x166>
76: 54 c6 rjmp .+3240 ; 0xd20 <__vector_17+0xde>
78: 97 c6 rjmp .+3374 ; 0xda8 <__vector_17+0x166>
7a: 96 c6 rjmp .+3372 ; 0xda8 <__vector_17+0x166>
7c: 95 c6 rjmp .+3370 ; 0xda8 <__vector_17+0x166>
7e: 94 c6 rjmp .+3368 ; 0xda8 <__vector_17+0x166>
80: 93 c6 rjmp .+3366 ; 0xda8 <__vector_17+0x166>
82: 92 c6 rjmp .+3364 ; 0xda8 <__vector_17+0x166>
84: 91 c6 rjmp .+3362 ; 0xda8 <__vector_17+0x166>
86: 90 c6 rjmp .+3360 ; 0xda8 <__vector_17+0x166>
88: 8f c6 rjmp .+3358 ; 0xda8 <__vector_17+0x166>
8a: 8e c6 rjmp .+3356 ; 0xda8 <__vector_17+0x166>
8c: 8d c6 rjmp .+3354 ; 0xda8 <__vector_17+0x166>
8e: 8c c6 rjmp .+3352 ; 0xda8 <__vector_17+0x166>
90: 8b c6 rjmp .+3350 ; 0xda8 <__vector_17+0x166>
92: 8a c6 rjmp .+3348 ; 0xda8 <__vector_17+0x166>
94: 89 c6 rjmp .+3346 ; 0xda8 <__vector_17+0x166>
96: 4d c6 rjmp .+3226 ; 0xd32 <__vector_17+0xf0>
98: 87 c6 rjmp .+3342 ; 0xda8 <__vector_17+0x166>
9a: 86 c6 rjmp .+3340 ; 0xda8 <__vector_17+0x166>
9c: 85 c6 rjmp .+3338 ; 0xda8 <__vector_17+0x166>
9e: 84 c6 rjmp .+3336 ; 0xda8 <__vector_17+0x166>
a0: 83 c6 rjmp .+3334 ; 0xda8 <__vector_17+0x166>
a2: 82 c6 rjmp .+3332 ; 0xda8 <__vector_17+0x166>
a4: 81 c6 rjmp .+3330 ; 0xda8 <__vector_17+0x166>
a6: 12 c6 rjmp .+3108 ; 0xccc <__vector_17+0x8a>
a8: 7f c6 rjmp .+3326 ; 0xda8 <__vector_17+0x166>
aa: 7e c6 rjmp .+3324 ; 0xda8 <__vector_17+0x166>
ac: 7d c6 rjmp .+3322 ; 0xda8 <__vector_17+0x166>
ae: 7c c6 rjmp .+3320 ; 0xda8 <__vector_17+0x166>
b0: 7b c6 rjmp .+3318 ; 0xda8 <__vector_17+0x166>
b2: 7a c6 rjmp .+3316 ; 0xda8 <__vector_17+0x166>
b4: 79 c6 rjmp .+3314 ; 0xda8 <__vector_17+0x166>
b6: 4e c6 rjmp .+3228 ; 0xd54 <__vector_17+0x112>
b8: 77 c6 rjmp .+3310 ; 0xda8 <__vector_17+0x166>
ba: 76 c6 rjmp .+3308 ; 0xda8 <__vector_17+0x166>
bc: 75 c6 rjmp .+3306 ; 0xda8 <__vector_17+0x166>
be: 74 c6 rjmp .+3304 ; 0xda8 <__vector_17+0x166>
c0: 73 c6 rjmp .+3302 ; 0xda8 <__vector_17+0x166>
c2: 72 c6 rjmp .+3300 ; 0xda8 <__vector_17+0x166>
c4: 71 c6 rjmp .+3298 ; 0xda8 <__vector_17+0x166>
c6: 62 c6 rjmp .+3268 ; 0xd8c <__vector_17+0x14a>
26: 2e c6 rjmp .+3164 ; 0xc84 <__vector_17+0x38>
28: c1 c6 rjmp .+3458 ; 0xdac <__vector_17+0x160>
2a: c0 c6 rjmp .+3456 ; 0xdac <__vector_17+0x160>
2c: bf c6 rjmp .+3454 ; 0xdac <__vector_17+0x160>
2e: be c6 rjmp .+3452 ; 0xdac <__vector_17+0x160>
30: bd c6 rjmp .+3450 ; 0xdac <__vector_17+0x160>
32: bc c6 rjmp .+3448 ; 0xdac <__vector_17+0x160>
34: bb c6 rjmp .+3446 ; 0xdac <__vector_17+0x160>
36: 26 c6 rjmp .+3148 ; 0xc84 <__vector_17+0x38>
38: b9 c6 rjmp .+3442 ; 0xdac <__vector_17+0x160>
3a: b8 c6 rjmp .+3440 ; 0xdac <__vector_17+0x160>
3c: b7 c6 rjmp .+3438 ; 0xdac <__vector_17+0x160>
3e: b6 c6 rjmp .+3436 ; 0xdac <__vector_17+0x160>
40: b5 c6 rjmp .+3434 ; 0xdac <__vector_17+0x160>
42: b4 c6 rjmp .+3432 ; 0xdac <__vector_17+0x160>
44: b3 c6 rjmp .+3430 ; 0xdac <__vector_17+0x160>
46: 36 c6 rjmp .+3180 ; 0xcb4 <__vector_17+0x68>
48: b1 c6 rjmp .+3426 ; 0xdac <__vector_17+0x160>
4a: b0 c6 rjmp .+3424 ; 0xdac <__vector_17+0x160>
4c: af c6 rjmp .+3422 ; 0xdac <__vector_17+0x160>
4e: ae c6 rjmp .+3420 ; 0xdac <__vector_17+0x160>
50: ad c6 rjmp .+3418 ; 0xdac <__vector_17+0x160>
52: ac c6 rjmp .+3416 ; 0xdac <__vector_17+0x160>
54: ab c6 rjmp .+3414 ; 0xdac <__vector_17+0x160>
56: 3e c6 rjmp .+3196 ; 0xcd4 <__vector_17+0x88>
58: a9 c6 rjmp .+3410 ; 0xdac <__vector_17+0x160>
5a: a8 c6 rjmp .+3408 ; 0xdac <__vector_17+0x160>
5c: a7 c6 rjmp .+3406 ; 0xdac <__vector_17+0x160>
5e: a6 c6 rjmp .+3404 ; 0xdac <__vector_17+0x160>
60: a5 c6 rjmp .+3402 ; 0xdac <__vector_17+0x160>
62: a4 c6 rjmp .+3400 ; 0xdac <__vector_17+0x160>
64: a3 c6 rjmp .+3398 ; 0xdac <__vector_17+0x160>
66: 3f c6 rjmp .+3198 ; 0xce6 <__vector_17+0x9a>
68: a1 c6 rjmp .+3394 ; 0xdac <__vector_17+0x160>
6a: a0 c6 rjmp .+3392 ; 0xdac <__vector_17+0x160>
6c: 9f c6 rjmp .+3390 ; 0xdac <__vector_17+0x160>
6e: 9e c6 rjmp .+3388 ; 0xdac <__vector_17+0x160>
70: 9d c6 rjmp .+3386 ; 0xdac <__vector_17+0x160>
72: 9c c6 rjmp .+3384 ; 0xdac <__vector_17+0x160>
74: 9b c6 rjmp .+3382 ; 0xdac <__vector_17+0x160>
76: 57 c6 rjmp .+3246 ; 0xd26 <__vector_17+0xda>
78: 99 c6 rjmp .+3378 ; 0xdac <__vector_17+0x160>
7a: 98 c6 rjmp .+3376 ; 0xdac <__vector_17+0x160>
7c: 97 c6 rjmp .+3374 ; 0xdac <__vector_17+0x160>
7e: 96 c6 rjmp .+3372 ; 0xdac <__vector_17+0x160>
80: 95 c6 rjmp .+3370 ; 0xdac <__vector_17+0x160>
82: 94 c6 rjmp .+3368 ; 0xdac <__vector_17+0x160>
84: 93 c6 rjmp .+3366 ; 0xdac <__vector_17+0x160>
86: 92 c6 rjmp .+3364 ; 0xdac <__vector_17+0x160>
88: 91 c6 rjmp .+3362 ; 0xdac <__vector_17+0x160>
8a: 90 c6 rjmp .+3360 ; 0xdac <__vector_17+0x160>
8c: 8f c6 rjmp .+3358 ; 0xdac <__vector_17+0x160>
8e: 8e c6 rjmp .+3356 ; 0xdac <__vector_17+0x160>
90: 8d c6 rjmp .+3354 ; 0xdac <__vector_17+0x160>
92: 8c c6 rjmp .+3352 ; 0xdac <__vector_17+0x160>
94: 8b c6 rjmp .+3350 ; 0xdac <__vector_17+0x160>
96: 50 c6 rjmp .+3232 ; 0xd38 <__vector_17+0xec>
98: 89 c6 rjmp .+3346 ; 0xdac <__vector_17+0x160>
9a: 88 c6 rjmp .+3344 ; 0xdac <__vector_17+0x160>
9c: 87 c6 rjmp .+3342 ; 0xdac <__vector_17+0x160>
9e: 86 c6 rjmp .+3340 ; 0xdac <__vector_17+0x160>
a0: 85 c6 rjmp .+3338 ; 0xdac <__vector_17+0x160>
a2: 84 c6 rjmp .+3336 ; 0xdac <__vector_17+0x160>
a4: 83 c6 rjmp .+3334 ; 0xdac <__vector_17+0x160>
a6: 16 c6 rjmp .+3116 ; 0xcd4 <__vector_17+0x88>
a8: 81 c6 rjmp .+3330 ; 0xdac <__vector_17+0x160>
aa: 80 c6 rjmp .+3328 ; 0xdac <__vector_17+0x160>
ac: 7f c6 rjmp .+3326 ; 0xdac <__vector_17+0x160>
ae: 7e c6 rjmp .+3324 ; 0xdac <__vector_17+0x160>
b0: 7d c6 rjmp .+3322 ; 0xdac <__vector_17+0x160>
b2: 7c c6 rjmp .+3320 ; 0xdac <__vector_17+0x160>
b4: 7b c6 rjmp .+3318 ; 0xdac <__vector_17+0x160>
b6: 51 c6 rjmp .+3234 ; 0xd5a <__vector_17+0x10e>
b8: 79 c6 rjmp .+3314 ; 0xdac <__vector_17+0x160>
ba: 78 c6 rjmp .+3312 ; 0xdac <__vector_17+0x160>
bc: 77 c6 rjmp .+3310 ; 0xdac <__vector_17+0x160>
be: 76 c6 rjmp .+3308 ; 0xdac <__vector_17+0x160>
c0: 75 c6 rjmp .+3306 ; 0xdac <__vector_17+0x160>
c2: 74 c6 rjmp .+3304 ; 0xdac <__vector_17+0x160>
c4: 73 c6 rjmp .+3302 ; 0xdac <__vector_17+0x160>
c6: 64 c6 rjmp .+3272 ; 0xd90 <__vector_17+0x144>
 
000000c8 <__init>:
c8: 11 24 eor r1, r1
135,7 → 133,7
d4: 10 e0 ldi r17, 0x00 ; 0
d6: a0 e6 ldi r26, 0x60 ; 96
d8: b0 e0 ldi r27, 0x00 ; 0
da: ee eb ldi r30, 0xBE ; 190
da: e6 ed ldi r30, 0xD6 ; 214
dc: f0 e1 ldi r31, 0x10 ; 16
de: 02 c0 rjmp .+4 ; 0xe4 <.do_copy_data_start>
 
164,7 → 162,7
fa: 30 c0 rjmp .+96 ; 0x15c <main>
 
000000fc <__bad_interrupt>:
fc: 91 c7 rjmp .+3874 ; 0x1020 <__vector_default>
fc: 9d c7 rjmp .+3898 ; 0x1038 <__vector_default>
 
000000fe <CamInt_resetCam>:
output the clock signal. Thus, if we reset the cam, the
220,11 → 218,11
uint8_t len;
len = (uint8_t) n;
 
asm volatile (
__asm__ __volatile__ (
152: a1 e0 ldi r26, 0x01 ; 1
154: b0 e0 ldi r27, 0x00 ; 0
156: 18 2e mov r1, r24
158: a0 d7 rcall .+3904 ; 0x109a <__eeprom_read_block_1C1D1E>
158: ac d7 rcall .+3928 ; 0x10b2 <__eeprom_read_block_1C1D1E>
15a: 08 95 ret
 
0000015c <main>:
239,11 → 237,11
162: cd bf out 0x3d, r28 ; 61
/* initialize all of the interface modules */
DebugInt_init();
164: cf d6 rcall .+3486 ; 0xf04 <DebugInt_init>
164: db d6 rcall .+3510 ; 0xf1c <DebugInt_init>
UartInt_init();
166: f4 d4 rcall .+2536 ; 0xb50 <UartInt_init>
166: f9 d4 rcall .+2546 ; 0xb5a <UartInt_init>
I2CInt_init();
168: 2b d5 rcall .+2646 ; 0xbc0 <I2CInt_init>
168: 30 d5 rcall .+2656 ; 0xbca <I2CInt_init>
CamInt_init();
16a: ca df rcall .-108 ; 0x100 <CamInt_init>
252,11 → 250,11
ENABLE_INTS();
16c: 78 94 sei
CamConfig_init();
16e: 7e d6 rcall .+3324 ; 0xe6c <CamConfig_init>
16e: 8a d6 rcall .+3348 ; 0xe84 <CamConfig_init>
UIMgr_init();
170: 8a d3 rcall .+1812 ; 0x886 <UIMgr_init>
170: 6a d3 rcall .+1748 ; 0x846 <UIMgr_init>
FrameMgr_init();
172: 37 d2 rcall .+1134 ; 0x5e2 <FrameMgr_init>
172: 25 d2 rcall .+1098 ; 0x5be <FrameMgr_init>
/* provide a short delay for the camera to stabilize before
we let the executive start up */
263,7 → 261,7
Utility_delay(1000);
174: 88 ee ldi r24, 0xE8 ; 232
176: 93 e0 ldi r25, 0x03 ; 3
178: 8a d6 rcall .+3348 ; 0xe8e <Utility_delay>
178: 96 d6 rcall .+3372 ; 0xea6 <Utility_delay>
/* the rest of the application will be under the
control of the Executive. */
275,10 → 273,9
}
17c: 80 e0 ldi r24, 0x00 ; 0
17e: 90 e0 ldi r25, 0x00 ; 0
180: 9d c7 rjmp .+3898 ; 0x10bc <_exit>
180: a9 c7 rjmp .+3922 ; 0x10d4 <_exit>
 
00000182 <Exec_writeEventFifo>:
 
182: f8 94 cli
184: 90 91 70 00 lds r25, 0x0070
188: ec e6 ldi r30, 0x6C ; 108
293,104 → 290,104
19c: 08 95 ret
 
0000019e <Exec_run>:
19e: 80 91 72 00 lds r24, 0x0072
1a2: 88 23 and r24, r24
1a4: 99 f0 breq .+38 ; 0x1cc <Exec_run+0x2e>
1a6: 80 ff sbrs r24, 0
1a8: 07 c0 rjmp .+14 ; 0x1b8 <Exec_run+0x1a>
1aa: f8 94 cli
1ac: 8e 7f andi r24, 0xFE ; 254
1ae: 80 93 72 00 sts 0x0072, r24
1b2: 78 94 sei
1b4: b6 d0 rcall .+364 ; 0x322 <FrameMgr_processLine>
1b6: ff d2 rcall .+1534 ; 0x7b6 <UIMgr_transmitPendingData>
1b8: 80 91 72 00 lds r24, 0x0072
1bc: 81 ff sbrs r24, 1
1be: 06 c0 rjmp .+12 ; 0x1cc <Exec_run+0x2e>
1c0: f8 94 cli
1c2: 8d 7f andi r24, 0xFD ; 253
1c4: 80 93 72 00 sts 0x0072, r24
1c8: 78 94 sei
1ca: 12 d2 rcall .+1060 ; 0x5f0 <FrameMgr_acquireLine>
1cc: 20 91 71 00 lds r18, 0x0071
1d0: 80 91 70 00 lds r24, 0x0070
1d4: 82 17 cp r24, r18
1d6: 19 f3 breq .-58 ; 0x19e <Exec_run>
1d8: f8 94 cli
1da: e2 2f mov r30, r18
1dc: ff 27 eor r31, r31
1de: e4 59 subi r30, 0x94 ; 148
1e0: fd 4f sbci r31, 0xFD ; 253
1e2: 90 81 ld r25, Z
1e4: 82 2f mov r24, r18
1e6: 8f 5f subi r24, 0xFF ; 255
1e8: 87 70 andi r24, 0x07 ; 7
1ea: 80 93 71 00 sts 0x0071, r24
1ee: 78 94 sei
1f0: 89 2f mov r24, r25
1f2: 99 27 eor r25, r25
1f4: 80 31 cpi r24, 0x10 ; 16
1f6: 31 f1 breq .+76 ; 0x244 <Exec_run+0xa6>
1f8: 81 31 cpi r24, 0x11 ; 17
1fa: 68 f4 brcc .+26 ; 0x216 <Exec_run+0x78>
1fc: 82 30 cpi r24, 0x02 ; 2
1fe: c9 f0 breq .+50 ; 0x232 <Exec_run+0x94>
200: 83 30 cpi r24, 0x03 ; 3
202: 18 f4 brcc .+6 ; 0x20a <Exec_run+0x6c>
204: 81 30 cpi r24, 0x01 ; 1
206: 59 f6 brne .-106 ; 0x19e <Exec_run>
208: 2b c0 rjmp .+86 ; 0x260 <Exec_run+0xc2>
20a: 84 30 cpi r24, 0x04 ; 4
20c: 31 f1 breq .+76 ; 0x25a <Exec_run+0xbc>
20e: 88 30 cpi r24, 0x08 ; 8
210: 09 f0 breq .+2 ; 0x214 <Exec_run+0x76>
212: c5 cf rjmp .-118 ; 0x19e <Exec_run>
19e: cf 93 push r28
1a0: df 93 push r29
1a2: cc e6 ldi r28, 0x6C ; 108
1a4: d2 e0 ldi r29, 0x02 ; 2
1a6: 80 91 72 00 lds r24, 0x0072
1aa: 88 23 and r24, r24
1ac: 99 f0 breq .+38 ; 0x1d4 <Exec_run+0x36>
1ae: 80 ff sbrs r24, 0
1b0: 07 c0 rjmp .+14 ; 0x1c0 <Exec_run+0x22>
1b2: f8 94 cli
1b4: 8e 7f andi r24, 0xFE ; 254
1b6: 80 93 72 00 sts 0x0072, r24
1ba: 78 94 sei
1bc: b2 d0 rcall .+356 ; 0x322 <FrameMgr_processLine>
1be: db d2 rcall .+1462 ; 0x776 <UIMgr_transmitPendingData>
1c0: 80 91 72 00 lds r24, 0x0072
1c4: 81 ff sbrs r24, 1
1c6: 06 c0 rjmp .+12 ; 0x1d4 <Exec_run+0x36>
1c8: f8 94 cli
1ca: 8d 7f andi r24, 0xFD ; 253
1cc: 80 93 72 00 sts 0x0072, r24
1d0: 78 94 sei
1d2: fc d1 rcall .+1016 ; 0x5cc <FrameMgr_acquireLine>
1d4: 90 91 71 00 lds r25, 0x0071
1d8: 80 91 70 00 lds r24, 0x0070
1dc: 89 17 cp r24, r25
1de: 19 f3 breq .-58 ; 0x1a6 <Exec_run+0x8>
1e0: f8 94 cli
1e2: fe 01 movw r30, r28
1e4: e9 0f add r30, r25
1e6: f1 1d adc r31, r1
1e8: e0 81 ld r30, Z
1ea: 89 2f mov r24, r25
1ec: 8f 5f subi r24, 0xFF ; 255
1ee: 87 70 andi r24, 0x07 ; 7
1f0: 80 93 71 00 sts 0x0071, r24
1f4: 78 94 sei
1f6: e0 31 cpi r30, 0x10 ; 16
1f8: 29 f1 breq .+74 ; 0x244 <Exec_run+0xa6>
1fa: e1 31 cpi r30, 0x11 ; 17
1fc: 60 f4 brcc .+24 ; 0x216 <Exec_run+0x78>
1fe: e2 30 cpi r30, 0x02 ; 2
200: c1 f0 breq .+48 ; 0x232 <Exec_run+0x94>
202: e3 30 cpi r30, 0x03 ; 3
204: 18 f4 brcc .+6 ; 0x20c <Exec_run+0x6e>
206: e1 30 cpi r30, 0x01 ; 1
208: 71 f6 brne .-100 ; 0x1a6 <Exec_run+0x8>
20a: 2a c0 rjmp .+84 ; 0x260 <Exec_run+0xc2>
20c: e4 30 cpi r30, 0x04 ; 4
20e: 29 f1 breq .+74 ; 0x25a <Exec_run+0xbc>
210: e8 30 cpi r30, 0x08 ; 8
212: 49 f6 brne .-110 ; 0x1a6 <Exec_run+0x8>
214: 1f c0 rjmp .+62 ; 0x254 <Exec_run+0xb6>
216: 80 38 cpi r24, 0x80 ; 128
216: e0 38 cpi r30, 0x80 ; 128
218: 79 f0 breq .+30 ; 0x238 <Exec_run+0x9a>
21a: 81 38 cpi r24, 0x81 ; 129
21a: e1 38 cpi r30, 0x81 ; 129
21c: 20 f4 brcc .+8 ; 0x226 <Exec_run+0x88>
21e: 80 32 cpi r24, 0x20 ; 32
21e: e0 32 cpi r30, 0x20 ; 32
220: 09 f0 breq .+2 ; 0x224 <Exec_run+0x86>
222: bd cf rjmp .-134 ; 0x19e <Exec_run>
222: c1 cf rjmp .-126 ; 0x1a6 <Exec_run+0x8>
224: 14 c0 rjmp .+40 ; 0x24e <Exec_run+0xb0>
226: 81 38 cpi r24, 0x81 ; 129
226: e1 38 cpi r30, 0x81 ; 129
228: 51 f0 breq .+20 ; 0x23e <Exec_run+0xa0>
22a: 80 39 cpi r24, 0x90 ; 144
22a: e0 39 cpi r30, 0x90 ; 144
22c: 09 f0 breq .+2 ; 0x230 <Exec_run+0x92>
22e: b7 cf rjmp .-146 ; 0x19e <Exec_run>
22e: bb cf rjmp .-138 ; 0x1a6 <Exec_run+0x8>
230: 1c c0 rjmp .+56 ; 0x26a <Exec_run+0xcc>
232: 82 e0 ldi r24, 0x02 ; 2
234: 2e d2 rcall .+1116 ; 0x692 <FrameMgr_dispatchEvent>
236: b3 cf rjmp .-154 ; 0x19e <Exec_run>
234: 19 d2 rcall .+1074 ; 0x668 <FrameMgr_dispatchEvent>
236: b7 cf rjmp .-146 ; 0x1a6 <Exec_run+0x8>
238: 80 e8 ldi r24, 0x80 ; 128
23a: 2b d2 rcall .+1110 ; 0x692 <FrameMgr_dispatchEvent>
23c: b0 cf rjmp .-160 ; 0x19e <Exec_run>
23a: 16 d2 rcall .+1068 ; 0x668 <FrameMgr_dispatchEvent>
23c: b4 cf rjmp .-152 ; 0x1a6 <Exec_run+0x8>
23e: 81 e8 ldi r24, 0x81 ; 129
240: 28 d2 rcall .+1104 ; 0x692 <FrameMgr_dispatchEvent>
242: ad cf rjmp .-166 ; 0x19e <Exec_run>
240: 13 d2 rcall .+1062 ; 0x668 <FrameMgr_dispatchEvent>
242: b1 cf rjmp .-158 ; 0x1a6 <Exec_run+0x8>
244: 80 e1 ldi r24, 0x10 ; 16
246: 25 d2 rcall .+1098 ; 0x692 <FrameMgr_dispatchEvent>
246: 10 d2 rcall .+1056 ; 0x668 <FrameMgr_dispatchEvent>
248: 80 e1 ldi r24, 0x10 ; 16
24a: 75 d4 rcall .+2282 ; 0xb36 <UIMgr_dispatchEvent>
24c: a8 cf rjmp .-176 ; 0x19e <Exec_run>
24a: 7a d4 rcall .+2292 ; 0xb40 <UIMgr_dispatchEvent>
24c: ac cf rjmp .-168 ; 0x1a6 <Exec_run+0x8>
24e: 80 e2 ldi r24, 0x20 ; 32
250: 20 d2 rcall .+1088 ; 0x692 <FrameMgr_dispatchEvent>
252: a5 cf rjmp .-182 ; 0x19e <Exec_run>
250: 0b d2 rcall .+1046 ; 0x668 <FrameMgr_dispatchEvent>
252: a9 cf rjmp .-174 ; 0x1a6 <Exec_run+0x8>
254: 88 e0 ldi r24, 0x08 ; 8
256: 1d d2 rcall .+1082 ; 0x692 <FrameMgr_dispatchEvent>
258: a2 cf rjmp .-188 ; 0x19e <Exec_run>
256: 08 d2 rcall .+1040 ; 0x668 <FrameMgr_dispatchEvent>
258: a6 cf rjmp .-180 ; 0x1a6 <Exec_run+0x8>
25a: 84 e0 ldi r24, 0x04 ; 4
25c: 1a d2 rcall .+1076 ; 0x692 <FrameMgr_dispatchEvent>
25e: 9f cf rjmp .-194 ; 0x19e <Exec_run>
25c: 05 d2 rcall .+1034 ; 0x668 <FrameMgr_dispatchEvent>
25e: a3 cf rjmp .-186 ; 0x1a6 <Exec_run+0x8>
260: 81 e0 ldi r24, 0x01 ; 1
262: 69 d4 rcall .+2258 ; 0xb36 <UIMgr_dispatchEvent>
262: 6e d4 rcall .+2268 ; 0xb40 <UIMgr_dispatchEvent>
264: 81 e0 ldi r24, 0x01 ; 1
266: 15 d2 rcall .+1066 ; 0x692 <FrameMgr_dispatchEvent>
268: 9a cf rjmp .-204 ; 0x19e <Exec_run>
266: 00 d2 rcall .+1024 ; 0x668 <FrameMgr_dispatchEvent>
268: 9e cf rjmp .-196 ; 0x1a6 <Exec_run+0x8>
26a: 80 e9 ldi r24, 0x90 ; 144
26c: 64 d4 rcall .+2248 ; 0xb36 <UIMgr_dispatchEvent>
26e: 97 cf rjmp .-210 ; 0x19e <Exec_run>
26c: 69 d4 rcall .+2258 ; 0xb40 <UIMgr_dispatchEvent>
26e: 9b cf rjmp .-202 ; 0x1a6 <Exec_run+0x8>
 
00000270 <FrameMgr_processFrame>:
270: df 92 push r13
408,9 → 405,9
28e: 3f c0 rjmp .+126 ; 0x30e <FrameMgr_processFrame+0x9e>
290: e9 01 movw r28, r18
292: 8a e0 ldi r24, 0x0A ; 10
294: 5c d2 rcall .+1208 ; 0x74e <UIMgr_writeTxFifo>
294: 43 d2 rcall .+1158 ; 0x71c <UIMgr_writeTxFifo>
296: 80 91 73 00 lds r24, 0x0073
29a: 59 d2 rcall .+1202 ; 0x74e <UIMgr_writeTxFifo>
29a: 40 d2 rcall .+1152 ; 0x71c <UIMgr_writeTxFifo>
29c: dd 24 eor r13, r13
29e: 8f 81 ldd r24, Y+7 ; 0x07
2a0: 81 30 cpi r24, 0x01 ; 1
451,15 → 448,15
2e6: 0c 81 ldd r16, Y+4 ; 0x04
2e8: fd 80 ldd r15, Y+5 ; 0x05
2ea: ee 80 ldd r14, Y+6 ; 0x06
2ec: 30 d2 rcall .+1120 ; 0x74e <UIMgr_writeTxFifo>
2ec: 17 d2 rcall .+1070 ; 0x71c <UIMgr_writeTxFifo>
2ee: 81 2f mov r24, r17
2f0: 2e d2 rcall .+1116 ; 0x74e <UIMgr_writeTxFifo>
2f0: 15 d2 rcall .+1066 ; 0x71c <UIMgr_writeTxFifo>
2f2: 80 2f mov r24, r16
2f4: 2c d2 rcall .+1112 ; 0x74e <UIMgr_writeTxFifo>
2f4: 13 d2 rcall .+1062 ; 0x71c <UIMgr_writeTxFifo>
2f6: 8f 2d mov r24, r15
2f8: 2a d2 rcall .+1108 ; 0x74e <UIMgr_writeTxFifo>
2f8: 11 d2 rcall .+1058 ; 0x71c <UIMgr_writeTxFifo>
2fa: 8e 2d mov r24, r14
2fc: 28 d2 rcall .+1104 ; 0x74e <UIMgr_writeTxFifo>
2fc: 0f d2 rcall .+1054 ; 0x71c <UIMgr_writeTxFifo>
2fe: d3 94 inc r13
300: 88 e0 ldi r24, 0x08 ; 8
302: d8 16 cp r13, r24
467,7 → 464,7
306: 28 96 adiw r28, 0x08 ; 8
308: ca cf rjmp .-108 ; 0x29e <FrameMgr_processFrame+0x2e>
30a: 8f ef ldi r24, 0xFF ; 255
30c: 20 d2 rcall .+1088 ; 0x74e <UIMgr_writeTxFifo>
30c: 07 d2 rcall .+1038 ; 0x71c <UIMgr_writeTxFifo>
30e: 84 e0 ldi r24, 0x04 ; 4
310: 38 df rcall .-400 ; 0x182 <Exec_writeEventFifo>
312: df 91 pop r29
488,867 → 485,447
32c: 7f 92 push r7
32e: 8f 92 push r8
330: 9f 92 push r9
332: af 92 push r10
334: bf 92 push r11
336: cf 92 push r12
338: df 92 push r13
33a: ef 92 push r14
33c: ff 92 push r15
33e: 0f 93 push r16
340: 1f 93 push r17
342: cf 93 push r28
344: df 93 push r29
346: cd b7 in r28, 0x3d ; 61
348: de b7 in r29, 0x3e ; 62
34a: 21 97 sbiw r28, 0x01 ; 1
34c: 0f b6 in r0, 0x3f ; 63
34e: f8 94 cli
350: de bf out 0x3e, r29 ; 62
352: 0f be out 0x3f, r0 ; 63
354: cd bf out 0x3d, r28 ; 61
356: 00 91 60 00 lds r16, 0x0060
35a: 10 91 61 00 lds r17, 0x0061
35e: 80 91 74 00 lds r24, 0x0074
362: 82 30 cpi r24, 0x02 ; 2
364: 09 f0 breq .+2 ; 0x368 <FrameMgr_processLine+0x46>
366: 6a c0 rjmp .+212 ; 0x43c <FrameMgr_processLine+0x11a>
368: 8b e0 ldi r24, 0x0B ; 11
36a: fc d3 rcall .+2040 ; 0xb64 <UartInt_txByte>
36c: 80 91 75 00 lds r24, 0x0075
370: f9 d3 rcall .+2034 ; 0xb64 <UartInt_txByte>
372: 0f 2e mov r0, r31
374: fc eb ldi r31, 0xBC ; 188
376: cf 2e mov r12, r31
378: f1 e0 ldi r31, 0x01 ; 1
37a: df 2e mov r13, r31
37c: f0 2d mov r31, r0
37e: 00 e0 ldi r16, 0x00 ; 0
380: 10 e0 ldi r17, 0x00 ; 0
382: 0f 2e mov r0, r31
384: fc e0 ldi r31, 0x0C ; 12
386: ef 2e mov r14, r31
388: f1 e0 ldi r31, 0x01 ; 1
38a: ff 2e mov r15, r31
38c: f0 2d mov r31, r0
38e: f6 01 movw r30, r12
390: 80 81 ld r24, Z
392: 89 83 std Y+1, r24 ; 0x01
394: 89 81 ldd r24, Y+1 ; 0x01
396: 8f 70 andi r24, 0x0F ; 15
398: 89 83 std Y+1, r24 ; 0x01
39a: 89 81 ldd r24, Y+1 ; 0x01
39c: 82 95 swap r24
39e: 80 7f andi r24, 0xF0 ; 240
3a0: 89 83 std Y+1, r24 ; 0x01
3a2: 99 81 ldd r25, Y+1 ; 0x01
3a4: f7 01 movw r30, r14
3a6: 80 81 ld r24, Z
3a8: 8f 70 andi r24, 0x0F ; 15
3aa: 89 2b or r24, r25
3ac: 89 83 std Y+1, r24 ; 0x01
3ae: 89 81 ldd r24, Y+1 ; 0x01
3b0: d9 d3 rcall .+1970 ; 0xb64 <UartInt_txByte>
3b2: d8 01 movw r26, r16
3b4: 11 96 adiw r26, 0x01 ; 1
3b6: fd 01 movw r30, r26
3b8: e4 5f subi r30, 0xF4 ; 244
3ba: fe 4f sbci r31, 0xFE ; 254
3bc: 80 81 ld r24, Z
3be: 89 83 std Y+1, r24 ; 0x01
3c0: 89 81 ldd r24, Y+1 ; 0x01
3c2: 8f 70 andi r24, 0x0F ; 15
3c4: 89 83 std Y+1, r24 ; 0x01
3c6: 89 81 ldd r24, Y+1 ; 0x01
3c8: 82 95 swap r24
3ca: 80 7f andi r24, 0xF0 ; 240
3cc: 89 83 std Y+1, r24 ; 0x01
3ce: 99 81 ldd r25, Y+1 ; 0x01
3d0: a4 54 subi r26, 0x44 ; 68
3d2: be 4f sbci r27, 0xFE ; 254
3d4: 8c 91 ld r24, X
3d6: 8f 70 andi r24, 0x0F ; 15
3d8: 89 2b or r24, r25
3da: 89 83 std Y+1, r24 ; 0x01
3dc: 89 81 ldd r24, Y+1 ; 0x01
3de: c2 d3 rcall .+1924 ; 0xb64 <UartInt_txByte>
3e0: 82 e0 ldi r24, 0x02 ; 2
3e2: 90 e0 ldi r25, 0x00 ; 0
3e4: c8 0e add r12, r24
3e6: d9 1e adc r13, r25
3e8: 0e 5f subi r16, 0xFE ; 254
3ea: 1f 4f sbci r17, 0xFF ; 255
3ec: e8 0e add r14, r24
3ee: f9 1e adc r15, r25
3f0: 00 3b cpi r16, 0xB0 ; 176
3f2: 11 05 cpc r17, r1
3f4: 61 f6 brne .-104 ; 0x38e <FrameMgr_processLine+0x6c>
3f6: 8f e0 ldi r24, 0x0F ; 15
3f8: b5 d3 rcall .+1898 ; 0xb64 <UartInt_txByte>
3fa: 80 91 75 00 lds r24, 0x0075
3fe: 8f 5f subi r24, 0xFF ; 255
400: 80 93 75 00 sts 0x0075, r24
404: 88 34 cpi r24, 0x48 ; 72
406: 60 f0 brcs .+24 ; 0x420 <FrameMgr_processLine+0xfe>
408: 10 92 75 00 sts 0x0075, r1
40c: 10 92 74 00 sts 0x0074, r1
410: 89 b7 in r24, 0x39 ; 57
412: 8b 7f andi r24, 0xFB ; 251
414: 89 bf out 0x39, r24 ; 57
416: 60 e0 ldi r22, 0x00 ; 0
418: 81 e1 ldi r24, 0x11 ; 17
41a: e9 d4 rcall .+2514 ; 0xdee <CamConfig_setCamReg>
41c: ed d4 rcall .+2522 ; 0xdf8 <CamConfig_sendFifoCmds>
41e: c8 c0 rjmp .+400 ; 0x5b0 <__stack+0x151>
420: 80 91 72 00 lds r24, 0x0072
424: 82 60 ori r24, 0x02 ; 2
426: 80 93 72 00 sts 0x0072, r24
42a: c2 c0 rjmp .+388 ; 0x5b0 <__stack+0x151>
42c: 80 e2 ldi r24, 0x20 ; 32
42e: a9 de rcall .-686 ; 0x182 <Exec_writeEventFifo>
430: 89 b7 in r24, 0x39 ; 57
432: 8b 7f andi r24, 0xFB ; 251
434: 89 bf out 0x39, r24 ; 57
436: 10 92 76 00 sts 0x0076, r1
43a: ba c0 rjmp .+372 ; 0x5b0 <__stack+0x151>
43c: 81 30 cpi r24, 0x01 ; 1
43e: 09 f0 breq .+2 ; 0x442 <FrameMgr_processLine+0x120>
440: b7 c0 rjmp .+366 ; 0x5b0 <__stack+0x151>
442: f0 90 76 00 lds r15, 0x0076
446: cf 2c mov r12, r15
448: dd 24 eor r13, r13
44a: 36 01 movw r6, r12
44c: 08 94 sec
44e: 61 08 sbc r6, r1
450: 71 08 sbc r7, r1
452: 70 91 73 00 lds r23, 0x0073
456: 0f 2e mov r0, r31
458: fc eb ldi r31, 0xBC ; 188
45a: 2f 2e mov r2, r31
45c: f1 e0 ldi r31, 0x01 ; 1
45e: 3f 2e mov r3, r31
460: f0 2d mov r31, r0
462: 50 e0 ldi r21, 0x00 ; 0
464: 40 e0 ldi r20, 0x00 ; 0
466: 61 e0 ldi r22, 0x01 ; 1
468: ef 2c mov r14, r15
46a: e3 94 inc r14
46c: f1 01 movw r30, r2
46e: 30 81 ld r19, Z
470: 56 0f add r21, r22
472: 61 81 ldd r22, Z+1 ; 0x01
474: 82 e0 ldi r24, 0x02 ; 2
476: 90 e0 ldi r25, 0x00 ; 0
478: 28 0e add r2, r24
47a: 39 1e adc r3, r25
47c: 46 0f add r20, r22
47e: 33 23 and r19, r19
480: 09 f4 brne .+2 ; 0x484 <__stack+0x25>
482: 5c c0 rjmp .+184 ; 0x53c <__stack+0xdd>
484: 64 30 cpi r22, 0x04 ; 4
486: 08 f4 brcc .+2 ; 0x48a <__stack+0x2b>
488: 59 c0 rjmp .+178 ; 0x53c <__stack+0xdd>
48a: d8 01 movw r26, r16
48c: 20 e0 ldi r18, 0x00 ; 0
48e: 8c 91 ld r24, X
490: 38 17 cp r19, r24
492: c9 f5 brne .+114 ; 0x506 <__stack+0xa7>
494: fd 01 movw r30, r26
496: 87 81 ldd r24, Z+7 ; 0x07
498: 81 30 cpi r24, 0x01 ; 1
49a: a9 f5 brne .+106 ; 0x506 <__stack+0xa7>
49c: 0f 2e mov r0, r31
49e: f6 e0 ldi r31, 0x06 ; 6
4a0: af 2e mov r10, r31
4a2: bb 24 eor r11, r11
4a4: f0 2d mov r31, r0
4a6: aa 0e add r10, r26
4a8: bb 1e adc r11, r27
4aa: 86 81 ldd r24, Z+6 ; 0x06
4ac: 99 27 eor r25, r25
4ae: 86 15 cp r24, r6
4b0: 97 05 cpc r25, r7
4b2: 49 f5 brne .+82 ; 0x506 <__stack+0xa7>
4b4: 2d 01 movw r4, r26
4b6: 08 94 sec
4b8: 41 1c adc r4, r1
4ba: 51 1c adc r5, r1
4bc: 81 81 ldd r24, Z+1 ; 0x01
4be: 88 24 eor r8, r8
4c0: 99 24 eor r9, r9
4c2: 68 94 set
4c4: 81 f8 bld r8, 1
4c6: 8a 0e add r8, r26
4c8: 9b 1e adc r9, r27
4ca: 92 81 ldd r25, Z+2 ; 0x02
4cc: 58 17 cp r21, r24
4ce: 10 f0 brcs .+4 ; 0x4d4 <__stack+0x75>
4d0: 95 17 cp r25, r21
4d2: 40 f4 brcc .+16 ; 0x4e4 <__stack+0x85>
4d4: 48 17 cp r20, r24
4d6: 10 f0 brcs .+4 ; 0x4dc <__stack+0x7d>
4d8: 94 17 cp r25, r20
4da: 20 f4 brcc .+8 ; 0x4e4 <__stack+0x85>
4dc: 85 17 cp r24, r21
4de: 98 f0 brcs .+38 ; 0x506 <__stack+0xa7>
4e0: 49 17 cp r20, r25
4e2: 88 f0 brcs .+34 ; 0x506 <__stack+0xa7>
4e4: f2 01 movw r30, r4
4e6: 50 83 st Z, r21
4e8: f4 01 movw r30, r8
4ea: 40 83 st Z, r20
4ec: fd 01 movw r30, r26
4ee: 83 81 ldd r24, Z+3 ; 0x03
4f0: 58 17 cp r21, r24
4f2: 08 f4 brcc .+2 ; 0x4f6 <__stack+0x97>
4f4: 53 83 std Z+3, r21 ; 0x03
4f6: fd 01 movw r30, r26
4f8: 85 81 ldd r24, Z+5 ; 0x05
4fa: 84 17 cp r24, r20
4fc: 08 f4 brcc .+2 ; 0x500 <__stack+0xa1>
4fe: 45 83 std Z+5, r20 ; 0x05
500: f5 01 movw r30, r10
502: f0 82 st Z, r15
504: 1b c0 rjmp .+54 ; 0x53c <__stack+0xdd>
506: 2f 5f subi r18, 0xFF ; 255
508: 28 30 cpi r18, 0x08 ; 8
50a: 09 f4 brne .+2 ; 0x50e <__stack+0xaf>
50c: 4d c0 rjmp .+154 ; 0x5a8 <__stack+0x149>
50e: 18 96 adiw r26, 0x08 ; 8
510: be cf rjmp .-132 ; 0x48e <__stack+0x2f>
512: d8 01 movw r26, r16
514: 90 e0 ldi r25, 0x00 ; 0
516: fd 01 movw r30, r26
518: 87 81 ldd r24, Z+7 ; 0x07
51a: 88 23 and r24, r24
51c: 21 f0 breq .+8 ; 0x526 <__stack+0xc7>
51e: 18 96 adiw r26, 0x08 ; 8
520: 9f 5f subi r25, 0xFF ; 255
522: 98 30 cpi r25, 0x08 ; 8
524: c1 f7 brne .-16 ; 0x516 <__stack+0xb7>
526: 3c 93 st X, r19
528: fd 01 movw r30, r26
52a: 51 83 std Z+1, r21 ; 0x01
52c: 42 83 std Z+2, r20 ; 0x02
52e: 53 83 std Z+3, r21 ; 0x03
530: f4 82 std Z+4, r15 ; 0x04
532: 45 83 std Z+5, r20 ; 0x05
534: f6 82 std Z+6, r15 ; 0x06
536: 81 e0 ldi r24, 0x01 ; 1
538: 87 83 std Z+7, r24 ; 0x07
53a: 7f 5f subi r23, 0xFF ; 255
53c: 40 3b cpi r20, 0xB0 ; 176
53e: 08 f4 brcc .+2 ; 0x542 <__stack+0xe3>
540: 95 cf rjmp .-214 ; 0x46c <__stack+0xd>
542: 70 93 73 00 sts 0x0073, r23
546: c6 01 movw r24, r12
548: 87 70 andi r24, 0x07 ; 7
54a: 90 70 andi r25, 0x00 ; 0
54c: 07 97 sbiw r24, 0x07 ; 7
54e: 01 f5 brne .+64 ; 0x590 <__stack+0x131>
550: d8 01 movw r26, r16
552: 17 96 adiw r26, 0x07 ; 7
554: 40 e0 ldi r20, 0x00 ; 0
556: 8c 91 ld r24, X
558: 81 30 cpi r24, 0x01 ; 1
55a: a1 f4 brne .+40 ; 0x584 <__stack+0x125>
55c: fd 01 movw r30, r26
55e: 31 97 sbiw r30, 0x01 ; 1
560: 90 81 ld r25, Z
562: fd 01 movw r30, r26
564: 33 97 sbiw r30, 0x03 ; 3
566: 80 81 ld r24, Z
568: 29 2f mov r18, r25
56a: 33 27 eor r19, r19
56c: f9 01 movw r30, r18
56e: e8 1b sub r30, r24
570: f1 09 sbc r31, r1
572: 33 97 sbiw r30, 0x03 ; 3
574: 3c f4 brge .+14 ; 0x584 <__stack+0x125>
576: c6 01 movw r24, r12
578: 82 1b sub r24, r18
57a: 93 0b sbc r25, r19
57c: 03 97 sbiw r24, 0x03 ; 3
57e: 14 f0 brlt .+4 ; 0x584 <__stack+0x125>
580: 1c 92 st X, r1
582: 71 50 subi r23, 0x01 ; 1
584: 4f 5f subi r20, 0xFF ; 255
586: 18 96 adiw r26, 0x08 ; 8
588: 48 30 cpi r20, 0x08 ; 8
58a: 29 f7 brne .-54 ; 0x556 <__stack+0xf7>
58c: 70 93 73 00 sts 0x0073, r23
590: e0 92 76 00 sts 0x0076, r14
594: f0 e9 ldi r31, 0x90 ; 144
596: ef 16 cp r14, r31
598: 09 f4 brne .+2 ; 0x59c <__stack+0x13d>
59a: 48 cf rjmp .-368 ; 0x42c <FrameMgr_processLine+0x10a>
59c: 80 91 72 00 lds r24, 0x0072
5a0: 82 60 ori r24, 0x02 ; 2
5a2: 80 93 72 00 sts 0x0072, r24
5a6: 04 c0 rjmp .+8 ; 0x5b0 <__stack+0x151>
5a8: 78 30 cpi r23, 0x08 ; 8
5aa: 08 f4 brcc .+2 ; 0x5ae <__stack+0x14f>
5ac: b2 cf rjmp .-156 ; 0x512 <__stack+0xb3>
5ae: c6 cf rjmp .-116 ; 0x53c <__stack+0xdd>
5b0: 21 96 adiw r28, 0x01 ; 1
5b2: 0f b6 in r0, 0x3f ; 63
5b4: f8 94 cli
5b6: de bf out 0x3e, r29 ; 62
5b8: 0f be out 0x3f, r0 ; 63
5ba: cd bf out 0x3d, r28 ; 61
5bc: df 91 pop r29
5be: cf 91 pop r28
5c0: 1f 91 pop r17
5c2: 0f 91 pop r16
5c4: ff 90 pop r15
5c6: ef 90 pop r14
5c8: df 90 pop r13
5ca: cf 90 pop r12
5cc: bf 90 pop r11
5ce: af 90 pop r10
5d0: 9f 90 pop r9
5d2: 8f 90 pop r8
5d4: 7f 90 pop r7
5d6: 6f 90 pop r6
5d8: 5f 90 pop r5
5da: 4f 90 pop r4
5dc: 3f 90 pop r3
5de: 2f 90 pop r2
5e0: 08 95 ret
332: bf 92 push r11
334: cf 92 push r12
336: df 92 push r13
338: ef 92 push r14
33a: ff 92 push r15
33c: 0f 93 push r16
33e: 1f 93 push r17
340: cf 93 push r28
342: df 93 push r29
344: cd b7 in r28, 0x3d ; 61
346: de b7 in r29, 0x3e ; 62
348: 21 97 sbiw r28, 0x01 ; 1
34a: 0f b6 in r0, 0x3f ; 63
34c: f8 94 cli
34e: de bf out 0x3e, r29 ; 62
350: 0f be out 0x3f, r0 ; 63
352: cd bf out 0x3d, r28 ; 61
354: 40 91 60 00 lds r20, 0x0060
358: 50 91 61 00 lds r21, 0x0061
35c: 80 91 74 00 lds r24, 0x0074
360: 82 30 cpi r24, 0x02 ; 2
362: 09 f0 breq .+2 ; 0x366 <FrameMgr_processLine+0x44>
364: 5b c0 rjmp .+182 ; 0x41c <FrameMgr_processLine+0xfa>
366: 8b e0 ldi r24, 0x0B ; 11
368: 02 d4 rcall .+2052 ; 0xb6e <UartInt_txByte>
36a: 80 91 75 00 lds r24, 0x0075
36e: ff d3 rcall .+2046 ; 0xb6e <UartInt_txByte>
370: 0c eb ldi r16, 0xBC ; 188
372: 11 e0 ldi r17, 0x01 ; 1
374: 0f 2e mov r0, r31
376: fc e0 ldi r31, 0x0C ; 12
378: ef 2e mov r14, r31
37a: f1 e0 ldi r31, 0x01 ; 1
37c: ff 2e mov r15, r31
37e: f0 2d mov r31, r0
380: 0f 2e mov r0, r31
382: fc e6 ldi r31, 0x6C ; 108
384: cf 2e mov r12, r31
386: f2 e0 ldi r31, 0x02 ; 2
388: df 2e mov r13, r31
38a: f0 2d mov r31, r0
38c: d8 01 movw r26, r16
38e: 8c 91 ld r24, X
390: 89 83 std Y+1, r24 ; 0x01
392: 89 81 ldd r24, Y+1 ; 0x01
394: 8f 70 andi r24, 0x0F ; 15
396: 89 83 std Y+1, r24 ; 0x01
398: 89 81 ldd r24, Y+1 ; 0x01
39a: 82 95 swap r24
39c: 80 7f andi r24, 0xF0 ; 240
39e: 89 83 std Y+1, r24 ; 0x01
3a0: 99 81 ldd r25, Y+1 ; 0x01
3a2: f7 01 movw r30, r14
3a4: 80 81 ld r24, Z
3a6: 8f 70 andi r24, 0x0F ; 15
3a8: 89 2b or r24, r25
3aa: 89 83 std Y+1, r24 ; 0x01
3ac: 89 81 ldd r24, Y+1 ; 0x01
3ae: df d3 rcall .+1982 ; 0xb6e <UartInt_txByte>
3b0: f7 01 movw r30, r14
3b2: 81 81 ldd r24, Z+1 ; 0x01
3b4: 89 83 std Y+1, r24 ; 0x01
3b6: 89 81 ldd r24, Y+1 ; 0x01
3b8: 8f 70 andi r24, 0x0F ; 15
3ba: 89 83 std Y+1, r24 ; 0x01
3bc: 89 81 ldd r24, Y+1 ; 0x01
3be: 82 95 swap r24
3c0: 80 7f andi r24, 0xF0 ; 240
3c2: 89 83 std Y+1, r24 ; 0x01
3c4: 99 81 ldd r25, Y+1 ; 0x01
3c6: f8 01 movw r30, r16
3c8: 81 81 ldd r24, Z+1 ; 0x01
3ca: 8f 70 andi r24, 0x0F ; 15
3cc: 89 2b or r24, r25
3ce: 89 83 std Y+1, r24 ; 0x01
3d0: 89 81 ldd r24, Y+1 ; 0x01
3d2: cd d3 rcall .+1946 ; 0xb6e <UartInt_txByte>
3d4: 0e 5f subi r16, 0xFE ; 254
3d6: 1f 4f sbci r17, 0xFF ; 255
3d8: 82 e0 ldi r24, 0x02 ; 2
3da: 90 e0 ldi r25, 0x00 ; 0
3dc: e8 0e add r14, r24
3de: f9 1e adc r15, r25
3e0: 0c 15 cp r16, r12
3e2: 1d 05 cpc r17, r13
3e4: 99 f6 brne .-90 ; 0x38c <FrameMgr_processLine+0x6a>
3e6: 8f e0 ldi r24, 0x0F ; 15
3e8: c2 d3 rcall .+1924 ; 0xb6e <UartInt_txByte>
3ea: 80 91 75 00 lds r24, 0x0075
3ee: 8f 5f subi r24, 0xFF ; 255
3f0: 80 93 75 00 sts 0x0075, r24
3f4: 88 34 cpi r24, 0x48 ; 72
3f6: 60 f0 brcs .+24 ; 0x410 <FrameMgr_processLine+0xee>
3f8: 10 92 75 00 sts 0x0075, r1
3fc: 10 92 74 00 sts 0x0074, r1
400: 89 b7 in r24, 0x39 ; 57
402: 8b 7f andi r24, 0xFB ; 251
404: 89 bf out 0x39, r24 ; 57
406: 60 e0 ldi r22, 0x00 ; 0
408: 81 e1 ldi r24, 0x11 ; 17
40a: f3 d4 rcall .+2534 ; 0xdf2 <CamConfig_setCamReg>
40c: f7 d4 rcall .+2542 ; 0xdfc <CamConfig_sendFifoCmds>
40e: bf c0 rjmp .+382 ; 0x58e <__stack+0x12f>
410: 80 91 72 00 lds r24, 0x0072
414: 82 60 ori r24, 0x02 ; 2
416: 80 93 72 00 sts 0x0072, r24
41a: b9 c0 rjmp .+370 ; 0x58e <__stack+0x12f>
41c: 81 30 cpi r24, 0x01 ; 1
41e: 09 f0 breq .+2 ; 0x422 <FrameMgr_processLine+0x100>
420: b6 c0 rjmp .+364 ; 0x58e <__stack+0x12f>
422: b0 90 76 00 lds r11, 0x0076
426: eb 2c mov r14, r11
428: ff 24 eor r15, r15
42a: 37 01 movw r6, r14
42c: 08 94 sec
42e: 61 08 sbc r6, r1
430: 71 08 sbc r7, r1
432: 00 91 73 00 lds r16, 0x0073
436: 10 e0 ldi r17, 0x00 ; 0
438: 60 e0 ldi r22, 0x00 ; 0
43a: 71 e0 ldi r23, 0x01 ; 1
43c: 0f 2e mov r0, r31
43e: fc eb ldi r31, 0xBC ; 188
440: 2f 2e mov r2, r31
442: f1 e0 ldi r31, 0x01 ; 1
444: 3f 2e mov r3, r31
446: f0 2d mov r31, r0
448: d1 01 movw r26, r2
44a: 3c 91 ld r19, X
44c: 17 0f add r17, r23
44e: f1 01 movw r30, r2
450: 71 81 ldd r23, Z+1 ; 0x01
452: 82 e0 ldi r24, 0x02 ; 2
454: 90 e0 ldi r25, 0x00 ; 0
456: 28 0e add r2, r24
458: 39 1e adc r3, r25
45a: 67 0f add r22, r23
45c: 33 23 and r19, r19
45e: 09 f4 brne .+2 ; 0x462 <__stack+0x3>
460: 57 c0 rjmp .+174 ; 0x510 <__stack+0xb1>
462: 74 30 cpi r23, 0x04 ; 4
464: 08 f4 brcc .+2 ; 0x468 <__stack+0x9>
466: 54 c0 rjmp .+168 ; 0x510 <__stack+0xb1>
468: fa 01 movw r30, r20
46a: 20 e0 ldi r18, 0x00 ; 0
46c: 80 81 ld r24, Z
46e: 83 17 cp r24, r19
470: b1 f5 brne .+108 ; 0x4de <__stack+0x7f>
472: 87 81 ldd r24, Z+7 ; 0x07
474: 81 30 cpi r24, 0x01 ; 1
476: 99 f5 brne .+102 ; 0x4de <__stack+0x7f>
478: 0f 2e mov r0, r31
47a: f6 e0 ldi r31, 0x06 ; 6
47c: cf 2e mov r12, r31
47e: dd 24 eor r13, r13
480: f0 2d mov r31, r0
482: ce 0e add r12, r30
484: df 1e adc r13, r31
486: 86 81 ldd r24, Z+6 ; 0x06
488: 99 27 eor r25, r25
48a: 86 15 cp r24, r6
48c: 97 05 cpc r25, r7
48e: 39 f5 brne .+78 ; 0x4de <__stack+0x7f>
490: 2f 01 movw r4, r30
492: 08 94 sec
494: 41 1c adc r4, r1
496: 51 1c adc r5, r1
498: 81 81 ldd r24, Z+1 ; 0x01
49a: 88 24 eor r8, r8
49c: 99 24 eor r9, r9
49e: 68 94 set
4a0: 81 f8 bld r8, 1
4a2: 8e 0e add r8, r30
4a4: 9f 1e adc r9, r31
4a6: 92 81 ldd r25, Z+2 ; 0x02
4a8: 18 17 cp r17, r24
4aa: 10 f0 brcs .+4 ; 0x4b0 <__stack+0x51>
4ac: 91 17 cp r25, r17
4ae: 40 f4 brcc .+16 ; 0x4c0 <__stack+0x61>
4b0: 68 17 cp r22, r24
4b2: 10 f0 brcs .+4 ; 0x4b8 <__stack+0x59>
4b4: 96 17 cp r25, r22
4b6: 20 f4 brcc .+8 ; 0x4c0 <__stack+0x61>
4b8: 81 17 cp r24, r17
4ba: 88 f0 brcs .+34 ; 0x4de <__stack+0x7f>
4bc: 69 17 cp r22, r25
4be: 78 f0 brcs .+30 ; 0x4de <__stack+0x7f>
4c0: d2 01 movw r26, r4
4c2: 1c 93 st X, r17
4c4: d4 01 movw r26, r8
4c6: 6c 93 st X, r22
4c8: 83 81 ldd r24, Z+3 ; 0x03
4ca: 18 17 cp r17, r24
4cc: 08 f4 brcc .+2 ; 0x4d0 <__stack+0x71>
4ce: 13 83 std Z+3, r17 ; 0x03
4d0: 85 81 ldd r24, Z+5 ; 0x05
4d2: 86 17 cp r24, r22
4d4: 08 f4 brcc .+2 ; 0x4d8 <__stack+0x79>
4d6: 65 83 std Z+5, r22 ; 0x05
4d8: f6 01 movw r30, r12
4da: b0 82 st Z, r11
4dc: 19 c0 rjmp .+50 ; 0x510 <__stack+0xb1>
4de: 2f 5f subi r18, 0xFF ; 255
4e0: 28 30 cpi r18, 0x08 ; 8
4e2: 09 f4 brne .+2 ; 0x4e6 <__stack+0x87>
4e4: 50 c0 rjmp .+160 ; 0x586 <__stack+0x127>
4e6: 38 96 adiw r30, 0x08 ; 8
4e8: c1 cf rjmp .-126 ; 0x46c <__stack+0xd>
4ea: fa 01 movw r30, r20
4ec: 90 e0 ldi r25, 0x00 ; 0
4ee: 87 81 ldd r24, Z+7 ; 0x07
4f0: 88 23 and r24, r24
4f2: 21 f0 breq .+8 ; 0x4fc <__stack+0x9d>
4f4: 38 96 adiw r30, 0x08 ; 8
4f6: 9f 5f subi r25, 0xFF ; 255
4f8: 98 30 cpi r25, 0x08 ; 8
4fa: c9 f7 brne .-14 ; 0x4ee <__stack+0x8f>
4fc: 30 83 st Z, r19
4fe: 11 83 std Z+1, r17 ; 0x01
500: 62 83 std Z+2, r22 ; 0x02
502: 13 83 std Z+3, r17 ; 0x03
504: b4 82 std Z+4, r11 ; 0x04
506: 65 83 std Z+5, r22 ; 0x05
508: b6 82 std Z+6, r11 ; 0x06
50a: 81 e0 ldi r24, 0x01 ; 1
50c: 87 83 std Z+7, r24 ; 0x07
50e: 0f 5f subi r16, 0xFF ; 255
510: 60 3b cpi r22, 0xB0 ; 176
512: 08 f4 brcc .+2 ; 0x516 <__stack+0xb7>
514: 99 cf rjmp .-206 ; 0x448 <FrameMgr_processLine+0x126>
516: 00 93 73 00 sts 0x0073, r16
51a: c7 01 movw r24, r14
51c: 87 70 andi r24, 0x07 ; 7
51e: 90 70 andi r25, 0x00 ; 0
520: 07 97 sbiw r24, 0x07 ; 7
522: e9 f4 brne .+58 ; 0x55e <__stack+0xff>
524: 60 e0 ldi r22, 0x00 ; 0
526: fa 01 movw r30, r20
528: 87 81 ldd r24, Z+7 ; 0x07
52a: 81 30 cpi r24, 0x01 ; 1
52c: 81 f4 brne .+32 ; 0x54e <__stack+0xef>
52e: 86 81 ldd r24, Z+6 ; 0x06
530: 28 2f mov r18, r24
532: 33 27 eor r19, r19
534: 84 81 ldd r24, Z+4 ; 0x04
536: d9 01 movw r26, r18
538: a8 1b sub r26, r24
53a: b1 09 sbc r27, r1
53c: 13 97 sbiw r26, 0x03 ; 3
53e: 3c f4 brge .+14 ; 0x54e <__stack+0xef>
540: c7 01 movw r24, r14
542: 82 1b sub r24, r18
544: 93 0b sbc r25, r19
546: 03 97 sbiw r24, 0x03 ; 3
548: 14 f0 brlt .+4 ; 0x54e <__stack+0xef>
54a: 17 82 std Z+7, r1 ; 0x07
54c: 01 50 subi r16, 0x01 ; 1
54e: 6f 5f subi r22, 0xFF ; 255
550: 68 30 cpi r22, 0x08 ; 8
552: 19 f0 breq .+6 ; 0x55a <__stack+0xfb>
554: 48 5f subi r20, 0xF8 ; 248
556: 5f 4f sbci r21, 0xFF ; 255
558: e6 cf rjmp .-52 ; 0x526 <__stack+0xc7>
55a: 00 93 73 00 sts 0x0073, r16
55e: 8b 2d mov r24, r11
560: 8f 5f subi r24, 0xFF ; 255
562: 80 93 76 00 sts 0x0076, r24
566: 80 39 cpi r24, 0x90 ; 144
568: 41 f4 brne .+16 ; 0x57a <__stack+0x11b>
56a: 80 e2 ldi r24, 0x20 ; 32
56c: 0a de rcall .-1004 ; 0x182 <Exec_writeEventFifo>
56e: 89 b7 in r24, 0x39 ; 57
570: 8b 7f andi r24, 0xFB ; 251
572: 89 bf out 0x39, r24 ; 57
574: 10 92 76 00 sts 0x0076, r1
578: 0a c0 rjmp .+20 ; 0x58e <__stack+0x12f>
57a: 80 91 72 00 lds r24, 0x0072
57e: 82 60 ori r24, 0x02 ; 2
580: 80 93 72 00 sts 0x0072, r24
584: 04 c0 rjmp .+8 ; 0x58e <__stack+0x12f>
586: 08 30 cpi r16, 0x08 ; 8
588: 08 f4 brcc .+2 ; 0x58c <__stack+0x12d>
58a: af cf rjmp .-162 ; 0x4ea <__stack+0x8b>
58c: c1 cf rjmp .-126 ; 0x510 <__stack+0xb1>
58e: 21 96 adiw r28, 0x01 ; 1
590: 0f b6 in r0, 0x3f ; 63
592: f8 94 cli
594: de bf out 0x3e, r29 ; 62
596: 0f be out 0x3f, r0 ; 63
598: cd bf out 0x3d, r28 ; 61
59a: df 91 pop r29
59c: cf 91 pop r28
59e: 1f 91 pop r17
5a0: 0f 91 pop r16
5a2: ff 90 pop r15
5a4: ef 90 pop r14
5a6: df 90 pop r13
5a8: cf 90 pop r12
5aa: bf 90 pop r11
5ac: 9f 90 pop r9
5ae: 8f 90 pop r8
5b0: 7f 90 pop r7
5b2: 6f 90 pop r6
5b4: 5f 90 pop r5
5b6: 4f 90 pop r4
5b8: 3f 90 pop r3
5ba: 2f 90 pop r2
5bc: 08 95 ret
 
000005e2 <FrameMgr_init>:
5e2: 80 e4 ldi r24, 0x40 ; 64
5e4: e8 e7 ldi r30, 0x78 ; 120
5e6: f0 e0 ldi r31, 0x00 ; 0
5e8: 11 92 st Z+, r1
5ea: 8a 95 dec r24
5ec: e9 f7 brne .-6 ; 0x5e8 <FrameMgr_init+0x6>
5ee: 08 95 ret
000005be <FrameMgr_init>:
5be: 80 e4 ldi r24, 0x40 ; 64
5c0: e8 e7 ldi r30, 0x78 ; 120
5c2: f0 e0 ldi r31, 0x00 ; 0
5c4: 11 92 st Z+, r1
5c6: 8a 95 dec r24
5c8: e9 f7 brne .-6 ; 0x5c4 <FrameMgr_init+0x6>
5ca: 08 95 ret
 
000005f0 <FrameMgr_acquireLine>:
5f0: 80 91 74 00 lds r24, 0x0074
5f4: 82 30 cpi r24, 0x02 ; 2
5f6: 49 f5 brne .+82 ; 0x64a <FrameMgr_acquireLine+0x5a>
5f8: 80 91 75 00 lds r24, 0x0075
5fc: 28 2f mov r18, r24
5fe: 22 0f add r18, r18
600: 80 eb ldi r24, 0xB0 ; 176
602: ec eb ldi r30, 0xBC ; 188
604: f1 e0 ldi r31, 0x01 ; 1
606: 98 2f mov r25, r24
608: 11 92 st Z+, r1
60a: 9a 95 dec r25
60c: e9 f7 brne .-6 ; 0x608 <FrameMgr_acquireLine+0x18>
60e: ec e0 ldi r30, 0x0C ; 12
610: f1 e0 ldi r31, 0x01 ; 1
612: 11 92 st Z+, r1
614: 8a 95 dec r24
616: e9 f7 brne .-6 ; 0x612 <FrameMgr_acquireLine+0x22>
618: 82 9b sbis 0x10, 2 ; 16
61a: fe cf rjmp .-4 ; 0x618 <FrameMgr_acquireLine+0x28>
61c: 82 9b sbis 0x10, 2 ; 16
61e: 07 c0 rjmp .+14 ; 0x62e <FrameMgr_acquireLine+0x3e>
620: fd cf rjmp .-6 ; 0x61c <FrameMgr_acquireLine+0x2c>
622: 90 e0 ldi r25, 0x00 ; 0
624: 84 9b sbis 0x10, 4 ; 16
626: fe cf rjmp .-4 ; 0x624 <FrameMgr_acquireLine+0x34>
628: 84 9b sbis 0x10, 4 ; 16
62a: 04 c0 rjmp .+8 ; 0x634 <FrameMgr_acquireLine+0x44>
62c: fd cf rjmp .-6 ; 0x628 <FrameMgr_acquireLine+0x38>
62e: 22 23 and r18, r18
630: c1 f7 brne .-16 ; 0x622 <FrameMgr_acquireLine+0x32>
632: 05 c0 rjmp .+10 ; 0x63e <FrameMgr_acquireLine+0x4e>
634: 91 50 subi r25, 0x01 ; 1
636: 82 2f mov r24, r18
638: 81 95 neg r24
63a: 98 17 cp r25, r24
63c: 99 f7 brne .-26 ; 0x624 <FrameMgr_acquireLine+0x34>
63e: 6c e0 ldi r22, 0x0C ; 12
640: 71 e0 ldi r23, 0x01 ; 1
642: 8c eb ldi r24, 0xBC ; 188
644: 91 e0 ldi r25, 0x01 ; 1
646: c3 d4 rcall .+2438 ; 0xfce <CamIntAsm_acquireDumpLine>
648: 08 95 ret
64a: 81 30 cpi r24, 0x01 ; 1
64c: 39 f4 brne .+14 ; 0x65c <FrameMgr_acquireLine+0x6c>
64e: 84 99 sbic 0x10, 4 ; 16
650: fe cf rjmp .-4 ; 0x64e <FrameMgr_acquireLine+0x5e>
652: 60 e0 ldi r22, 0x00 ; 0
654: 73 e0 ldi r23, 0x03 ; 3
656: 8c eb ldi r24, 0xBC ; 188
658: 91 e0 ldi r25, 0x01 ; 1
65a: 72 d4 rcall .+2276 ; 0xf40 <CamIntAsm_acquireTrackingLine>
65c: 08 95 ret
000005cc <FrameMgr_acquireLine>:
5cc: 80 91 74 00 lds r24, 0x0074
5d0: 82 30 cpi r24, 0x02 ; 2
5d2: 31 f5 brne .+76 ; 0x620 <FrameMgr_acquireLine+0x54>
5d4: 80 91 75 00 lds r24, 0x0075
5d8: 98 2f mov r25, r24
5da: 99 0f add r25, r25
5dc: 80 eb ldi r24, 0xB0 ; 176
5de: ec eb ldi r30, 0xBC ; 188
5e0: f1 e0 ldi r31, 0x01 ; 1
5e2: 28 2f mov r18, r24
5e4: 11 92 st Z+, r1
5e6: 2a 95 dec r18
5e8: e9 f7 brne .-6 ; 0x5e4 <FrameMgr_acquireLine+0x18>
5ea: ec e0 ldi r30, 0x0C ; 12
5ec: f1 e0 ldi r31, 0x01 ; 1
5ee: 11 92 st Z+, r1
5f0: 8a 95 dec r24
5f2: e9 f7 brne .-6 ; 0x5ee <FrameMgr_acquireLine+0x22>
5f4: 82 9b sbis 0x10, 2 ; 16
5f6: fe cf rjmp .-4 ; 0x5f4 <FrameMgr_acquireLine+0x28>
5f8: 82 9b sbis 0x10, 2 ; 16
5fa: 07 c0 rjmp .+14 ; 0x60a <FrameMgr_acquireLine+0x3e>
5fc: fd cf rjmp .-6 ; 0x5f8 <FrameMgr_acquireLine+0x2c>
5fe: 84 9b sbis 0x10, 4 ; 16
600: fe cf rjmp .-4 ; 0x5fe <FrameMgr_acquireLine+0x32>
602: 91 50 subi r25, 0x01 ; 1
604: 84 9b sbis 0x10, 4 ; 16
606: 04 c0 rjmp .+8 ; 0x610 <FrameMgr_acquireLine+0x44>
608: fd cf rjmp .-6 ; 0x604 <FrameMgr_acquireLine+0x38>
60a: 99 23 and r25, r25
60c: c1 f7 brne .-16 ; 0x5fe <FrameMgr_acquireLine+0x32>
60e: 02 c0 rjmp .+4 ; 0x614 <FrameMgr_acquireLine+0x48>
610: 99 23 and r25, r25
612: a9 f7 brne .-22 ; 0x5fe <FrameMgr_acquireLine+0x32>
614: 6c e0 ldi r22, 0x0C ; 12
616: 71 e0 ldi r23, 0x01 ; 1
618: 8c eb ldi r24, 0xBC ; 188
61a: 91 e0 ldi r25, 0x01 ; 1
61c: e4 d4 rcall .+2504 ; 0xfe6 <CamIntAsm_acquireDumpLine>
61e: 08 95 ret
620: 81 30 cpi r24, 0x01 ; 1
622: 39 f4 brne .+14 ; 0x632 <FrameMgr_acquireLine+0x66>
624: 84 99 sbic 0x10, 4 ; 16
626: fe cf rjmp .-4 ; 0x624 <FrameMgr_acquireLine+0x58>
628: 60 e0 ldi r22, 0x00 ; 0
62a: 73 e0 ldi r23, 0x03 ; 3
62c: 8c eb ldi r24, 0xBC ; 188
62e: 91 e0 ldi r25, 0x01 ; 1
630: 93 d4 rcall .+2342 ; 0xf58 <CamIntAsm_acquireTrackingLine>
632: 08 95 ret
 
0000065e <FrameMgr_acquireFrame>:
65e: 80 91 74 00 lds r24, 0x0074
662: 81 30 cpi r24, 0x01 ; 1
664: a9 f4 brne .+42 ; 0x690 <FrameMgr_acquireFrame+0x32>
666: 10 92 76 00 sts 0x0076, r1
66a: 80 91 73 00 lds r24, 0x0073
66e: 80 93 77 00 sts 0x0077, r24
672: 10 92 73 00 sts 0x0073, r1
676: 80 e4 ldi r24, 0x40 ; 64
678: e8 e7 ldi r30, 0x78 ; 120
67a: f0 e0 ldi r31, 0x00 ; 0
67c: 11 92 st Z+, r1
67e: 8a 95 dec r24
680: e9 f7 brne .-6 ; 0x67c <FrameMgr_acquireFrame+0x1e>
682: 82 9b sbis 0x10, 2 ; 16
684: fe cf rjmp .-4 ; 0x682 <FrameMgr_acquireFrame+0x24>
686: 60 e0 ldi r22, 0x00 ; 0
688: 73 e0 ldi r23, 0x03 ; 3
68a: 8c eb ldi r24, 0xBC ; 188
68c: 91 e0 ldi r25, 0x01 ; 1
68e: 58 d4 rcall .+2224 ; 0xf40 <CamIntAsm_acquireTrackingLine>
690: 08 95 ret
00000634 <FrameMgr_acquireFrame>:
634: 80 91 74 00 lds r24, 0x0074
638: 81 30 cpi r24, 0x01 ; 1
63a: a9 f4 brne .+42 ; 0x666 <FrameMgr_acquireFrame+0x32>
63c: 10 92 76 00 sts 0x0076, r1
640: 80 91 73 00 lds r24, 0x0073
644: 80 93 77 00 sts 0x0077, r24
648: 10 92 73 00 sts 0x0073, r1
64c: 80 e4 ldi r24, 0x40 ; 64
64e: e8 e7 ldi r30, 0x78 ; 120
650: f0 e0 ldi r31, 0x00 ; 0
652: 11 92 st Z+, r1
654: 8a 95 dec r24
656: e9 f7 brne .-6 ; 0x652 <FrameMgr_acquireFrame+0x1e>
658: 82 9b sbis 0x10, 2 ; 16
65a: fe cf rjmp .-4 ; 0x658 <FrameMgr_acquireFrame+0x24>
65c: 60 e0 ldi r22, 0x00 ; 0
65e: 73 e0 ldi r23, 0x03 ; 3
660: 8c eb ldi r24, 0xBC ; 188
662: 91 e0 ldi r25, 0x01 ; 1
664: 79 d4 rcall .+2290 ; 0xf58 <CamIntAsm_acquireTrackingLine>
666: 08 95 ret
 
00000692 <FrameMgr_dispatchEvent>:
692: 84 30 cpi r24, 0x04 ; 4
694: 19 f1 breq .+70 ; 0x6dc <FrameMgr_dispatchEvent+0x4a>
696: 85 30 cpi r24, 0x05 ; 5
698: 28 f4 brcc .+10 ; 0x6a4 <FrameMgr_dispatchEvent+0x12>
69a: 81 30 cpi r24, 0x01 ; 1
69c: 09 f1 breq .+66 ; 0x6e0 <FrameMgr_dispatchEvent+0x4e>
69e: 82 30 cpi r24, 0x02 ; 2
6a0: 41 f5 brne .+80 ; 0x6f2 <FrameMgr_dispatchEvent+0x60>
6a2: 07 c0 rjmp .+14 ; 0x6b2 <FrameMgr_dispatchEvent+0x20>
6a4: 80 38 cpi r24, 0x80 ; 128
6a6: 99 f0 breq .+38 ; 0x6ce <FrameMgr_dispatchEvent+0x3c>
6a8: 81 38 cpi r24, 0x81 ; 129
6aa: 09 f1 breq .+66 ; 0x6ee <FrameMgr_dispatchEvent+0x5c>
6ac: 80 32 cpi r24, 0x20 ; 32
6ae: 09 f5 brne .+66 ; 0x6f2 <FrameMgr_dispatchEvent+0x60>
6b0: 13 c0 rjmp .+38 ; 0x6d8 <FrameMgr_dispatchEvent+0x46>
6b2: 61 e0 ldi r22, 0x01 ; 1
6b4: 81 e1 ldi r24, 0x11 ; 17
6b6: 9b d3 rcall .+1846 ; 0xdee <CamConfig_setCamReg>
6b8: 9f d3 rcall .+1854 ; 0xdf8 <CamConfig_sendFifoCmds>
6ba: 88 ee ldi r24, 0xE8 ; 232
6bc: 93 e0 ldi r25, 0x03 ; 3
6be: e7 d3 rcall .+1998 ; 0xe8e <Utility_delay>
6c0: 10 92 75 00 sts 0x0075, r1
6c4: 82 e0 ldi r24, 0x02 ; 2
6c6: 80 93 74 00 sts 0x0074, r24
6ca: 92 df rcall .-220 ; 0x5f0 <FrameMgr_acquireLine>
6cc: 08 95 ret
6ce: 81 e0 ldi r24, 0x01 ; 1
6d0: 80 93 74 00 sts 0x0074, r24
6d4: c4 df rcall .-120 ; 0x65e <FrameMgr_acquireFrame>
6d6: 08 95 ret
6d8: cb dd rcall .-1130 ; 0x270 <FrameMgr_processFrame>
6da: 08 95 ret
6dc: c0 df rcall .-128 ; 0x65e <FrameMgr_acquireFrame>
6de: 08 95 ret
6e0: 80 91 74 00 lds r24, 0x0074
6e4: 88 23 and r24, r24
6e6: 29 f0 breq .+10 ; 0x6f2 <FrameMgr_dispatchEvent+0x60>
6e8: 84 e0 ldi r24, 0x04 ; 4
6ea: 4b dd rcall .-1386 ; 0x182 <Exec_writeEventFifo>
6ec: 08 95 ret
6ee: 10 92 74 00 sts 0x0074, r1
6f2: 08 95 ret
00000668 <FrameMgr_dispatchEvent>:
668: 84 30 cpi r24, 0x04 ; 4
66a: 19 f1 breq .+70 ; 0x6b2 <FrameMgr_dispatchEvent+0x4a>
66c: 85 30 cpi r24, 0x05 ; 5
66e: 28 f4 brcc .+10 ; 0x67a <FrameMgr_dispatchEvent+0x12>
670: 81 30 cpi r24, 0x01 ; 1
672: 09 f1 breq .+66 ; 0x6b6 <FrameMgr_dispatchEvent+0x4e>
674: 82 30 cpi r24, 0x02 ; 2
676: 41 f5 brne .+80 ; 0x6c8 <FrameMgr_dispatchEvent+0x60>
678: 07 c0 rjmp .+14 ; 0x688 <FrameMgr_dispatchEvent+0x20>
67a: 80 38 cpi r24, 0x80 ; 128
67c: 99 f0 breq .+38 ; 0x6a4 <FrameMgr_dispatchEvent+0x3c>
67e: 81 38 cpi r24, 0x81 ; 129
680: 09 f1 breq .+66 ; 0x6c4 <FrameMgr_dispatchEvent+0x5c>
682: 80 32 cpi r24, 0x20 ; 32
684: 09 f5 brne .+66 ; 0x6c8 <FrameMgr_dispatchEvent+0x60>
686: 13 c0 rjmp .+38 ; 0x6ae <FrameMgr_dispatchEvent+0x46>
688: 61 e0 ldi r22, 0x01 ; 1
68a: 81 e1 ldi r24, 0x11 ; 17
68c: b2 d3 rcall .+1892 ; 0xdf2 <CamConfig_setCamReg>
68e: b6 d3 rcall .+1900 ; 0xdfc <CamConfig_sendFifoCmds>
690: 88 ee ldi r24, 0xE8 ; 232
692: 93 e0 ldi r25, 0x03 ; 3
694: 08 d4 rcall .+2064 ; 0xea6 <Utility_delay>
696: 10 92 75 00 sts 0x0075, r1
69a: 82 e0 ldi r24, 0x02 ; 2
69c: 80 93 74 00 sts 0x0074, r24
6a0: 95 df rcall .-214 ; 0x5cc <FrameMgr_acquireLine>
6a2: 08 95 ret
6a4: 81 e0 ldi r24, 0x01 ; 1
6a6: 80 93 74 00 sts 0x0074, r24
6aa: c4 df rcall .-120 ; 0x634 <FrameMgr_acquireFrame>
6ac: 08 95 ret
6ae: e0 dd rcall .-1088 ; 0x270 <FrameMgr_processFrame>
6b0: 08 95 ret
6b2: c0 df rcall .-128 ; 0x634 <FrameMgr_acquireFrame>
6b4: 08 95 ret
6b6: 80 91 74 00 lds r24, 0x0074
6ba: 88 23 and r24, r24
6bc: 29 f0 breq .+10 ; 0x6c8 <FrameMgr_dispatchEvent+0x60>
6be: 84 e0 ldi r24, 0x04 ; 4
6c0: 60 dd rcall .-1344 ; 0x182 <Exec_writeEventFifo>
6c2: 08 95 ret
6c4: 10 92 74 00 sts 0x0074, r1
6c8: 08 95 ret
 
000006f4 <UIMgr_writeBufferToTxFifo>:
6f4: dc 01 movw r26, r24
6f6: 86 2f mov r24, r22
6f8: 66 23 and r22, r22
6fa: c9 f0 breq .+50 ; 0x72e <UIMgr_writeBufferToTxFifo+0x3a>
6fc: f8 94 cli
6fe: 61 50 subi r22, 0x01 ; 1
700: 6f 3f cpi r22, 0xFF ; 255
702: a1 f0 breq .+40 ; 0x72c <UIMgr_writeBufferToTxFifo+0x38>
704: 26 2f mov r18, r22
706: 44 e9 ldi r20, 0x94 ; 148
708: 52 e0 ldi r21, 0x02 ; 2
70a: 86 1b sub r24, r22
70c: 68 2f mov r22, r24
70e: 62 50 subi r22, 0x02 ; 2
710: 80 91 ba 00 lds r24, 0x00BA
714: fa 01 movw r30, r20
716: e8 0f add r30, r24
718: f1 1d adc r31, r1
71a: 9d 91 ld r25, X+
71c: 90 83 st Z, r25
71e: 8f 5f subi r24, 0xFF ; 255
720: 8f 73 andi r24, 0x3F ; 63
722: 80 93 ba 00 sts 0x00BA, r24
726: 21 50 subi r18, 0x01 ; 1
728: 62 17 cp r22, r18
72a: 91 f7 brne .-28 ; 0x710 <UIMgr_writeBufferToTxFifo+0x1c>
72c: 78 94 sei
72e: 08 95 ret
 
00000730 <UIMgr_readTxFifo>:
730: f8 94 cli
732: 90 91 bb 00 lds r25, 0x00BB
736: e4 e9 ldi r30, 0x94 ; 148
738: f2 e0 ldi r31, 0x02 ; 2
73a: e9 0f add r30, r25
73c: f1 1d adc r31, r1
73e: 80 81 ld r24, Z
740: 9f 5f subi r25, 0xFF ; 255
742: 9f 73 andi r25, 0x3F ; 63
744: 90 93 bb 00 sts 0x00BB, r25
748: 78 94 sei
74a: 99 27 eor r25, r25
74c: 08 95 ret
 
0000074e <UIMgr_writeTxFifo>:
74e: f8 94 cli
750: 90 91 ba 00 lds r25, 0x00BA
754: e4 e9 ldi r30, 0x94 ; 148
756: f2 e0 ldi r31, 0x02 ; 2
758: e9 0f add r30, r25
75a: f1 1d adc r31, r1
75c: 80 83 st Z, r24
75e: 9f 5f subi r25, 0xFF ; 255
760: 9f 73 andi r25, 0x3F ; 63
762: 90 93 ba 00 sts 0x00BA, r25
766: 78 94 sei
768: 08 95 ret
 
0000076a <UIMgr_flushTxBuffer>:
76a: 90 91 ba 00 lds r25, 0x00BA
76e: 80 91 bb 00 lds r24, 0x00BB
772: 98 17 cp r25, r24
774: 41 f0 breq .+16 ; 0x786 <UIMgr_flushTxBuffer+0x1c>
776: dc df rcall .-72 ; 0x730 <UIMgr_readTxFifo>
778: f5 d1 rcall .+1002 ; 0xb64 <UartInt_txByte>
77a: 90 91 ba 00 lds r25, 0x00BA
77e: 80 91 bb 00 lds r24, 0x00BB
782: 98 17 cp r25, r24
784: c1 f7 brne .-16 ; 0x776 <UIMgr_flushTxBuffer+0xc>
786: 08 95 ret
 
00000788 <UIMgr_txBuffer>:
788: 0f 93 push r16
78a: 1f 93 push r17
78c: cf 93 push r28
78e: df 93 push r29
790: ec 01 movw r28, r24
792: 86 2f mov r24, r22
794: 61 50 subi r22, 0x01 ; 1
796: 6f 3f cpi r22, 0xFF ; 255
798: 49 f0 breq .+18 ; 0x7ac <UIMgr_txBuffer+0x24>
79a: 16 2f mov r17, r22
79c: 86 1b sub r24, r22
79e: 08 2f mov r16, r24
7a0: 02 50 subi r16, 0x02 ; 2
7a2: 89 91 ld r24, Y+
7a4: df d1 rcall .+958 ; 0xb64 <UartInt_txByte>
7a6: 11 50 subi r17, 0x01 ; 1
7a8: 01 17 cp r16, r17
7aa: d9 f7 brne .-10 ; 0x7a2 <UIMgr_txBuffer+0x1a>
7ac: df 91 pop r29
7ae: cf 91 pop r28
7b0: 1f 91 pop r17
7b2: 0f 91 pop r16
7b4: 08 95 ret
 
000007b6 <UIMgr_transmitPendingData>:
7b6: 90 91 ba 00 lds r25, 0x00BA
7ba: 80 91 bb 00 lds r24, 0x00BB
7be: 98 17 cp r25, r24
7c0: 11 f0 breq .+4 ; 0x7c6 <UIMgr_transmitPendingData+0x10>
7c2: b6 df rcall .-148 ; 0x730 <UIMgr_readTxFifo>
7c4: cf d1 rcall .+926 ; 0xb64 <UartInt_txByte>
7c6: 08 95 ret
 
000007c8 <UIMgr_convertTokenToCmd>:
7c8: 90 91 bf 00 lds r25, 0x00BF
7cc: 90 35 cpi r25, 0x50 ; 80
7ce: 41 f4 brne .+16 ; 0x7e0 <UIMgr_convertTokenToCmd+0x18>
7d0: 80 91 c0 00 lds r24, 0x00C0
7d4: 87 34 cpi r24, 0x47 ; 71
7d6: 09 f5 brne .+66 ; 0x81a <UIMgr_convertTokenToCmd+0x52>
7d8: 81 e0 ldi r24, 0x01 ; 1
7da: 80 93 62 00 sts 0x0062, r24
7de: 48 c0 rjmp .+144 ; 0x870 <UIMgr_convertTokenToCmd+0xa8>
7e0: 97 34 cpi r25, 0x47 ; 71
7e2: 39 f4 brne .+14 ; 0x7f2 <UIMgr_convertTokenToCmd+0x2a>
7e4: 80 91 c0 00 lds r24, 0x00C0
7e8: 86 35 cpi r24, 0x56 ; 86
7ea: 09 f5 brne .+66 ; 0x82e <UIMgr_convertTokenToCmd+0x66>
7ec: 10 92 62 00 sts 0x0062, r1
7f0: 3f c0 rjmp .+126 ; 0x870 <UIMgr_convertTokenToCmd+0xa8>
7f2: 94 34 cpi r25, 0x44 ; 68
7f4: 41 f4 brne .+16 ; 0x806 <UIMgr_convertTokenToCmd+0x3e>
7f6: 80 91 c0 00 lds r24, 0x00C0
7fa: 86 34 cpi r24, 0x46 ; 70
7fc: 11 f5 brne .+68 ; 0x842 <UIMgr_convertTokenToCmd+0x7a>
7fe: 83 e0 ldi r24, 0x03 ; 3
800: 80 93 62 00 sts 0x0062, r24
804: 35 c0 rjmp .+106 ; 0x870 <UIMgr_convertTokenToCmd+0xa8>
806: 93 34 cpi r25, 0x43 ; 67
808: 41 f4 brne .+16 ; 0x81a <UIMgr_convertTokenToCmd+0x52>
80a: 80 91 c0 00 lds r24, 0x00C0
80e: 82 35 cpi r24, 0x52 ; 82
810: 11 f5 brne .+68 ; 0x856 <UIMgr_convertTokenToCmd+0x8e>
812: 82 e0 ldi r24, 0x02 ; 2
814: 80 93 62 00 sts 0x0062, r24
818: 2b c0 rjmp .+86 ; 0x870 <UIMgr_convertTokenToCmd+0xa8>
81a: 95 34 cpi r25, 0x45 ; 69
81c: 41 f4 brne .+16 ; 0x82e <UIMgr_convertTokenToCmd+0x66>
81e: 80 91 c0 00 lds r24, 0x00C0
822: 84 35 cpi r24, 0x54 ; 84
824: 11 f5 brne .+68 ; 0x86a <UIMgr_convertTokenToCmd+0xa2>
826: 84 e0 ldi r24, 0x04 ; 4
828: 80 93 62 00 sts 0x0062, r24
82c: 21 c0 rjmp .+66 ; 0x870 <UIMgr_convertTokenToCmd+0xa8>
82e: 93 35 cpi r25, 0x53 ; 83
830: 41 f4 brne .+16 ; 0x842 <UIMgr_convertTokenToCmd+0x7a>
832: 80 91 c0 00 lds r24, 0x00C0
836: 8d 34 cpi r24, 0x4D ; 77
838: c1 f4 brne .+48 ; 0x86a <UIMgr_convertTokenToCmd+0xa2>
83a: 86 e0 ldi r24, 0x06 ; 6
83c: 80 93 62 00 sts 0x0062, r24
840: 17 c0 rjmp .+46 ; 0x870 <UIMgr_convertTokenToCmd+0xa8>
842: 94 34 cpi r25, 0x44 ; 68
844: 41 f4 brne .+16 ; 0x856 <UIMgr_convertTokenToCmd+0x8e>
846: 80 91 c0 00 lds r24, 0x00C0
84a: 84 35 cpi r24, 0x54 ; 84
84c: 71 f4 brne .+28 ; 0x86a <UIMgr_convertTokenToCmd+0xa2>
84e: 85 e0 ldi r24, 0x05 ; 5
850: 80 93 62 00 sts 0x0062, r24
854: 0d c0 rjmp .+26 ; 0x870 <UIMgr_convertTokenToCmd+0xa8>
856: 92 35 cpi r25, 0x52 ; 82
858: 41 f4 brne .+16 ; 0x86a <UIMgr_convertTokenToCmd+0xa2>
85a: 80 91 c0 00 lds r24, 0x00C0
85e: 83 35 cpi r24, 0x53 ; 83
860: 21 f4 brne .+8 ; 0x86a <UIMgr_convertTokenToCmd+0xa2>
862: 87 e0 ldi r24, 0x07 ; 7
864: 80 93 62 00 sts 0x0062, r24
868: 03 c0 rjmp .+6 ; 0x870 <UIMgr_convertTokenToCmd+0xa8>
86a: 89 e0 ldi r24, 0x09 ; 9
86c: 80 93 62 00 sts 0x0062, r24
870: 83 e0 ldi r24, 0x03 ; 3
872: ef eb ldi r30, 0xBF ; 191
874: f0 e0 ldi r31, 0x00 ; 0
876: 11 92 st Z+, r1
878: 8a 95 dec r24
87a: e9 f7 brne .-6 ; 0x876 <UIMgr_convertTokenToCmd+0xae>
87c: 10 92 be 00 sts 0x00BE, r1
880: 10 92 bd 00 sts 0x00BD, r1
884: 08 95 ret
 
00000886 <UIMgr_init>:
886: 10 92 bf 00 sts 0x00BF, r1
88a: 10 92 c0 00 sts 0x00C0, r1
88e: 10 92 c1 00 sts 0x00C1, r1
892: 10 92 c2 00 sts 0x00C2, r1
896: 80 e4 ldi r24, 0x40 ; 64
898: e3 ec ldi r30, 0xC3 ; 195
89a: f0 e0 ldi r31, 0x00 ; 0
89c: 98 2f mov r25, r24
89e: 11 92 st Z+, r1
8a0: 9a 95 dec r25
8a2: e9 f7 brne .-6 ; 0x89e <UIMgr_init+0x18>
8a4: e4 e9 ldi r30, 0x94 ; 148
8a6: f2 e0 ldi r31, 0x02 ; 2
8a8: 11 92 st Z+, r1
8aa: 8a 95 dec r24
8ac: e9 f7 brne .-6 ; 0x8a8 <UIMgr_init+0x22>
8ae: 80 e2 ldi r24, 0x20 ; 32
8b0: e4 e7 ldi r30, 0x74 ; 116
8b2: f2 e0 ldi r31, 0x02 ; 2
8b4: 11 92 st Z+, r1
8b6: 8a 95 dec r24
8b8: e9 f7 brne .-6 ; 0x8b4 <UIMgr_init+0x2e>
8ba: 08 95 ret
 
000008bc <UIMgr_convertTokenToValue>:
8bc: 8f eb ldi r24, 0xBF ; 191
8be: 90 e0 ldi r25, 0x00 ; 0
8c0: b0 d3 rcall .+1888 ; 0x1022 <atoi>
8c2: 9c 01 movw r18, r24
8c4: 8f 3f cpi r24, 0xFF ; 255
8c6: 91 05 cpc r25, r1
8c8: 69 f0 breq .+26 ; 0x8e4 <UIMgr_convertTokenToValue+0x28>
8ca: 60 f0 brcs .+24 ; 0x8e4 <UIMgr_convertTokenToValue+0x28>
8cc: 89 e0 ldi r24, 0x09 ; 9
8ce: 80 93 62 00 sts 0x0062, r24
8d2: 80 91 bc 00 lds r24, 0x00BC
8d6: e3 ec ldi r30, 0xC3 ; 195
8d8: f0 e0 ldi r31, 0x00 ; 0
8da: e8 0f add r30, r24
8dc: f1 1d adc r31, r1
8de: 8f ef ldi r24, 0xFF ; 255
8e0: 80 83 st Z, r24
8e2: 07 c0 rjmp .+14 ; 0x8f2 <UIMgr_convertTokenToValue+0x36>
8e4: 80 91 bc 00 lds r24, 0x00BC
8e8: e3 ec ldi r30, 0xC3 ; 195
8ea: f0 e0 ldi r31, 0x00 ; 0
8ec: e8 0f add r30, r24
8ee: f1 1d adc r31, r1
8f0: 20 83 st Z, r18
8f2: 83 e0 ldi r24, 0x03 ; 3
8f4: ef eb ldi r30, 0xBF ; 191
8f6: f0 e0 ldi r31, 0x00 ; 0
8f8: 11 92 st Z+, r1
8fa: 8a 95 dec r24
8fc: e9 f7 brne .-6 ; 0x8f8 <UIMgr_convertTokenToValue+0x3c>
8fe: 10 92 be 00 sts 0x00BE, r1
902: 10 92 bd 00 sts 0x00BD, r1
906: 08 95 ret
 
00000908 <UIMgr_processReceivedData>:
908: ff 92 push r15
90a: 0f 93 push r16
90c: 1f 93 push r17
90e: cf 93 push r28
910: df 93 push r29
912: 0f 2e mov r0, r31
914: f9 e0 ldi r31, 0x09 ; 9
916: ff 2e mov r15, r31
918: f0 2d mov r31, r0
91a: ff c0 rjmp .+510 ; 0xb1a <UIMgr_processReceivedData+0x212>
91c: f8 94 cli
91e: e2 2f mov r30, r18
920: ff 27 eor r31, r31
922: ec 58 subi r30, 0x8C ; 140
924: fd 4f sbci r31, 0xFD ; 253
926: 90 81 ld r25, Z
928: 82 2f mov r24, r18
92a: 8f 5f subi r24, 0xFF ; 255
92c: 8f 71 andi r24, 0x1F ; 31
92e: 80 93 b9 00 sts 0x00B9, r24
932: 78 94 sei
934: 9d 30 cpi r25, 0x0D ; 13
936: 09 f0 breq .+2 ; 0x93a <UIMgr_processReceivedData+0x32>
938: b1 c0 rjmp .+354 ; 0xa9c <UIMgr_processReceivedData+0x194>
93a: 80 91 bc 00 lds r24, 0x00BC
93e: 88 23 and r24, r24
940: 11 f4 brne .+4 ; 0x946 <UIMgr_processReceivedData+0x3e>
942: 42 df rcall .-380 ; 0x7c8 <UIMgr_convertTokenToCmd>
944: 06 c0 rjmp .+12 ; 0x952 <UIMgr_processReceivedData+0x4a>
946: ba df rcall .-140 ; 0x8bc <UIMgr_convertTokenToValue>
948: 80 91 bc 00 lds r24, 0x00BC
94c: 8f 5f subi r24, 0xFF ; 255
94e: 80 93 bc 00 sts 0x00BC, r24
952: 84 e6 ldi r24, 0x64 ; 100
954: 90 e0 ldi r25, 0x00 ; 0
956: 9b d2 rcall .+1334 ; 0xe8e <Utility_delay>
958: 80 91 62 00 lds r24, 0x0062
95c: 88 50 subi r24, 0x08 ; 8
95e: 82 30 cpi r24, 0x02 ; 2
960: 58 f4 brcc .+22 ; 0x978 <UIMgr_processReceivedData+0x70>
962: 8e e4 ldi r24, 0x4E ; 78
964: f4 de rcall .-536 ; 0x74e <UIMgr_writeTxFifo>
966: 83 e4 ldi r24, 0x43 ; 67
968: f2 de rcall .-540 ; 0x74e <UIMgr_writeTxFifo>
96a: 8b e4 ldi r24, 0x4B ; 75
96c: f0 de rcall .-544 ; 0x74e <UIMgr_writeTxFifo>
96e: 8d e0 ldi r24, 0x0D ; 13
970: ee de rcall .-548 ; 0x74e <UIMgr_writeTxFifo>
972: 80 e9 ldi r24, 0x90 ; 144
974: 06 dc rcall .-2036 ; 0x182 <Exec_writeEventFifo>
976: 89 c0 rjmp .+274 ; 0xa8a <UIMgr_processReceivedData+0x182>
978: 81 e4 ldi r24, 0x41 ; 65
97a: e9 de rcall .-558 ; 0x74e <UIMgr_writeTxFifo>
97c: 83 e4 ldi r24, 0x43 ; 67
97e: e7 de rcall .-562 ; 0x74e <UIMgr_writeTxFifo>
980: 8b e4 ldi r24, 0x4B ; 75
982: e5 de rcall .-566 ; 0x74e <UIMgr_writeTxFifo>
984: 8d e0 ldi r24, 0x0D ; 13
986: e3 de rcall .-570 ; 0x74e <UIMgr_writeTxFifo>
988: 80 e9 ldi r24, 0x90 ; 144
98a: fb db rcall .-2058 ; 0x182 <Exec_writeEventFifo>
98c: 80 91 62 00 lds r24, 0x0062
990: 81 30 cpi r24, 0x01 ; 1
992: 09 f4 brne .+2 ; 0x996 <UIMgr_processReceivedData+0x8e>
994: 7a c0 rjmp .+244 ; 0xa8a <UIMgr_processReceivedData+0x182>
996: 88 23 and r24, r24
998: 71 f4 brne .+28 ; 0x9b6 <UIMgr_processReceivedData+0xae>
99a: 80 91 63 00 lds r24, 0x0063
99e: 88 23 and r24, r24
9a0: 09 f4 brne .+2 ; 0x9a4 <UIMgr_processReceivedData+0x9c>
9a2: 73 c0 rjmp .+230 ; 0xa8a <UIMgr_processReceivedData+0x182>
9a4: c3 e6 ldi r28, 0x63 ; 99
9a6: d0 e0 ldi r29, 0x00 ; 0
9a8: 21 96 adiw r28, 0x01 ; 1
9aa: d1 de rcall .-606 ; 0x74e <UIMgr_writeTxFifo>
9ac: 88 81 ld r24, Y
9ae: 88 23 and r24, r24
9b0: 09 f4 brne .+2 ; 0x9b4 <UIMgr_processReceivedData+0xac>
9b2: 6b c0 rjmp .+214 ; 0xa8a <UIMgr_processReceivedData+0x182>
9b4: f9 cf rjmp .-14 ; 0x9a8 <UIMgr_processReceivedData+0xa0>
9b6: 87 30 cpi r24, 0x07 ; 7
9b8: 11 f4 brne .+4 ; 0x9be <UIMgr_processReceivedData+0xb6>
9ba: a1 db rcall .-2238 ; 0xfe <CamInt_resetCam>
9bc: 66 c0 rjmp .+204 ; 0xa8a <UIMgr_processReceivedData+0x182>
9be: 83 30 cpi r24, 0x03 ; 3
9c0: 31 f4 brne .+12 ; 0x9ce <UIMgr_processReceivedData+0xc6>
9c2: 84 e6 ldi r24, 0x64 ; 100
9c4: 90 e0 ldi r25, 0x00 ; 0
9c6: 63 d2 rcall .+1222 ; 0xe8e <Utility_delay>
9c8: 82 e0 ldi r24, 0x02 ; 2
9ca: db db rcall .-2122 ; 0x182 <Exec_writeEventFifo>
9cc: 5e c0 rjmp .+188 ; 0xa8a <UIMgr_processReceivedData+0x182>
9ce: 82 30 cpi r24, 0x02 ; 2
9d0: 99 f4 brne .+38 ; 0x9f8 <UIMgr_processReceivedData+0xf0>
9d2: 80 91 bc 00 lds r24, 0x00BC
9d6: 82 30 cpi r24, 0x02 ; 2
9d8: 68 f0 brcs .+26 ; 0x9f4 <UIMgr_processReceivedData+0xec>
9da: 11 e0 ldi r17, 0x01 ; 1
9dc: e1 2f mov r30, r17
9de: ff 27 eor r31, r31
9e0: ed 53 subi r30, 0x3D ; 61
9e2: ff 4f sbci r31, 0xFF ; 255
9e4: 61 81 ldd r22, Z+1 ; 0x01
9e6: 80 81 ld r24, Z
9e8: 02 d2 rcall .+1028 ; 0xdee <CamConfig_setCamReg>
9ea: 1e 5f subi r17, 0xFE ; 254
9ec: 80 91 bc 00 lds r24, 0x00BC
9f0: 18 17 cp r17, r24
9f2: a0 f3 brcs .-24 ; 0x9dc <UIMgr_processReceivedData+0xd4>
9f4: 01 d2 rcall .+1026 ; 0xdf8 <CamConfig_sendFifoCmds>
9f6: 49 c0 rjmp .+146 ; 0xa8a <UIMgr_processReceivedData+0x182>
9f8: 84 30 cpi r24, 0x04 ; 4
9fa: 31 f4 brne .+12 ; 0xa08 <UIMgr_processReceivedData+0x100>
9fc: 84 e6 ldi r24, 0x64 ; 100
9fe: 90 e0 ldi r25, 0x00 ; 0
a00: 46 d2 rcall .+1164 ; 0xe8e <Utility_delay>
a02: 80 e8 ldi r24, 0x80 ; 128
a04: be db rcall .-2180 ; 0x182 <Exec_writeEventFifo>
a06: 41 c0 rjmp .+130 ; 0xa8a <UIMgr_processReceivedData+0x182>
a08: 85 30 cpi r24, 0x05 ; 5
a0a: 19 f4 brne .+6 ; 0xa12 <UIMgr_processReceivedData+0x10a>
a0c: 81 e8 ldi r24, 0x81 ; 129
a0e: b9 db rcall .-2190 ; 0x182 <Exec_writeEventFifo>
a10: 3c c0 rjmp .+120 ; 0xa8a <UIMgr_processReceivedData+0x182>
a12: 86 30 cpi r24, 0x06 ; 6
a14: 09 f0 breq .+2 ; 0xa18 <UIMgr_processReceivedData+0x110>
a16: 39 c0 rjmp .+114 ; 0xa8a <UIMgr_processReceivedData+0x182>
a18: 80 91 bc 00 lds r24, 0x00BC
a1c: 88 23 and r24, r24
a1e: 09 f4 brne .+2 ; 0xa22 <UIMgr_processReceivedData+0x11a>
a20: 34 c0 rjmp .+104 ; 0xa8a <UIMgr_processReceivedData+0x182>
a22: 40 e0 ldi r20, 0x00 ; 0
a24: 03 ec ldi r16, 0xC3 ; 195
a26: 10 e0 ldi r17, 0x00 ; 0
a28: 60 e0 ldi r22, 0x00 ; 0
a2a: 73 e0 ldi r23, 0x03 ; 3
a2c: 84 2f mov r24, r20
a2e: 99 27 eor r25, r25
a30: 9c 01 movw r18, r24
a32: 2f 5f subi r18, 0xFF ; 255
a34: 3f 4f sbci r19, 0xFF ; 255
a36: f9 01 movw r30, r18
a38: e0 0f add r30, r16
a3a: f1 1f adc r31, r17
a3c: e0 81 ld r30, Z
a3e: ec 01 movw r28, r24
a40: c6 0f add r28, r22
a42: d7 1f adc r29, r23
a44: e8 83 st Y, r30
uint8_t
eeprom_read_byte (const uint8_t *addr)
{
uint8_t result;
asm volatile
a46: d9 01 movw r26, r18
a48: 20 d3 rcall .+1600 ; 0x108a <__eeprom_read_byte_1C1D1E>
a4a: 80 2d mov r24, r0
000006ca <UIMgr_writeBufferToTxFifo>:
static unsigned char tokenCount = 0;
static unsigned char tokenBuffer[MAX_TOKEN_COUNT];
static UIMgr_Cmd_t receivedCmd = noCmd;
static unsigned char AVRcamVersion[] = "AVRcam v1.4\r";
1628,19 → 1205,6
that changed...this will help reduce wear on the EEPROM */
eepromData = eeprom_read_byte( (unsigned char*)(i+1));
if (eepromData != colorMap[i])
a4c: e8 17 cp r30, r24
a4e: c1 f0 breq .+48 ; 0xa80 <UIMgr_processReceivedData+0x178>
 
void
eeprom_write_byte (uint8_t *addr,uint8_t value)
{
asm volatile (
a50: d9 01 movw r26, r18
a52: 0e 2e mov r0, r30
a54: 27 d3 rcall .+1614 ; 0x10a4 <__eeprom_write_byte_1C1D1E>
a56: d9 01 movw r26, r18
a58: 18 d3 rcall .+1584 ; 0x108a <__eeprom_read_byte_1C1D1E>
a5a: 80 2d mov r24, r0
{
/* need to actually perform the write because the
data in eeprom is different than the current colorMap */
1651,597 → 1215,1339
num_writes++;
eepromData = eeprom_read_byte( (unsigned char*)(i+1));
if (eepromData == colorMap[i])
a5c: 98 81 ld r25, Y
a5e: 98 17 cp r25, r24
a60: 79 f0 breq .+30 ; 0xa80 <UIMgr_processReceivedData+0x178>
{
eeprom_write_succeeded = TRUE;
}
}
num_writes = 0;
}
}
 
#if DEBUG_COLOR_MAP
/* for debugging...send out the entire color map */
UIMgr_txBuffer("\r\n",2);
for (i=0; i<NUM_ELEMENTS_IN_COLOR_MAP; i++)
{
memset(asciiBuffer,0x00,5);
itoa(colorMap[i],asciiBuffer,10);
UIMgr_txBuffer(asciiBuffer,3);
UIMgr_txBuffer(" ",1);
if (i==15 || i == 31)
{
/* break up the output */
UIMgr_txBuffer("\r\n",2);
}
}
#endif
}
}
 
/***********************************************************
Function Name: UIMgr_convertTokenToValue
Function Description: This function is responsible for
converting a received token to a hex value It will
access the asciiTokenBuffer directly, and store the
result in the appropriate token buffer.
Inputs: none
Outputs: none
***********************************************************/
static void UIMgr_convertTokenToValue(void)
{
unsigned int newValue;
newValue = atoi(asciiTokenBuffer);
if (newValue > 255)
{
/* the value is too large */
receivedCmd = invalidCmd;
tokenBuffer[tokenCount] = 0xFF; /* to indicate an error */
}
else
{
/* copy the value into the tokenBuffer */
tokenBuffer[tokenCount] = newValue;
}
memset(asciiTokenBuffer,0x00,MAX_TOKEN_LENGTH);
charIndex = 0;
charCount = 0;
}
/***********************************************************
Function Name: UIMgr_convertTokenToCmd
Function Description: This function is responsible for
parsing a received 2-character command. It will
access the asciiTokenBuffer directly.
Inputs: none
Outputs: none
***********************************************************/
static void UIMgr_convertTokenToCmd(void)
{
if ( (asciiTokenBuffer[0] == 'P') &&
(asciiTokenBuffer[1] == 'G') )
{
/* we got a "ping" command...but we still need to see
if we are going to get the \r */
receivedCmd = pingCmd;
}
else if ( (asciiTokenBuffer[0] == 'G') &&
(asciiTokenBuffer[1] == 'V') )
{
/* we got the "get version" command */
receivedCmd = getVersionCmd;
}
else if ( (asciiTokenBuffer[0] == 'D') &&
(asciiTokenBuffer[1] == 'F') )
{
/* we should go into frame dump mode */
receivedCmd = dumpFrameCmd;
}
else if ( (asciiTokenBuffer[0] == 'C') &&
(asciiTokenBuffer[1] == 'R') )
{
/* the user wants to set registers in the OV6620 */
receivedCmd = setCameraRegsCmd;
}
else if ( (asciiTokenBuffer[0] == 'E') &&
(asciiTokenBuffer[1] == 'T') )
{
/* the user wants to enable tracking */
receivedCmd = enableTrackingCmd;
}
else if ( (asciiTokenBuffer[0] == 'S') &&
(asciiTokenBuffer[1] == 'M') )
{
/* the user wants to set the color map */
receivedCmd = setColorMapCmd;
}
else if ( (asciiTokenBuffer[0] == 'D') &&
(asciiTokenBuffer[1] == 'T') )
{
receivedCmd = disableTrackingCmd;
}
else if ( (asciiTokenBuffer[0] == 'R') &&
(asciiTokenBuffer[1] == 'S') )
{
receivedCmd = resetCameraCmd;
}
else
{
/* don't recognize the cmd */
receivedCmd = invalidCmd;
}
memset(asciiTokenBuffer,0x00,MAX_TOKEN_LENGTH);
charIndex = 0;
charCount = 0;
}
/***********************************************************
Function Name: UIMgr_sendAck
Function Description: This function is responsible for
queuing up an ACK to be sent to the user.
Inputs: none
Outputs: none
***********************************************************/
static void UIMgr_sendAck(void)
{
UIMgr_writeTxFifo('A');
UIMgr_writeTxFifo('C');
UIMgr_writeTxFifo('K');
UIMgr_writeTxFifo('\r');
}
 
/***********************************************************
Function Name: UIMgr_sendNck
Function Description: This function is responsible for
queueing up an NCK to be sent to the user.
Inputs: none
Outputs: none
***********************************************************/
static void UIMgr_sendNck(void)
{
UIMgr_writeTxFifo('N');
UIMgr_writeTxFifo('C');
UIMgr_writeTxFifo('K');
UIMgr_writeTxFifo('\r');
}
 
 
/***********************************************************
Function Name: UIMgr_writeBufferToTxFifo
Function Description: This function is responsible for
placing "length" bytes into the tx FIFO.
Inputs: pData - a pointer to the data to send
length - the number of bytes to send
Outputs: none
***********************************************************/
void UIMgr_writeBufferToTxFifo(unsigned char *pData, unsigned char length)
{
6ca: dc 01 movw r26, r24
unsigned char tmpHead;
if (length == 0)
6cc: 66 23 and r22, r22
6ce: b1 f0 breq .+44 ; 0x6fc <UIMgr_writeBufferToTxFifo+0x32>
{
return;
}
DISABLE_INTS();
6d0: f8 94 cli
while(length-- != 0)
6d2: 61 50 subi r22, 0x01 ; 1
6d4: 6f 3f cpi r22, 0xFF ; 255
6d6: 89 f0 breq .+34 ; 0x6fa <UIMgr_writeBufferToTxFifo+0x30>
6d8: 90 91 ba 00 lds r25, 0x00BA
{
UIMgr_txFifo[UIMgr_txFifoHead] = *pData++;
6dc: 24 e9 ldi r18, 0x94 ; 148
6de: 32 e0 ldi r19, 0x02 ; 2
6e0: f9 01 movw r30, r18
6e2: e9 0f add r30, r25
6e4: f1 1d adc r31, r1
6e6: 8d 91 ld r24, X+
6e8: 80 83 st Z, r24
/* now move the head up */
tmpHead = (UIMgr_txFifoHead + 1) & (UI_MGR_TX_FIFO_MASK);
6ea: 89 2f mov r24, r25
6ec: 8f 5f subi r24, 0xFF ; 255
6ee: 98 2f mov r25, r24
6f0: 9f 73 andi r25, 0x3F ; 63
6f2: 61 50 subi r22, 0x01 ; 1
6f4: a8 f7 brcc .-22 ; 0x6e0 <UIMgr_writeBufferToTxFifo+0x16>
6f6: 90 93 ba 00 sts 0x00BA, r25
UIMgr_txFifoHead = tmpHead;
}
ENABLE_INTS();
6fa: 78 94 sei
6fc: 08 95 ret
 
000006fe <UIMgr_readTxFifo>:
}
 
/***********************************************************
Function Name: UIMgr_txBuffer
Function Description: This function is responsible for
sending 'length' bytes out using the UartInterface
module.
Inputs: pData - a pointer to the data to send
length - the number of bytes to send
Outputs: none
***********************************************************/
void UIMgr_txBuffer(unsigned char *pData, unsigned char length)
{
while(length-- != 0)
{
UartInt_txByte(*pData++);
}
}
 
/***********************************************************
Function Name: UIMgr_flushTxBuffer
Function Description: This function is responsible for
sending all data currently in the serial tx buffer
to the user.
Inputs: none
Outputs: none
***********************************************************/
void UIMgr_flushTxBuffer(void)
{
while(IS_DATA_IN_TX_FIFO() == TRUE)
{
UartInt_txByte(UIMgr_readTxFifo() );
}
}
 
/***********************************************************
Function Name: UIMgr_readRxFifo
Function Description: This function is responsible for
reading a single byte of data from the rx fifo, and
updating the appropriate pointers.
Inputs: none
Outputs: unsigned char-the data read
***********************************************************/
static unsigned char UIMgr_readRxFifo(void)
{
unsigned char dataByte, tmpTail;
/* just return the current tail from the rx fifo */
DISABLE_INTS();
dataByte = UIMgr_rxFifo[UIMgr_rxFifoTail];
tmpTail = (UIMgr_rxFifoTail+1) & (UI_MGR_RX_FIFO_MASK);
UIMgr_rxFifoTail = tmpTail;
ENABLE_INTS();
return(dataByte);
}
 
/***********************************************************
Function Name: UIMgr_readTxFifo
Function Description: This function is responsible for
reading a single byte of data from the tx fifo, and
updating the appropriate pointers.
Inputs: none
Outputs: unsigned char-the data read
***********************************************************/
static unsigned char UIMgr_readTxFifo(void)
{
unsigned char dataByte, tmpTail;
/* just return the current tail from the tx fifo */
DISABLE_INTS();
6fe: f8 94 cli
dataByte = UIMgr_txFifo[UIMgr_txFifoTail];
700: 90 91 bb 00 lds r25, 0x00BB
704: e4 e9 ldi r30, 0x94 ; 148
706: f2 e0 ldi r31, 0x02 ; 2
708: e9 0f add r30, r25
70a: f1 1d adc r31, r1
70c: 80 81 ld r24, Z
tmpTail = (UIMgr_txFifoTail+1) & (UI_MGR_TX_FIFO_MASK);
UIMgr_txFifoTail = tmpTail;
70e: 9f 5f subi r25, 0xFF ; 255
710: 9f 73 andi r25, 0x3F ; 63
712: 90 93 bb 00 sts 0x00BB, r25
ENABLE_INTS();
716: 78 94 sei
return(dataByte);
}
718: 99 27 eor r25, r25
71a: 08 95 ret
 
0000071c <UIMgr_writeTxFifo>:
 
/***********************************************************
Function Name: UIMgr_writeTxFifo
Function Description: This function is responsible for
writing a single byte to the TxFifo and
updating the appropriate pointers.
Inputs: data - the byte to write to the Fifo
Outputs: none
***********************************************************/
void UIMgr_writeTxFifo(unsigned char data)
{
unsigned char tmpHead;
 
DISABLE_INTS();
71c: f8 94 cli
UIMgr_txFifo[UIMgr_txFifoHead] = data;
71e: 90 91 ba 00 lds r25, 0x00BA
722: e4 e9 ldi r30, 0x94 ; 148
724: f2 e0 ldi r31, 0x02 ; 2
726: e9 0f add r30, r25
728: f1 1d adc r31, r1
72a: 80 83 st Z, r24
 
/* now move the head up */
tmpHead = (UIMgr_txFifoHead + 1) & (UI_MGR_TX_FIFO_MASK);
UIMgr_txFifoHead = tmpHead;
72c: 9f 5f subi r25, 0xFF ; 255
72e: 9f 73 andi r25, 0x3F ; 63
730: 90 93 ba 00 sts 0x00BA, r25
ENABLE_INTS();
734: 78 94 sei
736: 08 95 ret
 
00000738 <UIMgr_flushTxBuffer>:
738: 90 91 ba 00 lds r25, 0x00BA
73c: 80 91 bb 00 lds r24, 0x00BB
740: 98 17 cp r25, r24
742: 41 f0 breq .+16 ; 0x754 <UIMgr_flushTxBuffer+0x1c>
744: dc df rcall .-72 ; 0x6fe <UIMgr_readTxFifo>
746: 13 d2 rcall .+1062 ; 0xb6e <UartInt_txByte>
748: 90 91 ba 00 lds r25, 0x00BA
74c: 80 91 bb 00 lds r24, 0x00BB
750: 98 17 cp r25, r24
752: c1 f7 brne .-16 ; 0x744 <UIMgr_flushTxBuffer+0xc>
754: 08 95 ret
 
00000756 <UIMgr_txBuffer>:
756: 1f 93 push r17
758: cf 93 push r28
75a: df 93 push r29
75c: ec 01 movw r28, r24
75e: 16 2f mov r17, r22
760: 11 50 subi r17, 0x01 ; 1
762: 1f 3f cpi r17, 0xFF ; 255
764: 21 f0 breq .+8 ; 0x76e <UIMgr_txBuffer+0x18>
766: 89 91 ld r24, Y+
768: 02 d2 rcall .+1028 ; 0xb6e <UartInt_txByte>
76a: 11 50 subi r17, 0x01 ; 1
76c: e0 f7 brcc .-8 ; 0x766 <UIMgr_txBuffer+0x10>
76e: df 91 pop r29
770: cf 91 pop r28
772: 1f 91 pop r17
774: 08 95 ret
 
00000776 <UIMgr_transmitPendingData>:
776: 90 91 ba 00 lds r25, 0x00BA
77a: 80 91 bb 00 lds r24, 0x00BB
77e: 98 17 cp r25, r24
780: 11 f0 breq .+4 ; 0x786 <UIMgr_transmitPendingData+0x10>
782: bd df rcall .-134 ; 0x6fe <UIMgr_readTxFifo>
784: f4 d1 rcall .+1000 ; 0xb6e <UartInt_txByte>
786: 08 95 ret
 
00000788 <UIMgr_convertTokenToCmd>:
788: 90 91 bf 00 lds r25, 0x00BF
78c: 90 35 cpi r25, 0x50 ; 80
78e: 41 f4 brne .+16 ; 0x7a0 <UIMgr_convertTokenToCmd+0x18>
790: 80 91 c0 00 lds r24, 0x00C0
794: 87 34 cpi r24, 0x47 ; 71
796: 09 f5 brne .+66 ; 0x7da <UIMgr_convertTokenToCmd+0x52>
798: 81 e0 ldi r24, 0x01 ; 1
79a: 80 93 62 00 sts 0x0062, r24
79e: 48 c0 rjmp .+144 ; 0x830 <UIMgr_convertTokenToCmd+0xa8>
7a0: 97 34 cpi r25, 0x47 ; 71
7a2: 39 f4 brne .+14 ; 0x7b2 <UIMgr_convertTokenToCmd+0x2a>
7a4: 80 91 c0 00 lds r24, 0x00C0
7a8: 86 35 cpi r24, 0x56 ; 86
7aa: 09 f5 brne .+66 ; 0x7ee <UIMgr_convertTokenToCmd+0x66>
7ac: 10 92 62 00 sts 0x0062, r1
7b0: 3f c0 rjmp .+126 ; 0x830 <UIMgr_convertTokenToCmd+0xa8>
7b2: 94 34 cpi r25, 0x44 ; 68
7b4: 41 f4 brne .+16 ; 0x7c6 <UIMgr_convertTokenToCmd+0x3e>
7b6: 80 91 c0 00 lds r24, 0x00C0
7ba: 86 34 cpi r24, 0x46 ; 70
7bc: 11 f5 brne .+68 ; 0x802 <UIMgr_convertTokenToCmd+0x7a>
7be: 83 e0 ldi r24, 0x03 ; 3
7c0: 80 93 62 00 sts 0x0062, r24
7c4: 35 c0 rjmp .+106 ; 0x830 <UIMgr_convertTokenToCmd+0xa8>
7c6: 93 34 cpi r25, 0x43 ; 67
7c8: 41 f4 brne .+16 ; 0x7da <UIMgr_convertTokenToCmd+0x52>
7ca: 80 91 c0 00 lds r24, 0x00C0
7ce: 82 35 cpi r24, 0x52 ; 82
7d0: 11 f5 brne .+68 ; 0x816 <UIMgr_convertTokenToCmd+0x8e>
7d2: 82 e0 ldi r24, 0x02 ; 2
7d4: 80 93 62 00 sts 0x0062, r24
7d8: 2b c0 rjmp .+86 ; 0x830 <UIMgr_convertTokenToCmd+0xa8>
7da: 95 34 cpi r25, 0x45 ; 69
7dc: 41 f4 brne .+16 ; 0x7ee <UIMgr_convertTokenToCmd+0x66>
7de: 80 91 c0 00 lds r24, 0x00C0
7e2: 84 35 cpi r24, 0x54 ; 84
7e4: 11 f5 brne .+68 ; 0x82a <UIMgr_convertTokenToCmd+0xa2>
7e6: 84 e0 ldi r24, 0x04 ; 4
7e8: 80 93 62 00 sts 0x0062, r24
7ec: 21 c0 rjmp .+66 ; 0x830 <UIMgr_convertTokenToCmd+0xa8>
7ee: 93 35 cpi r25, 0x53 ; 83
7f0: 41 f4 brne .+16 ; 0x802 <UIMgr_convertTokenToCmd+0x7a>
7f2: 80 91 c0 00 lds r24, 0x00C0
7f6: 8d 34 cpi r24, 0x4D ; 77
7f8: c1 f4 brne .+48 ; 0x82a <UIMgr_convertTokenToCmd+0xa2>
7fa: 86 e0 ldi r24, 0x06 ; 6
7fc: 80 93 62 00 sts 0x0062, r24
800: 17 c0 rjmp .+46 ; 0x830 <UIMgr_convertTokenToCmd+0xa8>
802: 94 34 cpi r25, 0x44 ; 68
804: 41 f4 brne .+16 ; 0x816 <UIMgr_convertTokenToCmd+0x8e>
806: 80 91 c0 00 lds r24, 0x00C0
80a: 84 35 cpi r24, 0x54 ; 84
80c: 71 f4 brne .+28 ; 0x82a <UIMgr_convertTokenToCmd+0xa2>
80e: 85 e0 ldi r24, 0x05 ; 5
810: 80 93 62 00 sts 0x0062, r24
814: 0d c0 rjmp .+26 ; 0x830 <UIMgr_convertTokenToCmd+0xa8>
816: 92 35 cpi r25, 0x52 ; 82
818: 41 f4 brne .+16 ; 0x82a <UIMgr_convertTokenToCmd+0xa2>
81a: 80 91 c0 00 lds r24, 0x00C0
81e: 83 35 cpi r24, 0x53 ; 83
820: 21 f4 brne .+8 ; 0x82a <UIMgr_convertTokenToCmd+0xa2>
822: 87 e0 ldi r24, 0x07 ; 7
824: 80 93 62 00 sts 0x0062, r24
828: 03 c0 rjmp .+6 ; 0x830 <UIMgr_convertTokenToCmd+0xa8>
82a: 89 e0 ldi r24, 0x09 ; 9
82c: 80 93 62 00 sts 0x0062, r24
830: 83 e0 ldi r24, 0x03 ; 3
832: ef eb ldi r30, 0xBF ; 191
834: f0 e0 ldi r31, 0x00 ; 0
836: 11 92 st Z+, r1
838: 8a 95 dec r24
83a: e9 f7 brne .-6 ; 0x836 <UIMgr_convertTokenToCmd+0xae>
83c: 10 92 be 00 sts 0x00BE, r1
840: 10 92 bd 00 sts 0x00BD, r1
844: 08 95 ret
 
00000846 <UIMgr_init>:
846: 10 92 bf 00 sts 0x00BF, r1
84a: 10 92 c0 00 sts 0x00C0, r1
84e: 10 92 c1 00 sts 0x00C1, r1
852: 10 92 c2 00 sts 0x00C2, r1
856: 80 e4 ldi r24, 0x40 ; 64
858: e3 ec ldi r30, 0xC3 ; 195
85a: f0 e0 ldi r31, 0x00 ; 0
85c: 98 2f mov r25, r24
85e: 11 92 st Z+, r1
860: 9a 95 dec r25
862: e9 f7 brne .-6 ; 0x85e <UIMgr_init+0x18>
864: e4 e9 ldi r30, 0x94 ; 148
866: f2 e0 ldi r31, 0x02 ; 2
868: 11 92 st Z+, r1
86a: 8a 95 dec r24
86c: e9 f7 brne .-6 ; 0x868 <UIMgr_init+0x22>
86e: 80 e2 ldi r24, 0x20 ; 32
870: e4 e7 ldi r30, 0x74 ; 116
872: f2 e0 ldi r31, 0x02 ; 2
874: 11 92 st Z+, r1
876: 8a 95 dec r24
878: e9 f7 brne .-6 ; 0x874 <UIMgr_init+0x2e>
87a: 08 95 ret
 
0000087c <UIMgr_convertTokenToValue>:
87c: 8f eb ldi r24, 0xBF ; 191
87e: 90 e0 ldi r25, 0x00 ; 0
880: dc d3 rcall .+1976 ; 0x103a <atoi>
882: 9c 01 movw r18, r24
884: 8f 3f cpi r24, 0xFF ; 255
886: 91 05 cpc r25, r1
888: 69 f0 breq .+26 ; 0x8a4 <UIMgr_convertTokenToValue+0x28>
88a: 60 f0 brcs .+24 ; 0x8a4 <UIMgr_convertTokenToValue+0x28>
88c: 89 e0 ldi r24, 0x09 ; 9
88e: 80 93 62 00 sts 0x0062, r24
892: 80 91 bc 00 lds r24, 0x00BC
896: e3 ec ldi r30, 0xC3 ; 195
898: f0 e0 ldi r31, 0x00 ; 0
89a: e8 0f add r30, r24
89c: f1 1d adc r31, r1
89e: 8f ef ldi r24, 0xFF ; 255
8a0: 80 83 st Z, r24
8a2: 07 c0 rjmp .+14 ; 0x8b2 <UIMgr_convertTokenToValue+0x36>
8a4: 80 91 bc 00 lds r24, 0x00BC
8a8: e3 ec ldi r30, 0xC3 ; 195
8aa: f0 e0 ldi r31, 0x00 ; 0
8ac: e8 0f add r30, r24
8ae: f1 1d adc r31, r1
8b0: 20 83 st Z, r18
8b2: 83 e0 ldi r24, 0x03 ; 3
8b4: ef eb ldi r30, 0xBF ; 191
8b6: f0 e0 ldi r31, 0x00 ; 0
8b8: 11 92 st Z+, r1
8ba: 8a 95 dec r24
8bc: e9 f7 brne .-6 ; 0x8b8 <UIMgr_convertTokenToValue+0x3c>
8be: 10 92 be 00 sts 0x00BE, r1
8c2: 10 92 bd 00 sts 0x00BD, r1
8c6: 08 95 ret
 
000008c8 <UIMgr_processReceivedData>:
8c8: 6f 92 push r6
8ca: 7f 92 push r7
8cc: 8f 92 push r8
8ce: 9f 92 push r9
8d0: af 92 push r10
8d2: bf 92 push r11
8d4: cf 92 push r12
8d6: df 92 push r13
8d8: ef 92 push r14
8da: ff 92 push r15
8dc: 1f 93 push r17
8de: cf 93 push r28
8e0: df 93 push r29
8e2: 0f 2e mov r0, r31
8e4: f4 e7 ldi r31, 0x74 ; 116
8e6: cf 2e mov r12, r31
8e8: f2 e0 ldi r31, 0x02 ; 2
8ea: df 2e mov r13, r31
8ec: f0 2d mov r31, r0
8ee: 0f 2e mov r0, r31
8f0: ff eb ldi r31, 0xBF ; 191
8f2: af 2e mov r10, r31
8f4: f0 e0 ldi r31, 0x00 ; 0
8f6: bf 2e mov r11, r31
8f8: f0 2d mov r31, r0
8fa: 0f 2e mov r0, r31
8fc: f3 ec ldi r31, 0xC3 ; 195
8fe: ef 2e mov r14, r31
900: f0 e0 ldi r31, 0x00 ; 0
902: ff 2e mov r15, r31
904: f0 2d mov r31, r0
906: 0f 2e mov r0, r31
908: f0 e0 ldi r31, 0x00 ; 0
90a: 8f 2e mov r8, r31
90c: f3 e0 ldi r31, 0x03 ; 3
90e: 9f 2e mov r9, r31
910: f0 2d mov r31, r0
912: 0f 2e mov r0, r31
914: f3 e6 ldi r31, 0x63 ; 99
916: 6f 2e mov r6, r31
918: f0 e0 ldi r31, 0x00 ; 0
91a: 7f 2e mov r7, r31
91c: f0 2d mov r31, r0
91e: fa c0 rjmp .+500 ; 0xb14 <UIMgr_processReceivedData+0x24c>
920: f8 94 cli
922: f6 01 movw r30, r12
924: e9 0f add r30, r25
926: f1 1d adc r31, r1
928: 20 81 ld r18, Z
92a: 89 2f mov r24, r25
92c: 8f 5f subi r24, 0xFF ; 255
92e: 8f 71 andi r24, 0x1F ; 31
930: 80 93 b9 00 sts 0x00B9, r24
934: 78 94 sei
936: 2d 30 cpi r18, 0x0D ; 13
938: 09 f0 breq .+2 ; 0x93c <UIMgr_processReceivedData+0x74>
93a: a9 c0 rjmp .+338 ; 0xa8e <UIMgr_processReceivedData+0x1c6>
93c: 80 91 bc 00 lds r24, 0x00BC
940: 88 23 and r24, r24
942: 11 f4 brne .+4 ; 0x948 <UIMgr_processReceivedData+0x80>
944: 21 df rcall .-446 ; 0x788 <UIMgr_convertTokenToCmd>
946: 06 c0 rjmp .+12 ; 0x954 <UIMgr_processReceivedData+0x8c>
948: 99 df rcall .-206 ; 0x87c <UIMgr_convertTokenToValue>
94a: 80 91 bc 00 lds r24, 0x00BC
94e: 8f 5f subi r24, 0xFF ; 255
950: 80 93 bc 00 sts 0x00BC, r24
954: 84 e6 ldi r24, 0x64 ; 100
956: 90 e0 ldi r25, 0x00 ; 0
958: a6 d2 rcall .+1356 ; 0xea6 <Utility_delay>
95a: 80 91 62 00 lds r24, 0x0062
95e: 88 50 subi r24, 0x08 ; 8
960: 82 30 cpi r24, 0x02 ; 2
962: 58 f4 brcc .+22 ; 0x97a <UIMgr_processReceivedData+0xb2>
964: 8e e4 ldi r24, 0x4E ; 78
966: da de rcall .-588 ; 0x71c <UIMgr_writeTxFifo>
968: 83 e4 ldi r24, 0x43 ; 67
96a: d8 de rcall .-592 ; 0x71c <UIMgr_writeTxFifo>
96c: 8b e4 ldi r24, 0x4B ; 75
96e: d6 de rcall .-596 ; 0x71c <UIMgr_writeTxFifo>
970: 8d e0 ldi r24, 0x0D ; 13
972: d4 de rcall .-600 ; 0x71c <UIMgr_writeTxFifo>
974: 80 e9 ldi r24, 0x90 ; 144
976: 05 dc rcall .-2038 ; 0x182 <Exec_writeEventFifo>
978: 82 c0 rjmp .+260 ; 0xa7e <UIMgr_processReceivedData+0x1b6>
97a: 81 e4 ldi r24, 0x41 ; 65
97c: cf de rcall .-610 ; 0x71c <UIMgr_writeTxFifo>
97e: 83 e4 ldi r24, 0x43 ; 67
980: cd de rcall .-614 ; 0x71c <UIMgr_writeTxFifo>
982: 8b e4 ldi r24, 0x4B ; 75
984: cb de rcall .-618 ; 0x71c <UIMgr_writeTxFifo>
986: 8d e0 ldi r24, 0x0D ; 13
988: c9 de rcall .-622 ; 0x71c <UIMgr_writeTxFifo>
98a: 80 e9 ldi r24, 0x90 ; 144
98c: fa db rcall .-2060 ; 0x182 <Exec_writeEventFifo>
98e: 80 91 62 00 lds r24, 0x0062
992: 81 30 cpi r24, 0x01 ; 1
994: 09 f4 brne .+2 ; 0x998 <UIMgr_processReceivedData+0xd0>
996: 73 c0 rjmp .+230 ; 0xa7e <UIMgr_processReceivedData+0x1b6>
998: 88 23 and r24, r24
99a: 69 f4 brne .+26 ; 0x9b6 <UIMgr_processReceivedData+0xee>
99c: 80 91 63 00 lds r24, 0x0063
9a0: 88 23 and r24, r24
9a2: 09 f4 brne .+2 ; 0x9a6 <UIMgr_processReceivedData+0xde>
9a4: 6c c0 rjmp .+216 ; 0xa7e <UIMgr_processReceivedData+0x1b6>
9a6: e3 01 movw r28, r6
9a8: 21 96 adiw r28, 0x01 ; 1
9aa: b8 de rcall .-656 ; 0x71c <UIMgr_writeTxFifo>
9ac: 88 81 ld r24, Y
9ae: 88 23 and r24, r24
9b0: 09 f4 brne .+2 ; 0x9b4 <UIMgr_processReceivedData+0xec>
9b2: 65 c0 rjmp .+202 ; 0xa7e <UIMgr_processReceivedData+0x1b6>
9b4: f9 cf rjmp .-14 ; 0x9a8 <UIMgr_processReceivedData+0xe0>
9b6: 87 30 cpi r24, 0x07 ; 7
9b8: 11 f4 brne .+4 ; 0x9be <UIMgr_processReceivedData+0xf6>
9ba: a1 db rcall .-2238 ; 0xfe <CamInt_resetCam>
9bc: 60 c0 rjmp .+192 ; 0xa7e <UIMgr_processReceivedData+0x1b6>
9be: 83 30 cpi r24, 0x03 ; 3
9c0: 31 f4 brne .+12 ; 0x9ce <UIMgr_processReceivedData+0x106>
9c2: 84 e6 ldi r24, 0x64 ; 100
9c4: 90 e0 ldi r25, 0x00 ; 0
9c6: 6f d2 rcall .+1246 ; 0xea6 <Utility_delay>
9c8: 82 e0 ldi r24, 0x02 ; 2
9ca: db db rcall .-2122 ; 0x182 <Exec_writeEventFifo>
9cc: 58 c0 rjmp .+176 ; 0xa7e <UIMgr_processReceivedData+0x1b6>
9ce: 82 30 cpi r24, 0x02 ; 2
9d0: 91 f4 brne .+36 ; 0x9f6 <UIMgr_processReceivedData+0x12e>
9d2: 80 91 bc 00 lds r24, 0x00BC
9d6: 82 30 cpi r24, 0x02 ; 2
9d8: 60 f0 brcs .+24 ; 0x9f2 <UIMgr_processReceivedData+0x12a>
9da: 11 e0 ldi r17, 0x01 ; 1
9dc: f7 01 movw r30, r14
9de: e1 0f add r30, r17
9e0: f1 1d adc r31, r1
9e2: 61 81 ldd r22, Z+1 ; 0x01
9e4: 80 81 ld r24, Z
9e6: 05 d2 rcall .+1034 ; 0xdf2 <CamConfig_setCamReg>
9e8: 1e 5f subi r17, 0xFE ; 254
9ea: 80 91 bc 00 lds r24, 0x00BC
9ee: 18 17 cp r17, r24
9f0: a8 f3 brcs .-22 ; 0x9dc <UIMgr_processReceivedData+0x114>
9f2: 04 d2 rcall .+1032 ; 0xdfc <CamConfig_sendFifoCmds>
9f4: 44 c0 rjmp .+136 ; 0xa7e <UIMgr_processReceivedData+0x1b6>
9f6: 84 30 cpi r24, 0x04 ; 4
9f8: 31 f4 brne .+12 ; 0xa06 <UIMgr_processReceivedData+0x13e>
9fa: 84 e6 ldi r24, 0x64 ; 100
9fc: 90 e0 ldi r25, 0x00 ; 0
9fe: 53 d2 rcall .+1190 ; 0xea6 <Utility_delay>
a00: 80 e8 ldi r24, 0x80 ; 128
a02: bf db rcall .-2178 ; 0x182 <Exec_writeEventFifo>
a04: 3c c0 rjmp .+120 ; 0xa7e <UIMgr_processReceivedData+0x1b6>
a06: 85 30 cpi r24, 0x05 ; 5
a08: 19 f4 brne .+6 ; 0xa10 <UIMgr_processReceivedData+0x148>
a0a: 81 e8 ldi r24, 0x81 ; 129
a0c: ba db rcall .-2188 ; 0x182 <Exec_writeEventFifo>
a0e: 37 c0 rjmp .+110 ; 0xa7e <UIMgr_processReceivedData+0x1b6>
a10: 86 30 cpi r24, 0x06 ; 6
a12: 09 f0 breq .+2 ; 0xa16 <UIMgr_processReceivedData+0x14e>
a14: 34 c0 rjmp .+104 ; 0xa7e <UIMgr_processReceivedData+0x1b6>
a16: 80 91 bc 00 lds r24, 0x00BC
a1a: 88 23 and r24, r24
a1c: 81 f1 breq .+96 ; 0xa7e <UIMgr_processReceivedData+0x1b6>
a1e: 40 e0 ldi r20, 0x00 ; 0
a20: 84 2f mov r24, r20
a22: 99 27 eor r25, r25
a24: 9c 01 movw r18, r24
a26: 2f 5f subi r18, 0xFF ; 255
a28: 3f 4f sbci r19, 0xFF ; 255
a2a: f9 01 movw r30, r18
a2c: ee 0d add r30, r14
a2e: ff 1d adc r31, r15
a30: e0 81 ld r30, Z
a32: ec 01 movw r28, r24
a34: c8 0d add r28, r8
a36: d9 1d adc r29, r9
a38: e8 83 st Y, r30
uint8_t
eeprom_read_byte (const uint8_t *addr)
{
uint8_t result;
__asm__ __volatile__
a3a: d9 01 movw r26, r18
a3c: 32 d3 rcall .+1636 ; 0x10a2 <__eeprom_read_byte_1C1D1E>
a3e: 80 2d mov r24, r0
a40: e8 17 cp r30, r24
a42: c1 f0 breq .+48 ; 0xa74 <UIMgr_processReceivedData+0x1ac>
 
void
eeprom_write_byte (uint8_t *addr,uint8_t value)
{
asm volatile (
a62: d9 01 movw r26, r18
a64: 09 2e mov r0, r25
a66: 1e d3 rcall .+1596 ; 0x10a4 <__eeprom_write_byte_1C1D1E>
a68: d9 01 movw r26, r18
a6a: 0f d3 rcall .+1566 ; 0x108a <__eeprom_read_byte_1C1D1E>
a6c: 80 2d mov r24, r0
a6e: 98 81 ld r25, Y
a70: 98 17 cp r25, r24
a72: 31 f0 breq .+12 ; 0xa80 <UIMgr_processReceivedData+0x178>
__asm__ __volatile__ (
a44: d9 01 movw r26, r18
a46: 0e 2e mov r0, r30
a48: 39 d3 rcall .+1650 ; 0x10bc <__eeprom_write_byte_1C1D1E>
a4a: d9 01 movw r26, r18
a4c: 2a d3 rcall .+1620 ; 0x10a2 <__eeprom_read_byte_1C1D1E>
a4e: 80 2d mov r24, r0
a50: 98 81 ld r25, Y
a52: 89 17 cp r24, r25
a54: 79 f0 breq .+30 ; 0xa74 <UIMgr_processReceivedData+0x1ac>
 
void
eeprom_write_byte (uint8_t *addr,uint8_t value)
{
asm volatile (
a74: d9 01 movw r26, r18
a76: 09 2e mov r0, r25
a78: 15 d3 rcall .+1578 ; 0x10a4 <__eeprom_write_byte_1C1D1E>
a7a: d9 01 movw r26, r18
a7c: 06 d3 rcall .+1548 ; 0x108a <__eeprom_read_byte_1C1D1E>
a7e: 80 2d mov r24, r0
a80: 4f 5f subi r20, 0xFF ; 255
a82: 80 91 bc 00 lds r24, 0x00BC
a86: 48 17 cp r20, r24
a88: 88 f2 brcs .-94 ; 0xa2c <UIMgr_processReceivedData+0x124>
a8a: 10 92 bc 00 sts 0x00BC, r1
a8e: 80 e4 ldi r24, 0x40 ; 64
a90: e3 ec ldi r30, 0xC3 ; 195
a92: f0 e0 ldi r31, 0x00 ; 0
a94: 11 92 st Z+, r1
a96: 8a 95 dec r24
a98: e9 f7 brne .-6 ; 0xa94 <UIMgr_processReceivedData+0x18c>
a9a: 3f c0 rjmp .+126 ; 0xb1a <UIMgr_processReceivedData+0x212>
a9c: 90 32 cpi r25, 0x20 ; 32
a9e: f1 f4 brne .+60 ; 0xadc <UIMgr_processReceivedData+0x1d4>
aa0: 80 91 bc 00 lds r24, 0x00BC
aa4: 88 23 and r24, r24
aa6: 39 f4 brne .+14 ; 0xab6 <UIMgr_processReceivedData+0x1ae>
aa8: 8f de rcall .-738 ; 0x7c8 <UIMgr_convertTokenToCmd>
aaa: 80 91 bc 00 lds r24, 0x00BC
aae: 8f 5f subi r24, 0xFF ; 255
ab0: 80 93 bc 00 sts 0x00BC, r24
ab4: 32 c0 rjmp .+100 ; 0xb1a <UIMgr_processReceivedData+0x212>
ab6: 99 27 eor r25, r25
ab8: cf 97 sbiw r24, 0x3f ; 63
aba: 4c f0 brlt .+18 ; 0xace <UIMgr_processReceivedData+0x1c6>
abc: 10 92 bd 00 sts 0x00BD, r1
ac0: 10 92 be 00 sts 0x00BE, r1
ac4: 10 92 bc 00 sts 0x00BC, r1
ac8: f0 92 62 00 sts 0x0062, r15
acc: 26 c0 rjmp .+76 ; 0xb1a <UIMgr_processReceivedData+0x212>
ace: f6 de rcall .-532 ; 0x8bc <UIMgr_convertTokenToValue>
ad0: 80 91 bc 00 lds r24, 0x00BC
ad4: 8f 5f subi r24, 0xFF ; 255
ad6: 80 93 bc 00 sts 0x00BC, r24
ada: 1f c0 rjmp .+62 ; 0xb1a <UIMgr_processReceivedData+0x212>
adc: 89 2f mov r24, r25
ade: 81 54 subi r24, 0x41 ; 65
ae0: 8a 31 cpi r24, 0x1A ; 26
ae2: 18 f0 brcs .+6 ; 0xaea <UIMgr_processReceivedData+0x1e2>
ae4: 8f 5e subi r24, 0xEF ; 239
ae6: 8a 30 cpi r24, 0x0A ; 10
ae8: b0 f4 brcc .+44 ; 0xb16 <UIMgr_processReceivedData+0x20e>
aea: 80 91 be 00 lds r24, 0x00BE
aee: e8 2f mov r30, r24
af0: ff 27 eor r31, r31
af2: e1 54 subi r30, 0x41 ; 65
af4: ff 4f sbci r31, 0xFF ; 255
af6: 90 83 st Z, r25
af8: 90 91 bd 00 lds r25, 0x00BD
afc: 9f 5f subi r25, 0xFF ; 255
afe: 90 93 bd 00 sts 0x00BD, r25
b02: 8f 5f subi r24, 0xFF ; 255
b04: 80 93 be 00 sts 0x00BE, r24
b08: 94 30 cpi r25, 0x04 ; 4
b0a: 38 f0 brcs .+14 ; 0xb1a <UIMgr_processReceivedData+0x212>
b0c: f0 92 62 00 sts 0x0062, r15
b10: 10 92 be 00 sts 0x00BE, r1
b14: 02 c0 rjmp .+4 ; 0xb1a <UIMgr_processReceivedData+0x212>
b16: f0 92 62 00 sts 0x0062, r15
b1a: 20 91 b9 00 lds r18, 0x00B9
b1e: 80 91 b8 00 lds r24, 0x00B8
b22: 82 17 cp r24, r18
b24: 09 f0 breq .+2 ; 0xb28 <UIMgr_processReceivedData+0x220>
b26: fa ce rjmp .-524 ; 0x91c <UIMgr_processReceivedData+0x14>
b28: e8 94 clt
b2a: df 91 pop r29
b2c: cf 91 pop r28
b2e: 1f 91 pop r17
b30: 0f 91 pop r16
b32: ff 90 pop r15
b34: 08 95 ret
__asm__ __volatile__ (
a56: d9 01 movw r26, r18
a58: 09 2e mov r0, r25
a5a: 30 d3 rcall .+1632 ; 0x10bc <__eeprom_write_byte_1C1D1E>
a5c: d9 01 movw r26, r18
a5e: 21 d3 rcall .+1602 ; 0x10a2 <__eeprom_read_byte_1C1D1E>
a60: 80 2d mov r24, r0
a62: 98 81 ld r25, Y
a64: 89 17 cp r24, r25
a66: 31 f0 breq .+12 ; 0xa74 <UIMgr_processReceivedData+0x1ac>
 
00000b36 <UIMgr_dispatchEvent>:
b36: 80 31 cpi r24, 0x10 ; 16
b38: 29 f0 breq .+10 ; 0xb44 <UIMgr_dispatchEvent+0xe>
b3a: 80 39 cpi r24, 0x90 ; 144
b3c: 39 f0 breq .+14 ; 0xb4c <UIMgr_dispatchEvent+0x16>
b3e: 81 30 cpi r24, 0x01 ; 1
b40: 31 f4 brne .+12 ; 0xb4e <UIMgr_dispatchEvent+0x18>
b42: 02 c0 rjmp .+4 ; 0xb48 <UIMgr_dispatchEvent+0x12>
b44: 38 de rcall .-912 ; 0x7b6 <UIMgr_transmitPendingData>
b46: 08 95 ret
b48: df de rcall .-578 ; 0x908 <UIMgr_processReceivedData>
b4a: 08 95 ret
b4c: 0e de rcall .-996 ; 0x76a <UIMgr_flushTxBuffer>
b4e: 08 95 ret
void
eeprom_write_byte (uint8_t *addr,uint8_t value)
{
__asm__ __volatile__ (
a68: d9 01 movw r26, r18
a6a: 09 2e mov r0, r25
a6c: 27 d3 rcall .+1614 ; 0x10bc <__eeprom_write_byte_1C1D1E>
a6e: d9 01 movw r26, r18
a70: 18 d3 rcall .+1584 ; 0x10a2 <__eeprom_read_byte_1C1D1E>
a72: 80 2d mov r24, r0
a74: 4f 5f subi r20, 0xFF ; 255
a76: 80 91 bc 00 lds r24, 0x00BC
a7a: 48 17 cp r20, r24
a7c: 88 f2 brcs .-94 ; 0xa20 <UIMgr_processReceivedData+0x158>
a7e: 10 92 bc 00 sts 0x00BC, r1
a82: 80 e4 ldi r24, 0x40 ; 64
a84: f7 01 movw r30, r14
a86: 11 92 st Z+, r1
a88: 8a 95 dec r24
a8a: e9 f7 brne .-6 ; 0xa86 <UIMgr_processReceivedData+0x1be>
a8c: 43 c0 rjmp .+134 ; 0xb14 <UIMgr_processReceivedData+0x24c>
a8e: 20 32 cpi r18, 0x20 ; 32
a90: 09 f5 brne .+66 ; 0xad4 <UIMgr_processReceivedData+0x20c>
a92: 80 91 bc 00 lds r24, 0x00BC
a96: 88 23 and r24, r24
a98: 39 f4 brne .+14 ; 0xaa8 <UIMgr_processReceivedData+0x1e0>
a9a: 76 de rcall .-788 ; 0x788 <UIMgr_convertTokenToCmd>
a9c: 80 91 bc 00 lds r24, 0x00BC
aa0: 8f 5f subi r24, 0xFF ; 255
aa2: 80 93 bc 00 sts 0x00BC, r24
aa6: 36 c0 rjmp .+108 ; 0xb14 <UIMgr_processReceivedData+0x24c>
aa8: 99 27 eor r25, r25
aaa: 01 96 adiw r24, 0x01 ; 1
aac: 80 34 cpi r24, 0x40 ; 64
aae: 91 05 cpc r25, r1
ab0: 54 f0 brlt .+20 ; 0xac6 <UIMgr_processReceivedData+0x1fe>
ab2: 10 92 bd 00 sts 0x00BD, r1
ab6: 10 92 be 00 sts 0x00BE, r1
aba: 10 92 bc 00 sts 0x00BC, r1
abe: 89 e0 ldi r24, 0x09 ; 9
ac0: 80 93 62 00 sts 0x0062, r24
ac4: 27 c0 rjmp .+78 ; 0xb14 <UIMgr_processReceivedData+0x24c>
ac6: da de rcall .-588 ; 0x87c <UIMgr_convertTokenToValue>
ac8: 80 91 bc 00 lds r24, 0x00BC
acc: 8f 5f subi r24, 0xFF ; 255
ace: 80 93 bc 00 sts 0x00BC, r24
ad2: 20 c0 rjmp .+64 ; 0xb14 <UIMgr_processReceivedData+0x24c>
ad4: 82 2f mov r24, r18
ad6: 81 54 subi r24, 0x41 ; 65
ad8: 8a 31 cpi r24, 0x1A ; 26
ada: 18 f0 brcs .+6 ; 0xae2 <UIMgr_processReceivedData+0x21a>
adc: 8f 5e subi r24, 0xEF ; 239
ade: 8a 30 cpi r24, 0x0A ; 10
ae0: b0 f4 brcc .+44 ; 0xb0e <UIMgr_processReceivedData+0x246>
ae2: 80 91 be 00 lds r24, 0x00BE
ae6: f5 01 movw r30, r10
ae8: e8 0f add r30, r24
aea: f1 1d adc r31, r1
aec: 20 83 st Z, r18
aee: 90 91 bd 00 lds r25, 0x00BD
af2: 9f 5f subi r25, 0xFF ; 255
af4: 90 93 bd 00 sts 0x00BD, r25
af8: 8f 5f subi r24, 0xFF ; 255
afa: 80 93 be 00 sts 0x00BE, r24
afe: 94 30 cpi r25, 0x04 ; 4
b00: 48 f0 brcs .+18 ; 0xb14 <UIMgr_processReceivedData+0x24c>
b02: 89 e0 ldi r24, 0x09 ; 9
b04: 80 93 62 00 sts 0x0062, r24
b08: 10 92 be 00 sts 0x00BE, r1
b0c: 03 c0 rjmp .+6 ; 0xb14 <UIMgr_processReceivedData+0x24c>
b0e: 89 e0 ldi r24, 0x09 ; 9
b10: 80 93 62 00 sts 0x0062, r24
b14: 90 91 b9 00 lds r25, 0x00B9
b18: 80 91 b8 00 lds r24, 0x00B8
b1c: 89 17 cp r24, r25
b1e: 09 f0 breq .+2 ; 0xb22 <UIMgr_processReceivedData+0x25a>
b20: ff ce rjmp .-514 ; 0x920 <UIMgr_processReceivedData+0x58>
b22: e8 94 clt
b24: df 91 pop r29
b26: cf 91 pop r28
b28: 1f 91 pop r17
b2a: ff 90 pop r15
b2c: ef 90 pop r14
b2e: df 90 pop r13
b30: cf 90 pop r12
b32: bf 90 pop r11
b34: af 90 pop r10
b36: 9f 90 pop r9
b38: 8f 90 pop r8
b3a: 7f 90 pop r7
b3c: 6f 90 pop r6
b3e: 08 95 ret
 
00000b50 <UartInt_init>:
b50: 10 bc out 0x20, r1 ; 32
b52: 82 e1 ldi r24, 0x12 ; 18
b54: 89 b9 out 0x09, r24 ; 9
b56: 88 e9 ldi r24, 0x98 ; 152
b58: 8a b9 out 0x0a, r24 ; 10
b5a: 86 e8 ldi r24, 0x86 ; 134
b5c: 80 bd out 0x20, r24 ; 32
b5e: 82 e0 ldi r24, 0x02 ; 2
b60: 8b b9 out 0x0b, r24 ; 11
b62: 08 95 ret
00000b40 <UIMgr_dispatchEvent>:
b40: 80 31 cpi r24, 0x10 ; 16
b42: 29 f0 breq .+10 ; 0xb4e <UIMgr_dispatchEvent+0xe>
b44: 80 39 cpi r24, 0x90 ; 144
b46: 39 f0 breq .+14 ; 0xb56 <UIMgr_dispatchEvent+0x16>
b48: 81 30 cpi r24, 0x01 ; 1
b4a: 31 f4 brne .+12 ; 0xb58 <UIMgr_dispatchEvent+0x18>
b4c: 02 c0 rjmp .+4 ; 0xb52 <UIMgr_dispatchEvent+0x12>
b4e: 13 de rcall .-986 ; 0x776 <UIMgr_transmitPendingData>
b50: 08 95 ret
b52: ba de rcall .-652 ; 0x8c8 <UIMgr_processReceivedData>
b54: 08 95 ret
b56: f0 dd rcall .-1056 ; 0x738 <UIMgr_flushTxBuffer>
b58: 08 95 ret
 
00000b64 <UartInt_txByte>:
b64: 5d 9b sbis 0x0b, 5 ; 11
b66: fe cf rjmp .-4 ; 0xb64 <UartInt_txByte>
b68: 8c b9 out 0x0c, r24 ; 12
b6a: 08 95 ret
00000b5a <UartInt_init>:
b5a: 10 bc out 0x20, r1 ; 32
b5c: 82 e1 ldi r24, 0x12 ; 18
b5e: 89 b9 out 0x09, r24 ; 9
b60: 88 e9 ldi r24, 0x98 ; 152
b62: 8a b9 out 0x0a, r24 ; 10
b64: 86 e8 ldi r24, 0x86 ; 134
b66: 80 bd out 0x20, r24 ; 32
b68: 82 e0 ldi r24, 0x02 ; 2
b6a: 8b b9 out 0x0b, r24 ; 11
b6c: 08 95 ret
 
00000b6c <__vector_11>:
b6c: 1f 92 push r1
b6e: 0f 92 push r0
b70: 0f b6 in r0, 0x3f ; 63
b72: 0f 92 push r0
b74: 11 24 eor r1, r1
b76: 8f 93 push r24
b78: 9f 93 push r25
b7a: ef 93 push r30
b7c: ff 93 push r31
b7e: 80 91 b8 00 lds r24, 0x00B8
b82: 9c b1 in r25, 0x0c ; 12
b84: e4 e7 ldi r30, 0x74 ; 116
b86: f2 e0 ldi r31, 0x02 ; 2
b88: e8 0f add r30, r24
b8a: f1 1d adc r31, r1
b8c: 90 83 st Z, r25
b8e: 8f 5f subi r24, 0xFF ; 255
b90: 8f 71 andi r24, 0x1F ; 31
b92: 80 93 b8 00 sts 0x00B8, r24
b96: 80 91 70 00 lds r24, 0x0070
b9a: ec e6 ldi r30, 0x6C ; 108
b9c: f2 e0 ldi r31, 0x02 ; 2
b9e: e8 0f add r30, r24
ba0: f1 1d adc r31, r1
ba2: 91 e0 ldi r25, 0x01 ; 1
ba4: 90 83 st Z, r25
ba6: 8f 5f subi r24, 0xFF ; 255
ba8: 87 70 andi r24, 0x07 ; 7
baa: 80 93 70 00 sts 0x0070, r24
bae: ff 91 pop r31
bb0: ef 91 pop r30
bb2: 9f 91 pop r25
bb4: 8f 91 pop r24
bb6: 0f 90 pop r0
bb8: 0f be out 0x3f, r0 ; 63
bba: 0f 90 pop r0
bbc: 1f 90 pop r1
bbe: 18 95 reti
00000b6e <UartInt_txByte>:
b6e: 5d 9b sbis 0x0b, 5 ; 11
b70: fe cf rjmp .-4 ; 0xb6e <UartInt_txByte>
b72: 8c b9 out 0x0c, r24 ; 12
b74: 08 95 ret
 
00000bc0 <I2CInt_init>:
bc0: 11 b8 out 0x01, r1 ; 1
bc2: 88 e4 ldi r24, 0x48 ; 72
bc4: 80 b9 out 0x00, r24 ; 0
bc6: 08 95 ret
00000b76 <__vector_11>:
b76: 1f 92 push r1
b78: 0f 92 push r0
b7a: 0f b6 in r0, 0x3f ; 63
b7c: 0f 92 push r0
b7e: 11 24 eor r1, r1
b80: 8f 93 push r24
b82: 9f 93 push r25
b84: ef 93 push r30
b86: ff 93 push r31
b88: 80 91 b8 00 lds r24, 0x00B8
b8c: 9c b1 in r25, 0x0c ; 12
b8e: e4 e7 ldi r30, 0x74 ; 116
b90: f2 e0 ldi r31, 0x02 ; 2
b92: e8 0f add r30, r24
b94: f1 1d adc r31, r1
b96: 90 83 st Z, r25
b98: 8f 5f subi r24, 0xFF ; 255
b9a: 8f 71 andi r24, 0x1F ; 31
b9c: 80 93 b8 00 sts 0x00B8, r24
ba0: 80 91 70 00 lds r24, 0x0070
ba4: ec e6 ldi r30, 0x6C ; 108
ba6: f2 e0 ldi r31, 0x02 ; 2
ba8: e8 0f add r30, r24
baa: f1 1d adc r31, r1
bac: 91 e0 ldi r25, 0x01 ; 1
bae: 90 83 st Z, r25
bb0: 8f 5f subi r24, 0xFF ; 255
bb2: 87 70 andi r24, 0x07 ; 7
bb4: 80 93 70 00 sts 0x0070, r24
bb8: ff 91 pop r31
bba: ef 91 pop r30
bbc: 9f 91 pop r25
bbe: 8f 91 pop r24
bc0: 0f 90 pop r0
bc2: 0f be out 0x3f, r0 ; 63
bc4: 0f 90 pop r0
bc6: 1f 90 pop r1
bc8: 18 95 reti
 
00000bc8 <I2CInt_writeData>:
bc8: 98 2f mov r25, r24
bca: 80 91 08 01 lds r24, 0x0108
bce: 88 23 and r24, r24
bd0: e4 f3 brlt .-8 ; 0xbca <I2CInt_writeData+0x2>
bd2: 06 b6 in r0, 0x36 ; 54
bd4: 04 fc sbrc r0, 4
bd6: fd cf rjmp .-6 ; 0xbd2 <I2CInt_writeData+0xa>
bd8: 90 93 03 01 sts 0x0103, r25
bdc: 70 93 05 01 sts 0x0105, r23
be0: 60 93 04 01 sts 0x0104, r22
be4: 40 93 07 01 sts 0x0107, r20
be8: 10 92 06 01 sts 0x0106, r1
bec: 10 92 09 01 sts 0x0109, r1
bf0: 85 ea ldi r24, 0xA5 ; 165
bf2: 86 bf out 0x36, r24 ; 54
bf4: 80 91 08 01 lds r24, 0x0108
bf8: 80 68 ori r24, 0x80 ; 128
bfa: 80 93 08 01 sts 0x0108, r24
bfe: 08 95 ret
00000bca <I2CInt_init>:
bca: 11 b8 out 0x01, r1 ; 1
bcc: 88 e4 ldi r24, 0x48 ; 72
bce: 80 b9 out 0x00, r24 ; 0
bd0: 08 95 ret
 
00000c00 <I2CInt_readData>:
c00: 98 2f mov r25, r24
c02: 80 91 08 01 lds r24, 0x0108
c06: 88 23 and r24, r24
c08: e4 f3 brlt .-8 ; 0xc02 <I2CInt_readData+0x2>
c0a: 90 93 03 01 sts 0x0103, r25
c0e: 70 93 05 01 sts 0x0105, r23
c12: 60 93 04 01 sts 0x0104, r22
c16: 40 93 07 01 sts 0x0107, r20
c1a: 81 e0 ldi r24, 0x01 ; 1
c1c: 80 93 06 01 sts 0x0106, r24
c20: 10 92 09 01 sts 0x0109, r1
c24: 85 ea ldi r24, 0xA5 ; 165
c26: 86 bf out 0x36, r24 ; 54
c28: 80 91 08 01 lds r24, 0x0108
c2c: 80 68 ori r24, 0x80 ; 128
c2e: 80 93 08 01 sts 0x0108, r24
c32: 08 95 ret
00000bd2 <I2CInt_writeData>:
bd2: 98 2f mov r25, r24
bd4: 80 91 08 01 lds r24, 0x0108
bd8: 88 23 and r24, r24
bda: e4 f3 brlt .-8 ; 0xbd4 <I2CInt_writeData+0x2>
bdc: 06 b6 in r0, 0x36 ; 54
bde: 04 fc sbrc r0, 4
be0: fd cf rjmp .-6 ; 0xbdc <I2CInt_writeData+0xa>
be2: 90 93 03 01 sts 0x0103, r25
be6: 70 93 05 01 sts 0x0105, r23
bea: 60 93 04 01 sts 0x0104, r22
bee: 40 93 07 01 sts 0x0107, r20
bf2: 10 92 06 01 sts 0x0106, r1
bf6: 10 92 09 01 sts 0x0109, r1
bfa: 85 ea ldi r24, 0xA5 ; 165
bfc: 86 bf out 0x36, r24 ; 54
bfe: 80 91 08 01 lds r24, 0x0108
c02: 80 68 ori r24, 0x80 ; 128
c04: 80 93 08 01 sts 0x0108, r24
c08: 08 95 ret
 
00000c34 <I2CInt_isI2cBusy>:
c34: 80 91 08 01 lds r24, 0x0108
c38: 88 1f adc r24, r24
c3a: 88 27 eor r24, r24
c3c: 88 1f adc r24, r24
c3e: 99 27 eor r25, r25
c40: 08 95 ret
00000c0a <I2CInt_readData>:
c0a: 98 2f mov r25, r24
c0c: 80 91 08 01 lds r24, 0x0108
c10: 88 23 and r24, r24
c12: e4 f3 brlt .-8 ; 0xc0c <I2CInt_readData+0x2>
c14: 90 93 03 01 sts 0x0103, r25
c18: 70 93 05 01 sts 0x0105, r23
c1c: 60 93 04 01 sts 0x0104, r22
c20: 40 93 07 01 sts 0x0107, r20
c24: 81 e0 ldi r24, 0x01 ; 1
c26: 80 93 06 01 sts 0x0106, r24
c2a: 10 92 09 01 sts 0x0109, r1
c2e: 85 ea ldi r24, 0xA5 ; 165
c30: 86 bf out 0x36, r24 ; 54
c32: 80 91 08 01 lds r24, 0x0108
c36: 80 68 ori r24, 0x80 ; 128
c38: 80 93 08 01 sts 0x0108, r24
c3c: 08 95 ret
 
00000c42 <__vector_17>:
c42: 1f 92 push r1
c44: 0f 92 push r0
c46: 0f b6 in r0, 0x3f ; 63
c48: 0f 92 push r0
c4a: 11 24 eor r1, r1
c4c: 8f 93 push r24
c4e: 9f 93 push r25
c50: af 93 push r26
c52: bf 93 push r27
c54: ef 93 push r30
c56: ff 93 push r31
c58: 81 b1 in r24, 0x01 ; 1
c5a: 99 27 eor r25, r25
c5c: aa 27 eor r26, r26
c5e: bb 27 eor r27, r27
c60: 88 7f andi r24, 0xF8 ; 248
c62: 90 70 andi r25, 0x00 ; 0
c64: a0 70 andi r26, 0x00 ; 0
c66: b0 70 andi r27, 0x00 ; 0
c68: fc 01 movw r30, r24
c6a: 38 97 sbiw r30, 0x08 ; 8
c6c: e1 35 cpi r30, 0x51 ; 81
c6e: f1 05 cpc r31, r1
c70: 08 f0 brcs .+2 ; 0xc74 <__vector_17+0x32>
c72: 9a c0 rjmp .+308 ; 0xda8 <__vector_17+0x166>
c74: ed 5e subi r30, 0xED ; 237
c76: ff 4f sbci r31, 0xFF ; 255
c78: 09 94 ijmp
c7a: 80 91 09 01 lds r24, 0x0109
c7e: 83 30 cpi r24, 0x03 ; 3
c80: 48 f0 brcs .+18 ; 0xc94 <__vector_17+0x52>
c82: 86 b7 in r24, 0x36 ; 54
c84: 80 69 ori r24, 0x90 ; 144
c86: 86 bf out 0x36, r24 ; 54
c88: 80 91 08 01 lds r24, 0x0108
c8c: 8f 77 andi r24, 0x7F ; 127
c8e: 80 93 08 01 sts 0x0108, r24
c92: 8a c0 rjmp .+276 ; 0xda8 <__vector_17+0x166>
c94: 80 91 03 01 lds r24, 0x0103
c98: 90 91 06 01 lds r25, 0x0106
c9c: 88 0f add r24, r24
c9e: 89 0f add r24, r25
ca0: 83 b9 out 0x03, r24 ; 3
ca2: 86 b7 in r24, 0x36 ; 54
ca4: 8f 7d andi r24, 0xDF ; 223
ca6: 86 bf out 0x36, r24 ; 54
ca8: 7f c0 rjmp .+254 ; 0xda8 <__vector_17+0x166>
caa: 10 92 09 01 sts 0x0109, r1
cae: e0 91 04 01 lds r30, 0x0104
cb2: f0 91 05 01 lds r31, 0x0105
cb6: 80 81 ld r24, Z
cb8: 83 b9 out 0x03, r24 ; 3
cba: 31 96 adiw r30, 0x01 ; 1
cbc: f0 93 05 01 sts 0x0105, r31
cc0: e0 93 04 01 sts 0x0104, r30
cc4: 86 b7 in r24, 0x36 ; 54
cc6: 80 68 ori r24, 0x80 ; 128
cc8: 86 bf out 0x36, r24 ; 54
cca: 6e c0 rjmp .+220 ; 0xda8 <__vector_17+0x166>
ccc: 80 91 09 01 lds r24, 0x0109
cd0: 8f 5f subi r24, 0xFF ; 255
cd2: 80 93 09 01 sts 0x0109, r24
cd6: 86 b7 in r24, 0x36 ; 54
cd8: 80 6b ori r24, 0xB0 ; 176
cda: 86 bf out 0x36, r24 ; 54
cdc: 65 c0 rjmp .+202 ; 0xda8 <__vector_17+0x166>
cde: 80 91 07 01 lds r24, 0x0107
ce2: 81 50 subi r24, 0x01 ; 1
ce4: 80 93 07 01 sts 0x0107, r24
ce8: 80 91 07 01 lds r24, 0x0107
cec: 88 23 and r24, r24
cee: 79 f0 breq .+30 ; 0xd0e <__vector_17+0xcc>
cf0: e0 91 04 01 lds r30, 0x0104
cf4: f0 91 05 01 lds r31, 0x0105
cf8: 80 81 ld r24, Z
cfa: 83 b9 out 0x03, r24 ; 3
cfc: 31 96 adiw r30, 0x01 ; 1
cfe: f0 93 05 01 sts 0x0105, r31
d02: e0 93 04 01 sts 0x0104, r30
d06: 86 b7 in r24, 0x36 ; 54
d08: 80 68 ori r24, 0x80 ; 128
d0a: 86 bf out 0x36, r24 ; 54
d0c: 4d c0 rjmp .+154 ; 0xda8 <__vector_17+0x166>
d0e: 86 b7 in r24, 0x36 ; 54
d10: 80 69 ori r24, 0x90 ; 144
d12: 86 bf out 0x36, r24 ; 54
d14: 80 91 08 01 lds r24, 0x0108
d18: 8f 77 andi r24, 0x7F ; 127
d1a: 80 93 08 01 sts 0x0108, r24
d1e: 44 c0 rjmp .+136 ; 0xda8 <__vector_17+0x166>
d20: 86 b7 in r24, 0x36 ; 54
d22: 80 69 ori r24, 0x90 ; 144
d24: 86 bf out 0x36, r24 ; 54
d26: 80 91 08 01 lds r24, 0x0108
d2a: 8f 77 andi r24, 0x7F ; 127
d2c: 80 93 08 01 sts 0x0108, r24
d30: 3b c0 rjmp .+118 ; 0xda8 <__vector_17+0x166>
d32: 80 91 07 01 lds r24, 0x0107
d36: 81 50 subi r24, 0x01 ; 1
d38: 80 93 07 01 sts 0x0107, r24
d3c: 80 91 07 01 lds r24, 0x0107
d40: 88 23 and r24, r24
d42: 21 f0 breq .+8 ; 0xd4c <__vector_17+0x10a>
d44: 86 b7 in r24, 0x36 ; 54
d46: 80 6c ori r24, 0xC0 ; 192
d48: 86 bf out 0x36, r24 ; 54
d4a: 2e c0 rjmp .+92 ; 0xda8 <__vector_17+0x166>
d4c: 86 b7 in r24, 0x36 ; 54
d4e: 80 68 ori r24, 0x80 ; 128
d50: 86 bf out 0x36, r24 ; 54
d52: 2a c0 rjmp .+84 ; 0xda8 <__vector_17+0x166>
d54: e0 91 04 01 lds r30, 0x0104
d58: f0 91 05 01 lds r31, 0x0105
d5c: 83 b1 in r24, 0x03 ; 3
d5e: 80 83 st Z, r24
d60: 31 96 adiw r30, 0x01 ; 1
d62: f0 93 05 01 sts 0x0105, r31
d66: e0 93 04 01 sts 0x0104, r30
d6a: 80 91 07 01 lds r24, 0x0107
d6e: 81 50 subi r24, 0x01 ; 1
d70: 80 93 07 01 sts 0x0107, r24
d74: 80 91 07 01 lds r24, 0x0107
d78: 88 23 and r24, r24
d7a: 21 f0 breq .+8 ; 0xd84 <__vector_17+0x142>
d7c: 86 b7 in r24, 0x36 ; 54
d7e: 80 6c ori r24, 0xC0 ; 192
d80: 86 bf out 0x36, r24 ; 54
d82: 12 c0 rjmp .+36 ; 0xda8 <__vector_17+0x166>
d84: 86 b7 in r24, 0x36 ; 54
d86: 8f 7b andi r24, 0xBF ; 191
d88: 86 bf out 0x36, r24 ; 54
d8a: 0e c0 rjmp .+28 ; 0xda8 <__vector_17+0x166>
d8c: e0 91 04 01 lds r30, 0x0104
d90: f0 91 05 01 lds r31, 0x0105
d94: 83 b1 in r24, 0x03 ; 3
d96: 80 83 st Z, r24
d98: 86 b7 in r24, 0x36 ; 54
d9a: 80 69 ori r24, 0x90 ; 144
d9c: 86 bf out 0x36, r24 ; 54
d9e: 80 91 08 01 lds r24, 0x0108
da2: 8f 77 andi r24, 0x7F ; 127
da4: 80 93 08 01 sts 0x0108, r24
da8: ff 91 pop r31
daa: ef 91 pop r30
dac: bf 91 pop r27
dae: af 91 pop r26
db0: 9f 91 pop r25
db2: 8f 91 pop r24
db4: 0f 90 pop r0
db6: 0f be out 0x3f, r0 ; 63
00000c3e <I2CInt_isI2cBusy>:
c3e: 80 91 08 01 lds r24, 0x0108
c42: 88 1f adc r24, r24
c44: 88 27 eor r24, r24
c46: 88 1f adc r24, r24
c48: 99 27 eor r25, r25
c4a: 08 95 ret
 
00000c4c <__vector_17>:
c4c: 1f 92 push r1
c4e: 0f 92 push r0
c50: 0f b6 in r0, 0x3f ; 63
c52: 0f 92 push r0
c54: 11 24 eor r1, r1
c56: 8f 93 push r24
c58: 9f 93 push r25
c5a: af 93 push r26
c5c: bf 93 push r27
c5e: ef 93 push r30
c60: ff 93 push r31
c62: 81 b1 in r24, 0x01 ; 1
c64: 99 27 eor r25, r25
c66: aa 27 eor r26, r26
c68: bb 27 eor r27, r27
c6a: 88 7f andi r24, 0xF8 ; 248
c6c: 90 70 andi r25, 0x00 ; 0
c6e: a0 70 andi r26, 0x00 ; 0
c70: b0 70 andi r27, 0x00 ; 0
c72: fc 01 movw r30, r24
c74: 38 97 sbiw r30, 0x08 ; 8
c76: e1 35 cpi r30, 0x51 ; 81
c78: f1 05 cpc r31, r1
c7a: 08 f0 brcs .+2 ; 0xc7e <__vector_17+0x32>
c7c: 97 c0 rjmp .+302 ; 0xdac <__vector_17+0x160>
c7e: ed 5e subi r30, 0xED ; 237
c80: ff 4f sbci r31, 0xFF ; 255
c82: 09 94 ijmp
c84: 80 91 09 01 lds r24, 0x0109
c88: 83 30 cpi r24, 0x03 ; 3
c8a: 48 f0 brcs .+18 ; 0xc9e <__vector_17+0x52>
c8c: 86 b7 in r24, 0x36 ; 54
c8e: 80 69 ori r24, 0x90 ; 144
c90: 86 bf out 0x36, r24 ; 54
c92: 80 91 08 01 lds r24, 0x0108
c96: 8f 77 andi r24, 0x7F ; 127
c98: 80 93 08 01 sts 0x0108, r24
c9c: 87 c0 rjmp .+270 ; 0xdac <__vector_17+0x160>
c9e: 80 91 03 01 lds r24, 0x0103
ca2: 90 91 06 01 lds r25, 0x0106
ca6: 88 0f add r24, r24
ca8: 89 0f add r24, r25
caa: 83 b9 out 0x03, r24 ; 3
cac: 86 b7 in r24, 0x36 ; 54
cae: 8f 7d andi r24, 0xDF ; 223
cb0: 86 bf out 0x36, r24 ; 54
cb2: 7c c0 rjmp .+248 ; 0xdac <__vector_17+0x160>
cb4: 10 92 09 01 sts 0x0109, r1
cb8: e0 91 04 01 lds r30, 0x0104
cbc: f0 91 05 01 lds r31, 0x0105
cc0: 81 91 ld r24, Z+
cc2: 83 b9 out 0x03, r24 ; 3
cc4: f0 93 05 01 sts 0x0105, r31
cc8: e0 93 04 01 sts 0x0104, r30
ccc: 86 b7 in r24, 0x36 ; 54
cce: 80 68 ori r24, 0x80 ; 128
cd0: 86 bf out 0x36, r24 ; 54
cd2: 6c c0 rjmp .+216 ; 0xdac <__vector_17+0x160>
cd4: 80 91 09 01 lds r24, 0x0109
cd8: 8f 5f subi r24, 0xFF ; 255
cda: 80 93 09 01 sts 0x0109, r24
cde: 86 b7 in r24, 0x36 ; 54
ce0: 80 6b ori r24, 0xB0 ; 176
ce2: 86 bf out 0x36, r24 ; 54
ce4: 63 c0 rjmp .+198 ; 0xdac <__vector_17+0x160>
ce6: 80 91 07 01 lds r24, 0x0107
cea: 81 50 subi r24, 0x01 ; 1
cec: 80 93 07 01 sts 0x0107, r24
cf0: 80 91 07 01 lds r24, 0x0107
cf4: 88 23 and r24, r24
cf6: 71 f0 breq .+28 ; 0xd14 <__vector_17+0xc8>
cf8: e0 91 04 01 lds r30, 0x0104
cfc: f0 91 05 01 lds r31, 0x0105
d00: 81 91 ld r24, Z+
d02: 83 b9 out 0x03, r24 ; 3
d04: f0 93 05 01 sts 0x0105, r31
d08: e0 93 04 01 sts 0x0104, r30
d0c: 86 b7 in r24, 0x36 ; 54
d0e: 80 68 ori r24, 0x80 ; 128
d10: 86 bf out 0x36, r24 ; 54
d12: 4c c0 rjmp .+152 ; 0xdac <__vector_17+0x160>
d14: 86 b7 in r24, 0x36 ; 54
d16: 80 69 ori r24, 0x90 ; 144
d18: 86 bf out 0x36, r24 ; 54
d1a: 80 91 08 01 lds r24, 0x0108
d1e: 8f 77 andi r24, 0x7F ; 127
d20: 80 93 08 01 sts 0x0108, r24
d24: 43 c0 rjmp .+134 ; 0xdac <__vector_17+0x160>
d26: 86 b7 in r24, 0x36 ; 54
d28: 80 69 ori r24, 0x90 ; 144
d2a: 86 bf out 0x36, r24 ; 54
d2c: 80 91 08 01 lds r24, 0x0108
d30: 8f 77 andi r24, 0x7F ; 127
d32: 80 93 08 01 sts 0x0108, r24
d36: 3a c0 rjmp .+116 ; 0xdac <__vector_17+0x160>
d38: 80 91 07 01 lds r24, 0x0107
d3c: 81 50 subi r24, 0x01 ; 1
d3e: 80 93 07 01 sts 0x0107, r24
d42: 80 91 07 01 lds r24, 0x0107
d46: 88 23 and r24, r24
d48: 21 f0 breq .+8 ; 0xd52 <__vector_17+0x106>
d4a: 86 b7 in r24, 0x36 ; 54
d4c: 80 6c ori r24, 0xC0 ; 192
d4e: 86 bf out 0x36, r24 ; 54
d50: 2d c0 rjmp .+90 ; 0xdac <__vector_17+0x160>
d52: 86 b7 in r24, 0x36 ; 54
d54: 80 68 ori r24, 0x80 ; 128
d56: 86 bf out 0x36, r24 ; 54
d58: 29 c0 rjmp .+82 ; 0xdac <__vector_17+0x160>
d5a: e0 91 04 01 lds r30, 0x0104
d5e: f0 91 05 01 lds r31, 0x0105
d62: 83 b1 in r24, 0x03 ; 3
d64: 81 93 st Z+, r24
d66: f0 93 05 01 sts 0x0105, r31
d6a: e0 93 04 01 sts 0x0104, r30
d6e: 80 91 07 01 lds r24, 0x0107
d72: 81 50 subi r24, 0x01 ; 1
d74: 80 93 07 01 sts 0x0107, r24
d78: 80 91 07 01 lds r24, 0x0107
d7c: 88 23 and r24, r24
d7e: 21 f0 breq .+8 ; 0xd88 <__vector_17+0x13c>
d80: 86 b7 in r24, 0x36 ; 54
d82: 80 6c ori r24, 0xC0 ; 192
d84: 86 bf out 0x36, r24 ; 54
d86: 12 c0 rjmp .+36 ; 0xdac <__vector_17+0x160>
d88: 86 b7 in r24, 0x36 ; 54
d8a: 8f 7b andi r24, 0xBF ; 191
d8c: 86 bf out 0x36, r24 ; 54
d8e: 0e c0 rjmp .+28 ; 0xdac <__vector_17+0x160>
d90: e0 91 04 01 lds r30, 0x0104
d94: f0 91 05 01 lds r31, 0x0105
d98: 83 b1 in r24, 0x03 ; 3
d9a: 80 83 st Z, r24
d9c: 86 b7 in r24, 0x36 ; 54
d9e: 80 69 ori r24, 0x90 ; 144
da0: 86 bf out 0x36, r24 ; 54
da2: 80 91 08 01 lds r24, 0x0108
da6: 8f 77 andi r24, 0x7F ; 127
da8: 80 93 08 01 sts 0x0108, r24
dac: ff 91 pop r31
dae: ef 91 pop r30
db0: bf 91 pop r27
db2: af 91 pop r26
db4: 9f 91 pop r25
db6: 8f 91 pop r24
db8: 0f 90 pop r0
dba: 1f 90 pop r1
dbc: 18 95 reti
dba: 0f be out 0x3f, r0 ; 63
dbc: 0f 90 pop r0
dbe: 1f 90 pop r1
dc0: 18 95 reti
 
00000dbe <CamConfig_writeTxFifo>:
dbe: 20 91 0a 01 lds r18, 0x010A
dc2: e2 2f mov r30, r18
dc4: ff 27 eor r31, r31
dc6: ee 0f add r30, r30
dc8: ff 1f adc r31, r31
dca: ec 52 subi r30, 0x2C ; 44
dcc: fd 4f sbci r31, 0xFD ; 253
dce: 91 83 std Z+1, r25 ; 0x01
dd0: 80 83 st Z, r24
dd2: 2f 5f subi r18, 0xFF ; 255
dd4: 27 70 andi r18, 0x07 ; 7
dd6: 20 93 0a 01 sts 0x010A, r18
dda: 90 e0 ldi r25, 0x00 ; 0
ddc: 80 91 0b 01 lds r24, 0x010B
de0: 28 17 cp r18, r24
de2: 09 f4 brne .+2 ; 0xde6 <CamConfig_writeTxFifo+0x28>
de4: 91 e0 ldi r25, 0x01 ; 1
de6: 81 e0 ldi r24, 0x01 ; 1
de8: 89 27 eor r24, r25
dea: 99 27 eor r25, r25
dec: 08 95 ret
00000dc2 <CamConfig_writeTxFifo>:
dc2: 20 91 0a 01 lds r18, 0x010A
dc6: e2 2f mov r30, r18
dc8: ff 27 eor r31, r31
dca: ee 0f add r30, r30
dcc: ff 1f adc r31, r31
dce: ec 52 subi r30, 0x2C ; 44
dd0: fd 4f sbci r31, 0xFD ; 253
dd2: 91 83 std Z+1, r25 ; 0x01
dd4: 80 83 st Z, r24
dd6: 2f 5f subi r18, 0xFF ; 255
dd8: 27 70 andi r18, 0x07 ; 7
dda: 20 93 0a 01 sts 0x010A, r18
dde: 90 e0 ldi r25, 0x00 ; 0
de0: 80 91 0b 01 lds r24, 0x010B
de4: 28 17 cp r18, r24
de6: 09 f4 brne .+2 ; 0xdea <CamConfig_writeTxFifo+0x28>
de8: 91 e0 ldi r25, 0x01 ; 1
dea: 81 e0 ldi r24, 0x01 ; 1
dec: 89 27 eor r24, r25
dee: 99 27 eor r25, r25
df0: 08 95 ret
 
00000dee <CamConfig_setCamReg>:
dee: 28 2f mov r18, r24
df0: 36 2f mov r19, r22
df2: c9 01 movw r24, r18
df4: e4 df rcall .-56 ; 0xdbe <CamConfig_writeTxFifo>
df6: 08 95 ret
00000df2 <CamConfig_setCamReg>:
df2: 28 2f mov r18, r24
df4: 36 2f mov r19, r22
df6: c9 01 movw r24, r18
df8: e4 df rcall .-56 ; 0xdc2 <CamConfig_writeTxFifo>
dfa: 08 95 ret
 
00000df8 <CamConfig_sendFifoCmds>:
df8: 0f 93 push r16
dfa: 1f 93 push r17
dfc: cf 93 push r28
dfe: df 93 push r29
e00: cd b7 in r28, 0x3d ; 61
e02: de b7 in r29, 0x3e ; 62
e04: 22 97 sbiw r28, 0x02 ; 2
e06: 0f b6 in r0, 0x3f ; 63
e08: f8 94 cli
e0a: de bf out 0x3e, r29 ; 62
e0c: 0f be out 0x3f, r0 ; 63
e0e: cd bf out 0x3d, r28 ; 61
e10: 8e 01 movw r16, r28
e12: 0f 5f subi r16, 0xFF ; 255
e14: 1f 4f sbci r17, 0xFF ; 255
e16: 19 c0 rjmp .+50 ; 0xe4a <CamConfig_sendFifoCmds+0x52>
e18: e3 2f mov r30, r19
e1a: ff 27 eor r31, r31
e1c: ee 0f add r30, r30
e1e: ff 1f adc r31, r31
e20: ec 52 subi r30, 0x2C ; 44
e22: fd 4f sbci r31, 0xFD ; 253
e24: 91 81 ldd r25, Z+1 ; 0x01
e26: 20 81 ld r18, Z
e28: 83 2f mov r24, r19
e2a: 8f 5f subi r24, 0xFF ; 255
e2c: 87 70 andi r24, 0x07 ; 7
e2e: 80 93 0b 01 sts 0x010B, r24
e32: 9a 83 std Y+2, r25 ; 0x02
e34: 29 83 std Y+1, r18 ; 0x01
e36: 42 e0 ldi r20, 0x02 ; 2
e38: b8 01 movw r22, r16
e3a: 80 e6 ldi r24, 0x60 ; 96
e3c: c5 de rcall .-630 ; 0xbc8 <I2CInt_writeData>
e3e: 84 e6 ldi r24, 0x64 ; 100
e40: 90 e0 ldi r25, 0x00 ; 0
e42: 25 d0 rcall .+74 ; 0xe8e <Utility_delay>
e44: f7 de rcall .-530 ; 0xc34 <I2CInt_isI2cBusy>
e46: 81 30 cpi r24, 0x01 ; 1
e48: e9 f3 breq .-6 ; 0xe44 <CamConfig_sendFifoCmds+0x4c>
e4a: 30 91 0b 01 lds r19, 0x010B
e4e: 80 91 0a 01 lds r24, 0x010A
e52: 83 17 cp r24, r19
e54: 09 f7 brne .-62 ; 0xe18 <CamConfig_sendFifoCmds+0x20>
e56: 22 96 adiw r28, 0x02 ; 2
e58: 0f b6 in r0, 0x3f ; 63
e5a: f8 94 cli
e5c: de bf out 0x3e, r29 ; 62
e5e: 0f be out 0x3f, r0 ; 63
e60: cd bf out 0x3d, r28 ; 61
e62: df 91 pop r29
e64: cf 91 pop r28
e66: 1f 91 pop r17
e68: 0f 91 pop r16
e6a: 08 95 ret
00000dfc <CamConfig_sendFifoCmds>:
dfc: ef 92 push r14
dfe: ff 92 push r15
e00: 0f 93 push r16
e02: 1f 93 push r17
e04: cf 93 push r28
e06: df 93 push r29
e08: cd b7 in r28, 0x3d ; 61
e0a: de b7 in r29, 0x3e ; 62
e0c: 22 97 sbiw r28, 0x02 ; 2
e0e: 0f b6 in r0, 0x3f ; 63
e10: f8 94 cli
e12: de bf out 0x3e, r29 ; 62
e14: 0f be out 0x3f, r0 ; 63
e16: cd bf out 0x3d, r28 ; 61
e18: 0f 2e mov r0, r31
e1a: f4 ed ldi r31, 0xD4 ; 212
e1c: ef 2e mov r14, r31
e1e: f2 e0 ldi r31, 0x02 ; 2
e20: ff 2e mov r15, r31
e22: f0 2d mov r31, r0
e24: 8e 01 movw r16, r28
e26: 0f 5f subi r16, 0xFF ; 255
e28: 1f 4f sbci r17, 0xFF ; 255
e2a: 19 c0 rjmp .+50 ; 0xe5e <CamConfig_sendFifoCmds+0x62>
e2c: e3 2f mov r30, r19
e2e: ff 27 eor r31, r31
e30: ee 0f add r30, r30
e32: ff 1f adc r31, r31
e34: ee 0d add r30, r14
e36: ff 1d adc r31, r15
e38: 91 81 ldd r25, Z+1 ; 0x01
e3a: 20 81 ld r18, Z
e3c: 83 2f mov r24, r19
e3e: 8f 5f subi r24, 0xFF ; 255
e40: 87 70 andi r24, 0x07 ; 7
e42: 80 93 0b 01 sts 0x010B, r24
e46: 9a 83 std Y+2, r25 ; 0x02
e48: 29 83 std Y+1, r18 ; 0x01
e4a: 42 e0 ldi r20, 0x02 ; 2
e4c: b8 01 movw r22, r16
e4e: 80 e6 ldi r24, 0x60 ; 96
e50: c0 de rcall .-640 ; 0xbd2 <I2CInt_writeData>
e52: 84 e6 ldi r24, 0x64 ; 100
e54: 90 e0 ldi r25, 0x00 ; 0
e56: 27 d0 rcall .+78 ; 0xea6 <Utility_delay>
e58: f2 de rcall .-540 ; 0xc3e <I2CInt_isI2cBusy>
e5a: 81 30 cpi r24, 0x01 ; 1
e5c: e9 f3 breq .-6 ; 0xe58 <CamConfig_sendFifoCmds+0x5c>
e5e: 30 91 0b 01 lds r19, 0x010B
e62: 80 91 0a 01 lds r24, 0x010A
e66: 83 17 cp r24, r19
e68: 09 f7 brne .-62 ; 0xe2c <CamConfig_sendFifoCmds+0x30>
e6a: 22 96 adiw r28, 0x02 ; 2
e6c: 0f b6 in r0, 0x3f ; 63
e6e: f8 94 cli
e70: de bf out 0x3e, r29 ; 62
e72: 0f be out 0x3f, r0 ; 63
e74: cd bf out 0x3d, r28 ; 61
e76: df 91 pop r29
e78: cf 91 pop r28
e7a: 1f 91 pop r17
e7c: 0f 91 pop r16
e7e: ff 90 pop r15
e80: ef 90 pop r14
e82: 08 95 ret
 
00000e6c <CamConfig_init>:
e6c: 60 e2 ldi r22, 0x20 ; 32
e6e: 84 e1 ldi r24, 0x14 ; 20
e70: be df rcall .-132 ; 0xdee <CamConfig_setCamReg>
e72: 60 e4 ldi r22, 0x40 ; 64
e74: 89 e3 ldi r24, 0x39 ; 57
e76: bb df rcall .-138 ; 0xdee <CamConfig_setCamReg>
e78: 68 e2 ldi r22, 0x28 ; 40
e7a: 82 e1 ldi r24, 0x12 ; 18
e7c: b8 df rcall .-144 ; 0xdee <CamConfig_setCamReg>
e7e: 65 e0 ldi r22, 0x05 ; 5
e80: 88 e2 ldi r24, 0x28 ; 40
e82: b5 df rcall .-150 ; 0xdee <CamConfig_setCamReg>
e84: 61 e0 ldi r22, 0x01 ; 1
e86: 83 e1 ldi r24, 0x13 ; 19
e88: b2 df rcall .-156 ; 0xdee <CamConfig_setCamReg>
e8a: b6 df rcall .-148 ; 0xdf8 <CamConfig_sendFifoCmds>
e8c: 08 95 ret
00000e84 <CamConfig_init>:
e84: 60 e2 ldi r22, 0x20 ; 32
e86: 84 e1 ldi r24, 0x14 ; 20
e88: b4 df rcall .-152 ; 0xdf2 <CamConfig_setCamReg>
e8a: 60 e4 ldi r22, 0x40 ; 64
e8c: 89 e3 ldi r24, 0x39 ; 57
e8e: b1 df rcall .-158 ; 0xdf2 <CamConfig_setCamReg>
e90: 68 e2 ldi r22, 0x28 ; 40
e92: 82 e1 ldi r24, 0x12 ; 18
e94: ae df rcall .-164 ; 0xdf2 <CamConfig_setCamReg>
e96: 65 e0 ldi r22, 0x05 ; 5
e98: 88 e2 ldi r24, 0x28 ; 40
e9a: ab df rcall .-170 ; 0xdf2 <CamConfig_setCamReg>
e9c: 61 e0 ldi r22, 0x01 ; 1
e9e: 83 e1 ldi r24, 0x13 ; 19
ea0: a8 df rcall .-176 ; 0xdf2 <CamConfig_setCamReg>
ea2: ac df rcall .-168 ; 0xdfc <CamConfig_sendFifoCmds>
ea4: 08 95 ret
 
00000e8e <Utility_delay>:
e8e: cf 93 push r28
e90: df 93 push r29
e92: cd b7 in r28, 0x3d ; 61
e94: de b7 in r29, 0x3e ; 62
e96: 24 97 sbiw r28, 0x04 ; 4
e98: 0f b6 in r0, 0x3f ; 63
e9a: f8 94 cli
e9c: de bf out 0x3e, r29 ; 62
e9e: 0f be out 0x3f, r0 ; 63
ea0: cd bf out 0x3d, r28 ; 61
ea2: 9c 01 movw r18, r24
ea4: 1a 82 std Y+2, r1 ; 0x02
ea6: 19 82 std Y+1, r1 ; 0x01
ea8: 1c 82 std Y+4, r1 ; 0x04
eaa: 1b 82 std Y+3, r1 ; 0x03
eac: 1a 82 std Y+2, r1 ; 0x02
eae: 19 82 std Y+1, r1 ; 0x01
eb0: 89 81 ldd r24, Y+1 ; 0x01
eb2: 9a 81 ldd r25, Y+2 ; 0x02
eb4: 82 17 cp r24, r18
eb6: 93 07 cpc r25, r19
eb8: e0 f4 brcc .+56 ; 0xef2 <Utility_delay+0x64>
eba: 1c 82 std Y+4, r1 ; 0x04
ebc: 1b 82 std Y+3, r1 ; 0x03
ebe: 8b 81 ldd r24, Y+3 ; 0x03
ec0: 9c 81 ldd r25, Y+4 ; 0x04
ec2: 88 5e subi r24, 0xE8 ; 232
ec4: 93 40 sbci r25, 0x03 ; 3
ec6: 58 f4 brcc .+22 ; 0xede <Utility_delay+0x50>
ec8: 00 00 nop
eca: 8b 81 ldd r24, Y+3 ; 0x03
ecc: 9c 81 ldd r25, Y+4 ; 0x04
ece: 01 96 adiw r24, 0x01 ; 1
ed0: 9c 83 std Y+4, r25 ; 0x04
ed2: 8b 83 std Y+3, r24 ; 0x03
ed4: 8b 81 ldd r24, Y+3 ; 0x03
ed6: 9c 81 ldd r25, Y+4 ; 0x04
ed8: 88 5e subi r24, 0xE8 ; 232
eda: 93 40 sbci r25, 0x03 ; 3
edc: a8 f3 brcs .-22 ; 0xec8 <Utility_delay+0x3a>
ede: 89 81 ldd r24, Y+1 ; 0x01
ee0: 9a 81 ldd r25, Y+2 ; 0x02
ee2: 01 96 adiw r24, 0x01 ; 1
ee4: 9a 83 std Y+2, r25 ; 0x02
ee6: 89 83 std Y+1, r24 ; 0x01
ee8: 89 81 ldd r24, Y+1 ; 0x01
eea: 9a 81 ldd r25, Y+2 ; 0x02
eec: 82 17 cp r24, r18
eee: 93 07 cpc r25, r19
ef0: 20 f3 brcs .-56 ; 0xeba <Utility_delay+0x2c>
ef2: 24 96 adiw r28, 0x04 ; 4
ef4: 0f b6 in r0, 0x3f ; 63
ef6: f8 94 cli
ef8: de bf out 0x3e, r29 ; 62
efa: 0f be out 0x3f, r0 ; 63
efc: cd bf out 0x3d, r28 ; 61
efe: df 91 pop r29
f00: cf 91 pop r28
f02: 08 95 ret
00000ea6 <Utility_delay>:
ea6: cf 93 push r28
ea8: df 93 push r29
eaa: cd b7 in r28, 0x3d ; 61
eac: de b7 in r29, 0x3e ; 62
eae: 24 97 sbiw r28, 0x04 ; 4
eb0: 0f b6 in r0, 0x3f ; 63
eb2: f8 94 cli
eb4: de bf out 0x3e, r29 ; 62
eb6: 0f be out 0x3f, r0 ; 63
eb8: cd bf out 0x3d, r28 ; 61
eba: 9c 01 movw r18, r24
ebc: 1a 82 std Y+2, r1 ; 0x02
ebe: 19 82 std Y+1, r1 ; 0x01
ec0: 1c 82 std Y+4, r1 ; 0x04
ec2: 1b 82 std Y+3, r1 ; 0x03
ec4: 1a 82 std Y+2, r1 ; 0x02
ec6: 19 82 std Y+1, r1 ; 0x01
ec8: 89 81 ldd r24, Y+1 ; 0x01
eca: 9a 81 ldd r25, Y+2 ; 0x02
ecc: 82 17 cp r24, r18
ece: 93 07 cpc r25, r19
ed0: e0 f4 brcc .+56 ; 0xf0a <Utility_delay+0x64>
ed2: 1c 82 std Y+4, r1 ; 0x04
ed4: 1b 82 std Y+3, r1 ; 0x03
ed6: 8b 81 ldd r24, Y+3 ; 0x03
ed8: 9c 81 ldd r25, Y+4 ; 0x04
eda: 88 5e subi r24, 0xE8 ; 232
edc: 93 40 sbci r25, 0x03 ; 3
ede: 58 f4 brcc .+22 ; 0xef6 <Utility_delay+0x50>
ee0: 00 00 nop
ee2: 8b 81 ldd r24, Y+3 ; 0x03
ee4: 9c 81 ldd r25, Y+4 ; 0x04
ee6: 01 96 adiw r24, 0x01 ; 1
ee8: 9c 83 std Y+4, r25 ; 0x04
eea: 8b 83 std Y+3, r24 ; 0x03
eec: 8b 81 ldd r24, Y+3 ; 0x03
eee: 9c 81 ldd r25, Y+4 ; 0x04
ef0: 88 5e subi r24, 0xE8 ; 232
ef2: 93 40 sbci r25, 0x03 ; 3
ef4: a8 f3 brcs .-22 ; 0xee0 <Utility_delay+0x3a>
ef6: 89 81 ldd r24, Y+1 ; 0x01
ef8: 9a 81 ldd r25, Y+2 ; 0x02
efa: 01 96 adiw r24, 0x01 ; 1
efc: 9a 83 std Y+2, r25 ; 0x02
efe: 89 83 std Y+1, r24 ; 0x01
f00: 89 81 ldd r24, Y+1 ; 0x01
f02: 9a 81 ldd r25, Y+2 ; 0x02
f04: 82 17 cp r24, r18
f06: 93 07 cpc r25, r19
f08: 20 f3 brcs .-56 ; 0xed2 <Utility_delay+0x2c>
f0a: 24 96 adiw r28, 0x04 ; 4
f0c: 0f b6 in r0, 0x3f ; 63
f0e: f8 94 cli
f10: de bf out 0x3e, r29 ; 62
f12: 0f be out 0x3f, r0 ; 63
f14: cd bf out 0x3d, r28 ; 61
f16: df 91 pop r29
f18: cf 91 pop r28
f1a: 08 95 ret
 
00000f04 <DebugInt_init>:
f04: 8e 9a sbi 0x11, 6 ; 17
f06: 96 9a sbi 0x12, 6 ; 18
f08: 84 ef ldi r24, 0xF4 ; 244
f0a: 91 e0 ldi r25, 0x01 ; 1
f0c: c0 df rcall .-128 ; 0xe8e <Utility_delay>
f0e: 96 98 cbi 0x12, 6 ; 18
f10: 84 ef ldi r24, 0xF4 ; 244
f12: 91 e0 ldi r25, 0x01 ; 1
f14: bc df rcall .-136 ; 0xe8e <Utility_delay>
f16: 96 9a sbi 0x12, 6 ; 18
f18: 84 ef ldi r24, 0xF4 ; 244
f1a: 91 e0 ldi r25, 0x01 ; 1
f1c: b8 df rcall .-144 ; 0xe8e <Utility_delay>
f1e: 96 98 cbi 0x12, 6 ; 18
00000f1c <DebugInt_init>:
***********************************************************/
void DebugInt_init(void)
{
/* set PortD pin6 for output */
DDRD |= 0x40;
f1c: 8e 9a sbi 0x11, 6 ; 17
/* turn on LED */
PORTD |= 0x40;
f1e: 96 9a sbi 0x12, 6 ; 18
Utility_delay(500);
f20: 84 ef ldi r24, 0xF4 ; 244
f22: 91 e0 ldi r25, 0x01 ; 1
f24: b4 df rcall .-152 ; 0xe8e <Utility_delay>
f26: 96 9a sbi 0x12, 6 ; 18
f24: c0 df rcall .-128 ; 0xea6 <Utility_delay>
PORTD &= 0xBF;
f26: 96 98 cbi 0x12, 6 ; 18
Utility_delay(500);
f28: 84 ef ldi r24, 0xF4 ; 244
f2a: 91 e0 ldi r25, 0x01 ; 1
f2c: b0 df rcall .-160 ; 0xe8e <Utility_delay>
f2e: 96 98 cbi 0x12, 6 ; 18
f2c: bc df rcall .-136 ; 0xea6 <Utility_delay>
PORTD |= 0x40;
f2e: 96 9a sbi 0x12, 6 ; 18
Utility_delay(500);
f30: 84 ef ldi r24, 0xF4 ; 244
f32: 91 e0 ldi r25, 0x01 ; 1
f34: ac df rcall .-168 ; 0xe8e <Utility_delay>
f36: 96 9a sbi 0x12, 6 ; 18
f38: 08 95 ret
f34: b8 df rcall .-144 ; 0xea6 <Utility_delay>
PORTD &= 0xBF;
f36: 96 98 cbi 0x12, 6 ; 18
Utility_delay(500);
f38: 84 ef ldi r24, 0xF4 ; 244
f3a: 91 e0 ldi r25, 0x01 ; 1
f3c: b4 df rcall .-152 ; 0xea6 <Utility_delay>
PORTD |= 0x40;
f3e: 96 9a sbi 0x12, 6 ; 18
Utility_delay(500);
f40: 84 ef ldi r24, 0xF4 ; 244
f42: 91 e0 ldi r25, 0x01 ; 1
f44: b0 df rcall .-160 ; 0xea6 <Utility_delay>
PORTD &= 0xBF;
f46: 96 98 cbi 0x12, 6 ; 18
Utility_delay(500);
f48: 84 ef ldi r24, 0xF4 ; 244
f4a: 91 e0 ldi r25, 0x01 ; 1
f4c: ac df rcall .-168 ; 0xea6 <Utility_delay>
PORTD |= 0x40;
f4e: 96 9a sbi 0x12, 6 ; 18
f50: 08 95 ret
 
00000f3a <CamIntAsm_waitForNewTrackingFrame>:
00000f52 <CamIntAsm_waitForNewTrackingFrame>:
; set, and the function will return.
;*****************************************************************
CamIntAsm_waitForNewTrackingFrame:
sbi _SFR_IO_ADDR(PORTD),PD6 ; For testing...
f3a: 96 9a sbi 0x12, 6 ; 18
f52: 96 9a sbi 0x12, 6 ; 18
cbi _SFR_IO_ADDR(PORTD),PD6
f3c: 96 98 cbi 0x12, 6 ; 18
f54: 96 98 cbi 0x12, 6 ; 18
sleep
f3e: 88 95 sleep
f56: 88 95 sleep
 
00000f40 <CamIntAsm_acquireTrackingLine>:
00000f58 <CamIntAsm_acquireTrackingLine>:
 
;*****************************************************************
; REMEMBER...everything from here on out is critically timed to be
2250,68 → 2556,68
 
CamIntAsm_acquireTrackingLine:
brts _cleanUp
f40: e6 f1 brts .+120 ; 0xfba <_cleanUp>
f58: e6 f1 brts .+120 ; 0xfd2 <_cleanUp>
;sbi _SFR_IO_ADDR(PORTD),PD6 ; For testing...
;cbi _SFR_IO_ADDR(PORTD),PD6
in tmp1,_SFR_IO_ADDR(TCCR1B) ; Enable the PCLK line to actually
f42: 3e b5 in r19, 0x2e ; 46
f5a: 3e b5 in r19, 0x2e ; 46
ori tmp1, 0x07 ; feed Timer1
f44: 37 60 ori r19, 0x07 ; 7
f5c: 37 60 ori r19, 0x07 ; 7
out _SFR_IO_ADDR(TCCR1B),tmp1
f46: 3e bd out 0x2e, r19 ; 46
f5e: 3e bd out 0x2e, r19 ; 46
; The line is about to start...
ldi pixelCount,0 ; Initialize the RLE stats...
f48: 00 e0 ldi r16, 0x00 ; 0
f60: 00 e0 ldi r16, 0x00 ; 0
ldi pixelRunStart,PIXEL_RUN_START_INITIAL ; Remember, we always calculate
f4a: 10 e5 ldi r17, 0x50 ; 80
f62: 10 e5 ldi r17, 0x50 ; 80
; the pixel run length as
; TCNT1L - pixelRunStart
ldi lastColor,0x00 ; clear out the last color before we start
f4c: 20 e0 ldi r18, 0x00 ; 0
f64: 20 e0 ldi r18, 0x00 ; 0
mov XH,currLineBuffHigh ; Load the pointer to the current line
f4e: b9 2f mov r27, r25
f66: b9 2f mov r27, r25
mov XL,currLineBuffLow ; buffer into the X pointer regs
f50: a8 2f mov r26, r24
f68: a8 2f mov r26, r24
mov ZH,colorMapHigh ; Load the pointers to the membership
f52: f7 2f mov r31, r23
f6a: f7 2f mov r31, r23
mov ZL,colorMapLow ; lookup tables (ZL and YL will be overwritten
f54: e6 2f mov r30, r22
f6c: e6 2f mov r30, r22
mov YH,colorMapHigh ; as soon as we start reading data) to Z and Y
f56: d7 2f mov r29, r23
f6e: d7 2f mov r29, r23
in tmp1, _SFR_IO_ADDR(TIMSK) ; enable TIMER1 to start counting
f58: 39 b7 in r19, 0x39 ; 57
f70: 39 b7 in r19, 0x39 ; 57
ori tmp1, ENABLE_PCLK_TIMER1_OVERFLOW_BITMASK ; external PCLK pulses and interrupt on
f5a: 34 60 ori r19, 0x04 ; 4
f72: 34 60 ori r19, 0x04 ; 4
out _SFR_IO_ADDR(TIMSK),tmp1 ; overflow
f5c: 39 bf out 0x39, r19 ; 57
f74: 39 bf out 0x39, r19 ; 57
ldi tmp1,PIXEL_RUN_START_INITIAL ; set up the TCNT1 to overflow (and
f5e: 30 e5 ldi r19, 0x50 ; 80
f76: 30 e5 ldi r19, 0x50 ; 80
ldi tmp2,0xFF ; interrupts) after 176 pixels
f60: 4f ef ldi r20, 0xFF ; 255
f78: 4f ef ldi r20, 0xFF ; 255
out _SFR_IO_ADDR(TCNT1H),tmp2
f62: 4d bd out 0x2d, r20 ; 45
f7a: 4d bd out 0x2d, r20 ; 45
out _SFR_IO_ADDR(TCNT1L),tmp1
f64: 3c bd out 0x2c, r19 ; 44
f7c: 3c bd out 0x2c, r19 ; 44
mov YL,colorMapLow
f66: c6 2f mov r28, r22
f7e: c6 2f mov r28, r22
in tmp1, _SFR_IO_ADDR(GICR) ; enable the HREF interrupt...remember, we
f68: 3b b7 in r19, 0x3b ; 59
f80: 3b b7 in r19, 0x3b ; 59
; only use this interrupt to synchronize
; the beginning of the line
ori tmp1, HREF_INTERRUPT_ENABLE_MASK
f6a: 30 68 ori r19, 0x80 ; 128
f82: 30 68 ori r19, 0x80 ; 128
out _SFR_IO_ADDR(GICR), tmp1
f6c: 3b bf out 0x3b, r19 ; 59
f84: 3b bf out 0x3b, r19 ; 59
 
00000f6e <_trackFrame>:
00000f86 <_trackFrame>:
;*******************************************************************************************
; Track Frame handler
2319,9 → 2625,9
_trackFrame:
sbi _SFR_IO_ADDR(PORTD),PD6
f6e: 96 9a sbi 0x12, 6 ; 18
f86: 96 9a sbi 0x12, 6 ; 18
sleep ; ...And we wait...
f70: 88 95 sleep
f88: 88 95 sleep
; Returning from the interrupt/sleep wakeup will consume
; 14 clock cycles (7 to wakeup from idle sleep, 3 to vector, and 4 to return)
2328,50 → 2634,50
 
; Disable the HREF interrupt
cbi _SFR_IO_ADDR(PORTD),PD6
f72: 96 98 cbi 0x12, 6 ; 18
f8a: 96 98 cbi 0x12, 6 ; 18
in tmp1, _SFR_IO_ADDR(GICR)
f74: 3b b7 in r19, 0x3b ; 59
f8c: 3b b7 in r19, 0x3b ; 59
andi tmp1, HREF_INTERRUPT_DISABLE_MASK
f76: 3f 77 andi r19, 0x7F ; 127
f8e: 3f 77 andi r19, 0x7F ; 127
out _SFR_IO_ADDR(GICR), tmp1
f78: 3b bf out 0x3b, r19 ; 59
f90: 3b bf out 0x3b, r19 ; 59
; A couple of NOPs are needed here to sync up the pixel data...the number (2)
; of NOPs was determined emperically by trial and error.
nop
f7a: 00 00 nop
f92: 00 00 nop
...
 
00000f7e <_acquirePixelBlock>:
00000f96 <_acquirePixelBlock>:
nop
_acquirePixelBlock: ; Clock Cycle Count
in ZL,RB_PORT ; sample the red value (PINB) (1)
f7e: e6 b3 in r30, 0x16 ; 22
f96: e6 b3 in r30, 0x16 ; 22
in YL,G_PORT ; sample the green value (PINC) (1)
f80: c3 b3 in r28, 0x13 ; 19
f98: c3 b3 in r28, 0x13 ; 19
andi YL,0x0F ; clear the high nibble (1)
f82: cf 70 andi r28, 0x0F ; 15
f9a: cf 70 andi r28, 0x0F ; 15
ldd color,Z+RED_MEM_OFFSET ; lookup the red membership (2)
f84: 30 81 ld r19, Z
f9c: 30 81 ld r19, Z
in ZL,RB_PORT ; sample the blue value (PINB) (1)
f86: e6 b3 in r30, 0x16 ; 22
f9e: e6 b3 in r30, 0x16 ; 22
ldd greenData,Y+GREEN_MEM_OFFSET; lookup the green membership (2)
f88: 48 89 ldd r20, Y+16 ; 0x10
fa0: 48 89 ldd r20, Y+16 ; 0x10
ldd blueData,Z+BLUE_MEM_OFFSET ; lookup the blue membership (2)
f8a: 50 a1 ldd r21, Z+32 ; 0x20
fa2: 50 a1 ldd r21, Z+32 ; 0x20
and color,greenData ; mask memberships together (1)
f8c: 34 23 and r19, r20
fa4: 34 23 and r19, r20
and color,blueData ; to produce the final color (1)
f8e: 35 23 and r19, r21
fa6: 35 23 and r19, r21
brts _cleanUpTrackingLine ; if some interrupt routine has (1...not set)
f90: 76 f0 brts .+28 ; 0xfae <_cleanUpTrackingLine>
fa8: 76 f0 brts .+28 ; 0xfc6 <_cleanUpTrackingLine>
; come in and set our T flag in
; SREG, then we need to hop out
; and blow away this frames data (common cleanup)
cp color,lastColor ; check to see if the run continues (1)
f92: 32 17 cp r19, r18
faa: 32 17 cp r19, r18
breq _acquirePixelBlock ; (2...equal)
f94: a1 f3 breq .-24 ; 0xf7e <_acquirePixelBlock>
fac: a1 f3 breq .-24 ; 0xf96 <_acquirePixelBlock>
; ___________
; 16 clock cycles
; (16 clock cycles = 1 uS = 1 pixelBlock time)
2378,57 → 2684,57
; Toggle the debug line to indicate a color change
sbi _SFR_IO_ADDR(PORTD),PD6
f96: 96 9a sbi 0x12, 6 ; 18
fae: 96 9a sbi 0x12, 6 ; 18
nop
f98: 00 00 nop
fb0: 00 00 nop
cbi _SFR_IO_ADDR(PORTD),PD6
f9a: 96 98 cbi 0x12, 6 ; 18
fb2: 96 98 cbi 0x12, 6 ; 18
mov tmp2,pixelRunStart ; get the count value of the
f9c: 41 2f mov r20, r17
fb4: 41 2f mov r20, r17
; current pixel run
in pixelCount,_SFR_IO_ADDR(TCNT1L) ; get the current TCNT1 value
f9e: 0c b5 in r16, 0x2c ; 44
fb6: 0c b5 in r16, 0x2c ; 44
mov pixelRunStart,pixelCount ; reload pixelRunStart for the
fa0: 10 2f mov r17, r16
fb8: 10 2f mov r17, r16
; next run
sub pixelCount,tmp2 ; pixelCount = TCNT1L - pixelRunStart
fa2: 04 1b sub r16, r20
fba: 04 1b sub r16, r20
st X+,lastColor ; record the color run in the current line buffer
fa4: 2d 93 st X+, r18
fbc: 2d 93 st X+, r18
st X+,pixelCount ; with its length
fa6: 0d 93 st X+, r16
fbe: 0d 93 st X+, r16
mov lastColor,color ; set lastColor so we can figure out when it changes
fa8: 23 2f mov r18, r19
fc0: 23 2f mov r18, r19
nop ; waste one more cycle for a total of 16
faa: 00 00 nop
fc2: 00 00 nop
rjmp _acquirePixelBlock
fac: e8 cf rjmp .-48 ; 0xf7e <_acquirePixelBlock>
fc4: e8 cf rjmp .-48 ; 0xf96 <_acquirePixelBlock>
 
00000fae <_cleanUpTrackingLine>:
00000fc6 <_cleanUpTrackingLine>:
; _cleanUpTrackingLine is used to write the last run length block off to the currentLineBuffer so
; that all 176 pixels in the line are accounted for.
_cleanUpTrackingLine:
ldi pixelCount,0xFF ; the length of the last run is ALWAYS 0xFF minus the last
fae: 0f ef ldi r16, 0xFF ; 255
fc6: 0f ef ldi r16, 0xFF ; 255
sub pixelCount,pixelRunStart ; pixelRunStart
fb0: 01 1b sub r16, r17
fc8: 01 1b sub r16, r17
inc pixelCount ; increment pixelCount since we actually need to account
fb2: 03 95 inc r16
fca: 03 95 inc r16
; for the overflow of TCNT1
st X+,color ; record the color run in the current line buffer
fb4: 3d 93 st X+, r19
fcc: 3d 93 st X+, r19
st X,pixelCount
fb6: 0c 93 st X, r16
fce: 0c 93 st X, r16
rjmp _cleanUp
fb8: 00 c0 rjmp .+0 ; 0xfba <_cleanUp>
fd0: 00 c0 rjmp .+0 ; 0xfd2 <_cleanUp>
 
00000fba <_cleanUp>:
00000fd2 <_cleanUp>:
_cleanUpDumpLine:
; NOTE: If serial data is received, to interrupt the tracking of a line, we'll
2446,27 → 2752,27
_cleanUp:
; Disable the external clocking of the Timer1 counter
in tmp1, _SFR_IO_ADDR(TCCR1B)
fba: 3e b5 in r19, 0x2e ; 46
fd2: 3e b5 in r19, 0x2e ; 46
andi tmp1, 0xF8
fbc: 38 7f andi r19, 0xF8 ; 248
fd4: 38 7f andi r19, 0xF8 ; 248
out _SFR_IO_ADDR(TCCR1B),tmp1
fbe: 3e bd out 0x2e, r19 ; 46
fd6: 3e bd out 0x2e, r19 ; 46
; Toggle the debug line to indicate the line is complete
sbi _SFR_IO_ADDR(PORTD),PD6
fc0: 96 9a sbi 0x12, 6 ; 18
fd8: 96 9a sbi 0x12, 6 ; 18
cbi _SFR_IO_ADDR(PORTD),PD6
fc2: 96 98 cbi 0x12, 6 ; 18
fda: 96 98 cbi 0x12, 6 ; 18
clt ; clear out the T bit since we have detected
fc4: e8 94 clt
fdc: e8 94 clt
 
00000fc6 <_exit>:
00000fde <_exit>:
; the interruption and are exiting to handle it
_exit:
ret
fc6: 08 95 ret
fde: 08 95 ret
 
00000fc8 <CamIntAsm_waitForNewDumpFrame>:
00000fe0 <CamIntAsm_waitForNewDumpFrame>:
;*****************************************************************
; Function Name: CamIntAsm_waitForNewDumpFrame
2486,13 → 2792,13
;*****************************************************************
CamIntAsm_waitForNewDumpFrame:
sbi _SFR_IO_ADDR(PORTD),PD6 ; For testing...
fc8: 96 9a sbi 0x12, 6 ; 18
fe0: 96 9a sbi 0x12, 6 ; 18
cbi _SFR_IO_ADDR(PORTD),PD6
fca: 96 98 cbi 0x12, 6 ; 18
fe2: 96 98 cbi 0x12, 6 ; 18
sleep
fcc: 88 95 sleep
fe4: 88 95 sleep
 
00000fce <CamIntAsm_acquireDumpLine>:
00000fe6 <CamIntAsm_acquireDumpLine>:
 
;*****************************************************************
; REMEMBER...everything from here on out is critically timed to be
2501,55 → 2807,55
 
CamIntAsm_acquireDumpLine:
brts _cleanUp
fce: ae f3 brts .-22 ; 0xfba <_cleanUp>
fe6: ae f3 brts .-22 ; 0xfd2 <_cleanUp>
;sbi _SFR_IO_ADDR(PORTD),PD6 ; For testing...
;cbi _SFR_IO_ADDR(PORTD),PD6
mov XH,currLineBuffHigh ; Load the pointer to the current line
fd0: b9 2f mov r27, r25
fe8: b9 2f mov r27, r25
mov XL,currLineBuffLow ; buffer into the X pointer regs
fd2: a8 2f mov r26, r24
fea: a8 2f mov r26, r24
 
mov YH,prevLineBuffHigh ; Load the pointer to the previous line
fd4: d7 2f mov r29, r23
fec: d7 2f mov r29, r23
mov YL,prevLineBuffLow ; buffer into the Y pointer regs
fd6: c6 2f mov r28, r22
fee: c6 2f mov r28, r22
ldi tmp1,PIXEL_RUN_START_INITIAL ; set up the TCNT1 to overflow (and
fd8: 30 e5 ldi r19, 0x50 ; 80
ff0: 30 e5 ldi r19, 0x50 ; 80
ldi tmp2,0xFF ; interrupts) after 176 pixels
fda: 4f ef ldi r20, 0xFF ; 255
ff2: 4f ef ldi r20, 0xFF ; 255
out _SFR_IO_ADDR(TCNT1H),tmp2
fdc: 4d bd out 0x2d, r20 ; 45
ff4: 4d bd out 0x2d, r20 ; 45
out _SFR_IO_ADDR(TCNT1L),tmp1
fde: 3c bd out 0x2c, r19 ; 44
ff6: 3c bd out 0x2c, r19 ; 44
in tmp1, _SFR_IO_ADDR(TCCR1B) ; Enable the PCLK line to actually
fe0: 3e b5 in r19, 0x2e ; 46
ff8: 3e b5 in r19, 0x2e ; 46
ori tmp1, 0x07 ; feed Timer1
fe2: 37 60 ori r19, 0x07 ; 7
ffa: 37 60 ori r19, 0x07 ; 7
out _SFR_IO_ADDR(TCCR1B),tmp1
fe4: 3e bd out 0x2e, r19 ; 46
ffc: 3e bd out 0x2e, r19 ; 46
nop
fe6: 00 00 nop
ffe: 00 00 nop
in tmp1, _SFR_IO_ADDR(TIMSK) ; enable TIMER1 to start counting
fe8: 39 b7 in r19, 0x39 ; 57
1000: 39 b7 in r19, 0x39 ; 57
ori tmp1, ENABLE_PCLK_TIMER1_OVERFLOW_BITMASK ; external PCLK pulses and interrupt on
fea: 34 60 ori r19, 0x04 ; 4
1002: 34 60 ori r19, 0x04 ; 4
out _SFR_IO_ADDR(TIMSK),tmp1 ; overflow
fec: 39 bf out 0x39, r19 ; 57
1004: 39 bf out 0x39, r19 ; 57
in tmp1, _SFR_IO_ADDR(GICR) ; enable the HREF interrupt...remember, we
fee: 3b b7 in r19, 0x3b ; 59
1006: 3b b7 in r19, 0x3b ; 59
; only use this interrupt to synchronize
; the beginning of the line
ori tmp1, HREF_INTERRUPT_ENABLE_MASK
ff0: 30 68 ori r19, 0x80 ; 128
1008: 30 68 ori r19, 0x80 ; 128
out _SFR_IO_ADDR(GICR), tmp1
ff2: 3b bf out 0x3b, r19 ; 59
100a: 3b bf out 0x3b, r19 ; 59
 
00000ff4 <_dumpFrame>:
0000100c <_dumpFrame>:
;*******************************************************************************************
; Dump Frame handler
2557,21 → 2863,21
_dumpFrame:
sbi _SFR_IO_ADDR(PORTD),PD6
ff4: 96 9a sbi 0x12, 6 ; 18
100c: 96 9a sbi 0x12, 6 ; 18
sleep ; ...And we wait...
ff6: 88 95 sleep
100e: 88 95 sleep
 
cbi _SFR_IO_ADDR(PORTD),PD6
ff8: 96 98 cbi 0x12, 6 ; 18
1010: 96 98 cbi 0x12, 6 ; 18
in tmp1, _SFR_IO_ADDR(GICR) ; disable the HREF interrupt
ffa: 3b b7 in r19, 0x3b ; 59
1012: 3b b7 in r19, 0x3b ; 59
andi tmp1, HREF_INTERRUPT_DISABLE_MASK ; so we don't get interrupted
ffc: 3f 77 andi r19, 0x7F ; 127
1014: 3f 77 andi r19, 0x7F ; 127
out _SFR_IO_ADDR(GICR), tmp1 ; while dumping the line
ffe: 3b bf out 0x3b, r19 ; 59
1016: 3b bf out 0x3b, r19 ; 59
...
 
00001002 <_sampleDumpPixel>:
0000101a <_sampleDumpPixel>:
nop ; Remember...if we ever remove the "cbi" instruction above,
; we need to add two more NOPs to cover this
2586,15 → 2892,15
; do that here (only 8 instruction cycles :-) )
_sampleDumpPixel:
in tmp1,G_PORT ; sample the G value (1)
1002: 33 b3 in r19, 0x13 ; 19
101a: 33 b3 in r19, 0x13 ; 19
in tmp2,RB_PORT ; sample the R/B value (1)
1004: 46 b3 in r20, 0x16 ; 22
101c: 46 b3 in r20, 0x16 ; 22
st X+,tmp1 ; store to the currLineBuff and inc ptrs(2)
1006: 3d 93 st X+, r19
101e: 3d 93 st X+, r19
st Y+,tmp2 ; store to the prevLineBuff and inc ptrs(2)
1008: 49 93 st Y+, r20
1020: 49 93 st Y+, r20
brtc _sampleDumpPixel ; loop back unless flag is set (2...if not set)
100a: de f7 brtc .-10 ; 0x1002 <_sampleDumpPixel>
1022: de f7 brtc .-10 ; 0x101a <_sampleDumpPixel>
; ___________
; 8 cycles normally
2601,9 → 2907,9
; if we make it here, it means the T flag is set, and we must have been interrupted
; so we need to exit (what if we were interrupted for serial? should we disable it?)
rjmp _cleanUpDumpLine
100c: d6 cf rjmp .-84 ; 0xfba <_cleanUp>
1024: d6 cf rjmp .-84 ; 0xfd2 <_cleanUp>
 
0000100e <__vector_1>:
00001026 <__vector_1>:
 
;***********************************************************
; Function Name: <interrupt handler for External Interrupt0>
2618,9 → 2924,9
SIG_INTERRUPT0:
; This will wake us up when VSYNC transitions high...we just want to return
reti
100e: 18 95 reti
1026: 18 95 reti
 
00001010 <__vector_2>:
00001028 <__vector_2>:
;***********************************************************
; Function Name: <interrupt handler for External Interrupt1>
2636,9 → 2942,9
SIG_INTERRUPT1:
; This will wake us up when HREF transitions high...we just want to return
reti
1010: 18 95 reti
1028: 18 95 reti
 
00001012 <__vector_8>:
0000102a <__vector_8>:
;***********************************************************
; Function Name: <interrupt handler for Timer0 overflow>
2674,20 → 2980,20
;***********************************************************
SIG_OVERFLOW1:
lds tmp1,fastEventBitmask ; set a flag indicating
1012: 30 91 72 00 lds r19, 0x0072
102a: 30 91 72 00 lds r19, 0x0072
ori tmp1,FEV_ACQUIRE_LINE_COMPLETE ; a line is complete
1016: 31 60 ori r19, 0x01 ; 1
102e: 31 60 ori r19, 0x01 ; 1
sts fastEventBitmask,tmp1
1018: 30 93 72 00 sts 0x0072, r19
1030: 30 93 72 00 sts 0x0072, r19
set ; set the T bit in SREG
101c: 68 94 set
1034: 68 94 set
;sbi _SFR_IO_ADDR(PORTD),PD6 ; For testing...
;cbi _SFR_IO_ADDR(PORTD),PD6 ; For testing...
 
reti
101e: 18 95 reti
1036: 18 95 reti
 
00001020 <__vector_default>:
00001038 <__vector_default>:
 
; This is the default handler for all interrupts that don't
; have handler routines specified for them.
2694,94 → 3000,94
.global __vector_default
__vector_default:
reti
1020: 18 95 reti
1038: 18 95 reti
 
00001022 <atoi>:
1022: fc 01 movw r30, r24
1024: 88 27 eor r24, r24
1026: 99 27 eor r25, r25
1028: e8 94 clt
102a: 21 91 ld r18, Z+
102c: 22 23 and r18, r18
102e: e9 f0 breq .+58 ; 0x106a <atoi+0x48>
1030: 20 32 cpi r18, 0x20 ; 32
1032: d9 f3 breq .-10 ; 0x102a <atoi+0x8>
1034: 29 30 cpi r18, 0x09 ; 9
1036: c9 f3 breq .-14 ; 0x102a <atoi+0x8>
1038: 2a 30 cpi r18, 0x0A ; 10
103a: b9 f3 breq .-18 ; 0x102a <atoi+0x8>
103c: 2c 30 cpi r18, 0x0C ; 12
103e: a9 f3 breq .-22 ; 0x102a <atoi+0x8>
1040: 2d 30 cpi r18, 0x0D ; 13
1042: 99 f3 breq .-26 ; 0x102a <atoi+0x8>
1044: 26 37 cpi r18, 0x76 ; 118
1046: 89 f3 breq .-30 ; 0x102a <atoi+0x8>
1048: 2b 32 cpi r18, 0x2B ; 43
104a: 19 f0 breq .+6 ; 0x1052 <atoi+0x30>
104c: 2d 32 cpi r18, 0x2D ; 45
104e: 21 f4 brne .+8 ; 0x1058 <atoi+0x36>
1050: 68 94 set
1052: 21 91 ld r18, Z+
1054: 22 23 and r18, r18
1056: 49 f0 breq .+18 ; 0x106a <atoi+0x48>
1058: 20 33 cpi r18, 0x30 ; 48
105a: 3c f0 brlt .+14 ; 0x106a <atoi+0x48>
105c: 2a 33 cpi r18, 0x3A ; 58
105e: 2c f4 brge .+10 ; 0x106a <atoi+0x48>
1060: 20 53 subi r18, 0x30 ; 48
1062: 0b d0 rcall .+22 ; 0x107a <__mulhi_const_10>
1064: 82 0f add r24, r18
1066: 91 1d adc r25, r1
1068: f4 cf rjmp .-24 ; 0x1052 <atoi+0x30>
106a: 81 15 cp r24, r1
106c: 91 05 cpc r25, r1
106e: 21 f0 breq .+8 ; 0x1078 <atoi+0x56>
1070: 1e f4 brtc .+6 ; 0x1078 <atoi+0x56>
1072: 80 95 com r24
1074: 90 95 com r25
1076: 01 96 adiw r24, 0x01 ; 1
1078: 08 95 ret
0000103a <atoi>:
103a: fc 01 movw r30, r24
103c: 88 27 eor r24, r24
103e: 99 27 eor r25, r25
1040: e8 94 clt
1042: 21 91 ld r18, Z+
1044: 22 23 and r18, r18
1046: e9 f0 breq .+58 ; 0x1082 <atoi+0x48>
1048: 20 32 cpi r18, 0x20 ; 32
104a: d9 f3 breq .-10 ; 0x1042 <atoi+0x8>
104c: 29 30 cpi r18, 0x09 ; 9
104e: c9 f3 breq .-14 ; 0x1042 <atoi+0x8>
1050: 2a 30 cpi r18, 0x0A ; 10
1052: b9 f3 breq .-18 ; 0x1042 <atoi+0x8>
1054: 2c 30 cpi r18, 0x0C ; 12
1056: a9 f3 breq .-22 ; 0x1042 <atoi+0x8>
1058: 2d 30 cpi r18, 0x0D ; 13
105a: 99 f3 breq .-26 ; 0x1042 <atoi+0x8>
105c: 26 37 cpi r18, 0x76 ; 118
105e: 89 f3 breq .-30 ; 0x1042 <atoi+0x8>
1060: 2b 32 cpi r18, 0x2B ; 43
1062: 19 f0 breq .+6 ; 0x106a <atoi+0x30>
1064: 2d 32 cpi r18, 0x2D ; 45
1066: 21 f4 brne .+8 ; 0x1070 <atoi+0x36>
1068: 68 94 set
106a: 21 91 ld r18, Z+
106c: 22 23 and r18, r18
106e: 49 f0 breq .+18 ; 0x1082 <atoi+0x48>
1070: 20 33 cpi r18, 0x30 ; 48
1072: 3c f0 brlt .+14 ; 0x1082 <atoi+0x48>
1074: 2a 33 cpi r18, 0x3A ; 58
1076: 2c f4 brge .+10 ; 0x1082 <atoi+0x48>
1078: 20 53 subi r18, 0x30 ; 48
107a: 0b d0 rcall .+22 ; 0x1092 <__mulhi_const_10>
107c: 82 0f add r24, r18
107e: 91 1d adc r25, r1
1080: f4 cf rjmp .-24 ; 0x106a <atoi+0x30>
1082: 81 15 cp r24, r1
1084: 91 05 cpc r25, r1
1086: 21 f0 breq .+8 ; 0x1090 <atoi+0x56>
1088: 1e f4 brtc .+6 ; 0x1090 <atoi+0x56>
108a: 80 95 com r24
108c: 90 95 com r25
108e: 01 96 adiw r24, 0x01 ; 1
1090: 08 95 ret
 
0000107a <__mulhi_const_10>:
107a: 7a e0 ldi r23, 0x0A ; 10
107c: 97 9f mul r25, r23
107e: 90 2d mov r25, r0
1080: 87 9f mul r24, r23
1082: 80 2d mov r24, r0
1084: 91 0d add r25, r1
1086: 11 24 eor r1, r1
1088: 08 95 ret
00001092 <__mulhi_const_10>:
1092: 7a e0 ldi r23, 0x0A ; 10
1094: 97 9f mul r25, r23
1096: 90 2d mov r25, r0
1098: 87 9f mul r24, r23
109a: 80 2d mov r24, r0
109c: 91 0d add r25, r1
109e: 11 24 eor r1, r1
10a0: 08 95 ret
 
0000108a <__eeprom_read_byte_1C1D1E>:
108a: e1 99 sbic 0x1c, 1 ; 28
108c: fe cf rjmp .-4 ; 0x108a <__eeprom_read_byte_1C1D1E>
108e: bf bb out 0x1f, r27 ; 31
1090: ae bb out 0x1e, r26 ; 30
1092: e0 9a sbi 0x1c, 0 ; 28
1094: 11 96 adiw r26, 0x01 ; 1
1096: 0d b2 in r0, 0x1d ; 29
1098: 08 95 ret
000010a2 <__eeprom_read_byte_1C1D1E>:
10a2: e1 99 sbic 0x1c, 1 ; 28
10a4: fe cf rjmp .-4 ; 0x10a2 <__eeprom_read_byte_1C1D1E>
10a6: bf bb out 0x1f, r27 ; 31
10a8: ae bb out 0x1e, r26 ; 30
10aa: e0 9a sbi 0x1c, 0 ; 28
10ac: 11 96 adiw r26, 0x01 ; 1
10ae: 0d b2 in r0, 0x1d ; 29
10b0: 08 95 ret
 
0000109a <__eeprom_read_block_1C1D1E>:
109a: f7 df rcall .-18 ; 0x108a <__eeprom_read_byte_1C1D1E>
109c: 01 92 st Z+, r0
109e: 1a 94 dec r1
10a0: e1 f7 brne .-8 ; 0x109a <__eeprom_read_block_1C1D1E>
10a2: 08 95 ret
 
000010a4 <__eeprom_write_byte_1C1D1E>:
10a4: e1 99 sbic 0x1c, 1 ; 28
10a6: fe cf rjmp .-4 ; 0x10a4 <__eeprom_write_byte_1C1D1E>
10a8: bf bb out 0x1f, r27 ; 31
10aa: ae bb out 0x1e, r26 ; 30
10ac: 0d ba out 0x1d, r0 ; 29
10ae: 11 96 adiw r26, 0x01 ; 1
10b0: 0f b6 in r0, 0x3f ; 63
10b2: f8 94 cli
10b4: e2 9a sbi 0x1c, 2 ; 28
10b6: e1 9a sbi 0x1c, 1 ; 28
10b8: 0f be out 0x3f, r0 ; 63
000010b2 <__eeprom_read_block_1C1D1E>:
10b2: f7 df rcall .-18 ; 0x10a2 <__eeprom_read_byte_1C1D1E>
10b4: 01 92 st Z+, r0
10b6: 1a 94 dec r1
10b8: e1 f7 brne .-8 ; 0x10b2 <__eeprom_read_block_1C1D1E>
10ba: 08 95 ret
 
000010bc <_exit>:
10bc: ff cf rjmp .-2 ; 0x10bc <_exit>
000010bc <__eeprom_write_byte_1C1D1E>:
10bc: e1 99 sbic 0x1c, 1 ; 28
10be: fe cf rjmp .-4 ; 0x10bc <__eeprom_write_byte_1C1D1E>
10c0: bf bb out 0x1f, r27 ; 31
10c2: ae bb out 0x1e, r26 ; 30
10c4: 0d ba out 0x1d, r0 ; 29
10c6: 11 96 adiw r26, 0x01 ; 1
10c8: 0f b6 in r0, 0x3f ; 63
10ca: f8 94 cli
10cc: e2 9a sbi 0x1c, 2 ; 28
10ce: e1 9a sbi 0x1c, 1 ; 28
10d0: 0f be out 0x3f, r0 ; 63
10d2: 08 95 ret
 
000010d4 <_exit>:
10d4: ff cf rjmp .-2 ; 0x10d4 <_exit>