Subversion Repositories svnkaklik

Rev

Rev 410 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 410 Rev 484
Line 1... Line 1...
1
GAS LISTING /tmp/ccQRbLT3.s 			page 1
1
GAS LISTING /tmp/cc0XjEMJ.s 			page 1
2
 
2
 
3
 
3
 
4
   1               		.file	"FrameMgr.c"
4
   1               		.file	"FrameMgr.c"
5
   2               		.arch atmega8
-
 
6
   3               	__SREG__ = 0x3f
5
   2               	__SREG__ = 0x3f
7
   4               	__SP_H__ = 0x3e
6
   3               	__SP_H__ = 0x3e
8
   5               	__SP_L__ = 0x3d
7
   4               	__SP_L__ = 0x3d
9
   6               	__tmp_reg__ = 0
8
   5               	__tmp_reg__ = 0
10
   7               	__zero_reg__ = 1
9
   6               	__zero_reg__ = 1
11
   8               		.global __do_copy_data
10
   7               		.global __do_copy_data
12
   9               		.global __do_clear_bss
11
   8               		.global __do_clear_bss
13
  10               		.stabs	"/home/kaklik/projects/programy/Atmel_C/AVRcam/",100,0,2,.Ltext0
12
   9               		.stabs	"/home/kaklik/projects/programy/C/avr/AVRcam/",100,0,2,.Ltext0
14
  11               		.stabs	"FrameMgr.c",100,0,2,.Ltext0
13
  10               		.stabs	"FrameMgr.c",100,0,2,.Ltext0
15
  12               		.text
14
  11               		.text
16
  13               	.Ltext0:
15
  12               	.Ltext0:
17
  14               		.stabs	"gcc2_compiled.",60,0,0,0
16
  13               		.stabs	"gcc2_compiled.",60,0,0,0
18
  15               		.stabs	"int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
17
  14               		.stabs	"int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
19
  16               		.stabs	"char:t(0,2)=@s8;r(0,2);0;255;",128,0,0,0
18
  15               		.stabs	"char:t(0,2)=@s8;r(0,2);0;255;",128,0,0,0
20
  17               		.stabs	"long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,0,0
19
  16               		.stabs	"long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,0,0
21
  18               		.stabs	"unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,0,0
20
  17               		.stabs	"unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,0,0
22
  19               		.stabs	"long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,0,0
21
  18               		.stabs	"long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,0,0
23
  20               		.stabs	"long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,
22
  19               		.stabs	"long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,
24
  21               		.stabs	"long long unsigned int:t(0,7)=@s64;r(0,7);0;01777777777777777777777;",128,0,0,0
23
  20               		.stabs	"long long unsigned int:t(0,7)=@s64;r(0,7);0;01777777777777777777777;",128,0,0,0
25
  22               		.stabs	"short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
24
  21               		.stabs	"short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
26
  23               		.stabs	"short unsigned int:t(0,9)=r(0,9);0;0177777;",128,0,0,0
25
  22               		.stabs	"short unsigned int:t(0,9)=r(0,9);0;0177777;",128,0,0,0
27
  24               		.stabs	"signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0
26
  23               		.stabs	"signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0
28
  25               		.stabs	"unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0
27
  24               		.stabs	"unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0
29
  26               		.stabs	"float:t(0,12)=r(0,1);4;0;",128,0,0,0
28
  25               		.stabs	"float:t(0,12)=r(0,1);4;0;",128,0,0,0
30
  27               		.stabs	"double:t(0,13)=r(0,1);4;0;",128,0,0,0
29
  26               		.stabs	"double:t(0,13)=r(0,1);4;0;",128,0,0,0
31
  28               		.stabs	"long double:t(0,14)=r(0,1);4;0;",128,0,0,0
30
  27               		.stabs	"long double:t(0,14)=r(0,1);4;0;",128,0,0,0
32
  29               		.stabs	"void:t(0,15)=(0,15)",128,0,0,0
31
  28               		.stabs	"void:t(0,15)=(0,15)",128,0,0,0
33
  30               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/stdlib.h",130,0,0,0
32
  29               		.stabs	"/usr/lib/gcc/avr/4.2.1/../../../../avr/include/stdlib.h",130,0,0,0
34
  31               		.stabs	"/usr/lib/gcc/avr/4.1.0/include/stddef.h",130,0,0,0
33
  30               		.stabs	"/usr/lib/gcc/avr/4.2.1/include/stddef.h",130,0,0,0
35
  32               		.stabs	"size_t:t(2,1)=(0,4)",128,0,214,0
34
  31               		.stabs	"size_t:t(2,1)=(0,4)",128,0,214,0
36
  33               		.stabs	"wchar_t:t(2,2)=(0,1)",128,0,326,0
35
  32               		.stabs	"wchar_t:t(2,2)=(0,1)",128,0,326,0
37
  34               		.stabn	162,0,0,0
36
  33               		.stabn	162,0,0,0
38
  35               		.stabs	"div_t:t(1,1)=(1,2)=s4quot:(0,1),0,16;rem:(0,1),16,16;;",128,0,69,0
37
  34               		.stabs	"div_t:t(1,1)=(1,2)=s4quot:(0,1),0,16;rem:(0,1),16,16;;",128,0,69,0
39
  36               		.stabs	"ldiv_t:t(1,3)=(1,4)=s8quot:(0,3),0,32;rem:(0,3),32,32;;",128,0,75,0
38
  35               		.stabs	"ldiv_t:t(1,3)=(1,4)=s8quot:(0,3),0,32;rem:(0,3),32,32;;",128,0,75,0
40
  37               		.stabs	"__compar_fn_t:t(1,5)=(1,6)=*(1,7)=f(0,1)",128,0,78,0
39
  36               		.stabs	"__compar_fn_t:t(1,5)=(1,6)=*(1,7)=f(0,1)",128,0,78,0
41
  38               		.stabn	162,0,0,0
40
  37               		.stabn	162,0,0,0
42
  39               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/io.h",130,0,0,0
41
  38               		.stabs	"/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/io.h",130,0,0,0
43
  40               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/sfr_defs.h",130,0,0,0
42
  39               		.stabs	"/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/sfr_defs.h",130,0,0,0
44
  41               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/inttypes.h",130,0,0,0
43
  40               		.stabs	"/usr/lib/gcc/avr/4.2.1/../../../../avr/include/inttypes.h",130,0,0,0
45
  42               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/stdint.h",130,0,0,0
44
  41               		.stabs	"/usr/lib/gcc/avr/4.2.1/../../../../avr/include/stdint.h",130,0,0,0
46
  43               		.stabs	"int8_t:t(6,1)=(0,10)",128,0,116,0
45
  42               		.stabs	"int8_t:t(6,1)=(0,10)",128,0,116,0
47
  44               		.stabs	"uint8_t:t(6,2)=(0,11)",128,0,117,0
46
  43               		.stabs	"uint8_t:t(6,2)=(0,11)",128,0,117,0
48
  45               		.stabs	"int16_t:t(6,3)=(0,1)",128,0,118,0
47
  44               		.stabs	"int16_t:t(6,3)=(0,1)",128,0,118,0
49
  46               		.stabs	"uint16_t:t(6,4)=(0,4)",128,0,119,0
48
  45               		.stabs	"uint16_t:t(6,4)=(0,4)",128,0,119,0
50
  47               		.stabs	"int32_t:t(6,5)=(0,3)",128,0,120,0
49
  46               		.stabs	"int32_t:t(6,5)=(0,3)",128,0,120,0
51
  48               		.stabs	"uint32_t:t(6,6)=(0,5)",128,0,121,0
50
  47               		.stabs	"uint32_t:t(6,6)=(0,5)",128,0,121,0
52
  49               		.stabs	"int64_t:t(6,7)=(0,6)",128,0,122,0
51
  48               		.stabs	"int64_t:t(6,7)=(0,6)",128,0,122,0
53
  50               		.stabs	"uint64_t:t(6,8)=(0,7)",128,0,123,0
52
  49               		.stabs	"uint64_t:t(6,8)=(0,7)",128,0,123,0
54
  51               		.stabs	"intptr_t:t(6,9)=(6,3)",128,0,135,0
53
  50               		.stabs	"intptr_t:t(6,9)=(6,3)",128,0,135,0
55
  52               		.stabs	"uintptr_t:t(6,10)=(6,4)",128,0,140,0
54
  51               		.stabs	"uintptr_t:t(6,10)=(6,4)",128,0,140,0
56
  53               		.stabs	"int_least8_t:t(6,11)=(6,1)",128,0,152,0
55
  52               		.stabs	"int_least8_t:t(6,11)=(6,1)",128,0,152,0
57
  54               		.stabs	"uint_least8_t:t(6,12)=(6,2)",128,0,157,0
56
  53               		.stabs	"uint_least8_t:t(6,12)=(6,2)",128,0,157,0
58
  55               		.stabs	"int_least16_t:t(6,13)=(6,3)",128,0,162,0
57
  54               		.stabs	"int_least16_t:t(6,13)=(6,3)",128,0,162,0
59
  56               		.stabs	"uint_least16_t:t(6,14)=(6,4)",128,0,167,0
58
  55               		.stabs	"uint_least16_t:t(6,14)=(6,4)",128,0,167,0
60
  57               		.stabs	"int_least32_t:t(6,15)=(6,5)",128,0,172,0
59
  56               		.stabs	"int_least32_t:t(6,15)=(6,5)",128,0,172,0
-
 
60
  57               		.stabs	"uint_least32_t:t(6,16)=(6,6)",128,0,177,0
61
GAS LISTING /tmp/ccQRbLT3.s 			page 2
61
GAS LISTING /tmp/cc0XjEMJ.s 			page 2
62
 
62
 
63
 
63
 
64
  58               		.stabs	"uint_least32_t:t(6,16)=(6,6)",128,0,177,0
-
 
65
  59               		.stabs	"int_least64_t:t(6,17)=(6,7)",128,0,182,0
64
  58               		.stabs	"int_least64_t:t(6,17)=(6,7)",128,0,182,0
66
  60               		.stabs	"uint_least64_t:t(6,18)=(6,8)",128,0,187,0
65
  59               		.stabs	"uint_least64_t:t(6,18)=(6,8)",128,0,187,0
67
  61               		.stabs	"int_fast8_t:t(6,19)=(6,1)",128,0,200,0
66
  60               		.stabs	"int_fast8_t:t(6,19)=(6,1)",128,0,200,0
68
  62               		.stabs	"uint_fast8_t:t(6,20)=(6,2)",128,0,205,0
67
  61               		.stabs	"uint_fast8_t:t(6,20)=(6,2)",128,0,205,0
69
  63               		.stabs	"int_fast16_t:t(6,21)=(6,3)",128,0,210,0
68
  62               		.stabs	"int_fast16_t:t(6,21)=(6,3)",128,0,210,0
70
  64               		.stabs	"uint_fast16_t:t(6,22)=(6,4)",128,0,215,0
69
  63               		.stabs	"uint_fast16_t:t(6,22)=(6,4)",128,0,215,0
71
  65               		.stabs	"int_fast32_t:t(6,23)=(6,5)",128,0,220,0
70
  64               		.stabs	"int_fast32_t:t(6,23)=(6,5)",128,0,220,0
72
  66               		.stabs	"uint_fast32_t:t(6,24)=(6,6)",128,0,225,0
71
  65               		.stabs	"uint_fast32_t:t(6,24)=(6,6)",128,0,225,0
73
  67               		.stabs	"int_fast64_t:t(6,25)=(6,7)",128,0,230,0
72
  66               		.stabs	"int_fast64_t:t(6,25)=(6,7)",128,0,230,0
74
  68               		.stabs	"uint_fast64_t:t(6,26)=(6,8)",128,0,235,0
73
  67               		.stabs	"uint_fast64_t:t(6,26)=(6,8)",128,0,235,0
75
  69               		.stabs	"intmax_t:t(6,27)=(6,7)",128,0,249,0
74
  68               		.stabs	"intmax_t:t(6,27)=(6,7)",128,0,249,0
76
  70               		.stabs	"uintmax_t:t(6,28)=(6,8)",128,0,254,0
75
  69               		.stabs	"uintmax_t:t(6,28)=(6,8)",128,0,254,0
77
  71               		.stabn	162,0,0,0
76
  70               		.stabn	162,0,0,0
78
  72               		.stabs	"int_farptr_t:t(5,1)=(6,5)",128,0,76,0
77
  71               		.stabs	"int_farptr_t:t(5,1)=(6,5)",128,0,76,0
79
  73               		.stabs	"uint_farptr_t:t(5,2)=(6,6)",128,0,80,0
78
  72               		.stabs	"uint_farptr_t:t(5,2)=(6,6)",128,0,80,0
-
 
79
  73               		.stabn	162,0,0,0
80
  74               		.stabn	162,0,0,0
80
  74               		.stabn	162,0,0,0
81
  75               		.stabn	162,0,0,0
81
  75               		.stabn	162,0,0,0
82
  76               		.stabn	162,0,0,0
-
 
83
  77               		.stabs	"I2CInterface.h",130,0,0,0
82
  76               		.stabs	"I2CInterface.h",130,0,0,0
84
  78               		.stabs	"CommonDefs.h",130,0,0,0
83
  77               		.stabs	"CommonDefs.h",130,0,0,0
85
  79               		.stabs	"bool_t:t(8,1)=(0,11)",128,0,56,0
84
  78               		.stabs	"bool_t:t(8,1)=(0,11)",128,0,56,0
86
  80               		.stabn	162,0,0,0
85
  79               		.stabn	162,0,0,0
87
  81               		.stabs	"i2cCmd_t:t(7,1)=(7,2)=s2configReg:(0,11),0,8;data:(0,11),8,8;;",128,0,53,0
86
  80               		.stabs	"i2cCmd_t:t(7,1)=(7,2)=s2configReg:(0,11),0,8;data:(0,11),8,8;;",128,0,53,0
88
  82               		.stabn	162,0,0,0
87
  81               		.stabn	162,0,0,0
89
  83               		.stabs	" :T(0,16)=@s8;eST_FrameMgr_idle:0,ST_FrameMgr_TrackingFrame:1,ST_FrameMgr_DumpingFrame:2,;
88
  82               		.stabs	" :T(0,16)=@s8;eST_FrameMgr_idle:0,ST_FrameMgr_TrackingFrame:1,ST_FrameMgr_DumpingFrame:2,;
90
  84               		.stabs	"FrameMgr_State_t:t(0,17)=(0,11)",128,0,72,0
89
  83               		.stabs	"FrameMgr_State_t:t(0,17)=(0,11)",128,0,72,0
91
  85               		.stabs	" :T(0,18)=@s8;enotTracked:0,color1:1,color2:2,color3:3,color4:4,color5:5,color6:6,color7:7
90
  84               		.stabs	" :T(0,18)=@s8;enotTracked:0,color1:1,color2:2,color3:3,color4:4,color5:5,color6:6,color7:7
92
  86               		.stabs	"trackedColor_t:t(0,19)=(0,11)",128,0,127,0
91
  85               		.stabs	"trackedColor_t:t(0,19)=(0,11)",128,0,127,0
93
  87               		.stabs	"trackedObject_t:t(0,20)=(0,21)=s8color:(0,19),0,8;lastLineXStart:(0,11),8,8;lastLineXFinis
92
  86               		.stabs	"trackedObject_t:t(0,20)=(0,21)=s8color:(0,19),0,8;lastLineXStart:(0,11),8,8;lastLineXFinis
94
  88               		.stabs	"FrameMgr_processFrame:F(0,15)",36,0,517,FrameMgr_processFrame
93
  87               		.stabs	"FrameMgr_processFrame:F(0,15)",36,0,517,FrameMgr_processFrame
95
  89               	.global	FrameMgr_processFrame
94
  88               	.global	FrameMgr_processFrame
96
  90               		.type	FrameMgr_processFrame, @function
95
  89               		.type	FrameMgr_processFrame, @function
97
  91               	FrameMgr_processFrame:
96
  90               	FrameMgr_processFrame:
98
  92               		.stabd	46,0,0
97
  91               		.stabd	46,0,0
99
   1:FrameMgr.c    **** /*
98
   1:FrameMgr.c    **** /*
100
   2:FrameMgr.c    ****     Copyright (C) 2004    John Orlando
99
   2:FrameMgr.c    ****     Copyright (C) 2004    John Orlando
101
   3:FrameMgr.c    ****     
100
   3:FrameMgr.c    ****     
102
   4:FrameMgr.c    ****    AVRcam: a small real-time image processing engine.
101
   4:FrameMgr.c    ****    AVRcam: a small real-time image processing engine.
103
   5:FrameMgr.c    **** 
102
   5:FrameMgr.c    **** 
Line 116... Line 115...
116
  18:FrameMgr.c    ****     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
115
  18:FrameMgr.c    ****     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
117
  19:FrameMgr.c    **** 
116
  19:FrameMgr.c    **** 
118
  20:FrameMgr.c    ****    For more information on the AVRcam, please contact:
117
  20:FrameMgr.c    ****    For more information on the AVRcam, please contact:
119
  21:FrameMgr.c    **** 
118
  21:FrameMgr.c    **** 
120
  22:FrameMgr.c    ****    john@jrobot.net
119
  22:FrameMgr.c    ****    john@jrobot.net
-
 
120
  23:FrameMgr.c    **** 
121
GAS LISTING /tmp/ccQRbLT3.s 			page 3
121
GAS LISTING /tmp/cc0XjEMJ.s 			page 3
122
 
122
 
123
 
123
 
124
  23:FrameMgr.c    **** 
-
 
125
  24:FrameMgr.c    ****    or go to www.jrobot.net for more details regarding the system.
124
  24:FrameMgr.c    ****    or go to www.jrobot.net for more details regarding the system.
126
  25:FrameMgr.c    **** */
125
  25:FrameMgr.c    **** */
127
  26:FrameMgr.c    **** /*********************************************************
126
  26:FrameMgr.c    **** /*********************************************************
128
  27:FrameMgr.c    **** 	Module Name: FrameMgr.c
127
  27:FrameMgr.c    **** 	Module Name: FrameMgr.c
129
  28:FrameMgr.c    **** 	Module Date: 04/10/2004
128
  28:FrameMgr.c    **** 	Module Date: 04/10/2004
Line 176... Line 175...
176
  75:FrameMgr.c    **** /* The most objects that can be tracked at any one time is 8.  
175
  75:FrameMgr.c    **** /* The most objects that can be tracked at any one time is 8.  
177
  76:FrameMgr.c    **** This number is determined by the number of bytes that can be
176
  76:FrameMgr.c    **** This number is determined by the number of bytes that can be
178
  77:FrameMgr.c    **** sent out during a frame (one byte per line, 144 lines per frame) 
177
  77:FrameMgr.c    **** sent out during a frame (one byte per line, 144 lines per frame) 
179
  78:FrameMgr.c    **** with the number of bytes in a tracked object (7) + some wiggle
178
  78:FrameMgr.c    **** with the number of bytes in a tracked object (7) + some wiggle
180
  79:FrameMgr.c    **** room :-) ... I guess this could be increased to around 20 if
179
  79:FrameMgr.c    **** room :-) ... I guess this could be increased to around 20 if
-
 
180
  80:FrameMgr.c    **** we had enough room and cycles to process objects between lines */
181
GAS LISTING /tmp/ccQRbLT3.s 			page 4
181
GAS LISTING /tmp/cc0XjEMJ.s 			page 4
182
 
182
 
183
 
183
 
184
  80:FrameMgr.c    **** we had enough room and cycles to process objects between lines */
-
 
185
  81:FrameMgr.c    **** #define MAX_TRACKED_OBJECTS	8
184
  81:FrameMgr.c    **** #define MAX_TRACKED_OBJECTS	8
186
  82:FrameMgr.c    **** 
185
  82:FrameMgr.c    **** 
187
  83:FrameMgr.c    **** /* This defines the number of bytes that make up a trackedObject_t
186
  83:FrameMgr.c    **** /* This defines the number of bytes that make up a trackedObject_t
188
  84:FrameMgr.c    **** structure... */
187
  84:FrameMgr.c    **** structure... */
189
  85:FrameMgr.c    **** #define SIZE_OF_TRACKED_OBJECT 8
188
  85:FrameMgr.c    **** #define SIZE_OF_TRACKED_OBJECT 8
