From 0e7f0ac56f33b3ef2d4efb7c49532b00fdb80bcc Mon Sep 17 00:00:00 2001 From: Archie Hilton Date: Tue, 10 Sep 2024 21:10:10 +0100 Subject: [PATCH] Initial Commit --- .gitignore | 3 ++ .gitmodules | 3 ++ CMakeLists.txt | 12 +++++++ pico-sdk | 1 + pico_sdk_import.cmake | 73 +++++++++++++++++++++++++++++++++++++++++++ src/CMakeLists.txt | 5 +++ src/main.c | 12 +++++++ 7 files changed, 109 insertions(+) create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100755 CMakeLists.txt create mode 160000 pico-sdk create mode 100644 pico_sdk_import.cmake create mode 100644 src/CMakeLists.txt create mode 100644 src/main.c diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b02dccb --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +build/* +compile_commands.json +.cache diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..643f237 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "pico-sdk"] + path = pico-sdk + url = https://github.com/raspberrypi/pico-sdk diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100755 index 0000000..eb7ff51 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,12 @@ +cmake_minimum_required(VERSION 3.23) + +set(CMAKE_CXX_STANDARD 20) +set(PICO_SDK_PATH "${CMAKE_CURRENT_SOURCE_DIR}/pico-sdk") +set(PICO_PLATFORM rp2350) + +include(pico_sdk_import.cmake) + +project(main C CXX ASM) +pico_sdk_init() + +add_subdirectory(src) diff --git a/pico-sdk b/pico-sdk new file mode 160000 index 0000000..efe2103 --- /dev/null +++ b/pico-sdk @@ -0,0 +1 @@ +Subproject commit efe2103f9b28458a1615ff096054479743ade236 diff --git a/pico_sdk_import.cmake b/pico_sdk_import.cmake new file mode 100644 index 0000000..65f8a6f --- /dev/null +++ b/pico_sdk_import.cmake @@ -0,0 +1,73 @@ +# This is a copy of /external/pico_sdk_import.cmake + +# This can be dropped into an external project to help locate this SDK +# It should be include()ed prior to project() + +if (DEFINED ENV{PICO_SDK_PATH} AND (NOT PICO_SDK_PATH)) + set(PICO_SDK_PATH $ENV{PICO_SDK_PATH}) + message("Using PICO_SDK_PATH from environment ('${PICO_SDK_PATH}')") +endif () + +if (DEFINED ENV{PICO_SDK_FETCH_FROM_GIT} AND (NOT PICO_SDK_FETCH_FROM_GIT)) + set(PICO_SDK_FETCH_FROM_GIT $ENV{PICO_SDK_FETCH_FROM_GIT}) + message("Using PICO_SDK_FETCH_FROM_GIT from environment ('${PICO_SDK_FETCH_FROM_GIT}')") +endif () + +if (DEFINED ENV{PICO_SDK_FETCH_FROM_GIT_PATH} AND (NOT PICO_SDK_FETCH_FROM_GIT_PATH)) + set(PICO_SDK_FETCH_FROM_GIT_PATH $ENV{PICO_SDK_FETCH_FROM_GIT_PATH}) + message("Using PICO_SDK_FETCH_FROM_GIT_PATH from environment ('${PICO_SDK_FETCH_FROM_GIT_PATH}')") +endif () + +set(PICO_SDK_PATH "${PICO_SDK_PATH}" CACHE PATH "Path to the Raspberry Pi Pico SDK") +set(PICO_SDK_FETCH_FROM_GIT "${PICO_SDK_FETCH_FROM_GIT}" CACHE BOOL "Set to ON to fetch copy of SDK from git if not otherwise locatable") +set(PICO_SDK_FETCH_FROM_GIT_PATH "${PICO_SDK_FETCH_FROM_GIT_PATH}" CACHE FILEPATH "location to download SDK") + +if (NOT PICO_SDK_PATH) + if (PICO_SDK_FETCH_FROM_GIT) + include(FetchContent) + set(FETCHCONTENT_BASE_DIR_SAVE ${FETCHCONTENT_BASE_DIR}) + if (PICO_SDK_FETCH_FROM_GIT_PATH) + get_filename_component(FETCHCONTENT_BASE_DIR "${PICO_SDK_FETCH_FROM_GIT_PATH}" REALPATH BASE_DIR "${CMAKE_SOURCE_DIR}") + endif () + # GIT_SUBMODULES_RECURSE was added in 3.17 + if (${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.17.0") + FetchContent_Declare( + pico_sdk + GIT_REPOSITORY https://github.com/raspberrypi/pico-sdk + GIT_TAG master + GIT_SUBMODULES_RECURSE FALSE + ) + else () + FetchContent_Declare( + pico_sdk + GIT_REPOSITORY https://github.com/raspberrypi/pico-sdk + GIT_TAG master + ) + endif () + + if (NOT pico_sdk) + message("Downloading Raspberry Pi Pico SDK") + FetchContent_Populate(pico_sdk) + set(PICO_SDK_PATH ${pico_sdk_SOURCE_DIR}) + endif () + set(FETCHCONTENT_BASE_DIR ${FETCHCONTENT_BASE_DIR_SAVE}) + else () + message(FATAL_ERROR + "SDK location was not specified. Please set PICO_SDK_PATH or set PICO_SDK_FETCH_FROM_GIT to on to fetch from git." + ) + endif () +endif () + +get_filename_component(PICO_SDK_PATH "${PICO_SDK_PATH}" REALPATH BASE_DIR "${CMAKE_BINARY_DIR}") +if (NOT EXISTS ${PICO_SDK_PATH}) + message(FATAL_ERROR "Directory '${PICO_SDK_PATH}' not found") +endif () + +set(PICO_SDK_INIT_CMAKE_FILE ${PICO_SDK_PATH}/pico_sdk_init.cmake) +if (NOT EXISTS ${PICO_SDK_INIT_CMAKE_FILE}) + message(FATAL_ERROR "Directory '${PICO_SDK_PATH}' does not appear to contain the Raspberry Pi Pico SDK") +endif () + +set(PICO_SDK_PATH ${PICO_SDK_PATH} CACHE PATH "Path to the Raspberry Pi Pico SDK" FORCE) + +include(${PICO_SDK_INIT_CMAKE_FILE}) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..d7292bc --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,5 @@ +add_executable(main + main.c + ) + +target_link_libraries(main pico_stdlib hardware_gpio) diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..fbf1373 --- /dev/null +++ b/src/main.c @@ -0,0 +1,12 @@ +#include + +int main(void) { + gpio_init(25); + gpio_set_dir(25, GPIO_OUT); + while(1) { + sleep_ms(500); + gpio_put(25, 0); + sleep_ms(500); + gpio_put(25, 1); + } +}