diff --git a/.github/workflows/real-time-cpp.yml b/.github/workflows/real-time-cpp.yml
index c5b19a61c..867454d3c 100644
--- a/.github/workflows/real-time-cpp.yml
+++ b/.github/workflows/real-time-cpp.yml
@@ -153,7 +153,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- suite: [ am335x, bcm2835_raspi_b, lpc11c24, nxp_imxrt1062, rpi_pico_rp2040, stm32f100, stm32f407, stm32f429, stm32f446, stm32h7a3, stm32l100c, stm32l152, stm32l432 ]
+ suite: [ am335x, bcm2835_raspi_b, lpc11c24, nxp_imxrt1062, rpi_pico_rp2040, rpi_pico2_rp2350, stm32f100, stm32f407, stm32f429, stm32f446, stm32h7a3, stm32l100c, stm32l152, stm32l432 ]
steps:
- uses: actions/checkout@v4
with:
diff --git a/ref_app/cmake/rpi_pico2_rp2350.cmake b/ref_app/cmake/rpi_pico2_rp2350.cmake
new file mode 100644
index 000000000..4bd49c1a5
--- /dev/null
+++ b/ref_app/cmake/rpi_pico2_rp2350.cmake
@@ -0,0 +1,78 @@
+##############################################################################
+# Copyright Christopher Kormanyos 2021 - 2024.
+# Distributed under the Boost Software License,
+# Version 1.0. (See accompanying file LICENSE_1_0.txt
+# or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#
+# MIT License
+#
+# Copyright (c) 2019 Joel Winarske
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+
+set(APP ref_app)
+
+set(CMAKE_EXECUTABLE_SUFFIX .elf)
+
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+set(CMAKE_CXX_STANDARD 14)
+
+set(TARGET_INCLUDES
+ ${PATH_APP}/util/STL
+)
+
+set(_TARGET_CFLAGS
+ -mcpu=cortex-m33
+ -mthumb
+ -march=armv8-m.main+fp+dsp
+ -mabi=aapcs
+ -mfloat-abi=hard
+ -finline-functions
+ -finline-limit=128
+ -mno-unaligned-access
+ -mno-long-calls
+)
+
+set(TARGET_AFLAGS "")
+
+set(_TARGET_LDFLAGS
+ -nostdlib
+ -nostartfiles
+ --specs=nano.specs
+ --specs=nosys.specs
+ -T ${LINKER_DEFINITION_FILE}
+)
+
+string(REPLACE ";" " " TARGET_CFLAGS "${_TARGET_CFLAGS}")
+string(REPLACE ";" " " TARGET_LDFLAGS "${_TARGET_LDFLAGS}")
+
+
+set(FILES_TARGET
+ ${PATH_APP}/mcal/mcal_gcc_cxx_completion
+ ${PATH_APP}/mcal/${TARGET}/mcal_cpu_rp2350
+ ${PATH_TGT}/startup/core_1_run
+ ${PATH_TGT}/startup/crt0
+ ${PATH_TGT}/startup/crt0_init_ram
+ ${PATH_TGT}/startup/crt1
+ ${PATH_TGT}/startup/image_definition_block
+ ${PATH_TGT}/startup/int_vect
+ ${PATH_TGT}/startup/util
+)
diff --git a/ref_app/cmake/rpi_pico_rp2040.cmake b/ref_app/cmake/rpi_pico_rp2040.cmake
index c95c2e06d..f651e0b2c 100644
--- a/ref_app/cmake/rpi_pico_rp2040.cmake
+++ b/ref_app/cmake/rpi_pico_rp2040.cmake
@@ -55,6 +55,8 @@ set(TARGET_AFLAGS "")
set(_TARGET_LDFLAGS
-nostdlib
-nostartfiles
+ --specs=nano.specs
+ --specs=nosys.specs
-T ${LINKER_DEFINITION_FILE}
)
diff --git a/ref_app/ref_app.vcxproj b/ref_app/ref_app.vcxproj
index 84223bc5c..f5b28d4e6 100644
--- a/ref_app/ref_app.vcxproj
+++ b/ref_app/ref_app.vcxproj
@@ -3000,6 +3000,10 @@
true
true
+
+ true
+ true
+
true
true
@@ -3038,6 +3042,7 @@
true
+ true
true
diff --git a/ref_app/ref_app.vcxproj.filters b/ref_app/ref_app.vcxproj.filters
index fe8da18f5..eae30f69f 100644
--- a/ref_app/ref_app.vcxproj.filters
+++ b/ref_app/ref_app.vcxproj.filters
@@ -2861,6 +2861,9 @@
src\cmake
+
+ src\cmake
+
diff --git a/ref_app/target.vcxproj b/ref_app/target.vcxproj
index 28d160b8c..821ebc3f9 100644
--- a/ref_app/target.vcxproj
+++ b/ref_app/target.vcxproj
@@ -1014,7 +1014,7 @@
-
+
diff --git a/ref_app/target.vcxproj.filters b/ref_app/target.vcxproj.filters
index 560f1040b..e04f444eb 100644
--- a/ref_app/target.vcxproj.filters
+++ b/ref_app/target.vcxproj.filters
@@ -896,7 +896,7 @@
micros\rpi_pico2_rp2350\startup
-
+
micros\rpi_pico2_rp2350\startup
diff --git a/ref_app/target/micros/rpi_pico2_rp2350/startup/image_definition_block.c b/ref_app/target/micros/rpi_pico2_rp2350/startup/image_definition_block.cpp
similarity index 98%
rename from ref_app/target/micros/rpi_pico2_rp2350/startup/image_definition_block.c
rename to ref_app/target/micros/rpi_pico2_rp2350/startup/image_definition_block.cpp
index deaa72672..db9539ce4 100644
--- a/ref_app/target/micros/rpi_pico2_rp2350/startup/image_definition_block.c
+++ b/ref_app/target/micros/rpi_pico2_rp2350/startup/image_definition_block.cpp
@@ -17,6 +17,7 @@
#include
+extern "C"
const uint32_t __attribute__((section(".image_start_block"), used, aligned(4))) image_definition_block[] =
{
UINT32_C(0xFFFFDED3),