STM32CubeF4/Projects/STM32446E_EVAL/Examples/QSPI/QSPI_PreInitConfig/Src/main.c

131 lines
3.5 KiB
C

/**
******************************************************************************
* @file QSPI/QSPI_PreInitConfig/Src/main.c
* @author MCD Application Team
* @brief This example describes how to configure and use QuadSPI through
* the STM32F4xx HAL API.
******************************************************************************
* @attention
*
* Copyright (c) 2017 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* Includes ------------------------------------------------------------------*/
#include "main.h"
/** @addtogroup STM32F4xx_HAL_Examples
* @{
*/
/** @addtogroup QSPI_PreInitConfig
* @{
*/
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
#if defined(__ICCARM__)
#pragma section =".qspi"
#endif
/* Private variables ---------------------------------------------------------*/
/* Private function prototypes -----------------------------------------------*/
static void GpioToggle(void);
/* Private functions ---------------------------------------------------------*/
/**
* @brief Main program
* @param None
* @retval None
*/
int main(void)
{
/* STM32F4xx HAL library initialization:
- Configure the Flash prefetch, instruction and Data caches
- Systick timer is configured by default as source of time base, but user
can eventually implement his proper time base source (a general purpose
timer for example or other time source), keeping in mind that Time base
duration should be kept 1ms since PPP_TIMEOUT_VALUEs are defined and
handled in milliseconds basis.
- Set NVIC Group Priority to 4
- Low Level Initialization: global MSP (MCU Support Package) initialization
*/
HAL_Init();
BSP_LED_Init(LED1);
BSP_LED_Init(LED2);
BSP_LED_Init(LED3);
BSP_LED_Init(LED4);
while(1)
{
GpioToggle();
}
}
#ifdef USE_FULL_ASSERT
/**
* @brief Reports the name of the source file and the source line number
* where the assert_param error has occurred.
* @param file: pointer to the source file name
* @param line: assert_param error line source number
* @retval None
*/
void assert_failed(uint8_t *file, uint32_t line)
{
/* User can add his own implementation to report the file name and line number,
ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
/* Infinite loop */
while (1)
{
}
}
#endif
/**
* @brief Toggle the GPIOs
* @param None
* @retval None
*/
#if defined(__CC_ARM)
#pragma arm section code = ".qspi"
#pragma no_inline
static void GpioToggle(void)
#elif defined(__ICCARM__)
static void GpioToggle(void) @ ".qspi"
#elif defined(__GNUC__)
static void __attribute__((section(".qspi"), noinline)) GpioToggle(void)
#endif
{
BSP_LED_Toggle(LED1);
/* Insert delay 100 ms */
HAL_Delay(100);
BSP_LED_Toggle(LED2);
/* Insert delay 100 ms */
HAL_Delay(100);
BSP_LED_Toggle(LED3);
/* Insert delay 100 ms */
HAL_Delay(100);
BSP_LED_Toggle(LED4);
/* Insert delay 100 ms */
HAL_Delay(100);
}
#if defined(__CC_ARM)
#pragma arm section code
#endif
/**
* @}
*/
/**
* @}
*/