Processor SDK RTOS Migration Guide

From Texas Instruments Wiki
Jump to: navigation, search

RTOS Software Developer Guide Migration Guide


This Migration Guide is for the latest Processor SDK RTOS release. If you are using an older release, see the Archived Section below.


This page covers migration information for applications built on top of the last Processor SDK for RTOS release.

Processor SDK RTOS 04.02.00


GCC Toolchain Migration to 6-2017-q1

Migration: Limited to TI-RTOS based application on ARM Cortex-A cores

Additional Details: Processor SDK RTOS components includes updates to be compatible with GCC tool chain. This includes updates to SysBIOS, compiler and linker options. Following migration changes required for applications

 o Compiler options: Add nano libs to Include path 
     Example: gcc-arm-none-eabi-6-2017-q1-update/arm-none-eabi/include/newlib-nano
 o Linker Options: Replace fpu lib paths with hard lib and enable nano specs
     Example:  "<SYS/BIOS Root>/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/fpu"   
     with "<SYS/BIOS Root>/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/hard --specs=nano.specs”

Additional references

 o PDK Project Creation Scipt: <pdk_soc_x_x_x/packages/pdkProjectCreate.[bat/sh]> 
 o SMP/BIOS SYS/BIOS user guide with GCC migration details 
  • Note: For baremetal applications, stack section needs to be aligned to 8 bytes. Updated GCC toolchain is more stringent on memory alignment requirement. Misalignment can result in unexpected run time failures.

EMAC Library

Migration: Limited to C6657, OMAPL137/C6747 and OMAPL138/C6748 SoCs

Additional Details: Interrupt setup and ISR functions are implemented in the driver. Interrupt handling in applications need to be removed to use the latest driver version. Use EMAC_socGetInitCfg and EMAC_socSetInitCfg functions to change the default interrupt mapping in HW attributes if required.


EMAC_HwAttrs_V0             emac_hwattr;  /* Local instance for HW attributes */

EMAC_socGetInitCfg(port_num, &emac_hwattr);  /* Get default SOC HW attributes */
emac_hwattr.txIntrNum = <Int Num>  /* Change default interrupt mapping Optional: if needed */
EMAC_socSetInitCfg(port_num, &emac_hwattr); /* Change the default HW attributes */
open_cfg.hwAttrs = &emac_hwattr;  /* Assign HW attributes to configuration parameters */
emac_open(port_num, &open_cfg);