This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Extend DTCM with an external RAM

Hi everyone!

We are working on a bare-metal ARM Cortex M7. It has no ROM and limited size for ITCM and DTCM.
We have an external RAM at 0x60000000 which is large enough. Can we utilize that memory (RAM) as an extend to DTCM?
Please note that the external memory that I mentioned is connected to AXI bus.

If it is not possible, can we reallocate the variables that we have on this external memory as a storage?

Warm regards
Mehran

Parents
  • Hi Mehran

    Tightly Coupled Memory (TCM) are usually relatively small areas of fast (zero wait-state) RAM, typically used to hold time-critical code and data, where the highest, predictable performance is required.  By contrast, "ordinary" external RAM, which is usually larger, slower and cheaper than TCM, can be used to hold code/data where performance is less important.

    You can't "extend" the DTCM into the ordinary RAM, because the two types of RAM are different, and they are handled differently by the Arm processor.

    However, you can move functions/variables from TCM to ordinary RAM if you wish, by placing their code/data sections explicitly using the scatter-file.
    There are various ways to do this, depending on the level of granularity that you need.  As a starting point, please see:

    https://developer.arm.com/documentation/100748/0623/Mapping-Code-and-Data-to-the-Target/Placement-of-functions-and-data-at-specific-addresses

    Hope this helps

    Stephen

Reply
  • Hi Mehran

    Tightly Coupled Memory (TCM) are usually relatively small areas of fast (zero wait-state) RAM, typically used to hold time-critical code and data, where the highest, predictable performance is required.  By contrast, "ordinary" external RAM, which is usually larger, slower and cheaper than TCM, can be used to hold code/data where performance is less important.

    You can't "extend" the DTCM into the ordinary RAM, because the two types of RAM are different, and they are handled differently by the Arm processor.

    However, you can move functions/variables from TCM to ordinary RAM if you wish, by placing their code/data sections explicitly using the scatter-file.
    There are various ways to do this, depending on the level of granularity that you need.  As a starting point, please see:

    https://developer.arm.com/documentation/100748/0623/Mapping-Code-and-Data-to-the-Target/Placement-of-functions-and-data-at-specific-addresses

    Hope this helps

    Stephen

Children
No data