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.

[FAQ] TDA4VM: How to build, link PDK libraries to an application and how to run them

Part Number: TDA4VM

How to build PDK libraries and example applications, how to link them to custom applications and how to run them using CCS or through bootloader (either SD card or OSPI) on Jacinto, AM65x and AM57x class of devices ?

  • Hi,

    Much of the material with regards to building PDK libraries, linking them to custom applications and running them is already available across multiple documentations. So this E2E will act as a consolidation thread tying all this information.

    Assumptions:

    1. This E2E assumes that you are running and building applications on RTOS, for Linux the flow is different.

    2. Development and checkout is on EVM, for custom platforms there are additional steps involved like pinmuxing etc.

    Step 1:

    The first step is to download the RTOS SDK for your particular platform (eg AM57, AM65, TDA4/J721E, J7200) and go through the documentation. Here are the links for each SDK

    Platform SDK Link
    J721E www.ti.com/.../PROCESSOR-SDK-RTOS-J721E
    J7200 https://www.ti.com/tool/PROCESSOR-SDK-J7200
    AM65x software-dl.ti.com/.../index_FDS.html
    AM57 www.ti.com/.../PROCESSOR-SDK-AM57X

    In all cases, Linux is the recommended platform for development however Windows is also supported for for most modules. Please check your requirements first by going through the SDK documentation before downloading.

    Step 2:

    Go through the "Getting Started" section within the SDK documentation, this provides enough information about the SDK, components and EVM setup.

    Next identify which specific peripherals are required for your application. eg. I2C, SPI, UART etc. Specific information with regards to each module is available inside the PDK, from within the SDK documentation navigate to the PDK User Guide (eg. J7200 PDK User Guide) this guide has information specific to each module in a separate page, once you go to a specific module (eg I2C) you can see the API's, example applications provided and where the libraries are located.

    Step 3:

    To build any PDK example or library, follow the "Building the PDK" section within the User Guide ( eg.J7200 PDK Build Guide) , the basic steps are

    go to <SDK_INSTALL_DIR>/pdk_<version>/packages and run "source pdksetupenv.sh", go to <SDK_INSTALL_DIR>/pdk_<version>/packages/ti/build and run "make help" to see all build options. You can run a grep on this output to find your example application.

    Once a library or example is built, it's path is displayed at the end of the build in terminal. There is a CCS binary with the xer5f extension and an SD card binary with the .appimage extension.

    Step 4:

    To run the example applications look at the SDK user guide which has a section on EVM setup (including bootmode switches) and CCS setup. (Eg J7200 EVM setup J7200 CCS setup) .

    Note : Starting from SDK 7.1 users must run a default sciserver_testapp on MCU1_0 core if they are running an application on any other core using CCS. If it's an out of box app on MCU1_0 then the sciserver module is already a part of the default application.

    If you want to run using a bootloader (either SD card or OSPI) then please take a look at this documentation (for J7200), steps include building the bootloader and copying it (along with the application) to either SD card or flashing to OSPI.

    Step 5:

    To link a standard library like say I2C to your application, you need to include it as part of your makefile. There are specific PDK flags which enable this. As a reference you can take a look at the CAN-Eth Gateway Demo packaged within the RTOS SDK (eg J7200 CAN Eth Gateway Demo) in <SDK_INSTALL_DIR>/gateway-demos/can_eth_gateway. There is no need to delve into the implementation, just take a look at how the source files are added and libraries are linked. Use the makefile as a reference.

    In fact user may look at any other application within the SDK whether it in MCU (<SDK_INSTALL_DIR/mcusw) or Ethernet Firmware (<SDK_INSTALL_DIR>/ethfw) , there are makefiles which demonstrate how to link PDK modules

    Regards

    Vineet