Line 236... Line 235...
236
 132:FrameMgr.c    **** {
235
 132:FrameMgr.c    **** {
237
 133:FrameMgr.c    **** 	trackedColor_t  color;
236
 133:FrameMgr.c    **** 	trackedColor_t  color;
238
 134:FrameMgr.c    **** 	unsigned char lastLineXStart;
237
 134:FrameMgr.c    **** 	unsigned char lastLineXStart;
239
 135:FrameMgr.c    **** 	unsigned char lastLineXFinish;
238
 135:FrameMgr.c    **** 	unsigned char lastLineXFinish;
240
 136:FrameMgr.c    **** 	unsigned char x_upperLeft;
239
 136:FrameMgr.c    **** 	unsigned char x_upperLeft;
-
 
240
 137:FrameMgr.c    **** 	unsigned char y_upperLeft;
241
GAS LISTING /tmp/ccQRbLT3.s 			page 5
241
GAS LISTING /tmp/cc0XjEMJ.s 			page 5
242
 
242
 
243
 
243
 
244
 137:FrameMgr.c    **** 	unsigned char y_upperLeft;
-
 
245
 138:FrameMgr.c    **** 	unsigned char x_lowerRight;
244
 138:FrameMgr.c    **** 	unsigned char x_lowerRight;
246
 139:FrameMgr.c    **** 	unsigned char y_lowerRight;
245
 139:FrameMgr.c    **** 	unsigned char y_lowerRight;
247
 140:FrameMgr.c    **** 	unsigned char objectValid;  /* used to be a fill byte...now it is
246
 140:FrameMgr.c    **** 	unsigned char objectValid;  /* used to be a fill byte...now it is
248
 141:FrameMgr.c    ****                                      used to determine if the object is valid
247
 141:FrameMgr.c    ****                                      used to determine if the object is valid
249
 142:FrameMgr.c    ****                                      or not...it gets invalidated if it is
248
 142:FrameMgr.c    ****                                      or not...it gets invalidated if it is
Line 296... Line 295...
296
 189:FrameMgr.c    **** ***********************************************************/	
295
 189:FrameMgr.c    **** ***********************************************************/	
297
 190:FrameMgr.c    **** void FrameMgr_init(void)
296
 190:FrameMgr.c    **** void FrameMgr_init(void)
298
 191:FrameMgr.c    **** {
297
 191:FrameMgr.c    **** {
299
 192:FrameMgr.c    **** 	memset(trackedObjectTable,0x00,sizeof(trackedObjectTable));
298
 192:FrameMgr.c    **** 	memset(trackedObjectTable,0x00,sizeof(trackedObjectTable));
300
 193:FrameMgr.c    **** }
299
 193:FrameMgr.c    **** }
-
 
300
 194:FrameMgr.c    **** 
301
GAS LISTING /tmp/ccQRbLT3.s 			page 6
301
GAS LISTING /tmp/cc0XjEMJ.s 			page 6
302
 
302
 
303
 
303
 
304
 194:FrameMgr.c    **** 
-
 
305
 195:FrameMgr.c    **** 
304
 195:FrameMgr.c    **** 
306
 196:FrameMgr.c    **** /***********************************************************
305
 196:FrameMgr.c    **** /***********************************************************
307
 197:FrameMgr.c    **** 	Function Name: FrameMgr_dispatchEvent
306
 197:FrameMgr.c    **** 	Function Name: FrameMgr_dispatchEvent
308
 198:FrameMgr.c    **** 	Function Description: This function is responsible for
307
 198:FrameMgr.c    **** 	Function Description: This function is responsible for
309
 199:FrameMgr.c    **** 	taking an incoming event and performing the needed
308
 199:FrameMgr.c    **** 	taking an incoming event and performing the needed
Line 356... Line 355...
356
 246:FrameMgr.c    **** 			currentState = ST_FrameMgr_idle;
355
 246:FrameMgr.c    **** 			currentState = ST_FrameMgr_idle;
357
 247:FrameMgr.c    **** 			break;
356
 247:FrameMgr.c    **** 			break;
358
 248:FrameMgr.c    **** 	}
357
 248:FrameMgr.c    **** 	}
359
 249:FrameMgr.c    **** }
358
 249:FrameMgr.c    **** }
360
 250:FrameMgr.c    **** 
359
 250:FrameMgr.c    **** 
-
 
360
 251:FrameMgr.c    **** /***********************************************************
361
GAS LISTING /tmp/ccQRbLT3.s 			page 7
361
GAS LISTING /tmp/cc0XjEMJ.s 			page 7
362
 
362
 
363
 
363
 
364
 251:FrameMgr.c    **** /***********************************************************
-
 
365
 252:FrameMgr.c    **** 	Function Name: FrameMgr_acquireFrame
364
 252:FrameMgr.c    **** 	Function Name: FrameMgr_acquireFrame
366
 253:FrameMgr.c    **** 	Function Description: This function is responsible for
365
 253:FrameMgr.c    **** 	Function Description: This function is responsible for
367
 254:FrameMgr.c    **** 	beginning of the acquisition of a new frame of data
366
 254:FrameMgr.c    **** 	beginning of the acquisition of a new frame of data
368
 255:FrameMgr.c    **** 	from the camera interface. The acquisition of this line 
367
 255:FrameMgr.c    **** 	from the camera interface. The acquisition of this line 
369
 256:FrameMgr.c    **** 	depends on the current state of the FrameMgr.
368
 256:FrameMgr.c    **** 	depends on the current state of the FrameMgr.
Line 416... Line 415...
416
 303:FrameMgr.c    ****         a frame to come back with the last line captured of the
415
 303:FrameMgr.c    ****         a frame to come back with the last line captured of the
417
 304:FrameMgr.c    ****         last capture session...*/
416
 304:FrameMgr.c    ****         last capture session...*/
418
 305:FrameMgr.c    ****         memset(currentLineBuffer,0x00,LENGTH_OF_LINE_BUFFER);
417
 305:FrameMgr.c    ****         memset(currentLineBuffer,0x00,LENGTH_OF_LINE_BUFFER);
419
 306:FrameMgr.c    ****         memset(previousLineBuffer,0x00,LENGTH_OF_LINE_BUFFER);
418
 306:FrameMgr.c    ****         memset(previousLineBuffer,0x00,LENGTH_OF_LINE_BUFFER);
420
 307:FrameMgr.c    **** 		/* wait for another VSYNC so we know which frame to use 
419
 307:FrameMgr.c    **** 		/* wait for another VSYNC so we know which frame to use 
-
 
420
 308:FrameMgr.c    **** 		to start looking for a line to receive */
421
GAS LISTING /tmp/ccQRbLT3.s 			page 8
421
GAS LISTING /tmp/cc0XjEMJ.s 			page 8
422
 
422
 
423
 
423
 
424
 308:FrameMgr.c    **** 		to start looking for a line to receive */
-
 
425
 309:FrameMgr.c    **** 		WAIT_FOR_VSYNC_HIGH();  
424
 309:FrameMgr.c    **** 		WAIT_FOR_VSYNC_HIGH();  
426
 310:FrameMgr.c    **** 		WAIT_FOR_VSYNC_LOW();
425
 310:FrameMgr.c    **** 		WAIT_FOR_VSYNC_LOW();
427
 311:FrameMgr.c    **** 		
426
 311:FrameMgr.c    **** 		
428
 312:FrameMgr.c    **** 		/* look at lineCount to determine how many HREFs we should
427
 312:FrameMgr.c    **** 		/* look at lineCount to determine how many HREFs we should
429
 313:FrameMgr.c    **** 		wait before we start sampling */
428
 313:FrameMgr.c    **** 		wait before we start sampling */
Line 476... Line 475...
476
 360:FrameMgr.c    **** 		/* currentLineBuffer is getting "g" previousLineBuffer is getting "b-r" */
475
 360:FrameMgr.c    **** 		/* currentLineBuffer is getting "g" previousLineBuffer is getting "b-r" */
477
 361:FrameMgr.c    **** 		UartInt_txByte(0x0B);			/* send the header byte */
476
 361:FrameMgr.c    **** 		UartInt_txByte(0x0B);			/* send the header byte */
478
 362:FrameMgr.c    **** 		UartInt_txByte(lineCount);		/* send the line count */
477
 362:FrameMgr.c    **** 		UartInt_txByte(lineCount);		/* send the line count */
479
 363:FrameMgr.c    **** 		for (i=0; i<NUM_PIXELS_IN_A_DUMP_LINE; i+=2)
478
 363:FrameMgr.c    **** 		for (i=0; i<NUM_PIXELS_IN_A_DUMP_LINE; i+=2)
480
 364:FrameMgr.c    **** 		{
479
 364:FrameMgr.c    **** 		{
-
 
480
 365:FrameMgr.c    **** 			/* when a dump line is sampled, the upper byte can potentially
481
GAS LISTING /tmp/ccQRbLT3.s 			page 9
481
GAS LISTING /tmp/cc0XjEMJ.s 			page 9
482
 
482
 
483
 
483
 
484
 365:FrameMgr.c    **** 			/* when a dump line is sampled, the upper byte can potentially
-
 
485
 366:FrameMgr.c    **** 			have garbage in it...we don't have time to mask it off as we're
484
 366:FrameMgr.c    **** 			have garbage in it...we don't have time to mask it off as we're
486
 367:FrameMgr.c    **** 			sampling, so it is done here before we send it out...we also
485
 367:FrameMgr.c    **** 			sampling, so it is done here before we send it out...we also
487
 368:FrameMgr.c    **** 			combine the samples together so we really are sending up a
486
 368:FrameMgr.c    **** 			combine the samples together so we really are sending up a
488
 369:FrameMgr.c    **** 			sample for line N as well as line N+1 */
487
 369:FrameMgr.c    **** 			sample for line N as well as line N+1 */
489
 370:FrameMgr.c    **** 			dataToSend = currentLineBuffer[i];
488
 370:FrameMgr.c    **** 			dataToSend = currentLineBuffer[i];
Line 536... Line 535...
536
 417:FrameMgr.c    **** 		until a pixelCount == 176 */
535
 417:FrameMgr.c    **** 		until a pixelCount == 176 */
537
 418:FrameMgr.c    **** 		pSendData = currentLineBuffer;
536
 418:FrameMgr.c    **** 		pSendData = currentLineBuffer;
538
 419:FrameMgr.c    **** 		itoa(trackedLineCount,asciiBuffer,10);
537
 419:FrameMgr.c    **** 		itoa(trackedLineCount,asciiBuffer,10);
539
 420:FrameMgr.c    **** 		UIMgr_txBuffer(asciiBuffer,3);
538
 420:FrameMgr.c    **** 		UIMgr_txBuffer(asciiBuffer,3);
540
 421:FrameMgr.c    **** 		UIMgr_txBuffer(" ",1);
539
 421:FrameMgr.c    **** 		UIMgr_txBuffer(" ",1);
-
 
540
 422:FrameMgr.c    **** 		while(pixelCount < ACTUAL_NUM_PIXELS_IN_A_LINE)  
541
GAS LISTING /tmp/ccQRbLT3.s 			page 10
541
GAS LISTING /tmp/cc0XjEMJ.s 			page 10
542
 
542
 
543
 
543
 
544
 422:FrameMgr.c    **** 		while(pixelCount < ACTUAL_NUM_PIXELS_IN_A_LINE)  
-
 
545
 423:FrameMgr.c    **** 		{
544
 423:FrameMgr.c    **** 		{
546
 424:FrameMgr.c    **** 			memset(asciiBuffer,0x00,5);
545
 424:FrameMgr.c    **** 			memset(asciiBuffer,0x00,5);
547
 425:FrameMgr.c    **** 			itoa(*pSendData++,asciiBuffer,10);	/* color is first byte */
546
 425:FrameMgr.c    **** 			itoa(*pSendData++,asciiBuffer,10);	/* color is first byte */
548
 426:FrameMgr.c    **** 			UIMgr_txBuffer(asciiBuffer,3); /* 3 ascii bytes for data */
547
 426:FrameMgr.c    **** 			UIMgr_txBuffer(asciiBuffer,3); /* 3 ascii bytes for data */
549
 427:FrameMgr.c    **** 			UIMgr_txBuffer(" ",1);
548
 427:FrameMgr.c    **** 			UIMgr_txBuffer(" ",1);
Line 596... Line 595...
596
 474:FrameMgr.c    ****                         if ( trackedLineCount - *(pTrackedObjectData + Y_LOWER_RIGHT_OFFSET) > 2)
595
 474:FrameMgr.c    ****                         if ( trackedLineCount - *(pTrackedObjectData + Y_LOWER_RIGHT_OFFSET) > 2)
597
 475:FrameMgr.c    ****                         {
596
 475:FrameMgr.c    ****                         {
598
 476:FrameMgr.c    ****                             /* invalidate the object */
597
 476:FrameMgr.c    ****                             /* invalidate the object */
599
 477:FrameMgr.c    ****                             *(pTrackedObjectData + VALID_OBJECT_OFFSET) = FALSE;
598
 477:FrameMgr.c    ****                             *(pTrackedObjectData + VALID_OBJECT_OFFSET) = FALSE;
600
 478:FrameMgr.c    ****                             numCurrTrackedObjects--;
599
 478:FrameMgr.c    ****                             numCurrTrackedObjects--;
-
 
600
 479:FrameMgr.c    ****                         }
601
GAS LISTING /tmp/ccQRbLT3.s 			page 11
601
GAS LISTING /tmp/cc0XjEMJ.s 			page 11
602
 
602
 
603
 
603
 
604
 479:FrameMgr.c    ****                         }
-
 
605
 480:FrameMgr.c    ****                     }
604
 480:FrameMgr.c    ****                     }
606
 481:FrameMgr.c    ****                 }
605
 481:FrameMgr.c    ****                 }
607
 482:FrameMgr.c    ****                 pTrackedObjectData += SIZE_OF_TRACKED_OBJECT;
606
 482:FrameMgr.c    ****                 pTrackedObjectData += SIZE_OF_TRACKED_OBJECT;
608
 483:FrameMgr.c    ****             }
607
 483:FrameMgr.c    ****             }
609
 484:FrameMgr.c    ****         }     
608
 484:FrameMgr.c    ****         }     
Line 638... Line 637...
638
 513:FrameMgr.c    **** 	Inputs:  none
637
 513:FrameMgr.c    **** 	Inputs:  none
639
 514:FrameMgr.c    **** 	Outputs: none
638
 514:FrameMgr.c    **** 	Outputs: none
640
 515:FrameMgr.c    **** ***********************************************************/	
639
 515:FrameMgr.c    **** ***********************************************************/	
641
 516:FrameMgr.c    **** void FrameMgr_processFrame(void)
640
 516:FrameMgr.c    **** void FrameMgr_processFrame(void)
