Skip to main content
Graduate II
June 25, 2025
Solved

STM32N6 cache operations inside noncacheable memory

  • June 25, 2025
  • 4 replies
  • 473 views

Hi,

Looking into STM32CubeN6\Projects\STM32N6570-DK\Examples\SD\SD_ReadWrite_DMA example,
I see that quite heavy operations are used:

SCB_CleanDCache_by_Addr (aTxBuffer, BUFFER_SIZE);
// ...
SCB_InvalidateDCache_by_Addr (aRxBuffer, BUFFER_SIZE);

while the aRxBuffer[] and aTxBuffer[] are located in a noncacheable memory region.

uint8_t aTxBuffer[BUFFER_SIZE]__NON_CACHEABLE;
uint8_t aRxBuffer[BUFFER_SIZE ]__NON_CACHEABLE;

Could you please explain why?

Regards,
A

    This topic has been closed for replies.
    Best answer by Saket_Om

    Hello @ERROR 

    The fix has been released with STM32CubeN6 V1.3.0, now available on st.com.

    4 replies

    Technical Moderator
    July 30, 2025

    Hello @ERROR 

    Thank you for bringing this issue to our attention.

    I reported this internally.

    Internal ticket number: 213510 (This is an internal tracking number and is not accessible or usable by customers).

    ERRORAuthor
    Graduate II
    October 27, 2025

    Hi @Saket_Om 

    Is there any update?

    Regards.

    Technical Moderator
    October 27, 2025

    Hello @ERROR 

    The issue has been resolved internally by removing the __NON_CACHEABLE attribute from the buffer declarations, as shown below:

    /******** SD Transmission Buffer definition *******/
    uint8_t aTxBuffer[BUFFER_SIZE];
    /**************************************************/
    
    /******** SD Receive Buffer definition *******/
    uint8_t aRxBuffer[BUFFER_SIZE];
    /**************************************************/

    The fix will be available on st.com in the next release.

     

    Graduate II
    October 27, 2025

    Presumably for illustration of method for cache coherency.

    Would depend on Linker Script and suitable memory region allocation and MPU configuration. 

    Saket_OmAnswer
    Technical Moderator
    October 31, 2025

    Hello @ERROR 

    The fix has been released with STM32CubeN6 V1.3.0, now available on st.com.