Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion .github/workflows/quality-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ jobs:
with:
submodules: false
- name: Initialize pinned maintained dependencies
run: git submodule update --init --recursive ext/freertos vendors/arm/CMSIS_5 vendors/st/cmsis_device_f4
run: git submodule update --init --recursive ext/freertos vendors/arm/CMSIS_6 vendors/st/cmsis_device_f4
- uses: ./.github/actions/setup-build
with:
os: ubuntu-latest
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/security.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ jobs:
- name: Initialize pinned build dependencies
if: matrix.language == 'cpp'
run: |
git submodule update --init --recursive ext/freertos vendors/arm/CMSIS_5 \
git submodule update --init --recursive ext/freertos vendors/arm/CMSIS_6 \
vendors/st/cmsis_device_f4
- uses: github/codeql-action/init@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4
with:
Expand Down
6 changes: 3 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
path = ext/freertos
url = https://github.com/FreeRTOS/FreeRTOS-Kernel.git

[submodule "vendors/arm/CMSIS_5"]
path = vendors/arm/CMSIS_5
url = https://github.com/ARM-software/CMSIS_5.git
[submodule "vendors/arm/CMSIS_6"]
path = vendors/arm/CMSIS_6
url = https://github.com/ARM-software/CMSIS_6.git

[submodule "vendors/st/cmsis_device_f4"]
path = vendors/st/cmsis_device_f4
Expand Down
5 changes: 5 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ endforeach()
include("${NEXUS_SOURCE_DIR}/cmake/platform/Configure.cmake")
nexus_resolve_assembly()
include("${NEXUS_SOURCE_DIR}/cmake/platform/Options.cmake")
include("${NEXUS_SOURCE_DIR}/cmake/platform/CMSISCore.cmake")
nexus_cmsis_core_include(NEXUS_CMSIS_CORE_INCLUDE_DIR)
include("${NEXUS_SOURCE_DIR}/cmake/platform/Firmware.cmake")

add_subdirectory(core)
Expand Down Expand Up @@ -87,6 +89,9 @@ if(NEXUS_SYSTEM_VENDOR_INCLUDES)
target_include_directories(nexus_platform SYSTEM PRIVATE
${NEXUS_SYSTEM_VENDOR_INCLUDES})
endif()
if(NOT NEXUS_SOC_FAMILY STREQUAL "native")
nexus_use_cmsis_core(nexus_platform)
endif()
if(NEXUS_SYSTEM_COMPILE_DEFINITIONS)
target_compile_definitions(nexus_platform PRIVATE
${NEXUS_SYSTEM_COMPILE_DEFINITIONS})
Expand Down
9 changes: 7 additions & 2 deletions arch/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,11 @@ profiles; the normal ARM path inlines that boundary and never links the mocks.
Native tests exercise real recursive exclusion, strict token nesting and context
queries. Cache, MPU and security models mock only external CPU/MMIO operations
and run the production C algorithms, including rejection before state changes.
Pinned CMSIS `core_cm0plus/7/23/33/55/85.h`, `mpu_armv7/8.h` and
`cachel1_armv7.h` establish the maintained register layouts. Actual IRQ latency,
The pinned official CMSIS-Core v6.4.0 headers
`core_cm0plus.h`, `core_cm7.h`, `core_cm23.h`, `core_cm33.h`,
`core_cm55.h`, `core_cm85.h`, `m-profile/armv7m_mpu.h`,
`m-profile/armv8m_mpu.h` and `m-profile/armv7m_cachel1.h` provide reviewed
register-layout references. The shared private Core source does not
change Nexus's public context, ownership, mask-restoration or cache/MPU/SAU
contracts, and does not establish new processor/profile or physical support. Actual IRQ latency,
privilege transitions, DMA/cache coherency and CPU timing require HIL.
22 changes: 22 additions & 0 deletions cmake/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,19 @@ ABI flags and selected static bindings once. It does not initialize application
components or start a scheduler. Products own tasks, stack/TCB and queue storage,
Flash regions and shutdown policy. Vendor includes stay private to providers.

The internal `nexus_cmsis_core` target in `platform/CMSISCore.cmake` owns the
single pinned CMSIS-Core include tree. Family implementation targets use
`nexus_use_cmsis_core(target)`; callers do not add a second bundled Core include
root or override `NEXUS_CMSIS_CORE_INCLUDE_DIR` as a product setting. This is
separate from the public `Nexus::Core` target and does not export vendor types
through ordinary Nexus interfaces. Device/startup and HAL/LL remain family-owned.

