Skip to content

Conversation

AnnsAnns
Copy link
Contributor

@AnnsAnns AnnsAnns commented Mar 5, 2025

Contribution description

The Pi Pico 2 requires a more modern version of elf2uf2 called picotool, in a first effort to get the Raspberry Pi Pico 2 to be compatible with Riot I thus needed to update it.

While this PR is intended to allow me to work on the Pi Pico 2, picotool also offers advantages for the Pico 1 such as easier device detection, loading/flashing and the ability to easily verify the integrity of a file after loading it onto the device. I have incorporated these advantages into the existing workflow so hopefully the flashing process should have become easier for everyone 😄

Testing procedure

I verified it working with examples using the pi pico 1, the expected outcome is that the user should not experience any differences while flashing (aside from the tool being different)

Issues/PRs references

@AnnsAnns AnnsAnns requested review from aabadie and jia200x as code owners March 5, 2025 14:14
@github-actions github-actions bot added Area: doc Area: Documentation Area: build system Area: Build system Area: tools Area: Supplementary tools Area: boards Area: Board ports Area: cpu Area: CPU/MCU ports labels Mar 5, 2025
@AnnsAnns AnnsAnns changed the title Picotool DRAFT: Tools: Switch from elf2uf2 to modern picotool Mar 5, 2025
@AnnsAnns AnnsAnns marked this pull request as draft March 5, 2025 14:20
@AnnsAnns
Copy link
Contributor Author

AnnsAnns commented Mar 6, 2025

I have tested this working properly on a Pi Pico 1 now. I am not too confident in my understanding of the RIOT packages makefile system so I am happy to hear feedback 😄

@AnnsAnns AnnsAnns marked this pull request as ready for review March 6, 2025 11:11
@crasbe
Copy link
Contributor

crasbe commented Mar 6, 2025

Wouldn't it be easier to use the precompiled binaries of picotool instead of compiling it on demand: https://github.com/raspberrypi/pico-sdk-tools/releases ?

@AnnsAnns
Copy link
Contributor Author

AnnsAnns commented Mar 6, 2025

Given the way elf2uf2 worked and looking into other packages + the documentation I would have assumed that the preference is to avoid binaries when possible

@AnnsAnns AnnsAnns changed the title DRAFT: Tools: Switch from elf2uf2 to modern picotool Tools: Switch from elf2uf2 to modern picotool Mar 6, 2025
@crasbe
Copy link
Contributor

crasbe commented Mar 13, 2025

I gave this a try now and unfortunately there seems to be an issue with the CMake configuration of the picotool that others have run into as well: https://www.reddit.com/r/embedded/comments/1els7zl/armnoneeabig_not_working/

Build log:
RIOT/tests/sys/shell$ BOARD=rpi-pico make flash -j12
Building application "tests_shell" for "rpi-pico" with CPU "rpx0xx".

[INFO] picotool not found - fetching it from GitHub now
CC= CFLAGS= make -C /home/chris/riot-picotool/RIOT/dist/tools/picotool
make -C /home/chris/riot-picotool/RIOT/dist/tools//picosdk
echo "[INFO] compiling picotool from source now"
[INFO] compiling picotool from source now
cd /home/chris/riot-picotool/RIOT/dist/tools/picotool/source && cmake -B build -S . -DPICO_SDK_PATH=../../../picosdk/picosdk -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++
"make" -C /home/chris/riot-picotool/RIOT/pkg/cmsis/ 
...
"make" -C /home/chris/riot-picotool/RIOT/sys/ztimer
-- The C compiler identification is GNU 11.4.0
-- The CXX compiler identification is GNU 11.4.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
.//usr/local/share/picotool/
   text	   data	    bss	    dec	    hex	filename
  19088	    168	  18892	  38148	   9504	/home/chris/riot-picotool/RIOT/tests/sys/shell/bin/rpi-pico/tests_shell.elf
-- Using the single-header code from /home/chris/riot-picotool/RIOT/dist/tools/picotool/source/lib/nlohmann_json/single_include/
lib/mbedtls submodule needs to be initialized for bintool hashing/signing
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2") 
-- Checking for module 'libusb-1.0'
--   No package 'libusb-1.0' found
-- Could NOT find LIBUSB (missing: LIBUSB_LIBRARIES LIBUSB_INCLUDE_DIR) 
mbedtls not found - no signing/hashing support will be built
libUSB is not found - no USB support will be built
-- Configuring done
-- Generating done
-- Build files have been written to: /home/chris/riot-picotool/RIOT/dist/tools/picotool/source/build
cd /home/chris/riot-picotool/RIOT/dist/tools/picotool/source/build && make
[  6%] Creating directories for 'flash_id'
[  6%] Creating directories for 'xip_ram_perms'
[  6%] Creating directories for 'otp_header_parser'
[  9%] Building CXX object errors/CMakeFiles/errors.dir/errors.cpp.o
[ 13%] No download step for 'flash_id'
[ 13%] No download step for 'xip_ram_perms'
[ 15%] No download step for 'otp_header_parser'
[ 18%] No update step for 'xip_ram_perms'
[ 20%] No update step for 'flash_id'
[ 22%] No update step for 'otp_header_parser'
[ 25%] No patch step for 'flash_id'
[ 27%] No patch step for 'xip_ram_perms'
[ 29%] No patch step for 'otp_header_parser'
[ 31%] Performing configure step for 'flash_id'
[ 34%] Performing configure step for 'xip_ram_perms'
[ 36%] Performing configure step for 'otp_header_parser'
-- The C compiler identification is GNU 11.4.0
-- The C compiler identification is GNU 11.4.0
-- The CXX compiler identification is GNU 10.3.1
-- Detecting CXX compiler ABI info
-- The CXX compiler identification is GNU 10.3.1
-- The CXX compiler identification is GNU 10.3.1
-- The ASM compiler identification is GNU
-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/cc
-- Found assembler: /usr/bin/cc
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info
-- Detecting CXX compiler ABI info - failed
-- Check for working CXX compiler: /usr/bin/arm-none-eabi-g++
[ 38%] Linking CXX static library liberrors.a
-- Detecting C compiler ABI info - done
-- Detecting C compiler ABI info - done
[ 38%] Built target errors
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info
[ 40%] Building CXX object elf/CMakeFiles/elf.dir/elf_file.cpp.o
-- Check for working CXX compiler: /usr/bin/arm-none-eabi-g++ - broken
CMake Error at /usr/share/cmake-3.25/Modules/CMakeTestCXXCompiler.cmake:63 (message):
  The C++ compiler

    "/usr/bin/arm-none-eabi-g++"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: /home/chris/riot-picotool/RIOT/dist/tools/picotool/source/build/otp_header_parser/CMakeFiles/CMakeScratch/TryCompile-cy51sh
    
    Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_94d75/fast && gmake[5]: Verzeichnis „/home/chris/riot-picotool/RIOT/dist/tools/picotool/source/build/otp_header_parser/CMakeFiles/CMakeScratch/TryCompile-cy51sh“ wird betreten
    /usr/bin/gmake  -f CMakeFiles/cmTC_94d75.dir/build.make CMakeFiles/cmTC_94d75.dir/build
    gmake[6]: Verzeichnis „/home/chris/riot-picotool/RIOT/dist/tools/picotool/source/build/otp_header_parser/CMakeFiles/CMakeScratch/TryCompile-cy51sh“ wird betreten
    Building CXX object CMakeFiles/cmTC_94d75.dir/testCXXCompiler.cxx.o
    /usr/bin/arm-none-eabi-g++    -o CMakeFiles/cmTC_94d75.dir/testCXXCompiler.cxx.o -c /home/chris/riot-picotool/RIOT/dist/tools/picotool/source/build/otp_header_parser/CMakeFiles/CMakeScratch/TryCompile-cy51sh/testCXXCompiler.cxx
    Linking CXX executable cmTC_94d75
    /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_94d75.dir/link.txt --verbose=1
    /usr/bin/arm-none-eabi-g++ CMakeFiles/cmTC_94d75.dir/testCXXCompiler.cxx.o -o cmTC_94d75 
    /usr/lib/gcc/arm-none-eabi/10.3.1/../../../arm-none-eabi/bin/ld: /usr/lib/gcc/arm-none-eabi/10.3.1/../../../arm-none-eabi/lib/libc.a(lib_a-exit.o): in function `exit':
    /build/newlib-pB30de/newlib-3.3.0/build/arm-none-eabi/newlib/libc/stdlib/../../../../../newlib/libc/stdlib/exit.c:64: undefined reference to `_exit'
    collect2: error: ld returned 1 exit status
    gmake[6]: *** [CMakeFiles/cmTC_94d75.dir/build.make:99: cmTC_94d75] Fehler 1
    gmake[6]: Verzeichnis „/home/chris/riot-picotool/RIOT/dist/tools/picotool/source/build/otp_header_parser/CMakeFiles/CMakeScratch/TryCompile-cy51sh“ wird verlassen
    gmake[5]: *** [Makefile:127: cmTC_94d75/fast] Fehler 2
    gmake[5]: Verzeichnis „/home/chris/riot-picotool/RIOT/dist/tools/picotool/source/build/otp_header_parser/CMakeFiles/CMakeScratch/TryCompile-cy51sh“ wird verlassen
    
    

  

  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:2 (PROJECT)


