This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM2612: About the Memory Map

Part Number: AM2612
Other Parts Discussed in Thread: SYSCONFIG

Please provide information regarding the R5FSS Memory Map described in section 2.2 of the TRM.
1. It is stated that R5SS0_CORE0_TCMA_RAM maps to address 0x0000 0000 after boot completion; is it correct to understand that the Memory Region in SysConfig should be configured using these post-boot addresses?
(If specifying the TCMA RAM region, the configuration should be set within the 0x0000 0000 to 0x0003 FFFF range (Lockstep).)

2. R5SS0_CORE0_TMU is missing from the post-boot address map in Table 2-1; does this mean the region is no longer available?

 

  • Please provide information regarding the R5FSS Memory Map described in section 2.2 of the TRM.
    1. It is stated that R5SS0_CORE0_TCMA_RAM maps to address 0x0000 0000 after boot completion; is it correct to understand that the Memory Region in SysConfig should be configured using these post-boot addresses?

    Yes, your understanding is correct. After boot completion, the ROM-to-RAM swap (ROM Eclipse) remaps R5SS0_CORE0_TCMA_RAM to base address 0x0000_0000. You should configure your SysConfig memory regions using these post-boot addresses. This is followed in the SDK's example.syscfg files as well.

    2. R5SS0_CORE0_TMU is missing from the post-boot address map in Table 2-1; does this mean the region is no longer available?

    Can you please help me understand why do you need to use this region? Looks like this is reserved for internal use with the TMU related registers. I will also confirm this.

    Regards,
    Shaunak

  • Thank you for your reply.
    It is not necessary to use R5SS0_CORE0_TMU.
    I asked because R5SS0_CORE0_TMU was listed in Table 2-1 prior to the ROM Eclipse process.

    I would like to ask a follow-up question regarding the section settings in SysConfig.
    I referred to Example.syscfg.
    Section: User Shared Memory -> Region: USER_SHM_MEM
    Section: Log Shared Memory -> Region: LOG_SHM_MEM
    Are these the recommended settings?

  • It is not necessary to use R5SS0_CORE0_TMU.
    I asked because R5SS0_CORE0_TMU was listed in Table 2-1 prior to the ROM Eclipse process.

    I confirmed with our HW team, it is a bug in the TRM and i will file a ticket to get it fixed.

    I would like to ask a follow-up question regarding the section settings in SysConfig.
    I referred to Example.syscfg.
    Section: User Shared Memory -> Region: USER_SHM_MEM
    Section: Log Shared Memory -> Region: LOG_SHM_MEM
    Are these the recommended settings?

    User shared memory and Log shared memory are created as sections to specifically used in multi-core applications for creating shared buffers for applications and logging.They are allocated from OCRAM itself. It is recommended to follow the same as SDK to avoid any errors being thrown by the TI drivers. You can inspect your generated .map file to inspect how much memory is used from the allocated 0x4000 Bytes region and reduce it as needed.

    Regards,
    Shaunak

  • Thank you for your reply. I would like to ask a follow-up question.
    In the SysConfig section settings, I changed the "Code and Read-Only Data" location from OCRAM to TCMA.
    However, after switching to TCMA, registers such as PC, SP, and LR display "Error: unable to read" during debugging, and the program does not run correctly.
    Is it not possible to move "Code and Read-Only Data" away from OCRAM?
    My goal is to reduce access times by using TCMA.

  • This can be done, when you say you are not able to read, could you share some more info maybe ccs screenshot waht behaviour you are seeing.

  • I have uploaded the screenshots and the SysConfig configuration file to the link provided; please take a look.

    https://download.transfer.hennge.com/u146S19XMgKLRs
    File download password: p.i1376X

  • Apologies for the delay here, let me take a look here tomorrow.

  • Hi Masaki,

    I see the problem now, in your syscfg you have mpu config for TCMs memeory for default 32KB,

    but you are using the full 128KB,

    So you need to update it to either 128KB or 256KB based on how much you are going to use.

  • Thank you for your reply.
    Changing the setting to 256KB resolved the error.

    Please provide information on the following points:
    1. What exactly is configured in the "MPU ARMv7" section?
    2. What is the difference between "MPU ARMv7" and "Memory Region"?
    3. What is the relationship between "MPU ARMv7" and "Memory Region"?
    4. Regarding the SysConfig configuration file you downloaded, please let me know if any changes are required in the "MPU ARMv7" settings based on the current "Memory Region" configuration.

  • Hi MIyashita-san,

    1. What exactly is configured in the "MPU ARMv7" section?

    You basically configure what ARM Settings a particular memory region will have, such as cached, shared, protected. What roles can access it (user or supervised), if the memory region can execute code or not, if the region is bufferable or not.

    Basically, you can refer the Chapter-7 of this ARM R5F TRM and configure the options from "ARM MPUv7 CONFIG" section of sysconfig.

    ARM R5F TRM Link: /cfs-file/__key/communityserver-discussions-components-files/908/1067.DDI0460C_5F00_cortexr5_5F00_trm.pdf

    2. What is the difference between "MPU ARMv7" and "Memory Region"?
    3. What is the relationship between "MPU ARMv7" and "Memory Region"?

    MPU ARM V7 config defines the regions, the start and end addresses and the attributes discussed above.

    The "Memory Region" control what is defined in the linker.cmd which the sysconfig generates. For example if you define a region in MPU ARM V7 Section but do not create a section in the MEMORY REGION space, then the linker.cmd will not allocate any memory for that region.

    Similarly, if you create a region in MEMORY REGION but there is no section in MPU ARM v7 for that particular address range, the code/data placed there might not work as expected.

    Regarding the SysConfig configuration file you downloaded, please let me know if any changes are required in the "MPU ARMv7" settings based on the current "Memory Region" configuration.

    Based on the example.syscfg file i see, based on the context we have in this thread about TCM and USER SHARED MEMORY sections, i see everything is fine (with increased TCM in MPU ARM v7 space).

    My recommendation would be for the customer to analyse the complete memory requirement and layout for their application, and then for each memory section make sure:

    1. The expected/right configs are set in ARM MPU v7 region (refer the ARM TRM linked above to know what configurations results in what behaviour)

    2. There is a memory region and section created in MEMORY REGION so the actual linker.cmd and memory allocation contains the required region.

    Furthermore, they could analyse the .map file generated after build to make sure everything is rightly placed in the memory as per their required memory layout

    Regards,
    Shaunak

  • Thank you for your answer.

    It was helpful.