Skip to content

Commit 9a24fb2

Browse files
Merge remote-tracking branch 'upstream/develop' into master
2 parents c974dc8 + e38b215 commit 9a24fb2

File tree

269 files changed

+16396
-761
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

269 files changed

+16396
-761
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<packages>
3+
<package id="gcc-arm-embedded" version="10.2.1" />
4+
<package id="cmake" version="3.25.2" installArguments="ADD_CMAKE_TO_PATH=System" />
5+
<package id="mingw" version="12.2.0" />
6+
<package id="ninja" version="1.11.1" />
7+
</packages>

.github/workflows/cmake.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,4 @@ jobs:
5757
working-directory: ${{github.workspace}}/pico-examples/build
5858
shell: bash
5959
# Execute the build. You can specify a specific target with "--target <NAME>"
60-
run: cmake --build . --config $BUILD_TYPE --parallel ${{steps.core_count.outputs.output}}
60+
run: cmake --build . --config $BUILD_TYPE --parallel $(nproc)

.github/workflows/macOS.yml

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
name: Build on macOS
2+
on:
3+
workflow_dispatch:
4+
push:
5+
branches:
6+
- 'test_workflow'
7+
- 'develop'
8+
- 'master'
9+
10+
jobs:
11+
build:
12+
runs-on: macos-12
13+
steps:
14+
- name: Clean workspace
15+
run: |
16+
echo "Cleaning up previous run"
17+
rm -rf "${{ github.workspace }}"
18+
mkdir -p "${{ github.workspace }}"
19+
20+
- name: Checkout pico-examples
21+
uses: actions/checkout@v2
22+
with:
23+
path: pico-examples
24+
25+
- name: Checkout pico-sdk/develop
26+
uses: actions/checkout@v2
27+
with:
28+
repository: raspberrypi/pico-sdk
29+
ref: develop
30+
path: pico-sdk
31+
32+
- name: Checkout pico-sdk submodules
33+
working-directory: ${{github.workspace}}/pico-sdk
34+
run: git submodule update --init
35+
- name: Install dependencies
36+
run: |
37+
brew install cmake
38+
brew install --cask gcc-arm-embedded
39+
40+
- name: Build Project
41+
working-directory: ${{github.workspace}}/pico-examples
42+
# bash required otherwise this mysteriously (no error) fails at "Generating cyw43_bus_pio_spi.pio.h"
43+
shell: bash
44+
run: |
45+
mkdir build
46+
cd build
47+
cmake .. -G "Unix Makefiles" -DPICO_SDK_PATH=../../pico-sdk -DCMAKE_BUILD_TYPE=Debug -DPICO_BOARD=pico_w
48+
cmake --build .
49+
50+
- name: Build Native
51+
working-directory: ${{github.workspace}}/pico-examples
52+
# bash required otherwise this mysteriously (no error) fails at "Generating cyw43_bus_pio_spi.pio.h"
53+
shell: bash
54+
run: |
55+
mkdir build_native
56+
cd build_native
57+
cmake .. -G "Unix Makefiles" -DPICO_SDK_PATH=../../pico-sdk -DCMAKE_BUILD_TYPE=Debug -DPICO_PLATFORM=host
58+
cmake --build .

.github/workflows/multi-gcc.yml