Including the helper only derives its owned path; selecting an MCU
implementation performs the header-presence check and sets
`CMSIS_DISABLE_DEPRECATED=1`. Ordinary Native production configuration does not
require an Arm Core checkout. Native MCU-model fixtures explicitly opt into
the corresponding private dependency.

The installed SDK contains source and exported `find_package(Nexus CONFIG)`
helpers, not a precompiled universal MCU library. To prepare and verify it:

Expand All @@ -34,6 +47,15 @@ file hashes, licensing, dependencies and the CMake exports are verified. Actual
C/C++ Native execution and both MCU-family ARM relocation contracts live in
`tests/contracts/test_source_sdk.py`.

The source package retains the complete recursive CMSIS-Core `Include` tree
and its Apache-2.0 `LICENSE` from official v6.4.0 at the locked commit. Compiler
and architecture header closure is preserved; Core templates, RTOS components
and the rest of the upstream repository are not implicitly packaged or enabled.
The unchanged GigaDevice imports may still contain older bundled Core files;
retaining their original source/notices is distinct from compiling against them.
Actual include-closure, selected ARM and relocated-SDK checks establish the
migration's software scope; the version inventory alone establishes none of it.

Board packages are read-only `board.json` facts with provenance and reviewed
wiring. SoC resources and route catalogs live in `soc/<family>`. Unreviewed
physical connections cannot be enabled by claiming chip-level capability.
Expand Down
27 changes: 25 additions & 2 deletions cmake/package/package_source_sdk.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,13 @@ class SDKError(ValueError):
ROOT_DIRS = {"arch", "boards", "cmake", "dependencies", "core", "io", "os",
"components", "tools", "scripts", "soc"}
REQUIRED_DEPENDENCIES = tuple(item.path for item in SOURCE_DEPENDENCIES)
CMSIS_CORE_DIRECTORY = "vendors/arm/CMSIS_6"
CMSIS_CORE_REQUIRED_HEADERS = (
"core_cm0.h", "core_cm0plus.h", "core_cm3.h", "core_cm4.h",
"core_cm7.h", "core_cm23.h", "core_cm33.h", "core_cm55.h",
"core_cm85.h", "cmsis_compiler.h", "cmsis_gcc.h", "cmsis_version.h",
"m-profile/armv7m_mpu.h", "m-profile/armv8m_mpu.h",
"m-profile/armv7m_cachel1.h", "m-profile/cmsis_gcc_m.h", "tz_context.h")
OFFICIAL_DRIVERS = (stm32f1_hal_lock, stm32f4_hal_lock, stm32g4_hal_lock,
stm32h7_hal_lock, stm32u5_hal_lock)
REQUIRED_FILES = (
Expand All @@ -60,6 +67,7 @@ class SDKError(ValueError):
'components/usb_control/src/usb_descriptors.c',
'components/usb_control/src/usb_acm.c',
"CMakeLists.txt", "LICENSE", ".gitmodules", "dependencies/toolchains.lock.json",
"cmake/platform/CMSISCore.cmake",
"dependencies/environment.lock.json", "core/include/nexus/core/request.h",
"arch/include/nexus/arch/arch.h", "arch/arm/cortex_m/nx_arch_cortex_m.c",
"arch/arm/cortex_m/private/compiler.h", "arch/native/nx_arch_native.c",
Expand Down Expand Up @@ -150,7 +158,7 @@ class SDKError(ValueError):
"tools/measurement/workload.c",
"ext/freertos/tasks.c", "ext/freertos/queue.c", "ext/freertos/list.c",
"ext/freertos/LICENSE.md",
"vendors/arm/CMSIS_5/CMSIS/Core/Include/core_cm4.h", "vendors/arm/CMSIS_5/LICENSE.txt",
"vendors/arm/CMSIS_6/CMSIS/Core/Include/core_cm4.h", "vendors/arm/CMSIS_6/LICENSE",
"vendors/st/cmsis_device_f4/Source/Templates/gcc/startup_stm32f407xx.s",
"vendors/st/cmsis_device_f4/LICENSE.md",
"vendors/gigadevice/gd32f4xx/Firmware/CMSIS/GD/GD32F4xx/Source/GCC/startup_gd32f450_470.S",
Expand Down Expand Up @@ -466,6 +474,8 @@ class SDKError(ValueError):
+ name + ".h" for name in (
"mapped_storage", "mapped_storage_owner",
"native_mapped_storage"))
REQUIRED_FILES += tuple(CMSIS_CORE_DIRECTORY + "/CMSIS/Core/Include/" + name
for name in CMSIS_CORE_REQUIRED_HEADERS)
REQUIRED_FILES += ("tools/maintenance/cmsis_device_lock.py",)
for _review in cmsis_device_lock.REVIEWED_DEVICES.values():
REQUIRED_FILES += (_review["lock_name"],)
Expand Down Expand Up @@ -580,7 +590,20 @@ def verify_preparation_snapshot(root, revision, index):
def dependency_entries(root, dependency):
"""Redistribute only the locked source closure for reviewed imports."""
entries = tree_entries(root / dependency)
if dependency == "ext/threadx":
if dependency == CMSIS_CORE_DIRECTORY:
prefix = "CMSIS/Core/Include/"
required = {prefix + name for name in CMSIS_CORE_REQUIRED_HEADERS}
required.add("LICENSE")
if not required.issubset(entries):
raise SDKError("CMSIS Core committed header/notice graph is incomplete")
# Compiler and architecture headers contain recursive includes. Keep the
# complete reviewed Include tree, never templates or RTOS components.
entries = {name: entry for name, entry in entries.items()
if name == "LICENSE" or name.startswith(prefix)}
if any(mode not in ("100644", "100755") or kind != "blob"
for mode, kind, _ in entries.values()):
raise SDKError("CMSIS Core payload must contain regular tracked files")
elif dependency == "ext/threadx":
raw, _ = snapshot(root / "dependencies/threadx.lock.json")
lock = parse_json(raw)
names = threadx_lock.contract(lock) | {lock["license"]["path"]}
Expand Down
38 changes: 38 additions & 0 deletions cmake/platform/CMSISCore.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# One private, reviewed CMSIS Core header dependency for MCU implementation.
include_guard(GLOBAL)

