Standardise references to the Raspberry Pi Pico SDK
This commit is contained in:
parent
705f1ae59f
commit
3e52e57f5f
46
README.md
46
README.md
@ -1,20 +1,20 @@
|
|||||||
# Pico SDK
|
# Raspberry Pi Pico SDK
|
||||||
|
|
||||||
The Pico SDK provides the headers, libraries and build system
|
The Raspberry Pi Pico SDK (henceforth SDK) provides the headers, libraries and build system
|
||||||
necessary to write programs for the RP2040 based devices such as the Raspberry Pi Pico
|
necessary to write programs for the RP2040 based devices such as the Raspberry Pi Pico
|
||||||
in C, C++ or assembly language.
|
in C, C++ or assembly language.
|
||||||
|
|
||||||
The Pico SDK is designed to provide an API and programming environment that is familiar both to non-embedded C developers and embedded C developers alike.
|
The SDK is designed to provide an API and programming environment that is familiar both to non-embedded C developers and embedded C developers alike.
|
||||||
A single program runs on the device at a time and starts with a conventional `main()` method. Standard C/C++ libraries are supported along with
|
A single program runs on the device at a time and starts with a conventional `main()` method. Standard C/C++ libraries are supported along with
|
||||||
C level libraries/APIs for accessing all of the RP2040's hardware include PIO (Programmable IO)
|
C level libraries/APIs for accessing all of the RP2040's hardware include PIO (Programmable IO)
|
||||||
|
|
||||||
Additionally the Pico SDK provides higher level libraries for dealing with timers, synchronization, USB (TinyUSB) and multi-core programming
|
Additionally the SDK provides higher level libraries for dealing with timers, synchronization, USB (TinyUSB) and multi-core programming
|
||||||
along with various utilities.
|
along with various utilities.
|
||||||
|
|
||||||
The Pico SDK can be used to build anything from simple applications, full fledged runtime environments such as MicroPython, to low level software
|
The SDK can be used to build anything from simple applications, full fledged runtime environments such as MicroPython, to low level software
|
||||||
such as RP2040's on chip bootrom itself.
|
such as RP2040's on chip bootrom itself.
|
||||||
|
|
||||||
Additional libraries/APIs that are not yet ready for inclusion in the Pico SDK can be found in [pico-extras](https://github.com/raspberrypi/pico-extras).
|
Additional libraries/APIs that are not yet ready for inclusion in the SDK can be found in [pico-extras](https://github.com/raspberrypi/pico-extras).
|
||||||
|
|
||||||
# Documentation
|
# Documentation
|
||||||
|
|
||||||
@ -22,10 +22,10 @@ See [Getting Started with the Raspberry Pi Pico](https://rptl.io/pico-get-starte
|
|||||||
hardware, IDE/environment and for how to build and debug software for the Raspberry Pi Pico
|
hardware, IDE/environment and for how to build and debug software for the Raspberry Pi Pico
|
||||||
and other RP2040 based devices.
|
and other RP2040 based devices.
|
||||||
|
|
||||||
See [Pico C/C++ SDK](https://rptl.io/pico-c-sdk) to learn more about programming using the
|
See [Raspberry Pi Pico C/C++ SDK](https://rptl.io/pico-c-sdk) to learn more about programming using the
|
||||||
Pico SDK, exploring more advanced features, and complete PDF based API documentation.
|
SDK, exploring more advanced features, and complete PDF based API documentation.
|
||||||
|
|
||||||
See [Online Pico SDK API docs](https://rptl.io/pico-doxygen) for HTML based API documentation.
|
See [Online Raspberry Pi Pico SDK API docs](https://rptl.io/pico-doxygen) for HTML based API documentation.
|
||||||
|
|
||||||
# Example code
|
# Example code
|
||||||
|
|
||||||
@ -34,16 +34,16 @@ See [pico-examples](https://github.com/raspberrypi/pico-examples) for example co
|
|||||||
# Quick-start your own project
|
# Quick-start your own project
|
||||||
|
|
||||||
These instructions are exteremly terse, and Linux based only. For detailed steps,
|
These instructions are exteremly terse, and Linux based only. For detailed steps,
|
||||||
instructions for other platforms, and just in general, we recommend you see [Pico C/C++ SDK](https://rptl.io/pico-c-sdk)
|
instructions for other platforms, and just in general, we recommend you see [Raspberry Pi Pico C/C++ SDK](https://rptl.io/pico-c-sdk)
|
||||||
|
|
||||||
1. Install CMake (at least version 3.12), and GCC cross compiler
|
1. Install CMake (at least version 3.12), and GCC cross compiler
|
||||||
```
|
```
|
||||||
sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi
|
sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi
|
||||||
```
|
```
|
||||||
1. Set up your project to point to use the Pico SDK
|
1. Set up your project to point to use the Raspberry Pi Pico SDK
|
||||||
|
|
||||||
* By cloning the Pico SDK locally (most common)
|
* By cloning the SDK locally (most common)
|
||||||
1. `git clone` this Pico SDK repository
|
1. `git clone` this Raspberry Pi Pico SDK repository
|
||||||
1. Copy [pico_sdk_import.cmake](https://github.com/raspberrypi/pico-sdk/blob/master/external/pico_sdk_import.cmake)
|
1. Copy [pico_sdk_import.cmake](https://github.com/raspberrypi/pico-sdk/blob/master/external/pico_sdk_import.cmake)
|
||||||
from the SDK into your project directory
|
from the SDK into your project directory
|
||||||
2. Set `PICO_SDK_PATH` to the SDK location in your environment, or pass it (`-DPICO_SDK_PATH=`) to cmake later.
|
2. Set `PICO_SDK_PATH` to the SDK location in your environment, or pass it (`-DPICO_SDK_PATH=`) to cmake later.
|
||||||
@ -58,27 +58,27 @@ instructions for other platforms, and just in general, we recommend you see [Pic
|
|||||||
|
|
||||||
project(my_project)
|
project(my_project)
|
||||||
|
|
||||||
# initialize the Pico SDK
|
# initialize the Raspberry Pi Pico SDK
|
||||||
pico_sdk_init()
|
pico_sdk_init()
|
||||||
|
|
||||||
# rest of your project
|
# rest of your project
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
* With Pico SDK as a submodule
|
* With the Raspberry Pi Pico SDK as a submodule
|
||||||
1. Clone the SDK as a submodule called `pico-sdk`
|
1. Clone the SDK as a submodule called `pico-sdk`
|
||||||
1. Setup a `CMakeLists.txt` like:
|
1. Setup a `CMakeLists.txt` like:
|
||||||
|
|
||||||
```cmake
|
```cmake
|
||||||
cmake_minimum_required(VERSION 3.12)
|
cmake_minimum_required(VERSION 3.12)
|
||||||
|
|
||||||
# initialize pico_sdk from submodule
|
# initialize pico-sdk from submodule
|
||||||
# note: this must happen before project()
|
# note: this must happen before project()
|
||||||
include(pico-sdk/pico_sdk_init.cmake)
|
include(pico-sdk/pico_sdk_init.cmake)
|
||||||
|
|
||||||
project(my_project)
|
project(my_project)
|
||||||
|
|
||||||
# initialize the Pico SDK
|
# initialize the Raspberry Pi Pico SDK
|
||||||
pico_sdk_init()
|
pico_sdk_init()
|
||||||
|
|
||||||
# rest of your project
|
# rest of your project
|
||||||
@ -93,7 +93,7 @@ instructions for other platforms, and just in general, we recommend you see [Pic
|
|||||||
```cmake
|
```cmake
|
||||||
cmake_minimum_required(VERSION 3.12)
|
cmake_minimum_required(VERSION 3.12)
|
||||||
|
|
||||||
# initialize pico_sdk from GIT
|
# initialize pico-sdk from GIT
|
||||||
# (note this can come from environment, CMake cache etc)
|
# (note this can come from environment, CMake cache etc)
|
||||||
set(PICO_SDK_FETCH_FROM_GIT on)
|
set(PICO_SDK_FETCH_FROM_GIT on)
|
||||||
|
|
||||||
@ -103,7 +103,7 @@ instructions for other platforms, and just in general, we recommend you see [Pic
|
|||||||
|
|
||||||
project(my_project)
|
project(my_project)
|
||||||
|
|
||||||
# initialize the Pico SDK
|
# initialize the Raspberry Pi Pico SDK
|
||||||
pico_sdk_init()
|
pico_sdk_init()
|
||||||
|
|
||||||
# rest of your project
|
# rest of your project
|
||||||
@ -118,7 +118,7 @@ instructions for other platforms, and just in general, we recommend you see [Pic
|
|||||||
$ cmake ..
|
$ cmake ..
|
||||||
```
|
```
|
||||||
|
|
||||||
4. Write your code (see [pico-examples](https://github.com/raspberrypi/pico-examples) or the [Pico C/C++ SDK](https://rptl.io/pico-c-sdk) documentation
|
4. Write your code (see [pico-examples](https://github.com/raspberrypi/pico-examples) or the [Raspberry Pi Pico C/C++ SDK](https://rptl.io/pico-c-sdk) documentation
|
||||||
for more information)
|
for more information)
|
||||||
|
|
||||||
About the simplest you can do is a single source file (e.g. hello_world.c)
|
About the simplest you can do is a single source file (e.g. hello_world.c)
|
||||||
@ -147,8 +147,8 @@ for more information)
|
|||||||
pico_add_extra_outputs(hello_world)
|
pico_add_extra_outputs(hello_world)
|
||||||
```
|
```
|
||||||
|
|
||||||
Note this example uses the default UART for _stdout_;
|
Note this example uses the default UART for _stdout_;
|
||||||
if you want ot use the default USB see the [hello-usb](https://github.com/raspberrypi/pico-examples/tree/master/hello_world/usb) example.
|
if you want to use the default USB see the [hello-usb](https://github.com/raspberrypi/pico-examples/tree/master/hello_world/usb) example.
|
||||||
|
|
||||||
|
|
||||||
5. Make your target from the build directory you created.
|
5. Make your target from the build directory you created.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
PROJECT_NAME = "Pico SDK"
|
PROJECT_NAME = "Raspberry Pi Pico SDK"
|
||||||
PROJECT_NUMBER = @VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_PATCH@
|
PROJECT_NUMBER = @VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_PATCH@
|
||||||
|
|
||||||
#STRIP_FROM_PATH = @PROJECT_SOURCE_DIR@
|
#STRIP_FROM_PATH = @PROJECT_SOURCE_DIR@
|
||||||
@ -20,7 +20,7 @@ LAYOUT_FILE = @PROJECT_SOURCE_DIR@/docs/DoxygenLayout.xml
|
|||||||
HTML_FOOTER = @PROJECT_SOURCE_DIR@/docs/footer.html
|
HTML_FOOTER = @PROJECT_SOURCE_DIR@/docs/footer.html
|
||||||
HTML_HEADER = @PROJECT_SOURCE_DIR@/docs/header.html
|
HTML_HEADER = @PROJECT_SOURCE_DIR@/docs/header.html
|
||||||
|
|
||||||
PROJECT_BRIEF = "Pico SDK documentation"
|
PROJECT_BRIEF = "Raspberry Pi Pico SDK documentation"
|
||||||
PROJECT_NUMBER = 1.0
|
PROJECT_NUMBER = 1.0
|
||||||
OPTIMIZE_OUTPUT_FOR_C = YES
|
OPTIMIZE_OUTPUT_FOR_C = YES
|
||||||
# HTML_EXTRA_STYLESHEET = @PROJECT_SOURCE_DIR@/docs/customdoxygen.css
|
# HTML_EXTRA_STYLESHEET = @PROJECT_SOURCE_DIR@/docs/customdoxygen.css
|
||||||
|
@ -2,22 +2,22 @@
|
|||||||
<!-- Generated by doxygen 1.8.17 -->
|
<!-- Generated by doxygen 1.8.17 -->
|
||||||
<!-- Navigation index tabs for HTML output -->
|
<!-- Navigation index tabs for HTML output -->
|
||||||
<navindex>
|
<navindex>
|
||||||
<tab type="mainpage" visible="yes" title="Pico SDK Introduction"></tab>
|
<tab type="mainpage" visible="yes" title="Introduction"></tab>
|
||||||
<tab type="modules" visible="yes" title="SDK API Documentation" intro="These are the libraries supplied in the Pico SDK"/>
|
<tab type="modules" visible="yes" title="API Documentation" intro="These are the libraries supplied in the Raspberry Pi Pico SDK"/>
|
||||||
<tab type="user" url="@ref examples_page" visible="yes" title="Examples" intro="Links to SDK examples"/>
|
<tab type="user" url="@ref examples_page" visible="yes" title="Examples" intro="Links to SDK examples"/>
|
||||||
<tab type="usergroup" url="@ref weblinks_page" visible="yes" title="Additional Documentation" intro="Links to datasheets and documentation">
|
<tab type="usergroup" url="@ref weblinks_page" visible="yes" title="Additional Documentation" intro="Links to datasheets and documentation">
|
||||||
<tab type="user" url="https://rptl.io/pico-datasheet" visible="yes" title="Raspberry Pi Pico Datasheet" intro=""/>
|
<tab type="user" url="https://rptl.io/pico-datasheet" visible="yes" title="Raspberry Pi Pico Datasheet" intro=""/>
|
||||||
<tab type="user" url="https://rptl.io/rp2040-datasheet" visible="yes" title="RP2040 Datasheet" intro=""/>
|
<tab type="user" url="https://rptl.io/rp2040-datasheet" visible="yes" title="RP2040 Datasheet" intro=""/>
|
||||||
<tab type="user" url="https://rptl.io/rp2040-design" visible="yes" title="Hardware design with RP2040" intro=""/>
|
<tab type="user" url="https://rptl.io/rp2040-design" visible="yes" title="Hardware design with RP2040" intro=""/>
|
||||||
<tab type="user" url="https://rptl.io/pico-c-sdk" visible="yes" title="Pico C/C++ SDK" intro=""/>
|
<tab type="user" url="https://rptl.io/pico-c-sdk" visible="yes" title="Raspberry Pi Pico C/C++ SDK" intro=""/>
|
||||||
<tab type="user" url="https://rptl.io/pico-micropython" visible="yes" title="Pico Python SDK" intro=""/>
|
<tab type="user" url="https://rptl.io/pico-micropython" visible="yes" title="Raspberry Pi Pico Python SDK" intro=""/>
|
||||||
<tab type="user" url="https://rptl.io/pico-get-started" visible="yes" title="Getting started with Raspberry Pi Pico" intro=""/>
|
<tab type="user" url="https://rptl.io/pico-get-started" visible="yes" title="Getting started with Raspberry Pi Pico" intro=""/>
|
||||||
</tab>
|
</tab>
|
||||||
<tab type="usergroup" url="@ref weblinks_page" visible="yes" title="Web" intro="useful weblinks">
|
<tab type="usergroup" url="@ref weblinks_page" visible="yes" title="Web" intro="useful weblinks">
|
||||||
<tab type="user" url="https://www.raspberrypi.org/" visible="yes" title="Raspberry Pi Site" intro=""/>
|
<tab type="user" url="https://www.raspberrypi.org/" visible="yes" title="Raspberry Pi Site" intro=""/>
|
||||||
<tab type="user" url="https://rptl.io/rp2040-get-started" visible="yes" title="Raspberry Pi Pico Page" intro=""/>
|
<tab type="user" url="https://rptl.io/rp2040-get-started" visible="yes" title="Raspberry Pi Pico Page" intro=""/>
|
||||||
<tab type="user" url="https://www.raspberrypi.org/forums" visible="yes" title="Raspberry Pi Forums" intro=""/>
|
<tab type="user" url="https://www.raspberrypi.org/forums" visible="yes" title="Raspberry Pi Forums" intro=""/>
|
||||||
<tab type="user" url="https://github.com/raspberrypi/pico-sdk" visible="yes" title="Pico SDK on Github" intro=""/>
|
<tab type="user" url="https://github.com/raspberrypi/pico-sdk" visible="yes" title="Raspberry Pi Pico SDK on Github" intro=""/>
|
||||||
<tab type="user" url="https://github.com/raspberrypi/pico-examples" visible="yes" title="Pico Examples on Github" intro=""/>
|
<tab type="user" url="https://github.com/raspberrypi/pico-examples" visible="yes" title="Pico Examples on Github" intro=""/>
|
||||||
<tab type="user" url="https://github.com/raspberrypi/pico-extras" visible="yes" title="Pico Extras on Github" intro=""/>
|
<tab type="user" url="https://github.com/raspberrypi/pico-extras" visible="yes" title="Pico Extras on Github" intro=""/>
|
||||||
<tab type="user" url="https://github.com/raspberrypi/pico-playground" visible="yes" title="Pico Playground on Github" intro=""/>
|
<tab type="user" url="https://github.com/raspberrypi/pico-playground" visible="yes" title="Pico Playground on Github" intro=""/>
|
||||||
@ -146,7 +146,7 @@
|
|||||||
</namespace>
|
</namespace>
|
||||||
|
|
||||||
<!-- Layout definition for a file page -->
|
<!-- Layout definition for a file page -->
|
||||||
<file> <tab type="modules" visible="yes" title="Libraries" intro="Here is a list of all the libraries supported in the Pico SDK"/>
|
<file> <tab type="modules" visible="yes" title="Libraries" intro="Here is a list of all the libraries supported in the Raspberry Pi Pico SDK"/>
|
||||||
|
|
||||||
<briefdescription visible="yes"/>
|
<briefdescription visible="yes"/>
|
||||||
<includes visible="$SHOW_INCLUDE_FILES"/>
|
<includes visible="$SHOW_INCLUDE_FILES"/>
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
# Pico SDK
|
# Raspberry Pi Pico SDK
|
||||||
|
|
||||||
The Pico SDK (Software Development Kit) provides the headers, libraries and build system necessary to write programs for the RP2040 based devices such as the Raspberry Pi Pico in C, C++ or assembly language. The Pico SDK is designed to provide an API and programming environment that is familiar both to non-embedded C developers and embedded C developers alike.
|
The Raspberry Pi Pico SDK (Software Development Kit), henceforth SDK, provides the headers, libraries and build system necessary to write programs for the RP2040 based devices such as the Raspberry Pi Pico in C, C++ or assembly language. The SDK is designed to provide an API and programming environment that is familiar both to non-embedded C developers and embedded C developers alike.
|
||||||
|
|
||||||
A single program runs on the device at a time with a conventional main() method. Standard C/C++ libraries are supported along with APIs for accessing the RP2040’s hardware, including DMA, IRQs, and the wide variety fixed function peripherals and PIO (Programmable IO).
|
A single program runs on the device at a time with a conventional main() method. Standard C/C++ libraries are supported along with APIs for accessing the RP2040’s hardware, including DMA, IRQs, and the wide variety fixed function peripherals and PIO (Programmable IO).
|
||||||
|
|
||||||
Additionally the Pico SDK provides higher level libraries for dealing with timers, USB, synchronization and multi-core programming, along with additional high level functionality built using PIO such as audio. The Pico SDK can be used to build anything from simple applications, full fledged runtime environments such as MicroPython, to low level software such as the RP2040’s on chip bootrom itself.
|
Additionally the SDK provides higher level libraries for dealing with timers, USB, synchronization and multi-core programming, along with additional high level functionality built using PIO such as audio. The SDK can be used to build anything from simple applications, full fledged runtime environments such as MicroPython, to low level software such as the RP2040’s on chip bootrom itself.
|
||||||
|
|
||||||
This documentation is generated from the Pico SDK source tree using Doxygen. It provides basic information on the APIs used for each library, but does not provide usage information. Please refer to the Databooks for usage and more technical information.
|
This documentation is generated from the SDK source tree using Doxygen. It provides basic information on the APIs used for each library, but does not provide usage information. Please refer to the Databooks for usage and more technical information.
|
||||||
|
|
||||||
## SDK Design
|
## SDK Design
|
||||||
|
|
||||||
@ -14,13 +14,13 @@ The RP2040 is a powerful chip, however it is an embedded environment, so both RA
|
|||||||
|
|
||||||
The intention within the SDK has been for features to just work out of the box, with sensible defaults, but also to give the developer as much control and power as possible (if they want it) to fine tune every aspect of the application they are building and the libraries used.
|
The intention within the SDK has been for features to just work out of the box, with sensible defaults, but also to give the developer as much control and power as possible (if they want it) to fine tune every aspect of the application they are building and the libraries used.
|
||||||
|
|
||||||
## The build system
|
## The Build System
|
||||||
|
|
||||||
The Pico SDK uses CMake to manage the build. CMake is widely supported by IDEs (Integrated Development Environments), and allows a simple specification of the build (via CMakeLists.txt files), from which CMake can generate a build system (for use by `make`, `ninja` or other build tools) customized for the platform and by any configuration variables the developer chooses for a list of configuration variables).
|
The SDK uses CMake to manage the build. CMake is widely supported by IDEs (Integrated Development Environments), and allows a simple specification of the build (via CMakeLists.txt files), from which CMake can generate a build system (for use by `make`, `ninja` or other build tools) customized for the platform and by any configuration variables the developer chooses for a list of configuration variables).
|
||||||
|
|
||||||
Apart from being a widely used build system for C/C++ development, CMake is fundamental to the way the Pico SDK is structured, and how applications are configured and built.
|
Apart from being a widely used build system for C/C++ development, CMake is fundamental to the way the SDK is structured, and how applications are configured and built.
|
||||||
|
|
||||||
The Pico SDK builds an executable which is bare metal, i.e. it includes the entirety of the code needed to run on the device (other than floating point and other optimized code contained in the bootrom within the RP2040).
|
The SDK builds an executable which is bare metal, i.e. it includes the entirety of the code needed to run on the device (other than floating point and other optimized code contained in the bootrom within the RP2040).
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
|
@ -5,13 +5,13 @@ The full documentation for the RP2040 and Raspberry Pi Pico board can be found a
|
|||||||
- [RP2040 Datasheet](https://rptl.io/rp2040-datasheet)
|
- [RP2040 Datasheet](https://rptl.io/rp2040-datasheet)
|
||||||
- [Raspberry Pi Pico datasheet](https://rptl.io/pico-datasheet)
|
- [Raspberry Pi Pico datasheet](https://rptl.io/pico-datasheet)
|
||||||
- [Hardware Design with the RP2040](https://rptl.io/rp2040-design)
|
- [Hardware Design with the RP2040](https://rptl.io/rp2040-design)
|
||||||
- [Pico C/C++ SDK](https://rptl.io/pico-c-sdk)
|
- [Raspberry Pi Pico C/C++ SDK](https://rptl.io/pico-c-sdk)
|
||||||
- [Pico Python SDK](https://rptl.io/pico-micropython)
|
- [Raspberry Pi Pico Python SDK](https://rptl.io/pico-micropython)
|
||||||
- [Getting Started with Raspberry Pi Pico](https://rptl.io/pico-get-started)
|
- [Getting Started with Raspberry Pi Pico](https://rptl.io/pico-get-started)
|
||||||
|
|
||||||
### Weblinks
|
### Weblinks
|
||||||
|
|
||||||
At Raspberry Pi we have a very community based attitude to help. We run a very popular and busy forum where you can ask questions about any aspect of the Raspberry Pi ecosystem, including the Raspberry Pi Pico.
|
At Raspberry Pi we have a very community-based attitude to help. We run a very popular and busy forum where you can ask questions about any aspect of the Raspberry Pi ecosystem, including the Raspberry Pi Pico.
|
||||||
|
|
||||||
You can find our forums at the [following link](https://www.raspberrypi.org/forums).
|
You can find our forums at the [following link](https://www.raspberrypi.org/forums).
|
||||||
|
|
||||||
@ -21,9 +21,9 @@ For the Raspberry Pi Pico page, [see here](https://rptl.io/rp2040-get-started)
|
|||||||
|
|
||||||
### Github
|
### Github
|
||||||
|
|
||||||
All the source code for the Pico SDK, examples and other libraries can be found on Github.
|
All the source code for the Raspberry Pi Pico SDK, examples and other libraries can be found on Github.
|
||||||
|
|
||||||
- [Pico C/C++ SDK](https://github.com/raspberrypi/pico-sdk)
|
- [Raspberry Pi Pico SDK](https://github.com/raspberrypi/pico-sdk)
|
||||||
- [Pico Examples](https://github.com/raspberrypi/pico-examples)
|
- [Pico Examples](https://github.com/raspberrypi/pico-examples)
|
||||||
- [Pico Extras - Libraries under development](https://github.com/raspberrypi/pico-extras)
|
- [Pico Extras - Libraries under development](https://github.com/raspberrypi/pico-extras)
|
||||||
- [Pico Playground - Examples that use Pico Extras](https://github.com/raspberrypi/pico-playground)
|
- [Pico Playground - Examples that use Pico Extras](https://github.com/raspberrypi/pico-playground)
|
||||||
|
12
external/pico_sdk_import.cmake
vendored
12
external/pico_sdk_import.cmake
vendored
@ -18,8 +18,8 @@ if (DEFINED ENV{PICO_SDK_FETCH_FROM_GIT_PATH} AND (NOT PICO_SDK_FETCH_FROM_GIT_P
|
|||||||
message("Using PICO_SDK_FETCH_FROM_GIT_PATH from environment ('${PICO_SDK_FETCH_FROM_GIT_PATH}')")
|
message("Using PICO_SDK_FETCH_FROM_GIT_PATH from environment ('${PICO_SDK_FETCH_FROM_GIT_PATH}')")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
set(PICO_SDK_PATH "${PICO_SDK_PATH}" CACHE PATH "Path to the PICO SDK")
|
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 PICO SDK from git if not otherwise locatable")
|
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")
|
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 (NOT PICO_SDK_PATH)
|
||||||
@ -35,14 +35,14 @@ if (NOT PICO_SDK_PATH)
|
|||||||
GIT_TAG master
|
GIT_TAG master
|
||||||
)
|
)
|
||||||
if (NOT pico_sdk)
|
if (NOT pico_sdk)
|
||||||
message("Downloading PICO SDK")
|
message("Downloading Raspberry Pi Pico SDK")
|
||||||
FetchContent_Populate(pico_sdk)
|
FetchContent_Populate(pico_sdk)
|
||||||
set(PICO_SDK_PATH ${pico_sdk_SOURCE_DIR})
|
set(PICO_SDK_PATH ${pico_sdk_SOURCE_DIR})
|
||||||
endif ()
|
endif ()
|
||||||
set(FETCHCONTENT_BASE_DIR ${FETCHCONTENT_BASE_DIR_SAVE})
|
set(FETCHCONTENT_BASE_DIR ${FETCHCONTENT_BASE_DIR_SAVE})
|
||||||
else ()
|
else ()
|
||||||
message(FATAL_ERROR
|
message(FATAL_ERROR
|
||||||
"PICO SDK location was not specified. Please set PICO_SDK_PATH or set PICO_SDK_FETCH_FROM_GIT to on to fetch from git."
|
"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 ()
|
||||||
endif ()
|
endif ()
|
||||||
@ -54,9 +54,9 @@ endif ()
|
|||||||
|
|
||||||
set(PICO_SDK_INIT_CMAKE_FILE ${PICO_SDK_PATH}/pico_sdk_init.cmake)
|
set(PICO_SDK_INIT_CMAKE_FILE ${PICO_SDK_PATH}/pico_sdk_init.cmake)
|
||||||
if (NOT EXISTS ${PICO_SDK_INIT_CMAKE_FILE})
|
if (NOT EXISTS ${PICO_SDK_INIT_CMAKE_FILE})
|
||||||
message(FATAL_ERROR "Directory '${PICO_SDK_PATH}' does not appear to contain the PICO SDK")
|
message(FATAL_ERROR "Directory '${PICO_SDK_PATH}' does not appear to contain the Raspberry Pi Pico SDK")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
set(PICO_SDK_PATH ${PICO_SDK_PATH} CACHE PATH "Path to the PICO SDK" FORCE)
|
set(PICO_SDK_PATH ${PICO_SDK_PATH} CACHE PATH "Path to the Raspberry Pi Pico SDK" FORCE)
|
||||||
|
|
||||||
include(${PICO_SDK_INIT_CMAKE_FILE})
|
include(${PICO_SDK_INIT_CMAKE_FILE})
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Initialize the PICO SDK
|
# Initialize the Raspberry Pi Pico SDK
|
||||||
# This file must be included prior to the project() call
|
# This file must be included prior to the project() call
|
||||||
|
|
||||||
if (_PICO_SDK_INIT)
|
if (_PICO_SDK_INIT)
|
||||||
@ -22,14 +22,14 @@ endif ()
|
|||||||
|
|
||||||
get_filename_component(PICO_SDK_PATH "${PICO_SDK_PATH}" REALPATH BASE_DIR "${CMAKE_BINARY_DIR}")
|
get_filename_component(PICO_SDK_PATH "${PICO_SDK_PATH}" REALPATH BASE_DIR "${CMAKE_BINARY_DIR}")
|
||||||
|
|
||||||
set(PICO_SDK_PATH ${CMAKE_CURRENT_LIST_DIR} CACHE PATH "Path to the Pico SDK" FORCE)
|
set(PICO_SDK_PATH ${CMAKE_CURRENT_LIST_DIR} CACHE PATH "Path to the Raspberry Pi Pico SDK" FORCE)
|
||||||
|
|
||||||
list(APPEND CMAKE_MODULE_PATH ${PICO_SDK_PATH}/cmake)
|
list(APPEND CMAKE_MODULE_PATH ${PICO_SDK_PATH}/cmake)
|
||||||
|
|
||||||
include(${CMAKE_CURRENT_LIST_DIR}/pico_sdk_version.cmake)
|
include(${CMAKE_CURRENT_LIST_DIR}/pico_sdk_version.cmake)
|
||||||
include(pico_utils)
|
include(pico_utils)
|
||||||
|
|
||||||
message("Pico SDK is located at ${CMAKE_CURRENT_LIST_DIR}")
|
message("PICO_SDK_PATH is ${CMAKE_CURRENT_LIST_DIR}")
|
||||||
|
|
||||||
include(pico_pre_load_platform)
|
include(pico_pre_load_platform)
|
||||||
|
|
||||||
@ -41,7 +41,7 @@ macro(pico_sdk_init)
|
|||||||
if (NOT CMAKE_PROJECT_NAME)
|
if (NOT CMAKE_PROJECT_NAME)
|
||||||
message(WARNING "pico_sdk_init() should be called after the project is created (and languages added)")
|
message(WARNING "pico_sdk_init() should be called after the project is created (and languages added)")
|
||||||
endif()
|
endif()
|
||||||
add_subdirectory(${PICO_SDK_PATH} pico_sdk)
|
add_subdirectory(${PICO_SDK_PATH} pico-sdk)
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
macro(add_sub_list_dirs var)
|
macro(add_sub_list_dirs var)
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
/** \file pico.h
|
/** \file pico.h
|
||||||
* \defgroup pico_base pico_base
|
* \defgroup pico_base pico_base
|
||||||
*
|
*
|
||||||
* Core types and macros for the Pico SDK. This header is intended to be included by all source code
|
* Core types and macros for the Raspberry Pi Pico SDK. This header is intended to be included by all source code
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "pico/types.h"
|
#include "pico/types.h"
|
||||||
|
@ -20,7 +20,7 @@ extern "C" {
|
|||||||
/** \file stdlib.h
|
/** \file stdlib.h
|
||||||
* \defgroup pico_stdlib pico_stdlib
|
* \defgroup pico_stdlib pico_stdlib
|
||||||
*
|
*
|
||||||
* Aggregation of a core subset of Pico SDK libraries used by most executables along with some additional
|
* Aggregation of a core subset of Raspberry Pi Pico SDK libraries used by most executables along with some additional
|
||||||
* utility methods. Including pico_stdlib gives you everything you need to get a basic program running
|
* utility methods. Including pico_stdlib gives you everything you need to get a basic program running
|
||||||
* which prints to stdout or flashes a LED
|
* which prints to stdout or flashes a LED
|
||||||
*
|
*
|
||||||
|
@ -20,7 +20,7 @@ extern "C" {
|
|||||||
* API for accurate timestamps, sleeping, and time based callbacks
|
* API for accurate timestamps, sleeping, and time based callbacks
|
||||||
*
|
*
|
||||||
* \note The functions defined here provide a much more powerful and user friendly wrapping around the
|
* \note The functions defined here provide a much more powerful and user friendly wrapping around the
|
||||||
* low level hardware timer functionality. For these functions (and any other Pico SDK functionality
|
* low level hardware timer functionality. For these functions (and any other SDK functionality
|
||||||
* e.g. timeouts, that relies on them) to work correctly, the hardware timer should not be modified. i.e. it is expected
|
* e.g. timeouts, that relies on them) to work correctly, the hardware timer should not be modified. i.e. it is expected
|
||||||
* to be monotonically increasing once per microsecond. Fortunately there is no need to modify the hardware
|
* to be monotonically increasing once per microsecond. Fortunately there is no need to modify the hardware
|
||||||
* timer as any functionality you can think of that isn't already covered here can easily be modelled
|
* timer as any functionality you can think of that isn't already covered here can easily be modelled
|
||||||
@ -355,7 +355,7 @@ void alarm_pool_init_default();
|
|||||||
#if !PICO_TIME_DEFAULT_ALARM_POOL_DISABLED
|
#if !PICO_TIME_DEFAULT_ALARM_POOL_DISABLED
|
||||||
/*!
|
/*!
|
||||||
* \brief The default alarm pool used when alarms are added without specifying an alarm pool,
|
* \brief The default alarm pool used when alarms are added without specifying an alarm pool,
|
||||||
* and also used by the Pico SDK to support lower power sleeps and timeouts.
|
* and also used by the SDK to support lower power sleeps and timeouts.
|
||||||
*
|
*
|
||||||
* \ingroup alarm
|
* \ingroup alarm
|
||||||
* \sa #PICO_TIME_DEFAULT_ALARM_POOL_HARDWARE_ALARM_NUM
|
* \sa #PICO_TIME_DEFAULT_ALARM_POOL_HARDWARE_ALARM_NUM
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
*
|
*
|
||||||
* This header provides low level macros and inline functions for accessing the hardware dividers directly,
|
* This header provides low level macros and inline functions for accessing the hardware dividers directly,
|
||||||
* and perhaps most usefully performing asynchronous divides. These functions however do not follow the regular
|
* and perhaps most usefully performing asynchronous divides. These functions however do not follow the regular
|
||||||
* Pico SDK conventions for saving/restoring the divider state, so are not generally safe to call from interrupt handlers
|
* SDK conventions for saving/restoring the divider state, so are not generally safe to call from interrupt handlers
|
||||||
*
|
*
|
||||||
* The pico_divider library provides a more user friendly set of APIs over the divider (and support for
|
* The pico_divider library provides a more user friendly set of APIs over the divider (and support for
|
||||||
* 64 bit divides), and of course by default regular C language integer divisions are redirected through that library, meaning
|
* 64 bit divides), and of course by default regular C language integer divisions are redirected through that library, meaning
|
||||||
|
@ -31,7 +31,7 @@ extern "C" {
|
|||||||
* code which uses both fewer CPU cycles and fewer CPU registers in the time critical sections of the
|
* code which uses both fewer CPU cycles and fewer CPU registers in the time critical sections of the
|
||||||
* code.
|
* code.
|
||||||
*
|
*
|
||||||
* The interpolators are used heavily to accelerate audio operations within the Pico SDK, but their
|
* The interpolators are used heavily to accelerate audio operations within the SDK, but their
|
||||||
* flexible configuration make it possible to optimise many other tasks such as quantization and
|
* flexible configuration make it possible to optimise many other tasks such as quantization and
|
||||||
* dithering, table lookup address generation, affine texture mapping, decompression and linear feedback.
|
* dithering, table lookup address generation, affine texture mapping, decompression and linear feedback.
|
||||||
*
|
*
|
||||||
|
@ -35,7 +35,7 @@ SECTIONS
|
|||||||
{
|
{
|
||||||
/* Second stage bootloader is prepended to the image. It must be 256 bytes big
|
/* Second stage bootloader is prepended to the image. It must be 256 bytes big
|
||||||
and checksummed. It is usually built by the boot_stage2 target
|
and checksummed. It is usually built by the boot_stage2 target
|
||||||
in the Pico SDK
|
in the Raspberry Pi Pico SDK
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.flash_begin : {
|
.flash_begin : {
|
||||||
|
@ -35,7 +35,7 @@ SECTIONS
|
|||||||
{
|
{
|
||||||
/* Second stage bootloader is prepended to the image. It must be 256 bytes big
|
/* Second stage bootloader is prepended to the image. It must be 256 bytes big
|
||||||
and checksummed. It is usually built by the boot_stage2 target
|
and checksummed. It is usually built by the boot_stage2 target
|
||||||
in the Pico SDK
|
in the Raspberry Pi Pico SDK
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.flash_begin : {
|
.flash_begin : {
|
||||||
|
@ -35,7 +35,7 @@ SECTIONS
|
|||||||
{
|
{
|
||||||
/* Second stage bootloader is prepended to the image. It must be 256 bytes big
|
/* Second stage bootloader is prepended to the image. It must be 256 bytes big
|
||||||
and checksummed. It is usually built by the boot_stage2 target
|
and checksummed. It is usually built by the boot_stage2 target
|
||||||
in the Pico SDK
|
in the Raspberry Pi Pico SDK
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.flash_begin : {
|
.flash_begin : {
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
#include "tusb.h"
|
#include "tusb.h"
|
||||||
|
|
||||||
#define USBD_VID (0x2E8A) // Raspberry Pi
|
#define USBD_VID (0x2E8A) // Raspberry Pi
|
||||||
#define USBD_PID (0x000a) // Pico SDK CDC
|
#define USBD_PID (0x000a) // Raspberry Pi Pico SDK CDC
|
||||||
|
|
||||||
#define USBD_DESC_LEN (TUD_CONFIG_DESC_LEN + TUD_CDC_DESC_LEN)
|
#define USBD_DESC_LEN (TUD_CONFIG_DESC_LEN + TUD_CDC_DESC_LEN)
|
||||||
#define USBD_MAX_POWER_MA (250)
|
#define USBD_MAX_POWER_MA (250)
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
# SPDX-License-Identifier: BSD-3-Clause
|
# SPDX-License-Identifier: BSD-3-Clause
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# Script to scan the Raspberry Pi PICO SDK tree searching for configuration items
|
# Script to scan the Raspberry Pi Pico SDK tree searching for configuration items
|
||||||
# Outputs a tab separated file of the configuration item:
|
# Outputs a tab separated file of the configuration item:
|
||||||
# name location description type advanced default depends enumvalues group max min
|
# name location description type advanced default depends enumvalues group max min
|
||||||
#
|
#
|
||||||
|
@ -19,7 +19,7 @@ struct c_sdk_output : public output_format {
|
|||||||
c_sdk_output() : output_format("c-sdk") {}
|
c_sdk_output() : output_format("c-sdk") {}
|
||||||
|
|
||||||
std::string get_description() override {
|
std::string get_description() override {
|
||||||
return "C header suitable for use with the Pico SDK";
|
return "C header suitable for use with the Raspberry Pi Pico SDK";
|
||||||
}
|
}
|
||||||
|
|
||||||
void output_symbols(FILE *out, std::string prefix, const std::vector<compiled_source::symbol> &symbols) {
|
void output_symbols(FILE *out, std::string prefix, const std::vector<compiled_source::symbol> &symbols) {
|
||||||
|
Loading…
Reference in New Issue
Block a user