<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: TCM, AXIF CRAM in S32Z/E</title>
    <link>https://community.nxp.com/t5/S32Z-E/TCM-AXIF-CRAM/m-p/2333189#M257</link>
    <description>&lt;P&gt;Hi，&lt;SPAN&gt;HiddenSquid&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;I have received your questions and will help you to check it.&lt;/P&gt;
&lt;P&gt;BR&lt;/P&gt;
&lt;P&gt;Joey&lt;/P&gt;</description>
    <pubDate>Mon, 16 Mar 2026 03:22:27 GMT</pubDate>
    <dc:creator>Joey_z</dc:creator>
    <dc:date>2026-03-16T03:22:27Z</dc:date>
    <item>
      <title>TCM, AXIF CRAM</title>
      <link>https://community.nxp.com/t5/S32Z-E/TCM-AXIF-CRAM/m-p/2329936#M255</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I have some question about different RAM sections.&lt;/P&gt;&lt;P&gt;My setup:&lt;BR /&gt;S32E288-975EVB&lt;BR /&gt;S32 Design Studio 3.6.4&lt;BR /&gt;S32 Debug Probe&lt;/P&gt;&lt;P&gt;I have created an S32E288 project, where I have marked that I would like to use multiple cores and set my boot core as the M33. It then created multiple sub-projects for me, one for each core, with a total of 5 (M33, R52_0_0, R52_0_1, R52_1_0, R52_1_1), since I'm running them all in lockstep mode. I am able to generate and flash my boot core binaries as a BLOB to flash and run my boot code non-volatile.&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am now trying to bring up all the other cores for non-volatile use and I think I have managed to turn the cores on, but I am missing the runnable code from RAM.&lt;/P&gt;&lt;P&gt;I can see from the linker file, that there are multiple memory section like TCM-A, -B, -C, AXIM CRAM sections, AXIF CRAM section and so on:&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;* Target device: This linker is demo and it is using for device S32Z2xx and S32E2xx only
* Target core: core 0 cluster 0 (RTU0)
* Linker support for application running on RTU0 core0 only. It need to align with MPU default setup in core.c as well.
* Memory setting: Local ram of RTU0 (CRAM and DRAM)
*/

/*
* GCC Linker Command File:
* 0x30000000    0x3000FFFF  65536    ; RTU0_R52_0_TCM_A
* 0x30100000    0x30103FFF  16384    ; RTU0_R52_0_TCM_B
* 0x30200000    0x30203FFF  16384    ; RTU0_R52_0_TCM_C
* 0x31780000    0x317BFFFF  262144   ; RTU0_DRAM_0 (Fast Data 0)
* 0x317C0000    0x317FFFFF  262144   ; RTU0_DRAM_1 (Fast Data 1)
* 0x31800000    0x3187FFFF  524288   ; RTU0_DRAM_2 (Fast Data 2)
* 0x32100000    0x321FFFFF  1048575  ; RTU0_CRAM_0 (Code ram 0)
* 0x32200000    0x322FFFFF  1048575  ; RTU0_CRAM_1 (Code ram 1)
* 0x32300000    0x323FFFFF  1048575  ; RTU0_CRAM_2 (Code ram 2)
* 0x32400000    0x324FFFFF  1048575  ; RTU0_CRAM_3 (Code ram 3)
* 0x32500000    0x325FFFFF  1048575  ; RTU0_CRAM_4 (Code ram 4)
* 0x32600000    0x326FFFFF  1048575  ; RTU0_CRAM_5 (Code ram 5)
* 0x32700000    0x327FFFFF  1048575  ; RTU0_CRAM_6 (Code ram 6)
* 0x79900000    0x799FFFFF  1048575  ; RTU0_CRAM_0_AXIF (Code ram 0 AXIF)
* 0x79A00000    0x79AFFFFF  1048575  ; RTU0_CRAM_1_AXIF (Code ram 1 AXIF)
* 0x79B00000    0x79BFFFFF  1048575  ; RTU0_CRAM_2_AXIF (Code ram 2 AXIF)
* 0x79C00000    0x79CFFFFF  1048575  ; RTU0_CRAM_3_AXIF (Code ram 3 AXIF)
* 0x79D00000    0x79DFFFFF  1048575  ; RTU0_CRAM_4_AXIF (Code ram 4 AXIF)
* 0x79E00000    0x79EFFFFF  1048575  ; RTU0_CRAM_5_AXIF (Code ram 5 AXIF)
* 0x79F00000    0x79FFFFFF  1048575  ; RTU0_CRAM_6_AXIF (Code ram 6 AXIF)
* 0x4E400000    0x4E400FFF  4096     ; AE_SRAM
*/
HEAP_SIZE  = DEFINED(__heap_size__)  ? __heap_size__  : 0x00001000;

