Skip to content

Commit 8a3f0a0

Browse files
committed
Merge remote-tracking branch 'origin/development' into feat/MDMA2
2 parents 59cac34 + fc00a32 commit 8a3f0a0

38 files changed

Lines changed: 3247 additions & 1129 deletions

.cproject

Lines changed: 0 additions & 1012 deletions
This file was deleted.

.github/workflows/build-toolchain-image.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,4 @@ jobs:
3232
context: .
3333
file: ci/Dockerfile
3434
push: true
35-
tags: ghcr.io/hyperloopupv-h8/hyperloop-firmware-toolchain:latest
35+
tags: ghcr.io/hyperloop-upv/hyperloop-firmware-toolchain:latest

.github/workflows/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
runs-on: ubuntu-24.04
3232

3333
container:
34-
image: ghcr.io/hyperloopupv-h8/hyperloop-firmware-toolchain:latest
34+
image: ghcr.io/hyperloop-upv/hyperloop-firmware-toolchain:latest
3535

3636
outputs:
3737
build-artifact: ${{ steps.upload-build-artifact.outputs.artifact-id }}

.github/workflows/tests.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: Run tests
2+
3+
on:
4+
workflow_dispatch:
5+
pull_request:
6+
branches: [ development ]
7+
8+
jobs:
9+
tests:
10+
runs-on: ubuntu-latest
11+
12+
steps:
13+
- name: Checkout repository
14+
uses: actions/checkout@v4
15+
16+
- name: Install build dependencies
17+
run: |
18+
sudo apt-get update
19+
sudo apt-get install -y cmake ninja-build build-essential
20+
21+
- name: Configure (CMake)
22+
run: |
23+
cmake --preset simulator
24+
25+
- name: Build
26+
run: |
27+
cmake --build out/build/simulator
28+
29+
- name: Run tests (ctest)
30+
working-directory: out/build/simulator
31+
run: |
32+
ctest --output-on-failure

.mxproject

Lines changed: 0 additions & 12 deletions
This file was deleted.

.project

Lines changed: 0 additions & 32 deletions
This file was deleted.

.vscode/settings.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"C_Cpp.default.cppStandard": "c++20",
2+
"C_Cpp.default.cppStandard": "c++23",
33
"C_Cpp.default.cStandard": "c17",
44
"C_Cpp.clang_format_fallbackStyle": "{BasedOnStyle: Google, IndentWidth: 4, ColumnLimit: 80}",
55
"C_Cpp.formatting": "clangFormat",
@@ -96,5 +96,4 @@
9696
"valarray": "cpp",
9797
"variant": "cpp"
9898
}
99-
}
100-
99+
}

CMakeLists.txt

Lines changed: 64 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -11,33 +11,38 @@ if(NOT PROJECT_IS_TOP_LEVEL)
1111
set(STLIB_LIBRARY ${STLIB_LIBRARY} PARENT_SCOPE)
1212
endif()
1313

14+
include(CTest)
15+
enable_testing()
16+
1417
option(USE_ETHERNET "Enable ethernet peripheral" OFF)
1518
option(TARGET_NUCLEO "Targets the STM32H723 Nucleo development board" OFF)
1619

1720
message(STATUS "${PROJECT_NAME} Ethernet: ${USE_ETHERNET}")
1821
message(STATUS "${PROJECT_NAME} Nucleo: ${TARGET_NUCLEO}")
1922
message(STATUS "${PROJECT_NAME} Crosscompiling: ${CMAKE_CROSSCOMPILING}")
2023