642
 517:FrameMgr.c    **** {
641
 517:FrameMgr.c    **** {
643
  93               		.stabn	68,0,517,.LM0-FrameMgr_processFrame
642
  92               		.stabn	68,0,517,.LM0-.LFBB1
644
  94               	.LM0:
643
  93               	.LM0:
-
 
644
  94               	.LFBB1:
645
  95               	/* prologue: frame size=0 */
645
  95               	/* prologue: frame size=0 */
646
  96 0000 DF92      		push r13
646
  96 0000 DF92      		push r13
647
  97 0002 EF92      		push r14
647
  97 0002 EF92      		push r14
648
  98 0004 FF92      		push r15
648
  98 0004 FF92      		push r15
649
  99 0006 0F93      		push r16
649
  99 0006 0F93      		push r16
Line 655... Line 655...
655
 519:FrameMgr.c    **** #if DEBUG_FRAME_DATA    
655
 519:FrameMgr.c    **** #if DEBUG_FRAME_DATA    
656
 520:FrameMgr.c    **** 	unsigned char asciiBuffer[5];
656
 520:FrameMgr.c    **** 	unsigned char asciiBuffer[5];
657
 521:FrameMgr.c    ****     unsigned char j;
657
 521:FrameMgr.c    ****     unsigned char j;
658
 522:FrameMgr.c    **** #endif    
658
 522:FrameMgr.c    **** #endif    
659
 523:FrameMgr.c    **** 	unsigned char *pTableData = (unsigned char *)pCurrentTrackedObjectTable;
659
 523:FrameMgr.c    **** 	unsigned char *pTableData = (unsigned char *)pCurrentTrackedObjectTable;
660
 104               		.stabn	68,0,523,.LM1-FrameMgr_processFrame
660
 104               		.stabn	68,0,523,.LM1-.LFBB1
661
GAS LISTING /tmp/ccQRbLT3.s 			page 12
661
GAS LISTING /tmp/cc0XjEMJ.s 			page 12
662
 
662
 
663
 
663
 
664
 105               	.LM1:
664
 105               	.LM1:
665
 106 000e 2091 0000 		lds r18,pCurrentTrackedObjectTable
665
 106 000e 2091 0000 		lds r18,pCurrentTrackedObjectTable
666
 107 0012 3091 0000 		lds r19,(pCurrentTrackedObjectTable)+1
666
 107 0012 3091 0000 		lds r19,(pCurrentTrackedObjectTable)+1
Line 692... Line 692...
692
 549:FrameMgr.c    **** 
692
 549:FrameMgr.c    **** 
693
 550:FrameMgr.c    **** #else	
693
 550:FrameMgr.c    **** #else	
694
 551:FrameMgr.c    **** 	/* we only send tracking packets if there are tracked objects */	        
694
 551:FrameMgr.c    **** 	/* we only send tracking packets if there are tracked objects */	        
695
 552:FrameMgr.c    ****     
695
 552:FrameMgr.c    ****     
696
 553:FrameMgr.c    **** 	if (numCurrTrackedObjects > 0)
696
 553:FrameMgr.c    **** 	if (numCurrTrackedObjects > 0)
697
 108               		.stabn	68,0,553,.LM2-FrameMgr_processFrame
697
 108               		.stabn	68,0,553,.LM2-.LFBB1
698
 109               	.LM2:
698
 109               	.LM2:
699
 110 0016 8091 0000 		lds r24,numCurrTrackedObjects
699
 110 0016 8091 0000 		lds r24,numCurrTrackedObjects
700
 111 001a 8823      		tst r24
700
 111 001a 8823      		tst r24
701
 112 001c 09F4      		brne .+2
701
 112 001c 01F4      		brne .+2
702
 113 001e 3FC0      		rjmp .L2
702
 113 001e 00C0      		rjmp .L2
703
 114               		.stabn	68,0,523,.LM3-FrameMgr_processFrame
703
 114               		.stabn	68,0,523,.LM3-.LFBB1
704
 115               	.LM3:
704
 115               	.LM3:
705
 116 0020 E901      		movw r28,r18
705
 116 0020 E901      		movw r28,r18
706
 554:FrameMgr.c    **** 	{		
706
 554:FrameMgr.c    **** 	{		
707
 555:FrameMgr.c    **** 		UIMgr_writeTxFifo(0x0A);					/* header byte for a tracking packet */
707
 555:FrameMgr.c    **** 		UIMgr_writeTxFifo(0x0A);					/* header byte for a tracking packet */
708
 117               		.stabn	68,0,555,.LM4-FrameMgr_processFrame
708
 117               		.stabn	68,0,555,.LM4-.LFBB1
709
 118               	.LM4:
709
 118               	.LM4:
710
 119 0022 8AE0      		ldi r24,lo8(10)
710
 119 0022 8AE0      		ldi r24,lo8(10)
711
 120 0024 00D0      		rcall UIMgr_writeTxFifo
711
 120 0024 00D0      		rcall UIMgr_writeTxFifo
712
 556:FrameMgr.c    ****         /* reset the pointer */
712
 556:FrameMgr.c    ****         /* reset the pointer */
713
 557:FrameMgr.c    ****         pTableData = (unsigned char *)pCurrentTrackedObjectTable;
713
 557:FrameMgr.c    ****         pTableData = (unsigned char *)pCurrentTrackedObjectTable;
714
 558:FrameMgr.c    ****         
714
 558:FrameMgr.c    ****         
715
 559:FrameMgr.c    **** 		UIMgr_writeTxFifo(numCurrTrackedObjects);	/* num of objects tracked */
715
 559:FrameMgr.c    **** 		UIMgr_writeTxFifo(numCurrTrackedObjects);	/* num of objects tracked */
716
 121               		.stabn	68,0,559,.LM5-FrameMgr_processFrame
716
 121               		.stabn	68,0,559,.LM5-.LFBB1
717
 122               	.LM5:
717
 122               	.LM5:
718
 123 0026 8091 0000 		lds r24,numCurrTrackedObjects
718
 123 0026 8091 0000 		lds r24,numCurrTrackedObjects
719
 124 002a 00D0      		rcall UIMgr_writeTxFifo
719
 124 002a 00D0      		rcall UIMgr_writeTxFifo
720
 125 002c DD24      		clr r13
720
 125 002c DD24      		clr r13
721
GAS LISTING /tmp/ccQRbLT3.s 			page 13
721
GAS LISTING /tmp/cc0XjEMJ.s 			page 13
722
 
722
 
723
 
723
 
724
 126               	.L4:
724
 126               	.L4:
725
 560:FrameMgr.c    **** 		for (i=0; i<MAX_TRACKED_OBJECTS; i++)
725
 560:FrameMgr.c    **** 		for (i=0; i<MAX_TRACKED_OBJECTS; i++)
726
 561:FrameMgr.c    **** 		{
726
 561:FrameMgr.c    **** 		{
727
 562:FrameMgr.c    ****             /* we only want to process objects that have their objectValid flag
727
 562:FrameMgr.c    ****             /* we only want to process objects that have their objectValid flag
728
 563:FrameMgr.c    ****             set to TRUE */
728
 563:FrameMgr.c    ****             set to TRUE */
729
 564:FrameMgr.c    ****             if ( *(pTableData + VALID_OBJECT_OFFSET) == TRUE)
729
 564:FrameMgr.c    ****             if ( *(pTableData + VALID_OBJECT_OFFSET) == TRUE)
730
 127               		.stabn	68,0,564,.LM6-FrameMgr_processFrame
730
 127               		.stabn	68,0,564,.LM6-.LFBB1
731
 128               	.LM6:
731
 128               	.LM6:
732
 129 002e 8F81      		ldd r24,Y+7
732
 129 002e 8F81      		ldd r24,Y+7
733
 130 0030 8130      		cpi r24,lo8(1)
733
 130 0030 8130      		cpi r24,lo8(1)
734
 131 0032 69F5      		brne .L5
734
 131 0032 01F4      		brne .L5
735
 565:FrameMgr.c    ****             {
735
 565:FrameMgr.c    ****             {
736
 566:FrameMgr.c    ****                 /* the object is valid...convert the color from bit position to value...remember, 
736
 566:FrameMgr.c    ****                 /* the object is valid...convert the color from bit position to value...remember, 
737
 567:FrameMgr.c    ****                 each bit in the "color" byte corresponds to a color */
737
 567:FrameMgr.c    ****                 each bit in the "color" byte corresponds to a color */
738
 568:FrameMgr.c    ****                 k=0;
738
 568:FrameMgr.c    ****                 k=0;
739
 569:FrameMgr.c    ****                 color = *(pTableData + COLOR_OFFSET);
739
 569:FrameMgr.c    ****                 color = *(pTableData + COLOR_OFFSET);
740
 132               		.stabn	68,0,569,.LM7-FrameMgr_processFrame
740
 132               		.stabn	68,0,569,.LM7-.LFBB1
741
 133               	.LM7:
741
 133               	.LM7:
742
 134 0034 8881      		ld r24,Y
742
 134 0034 8881      		ld r24,Y
743
 570:FrameMgr.c    ****                 if (color == 128) k=0;
743
 570:FrameMgr.c    ****                 if (color == 128) k=0;
744
 135               		.stabn	68,0,570,.LM8-FrameMgr_processFrame
744
 135               		.stabn	68,0,570,.LM8-.LFBB1
745
 136               	.LM8:
745
 136               	.LM8:
746
 137 0036 8038      		cpi r24,lo8(-128)
746
 137 0036 8038      		cpi r24,lo8(-128)
747
 138 0038 E1F0      		breq .L7
747
 138 0038 01F0      		breq .L7
748
 571:FrameMgr.c    ****                 else if (color == 64) k=1;
748
 571:FrameMgr.c    ****                 else if (color == 64) k=1;
749
 139               		.stabn	68,0,571,.LM9-FrameMgr_processFrame
749
 139               		.stabn	68,0,571,.LM9-.LFBB1
750
 140               	.LM9:
750
 140               	.LM9:
751
 141 003a 8034      		cpi r24,lo8(64)
751
 141 003a 8034      		cpi r24,lo8(64)
752
 142 003c 11F4      		brne .L9
752
 142 003c 01F4      		brne .L9
753
 143 003e 81E0      		ldi r24,lo8(1)
753
 143 003e 81E0      		ldi r24,lo8(1)
754
 144 0040 19C0      		rjmp .L11
754
 144 0040 00C0      		rjmp .L11
755
 145               	.L9:
755
 145               	.L9:
756
 572:FrameMgr.c    ****                 else if (color == 32) k=2;
756
 572:FrameMgr.c    ****                 else if (color == 32) k=2;
757
 146               		.stabn	68,0,572,.LM10-FrameMgr_processFrame
757
 146               		.stabn	68,0,572,.LM10-.LFBB1
758
 147               	.LM10:
758
 147               	.LM10:
759
 148 0042 8032      		cpi r24,lo8(32)
759
 148 0042 8032      		cpi r24,lo8(32)
760
 149 0044 11F4      		brne .L12
760
 149 0044 01F4      		brne .L12
761
 150 0046 82E0      		ldi r24,lo8(2)
761
 150 0046 82E0      		ldi r24,lo8(2)
762
 151 0048 15C0      		rjmp .L11
762
 151 0048 00C0      		rjmp .L11
763
 152               	.L12:
763
 152               	.L12:
764
 573:FrameMgr.c    ****                 else if (color == 16) k=3;
764
 573:FrameMgr.c    ****                 else if (color == 16) k=3;
765
 153               		.stabn	68,0,573,.LM11-FrameMgr_processFrame
765
 153               		.stabn	68,0,573,.LM11-.LFBB1
766
 154               	.LM11:
766
 154               	.LM11:
767
 155 004a 8031      		cpi r24,lo8(16)
767
 155 004a 8031      		cpi r24,lo8(16)
768
 156 004c 11F4      		brne .L14
768
 156 004c 01F4      		brne .L14
769
 157 004e 83E0      		ldi r24,lo8(3)
769
 157 004e 83E0      		ldi r24,lo8(3)
770
 158 0050 11C0      		rjmp .L11
770
 158 0050 00C0      		rjmp .L11
771
 159               	.L14:
771
 159               	.L14:
772
 574:FrameMgr.c    ****                 else if (color == 8)  k=4;
772
 574:FrameMgr.c    ****                 else if (color == 8)  k=4;
773
 160               		.stabn	68,0,574,.LM12-FrameMgr_processFrame
773
 160               		.stabn	68,0,574,.LM12-.LFBB1
774
 161               	.LM12:
774
 161               	.LM12:
775
 162 0052 8830      		cpi r24,lo8(8)
775
 162 0052 8830      		cpi r24,lo8(8)
776
 163 0054 11F4      		brne .L16
776
 163 0054 01F4      		brne .L16
777
 164 0056 84E0      		ldi r24,lo8(4)
777
 164 0056 84E0      		ldi r24,lo8(4)
778
 165 0058 0DC0      		rjmp .L11
778
 165 0058 00C0      		rjmp .L11
779
 166               	.L16:
779
 166               	.L16:
780
 575:FrameMgr.c    ****                 else if (color == 4)  k=5;
780
 575:FrameMgr.c    ****                 else if (color == 4)  k=5;
781
GAS LISTING /tmp/ccQRbLT3.s 			page 14
781
GAS LISTING /tmp/cc0XjEMJ.s 			page 14
782
 
782
 
783
 
783
 
784
 167               		.stabn	68,0,575,.LM13-FrameMgr_processFrame
784
 167               		.stabn	68,0,575,.LM13-.LFBB1
785
 168               	.LM13:
785
 168               	.LM13:
786
 169 005a 8430      		cpi r24,lo8(4)
786
 169 005a 8430      		cpi r24,lo8(4)
787
 170 005c 11F4      		brne .L18
787
 170 005c 01F4      		brne .L18
788
 171 005e 85E0      		ldi r24,lo8(5)
788
 171 005e 85E0      		ldi r24,lo8(5)
789
 172 0060 09C0      		rjmp .L11
789
 172 0060 00C0      		rjmp .L11
790
 173               	.L18:
790
 173               	.L18:
791
 576:FrameMgr.c    ****                 else if (color == 2)  k=6;
791
 576:FrameMgr.c    ****                 else if (color == 2)  k=6;
792
 174               		.stabn	68,0,576,.LM14-FrameMgr_processFrame
792
 174               		.stabn	68,0,576,.LM14-.LFBB1
793
 175               	.LM14:
793
 175               	.LM14:
794
 176 0062 8230      		cpi r24,lo8(2)
794
 176 0062 8230      		cpi r24,lo8(2)
795
 177 0064 11F4      		brne .L20
795
 177 0064 01F4      		brne .L20
796
 178 0066 86E0      		ldi r24,lo8(6)
796
 178 0066 86E0      		ldi r24,lo8(6)
797
 179 0068 05C0      		rjmp .L11
797
 179 0068 00C0      		rjmp .L11
798
 180               	.L20:
798
 180               	.L20:
799
 577:FrameMgr.c    ****                 else if (color == 1)  k=7;
799
 577:FrameMgr.c    ****                 else if (color == 1)  k=7;
800
 181               		.stabn	68,0,577,.LM15-FrameMgr_processFrame
800
 181               		.stabn	68,0,577,.LM15-.LFBB1
801
 182               	.LM15:
801
 182               	.LM15:
802
 183 006a 8130      		cpi r24,lo8(1)
802
 183 006a 8130      		cpi r24,lo8(1)
803
 184 006c 11F4      		brne .L7
803
 184 006c 01F4      		brne .L7
804
 185 006e 87E0      		ldi r24,lo8(7)
804
 185 006e 87E0      		ldi r24,lo8(7)
805
 186 0070 01C0      		rjmp .L11
805
 186 0070 00C0      		rjmp .L11
806
 187               	.L7:
806
 187               	.L7:
807
 188 0072 80E0      		ldi r24,lo8(0)
807
 188 0072 80E0      		ldi r24,lo8(0)
808
 189               	.L11:
808
 189               	.L11:
809
 578:FrameMgr.c    ****                 
809
 578:FrameMgr.c    ****                 
810
 579:FrameMgr.c    ****                 tmpUpperLeftX = *(pTableData + X_UPPER_LEFT_OFFSET);	    /* get the upper left X */
810
 579:FrameMgr.c    ****                 tmpUpperLeftX = *(pTableData + X_UPPER_LEFT_OFFSET);	    /* get the upper left X */
811
 190               		.stabn	68,0,579,.LM16-FrameMgr_processFrame
811
 190               		.stabn	68,0,579,.LM16-.LFBB1
812
 191               	.LM16:
812
 191               	.LM16:
813
 192 0074 1B81      		ldd r17,Y+3
813
 192 0074 1B81      		ldd r17,Y+3
814
 580:FrameMgr.c    ****                 tmpUpperLeftY = *(pTableData + Y_UPPER_LEFT_OFFSET);		/* get the upper left Y */		
814
 580:FrameMgr.c    ****                 tmpUpperLeftY = *(pTableData + Y_UPPER_LEFT_OFFSET);		/* get the upper left Y */		
815
 193               		.stabn	68,0,580,.LM17-FrameMgr_processFrame
815
 193               		.stabn	68,0,580,.LM17-.LFBB1
816
 194               	.LM17:
816
 194               	.LM17:
817
 195 0076 0C81      		ldd r16,Y+4
817
 195 0076 0C81      		ldd r16,Y+4
818
 581:FrameMgr.c    ****                 tmpLowerRightX = *(pTableData + X_LOWER_RIGHT_OFFSET);		/* get the lower right X */
818
 581:FrameMgr.c    ****                 tmpLowerRightX = *(pTableData + X_LOWER_RIGHT_OFFSET);		/* get the lower right X */
819
 196               		.stabn	68,0,581,.LM18-FrameMgr_processFrame
819
 196               		.stabn	68,0,581,.LM18-.LFBB1
820
 197               	.LM18:
820
 197               	.LM18:
821
 198 0078 FD80      		ldd r15,Y+5
821
 198 0078 FD80      		ldd r15,Y+5
822
 582:FrameMgr.c    ****                 tmpLowerRightY = *(pTableData + Y_LOWER_RIGHT_OFFSET);		/* get the lower right Y */
822
 582:FrameMgr.c    ****                 tmpLowerRightY = *(pTableData + Y_LOWER_RIGHT_OFFSET);		/* get the lower right Y */
823
 199               		.stabn	68,0,582,.LM19-FrameMgr_processFrame
823
 199               		.stabn	68,0,582,.LM19-.LFBB1
824
 200               	.LM19:
824
 200               	.LM19:
825
 201 007a EE80      		ldd r14,Y+6
825
 201 007a EE80      		ldd r14,Y+6
826
 583:FrameMgr.c    ****                 
826
 583:FrameMgr.c    ****                 
827
 584:FrameMgr.c    ****                 UIMgr_writeTxFifo(k);				  	/* send the color first */
827
 584:FrameMgr.c    ****                 UIMgr_writeTxFifo(k);				  	/* send the color first */
828
 202               		.stabn	68,0,584,.LM20-FrameMgr_processFrame
828
 202               		.stabn	68,0,584,.LM20-.LFBB1
829
 203               	.LM20:
829
 203               	.LM20:
830
 204 007c 00D0      		rcall UIMgr_writeTxFifo
830
 204 007c 00D0      		rcall UIMgr_writeTxFifo
831
 585:FrameMgr.c    ****                 UIMgr_writeTxFifo(tmpUpperLeftX);
831
 585:FrameMgr.c    ****                 UIMgr_writeTxFifo(tmpUpperLeftX);
832
 205               		.stabn	68,0,585,.LM21-FrameMgr_processFrame
832
 205               		.stabn	68,0,585,.LM21-.LFBB1
833
 206               	.LM21:
833
 206               	.LM21:
834
 207 007e 812F      		mov r24,r17
834
 207 007e 812F      		mov r24,r17
835
 208 0080 00D0      		rcall UIMgr_writeTxFifo
835
 208 0080 00D0      		rcall UIMgr_writeTxFifo
836
 586:FrameMgr.c    ****                 UIMgr_writeTxFifo(tmpUpperLeftY);
836
 586:FrameMgr.c    ****                 UIMgr_writeTxFifo(tmpUpperLeftY);
837
 209               		.stabn	68,0,586,.LM22-FrameMgr_processFrame
837
 209               		.stabn	68,0,586,.LM22-.LFBB1
838
 210               	.LM22:
838
 210               	.LM22:
839
 211 0082 802F      		mov r24,r16
839
 211 0082 802F      		mov r24,r16
840
 212 0084 00D0      		rcall UIMgr_writeTxFifo
840
 212 0084 00D0      		rcall UIMgr_writeTxFifo
841
GAS LISTING /tmp/ccQRbLT3.s 			page 15
841
GAS LISTING /tmp/cc0XjEMJ.s 			page 15
842
 
842
 
843
 
843
 
844
 587:FrameMgr.c    ****                 UIMgr_writeTxFifo(tmpLowerRightX);
844
 587:FrameMgr.c    ****                 UIMgr_writeTxFifo(tmpLowerRightX);
845
 213               		.stabn	68,0,587,.LM23-FrameMgr_processFrame
845
 213               		.stabn	68,0,587,.LM23-.LFBB1
846
 214               	.LM23:
846
 214               	.LM23:
847
 215 0086 8F2D      		mov r24,r15
847
 215 0086 8F2D      		mov r24,r15
848
 216 0088 00D0      		rcall UIMgr_writeTxFifo
848
 216 0088 00D0      		rcall UIMgr_writeTxFifo
849
 588:FrameMgr.c    ****                 UIMgr_writeTxFifo(tmpLowerRightY);			
849
 588:FrameMgr.c    ****                 UIMgr_writeTxFifo(tmpLowerRightY);			
850
 217               		.stabn	68,0,588,.LM24-FrameMgr_processFrame
850
 217               		.stabn	68,0,588,.LM24-.LFBB1
851
 218               	.LM24:
851
 218               	.LM24:
852
 219 008a 8E2D      		mov r24,r14
852
 219 008a 8E2D      		mov r24,r14
853
 220 008c 00D0      		rcall UIMgr_writeTxFifo
853
 220 008c 00D0      		rcall UIMgr_writeTxFifo
854
 221               	.L5:
854
 221               	.L5:
855
 222               		.stabn	68,0,560,.LM25-FrameMgr_processFrame
855
 222               		.stabn	68,0,560,.LM25-.LFBB1
856
 223               	.LM25:
856
 223               	.LM25:
857
 224 008e D394      		inc r13
857
 224 008e D394      		inc r13
858
 225 0090 88E0      		ldi r24,lo8(8)
858
 225 0090 88E0      		ldi r24,lo8(8)
859
 226 0092 D816      		cp r13,r24
859
 226 0092 D816      		cp r13,r24
860
 227 0094 11F0      		breq .L23
860
 227 0094 01F0      		breq .L23
861
 589:FrameMgr.c    ****             }
861
 589:FrameMgr.c    ****             }
862
 590:FrameMgr.c    **** 
862
 590:FrameMgr.c    **** 
863
 591:FrameMgr.c    ****             /* move our pointer up to the beginning of the next object */
863
 591:FrameMgr.c    ****             /* move our pointer up to the beginning of the next object */
864
 592:FrameMgr.c    ****             pTableData += SIZE_OF_TRACKED_OBJECT;
864
 592:FrameMgr.c    ****             pTableData += SIZE_OF_TRACKED_OBJECT;
865
 228               		.stabn	68,0,592,.LM26-FrameMgr_processFrame
865
 228               		.stabn	68,0,592,.LM26-.LFBB1
866
 229               	.LM26:
866
 229               	.LM26:
867
 230 0096 2896      		adiw r28,8
867
 230 0096 2896      		adiw r28,8
868
 231 0098 CACF      		rjmp .L4
868
 231 0098 00C0      		rjmp .L4
869
 232               	.L23:
869
 232               	.L23:
870
 593:FrameMgr.c    ****         }
870
 593:FrameMgr.c    ****         }
871
 594:FrameMgr.c    **** 		
871
 594:FrameMgr.c    **** 		
872
 595:FrameMgr.c    **** 		/* all done...send the end of tracking packets char */
872
 595:FrameMgr.c    **** 		/* all done...send the end of tracking packets char */
873
 596:FrameMgr.c    **** 		UIMgr_writeTxFifo(0xFF);
873
 596:FrameMgr.c    **** 		UIMgr_writeTxFifo(0xFF);
874
 233               		.stabn	68,0,596,.LM27-FrameMgr_processFrame
874
 233               		.stabn	68,0,596,.LM27-.LFBB1
875
 234               	.LM27:
875
 234               	.LM27:
876
 235 009a 8FEF      		ldi r24,lo8(-1)
876
 235 009a 8FEF      		ldi r24,lo8(-1)
877
 236 009c 00D0      		rcall UIMgr_writeTxFifo
877
 236 009c 00D0      		rcall UIMgr_writeTxFifo
878
 237               	.L2:
878
 237               	.L2:
879
 597:FrameMgr.c    **** 	}	
879
 597:FrameMgr.c    **** 	}	
Line 883... Line 883...
883
 601:FrameMgr.c    ****     to wait for VSYNC to indicate a new frame...so it doesn't need to be
883
 601:FrameMgr.c    ****     to wait for VSYNC to indicate a new frame...so it doesn't need to be
884
 602:FrameMgr.c    ****     done now */
884
 602:FrameMgr.c    ****     done now */
885
 603:FrameMgr.c    ****     
885
 603:FrameMgr.c    ****     
886
 604:FrameMgr.c    **** 	/* schedule the next action to acquire a new frame */	
886
 604:FrameMgr.c    **** 	/* schedule the next action to acquire a new frame */	
887
 605:FrameMgr.c    **** 	PUBLISH_EVENT(EV_PROCESS_FRAME_COMPLETE);
887
 605:FrameMgr.c    **** 	PUBLISH_EVENT(EV_PROCESS_FRAME_COMPLETE);
888
 238               		.stabn	68,0,605,.LM28-FrameMgr_processFrame
888
 238               		.stabn	68,0,605,.LM28-.LFBB1
889
 239               	.LM28:
889
 239               	.LM28:
890
 240 009e 84E0      		ldi r24,lo8(4)
890
 240 009e 84E0      		ldi r24,lo8(4)
891
 241 00a0 00D0      		rcall Exec_writeEventFifo
891
 241 00a0 00D0      		rcall Exec_writeEventFifo
892
 242               	/* epilogue: frame size=0 */
892
 242               	/* epilogue: frame size=0 */
893
 243 00a2 DF91      		pop r29
893
 243 00a2 DF91      		pop r29
Line 896... Line 896...
896
 246 00a8 0F91      		pop r16
896
 246 00a8 0F91      		pop r16
897
 247 00aa FF90      		pop r15
897
 247 00aa FF90      		pop r15
898
 248 00ac EF90      		pop r14
898
 248 00ac EF90      		pop r14
899
 249 00ae DF90      		pop r13
899
 249 00ae DF90      		pop r13
900
 250 00b0 0895      		ret
900
 250 00b0 0895      		ret
901
GAS LISTING /tmp/ccQRbLT3.s 			page 16
901
GAS LISTING /tmp/cc0XjEMJ.s 			page 16
902
 
902
 
903
 
903
 
904
 251               	/* epilogue end (size=8) */
904
 251               	/* epilogue end (size=8) */
905
 252               	/* function FrameMgr_processFrame size 88 (73) */
905
 252               	/* function FrameMgr_processFrame size 88 (73) */
906
 253               		.size	FrameMgr_processFrame, .-FrameMgr_processFrame
906
 253               		.size	FrameMgr_processFrame, .-FrameMgr_processFrame
Line 910... Line 910...
910
 257               		.stabs	"pTableData:r(0,22)=*(0,11)",64,0,523,28
910
 257               		.stabs	"pTableData:r(0,22)=*(0,11)",64,0,523,28
911
 258               		.stabs	"tmpUpperLeftX:r(0,11)",64,0,524,17
911
 258               		.stabs	"tmpUpperLeftX:r(0,11)",64,0,524,17
912
 259               		.stabs	"tmpUpperLeftY:r(0,11)",64,0,524,16
912
 259               		.stabs	"tmpUpperLeftY:r(0,11)",64,0,524,16
913
 260               		.stabs	"tmpLowerRightX:r(0,11)",64,0,524,15
913
 260               		.stabs	"tmpLowerRightX:r(0,11)",64,0,524,15
914
 261               		.stabs	"tmpLowerRightY:r(0,11)",64,0,524,14
914
 261               		.stabs	"tmpLowerRightY:r(0,11)",64,0,524,14
915
 262               		.stabn	192,0,0,FrameMgr_processFrame-FrameMgr_processFrame
915
 262               		.stabn	192,0,0,.LFBB1-.LFBB1
916
 263               		.stabn	224,0,0,.Lscope0-FrameMgr_processFrame
916
 263               		.stabn	224,0,0,.Lscope1-.LFBB1
917
 264               	.Lscope0:
917
 264               	.Lscope1:
918
 265               		.stabs	"",36,0,0,.Lscope0-FrameMgr_processFrame
918
 265               		.stabs	"",36,0,0,.Lscope1-.LFBB1
919
 266               		.stabd	78,0,0
919
 266               		.stabd	78,0,0
920
 267               		.stabs	"FrameMgr_processLine:F(0,15)",36,0,342,FrameMgr_processLine
920
 267               		.stabs	"FrameMgr_processLine:F(0,15)",36,0,342,FrameMgr_processLine
921
 268               	.global	FrameMgr_processLine
921
 268               	.global	FrameMgr_processLine
922
 269               		.type	FrameMgr_processLine, @function
922
 269               		.type	FrameMgr_processLine, @function
923
 270               	FrameMgr_processLine:
923
 270               	FrameMgr_processLine:
924
 271               		.stabd	46,0,0
924
 271               		.stabd	46,0,0
925
 272               		.stabn	68,0,342,.LM29-FrameMgr_processLine
925
 272               		.stabn	68,0,342,.LM29-.LFBB2
926
 273               	.LM29:
926
 273               	.LM29:
-
 
927
 274               	.LFBB2:
927
 274               	/* prologue: frame size=1 */
928
 275               	/* prologue: frame size=1 */
928
 275 00b2 2F92      		push r2
929
 276 00b2 2F92      		push r2
929
 276 00b4 3F92      		push r3
930
 277 00b4 3F92      		push r3
930
 277 00b6 4F92      		push r4
931
 278 00b6 4F92      		push r4
931
 278 00b8 5F92      		push r5
932
 279 00b8 5F92      		push r5
932
 279 00ba 6F92      		push r6
933
 280 00ba 6F92      		push r6
933
 280 00bc 7F92      		push r7
934
 281 00bc 7F92      		push r7
934
 281 00be 8F92      		push r8
935
 282 00be 8F92      		push r8
935
 282 00c0 9F92      		push r9
936
 283 00c0 9F92      		push r9
936
 283 00c2 AF92      		push r10
-
 
937
 284 00c4 BF92      		push r11
937
 284 00c2 BF92      		push r11
938
 285 00c6 CF92      		push r12
938
 285 00c4 CF92      		push r12
939
 286 00c8 DF92      		push r13
939
 286 00c6 DF92      		push r13
940
 287 00ca EF92      		push r14
940
 287 00c8 EF92      		push r14
941
 288 00cc FF92      		push r15
941
 288 00ca FF92      		push r15
942
 289 00ce 0F93      		push r16
942
 289 00cc 0F93      		push r16
943
 290 00d0 1F93      		push r17
943
 290 00ce 1F93      		push r17
944
 291 00d2 CF93      		push r28
944
 291 00d0 CF93      		push r28
945
 292 00d4 DF93      		push r29
945
 292 00d2 DF93      		push r29
946
 293 00d6 CDB7      		in r28,__SP_L__
946
 293 00d4 CDB7      		in r28,__SP_L__
947
 294 00d8 DEB7      		in r29,__SP_H__
947
 294 00d6 DEB7      		in r29,__SP_H__
948
 295 00da 2197      		sbiw r28,1
948
 295 00d8 2197      		sbiw r28,1
949
 296 00dc 0FB6      		in __tmp_reg__,__SREG__
949
 296 00da 0FB6      		in __tmp_reg__,__SREG__
950
 297 00de F894      		cli
950
 297 00dc F894      		cli
951
 298 00e0 DEBF      		out __SP_H__,r29
951
 298 00de DEBF      		out __SP_H__,r29
952
 299 00e2 0FBE      		out __SREG__,__tmp_reg__
952
 299 00e0 0FBE      		out __SREG__,__tmp_reg__
953
 300 00e4 CDBF      		out __SP_L__,r28
953
 300 00e2 CDBF      		out __SP_L__,r28
954
 301               	/* prologue end (size=26) */
954
 301               	/* prologue end (size=25) */
955
 302               		.stabn	68,0,345,.LM30-FrameMgr_processLine
955
 302               		.stabn	68,0,345,.LM30-.LFBB2
956
 303               	.LM30:
956
 303               	.LM30:
957
 304 00e6 0091 0000 		lds r16,pCurrentTrackedObjectTable
957
 304 00e4 4091 0000 		lds r20,pCurrentTrackedObjectTable
958
 305 00ea 1091 0000 		lds r17,(pCurrentTrackedObjectTable)+1
958
 305 00e8 5091 0000 		lds r21,(pCurrentTrackedObjectTable)+1
959
 306               		.stabn	68,0,352,.LM31-FrameMgr_processLine
959
 306               		.stabn	68,0,352,.LM31-.LFBB2
960
 307               	.LM31:
960
 307               	.LM31:
961
GAS LISTING /tmp/ccQRbLT3.s 			page 17
961
GAS LISTING /tmp/cc0XjEMJ.s 			page 17
962
 
962
 
963
 
963
 
964
 308 00ee 8091 0000 		lds r24,currentState
964
 308 00ec 8091 0000 		lds r24,currentState
965
 309 00f2 8230      		cpi r24,lo8(2)
965
 309 00f0 8230      		cpi r24,lo8(2)
966
 310 00f4 09F0      		breq .+2
966
 310 00f2 01F0      		breq .+2
967
 311 00f6 6AC0      		rjmp .L27
967
 311 00f4 00C0      		rjmp .L27
968
 312               		.stabn	68,0,361,.LM32-FrameMgr_processLine
968
 312               		.stabn	68,0,361,.LM32-.LFBB2
969
 313               	.LM32:
969
 313               	.LM32:
970
 314 00f8 8BE0      		ldi r24,lo8(11)
970
 314 00f6 8BE0      		ldi r24,lo8(11)
971
 315 00fa 00D0      		rcall UartInt_txByte
971
 315 00f8 00D0      		rcall UartInt_txByte
972
 316               		.stabn	68,0,362,.LM33-FrameMgr_processLine
972
 316               		.stabn	68,0,362,.LM33-.LFBB2
973
 317               	.LM33:
973
 317               	.LM33:
974
 318 00fc 8091 0000 		lds r24,lineCount
974
 318 00fa 8091 0000 		lds r24,lineCount
975
 319 0100 00D0      		rcall UartInt_txByte
975
 319 00fe 00D0      		rcall UartInt_txByte
976
 320 0102 0F2E      		mov __tmp_reg__,r31
976
 320 0100 00E0      		ldi r16,lo8(currentLineBuffer)
977
 321 0104 F0E0      		ldi r31,lo8(currentLineBuffer)
977
 321 0102 10E0      		ldi r17,hi8(currentLineBuffer)
978
 322 0106 CF2E      		mov r12,r31
978
 322 0104 0F2E      		mov __tmp_reg__,r31
979
 323 0108 F0E0      		ldi r31,hi8(currentLineBuffer)
979
 323 0106 F0E0      		ldi r31,lo8(previousLineBuffer)
980
 324 010a DF2E      		mov r13,r31
980
 324 0108 EF2E      		mov r14,r31
981
 325 010c F02D      		mov r31,__tmp_reg__
981
 325 010a F0E0      		ldi r31,hi8(previousLineBuffer)
982
 326 010e 00E0      		ldi r16,lo8(0)
982
 326 010c FF2E      		mov r15,r31
983
 327 0110 10E0      		ldi r17,hi8(0)
983
 327 010e F02D      		mov r31,__tmp_reg__
984
 328 0112 0F2E      		mov __tmp_reg__,r31
984
 328               		.stabn	68,0,363,.LM34-.LFBB2
985
 329 0114 F0E0      		ldi r31,lo8(previousLineBuffer)
985
 329               	.LM34:
986
 330 0116 EF2E      		mov r14,r31
986
 330 0110 0F2E      		mov __tmp_reg__,r31
987
 331 0118 F0E0      		ldi r31,hi8(previousLineBuffer)
987
 331 0112 F0E0      		ldi r31,lo8(currentLineBuffer+176)
988
 332 011a FF2E      		mov r15,r31
988
 332 0114 CF2E      		mov r12,r31
989
 333 011c F02D      		mov r31,__tmp_reg__
989
 333 0116 F0E0      		ldi r31,hi8(currentLineBuffer+176)
990
 334               	.L29:
990
 334 0118 DF2E      		mov r13,r31
991
 335               		.stabn	68,0,370,.LM34-FrameMgr_processLine
991
 335 011a F02D      		mov r31,__tmp_reg__
992
 336               	.LM34:
992
 336               	.L29:
993
 337 011e F601      		movw r30,r12
993
 337               		.stabn	68,0,370,.LM35-.LFBB2
994
 338 0120 8081      		ld r24,Z
994
 338               	.LM35:
995
 339 0122 8983      		std Y+1,r24
995
 339 011c D801      		movw r26,r16
996
 340               		.stabn	68,0,371,.LM35-FrameMgr_processLine
996
 340 011e 8C91      		ld r24,X
997
 341               	.LM35:
997
 341 0120 8983      		std Y+1,r24
998
 342 0124 8981      		ldd r24,Y+1
998
 342               		.stabn	68,0,371,.LM36-.LFBB2
999
 343 0126 8F70      		andi r24,lo8(15)
999
 343               	.LM36:
1000
 344 0128 8983      		std Y+1,r24
1000
 344 0122 8981      		ldd r24,Y+1
1001
 345               		.stabn	68,0,372,.LM36-FrameMgr_processLine
1001
 345 0124 8F70      		andi r24,lo8(15)
1002
 346               	.LM36:
1002
 346 0126 8983      		std Y+1,r24
1003
 347 012a 8981      		ldd r24,Y+1
1003
 347               		.stabn	68,0,372,.LM37-.LFBB2
1004
 348 012c 8295      		swap r24
1004
 348               	.LM37:
1005
 349 012e 807F      		andi r24,0xf0
1005
 349 0128 8981      		ldd r24,Y+1
1006
 350 0130 8983      		std Y+1,r24
1006
 350 012a 8295      		swap r24
1007
 351               		.stabn	68,0,373,.LM37-FrameMgr_processLine
1007
 351 012c 807F      		andi r24,0xf0
1008
 352               	.LM37:
1008
 352 012e 8983      		std Y+1,r24
1009
 353 0132 9981      		ldd r25,Y+1
1009
 353               		.stabn	68,0,373,.LM38-.LFBB2
1010
 354 0134 F701      		movw r30,r14
1010
 354               	.LM38:
1011
 355 0136 8081      		ld r24,Z
1011
 355 0130 9981      		ldd r25,Y+1
1012
 356 0138 8F70      		andi r24,lo8(15)
1012
 356 0132 F701      		movw r30,r14
1013
 357 013a 892B      		or r24,r25
1013
 357 0134 8081      		ld r24,Z
1014
 358 013c 8983      		std Y+1,r24
1014
 358 0136 8F70      		andi r24,lo8(15)
1015
 359               		.stabn	68,0,376,.LM38-FrameMgr_processLine
1015
 359 0138 892B      		or r24,r25
1016
 360               	.LM38:
1016
 360 013a 8983      		std Y+1,r24
1017
 361 013e 8981      		ldd r24,Y+1
1017
 361               		.stabn	68,0,376,.LM39-.LFBB2
1018
 362 0140 00D0      		rcall UartInt_txByte
1018
 362               	.LM39:
1019
 363               		.stabn	68,0,379,.LM39-FrameMgr_processLine
1019
 363 013c 8981      		ldd r24,Y+1
1020
 364               	.LM39:
1020
 364 013e 00D0      		rcall UartInt_txByte
1021
GAS LISTING /tmp/ccQRbLT3.s 			page 18
1021
GAS LISTING /tmp/cc0XjEMJ.s 			page 18
1022
 
1022
 
1023
 
1023
 
1024
 365 0142 D801      		movw r26,r16
1024
 365               		.stabn	68,0,379,.LM40-.LFBB2
1025
 366 0144 1196      		adiw r26,1
1025
 366               	.LM40:
1026
 367 0146 FD01      		movw r30,r26
1026
 367 0140 F701      		movw r30,r14
1027
 368 0148 E050      		subi r30,lo8(-(previousLineBuffer))
1027
 368 0142 8181      		ldd r24,Z+1
1028
 369 014a F040      		sbci r31,hi8(-(previousLineBuffer))
1028
 369 0144 8983      		std Y+1,r24
1029
 370 014c 8081      		ld r24,Z
1029
 370               		.stabn	68,0,380,.LM41-.LFBB2
1030
 371 014e 8983      		std Y+1,r24
1030
 371               	.LM41:
1031
 372               		.stabn	68,0,380,.LM40-FrameMgr_processLine
1031
 372 0146 8981      		ldd r24,Y+1
1032
 373               	.LM40:
1032
 373 0148 8F70      		andi r24,lo8(15)
1033
 374 0150 8981      		ldd r24,Y+1
1033
 374 014a 8983      		std Y+1,r24
1034
 375 0152 8F70      		andi r24,lo8(15)
1034
 375               		.stabn	68,0,381,.LM42-.LFBB2
1035
 376 0154 8983      		std Y+1,r24
1035
 376               	.LM42:
1036
 377               		.stabn	68,0,381,.LM41-FrameMgr_processLine
1036
 377 014c 8981      		ldd r24,Y+1
1037
 378               	.LM41:
1037
 378 014e 8295      		swap r24
1038
 379 0156 8981      		ldd r24,Y+1
1038
 379 0150 807F      		andi r24,0xf0
1039
 380 0158 8295      		swap r24
1039
 380 0152 8983      		std Y+1,r24
1040
 381 015a 807F      		andi r24,0xf0
1040
 381               		.stabn	68,0,382,.LM43-.LFBB2
1041
 382 015c 8983      		std Y+1,r24
1041
 382               	.LM43:
1042
 383               		.stabn	68,0,382,.LM42-FrameMgr_processLine
1042
 383 0154 9981      		ldd r25,Y+1
1043
 384               	.LM42:
1043
 384 0156 F801      		movw r30,r16
1044
 385 015e 9981      		ldd r25,Y+1
1044
 385 0158 8181      		ldd r24,Z+1
1045
 386 0160 A050      		subi r26,lo8(-(currentLineBuffer))
1045
 386 015a 8F70      		andi r24,lo8(15)
1046
 387 0162 B040      		sbci r27,hi8(-(currentLineBuffer))
1046
 387 015c 892B      		or r24,r25
1047
 388 0164 8C91      		ld r24,X
1047
 388 015e 8983      		std Y+1,r24
1048
 389 0166 8F70      		andi r24,lo8(15)
1048
 389               		.stabn	68,0,385,.LM44-.LFBB2
1049
 390 0168 892B      		or r24,r25
1049
 390               	.LM44:
1050
 391 016a 8983      		std Y+1,r24
1050
 391 0160 8981      		ldd r24,Y+1
1051
 392               		.stabn	68,0,385,.LM43-FrameMgr_processLine
1051
 392 0162 00D0      		rcall UartInt_txByte
1052
 393               	.LM43:
1052
 393 0164 0E5F      		subi r16,lo8(-(2))
1053
 394 016c 8981      		ldd r24,Y+1
1053
 394 0166 1F4F      		sbci r17,hi8(-(2))
1054
 395 016e 00D0      		rcall UartInt_txByte
1054
 395 0168 82E0      		ldi r24,lo8(2)
1055
 396 0170 82E0      		ldi r24,lo8(2)
1055
 396 016a 90E0      		ldi r25,hi8(2)
1056
 397 0172 90E0      		ldi r25,hi8(2)
1056
 397 016c E80E      		add r14,r24
1057
 398 0174 C80E      		add r12,r24
1057
 398 016e F91E      		adc r15,r25
1058
 399 0176 D91E      		adc r13,r25
1058
 399               		.stabn	68,0,363,.LM45-.LFBB2
1059
 400 0178 0E5F      		subi r16,lo8(-(2))
1059
 400               	.LM45:
1060
 401 017a 1F4F      		sbci r17,hi8(-(2))
1060
 401 0170 0C15      		cp r16,r12
1061
 402 017c E80E      		add r14,r24
1061
 402 0172 1D05      		cpc r17,r13
1062
 403 017e F91E      		adc r15,r25
1062
 403 0174 01F4      		brne .L29
1063
 404               		.stabn	68,0,363,.LM44-FrameMgr_processLine
1063
 404               		.stabn	68,0,387,.LM46-.LFBB2
1064
 405               	.LM44:
1064
 405               	.LM46:
1065
 406 0180 003B      		cpi r16,176
1065
 406 0176 8FE0      		ldi r24,lo8(15)
1066
 407 0182 1105      		cpc r17,__zero_reg__
1066
 407 0178 00D0      		rcall UartInt_txByte
1067
 408 0184 61F6      		brne .L29
1067
 408               		.stabn	68,0,391,.LM47-.LFBB2
1068
 409               		.stabn	68,0,387,.LM45-FrameMgr_processLine
1068
 409               	.LM47:
1069
 410               	.LM45:
1069
 410 017a 8091 0000 		lds r24,lineCount
1070
 411 0186 8FE0      		ldi r24,lo8(15)
1070
 411 017e 8F5F      		subi r24,lo8(-(1))
1071
 412 0188 00D0      		rcall UartInt_txByte
1071
 412 0180 8093 0000 		sts lineCount,r24
1072
 413               		.stabn	68,0,391,.LM46-FrameMgr_processLine
1072
 413               		.stabn	68,0,394,.LM48-.LFBB2
1073
 414               	.LM46:
1073
 414               	.LM48:
1074
 415 018a 8091 0000 		lds r24,lineCount
1074
 415 0184 8834      		cpi r24,lo8(72)
1075
 416 018e 8F5F      		subi r24,lo8(-(1))
1075
 416 0186 00F0      		brlo .L31
1076
 417 0190 8093 0000 		sts lineCount,r24
1076
 417               		.stabn	68,0,398,.LM49-.LFBB2
1077
 418               		.stabn	68,0,394,.LM47-FrameMgr_processLine
1077
 418               	.LM49:
1078
 419               	.LM47:
1078
 419 0188 1092 0000 		sts lineCount,__zero_reg__
1079
 420 0194 8834      		cpi r24,lo8(72)
1079
 420               		.stabn	68,0,399,.LM50-.LFBB2
1080
 421 0196 60F0      		brlo .L31
1080
 421               	.LM50:
1081
GAS LISTING /tmp/ccQRbLT3.s 			page 19
1081
GAS LISTING /tmp/cc0XjEMJ.s 			page 19
1082
 
1082
 
1083
 
1083
 
1084
 422               		.stabn	68,0,398,.LM48-FrameMgr_processLine
1084
 422 018c 1092 0000 		sts currentState,__zero_reg__
1085
 423               	.LM48:
1085
 423               		.stabn	68,0,402,.LM51-.LFBB2
1086
 424 0198 1092 0000 		sts lineCount,__zero_reg__
1086
 424               	.LM51:
1087
 425               		.stabn	68,0,399,.LM49-FrameMgr_processLine
1087
 425 0190 89B7      		in r24,89-0x20
1088
 426               	.LM49:
1088
 426 0192 8B7F      		andi r24,lo8(-5)
1089
 427 019c 1092 0000 		sts currentState,__zero_reg__
1089
 427 0194 89BF      		out 89-0x20,r24
1090
 428               		.stabn	68,0,402,.LM50-FrameMgr_processLine
1090
 428               		.stabn	68,0,404,.LM52-.LFBB2
1091
 429               	.LM50:
1091
 429               	.LM52:
1092
 430 01a0 89B7      		in r24,89-0x20
1092
 430 0196 60E0      		ldi r22,lo8(0)
1093
 431 01a2 8B7F      		andi r24,lo8(-5)
1093
 431 0198 81E1      		ldi r24,lo8(17)
1094
 432 01a4 89BF      		out 89-0x20,r24
1094
 432 019a 00D0      		rcall CamConfig_setCamReg
1095
 433               		.stabn	68,0,404,.LM51-FrameMgr_processLine
1095
 433               		.stabn	68,0,405,.LM53-.LFBB2
1096
 434               	.LM51:
1096
 434               	.LM53:
1097
 435 01a6 60E0      		ldi r22,lo8(0)
1097
 435 019c 00D0      		rcall CamConfig_sendFifoCmds
1098
 436 01a8 81E1      		ldi r24,lo8(17)
1098
 436 019e 00C0      		rjmp .L72
1099
 437 01aa 00D0      		rcall CamConfig_setCamReg
1099
 437               	.L31:
1100
 438               		.stabn	68,0,405,.LM52-FrameMgr_processLine
1100
 438               		.stabn	68,0,410,.LM54-.LFBB2
1101
 439               	.LM52:
1101
 439               	.LM54:
1102
 440 01ac 00D0      		rcall CamConfig_sendFifoCmds
1102
 440 01a0 8091 0000 		lds r24,fastEventBitmask
1103
 441 01ae C8C0      		rjmp .L71
1103
 441 01a4 8260      		ori r24,lo8(2)
1104
 442               	.L31:
1104
 442 01a6 8093 0000 		sts fastEventBitmask,r24
1105
 443               		.stabn	68,0,410,.LM53-FrameMgr_processLine
1105
 443 01aa 00C0      		rjmp .L72
1106
 444               	.LM53:
1106
 444               	.L27:
1107
 445 01b0 8091 0000 		lds r24,fastEventBitmask
1107
 445               		.stabn	68,0,413,.LM55-.LFBB2
1108
 446 01b4 8260      		ori r24,lo8(2)
1108
 446               	.LM55:
1109
 447 01b6 8093 0000 		sts fastEventBitmask,r24
1109
 447 01ac 8130      		cpi r24,lo8(1)
1110
 448 01ba C2C0      		rjmp .L71
1110
 448 01ae 01F0      		breq .+2
1111
 449               	.L72:
1111
 449 01b0 00C0      		rjmp .L72
1112
 450               		.stabn	68,0,491,.LM54-FrameMgr_processLine
1112
 450               	.LBB4:
1113
 451               	.LM54:
1113
 451               	.LBB5:
1114
 452 01bc 80E2      		ldi r24,lo8(32)
-
 
1115
 453 01be 00D0      		rcall Exec_writeEventFifo
-
 
1116
 454               		.stabn	68,0,493,.LM55-FrameMgr_processLine
-
 
1117
 455               	.LM55:
-
 
1118
 456 01c0 89B7      		in r24,89-0x20
-
 
1119
 457 01c2 8B7F      		andi r24,lo8(-5)
-
 
1120
 458 01c4 89BF      		out 89-0x20,r24
-
 
1121
 459               		.stabn	68,0,494,.LM56-FrameMgr_processLine
-
 
1122
 460               	.LM56:
-
 
1123
 461 01c6 1092 0000 		sts trackedLineCount,__zero_reg__
-
 
1124
 462 01ca BAC0      		rjmp .L71
-
 
1125
 463               	.L27:
-
 
1126
 464               		.stabn	68,0,413,.LM57-FrameMgr_processLine
-
 
1127
 465               	.LM57:
-
 
1128
 466 01cc 8130      		cpi r24,lo8(1)
-
 
1129
 467 01ce 09F0      		breq .+2
-
 
1130
 468 01d0 B7C0      		rjmp .L71
-
 
1131
 469               	.LBB4:
-
 
1132
 470               	.LBB5:
-
 
1133
 606:FrameMgr.c    **** }
1114
 606:FrameMgr.c    **** }