ENTRY(Reset_Handler)

MEMORY
{
    int_sram_no_cacheable_smu_m33   : ORIGIN = 0x250C0000, LENGTH = 0x0003C000    /* 240KB, needs to include int_results  */

    /*RTU0 ram section */
    int_atcm_c0_0               : ORIGIN = 0x30000000, LENGTH = 0x00010000    /* 64K */
    int_btcm_c0_0               : ORIGIN = 0x30100000, LENGTH = 0x00004000    /* 16K */
    int_ctcm_c0_0               : ORIGIN = 0x30200000, LENGTH = 0x00004000    /* 16K */

    int_atcm_c0_1               : ORIGIN = 0x30400000, LENGTH = 0x00010000    /* 64K */
    int_btcm_c0_1               : ORIGIN = 0x30500000, LENGTH = 0x00004000    /* 16K */
    int_ctcm_c0_1               : ORIGIN = 0x30600000, LENGTH = 0x00004000    /* 16K */

    int_atcm_c0_2               : ORIGIN = 0x30800000, LENGTH = 0x00010000    /* 64K */
    int_btcm_c0_2               : ORIGIN = 0x30900000, LENGTH = 0x00004000    /* 16K */
    int_ctcm_c0_2               : ORIGIN = 0x30A00000, LENGTH = 0x00004000    /* 16K */

    int_atcm_c0_3               : ORIGIN = 0x30C00000, LENGTH = 0x00010000    /* 64K */
    int_btcm_c0_3               : ORIGIN = 0x30D00000, LENGTH = 0x00004000    /* 16K */
    int_ctcm_c0_3               : ORIGIN = 0x30E00000, LENGTH = 0x00004000    /* 16K */

    int_sram_dram_c0_0          : ORIGIN = 0x31780000, LENGTH = 0x00020000    /* 128KB DRAM0 */
    int_sram_dram_c0_1          : ORIGIN = 0x317A0000, LENGTH = 0x00020000    /* 128KB DRAM0 */
    int_sram_dram_c0_2          : ORIGIN = 0x317C0000, LENGTH = 0x00020000    /* 128KB DRAM1 */
    int_sram_dram_c0_3          : ORIGIN = 0x317E0000, LENGTH = 0x00020000    /* 128KB DRAM1 */

    int_sram_no_cacheable_c0_0  : ORIGIN = 0x31800000, LENGTH = 0x00010000    /* 64KB DRAM2, needs to include int_results  */
    int_sram_no_cacheable_c0_1  : ORIGIN = 0x31810000, LENGTH = 0x00010000    /* 64KB DRAM2, needs to include int_results  */
    int_sram_no_cacheable_c0_2  : ORIGIN = 0x31820000, LENGTH = 0x00010000    /* 64KB DRAM2, needs to include int_results  */
    int_sram_no_cacheable_c0_3  : ORIGIN = 0x31830000, LENGTH = 0x00010000    /* 64KB DRAM2, needs to include int_results  */

    int_sram_rtu0_shareable     : ORIGIN = 0x31840000, LENGTH = 0x00040000    /* 256KB DRAM2 */

    /* For code section there are 2 interface: AXI-M: Global port-bus which can use for loading image, access from inside/outside sub-system AXI-F: Read-only port-bus, faster interface for code access. For this demo we're using AXI-M to load image and AXI-F for code execution. */
    int_sram_c0_0               : ORIGIN = 0x32100000, LENGTH = 0x001C0000    /* ~1.8MB */
    ram_end_c0_0                : ORIGIN = 0x322C0000, LENGTH = 0x00000000    /* End of core 0_0 */
    int_sram_c0_0_axif          : ORIGIN = 0x79900000, LENGTH = 0x001C0000    /* ~1.8MB */
    ram_end_c0_0_axif           : ORIGIN = 0x79AC0000, LENGTH = 0x00000000    /* End of core 0_0 */

    int_sram_c0_1               : ORIGIN = 0x322C0000, LENGTH = 0x001C0000    /* ~1.8MB */
    ram_end_c0_1                : ORIGIN = 0x32480000, LENGTH = 0x00000000    /* End of core 0_1 */
    int_sram_c0_1_axif          : ORIGIN = 0x79AC0000, LENGTH = 0x001C0000    /* ~1.8MB */
    ram_end_c0_1_axif           : ORIGIN = 0x79C80000, LENGTH = 0x00000000    /* End of core 0_1 */

    int_sram_c0_2               : ORIGIN = 0x32480000, LENGTH = 0x001C0000    /* ~1.8MB */
    ram_end_c0_2                : ORIGIN = 0x32640000, LENGTH = 0x00000000    /* End of core 0_2 */
    int_sram_c0_2_axif          : ORIGIN = 0x79C80000, LENGTH = 0x001C0000    /* ~1.8MB */
    ram_end_c0_2_axif           : ORIGIN = 0x79E40000, LENGTH = 0x00000000    /* End of core 0_2 */

    int_sram_c0_3               : ORIGIN = 0x32640000, LENGTH = 0x001C0000    /* ~1.8MB */
    ram_end_c0_3                : ORIGIN = 0x32800000, LENGTH = 0x00000000    /* End of core 0_3 */
    int_sram_c0_3_axif          : ORIGIN = 0x79E40000, LENGTH = 0x001C0000    /* ~1.8MB */
    ram_end_c0_3_axif           : ORIGIN = 0x7A000000, LENGTH = 0x00000000    /* End of core 0_3 */&lt;/LI-CODE&gt;&lt;P&gt;I understand that Tightly Coupled Memory is a part of RAM and it is even highly recommended to run code from TCM as it only takes one cycle to retrieve data from it.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Therefore:&lt;/STRONG&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;What is the difference between TCM-A, -B and -C and what are the usecases for each?&lt;/LI&gt;&lt;LI&gt;Why wouldn't I or why doesn't the demo use TCM to run code?&lt;UL&gt;&lt;LI&gt;Can the SMU core even write TCM?&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Additionally I can see from my M33 project Project_Settings -&amp;gt; Startup_Code -&amp;gt; system.c, that turning on the used cores is actually implemented through&amp;nbsp;&lt;SPAN&gt;SystemInit() with:&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;Sys_StartSecondaryCores()&lt;/STRONG&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;LI-CODE lang="markup"&gt;/*================================================================================================*/
/**
* @brief Sys_StartSecondaryCores
* @details Function used to start the secondary cores
*/
/*================================================================================================*/
static void Sys_StartSecondaryCores(void)
{
    /* Turn on partitions */
    Sys_PartitionsTurnOn();
    /* Configure Split-lock RTU0 if M33 core is boot core */
#if (defined(CORE_M33_0) &amp;amp;&amp;amp; \
     (defined(START_CR52_0_0) || defined(START_CR52_0_1) || defined(START_CR52_0_2) || defined(START_CR52_0_3)) \
    )
    #ifndef RTU0_R52_LOCKSTEP_MODE
        IP_RTU0__GPR-&amp;gt;CFG_CORE |= RTU_GPR_CFG_CORE_SPLT_LCK_MASK;
    #endif
#endif
    /* Configure Split-lock RTU1 */
#if (defined(START_CR52_1_0) || defined(START_CR52_1_1) || defined(START_CR52_1_2) || defined(START_CR52_1_3))
    #ifndef RTU1_R52_LOCKSTEP_MODE
        IP_RTU1__GPR-&amp;gt;CFG_CORE |= RTU_GPR_CFG_CORE_SPLT_LCK_MASK;
    #endif
#endif
    /* Release secondary cores to exit reset */
#ifdef START_CR52_0_0
    extern const uint32 __CORE_R52_0_0_START_ADDRESS;

    IP_MC_ME-&amp;gt;PRTN1_CORE0_ADDR = (uint32)&amp;amp;__CORE_R52_0_0_START_ADDRESS;
    IP_MC_ME-&amp;gt;PRTN1_CORE0_PCONF = 1;
    IP_MC_ME-&amp;gt;PRTN1_CORE0_PUPD = 1;
    IP_MC_ME-&amp;gt;CTL_KEY = 0x5AF0;
    IP_MC_ME-&amp;gt;CTL_KEY = 0xA50F;
    while (!(IP_MC_ME-&amp;gt;PRTN1_CORE0_STAT &amp;amp; MC_ME_PRTN1_CORE0_STAT_CCS_MASK)) {};
    IP_MC_RGM-&amp;gt;PRST_0[1].PRST_0 &amp;amp;= ~MC_RGM_PRST_0_PERIPH_65_RST_MASK;
    while(IP_MC_RGM-&amp;gt;PSTAT_0[1].PSTAT_0 &amp;amp; MC_RGM_PRST_0_PERIPH_65_RST_MASK);
#endif /*START_CR52_0_0*/
...&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;and&amp;nbsp;&lt;STRONG&gt;&lt;SPAN&gt;Sys_PartitionsTurnOn()&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;/**
* @brief Sys_PartitionsTurnOn
* @details Function used to turn on partitions
*/
/*================================================================================================*/
#if (defined(START_CR52_0_0) || defined(START_CR52_0_1) || defined(START_CR52_0_2) || defined(START_CR52_0_3) || \
     defined(START_CR52_1_0) || defined(START_CR52_1_1) || defined(START_CR52_1_2) || defined(START_CR52_1_3) || defined(START_CM33_0) \
    )
