How to use external SDRAM with STM32H747
Hi.
I am test external SDRAM with STM32H747.
SDRAM chip is IS42S8640D-7TLI
I set SDRAM1 in FMC of Connectivity as followed
Clock and chip enable : SDCKE1+SDNE1
internal bank number : 4 banks
Address 13bits
DAta 8 bits
number of column address bits : 10 bits
number of row address bits : 13 bits
After I generate code,
'SystemInit_ExtMemCtl(void)' is not in sytem_stm32h7xx_dualcore_boot_cm4_cm7.c
The function is not anywhere.
Other example project for SDRAM has the function
What should i do more?
I added this code for testing SDRAM as below
/* USER CODE BEGIN 4 */
#define SDRAM_ADD 0xd0000000
uint8_t wdata[] = {0x1, 0x2, 0x3, 0x4, 0x5};
uint8_t rdata[10];
/* USER CODE END 4 */
void StartDefaultTask(void const * argument)
{
/* init code for USB_DEVICE */
MX_USB_DEVICE_Init();
/* USER CODE BEGIN 5 */
vAppCmdTaskInit();
int cnt=0;
memcpy((uint32_t *) SDRAM_ADD, wdata, 5);
memcpy(rdata, (uint32_t *) SDRAM_ADD, 5);
/* Infinite loop */
for(;;)
{
osDelay(1000);
HAL_GPIO_TogglePin(GPIOI, GPIO_PIN_7);
printf("Hello CDC Test %4d\r\n", cnt++);
}
/* USER CODE END 5 */
}
After compiling, in debug mode
when excute memcpy((uint32_t *) SDRAM_ADD, wdata, 5);
It occurs Hard fault.
Could anyone let me know how to set external SDRAM and fix my mistakes?
please help me..
