infineon4engi@twitter infineon@linkedin infineon4engineers infineon@youtube
twitter Facebook Linkedin Youtube

Banner_AURIX_Security-Solution Banner_AURIX_Safety_Products ShieldBuddy TC275 Banner_AURIX_OnzerOS Banner_AURIX_DevelopmentStudio


+ Reply to Thread
Results 1 to 7 of 7

Thread: Error while building the code from the TC234 Motor Control Kit

  1. #1
    New Member New Member JeromeG is on a distinguished road
    Join Date
    Sep 2019
    Posts
    8
    Points
    80

    Error while building the code from the TC234 Motor Control Kit

    Hello,

    I am using a Motor Control kit with the AURIX TC234 and I downloaded the software from myInfineon.com.
    When i build the Code in eclipse i always get the same error:

    ltc E821: [".\1_ToolEnv\0_Build\1_Config\Lcf_Tasking.lsl" 194/15] LSL unexpected error: could not find heap section heap
    make[1]: Leaving directory `C:/…/.../WorkspaceFolder/BaseFramework_Tc27xB_eMotor_1v31_HW21_Enc_V3'
    ltc F019: unrecoverable error: fatal locate error
    make[1]: *** [2_Out/Tasking/BaseFramework_Tc27xB_eMotor_1v31_HW21_Enc_V3_Trico re.elf] Error 2
    make: *** [build] Error 2

    i am using the TASKING Compiler Version 6.3r1.


    Thanks for helping.
    Jerome Gossmann

  2. #2
    Intermediate Intermediate HIGHTEC.henk-piet.glas is on a distinguished road
    Join Date
    May 2017
    Posts
    135
    Points
    1368.75

    Hi Jerome,

    Did you check Lcf_Tasking.lsl? The error is thrown for line 194, but I'd search the entire file for the heap keyword. Maybe, for whatever reason, the heap definition is indeed missing. Chapter 17.8.3 of the TASKING user manual explains how to create such a section yourself. What you can also do is take a peek into any of the system LSL files listed in include.lsl (within your toolchain) and see how its done in there.

    Best regards,

    Henk-Piet Glas

    Principal Technical Specialist
    Embedded Software

  3. #3
    New Member New Member JeromeG is on a distinguished road
    Join Date
    Sep 2019
    Posts
    8
    Points
    80
    Hi Henk-Piet,

    this is the code section I found that includes the heap in tasking.lcl:

    #define LCF_HEAP_SIZE 2k

    #define LCF_CPU0 0

    #define LCF_DEFAULT_HOST LCF_CPU0

    #define LCF_DSPR0_START 0x70000000
    #define LCF_DSPR0_SIZE 184k

    #define LCF_CSA0_OFFSET (LCF_DSPR0_SIZE - 1k - LCF_CSA0_SIZE)
    #define LCF_ISTACK0_OFFSET (LCF_CSA0_OFFSET - 256 - LCF_ISTACK0_SIZE)
    #define LCF_USTACK0_OFFSET (LCF_ISTACK0_OFFSET - 256 - LCF_USTACK0_SIZE)

    #define LCF_HEAP0_OFFSET (LCF_USTACK0_OFFSET - LCF_HEAP_SIZE)

    /*Heap sections*/
    # if LCF_DEFAULT_HOST == LCF_CPU0
    group (ordered, align = 4, run_addr = mem:dsram0[LCF_HEAP0_OFFSET])
    # endif
    {
    heap "heap" (size = LCF_HEAP_SIZE);
    }

    Is this a proper definition for a heap section?

    Thanks.
    Jerome

  4. #4
    Intermediate Intermediate HIGHTEC.henk-piet.glas is on a distinguished road
    Join Date
    May 2017
    Posts
    135
    Points
    1368.75

    Hi Jerome,

    Looks OK to me. You still need to figure out where to position it into Lcf_Tasking.lsl. What you can do is perhaps take a regular BIFACES base project and drill down until you find one of its Lcf_Tasking.lsl files. Maybe those do contain a proper heap definition and it might simplify things integrating it into your engine project. Mind you, I'm not saying you should replace yours. I'm saying you can use a base project as a template to figure out how it's done.

    Best regards,

    Henk-Piet Glas

    Principal Technical Specialist
    Embedded Software

  5. #5
    New Member New Member JeromeB is on a distinguished road
    Join Date
    Nov 2019
    Posts
    1
    Points
    20
    Hi all,

    Sorry to ride up an old topic but I have exactly the same problem. I try to use a Tricore compilation toolchain on a new computer and to migrate some of my projects from SWFramework or BIFACES to TASKING.
    I precise that all these projects worked fine on my old computer (but i had a TASKING Compiler Version 6.2r2).

    Today, I am using the TASKING Compiler Version 6.3r1 on my new computer.

    All compilations are working until the critical error "LSL unexpected error: could not find heap section heap". (no matter if SWFramework, Bifaces or Tasking is used, the problem appears in each software)

    Furthermore I follow the advice of Henk-Piet Glas to take a regular BIFACES base project and the problem is the same. Compilation is OK until this LSL error:

    Building output 2_Out/Tricore_Tasking/BaseFramework_TC29B_Tc.elf
    ltc E821: [".\1_ToolEnv\0_Build\1_Config\Config_Tricore_Taski ng\Lcf_Tasking_Tricore_Tc.lsl" 394/9] LSL unexpected error: could not find heap section heap
    ltc F019: unrecoverable error: fatal locate error

    JeromeG, did you find an appropriate solution to solve this problem ? Did you remember two months after this solution please ?

    Thank you in advance for your reply.
    Best regards
    Jérôme B.
    Last edited by JeromeB; Nov 14th, 2019 at 06:35 AM.

  6. #6
    New Member New Member JeromeG is on a distinguished road
    Join Date
    Sep 2019
    Posts
    8
    Points
    80
    Hi,

    I commented the section out where the heap is referenced. This worked for me. I could not get it to work with the heap.

    JeromeG

  7. #7
    New Member New Member
    Infineon Employee
    Infineon Employee
    Funmix is on a distinguished road
    Join Date
    Nov 2013
    Posts
    35
    Points
    103.125
    Hello,

    Intiially I was facing the same issue.

    I did comparison between IFX baseframework (*.lsl) file vs eMotorKit (*.lsl) file.

    I noticed some modification has been done. Please refer to attached photo.


    Just sharing, hope it helps.

    Click image for larger version

Name:	tasking_lsl_error.JPG
Views:	8
Size:	100.1 KB
ID:	4432
    The views expressed here are my personal opinions, have not been reviewed or authorized by Infineon and do not necessarily represent the views of Infineon.

+ Reply to Thread
Disclaimer

All content and materials on this site are provided “as is“. Infineon makes no warranties or representations with regard to this content and these materials of any kind, whether express or implied, including without limitation, warranties or representations of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. No license, whether express or implied, is granted by Infineon. Use of the information on this site may require a license from a third party, or a license from Infineon.


Infineon accepts no liability for the content and materials on this site being accurate, complete or up- to-date or for the contents of external links. Infineon distances itself expressly from the contents of the linked pages, over the structure of which Infineon has no control.


Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Usage Terms of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Usage Terms of this site. Infineon reserves the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.