1134
 607:FrameMgr.c    **** 
1115
 607:FrameMgr.c    **** 
1135
 608:FrameMgr.c    **** /***********************************************************
1116
 608:FrameMgr.c    **** /***********************************************************
1136
 609:FrameMgr.c    **** 	Function Name: FrameMgr_findConnectedness
1117
 609:FrameMgr.c    **** 	Function Name: FrameMgr_findConnectedness
1137
 610:FrameMgr.c    **** 	Function Description: This function is responsible for
1118
 610:FrameMgr.c    **** 	Function Description: This function is responsible for
1138
 611:FrameMgr.c    **** 	finding the connectedness between two particular run-
1119
 611:FrameMgr.c    **** 	finding the connectedness between two particular run-
1139
 612:FrameMgr.c    **** 	length encoded lines of pixel data.  It updates the
1120
 612:FrameMgr.c    **** 	length encoded lines of pixel data.  It updates the
1140
 613:FrameMgr.c    **** 	trackingTable as needed.
1121
 613:FrameMgr.c    **** 	trackingTable as needed.
1141
GAS LISTING /tmp/ccQRbLT3.s 			page 20
-
 
1142
 
-
 
1143
 
-
 
1144
 614:FrameMgr.c    **** 	Inputs:  none
1122
 614:FrameMgr.c    **** 	Inputs:  none
1145
 615:FrameMgr.c    **** 	Outputs: none
1123
 615:FrameMgr.c    **** 	Outputs: none
1146
 616:FrameMgr.c    **** ***********************************************************/	
1124
 616:FrameMgr.c    **** ***********************************************************/	
1147
 617:FrameMgr.c    **** static void FrameMgr_findConnectedness(void)
1125
 617:FrameMgr.c    **** static void FrameMgr_findConnectedness(void)
