Skip to main content
ranran
Senior
Feb 25, 2019 10:23 AM UTC
Solved

Breakpoints change behavior when accessing external memory !

Hello,

I have a very weird behavior...

When trying to access external synchronous PSRAM.

I see the clock and cs change only if I stop and starts stepping inside the while(1) loop below.

When doing "go", there is no clock nor CS changes.

I tried to add delays as you can see, but nothing helps.

#define FPGA_BANK_ADDR 0x64000000
 
__IO uint8_t value;
__IO uint8_t * volatile psramaddress = (__IO uint8_t volatile*)FPGA_BANK_ADDR+2;
while(1)
{
 *psramaddress = value++; 
 rd_2 = *psramaddress ; 
HAL_Delay(500);
}

Is there any idea ?

Thanks

    This topic has been closed for replies.
    ranran
    ranranBest answer
    Senior
    Mar 1, 2019 8:34 AM UTC

    Seems to be like we missed the transaction in scope , and only saw the first transaction for some reason (altough not in trigger mode).

    Becuase in software/code, we did have succeeded in continous all registers from fpga, which means that clock transaction, and CS must have toggled for each transaction.

    2 replies

    Tesla DeLorean
    Guru
    Feb 25, 2019 11:44 AM UTC

    Check caching, buffering and sharing setting for memory region and try changing MPU settings.​

    Tips, Buy me a coffee, or three.. PayPal Venmo (See Profile) Up vote any posts that you find helpful, it shows what's working..
    ranran
    ranranAuthorBest answer
    Senior
    Mar 1, 2019 8:34 AM UTC

    Seems to be like we missed the transaction in scope , and only saw the first transaction for some reason (altough not in trigger mode).

    Becuase in software/code, we did have succeeded in continous all registers from fpga, which means that clock transaction, and CS must have toggled for each transaction.