Subversion Repositories svnkaklik

Rev

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

Rev 151 Rev 174
Line 1... Line 1...
1
GAS LISTING /tmp/ccf43P2i.s 			page 1
1
GAS LISTING /tmp/cceB4D4U.s 			page 1
2
 
2
 
3
 
3
 
4
   1               		.file	"FrameMgr.c"
4
   1               		.file	"FrameMgr.c"
5
   2               		.arch atmega8
5
   2               		.arch atmega8
6
   3               	__SREG__ = 0x3f
6
   3               	__SREG__ = 0x3f
Line 8... Line 8...
8
   5               	__SP_L__ = 0x3d
8
   5               	__SP_L__ = 0x3d
9
   6               	__tmp_reg__ = 0
9
   6               	__tmp_reg__ = 0
10
   7               	__zero_reg__ = 1
10
   7               	__zero_reg__ = 1
11
   8               		.global __do_copy_data
11
   8               		.global __do_copy_data
12
   9               		.global __do_clear_bss
12
   9               		.global __do_clear_bss
13
  10               		.stabs	"/home/kaklik/projects/roboti/istrobot/2007/ATmega8/AVRcam/",100,0,2,.Ltext0
13
  10               		.stabs	"/home/kaklik/projects/programy/Atmel_C/AVRcam/",100,0,2,.Ltext0
14
  11               		.stabs	"FrameMgr.c",100,0,2,.Ltext0
14
  11               		.stabs	"FrameMgr.c",100,0,2,.Ltext0
15
  12               		.text
15
  12               		.text
16
  13               	.Ltext0:
16
  13               	.Ltext0:
17
  14               		.stabs	"gcc2_compiled.",60,0,0,0
17
  14               		.stabs	"gcc2_compiled.",60,0,0,0
18
  15               		.stabs	"int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
18
  15               		.stabs	"int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
Line 56... Line 56...
56
  53               		.stabs	"int_least8_t:t(6,11)=(6,1)",128,0,152,0
56
  53               		.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
57
  54               		.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
58
  55               		.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
59
  56               		.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
60
  57               		.stabs	"int_least32_t:t(6,15)=(6,5)",128,0,172,0
61
GAS LISTING /tmp/ccf43P2i.s 			page 2
61
GAS LISTING /tmp/cceB4D4U.s 			page 2
62
 
62
 
63
 
63
 
64
  58               		.stabs	"uint_least32_t:t(6,16)=(6,6)",128,0,177,0
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
65
  59               		.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
66
  60               		.stabs	"uint_least64_t:t(6,18)=(6,8)",128,0,187,0
Line 116... Line 116...
116
  18:FrameMgr.c    ****     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
116
  18:FrameMgr.c    ****     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
117
  19:FrameMgr.c    **** 
117
  19:FrameMgr.c    **** 
118
  20:FrameMgr.c    ****    For more information on the AVRcam, please contact:
118
  20:FrameMgr.c    ****    For more information on the AVRcam, please contact:
119
  21:FrameMgr.c    **** 
119
  21:FrameMgr.c    **** 
120
  22:FrameMgr.c    ****    john@jrobot.net
120
  22:FrameMgr.c    ****    john@jrobot.net
121
GAS LISTING /tmp/ccf43P2i.s 			page 3
121
GAS LISTING /tmp/cceB4D4U.s 			page 3
122
 
122
 
123
 
123
 
124
  23:FrameMgr.c    **** 
124
  23:FrameMgr.c    **** 
125
  24:FrameMgr.c    ****    or go to www.jrobot.net for more details regarding the system.
125
  24:FrameMgr.c    ****    or go to www.jrobot.net for more details regarding the system.
126
  25:FrameMgr.c    **** */
126
  25:FrameMgr.c    **** */
Line 176... Line 176...
176
  75:FrameMgr.c    **** /* The most objects that can be tracked at any one time is 8.  
176
  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
177
  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) 
178
  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
179
  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
180
  79:FrameMgr.c    **** room :-) ... I guess this could be increased to around 20 if
181
GAS LISTING /tmp/ccf43P2i.s 			page 4
181
GAS LISTING /tmp/cceB4D4U.s 			page 4
182
 
182
 
183
 
183
 
184
  80:FrameMgr.c    **** we had enough room and cycles to process objects between lines */
184
  80:FrameMgr.c    **** we had enough room and cycles to process objects between lines */
185
  81:FrameMgr.c    **** #define MAX_TRACKED_OBJECTS	8
185
  81:FrameMgr.c    **** #define MAX_TRACKED_OBJECTS	8
186
  82:FrameMgr.c    **** 
186
  82:FrameMgr.c    **** 