function(nexus_cmsis_core_include output)
if(NOT ARGC EQUAL 1)
message(FATAL_ERROR "CMSIS Core include requires one output variable")
endif()
get_filename_component(source
"${CMAKE_CURRENT_FUNCTION_LIST_DIR}/../.." ABSOLUTE)
set(core "${source}/vendors/arm/CMSIS_6/CMSIS/Core/Include")
set(${output} "${core}" PARENT_SCOPE)
endfunction()

function(nexus_use_cmsis_core target)
if(NOT ARGC EQUAL 1 OR NOT TARGET "${target}")
message(FATAL_ERROR "CMSIS Core target requires one existing target")
endif()
nexus_cmsis_core_include(core)
if(NOT EXISTS "${core}/cmsis_version.h" OR
NOT EXISTS "${core}/core_cm4.h")
message(FATAL_ERROR "Missing reviewed CMSIS 6 Core headers: ${core}")
endif()
if(NOT TARGET nexus_cmsis_core)
add_library(nexus_cmsis_core INTERFACE)
target_include_directories(nexus_cmsis_core SYSTEM INTERFACE "${core}")
target_compile_definitions(nexus_cmsis_core INTERFACE
CMSIS_DISABLE_DEPRECATED=1)
endif()
get_target_property(kind "${target}" TYPE)
if(kind STREQUAL "INTERFACE_LIBRARY")
target_link_libraries(${target} INTERFACE nexus_cmsis_core)
else()
target_link_libraries(${target} PRIVATE nexus_cmsis_core)
endif()
endfunction()