-- Configuring incomplete, errors occurred!
See also "/home/chris/riot-picotool/RIOT/dist/tools/picotool/source/build/otp_header_parser/CMakeFiles/CMakeOutput.log".
See also "/home/chris/riot-picotool/RIOT/dist/tools/picotool/source/build/otp_header_parser/CMakeFiles/CMakeError.log".
make[4]: *** [CMakeFiles/otp_header_parser.dir/build.make:91: otp_header_parser/src/otp_header_parser-stamp/otp_header_parser-configure] Fehler 1
make[3]: *** [CMakeFiles/Makefile2:407: CMakeFiles/otp_header_parser.dir/all] Fehler 2
make[3]: *** Auf noch nicht beendete Prozesse wird gewartet …
-- Detecting CXX compiler ABI info - failed
-- Check for working CXX compiler: /usr/bin/arm-none-eabi-g++
-- Detecting CXX compiler ABI info - failed
-- Check for working CXX compiler: /usr/bin/arm-none-eabi-g++
-- Check for working CXX compiler: /usr/bin/arm-none-eabi-g++ - broken
-- Check for working CXX compiler: /usr/bin/arm-none-eabi-g++ - broken
CMake Error at /usr/share/cmake-3.25/Modules/CMakeTestCXXCompiler.cmake:63 (message):
  The C++ compiler

    "/usr/bin/arm-none-eabi-g++"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: /home/chris/riot-picotool/RIOT/dist/tools/picotool/source/build/picoboot_flash_id/CMakeFiles/CMakeScratch/TryCompile-1pU4Xt
    
    Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_c35a8/fast && gmake[5]: Verzeichnis „/home/chris/riot-picotool/RIOT/dist/tools/picotool/source/build/picoboot_flash_id/CMakeFiles/CMakeScratch/TryCompile-1pU4Xt“ wird betreten
    /usr/bin/gmake  -f CMakeFiles/cmTC_c35a8.dir/build.make CMakeFiles/cmTC_c35a8.dir/build
    gmake[6]: Verzeichnis „/home/chris/riot-picotool/RIOT/dist/tools/picotool/source/build/picoboot_flash_id/CMakeFiles/CMakeScratch/TryCompile-1pU4Xt“ wird betreten
    Building CXX object CMakeFiles/cmTC_c35a8.dir/testCXXCompiler.cxx.o
    /usr/bin/arm-none-eabi-g++    -o CMakeFiles/cmTC_c35a8.dir/testCXXCompiler.cxx.o -c /home/chris/riot-picotool/RIOT/dist/tools/picotool/source/build/picoboot_flash_id/CMakeFiles/CMakeScratch/TryCompile-1pU4Xt/testCXXCompiler.cxx
    Linking CXX executable cmTC_c35a8
    /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c35a8.dir/link.txt --verbose=1
    /usr/bin/arm-none-eabi-g++ CMakeFiles/cmTC_c35a8.dir/testCXXCompiler.cxx.o -o cmTC_c35a8 
    /usr/lib/gcc/arm-none-eabi/10.3.1/../../../arm-none-eabi/bin/ld: /usr/lib/gcc/arm-none-eabi/10.3.1/../../../arm-none-eabi/lib/libc.a(lib_a-exit.o): in function `exit':
    /build/newlib-pB30de/newlib-3.3.0/build/arm-none-eabi/newlib/libc/stdlib/../../../../../newlib/libc/stdlib/exit.c:64: undefined reference to `_exit'
    collect2: error: ld returned 1 exit status
    gmake[6]: *** [CMakeFiles/cmTC_c35a8.dir/build.make:99: cmTC_c35a8] Fehler 1
    gmake[6]: Verzeichnis „/home/chris/riot-picotool/RIOT/dist/tools/picotool/source/build/picoboot_flash_id/CMakeFiles/CMakeScratch/TryCompile-1pU4Xt“ wird verlassen
    gmake[5]: *** [Makefile:127: cmTC_c35a8/fast] Fehler 2
    gmake[5]: Verzeichnis „/home/chris/riot-picotool/RIOT/dist/tools/picotool/source/build/picoboot_flash_id/CMakeFiles/CMakeScratch/TryCompile-1pU4Xt“ wird verlassen
    
    

  

  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:29 (project)