Line 236... Line 236...
236
 132:FrameMgr.c    **** {
236
 132:FrameMgr.c    **** {
237
 133:FrameMgr.c    **** 	trackedColor_t  color;
237
 133:FrameMgr.c    **** 	trackedColor_t  color;
238
 134:FrameMgr.c    **** 	unsigned char lastLineXStart;
238
 134:FrameMgr.c    **** 	unsigned char lastLineXStart;
239
 135:FrameMgr.c    **** 	unsigned char lastLineXFinish;
239
 135:FrameMgr.c    **** 	unsigned char lastLineXFinish;
240
 136:FrameMgr.c    **** 	unsigned char x_upperLeft;
240
 136:FrameMgr.c    **** 	unsigned char x_upperLeft;
241
GAS LISTING /tmp/ccf43P2i.s 			page 5
241
GAS LISTING /tmp/cceB4D4U.s 			page 5
242
 
242
 
243
 
243
 
244
 137:FrameMgr.c    **** 	unsigned char y_upperLeft;
244
 137:FrameMgr.c    **** 	unsigned char y_upperLeft;
245
 138:FrameMgr.c    **** 	unsigned char x_lowerRight;
245
 138:FrameMgr.c    **** 	unsigned char x_lowerRight;
246
 139:FrameMgr.c    **** 	unsigned char y_lowerRight;
246
 139:FrameMgr.c    **** 	unsigned char y_lowerRight;
Line 296... Line 296...
296
 189:FrameMgr.c    **** ***********************************************************/	
296
 189:FrameMgr.c    **** ***********************************************************/	
297
 190:FrameMgr.c    **** void FrameMgr_init(void)
297
 190:FrameMgr.c    **** void FrameMgr_init(void)
298
 191:FrameMgr.c    **** {
298
 191:FrameMgr.c    **** {
299
 192:FrameMgr.c    **** 	memset(trackedObjectTable,0x00,sizeof(trackedObjectTable));
299
 192:FrameMgr.c    **** 	memset(trackedObjectTable,0x00,sizeof(trackedObjectTable));
300
 193:FrameMgr.c    **** }
300
 193:FrameMgr.c    **** }
301
GAS LISTING /tmp/ccf43P2i.s 			page 6
301
GAS LISTING /tmp/cceB4D4U.s 			page 6
302
 
302
 
303
 
303
 
304
 194:FrameMgr.c    **** 
304
 194:FrameMgr.c    **** 
305
 195:FrameMgr.c    **** 
305
 195:FrameMgr.c    **** 
306
 196:FrameMgr.c    **** /***********************************************************
306
 196:FrameMgr.c    **** /***********************************************************
Line 356... Line 356...
356
 246:FrameMgr.c    **** 			currentState = ST_FrameMgr_idle;
356
 246:FrameMgr.c    **** 			currentState = ST_FrameMgr_idle;
357
 247:FrameMgr.c    **** 			break;
357
 247:FrameMgr.c    **** 			break;
358
 248:FrameMgr.c    **** 	}
358
 248:FrameMgr.c    **** 	}
359
 249:FrameMgr.c    **** }
359
 249:FrameMgr.c    **** }
360
 250:FrameMgr.c    **** 
360
 250:FrameMgr.c    **** 
361
GAS LISTING /tmp/ccf43P2i.s 			page 7
361
GAS LISTING /tmp/cceB4D4U.s 			page 7
362
 
362
 
363
 
363
 
364
 251:FrameMgr.c    **** /***********************************************************
364
 251:FrameMgr.c    **** /***********************************************************
365
 252:FrameMgr.c    **** 	Function Name: FrameMgr_acquireFrame
365
 252:FrameMgr.c    **** 	Function Name: FrameMgr_acquireFrame
366
 253:FrameMgr.c    **** 	Function Description: This function is responsible for
366
 253:FrameMgr.c    **** 	Function Description: This function is responsible for
Line 416... Line 416...
416
 303:FrameMgr.c    ****         a frame to come back with the last line captured of the
416
 303:FrameMgr.c    ****         a frame to come back with the last line captured of the
417
 304:FrameMgr.c    ****         last capture session...*/
417
 304:FrameMgr.c    ****         last capture session...*/
418
 305:FrameMgr.c    ****         memset(currentLineBuffer,0x00,LENGTH_OF_LINE_BUFFER);
418
 305:FrameMgr.c    ****         memset(currentLineBuffer,0x00,LENGTH_OF_LINE_BUFFER);
419
 306:FrameMgr.c    ****         memset(previousLineBuffer,0x00,LENGTH_OF_LINE_BUFFER);
419
 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 
420
 307:FrameMgr.c    **** 		/* wait for another VSYNC so we know which frame to use 
421
GAS LISTING /tmp/ccf43P2i.s 			page 8
421
GAS LISTING /tmp/cceB4D4U.s 			page 8
422
 
422
 
423
 
423
 
424
 308:FrameMgr.c    **** 		to start looking for a line to receive */
424
 308:FrameMgr.c    **** 		to start looking for a line to receive */
425
 309:FrameMgr.c    **** 		WAIT_FOR_VSYNC_HIGH();  
425
 309:FrameMgr.c    **** 		WAIT_FOR_VSYNC_HIGH();  
426
 310:FrameMgr.c    **** 		WAIT_FOR_VSYNC_LOW();
426
 310:FrameMgr.c    **** 		WAIT_FOR_VSYNC_LOW();
Line 476... Line 476...
476
 360:FrameMgr.c    **** 		/* currentLineBuffer is getting "g" previousLineBuffer is getting "b-r" */
476
 360:FrameMgr.c    **** 		/* currentLineBuffer is getting "g" previousLineBuffer is getting "b-r" */
477
 361:FrameMgr.c    **** 		UartInt_txByte(0x0B);			/* send the header byte */
477
 361:FrameMgr.c    **** 		UartInt_txByte(0x0B);			/* send the header byte */
478
 362:FrameMgr.c    **** 		UartInt_txByte(lineCount);		/* send the line count */
478
 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)
479
 363:FrameMgr.c    **** 		for (i=0; i<NUM_PIXELS_IN_A_DUMP_LINE; i+=2)
480
 364:FrameMgr.c    **** 		{
480
 364:FrameMgr.c    **** 		{
481
GAS LISTING /tmp/ccf43P2i.s 			page 9
481
GAS LISTING /tmp/cceB4D4U.s 			page 9
482
 
482
 
483
 
483
 
484
 365:FrameMgr.c    **** 			/* when a dump line is sampled, the upper byte can potentially
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
485
 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
486
 367:FrameMgr.c    **** 			sampling, so it is done here before we send it out...we also
Line 536... Line 536...
536
 417:FrameMgr.c    **** 		until a pixelCount == 176 */
536
 417:FrameMgr.c    **** 		until a pixelCount == 176 */
537
 418:FrameMgr.c    **** 		pSendData = currentLineBuffer;
537
 418:FrameMgr.c    **** 		pSendData = currentLineBuffer;
538
 419:FrameMgr.c    **** 		itoa(trackedLineCount,asciiBuffer,10);
538
 419:FrameMgr.c    **** 		itoa(trackedLineCount,asciiBuffer,10);
539
 420:FrameMgr.c    **** 		UIMgr_txBuffer(asciiBuffer,3);
539
 420:FrameMgr.c    **** 		UIMgr_txBuffer(asciiBuffer,3);
540
 421:FrameMgr.c    **** 		UIMgr_txBuffer(" ",1);
540
 421:FrameMgr.c    **** 		UIMgr_txBuffer(" ",1);
541
GAS LISTING /tmp/ccf43P2i.s 			page 10
541
GAS LISTING /tmp/cceB4D4U.s 			page 10
542
 
542
 
543
 
543
 
544
 422:FrameMgr.c    **** 		while(pixelCount < ACTUAL_NUM_PIXELS_IN_A_LINE)  
544
 422:FrameMgr.c    **** 		while(pixelCount < ACTUAL_NUM_PIXELS_IN_A_LINE)  
545
 423:FrameMgr.c    **** 		{
545
 423:FrameMgr.c    **** 		{
546
 424:FrameMgr.c    **** 			memset(asciiBuffer,0x00,5);
546
 424:FrameMgr.c    **** 			memset(asciiBuffer,0x00,5);
Line 596... Line 596...
596
 474:FrameMgr.c    ****                         if ( trackedLineCount - *(pTrackedObjectData + Y_LOWER_RIGHT_OFFSET) > 2)
596
 474:FrameMgr.c    ****                         if ( trackedLineCount - *(pTrackedObjectData + Y_LOWER_RIGHT_OFFSET) > 2)
597
 475:FrameMgr.c    ****                         {
597
 475:FrameMgr.c    ****                         {
598
 476:FrameMgr.c    ****                             /* invalidate the object */
598
 476:FrameMgr.c    ****                             /* invalidate the object */
599
 477:FrameMgr.c    ****                             *(pTrackedObjectData + VALID_OBJECT_OFFSET) = FALSE;
599
 477:FrameMgr.c    ****                             *(pTrackedObjectData + VALID_OBJECT_OFFSET) = FALSE;
600
 478:FrameMgr.c    ****                             numCurrTrackedObjects--;
600
 478:FrameMgr.c    ****                             numCurrTrackedObjects--;
601
GAS LISTING /tmp/ccf43P2i.s 			page 11
601
GAS LISTING /tmp/cceB4D4U.s 			page 11
602
 
602
 
603
 
603
 
604
 479:FrameMgr.c    ****                         }
604
 479:FrameMgr.c    ****                         }
605
 480:FrameMgr.c    ****                     }
605
 480:FrameMgr.c    ****                     }
606
 481:FrameMgr.c    ****                 }
606
 481:FrameMgr.c    ****                 }
Line 656... Line 656...
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-FrameMgr_processFrame
661
GAS LISTING /tmp/ccf43P2i.s 			page 12
661
GAS LISTING /tmp/cceB4D4U.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 716... Line 716...
716
 121               		.stabn	68,0,559,.LM5-FrameMgr_processFrame
716
 121               		.stabn	68,0,559,.LM5-FrameMgr_processFrame
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/ccf43P2i.s 			page 13
721
GAS LISTING /tmp/cceB4D4U.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    **** 		{
Line 776... Line 776...
776
 163 0054 11F4      		brne .L16
776
 163 0054 11F4      		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 0DC0      		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/ccf43P2i.s 			page 14
781
GAS LISTING /tmp/cceB4D4U.s 			page 14
782
 
782
 
783
 
783
 
784
 167               		.stabn	68,0,575,.LM13-FrameMgr_processFrame
784
 167               		.stabn	68,0,575,.LM13-FrameMgr_processFrame
785
 168               	.LM13:
785
 168               	.LM13:
786
 169 005a 8430      		cpi r24,lo8(4)
786
 169 005a 8430      		cpi r24,lo8(4)
Line 836... Line 836...
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-FrameMgr_processFrame
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/ccf43P2i.s 			page 15
841
GAS LISTING /tmp/cceB4D4U.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-FrameMgr_processFrame
846
 214               	.LM23:
846
 214               	.LM23:
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/ccf43P2i.s 			page 16
901
GAS LISTING /tmp/cceB4D4U.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 956... Line 956...
956
 303               	.LM30:
956
 303               	.LM30:
957
 304 00e6 0091 0000 		lds r16,pCurrentTrackedObjectTable
957
 304 00e6 0091 0000 		lds r16,pCurrentTrackedObjectTable
958
 305 00ea 1091 0000 		lds r17,(pCurrentTrackedObjectTable)+1
958
 305 00ea 1091 0000 		lds r17,(pCurrentTrackedObjectTable)+1
959
 306               		.stabn	68,0,352,.LM31-FrameMgr_processLine
959
 306               		.stabn	68,0,352,.LM31-FrameMgr_processLine
960
 307               	.LM31:
960
 307               	.LM31:
961
GAS LISTING /tmp/ccf43P2i.s 			page 17
961
GAS LISTING /tmp/cceB4D4U.s 			page 17
962
 
962
 
963
 
963
 
964
 308 00ee 8091 0000 		lds r24,currentState
964
 308 00ee 8091 0000 		lds r24,currentState
965
 309 00f2 8230      		cpi r24,lo8(2)
965
 309 00f2 8230      		cpi r24,lo8(2)
966
 310 00f4 09F0      		breq .+2
966
 310 00f4 09F0      		breq .+2
Line 1016... Line 1016...
1016
 360               	.LM38:
1016
 360               	.LM38:
1017
 361 013e 8981      		ldd r24,Y+1
1017
 361 013e 8981      		ldd r24,Y+1
1018
 362 0140 00D0      		rcall UartInt_txByte
1018
 362 0140 00D0      		rcall UartInt_txByte
1019
 363               		.stabn	68,0,379,.LM39-FrameMgr_processLine
1019
 363               		.stabn	68,0,379,.LM39-FrameMgr_processLine
1020
 364               	.LM39:
1020
 364               	.LM39:
1021
GAS LISTING /tmp/ccf43P2i.s 			page 18
1021
GAS LISTING /tmp/cceB4D4U.s 			page 18
1022
 
1022
 
1023
 
1023
 
1024
 365 0142 D801      		movw r26,r16
1024
 365 0142 D801      		movw r26,r16
1025
 366 0144 1196      		adiw r26,1
1025
 366 0144 1196      		adiw r26,1
1026
 367 0146 FD01      		movw r30,r26
1026
 367 0146 FD01      		movw r30,r26
Line 1076... Line 1076...
1076
 417 0190 8093 0000 		sts lineCount,r24
1076
 417 0190 8093 0000 		sts lineCount,r24
1077
 418               		.stabn	68,0,394,.LM47-FrameMgr_processLine
1077
 418               		.stabn	68,0,394,.LM47-FrameMgr_processLine
1078
 419               	.LM47:
1078
 419               	.LM47:
1079
 420 0194 8834      		cpi r24,lo8(72)
1079
 420 0194 8834      		cpi r24,lo8(72)
1080
 421 0196 60F0      		brlo .L31
1080
 421 0196 60F0      		brlo .L31
1081
GAS LISTING /tmp/ccf43P2i.s 			page 19
1081
GAS LISTING /tmp/cceB4D4U.s 			page 19
1082
 
1082
 
1083
 
1083
 
1084
 422               		.stabn	68,0,398,.LM48-FrameMgr_processLine
1084
 422               		.stabn	68,0,398,.LM48-FrameMgr_processLine
1085
 423               	.LM48:
1085
 423               	.LM48:
1086
 424 0198 1092 0000 		sts lineCount,__zero_reg__
1086
 424 0198 1092 0000 		sts lineCount,__zero_reg__
Line 1136... Line 1136...
1136
 609:FrameMgr.c    **** 	Function Name: FrameMgr_findConnectedness
1136
 609:FrameMgr.c    **** 	Function Name: FrameMgr_findConnectedness
1137
 610:FrameMgr.c    **** 	Function Description: This function is responsible for
1137
 610:FrameMgr.c    **** 	Function Description: This function is responsible for
1138
 611:FrameMgr.c    **** 	finding the connectedness between two particular run-
1138
 611:FrameMgr.c    **** 	finding the connectedness between two particular run-
1139
 612:FrameMgr.c    **** 	length encoded lines of pixel data.  It updates the
1139
 612:FrameMgr.c    **** 	length encoded lines of pixel data.  It updates the
1140
 613:FrameMgr.c    **** 	trackingTable as needed.
1140
 613:FrameMgr.c    **** 	trackingTable as needed.
1141
GAS LISTING /tmp/ccf43P2i.s 			page 20
1141
GAS LISTING /tmp/cceB4D4U.s 			page 20
1142
 
1142
 
1143
 
1143
 
1144
 614:FrameMgr.c    **** 	Inputs:  none
1144
 614:FrameMgr.c    **** 	Inputs:  none
1145
 615:FrameMgr.c    **** 	Outputs: none
1145
 615:FrameMgr.c    **** 	Outputs: none
1146
 616:FrameMgr.c    **** ***********************************************************/	
1146
 616:FrameMgr.c    **** ***********************************************************/	
Line 1196... Line 1196...
1196
 666:FrameMgr.c    **** 				{
1196
 666:FrameMgr.c    **** 				{
1197
 667:FrameMgr.c    **** 					/* found a color match and the object is valid...check to see if there is
1197
 667:FrameMgr.c    **** 					/* found a color match and the object is valid...check to see if there is
1198
 668:FrameMgr.c    **** 					connectedness */
1198
 668:FrameMgr.c    **** 					connectedness */
1199
 669:FrameMgr.c    **** 					lastLineXStart = *(pTrackedObjectData + LAST_LINE_X_START_OFFSET);
1199
 669:FrameMgr.c    **** 					lastLineXStart = *(pTrackedObjectData + LAST_LINE_X_START_OFFSET);
1200
 670:FrameMgr.c    **** 					lastLineXFinish = *(pTrackedObjectData + LAST_LINE_X_FINISH_OFFSET);
1200
 670:FrameMgr.c    **** 					lastLineXFinish = *(pTrackedObjectData + LAST_LINE_X_FINISH_OFFSET);
1201
GAS LISTING /tmp/ccf43P2i.s 			page 21
1201
GAS LISTING /tmp/cceB4D4U.s 			page 21
1202
 
1202
 
1203
 
1203
 
1204
 671:FrameMgr.c    **** 					
1204
 671:FrameMgr.c    **** 					
1205
 672:FrameMgr.c    **** 					/* Check for the 5 following types of line connectedness:
1205
 672:FrameMgr.c    **** 					/* Check for the 5 following types of line connectedness:
1206
 673:FrameMgr.c    **** 					---------------------
1206
 673:FrameMgr.c    **** 					---------------------
Line 1256... Line 1256...
1256
 723:FrameMgr.c    **** 							/* need to update the bounding box for the upper left point to 
1256
 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
1257
 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
1258
 725:FrameMgr.c    **** 							upper left Y point, since each scan line we process moves from
1259
 726:FrameMgr.c    **** 							top to bottom */
1259
 726:FrameMgr.c    **** 							top to bottom */
1260
 727:FrameMgr.c    **** 							*(pTrackedObjectData + X_UPPER_LEFT_OFFSET) = currPixelRunStart;
1260
 727:FrameMgr.c    **** 							*(pTrackedObjectData + X_UPPER_LEFT_OFFSET) = currPixelRunStart;
1261
GAS LISTING /tmp/ccf43P2i.s 			page 22
1261
GAS LISTING /tmp/cceB4D4U.s 			page 22
1262
 
1262
 
1263
 
1263
 
1264
 728:FrameMgr.c    **** 						}
1264
 728:FrameMgr.c    **** 						}
1265
 729:FrameMgr.c    **** 
1265
 729:FrameMgr.c    **** 
1266
 730:FrameMgr.c    **** 						if ( *(pTrackedObjectData + X_LOWER_RIGHT_OFFSET) < currPixelRunFinish)
1266
 730:FrameMgr.c    **** 						if ( *(pTrackedObjectData + X_LOWER_RIGHT_OFFSET) < currPixelRunFinish)
Line 1316... Line 1316...
1316
 472               	.LM58:
1316
 472               	.LM58:
1317
 473 01d2 F090 0000 		lds r15,trackedLineCount
1317
 473 01d2 F090 0000 		lds r15,trackedLineCount
1318
 474               		.stabn	68,0,663,.LM59-FrameMgr_processLine
1318
 474               		.stabn	68,0,663,.LM59-FrameMgr_processLine
1319
 475               	.LM59:
1319
 475               	.LM59:
1320
 476 01d6 CF2C      		mov r12,r15
1320
 476 01d6 CF2C      		mov r12,r15
1321
GAS LISTING /tmp/ccf43P2i.s 			page 23
1321
GAS LISTING /tmp/cceB4D4U.s 			page 23
1322
 
1322
 
1323
 
1323
 
1324
 477 01d8 DD24      		clr r13
1324
 477 01d8 DD24      		clr r13
1325
 478 01da 3601      		movw r6,r12
1325
 478 01da 3601      		movw r6,r12
1326
 479 01dc 0894      		sec
1326
 479 01dc 0894      		sec
Line 1376... Line 1376...
1376
 529 0226 8781      		ldd r24,Z+7
1376
 529 0226 8781      		ldd r24,Z+7
1377
 530 0228 8130      		cpi r24,lo8(1)
1377
 530 0228 8130      		cpi r24,lo8(1)
1378
 531 022a A9F5      		brne .L40
1378
 531 022a A9F5      		brne .L40
1379
 532 022c 0F2E      		mov __tmp_reg__,r31
1379
 532 022c 0F2E      		mov __tmp_reg__,r31
1380
 533 022e F6E0      		ldi r31,lo8(6)
1380
 533 022e F6E0      		ldi r31,lo8(6)
1381
GAS LISTING /tmp/ccf43P2i.s 			page 24
1381
GAS LISTING /tmp/cceB4D4U.s 			page 24
1382
 
1382
 
1383
 
1383
 
1384
 534 0230 AF2E      		mov r10,r31
1384
 534 0230 AF2E      		mov r10,r31
1385
 535 0232 BB24      		clr r11
1385
 535 0232 BB24      		clr r11
1386
 536 0234 F02D      		mov r31,__tmp_reg__
1386
 536 0234 F02D      		mov r31,__tmp_reg__
Line 1436... Line 1436...
1436
 586               	.LM71:
1436
 586               	.LM71:
1437
 587 027c FD01      		movw r30,r26
1437
 587 027c FD01      		movw r30,r26
1438
 588 027e 8381      		ldd r24,Z+3
1438
 588 027e 8381      		ldd r24,Z+3
1439
 589 0280 5817      		cp r21,r24
1439
 589 0280 5817      		cp r21,r24
1440
 590 0282 08F4      		brsh .L50
1440
 590 0282 08F4      		brsh .L50
1441
GAS LISTING /tmp/ccf43P2i.s 			page 25
1441
GAS LISTING /tmp/cceB4D4U.s 			page 25
1442
 
1442
 
1443
 
1443
 
1444
 591               		.stabn	68,0,727,.LM72-FrameMgr_processLine
1444
 591               		.stabn	68,0,727,.LM72-FrameMgr_processLine
1445
 592               	.LM72:
1445
 592               	.LM72:
1446
 593 0284 5383      		std Z+3,r21
1446
 593 0284 5383      		std Z+3,r21
Line 1496... Line 1496...
1496
 643               		.stabn	68,0,775,.LM82-FrameMgr_processLine
1496
 643               		.stabn	68,0,775,.LM82-FrameMgr_processLine
1497
 644               	.LM82:
1497
 644               	.LM82:
1498
 645 02b8 FD01      		movw r30,r26
1498
 645 02b8 FD01      		movw r30,r26
1499
 646 02ba 5183      		std Z+1,r21
1499
 646 02ba 5183      		std Z+1,r21
1500
 647               		.stabn	68,0,776,.LM83-FrameMgr_processLine
1500
 647               		.stabn	68,0,776,.LM83-FrameMgr_processLine
1501
GAS LISTING /tmp/ccf43P2i.s 			page 26
1501
GAS LISTING /tmp/cceB4D4U.s 			page 26
1502
 
1502
 
1503
 
1503
 
1504
 648               	.LM83:
1504
 648               	.LM83:
1505
 649 02bc 4283      		std Z+2,r20
1505
 649 02bc 4283      		std Z+2,r20
1506
 650               		.stabn	68,0,777,.LM84-FrameMgr_processLine
1506
 650               		.stabn	68,0,777,.LM84-FrameMgr_processLine
Line 1556... Line 1556...
1556
 688               	.L63:
1556
 688               	.L63:
1557
 689               		.stabn	68,0,464,.LM92-FrameMgr_processLine
1557
 689               		.stabn	68,0,464,.LM92-FrameMgr_processLine
1558
 690               	.LM92:
1558
 690               	.LM92:
1559
 691 02e6 8C91      		ld r24,X
1559
 691 02e6 8C91      		ld r24,X
1560
 692 02e8 8130      		cpi r24,lo8(1)
1560
 692 02e8 8130      		cpi r24,lo8(1)
1561
GAS LISTING /tmp/ccf43P2i.s 			page 27
1561
GAS LISTING /tmp/cceB4D4U.s 			page 27
1562
 
1562
 
1563
 
1563
 
1564
 693 02ea A1F4      		brne .L64
1564
 693 02ea A1F4      		brne .L64
1565
 694 02ec FD01      		movw r30,r26
1565
 694 02ec FD01      		movw r30,r26
1566
 695 02ee 3197      		sbiw r30,1
1566
 695 02ee 3197      		sbiw r30,1
Line 1616... Line 1616...
1616
 745 0336 04C0      		rjmp .L71
1616
 745 0336 04C0      		rjmp .L71
1617
 746               	.L54:
1617
 746               	.L54:
1618
 747               	.LBB6:
1618
 747               	.LBB6:
1619
 748               	.LBB7:
1619
 748               	.LBB7:
1620
 749               		.stabn	68,0,757,.LM101-FrameMgr_processLine
1620
 749               		.stabn	68,0,757,.LM101-FrameMgr_processLine
1621
GAS LISTING /tmp/ccf43P2i.s 			page 28
1621
GAS LISTING /tmp/cceB4D4U.s 			page 28
1622
 
1622
 
1623
 
1623
 
1624
 750               	.LM101:
1624
 750               	.LM101:
1625
 751 0338 7830      		cpi r23,lo8(8)
1625
 751 0338 7830      		cpi r23,lo8(8)
1626
 752 033a 08F4      		brsh .+2
1626
 752 033a 08F4      		brsh .+2
Line 1676... Line 1676...
1676
 802               	/* prologue: frame size=0 */
1676
 802               	/* prologue: frame size=0 */
1677
 803               	/* prologue end (size=0) */
1677
 803               	/* prologue end (size=0) */
1678
 804               		.stabn	68,0,192,.LM103-FrameMgr_init
1678
 804               		.stabn	68,0,192,.LM103-FrameMgr_init
1679
 805               	.LM103:
1679
 805               	.LM103:
1680
 806 0372 80E4      		ldi r24,lo8(64)
1680
 806 0372 80E4      		ldi r24,lo8(64)
1681
GAS LISTING /tmp/ccf43P2i.s 			page 29
1681
GAS LISTING /tmp/cceB4D4U.s 			page 29
1682
 
1682
 
1683
 
1683
 
1684
 807 0374 E0E0      		ldi r30,lo8(trackedObjectTable)
1684
 807 0374 E0E0      		ldi r30,lo8(trackedObjectTable)
1685
 808 0376 F0E0      		ldi r31,hi8(trackedObjectTable)
1685
 808 0376 F0E0      		ldi r31,hi8(trackedObjectTable)
1686
 809 0378 1192      		st Z+,__zero_reg__
1686
 809 0378 1192      		st Z+,__zero_reg__
Line 1736... Line 1736...
1736
 859 03aa FECF      		rjmp .L85
1736
 859 03aa FECF      		rjmp .L85
1737
 860               	.L101:
1737
 860               	.L101:
1738
 861               		.stabn	68,0,310,.LM110-FrameMgr_acquireLine
1738
 861               		.stabn	68,0,310,.LM110-FrameMgr_acquireLine
1739
 862               	.LM110:
1739
 862               	.LM110:
1740
 863 03ac 829B      		sbis 48-0x20,2
1740
 863 03ac 829B      		sbis 48-0x20,2
1741
GAS LISTING /tmp/ccf43P2i.s 			page 30
1741
GAS LISTING /tmp/cceB4D4U.s 			page 30
1742
 
1742
 
1743
 
1743
 
1744
 864 03ae 07C0      		rjmp .L110
1744
 864 03ae 07C0      		rjmp .L110
1745
 865 03b0 FDCF      		rjmp .L101
1745
 865 03b0 FDCF      		rjmp .L101
1746
 866               	.L88:
1746
 866               	.L88:
Line 1796... Line 1796...
1796
 916 03ea 00D0      		rcall CamIntAsm_acquireTrackingLine
1796
 916 03ea 00D0      		rcall CamIntAsm_acquireTrackingLine
1797
 917               	.L96:
1797
 917               	.L96:
1798
 918 03ec 0895      		ret
1798
 918 03ec 0895      		ret
1799
 919               	/* epilogue: frame size=0 */
1799
 919               	/* epilogue: frame size=0 */
1800
 920               	/* epilogue: noreturn */
1800
 920               	/* epilogue: noreturn */
1801
GAS LISTING /tmp/ccf43P2i.s 			page 31
1801
GAS LISTING /tmp/cceB4D4U.s 			page 31
1802
 
1802
 
1803
 
1803
 
1804
 921               	/* epilogue end (size=0) */
1804
 921               	/* epilogue end (size=0) */
1805
 922               	/* function FrameMgr_acquireLine size 55 (55) */
1805
 922               	/* function FrameMgr_acquireLine size 55 (55) */
1806
 923               		.size	FrameMgr_acquireLine, .-FrameMgr_acquireLine
1806
 923               		.size	FrameMgr_acquireLine, .-FrameMgr_acquireLine
Line 1856... Line 1856...
1856
 973 041e 00D0      		rcall CamIntAsm_acquireTrackingLine
1856
 973 041e 00D0      		rcall CamIntAsm_acquireTrackingLine
1857
 974               	.L120:
1857
 974               	.L120:
1858
 975 0420 0895      		ret
1858
 975 0420 0895      		ret
1859
 976               	/* epilogue: frame size=0 */
1859
 976               	/* epilogue: frame size=0 */
1860
 977               	/* epilogue: noreturn */
1860
 977               	/* epilogue: noreturn */
1861
GAS LISTING /tmp/ccf43P2i.s 			page 32
1861
GAS LISTING /tmp/cceB4D4U.s 			page 32
1862
 
1862
 
1863
 
1863
 
1864
 978               	/* epilogue end (size=0) */
1864
 978               	/* epilogue end (size=0) */
1865
 979               	/* function FrameMgr_acquireFrame size 26 (26) */
1865
 979               	/* function FrameMgr_acquireFrame size 26 (26) */
1866
 980               		.size	FrameMgr_acquireFrame, .-FrameMgr_acquireFrame
1866
 980               		.size	FrameMgr_acquireFrame, .-FrameMgr_acquireFrame
Line 1916... Line 1916...
1916
 1030               	.LM132:
1916
 1030               	.LM132:
1917
 1031 0450 1092 0000 		sts lineCount,__zero_reg__
1917
 1031 0450 1092 0000 		sts lineCount,__zero_reg__
1918
 1032               		.stabn	68,0,215,.LM133-FrameMgr_dispatchEvent
1918
 1032               		.stabn	68,0,215,.LM133-FrameMgr_dispatchEvent
1919
 1033               	.LM133:
1919
 1033               	.LM133:
1920
 1034 0454 82E0      		ldi r24,lo8(2)
1920
 1034 0454 82E0      		ldi r24,lo8(2)
1921
GAS LISTING /tmp/ccf43P2i.s 			page 33
1921
GAS LISTING /tmp/cceB4D4U.s 			page 33
1922
 
1922
 
1923
 
1923
 
1924
 1035 0456 8093 0000 		sts currentState,r24
1924
 1035 0456 8093 0000 		sts currentState,r24
1925
 1036               		.stabn	68,0,217,.LM134-FrameMgr_dispatchEvent
1925
 1036               		.stabn	68,0,217,.LM134-FrameMgr_dispatchEvent
1926
 1037               	.LM134:
1926
 1037               	.LM134:
Line 1976... Line 1976...
1976
 1087               	pCurrentTrackedObjectTable:
1976
 1087               	pCurrentTrackedObjectTable:
1977
 1088 0000 0000      		.word	trackedObjectTable
1977
 1088 0000 0000      		.word	trackedObjectTable
1978
 1089               		.lcomm numCurrTrackedObjects,1
1978
 1089               		.lcomm numCurrTrackedObjects,1
1979
 1090               		.lcomm currentState,1
1979
 1090               		.lcomm currentState,1
1980
 1091               		.lcomm lineCount,1
1980
 1091               		.lcomm lineCount,1
1981
GAS LISTING /tmp/ccf43P2i.s 			page 34
1981
GAS LISTING /tmp/cceB4D4U.s 			page 34
1982
 
1982
 
1983
 
1983
 
1984
 1092               		.lcomm trackedLineCount,1
1984
 1092               		.lcomm trackedLineCount,1
1985
 1093               		.lcomm numPrevTrackedObjects,1
1985
 1093               		.lcomm numPrevTrackedObjects,1
1986
 1094               		.lcomm trackedObjectTable,64
1986
 1094               		.lcomm trackedObjectTable,64
Line 1993... Line 1993...
1993
 1101               		.stabs	"trackedLineCount:S(0,11)",38,0,168,trackedLineCount
1993
 1101               		.stabs	"trackedLineCount:S(0,11)",38,0,168,trackedLineCount
1994
 1102               		.text
1994
 1102               		.text
1995
 1103               		.stabs	"",100,0,0,.Letext0
1995
 1103               		.stabs	"",100,0,0,.Letext0
1996
 1104               	.Letext0:
1996
 1104               	.Letext0:
1997
 1105               	/* File "FrameMgr.c": code  580 = 0x0244 ( 513), prologues  33, epilogues  34 */
1997
 1105               	/* File "FrameMgr.c": code  580 = 0x0244 ( 513), prologues  33, epilogues  34 */
1998
GAS LISTING /tmp/ccf43P2i.s 			page 35
1998
GAS LISTING /tmp/cceB4D4U.s 			page 35
1999
 
1999
 
2000
 
2000
 
2001
DEFINED SYMBOLS
2001
DEFINED SYMBOLS
2002
                            *ABS*:00000000 FrameMgr.c
2002
                            *ABS*:00000000 FrameMgr.c
2003
     /tmp/ccf43P2i.s:3      *ABS*:0000003f __SREG__
2003
     /tmp/cceB4D4U.s:3      *ABS*:0000003f __SREG__
2004
     /tmp/ccf43P2i.s:4      *ABS*:0000003e __SP_H__
2004
     /tmp/cceB4D4U.s:4      *ABS*:0000003e __SP_H__
2005
     /tmp/ccf43P2i.s:5      *ABS*:0000003d __SP_L__
2005
     /tmp/cceB4D4U.s:5      *ABS*:0000003d __SP_L__
2006
     /tmp/ccf43P2i.s:6      *ABS*:00000000 __tmp_reg__
2006
     /tmp/cceB4D4U.s:6      *ABS*:00000000 __tmp_reg__
2007
     /tmp/ccf43P2i.s:7      *ABS*:00000001 __zero_reg__
2007
     /tmp/cceB4D4U.s:7      *ABS*:00000001 __zero_reg__
2008
     /tmp/ccf43P2i.s:91     .text:00000000 FrameMgr_processFrame
2008
     /tmp/cceB4D4U.s:91     .text:00000000 FrameMgr_processFrame
2009
     /tmp/ccf43P2i.s:1087   .data:00000000 pCurrentTrackedObjectTable
2009
     /tmp/cceB4D4U.s:1087   .data:00000000 pCurrentTrackedObjectTable
2010
                             .bss:00000000 numCurrTrackedObjects
2010
                             .bss:00000000 numCurrTrackedObjects
2011
     /tmp/ccf43P2i.s:270    .text:000000b2 FrameMgr_processLine
2011
     /tmp/cceB4D4U.s:270    .text:000000b2 FrameMgr_processLine
2012
     /tmp/ccf43P2i.s:1089   .bss:00000001 currentState
2012
     /tmp/cceB4D4U.s:1089   .bss:00000001 currentState
2013
     /tmp/ccf43P2i.s:1090   .bss:00000002 lineCount
2013
     /tmp/cceB4D4U.s:1090   .bss:00000002 lineCount
2014
     /tmp/ccf43P2i.s:1091   .bss:00000003 trackedLineCount
2014
     /tmp/cceB4D4U.s:1091   .bss:00000003 trackedLineCount
2015
     /tmp/ccf43P2i.s:798    .text:00000372 FrameMgr_init
2015
     /tmp/cceB4D4U.s:798    .text:00000372 FrameMgr_init
2016
     /tmp/ccf43P2i.s:1093   .bss:00000005 trackedObjectTable
2016
     /tmp/cceB4D4U.s:1093   .bss:00000005 trackedObjectTable
2017
     /tmp/ccf43P2i.s:823    .text:00000380 FrameMgr_acquireLine
2017
     /tmp/cceB4D4U.s:823    .text:00000380 FrameMgr_acquireLine
2018
     /tmp/ccf43P2i.s:933    .text:000003ee FrameMgr_acquireFrame
2018
     /tmp/cceB4D4U.s:933    .text:000003ee FrameMgr_acquireFrame
2019
     /tmp/ccf43P2i.s:1092   .bss:00000004 numPrevTrackedObjects
2019
     /tmp/cceB4D4U.s:1092   .bss:00000004 numPrevTrackedObjects
2020
     /tmp/ccf43P2i.s:988    .text:00000422 FrameMgr_dispatchEvent
2020
     /tmp/cceB4D4U.s:988    .text:00000422 FrameMgr_dispatchEvent
2021
 
2021
 
2022
UNDEFINED SYMBOLS
2022
UNDEFINED SYMBOLS
2023
__do_copy_data
2023
__do_copy_data
2024
__do_clear_bss
2024
__do_clear_bss
2025
UIMgr_writeTxFifo
2025
UIMgr_writeTxFifo