Skip to content

Commit aa4b996

Browse files
authored
Merge pull request #336 from xanthio/feature/STM32U0xx-support
Support STM32U0 Family
2 parents 8cfd141 + c1cb64b commit aa4b996

14 files changed

+1081
-12
lines changed

.github/workflows/cmake.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
runs-on: ubuntu-20.04
1212
strategy:
1313
matrix:
14-
family: [C0, F0, F1, F2, F3, F4, F7, G0, G4, H5, H7, L0, L1, L4, L5, U5, WB, WL, MP1]
14+
family: [C0, F0, F1, F2, F3, F4, F7, G0, G4, H5, H7, L0, L1, L4, L5, U0, U5, WB, WL, MP1]
1515
fail-fast: false
1616

1717
steps:

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
![Tests](https://github.com/ObKo/stm32-cmake/workflows/Tests/badge.svg)
44

55
This project is used to develop applications for the STM32 - ST's ARM Cortex-Mx MCUs.
6-
It uses cmake and GCC, along with newlib (libc), STM32Cube. Supports C0 F0 F1 F2 F3 F4 F7 G0 G4 H7 L0 L1 L4 L5 U5 WB WL device families.
6+
It uses cmake and GCC, along with newlib (libc), STM32Cube. Supports C0 F0 F1 F2 F3 F4 F7 G0 G4 H7 L0 L1 L4 L5 U0 U5 WB WL device families.
77

88
## Requirements
99

@@ -56,7 +56,7 @@ The most important set of variables which needs to be set can be found in the fo
5656
These configuration options need to be set for the build process to work properly:
5757

5858
* `STM32_CUBE_<FAMILY>_PATH` - path to STM32Cube directory, where `<FAMILY>` is one
59-
of `C0 F0 F1 F2 F3 F4 F7 G0 G4 H7 L0 L1 L4 L5 U5 WB WL` **default**: `/opt/STM32Cube<FAMILY>`
59+
of `C0 F0 F1 F2 F3 F4 F7 G0 G4 H7 L0 L1 L4 L5 U0 U5 WB WL` **default**: `/opt/STM32Cube<FAMILY>`
6060

6161
These configuration variables are optional:
6262

cmake/FindBSP.cmake

+11
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,17 @@ set(BSP_MP1_COMPONENTS )
252252
set(BSP_MP1_SOURCES_STM32MP15xx_DISCO bus stpmic1)
253253
set(BSP_MP1_SOURCES_STM32MP15xx_EVAL bus stpmic1)
254254

255+
### U0 ###
256+
set(BSP_U0_BOARDS
257+
STM32U0xx_Nucleo STM32U083C_Discovery
258+
)
259+
set(BSP_U0_COMPONENTS
260+
stts22h
261+
)
262+
263+
set(BSP_U0_SOURCES_STM32U083C_Discovery stts22h)
264+
set(BSP_U0_DEVICE_STM32U083C_Discovery U083CC)
265+
255266
### WB ###
256267
set(BSP_WB_BOARDS
257268
STM32WB15CC_Nucleo STM32WB55_Nucleo STM32WB55_USBDongle STM32WB5MM_Discovery

cmake/stm32/common.cmake

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ set(STM32_SUPPORTED_FAMILIES_LONG_NAME
55
STM32H5
66
STM32H7_M4 STM32H7_M7
77
STM32L0 STM32L1 STM32L4 STM32L5
8-
STM32U5
8+
STM32U0 STM32U5
99
STM32WB_M4 STM32WL_M4 STM32WL_M0PLUS
1010
STM32MP1_M4 )
1111

@@ -397,6 +397,7 @@ include(stm32/l0)
397397
include(stm32/l1)
398398
include(stm32/l4)
399399
include(stm32/l5)
400+
include(stm32/u0)
400401
include(stm32/u5)
401402
include(stm32/wb)
402403
include(stm32/wl)

cmake/stm32/devices.cmake

+21
Original file line numberDiff line numberDiff line change
@@ -1186,6 +1186,27 @@ set(STM32_ALL_DEVICES
11861186
MP157C
11871187
MP157D
11881188
MP157F
1189+
U031C6
1190+
U031C8
1191+
U031F4
1192+
U031F6
1193+
U031F8
1194+
U031G6
1195+
U031G8
1196+
U031K4
1197+
U031K8
1198+
U031R6
1199+
U031R8
1200+
U073CC
1201+
U073HC
1202+
U073KC
1203+
U073MC
1204+
U073RC
1205+
U083CC
1206+
U083HC
1207+
U083KC
1208+
U083MC
1209+
U083RC
11891210
U575CG
11901211
U575CI
11911212
U585CI

cmake/stm32/u0.cmake

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
set(STM32_U0_TYPES
2+
U031xx
3+
U073xx
4+
U083xx
5+
)
6+
set(STM32_U0_TYPE_MATCH
7+
"U031.[468]"
8+
"U073.C"
9+
"U083.C"
10+
)
11+
set(STM32_U0_RAM_SIZES
12+
12K
13+
40K
14+
40K
15+
)
16+
set(STM32_U0_CCRAM_SIZES
17+
0K
18+
0K
19+
0K
20+
)
21+
22+
stm32_util_create_family_targets(U0)
23+
24+
target_compile_options(STM32::U0 INTERFACE
25+
-mcpu=cortex-m0plus
26+
)
27+
target_link_options(STM32::U0 INTERFACE
28+
-mcpu=cortex-m0plus
29+
)

cmake/stm32/utilities.cmake

+4-4
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,11 @@ endfunction()
4343
include(FetchContent)
4444

4545
# A CMSIS or HAL driver can specify 'cube' as version number to indicate that the driver is taken from the Cube repository
46-
set(STM32_FETCH_FAMILIES C0 F0 F1 F2 F3 F4 F7 G0 G4 H5 H7 L0 L1 L4 L5 MP1 U5 WB WL )
47-
set(STM32_FETCH_CUBE_VERSIONS v1.1.0 v1.11.2 v1.8.4 v1.9.3 v1.11.2 v1.28.0 v1.16.1 v1.4.1 v1.4.0 v1.1.0 v1.9.0 v1.12.0 v1.10.3 v1.17.0 v1.4.0 1.5.0 v1.4.0 v1.12.0 v1.1.0)
48-
set(STM32_FETCH_CMSIS_VERSIONS v1.1.0 v2.3.5 v4.3.3 v2.2.5 v2.3.5 v2.6.9 v1.2.6 v1.4.0 v1.2.1 v1.1.0 v1.10.0 v1.9.1 v2.3.2 v1.7.1 v1.0.4 cube v1.3.1 v1.9.0 v1.1.0)
46+
set(STM32_FETCH_FAMILIES C0 F0 F1 F2 F3 F4 F7 G0 G4 H5 H7 L0 L1 L4 L5 MP1 U0 U5 WB WL )
47+
set(STM32_FETCH_CUBE_VERSIONS v1.1.0 v1.11.2 v1.8.4 v1.9.3 v1.11.2 v1.28.0 v1.16.1 v1.4.1 v1.4.0 v1.1.0 v1.9.0 v1.12.0 v1.10.3 v1.17.0 v1.4.0 1.5.0 v1.0.0 v1.4.0 v1.12.0 v1.1.0)
48+
set(STM32_FETCH_CMSIS_VERSIONS v1.1.0 v2.3.5 v4.3.3 v2.2.5 v2.3.5 v2.6.9 v1.2.6 v1.4.0 v1.2.1 v1.1.0 v1.10.0 v1.9.1 v2.3.2 v1.7.1 v1.0.4 cube v1.0.0 v1.3.1 v1.9.0 v1.1.0)
4949

50-
set(STM32_FETCH_HAL_VERSIONS v1.1.0 v1.7.5 v1.1.8 v1.2.7 v1.5.5 v1.8.2 v1.2.9 v1.4.1 v1.2.1 v1.1.0 v1.10.0 v1.10.4 v1.4.4 v1.13.0 v1.0.4 cube v1.4.0 v1.9.0 v1.1.0)
50+
set(STM32_FETCH_HAL_VERSIONS v1.1.0 v1.7.5 v1.1.8 v1.2.7 v1.5.5 v1.8.2 v1.2.9 v1.4.1 v1.2.1 v1.1.0 v1.10.0 v1.10.4 v1.4.4 v1.13.0 v1.0.4 cube v1.0.0 v1.4.0 v1.9.0 v1.1.0)
5151

5252

5353

tests/bsp/CMakeLists.txt

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16)
22
set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/stm32_gcc.cmake)
33

44
if(NOT TEST_FAMILIES)
5-
set(TEST_FAMILIES C0 F0 F1 F2 F3 F4 F7 G0 G4 H7 L0 L1 L4 L5 MP1 U5 WB WL)
5+
set(TEST_FAMILIES C0 F0 F1 F2 F3 F4 F7 G0 G4 H7 L0 L1 L4 L5 MP1 U0 U5 WB WL)
66
endif()
77

88
# Nucleo boards can have different devices on it
@@ -28,6 +28,8 @@ set(DEVICE_STM32L4xx_Nucleo_32 L412KB)
2828
set(DEVICE_STM32L4xx_Nucleo_144 L496ZG)
2929
set(DEVICE_STM32MP15xx_DISCO MP157CAC)
3030
set(DEVICE_STM32MP15xx_EVAL MP157FAA)
31+
set(DEVICE_STM32U0xx_Nucleo U031R8)
32+
set(DEVICE_STM32U0xx_DISCO U083CC)
3133
set(DEFINES_STM32469I_EVAL USE_IOEXPANDER)
3234
set(DEFINES_STM32F769I_EVAL USE_IOEXPANDER)
3335
set(DEFINES_STM32L476G_EVAL USE_IOEXPANDER)

0 commit comments

Comments
 (0)