CMake Error at /usr/share/cmake-3.25/Modules/CMakeTestCXXCompiler.cmake:63 (message):
  The C++ compiler

    "/usr/bin/arm-none-eabi-g++"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: /home/chris/riot-picotool/RIOT/dist/tools/picotool/source/build/xip_ram_perms/CMakeFiles/CMakeScratch/TryCompile-dXt7hb
    
    Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_c4460/fast && gmake[5]: Verzeichnis „/home/chris/riot-picotool/RIOT/dist/tools/picotool/source/build/xip_ram_perms/CMakeFiles/CMakeScratch/TryCompile-dXt7hb“ wird betreten
    /usr/bin/gmake  -f CMakeFiles/cmTC_c4460.dir/build.make CMakeFiles/cmTC_c4460.dir/build
    gmake[6]: Verzeichnis „/home/chris/riot-picotool/RIOT/dist/tools/picotool/source/build/xip_ram_perms/CMakeFiles/CMakeScratch/TryCompile-dXt7hb“ wird betreten
    Building CXX object CMakeFiles/cmTC_c4460.dir/testCXXCompiler.cxx.o
    /usr/bin/arm-none-eabi-g++    -o CMakeFiles/cmTC_c4460.dir/testCXXCompiler.cxx.o -c /home/chris/riot-picotool/RIOT/dist/tools/picotool/source/build/xip_ram_perms/CMakeFiles/CMakeScratch/TryCompile-dXt7hb/testCXXCompiler.cxx
    Linking CXX executable cmTC_c4460
    /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c4460.dir/link.txt --verbose=1
    /usr/bin/arm-none-eabi-g++ CMakeFiles/cmTC_c4460.dir/testCXXCompiler.cxx.o -o cmTC_c4460 
    /usr/lib/gcc/arm-none-eabi/10.3.1/../../../arm-none-eabi/bin/ld: /usr/lib/gcc/arm-none-eabi/10.3.1/../../../arm-none-eabi/lib/libc.a(lib_a-exit.o): in function `exit':
    /build/newlib-pB30de/newlib-3.3.0/build/arm-none-eabi/newlib/libc/stdlib/../../../../../newlib/libc/stdlib/exit.c:64: undefined reference to `_exit'
    collect2: error: ld returned 1 exit status
    gmake[6]: *** [CMakeFiles/cmTC_c4460.dir/build.make:99: cmTC_c4460] Fehler 1
    gmake[6]: Verzeichnis „/home/chris/riot-picotool/RIOT/dist/tools/picotool/source/build/xip_ram_perms/CMakeFiles/CMakeScratch/TryCompile-dXt7hb“ wird verlassen
    gmake[5]: *** [Makefile:127: cmTC_c4460/fast] Fehler 2
    gmake[5]: Verzeichnis „/home/chris/riot-picotool/RIOT/dist/tools/picotool/source/build/xip_ram_perms/CMakeFiles/CMakeScratch/TryCompile-dXt7hb“ wird verlassen
    
    

  

  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:46 (project)


-- Configuring incomplete, errors occurred!
See also "/home/chris/riot-picotool/RIOT/dist/tools/picotool/source/build/picoboot_flash_id/CMakeFiles/CMakeOutput.log".
See also "/home/chris/riot-picotool/RIOT/dist/tools/picotool/source/build/picoboot_flash_id/CMakeFiles/CMakeError.log".
-- Configuring incomplete, errors occurred!
See also "/home/chris/riot-picotool/RIOT/dist/tools/picotool/source/build/xip_ram_perms/CMakeFiles/CMakeOutput.log".
See also "/home/chris/riot-picotool/RIOT/dist/tools/picotool/source/build/xip_ram_perms/CMakeFiles/CMakeError.log".
make[4]: *** [CMakeFiles/flash_id.dir/build.make:91: picoboot_flash_id/src/flash_id-stamp/flash_id-configure] Fehler 1
make[3]: *** [CMakeFiles/Makefile2:381: CMakeFiles/flash_id.dir/all] Fehler 2
make[4]: *** [CMakeFiles/xip_ram_perms.dir/build.make:91: xip_ram_perms/src/xip_ram_perms-stamp/xip_ram_perms-configure] Fehler 1
make[3]: *** [CMakeFiles/Makefile2:355: CMakeFiles/xip_ram_perms.dir/all] Fehler 2
[ 43%] Linking CXX static library libelf.a
[ 43%] Built target elf
make[2]: *** [Makefile:136: all] Fehler 2
make[1]: *** [Makefile:27: /home/chris/riot-picotool/RIOT/dist/tools/picotool/picotool] Fehler 2
make: *** [/home/chris/riot-picotool/RIOT/makefiles/tools/targets.inc.mk:71: /home/chris/riot-picotool/RIOT/dist/tools/picotool/picotool] Fehler 2

This seems to be an issue with MBedTLS using the wrong compiler, but I couldn't really pinpoint the issue and how to solve it.

I wondered if it would be possible to check for libusb-1.0-0-dev in the Makefile of the RIOT package, because picotool will still build without it installed, but none of the USB features will work. That might cause some weird issues.

@AnnsAnns
Copy link
Contributor Author

I can confirm that this also happened for me but after tinkering a bit with the Makefile it didn't happen again, I'll investigate if I can reproduce it again, thank you for testing it, I thought this was a local one-off issue

@crasbe
Copy link
Contributor

crasbe commented Mar 13, 2025

Furthermore it would be good to add @ in front of many commands so that the makefile does not print the command.

For example:

- echo "[INFO] compiling picotool from source now"
+ @echo "[INFO] compiling picotool from source now"

@AnnsAnns
Copy link
Contributor Author

Thank you for the review, I will adjust the PR based on your suggestions as soon as I can

@crasbe crasbe added Type: enhancement The issue suggests enhanceable parts / The PR enhances parts of the codebase / documentation CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR labels Mar 27, 2025
@AnnsAnns
Copy link
Contributor Author

Was able to verify it flashing and building for the raspberry pi pico 2

@riot-ci
Copy link

riot-ci commented Mar 27, 2025

Murdock results

✔️ PASSED

0ea40d2 dist/tools, boards/rpi-pico*: replace elf2uf2 with picotool

Success Failures Total Runtime
10298 0 10299 09m:28s

Artifacts

@crasbe
Copy link
Contributor

crasbe commented Mar 27, 2025

The patch for the CMakeLists.txt does not appear to work, the LibUSB error message is not shown and the build is not aborted.
I'll have to look into it why it doesn't work.