21-
# ============================
22-
# Tests + GTest - Simulator
23-
# ============================
24-
if((PROJECT_IS_TOP_LEVEL AND (NOT CMAKE_CROSSCOMPILING)))
25-
include(FetchContent)
26-
option(BUILD_GMOCK OFF)
27-
option(INSTALL_GTEST OFF)
28-
FetchContent_Declare(
29-
googletest
30-
GIT_REPOSITORY https://github.com/google/googletest.git
31-
GIT_TAG v1.15.2
24+
if(NOT EXISTS ${CMAKE_CURRENT_LIST_DIR}/STM32CubeH7/Drivers)
25+
execute_process(
26+
COMMAND git submodule update --init --depth 1
27+
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
28+
)
29+
endif()
30+
31+
if(NOT EXISTS ${CMAKE_CURRENT_LIST_DIR}/STM32CubeH7/Drivers/CMSIS/Device/ST/STM32H7xx/Include)
32+
execute_process(
33+
COMMAND git submodule update --init --depth 1 Drivers/CMSIS/Device/ST/STM32H7xx Drivers/STM32H7xx_HAL_Driver
34+
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/STM32CubeH7
3235
)
33-
FetchContent_MakeAvailable(googletest)
34-
add_library(GTest::GTest INTERFACE IMPORTED)
35-
target_link_libraries(GTest::GTest INTERFACE gtest_main)
3636
endif()
3737

3838
if(NOT CMAKE_CROSSCOMPILING)
3939
message(STATUS "Compiling for simulator")
4040
add_subdirectory(Tests)
41+
else()
42+
execute_process(
43+
COMMAND git submodule update --init --depth 1 Drivers/BSP/Components/lan8742
44+
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/STM32CubeH7
45+
)
4146
endif()
4247

4348
# ============================
@@ -219,25 +224,31 @@ add_library(${STLIB_LIBRARY} STATIC
219224
$<$<AND:$<BOOL:${CMAKE_CROSSCOMPILING}>,$<BOOL:${USE_ETHERNET}>>:${LWIP_SOURCES}>
220225
$<$<AND:$<BOOL:${CMAKE_CROSSCOMPILING}>,$<BOOL:${USE_ETHERNET}>>:${USER_LWIP_SOURCES}>
221226

222-
${HALAL_C_NO_ETH}
223-
${HALAL_CPP_NO_ETH}
224-
$<$<BOOL:${USE_ETHERNET}>:${HALAL_C_ETH}>
225-
$<$<BOOL:${USE_ETHERNET}>:${HALAL_CPP_ETH}>
227+
$<$<BOOL:${CMAKE_CROSSCOMPILING}>:${HALAL_C_NO_ETH}>
228+
$<$<BOOL:${CMAKE_CROSSCOMPILING}>:${HALAL_CPP_NO_ETH}>
229+
$<$<AND:$<BOOL:${CMAKE_CROSSCOMPILING}>,$<BOOL:${USE_ETHERNET}>>:${HALAL_C_ETH}>
230+
$<$<AND:$<BOOL:${CMAKE_CROSSCOMPILING}>,$<BOOL:${USE_ETHERNET}>>:${HALAL_CPP_ETH}>
226231

227-
${CPP_UTILITIES_C}
228-
${CPP_UTILITIES_CPP}
232+
$<$<BOOL:${CMAKE_CROSSCOMPILING}>:${CPP_UTILITIES_C}>
233+
$<$<BOOL:${CMAKE_CROSSCOMPILING}>:${CPP_UTILITIES_CPP}>
229234

230-
${STLIB_LOW_C_NO_ETH}
231-
${STLIB_LOW_CPP_NO_ETH}
232-
$<$<BOOL:${USE_ETHERNET}>:${STLIB_LOW_C_ETH}>
233-
$<$<BOOL:${USE_ETHERNET}>:${STLIB_LOW_CPP_ETH}>
235+
$<$<BOOL:${CMAKE_CROSSCOMPILING}>:${STLIB_LOW_C_NO_ETH}>
236+
$<$<BOOL:${CMAKE_CROSSCOMPILING}>:${STLIB_LOW_CPP_NO_ETH}>
237+
$<$<AND:$<BOOL:${CMAKE_CROSSCOMPILING}>,$<BOOL:${USE_ETHERNET}>>:${STLIB_LOW_C_ETH}>
238+
$<$<AND:$<BOOL:${CMAKE_CROSSCOMPILING}>,$<BOOL:${USE_ETHERNET}>>:${STLIB_LOW_CPP_ETH}>
234239

235-
${STLIB_HIGH_C_NO_ETH}
236-
${STLIB_HIGH_CPP_NO_ETH}
237-
$<$<BOOL:${USE_ETHERNET}>:${STLIB_HIGH_C_ETH}>
238-
$<$<BOOL:${USE_ETHERNET}>:${STLIB_HIGH_CPP_ETH}>
240+
$<$<BOOL:${CMAKE_CROSSCOMPILING}>:${STLIB_HIGH_C_NO_ETH}>
241+
$<$<BOOL:${CMAKE_CROSSCOMPILING}>:${STLIB_HIGH_CPP_NO_ETH}>
242+
$<$<AND:$<BOOL:${CMAKE_CROSSCOMPILING}>,$<BOOL:${USE_ETHERNET}>>:${STLIB_HIGH_C_ETH}>
243+
$<$<AND:$<BOOL:${CMAKE_CROSSCOMPILING}>,$<BOOL:${USE_ETHERNET}>>:${STLIB_HIGH_CPP_ETH}>
239244

240-
${CMAKE_CURRENT_LIST_DIR}/Src/ST-LIB.cpp
245+
$<$<BOOL:${CMAKE_CROSSCOMPILING}>:${CMAKE_CURRENT_LIST_DIR}/Src/ST-LIB.cpp>
246+
247+
$<$<NOT:$<BOOL:${CMAKE_CROSSCOMPILING}>>:${CMAKE_CURRENT_LIST_DIR}/Src/HALAL/Services/Time/Scheduler.cpp>
248+
$<$<NOT:$<BOOL:${CMAKE_CROSSCOMPILING}>>:${CMAKE_CURRENT_LIST_DIR}/Src/MockedDrivers/mocked_ll_tim.cpp>
249+
$<$<NOT:$<BOOL:${CMAKE_CROSSCOMPILING}>>:${CMAKE_CURRENT_LIST_DIR}/Src/MockedDrivers/mocked_system_stm32h7xx.c>
250+
$<$<NOT:$<BOOL:${CMAKE_CROSSCOMPILING}>>:${CMAKE_CURRENT_LIST_DIR}/Src/MockedDrivers/stm32h723xx_wrapper.c>
251+
$<$<NOT:$<BOOL:${CMAKE_CROSSCOMPILING}>>:${CMAKE_CURRENT_LIST_DIR}/Src/MockedDrivers/NVIC.cpp>
241252
)
242253

243254
set_target_properties(${STLIB_LIBRARY} PROPERTIES
@@ -251,7 +262,7 @@ target_compile_definitions(${STLIB_LIBRARY} PUBLIC
251262
$<$<BOOL:${CMAKE_CROSSCOMPILING}>:USE_HAL_DRIVER>
252263
$<$<BOOL:${CMAKE_CROSSCOMPILING}>:STM32H723xx>
253264

254-
$<$<NOT:$<BOOL:${CMAKE_CROSSCOMPILING}>>:SIM_ON>
265+
$<$<NOT:$<BOOL:${CMAKE_CROSSCOMPILING}>>:TESTING_ENV>
255266

256267
$<$<BOOL:${USE_ETHERNET}>:STLIB_ETH>
257268
$<IF:$<BOOL:${TARGET_NUCLEO}>,NUCLEO,BOARD>
@@ -284,10 +295,13 @@ target_compile_options(${STLIB_LIBRARY} PRIVATE
284295

285296
target_include_directories(${STLIB_LIBRARY} PUBLIC
286297
# CMSIS + HAL
287-
$<$<BOOL:${CMAKE_CROSSCOMPILING}>:${STM32CUBEH7}/Drivers/CMSIS/Device/ST/STM32H7xx/Include>
288-
$<$<BOOL:${CMAKE_CROSSCOMPILING}>:${STM32CUBEH7}/Drivers/CMSIS/Include>
298+
#$<$<BOOL:${CMAKE_CROSSCOMPILING}>:${STM32CUBEH7}/Drivers/CMSIS/Device/ST/STM32H7xx/Include>
299+
#$<$<BOOL:${CMAKE_CROSSCOMPILING}>:${STM32CUBEH7}/Drivers/CMSIS/Include>
300+
${STM32CUBEH7}/Drivers/CMSIS/Device/ST/STM32H7xx/Include
301+
${STM32CUBEH7}/Drivers/CMSIS/Include
289302
$<$<BOOL:${CMAKE_CROSSCOMPILING}>:${STM32CUBEH7}/Drivers/CMSIS/Core_A/Include>
290-
$<$<BOOL:${CMAKE_CROSSCOMPILING}>:${STM32CUBEH7}/Drivers/STM32H7xx_HAL_Driver/Inc>
303+
#$<$<BOOL:${CMAKE_CROSSCOMPILING}>:${STM32CUBEH7}/Drivers/STM32H7xx_HAL_Driver/Inc>
304+
${STM32CUBEH7}/Drivers/STM32H7xx_HAL_Driver/Inc
291305
$<$<BOOL:${CMAKE_CROSSCOMPILING}>:${STM32CUBEH7}/Drivers/STM32H7xx_HAL_Driver/Inc/Legacy>
292306

293307
# LWIP includes
@@ -316,6 +330,23 @@ target_include_directories(${STLIB_LIBRARY} PUBLIC
316330
${CMAKE_CURRENT_LIST_DIR}/Inc/ST-LIB_HIGH
317331
)
318332

333+
334+
if(PROJECT_IS_TOP_LEVEL)
335+
configure_file(
336+
${CMAKE_CURRENT_LIST_DIR}/Inc/stm32h7xx_hal_conf_template.h
337+
${CMAKE_CURRENT_BINARY_DIR}/stm32h7xx_hal_conf.h
338+
COPYONLY
339+
)
340+
341+
target_include_directories(${STLIB_LIBRARY} PUBLIC
342+
${CMAKE_CURRENT_BINARY_DIR}
343+
)
344+
else()
345+
target_include_directories(${STLIB_LIBRARY} PUBLIC
346+
${CMAKE_SOURCE_DIR}/Core/Inc
347+
)
348+
endif()
349+
319350
if(PROJECT_IS_TOP_LEVEL)
320351
execute_process(
321352
COMMAND ${CMAKE_COMMAND} -E create_symlink

Inc/HALAL/HALAL.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
#pragma once
22

3+
#include "HALAL/Models/GPIO.hpp"
4+
#include "HALAL/Models/Pin.hpp"
5+
36
#include "HALAL/Models/HALconfig/HALconfig.hpp"
47
#include "HALAL/Models/DMA/DMA.hpp"
58

@@ -18,6 +21,7 @@
1821
#include "HALAL/Services/PWM/DualPhasedPWM/DualPhasedPWM.hpp"
1922

2023
#include "HALAL/Services/Time/Time.hpp"
24+
#include "HALAL/Services/Time/Scheduler.hpp"
2125
#include "HALAL/Services/Time/RTC.hpp"
2226

2327
#include "HALAL/Services/InputCapture/InputCapture.hpp"

0 commit comments

Comments
 (0)