Skip to content

NUCLEO_G474RE: Add new platform #12482

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 32 commits into from
Jun 8, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
b387ed6
STM32G4 introduction
jeromecoutant Feb 18, 2020
35e3ce9
STM32G4 automatic adaptation for MBED
jeromecoutant Feb 18, 2020
85e8a59
STM32G4 NUCLEO_G431KB introduction
jeromecoutant Feb 18, 2020
fd2bac7
STM32G4 NUCLEO_G431RB introduction
jeromecoutant Feb 18, 2020
2631bf8
STM32G4 NUCLEO_G474RE introduction
jeromecoutant Feb 18, 2020
13ba114
STM32G4 DISCO_G474RE introduction
jeromecoutant Feb 18, 2020
ec25440
Added basic support for NUCLEO_G747RE. Basic GPIO support and system …
AGlass0fMilk Feb 20, 2020
3432960
Implemented support for basic serial communication
AGlass0fMilk Feb 20, 2020
740a73f
Add support for SERIAL_FC (untested)
AGlass0fMilk Feb 20, 2020
46ecb48
Add support for STDIO_MESSAGES
AGlass0fMilk Feb 20, 2020
143a549
Add support for SLEEP (untested)
AGlass0fMilk Feb 20, 2020
80c5d96
Added support for WDT (untested). Checked datasheet for maximum LSI f…
AGlass0fMilk Feb 20, 2020
118919b
Added RESET_REASON support (untested).
AGlass0fMilk Feb 20, 2020
d68ec74
Added USTICKER support
AGlass0fMilk Feb 20, 2020
b11d160
Added RTC support
AGlass0fMilk Feb 20, 2020
cc86ec9
Added ANALOGIN support
AGlass0fMilk Feb 20, 2020
5e25e00
Added support for I2C
AGlass0fMilk Feb 20, 2020
4f41d2d
Added support for I2CSLAVE and I2C_ASYNCH
AGlass0fMilk Feb 20, 2020
f59ec66
Added support for INTERRUPTIN
AGlass0fMilk Feb 20, 2020
e38dfc7
Added support for PORT APIs
AGlass0fMilk Feb 20, 2020
06d74aa
Added support for PWMOUT
AGlass0fMilk Feb 20, 2020
7f19c8a
Added support for SPI API
AGlass0fMilk Feb 20, 2020
934d60e
Added support for FLASH API
AGlass0fMilk Feb 20, 2020
613af0f
Added support for ANALOGOUT
AGlass0fMilk Feb 20, 2020
c687ae3
Added missing analogin_device.c file and configured for STM32G4xx series
AGlass0fMilk Feb 20, 2020
2297e1b
Updated clock configuration settings for NUCLEO_G474RE
AGlass0fMilk Apr 3, 2020
44ca862
Changed us_ticker configuration to use TIM5 instead of TIM2 to be con…
AGlass0fMilk Apr 3, 2020
f391718
Updated detect code for NUCLEO_G474RE
AGlass0fMilk Apr 3, 2020
eb8d128
Updated system clock settings to run at 170MHz (max for this target).…
AGlass0fMilk Apr 3, 2020
6e2fa61
Added spi_api.c implementation
AGlass0fMilk Apr 13, 2020
658d89b
Apply linker fix as in #12690 to new NUCLEO_G474RE target
AGlass0fMilk May 20, 2020
28e221d
Update NUCLEO_G474RE target definition to inherit from renamed MCU_STM32
AGlass0fMilk May 20, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13,141 changes: 13,141 additions & 0 deletions targets/TARGET_STM/TARGET_STM32G4/STM32Cube_FW/CMSIS/stm32g431xx.h

Large diffs are not rendered by default.

13,374 changes: 13,374 additions & 0 deletions targets/TARGET_STM/TARGET_STM32G4/STM32Cube_FW/CMSIS/stm32g441xx.h

Large diffs are not rendered by default.

13,699 changes: 13,699 additions & 0 deletions targets/TARGET_STM/TARGET_STM32G4/STM32Cube_FW/CMSIS/stm32g471xx.h

Large diffs are not rendered by default.

14,550 changes: 14,550 additions & 0 deletions targets/TARGET_STM/TARGET_STM32G4/STM32Cube_FW/CMSIS/stm32g473xx.h

Large diffs are not rendered by default.

17,914 changes: 17,914 additions & 0 deletions targets/TARGET_STM/TARGET_STM32G4/STM32Cube_FW/CMSIS/stm32g474xx.h

Large diffs are not rendered by default.

14,783 changes: 14,783 additions & 0 deletions targets/TARGET_STM/TARGET_STM32G4/STM32Cube_FW/CMSIS/stm32g483xx.h

Large diffs are not rendered by default.

18,147 changes: 18,147 additions & 0 deletions targets/TARGET_STM/TARGET_STM32G4/STM32Cube_FW/CMSIS/stm32g484xx.h

Large diffs are not rendered by default.

199 changes: 199 additions & 0 deletions targets/TARGET_STM/TARGET_STM32G4/STM32Cube_FW/CMSIS/stm32g4xx.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,199 @@
/**
******************************************************************************
* @file stm32g4xx.h
* @author MCD Application Team
* @brief CMSIS STM32G4xx Device Peripheral Access Layer Header File.
*
* The file is the unique include file that the application programmer
* is using in the C source code, usually in main.c. This file contains:
* - Configuration section that allows to select:
* - The STM32G4xx device used in the target application
* - To use or not the peripheral�s drivers in application code(i.e.
* code will be based on direct access to peripheral�s registers
* rather than drivers API), this option is controlled by
* "#define USE_HAL_DRIVER"
*
******************************************************************************
* @attention
*
* <h2><center>&copy; Copyright (c) 2019 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
*
******************************************************************************
*/

