情况是这样的,我参照DM648的评估板自己设计了一块图像处理板,视频采集部分出现了一些问题。调试之后发现可能是VP口的PINMUX没有设置好,我是利用官方的gel文件对PLL、DDR2、PSC、PINMUX进行设置的,但是仔细看了代码和gel output才发现,有一些代码没有执行。 gel文件中对VP口的PINMUX设置代码是这样的。实际执行时if( BOOTCFG & 0x40000)的条件是不满足的,导致了后面的代码没有执行,PINMUX没有设置好,我查看了DM648的BOOTCFG发现第18位是没有功能的,在EVM板和芯片的手册里也找不到关于DVR mode的解释,所以我想请问一下if( BOOTCFG & 0x40000)不满足是正常现象么?
hotmenu Set_Muxes_5VideoPorts_SDCapt()
{
unsigned int iResult=0; GEL_TextOut( "Set EVM muxes for 5 video ports SD capture... \n" ); // Only in DVR mode
if( BOOTCFG & 0x40000)
{
if (Write_I2CECP_Cfg(MSP430,2,VPORTCTL,0x44))
{
// Successfull
iResult=1;
} // Set key value to enable pinmux changes
// Do not wait long because keylock effective only 10000 cycles
KEY = KEYUNLOCK;
Wait_Soft(1); // Perform DSP pin muxing
PINMUX0 &= ~MUX_VP0_MASK;
PINMUX0 |= MUX_VP0_EN; PINMUX0 &= ~MUX_VP1_MASK;
PINMUX0 |= MUX_VP1_EN; PINMUX0 &= ~MUX_VP2_MASK;
PINMUX0 |= MUX_VP2_EN; PINMUX0 &= ~MUX_VP3_4_MASK;
PINMUX0 |= MUX_VP3_4_EN;
}
else
{
GEL_TextOut( "Not available in non DVR mode. \n" );
iResult=1;
} GEL_TextOut( "Set EVM muxes for 5 video ports SD capture... Done.\n" ); return(iResult);
}
|