Lines changed: 181 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,181 @@
1+
name: Multi GCC
2+
on:
3+
workflow_dispatch:
4+
push:
5+
branches:
6+
- 'master'
7+
- 'test_workflow'
8+
9+
jobs:
10+
build:
11+
if: github.repository_owner == 'raspberrypi'
12+
runs-on: [self-hosted, Linux, X64]
13+
14+
steps:
15+
- name: Clean workspace
16+
run: |
17+
echo "Cleaning up previous run"
18+
rm -rf "${{ github.workspace }}"
19+
mkdir -p "${{ github.workspace }}"
20+
21+
- name: Checkout pico-examples
22+
uses: actions/checkout@v2
23+
with:
24+
path: pico-examples
25+
26+
- name: Checkout pico-sdk/develop
27+
uses: actions/checkout@v2
28+
with:
29+
repository: raspberrypi/pico-sdk
30+
ref: develop
31+
path: pico-sdk
32+
33+
- name: Checkout pico-sdk submodules
34+
working-directory: ${{github.workspace}}/pico-sdk
35+
run: git submodule update --init
36+
37+
- name: Create Build Environment
38+
# Some projects don't allow in-source building, so create a separate build directory
39+
# We'll use this as our working directory for all subsequent commands
40+
working-directory: ${{github.workspace}}/pico-examples
41+
run: cmake -E make_directory ${{github.workspace}}/pico-examples/build
42+
43+
- name: GCC 6.2.1 Debug
44+
if: always()
45+
shell: bash
46+
run: cd ${{github.workspace}}/pico-examples; mkdir -p build; rm -rf build/*; cd build; PICO_SDK_PATH=../../pico-sdk cmake ../ -DCMAKE_BUILD_TYPE=Debug -DPICO_TOOLCHAIN_PATH=/opt/arm/gcc-arm-none-eabi-6_2-2016q4 -DPICO_BOARD=pico_w; make --output-sync=target --no-builtin-rules --no-builtin-variables -j$(nproc)
47+
48+
- name: GCC 6.2.1 Release
49+
if: always()
50+
shell: bash
51+
run: cd ${{github.workspace}}/pico-examples; mkdir -p build; rm -rf build/*; cd build; PICO_SDK_PATH=../../pico-sdk cmake ../ -DCMAKE_BUILD_TYPE=Release -DPICO_TOOLCHAIN_PATH=/opt/arm/gcc-arm-none-eabi-6_2-2016q4 -DPICO_BOARD=pico_w; make --output-sync=target --no-builtin-rules --no-builtin-variables -j$(nproc)
52+
53+
- name: GCC 6.3.1 Debug
54+
if: always()
55+
shell: bash
56+
run: cd ${{github.workspace}}/pico-examples; mkdir -p build; rm -rf build/*; cd build; PICO_SDK_PATH=../../pico-sdk cmake ../ -DCMAKE_BUILD_TYPE=Debug -DPICO_TOOLCHAIN_PATH=/opt/arm/gcc-arm-none-eabi-6-2017-q2-update -DPICO_BOARD=pico_w; make --output-sync=target --no-builtin-rules --no-builtin-variables -j$(nproc)
57+
58+
- name: GCC 6.3.1 Release
59+
if: always()
60+
shell: bash
61+
run: cd ${{github.workspace}}/pico-examples; mkdir -p build; rm -rf build/*; cd build; PICO_SDK_PATH=../../pico-sdk cmake ../ -DCMAKE_BUILD_TYPE=Release -DPICO_TOOLCHAIN_PATH=/opt/arm/gcc-arm-none-eabi-6-2017-q2-update -DPICO_BOARD=pico_w; make --output-sync=target --no-builtin-rules --no-builtin-variables -j$(nproc)
62+
63+
- name: GCC 7.2.1 Debug
64+
if: always()
65+
shell: bash
66+
run: cd ${{github.workspace}}/pico-examples; mkdir -p build; rm -rf build/*; cd build; PICO_SDK_PATH=../../pico-sdk cmake ../ -DCMAKE_BUILD_TYPE=Debug -DPICO_TOOLCHAIN_PATH=/opt/arm/gcc-arm-none-eabi-7-2017-q4-major -DPICO_BOARD=pico_w; make --output-sync=target --no-builtin-rules --no-builtin-variables -j$(nproc)
67+
68+
- name: GCC 7.2.1 Release
69+
if: always()
70+
shell: bash
71+
run: cd ${{github.workspace}}/pico-examples; mkdir -p build; rm -rf build/*; cd build; PICO_SDK_PATH=../../pico-sdk cmake ../ -DCMAKE_BUILD_TYPE=Release -DPICO_TOOLCHAIN_PATH=/opt/arm/gcc-arm-none-eabi-7-2017-q4-major -DPICO_BOARD=pico_w; make --output-sync=target --no-builtin-rules --no-builtin-variables -j$(nproc)
72+
73+
- name: GCC 7.3.1 Debug
74+
if: always()
75+
shell: bash
76+
run: cd ${{github.workspace}}/pico-examples; mkdir -p build; rm -rf build/*; cd build; PICO_SDK_PATH=../../pico-sdk cmake ../ -DCMAKE_BUILD_TYPE=Debug -DPICO_TOOLCHAIN_PATH=/opt/arm/gcc-arm-none-eabi-7-2018-q2-update -DPICO_BOARD=pico_w; make --output-sync=target --no-builtin-rules --no-builtin-variables -j$(nproc)
77+
78+
- name: GCC 7.3.1 Release
79+
if: always()
80+
shell: bash
81+
run: cd ${{github.workspace}}/pico-examples; mkdir -p build; rm -rf build/*; cd build; PICO_SDK_PATH=../../pico-sdk cmake ../ -DCMAKE_BUILD_TYPE=Release -DPICO_TOOLCHAIN_PATH=/opt/arm/gcc-arm-none-eabi-7-2018-q2-update -DPICO_BOARD=pico_w; make --output-sync=target --no-builtin-rules --no-builtin-variables -j$(nproc)
82+
83+
- name: GCC 8.2.1 Debug
84+
if: always()
85+
shell: bash
86+
run: cd ${{github.workspace}}/pico-examples; mkdir -p build; rm -rf build/*; cd build; PICO_SDK_PATH=../../pico-sdk cmake ../ -DCMAKE_BUILD_TYPE=Debug -DPICO_TOOLCHAIN_PATH=/opt/arm/gcc-arm-none-eabi-8-2018-q4-major -DPICO_BOARD=pico_w; make --output-sync=target --no-builtin-rules --no-builtin-variables -j$(nproc)
87+
88+
- name: GCC 8.2.1 Release
89+
if: always()
90+
shell: bash
91+
run: cd ${{github.workspace}}/pico-examples; mkdir -p build; rm -rf build/*; cd build; PICO_SDK_PATH=../../pico-sdk cmake ../ -DCMAKE_BUILD_TYPE=Release -DPICO_TOOLCHAIN_PATH=/opt/arm/gcc-arm-none-eabi-8-2018-q4-major -DPICO_BOARD=pico_w; make --output-sync=target --no-builtin-rules --no-builtin-variables -j$(nproc)
92+
93+
- name: GCC 8.3.1 Debug
94+
if: always()
95+
shell: bash
96+
run: cd ${{github.workspace}}/pico-examples; mkdir -p build; rm -rf build/*; cd build; PICO_SDK_PATH=../../pico-sdk cmake ../ -DCMAKE_BUILD_TYPE=Debug -DPICO_TOOLCHAIN_PATH=/opt/arm/gcc-arm-none-eabi-8-2019-q3-update -DPICO_BOARD=pico_w; make --output-sync=target --no-builtin-rules --no-builtin-variables -j$(nproc)
97+
98+
- name: GCC 8.3.1 Release
99+
if: always()
100+
shell: bash
101+
run: cd ${{github.workspace}}/pico-examples; mkdir -p build; rm -rf build/*; cd build; PICO_SDK_PATH=../../pico-sdk cmake ../ -DCMAKE_BUILD_TYPE=Release -DPICO_TOOLCHAIN_PATH=/opt/arm/gcc-arm-none-eabi-8-2019-q3-update -DPICO_BOARD=pico_w; make --output-sync=target --no-builtin-rules --no-builtin-variables -j$(nproc)
102+
103+
- name: GCC 9.2.1 Debug
104+
if: always()
105+
shell: bash
106+
run: cd ${{github.workspace}}/pico-examples; mkdir -p build; rm -rf build/*; cd build; PICO_SDK_PATH=../../pico-sdk cmake ../ -DCMAKE_BUILD_TYPE=Debug -DPICO_TOOLCHAIN_PATH=/opt/arm/gcc-arm-none-eabi-9-2019-q4-major -DPICO_BOARD=pico_w; make --output-sync=target --no-builtin-rules --no-builtin-variables -j$(nproc)
107+
108+
- name: GCC 9.2.1 Release
109+
if: always()
110+
shell: bash
111+
run: cd ${{github.workspace}}/pico-examples; mkdir -p build; rm -rf build/*; cd build; PICO_SDK_PATH=../../pico-sdk cmake ../ -DCMAKE_BUILD_TYPE=Release -DPICO_TOOLCHAIN_PATH=/opt/arm/gcc-arm-none-eabi-9-2019-q4-major -DPICO_BOARD=pico_w; make --output-sync=target --no-builtin-rules --no-builtin-variables -j$(nproc)
112+
113+
- name: GCC 9.3.1 Debug
114+
if: always()
115+
shell: bash
116+
run: cd ${{github.workspace}}/pico-examples; mkdir -p build; rm -rf build/*; cd build; PICO_SDK_PATH=../../pico-sdk cmake ../ -DCMAKE_BUILD_TYPE=Debug -DPICO_TOOLCHAIN_PATH=/opt/arm/gcc-arm-none-eabi-9-2020-q2-update -DPICO_BOARD=pico_w; make --output-sync=target --no-builtin-rules --no-builtin-variables -j$(nproc)
117+
118+
- name: GCC 9.3.1 Release
119+
if: always()
120+
shell: bash
121+
run: cd ${{github.workspace}}/pico-examples; mkdir -p build; rm -rf build/*; cd build; PICO_SDK_PATH=../../pico-sdk cmake ../ -DCMAKE_BUILD_TYPE=Release -DPICO_TOOLCHAIN_PATH=/opt/arm/gcc-arm-none-eabi-9-2020-q2-update -DPICO_BOARD=pico_w; make --output-sync=target --no-builtin-rules --no-builtin-variables -j$(nproc)
122+
123+
- name: GCC 10.2.1 Debug
124+
if: always()
125+
shell: bash
126+
run: cd ${{github.workspace}}/pico-examples; mkdir -p build; rm -rf build/*; cd build; PICO_SDK_PATH=../../pico-sdk cmake ../ -DCMAKE_BUILD_TYPE=Debug -DPICO_TOOLCHAIN_PATH=/opt/arm/gcc-arm-none-eabi-10-2020-q4-major -DPICO_BOARD=pico_w; make --output-sync=target --no-builtin-rules --no-builtin-variables -j$(nproc)
127+
128+
- name: GCC 10.2.1 Release
129+
if: always()
130+
shell: bash
131+
run: cd ${{github.workspace}}/pico-examples; mkdir -p build; rm -rf build/*; cd build; PICO_SDK_PATH=../../pico-sdk cmake ../ -DCMAKE_BUILD_TYPE=Release -DPICO_TOOLCHAIN_PATH=/opt/arm/gcc-arm-none-eabi-10-2020-q4-major -DPICO_BOARD=pico_w; make --output-sync=target --no-builtin-rules --no-builtin-variables -j$(nproc)
132+
133+
- name: GCC 10.3.1 Debug
134+
if: always()
135+
shell: bash
136+
run: cd ${{github.workspace}}/pico-examples; mkdir -p build; rm -rf build/*; cd build; PICO_SDK_PATH=../../pico-sdk cmake ../ -DCMAKE_BUILD_TYPE=Debug -DPICO_TOOLCHAIN_PATH=/opt/arm/gcc-arm-none-eabi-10.3-2021.10 -DPICO_BOARD=pico_w; make --output-sync=target --no-builtin-rules --no-builtin-variables -j$(nproc)
137+
138+
- name: GCC 10.3.1 Release
139+
if: always()
140+
shell: bash
141+
run: cd ${{github.workspace}}/pico-examples; mkdir -p build; rm -rf build/*; cd build; PICO_SDK_PATH=../../pico-sdk cmake ../ -DCMAKE_BUILD_TYPE=Release -DPICO_TOOLCHAIN_PATH=/opt/arm/gcc-arm-none-eabi-10.3-2021.10 -DPICO_BOARD=pico_w; make --output-sync=target --no-builtin-rules --no-builtin-variables -j$(nproc)
142+
143+
- name: GCC 11.2.1 Debug
144+
if: always()
145+
shell: bash
146+
run: cd ${{github.workspace}}/pico-examples; mkdir -p build; rm -rf build/*; cd build; PICO_SDK_PATH=../../pico-sdk cmake ../ -DCMAKE_BUILD_TYPE=Debug -DPICO_TOOLCHAIN_PATH=/opt/arm/gcc-arm-11.2-2022.02-x86_64-arm-none-eabi -DPICO_BOARD=pico_w; make --output-sync=target --no-builtin-rules --no-builtin-variables -j$(nproc)
147+
148+
- name: GCC 11.2.1 Release
149+
if: always()
150+
shell: bash
151+
run: cd ${{github.workspace}}/pico-examples; mkdir -p build; rm -rf build/*; cd build; PICO_SDK_PATH=../../pico-sdk cmake ../ -DCMAKE_BUILD_TYPE=Release -DPICO_TOOLCHAIN_PATH=/opt/arm/gcc-arm-11.2-2022.02-x86_64-arm-none-eabi -DPICO_BOARD=pico_w; make --output-sync=target --no-builtin-rules --no-builtin-variables -j$(nproc)
152+
153+
- name: GCC 11.3.1 Debug
154+
if: always()
155+
shell: bash
156+
run: cd ${{github.workspace}}/pico-examples; mkdir -p build; rm -rf build/*; cd build; PICO_SDK_PATH=../../pico-sdk cmake ../ -DCMAKE_BUILD_TYPE=Debug -DPICO_TOOLCHAIN_PATH=/opt/arm/arm-gnu-toolchain-11.3.rel1-x86_64-arm-none-eabi -DPICO_BOARD=pico_w; make --output-sync=target --no-builtin-rules --no-builtin-variables -j$(nproc)
157+
158+
- name: GCC 11.3.1 Release
159+
if: always()
160+
shell: bash
161+
run: cd ${{github.workspace}}/pico-examples; mkdir -p build; rm -rf build/*; cd build; PICO_SDK_PATH=../../pico-sdk cmake ../ -DCMAKE_BUILD_TYPE=Release -DPICO_TOOLCHAIN_PATH=/opt/arm/arm-gnu-toolchain-11.3.rel1-x86_64-arm-none-eabi -DPICO_BOARD=pico_w; make --output-sync=target --no-builtin-rules --no-builtin-variables -j$(nproc)
162+
163+
- name: GCC 12.2.1 Debug
164+
if: always()
165+
shell: bash
166+
run: cd ${{github.workspace}}/pico-examples; mkdir -p build; rm -rf build/*; cd build; PICO_SDK_PATH=../../pico-sdk cmake ../ -DCMAKE_BUILD_TYPE=Debug -DPICO_TOOLCHAIN_PATH=/opt/arm/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi -DPICO_BOARD=pico_w; make --output-sync=target --no-builtin-rules --no-builtin-variables -j$(nproc)
167+
168+
- name: GCC 12.2.1 Release
169+
if: always()
170+
shell: bash
171+
run: cd ${{github.workspace}}/pico-examples; mkdir -p build; rm -rf build/*; cd build; PICO_SDK_PATH=../../pico-sdk cmake ../ -DCMAKE_BUILD_TYPE=Release -DPICO_TOOLCHAIN_PATH=/opt/arm/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi -DPICO_BOARD=pico_w; make --output-sync=target --no-builtin-rules --no-builtin-variables -j$(nproc)
172+
173+
- name: Native Debug
174+
if: always()
175+
shell: bash
176+
run: cd ${{github.workspace}}/pico-examples; mkdir -p build; rm -rf build/*; cd build; PICO_SDK_PATH=../../pico-sdk cmake ../ -DCMAKE_BUILD_TYPE=Debug -DPICO_PLATFORM=host; make --output-sync=target --no-builtin-rules --no-builtin-variables -j$(nproc)
177+
178+
- name: Native Release
179+
if: always()
180+
shell: bash
181+
run: cd ${{github.workspace}}/pico-examples; mkdir -p build; rm -rf build/*; cd build; PICO_SDK_PATH=../../pico-sdk cmake ../ -DCMAKE_BUILD_TYPE=Release -DPICO_PLATFORM=host; make --output-sync=target --no-builtin-rules --no-builtin-variables -j$(nproc)

.github/workflows/windows.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: Build on Windows
2+
on:
3+
workflow_dispatch:
4+
push:
5+
branches:
6+
- 'test_workflow'
7+
- 'develop'
8+
- 'master'
9+
10+
jobs:
11+
build:
12+
runs-on: windows-2022
13+
steps:
14+
- name: Clean workspace
15+
shell: bash
16+
run: |
17+
echo "Cleaning up previous run"
18+
rm -rf "${{ github.workspace }}/pico-sdk"
19+
rm -rf "${{ github.workspace }}/pico-examples"
20+
- name: Checkout pico-examples
21+
uses: actions/checkout@v2
22+
with:
23+
path: pico-examples
24+
25+
- name: Checkout pico-sdk/develop
26+
uses: actions/checkout@v2
27+
with:
28+
repository: raspberrypi/pico-sdk
29+
ref: develop
30+
path: pico-sdk
31+
32+
- name: Checkout pico-sdk submodules
33+
working-directory: ${{github.workspace}}/pico-sdk
34+
run: git submodule update --init
35+
36+
- name: Install dependencies
37+
working-directory: ${{github.workspace}}/pico-examples
38+
run: choco install .github/workflows/choco_packages.config
39+
40+
- name: Build Project
41+
working-directory: ${{github.workspace}}/pico-examples
42+
# bash required otherwise this mysteriously (no error) fails at "Generating cyw43_bus_pio_spi.pio.h"
43+
shell: bash
44+
run: |
45+
mkdir build
46+
cd build
47+
cmake .. -G Ninja -DPICO_SDK_PATH=../../pico-sdk -DCMAKE_BUILD_TYPE=Debug -DPICO_BOARD=pico_w
48+
cmake --build .

CMakeLists.txt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ cmake_minimum_required(VERSION 3.12)
33
# Pull in SDK (must be before project)
44
include(pico_sdk_import.cmake)
55

6+
include(pico_extras_import_optional.cmake)
7+
68
project(pico_examples C CXX ASM)
79
set(CMAKE_C_STANDARD 11)
810
set(CMAKE_CXX_STANDARD 17)
@@ -26,8 +28,10 @@ add_subdirectory(hello_world)
2628
add_compile_options(-Wall
2729
-Wno-format # int != int32_t as far as the compiler is concerned because gcc has int32_t as long int
2830
-Wno-unused-function # we have some for the docs that aren't called
29-
-Wno-maybe-uninitialized
3031
)
32+
if (CMAKE_C_COMPILER_ID STREQUAL "GNU")
33+
add_compile_options(-Wno-maybe-uninitialized)
34+
endif()
3135

3236
# Hardware-specific examples in subdirectories:
3337
add_subdirectory(adc)
@@ -41,6 +45,7 @@ add_subdirectory(i2c)
4145
add_subdirectory(interp)
4246
add_subdirectory(multicore)
4347
add_subdirectory(picoboard)
48+
add_subdirectory(pico_w)
4449
add_subdirectory(pio)
4550
add_subdirectory(pwm)
4651
add_subdirectory(reset)

0 commit comments

Comments
 (0)