cancel
Showing results for 
Search instead for 
Did you mean: 

Interrupts not working when application is running from PSRAM on STM32H7S78

Mardy
Associate

Title edited for clarity.


I am trying to debug an application that is intended to run out of PSRAM on the STM32H7S78-DK. I have created a simple FSBL which initializes the PSRAM and puts it into Memory Mapped mode and then executes a software BKPT to halt the CPU. I then load an application image using the debugger (JLink) into PSRAM and start it. The application appears to run fine but I cannot get any interrupts to fire. The application running out of PSRAM establishes a new vector table in RAM and updates the VTOR register. I have tried both SysTick and an interval timer (TIM6) to generate interrupts but no success. Looking at the peripheral and NVIC registers everything appears to be correct.

This is the MPU configuration for the PSRAM region:

    MPU_InitStruct.Number           = MPU_REGION_NUMBER1;
    MPU_InitStruct.BaseAddress      = 0x90000000;
    MPU_InitStruct.Size             = MPU_REGION_SIZE_32MB;
    MPU_InitStruct.SubRegionDisable = 0x0;
    MPU_InitStruct.TypeExtField     = MPU_TEX_LEVEL1;
    MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;
    MPU_InitStruct.IsShareable      = MPU_ACCESS_NOT_SHAREABLE;
    MPU_InitStruct.IsCacheable      = MPU_ACCESS_CACHEABLE;
    MPU_InitStruct.IsBufferable     = MPU_ACCESS_BUFFERABLE;

Any suggestions as to what to look at?

2 REPLIES 2
Andrew Neil
Super User

When you say "running out of", you mean "running from"  rather than "exhausting" - yes?

A complex system that works is invariably found to have evolved from a simple system that worked.
A complex system designed from scratch never works and cannot be patched up to make it work.
Mardy
Associate

I write the post this morning before my first cup of coffee. So, yes, "running from PSRAM".