目前小弟手里有一块6467的评估板,我的开发环境是CCSV5,用的仿真器是SEED-XDS560V2,然后在开始建立工程的时候,我的编译出现了问题,然后我就进行修改,因为DM6467是一个ARM核和一个DSP核,我建立的是DSP的程序,因此在线调试的时候是在DSP核进行,将程序load进DSP核时候,CMD文件用的是TI官网6467的例程的那个LINKER的CMD,但是现在程序死在了tvp7002_setuo(mode),这句话,然后这里面死在了_I2C_tx_ready()这句话了。不知道是什么原因,希望得到帮助
Chris Meng:
你好,
1. DM6467上DSP是由ARM来初始化的,ARM是系统的主控。
2. 外设一般都是由ARM来控制的,测试代码应该都是基于ARM的。
Shuxin Zhao:
回复 Chris Meng:
感谢您的回复,我现在是建立的ARM端的工程,初始化的东西也放在了ARM端,并且加入GEL初始化了。然后我设计的思路是视频分量由R,G,B做输入,经过EVM评估板的THS7353进行滤波,然后在经过TVP7002将它转成YPbPr分量输入到VPIF。从7002出来的标准是4:2:2还是4:2:0啊?而且我发现7002还有7353都是用I2C来控制得。我的程序大体如下:
void main( void ){ EVMDM6467_init( ); memset((unsigned char*)(0x88000000),0,128*1024*1024); Int16 errors = 0; Int16 mode = MODE_HDTV_720P; while(1) { /* Enable TVP7002 */ errors |= enable_tvp7002( );/*7002输出时钟会给,errors用来查各种状态的*/ /* Input Filter */ errors |= ths7353_setup( mode );/*可编程视频输入过滤I2C控制*/ /* Input Decoder */ errors |= tvp7002_setup( mode );/*输入是RGB,输出是YC分量*/ /* Input Video Capture */ errors |= vpif_hd_capture(mode); }}其他的程序都是EVM评估板带的。并且都编译通过了。然后我的输入源是视频,打算一直采集信息放在DDR里面。例程是把视频数据存放在0x88000000的地址处。但是我却运行程序看到0x88000000后面没有数据,还是死在了I2C ready这个语句上。就是在evm_dm6467i2c.c的这个语句:static Int16 _I2C_tx_ready( Int32 timeout ),不知道是怎么回事,还希望高人指点
Chris Meng:
回复 Shuxin Zhao:
你好,
你使用的是spectrum digital的DM6467 EVM么?如果是,EVM自带的例子就有video_hd_playback_720p,就是从TVP7002采集然后显示。
Shuxin Zhao:
回复 Chris Meng:
我用的就是EVM自带的例程,跑的那个720back,但是现在死在了那个I2C的位置,不知道怎么回事
Chris Meng:
回复 Shuxin Zhao:
你好,
包里面是否有预编译的out文件,你能尝试一下么?
Shuxin Zhao:
回复 Chris Meng:
我跑的就是那个例程,但是好像直接load那个out文件显示的是没有找到main.c
Chris Meng:
回复 Shuxin Zhao:
你好,
main文件可以自己locate的。请参考置顶贴http://www.deyisupport.com/question_answer/dsp_arm/davinci_digital_media_processors/f/39/t/58216.aspx。