static void Sys_PartitionsTurnOn(void)
{
    /* Turn on RTU0 partition if M33 core is boot core */
#if (defined(CORE_M33_0) &amp;amp;&amp;amp; \
     (defined(START_CR52_0_0) || defined(START_CR52_0_1) || defined(START_CR52_0_2) || defined(START_CR52_0_3)) \
    )
    /* Enable partition clock */
    IP_MC_ME-&amp;gt;PRTN1_PCONF |= MC_ME_PRTN1_PCONF_PCE_MASK;
    IP_MC_ME-&amp;gt;PRTN1_PUPD |= MC_ME_PRTN1_PUPD_PCUD_MASK;
    IP_MC_ME-&amp;gt;CTL_KEY = 0x5AF0;
    IP_MC_ME-&amp;gt;CTL_KEY = 0xA50F;
    while (!(IP_MC_ME-&amp;gt;PRTN1_STAT &amp;amp; MC_ME_PRTN1_STAT_PCS_MASK));
    /* Release partition to exit reset */
    IP_MC_RGM-&amp;gt;PRST_0[1].PRST_0 &amp;amp;= ~MC_RGM_PRST_0_PERIPH_64_RST_MASK;
    /* Disable OSS  */
    IP_MC_ME-&amp;gt;PRTN1_PCONF &amp;amp;= ~MC_ME_PRTN1_PCONF_OSSE_MASK;
    IP_MC_ME-&amp;gt;PRTN1_PUPD |= MC_ME_PRTN1_PUPD_OSSUD_MASK;
    IP_MC_ME-&amp;gt;CTL_KEY = 0x5AF0;
    IP_MC_ME-&amp;gt;CTL_KEY = 0xA50F;
    while(IP_MC_RGM-&amp;gt;PSTAT_0[1].PSTAT_0 &amp;amp; MC_RGM_PRST_0_PERIPH_64_RST_MASK);
    while(IP_MC_ME-&amp;gt;PRTN1_STAT &amp;amp; MC_ME_PRTN1_STAT_OSSS_MASK);
    /* Deactivate RTU0 fencing logic and enable SRAM interface */
    IP_GPR3-&amp;gt;RTU0FDC = 0U;
    IP_RDC_0-&amp;gt;RD1_CTRL_REG |= RDC_RD1_CTRL_REG_RD1_CTRL_UNLOCK_MASK;
    IP_RDC_0-&amp;gt;RD1_CTRL_REG &amp;amp;= ~RDC_RD1_CTRL_REG_RD1_INTERCONNECT_INTERFACE_DISABLE_MASK;
    while(IP_RDC_0-&amp;gt;RD1_STAT_REG &amp;amp; RDC_RD1_STAT_REG_RD1_INTERCONNECT_INTERFACE_DISABLE_STAT_MASK);
