forked from Imagelibrary/rtems
bsps/stm32h7: remove external memory initialization from nucleo-h743zi BSP
Nucleo board does not provide any external memory so code does not have any function here anyway. Sponsored-By: Precidata
This commit is contained in:
@@ -1,478 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file system_stm32h7xx.c
|
||||
* @author MCD Application Team
|
||||
* @brief CMSIS Cortex-M Device Peripheral Access Layer System Source File.
|
||||
*
|
||||
* This file provides two functions and one global variable to be called from
|
||||
* user application:
|
||||
* - SystemInit(): This function is called at startup just after reset and
|
||||
* before branch to main program. This call is made inside
|
||||
* the "startup_stm32h7xx.s" file.
|
||||
*
|
||||
* - SystemCoreClock variable: Contains the core clock (HCLK), it can be used
|
||||
* by the user application to setup the SysTick
|
||||
* timer or configure other parameters.
|
||||
*
|
||||
* - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must
|
||||
* be called whenever the core clock is changed
|
||||
* during program execution.
|
||||
*
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* <h2><center>© Copyright (c) 2017 STMicroelectronics.
|
||||
* All rights reserved.</center></h2>
|
||||
*
|
||||
* This software component is licensed by ST under BSD 3-Clause license,
|
||||
* the "License"; You may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at:
|
||||
* opensource.org/licenses/BSD-3-Clause
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#include <stm32h7xx_hal.h>
|
||||
|
||||
#define DATA_IN_ExtSRAM
|
||||
#define DATA_IN_ExtSDRAM
|
||||
|
||||
void SystemInit_ExtMemCtl(void)
|
||||
{
|
||||
|
||||
#define FMC_BMAP_Value 0x02000000 /* FMC Bank Mapping 2 (SDRAM Bank2 remapped) */
|
||||
|
||||
__IO uint32_t tmp = 0;
|
||||
|
||||
|
||||
/********** SDRAM + SRAM ***********************************************************************/
|
||||
|
||||
#if defined (DATA_IN_ExtSDRAM) && defined (DATA_IN_ExtSRAM)
|
||||
|
||||
register uint32_t tmpreg = 0, timeout = 0xFFFF;
|
||||
register __IO uint32_t index;
|
||||
|
||||
/*-- I/O Ports Configuration ------------------------------------------------------*/
|
||||
|
||||
/* Enable GPIOD, GPIOE, GPIOF, GPIOG, GPIOH and GPIOI interface clock */
|
||||
RCC->AHB4ENR |= 0x000001F8;
|
||||
|
||||
/* Delay after an RCC peripheral clock enabling */
|
||||
tmp = READ_BIT(RCC->AHB4ENR, RCC_AHB4ENR_GPIOEEN);
|
||||
|
||||
/* Connect PDx pins to FMC Alternate function */
|
||||
GPIOD->AFR[0] = 0x00CC00CC;
|
||||
GPIOD->AFR[1] = 0xCCCCCCCC;
|
||||
/* Configure PDx pins in Alternate function mode */
|
||||
GPIOD->MODER = 0xAAAAFAFA;
|
||||
/* Configure PDx pins speed to 100 MHz */
|
||||
GPIOD->OSPEEDR = 0xFFFF0F0F;
|
||||
/* Configure PDx pins Output type to push-pull */
|
||||
GPIOD->OTYPER = 0x00000000;
|
||||
/* Configure PDx pins in Pull-up */
|
||||
GPIOD->PUPDR = 0x55550505;
|
||||
|
||||
/* Connect PEx pins to FMC Alternate function */
|
||||
GPIOE->AFR[0] = 0xC00CC0CC;
|
||||
GPIOE->AFR[1] = 0xCCCCCCCC;
|
||||
/* Configure PEx pins in Alternate function mode */
|
||||
GPIOE->MODER = 0xAAAABEBA;
|
||||
/* Configure PEx pins speed to 100 MHz */
|
||||
GPIOE->OSPEEDR = 0xFFFFC3CF;
|
||||
/* Configure PEx pins Output type to push-pull */
|
||||
GPIOE->OTYPER = 0x00000000;
|
||||
/* Configure PEx pins in Pull-up */
|
||||
GPIOE->PUPDR = 0x55554145;
|
||||
|
||||
/* Connect PFx pins to FMC Alternate function */
|
||||
GPIOF->AFR[0] = 0x00CCCCCC;
|
||||
GPIOF->AFR[1] = 0xCCCCC000;
|
||||
/* Configure PFx pins in Alternate function mode */
|
||||
GPIOF->MODER = 0xAABFFAAA;
|
||||
/* Configure PFx pins speed to 100 MHz */
|
||||
GPIOF->OSPEEDR = 0xFFC00FFF;
|
||||
/* Configure PFx pins Output type to push-pull */
|
||||
GPIOF->OTYPER = 0x00000000;
|
||||
/* Configure PFx pins in Pull-up */
|
||||
GPIOF->PUPDR = 0x55400555;
|
||||
|
||||
/* Connect PGx pins to FMC Alternate function */
|
||||
GPIOG->AFR[0] = 0x00CCCCCC;
|
||||
GPIOG->AFR[1] = 0xC0000C0C;
|
||||
/* Configure PGx pins in Alternate function mode */
|
||||
GPIOG->MODER = 0xBFEEFAAA;
|
||||
/* Configure PGx pins speed to 100 MHz */
|
||||
GPIOG->OSPEEDR = 0xC0330FFF;
|
||||
/* Configure PGx pins Output type to push-pull */
|
||||
GPIOG->OTYPER = 0x00000000;
|
||||
/* Configure PGx pins in Pull-up */
|
||||
GPIOG->PUPDR = 0x40110555;
|
||||
|
||||
/* Connect PHx pins to FMC Alternate function */
|
||||
GPIOH->AFR[0] = 0xCCC00000;
|
||||
GPIOH->AFR[1] = 0xCCCCCCCC;
|
||||
/* Configure PHx pins in Alternate function mode */
|
||||
GPIOH->MODER = 0xAAAAABFF;
|
||||
/* Configure PHx pins speed to 100 MHz */
|
||||
GPIOH->OSPEEDR = 0xFFFFFC00;
|
||||
/* Configure PHx pins Output type to push-pull */
|
||||
GPIOH->OTYPER = 0x00000000;
|
||||
/* Configure PHx pins in Pull-up */
|
||||
GPIOH->PUPDR = 0x55555400;
|
||||
|
||||
/* Connect PIx pins to FMC Alternate function */
|
||||
GPIOI->AFR[0] = 0xCCCCCCCC;
|
||||
GPIOI->AFR[1] = 0x00000CC0;
|
||||
/* Configure PIx pins in Alternate function mode */
|
||||
GPIOI->MODER = 0xFFEBAAAA;
|
||||
/* Configure PIx pins speed to 100 MHz */
|
||||
GPIOI->OSPEEDR = 0x003CFFFF;
|
||||
/* Configure PIx pins Output type to push-pull */
|
||||
GPIOI->OTYPER = 0x00000000;
|
||||
/* Configure PIx pins in Pull-up */
|
||||
GPIOI->PUPDR = 0x00145555;
|
||||
|
||||
/*-- FMC Configuration ------------------------------------------------------*/
|
||||
|
||||
/* Enable the FMC/FSMC interface clock */
|
||||
(RCC->AHB3ENR |= (RCC_AHB3ENR_FMCEN));
|
||||
|
||||
/* Configure and enable Bank1_SRAM2 */
|
||||
FMC_Bank1_R->BTCR[4] = 0x00001091;
|
||||
FMC_Bank1_R->BTCR[5] = 0x00110212;
|
||||
FMC_Bank1E_R->BWTR[4] = 0x0FFFFFFF;
|
||||
|
||||
/* SDRAM Timing and access interface configuration */
|
||||
|
||||
/*SDBank = FMC_SDRAM_BANK2
|
||||
|
||||
ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_9 CC
|
||||
RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12 RR
|
||||
MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_32 MM
|
||||
InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4 N
|
||||
CASLatency = FMC_SDRAM_CAS_LATENCY_2 LL // 2 oder 3, s.u.
|
||||
WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE W
|
||||
SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2 KK
|
||||
ReadBurst = FMC_SDRAM_RBURST_ENABLE B
|
||||
ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_0 PP
|
||||
|
||||
LoadToActiveDelay = 2 -> 1 LLLL TMRD
|
||||
ExitSelfRefreshDelay = 6 -> 5 EEEE TXSR
|
||||
SelfRefreshTime = 4 -> 3 SSSS TRAS
|
||||
RowCycleDelay = 6 -> 5 RRRR TRC
|
||||
WriteRecoveryTime = 2 -> 1 WWWW TWR
|
||||
RPDelay = 2 -> 1 PPPP TRP
|
||||
RCDDelay = 2 -> 1 CCCC TRCD */
|
||||
#if 0
|
||||
FMC_Bank5_6_R->SDCR[0] = 0x00005965; // 0000 0000 0000 0000 0101 1001 0110 0101 Bank 1
|
||||
// PPB KKWL LNMM RRCC
|
||||
FMC_Bank5_6_R->SDCR[1] = 0x00005965; // 0000 0000 0000 0000 0101 1001 0110 0101 Bank 2 // CAS Latency = 2
|
||||
// WL LNMM RRCC
|
||||
|
||||
FMC_Bank5_6_R->SDTR[0] = 0x00105000; // 0000 0000 0001 0000 0101 0000 0000 0000 Bank 1 // Original,
|
||||
// CCCC PPPP WWWW RRRR SSSS EEEE LLLL // mit CAS Latency = 2 (s.o.)
|
||||
FMC_Bank5_6_R->SDTR[1] = 0x01010351; // 0000 0001 0000 0001 0000 0011 0101 0001 Bank 2
|
||||
// CCCC WWWW SSSS EEEE LLLL
|
||||
#endif
|
||||
#if 0
|
||||
FMC_Bank5_6_R->SDTR[0] = 0x00206000; // 0000 0000 0010 0000 0110 0000 0000 0000 Bank 1 // Original + 1 bei allen Werten,
|
||||
// CCCC PPPP WWWW RRRR SSSS EEEE LLLL // mit CAS Latency = 3 (s.o.)
|
||||
FMC_Bank5_6_R->SDTR[1] = 0x02020462; // 0000 0010 0000 0010 0000 0100 0110 0010 Bank 2
|
||||
// CCCC WWWW SSSS EEEE LLLL
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
FMC_Bank5_6_R->SDTR[0] = 0x00209000; // 0000 0000 0010 0000 1001 0000 0000 0000 Bank 1 // Versuch anhand ISSI-Datenblatt,
|
||||
// CCCC PPPP WWWW RRRR SSSS EEEE LLLL // mit CAS Latency = 3 (s.o.)
|
||||
FMC_Bank5_6_R->SDTR[1] = 0x020306B1; // 0000 0010 0000 0011 0000 0110 1011 0001 Bank 2
|
||||
// CCCC WWWW SSSS EEEE LLLL
|
||||
#endif
|
||||
FMC_Bank5_6_R->SDCR[0] = 0x00001800;
|
||||
FMC_Bank5_6_R->SDCR[1] = 0x00000165;
|
||||
FMC_Bank5_6_R->SDTR[0] = 0x00105000;
|
||||
FMC_Bank5_6_R->SDTR[1] = 0x01010351;
|
||||
|
||||
/* SDRAM initialization sequence */
|
||||
|
||||
/* Clock enable command */
|
||||
FMC_Bank5_6_R->SDCMR = 0x00000009;
|
||||
tmpreg = FMC_Bank5_6_R->SDSR & 0x00000020;
|
||||
while ((tmpreg != 0) && (timeout-- > 0))
|
||||
{
|
||||
tmpreg = FMC_Bank5_6_R->SDSR & 0x00000020;
|
||||
}
|
||||
|
||||
/* Delay */
|
||||
for (index=0; index<1000; index++);
|
||||
|
||||
/* PALL command */
|
||||
FMC_Bank5_6_R->SDCMR = 0x0000000A;
|
||||
timeout = 0xFFFF;
|
||||
while ((tmpreg != 0) && (timeout-- > 0))
|
||||
{
|
||||
tmpreg = FMC_Bank5_6_R->SDSR & 0x00000020;
|
||||
}
|
||||
|
||||
FMC_Bank5_6_R->SDCMR = 0x000000EB;
|
||||
timeout = 0xFFFF;
|
||||
while ((tmpreg != 0) && (timeout-- > 0))
|
||||
{
|
||||
tmpreg = FMC_Bank5_6_R->SDSR & 0x00000020;
|
||||
}
|
||||
|
||||
FMC_Bank5_6_R->SDCMR = 0x0004400C;
|
||||
timeout = 0xFFFF;
|
||||
while ((tmpreg != 0) && (timeout-- > 0))
|
||||
{
|
||||
tmpreg = FMC_Bank5_6_R->SDSR & 0x00000020;
|
||||
}
|
||||
|
||||
/* Set refresh count */
|
||||
tmpreg = FMC_Bank5_6_R->SDRTR;
|
||||
FMC_Bank5_6_R->SDRTR = (tmpreg | (0x00000603 << 1));
|
||||
|
||||
/* Disable write protection */
|
||||
tmpreg = FMC_Bank5_6_R->SDCR[1];
|
||||
FMC_Bank5_6_R->SDCR[1] = (tmpreg & 0xFFFFFDFF);
|
||||
|
||||
/* Configure FMC Bank Mapping */
|
||||
FMC_Bank1_R->BTCR[0] |= FMC_BMAP_Value;
|
||||
|
||||
/* FMC controller Enable */
|
||||
FMC_Bank1_R->BTCR[0] |= 0x80000000;
|
||||
|
||||
|
||||
/********** SDRAM only *************************************************************************/
|
||||
|
||||
#elif defined (DATA_IN_ExtSDRAM)
|
||||
|
||||
register uint32_t tmpreg = 0, timeout = 0xFFFF;
|
||||
register __IO uint32_t index;
|
||||
|
||||
/*-- I/O Ports Configuration ------------------------------------------------------*/
|
||||
|
||||
/* Enable GPIOD, GPIOE, GPIOF, GPIOG, GPIOH and GPIOI interface clock */
|
||||
RCC->AHB4ENR |= 0x000001F8;
|
||||
|
||||
/* Connect PDx pins to FMC Alternate function */
|
||||
GPIOD->AFR[0] = 0x000000CC;
|
||||
GPIOD->AFR[1] = 0xCC000CCC;
|
||||
/* Configure PDx pins in Alternate function mode */
|
||||
GPIOD->MODER = 0xAFEAFFFA;
|
||||
/* Configure PDx pins speed to 100 MHz */
|
||||
GPIOD->OSPEEDR = 0xF03F000F;
|
||||
/* Configure PDx pins Output type to push-pull */
|
||||
GPIOD->OTYPER = 0x00000000;
|
||||
/* Configure PDx pins in Pull-up */
|
||||
GPIOD->PUPDR = 0x50150005;
|
||||
|
||||
/* Connect PEx pins to FMC Alternate function */
|
||||
GPIOE->AFR[0] = 0xC00000CC;
|
||||
GPIOE->AFR[1] = 0xCCCCCCCC;
|
||||
/* Configure PEx pins in Alternate function mode */
|
||||
GPIOE->MODER = 0xAAAABFFA;
|
||||
/* Configure PEx pins speed to 100 MHz */
|
||||
GPIOE->OSPEEDR = 0xFFFFC00F;
|
||||
/* Configure PEx pins Output type to push-pull */
|
||||
GPIOE->OTYPER = 0x00000000;
|
||||
/* Configure PEx pins in Pull-up */
|
||||
GPIOE->PUPDR = 0x55554005;
|
||||
|
||||
/* Connect PFx pins to FMC Alternate function */
|
||||
GPIOF->AFR[0] = 0x00CCCCCC;
|
||||
GPIOF->AFR[1] = 0xCCCCC000;
|
||||
/* Configure PFx pins in Alternate function mode */
|
||||
GPIOF->MODER = 0xAABFFAAA;
|
||||
/* Configure PFx pins speed to 100 MHz */
|
||||
GPIOF->OSPEEDR = 0xFFC00FFF;
|
||||
/* Configure PFx pins Output type to push-pull */
|
||||
GPIOF->OTYPER = 0x00000000;
|
||||
/* Configure PFx pins in Pull-up */
|
||||
GPIOF->PUPDR = 0x55400555;
|
||||
|
||||
/* Connect PGx pins to FMC Alternate function */
|
||||
GPIOG->AFR[0] = 0x00CCCCCC;
|
||||
GPIOG->AFR[1] = 0xC000000C;
|
||||
/* Configure PGx pins in Alternate function mode */
|
||||
GPIOG->MODER = 0xBFFEFAAA;
|
||||
/* Configure PGx pins speed to 100 MHz */
|
||||
GPIOG->OSPEEDR = 0xC0030FFF;
|
||||
/* Configure PGx pins Output type to push-pull */
|
||||
GPIOG->OTYPER = 0x00000000;
|
||||
/* Configure PGx pins in Pull-up */
|
||||
GPIOG->PUPDR = 0x40010555;
|
||||
|
||||
/* Connect PHx pins to FMC Alternate function */
|
||||
GPIOH->AFR[0] = 0xCCC00000;
|
||||
GPIOH->AFR[1] = 0xCCCCCCCC;
|
||||
/* Configure PHx pins in Alternate function mode */
|
||||
GPIOH->MODER = 0xAAAAABFF;
|
||||
/* Configure PHx pins speed to 100 MHz */
|
||||
GPIOH->OSPEEDR = 0xFFFFFC00;
|
||||
/* Configure PHx pins Output type to push-pull */
|
||||
GPIOH->OTYPER = 0x00000000;
|
||||
/* Configure PHx pins in Pull-up */
|
||||
GPIOH->PUPDR = 0x55555400;
|
||||
|
||||
/* Connect PIx pins to FMC Alternate function */
|
||||
GPIOI->AFR[0] = 0xCCCCCCCC;
|
||||
GPIOI->AFR[1] = 0x00000CC0;
|
||||
/* Configure PIx pins in Alternate function mode */
|
||||
GPIOI->MODER = 0xFFEBAAAA;
|
||||
/* Configure PIx pins speed to 100 MHz */
|
||||
GPIOI->OSPEEDR = 0x003CFFFF;
|
||||
/* Configure PIx pins Output type to push-pull */
|
||||
GPIOI->OTYPER = 0x00000000;
|
||||
/* Configure PIx pins in Pull-up */
|
||||
GPIOI->PUPDR = 0x00145555;
|
||||
|
||||
/*-- FMC Configuration ------------------------------------------------------*/
|
||||
|
||||
/* Enable the FMC interface clock */
|
||||
(RCC->AHB3ENR |= (RCC_AHB3ENR_FMCEN));
|
||||
|
||||
/* SDRAM Timing and access interface configuration */
|
||||
|
||||
/*LoadToActiveDelay = 2
|
||||
ExitSelfRefreshDelay = 6
|
||||
SelfRefreshTime = 4
|
||||
RowCycleDelay = 6
|
||||
WriteRecoveryTime = 2
|
||||
RPDelay = 2
|
||||
RCDDelay = 2
|
||||
SDBank = FMC_SDRAM_BANK2
|
||||
ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_9
|
||||
RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12
|
||||
MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_32
|
||||
InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4
|
||||
CASLatency = FMC_SDRAM_CAS_LATENCY_2
|
||||
WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE
|
||||
SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2
|
||||
ReadBurst = FMC_SDRAM_RBURST_ENABLE
|
||||
ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_0*/
|
||||
|
||||
FMC_Bank5_6_R->SDCR[0] = 0x00001800;
|
||||
FMC_Bank5_6_R->SDCR[1] = 0x00000165;
|
||||
FMC_Bank5_6_R->SDTR[0] = 0x00105000;
|
||||
FMC_Bank5_6_R->SDTR[1] = 0x01010351;
|
||||
|
||||
/* SDRAM initialization sequence */
|
||||
/* Clock enable command */
|
||||
FMC_Bank5_6_R->SDCMR = 0x00000009;
|
||||
tmpreg = FMC_Bank5_6_R->SDSR & 0x00000020;
|
||||
while ((tmpreg != 0) && (timeout-- > 0))
|
||||
{
|
||||
tmpreg = FMC_Bank5_6_R->SDSR & 0x00000020;
|
||||
}
|
||||
|
||||
/* Delay */
|
||||
for (index=0; index<1000; index++);
|
||||
|
||||
/* PALL command */
|
||||
FMC_Bank5_6_R->SDCMR = 0x0000000A;
|
||||
timeout = 0xFFFF;
|
||||
while ((tmpreg != 0) && (timeout-- > 0))
|
||||
{
|
||||
tmpreg = FMC_Bank5_6_R->SDSR & 0x00000020;
|
||||
}
|
||||
|
||||
FMC_Bank5_6_R->SDCMR = 0x000000EB;
|
||||
timeout = 0xFFFF;
|
||||
while ((tmpreg != 0) && (timeout-- > 0))
|
||||
{
|
||||
tmpreg = FMC_Bank5_6_R->SDSR & 0x00000020;
|
||||
}
|
||||
|
||||
FMC_Bank5_6_R->SDCMR = 0x0004400C;
|
||||
timeout = 0xFFFF;
|
||||
while ((tmpreg != 0) && (timeout-- > 0))
|
||||
{
|
||||
tmpreg = FMC_Bank5_6_R->SDSR & 0x00000020;
|
||||
}
|
||||
/* Set refresh count */
|
||||
tmpreg = FMC_Bank5_6_R->SDRTR;
|
||||
FMC_Bank5_6_R->SDRTR = (tmpreg | (0x00000603<<1));
|
||||
|
||||
/* Disable write protection */
|
||||
tmpreg = FMC_Bank5_6_R->SDCR[1];
|
||||
FMC_Bank5_6_R->SDCR[1] = (tmpreg & 0xFFFFFDFF);
|
||||
|
||||
/* FMC controller Enable */
|
||||
FMC_Bank1_R->BTCR[0] |= 0x80000000;
|
||||
|
||||
/********** SRAM only **************************************************************************/
|
||||
|
||||
#elif defined(DATA_IN_ExtSRAM)
|
||||
|
||||
/*-- I/O Ports Configuration -----------------------------------------------------*/
|
||||
|
||||
/* Enable GPIOD, GPIOE, GPIOF and GPIOG interface clock */
|
||||
RCC->AHB4ENR |= 0x00000078;
|
||||
|
||||
/* Connect PDx pins to FMC Alternate function */
|
||||
GPIOD->AFR[0] = 0x00CC00CC;
|
||||
GPIOD->AFR[1] = 0xCCCCCCCC;
|
||||
/* Configure PDx pins in Alternate function mode */
|
||||
GPIOD->MODER = 0xAAAAFABA;
|
||||
/* Configure PDx pins speed to 100 MHz */
|
||||
GPIOD->OSPEEDR = 0xFFFF0F0F;
|
||||
/* Configure PDx pins Output type to push-pull */
|
||||
GPIOD->OTYPER = 0x00000000;
|
||||
/* Configure PDx pins in Pull-up */
|
||||
GPIOD->PUPDR = 0x55550505;
|
||||
|
||||
/* Connect PEx pins to FMC Alternate function */
|
||||
GPIOE->AFR[0] = 0xC00CC0CC;
|
||||
GPIOE->AFR[1] = 0xCCCCCCCC;
|
||||
/* Configure PEx pins in Alternate function mode */
|
||||
GPIOE->MODER = 0xAAAABEBA;
|
||||
/* Configure PEx pins speed to 100 MHz */
|
||||
GPIOE->OSPEEDR = 0xFFFFC3CF;
|
||||
/* Configure PEx pins Output type to push-pull */
|
||||
GPIOE->OTYPER = 0x00000000;
|
||||
/* Configure PEx pins in Pull-up */
|
||||
GPIOE->PUPDR = 0x55554145;
|
||||
|
||||
/* Connect PFx pins to FMC Alternate function */
|
||||
GPIOF->AFR[0] = 0x00CCCCCC;
|
||||
GPIOF->AFR[1] = 0xCCCC0000;
|
||||
/* Configure PFx pins in Alternate function mode */
|
||||
GPIOF->MODER = 0xAAFFFAAA;
|
||||
/* Configure PFx pins speed to 100 MHz */
|
||||
GPIOF->OSPEEDR = 0xFF000FFF;
|
||||
/* Configure PFx pins Output type to push-pull */
|
||||
GPIOF->OTYPER = 0x00000000;
|
||||
/* Configure PFx pins in Pull-up */
|
||||
GPIOF->PUPDR = 0x55000555;
|
||||
|
||||
/* Connect PGx pins to FMC Alternate function */
|
||||
GPIOG->AFR[0] = 0x00CCCCCC;
|
||||
GPIOG->AFR[1] = 0x00000C00;
|
||||
/* Configure PGx pins in Alternate function mode */
|
||||
GPIOG->MODER = 0xFFEFFAAA;
|
||||
/* Configure PGx pins speed to 100 MHz */
|
||||
GPIOG->OSPEEDR = 0x00300FFF;
|
||||
/* Configure PGx pins Output type to push-pull */
|
||||
GPIOG->OTYPER = 0x00000000;
|
||||
/* Configure PGx pins in Pull-up */
|
||||
GPIOG->PUPDR = 0x00100555;
|
||||
|
||||
/*-- FMC/FSMC Configuration --------------------------------------------------*/
|
||||
|
||||
/* Enable the FMC/FSMC interface clock */
|
||||
(RCC->AHB3ENR |= (RCC_AHB3ENR_FMCEN));
|
||||
|
||||
/* Configure and enable Bank1_SRAM2 */
|
||||
FMC_Bank1_R->BTCR[4] = 0x00001091;
|
||||
FMC_Bank1_R->BTCR[5] = 0x00110212;
|
||||
FMC_Bank1E_R->BWTR[4] = 0x0FFFFFFF;
|
||||
|
||||
/* FMC controller Enable */
|
||||
FMC_Bank1_R->BTCR[0] |= 0x80000000;
|
||||
|
||||
#endif /* DATA_IN_ExtSRAM */
|
||||
|
||||
(void)(tmp);
|
||||
|
||||
}
|
||||
@@ -51,7 +51,6 @@ void bsp_start_hook_0(void)
|
||||
stm32h7_init_peripheral_clocks();
|
||||
HAL_RCC_MCOConfig(RCC_MCO1, RCC_MCO1SOURCE_HSI, RCC_MCODIV_1);
|
||||
HAL_Init();
|
||||
SystemInit_ExtMemCtl();
|
||||
}
|
||||
|
||||
#if __CORTEX_M == 0x07U
|
||||
|
||||
@@ -19,6 +19,5 @@ source:
|
||||
- bsps/arm/stm32h7/boards/stm/nucleo-h743zi/stm32h7-config-osc.c
|
||||
- bsps/arm/stm32h7/boards/stm/nucleo-h743zi/stm32h7-config-per.c
|
||||
- bsps/arm/stm32h7/boards/stm/nucleo-h743zi/system_stm32h7xx.c
|
||||
- bsps/arm/stm32h7/boards/stm/nucleo-h743zi/ext-mem-ctl.c
|
||||
- bsps/arm/shared/cache/cache-v7m.c
|
||||
type: build
|
||||
|
||||
Reference in New Issue
Block a user