-
Notifications
You must be signed in to change notification settings - Fork 225
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #31 from P33M/picodebug
Add a CMSIS compatible implementation for picoprobe
- Loading branch information
Showing
17 changed files
with
1,406 additions
and
56 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
[submodule "CMSIS_5"] | ||
path = CMSIS_5 | ||
url = https://github.com/ARM-software/CMSIS_5 | ||
[submodule "freertos"] | ||
path = freertos | ||
url = https://github.com/FreeRTOS/FreeRTOS-Kernel |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
# This is a copy of <FREERTOS_KERNEL_PATH>/portable/ThirdParty/GCC/RP2040/FREERTOS_KERNEL_import.cmake | ||
|
||
# This can be dropped into an external project to help locate the FreeRTOS kernel | ||
# It should be include()ed prior to project(). Alternatively this file may | ||
# or the CMakeLists.txt in this directory may be included or added via add_subdirectory | ||
# respectively. | ||
|
||
if (DEFINED ENV{FREERTOS_KERNEL_PATH} AND (NOT FREERTOS_KERNEL_PATH)) | ||
set(FREERTOS_KERNEL_PATH $ENV{FREERTOS_KERNEL_PATH}) | ||
message("Using FREERTOS_KERNEL_PATH from environment ('${FREERTOS_KERNEL_PATH}')") | ||
endif () | ||
|
||
set(FREERTOS_KERNEL_RP2040_RELATIVE_PATH "portable/ThirdParty/GCC/RP2040") | ||
# undo the above | ||
set(FREERTOS_KERNEL_RP2040_BACK_PATH "../../../..") | ||
|
||
if (NOT FREERTOS_KERNEL_PATH) | ||
# check if we are inside the FreeRTOS kernel tree (i.e. this file has been included directly) | ||
get_filename_component(_ACTUAL_PATH ${CMAKE_CURRENT_LIST_DIR} REALPATH) | ||
get_filename_component(_POSSIBLE_PATH ${CMAKE_CURRENT_LIST_DIR}/${FREERTOS_KERNEL_RP2040_BACK_PATH}/${FREERTOS_KERNEL_RP2040_RELATIVE_PATH} REALPATH) | ||
if (_ACTUAL_PATH STREQUAL _POSSIBLE_PATH) | ||
get_filename_component(FREERTOS_KERNEL_PATH ${CMAKE_CURRENT_LIST_DIR}/${FREERTOS_KERNEL_RP2040_BACK_PATH} REALPATH) | ||
endif() | ||
if (_ACTUAL_PATH STREQUAL _POSSIBLE_PATH) | ||
get_filename_component(FREERTOS_KERNEL_PATH ${CMAKE_CURRENT_LIST_DIR}/${FREERTOS_KERNEL_RP2040_BACK_PATH} REALPATH) | ||
message("Setting FREERTOS_KERNEL_PATH to ${FREERTOS_KERNEL_PATH} based on location of FreeRTOS-Kernel-import.cmake") | ||
elseif (PICO_SDK_PATH AND EXISTS "${PICO_SDK_PATH}/../FreeRTOS-Kernel") | ||
set(FREERTOS_KERNEL_PATH ${PICO_SDK_PATH}/../FreeRTOS-Kernel) | ||
message("Defaulting FREERTOS_KERNEL_PATH as sibling of PICO_SDK_PATH: ${FREERTOS_KERNEL_PATH}") | ||
endif() | ||
endif () | ||
|
||
if (NOT FREERTOS_KERNEL_PATH) | ||
foreach(POSSIBLE_SUFFIX Source FreeRTOS-Kernel FreeRTOS/Source) | ||
# check if FreeRTOS-Kernel exists under directory that included us | ||
set(SEARCH_ROOT ${CMAKE_CURRENT_SOURCE_DIR}) | ||
get_filename_component(_POSSIBLE_PATH ${SEARCH_ROOT}/${POSSIBLE_SUFFIX} REALPATH) | ||
if (EXISTS ${_POSSIBLE_PATH}/${FREERTOS_KERNEL_RP2040_RELATIVE_PATH}/CMakeLists.txt) | ||
get_filename_component(FREERTOS_KERNEL_PATH ${_POSSIBLE_PATH} REALPATH) | ||
message("Setting FREERTOS_KERNEL_PATH to '${FREERTOS_KERNEL_PATH}' found relative to enclosing project") | ||
break() | ||
endif() | ||
endforeach() | ||
endif() | ||
|
||
if (NOT FREERTOS_KERNEL_PATH) | ||
message(FATAL_ERROR "FreeRTOS location was not specified. Please set FREERTOS_KERNEL_PATH.") | ||
endif() | ||
|
||
set(FREERTOS_KERNEL_PATH "${FREERTOS_KERNEL_PATH}" CACHE PATH "Path to the FreeRTOS Kernel") | ||
|
||
get_filename_component(FREERTOS_KERNEL_PATH "${FREERTOS_KERNEL_PATH}" REALPATH BASE_DIR "${CMAKE_BINARY_DIR}") | ||
if (NOT EXISTS ${FREERTOS_KERNEL_PATH}) | ||
message(FATAL_ERROR "Directory '${FREERTOS_KERNEL_PATH}' not found") | ||
endif() | ||
if (NOT EXISTS ${FREERTOS_KERNEL_PATH}/${FREERTOS_KERNEL_RP2040_RELATIVE_PATH}/CMakeLists.txt) | ||
message(FATAL_ERROR "Directory '${FREERTOS_KERNEL_PATH}' does not contain an RP2040 port here: ${FREERTOS_KERNEL_RP2040_RELATIVE_PATH}") | ||
endif() | ||
set(FREERTOS_KERNEL_PATH ${FREERTOS_KERNEL_PATH} CACHE PATH "Path to the FreeRTOS_KERNEL" FORCE) | ||
|
||
add_subdirectory(${FREERTOS_KERNEL_PATH}/${FREERTOS_KERNEL_RP2040_RELATIVE_PATH} FREERTOS_KERNEL) |
Oops, something went wrong.