- 论坛徽章:
- 0
|
本帖最后由 x5miao 于 2011-10-31 00:20 编辑
硬件:DM642
CCSv3.3
DSP/BIOS:5.31.02 (10-05-2005)
DDK:1.1.0(07-01-2003)
CSL:08-02-2004
实例程序是ddk/examples/video/driver/hd.pjt,这个程序的功能就是从VP0口读入BT.656视频数据然后用VP2口发送出去。由于项目需要,我采集的是BT.1120 1080p/30fps的数据。硬件上通过VP0口的VD[9:2],VD[19:12]16位数据线输入并行化了的Y/CBCR信号,时钟通过VP0CLK1输入。
我将实例程序中的DM642VPORTCAP_params赋值为{cmode=VPORTCAP_MODE_YCBCR_8BIT,fldOp=VPORT_FLDOP_FLD1,...,fldXstr1=0,fldYStr=1,0,1,1919,1080,1919,1080,240,3,128,VPORT_FLDS_SEPARATED,1,...,irqId=8}省略号的都是原来程序的默认值,没改。但是这样修改了参数之后就无法启动EDMA中断来采集数据?请问我有哪里设置的不对吗?
通过查看vportcap.c的源代码我觉得TI的这个库文件似乎有bug。他在操作VP0CTL这些寄存器的时候似乎并没有往设置设备控制寄存器PERCFG的相应位来使能相应端口,结果后面所有对相应寄存器的操作都是无效的,i根本就不能往VP0相关的寄存器里面写任何东西。但改了这个bug以后似乎程序还是没能跑起来,请问有人以前有遇到过类似的问题吗?
PS:实验室一个师姐说他以前做DSP项目的时候也遇到很多各种莫名其妙的问题,后来发现一般都是TI的库本身就有问题。我也看到很多人写DSP程序的时候都是从中断向量表开始都是自己写的,根本不用TI的那个DSP/BIOS,TI的程序是不是真的很不靠谱啊? |
|