This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC1354P10:CC1354、lwip、mbedtls 集成

Guru**** 2338150 points
Other Parts Discussed in Thread: CC1354P10, SYSCONFIG
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1512512/cc1354p10-cc1354-lwip-mbedtls-integration

部件号:CC1354P10
主题: SysConfig 中讨论的其他器件

工具/软件:

您好、

我们正在尝试将 mbedtls 与 lwip 集成、以便与连接到 cc1354的 cc33xx 配合使用。

我们不确定如何最好地集成 mbedtls。 您能提供一些建议吗? 或者确认我们是否走在正确的轨道上?

使用 simplelink_cc13xx_cc26xx_sdk_8_30_01_01、我们将使用 make 并 ticlang this Reposory 进行构建。 C:\ti\simplelink_cc13xx_cc26xx_sdk_8_30_01_01\source\third_party\mbedtls\ti

在对定义进行一些更正后、它就可以构建了。

但 在我们的程序中链接生成的 mbedtls.a 时、会加载 未定义的符号:

AESCBC_OneStepOperation_init
ECDSA_close
mbedtls_ssl_read
mbedtls_ssl_read_record
....

我想我们缺少了 mbedtls 的一些部分,但不确定如何构建/获取它。

谢谢、

C é dric

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 C é dric:  

    您从哪个 CC1354P10示例工程开始?

    我认为、要修复 AESCBC 和 ECDSA 包含错误、必须将其包含在 SysConfig 中:


    此致、

    Arthur

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Arthur:

    感谢您的答复。

    我们从空示例开始。

    我尝试添加 SysConfig 中的各种加密驱动程序、但未解析相关的 未定义符号。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    似乎有些定义在 libmbedcrypto.a 中

    但当我在链接器中添加此文件时、我收到错误"尝试链接并非为高级 RISC 机器 ARM 构建的目标文件"

    我现在正在尝试使用 CLANG 来重建它、  而 CLANG  在 Makefile 中没有添加(尽管它在 cmakelist 中)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Cedric:

    还有一个问题是、您是使用 CC33XX MCU 插件、还是从头开始与 CC33XX 实现通信?

    从 mbedtls 开始、当查看我们使用它的某个栈(ti_wisunfan)时、似乎它总是与其他2个库一起导入:

    • libmbedcrypto.a
    • libmbedx509.a

    它们位于同一目录下:

    C:\ti\simplelink_cc13xx_cc26xx_sdk_8_30_01_01\source\third_party\mbedtls\library

    我要引用的文件方式如下: C:\ti\simplelink_cc13xx_cc26xx_sdk_8_30_01_01\source\third_party\ti\wisunfan\mbedtls\Makefile src

    此致、

    Arthur

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Arthur:

    是的、我们使用的是 cc33xx MCU 插件。

    我 也试图与 libmbedx509链接。 但它也给出了错误"尝试链接不是为高级 RISC 机器 ARM 构建的目标文件"

    我是否必须先使用 ticlang 自行构建它?

    我来看看  ti_wisunfan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Cedric:

    我可以看到"尝试链接并非为 Advanced RISC Machines ARM 构建的目标文件"("C:/ti/simplelink_cc13xx_cc26xx_sdk_8_30_01_01/source/third_party/mbedtls/library/libmbedtls.a) "= AMD x86-64架构"错误也是如此,公平地说,当运行 libmbedcrypto.a 上的 objdump 时,我看到了以下内容:

    rw-r--r-- 0/0  10328 Jan  1 01:00 1970 sha256.o
    architecture: i386:x86-64, flags 0x00000011:
    HAS_RELOC, HAS_SYMS
    start address 0x0000000000000000
    ......


    我建议您构建它、但使用 gcc。 我们的 https://github.com/TexasInstruments/simplelink-lowpower-f2-sdk 存储库是这方面的良好基础。

    此致、

    Arthur

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    此外、因为我也花了一些时间来处理它、下面是我修改的上述存储库的补丁文件、以获取用于 ARM 构建的库:

    e2e.ti.com/.../arm_5F00_build.patch

    大多数修改基于以下文件: simplelink-lowpower-f2-sdk/source/third_party/ti_wisunfan/mbedtls/importer/adjust-config.sh

    此致、

    Arthur

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Arthur:

    感谢您的回复、很抱歉我错过了消息通知!

    所以我已经切换到了 gcc 构建,除了你的修改,我必须添加"-gdwarf-4"

    现在我在 mbedtls.a 和 libmbedtls.a.中定义了许多码制  

     #10056:符号"mbedtls_SSL_TLS_PRF"重新定义:首先在"C:/workspace/gen3/cc33xx-mcu-plugin/uppermac/source/third_party/mbedtls/ti/lib/ticlang/m33f/mbedtls.a 中定义 重新定义了"C:/workspace/gen3/cc33xx-mcu-plugin/uppermac/source/third_party/mbedtls/library/libmbedtls.a "

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Cedric:

    我认为我们应该继续使用标准 mbedtls_config.h、因为 make 编译过程中无论如何都包含 config-cc13x4.h。

    要修复最后一个未定义的方法、请在 mbedtls_config.h 中定义/取消注释以下值:

    • MBEDTLS_PLATFORM_MEMORY
    • MBEDTLS_PLATFORM_GME_R_ALT
    • MBEDTLS_SSL_PROTO_DTLS

    此致、

    Arthur

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢!

    我还有两个问题、我目前正在查看 altcp_tls_mbedtls_mem.c 中 lwip 中使用的 mbedtls_platform_set_calloc_free

    我认为这是由于多个不同的位置和相互冲突的定义设置。

    [6] undefined                        first referenced                                                                                               
    [7]  symbol                              in file                                                                                                    
    [8] ---------                        ----------------                                                                                               
    [9] mbedtls_platform_gmtime_r        C:/workspace/gen3/cc33xx-mcu-plugin/uppermac/source/third_party/mbedtls/ti/lib/ticlang/m33f/mbedtls.a<x509.obj>
    [10] mbedtls_platform_set_calloc_free C:/workspace/gen3/cc33xx-mcu-plugin/build/cc13x4_cc26x4-ticlang/lib/Debug/lwip.a<altcp_tls_mbedtls_mem.obj>   

    不知道我今天能不能结束,否则我会在几个假期后的两周内回来:)