📄 cameratest.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 + -