The red warning message is also not shown because of the indentations in the picotool.sh (the static test also complains about it).

chris@ThinkPias:~/RIOTstuff/riot-picotool/RIOT$ BOARD=rpi-pico make -C tests/sys/shell flash
make: Verzeichnis „/home/chris/RIOTstuff/riot-picotool/RIOT/tests/sys/shell“ wird betreten
Building application "tests_shell" for "rpi-pico" with CPU "rpx0xx".

"make" -C /home/chris/RIOTstuff/riot-picotool/RIOT/pkg/cmsis/ 
...
"make" -C /home/chris/RIOTstuff/riot-picotool/RIOT/sys/ztimer
   text	   data	    bss	    dec	    hex	filename
  19084	    168	  18892	  38144	   9500	/home/chris/RIOTstuff/riot-picotool/RIOT/tests/sys/shell/bin/rpi-pico/tests_shell.elf
[INFO] picotool not found - fetching it from GitHub now
CC= CFLAGS= make -C /home/chris/RIOTstuff/riot-picotool/RIOT/dist/tools/picotool
make -C /home/chris/RIOTstuff/riot-picotool/RIOT/dist/tools/picosdk
[INFO] compiling picotool from source now
-- The C compiler identification is GNU 11.4.0
-- The CXX compiler identification is GNU 11.4.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
.//usr/local/share/picotool/
-- Using the single-header code from /home/chris/RIOTstuff/riot-picotool/RIOT/dist/tools/picotool/source/lib/nlohmann_json/single_include/
-- Found Python3: /usr/bin/python3.10 (found version "3.10.12") found components: Interpreter 
-- Performing Test C_COMPILER_SUPPORTS_WFORMAT_SIGNEDNESS
-- Performing Test C_COMPILER_SUPPORTS_WFORMAT_SIGNEDNESS - Success
-- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) 
-- Could NOT find LIBUSB (missing: LIBUSB_LIBRARIES LIBUSB_INCLUDE_DIR) 
libUSB is not found - no USB support will be built
-- Configuring done
-- Generating done
-- Build files have been written to: /home/chris/RIOTstuff/riot-picotool/RIOT/dist/tools/picotool/source/build
...
[100%] Built target picotool
[INFO] picotool successfully fetched!
/home/chris/RIOTstuff/riot-picotool/RIOT/dist/tools/picotool/picotool.sh /home/chris/RIOTstuff/riot-picotool/RIOT/tests/sys/shell/bin/rpi-pico/tests_shell.elf
/home/chris/RIOTstuff/riot-picotool/RIOT/dist/tools/picotool/picotool.sh: 9: run picotool without sudo. See: : not found

[INFO] Converting /home/chris/RIOTstuff/riot-picotool/RIOT/tests/sys/shell/bin/rpi-pico/tests_shell.elf to /home/chris/RIOTstuff/riot-picotool/RIOT/tests/sys/shell/bin/rpi-pico/tests_shell.uf2
[INFO] Loading /home/chris/RIOTstuff/riot-picotool/RIOT/tests/sys/shell/bin/rpi-pico/tests_shell.uf2 onto Pico

ERROR: Unknown command: load

COMMANDS:
    info        Display information from the target device(s) or file.
                Without any arguments, this will display basic information for all connected
                RP-series devices in BOOTSEL mode
    config      Display or change program configuration settings from the target device(s) or file.
    encrypt     Encrypt the program.
    seal        Add final metadata to a binary, optionally including a hash and/or signature.
    link        Link multiple binaries into one block loop.
    otp         Commands related to the RP2350 OTP (One-Time-Programmable) Memory
    partition   Commands related to RP2350 Partition Tables
    uf2         Commands related to UF2 creation and status
    version     Display picotool version
    coprodis    Post-process coprocessor instructions in disassembly files.
    help        Show general help or help for a specific command

Use "picotool help <cmd>" for more info
[INFO] Verifying /home/chris/RIOTstuff/riot-picotool/RIOT/tests/sys/shell/bin/rpi-pico/tests_shell.uf2 on Pico

ERROR: Unknown command: verify

COMMANDS:
    info        Display information from the target device(s) or file.
                Without any arguments, this will display basic information for all connected
                RP-series devices in BOOTSEL mode
    config      Display or change program configuration settings from the target device(s) or file.
    encrypt     Encrypt the program.
    seal        Add final metadata to a binary, optionally including a hash and/or signature.
    link        Link multiple binaries into one block loop.
    otp         Commands related to the RP2350 OTP (One-Time-Programmable) Memory
    partition   Commands related to RP2350 Partition Tables
    uf2         Commands related to UF2 creation and status
    version     Display picotool version
    coprodis    Post-process coprocessor instructions in disassembly files.
    help        Show general help or help for a specific command

Use "picotool help <cmd>" for more info
make: *** [/home/chris/RIOTstuff/riot-picotool/RIOT/tests/sys/shell/../../../Makefile.include:846: flash] Fehler 255
make: Verzeichnis „/home/chris/RIOTstuff/riot-picotool/RIOT/tests/sys/shell“ wird verlassen

@AnnsAnns
Copy link
Contributor Author

Done :)

@crasbe crasbe added this pull request to the merge queue Apr 14, 2025
@crasbe crasbe removed this pull request from the merge queue due to a manual request Apr 14, 2025
@mguetschow
Copy link
Contributor

Thanks @AnnsAnns for doing this! I've just tried this out right now and I noted two things:

  • do we really need to build picosdk, including mbedtls? took a bit of time on my machine at the first flash.
  • I would have expected the sources/binaries to be removed with distclean, i.e., them residing in BUILD_DIR, but they seem to be directly in RIOT/pkg/pico*/something. That's probably more a question to our build system than to you.

@AnnsAnns
Copy link
Contributor Author

I will test whether I can simply remove mbedtls and flash to pico/pico2 once I am in the office (unless somebody else tries it before me 😄), will let you know

@crasbe
Copy link
Contributor

crasbe commented Apr 14, 2025

  • I would have expected the sources/binaries to be removed with distclean, i.e., them residing in BUILD_DIR, but they seem to be directly in RIOT/pkg/pico*/something. That's probably more a question to our build system than to you.

But distclean works as it should, doesn't it? It wipes everything.

@Teufelchen1 Teufelchen1 dismissed crasbe’s stale review April 14, 2025 11:02

Discussion if mbedtls can be remove, bugs in makefiles

@mguetschow
Copy link
Contributor

mguetschow commented Apr 14, 2025

  • I would have expected the sources/binaries to be removed with distclean, i.e., them residing in BUILD_DIR, but they seem to be directly in RIOT/pkg/pico*/something. That's probably more a question to our build system than to you.

