Project Name: InterFrame_processing_561

Project Type:
	ADSP-BF533 [ ]
	ADSP-BF537 [ ]
	ADSP-BF561 [X]
	
Hardware Used:
	ADV7183 - Video Decoder (Video Input)
	ADV7179 - Video Encoder (Video Output)  
	
System Services Components Used:
	DMA Manager                         [X]   Deferred Callback Manager   [ ]
	Interrupt Manager                   [X]   Timer Module                [ ]
	Power Management Module             [X]   Flag Module                 [ ]
	External Bus Interface Unit Module  [X]   Port Module                 [ ]
	
Template Overview:
	This template moves image data on a frame basis. Current_frame and past frame (reference_frame) is mapped to 	SDRAM memory. Current_frame and reference_frame are then transferred from the external memory to L2 memory 		sequentially on a slice-by-slice basis. The current_frame and reference_frame are then compared for any 		motion between the two frames. Macro-blocks detected for any motion changes are preserved and copied to 		external memory in an output buffer. Any motion is then displayed on the video output device.
	
	The PPI driver uses the mode:
	ADI_DEV_MODE_CHAINED_LOOPBACK, which causes it to repeatedly use the same three
	buffers over and over again, for input and output.

	
	The process goes until any push button is pressed, at which point the program is 
	terminated.
			
	Upon any error in the program, all LEDs are lit up.

	
File  Structure:
	The structure of the example is as follows:

	"./InterFrame_processing_561.dpg" -  Project group file (groups all projects together)

	"./InterFrame_processing_561.dpj" -  Main project file (links sub-project libraries together)
		"./dummy.c" -  dummy source file to make linker happy

	"./corea.dpj" - Core A Sub-project file. Contains the following files.
		"./CoreA.c",
		"./Buffer.c",
		"./sys_init.c",
		"./buffer_init.c",
		"motion_detect.c",
		"../../../../utilities/ezkitutilities.c",
		"./buffer_init.h",
		"./Buffers.h",
		"./core.h",	
		"./../../../../utilities/ezkitutilities.h",
		

	"./coreb.dpj" - Core B Sub-project file
		"./CoreB.c" -  Core B source file
		"../../../../utilities/ezkitutilities.c"  - EZ-Kit utilities source file for Blackfin processors
		"../../../../utilities/ezkitutilities.h"  - EZ-Kit utilities include file for Blackfin processors	


	"./sml2.dpj" - level 2 shared memory Sub-project file
		"./Shared.c", 
		"../../../../utilities/video.c"

	"./sml3.dpj" - level 3 shared memory Sub-project file
		"./Frame.c"

	"InterFrame_processing_561.ldf" 
		- linker description file for ADSP-BF561 dual core system services examples
 


System Configuration:
	Jumpers: SW2 > 1:OFF, 2:OFF, 3:OFF, 4:OFF, 5:OFF, 6:ON

	External connections:
		Connect a monitor to the EZ-Kit video-out connector and a video source 
		(such as DVD player) to the EZ-Kit video-in. The video connectors are the bank of 6 
		RCA-style jacks nearest the serial cable connector on the EZ-Kit labeled as J6.
		
         J6 -----------------------------------------------------
            |          O          O < Video Out  O              |	        	
            |          O          O              O < Video In   |
            -----------------------------------------------------

Getting Started:

	1)	Load Project group file "InterFrame_processing_561.dpg".IDDE will prompt you to regenerate the startup code/LDF
                file.Select NO.

		Look at Project->Project Dependencies.  The dependencies for the main project are set such 
		that doing a "Project->Rebuild Projectrebuild all" of the main project will cause all the 
		sub-projects to be 	rebuilt and linked together to create the executables: p0.dxe and p1.dxe 
		and shared memory files: sml2.sm, and sml3.sm. A library is created for each of the four 
		sections of memory: core A L1, core B L1, L2 Shared memory and L3 shared memory. The four 
		libraries are linked together by building the main project: ".dpj".
	
	
	2)	Build "InterFrame_processing_561" Project by selecting "Rebuild Project"
	3)	Start both cores by selecting "Multiprocessor Run" icon or by pressing (Ctrl-F5)
	4)	Start video in src and observe video output on monitor.
	5)	When finished, Select "Debug->Multiprocessor->Halt" to stop the program.	
