|
/*****************************************************************************************/ // // Name: BF533 EZ-KIT video ITU-656 receive mode (8bit) for the Omnivision chip OV6630 // /*****************************************************************************************
(C) Copyright 2003 - Analog Devices, Inc. All rights reserved.
File Name: Main.asm
Date Modified: 08/12/05 TL Rev 1.0
Software: VisualDSP++4.0, Assembler 2.6.7.5, Linker 3.5.2.2
Hardware: BF533 EZ-KIT Board (rev 1.7), Blackfin EZ-Extender (rev 1.2)
Chip: ADSP-BF533 REV 0.4
Special Connections: Be aware that all the EZ-KIT LITE switches are off! Set the jumpers on the extender card as follows: JP1: Not populated JP2: 1-2 JP3: 3-5; 4-6 JP4: 7-8 JP5: 1-2 JP6: 3-5; 4-6 JP7: Not populated JP8: Not populated JP9: 3-5; 4-6 JP10: Not populated For connection of Omnivision sensor: Connect the EXT-KIT "Extender Card" to the ADSP-BF533 EZ-KIT LITE Connect also the Omnivision camera OV6630 or simular to the dedicated header. For connection of ADV7183B from extender card please populate: Make sure that no image sensor is connected to the board! JP3: 19-20 ******************************************************************************************/
#include <defBF533.h> /*****************************************************************************************/ // Program Variable Section /*****************************************************************************************/ // place data in the section L1_data_a shown in the *.ldf .section L1_data_a;
.var Recive_DMA_In_Progress = 0; /*****************************************************************************************/ // Program Define Section /*****************************************************************************************/ #define Omnivion_via_extender_card //#define ADV7183A_via_EZ-KIT //#define ADV7183B_via_extender_card
/*****************************************************************************************/ // Global and extern subroutines /*****************************************************************************************/ .global _main; .global Recive_DMA_In_Progress; .extern BF533_EZ_KIT_flash_setup; .extern BF533_EZ_KIT_Omnivision_reset; .extern Enable_ADV7183; .extern BF533_EZ_KIT_SDRAM_Config; .extern BF533_EZ_KIT_ISR_Config; .extern BF533_EZ_KIT_PPI_Input_Config; .extern BF533_EZ_KIT_DMA_Receive_Config; .extern Config_of_Omnivision; .extern Config_of_ADV7183; .extern Read_of_ADV7183_Config; .extern SCCB_In_Progress; .extern SCCB_Interface; .extern SCCB_DataOut; /*****************************************************************************************/ // Main Program /*****************************************************************************************/ // place code in the section L1_code shown in the *.ldf .section L1_code; _main:
//some settings must be done to link the signals over the EZ-KIT to the EZ-Extender CALL BF533_EZ_KIT_flash_setup; //setup the flashs GPIO pins #ifdef ADV7183A_via_EZ-KIT CALL Enable_ADV7183; // Enables the decoder output (OE) on the EZ-KIT CALL Config_of_ADV7183; // Setup for all the SCCB registers #endif
#ifdef ADV7183B_via_extender_card CALL Config_of_ADV7183; // Setup for all the SCCB registers #endif #ifdef Omnivion_via_extender_card // Please be aware that the omnivision sensor cannot be read // via I2C because the senor is not 100% I2C compliant CALL Config_of_Omnivision; // Setup for all the SCCB registers #endif
CALL SCCB_Interface; // Start SCCB Communication
// Wait while the I2C com is in progress I2C_LOOP1: NOP; p0.h = SCCB_In_Progress; // takes care that the next transfer will not start p0.l = SCCB_In_Progress; // before the last one ends r0 = [p0]; cc = r0 == 1; if cc jump I2C_LOOP1;
#ifdef ADV7183A_via_EZ-KIT CALL Enable_ADV7183; // Enable the decoder output (OE) CALL Read_of_ADV7183_Config; // Setup for all the SCCB registers CALL SCCB_Interface; // Start SCCB Communication #endif
#ifdef ADV7183B_via_extender_card CALL Read_of_ADV7183_Config; // Setup for all the SCCB registers CALL SCCB_Interface; // Start SCCB Communication #endif
// Wait while the I2C com is in progress I2C_LOOP2: NOP; p0.h = SCCB_In_Progress; // takes care that the next transfer will not start p0.l = SCCB_In_Progress; // before the last one ends r0 = [p0]; cc = r0 == 1; if cc jump I2C_LOOP2;
p0.l = SCCB_DataOut; p0.h = SCCB_DataOut; r0 = [p0];
CALL BF533_EZ_KIT_ISR_Config; // Configure the Interrupt service routine for DMA interrupt // The SDRAM Config Routine can just be taken if the option "Use XML Values" // at Settings/Target Options is de-tagged. // CALL BF533_EZ_KIT_SDRAM_Config;
// The SDRAM will be filled with zeros for test purposes. p2.h=0x27; p2.l = 0xDF92; p1 = 0; R1 = 0; LSETUP(SDRAM_Fill_Zero_Start, SDRAM_Fill_Zero_End) LC0 = P2; SDRAM_Fill_Zero_Start: SDRAM_Fill_Zero_End: [p1++] = R1;
//Configure DMA. CALL BF533_EZ_KIT_DMA_Receive_Config; //Configure and start the PPI finally CALL BF533_EZ_KIT_PPI_Input_Config;
idle;
END_TEST: NOP; NOP; JUMP END_TEST;
_main.END:
//本代码Blackfin示例
|