1148
 618:FrameMgr.c    **** {
1126
 618:FrameMgr.c    **** {
Line 1158... Line 1136...
1158
 628:FrameMgr.c    **** 	bool_t colorConnected;	
1136
 628:FrameMgr.c    **** 	bool_t colorConnected;	
1159
 629:FrameMgr.c    **** 	
1137
 629:FrameMgr.c    **** 	
1160
 630:FrameMgr.c    **** 	do
1138
 630:FrameMgr.c    **** 	do
1161
 631:FrameMgr.c    **** 	{
1139
 631:FrameMgr.c    **** 	{
1162
 632:FrameMgr.c    **** 		/* grab both the current color and the number of pixels
1140
 632:FrameMgr.c    **** 		/* grab both the current color and the number of pixels
-
 
1141
GAS LISTING /tmp/cc0XjEMJ.s 			page 20
-
 
1142
 
-
 
1143
 
1163
 633:FrameMgr.c    **** 		in the run...remember, pixels start at 1, not 0! */
1144
 633:FrameMgr.c    **** 		in the run...remember, pixels start at 1, not 0! */
1164
 634:FrameMgr.c    **** 		colorConnected = FALSE;
1145
 634:FrameMgr.c    **** 		colorConnected = FALSE;
1165
 635:FrameMgr.c    **** 		currColor = *pCurrLineColorInfo++;
1146
 635:FrameMgr.c    **** 		currColor = *pCurrLineColorInfo++;
1166
 636:FrameMgr.c    **** 		currPixelRunStart += runLength;
1147
 636:FrameMgr.c    **** 		currPixelRunStart += runLength;
1167
 637:FrameMgr.c    **** 		runLength = *pCurrLineColorInfo++;
1148
 637:FrameMgr.c    **** 		runLength = *pCurrLineColorInfo++;
Line 1189... Line 1170...
1189
 659:FrameMgr.c    ****             
1170
 659:FrameMgr.c    ****             
1190
 660:FrameMgr.c    ****             pTrackedObjectData = (unsigned char *)pCurrentTrackedObjectTable;
1171
 660:FrameMgr.c    ****             pTrackedObjectData = (unsigned char *)pCurrentTrackedObjectTable;
1191
 661:FrameMgr.c    **** 			for (i=0; i<MAX_TRACKED_OBJECTS; i++)
1172
 661:FrameMgr.c    **** 			for (i=0; i<MAX_TRACKED_OBJECTS; i++)
1192
 662:FrameMgr.c    **** 			{
1173
 662:FrameMgr.c    **** 			{
1193
 663:FrameMgr.c    **** 				if ( (currColor == *(pTrackedObjectData + COLOR_OFFSET)) && 
1174
 663:FrameMgr.c    **** 				if ( (currColor == *(pTrackedObjectData + COLOR_OFFSET)) && 
-
 
1175
 452               		.stabn	68,0,663,.LM56-.LFBB2
-
 
1176
 453               	.LM56:
-
 
1177
 454 01b2 B090 0000 		lds r11,trackedLineCount
-
 
1178
 455 01b6 EB2C      		mov r14,r11
-
 
1179
 456 01b8 FF24      		clr r15
-
 
1180
 457 01ba 3701      		movw r6,r14
-
 
1181
 458 01bc 0894      		sec
-
 
1182
 459 01be 6108      		sbc r6,__zero_reg__
-
 
1183
 460 01c0 7108      		sbc r7,__zero_reg__
-
 
1184
 461 01c2 0091 0000 		lds r16,numCurrTrackedObjects
-
 
1185
 462 01c6 10E0      		ldi r17,lo8(0)
-
 
1186
 463 01c8 60E0      		ldi r22,lo8(0)
-
 
1187
 464 01ca 71E0      		ldi r23,lo8(1)
-
 
1188
 465 01cc 0F2E      		mov __tmp_reg__,r31
-
 
1189
 466 01ce F0E0      		ldi r31,lo8(currentLineBuffer)
-
 
1190
 467 01d0 2F2E      		mov r2,r31
-
 
1191
 468 01d2 F0E0      		ldi r31,hi8(currentLineBuffer)
-
 
1192
 469 01d4 3F2E      		mov r3,r31
-
 
1193
 470 01d6 F02D      		mov r31,__tmp_reg__
-
 
1194
 471               	.L35:
-
 
1195
 472               		.stabn	68,0,635,.LM57-.LFBB2
-
 
1196
 473               	.LM57:
-
 
1197
 474 01d8 D101      		movw r26,r2
-
 
1198
 475 01da 3C91      		ld r19,X
-
 
1199
 476               		.stabn	68,0,636,.LM58-.LFBB2
-
 
1200
 477               	.LM58:
-
 
1201
GAS LISTING /tmp/cc0XjEMJ.s 			page 21
-
 
1202
 
-
 
1203
 
-
 
1204
 478 01dc 170F      		add r17,r23
-
 
1205
 479               		.stabn	68,0,637,.LM59-.LFBB2
-
 
1206
 480               	.LM59:
-
 
1207
 481 01de F101      		movw r30,r2
-
 
1208
 482 01e0 7181      		ldd r23,Z+1
-
 
1209
 483 01e2 82E0      		ldi r24,lo8(2)
-
 
1210
 484 01e4 90E0      		ldi r25,hi8(2)
-
 
1211
 485 01e6 280E      		add r2,r24
-
 
1212
 486 01e8 391E      		adc r3,r25
-
 
1213
 487               		.stabn	68,0,638,.LM60-.LFBB2
-
 
1214
 488               	.LM60:
-
 
1215
 489 01ea 670F      		add r22,r23
-
 
1216
 490               		.stabn	68,0,643,.LM61-.LFBB2
-
 
1217
 491               	.LM61:
-
 
1218
 492 01ec 3323      		tst r19
-
 
1219
 493 01ee 01F4      		brne .+2
-
 
1220
 494 01f0 00C0      		rjmp .L36
-
 
1221
 495 01f2 7430      		cpi r23,lo8(4)
-
 
1222
 496 01f4 00F4      		brsh .+2
-
 
1223
 497 01f6 00C0      		rjmp .L36
-
 
1224
 498 01f8 FA01      		movw r30,r20
-
 
1225
 499 01fa 20E0      		ldi r18,lo8(0)
-
 
1226
 500               	.L39:
-
 
1227
 501               		.stabn	68,0,663,.LM62-.LFBB2
-
 
1228
 502               	.LM62:
-
 
1229
 503 01fc 8081      		ld r24,Z
-
 
1230
 504 01fe 8317      		cp r24,r19
-
 
1231
 505 0200 01F4      		brne .L40
-
 
1232
 506 0202 8781      		ldd r24,Z+7
-
 
1233
 507 0204 8130      		cpi r24,lo8(1)
-
 
1234
 508 0206 01F4      		brne .L40
-
 
1235
 509 0208 0F2E      		mov __tmp_reg__,r31
-
 
1236
 510 020a F6E0      		ldi r31,lo8(6)
-
 
1237
 511 020c CF2E      		mov r12,r31
-
 
1238
 512 020e DD24      		clr r13
-
 
1239
 513 0210 F02D      		mov r31,__tmp_reg__
-
 
1240
 514 0212 CE0E      		add r12,r30
-
 
1241
 515 0214 DF1E      		adc r13,r31
-
 
1242
 516 0216 8681      		ldd r24,Z+6
-
 
1243
 517 0218 9927      		clr r25
-
 
1244
 518 021a 8615      		cp r24,r6
-
 
1245
 519 021c 9705      		cpc r25,r7
-
 
1246
 520 021e 01F4      		brne .L40
-
 
1247
 521 0220 2F01      		movw r4,r30
-
 
1248
 522 0222 0894      		sec
-
 
1249
 523 0224 411C      		adc r4,__zero_reg__
-
 
1250
 524 0226 511C      		adc r5,__zero_reg__
1194
 664:FrameMgr.c    ****                      (*(pTrackedObjectData + VALID_OBJECT_OFFSET) == TRUE) &&
1251
 664:FrameMgr.c    ****                      (*(pTrackedObjectData + VALID_OBJECT_OFFSET) == TRUE) &&
1195
 665:FrameMgr.c    ****                      (*(pTrackedObjectData + Y_LOWER_RIGHT_OFFSET) == trackedLineCount - 1) )
1252
 665:FrameMgr.c    ****                      (*(pTrackedObjectData + Y_LOWER_RIGHT_OFFSET) == trackedLineCount - 1) )
1196
 666:FrameMgr.c    **** 				{
1253
 666:FrameMgr.c    **** 				{
1197
 667:FrameMgr.c    **** 					/* found a color match and the object is valid...check to see if there is
1254
 667:FrameMgr.c    **** 					/* found a color match and the object is valid...check to see if there is
1198
 668:FrameMgr.c    **** 					connectedness */
1255
 668:FrameMgr.c    **** 					connectedness */
1199
 669:FrameMgr.c    **** 					lastLineXStart = *(pTrackedObjectData + LAST_LINE_X_START_OFFSET);
1256
 669:FrameMgr.c    **** 					lastLineXStart = *(pTrackedObjectData + LAST_LINE_X_START_OFFSET);
1200
 670:FrameMgr.c    **** 					lastLineXFinish = *(pTrackedObjectData + LAST_LINE_X_FINISH_OFFSET);
1257
 525               		.stabn	68,0,669,.LM63-.LFBB2
-
 
1258
 526               	.LM63:
-
 
1259
 527 0228 8181      		ldd r24,Z+1
-
 
1260
 528 022a 8824      		clr r8
1201
GAS LISTING /tmp/ccQRbLT3.s 			page 21
1261
GAS LISTING /tmp/cc0XjEMJ.s 			page 22
1202
 
1262
 
1203
 
1263
 
-
 
1264
 529 022c 9924      		clr r9
-
 
1265
 530 022e 6894      		set
-
 
1266
 531 0230 81F8      		bld r8,1
-
 
1267
 532 0232 8E0E      		add r8,r30
-
 
1268
 533 0234 9F1E      		adc r9,r31
-
 
1269
 670:FrameMgr.c    **** 					lastLineXFinish = *(pTrackedObjectData + LAST_LINE_X_FINISH_OFFSET);
-
 
1270
 534               		.stabn	68,0,670,.LM64-.LFBB2
-
 
1271
 535               	.LM64:
-
 
1272
 536 0236 9281      		ldd r25,Z+2
1204
 671:FrameMgr.c    **** 					
1273
 671:FrameMgr.c    **** 					
1205
 672:FrameMgr.c    **** 					/* Check for the 5 following types of line connectedness:
1274
 672:FrameMgr.c    **** 					/* Check for the 5 following types of line connectedness:
1206
 673:FrameMgr.c    **** 					---------------------
1275
 673:FrameMgr.c    **** 					---------------------
1207
 674:FrameMgr.c    **** 					|                   |
1276
 674:FrameMgr.c    **** 					|                   |
1208
 675:FrameMgr.c    **** 					---------------------
1277
 675:FrameMgr.c    **** 					---------------------
1209
 676:FrameMgr.c    **** 					         -------------------------
1278
 676:FrameMgr.c    **** 					         -------------------------
1210
 677:FrameMgr.c    **** 							 |                       |
1279
 677:FrameMgr.c    **** 							 |                       |
1211
 678:FrameMgr.c    **** 							 -------------------------  */
1280
 678:FrameMgr.c    **** 							 -------------------------  */
1212
 679:FrameMgr.c    **** 					if ( (	(currPixelRunStart >= lastLineXStart) &&
1281
 679:FrameMgr.c    **** 					if ( (	(currPixelRunStart >= lastLineXStart) &&
-
 
1282
 537               		.stabn	68,0,679,.LM65-.LFBB2
-
 
1283
 538               	.LM65:
-
 
1284
 539 0238 1817      		cp r17,r24
-
 
1285
 540 023a 00F0      		brlo .L44
-
 
1286
 541 023c 9117      		cp r25,r17
-
 
1287
 542 023e 00F4      		brsh .L46
-
 
1288
 543               	.L44:
-
 
1289
 544 0240 6817      		cp r22,r24
-
 
1290
 545 0242 00F0      		brlo .L47
-
 
1291
 546 0244 9617      		cp r25,r22
-
 
1292
 547 0246 00F4      		brsh .L46
-
 
1293
 548               	.L47:
-
 
1294
 549 0248 8117      		cp r24,r17
-
 
1295
 550 024a 00F0      		brlo .L40
-
 
1296
 551 024c 6917      		cp r22,r25
-
 
1297
 552 024e 00F0      		brlo .L40
-
 
1298
 553               	.L46:
1213
 680:FrameMgr.c    **** 							(currPixelRunStart <= lastLineXFinish) )  ||
1299
 680:FrameMgr.c    **** 							(currPixelRunStart <= lastLineXFinish) )  ||
1214
 681:FrameMgr.c    **** 							
1300
 681:FrameMgr.c    **** 							
1215
 682:FrameMgr.c    **** 					/*               ---------------------
1301
 682:FrameMgr.c    **** 					/*               ---------------------
1216
 683:FrameMgr.c    **** 					                 |                   |
1302
 683:FrameMgr.c    **** 					                 |                   |
1217
 684:FrameMgr.c    **** 									 ---------------------
1303
 684:FrameMgr.c    **** 									 ---------------------
Line 1230... Line 1316...
1230
 697:FrameMgr.c    **** 							
1316
 697:FrameMgr.c    **** 							
1231
 698:FrameMgr.c    **** 							
1317
 698:FrameMgr.c    **** 							
1232
 699:FrameMgr.c    **** 					/*     -------------------------------
1318
 699:FrameMgr.c    **** 					/*     -------------------------------
1233
 700:FrameMgr.c    **** 					       |                             |
1319
 700:FrameMgr.c    **** 					       |                             |
1234
 701:FrameMgr.c    **** 						   -------------------------------
1320
 701:FrameMgr.c    **** 						   -------------------------------
-
 
1321
GAS LISTING /tmp/cc0XjEMJ.s 			page 23
-
 
1322
 
-
 
1323
 
1235
 702:FrameMgr.c    **** 						   -------------------------------
1324
 702:FrameMgr.c    **** 						   -------------------------------
1236
 703:FrameMgr.c    **** 						   |                             |
1325
 703:FrameMgr.c    **** 						   |                             |
1237
 704:FrameMgr.c    **** 						   -------------------------------
1326
 704:FrameMgr.c    **** 						   -------------------------------
1238
 705:FrameMgr.c    **** 						                  OR
1327
 705:FrameMgr.c    **** 						                  OR
1239
 706:FrameMgr.c    **** 								     -------------
1328
 706:FrameMgr.c    **** 								     -------------
Line 1246... Line 1335...
1246
 713:FrameMgr.c    **** 							(currPixelRunFinish >= lastLineXFinish) ) )
1335
 713:FrameMgr.c    **** 							(currPixelRunFinish >= lastLineXFinish) ) )
1247
 714:FrameMgr.c    **** 					{
1336
 714:FrameMgr.c    **** 					{
1248
 715:FrameMgr.c    **** 						/* THERE IS CONNECTEDNESS...update the lastLineXStart and lastLineXFinish
1337
 715:FrameMgr.c    **** 						/* THERE IS CONNECTEDNESS...update the lastLineXStart and lastLineXFinish
1249
 716:FrameMgr.c    **** 						data pointed to by pTrackedObjectData */
1338
 716:FrameMgr.c    **** 						data pointed to by pTrackedObjectData */
1250
 717:FrameMgr.c    **** 						*(pTrackedObjectData + LAST_LINE_X_START_OFFSET) = currPixelRunStart;
1339
 717:FrameMgr.c    **** 						*(pTrackedObjectData + LAST_LINE_X_START_OFFSET) = currPixelRunStart;
-
 
1340
 554               		.stabn	68,0,717,.LM66-.LFBB2
-
 
1341
 555               	.LM66:
-
 
1342
 556 0250 D201      		movw r26,r4
-
 
1343
 557 0252 1C93      		st X,r17
1251
 718:FrameMgr.c    **** 						*(pTrackedObjectData + LAST_LINE_X_FINISH_OFFSET) = currPixelRunFinish;
1344
 718:FrameMgr.c    **** 						*(pTrackedObjectData + LAST_LINE_X_FINISH_OFFSET) = currPixelRunFinish;
-
 
1345
 558               		.stabn	68,0,718,.LM67-.LFBB2
-
 
1346
 559               	.LM67:
-
 
1347
 560 0254 D401      		movw r26,r8
-
 
1348
 561 0256 6C93      		st X,r22
1252
 719:FrameMgr.c    **** 						
1349
 719:FrameMgr.c    **** 						
1253
 720:FrameMgr.c    **** 						/* check if the bounding box needs to be updated */
1350
 720:FrameMgr.c    **** 						/* check if the bounding box needs to be updated */
1254
 721:FrameMgr.c    **** 						if (*(pTrackedObjectData + X_UPPER_LEFT_OFFSET) > currPixelRunStart)
1351
 721:FrameMgr.c    **** 						if (*(pTrackedObjectData + X_UPPER_LEFT_OFFSET) > currPixelRunStart)
-
 
1352
 562               		.stabn	68,0,721,.LM68-.LFBB2
-
 
1353
 563               	.LM68:
-
 
1354
 564 0258 8381      		ldd r24,Z+3
-
 
1355
 565 025a 1817      		cp r17,r24
-
 
1356
 566 025c 00F4      		brsh .L50
1255
 722:FrameMgr.c    **** 						{
1357
 722:FrameMgr.c    **** 						{
1256
 723:FrameMgr.c    **** 							/* need to update the bounding box for the upper left point to 
1358
 723:FrameMgr.c    **** 							/* need to update the bounding box for the upper left point to 
1257
 724:FrameMgr.c    **** 							enclose this new left-most point...we never have to update the
1359
 724:FrameMgr.c    **** 							enclose this new left-most point...we never have to update the
1258
 725:FrameMgr.c    **** 							upper left Y point, since each scan line we process moves from
1360
 725:FrameMgr.c    **** 							upper left Y point, since each scan line we process moves from
1259
 726:FrameMgr.c    **** 							top to bottom */
1361
 726:FrameMgr.c    **** 							top to bottom */
1260
 727:FrameMgr.c    **** 							*(pTrackedObjectData + X_UPPER_LEFT_OFFSET) = currPixelRunStart;
1362
 727:FrameMgr.c    **** 							*(pTrackedObjectData + X_UPPER_LEFT_OFFSET) = currPixelRunStart;
-
 
1363
 567               		.stabn	68,0,727,.LM69-.LFBB2
-
 
1364
 568               	.LM69:
1261
GAS LISTING /tmp/ccQRbLT3.s 			page 22
1365
 569 025e 1383      		std Z+3,r17
1262
 
-
 
1263
 
-
 
-
 
1366
 570               	.L50:
1264
 728:FrameMgr.c    **** 						}
1367
 728:FrameMgr.c    **** 						}
1265
 729:FrameMgr.c    **** 
1368
 729:FrameMgr.c    **** 
1266
 730:FrameMgr.c    **** 						if ( *(pTrackedObjectData + X_LOWER_RIGHT_OFFSET) < currPixelRunFinish)
1369
 730:FrameMgr.c    **** 						if ( *(pTrackedObjectData + X_LOWER_RIGHT_OFFSET) < currPixelRunFinish)
-
 
1370
 571               		.stabn	68,0,730,.LM70-.LFBB2
-
 
1371
 572               	.LM70:
-
 
1372
 573 0260 8581      		ldd r24,Z+5
-
 
1373
 574 0262 8617      		cp r24,r22
-
 
1374
 575 0264 00F4      		brsh .L52
1267
 731:FrameMgr.c    **** 						{
1375
 731:FrameMgr.c    **** 						{
1268
 732:FrameMgr.c    **** 							/* need to update the bounding box for the lower right X point to
1376
 732:FrameMgr.c    **** 							/* need to update the bounding box for the lower right X point to
1269
 733:FrameMgr.c    **** 							enclose this new right-most point */
1377
 733:FrameMgr.c    **** 							enclose this new right-most point */
1270
 734:FrameMgr.c    **** 							*(pTrackedObjectData + X_LOWER_RIGHT_OFFSET) = currPixelRunFinish;
1378
 734:FrameMgr.c    **** 							*(pTrackedObjectData + X_LOWER_RIGHT_OFFSET) = currPixelRunFinish;
-
 
1379
 576               		.stabn	68,0,734,.LM71-.LFBB2
-
 
1380
 577               	.LM71:
-
 
1381
GAS LISTING /tmp/cc0XjEMJ.s 			page 24
-
 
1382
 
-
 
1383
 
-
 
1384
 578 0266 6583      		std Z+5,r22
-
 
1385
 579               	.L52:
1271
 735:FrameMgr.c    **** 						}
1386
 735:FrameMgr.c    **** 						}
1272
 736:FrameMgr.c    **** 						
1387
 736:FrameMgr.c    **** 						
1273
 737:FrameMgr.c    **** 						/* the lower right 'y' point always gets updated when connectedness is found */
1388
 737:FrameMgr.c    **** 						/* the lower right 'y' point always gets updated when connectedness is found */
1274
 738:FrameMgr.c    **** 						*(pTrackedObjectData + Y_LOWER_RIGHT_OFFSET) = trackedLineCount;
1389
 738:FrameMgr.c    **** 						*(pTrackedObjectData + Y_LOWER_RIGHT_OFFSET) = trackedLineCount;
-
 
1390
 580               		.stabn	68,0,738,.LM72-.LFBB2
-
 
1391
 581               	.LM72:
-
 
1392
 582 0268 F601      		movw r30,r12
-
 
1393
 583 026a B082      		st Z,r11
-
 
1394
 584 026c 00C0      		rjmp .L36
-
 
1395
 585               	.L40:
-
 
1396
 586               		.stabn	68,0,661,.LM73-.LFBB2
-
 
1397
 587               	.LM73:
-
 
1398
 588 026e 2F5F      		subi r18,lo8(-(1))
-
 
1399
 589 0270 2830      		cpi r18,lo8(8)
-
 
1400
 590 0272 01F4      		brne .+2
-
 
1401
 591 0274 00C0      		rjmp .L54
1275
 739:FrameMgr.c    **** 						
1402
 739:FrameMgr.c    **** 						
1276
 740:FrameMgr.c    **** 						/* set a flag indicating that that color run is part of another
1403
 740:FrameMgr.c    **** 						/* set a flag indicating that that color run is part of another
1277
 741:FrameMgr.c    **** 						object and thus doesn't need to be added as a new entry into the
1404
 741:FrameMgr.c    **** 						object and thus doesn't need to be added as a new entry into the
1278
 742:FrameMgr.c    **** 						tracking table */
1405
 742:FrameMgr.c    **** 						tracking table */
1279
 743:FrameMgr.c    **** 						colorConnected = TRUE;
1406
 743:FrameMgr.c    **** 						colorConnected = TRUE;
Line 1281... Line 1408...
1281
 745:FrameMgr.c    **** 					}
1408
 745:FrameMgr.c    **** 					}
1282
 746:FrameMgr.c    **** 				}
1409
 746:FrameMgr.c    **** 				}
1283
 747:FrameMgr.c    ****                 
1410
 747:FrameMgr.c    ****                 
1284
 748:FrameMgr.c    ****                 /* go to the next object */
1411
 748:FrameMgr.c    ****                 /* go to the next object */
1285
 749:FrameMgr.c    ****                 pTrackedObjectData += SIZE_OF_TRACKED_OBJECT;
1412
 749:FrameMgr.c    ****                 pTrackedObjectData += SIZE_OF_TRACKED_OBJECT;
-
 
1413
 592               		.stabn	68,0,749,.LM74-.LFBB2
-
 
1414
 593               	.LM74:
-
 
1415
 594 0276 3896      		adiw r30,8
-
 
1416
 595 0278 00C0      		rjmp .L39
-
 
1417
 596               	.L56:
-
 
1418
 597 027a FA01      		movw r30,r20
-
 
1419
 598 027c 90E0      		ldi r25,lo8(0)
-
 
1420
 599               	.L57:
1286
 750:FrameMgr.c    **** 			}
1421
 750:FrameMgr.c    **** 			}
1287
 751:FrameMgr.c    **** 			
1422
 751:FrameMgr.c    **** 			
1288
 752:FrameMgr.c    **** 			if (colorConnected == FALSE)
1423
 752:FrameMgr.c    **** 			if (colorConnected == FALSE)
1289
 753:FrameMgr.c    **** 			{
1424
 753:FrameMgr.c    **** 			{
1290
 754:FrameMgr.c    **** 				/* a new entry needs to be made to the tracking table, since we have
1425
 754:FrameMgr.c    **** 				/* a new entry needs to be made to the tracking table, since we have
Line 1296... Line 1431...
1296
 760:FrameMgr.c    ****                     invalid object in the object tracking table */
1431
 760:FrameMgr.c    ****                     invalid object in the object tracking table */
1297
 761:FrameMgr.c    ****                     pTrackedObjectData = (unsigned char *)pCurrentTrackedObjectTable;
1432
 761:FrameMgr.c    ****                     pTrackedObjectData = (unsigned char *)pCurrentTrackedObjectTable;
1298
 762:FrameMgr.c    ****                     for (i=0; i<MAX_TRACKED_OBJECTS; i++)
1433
 762:FrameMgr.c    ****                     for (i=0; i<MAX_TRACKED_OBJECTS; i++)
1299
 763:FrameMgr.c    ****                     {
1434
 763:FrameMgr.c    ****                     {
1300
 764:FrameMgr.c    ****                         if ( *(pTrackedObjectData + VALID_OBJECT_OFFSET) == FALSE)  break;
1435
 764:FrameMgr.c    ****                         if ( *(pTrackedObjectData + VALID_OBJECT_OFFSET) == FALSE)  break;
-
 
1436
 600               		.stabn	68,0,764,.LM75-.LFBB2
-
 
1437
 601               	.LM75:
-
 
1438
 602 027e 8781      		ldd r24,Z+7
-
 
1439
 603 0280 8823      		tst r24
-
 
1440
 604 0282 01F0      		breq .L58
-
 
1441
GAS LISTING /tmp/cc0XjEMJ.s 			page 25
-
 
1442
 
-
 
1443
 
1301
 765:FrameMgr.c    ****                         
1444
 765:FrameMgr.c    ****                         
1302
 766:FrameMgr.c    ****                         /* if we haven't broken above, then the object must have been valid...
1445
 766:FrameMgr.c    ****                         /* if we haven't broken above, then the object must have been valid...
1303
 767:FrameMgr.c    ****                         go ahead and move the pointer to the next object to check it */
1446
 767:FrameMgr.c    ****                         go ahead and move the pointer to the next object to check it */
1304
 768:FrameMgr.c    ****                         pTrackedObjectData += SIZE_OF_TRACKED_OBJECT;
1447
 768:FrameMgr.c    ****                         pTrackedObjectData += SIZE_OF_TRACKED_OBJECT;
-
 
1448
 605               		.stabn	68,0,768,.LM76-.LFBB2
-
 
1449
 606               	.LM76:
-
 
1450
 607 0284 3896      		adiw r30,8
-
 
1451
 608               		.stabn	68,0,762,.LM77-.LFBB2
-
 
1452
 609               	.LM77:
-
 
1453
 610 0286 9F5F      		subi r25,lo8(-(1))
-
 
1454
 611 0288 9830      		cpi r25,lo8(8)
-
 
1455
 612 028a 01F4      		brne .L57
-
 
1456
 613               	.L58:
1305
 769:FrameMgr.c    ****                     }
1457
 769:FrameMgr.c    ****                     }
1306
 770:FrameMgr.c    ****                     
1458
 770:FrameMgr.c    ****                     
1307
 771:FrameMgr.c    **** 					
1459
 771:FrameMgr.c    **** 					
1308
 772:FrameMgr.c    **** 					/* now that we have a pointer to the tracked object to be updated, update all
1460
 772:FrameMgr.c    **** 					/* now that we have a pointer to the tracked object to be updated, update all
1309
 773:FrameMgr.c    **** 					the fields */
1461
 773:FrameMgr.c    **** 					the fields */
1310
 774:FrameMgr.c    **** 					*(pTrackedObjectData + COLOR_OFFSET)                = currColor;			/* color */
1462
 774:FrameMgr.c    **** 					*(pTrackedObjectData + COLOR_OFFSET)                = currColor;			/* color */
-
 
1463
 614               		.stabn	68,0,774,.LM78-.LFBB2
-
 
1464
 615               	.LM78:
-
 
1465
 616 028c 3083      		st Z,r19
1311
 775:FrameMgr.c    **** 					*(pTrackedObjectData + LAST_LINE_X_START_OFFSET)    = currPixelRunStart; 	/* lastLineXStart */
1466
 775:FrameMgr.c    **** 					*(pTrackedObjectData + LAST_LINE_X_START_OFFSET)    = currPixelRunStart; 	/* lastLineXStart */
-
 
1467
 617               		.stabn	68,0,775,.LM79-.LFBB2
-
 
1468
 618               	.LM79:
-
 
1469
 619 028e 1183      		std Z+1,r17
1312
 776:FrameMgr.c    **** 					*(pTrackedObjectData + LAST_LINE_X_FINISH_OFFSET)   = currPixelRunFinish;	/* lastLineXFinish *
1470
 776:FrameMgr.c    **** 					*(pTrackedObjectData + LAST_LINE_X_FINISH_OFFSET)   = currPixelRunFinish;	/* lastLineXFinish *
-
 
1471
 620               		.stabn	68,0,776,.LM80-.LFBB2
-
 
1472
 621               	.LM80:
-
 
1473
 622 0290 6283      		std Z+2,r22
1313
 777:FrameMgr.c    **** 					*(pTrackedObjectData + X_UPPER_LEFT_OFFSET)         = currPixelRunStart;	/* x_upperLeft */
1474
 777:FrameMgr.c    **** 					*(pTrackedObjectData + X_UPPER_LEFT_OFFSET)         = currPixelRunStart;	/* x_upperLeft */
-
 
1475
 623               		.stabn	68,0,777,.LM81-.LFBB2
-
 
1476
 624               	.LM81:
-
 
1477
 625 0292 1383      		std Z+3,r17
1314
 778:FrameMgr.c    **** 					*(pTrackedObjectData + Y_UPPER_LEFT_OFFSET)         = trackedLineCount;	/* y_upperLeft */
1478
 778:FrameMgr.c    **** 					*(pTrackedObjectData + Y_UPPER_LEFT_OFFSET)         = trackedLineCount;	/* y_upperLeft */
1315
 471               		.stabn	68,0,778,.LM58-FrameMgr_processLine
-
 
1316
 472               	.LM58:
-
 
1317
 473 01d2 F090 0000 		lds r15,trackedLineCount
-
 
1318
 474               		.stabn	68,0,663,.LM59-FrameMgr_processLine
-
 
1319
 475               	.LM59:
-
 
1320
 476 01d6 CF2C      		mov r12,r15
-
 
1321
GAS LISTING /tmp/ccQRbLT3.s 			page 23
-
 
1322
 
-
 
1323
 
-
 
1324
 477 01d8 DD24      		clr r13
-
 
1325
 478 01da 3601      		movw r6,r12
-
 
1326
 479 01dc 0894      		sec
-
 
1327
 480 01de 6108      		sbc r6,__zero_reg__
-
 
1328
 481 01e0 7108      		sbc r7,__zero_reg__
-
 
1329
 482 01e2 7091 0000 		lds r23,numCurrTrackedObjects
-
 
1330
 483 01e6 0F2E      		mov __tmp_reg__,r31
-
 
1331
 484 01e8 F0E0      		ldi r31,lo8(currentLineBuffer)
-
 
1332
 485 01ea 2F2E      		mov r2,r31
-
 
1333
 486 01ec F0E0      		ldi r31,hi8(currentLineBuffer)
-
 
1334
 487 01ee 3F2E      		mov r3,r31
-
 
1335
 488 01f0 F02D      		mov r31,__tmp_reg__
-
 
1336
 489 01f2 50E0      		ldi r21,lo8(0)
-
 
1337
 490 01f4 40E0      		ldi r20,lo8(0)
-
 
1338
 491 01f6 61E0      		ldi r22,lo8(1)
-
 
1339
 492 01f8 EF2C      		mov r14,r15
-
 
1340
 493 01fa E394      		inc r14
-
 
1341
 494               	.L35:
-
 
1342
 495               		.stabn	68,0,635,.LM60-FrameMgr_processLine
-
 
1343
 496               	.LM60:
-
 
1344
 497 01fc F101      		movw r30,r2
-
 
1345
 498 01fe 3081      		ld r19,Z
-
 
1346
 499               		.stabn	68,0,636,.LM61-FrameMgr_processLine
-
 
1347
 500               	.LM61:
-
 
1348
 501 0200 560F      		add r21,r22
-
 
1349
 502               		.stabn	68,0,637,.LM62-FrameMgr_processLine
-
 
1350
 503               	.LM62:
-
 
1351
 504 0202 6181      		ldd r22,Z+1
-
 
1352
 505 0204 82E0      		ldi r24,lo8(2)
-
 
1353
 506 0206 90E0      		ldi r25,hi8(2)
-
 
1354
 507 0208 280E      		add r2,r24
-
 
1355
 508 020a 391E      		adc r3,r25
-
 
1356
 509               		.stabn	68,0,638,.LM63-FrameMgr_processLine
-
 
1357
 510               	.LM63:
-
 
1358
 511 020c 460F      		add r20,r22
-
 
1359
 512               		.stabn	68,0,643,.LM64-FrameMgr_processLine
-
 
1360
 513               	.LM64:
-
 
1361
 514 020e 3323      		tst r19
-
 
1362
 515 0210 09F4      		brne .+2
-
 
1363
 516 0212 5CC0      		rjmp .L36
-
 
1364
 517 0214 6430      		cpi r22,lo8(4)
-
 
1365
 518 0216 08F4      		brsh .+2
-
 
1366
 519 0218 59C0      		rjmp .L36
-
 
1367
 520 021a D801      		movw r26,r16
-
 
1368
 521 021c 20E0      		ldi r18,lo8(0)
-
 
1369
 522               	.L39:
-
 
1370
 523               		.stabn	68,0,663,.LM65-FrameMgr_processLine
-
 
1371
 524               	.LM65:
-
 
1372
 525 021e 8C91      		ld r24,X
-
 
1373
 526 0220 3817      		cp r19,r24
-
 
1374
 527 0222 C9F5      		brne .L40
-
 
1375
 528 0224 FD01      		movw r30,r26
-
 
1376
 529 0226 8781      		ldd r24,Z+7
-
 
1377
 530 0228 8130      		cpi r24,lo8(1)
-
 
1378
 531 022a A9F5      		brne .L40
-
 
1379
 532 022c 0F2E      		mov __tmp_reg__,r31
-
 
1380
 533 022e F6E0      		ldi r31,lo8(6)
-
 
1381
GAS LISTING /tmp/ccQRbLT3.s 			page 24
-
 
1382
 
-
 
1383
 
-
 
1384
 534 0230 AF2E      		mov r10,r31
-
 
1385
 535 0232 BB24      		clr r11
-
 
1386
 536 0234 F02D      		mov r31,__tmp_reg__
-
 
1387
 537 0236 AA0E      		add r10,r26
-
 
1388
 538 0238 BB1E      		adc r11,r27
-
 
1389
 539 023a 8681      		ldd r24,Z+6
-
 
1390
 540 023c 9927      		clr r25
-
 
1391
 541 023e 8615      		cp r24,r6
-
 
1392
 542 0240 9705      		cpc r25,r7
-
 
1393
 543 0242 49F5      		brne .L40
-
 
1394
 544 0244 2D01      		movw r4,r26
-
 
1395
 545 0246 0894      		sec
-
 
1396
 546 0248 411C      		adc r4,__zero_reg__
-
 
1397
 547 024a 511C      		adc r5,__zero_reg__
-
 
1398
 548               		.stabn	68,0,669,.LM66-FrameMgr_processLine
-
 
1399
 549               	.LM66:
-
 
1400
 550 024c 8181      		ldd r24,Z+1
-
 
1401
 551 024e 8824      		clr r8
-
 
1402
 552 0250 9924      		clr r9
-
 
1403
 553 0252 6894      		set
-
 
1404
 554 0254 81F8      		bld r8,1
-
 
1405
 555 0256 8A0E      		add r8,r26
-
 
1406
 556 0258 9B1E      		adc r9,r27
-
 
1407
 557               		.stabn	68,0,670,.LM67-FrameMgr_processLine
-
 
1408
 558               	.LM67:
-
 
1409
 559 025a 9281      		ldd r25,Z+2
-
 
1410
 560               		.stabn	68,0,679,.LM68-FrameMgr_processLine
-
 
1411
 561               	.LM68:
-
 
1412
 562 025c 5817      		cp r21,r24
-
 
1413
 563 025e 10F0      		brlo .L44
-
 
1414
 564 0260 9517      		cp r25,r21
-
 
1415
 565 0262 40F4      		brsh .L46
-
 
1416
 566               	.L44:
-
 
1417
 567 0264 4817      		cp r20,r24
-
 
1418
 568 0266 10F0      		brlo .L47
-
 
1419
 569 0268 9417      		cp r25,r20
-
 
1420
 570 026a 20F4      		brsh .L46
-
 
1421
 571               	.L47:
-
 
1422
 572 026c 8517      		cp r24,r21
-
 
1423
 573 026e 98F0      		brlo .L40
-
 
1424
 574 0270 4917      		cp r20,r25
-
 
1425
 575 0272 88F0      		brlo .L40
-
 
1426
 576               	.L46:
-
 
1427
 577               		.stabn	68,0,717,.LM69-FrameMgr_processLine
-
 
1428
 578               	.LM69:
-
 
1429
 579 0274 F201      		movw r30,r4
-
 
1430
 580 0276 5083      		st Z,r21
-
 
1431
 581               		.stabn	68,0,718,.LM70-FrameMgr_processLine
-
 
1432
 582               	.LM70:
-
 
1433
 583 0278 F401      		movw r30,r8
-
 
1434
 584 027a 4083      		st Z,r20
-
 
1435
 585               		.stabn	68,0,721,.LM71-FrameMgr_processLine
-
 
1436
 586               	.LM71:
-
 
1437
 587 027c FD01      		movw r30,r26
-
 
1438
 588 027e 8381      		ldd r24,Z+3
-
 
1439
 589 0280 5817      		cp r21,r24
-
 
1440
 590 0282 08F4      		brsh .L50
-
 
1441
GAS LISTING /tmp/ccQRbLT3.s 			page 25
-
 
1442
 
-
 
1443
 
-
 
1444
 591               		.stabn	68,0,727,.LM72-FrameMgr_processLine
-
 
1445
 592               	.LM72:
-
 
1446
 593 0284 5383      		std Z+3,r21
-
 
1447
 594               	.L50:
-
 
1448
 595               		.stabn	68,0,730,.LM73-FrameMgr_processLine
-
 
1449
 596               	.LM73:
-
 
1450
 597 0286 FD01      		movw r30,r26
-
 
1451
 598 0288 8581      		ldd r24,Z+5
-
 
1452
 599 028a 8417      		cp r24,r20
-
 
1453
 600 028c 08F4      		brsh .L52
-
 
1454
 601               		.stabn	68,0,734,.LM74-FrameMgr_processLine
-
 
1455
 602               	.LM74:
-
 
1456
 603 028e 4583      		std Z+5,r20
-
 
1457
 604               	.L52:
-
 
1458
 605               		.stabn	68,0,738,.LM75-FrameMgr_processLine
-
 
1459
 606               	.LM75:
-
 
1460
 607 0290 F501      		movw r30,r10
-
 
1461
 608 0292 F082      		st Z,r15
-
 
1462
 609 0294 1BC0      		rjmp .L36
-
 
1463
 610               	.L40:
-
 
1464
 611               		.stabn	68,0,661,.LM76-FrameMgr_processLine
-
 
1465
 612               	.LM76:
-
 
1466
 613 0296 2F5F      		subi r18,lo8(-(1))
-
 
1467
 614 0298 2830      		cpi r18,lo8(8)
-
 
1468
 615 029a 09F4      		brne .+2
-
 
1469
 616 029c 4DC0      		rjmp .L54
-
 
1470
 617               		.stabn	68,0,749,.LM77-FrameMgr_processLine
-
 
1471
 618               	.LM77:
-
 
1472
 619 029e 1896      		adiw r26,8
-
 
1473
 620 02a0 BECF      		rjmp .L39
-
 
1474
 621               	.L56:
-
 
1475
 622 02a2 D801      		movw r26,r16
-
 
1476
 623 02a4 90E0      		ldi r25,lo8(0)
-
 
1477
 624               	.L57:
-
 
1478
 625               		.stabn	68,0,764,.LM78-FrameMgr_processLine
-
 
1479
 626               	.LM78:
-
 
1480
 627 02a6 FD01      		movw r30,r26
-
 
1481
 628 02a8 8781      		ldd r24,Z+7
-
 
1482
 629 02aa 8823      		tst r24
-
 
1483
 630 02ac 21F0      		breq .L58
-
 
1484
 631               		.stabn	68,0,768,.LM79-FrameMgr_processLine
-
 
1485
 632               	.LM79:
-
 
1486
 633 02ae 1896      		adiw r26,8
-
 
1487
 634               		.stabn	68,0,762,.LM80-FrameMgr_processLine
-
 
1488
 635               	.LM80:
-
 
1489
 636 02b0 9F5F      		subi r25,lo8(-(1))
-
 
1490
 637 02b2 9830      		cpi r25,lo8(8)
-
 
1491
 638 02b4 C1F7      		brne .L57
-
 
1492
 639               	.L58:
-
 
1493
 640               		.stabn	68,0,774,.LM81-FrameMgr_processLine
-
 
1494
 641               	.LM81:
-
 
1495
 642 02b6 3C93      		st X,r19
-
 
1496
 643               		.stabn	68,0,775,.LM82-FrameMgr_processLine
1479
 626               		.stabn	68,0,778,.LM82-.LFBB2
1497
 644               	.LM82:
1480
 627               	.LM82:
1498
 645 02b8 FD01      		movw r30,r26
-
 
1499
 646 02ba 5183      		std Z+1,r21
-
 
1500
 647               		.stabn	68,0,776,.LM83-FrameMgr_processLine
-
 
1501
GAS LISTING /tmp/ccQRbLT3.s 			page 26
-
 
1502
 
-
 
1503
 
-
 
1504
 648               	.LM83:
-
 
1505
 649 02bc 4283      		std Z+2,r20
-
 
1506
 650               		.stabn	68,0,777,.LM84-FrameMgr_processLine
-
 
1507
 651               	.LM84:
-
 
1508
 652 02be 5383      		std Z+3,r21
-
 
1509
 653               		.stabn	68,0,778,.LM85-FrameMgr_processLine
-
 
1510
 654               	.LM85:
-
 
1511
 655 02c0 F482      		std Z+4,r15
1481
 628 0294 B482      		std Z+4,r11
1512
 779:FrameMgr.c    **** 					*(pTrackedObjectData + X_LOWER_RIGHT_OFFSET)        = currPixelRunFinish;	/* x_lowerRight */
1482
 779:FrameMgr.c    **** 					*(pTrackedObjectData + X_LOWER_RIGHT_OFFSET)        = currPixelRunFinish;	/* x_lowerRight */
1513
 656               		.stabn	68,0,779,.LM86-FrameMgr_processLine
1483
 629               		.stabn	68,0,779,.LM83-.LFBB2
1514
 657               	.LM86:
1484
 630               	.LM83:
1515
 658 02c2 4583      		std Z+5,r20
1485
 631 0296 6583      		std Z+5,r22
1516
 780:FrameMgr.c    **** 					*(pTrackedObjectData + Y_LOWER_RIGHT_OFFSET)        = trackedLineCount;	/* y_lowerRight */
1486
 780:FrameMgr.c    **** 					*(pTrackedObjectData + Y_LOWER_RIGHT_OFFSET)        = trackedLineCount;	/* y_lowerRight */
1517
 659               		.stabn	68,0,780,.LM87-FrameMgr_processLine
1487
 632               		.stabn	68,0,780,.LM84-.LFBB2
1518
 660               	.LM87:
1488
 633               	.LM84:
1519
 661 02c4 F682      		std Z+6,r15
1489
 634 0298 B682      		std Z+6,r11
1520
 781:FrameMgr.c    ****                     *(pTrackedObjectData + VALID_OBJECT_OFFSET)         = TRUE;                /* o
1490
 781:FrameMgr.c    ****                     *(pTrackedObjectData + VALID_OBJECT_OFFSET)         = TRUE;                /* o
1521
 662               		.stabn	68,0,781,.LM88-FrameMgr_processLine
1491
 635               		.stabn	68,0,781,.LM85-.LFBB2
1522
 663               	.LM88:
1492
 636               	.LM85:
1523
 664 02c6 81E0      		ldi r24,lo8(1)
1493
 637 029a 81E0      		ldi r24,lo8(1)
1524
 665 02c8 8783      		std Z+7,r24
1494
 638 029c 8783      		std Z+7,r24
1525
 782:FrameMgr.c    **** 						
1495
 782:FrameMgr.c    **** 						
1526
 783:FrameMgr.c    **** 					numCurrTrackedObjects++;
1496
 783:FrameMgr.c    **** 					numCurrTrackedObjects++;
1527
 666               		.stabn	68,0,783,.LM89-FrameMgr_processLine
1497
 639               		.stabn	68,0,783,.LM86-.LFBB2
1528
 667               	.LM89:
1498
 640               	.LM86:
1529
 668 02ca 7F5F      		subi r23,lo8(-(1))
1499
 641 029e 0F5F      		subi r16,lo8(-(1))
1530
 669               	.L36:
1500
 642               	.L36:
-
 
1501
GAS LISTING /tmp/cc0XjEMJ.s 			page 26
-
 
1502
 
-
 
1503
 
1531
 784:FrameMgr.c    **** 				}
1504
 784:FrameMgr.c    **** 				}
1532
 785:FrameMgr.c    **** 			}
1505
 785:FrameMgr.c    **** 			}
1533
 786:FrameMgr.c    ****             
1506
 786:FrameMgr.c    ****             
1534
 787:FrameMgr.c    ****             /* move the pointer to the beginning of the next tracked object */
1507
 787:FrameMgr.c    ****             /* move the pointer to the beginning of the next tracked object */
1535
 788:FrameMgr.c    ****             pTrackedObjectData += SIZE_OF_TRACKED_OBJECT;
1508
 788:FrameMgr.c    ****             pTrackedObjectData += SIZE_OF_TRACKED_OBJECT;
1536
 789:FrameMgr.c    **** 		}
1509
 789:FrameMgr.c    **** 		}
1537
 790:FrameMgr.c    **** 	} while(currPixelRunFinish < ACTUAL_NUM_PIXELS_IN_A_LINE);
1510
 790:FrameMgr.c    **** 	} while(currPixelRunFinish < ACTUAL_NUM_PIXELS_IN_A_LINE);
1538
 670               		.stabn	68,0,790,.LM90-FrameMgr_processLine
1511
 643               		.stabn	68,0,790,.LM87-.LFBB2
1539
 671               	.LM90:
1512
 644               	.LM87:
1540
 672 02cc 403B      		cpi r20,lo8(-80)
1513
 645 02a0 603B      		cpi r22,lo8(-80)
1541
 673 02ce 08F4      		brsh .+2
1514
 646 02a2 00F4      		brsh .+2
1542
 674 02d0 95CF      		rjmp .L35
1515
 647 02a4 00C0      		rjmp .L35
1543
 675 02d2 7093 0000 		sts numCurrTrackedObjects,r23
1516
 648 02a6 0093 0000 		sts numCurrTrackedObjects,r16
1544
 676               	.LBE5:
1517
 649               	.LBE5:
1545
 677               	.LBE4:
1518
 650               	.LBE4:
1546
 678               		.stabn	68,0,460,.LM91-FrameMgr_processLine
1519
 651               		.stabn	68,0,460,.LM88-.LFBB2
1547
 679               	.LM91:
1520
 652               	.LM88:
1548
 680 02d6 C601      		movw r24,r12
1521
 653 02aa C701      		movw r24,r14
1549
 681 02d8 8770      		andi r24,lo8(7)
1522
 654 02ac 8770      		andi r24,lo8(7)
1550
 682 02da 9070      		andi r25,hi8(7)
1523
 655 02ae 9070      		andi r25,hi8(7)
1551
 683 02dc 0797      		sbiw r24,7
1524
 656 02b0 0797      		sbiw r24,7
1552
 684 02de 01F5      		brne .L61
1525
 657 02b2 01F4      		brne .L61
1553
 685 02e0 D801      		movw r26,r16
1526
 658 02b4 60E0      		ldi r22,lo8(0)
1554
 686 02e2 1796      		adiw r26,7
1527
 659               	.L63:
1555
 687 02e4 40E0      		ldi r20,lo8(0)
1528
 660               		.stabn	68,0,464,.LM89-.LFBB2
1556
 688               	.L63:
1529
 661               	.LM89:
1557
 689               		.stabn	68,0,464,.LM92-FrameMgr_processLine
1530
 662 02b6 FA01      		movw r30,r20
1558
 690               	.LM92:
1531
 663 02b8 8781      		ldd r24,Z+7
1559
 691 02e6 8C91      		ld r24,X
1532
 664 02ba 8130      		cpi r24,lo8(1)
1560
 692 02e8 8130      		cpi r24,lo8(1)
1533
 665 02bc 01F4      		brne .L64
1561
GAS LISTING /tmp/ccQRbLT3.s 			page 27
1534
 666               		.stabn	68,0,468,.LM90-.LFBB2
1562
 
1535
 667               	.LM90:
1563
 
1536
 668 02be 8681      		ldd r24,Z+6
1564
 693 02ea A1F4      		brne .L64
1537
 669 02c0 282F      		mov r18,r24
1565
 694 02ec FD01      		movw r30,r26
1538
 670 02c2 3327      		clr r19
1566
 695 02ee 3197      		sbiw r30,1
1539
 671 02c4 8481      		ldd r24,Z+4
1567
 696               		.stabn	68,0,468,.LM93-FrameMgr_processLine
1540
 672 02c6 D901      		movw r26,r18
1568
 697               	.LM93:
1541
 673 02c8 A81B      		sub r26,r24
1569
 698 02f0 9081      		ld r25,Z
1542
 674 02ca B109      		sbc r27,__zero_reg__
1570
 699 02f2 FD01      		movw r30,r26
1543
 675 02cc 1397      		sbiw r26,3
1571
 700 02f4 3397      		sbiw r30,3
1544
 676 02ce 04F4      		brge .L64
1572
 701 02f6 8081      		ld r24,Z
1545
 677               		.stabn	68,0,474,.LM91-.LFBB2
1573
 702 02f8 292F      		mov r18,r25
1546
 678               	.LM91:
1574
 703 02fa 3327      		clr r19
1547
 679 02d0 C701      		movw r24,r14
1575
 704 02fc F901      		movw r30,r18
1548
 680 02d2 821B      		sub r24,r18
1576
 705 02fe E81B      		sub r30,r24
1549
 681 02d4 930B      		sbc r25,r19
1577
 706 0300 F109      		sbc r31,__zero_reg__
1550
 682 02d6 0397      		sbiw r24,3
1578
 707 0302 3397      		sbiw r30,3
1551
 683 02d8 04F0      		brlt .L64
1579
 708 0304 3CF4      		brge .L64
1552
 684               		.stabn	68,0,477,.LM92-.LFBB2
1580
 709               		.stabn	68,0,474,.LM94-FrameMgr_processLine
1553
 685               	.LM92:
1581
 710               	.LM94:
1554
 686 02da 1782      		std Z+7,__zero_reg__
1582
 711 0306 C601      		movw r24,r12
1555
 687               		.stabn	68,0,478,.LM93-.LFBB2
1583
 712 0308 821B      		sub r24,r18
1556
 688               	.LM93:
1584
 713 030a 930B      		sbc r25,r19
1557
 689 02dc 0150      		subi r16,lo8(-(-1))
1585
 714 030c 0397      		sbiw r24,3
1558
 690               	.L64:
1586
 715 030e 14F0      		brlt .L64
1559
 691               		.stabn	68,0,462,.LM94-.LFBB2
1587
 716               		.stabn	68,0,477,.LM95-FrameMgr_processLine
1560
 692               	.LM94:
1588
 717               	.LM95:
1561
GAS LISTING /tmp/cc0XjEMJ.s 			page 27
1589
 718 0310 1C92      		st X,__zero_reg__
1562
 
1590
 719               		.stabn	68,0,478,.LM96-FrameMgr_processLine
1563
 
1591
 720               	.LM96:
1564
 693 02de 6F5F      		subi r22,lo8(-(1))
1592
 721 0312 7150      		subi r23,lo8(-(-1))
1565
 694 02e0 6830      		cpi r22,lo8(8)
1593
 722               	.L64:
1566
 695 02e2 01F0      		breq .L68
1594
 723               		.stabn	68,0,462,.LM97-FrameMgr_processLine
1567
 696               		.stabn	68,0,482,.LM95-.LFBB2
1595
 724               	.LM97:
1568
 697               	.LM95:
1596
 725 0314 4F5F      		subi r20,lo8(-(1))
1569
 698 02e4 485F      		subi r20,lo8(-(8))
1597
 726 0316 1896      		adiw r26,8
1570
 699 02e6 5F4F      		sbci r21,hi8(-(8))
1598
 727 0318 4830      		cpi r20,lo8(8)
1571
 700 02e8 00C0      		rjmp .L63
1599
 728 031a 29F7      		brne .L63
1572
 701               	.L68:
1600
 729 031c 7093 0000 		sts numCurrTrackedObjects,r23
1573
 702 02ea 0093 0000 		sts numCurrTrackedObjects,r16
1601
 730               	.L61:
1574
 703               	.L61:
1602
 731               		.stabn	68,0,486,.LM98-FrameMgr_processLine
1575
 704               		.stabn	68,0,486,.LM96-.LFBB2
1603
 732               	.LM98:
1576
 705               	.LM96:
1604
 733 0320 E092 0000 		sts trackedLineCount,r14
1577
 706 02ee 8B2D      		mov r24,r11
1605
 734               		.stabn	68,0,487,.LM99-FrameMgr_processLine
1578
 707 02f0 8F5F      		subi r24,lo8(-(1))
1606
 735               	.LM99:
1579
 708 02f2 8093 0000 		sts trackedLineCount,r24
1607
 736 0324 F0E9      		ldi r31,lo8(-112)
1580
 709               		.stabn	68,0,487,.LM97-.LFBB2
1608
 737 0326 EF16      		cp r14,r31
1581
 710               	.LM97:
1609
 738 0328 09F4      		brne .+2
1582
 711 02f6 8039      		cpi r24,lo8(-112)
1610
 739 032a 48CF      		rjmp .L72
1583
 712 02f8 01F4      		brne .L70
1611
 740               		.stabn	68,0,498,.LM100-FrameMgr_processLine
1584
 713               		.stabn	68,0,491,.LM98-.LFBB2
1612
 741               	.LM100:
1585
 714               	.LM98:
1613
 742 032c 8091 0000 		lds r24,fastEventBitmask
1586
 715 02fa 80E2      		ldi r24,lo8(32)
1614
 743 0330 8260      		ori r24,lo8(2)
1587
 716 02fc 00D0      		rcall Exec_writeEventFifo
1615
 744 0332 8093 0000 		sts fastEventBitmask,r24
1588
 717               		.stabn	68,0,493,.LM99-.LFBB2
1616
 745 0336 04C0      		rjmp .L71
1589
 718               	.LM99:
1617
 746               	.L54:
1590
 719 02fe 89B7      		in r24,89-0x20
1618
 747               	.LBB6:
1591
 720 0300 8B7F      		andi r24,lo8(-5)
1619
 748               	.LBB7:
1592
 721 0302 89BF      		out 89-0x20,r24
1620
 749               		.stabn	68,0,757,.LM101-FrameMgr_processLine
1593
 722               		.stabn	68,0,494,.LM100-.LFBB2
1621
GAS LISTING /tmp/ccQRbLT3.s 			page 28
1594
 723               	.LM100:
1622
 
1595
 724 0304 1092 0000 		sts trackedLineCount,__zero_reg__
1623
 
1596
 725 0308 00C0      		rjmp .L72
1624
 750               	.LM101:
1597
 726               	.L70:
1625
 751 0338 7830      		cpi r23,lo8(8)
1598
 727               		.stabn	68,0,498,.LM101-.LFBB2
1626
 752 033a 08F4      		brsh .+2
1599
 728               	.LM101:
1627
 753 033c B2CF      		rjmp .L56
1600
 729 030a 8091 0000 		lds r24,fastEventBitmask
1628
 754 033e C6CF      		rjmp .L36
1601
 730 030e 8260      		ori r24,lo8(2)
1629
 755               	.L71:
1602
 731 0310 8093 0000 		sts fastEventBitmask,r24
1630
 756               	.LBE7:
1603
 732 0314 00C0      		rjmp .L72
1631
 757               	.LBE6:
1604
 733               	.L54:
1632
 758               	/* epilogue: frame size=1 */
1605
 734               	.LBB7:
1633
 759 0340 2196      		adiw r28,1
1606
 735               	.LBB6:
1634
 760 0342 0FB6      		in __tmp_reg__,__SREG__
1607
 736               		.stabn	68,0,757,.LM102-.LFBB2
1635
 761 0344 F894      		cli
1608
 737               	.LM102:
1636
 762 0346 DEBF      		out __SP_H__,r29
1609
 738 0316 0830      		cpi r16,lo8(8)
1637
 763 0348 0FBE      		out __SREG__,__tmp_reg__
1610
 739 0318 00F4      		brsh .+2
1638
 764 034a CDBF      		out __SP_L__,r28
1611
 740 031a 00C0      		rjmp .L56
1639
 765 034c DF91      		pop r29
1612
 741 031c 00C0      		rjmp .L36
1640
 766 034e CF91      		pop r28
1613
 742               	.L72:
1641
 767 0350 1F91      		pop r17
1614
 743               	.LBE6:
1642
 768 0352 0F91      		pop r16
1615
 744               	.LBE7:
1643
 769 0354 FF90      		pop r15
1616
 745               	/* epilogue: frame size=1 */
1644
 770 0356 EF90      		pop r14
1617
 746 031e 2196      		adiw r28,1
1645
 771 0358 DF90      		pop r13
1618
 747 0320 0FB6      		in __tmp_reg__,__SREG__
1646
 772 035a CF90      		pop r12
1619
 748 0322 F894      		cli
1647
 773 035c BF90      		pop r11
1620
 749 0324 DEBF      		out __SP_H__,r29
1648
 774 035e AF90      		pop r10
1621
GAS LISTING /tmp/cc0XjEMJ.s 			page 28
1649
 775 0360 9F90      		pop r9
1622
 
1650
 776 0362 8F90      		pop r8
1623
 
1651
 777 0364 7F90      		pop r7
1624
 750 0326 0FBE      		out __SREG__,__tmp_reg__
1652
 778 0366 6F90      		pop r6
1625
 751 0328 CDBF      		out __SP_L__,r28
1653
 779 0368 5F90      		pop r5
1626
 752 032a DF91      		pop r29
1654
 780 036a 4F90      		pop r4
1627
 753 032c CF91      		pop r28
1655
 781 036c 3F90      		pop r3
1628
 754 032e 1F91      		pop r17
1656
 782 036e 2F90      		pop r2
1629
 755 0330 0F91      		pop r16
1657
 783 0370 0895      		ret
1630
 756 0332 FF90      		pop r15
1658
 784               	/* epilogue end (size=25) */
1631
 757 0334 EF90      		pop r14
1659
 785               	/* function FrameMgr_processLine size 355 (304) */
1632
 758 0336 DF90      		pop r13
1660
 786               		.size	FrameMgr_processLine, .-FrameMgr_processLine
1633
 759 0338 CF90      		pop r12
1661
 787               		.stabs	"i:r(0,11)",64,0,343,20
1634
 760 033a BF90      		pop r11
1662
 788               		.stabs	"dataToSend:(0,23)=B(0,11)",128,0,344,1
1635
 761 033c 9F90      		pop r9
1663
 789               		.stabs	"pTrackedObjectData:r(0,22)",64,0,345,26
1636
 762 033e 8F90      		pop r8
1664
 790               		.stabn	192,0,0,FrameMgr_processLine-FrameMgr_processLine
1637
 763 0340 7F90      		pop r7
1665
 791               		.stabn	224,0,0,.Lscope1-FrameMgr_processLine
1638
 764 0342 6F90      		pop r6
1666
 792               	.Lscope1:
1639
 765 0344 5F90      		pop r5
1667
 793               		.stabs	"",36,0,0,.Lscope1-FrameMgr_processLine
1640
 766 0346 4F90      		pop r4
1668
 794               		.stabd	78,0,0
1641
 767 0348 3F90      		pop r3
1669
 795               		.stabs	"FrameMgr_init:F(0,15)",36,0,191,FrameMgr_init
1642
 768 034a 2F90      		pop r2
1670
 796               	.global	FrameMgr_init
1643
 769 034c 0895      		ret
1671
 797               		.type	FrameMgr_init, @function
1644
 770               	/* epilogue end (size=24) */
1672
 798               	FrameMgr_init:
1645
 771               	/* function FrameMgr_processLine size 337 (288) */
1673
 799               		.stabd	46,0,0
1646
 772               		.size	FrameMgr_processLine, .-FrameMgr_processLine
1674
 800               		.stabn	68,0,191,.LM102-FrameMgr_init
1647
 773               		.stabs	"i:r(0,11)",64,0,343,22
1675
 801               	.LM102:
1648
 774               		.stabs	"dataToSend:(0,23)=B(0,11)",128,0,344,1
1676
 802               	/* prologue: frame size=0 */
1649
 775               		.stabs	"pTrackedObjectData:r(0,22)",64,0,345,20
1677
 803               	/* prologue end (size=0) */
1650
 776               		.stabn	192,0,0,.LFBB2-.LFBB2
1678
 804               		.stabn	68,0,192,.LM103-FrameMgr_init
1651
 777               		.stabn	224,0,0,.Lscope2-.LFBB2
1679
 805               	.LM103:
1652
 778               	.Lscope2:
1680
 806 0372 80E4      		ldi r24,lo8(64)
1653
 779               		.stabs	"",36,0,0,.Lscope2-.LFBB2
1681
GAS LISTING /tmp/ccQRbLT3.s 			page 29
1654
 780               		.stabd	78,0,0
1682
 
1655
 781               		.stabs	"FrameMgr_init:F(0,15)",36,0,191,FrameMgr_init
1683
 
1656
 782               	.global	FrameMgr_init
1684
 807 0374 E0E0      		ldi r30,lo8(trackedObjectTable)
1657
 783               		.type	FrameMgr_init, @function
1685
 808 0376 F0E0      		ldi r31,hi8(trackedObjectTable)
1658
 784               	FrameMgr_init:
1686
 809 0378 1192      		st Z+,__zero_reg__
1659
 785               		.stabd	46,0,0
1687
 810 037a 8A95      	        dec r24
1660
 786               		.stabn	68,0,191,.LM103-.LFBB3
1688
 811 037c E9F7      		brne .-6
1661
 787               	.LM103:
1689
 812               	/* epilogue: frame size=0 */
1662
 788               	.LFBB3:
1690
 813 037e 0895      		ret
1663
 789               	/* prologue: frame size=0 */
1691
 814               	/* epilogue end (size=1) */
1664
 790               	/* prologue end (size=0) */
1692
 815               	/* function FrameMgr_init size 7 (6) */
1665
 791               		.stabn	68,0,192,.LM104-.LFBB3
1693
 816               		.size	FrameMgr_init, .-FrameMgr_init
1666
 792               	.LM104:
1694
 817               	.Lscope2:
1667
 793 034e 80E4      		ldi r24,lo8(64)
1695
 818               		.stabs	"",36,0,0,.Lscope2-FrameMgr_init
1668
 794 0350 E0E0      		ldi r30,lo8(trackedObjectTable)
1696
 819               		.stabd	78,0,0
1669
 795 0352 F0E0      		ldi r31,hi8(trackedObjectTable)
1697
 820               		.stabs	"FrameMgr_acquireLine:F(0,15)",36,0,287,FrameMgr_acquireLine
1670
 796 0354 1192      		st Z+,__zero_reg__
1698
 821               	.global	FrameMgr_acquireLine
1671
 797 0356 8A95      	        dec r24
1699
 822               		.type	FrameMgr_acquireLine, @function
1672
 798 0358 01F4      		brne .-6
1700
 823               	FrameMgr_acquireLine:
1673
 799               	/* epilogue: frame size=0 */
1701
 824               		.stabd	46,0,0
1674
 800 035a 0895      		ret
1702
 825               		.stabn	68,0,287,.LM104-FrameMgr_acquireLine
1675
 801               	/* epilogue end (size=1) */
1703
 826               	.LM104:
1676
 802               	/* function FrameMgr_init size 7 (6) */
1704
 827               	/* prologue: frame size=0 */
1677
 803               		.size	FrameMgr_init, .-FrameMgr_init
1705
 828               	/* prologue end (size=0) */
1678
 804               	.Lscope3:
1706
 829               		.stabn	68,0,297,.LM105-FrameMgr_acquireLine
1679
 805               		.stabs	"",36,0,0,.Lscope3-.LFBB3
1707
 830               	.LM105:
1680
 806               		.stabd	78,0,0
1708
 831 0380 8091 0000 		lds r24,currentState
1681
GAS LISTING /tmp/cc0XjEMJ.s 			page 29
1709
 832 0384 8230      		cpi r24,lo8(2)
1682
 
1710
 833 0386 49F5      		brne .L83
1683
 
1711
 834               		.stabn	68,0,299,.LM106-FrameMgr_acquireLine
1684
 807               		.stabs	"FrameMgr_acquireLine:F(0,15)",36,0,287,FrameMgr_acquireLine
1712
 835               	.LM106:
1685
 808               	.global	FrameMgr_acquireLine
1713
 836 0388 8091 0000 		lds r24,lineCount
1686
 809               		.type	FrameMgr_acquireLine, @function
1714
 837 038c 282F      		mov r18,r24
1687
 810               	FrameMgr_acquireLine:
1715
 838 038e 220F      		lsl r18
1688
 811               		.stabd	46,0,0
1716
 839               		.stabn	68,0,305,.LM107-FrameMgr_acquireLine
1689
 812               		.stabn	68,0,287,.LM105-.LFBB4
1717
 840               	.LM107:
1690
 813               	.LM105:
1718
 841 0390 80EB      		ldi r24,lo8(-80)
1691
 814               	.LFBB4:
1719
 842 0392 E0E0      		ldi r30,lo8(currentLineBuffer)
1692
 815               	/* prologue: frame size=0 */
1720
 843 0394 F0E0      		ldi r31,hi8(currentLineBuffer)
1693
 816               	/* prologue end (size=0) */
1721
 844 0396 982F      		mov r25,r24
1694
 817               		.stabn	68,0,297,.LM106-.LFBB4
1722
 845 0398 1192      		st Z+,__zero_reg__
1695
 818               	.LM106:
1723
 846 039a 9A95      	        dec r25
1696
 819 035c 8091 0000 		lds r24,currentState
1724
 847 039c E9F7      		brne .-6
1697
 820 0360 8230      		cpi r24,lo8(2)
1725
 848               		.stabn	68,0,306,.LM108-FrameMgr_acquireLine
1698
 821 0362 01F4      		brne .L81
1726
 849               	.LM108:
1699
 822               		.stabn	68,0,299,.LM107-.LFBB4
1727
 850 039e E0E0      		ldi r30,lo8(previousLineBuffer)
1700
 823               	.LM107:
1728
 851 03a0 F0E0      		ldi r31,hi8(previousLineBuffer)
1701
 824 0364 8091 0000 		lds r24,lineCount
1729
 852 03a2 1192      		st Z+,__zero_reg__
1702
 825 0368 982F      		mov r25,r24
1730
 853 03a4 8A95      	        dec r24
1703
 826 036a 990F      		lsl r25
1731
 854 03a6 E9F7      		brne .-6
1704
 827               		.stabn	68,0,305,.LM108-.LFBB4
1732
 855               	.L85:
1705
 828               	.LM108:
1733
 856               		.stabn	68,0,309,.LM109-FrameMgr_acquireLine
1706
 829 036c 80EB      		ldi r24,lo8(-80)
1734
 857               	.LM109:
1707
 830 036e E0E0      		ldi r30,lo8(currentLineBuffer)
1735
 858 03a8 829B      		sbis 48-0x20,2
1708
 831 0370 F0E0      		ldi r31,hi8(currentLineBuffer)
1736
 859 03aa FECF      		rjmp .L85
1709
 832 0372 282F      		mov r18,r24
1737
 860               	.L101:
1710
 833 0374 1192      		st Z+,__zero_reg__
1738
 861               		.stabn	68,0,310,.LM110-FrameMgr_acquireLine
1711
 834 0376 2A95      	        dec r18
1739
 862               	.LM110:
1712
 835 0378 01F4      		brne .-6
1740
 863 03ac 829B      		sbis 48-0x20,2
1713
 836               		.stabn	68,0,306,.LM109-.LFBB4
1741
GAS LISTING /tmp/ccQRbLT3.s 			page 30
1714
 837               	.LM109:
1742
 
1715
 838 037a E0E0      		ldi r30,lo8(previousLineBuffer)
1743
 
1716
 839 037c F0E0      		ldi r31,hi8(previousLineBuffer)
1744
 864 03ae 07C0      		rjmp .L110
1717
 840 037e 1192      		st Z+,__zero_reg__
1745
 865 03b0 FDCF      		rjmp .L101
1718
 841 0380 8A95      	        dec r24
1746
 866               	.L88:
1719
 842 0382 01F4      		brne .-6
1747
 867 03b2 90E0      		ldi r25,lo8(0)
1720
 843               	.L83:
1748
 868               	.L114:
1721
 844               		.stabn	68,0,309,.LM110-.LFBB4
1749
 869               		.stabn	68,0,316,.LM111-FrameMgr_acquireLine
1722
 845               	.LM110:
1750
 870               	.LM111:
1723
 846 0384 829B      		sbis 48-0x20,2
1751
 871 03b4 849B      		sbis 48-0x20,4
1724
 847 0386 00C0      		rjmp .L83
1752
 872 03b6 FECF      		rjmp .L114
1725
 848               	.L98:
1753
 873               	.L102:
1726
 849               		.stabn	68,0,310,.LM111-.LFBB4
1754
 874               		.stabn	68,0,318,.LM112-FrameMgr_acquireLine
1727
 850               	.LM111:
1755
 875               	.LM112:
1728
 851 0388 829B      		sbis 48-0x20,2
1756
 876 03b8 849B      		sbis 48-0x20,4
1729
 852 038a 00C0      		rjmp .L106
1757
 877 03ba 04C0      		rjmp .L111
1730
 853 038c 00C0      		rjmp .L98
1758
 878 03bc FDCF      		rjmp .L102
1731
 854               	.L111:
1759
 879               	.L110:
1732
 855               		.stabn	68,0,316,.LM112-.LFBB4
1760
 880               		.stabn	68,0,314,.LM113-FrameMgr_acquireLine
1733
 856               	.LM112:
1761
 881               	.LM113:
1734
 857 038e 849B      		sbis 48-0x20,4
1762
 882 03be 2223      		tst r18
1735
 858 0390 00C0      		rjmp .L111
1763
 883 03c0 C1F7      		brne .L88
1736
 859               		.stabn	68,0,317,.LM113-.LFBB4
1764
 884 03c2 05C0      		rjmp .L92
1737
 860               	.LM113:
1765
 885               	.L111:
1738
 861 0392 9150      		subi r25,lo8(-(-1))
1766
 886 03c4 9150      		subi r25,lo8(-(-1))
1739
 862               	.L88:
1767
 887 03c6 822F      		mov r24,r18
1740
 863               		.stabn	68,0,318,.LM114-.LFBB4
1768
 888 03c8 8195      		neg r24
1741
GAS LISTING /tmp/cc0XjEMJ.s 			page 30
1769
 889 03ca 9817      		cp r25,r24
1742
 
1770
 890 03cc 99F7      		brne .L114
1743
 
1771
 891               	.L92:
1744
 864               	.LM114:
1772
 892               		.stabn	68,0,322,.LM114-FrameMgr_acquireLine
1745
 865 0394 849B      		sbis 48-0x20,4
1773
 893               	.LM114:
1746
 866 0396 00C0      		rjmp .L108
1774
 894 03ce 60E0      		ldi r22,lo8(previousLineBuffer)
1747
 867 0398 00C0      		rjmp .L88
1775
 895 03d0 70E0      		ldi r23,hi8(previousLineBuffer)
1748
 868               	.L106:
1776
 896 03d2 80E0      		ldi r24,lo8(currentLineBuffer)
1749
 869               		.stabn	68,0,314,.LM115-.LFBB4
1777
 897 03d4 90E0      		ldi r25,hi8(currentLineBuffer)
1750
 870               	.LM115:
1778
 898 03d6 00D0      		rcall CamIntAsm_acquireDumpLine
1751
 871 039a 9923      		tst r25
1779
 899 03d8 0895      		ret
1752
 872 039c 01F4      		brne .L111
1780
 900               	.L83:
1753
 873 039e 00C0      		rjmp .L90
1781
 901               		.stabn	68,0,324,.LM115-FrameMgr_acquireLine
1754
 874               	.L108:
1782
 902               	.LM115:
1755
 875 03a0 9923      		tst r25
1783
 903 03da 8130      		cpi r24,lo8(1)
1756
 876 03a2 01F4      		brne .L111
1784
 904 03dc 39F4      		brne .L96
1757
 877               	.L90:
1785
 905               	.L103:
1758
 878               		.stabn	68,0,322,.LM116-.LFBB4
1786
 906               		.stabn	68,0,326,.LM116-FrameMgr_acquireLine
1759
 879               	.LM116:
1787
 907               	.LM116:
1760
 880 03a4 60E0      		ldi r22,lo8(previousLineBuffer)
1788
 908 03de 8499      		sbic 48-0x20,4
1761
 881 03a6 70E0      		ldi r23,hi8(previousLineBuffer)
1789
 909 03e0 FECF      		rjmp .L103
1762
 882 03a8 80E0      		ldi r24,lo8(currentLineBuffer)
1790
 910               		.stabn	68,0,327,.LM117-FrameMgr_acquireLine
1763
 883 03aa 90E0      		ldi r25,hi8(currentLineBuffer)
1791
 911               	.LM117:
1764
 884 03ac 00D0      		rcall CamIntAsm_acquireDumpLine
1792
 912 03e2 60E0      		ldi r22,lo8(colorMap)
1765
 885 03ae 0895      		ret
1793
 913 03e4 70E0      		ldi r23,hi8(colorMap)
1766
 886               	.L81:
1794
 914 03e6 80E0      		ldi r24,lo8(currentLineBuffer)
1767
 887               		.stabn	68,0,324,.LM117-.LFBB4
1795
 915 03e8 90E0      		ldi r25,hi8(currentLineBuffer)
1768
 888               	.LM117:
1796
 916 03ea 00D0      		rcall CamIntAsm_acquireTrackingLine
1769
 889 03b0 8130      		cpi r24,lo8(1)
1797
 917               	.L96:
1770
 890 03b2 01F4      		brne .L94
1798
 918 03ec 0895      		ret
1771
 891               	.L97:
1799
 919               	/* epilogue: frame size=0 */
1772
 892               		.stabn	68,0,326,.LM118-.LFBB4
1800
 920               	/* epilogue: noreturn */
1773
 893               	.LM118:
1801
GAS LISTING /tmp/ccQRbLT3.s 			page 31
1774
 894 03b4 8499      		sbic 48-0x20,4
1802
 
1775
 895 03b6 00C0      		rjmp .L97
1803
 
1776
 896               		.stabn	68,0,327,.LM119-.LFBB4
1804
 921               	/* epilogue end (size=0) */
1777
 897               	.LM119:
1805
 922               	/* function FrameMgr_acquireLine size 55 (55) */
1778
 898 03b8 60E0      		ldi r22,lo8(colorMap)
1806
 923               		.size	FrameMgr_acquireLine, .-FrameMgr_acquireLine
1779
 899 03ba 70E0      		ldi r23,hi8(colorMap)
1807
 924               		.stabs	"tmpLineCount:r(0,11)",64,0,288,18
1780
 900 03bc 80E0      		ldi r24,lo8(currentLineBuffer)
1808
 925               		.stabn	192,0,0,FrameMgr_acquireLine-FrameMgr_acquireLine
1781
 901 03be 90E0      		ldi r25,hi8(currentLineBuffer)
1809
 926               		.stabn	224,0,0,.Lscope3-FrameMgr_acquireLine
1782
 902 03c0 00D0      		rcall CamIntAsm_acquireTrackingLine
1810
 927               	.Lscope3:
1783
 903               	.L94:
1811
 928               		.stabs	"",36,0,0,.Lscope3-FrameMgr_acquireLine
1784
 904 03c2 0895      		ret
1812
 929               		.stabd	78,0,0
1785
 905               	/* epilogue: frame size=0 */
1813
 930               		.stabs	"FrameMgr_acquireFrame:F(0,15)",36,0,261,FrameMgr_acquireFrame
1786
 906               	/* epilogue: noreturn */
1814
 931               	.global	FrameMgr_acquireFrame
1787
 907               	/* epilogue end (size=0) */
1815
 932               		.type	FrameMgr_acquireFrame, @function
1788
 908               	/* function FrameMgr_acquireLine size 52 (52) */
1816
 933               	FrameMgr_acquireFrame:
1789
 909               		.size	FrameMgr_acquireLine, .-FrameMgr_acquireLine
1817
 934               		.stabd	46,0,0
1790
 910               		.stabs	"tmpLineCount:r(0,11)",64,0,288,25
1818
 935               		.stabn	68,0,261,.LM118-FrameMgr_acquireFrame
1791
 911               		.stabn	192,0,0,.LFBB4-.LFBB4
1819
 936               	.LM118:
1792
 912               		.stabn	224,0,0,.Lscope4-.LFBB4
1820
 937               	/* prologue: frame size=0 */
1793
 913               	.Lscope4:
1821
 938               	/* prologue end (size=0) */
1794
 914               		.stabs	"",36,0,0,.Lscope4-.LFBB4
1822
 939               		.stabn	68,0,262,.LM119-FrameMgr_acquireFrame
1795
 915               		.stabd	78,0,0
1823
 940               	.LM119:
1796
 916               		.stabs	"FrameMgr_acquireFrame:F(0,15)",36,0,261,FrameMgr_acquireFrame
1824
 941 03ee 8091 0000 		lds r24,currentState
1797
 917               	.global	FrameMgr_acquireFrame
1825
 942 03f2 8130      		cpi r24,lo8(1)
1798
 918               		.type	FrameMgr_acquireFrame, @function
1826
 943 03f4 A9F4      		brne .L120
1799
 919               	FrameMgr_acquireFrame:
1827
 944               		.stabn	68,0,264,.LM120-FrameMgr_acquireFrame
1800
 920               		.stabd	46,0,0
1828
 945               	.LM120:
1801
GAS LISTING /tmp/cc0XjEMJ.s 			page 31
1829
 946 03f6 1092 0000 		sts trackedLineCount,__zero_reg__
1802
 
1830
 947               		.stabn	68,0,265,.LM121-FrameMgr_acquireFrame
1803
 
1831
 948               	.LM121:
1804
 921               		.stabn	68,0,261,.LM120-.LFBB5
1832
 949 03fa 8091 0000 		lds r24,numCurrTrackedObjects
1805
 922               	.LM120:
1833
 950 03fe 8093 0000 		sts numPrevTrackedObjects,r24
1806
 923               	.LFBB5:
1834
 951               		.stabn	68,0,266,.LM122-FrameMgr_acquireFrame
1807
 924               	/* prologue: frame size=0 */
1835
 952               	.LM122:
1808
 925               	/* prologue end (size=0) */
1836
 953 0402 1092 0000 		sts numCurrTrackedObjects,__zero_reg__
1809
 926               		.stabn	68,0,262,.LM121-.LFBB5
1837
 954               		.stabn	68,0,270,.LM123-FrameMgr_acquireFrame
1810
 927               	.LM121:
1838
 955               	.LM123:
1811
 928 03c4 8091 0000 		lds r24,currentState
1839
 956 0406 80E4      		ldi r24,lo8(64)
1812
 929 03c8 8130      		cpi r24,lo8(1)
1840
 957 0408 E0E0      		ldi r30,lo8(trackedObjectTable)
1813
 930 03ca 01F4      		brne .L117
1841
 958 040a F0E0      		ldi r31,hi8(trackedObjectTable)
1814
 931               		.stabn	68,0,264,.LM122-.LFBB5
1842
 959 040c 1192      		st Z+,__zero_reg__
1815
 932               	.LM122:
1843
 960 040e 8A95      	        dec r24
1816
 933 03cc 1092 0000 		sts trackedLineCount,__zero_reg__
1844
 961 0410 E9F7      		brne .-6
1817
 934               		.stabn	68,0,265,.LM123-.LFBB5
1845
 962               	.L118:
1818
 935               	.LM123:
1846
 963               		.stabn	68,0,272,.LM124-FrameMgr_acquireFrame
1819
 936 03d0 8091 0000 		lds r24,numCurrTrackedObjects
1847
 964               	.LM124:
1820
 937 03d4 8093 0000 		sts numPrevTrackedObjects,r24
1848
 965 0412 829B      		sbis 48-0x20,2
1821
 938               		.stabn	68,0,266,.LM124-.LFBB5
1849
 966 0414 FECF      		rjmp .L118
1822
 939               	.LM124:
1850
 967               		.stabn	68,0,273,.LM125-FrameMgr_acquireFrame
1823
 940 03d8 1092 0000 		sts numCurrTrackedObjects,__zero_reg__
1851
 968               	.LM125:
1824
 941               		.stabn	68,0,270,.LM125-.LFBB5
1852
 969 0416 60E0      		ldi r22,lo8(colorMap)
1825
 942               	.LM125:
1853
 970 0418 70E0      		ldi r23,hi8(colorMap)
1826
 943 03dc 80E4      		ldi r24,lo8(64)
1854
 971 041a 80E0      		ldi r24,lo8(currentLineBuffer)
1827
 944 03de E0E0      		ldi r30,lo8(trackedObjectTable)
1855
 972 041c 90E0      		ldi r25,hi8(currentLineBuffer)
1828
 945 03e0 F0E0      		ldi r31,hi8(trackedObjectTable)
1856
 973 041e 00D0      		rcall CamIntAsm_acquireTrackingLine
1829
 946 03e2 1192      		st Z+,__zero_reg__
1857
 974               	.L120:
1830
 947 03e4 8A95      	        dec r24
1858
 975 0420 0895      		ret
1831
 948 03e6 01F4      		brne .-6
1859
 976               	/* epilogue: frame size=0 */
1832
 949               	.L115:
1860
 977               	/* epilogue: noreturn */
1833
 950               		.stabn	68,0,272,.LM126-.LFBB5
1861
GAS LISTING /tmp/ccQRbLT3.s 			page 32
1834
 951               	.LM126:
1862
 
1835
 952 03e8 829B      		sbis 48-0x20,2
1863
 
1836
 953 03ea 00C0      		rjmp .L115
1864
 978               	/* epilogue end (size=0) */
1837
 954               		.stabn	68,0,273,.LM127-.LFBB5
1865
 979               	/* function FrameMgr_acquireFrame size 26 (26) */
1838
 955               	.LM127:
1866
 980               		.size	FrameMgr_acquireFrame, .-FrameMgr_acquireFrame
1839
 956 03ec 60E0      		ldi r22,lo8(colorMap)
1867
 981               	.Lscope4:
1840
 957 03ee 70E0      		ldi r23,hi8(colorMap)
1868
 982               		.stabs	"",36,0,0,.Lscope4-FrameMgr_acquireFrame
1841
 958 03f0 80E0      		ldi r24,lo8(currentLineBuffer)
1869
 983               		.stabd	78,0,0
1842
 959 03f2 90E0      		ldi r25,hi8(currentLineBuffer)
1870
 984               		.stabs	"FrameMgr_dispatchEvent:F(0,15)",36,0,205,FrameMgr_dispatchEvent
1843
 960 03f4 00D0      		rcall CamIntAsm_acquireTrackingLine
1871
 985               		.stabs	"event:P(0,11)",64,0,204,24
1844
 961               	.L117:
1872
 986               	.global	FrameMgr_dispatchEvent
1845
 962 03f6 0895      		ret
1873
 987               		.type	FrameMgr_dispatchEvent, @function
1846
 963               	/* epilogue: frame size=0 */
1874
 988               	FrameMgr_dispatchEvent:
1847
 964               	/* epilogue: noreturn */
1875
 989               		.stabd	46,0,0
1848
 965               	/* epilogue end (size=0) */
1876
 990               		.stabn	68,0,205,.LM126-FrameMgr_dispatchEvent
1849
 966               	/* function FrameMgr_acquireFrame size 26 (26) */
1877
 991               	.LM126:
1850
 967               		.size	FrameMgr_acquireFrame, .-FrameMgr_acquireFrame
1878
 992               	/* prologue: frame size=0 */
1851
 968               	.Lscope5:
1879
 993               	/* prologue end (size=0) */
1852
 969               		.stabs	"",36,0,0,.Lscope5-.LFBB5
1880
 994               		.stabn	68,0,206,.LM127-FrameMgr_dispatchEvent
1853
 970               		.stabd	78,0,0
1881
 995               	.LM127:
1854
 971               		.stabs	"FrameMgr_dispatchEvent:F(0,15)",36,0,205,FrameMgr_dispatchEvent
1882
 996 0422 8430      		cpi r24,lo8(4)
1855
 972               		.stabs	"event:P(0,11)",64,0,204,24
1883
 997 0424 19F1      		breq .L127
1856
 973               	.global	FrameMgr_dispatchEvent
1884
 998               		.stabn	68,0,206,.LM128-FrameMgr_dispatchEvent
1857
 974               		.type	FrameMgr_dispatchEvent, @function
1885
 999               	.LM128:
1858
 975               	FrameMgr_dispatchEvent:
1886
 1000 0426 8530      		cpi r24,lo8(5)
1859
 976               		.stabd	46,0,0
1887
 1001 0428 28F4      		brsh .L131
1860
 977               		.stabn	68,0,205,.LM128-.LFBB6
1888
 1002 042a 8130      		cpi r24,lo8(1)
1861
GAS LISTING /tmp/cc0XjEMJ.s 			page 32
1889
 1003 042c 09F1      		breq .L125
1862
 
1890
 1004 042e 8230      		cpi r24,lo8(2)
1863
 
1891
 1005 0430 41F5      		brne .L133
1864
 978               	.LM128:
1892
 1006 0432 07C0      		rjmp .L126
1865
 979               	.LFBB6:
1893
 1007               	.L131:
1866
 980               	/* prologue: frame size=0 */
1894
 1008 0434 8038      		cpi r24,lo8(-128)
1867
 981               	/* prologue end (size=0) */
1895
 1009 0436 99F0      		breq .L129
1868
 982               		.stabn	68,0,206,.LM129-.LFBB6
1896
 1010 0438 8138      		cpi r24,lo8(-127)
1869
 983               	.LM129:
1897
 1011 043a 09F1      		breq .L130
1870
 984 03f8 8430      		cpi r24,lo8(4)
1898
 1012 043c 8032      		cpi r24,lo8(32)
1871
 985 03fa 01F0      		breq .L124
1899
 1013 043e 09F5      		brne .L133
1872
 986               		.stabn	68,0,206,.LM130-.LFBB6
1900
 1014 0440 13C0      		rjmp .L128
1873
 987               	.LM130:
1901
 1015               	.L126:
1874
 988 03fc 8530      		cpi r24,lo8(5)
1902
 1016               		.stabn	68,0,211,.LM129-FrameMgr_dispatchEvent
1875
 989 03fe 00F4      		brsh .L128
1903
 1017               	.LM129:
1876
 990 0400 8130      		cpi r24,lo8(1)
1904
 1018 0442 61E0      		ldi r22,lo8(1)
1877
 991 0402 01F0      		breq .L122
1905
 1019 0444 81E1      		ldi r24,lo8(17)
1878
 992 0404 8230      		cpi r24,lo8(2)
1906
 1020 0446 00D0      		rcall CamConfig_setCamReg
1879
 993 0406 01F4      		brne .L130
1907
 1021               		.stabn	68,0,212,.LM130-FrameMgr_dispatchEvent
1880
 994 0408 00C0      		rjmp .L123
1908
 1022               	.LM130:
1881
 995               	.L128:
1909
 1023 0448 00D0      		rcall CamConfig_sendFifoCmds
1882
 996 040a 8038      		cpi r24,lo8(-128)
1910
 1024               		.stabn	68,0,213,.LM131-FrameMgr_dispatchEvent
1883
 997 040c 01F0      		breq .L126
1911
 1025               	.LM131:
1884
 998 040e 8138      		cpi r24,lo8(-127)
1912
 1026 044a 88EE      		ldi r24,lo8(1000)
1885
 999 0410 01F0      		breq .L127
1913
 1027 044c 93E0      		ldi r25,hi8(1000)
1886
 1000 0412 8032      		cpi r24,lo8(32)
1914
 1028 044e 00D0      		rcall Utility_delay
1887
 1001 0414 01F4      		brne .L130
1915
 1029               		.stabn	68,0,214,.LM132-FrameMgr_dispatchEvent
1888
 1002 0416 00C0      		rjmp .L125
1916
 1030               	.LM132:
1889
 1003               	.L123:
1917
 1031 0450 1092 0000 		sts lineCount,__zero_reg__
1890
 1004               		.stabn	68,0,211,.LM131-.LFBB6
1918
 1032               		.stabn	68,0,215,.LM133-FrameMgr_dispatchEvent
1891
 1005               	.LM131:
1919
 1033               	.LM133:
1892
 1006 0418 61E0      		ldi r22,lo8(1)
1920
 1034 0454 82E0      		ldi r24,lo8(2)
1893
 1007 041a 81E1      		ldi r24,lo8(17)
1921
GAS LISTING /tmp/ccQRbLT3.s 			page 33
1894
 1008 041c 00D0      		rcall CamConfig_setCamReg
1922
 
1895
 1009               		.stabn	68,0,212,.LM132-.LFBB6
1923
 
1896
 1010               	.LM132:
1924
 1035 0456 8093 0000 		sts currentState,r24
1897
 1011 041e 00D0      		rcall CamConfig_sendFifoCmds
1925
 1036               		.stabn	68,0,217,.LM134-FrameMgr_dispatchEvent
1898
 1012               		.stabn	68,0,213,.LM133-.LFBB6
1926
 1037               	.LM134:
1899
 1013               	.LM133:
1927
 1038 045a 92DF      		rcall FrameMgr_acquireLine
1900
 1014 0420 88EE      		ldi r24,lo8(1000)
1928
 1039 045c 0895      		ret
1901
 1015 0422 93E0      		ldi r25,hi8(1000)
1929
 1040               	.L129:
1902
 1016 0424 00D0      		rcall Utility_delay
1930
 1041               		.stabn	68,0,221,.LM135-FrameMgr_dispatchEvent
1903
 1017               		.stabn	68,0,214,.LM134-.LFBB6
1931
 1042               	.LM135:
1904
 1018               	.LM134:
1932
 1043 045e 81E0      		ldi r24,lo8(1)
1905
 1019 0426 1092 0000 		sts lineCount,__zero_reg__
1933
 1044 0460 8093 0000 		sts currentState,r24
1906
 1020               		.stabn	68,0,215,.LM135-.LFBB6
1934
 1045               		.stabn	68,0,222,.LM136-FrameMgr_dispatchEvent
1907
 1021               	.LM135:
1935
 1046               	.LM136:
1908
 1022 042a 82E0      		ldi r24,lo8(2)
1936
 1047 0464 C4DF      		rcall FrameMgr_acquireFrame
1909
 1023 042c 8093 0000 		sts currentState,r24
1937
 1048 0466 0895      		ret
1910
 1024               		.stabn	68,0,217,.LM136-.LFBB6
1938
 1049               	.L128:
1911
 1025               	.LM136:
1939
 1050               		.stabn	68,0,226,.LM137-FrameMgr_dispatchEvent
1912
 1026 0430 00D0      		rcall FrameMgr_acquireLine
1940
 1051               	.LM137:
1913
 1027 0432 0895      		ret
1941
 1052 0468 CBDD      		rcall FrameMgr_processFrame
1914
 1028               	.L126:
1942
 1053 046a 0895      		ret
1915
 1029               		.stabn	68,0,221,.LM137-.LFBB6
1943
 1054               	.L127:
1916
 1030               	.LM137:
1944
 1055               		.stabn	68,0,230,.LM138-FrameMgr_dispatchEvent
1917
 1031 0434 81E0      		ldi r24,lo8(1)
1945
 1056               	.LM138:
1918
 1032 0436 8093 0000 		sts currentState,r24
1946
 1057 046c C0DF      		rcall FrameMgr_acquireFrame
1919
 1033               		.stabn	68,0,222,.LM138-.LFBB6
1947
 1058 046e 0895      		ret
1920
 1034               	.LM138:
1948
 1059               	.L125:
1921
GAS LISTING /tmp/cc0XjEMJ.s 			page 33
1949
 1060               		.stabn	68,0,234,.LM139-FrameMgr_dispatchEvent
1922
 
1950
 1061               	.LM139:
1923
 
1951
 1062 0470 8091 0000 		lds r24,currentState
1924
 1035 043a 00D0      		rcall FrameMgr_acquireFrame
1952
 1063 0474 8823      		tst r24
1925
 1036 043c 0895      		ret
1953
 1064 0476 29F0      		breq .L133
1926
 1037               	.L125:
1954
 1065               		.stabn	68,0,240,.LM140-FrameMgr_dispatchEvent
1927
 1038               		.stabn	68,0,226,.LM139-.LFBB6
1955
 1066               	.LM140:
1928
 1039               	.LM139:
1956
 1067 0478 84E0      		ldi r24,lo8(4)
1929
 1040 043e 00D0      		rcall FrameMgr_processFrame
1957
 1068 047a 00D0      		rcall Exec_writeEventFifo
1930
 1041 0440 0895      		ret
1958
 1069 047c 0895      		ret
1931
 1042               	.L124:
1959
 1070               	.L130:
1932
 1043               		.stabn	68,0,230,.LM140-.LFBB6
1960
 1071               		.stabn	68,0,246,.LM141-FrameMgr_dispatchEvent
1933
 1044               	.LM140:
1961
 1072               	.LM141:
1934
 1045 0442 00D0      		rcall FrameMgr_acquireFrame
1962
 1073 047e 1092 0000 		sts currentState,__zero_reg__
1935
 1046 0444 0895      		ret
1963
 1074               	.L133:
1936
 1047               	.L122:
1964
 1075 0482 0895      		ret
1937
 1048               		.stabn	68,0,234,.LM141-.LFBB6
1965
 1076               	/* epilogue: frame size=0 */
1938
 1049               	.LM141:
1966
 1077               	/* epilogue: noreturn */
1939
 1050 0446 8091 0000 		lds r24,currentState
1967
 1078               	/* epilogue end (size=0) */
1940
 1051 044a 8823      		tst r24
1968
 1079               	/* function FrameMgr_dispatchEvent size 49 (49) */
1941
 1052 044c 01F0      		breq .L130
1969
 1080               		.size	FrameMgr_dispatchEvent, .-FrameMgr_dispatchEvent
1942
 1053               		.stabn	68,0,240,.LM142-.LFBB6
1970
 1081               	.Lscope5:
1943
 1054               	.LM142:
1971
 1082               		.stabs	"",36,0,0,.Lscope5-FrameMgr_dispatchEvent
1944
 1055 044e 84E0      		ldi r24,lo8(4)
1972
 1083               		.stabd	78,0,0
1945
 1056 0450 00D0      		rcall Exec_writeEventFifo
1973
 1084               		.data
1946
 1057 0452 0895      		ret
1974
 1085               		.type	pCurrentTrackedObjectTable, @object
1947
 1058               	.L127:
1975
 1086               		.size	pCurrentTrackedObjectTable, 2
1948
 1059               		.stabn	68,0,246,.LM143-.LFBB6
1976
 1087               	pCurrentTrackedObjectTable:
1949
 1060               	.LM143:
1977
 1088 0000 0000      		.word	trackedObjectTable
1950
 1061 0454 1092 0000 		sts currentState,__zero_reg__
1978
 1089               		.lcomm numCurrTrackedObjects,1
1951
 1062               	.L130:
1979
 1090               		.lcomm currentState,1
1952
 1063 0458 0895      		ret
1980
 1091               		.lcomm lineCount,1
1953
 1064               	/* epilogue: frame size=0 */
1981
GAS LISTING /tmp/ccQRbLT3.s 			page 34
1954
 1065               	/* epilogue: noreturn */
1982
 
1955
 1066               	/* epilogue end (size=0) */
1983
 
1956
 1067               	/* function FrameMgr_dispatchEvent size 49 (49) */
1984
 1092               		.lcomm trackedLineCount,1
1957
 1068               		.size	FrameMgr_dispatchEvent, .-FrameMgr_dispatchEvent
1985
 1093               		.lcomm numPrevTrackedObjects,1
1958
 1069               	.Lscope6:
1986
 1094               		.lcomm trackedObjectTable,64
1959
 1070               		.stabs	"",36,0,0,.Lscope6-.LFBB6
1987
 1095               		.stabs	"trackedObjectTable:S(0,24)=ar(0,25)=r(0,25);0;0177777;;0;7;(0,20)",40,0,162,trackedObjectT
1960
 1071               		.stabd	78,0,0
1988
 1096               		.stabs	"pCurrentTrackedObjectTable:S(0,26)=*(0,20)",38,0,163,pCurrentTrackedObjectTable
1961
 1072               		.data
1989
 1097               		.stabs	"lineCount:S(0,11)",38,0,164,lineCount
1962
 1073               		.type	pCurrentTrackedObjectTable, @object
1990
 1098               		.stabs	"currentState:S(0,17)",38,0,165,currentState
1963
 1074               		.size	pCurrentTrackedObjectTable, 2
1991
 1099               		.stabs	"numCurrTrackedObjects:S(0,11)",38,0,166,numCurrTrackedObjects
1964
 1075               	pCurrentTrackedObjectTable:
1992
 1100               		.stabs	"numPrevTrackedObjects:S(0,11)",38,0,167,numPrevTrackedObjects
1965
 1076 0000 0000      		.word	trackedObjectTable
1993
 1101               		.stabs	"trackedLineCount:S(0,11)",38,0,168,trackedLineCount
1966
 1077               		.lcomm numCurrTrackedObjects,1
1994
 1102               		.text
1967
 1078               		.lcomm currentState,1
1995
 1103               		.stabs	"",100,0,0,.Letext0
1968
 1079               		.lcomm lineCount,1
1996
 1104               	.Letext0:
1969
 1080               		.lcomm trackedLineCount,1
1997
 1105               	/* File "FrameMgr.c": code  580 = 0x0244 ( 513), prologues  33, epilogues  34 */
1970
 1081               		.lcomm numPrevTrackedObjects,1
1998
GAS LISTING /tmp/ccQRbLT3.s 			page 35
1971
 1082               		.lcomm trackedObjectTable,64
-
 
1972
 1083               		.stabs	"trackedObjectTable:S(0,24)=ar(0,25)=r(0,25);0;0177777;;0;7;(0,20)",40,0,162,trackedObjectT
-
 
1973
 1084               		.stabs	"pCurrentTrackedObjectTable:S(0,26)=*(0,20)",38,0,163,pCurrentTrackedObjectTable
-
 
1974
 1085               		.stabs	"lineCount:S(0,11)",38,0,164,lineCount
-
 
1975
 1086               		.stabs	"currentState:S(0,17)",38,0,165,currentState
-
 
1976
 1087               		.stabs	"numCurrTrackedObjects:S(0,11)",38,0,166,numCurrTrackedObjects
-
 
1977
 1088               		.stabs	"numPrevTrackedObjects:S(0,11)",38,0,167,numPrevTrackedObjects
-
 
1978
 1089               		.stabs	"trackedLineCount:S(0,11)",38,0,168,trackedLineCount
-
 
1979
 1090               		.text
-
 
1980
 1091               		.stabs	"",100,0,0,.Letext0
-
 
1981
GAS LISTING /tmp/cc0XjEMJ.s 			page 34
-
 
1982
 
-
 
1983
 
-
 
1984
 1092               	.Letext0:
-
 
1985
 1093               	/* File "FrameMgr.c": code  559 = 0x022f ( 494), prologues  32, epilogues  33 */
-
 
1986
GAS LISTING /tmp/cc0XjEMJ.s 			page 35
1999
 
1987
 
2000
 
1988
 
2001
DEFINED SYMBOLS
1989
DEFINED SYMBOLS
2002
                            *ABS*:00000000 FrameMgr.c
1990
                            *ABS*:00000000 FrameMgr.c
2003
     /tmp/ccQRbLT3.s:3      *ABS*:0000003f __SREG__
1991
     /tmp/cc0XjEMJ.s:2      *ABS*:0000003f __SREG__
2004
     /tmp/ccQRbLT3.s:4      *ABS*:0000003e __SP_H__
1992
     /tmp/cc0XjEMJ.s:3      *ABS*:0000003e __SP_H__
2005
     /tmp/ccQRbLT3.s:5      *ABS*:0000003d __SP_L__
1993
     /tmp/cc0XjEMJ.s:4      *ABS*:0000003d __SP_L__
2006
     /tmp/ccQRbLT3.s:6      *ABS*:00000000 __tmp_reg__
1994
     /tmp/cc0XjEMJ.s:5      *ABS*:00000000 __tmp_reg__
2007
     /tmp/ccQRbLT3.s:7      *ABS*:00000001 __zero_reg__
1995
     /tmp/cc0XjEMJ.s:6      *ABS*:00000001 __zero_reg__
2008
     /tmp/ccQRbLT3.s:91     .text:00000000 FrameMgr_processFrame
1996
     /tmp/cc0XjEMJ.s:90     .text:00000000 FrameMgr_processFrame
2009
     /tmp/ccQRbLT3.s:1087   .data:00000000 pCurrentTrackedObjectTable
1997
     /tmp/cc0XjEMJ.s:1075   .data:00000000 pCurrentTrackedObjectTable
2010
                             .bss:00000000 numCurrTrackedObjects
1998
                             .bss:00000000 numCurrTrackedObjects
2011
     /tmp/ccQRbLT3.s:270    .text:000000b2 FrameMgr_processLine
1999
     /tmp/cc0XjEMJ.s:270    .text:000000b2 FrameMgr_processLine
2012
     /tmp/ccQRbLT3.s:1089   .bss:00000001 currentState
2000
     /tmp/cc0XjEMJ.s:1077   .bss:00000001 currentState
2013
     /tmp/ccQRbLT3.s:1090   .bss:00000002 lineCount
2001
     /tmp/cc0XjEMJ.s:1078   .bss:00000002 lineCount
2014
     /tmp/ccQRbLT3.s:1091   .bss:00000003 trackedLineCount
2002
     /tmp/cc0XjEMJ.s:1079   .bss:00000003 trackedLineCount
2015
     /tmp/ccQRbLT3.s:798    .text:00000372 FrameMgr_init
2003
     /tmp/cc0XjEMJ.s:784    .text:0000034e FrameMgr_init
2016
     /tmp/ccQRbLT3.s:1093   .bss:00000005 trackedObjectTable
2004
     /tmp/cc0XjEMJ.s:1081   .bss:00000005 trackedObjectTable
2017
     /tmp/ccQRbLT3.s:823    .text:00000380 FrameMgr_acquireLine
2005
     /tmp/cc0XjEMJ.s:810    .text:0000035c FrameMgr_acquireLine
2018
     /tmp/ccQRbLT3.s:933    .text:000003ee FrameMgr_acquireFrame
2006
     /tmp/cc0XjEMJ.s:919    .text:000003c4 FrameMgr_acquireFrame
2019
     /tmp/ccQRbLT3.s:1092   .bss:00000004 numPrevTrackedObjects
2007
     /tmp/cc0XjEMJ.s:1080   .bss:00000004 numPrevTrackedObjects
2020
     /tmp/ccQRbLT3.s:988    .text:00000422 FrameMgr_dispatchEvent
2008
     /tmp/cc0XjEMJ.s:975    .text:000003f8 FrameMgr_dispatchEvent
2021
 
2009
 
2022
UNDEFINED SYMBOLS
2010
UNDEFINED SYMBOLS
2023
__do_copy_data
2011
__do_copy_data
2024
__do_clear_bss
2012
__do_clear_bss
2025
UIMgr_writeTxFifo
2013
UIMgr_writeTxFifo