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.

Trouble trying to build secure_iot application for TM4C129

Other Parts Discussed in Thread: EK-TM4C129EXL, SYSBIOS

Hi All,

I downloaded the secure_iot application sample from ek-tm4c129exl package. 

I'm using CCS v6.1.0.201502111100 on Windows, including  TI-RTOS for TivaC (IDE Client) 2.14.0.10. I also downloaded cyassl v3.3.0 from TI E2E.

Unfortunately, I cannot build the application, I got following errors:

  1. js: "C:/ti/xdctools_3_31_01_33_core/packages/xdc/cfg/Main.xs", line 48: XDC runtime error: can't find the library 'lib/http_ndk_wolfssl.aem4f' specified by package ti.net.http.  It wasn't found along the path 
  2. Many build error in tirtos_tivac_2_14_00_10 such as:
    1. C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/BIOS.c: line 1: /bin: is a directory

To be honest, I'm quite lost here.

Many thanks in advance for your help,

Best Regards,

Yann

  • Hello Yann,

    I believe that the example needs WoflSSL package and not Cyassl package.

    Regards
    Amit
  • Hello Amit,

    Unfortunately, I got the same issue.

    In fact, I started first with the latest version of wolfssl fro their web site. I modified the Include path settings to match the wolfssl pathes and I got the issues. Readingnews in TI E2E, I learned that this latest version is not compliant with current version of  TI-RTOS demo project and I found a CyaSSL library.

    So, currently, I cannot build the secure_iot sample application provided with the EK-TM4C129EXL development board.

    Thanks again for your help,

    Best Regards,

    Yann

  • Hello Yann,

    I have asked the concerned engineer to look into it. But one thing is for sure is that the implementation is not with CyaSSL.

    Regards
    Amit
  • Hello Amit,

    OK, I'm going to retry from scratch, perhaps I did something wrong the first time.

    I'll come back to you asap.

    Thanks again for your support,

    BR, Yann

  • Hello Yann,

    Before building the "secure_iot" application, you will need to build the WolfSSL library with TI-RTOS support. The steps to build WolfSSL library with TI-RTOS support are documented in the Wiki: processors.wiki.ti.com/.../Using_wolfSSL_with_TI-RTOS under the sections "Setup" and "Building wolfSSL libraries". This document also has information on how to download and install the correct version of TI-RTOS and WolfSSL library.

    After building the WolfSSL library, the correct library has to be added to the "secure_iot" project, before building the "secure_iot" project. The steps to add the correct WolfSSL library and the include path are documented in the "Readme.txt" in the installation of the "secure_iot" application in "ek-tm4c129exl/secure_iot" folder.

    If you are still unable to build the application, please let us know which of the above steps are failing. Also please detail the version of all the tools (CCS, TI-RTOS, WolfSSL) used and the steps taken so that we can provide the necessary help.

    Thanks,
    Sai
  • Hi Sai,

    Ok, I restart from scratch, it's quite better, but I gt following errors now:

    error #10008-D: cannot find file "C:\cyassl\wolfssl-3.6.6\tirtos\packages\ti\net\wolfssl\lib\wolfssl_tm4c_hw.aem4f"
    warning #10229-D: output section ".data" refers to load symbol "wolfSSL_free" and hence cannot be compressed; compression "rle" is ignored

    undefined first referenced
    symbol in file
    --------- ----------------
    wolfSSL_CTX_load_verify_buffer ./cloud_task.obj
    wolfSSL_CTX_new ./cloud_task.obj
    wolfSSL_Init ./cloud_task.obj
    wolfSSL_free C:\ti\tirtos_tivac_2_14_00_10\packages\ti\net\http\lib\http_ndk_wolfssl.aem4f<sswolfssl.oem4f>
    wolfSSL_get_error C:\ti\tirtos_tivac_2_14_00_10\packages\ti\net\http\lib\http_ndk_wolfssl.aem4f<sswolfssl.oem4f>
    wolfSSL_new C:\ti\tirtos_tivac_2_14_00_10\packages\ti\net\http\lib\http_ndk_wolfssl.aem4f<sswolfssl.oem4f>
    wolfSSL_peek C:\ti\tirtos_tivac_2_14_00_10\packages\ti\net\http\lib\http_ndk_wolfssl.aem4f<sswolfssl.oem4f>
    wolfSSL_recv C:\ti\tirtos_tivac_2_14_00_10\packages\ti\net\http\lib\http_ndk_wolfssl.aem4f<sswolfssl.oem4f>
    wolfSSL_send C:\ti\tirtos_tivac_2_14_00_10\packages\ti\net\http\lib\http_ndk_wolfssl.aem4f<sswolfssl.oem4f>
    wolfSSL_set_fd C:\ti\tirtos_tivac_2_14_00_10\packages\ti\net\http\lib\http_ndk_wolfssl.aem4f<sswolfssl.oem4f>
    wolfTLSv1_2_client_method ./cloud_task.obj

    error #10234-D: unresolved symbols remain
    error #10010: errors encountered during linking; "secure_iot.out" not built

    I read in some news that secure_iot was not compliant with wolfssl from git server.

    Another issue: I don't understand the error #10008-D: cannot find file "C:\cyassl\wolfssl-3.6.6\tirtos\packages\ti\net\wolfssl\lib\wolfssl_tm4c_hw.aem4f". I never used this path.

    Thanks again for your help,

    Best Regards,

    Yann

  • Hello Yann,

    The "Build Details - Application" section in the "Readme.txt" has the following two steps:
    Add '<WolfSSL_Installation>' path to the compiler include path.
    Add the WolfSSL library with support for TM4C hardware ciphers to the linker options. This library is located at
    '<WolfSSL_Installation>/tirtos/packages/ti/net/wolfSSL/lib/wolfssl_tm4c_hw.a<target>'

    The default path of '<WolfSSL_Installation>' is "C:/cyassl/wolfssl-3.6.6". That's the reason you are getting the error while building. Update the correct "WolfSSL_Installation" path using Project->Properties menu in CCS (after selecting the project).

    Please note that the '<WolfSSL_Installation>' has to be updated in two places:
    "ARM Compiler->Include Options" and
    "ARM Linker->File Search Path" under "Include library file..." settings.
    We are in the process of releasing a new version of the "secure_iot" application, which allows the change in only one place.

    The rest of the errors are because the compiler is not able to find the necessary header files of wolfSSL. They should go away once the correct '<WolfSSL_Installation>' path is used (as mentioned above).

    So far I did not try the version from GIT server, but I have used the currently available release v3.6.8 and the previous v3.6.6 available on wolfssl.com/.../downloadForm.php and they build without any problem with TI-RTOS. I have used the resulting libraries and header files (from WolfSSL v3.6.6 and v3.6.8) and the "secure_iot" application builds without any warnings or errors.

    Thanks,
    Sai

  • Hi Sai,

    No, I already configured properly my secure_iot project according the "Build Details - Application" section in the "Readme.txt". I mean, Include paths and so one are properly configured. In addition, I tried both downloaded from wolfssl web site version and current version from wolfssl git server.

    One point: are you sure that secure_iot application is compliant with current version of wolfssl? I read some old news saying that it's not compliant, but it were old news.

    Thanks again for your time,

    Best Regards,

    Yann

  • Hello Yann,

    The path "C:\cyassl\wolfssl-3.6.6\tirtos\packages\ti\net\wolfssl\lib\wolfssl_tm4c_hw.aem4f" is present in the linker options of CCS for the project in the installation. The fact that you are getting the following error tells me that maybe the linker options have not been updated.

    error #10008-D: cannot find file "C:\cyassl\wolfssl-3.6.6\tirtos\packages\ti\net\wolfssl\lib\wolfssl_tm4c_hw.aem4f"

    Can you please double check the linker options? To get to linker option in CCS, click on the menu option "Project->Properties". In the resulting window, expand the section "ARM Linker" on the left of the screen and click on "File Search Path". Under "Include library file or command file as input" section the above mentioned path is present in the project that came with the installation.

    In case you have already modified the path to point to the correct library, can you attach the screen shot of this section (of Linker options). This will help me to recreate the issue at my side.

    Thanks,

    Sai 

  • Hello Sai,

    You're right, I finally found my mistakes. Now I can build the secure_iot project :-)

    Many thanks again for your help,

    Best Regards,

    Yann

  • Glad to know it worked.

    Sai