#endif
    /* Turn on RTU1 partition */
#if (defined(START_CR52_1_0) || defined(START_CR52_1_1) || defined(START_CR52_1_2) || defined(START_CR52_1_3))
    /* Enable partition clock */
    IP_MC_ME-&amp;gt;PRTN2_PCONF |= MC_ME_PRTN2_PCONF_PCE_MASK;
    IP_MC_ME-&amp;gt;PRTN2_PUPD |= MC_ME_PRTN2_PUPD_PCUD_MASK;
    IP_MC_ME-&amp;gt;CTL_KEY = 0x5AF0;
    IP_MC_ME-&amp;gt;CTL_KEY = 0xA50F;
    while (!(IP_MC_ME-&amp;gt;PRTN2_STAT &amp;amp; MC_ME_PRTN2_STAT_PCS_MASK));
    /* Release partition to exit reset */
    IP_MC_RGM-&amp;gt;PRST_0[2].PRST_0 &amp;amp;= ~MC_RGM_PRST_0_PERIPH_128_RST_MASK;
    /* Disable OSS  */
    IP_MC_ME-&amp;gt;PRTN2_PCONF &amp;amp;= ~MC_ME_PRTN2_PCONF_OSSE_MASK;
    IP_MC_ME-&amp;gt;PRTN2_PUPD |= MC_ME_PRTN2_PUPD_OSSUD_MASK;
    IP_MC_ME-&amp;gt;CTL_KEY = 0x5AF0;
    IP_MC_ME-&amp;gt;CTL_KEY = 0xA50F;
    while(IP_MC_RGM-&amp;gt;PSTAT_0[2].PSTAT_0 &amp;amp; MC_RGM_PRST_0_PERIPH_128_RST_MASK);
    while(IP_MC_ME-&amp;gt;PRTN2_STAT &amp;amp; MC_ME_PRTN2_STAT_OSSS_MASK);
    /* Deactivate RTU1 fencing logic and enable SRAM interface */
    IP_GPR3-&amp;gt;RTU1FDC = 0U;
    IP_RDC_1-&amp;gt;RD1_CTRL_REG |= RDC_RD1_CTRL_REG_RD1_CTRL_UNLOCK_MASK;
    IP_RDC_1-&amp;gt;RD1_CTRL_REG &amp;amp;= ~RDC_RD1_CTRL_REG_RD1_INTERCONNECT_INTERFACE_DISABLE_MASK;
    while(IP_RDC_1-&amp;gt;RD1_STAT_REG &amp;amp; RDC_RD1_STAT_REG_RD1_INTERCONNECT_INTERFACE_DISABLE_STAT_MASK);
    /* Configure REMAP for NICs */
    IP_RTU1__RTUM_NIC_D-&amp;gt;REMAP = 0x02U;
    IP_RTU1__RTUF_NIC_D-&amp;gt;REMAP = 0x02U;
    IP_RTU1__RTUP_NIC_B-&amp;gt;REMAP = 0x02U;
    IP_RTU1__RTUE_NIC_D-&amp;gt;REMAP = 0x02U;
