Keil
STM32G0xx_DFP
STMicroelectronics STM32G0 Series Device Support
https://www.keil.com/pack/
https://github.com/Open-CMSIS-Pack/STM32G0xx_DFP.git
LICENSE
Active development ...
Updated STM32Cube FW to STM32Cube_FW_G0_V1.6.0 (HAL V1.4.5).
Package Description (pdsc):
- Added condition (STM32G0) to api device class group STM32Cube Framework.
- Added LICENSE file.
Updated STM32Cube FW to STM32Cube_FW_G0_V1.5.0 (HAL V1.4.2).
STM32CubeMX integration:
- Synchronized versions of generated component ::Device:STM32Cube Framework:STM32CubeMX (in gpdsc) and its bootstrap (in pdsc).
Package Description (pdsc):
- Updated schemaVersion (1.7.2).
- Added RAMstart and RAMsize attributes to Flash Algorithm elements.
Device support:
- Updated SVD files.
- Reworked Option Byte Flash programming Algorithm.
- Reworked DualBank Flash Programming Algorithms.
- Replaced STM32G05x_32.FLM with STM32G0xx_32.FLM and STM32G05x_64.FLM with STM32G0xx_64.FLM
- Added emptycheck for STM32G0xx16/32/64/128k flashloader, disable interrupts while programming and fix programming while IWDG in SW mode.
- Added devices:
-- STM32G050F6Px,
-- STM32G051C6Ux, STM32G051F6Px, STM32G051G6Ux, STM32G051K6Ux, STM32G051K8Ux, STM32G051C8Ux, STM32G051G8Ux, STM32G051F8Px
-- STM32G061C6Ux, STM32G061G6Ux, STM32G061K6Ux, STM32G061C8Ux, STM32G061F8Px, STM32G061G8Ux, STM32G061K8Ux
-- STM32G0B1CBUxN, STM32G0B1CBTxN, STM32G0B1KBTxN, STM32G0B1KBUxN, STM32G0B1RBTxN, STM32G0B1RBIxN, STM32G0B1CCUxN,
STM32G0B1CCTxN, STM32G0B1RCTxN, STM32G0B1CEUxN, STM32G0B1CETxN, STM32G0B1REIxN, STM32G0B1RETxN, STM32G0B1NEYx,
-- STM32G0C1CCUxN, STM32G0C1CCTxN, STM32G0C1RCIxN, STM32G0C1RCTxN, STM32G0C1CEUxN, STM32G0C1CETxN, STM32G0C1RETxN,
STM32G0C1REIxN, STM32G0C1NEYx.
- Removed devices:
-- STM32G071C6Tx, STM32G071C6Ux, STM32G071G6Ux, STM32G071K6Tx, STM32G071K6Ux, STM32G071R6Tx
-- STM32G050x4, STM32G051x4, STM32G061x4.
Updated STM32Cube Firmware G0 library to version V1.4.0.
Added device support for:
- STM32G050, STM32G051, STM32G061 devices.
- STM32G0B0, STM32G0B1, STM32G0C1 devices.
- Updated device documentation.
- Updated SVD files.
- Added flash programming algorithms.
Updated STM32Cube Firmware G0 library to version V1.3.0.
Added CubeMX support.
Added device support for:
- STM32G030, STM32G031, STM32G041 devices.
- Updated device documentation.
- Updated SVD files for each STM32G0xx subfamily.
Updated documentation
Updated CubeMX FW pack to STM32Cube_FW_G0_V1.1.0
Initial version of STM32G0 Device Family Pack for use with:
- STM32CubeMX 5.0
- STM32Cube G0 Firmware Package V1.0.0
ST
Device Support
Device Family Package STMicroelectronics
STM32G0
STM32G0xx
High-performance STM32G0 MCUs with Arm Cortex-M0+ core 32-bit RISC core operating at up to 64 MHz frequency.
Sequence("CheckID");
// Replication of Standard Functionality
Write32(0xE000EDF0, 0xA05F0001); // Enable Core Debug via DHCSR
// Device Specific Debug Setup
Write32(0x4002103C, Read32(0x4002103C) | 0x08000000); // Set RCC_APBENR1.DBGEN
Write32(0x40015804, DbgMCU_CR); // DBGMCU_CR: Configure MCU Debug
Write32(0x40015808, DbgMCU_APB_Fz1); // DBGMCU_APB_FZ1: Configure APB Freeze Behavior
Write32(0x4001580C, DbgMCU_APB_Fz2); // DBGMCU_APB_FZ2: Configure APB Freeze Behavior
__var pidr1 = 0;
__var pidr2 = 0;
__var jep106id = 0;
__var ROMTableBase = 0;
__ap = 0; // AHB-AP
ROMTableBase = ReadAP(0xF8) & ~0x3;
pidr1 = Read32(ROMTableBase + 0x0FE4);
pidr2 = Read32(ROMTableBase + 0x0FE8);
jep106id = ((pidr2 & 0x7) << 4 ) | ((pidr1 >> 4) & 0xF);
Query(0, "Not a genuine ST Device! Abort connection", 1);
Message(2, "Not a genuine ST Device! Abort connection.");
// Default values for variables in debug sequences are configured with a *.dbgconf file in the user project
__var DbgMCU_CR = 0x00000006; // DBGMCU_CR: DBGMCU configuration register
__var DbgMCU_APB_Fz1 = 0x00601832; // DBGMCU_APB_FZ1: DBGMCU APB freeze register 1
__var DbgMCU_APB_Fz2 = 0x00070800; // DBGMCU_APB_FZ2: DBGMCU APB freeze register 2
// Default values for variables in debug sequences are configured with a *.dbgconf file in the user project
__var DbgMCU_CR = 0x00000006; // DBGMCU_CR: DBGMCU configuration register
__var DbgMCU_APB_Fz1 = 0xC0201833; // DBGMCU_APB_FZ1: DBGMCU APB freeze register 1
__var DbgMCU_APB_Fz2 = 0x00078800; // DBGMCU_APB_FZ2: DBGMCU APB freeze register 2
// Default values for variables in debug sequences are configured with a *.dbgconf file in the user project
__var DbgMCU_CR = 0x00000006; // DBGMCU_CR: DBGMCU configuration register
__var DbgMCU_APB_Fz1 = 0xC0201833; // DBGMCU_APB_FZ1: DBGMCU APB freeze register 1
__var DbgMCU_APB_Fz2 = 0x00078800; // DBGMCU_APB_FZ2: DBGMCU APB freeze register 2
// Default values for variables in debug sequences are configured with a *.dbgconf file in the user project
__var DbgMCU_CR = 0x00000006; // DBGMCU_CR: DBGMCU configuration register
__var DbgMCU_APB_Fz1 = 0x00601832; // DBGMCU_APB_FZ1: DBGMCU APB freeze register 1
__var DbgMCU_APB_Fz2 = 0x00070800; // DBGMCU_APB_FZ2: DBGMCU APB freeze register 2
// Default values for variables in debug sequences are configured with a *.dbgconf file in the user project
__var DbgMCU_CR = 0x00000006; // DBGMCU_CR: DBGMCU configuration register
__var DbgMCU_APB_Fz1 = 0xC0201833; // DBGMCU_APB_FZ1: DBGMCU APB freeze register 1
__var DbgMCU_APB_Fz2 = 0x00078800; // DBGMCU_APB_FZ2: DBGMCU APB freeze register 2
// Default values for variables in debug sequences are configured with a *.dbgconf file in the user project
__var DbgMCU_CR = 0x00000006; // DBGMCU_CR: DBGMCU configuration register
__var DbgMCU_APB_Fz1 = 0xC0201833; // DBGMCU_APB_FZ1: DBGMCU APB freeze register 1
__var DbgMCU_APB_Fz2 = 0x00078800; // DBGMCU_APB_FZ2: DBGMCU APB freeze register 2
// Default values for variables in debug sequences are configured with a *.dbgconf file in the user project
__var DbgMCU_CR = 0x00000006; // DBGMCU_CR: DBGMCU configuration register
__var DbgMCU_APB_Fz1 = 0x00601832; // DBGMCU_APB_FZ1: DBGMCU APB freeze register 1
__var DbgMCU_APB_Fz2 = 0x00070800; // DBGMCU_APB_FZ2: DBGMCU APB freeze register 2
// Default values for variables in debug sequences are configured with a *.dbgconf file in the user project
__var DbgMCU_CR = 0x00000006; // DBGMCU_CR: DBGMCU configuration register
__var DbgMCU_APB_Fz1 = 0xC0201833; // DBGMCU_APB_FZ1: DBGMCU APB freeze register 1
__var DbgMCU_APB_Fz2 = 0x00078800; // DBGMCU_APB_FZ2: DBGMCU APB freeze register 2
// Default values for variables in debug sequences are configured with a *.dbgconf file in the user project
__var DbgMCU_CR = 0x00000006; // DBGMCU_CR: DBGMCU configuration register
__var DbgMCU_APB_Fz1 = 0xC0201833; // DBGMCU_APB_FZ1: DBGMCU APB freeze register 1
__var DbgMCU_APB_Fz2 = 0x00078800; // DBGMCU_APB_FZ2: DBGMCU APB freeze register 2
// Default values for variables in debug sequences are configured with a *.dbgconf file in the user project
__var DbgMCU_CR = 0x00000006; // DBGMCU_CR: DBGMCU configuration register
__var DbgMCU_APB_Fz1 = 0x00601832; // DBGMCU_APB_FZ1: DBGMCU APB freeze register 1
__var DbgMCU_APB_Fz2 = 0x00070800; // DBGMCU_APB_FZ2: DBGMCU APB freeze register 2
// Default values for variables in debug sequences are configured with a *.dbgconf file in the user project
__var DbgMCU_CR = 0x00000006; // DBGMCU_CR: DBGMCU configuration register
__var DbgMCU_APB_Fz1 = 0xC0201833; // DBGMCU_APB_FZ1: DBGMCU APB freeze register 1
__var DbgMCU_APB_Fz2 = 0x00078800; // DBGMCU_APB_FZ2: DBGMCU APB freeze register 2
// Default values for variables in debug sequences are configured with a *.dbgconf file in the user project
__var DbgMCU_CR = 0x00000006; // DBGMCU_CR: DBGMCU configuration register
__var DbgMCU_APB_Fz1 = 0xC0201833; // DBGMCU_APB_FZ1: DBGMCU APB freeze register 1
__var DbgMCU_APB_Fz2 = 0x00078800; // DBGMCU_APB_FZ2: DBGMCU APB freeze register 2
STMicroelectronics STM32G0 Series devices
STMicroelectronics STM32G0 Device and CMSIS-CORE
Configuration via STM32CubeMX
#define RTE_DEVICE_CUBE_MX
#define CMSIS_device_header "stm32g0xx.h"
Create a CubeMX basic solution with project