AM243x MCU+ SDK  08.01.00
PRUICSS Driver Migration Guide

This list describes the differences between PRUICSS driver of MCU+ SDK and PRUSS driver from the PDK.

API changes

There are changes in API names, structure names and macro names. All names begin with PRUICSS_ now. Arguments to APIs are same as earlier. All the APIs from PDK driver are not included, only the ones used in the examples, Industrial Protocol FW HAL(Firmware and Hardware Abstraction Layer), ICSS-EMAC and ICSS Timesync an are added in the MCU+ SDK's driver. The changes in API names are listed below.

PDK MCU+ SDK
Not available PRUICSS_init
Not available PRUICSS_deinit
PRUICSS_create PRUICSS_open
Not available PRUICSS_close
PRUICSS_pruIntcInit PRUICSS_intcInit
PRUICSS_registerIrqHandler PRUICSS_registerIrqHandler
PRUICSS_pruReset PRUICSS_resetCore
PRUICSS_pruDisable PRUICSS_disableCore
PRUICSS_pruEnable PRUICSS_enableCore
PRUICSS_pruInitMemory PRUICSS_initMemory
PRUICSS_pruWriteMemory PRUICSS_writeMemory
PRUICSS_pruReadMemory PRUICSS_readMemory
PRUICSS_pruSendEvent PRUICSS_sendEvent
PRUICSS_pruWaitEvent PRUICSS_waitEvent
PRUICSS_pruClearEvent PRUICSS_clearEvent
PRUICSS_pruSendWaitCearEvent PRUICSS_sendWaitClearEvent
PRUICSS_getICSSVersion PRUICSS_getVersion
PRUICSS_setConstantTblEntry PRUICSS_setConstantTblEntry
PRUICSS_setIepClkSrc PRUICSS_setIepClkSrc

Important Notes

  • The INTC module in ICSSG supports 160 events and 20 channels, but the PDK driver only supported 64 events and 10 channels. This support has been added in the MCU+ SDK driver. All changes are internal to the driver implementation. API usage for INTC initialization is same as earlier.
  • Driver implementation uses Semaphore and Hwi. There are differences in TI-RTOS OSAL of PDK, and Driver Porting Layer (DPL) in MCU+ SDK. Changes were made to address this difference. There is no impact on the use of APIs.
  • CSL macros were used from pdk/packages/ti/csl/src/ip/icss/V1 in PDK driver. In MCU+ SDK, the CSL for ICSS has been taken from pdk/packages/ti/csl/src/ip/icss/V3, and the file name in MCU+ SDK is ${SDK_INSTALL_PATH}/source/drivers/pruicss/v0/cslr_icss_g.h.
  • Macros for HW register access like HWREG, HWREGH and HWREGB are deprecated from CSL in MCU+ SDK. They are replaced with the recommended replacements from ${SDK_INSTALL_PATH}/source/drivers/hw_include/hw_types.h.
  • SysConfig has been added to initialize PRUICSS module and initialize the Core clock. The config name used in SysConfig should be used for PRUICSS_open call. Enum for PRUICSS instance number has been removed.
  • The member names for PRUICSS_HwAttrs have been changed. There are few additions and deletions of members.
  • Few APIs(like PRUICSS_setIcssgCfgMiiMode, PRUICSS_setGpiMode, etc) have been added to aid users in modifying some of the configuration registers.
  • It is recommended to use PRUICSS_getAttrs() for getting HwAttrs structure instead of using it directly from handle.

See Also

APIs for PRUICSS