#endif
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But I can't find where the all the START_CR... defines are defined for actually turning the cores on. &lt;STRONG&gt;Is that some boot magic by the S32 Design Studio?&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;When the memory map marks "Slave Addressed by Each of the Masters" with colour codes for SMU, RTU0 Master, RTU1 Master:&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 673px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/378840i741A3FA9D3D42820/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Does it mean that only the marked colour Master can access this part of memory? So for example, when R0-CPU0_ATCM is grey at 0x3000_0000, does that mean, that when SMU tries to read/write 0x3000_0000, an error is generated or what happens or what exactly does it mean?&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 10 Mar 2026 15:03:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32Z-E/TCM-AXIF-CRAM/m-p/2329936#M255</guid>
      <dc:creator>HiddenSquid</dc:creator>
      <dc:date>2026-03-10T15:03:37Z</dc:date>
    </item>
    <item>
      <title>Re: TCM, AXIF CRAM</title>
      <link>https://community.nxp.com/t5/S32Z-E/TCM-AXIF-CRAM/m-p/2333189#M257</link>
      <description>&lt;P&gt;Hi，&lt;SPAN&gt;HiddenSquid&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;I have received your questions and will help you to check it.&lt;/P&gt;
&lt;P&gt;BR&lt;/P&gt;
&lt;P&gt;Joey&lt;/P&gt;</description>
      <pubDate>Mon, 16 Mar 2026 03:22:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32Z-E/TCM-AXIF-CRAM/m-p/2333189#M257</guid>
      <dc:creator>Joey_z</dc:creator>
      <dc:date>2026-03-16T03:22:27Z</dc:date>
    </item>
    <item>
      <title>Re: TCM, AXIF CRAM</title>
      <link>https://community.nxp.com/t5/S32Z-E/TCM-AXIF-CRAM/m-p/2333747#M261</link>
      <description>&lt;P&gt;Hi,&lt;SPAN&gt;HiddenSquid&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;1.What is the difference between TCM-A, -B and -C and what are the usecases for each?&lt;/STRONG&gt;&lt;BR /&gt;&amp;gt;&amp;gt;&amp;gt;You can refer to the attachment file for more the information of TCM-A, -B and -C. it is included in the RM.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;2.Why wouldn't I or why doesn't the demo use TCM to run code?&lt;/STRONG&gt;&lt;BR /&gt;&amp;gt;&amp;gt;&amp;gt;You can find the TCM be used to the R52 core, please following the Linker file picture in the attachment.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;3.Can the SMU core even write TCM?&lt;/STRONG&gt;&lt;BR /&gt;&amp;gt;&amp;gt;&amp;gt;For a Cortex-M33 core to access the address space of any TCM of an RTU Cortex-R52 core, you must initially perform additional configuration to ensure the correct operation of the accesses.&lt;/P&gt;
