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

Banner_Aurix_Competition Banner_AURIX_Security-Solution Banner_AURIX_Safety_Products ShieldBuddy TC275 Banner_AURIX_OnzerOS Banner_AURIX_DevelopmentStudio


+ Reply to Thread
Results 1 to 6 of 6

Thread: About asm for TriCore297

  1. #1
    New Member New Member icework is on a distinguished road
    Join Date
    Sep 2019
    Posts
    20
    Points
    113.75

    About asm for TriCore297

    I write asm code with HighTech, I select tricore-gcc as my asm-tool, and I found some problems
    I found the rule of tricore-gcc for asm is different from the asm-tool in the "TriCore DSP Optimization Guide".
    for example, some codes always compiled NG:
    mulr.h %d3, %d4, %d5 ll, 1
    maddsur.h %d4,%d3,%d4,%d5 uu, 1
    the compiler always told me:
    ../src/cycleTest.S:18: error: Opcode/operand mismatch: mulr.h %d3,%d4,%d5 ll,1
    ../src/cycleTest.S:20: error: maddsur.h %d4,%d3,%d4,%d5 uu,1: Too many operands
    I don't know how change my code.
    Can I get the asm language guide for TriCore-gcc? how and where?

    Another problem, I think TriCore can provide intrinsic(C language) for the DSP instruction.
    I don't know how to obtain these instrinsic's guide, Is there anyone can tell me?

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

    Hi Shaquille,

    Concerning your first question, the ll suffix needs to be appended to the register. So rather than using:

    Code:
    mulr.h %d3,%d4,%d5 ll,1
    You'll have to use this instead:

    Code:
    mulr.h %d3,%d4,%d5ll,1
    For your 2nd question I think you're referring DSP lib source code, developed by Infineon. This is probably available via the MyICP channel. If you've not signed up to it yet then you can use this link to do so.

    Best regards,

    Henk-Piet Glas

    Principal Technical Specialist
    Embedded Software

  3. #3
    New Member New Member icework is on a distinguished road
    Join Date
    Sep 2019
    Posts
    20
    Points
    113.75
    Dear Henk-Piet Glas:
    Thanks for your promption for my 1st question.
    2nd, I don't mean "DSP lib", I mean "intrinsic function", for example:
    c code __mulr(....) -> asm code mulr
    c code __madd(...) -> asm code madd
    and so on....
    I cannot find this instrinsics' guide in myICP.

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

    Hi Shaquille,

    The AURIX tools support a number of builtin functions. These are listed in chapters 7.1 and 7.2 of your user manual. In addition we support a number of intrinsics as well. These can be added to your source code using:

    Code:
    #include <machine/intrinsics.h>
    
    int main(void) {
      /* whatever */
      return 0;
    }
    Physically this file can be found in tricore/include/machine relative to the root of your installation.

    The specific intrinsics that you are referring to, do not exist in our tools. You either have to create them yourself using either C or inline assembly (see chapter 8 of our user manual) or you need to discuss this with your Infineon representative.

    Best regards,

    Henk-Piet Glas

    Principal Technical Specialist
    Embedded Software

  5. #5
    New Member New Member icework is on a distinguished road
    Join Date
    Sep 2019
    Posts
    20
    Points
    113.75
    thanks for your help

  6. #6
    Intermediate Intermediate HIGHTEC.henk-piet.glas is on a distinguished road
    Join Date
    May 2017
    Posts
    135
    Points
    1368.75
    Quote Originally Posted by icework View Post
    thanks for your help

    No problem. Happy to help.

    Best regards,

    Henk-Piet Glas

    Principal Technical Specialist
    Embedded Software

+ 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.