# Existing source lists consume this owned path, never a cache selector.
nexus_cmsis_core_include(NEXUS_CMSIS_CORE_INCLUDE_DIR)
1 change: 1 addition & 0 deletions cmake/platform/Firmware.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ function(nexus_add_firmware target)
nexus_build_options nexus_owned_warnings)
target_include_directories(${startup_target} PRIVATE ${NEXUS_SYSTEM_PRIVATE_INCLUDES})
target_include_directories(${startup_target} SYSTEM PRIVATE ${NEXUS_SYSTEM_VENDOR_INCLUDES})
nexus_use_cmsis_core(${startup_target})
target_compile_definitions(${startup_target} PRIVATE ${NEXUS_SYSTEM_COMPILE_DEFINITIONS})
target_sources(${target} PRIVATE $<TARGET_OBJECTS:${startup_target}>)
set_target_properties(${target} PROPERTIES SUFFIX ".elf")
Expand Down
5 changes: 3 additions & 2 deletions components/soc/stm32/f407_i2s2_slave_tx/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# One selected chip role; products explicitly link the software implementation.
# Author: Nexus Team
include("${CMAKE_CURRENT_LIST_DIR}/../../../../cmake/platform/CMSISCore.cmake")
if(NOT NEXUS_F407_I2S2_SLAVE_TX_SELECTED)
return()
endif()
Expand All @@ -23,8 +24,8 @@ target_include_directories(nexus_f407_i2s2_slave_tx PUBLIC
"${CMAKE_CURRENT_SOURCE_DIR}/include" PRIVATE
"${NEXUS_SOURCE_DIR}/soc/stm32/stm32f407/private")
target_include_directories(nexus_f407_i2s2_slave_tx SYSTEM PRIVATE
"${NEXUS_SOURCE_DIR}/vendors/st/cmsis_device_f4/Include"
"${NEXUS_SOURCE_DIR}/vendors/arm/CMSIS_5/CMSIS/Core/Include")
"${NEXUS_SOURCE_DIR}/vendors/st/cmsis_device_f4/Include")
nexus_use_cmsis_core(nexus_f407_i2s2_slave_tx)
target_link_libraries(nexus_f407_i2s2_slave_tx PUBLIC Nexus::IO Nexus::Core
PRIVATE Nexus::Arch nexus_build_options nexus_owned_warnings)
target_compile_definitions(nexus_f407_i2s2_slave_tx PRIVATE STM32F407xx
Expand Down
5 changes: 3 additions & 2 deletions components/soc/stm32/stm32f407_handoff/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Exact optional SoC transition. Products explicitly link this public target.
# Author: Nexus Team
include("${CMAKE_CURRENT_LIST_DIR}/../../../../cmake/platform/CMSISCore.cmake")
if(NOT NEXUS_SOC_FAMILY STREQUAL "stm32f407" OR
NOT NEXUS_BACKEND STREQUAL "baremetal")
return()
Expand All @@ -19,8 +20,8 @@ target_include_directories(nexus_stm32f407_handoff PUBLIC
"${NEXUS_SOURCE_DIR}/soc/stm32/stm32f407/private"
"${NEXUS_SOURCE_DIR}/components/clock_domain/private")
target_include_directories(nexus_stm32f407_handoff SYSTEM PRIVATE
"${NEXUS_SOURCE_DIR}/vendors/st/cmsis_device_f4/Include"
"${NEXUS_SOURCE_DIR}/vendors/arm/CMSIS_5/CMSIS/Core/Include")
"${NEXUS_SOURCE_DIR}/vendors/st/cmsis_device_f4/Include")
nexus_use_cmsis_core(nexus_stm32f407_handoff)
target_link_libraries(nexus_stm32f407_handoff PUBLIC Nexus::ClockDomain
PRIVATE Nexus::Arch nexus_build_options nexus_owned_warnings)
target_compile_definitions(nexus_stm32f407_handoff PRIVATE STM32F407xx
Expand Down
5 changes: 3 additions & 2 deletions components/soc/stm32/stm32h743_frame_dma2d/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
# Explicit pinless H743 memory accelerator; unlinked unless a consumer selects it.
# Author: Nexus Team
include("${CMAKE_CURRENT_LIST_DIR}/../../../../cmake/platform/CMSISCore.cmake")
if(NEXUS_SOC_FAMILY STREQUAL "stm32h743")
add_library(nexus_h743_frame_dma2d STATIC EXCLUDE_FROM_ALL
src/h743_frame_dma2d.c)
target_include_directories(nexus_h743_frame_dma2d PUBLIC
"${CMAKE_CURRENT_SOURCE_DIR}/include")
target_include_directories(nexus_h743_frame_dma2d SYSTEM PRIVATE
"${NEXUS_SOURCE_DIR}/vendors/st/cmsis_device_h7/Include"
"${NEXUS_SOURCE_DIR}/vendors/arm/CMSIS_5/CMSIS/Core/Include")
"${NEXUS_SOURCE_DIR}/vendors/st/cmsis_device_h7/Include")
nexus_use_cmsis_core(nexus_h743_frame_dma2d)
target_compile_definitions(nexus_h743_frame_dma2d PRIVATE STM32H743xx)
target_link_libraries(nexus_h743_frame_dma2d PUBLIC Nexus::IO Nexus::Core
PRIVATE Nexus::Arch nexus_build_options nexus_owned_warnings)
Expand Down
3 changes: 2 additions & 1 deletion components/soc/stm32/stm32u575_lpdma_copy/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Exact public receiver; unavailable outside its selected SRAM4 reference.
# Author: Nexus Team
include("${CMAKE_CURRENT_LIST_DIR}/../../../../cmake/platform/CMSISCore.cmake")
if(NOT TARGET Nexus::U575RetainedTime OR
NOT NEXUS_SOC_FAMILY STREQUAL "stm32u575" OR
NOT NEXUS_EXACT_PART STREQUAL "STM32U575ZIT6Q" OR
Expand All @@ -17,8 +18,8 @@ target_include_directories(nexus_stm32u575_lpdma_copy PUBLIC
"${NEXUS_SOURCE_DIR}/soc/stm32/stm32u575/private")
target_include_directories(nexus_stm32u575_lpdma_copy SYSTEM PRIVATE
"${NEXUS_SOURCE_DIR}/vendors/st/cmsis_device_u5/Include"
"${NEXUS_SOURCE_DIR}/vendors/arm/CMSIS_5/CMSIS/Core/Include"
"${NEXUS_SOURCE_DIR}/vendors/st/stm32u5_hal/Inc")
nexus_use_cmsis_core(nexus_stm32u575_lpdma_copy)
target_compile_definitions(nexus_stm32u575_lpdma_copy PRIVATE STM32U575xx)
target_link_libraries(nexus_stm32u575_lpdma_copy PUBLIC Nexus::U575RetainedTime
PRIVATE Nexus::IO Nexus::Arch nexus_build_options nexus_owned_warnings)
Expand Down
3 changes: 2 additions & 1 deletion components/soc/stm32/stm32u575_lpdma_lptim1/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Fixed optional SRAM4/LPTIM1 receiver, distinct public API and physical role.
# Author: Nexus Team
include("${CMAKE_CURRENT_LIST_DIR}/../../../../cmake/platform/CMSISCore.cmake")
if(NOT TARGET Nexus::U575RetainedTime OR
NOT NEXUS_SOC_FAMILY STREQUAL "stm32u575" OR
NOT NEXUS_EXACT_PART STREQUAL "STM32U575ZIT6Q" OR
Expand All @@ -18,8 +19,8 @@ target_include_directories(nexus_stm32u575_lpdma_lptim1 PUBLIC
"${NEXUS_SOURCE_DIR}/soc/stm32/stm32u575/private")
target_include_directories(nexus_stm32u575_lpdma_lptim1 SYSTEM PRIVATE
"${NEXUS_SOURCE_DIR}/vendors/st/cmsis_device_u5/Include"
"${NEXUS_SOURCE_DIR}/vendors/arm/CMSIS_5/CMSIS/Core/Include"
"${NEXUS_SOURCE_DIR}/vendors/st/stm32u5_hal/Inc")
nexus_use_cmsis_core(nexus_stm32u575_lpdma_lptim1)
target_compile_definitions(nexus_stm32u575_lpdma_lptim1 PRIVATE
STM32U575xx NEXUS_U575_STOP2_LPTIM1)
target_link_libraries(nexus_stm32u575_lpdma_lptim1 PUBLIC
Expand Down
5 changes: 3 additions & 2 deletions components/soc/stm32/stm32u575_retained_time/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Explicit independent retained clock; default Core TIM2 is unchanged.
# Author: Nexus Team
include("${CMAKE_CURRENT_LIST_DIR}/../../../../cmake/platform/CMSISCore.cmake")
if(NOT NEXUS_SOC_FAMILY STREQUAL "stm32u575" OR
NOT NEXUS_BACKEND STREQUAL "baremetal" OR
NOT NEXUS_EXACT_PART STREQUAL "STM32U575ZIT6Q" OR
Expand All @@ -21,8 +22,8 @@ target_include_directories(nexus_stm32u575_retained_time PUBLIC
"${NEXUS_SOURCE_DIR}/soc/stm32/stm32u575/private"
"${NEXUS_SOURCE_DIR}/io/private")
target_include_directories(nexus_stm32u575_retained_time SYSTEM PRIVATE
"${NEXUS_SOURCE_DIR}/vendors/st/cmsis_device_u5/Include"
"${NEXUS_SOURCE_DIR}/vendors/arm/CMSIS_5/CMSIS/Core/Include")
"${NEXUS_SOURCE_DIR}/vendors/st/cmsis_device_u5/Include")
nexus_use_cmsis_core(nexus_stm32u575_retained_time)
target_compile_definitions(nexus_stm32u575_retained_time PRIVATE STM32U575xx)
target_link_libraries(nexus_stm32u575_retained_time PUBLIC Nexus::Core
PRIVATE Nexus::IO Nexus::Arch nexus_build_options nexus_owned_warnings)
Expand Down
13 changes: 7 additions & 6 deletions components/soc/stm32/stm32u575_stop2/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Exact optional SoC Stop2 owner. External products explicitly link this target.
# Author: Nexus Team
include("${CMAKE_CURRENT_LIST_DIR}/../../../../cmake/platform/CMSISCore.cmake")
if(NOT NEXUS_SOC_FAMILY STREQUAL "stm32u575" OR
NOT NEXUS_BACKEND STREQUAL "baremetal" OR
NOT NEXUS_ARCH_SECURITY_STATE EQUAL 0)
Expand All @@ -19,8 +20,8 @@ target_include_directories(nexus_stm32u575_stop2 PUBLIC
"${NEXUS_SOURCE_DIR}/soc/stm32/stm32u575/private"
"${NEXUS_SOURCE_DIR}/components/clock_domain/private")
target_include_directories(nexus_stm32u575_stop2 SYSTEM PRIVATE
"${NEXUS_SOURCE_DIR}/vendors/st/cmsis_device_u5/Include"
"${NEXUS_SOURCE_DIR}/vendors/arm/CMSIS_5/CMSIS/Core/Include")
"${NEXUS_SOURCE_DIR}/vendors/st/cmsis_device_u5/Include")
nexus_use_cmsis_core(nexus_stm32u575_stop2)
target_link_libraries(nexus_stm32u575_stop2 PUBLIC Nexus::U575RetainedTime
Nexus::ClockDomain PRIVATE Nexus::Arch nexus_build_options
nexus_owned_warnings)
Expand All @@ -42,8 +43,8 @@ if(TARGET Nexus::U575LpdmaCopy)
"${NEXUS_SOURCE_DIR}/components/clock_domain/private"
"${NEXUS_SOURCE_DIR}/components/soc/stm32/stm32u575_lpdma_copy/private")
target_include_directories(nexus_stm32u575_stop2_copy SYSTEM PRIVATE
"${NEXUS_SOURCE_DIR}/vendors/st/cmsis_device_u5/Include"
"${NEXUS_SOURCE_DIR}/vendors/arm/CMSIS_5/CMSIS/Core/Include")
"${NEXUS_SOURCE_DIR}/vendors/st/cmsis_device_u5/Include")
nexus_use_cmsis_core(nexus_stm32u575_stop2_copy)
target_link_libraries(nexus_stm32u575_stop2_copy PUBLIC
Nexus::U575LpdmaCopy Nexus::U575RetainedTime Nexus::ClockDomain
PRIVATE Nexus::Arch nexus_build_options nexus_owned_warnings)
Expand All @@ -66,8 +67,8 @@ if(TARGET Nexus::U575LpdmaLptim1)
"${NEXUS_SOURCE_DIR}/components/clock_domain/private"
"${NEXUS_SOURCE_DIR}/components/soc/stm32/stm32u575_lpdma_lptim1/private")
target_include_directories(nexus_stm32u575_stop2_lptim1 SYSTEM PRIVATE
"${NEXUS_SOURCE_DIR}/vendors/st/cmsis_device_u5/Include"
"${NEXUS_SOURCE_DIR}/vendors/arm/CMSIS_5/CMSIS/Core/Include")
"${NEXUS_SOURCE_DIR}/vendors/st/cmsis_device_u5/Include")
nexus_use_cmsis_core(nexus_stm32u575_stop2_lptim1)
target_link_libraries(nexus_stm32u575_stop2_lptim1 PUBLIC
Nexus::U575LpdmaLptim1 Nexus::U575RetainedTime Nexus::ClockDomain
PRIVATE Nexus::Arch nexus_build_options nexus_owned_warnings)
Expand Down
Loading
Loading