Banner_AURIX_Security-Solution Banner_AURIX_Security-Solution Banner_AURIX_Security-Solution Banner_AURIX_Security-Solution


infineon4engineers Facebook

infineon@google+ Google+

infineon@linkedin linkedin

infineon4engi@twitter twitter

infineon@youtube youtube

+ Reply to Thread
Results 1 to 6 of 6

Thread: About asm for TriCore297

  1. #1
    Beginner Beginner icework is on a distinguished road
    Join Date
    Sep 2019
    Posts
    18
    Points
    145

    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
    130
    Points
    2587.5

    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
    Beginner Beginner icework is on a distinguished road
    Join Date
    Sep 2019
    Posts
    18
    Points
    145
    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
    130
    Points
    2587.5

    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
    Beginner Beginner icework is on a distinguished road
    Join Date
    Sep 2019
    Posts
    18
    Points
    145
    thanks for your help

  6. #6
    Intermediate Intermediate HIGHTEC.henk-piet.glas is on a distinguished road
    Join Date
    May 2017
    Posts
    130
    Points
    2587.5
    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.