Skip to main content
megahercas6
Associate III
December 27, 2016
Question

AXI vs TCM Flash interface

  • December 27, 2016
  • 2 replies
  • 1858 views
Posted on December 27, 2016 at 08:15

Hello,

I want to make some templates for STM32F7 because i really like performance of M7 while i just hate HALL libraries due to library code inefficiency.

In STM32CubeMX i can select AXI or TCM flash interface. I was unable to find or maybe just understand, why one is better than another one. Usually i write small highly optimized PID loop programs, so my code in not that big.

Can any one tell me pros and cons of each interface ?

Many thanks
    This topic has been closed for replies.

    2 replies

    Nesrine M_O
    Associate
    December 27, 2016
    Posted on December 27, 2016 at 09:31

    Hi

    karpavicius.Linas

    ‌,

    When the code size of the user application fits into the internal Flash memory, the latter would be the best execution region either:

    – Through TCM (Flash-ITCM) by enabling the ART-accelerator or

    – Through AXI/AHB by enabling the cache in order to reach 0-wait state at 216 MHz

    Note that the execution from Flash-ITCM/data in DTCM-RAM and Flash-AXI/data in DTCM-RAM have the same CoreMark score.

    I'd highly recommend you to have a look to the

    http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32cube-expansion-software/x-cube-32f7perf.html

    application note: it provides a demonstration of the performance of the STM32F7 Series devices in various memory partitioning configurations (different code and data locations).

    -Nesrine-

    Ifmy suggestanswers your question, please mark it as correct.

    Oliver Sedlacek
    Senior
    May 8, 2017
    Posted on May 08, 2017 at 16:28

    Having read AN4667 (thanks

    ELMHIRI.Syrine

    ‌ for the link) I can only come to the conclusion that the answer is 'it depends'. The application note lists FFT benchmark results showing AXI access is fractionally better on the STM32F76xxx, but in general I would say I'm hard pressed to tell the difference.