/** @addtogroup CMSIS
* @{
*/

/** @addtogroup stm32g4xx
* @{
*/

#ifndef __STM32G4xx_H
#define __STM32G4xx_H

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

/** @addtogroup Library_configuration_section
* @{
*/

/**
* @brief STM32 Family
*/
#if !defined (STM32G4)
#define STM32G4
#endif /* STM32G4 */

/* Uncomment the line below according to the target STM32G4 device used in your
application
*/

#if !defined (STM32G431xx) && !defined (STM32G441xx) && \
!defined (STM32G471xx) && !defined (STM32G473xx) && !defined (STM32G474xx) && !defined (STM32G483xx) && !defined (STM32G484xx) && !defined (STM32GBK1CB)
/* #define STM32G431xx */ /*!< STM32G431xx Devices */
/* #define STM32G441xx */ /*!< STM32G441xx Devices */
/* #define STM32G471xx */ /*!< STM32G471xx Devices */
/* #define STM32G473xx */ /*!< STM32G473xx Devices */
/* #define STM32G483xx */ /*!< STM32G483xx Devices */
/* #define STM32G474xx */ /*!< STM32G474xx Devices */
/* #define STM32G484xx */ /*!< STM32G484xx Devices */
/* #define STM32GBK1CB */ /*!< STM32GBK1CB Devices */
#endif

/* Tip: To avoid modifying this file each time you need to switch between these
devices, you can define the device in your toolchain compiler preprocessor.
*/
#if !defined (USE_HAL_DRIVER)
/**
* @brief Comment the line below if you will not use the peripherals drivers.
In this case, these drivers will not be included and the application code will
be based on direct access to peripherals registers
*/
/*#define USE_HAL_DRIVER */
#endif /* USE_HAL_DRIVER */

/**
* @brief CMSIS Device version number $VERSION$
*/
#define __STM32G4_CMSIS_VERSION_MAIN (0x01U) /*!< [31:24] main version */
#define __STM32G4_CMSIS_VERSION_SUB1 (0x01U) /*!< [23:16] sub1 version */
#define __STM32G4_CMSIS_VERSION_SUB2 (0x00U) /*!< [15:8] sub2 version */
#define __STM32G4_CMSIS_VERSION_RC (0x00U) /*!< [7:0] release candidate */
#define __STM32G4_CMSIS_VERSION ((__STM32G4_CMSIS_VERSION_MAIN << 24)\
|(__STM32G4_CMSIS_VERSION_SUB1 << 16)\
|(__STM32G4_CMSIS_VERSION_SUB2 << 8 )\
|(__STM32G4_CMSIS_VERSION_RC))

/**
* @}
*/

/** @addtogroup Device_Included
* @{
*/

#if defined(STM32G431xx)
#include "stm32g431xx.h"
#elif defined(STM32G441xx)
#include "stm32g441xx.h"
#elif defined(STM32G471xx)
#include "stm32g471xx.h"
#elif defined(STM32G473xx)
#include "stm32g473xx.h"
#elif defined(STM32G483xx)
#include "stm32g483xx.h"
#elif defined(STM32G474xx)
#include "stm32g474xx.h"
#elif defined(STM32G484xx)
#include "stm32g484xx.h"
#elif defined(STM32GBK1CB)
#include "stm32gbk1cb.h"
#else
#error "Please select first the target STM32G4xx device used in your application (in stm32g4xx.h file)"
#endif

/**
* @}
*/

/** @addtogroup Exported_types
* @{
*/
typedef enum
{
RESET = 0,
SET = !RESET
} FlagStatus, ITStatus;

typedef enum
{
DISABLE = 0,
ENABLE = !DISABLE
} FunctionalState;
#define IS_FUNCTIONAL_STATE(STATE) (((STATE) == DISABLE) || ((STATE) == ENABLE))

typedef enum
{
SUCCESS = 0,
ERROR = !SUCCESS
} ErrorStatus;

/**
* @}
*/


/** @addtogroup Exported_macros
* @{
*/
#define SET_BIT(REG, BIT) ((REG) |= (BIT))

#define CLEAR_BIT(REG, BIT) ((REG) &= ~(BIT))

#define READ_BIT(REG, BIT) ((REG) & (BIT))

#define CLEAR_REG(REG) ((REG) = (0x0))

#define WRITE_REG(REG, VAL) ((REG) = (VAL))

#define READ_REG(REG) ((REG))

#define MODIFY_REG(REG, CLEARMASK, SETMASK) WRITE_REG((REG), (((READ_REG(REG)) & (~(CLEARMASK))) | (SETMASK)))

#define POSITION_VAL(VAL) (__CLZ(__RBIT(VAL)))


/**
* @}
*/

#if defined (USE_HAL_DRIVER)
#include "stm32g4xx_hal.h"
#endif /* USE_HAL_DRIVER */

#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif /* __STM32G4xx_H */
/**
* @}
*/

/**
* @}
*/




/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
Loading