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.

[参考译文] CCS/TMS320C6748:TMS320C6748

Guru**** 2553450 points
Other Parts Discussed in Thread: TMS320C6748, DLP4500

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/608684/ccs-tms320c6748-tms320c6748

器件型号:TMS320C6748
主题中讨论的其他器件: DLP4500

工具/软件:Code Composer Studio

尊敬的先生:

现在我正在使用 TMS320C6748 DSP 开发套件( LDCK ) ,我已将 LCD 屏幕和 CMOS 相机连接到电路板,它们可以很好地协同工作。

我可以使用 CMOS 相机拍摄照片,并在 LCD 屏幕上显示照片。

我还有一台 DLP 投影仪(使用 DLP4500芯片组)来制作结构光, 它也可以很好地工作。

根据以上所有内容,我想实现3D 扫描。

我想使用 TI 的 VLIB 库(VLIB 3.3.0.3)中的 VLIB_Canny_Edge_Detection 函数 来完成图像边缘检测。

有人能不能帮助我,告诉我如何获得包含调用 VLIB_Canny_Edge_Detection_...()函数内容的项目文件?

或者告诉我如何使用 VLIB 完成图像边缘检测?

谢谢!

祝您好运!

张斌,亚历克斯

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我已通知软件团队。 他们的反馈将在此处发布。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢! 我将等待答案。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    张斌

    C6748 LCDK 板的有趣用途。 您能否提供 CMOS 传感器的详细信息以及您与 LCDK 板配合使用的 LCD 屏幕。
    您是否使用 LCDK 背面的 LCD 扩展连接器来连接 LCD 屏幕?

    对于使用 VLIB 的 Canny 边缘检测、您可以查看此处提供的应用手册:
    www.ti.com/.../sprab78.pdf


    VLIB 库在源路径的软件包中提供了 Canny 边缘检测 API 的测试示例:
    VLIB_C674x_3_0_3\packages/ti\VLIB\src\VLIB_Canny_Edge_Detection

    希望这对您有所帮助。

    此致、
    Rahul
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    拉胡尔先生:
    感谢您的回答!

    我在 vpif_lcd_loopback.c 中添加了以下内容:

    ////添加以下2017-07-11

    if (VLIB_cache_init ())


    VLIB_memError ("VLIB_Canny_Edge_Detection");


    其他


    //// VLIB_Canny_Edge_Detection_d-aa (0);


    canny_getTestParams (&prm、&test_cases);

    /*初始化性能评测*/
    VLIB_PROFILE_INIT (2、"VLIB_Canny_Edge_Detection);

    /*运行每个测试用例*/
    for (TPI=0;TPI < test_cases;TPI++)


    /*初始化状态标志*/
    int32_t status_NAT_VS_int = VLIB_kernel_pass;//测试状态:Natural c vs. Optimized *
    int32_t status_NAT_VS_ref = VLIB_kernel_pass;//测试状态:Natural c 与静态基准*

    /*计算缓冲区大小*/
    uint32_t buffersize = prm[TPI].width * prm[TPI].height;

    /*为每个测试向量分配缓冲区*/
    uint8_t *pInput =(uint8_t *) VLIb_malloc (buffersize * sizeof (uint8_t));
    int16_t * pBufGradX =(int16_t *) VLIB_malloc (buffersize * sizeof (int16_t));
    int16_t * pBufGrady =(int16_t *) VLIB_malloc (buffersize * sizeof (int16_t));
    int16_t * pBufMag =(int16_t *) VLIB_malloc (buffersize * sizeof (int16_t));
    uint8_t * pScratch =(uint8_t *) VLIB_malloc (buffersize * sizeof (uint8_t));
    uint8_t * pBufOut =(uint8_t *) VLIb_malloc (buffersize * sizeof (uint8_t));
    uint8_t * pBufOut_CN =(uint8_t *) malloc (buffersize * sizeof (uint8_t));
    int32_t 数字项目;
    int32_t numItems_cn;

    /*仅当缓冲区分配适合堆时运行测试*/
    if (pInput && pBufGradX && pBufGradY && pBufMag && pScratch && pBufOut && pBufOut_CN)

    uint32_t 失败;

    /*根据所需的测试模式填充输入数组*/
    VLIB_fillBuffer (PRM[TPI].testPattern、
    (uint8_t) 127、
    pInput、PRM[TPI].input、
    PRM[TPI].width、PRM[TPI].height、PRM[TPI].width、
    sizeof (uint8_t)、testPatternString);

    /*初始化内存*/
    memset (pBufGradX、0、buffersize * sizeof (int16_t));
    memset (pBufGradY、0、buffersize * sizeof (int16_t));
    memset (pBufMag、0、buffersize * sizeof (int16_t));
    memset (pBufOut、0、buffersize * sizeof (uint8_t));
    memset (pScratch、0、buffersize * sizeof (uint8_t));

    /*测试优化的内核*/
    VLIB_PROFILE_START (VLIB_kernel_opt);





    ////添加上述2017-07-11
    //////////////////////////////////////////////////////////////////////////////////////////////////////////

    然后,“项目”->“构建项目”,

    出现:

    错误:保留的 far 段中的符号不能作为 near;符号进行访问
    "test_cases"
    "C:\ti\VLIB_C674x_3_3_0_3\packages/ti\VLIB\lib\cone.ae674
    (.fardata)"在段中尽可能接近
    "../vpif_lcd_loopback.obj (.text)"
    错误:保留的 far 段中的符号不能作为 near;符号进行访问
    "test_cases"
    "C:\ti\VLIB_C674x_3_3_0_3\packages/ti\VLIB\lib\cone.ae674
    (.fardata)"在段中尽可能接近
    "../vpif_lcd_loopback.obj (.text)"
    错误:保留的 far 段中的符号不能作为 near;符号进行访问
    "test_cases"
    "C:\ti\VLIB_C674x_3_3_0_3\packages/ti\VLIB\lib\cone.ae674
    (.fardata)"在段中尽可能接近
    "../vpif_lcd_loopback.obj (.text)"
    警告:创建不带段的输出段".SRAM_START"
    规格

    出现在问题窗口中:

    说明资源路径位置类型
    链接期间遇到错误;"vpif_lcd_loopback.out"未构建vpif_lcd_lcd_loopback _C674x_C6748_lcdkC6748C/C++问题

    说明资源路径位置类型
    保留的远段中的符号不能作为 near 进行访问;符号vpif_lcd_lcd_loopback _C674x_C6748_lcdkC6748C/C++问题

    说明资源路径位置类型
    未解析的符号_SRAM_START、首先在 C:\ti\VLIB_C674x_3_3_0_3\packages/ti\VLIB\lib\cone.ae674中引用 vpif_lcd_lcd_loopback _C674x_C6748_lcdkC6748C/C++问题

    说明资源路径位置类型
    未解析的符号 canny_getTestParams、首先在./vpif_lcd_lcd_loopback .obj中引用 vpif_lcd_lcd_loopback _C674x_C6748_lcdkC6748C/C++ problem

    说明资源路径位置类型
    未解析的符号仍然是vpif_lcd_lcd_loopback_C674x_C6748_lcdkC6748C/C++问题





    你能告诉我,我能做什么?
    正在等待您的回复。
    祝您好运!

    张斌,亚历克斯
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    拉胡尔先生:

    我在 vpif_lcd_loopback.c 文件中添加了以下内容:


    ////添加以下2017-07-11

    if (VLIB_cache_init ())


    VLIB_memError ("VLIB_Canny_Edge_Detection");


    其他


    //// VLIB_Canny_Edge_Detection_d-aa (0);


    canny_getTestParams (&prm、&test_cases);

    /*初始化性能评测*/
    VLIB_PROFILE_INIT (2、"VLIB_Canny_Edge_Detection);

    /*运行每个测试用例*/
    for (TPI=0;TPI < test_cases;TPI++)


    /*初始化状态标志*/
    int32_t status_NAT_VS_int = VLIB_kernel_pass;//测试状态:Natural c vs. Optimized *
    int32_t status_NAT_VS_ref = VLIB_kernel_pass;//测试状态:Natural c 与静态基准*

    /*计算缓冲区大小*/
    uint32_t buffersize = prm[TPI].width * prm[TPI].height;

    /*为每个测试向量分配缓冲区*/
    uint8_t *pInput =(uint8_t *) VLIb_malloc (buffersize * sizeof (uint8_t));
    int16_t * pBufGradX =(int16_t *) VLIB_malloc (buffersize * sizeof (int16_t));
    int16_t * pBufGrady =(int16_t *) VLIB_malloc (buffersize * sizeof (int16_t));
    int16_t * pBufMag =(int16_t *) VLIB_malloc (buffersize * sizeof (int16_t));
    uint8_t * pScratch =(uint8_t *) VLIB_malloc (buffersize * sizeof (uint8_t));
    uint8_t * pBufOut =(uint8_t *) VLIb_malloc (buffersize * sizeof (uint8_t));
    uint8_t * pBufOut_CN =(uint8_t *) malloc (buffersize * sizeof (uint8_t));
    int32_t 数字项目;
    int32_t numItems_cn;

    /*仅当缓冲区分配适合堆时运行测试*/
    if (pInput && pBufGradX && pBufGradY && pBufMag && pScratch && pBufOut && pBufOut_CN)

    uint32_t 失败;

    /*根据所需的测试模式填充输入数组*/
    VLIB_fillBuffer (PRM[TPI].testPattern、
    (uint8_t) 127、
    pInput、PRM[TPI].input、
    PRM[TPI].width、PRM[TPI].height、PRM[TPI].width、
    sizeof (uint8_t)、testPatternString);

    /*初始化内存*/
    memset (pBufGradX、0、buffersize * sizeof (int16_t));
    memset (pBufGradY、0、buffersize * sizeof (int16_t));
    memset (pBufMag、0、buffersize * sizeof (int16_t));
    memset (pBufOut、0、buffersize * sizeof (uint8_t));
    memset (pScratch、0、buffersize * sizeof (uint8_t));

    /*测试优化的内核*/
    VLIB_PROFILE_START (VLIB_kernel_opt);





    ////添加上述2017-07-11


    然后依次选择"Project"->"Build Project"

    以下内容将出现在“Console (控制台)”窗口中,


    错误:保留的 far 段中的符号不能作为 near;符号进行访问
    在 far 部分中添加了"ACT_kernel"
    "C:\ti\VLIB_C674x_3_3_0_3\packages/ti\VLIB\lib\cone.ae674

    (.far)"在"../vpif_lcd_loopback .obj (.text)"部分中的 near 位置访问
    >>编译失败
    错误:保留的 far 段中的符号不能作为 near;符号进行访问
    远段中的"beg_count"
    "C:\ti\VLIB_C674x_3_3_0_3\packages\ti\VLIB\lib\cone.ae674 <VLIB_profile.oe6
    74>(.far)"在段中作为 near 进行访问
    "../vpif_lcd_loopback.obj (.text)"
    错误:保留的 far 段中的符号不能作为 near;符号进行访问
    远段中的"beg_count"
    "C:\ti\VLIB_C674x_3_3_0_3\packages\ti\VLIB\lib\cone.ae674 <VLIB_profile.oe6
    74>(.far)"在段中作为 near 进行访问
    "../vpif_lcd_loopback.obj (.text)"
    错误:保留的 far 段中的符号不能作为 near;符号进行访问
    "test_cases"
    "C:\ti\VLIB_C674x_3_3_0_3\packages/ti\VLIB\lib\cone.ae674
    (.fardata)"在段中尽可能接近
    "../vpif_lcd_loopback.obj (.text)"
    错误:保留的 far 段中的符号不能作为 near;符号进行访问
    "test_cases"
    "C:\ti\VLIB_C674x_3_3_0_3\packages/ti\VLIB\lib\cone.ae674
    (.fardata)"在段中尽可能接近
    "../vpif_lcd_loopback.obj (.text)"
    错误:保留的 far 段中的符号不能作为 near;符号进行访问
    "test_cases"
    "C:\ti\VLIB_C674x_3_3_0_3\packages/ti\VLIB\lib\cone.ae674
    (.fardata)"在段中尽可能接近
    "../vpif_lcd_loopback.obj (.text)"
    警告:创建不带段的输出段".SRAM_START"
    规格

    未定义 第一个参考
    符号 文件中
    ------ --------
    _SRAM_START C:\ti\VLIB_C674x_3_3_0_3\packages/ti\VLIB\lib\cone.ae674
    canny_getTestParams ./vpif_lcd_loopback.obj

    错误:未解析的符号仍然存在
    错误:链接期间遇到错误;未构建"vpif_lcd_loopback.out"
    gmake:***[vpif_lcd_loopback.out]错误1.
    gmake:目标`全部'不会由于错误而重制。

    ****构建完成****


    我该怎么办?
    正在等待您的有用消息。
    祝您好运!

    张斌,亚历克斯
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    拉胡尔先生:

    我在 vpif_lcd_loopback.c 文件中添加了以下内容:


    ////添加以下2017-07-11

    if (VLIB_cache_init ())


    VLIB_memError ("VLIB_Canny_Edge_Detection");


    其他


    //// VLIB_Canny_Edge_Detection_d-aa (0);


    canny_getTestParams (&prm、&test_cases);

    /*初始化性能评测*/
    VLIB_PROFILE_INIT (2、"VLIB_Canny_Edge_Detection);

    /*运行每个测试用例*/
    for (TPI=0;TPI < test_cases;TPI++)


    /*初始化状态标志*/
    int32_t status_NAT_VS_int = VLIB_kernel_pass;//测试状态:Natural c vs. Optimized *
    int32_t status_NAT_VS_ref = VLIB_kernel_pass;//测试状态:Natural c 与静态基准*

    /*计算缓冲区大小*/
    uint32_t buffersize = prm[TPI].width * prm[TPI].height;

    /*为每个测试向量分配缓冲区*/
    uint8_t *pInput =(uint8_t *) VLIb_malloc (buffersize * sizeof (uint8_t));
    int16_t * pBufGradX =(int16_t *) VLIB_malloc (buffersize * sizeof (int16_t));
    int16_t * pBufGrady =(int16_t *) VLIB_malloc (buffersize * sizeof (int16_t));
    int16_t * pBufMag =(int16_t *) VLIB_malloc (buffersize * sizeof (int16_t));
    uint8_t * pScratch =(uint8_t *) VLIB_malloc (buffersize * sizeof (uint8_t));
    uint8_t * pBufOut =(uint8_t *) VLIb_malloc (buffersize * sizeof (uint8_t));
    uint8_t * pBufOut_CN =(uint8_t *) malloc (buffersize * sizeof (uint8_t));
    int32_t 数字项目;
    int32_t numItems_cn;

    /*仅当缓冲区分配适合堆时运行测试*/
    if (pInput && pBufGradX && pBufGradY && pBufMag && pScratch && pBufOut && pBufOut_CN)

    uint32_t 失败;

    /*根据所需的测试模式填充输入数组*/
    VLIB_fillBuffer (PRM[TPI].testPattern、
    (uint8_t) 127、
    pInput、PRM[TPI].input、
    PRM[TPI].width、PRM[TPI].height、PRM[TPI].width、
    sizeof (uint8_t)、testPatternString);

    /*初始化内存*/
    memset (pBufGradX、0、buffersize * sizeof (int16_t));
    memset (pBufGradY、0、buffersize * sizeof (int16_t));
    memset (pBufMag、0、buffersize * sizeof (int16_t));
    memset (pBufOut、0、buffersize * sizeof (uint8_t));
    memset (pScratch、0、buffersize * sizeof (uint8_t));

    /*测试优化的内核*/
    VLIB_PROFILE_START (VLIB_kernel_opt);





    ////添加上述2017-07-11


    然后依次选择"Project"->"Build Project"

    以下内容将出现在“Console (控制台)”窗口中,


    错误:保留的 far 段中的符号不能作为 near;符号进行访问
    在 far 部分中添加了"ACT_kernel"
    "C:\ti\VLIB_C674x_3_3_0_3\packages/ti\VLIB\lib\cone.ae674

    (.far)"在"../vpif_lcd_loopback .obj (.text)"部分中的 near 位置访问
    >>编译失败
    错误:保留的 far 段中的符号不能作为 near;符号进行访问
    远段中的"beg_count"
    "C:\ti\VLIB_C674x_3_3_0_3\packages\ti\VLIB\lib\cone.ae674 <VLIB_profile.oe6
    74>(.far)"在段中作为 near 进行访问
    "../vpif_lcd_loopback.obj (.text)"
    错误:保留的 far 段中的符号不能作为 near;符号进行访问
    远段中的"beg_count"
    "C:\ti\VLIB_C674x_3_3_0_3\packages\ti\VLIB\lib\cone.ae674 <VLIB_profile.oe6
    74>(.far)"在段中作为 near 进行访问
    "../vpif_lcd_loopback.obj (.text)"
    错误:保留的 far 段中的符号不能作为 near;符号进行访问
    "test_cases"
    "C:\ti\VLIB_C674x_3_3_0_3\packages/ti\VLIB\lib\cone.ae674
    (.fardata)"在段中尽可能接近
    "../vpif_lcd_loopback.obj (.text)"
    错误:保留的 far 段中的符号不能作为 near;符号进行访问
    "test_cases"
    "C:\ti\VLIB_C674x_3_3_0_3\packages/ti\VLIB\lib\cone.ae674
    (.fardata)"在段中尽可能接近
    "../vpif_lcd_loopback.obj (.text)"
    错误:保留的 far 段中的符号不能作为 near;符号进行访问
    "test_cases"
    "C:\ti\VLIB_C674x_3_3_0_3\packages/ti\VLIB\lib\cone.ae674
    (.fardata)"在段中尽可能接近
    "../vpif_lcd_loopback.obj (.text)"
    警告:创建不带段的输出段".SRAM_START"
    规格

    未定义 第一个参考
    符号 文件中
    ------ --------
    _SRAM_START C:\ti\VLIB_C674x_3_3_0_3\packages/ti\VLIB\lib\cone.ae674
    canny_getTestParams ./vpif_lcd_loopback.obj

    错误:未解析的符号仍然存在
    错误:链接期间遇到错误;未构建"vpif_lcd_loopback.out"
    gmake:***[vpif_lcd_loopback.out]错误1.
    gmake:目标`全部'不会由于错误而重制。

    ****构建完成****


    我该怎么办?
    正在等待您的有用消息。
    祝您好运!

    张斌,亚历克斯
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您似乎没有使用示例项目附带的 lnk.cmd。  请参阅 VLIB_C674x_3_3_0_3\packages/ti\VLIB\src\con\c64P 文件夹中的 lnk.cmd 文件。

    您可能缺少 lnk.cmd 文件中的以下行:

    .SRAM_START (_SRAM_START)> L2_SRAM NOINIT