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.

Compiler/TMDSIDK437X: AM437x

Part Number: TMDSIDK437X
Other Parts Discussed in Thread: AM3359

Tool/software: TI C/C++ Compiler

Hi I have previously built the full EtherCAT protocol for AM3359 and it has been working. I am now trying to build the CiA402 plust EtherCAT on TMDS437x but I have run into a problem. 

I have done the PATCH process previously for AM3359 build and I am using the same ethercatstack folder that was generated before. 

After the project is imported into CCS, I get a missing library error. 

I have enclosed screen shots and the subdir_rules.mk file that may help to identify the discrepancy. I even added a path to the compiler includes to see if that would fix the problem but it did not. You will see it as the second item in the screen shot for the include directories.

Will appreciate any tips as to what is missing.

  • Hello,

    From the error description, it seems the build is failing due to EDMA3 library path for AM437x is not found. Can you please check CCS product discovery page has EDMA3 library installed correctly (CCS-Window->Preferences->Code Composer Studio->Products). A reference screenshot is shown below

    Please note that EDMA3 library is unique for AM335x and AM437x. If you have already added EDMA from Processor SDK for AM335x, uninstall first and then rediscover from Processor SDK for AM437x. Please let us know if this resolves the problem

    Regards,
    Nijin P

  • Hi,

    I followed your instructions. I uninstalled the older edma3_dll. Then downloaded the latest version from ti site. I unzipped the tar file and pasted it to /ti directory. I discovered the directory in CCS and installed it. I relaunched CCS and regenerated the project. In building the project, I get the same problem. The lib in the edma3 can not be found. I checked the directory where the lib is supposed to be found: 

    C:\ti\edma3_lld_02_12_00_20\packages\ti\sdo\edma3\drv\lib\arm9\release

    There is no library file there. The only thing there a make file by the name of ti.sdo.edma3.drv.ae9.mk. It seems to me that the library is not built and I have to build it first. I had noticed the same problem with the previous set up where the library file was missing. So basically there is no change. 

    I will look into a way to see if there is a way to build edma3_dll libraries and I will attempt to build them. I saw some instructions yesterday while I continued to work, but they are very old. If I am on the right path and have to build the library first, please point me to proper instructions so I can build. If there is an edma3_lld installation with prebuilt libraries, please send them so I can use them. If the configuro tool is supposed to build the library on the fly, then perhaps there is some other setting that is not right in my project. Please let me know if you need more info.

    Thanks

  • I think I mention before, but I emphasize again that line 31 of .cfg file is for loading the edma3_dll package as you can see in the following image.

  • I have not been able to build the libraries yet. There is much in the documentation for edma3 LLD that is new discoveries for me. So, I have not been able to build the library. Have you had any progress in responding to my questions, or providing the library? Many of subdirectories for other arm and dsp processors already have built in libs, in edma package. For example prebuilt libs exist for ARM15: edma3_lld_drv.aa15fg, and ARM8: edma3_lld_drv.aa8fg, but the directory for ARM9 is empty. Interestingly, the Resource Manager which is part of the edma3 LLD package is already built for ARM9, generic and other ARMS.

    I suppose it is my bad luck - :-), that the driver lib for arm9 which is what I need is not prebuilt. I think this is also a problem in the way the edma3 LLD is being delivered off Ti site which needs to be remedied in future.

    If you are working on building the libs, please send me a short message to let me know what progress you are making at your end. I am continuing to see if I can be successful. I have made some progress but still not there.

  • Hi

    Which version of Processor SDK AM437x are you using to get the components? 

    I tried building the demo mode EtherCAT project using following, and I do not see any linking errors:

    I see following logs for EDMA library linking:

    Inside EDMA3 Drv Sample getLibs
        will link with ti.sdo.edma3.drv.sample:lib/am437x-evm/arm9/release/edma3_lld_drv_sample.aa9fg
    	Linking with library ti.csl:./lib/am437x/a9/release/ti.csl.aa9fg
    Inside EDMA3 Drv getLibs
        will link with ti.sdo.edma3.drv:lib/arm9/release/edma3_lld_drv.aa9fg
    Inside EDMA3 RM getLibs
        will link with ti.sdo.edma3.rm:lib/am437x-evm/arm9/release/edma3_lld_rm.aa9fg

    Can you try once with a fresh installation of SDK and EtherCAT package? Please ensure that all the products and compilers are discovered correctly in CCS from this fresh installation. Please let us know the status once you can try this out.

    Regards

    Dhaval Khandla

  • Thanks for your reply and for building the demo version.

    I am using the same two pieces of software that you have indicated but I will re-install even though it does not appear to me that these software modules are the cause of the problem.

    I am also building the full EtherCAT Slave stack not the demo, but I don't think this is a major issue. 

    What is see is the different between your edma3_lld installation and mine. In my installation here is what I have as the available directory and library under ti.sdo.edma3.drv.sample:lib

    As you can see, there is no sign of the directory /am437x and the other subdir that contain ti.csl.a9fg

    Also, when building the EtherCAT full application, as I have shown before, for edma3_lld, reference is made to a different lib file, not the one you are pointing to which is also not present there in the edma3_lld package. Here is a shot of that. Please check the previous descriptions earlier in this question.

    Please note lines 31 and 31 of the project config file. They are both about the edma3 driver and they are pointing to a lib file in a different location that also does not exist. When I compile I get this error as the first error where configuro is not able to do its work because of missing file. 

    I will try to build the EtherCAT demo so I can align myself with you and see if I can get through that build with the same PROCESSOR SDK RTOS and PRUICSS-ETherCAT that I have and match yours.

    I feel the edma3 package that is available for down load needs to be build properly with the xdc tools and so on to contain all the necessary lib files. This package which I have downloaded from Ti website and has the latest version edma3_lld_02_12_00_20 seems to not have been maintained in while. Also, one would assume that edma3 would also be included with the PROCESSOR SDK RTOS but I have down loaded that separately because my PROCESSOR SDK RTOS -AM437x did not seem to have it, may be because I had another version of edma3_lld already installed in my \ti folder. So, another thing I can and will do, is to uninstall the edma3 that I have, uninstall PROCESSOR SDK RTOS-AM437x and reinstall PROCESSOR SDK RTOS-AM437x and see if the problem will go away.

    Looking forward to receiving your feedback too. 

  • Hi
    Thanks for your response.

    PROCESSOR-SDK-RTOS-AM437X  06_03_00_106 includes edma3_lld_2_12_05_30E, and the projectCreate script also expects this version:

    set "EDMA_VERSION=2.12.05.30"

    I see that you are using edma3_lld_02_12_00_20 which is incorrect.

    Farrokh Eshragi Azar said:
    may be because I had another version of edma3_lld already installed in my \ti folder. So, another thing I can and will do, is to uninstall the edma3 that I have, uninstall PROCESSOR SDK RTOS-AM437x and reinstall PROCESSOR SDK RTOS-AM437x and see if the problem will go away.

    This looks like the case. A simple test will be to install the SDK in a folder different from the default path("C:\ti") and add that custom path to "Product Discovery Path" in CCS->Windows->Preferences->Code Composer Studio->Products.

    Regards

    Dhaval Khandla

  • Hi Dhaval,

    I wanted to report back that I basically rebuilt my environment from scratch. I think perhaps there were more issues than just the edma3_lld at play that kept the project from being created properly. I don't know what they were, but they were solved once I revolutionized my tool sets and files according to the following:

    - reinstalled CCS and upgraded to 10.1.1

    - reinstalled processor_sdk_rtos_am437x_6_03_00_106 

    - reinstalled PRU-ICSS-EtherCAT_Slave_01.00.08.01

    - reinstalled PRU-ICSS-Industrial_Drives_01.00.02.03

    Ran the required setupenv.bat and projectCreate.bat and could generate the EtherCAT Demo project.

    I built the EtherCAT Demo software and it was finished with a few warnings, but no errors. From past experience and sharing with Ti, I know that the warnings are not going to affect the functionality. Now, I want to build the EtherCAT full and then EtherCAT full and CiA402 for motor control. So, please keep the case open for a couple more days and I will let you know so you can close it. I want to be sure that the edma3 problem won't raise its head again. It will take me some time to prepare the CCS stack from ETG and create the project.

    Thank you for the tips.

    Farrokh

     

  • Thank you. Everything is resolved. Could build all versions of EtherCAT slave including CiA402 that I wanted. You may close the case.