提交 ed881ca6 编写于 作者: J jeshrz

fix overwrite issue when using SDRAM on STM32F7XX

上级 b12615f3
...@@ -212,11 +212,11 @@ int sdram_test(void) ...@@ -212,11 +212,11 @@ int sdram_test(void)
for (i = 0; i < SDRAM_SIZE / data_width; i++) for (i = 0; i < SDRAM_SIZE / data_width; i++)
{ {
#if SDRAM_DATA_WIDTH == 8 #if SDRAM_DATA_WIDTH == 8
*(__IO uint8_t *)(SDRAM_BANK_ADDR + i * data_width) = (uint8_t)0x55; *(__IO uint8_t *)(SDRAM_BANK_ADDR + i * data_width) = (uint8_t)(i % 100);
#elif SDRAM_DATA_WIDTH == 16 #elif SDRAM_DATA_WIDTH == 16
*(__IO uint16_t *)(SDRAM_BANK_ADDR + i * data_width) = (uint16_t)0x5555; *(__IO uint16_t *)(SDRAM_BANK_ADDR + i * data_width) = (uint16_t)(i % 1000);
#else #else
*(__IO uint32_t *)(SDRAM_BANK_ADDR + i * data_width) = (uint32_t)0x55555555; *(__IO uint32_t *)(SDRAM_BANK_ADDR + i * data_width) = (uint32_t)(i % 1000);
#endif #endif
} }
time_cast = rt_tick_get() - start_time; time_cast = rt_tick_get() - start_time;
...@@ -229,21 +229,21 @@ int sdram_test(void) ...@@ -229,21 +229,21 @@ int sdram_test(void)
{ {
#if SDRAM_DATA_WIDTH == 8 #if SDRAM_DATA_WIDTH == 8
data = *(__IO uint8_t *)(SDRAM_BANK_ADDR + i * data_width); data = *(__IO uint8_t *)(SDRAM_BANK_ADDR + i * data_width);
if (data != 0x55) if (data != i % 100)
{ {
LOG_E("SDRAM test failed!"); LOG_E("SDRAM test failed!");
break; break;
} }
#elif SDRAM_DATA_WIDTH == 16 #elif SDRAM_DATA_WIDTH == 16
data = *(__IO uint16_t *)(SDRAM_BANK_ADDR + i * data_width); data = *(__IO uint16_t *)(SDRAM_BANK_ADDR + i * data_width);
if (data != 0x5555) if (data != i % 1000)
{ {
LOG_E("SDRAM test failed!"); LOG_E("SDRAM test failed!");
break; break;
} }
#else #else
data = *(__IO uint32_t *)(SDRAM_BANK_ADDR + i * data_width); data = *(__IO uint32_t *)(SDRAM_BANK_ADDR + i * data_width);
if (data != 0x55555555) if (data != i % 1000)
{ {
LOG_E("SDRAM test failed!"); LOG_E("SDRAM test failed!");
break; break;
......
...@@ -671,7 +671,7 @@ static void HAL_FMC_MspInit(void){ ...@@ -671,7 +671,7 @@ static void HAL_FMC_MspInit(void){
/* USER CODE BEGIN FMC_MspInit 0 */ /* USER CODE BEGIN FMC_MspInit 0 */
/* USER CODE END FMC_MspInit 0 */ /* USER CODE END FMC_MspInit 0 */
GPIO_InitTypeDef GPIO_InitStruct ={0}; GPIO_InitTypeDef GPIO_InitStruct = {0};
if (FMC_Initialized) { if (FMC_Initialized) {
return; return;
} }
...@@ -716,53 +716,33 @@ static void HAL_FMC_MspInit(void){ ...@@ -716,53 +716,33 @@ static void HAL_FMC_MspInit(void){
PE15 ------> FMC_D12 PE15 ------> FMC_D12
PE13 ------> FMC_D10 PE13 ------> FMC_D10
*/ */
GPIO_InitStruct.Pin = GPIO_PIN_15|GPIO_PIN_8|GPIO_PIN_0|GPIO_PIN_5 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|GPIO_PIN_4; GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF12_FMC; GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_15|GPIO_PIN_10 GPIO_InitStruct.Pin = GPIO_PIN_3;
|GPIO_PIN_14|GPIO_PIN_9|GPIO_PIN_8; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_8 | GPIO_PIN_9 |\
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_PIN_10 | GPIO_PIN_14 | GPIO_PIN_15;
GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3 GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_7 | GPIO_PIN_8 | GPIO_PIN_9 |\
|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_12|GPIO_PIN_15 GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13 | GPIO_PIN_14 |\
|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_11; GPIO_PIN_15;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_3; GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4 |\
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_PIN_5 | GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13 | GPIO_PIN_14 |\
GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_PIN_15;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_3; GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_8 | GPIO_PIN_15;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_11|GPIO_PIN_14 GPIO_InitStruct.Pin = GPIO_PIN_3 | GPIO_PIN_5;
|GPIO_PIN_7|GPIO_PIN_10|GPIO_PIN_12|GPIO_PIN_15 HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
|GPIO_PIN_13;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
/* USER CODE BEGIN FMC_MspInit 1 */ /* USER CODE BEGIN FMC_MspInit 1 */
......
...@@ -103,7 +103,7 @@ menu "On-chip Peripheral Drivers" ...@@ -103,7 +103,7 @@ menu "On-chip Peripheral Drivers"
default n default n
config BSP_USING_FMC config BSP_USING_FMC
bool bool "Enable Flash Memory Controller(FMC)"
default n default n
config BSP_USING_LTDC config BSP_USING_LTDC
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册