工具/软件:
我们目前正在使用的产品 INDUSTRIAL_COMMUNICATION_SDK_AM243X 11.00.00.08 、我们注意到 SDK 包含 两组并行的源代码和库 在以下目录下:
/source/networking/... /MCU_PLUS_SDK/源/网络/...
例如、存在以下两种情况:
- /source/networking/icss_emac
- /mcu_plus_sdk/source/networking/ICSS_emac
同样适用于icss_timesync
。
此外、两棵树下还提供了预构建库:
/source/networking/icss_emac/lib/... /mcu_plus_sdk/source/networking/ICSS_emac/lib/……
■问题
- 预期使用模式是什么?
用户是否应该选择这两棵树之一?
或者是否有两个原因存在,我们应该在特定条件下混合和匹配? - 哪个版本(或下)
/source
/mcu_plus_sdk/source
将与预建库一起用于生产中、例如:icss_emac.am243x.r5f.ti-arm-clang.release.lib
icss_timesync.am243x.r5f.ti-arm-clang.release.lib
- 我们应如何在工程中配置包含路径和库路径以避免意外混合?
我们是否应该完全排除一棵树?
是否有这方面的官方指导? - 未来的 SDK 版本是否会整合这些结构或阐明其预期用途?
■上下文:我们遇到的问题
在我们的项目中、我们链接了以下库:
${INDUSTRIAL_COMMUNICATION_SDK_PATH }/source/networking/icss_emac/lib/icss_emac.am243x.r5f.ti-arm-clang.release.lib ${INDUSTRIAL_COMMUNICATION_SDK_PATH}/source/networking/icss_timesync/lib/icss_timesync.am243x.r5f.ti-arm-clang.release.lib
我们设置以下两个包含路径:
${INDUSTRIAL_COMMUNICATION_SDK_PATH }/MCU_PLUS_SDK/source ${INDUSTRIAL_COMMUNICATION_SDK_PATH}/source
因此、编译器会拾取icss_timeSyncApi.h
(来自)的意外版本/msu_plus_sdk/source/
、导致TimeSync_Config_t
结构不匹配。 这在运行时导致内存损坏。
通过更改包含路径顺序解决了该问题、但这揭示了更深层次的问题: 如何确定哪个源代码树与库二进制文件相匹配?
如有任何澄清或指导、将不胜感激。 我们希望使我们的工程与 SDK 的预期结构保持一致、并避免脆弱或不一致的配置。