我对 VISION SDK 非常陌生。
如何通过 CCS 在 M4内核中运行 VPS 应用程序? (SDK 文件夹路径- ti_componels/drivers/bsp_01_07_01_17/examples/vps/。)
喜欢的台阶是什么?
请与我分享相关文档。
谢谢
Gokul
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我对 VISION SDK 非常陌生。
如何通过 CCS 在 M4内核中运行 VPS 应用程序? (SDK 文件夹路径- ti_componels/drivers/bsp_01_07_01_17/examples/vps/。)
喜欢的台阶是什么?
请与我分享相关文档。
谢谢
Gokul
谢谢 Rishabh。
我们能够使用 gmake -s examples platform=tda2xx-evm 进行编译。
有时,我 会得到以下错误。 同时连接到目标。
连接到目标时出错:
(错误-230 @ 0x0)
测得的 JTAG IR 和 DR 扫描路径长度无效。
这表示链路延迟或扫描路径中存在错误。
(仿真包6.0.576.0)
原因可能是什么? 如何避免这种情况?
谢谢、
Gokul
您好、Rishabh、
请告诉我更新软件包的版本? 我的 CCS 版本
Code Composer Studio
版本:7.1.0.00015
运行 Display 应用程序时出现以下错误
无法从 SD 卡加载缓冲区。
正在等待1分钟从脚本控制台加载缓冲区加载后,请在加载缓冲区后按任意键(在 UART 控制台中)
loadRaw (0x80e00000、0、"C:\\display_yuv422_prog_packed_1920_1020.tigf"、32、false);
将4个大小为1920x1080的 BGR24_888视频帧加载到位置:0x81dd2000
如何提供要缓冲的输入文件?
谢谢
Gokul
您好、Rishabh、
我们有一个定制的 dra7xx- jacinto6板。 。
我们正在尝试在 电路板上运行 VISION SDK 显示应用。
我们希望在 LCD 中显示图像。
我们已将 Vout3从 DSS 连接到 LCD。
显示启动涉及哪些步骤?
我们想知道从应用程序级别完成的配置更改。
要配置的 DispApp_TestParams 是什么?
根据源代码、我知道 需要引脚多路复用和 LCD 面板配置、
源参考 :bsp_01_07_01_17\bsp_01_07_01_17\examples\vps\display\displayDss\src
/**
* \brief 显示应用程序测试参数。
* 测试用例的执行基于此结构的值
*
typedef 结构
{
特性 *testDescStr;
/**<测试说明。 *
uint32. numEnc;
/**<要运行的视频编码器数。 *
uint32. encDrvId[VPS_DISP_ENC_INST_MAX];
/**<要为每个句柄打开的视频编码器驱动程序 ID。 *
uint32. vencpId[VPS_DISP_ENC_INST_MAX];
/**<每个句柄的 Venc ID。 *
Fvid2_Standard 标准[VPS_DISP_ENC_INST_MAX];
/**<视频编码器视频标准。 *
uint32. isSdVenc;
/**< SD VENC 为真、其他为假。 仅对 Tda3xx 有效。 *
uint32. isRtParamUpdateTest;
/**< RT 参数更新测试用例为 True,其他测试用例为 false。 *
uint32. NumHandles;
/**<要运行的显示句柄数。 *
uint32. instId[VPS_DISP_INST_MAX];
/**<要为每个句柄打开的实例 ID。 *
Fvid2_DataFormat inDataFmt[VPS_DISP_INST_MAX];
/**< YUV 或 RGB 数据格式。 *
uint32. inWidth[VPS_DISP_INST_MAX];
/**<以像素为单位的输入缓冲区分辨率宽度。 *
uint32. inHeight[VPS_DISP_INST_MAX];
/**<输入缓冲区分辨率高度(以行为单位)。 *
uint32. posx[VPS_DISP_INST_MAX];
/**<输入缓冲器位置 x。*/
uint32. posy[VPS_DISP_INST_MAX];
/**<输入缓冲器位置 y。*/
uint32. inScanFormat[VPS_DISP_INST_MAX];
/**<采用扫描格式。 *
uint32. isFieldMerge [VPS_DISP_INST_MAX];
/**<字段合并或字段分隔。 *
Int32. runCount;
/**<要显示的帧数。 *
BSP_BoardMode boardMode;
/**<板模式参数、如24位、8位。 *
uint32. 董事会 ID;
/**<运行测试用例的有效电路板列表。 *
}DispApp_TestParams;
谢谢
Gokul
您好、Brijesh、
1我们能够通过 BSP_platformSetPllFreq 设置像素时钟。 如下所示。
返回值没有错误。
vPllCfg.videoPll = BSP_platform_pll_VIDEO1;
vPllCfg.PixelClk = 27000 * 4;//以 KHz 为单位*
RetVal = BSP_platformSetPllFreq (_vPllCfg);
2 但配置 venc-clk 源失败。
如何设置 venc 时钟源?
vencClkCfg.outputVenc = bsp_platform_venC_LCD3;
vencClkCfg.vencClkSrc = bsp_platform_clkSRC_DPLL_VIDEO1_CLKOUT1;
RetVal = BSP_platformSetVencClkSrc (vencClkCfg);
if (RetVal!= FVID2_SOK)
{
GT_0TRACE (BspAppTrace、GT_ERR、
app_name ":设置 MS Venc 时钟源失败!!!\n");
}
此外、我们还有输入文件 display_yuv422_prog_packed_1920_1020.tigf 和 display_gbr888_prog_packed_1920_1020.tigf。 用于测试、将加载到存储器中以供显示。
主机中是否有任何播放器可查看此文件的实际内容?
谢谢、此致、
Gokul
您好、Brijesh、
是的,我们使用 vencDivisor 作为4。
配置 VENC 时钟源时可能会出现什么问题?
int32 M4_PLL_config (DispApp_Obj * appObj)
{
bsp_PlatformSetPllFreq vPllCfg;
BSP_PlatformVencSrc vencClkCfg;
Int32 RetVal = FVID2_SOK;
vPllCfg.videoPll = BSP_platform_pll_VIDEO1;
vPllCfg.PixelClk = 27000 * 4;//以 KHz 为单位*
//vPllCfg.PixelClk = 27000;//以 KHz 为单位*/
RetVal = BSP_platformSetPllFreq (_vPllCfg);
if (RetVal!= FVID2_SOK)
{
GT_0TRACE (BspAppTrace、GT_ERR、
app_name ":配置 MS PLL 失败!!!\n");
}
vencClkCfg.outputVenc = bsp_platform_venC_LCD3;
vencClkCfg.vencClkSrc = bsp_platform_clkSRC_DPLL_VIDEO1_CLKOUT1;
RetVal = BSP_platformSetVencClkSrc (vencClkCfg);
if (RetVal!= FVID2_SOK)
{
GT_0TRACE (BspAppTrace、GT_ERR、
app_name ":设置 MS Venc 时钟源失败!!!\n");
}
/*设置液晶屏 PCD 除数*/
VPS_DctrlVencDivisorInfo vencDivisors;
vencDivisors.vencId = VPS_DCTRL_DSS_VENC_LCD3;
vencDivisors.visorLCD = 1;
vencDivisors.divisorPCD = 4;
RetVal = Fvid2_control (appObj->dctrlHandle、IOCTL_VPS_DCTRL_SET_VENC_PCLK_DIFFINS、
vencDivisors、NULL);
if (RetVal!= FVID2_SOK)
{
GT_0TRACE (BspAppTrace、GT_ERR、
APP_NAME ":设置 MS PCLK 分频器失败!!!\n");
}
}
谢谢、此致
Gokul
你好、Gokul、
好的、它之所以失败、是因为、
对于 LCD3输出、支持的时钟源为
bsp_platform_clkSRC_DPLL_VIDEO1_CLKOUT3
bsp_platform_clkSRC_DPLL_HDMI
bsp_platform_clkSRC_DPLL_VIDEO2_CLKOUT1
bsp_platform_clkSRC_DSS_GFCLK
因此、您需要为 LCD3选择这些时钟源之一
此致、
Brijesh
您好、Brijesh、
我们已将时钟源更改为 VIDEO1_CLKOUT3、设置 venc-clk 源时没有错误。
我们能够使用图像 display_yuv422_prog_packed_1920_1020.tigf 在 Display 中获取一些数据、但设置 PLL 时仍然存在错误。
bsp_platformSetPllFreq (&vPllCfg); 此错误的原因可能是什么?
我们能够获取实际图像左上角的数据(display_yuv422_prog_packed_1920_1020.tigf)。
我们的 LCD 分辨率800 * 480。 是否可以为此分辨率加载图像以获得精确的输出?
为此,VPS-DISPLAY-DSS 应用程序涉及哪些更改?
根据我的理解、我必须更改 gDispDssLoadBufCfg 参数。 正确吗? 间距值是多少?
我尝试了 w-800 h -480和 pitch 1600。 但我没有在显示屏中获得预期的输出数据。
静态常量 DispApp_LoadBufCfg gDispDssLoadBufCfg[]=
{
/*宽度、高度、间距、dataFmt、scanFmt、 FieldsMerged、numBuffers */
{1920u、1080u、3840u、FVID2_DF_YUV422I_YUYV、FVID2_SF_Progressive、
错误、
disp_app_MAX_FRAes_per_Handle}、
{1920u、1080u、5760u、FVID2_DF_BGR24_888、FVID2_SF_Progressive、
错误、
disp_app_MAX_FRAes_per_Handle}、
};
请告诉我显示800 * 480 r 图像所涉及的更改?
另外 ,设置 PLL 时可能会出现什么问题 ?
谢谢 、此致、
Gokul