&lt;P&gt;Hope this information can help you, I will continue check your other question.&lt;/P&gt;
&lt;P&gt;BR&lt;/P&gt;
&lt;P&gt;Joey&lt;/P&gt;</description>
      <pubDate>Tue, 17 Mar 2026 03:07:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32Z-E/TCM-AXIF-CRAM/m-p/2333747#M261</guid>
      <dc:creator>Joey_z</dc:creator>
      <dc:date>2026-03-17T03:07:34Z</dc:date>
    </item>
    <item>
      <title>Re: TCM, AXIF CRAM</title>
      <link>https://community.nxp.com/t5/S32Z-E/TCM-AXIF-CRAM/m-p/2339910#M277</link>
      <description>&lt;P&gt;Hey&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/236188"&gt;@Joey_z&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for the reply! I have a couple follow up questions and actually also some answers I have found for my self.&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Are there any architectural/hardware restrictions for using TCM A, B and C for other than their intended purposes?&lt;/LI&gt;&lt;LI&gt;If the TCM is mostly used, then why would I ever use CRAM or DRAM sections of the RTU0/1?&lt;/LI&gt;&lt;LI&gt;So the only configurations, to access TCM from SMU, that need to be performed are the following?&lt;OL&gt;&lt;LI&gt;Disable caching on the appropriate R core&lt;/LI&gt;&lt;LI&gt;Disable gathering on the appropriate R core&lt;/LI&gt;&lt;/OL&gt;&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;&amp;gt;&amp;gt;&amp;gt;Regarding the magic defines:&lt;/STRONG&gt;&lt;UL&gt;&lt;LI&gt;They are mostly defined at two spots:&lt;UL&gt;&lt;LI&gt;Project properties -&amp;gt; C/C+ build -&amp;gt; Settings -&amp;gt; Tool Settings -&amp;gt; Standard S32DS Assembler -&amp;gt; Preprocessor -&amp;gt;Defined Symbols&lt;/LI&gt;&lt;LI&gt;Project properties -&amp;gt; C/C+ build -&amp;gt; Settings -&amp;gt; Tool Settings -&amp;gt; Standard S32DS C Compiler -&amp;gt; Preprocessor -&amp;gt; Defined Symbols&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;LI&gt;I have not yet confirmed whether they are only applied during debugging or for every build, but it would make sense they are defined for every build.&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Thanks for all the help!&lt;/P&gt;</description>
      <pubDate>Thu, 26 Mar 2026 09:10:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32Z-E/TCM-AXIF-CRAM/m-p/2339910#M277</guid>
      <dc:creator>HiddenSquid</dc:creator>
      <dc:date>2026-03-26T09:10:32Z</dc:date>
    </item>
  </channel>
</rss>

