cancel
Showing results for 
Search instead for 
Did you mean: 

SMT32_L4 non multiplexed asynchronous RAM IS61WV102416BL addressing issues

TGadn.2
Associate

Hello everyone,

For a university Project we are using a STM32L4 MCU together with the  IS61WV102416BL non multiplexed asynchronous SRAM. I followed the Application note which can be found at:

https://www.st.com/resource/en/application_note/dm00228015-using-stm32l476486-fsmc-peripheral-to-drive-external-memories--stmicroelectronics.pdf

Furthermore I adjusted the Linker file *.ld of my STM32 CubeIDE Project according to https://www.openstm32.org/forumthread2017 which works perfectly fine.

Now my Problem: When I try to write some data into my RAM I need to apply a Address Spacing of 8 like in:

  uint8_t * dest = malloc(100 * sizeof(uint16_t));

  for(int i = 0; i < 100; i++){

  *(dest + i*8) = i;

  }

If I do not do this I wont store the right values. Which makes it somehow inconsistent with the Internal RAM of the controller.

Now to my question, can I define somewhere how the spacing of the External RAM is done by the MCU. Because usually I would not need the 8 inside the *(dest + i*8) = i; expression. This causes also Problems my using standard functions as memcpy ect.

I hope I was able to explain the Problem somehow.

Best Regards!

0 REPLIES 0