⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cameratest.c

📁 有关于USB的一些主机端驱动
💻 C
字号:
/*******************************************************************************

            TEXAS INSTRUMENTS INCORPORATED PROPRIETARY INFORMATION           
                                                                             
   Property of Texas Instruments 
   For  Unrestricted  Internal  Use  Only 
   Unauthorized reproduction and/or distribution is strictly prohibited.  
   This product is protected under copyright law and trade secret law 
   as an unpublished work.  
   Created 2001, (C) Copyright 2001 Texas Instruments.  All rights reserved.

   Filename       	: main_a9.c

   Description    	:  

   Project        	: Helen

   Author         	: Tohru Murokawa muro@ti.com
*/ 


#include "omap30.h"
#include "omap1510.h"
#include "stdio.h"
#include "camera_dspcode.h"
//============================== TEST DESCRIPTION ===============================
// ARM9 Common Initialization :
//============================= SPY RESULT DESCRIPTION ==========================
// EXPECTED SPY RESULT
//----------------------
//=============================== END OF DESCRIPTION ============================

#define HELLO_DSP   0x5555
#ifndef CAMERA_INT
	#define CAMERA_INT 1
#endif
//Local include


UWORD8 camera_counter_mb1_int;

volatile short buffer_writable = 3;
volatile short buffer_writen  = 0;

extern void InitCamera(void);
extern void CaptureImage(void);
extern void CAMERA_Service(void);


extern unsigned short flgReady;
unsigned short cameratestflag = 0;
extern void clearallinterrupt(void);
//------------------------------------------------------------------------------------
void camera_codectest(void)
{
   unsigned short* sdram_ptr;// buf1 buf2 : 32k buffer
   unsigned short *lcdbuffer;
   int i,j;
   unsigned char *p0, *p1;

   clearallinterrupt();
   cameratestflag = 1;

   flgReady = 0x0000; 
   camera_counter_mb1_int = 0;
//   CLKRST_DriveDspReset(LOW_LEVEL);
//   CLKRST_DriveInterfaceDspReset(LOW_LEVEL);
//   unsigned long temp;

//1509mode
  *(volatile unsigned long *)0xFFFE100C = 0x0000;

  BOOT_SystemInit();

  sdram_ptr = (unsigned short*)(0x10200000);
  for (i=0;i<((sizeof(camera_dsp_code))/(sizeof(short))); i++) {
 	*sdram_ptr = camera_dsp_code[i];
 	sdram_ptr++;
  }



   INTH2_InitLevel(DSP_MAILBOX1_INT,
             INTH_IRQ,                             // InterruptKind Irq or Fiq
             DSP_MAILBOX1_INT,                     // priority
             INTH_LOW_LEVEL_SENSITIVE);            // type level or edge

   INTH2_EnableOneIT(DSP_MAILBOX1_INT, INTH_IRQ);        


   InitDSPMMU();
	 /* Set DSP MMU control reg */

   TCIF_EnableDSPEndianismTranslation((BOOL)1,(BOOL)0);// add by xue zhen
   
    *((unsigned long*)0xFFFED208) |= 0x20;
   CLKRST_ToggleDspPeripheralResetPin(HIGH_LEVEL);
//		*((unsigned long*)0xE1008014) |= 1; 
		
		// Enable Peripheral Clock
   CLKRST_SetDspPeripheralClockEnable(DSP_PER_CK, ENABLE);
   CLKRST_SetDspPeripheralClockEnable(DSP_XORPC_CK, ENABLE); 

//After this function 0xfffece08 = 0x48;
//    *((long*)0xFFFECe08) = 0x48;
   *((long*)0xFFFECe08) = 0x140;
   InitLCD_STN12BPP();	 


//after this function 0xfffece10 = 0x06;
   BOOT_DSP();

// for Codec TEST copy from xue zhen =========== // for Codec TEST copy from xue zhen
 CLKRST_SetDspPeripheralClockEnable(DSP_ALL_CK, ENABLE); // add by xz				
	
{
	UWORD16 gpio_reg;
	gpio_reg=*((volatile UWORD16 *)0xFFFCE008);// 
	*((volatile UWORD16 *)0xFFFCE008) = gpio_reg & 0xfeBf;// set GPIO6,8 output pin

	gpio_reg=*((volatile UWORD16 *)0xE101E008);// pin direction reg 
	*((volatile UWORD16 *)0xE101E008) = gpio_reg & 0xfeBf;// set GPIO6,8 output pin

	gpio_reg=*((volatile UWORD16 *)0xFFFCE018);// pin direction reg 
	*((volatile UWORD16 *)0xFFFCE018) = gpio_reg & 0xfeBf;// set GPIO6,8 output pin	
}
// for Codec TEST copy from xue zhen============// for Codec TEST copy from xue zhen  


   lcdbuffer = (unsigned short*)0x10300020;
   for(i = 0; i < 320; i++)
	{
		for(j = 0; j < 240; j++)
		{
			if(i%2)
				*lcdbuffer++ = 0;
			else
				*lcdbuffer++ = 0xFFFF;
				
		}
	}

    /* Set TC endianism reg */
    *((long*)0xFFFECC34) = 1;

    printf("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! \n");
    printf("Pls Open dsp55x project in dsp55x directory\n");
    printf("Waiting ...\n");
    
  /*  
    p0 = (unsigned char*)0x10600000;
    p1 = (unsigned char*)0x10640000;
    for(i=0;i<120;i++)
    {
    	for(j=0;j<160;j++)
    	{
    		if(i&1) //line 1, 3, 5...
    		{
    			if(j&1)  //col 1, 3, 5...
    			{
		    		*p0++ = 0x00;
		    		*p1++ = 0x00;
    			}
    			else     //col 0, 2, 4...
    			{
		    		*p0++ = 0x00;
		    		*p1++ = 0x00;
    			}
    		}
    		else    //line 0, 2, 4...
    		{
    			if(j&1)  //col 1, 3, 5...
    			{
		    		*p0++ = 0x00;
		    		*p1++ = 0x00;
    			}
    			else     //col 0, 2, 4...
    			{
		    		*p0++ = 0xF0;
		    		*p1++ = 0xF0;
    			}
    		}
    	}
    }
    
*/ 
    while(!camera_counter_mb1_int);
//    while(1);

    InitCamera(); 
    CaptureImage();
    *(volatile unsigned long *)0xFFFE100C = 0x0000eaef;
    cameratestflag = 0;
}


void Camera_mbx_Service()
{
       unsigned short mbx_cmd, mbx_data;
	camera_counter_mb1_int = 1;          
	Mailbox_Read(DSP2ARM1, &mbx_data, &mbx_cmd);
	buffer_writable |= mbx_data;
	
//	Mailbox_Write(ARM2DSP1, buffer_writable, 0);
	
	return;
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -