Tool/software:
We are currently using INDUSTRIAL_COMMUNICATIONS_SDK_AM243X 11.00.00.08, and we noticed that the SDK contains two parallel sets of source code and libraries under the following directories:
/source/networking/... /mcu_plus_sdk/source/networking/...
For example, both of the following exist:
- /source/networking/icss_emac
- /mcu_plus_sdk/source/networking/icss_emac
Likewise for icss_timesync
.
Additionally, prebuilt libraries are provided under both trees:
/source/networking/icss_emac/lib/... /mcu_plus_sdk/source/networking/icss_emac/lib/...
■ Questions
- What is the intended usage model?
Are users expected to choose one of these two trees?
Or is there a reason both exist, and we should mix and match under certain conditions? - Which version (under
/source
or/mcu_plus_sdk/source
) is meant to be used in production with the prebuilt libraries such as:icss_emac.am243x.r5f.ti-arm-clang.release.lib
icss_timesync.am243x.r5f.ti-arm-clang.release.lib
- How should we configure the include paths and library paths in our projects to avoid accidental mixing?
Should we exclude one tree entirely?
Is there any official guidance on this? - Will future SDK releases consolidate these structures or clarify their intended use?
■ Context: Problem we encountered
In our project, we linked the following libraries:
${INDUSTRIAL_COMMUNICATIONS_SDK_PATH}/source/networking/icss_emac/lib/icss_emac.am243x.r5f.ti-arm-clang.release.lib ${INDUSTRIAL_COMMUNICATIONS_SDK_PATH}/source/networking/icss_timesync/lib/icss_timesync.am243x.r5f.ti-arm-clang.release.lib
And we set both of the following include paths:
${INDUSTRIAL_COMMUNICATIONS_SDK_PATH}/mcu_plus_sdk/source ${INDUSTRIAL_COMMUNICATIONS_SDK_PATH}/source
As a result, the compiler picked up an unintended version of icss_timeSyncApi.h
(from /msu_plus_sdk/source/
), leading to a mismatch in the TimeSync_Config_t
structure. This caused memory corruption at runtime.
The issue was resolved by changing the include path order, but this revealed a deeper concern: how can we be sure which source tree matches the library binaries?
Any clarification or guidance would be highly appreciated. We would like to align our project with the SDK’s intended structure and avoid fragile or inconsistent configurations.