Project Name: MB_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                 [ ]
	
Example Overview:
	This example moves image data on a macro-block basis. A slice of video (set of lines) of a video is 			directly moved from PPI0 to L2 data memory. Macro-blocks are then transferred from L2 to L1 memory buffers. 		An edge detection algorithm is operated on the L1 macro-blocks and the processed buffer is sent to a frame 		buffer in the L3 memory. PPI1 outputs the edge detected image to a video outout 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:

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

	"./MB_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_example.c",
		"./sobel_fast.asm",
		"../../../../utilities/ezkitutilities.c",
		"../../../../utilities/video.c",
		"./buffer_init.h",
		"./Buffers.h",
		"./CoreA.h",	
		"./../../../../utilities/ezkitutilities.h",
		"./../../../../utilities/video.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
		"./L2.c" -  shared variable ButtonPressed

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

	"MB_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 "MB_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 "MB_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.	
