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.

AM57x RTOS VIP driver

Expert 1385 points
Other Parts Discussed in Thread: AM5728

Hi,

  I am develope an AM5728 Customization board。 And use the vip port to capture image in DSP sides.

jI use the TI RTOS SDK 3.1.0.6 and has an example for capture(pdk_am57xx_1_0_4/packages/ti/drv/vps/examples/vip/captureVip).

But I can't understand the driver example( It's so complexed),  Can you give me some other detailed document about VIP usage except the  TRM.

Best Regards

Qing

  • Hi,

    The RTOS team have been notified. They will respond here.
  • Qing


    I do not know of any documentation that explains the VIP better than the TRM. But I would like to understand more about the example project.

    Were you able to build the example project?  Is your problem with the framework or with the functions that manipulate the hardware?

    Please post exactly what is your status and I will try to follow from there

    Regards

    Ran

  • Qing,

    The wiki page for VPS driver is here: . It will be updated for VIP capture info.

    You can use gmake to create VIP test application

    1. Run top level pdksetupenv batch file under \packages

    2. Then, change to VPS folder, type “gmake all”,  this should build lib (A15 and M4) and apps

    • cd packages\ti\drv\vps
    • gmake all,

    Or, you can create a CCS project:

    There is no vip capture CCS project available in VPS driver.

    • Create a text file called vps_CaptureVipExample_idkAM572x_C66ExampleProject.txt under vps\examples\ccsprojects\am572x\bios with below contents:

    -ccs.linkFile "PDK_INSTALL_PATH/ti/drv/vps/examples/vip/captureVip/src/CaptureVip_main.c"

    -ccs.linkFile "PDK_INSTALL_PATH/ti/drv/vps/examples/ccsprojects/common/bios/utils/bspCommonBIOS_c66.cfg"

    -ccs.setCompilerOptions "-DMAKEFILE_BUILD -mv6600 --abi=eabi -q -mi10 -mo -pden -pds=238 -pds=880 -pds1110 --program_level_compile -g -eo.oe66 -ea.se66 --emit_warnings_as_errors -DTRACE_ENABLE -DASSERT_ENABLE -DVPS_VIP_BUILD -DVPS_VPE_BUILD -DVPS_DSS_BUILD -UVPS_ISS_BUILD -UVPS_SIMCOP_BUILD -UVPS_ISS_ISP_DEF -DVPS_VIP1_BUILD -DVPS_VIP2_BUILD -DVPS_VIP3_BUILD  -DVPS_CAPT_BUILD -DVPS_DISP_BUILD -DSOC_AM572x -I. -Isrc -I${PDK_INSTALL_PATH}/ti/drv/vps -I${PDK_INSTALL_PATH}/ti/drv/vps/examples/vip/captureVip/src "  -rtsc.enableRtsc

    -ccs.setLinkerOptions "--strict_compatibility=on"

    -rtsc.setConfiguroOptions "-b ${PDK_INSTALL_PATH}/ti/build/am572x/config_am572x_c66.bld"

    • Run pdksetupenv to set up the environment

    • Run pdkProjectCreate with parameters like “pdkProjectCreate AM572x idkAM572x little vps dsp” to create the CCS project

    • build, load and run the project on TI EVM

     Yes, the VPS driver/test application is complicated. To run that on TI EVM, you need and OV2659 camera connected. Please run and understand how it works.

    For your customized board, please specify what help is needed?

    Regards, Eric

  • Hi, Ran & Eric:
    Thank you very much!
    My problem is with the framework and with the functions that manipulate the hardware. Because before I can use these API, I must understand it. Or , Once there some problem rising, I can't know how to do .

    Although TRM & VIP driver document is provided by SDK. But I still can't understand the VIP detailed behavior.
    can you give me some important document about vip and vpdma ?

    Best Regards
    Qing

  • Qing

    I understand exactly what you mean.  Unfortunately I do not know of any resource but the hardware TRM and the software description in the header file and the source code or in the ApiGuide doxygen directory.  Here is what I do when I want to understand how an interface is working:

    First I read the TRM and make a list of registers that effect the operation of the interface and what are the global addresses of these registers. In general the global address is the offset address into the block plus the base address of the block taken from the memory map. (sometimes the document gives the global address)

    Next I look at the doxygen directory, for example at \pdk_am57xx_1_0_4\packages\ti\drv\vps\docs\ApiGuide\doxygen and start with the function for the interface that I am interested in, for example /pdk_am57xx_1_0_4/packages/ti/drv/vps/docs/ApiGuide/doxygen/group__BSP__DRV__VPS__CAPTURE__API.html and I follow all the parameters in doxygen and the information in the header files so I can connect the execution to registers

    Last I run the configuration code very slowly in debug code from CCS and look how the registers values are changed after each step

    Does it make sense to you?  If it answers your question close the thread

    Ran

  • Thank you very much!

    Best Regards
    Qing