NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.

PDK/BSP STW To PDK Migration Guide

From Texas Instruments Wiki
Jump to: navigation, search
Pdk tda home page.png

Overview[edit]

This guide provides the detailed instructions required to migrate from Starterware/BSP to PDK package. PDK package combines the features provided by Starterware and BSP package and provides a unified package to demonstrate the capabilities of the peripherals on TDAx platforms for development and deployment along with demos, sample applications and UT's. Migration from STW/BSP to PDK doesn't require any API changes.

Stw bsp to pdk sw architecture.JPG


STW/BSP to PDK Changes[edit]

This section covers the changes user needs to be aware while moving from Starterware/BSP to PDK. In PDK all the generated libraries are placed under each component libs/ directory instead of binary/ folder.

Stw bsp to pdk directory.png

Driver and Library changes[edit]

The following table shows the mapping of source code from STW/BSP to PDK

STW Module (Folder Name) PDK
build packages/ti/build
drivers csl (spread across different folders under soc and src, include top level csl_<ip>.h and cslr_<ip>.h file
system_config packages/ti/csl/arch and packages/ti/csl/soc
security packages/ti/boot/sbl_auto/security
diagLib packages/ti/diag
ipclib packages/ti/drv/ipc_lite
safetylib packages/ti/drv/fw_l3l4
bootloader packages/ti/boot/sbl_auto
norflashlib packages/ti/boot/sbl_auto/norflash
qspilib packages/ti/boot/sbl_auto/qspiflash
boards packages/ti/drv/stw_lld/boards
devices packages/ti/drv/stw_lld/devices
i2clib packages/ti/drv/stw_lld/i2clld
platform packages/ti/drv/stw_lld/platform
fatlib packages/ti/drv/stw_lld/fatlib
utils packages/ti/drv/stw_lld/uartconsole packages/ti/drv/vps/src/osal and packages/ti/drv/vps/src/common
tools packages/ti/boot/sbl_auto/tools
BSP Module (Folder Name) PDK
build packages/ti/build
src/boards packages/ti/drv/vps/src/boards
vpslib packages/ti/drv/vps/src/vpslib
src/devices packages/ti/drv/vps/src/devices
src/fvid2 packages/ti/drv/vps/src/fvid2
src/osal packages/ti/drv/vps/src/osal
src/platforms packages/ti/drv/vps/src/platforms
src/vps packages/ti/drv/vps/src/vpsdrv
src/i2c packages/ti/drv/bsp_lld/i2c
src/mcspi packages/ti/drv/bsp_lld/mcspi
src/uart packages/ti/drv/bsp_lld/uart
src/audio Not available
src/mcasp Not available

Examples changes[edit]

All the example under Starterware and BSP packages are ported to PDK and are spread across multiple directory based on the module and use case.

  • csl/examples - These examples are based on baremetal drivers (DAL) and don't have dependency on any driver or library outside csl. These examples are ported from STW.
  • diag/examples - These examples showcase the use of diagnostic library.
  • drv/bsp_lld/<module>/examples - These are the serial driver examples ported from BSP.
  • drv/fw_l3l4 - Firewall security examples ported from STW.
  • drc/ipc_lite - Examples showcasing the use ipc_lite library. These examples are ported from STW
  • drv/pm/examples - Power management examples ported from STW.
  • drv/vps/examples - Video and display driver examples ported from BSP package.
  • drv/stw_lld/examples - mmcsd, vps baremetal, mcasp examples ported from STW.

Build Environment changes[edit]

Build Commands[edit]

Following points mentions few of the basic build commands used. Please refer to Building the PDK for details.

gmake -s all BOARD=tda3xx-evm CORE=ipu1_0
  • For building the package for a specific PLATFORM/SOC, BOARD=<board> is used instead of PLATFORM=<board>
  • For building in debug or release mode, BUILD_PROFILE=debug instead of PROFILE=debug
  • By default only ipu1_0 core will be build. For building other cores user needs to mention the core to be build, eg. CORE=a15_0. Default core to be build can be changing
CORE ?= ipu1_0  to
CORE ?= <core>

in packages/ti/build/Rules.make file

  • All cores for a specific board can be build using below command
gmake -s allcores BOARD=<board>

C Flags for Platform Build[edit]

Following table shows the C Flags which are changed.

STW/BSP Flags PDK Flags
TDA2XX_BUILD SOC_TDA2XX
TDA2EX_BUILD SOC_TDA2EX
TDA3XX_BUILD SOC_TDA3XX
BUILD_M4 BUILD_IPU1_0 or BUILD_IPU1_1 or BUILD_IPU2_0 or BUILD_IPU2_1
BUILD_A15 BUILD_A15_0 or BUILD_A15_1
BUILD_DSP BUILD_DSP_1 or BUILD_DSP_2
BUILD_EVE or BUILD_EVEX BUILD_ARP32_X

Following table shows the C Flags which are no longer supported.

STW/BSP Flags
TDA2XX_FAMILY_BUILD
TDA3XX_FAMILY_BUILD



STW/BSP to PDK migration steps[edit]

Use needs to follow the below steps to build the migrate the application from STW/BSP to PDK

Updating the file include[edit]

PDK package provides a script to update the includes. Script is available at '<install_path>/docs/stw_bsp_include_path_migration.sh'. Run the following command to fine and replace the file includes as per PDK directory structure.

stw_bsp_include_path_migration.sh <Application folder to change> <PDK installed location (for sanity check file exists)>

Updating the makefile[edit]

  • Update the Component list as per PDK component list. Please refer to below table
BSP/STW Component List PDK Component List
starterware_boards stw_boards
starterware_devices stw_devices
fat_lib stw_fatlib
i2c_lib i2c_lld
utils_platform stw_platform
uartConsole stw_uartconsole
starterware_examples_utility stw_examples_utility
bsp_fvid2 fvid2
bsp_devices vps_devices
starterware_vpslib vpslib
starterware_vpslib (for baremetal module) vpsdrv_baremetal
bsp_vps vpsdrv
bsp_platforms vps_platforms
bsp_osal vps_osal_tirtos
starterware_osal vps_osal_baremetal
starterware_common vps_common
bsp_common vps_common
bsp_boards vps_boards
starterware_pm_lib pm_lib
starterware_pm_hal pm_hal
ipc_lib ipc_lib
safety_lib firewall_l3l4
bsp_i2c bsp_i2c
bsp_mcspi bsp_mcspi
bsp_uart bsp_uart
diag_lib diag
starterware_hal csl
norflash_lib norflash
qspi_flashlib qspiflash
sbl_lib sbl_lib
sbl_utils sbl_utils
  • Add following Component if build for a15 core
COMP_LIST_a15_0 = csl_init



E2e.jpg {{
  1. switchcategory:MultiCore=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article PDK/BSP STW To PDK Migration Guide here.

Keystone=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article PDK/BSP STW To PDK Migration Guide here.

C2000=For technical support on the C2000 please post your questions on The C2000 Forum. Please post only comments about the article PDK/BSP STW To PDK Migration Guide here. DaVinci=For technical support on DaVincoplease post your questions on The DaVinci Forum. Please post only comments about the article PDK/BSP STW To PDK Migration Guide here. MSP430=For technical support on MSP430 please post your questions on The MSP430 Forum. Please post only comments about the article PDK/BSP STW To PDK Migration Guide here. OMAP35x=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article PDK/BSP STW To PDK Migration Guide here. OMAPL1=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article PDK/BSP STW To PDK Migration Guide here. MAVRK=For technical support on MAVRK please post your questions on The MAVRK Toolbox Forum. Please post only comments about the article PDK/BSP STW To PDK Migration Guide here. For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article PDK/BSP STW To PDK Migration Guide here.

}}

Hyperlink blue.png Links

Amplifiers & Linear
Audio
Broadband RF/IF & Digital Radio
Clocks & Timers
Data Converters

DLP & MEMS
High-Reliability
Interface
Logic
Power Management

Processors

Switches & Multiplexers
Temperature Sensors & Control ICs
Wireless Connectivity