But distclean works as it should, doesn't it? It wipes everything.

Hum, not for me. make -C examples/basic/hello-world BOARD=rpi-pico distclean (or make distclean) followed by make -C examples/basic/hello-world BOARD=rpi-pico flash does not re-clone / rebuild the picotool.

@crasbe
Copy link
Contributor

crasbe commented Apr 14, 2025

  • I would have expected the sources/binaries to be removed with distclean, i.e., them residing in BUILD_DIR, but they seem to be directly in RIOT/pkg/pico*/something. That's probably more a question to our build system than to you.

But distclean works as it should, doesn't it? It wipes everything.

Hum, not for me. make -C examples/basic/hello-world BOARD=rpi-pico distclean (or make distclean) followed by ``make -C examples/basic/hello-world BOARD=rpi-pico flashdoes not re-clone / rebuild thepicotool`.

That is expected though, isn't it? AFAIK distclean does not traverse backwards. If you do make distclean in the RIOTROOT, it'll go through all directories and also clean RIOT/pkg/pico*, but not the other way around 🤔

@mguetschow
Copy link
Contributor

make distclean does not clean it either 🙈

@AnnsAnns
Copy link
Contributor Author

So I wont lie, I'm a bit confused, is distclean being buggy something I need to fix in my Makefiles or is this something that was accidentally found out while reviewing this PR? 😅

@crasbe
Copy link
Contributor

crasbe commented Apr 14, 2025

Mikolai likes to find unrelated bugs and derail PRs 🤪

@mguetschow this is actually a build system bug:

RIOT/Makefile

Lines 26 to 28 in ce273ac

distclean: docclean pkg-clean
@echo "Cleaning all build products"
@for dir in $(APPLICATION_DIRS); do "$(MAKE)" -C$$dir distclean; done

I added an @echo $(APPLICATION_DIRS) between L27 and L28, and this is the output. It does not include any dist/... folders:

cbuec@W11nMate:~/RIOTstuff/riot-canfix/RIOT$ make distclean
"make" -BC doc/doxygen clean
make[1]: Entering directory '/home/cbuec/RIOTstuff/riot-canfix/RIOT/doc/doxygen'
make[1]: Leaving directory '/home/cbuec/RIOTstuff/riot-canfix/RIOT/doc/doxygen'
Cleaning all package sources
rm -rf build/pkg
Cleaning all build products
bootloaders/riotboot bootloaders/riotboot_dfu bootloaders/riotboot_serial bootloaders/riotboot_tinyusb_dfu examples/advanced/bindist examples/advanced/opendsme examples/advanced/pio_blink examples/advanced/posix_select examples/advanced/psa_crypto examples/advanced/senml_saul examples/advanced/suit_update examples/advanced/thread_duel examples/advanced/twr_aloha examples/advanced/usbus_minimal examples/basic/blinky examples/basic/default examples/basic/filesystem examples/basic/hello-world examples/basic/ipc_pingpong examples/basic/leds_shell examples/basic/saul examples/basic/subfolders examples/basic/timer_periodic_wakeup examples/lang_support/community/arduino_hello-world examples/lang_support/community/javascript examples/lang_support/community/lua_REPL examples/lang_support/community/lua_basic examples/lang_support/community/micropython examples/lang_support/community/wasm examples/lang_support/official/riot_and_cpp examples/lang_support/official/rust-async examples/lang_support/official/rust-gcoap examples/lang_support/official/rust-hello-world examples/networking/ble/misc/skald_eddystone examples/networking/ble/misc/skald_ibeacon examples/networking/ble/nimble/nimble_gatt examples/networking/ble/nimble/nimble_heart_rate_sensor examples/networking/ble/nimble/nimble_scanner examples/networking/coap/gcoap examples/networking/coap/gcoap_block_server examples/networking/coap/gcoap_dtls examples/networking/coap/gcoap_fileserver examples/networking/coap/nanocoap_server examples/networking/cord/cord_ep examples/networking/cord/cord_epsim examples/networking/cord/cord_lc examples/networking/dtls/dtls-echo examples/networking/dtls/dtls-sock examples/networking/dtls/dtls-wolfssl examples/networking/gnrc/gnrc_border_router examples/networking/gnrc/gnrc_lorawan examples/networking/gnrc/gnrc_minimal examples/networking/gnrc/gnrc_networking examples/networking/gnrc/gnrc_networking_mac examples/networking/gnrc/gnrc_networking_subnets examples/networking/misc/benchmark_udp examples/networking/misc/ccn-lite-relay examples/networking/misc/lorawan examples/networking/misc/lwm2m examples/networking/misc/openthread examples/networking/misc/posix_sockets examples/networking/misc/sniffer examples/networking/misc/sock_tcp_echo examples/networking/misc/spectrum-scanner examples/networking/misc/telnet_server examples/networking/mqtt/asymcute_mqttsn examples/networking/mqtt/emcute_mqttsn examples/networking/mqtt/paho-mqtt fuzzing/gcoap fuzzing/gnrc_tcp fuzzing/uri_parser tests/bench/msg_pingpong tests/bench/mutex_pingpong tests/bench/periph_gpio_ll tests/bench/runtime_coreapis tests/bench/sched_nop tests/bench/sizeof_coretypes tests/bench/sys_atomic_utils tests/bench/sys_base64 tests/bench/thread_flags_pingpong tests/bench/thread_yield_pingpong tests/bench/timers tests/bench/xtimer tests/bench/xtimer_load tests/bench/ztimer tests/board_microbit tests/build_system/blob tests/build_system/cflags_spaces tests/build_system/cortexm_common_ldscript tests/build_system/cpp_exclude tests/build_system/cpp_ext tests/build_system/external_board_dirs tests/build_system/external_board_native tests/build_system/external_module_dirs tests/build_system/external_pkg_dirs tests/build_system/kconfig tests/build_system/test_tools tests/build_system/utils tests/build_system/xfa tests/buttons tests/core/bitarithm_timings tests/core/cond_order tests/core/deferred_yield_higher tests/core/irq tests/core/irq_cpp tests/core/irq_disable_restore tests/core/isr_yield_higher tests/core/msg_avail tests/core/msg_queue_capacity tests/core/msg_queue_print tests/core/msg_send_receive tests/core/msg_try_receive tests/core/mutex_cancel tests/core/mutex_order tests/core/mutex_unlock_and_sleep tests/core/rmutex tests/core/rmutex_cpp tests/core/sched_change_priority tests/core/sched_testing tests/core/thread_basic tests/core/thread_cooperation tests/core/thread_exit tests/core/thread_flags tests/core/thread_flags_xtimer tests/core/thread_float tests/core/thread_flood tests/core/thread_msg tests/core/thread_msg_block_race tests/core/thread_msg_block_w_queue tests/core/thread_msg_block_wo_queue tests/core/thread_msg_bus tests/core/thread_msg_seq tests/core/thread_priority_inversion tests/core/thread_race tests/core/thread_stack_alignment tests/core/thread_zombie tests/cpu/avr8_xmega_drivers tests/cpu/cortexm_address_check tests/cpu/cortexm_stack_limit tests/cpu/efm32_drivers tests/cpu/efm32_features tests/cpu/mpu_noexec_ram tests/cpu/mpu_stack_guard tests/cpu/native_backtrace tests/cpu/pmp_noexec_ram tests/cpu/stm32_bootloader tests/drivers/ad7746 tests/drivers/adcxx1c tests/drivers/ads101x tests/drivers/adt7310 tests/drivers/adxl345 tests/drivers/aip31068 tests/drivers/apa102 tests/drivers/apds99xx tests/drivers/apds99xx_full tests/drivers/at tests/drivers/at24cxxx tests/drivers/at24mac tests/drivers/at25xxx tests/drivers/at30tse75x tests/drivers/at86rf215 tests/drivers/at86rf2xx tests/drivers/at86rf2xx_aes tests/drivers/at_unit tests/drivers/ata8520e tests/drivers/atwinc15x0 tests/drivers/bh1750 tests/drivers/bh1900nux tests/drivers/bme680 tests/drivers/bmp180 tests/drivers/bmx055 tests/drivers/bmx280 tests/drivers/bq2429x tests/drivers/candev tests/drivers/cc110x tests/drivers/cc2420 tests/drivers/cc2538_rf tests/drivers/ccs811 tests/drivers/ccs811_full tests/drivers/cst816s tests/drivers/dac_dds tests/drivers/dcf77 tests/drivers/dfplayer tests/drivers/dht tests/drivers/disp_dev tests/drivers/dose tests/drivers/ds1307 tests/drivers/ds18 tests/drivers/ds3231 tests/drivers/ds3234 tests/drivers/ds75lx tests/drivers/dsp0401 tests/drivers/dynamixel tests/drivers/edbg_eui tests/drivers/enc28j60 tests/drivers/encx24j600 tests/drivers/epd_bw_spi tests/drivers/epd_bw_spi_disp_dev tests/drivers/esp_eth tests/drivers/ethos tests/drivers/feetech tests/drivers/ft5x06 tests/drivers/fxos8700 tests/drivers/gp2y10xx tests/drivers/grove_ledbar tests/drivers/hd44780 tests/drivers/hdc1000 tests/drivers/hih6130 tests/drivers/hm330x tests/drivers/hmc5883l tests/drivers/hsc tests/drivers/hts221 tests/drivers/ili9341 tests/drivers/ina2xx tests/drivers/ina3221 tests/drivers/io1_xplained tests/drivers/ir_nec tests/drivers/isl29020 tests/drivers/isl29125 tests/drivers/itg320x tests/drivers/jc42 tests/drivers/kw2xrf tests/drivers/l3g4200d tests/drivers/l3gxxxx tests/drivers/lc709203f tests/drivers/lis2dh12 tests/drivers/lis3dh tests/drivers/lis3mdl tests/drivers/lm75 tests/drivers/lpd8808 tests/drivers/lpsxxx tests/drivers/lsm303dlhc tests/drivers/lsm6dsxx tests/drivers/ltc4150 tests/drivers/mag3110 tests/drivers/matrix_keypad tests/drivers/max31855 tests/drivers/mcp47xx tests/drivers/mfrc522 tests/drivers/mhz19 tests/drivers/mma7660 tests/drivers/mma8x5x tests/drivers/motor_driver tests/drivers/mpl3115a2 tests/drivers/mpu9x50 tests/drivers/mq3 tests/drivers/mrf24j40 tests/drivers/mtd_at24cxxx tests/drivers/mtd_at25xxx tests/drivers/mtd_flashpage tests/drivers/mtd_mapper tests/drivers/mtd_raw tests/drivers/my9221 tests/drivers/nrf24l01p_lowlevel tests/drivers/nrf24l01p_ng tests/drivers/nrf802154 tests/drivers/nrfmin tests/drivers/nvram_spi tests/drivers/opt3001 tests/drivers/pca9633 tests/drivers/pca9685 tests/drivers/pcd8544 tests/drivers/pcf857x tests/drivers/ph_oem tests/drivers/pir tests/drivers/pn532 tests/drivers/pulse_counter tests/drivers/qmc5883l tests/drivers/rn2xx3 tests/drivers/sam0_eth tests/drivers/saul tests/drivers/saul_drivers tests/drivers/scd30 tests/drivers/sdcard_spi tests/drivers/sdmmc tests/drivers/sdp3x tests/drivers/sds011 tests/drivers/seesaw_soil tests/drivers/servo tests/drivers/sgp30 tests/drivers/sht1x tests/drivers/sht2x tests/drivers/sht3x tests/drivers/shtcx tests/drivers/si1133 tests/drivers/si114x tests/drivers/si70xx tests/drivers/sm_pwm_01c tests/drivers/soft_spi tests/drivers/soft_uart tests/drivers/sps30 tests/drivers/srf02 tests/drivers/srf04 tests/drivers/srf08 tests/drivers/st77xx tests/drivers/stm32_eth tests/drivers/stmpe811 tests/drivers/sx126x tests/drivers/sx127x tests/drivers/sx1280 tests/drivers/tcs37727 tests/drivers/tmp00x tests/drivers/touch_dev tests/drivers/touch_dev_gestures tests/drivers/tps6274x tests/drivers/tsl2561 tests/drivers/tsl4531x tests/drivers/vcnl40x0 tests/drivers/veml6070 tests/drivers/vl6180x tests/drivers/w5100 tests/drivers/w5500 tests/drivers/ws281x tests/drivers/xbee tests/fault_handler tests/leds tests/mcuboot tests/minimal tests/net/emcute tests/net/gcoap_dns tests/net/gcoap_fileserver tests/net/gcoap_forward_proxy tests/net/gnrc_dhcpv6_client tests/net/gnrc_dhcpv6_client_6lbr tests/net/gnrc_dhcpv6_client_stateless tests/net/gnrc_dhcpv6_relay tests/net/gnrc_gomach tests/net/gnrc_ipv6_ext tests/net/gnrc_ipv6_ext_frag tests/net/gnrc_ipv6_ext_opt tests/net/gnrc_ipv6_fwd_w_sub tests/net/gnrc_ipv6_nib tests/net/gnrc_ipv6_nib_6ln tests/net/gnrc_ipv6_nib_dns tests/net/gnrc_lorawan tests/net/gnrc_lorawan_11 tests/net/gnrc_lwmac tests/net/gnrc_mac_timeout tests/net/gnrc_ndp tests/net/gnrc_netif tests/net/gnrc_netif_ieee802154 tests/net/gnrc_netif_ipv6_wait_for_global_address tests/net/gnrc_rpl tests/net/gnrc_rpl_p2p tests/net/gnrc_rpl_srh tests/net/gnrc_sixlowpan tests/net/gnrc_sixlowpan_frag tests/net/gnrc_sixlowpan_frag_minfwd tests/net/gnrc_sixlowpan_frag_sfr tests/net/gnrc_sixlowpan_frag_sfr_congure tests/net/gnrc_sixlowpan_frag_sfr_congure_impl tests/net/gnrc_sixlowpan_iphc_w_vrb tests/net/gnrc_sock_async_event tests/net/gnrc_sock_dns tests/net/gnrc_sock_dodtls tests/net/gnrc_sock_ip tests/net/gnrc_sock_neterr tests/net/gnrc_sock_tcp tests/net/gnrc_sock_udp tests/net/gnrc_tcp tests/net/gnrc_tx_sync tests/net/gnrc_udp tests/net/ieee802154_hal tests/net/ieee802154_security tests/net/ieee802154_submac tests/net/l2scan_list tests/net/l2util tests/net/nanocoap_cli tests/net/nanocoap_fs tests/net/netdev_common tests/net/netdev_test tests/net/netstats_l2 tests/net/netstats_neighbor tests/net/netutils tests/net/slip tests/net/sntp tests/net/sock_udp_aux tests/net/socket_zep tests/periph/adc tests/periph/adc_continuous tests/periph/backup_ram tests/periph/cpuid tests/periph/dac tests/periph/dma tests/periph/eeprom tests/periph/flashpage tests/periph/flashpage_unittest tests/periph/fmc tests/periph/freqm tests/periph/gpio tests/periph/gpio_arduino tests/periph/gpio_ll tests/periph/hwrng tests/periph/i2c tests/periph/ltdc tests/periph/pio tests/periph/pm tests/periph/ptp_clock tests/periph/ptp_timer tests/periph/pwm tests/periph/qdec tests/periph/rtc tests/periph/rtt tests/periph/rtt_min tests/periph/selftest_shield tests/periph/spi tests/periph/spi_dma tests/periph/timer tests/periph/timer_periodic tests/periph/timer_short_relative_set tests/periph/uart tests/periph/uart_locate_pins tests/periph/uart_mode tests/periph/uart_nonblocking tests/periph/vbat tests/periph/wdt tests/pkg/arduino_adafruit_sensor tests/pkg/arduino_sdi_12 tests/pkg/c25519 tests/pkg/cayenne-lpp tests/pkg/cifra tests/pkg/cmsis-dsp tests/pkg/cmsis-nn tests/pkg/cn-cbor tests/pkg/corejson tests/pkg/cryptoauthlib_compare_sha256 tests/pkg/cryptoauthlib_internal-tests tests/pkg/edhoc_c tests/pkg/elk tests/pkg/emlearn tests/pkg/etl tests/pkg/fatfs tests/pkg/fatfs_vfs tests/pkg/fff tests/pkg/flashdb_fal_cfg tests/pkg/flashdb_mtd tests/pkg/flashdb_vfs tests/pkg/flatbuffers tests/pkg/hacl tests/pkg/heatshrink tests/pkg/jsmn tests/pkg/libb2 tests/pkg/libbase58 tests/pkg/libcose tests/pkg/libcose_encrypt tests/pkg/libfixmath tests/pkg/libfixmath_unittests tests/pkg/libhydrogen tests/pkg/libschc tests/pkg/littlefs tests/pkg/littlefs2 tests/pkg/lora-serialization tests/pkg/lua_loader tests/pkg/lvgl tests/pkg/lvgl_touch tests/pkg/lwip tests/pkg/lwip_sock_ip tests/pkg/lwip_sock_tcp tests/pkg/lwip_sock_udp tests/pkg/lz4 tests/pkg/mbedtls tests/pkg/mcufont tests/pkg/micro-ecc tests/pkg/micro-ecc-with-hwrng tests/pkg/microcoap tests/pkg/minmea tests/pkg/mjson tests/pkg/monocypher tests/pkg/nanocbor tests/pkg/nanopb tests/pkg/nanors tests/pkg/nimble_autoconn_ccnl tests/pkg/nimble_autoconn_gnrc tests/pkg/nimble_autoconn_gnrc_ext tests/pkg/nimble_esp_wifi_coexist tests/pkg/nimble_ext_adv tests/pkg/nimble_l2cap tests/pkg/nimble_l2cap_server tests/pkg/nimble_netif_ext tests/pkg/nimble_rpble_gnrc tests/pkg/nimble_rpble_gnrc_ext tests/pkg/nimble_statconn_gnrc tests/pkg/nimble_statconn_gnrc_ext tests/pkg/openwsn tests/pkg/openwsn_sock_udp tests/pkg/qcbor tests/pkg/qdsa tests/pkg/qr-code-generator tests/pkg/relic tests/pkg/semtech-loramac tests/pkg/spiffs tests/pkg/tflite-micro tests/pkg/tiny-asn1 tests/pkg/tinycbor tests/pkg/tinycrypt tests/pkg/tinydtls_sock_async tests/pkg/tinyusb_cdc_acm_stdio tests/pkg/tinyusb_cdc_msc tests/pkg/tinyusb_netdev tests/pkg/tinyvcdiff tests/pkg/tweetnacl tests/pkg/u8g2 tests/pkg/ubasic tests/pkg/ucglib tests/pkg/umorse tests/pkg/utensor tests/pkg/uzlib tests/pkg/wolfcrypt-ed25519-verify tests/pkg/wolfssl tests/pkg/yxml tests/riotboot tests/riotboot_flashwrite tests/riotboot_hdr tests/rust_libs tests/rust_minimal tests/sys/architecture tests/sys/arduino tests/sys/arduino_analog tests/sys/arduino_lib tests/sys/atomic_utils tests/sys/atomic_utils_unittests tests/sys/bloom_bytes tests/sys/busy_wait tests/sys/c11_atomics_cpp_compat tests/sys/can_trx tests/sys/cb_mux tests/sys/cb_mux_bench tests/sys/congure_abe tests/sys/congure_quic tests/sys/congure_reno tests/sys/congure_test tests/sys/conn_can tests/sys/cpp11_condition_variable tests/sys/cpp11_mutex tests/sys/cpp11_thread tests/sys/cpp_ctors tests/sys/crypto tests/sys/crypto_aes_ccm tests/sys/dbgpin tests/sys/devfs tests/sys/eepreg tests/sys/embunit tests/sys/entropy_source tests/sys/event_periodic_callback tests/sys/event_source tests/sys/event_thread_shared tests/sys/event_threads tests/sys/event_wait_timeout tests/sys/event_wait_timeout_ztimer tests/sys/event_ztimer tests/sys/events tests/sys/evtimer_mbox tests/sys/evtimer_msg tests/sys/evtimer_underflow tests/sys/fido2_ctap tests/sys/fido2_ctap_hid tests/sys/float tests/sys/fmt_print tests/sys/frac-config tests/sys/heap_cmd tests/sys/libc_newlib tests/sys/log_color tests/sys/log_printfnoformat tests/sys/malloc tests/sys/malloc_monitor tests/sys/malloc_thread_safety tests/sys/memarray tests/sys/od tests/sys/pbkdf2 tests/sys/phydat_dump tests/sys/phydat_unix tests/sys/pipe tests/sys/posix_semaphore tests/sys/posix_sleep tests/sys/prng_sha1prng tests/sys/prng_sha256prng tests/sys/progress_bar tests/sys/ps_schedstatistics tests/sys/psa_crypto tests/sys/psa_crypto_cbor_encoder tests/sys/psa_crypto_cipher tests/sys/psa_crypto_ecdsa tests/sys/psa_crypto_eddsa tests/sys/psa_crypto_hashes tests/sys/psa_crypto_mac tests/sys/psa_crypto_persistent_storage tests/sys/psa_crypto_se tests/sys/psa_crypto_se_cipher tests/sys/psa_crypto_se_ecdsa tests/sys/psa_crypto_se_mac tests/sys/pthread tests/sys/pthread_barrier tests/sys/pthread_cleanup tests/sys/pthread_condition_variable tests/sys/pthread_cooperation tests/sys/pthread_flood tests/sys/pthread_rwlock tests/sys/pthread_tls tests/sys/ptrtag tests/sys/puf_sram tests/sys/rng tests/sys/sched_round_robin tests/sys/sema tests/sys/sema_inv tests/sys/senml_cbor tests/sys/senml_phydat tests/sys/senml_saul tests/sys/shell tests/sys/shell_ble tests/sys/shell_coreclk tests/sys/shell_lock tests/sys/shell_scripting tests/sys/ssp tests/sys/stdin tests/sys/stdio_semihosting tests/sys/struct_tm_utility tests/sys/suit_manifest tests/sys/trace tests/sys/trickle tests/sys/usbus tests/sys/usbus_board_reset tests/sys/usbus_cdc_acm_stdio tests/sys/usbus_cdc_ecm tests/sys/usbus_hid tests/sys/usbus_msc tests/sys/vfs_default tests/sys/vfs_iterate_mount tests/sys/vfs_plus_stdio tests/sys/xtimer_drift tests/sys/xtimer_hang tests/sys/xtimer_longterm tests/sys/xtimer_msg tests/sys/xtimer_msg_receive_timeout tests/sys/xtimer_mutex_lock_timeout tests/sys/xtimer_now32_overflow tests/sys/xtimer_now_irq tests/sys/xtimer_overhead tests/sys/xtimer_periodic_wakeup tests/sys/xtimer_remove tests/sys/xtimer_reset tests/sys/xtimer_rmutex_lock_timeout tests/sys/xtimer_usleep tests/sys/xtimer_usleep_short tests/sys/ztimer64_msg tests/sys/ztimer_mbox_get_timeout tests/sys/ztimer_msg tests/sys/ztimer_mutex_lock_timeout tests/sys/ztimer_ondemand_benchmark tests/sys/ztimer_overhead tests/sys/ztimer_periodic tests/sys/ztimer_rmutex_lock_timeout tests/sys/ztimer_underflow tests/sys/ztimer_xsec tests/turo tests/turo_txt tests/unittests
make[1]: Entering directory '/home/cbuec/RIOTstuff/riot-canfix/RIOT/bootloaders/riotboot'
rm -rf /home/cbuec/RIOTstuff/riot-canfix/RIOT/bootloaders/riotboot/bin/samr21-xpro/pkg-build/cmsis
rm -rf /home/cbuec/RIOTstuff/riot-canfix/RIOT/build/pkg/cmsis
make[1]: Leaving directory '/home/cbuec/RIOTstuff/riot-canfix/RIOT/bootloaders/riotboot'
make[1]: Entering directory '/home/cbuec/RIOTstuff/riot-canfix/RIOT/bootloaders/riotboot_dfu'
...

@AnnsAnns you can squash the fixup directly, don't worry about the other bug :D

@AnnsAnns
Copy link
Contributor Author

Hooray

@crasbe
Copy link
Contributor

crasbe commented Apr 14, 2025

I retested the clean and distclean and it works as it should.

@AnnsAnns
Copy link
Contributor Author

I just tested it without mbedtls on the Pi Pico 1 and I can confirm that it still works. One other minor thing I noticed was that the uf2 file doesn't get executed until you replug the device. As far as I'm aware this should be a simple flag that I need to enable.

@AnnsAnns
Copy link
Contributor Author

Picotool now start the program automatically and mbedtls is excluded. Verified on Pi Pico 1 😄

@crasbe
Copy link
Contributor

crasbe commented Apr 16, 2025

You can squash the fixups.

By the way: May I interest you in --fixup and --autosquash? :D
https://blog.sebastian-daschner.com/entries/git-commit-fixup-autosquash

That makes your life a bit easier with fixups.

Replace elf2uf2 usage with picotool, fix compilation when arm g++ is installed, adjust documentation to new workflow, picotool udev warning (thanks to crasbe)
@AnnsAnns
Copy link
Contributor Author

You can squash the fixups.

By the way: May I interest you in --fixup and --autosquash? :D https://blog.sebastian-daschner.com/entries/git-commit-fixup-autosquash

That makes your life a bit easier with fixups.

Will try it in the future, ty :)

Also squashed 👌

Copy link
Contributor

@Teufelchen1 Teufelchen1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me!

@Teufelchen1
Copy link
Contributor

Merging as Mikolai stated we can move on!

@Teufelchen1 Teufelchen1 added this pull request to the merge queue Apr 16, 2025
Merged via the queue into RIOT-OS:master with commit 852895f Apr 16, 2025
26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: boards Area: Board ports Area: build system Area: Build system Area: cpu Area: CPU/MCU ports Area: doc Area: Documentation Area: tools Area: Supplementary tools CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR Type: enhancement The issue suggests enhanceable parts / The PR enhances parts of the codebase / documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants