Greetings,
I wanted to utilize Conan package manager to create simple static libraries to use in all of my projects.
It worked for me up until the point where the Pico SDK itself gets involved, when it does this:I am working on Raspberry Pi 4BWith this toolchain:Using the Pico SDK Version 1.5.1 (checked out at master, but I see it is the same commit as tag 1.5.1)Here is the full build output with -vvv:Since I've encountered those errrors, I've also tried to perform a clean build, which also produces errors suggesting misconfigured toolchains when using conan:What am I doing wrong?
How can I properly setup the Pico SDK toolchains for conan to recognize?
What does the Pico SDK generally setup to work with arm-none-eabi cross-compilation?
Any help would be greatly appreciated!
I wanted to utilize Conan package manager to create simple static libraries to use in all of my projects.
It worked for me up until the point where the Pico SDK itself gets involved, when it does this:
Code:
Performing build step for 'PioasmBuild'
Code:
$ uname -aLinux devpi 6.6.20+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.6.20-1+rpt1 (2024-03-07) aarch64 GNU/Linux
Code:
$ arm-none-eabi-gcc --versionarm-none-eabi-gcc (15:12.2.rel1-1) 12.2.1 20221205Copyright (C) 2022 Free Software Foundation, Inc.This is free software; see the source for copying conditions. There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Code:
$ git log --graph --oneline* 6a7db34 (HEAD -> master, tag: 1.5.1, origin/master, origin/HEAD) revert changes to when -nostartfiles is specified in link for 1.5.1 as it can cause link errors with C++; see #1368
Code:
$ conan build . --profile=rp2040-debug -vvv======== Input profiles ========Profile host:[settings]arch=armv8build_type=Debugcompiler=gcccompiler.cppstd=gnu17compiler.libcxx=libstdc++11compiler.version=12os=baremetal[buildenv]CC=/usr/bin/arm-none-eabi-gccCXX=/usr/bin/arm-none-eabi-g++AR=/usr/bin/arm-none-eabi-arAS=/usr/bin/arm-none-eabi-asRANLIB=/usr/bin/arm-none-eabi-ranlibLD=/usr/bin/arm-none-eabi-ldSTRIP=/usr/bin/arm-none-eabi-stripProfile build:[settings]arch=armv8build_type=Releasecompiler=gcccompiler.cppstd=gnu17compiler.libcxx=libstdc++11compiler.version=12os=Linux======== Computing dependency graph ========Graph root conanfile.py (cbus-driver/0.0.1): /home/rini/git-stash/Testcenter.TestAutomation.Lex.Solution/Testcenter.TestAutomation.CBus.Driver/conanfile.pyRequirements lex-common/0.0.1#c5211493ddee8a419f3977d985465afa - Cache======== Computing necessary packages ========Requirements lex-common/0.0.1#c5211493ddee8a419f3977d985465afa:b5173623b5b3e93f991aebb2cd3aaaa99fc0738a#28d43477e6b0c0420079a47f439199f1 - Cache======== Installing packages ================ Installing packages ========lex-common/0.0.1: Already installed! (1 of 1)======== Finalizing install (deploy, generators) ========conanfile.py (cbus-driver/0.0.1): Calling generate()conanfile.py (cbus-driver/0.0.1): Generators folder: /home/rini/git-stash/Testcenter.TestAutomation.Lex.Solution/Testcenter.TestAutomation.CBus.Driver/build/Debug/generatorsconanfile.py (cbus-driver/0.0.1): CMakeDeps necessary find_package() and targets for your CMakeLists.txt find_package(lex-common) target_link_libraries(... lex-common::lex-common)conanfile.py (cbus-driver/0.0.1): CMakeToolchain generated: conan_toolchain.cmakeconanfile.py (cbus-driver/0.0.1): Preset 'conan-debug' added to CMakePresets.json. Invoke it manually using 'cmake --preset conan-debug' if using CMake>=3.23conanfile.py (cbus-driver/0.0.1): If your CMake version is not compatible with CMakePresets (<3.23) call cmake like: 'cmake <path> -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=/home/rini/git-stash/Testcenter.TestAutomation.Lex.Solution/Testcenter.TestAutomation.CBus.Driver/build/Debug/generators/conan_toolchain.cmake -DCMAKE_POLICY_DEFAULT_CMP0091=NEW -DCMAKE_BUILD_TYPE=Debug'conanfile.py (cbus-driver/0.0.1): CMakeToolchain generated: CMakePresets.jsonconanfile.py (cbus-driver/0.0.1): CMakeToolchain generated: ../../../CMakeUserPresets.jsonconanfile.py (cbus-driver/0.0.1): Generating aggregated env filesconanfile.py (cbus-driver/0.0.1): Generated aggregated env files: ['conanbuild.sh', 'conanrun.sh']======== Calling build() ========conanfile.py (cbus-driver/0.0.1): Calling build()conanfile.py (cbus-driver/0.0.1): Running CMake.configure()conanfile.py (cbus-driver/0.0.1): RUN: cmake -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE="/home/rini/git-stash/Testcenter.TestAutomation.Lex.Solution/Testcenter.TestAutomation.CBus.Driver/build/Debug/generators/conan_toolchain.cmake" -DCMAKE_INSTALL_PREFIX="/home/rini/git-stash/Testcenter.TestAutomation.Lex.Solution/Testcenter.TestAutomation.CBus.Driver" -DCMAKE_POLICY_DEFAULT_CMP0091="NEW" -DCMAKE_BUILD_TYPE="Debug" "/home/rini/git-stash/Testcenter.TestAutomation.Lex.Solution/Testcenter.TestAutomation.CBus.Driver"-- PICO_SDK_PATH not defined. Using default.PICO_SDK_PATH is /home/rini/pico/sdkPICO platform is rp2040.-- Using Conan toolchain: /home/rini/git-stash/Testcenter.TestAutomation.Lex.Solution/Testcenter.TestAutomation.CBus.Driver/build/Debug/generators/conan_toolchain.cmake-- Conan toolchain: C++ Standard 17 with extensions ON-- Conan toolchain: Setting BUILD_SHARED_LIBS = OFFBuild type is DebugUsing regular optimized debug build (set PICO_DEOPTIMIZED_DEBUG=1 to de-optimize)PICO target board is pico.Using board configuration from /home/rini/pico/sdk/src/boards/include/boards/pico.hTinyUSB available at /home/rini/pico/sdk/lib/tinyusb/src/portable/raspberrypi/rp2040; enabling build support for USB.Compiling TinyUSB with CFG_TUSB_DEBUG=1BTstack available at /home/rini/pico/sdk/lib/btstackcyw43-driver available at /home/rini/pico/sdk/lib/cyw43-driverPico W Bluetooth build support available.lwIP available at /home/rini/pico/sdk/lib/lwipmbedtls available at /home/rini/pico/sdk/lib/mbedtls-- Device type selected: SRM_TYPE_8I8O-- Configuring done-- Generating done-- Build files have been written to: /home/rini/git-stash/Testcenter.TestAutomation.Lex.Solution/Testcenter.TestAutomation.CBus.Driver/build/Debugconanfile.py (cbus-driver/0.0.1): Running CMake.build()conanfile.py (cbus-driver/0.0.1): RUN: cmake --build "/home/rini/git-stash/Testcenter.TestAutomation.Lex.Solution/Testcenter.TestAutomation.CBus.Driver/build/Debug" --parallel -- -j4[ 1%] Performing build step for 'PioasmBuild'[ 2%] Checking the git repository for changes...[ 3%] Building ASM object pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default.dir/compile_time_choice.S.obj/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S: Assembler messages:/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:13: Error: unknown pseudo-op: `.syntax'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:89: Info: macro invoked from here/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:14: Error: unknown cpu `cortex-m0plus'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:89: Info: macro invoked from here/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:15: Error: unknown pseudo-op: `.thumb'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:89: Info: macro invoked from here/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:22: Error: unknown pseudo-op: `.thumb_func'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:98: Info: macro invoked from here/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:99: Error: unknown mnemonic `push' -- `push {lr}'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:105: Error: expected ZA array at operand 1 -- `ldr r3,=0x40020000'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:106: Error: operand 1 must be an SVE predicate register -- `movs r0,#(2<<4|0x00000001)'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:107: Error: expected ZA array at operand 1 -- `str r0,[r3,#0x00000004]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:108: Error: expected ZA array at operand 1 -- `ldr r0,[r3,#0x00000008]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:109: Error: operand 1 must be an SVE predicate register -- `movs r1,#0x00000002'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:110: Error: operand 1 must be an SVE predicate register -- `bics r0,r1'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:111: Error: expected ZA array at operand 1 -- `str r0,[r3,#0x00000008]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:112: Error: expected ZA array at operand 1 -- `str r0,[r3,#0x0000000c]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:113: Error: expected ZA array at operand 1 -- `str r0,[r3,#0x00000010]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:114: Error: expected ZA array at operand 1 -- `str r0,[r3,#0x00000014]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:116: Error: expected ZA array at operand 1 -- `ldr r3,=0x18000000'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:119: Error: operand 1 must be an SVE predicate register -- `movs r1,#0'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:120: Error: expected ZA array at operand 1 -- `str r1,[r3,#0x00000008]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:123: Error: operand 1 must be an SVE predicate register -- `movs r1,#2'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:124: Error: expected ZA array at operand 1 -- `str r1,[r3,#0x00000014]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:132: Error: operand 1 must be an SVE predicate register -- `movs r1,#1'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:133: Error: operand 1 must be an SVE predicate register -- `movs r2,#0x000000f0'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:134: Error: expected ZA array at operand 1 -- `str r1,[r3,r2]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:145: Error: expected ZA array at operand 1 -- `ldr r1,=((7<<16)|(0x0<<8))'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:146: Error: expected ZA array at operand 1 -- `str r1,[r3,#0x00000000]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:149: Error: operand 1 must be an SVE predicate register -- `movs r1,#1'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:150: Error: expected ZA array at operand 1 -- `str r1,[r3,#0x00000008]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:153: Error: operand 1 must be an SVE predicate register -- `movs r0,#0x35'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:155: Error: operand 1 must be an SVE predicate register -- `movs r2,#0x02'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:156: Error: operand 1 must be an integer or stack pointer register -- `cmp r0,r2'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:160: Error: operand 1 must be an SVE predicate register -- `movs r1,#0x06'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:161: Error: expected ZA array at operand 1 -- `str r1,[r3,#0x00000060]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:165: Error: expected ZA array at operand 1 -- `ldr r1,[r3,#0x00000060]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:168: Error: operand 1 must be an SVE predicate register -- `movs r1,#0x01'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:169: Error: expected ZA array at operand 1 -- `str r1,[r3,#0x00000060]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:170: Error: operand 1 must be an SVE predicate register -- `movs r0,#0'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:171: Error: expected ZA array at operand 1 -- `str r0,[r3,#0x00000060]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:172: Error: expected ZA array at operand 1 -- `str r2,[r3,#0x00000060]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:175: Error: expected ZA array at operand 1 -- `ldr r1,[r3,#0x00000060]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:176: Error: expected ZA array at operand 1 -- `ldr r1,[r3,#0x00000060]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:177: Error: expected ZA array at operand 1 -- `ldr r1,[r3,#0x00000060]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:181: Error: operand 1 must be an SVE predicate register -- `movs r0,#0x05'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:183: Error: operand 1 must be an SVE predicate register -- `movs r1,#1'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:184: Error: operand 1 must be an integer register -- `tst r0,r1'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:190: Error: operand 1 must be an SVE predicate register -- `movs r1,#0'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:191: Error: expected ZA array at operand 1 -- `str r1,[r3,#0x00000008]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:208: Error: expected ZA array at operand 1 -- `ldr r1,=((0x2<<21)|(31<<16)|(0x3<<8))'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:209: Error: expected ZA array at operand 1 -- `str r1,[r3,#0x00000000]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:211: Error: operand 1 must be an SVE predicate register -- `movs r1,#0x0'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:212: Error: expected ZA array at operand 1 -- `str r1,[r3,#0x00000004]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:222: Error: expected ZA array at operand 1 -- `ldr r1,=((8<<2)|(4<<11)|(0x2<<8)|(0x1<<0))'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:223: Error: expected ZA array at operand 1 -- `ldr r0,=(0x18000000+0x000000f4)'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:224: Error: expected ZA array at operand 1 -- `str r1,[r0]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:226: Error: operand 1 must be an SVE predicate register -- `movs r1,#1'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:227: Error: expected ZA array at operand 1 -- `str r1,[r3,#0x00000008]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:229: Error: operand 1 must be an SVE predicate register -- `movs r1,#0xeb'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:230: Error: expected ZA array at operand 1 -- `str r1,[r3,#0x00000060]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:231: Error: operand 1 must be an SVE predicate register -- `movs r1,#0xa0'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:232: Error: expected ZA array at operand 1 -- `str r1,[r3,#0x00000060]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:241: Error: operand 1 must be an SVE predicate register -- `movs r1,#0'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:242: Error: expected ZA array at operand 1 -- `str r1,[r3,#0x00000008]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:259: Error: expected ZA array at operand 1 -- `ldr r1,=((0xa0<<24)|(8<<2)|(4<<11)|(0x0<<8)|(0x2<<0))'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:260: Error: expected ZA array at operand 1 -- `ldr r0,=(0x18000000+0x000000f4)'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:261: Error: expected ZA array at operand 1 -- `str r1,[r0]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:263: Error: operand 1 must be an SVE predicate register -- `movs r1,#1'/home/rini/pico/sdk/src/rp2_common/boot_stage2/boot2_w25q080.S:264: Error: expected ZA array at operand 1 -- `str r1,[r3,#0x00000008]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/asminclude/boot2_helpers/exit_from_boot2.S:16: Error: unknown mnemonic `pop' -- `pop {r0}'/home/rini/pico/sdk/src/rp2_common/boot_stage2/asminclude/boot2_helpers/exit_from_boot2.S:17: Error: operand 1 must be an integer or stack pointer register -- `cmp r0,#0'/home/rini/pico/sdk/src/rp2_common/boot_stage2/asminclude/boot2_helpers/exit_from_boot2.S:19: Error: unknown mnemonic `bx' -- `bx r0'/home/rini/pico/sdk/src/rp2_common/boot_stage2/asminclude/boot2_helpers/exit_from_boot2.S:21: Error: expected ZA array at operand 1 -- `ldr r0,=(0x10000000+0x100)'/home/rini/pico/sdk/src/rp2_common/boot_stage2/asminclude/boot2_helpers/exit_from_boot2.S:22: Error: expected ZA array at operand 1 -- `ldr r1,=(0xe0000000+0x0000ed08)'/home/rini/pico/sdk/src/rp2_common/boot_stage2/asminclude/boot2_helpers/exit_from_boot2.S:23: Error: expected ZA array at operand 1 -- `str r0,[r1]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/asminclude/boot2_helpers/exit_from_boot2.S:24: Error: unknown mnemonic `ldmia' -- `ldmia r0,{r0,r1}'/home/rini/pico/sdk/src/rp2_common/boot_stage2/asminclude/boot2_helpers/exit_from_boot2.S:25: Error: unknown or missing system register name at operand 1 -- `msr msp,r0'/home/rini/pico/sdk/src/rp2_common/boot_stage2/asminclude/boot2_helpers/exit_from_boot2.S:26: Error: unknown mnemonic `bx' -- `bx r1'/home/rini/pico/sdk/src/rp2_common/boot_stage2/asminclude/boot2_helpers/wait_ssi_ready.S:11: Error: unknown mnemonic `push' -- `push {r0,r1,lr}'/home/rini/pico/sdk/src/rp2_common/boot_stage2/asminclude/boot2_helpers/wait_ssi_ready.S:16: Error: expected ZA array at operand 1 -- `ldr r1,[r3,#0x00000028]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/asminclude/boot2_helpers/wait_ssi_ready.S:17: Error: operand 1 must be an SVE predicate register -- `movs r0,#0x00000004'/home/rini/pico/sdk/src/rp2_common/boot_stage2/asminclude/boot2_helpers/wait_ssi_ready.S:18: Error: operand 1 must be an integer register -- `tst r1,r0'/home/rini/pico/sdk/src/rp2_common/boot_stage2/asminclude/boot2_helpers/wait_ssi_ready.S:20: Error: operand 1 must be an SVE predicate register -- `movs r0,#0x00000001'/home/rini/pico/sdk/src/rp2_common/boot_stage2/asminclude/boot2_helpers/wait_ssi_ready.S:21: Error: operand 1 must be an integer register -- `tst r1,r0'/home/rini/pico/sdk/src/rp2_common/boot_stage2/asminclude/boot2_helpers/wait_ssi_ready.S:24: Error: unknown mnemonic `pop' -- `pop {r0,r1,pc}'/home/rini/pico/sdk/src/rp2_common/boot_stage2/asminclude/boot2_helpers/read_flash_sreg.S:16: Error: unknown pseudo-op: `.thumb_func'/home/rini/pico/sdk/src/rp2_common/boot_stage2/asminclude/boot2_helpers/read_flash_sreg.S:18: Error: unknown mnemonic `push' -- `push {r1,lr}'/home/rini/pico/sdk/src/rp2_common/boot_stage2/asminclude/boot2_helpers/read_flash_sreg.S:19: Error: expected ZA array at operand 1 -- `str r0,[r3,#0x00000060]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/asminclude/boot2_helpers/read_flash_sreg.S:21: Error: expected ZA array at operand 1 -- `str r0,[r3,#0x00000060]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/asminclude/boot2_helpers/read_flash_sreg.S:25: Error: expected ZA array at operand 1 -- `ldr r0,[r3,#0x00000060]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/asminclude/boot2_helpers/read_flash_sreg.S:26: Error: expected ZA array at operand 1 -- `ldr r0,[r3,#0x00000060]'/home/rini/pico/sdk/src/rp2_common/boot_stage2/asminclude/boot2_helpers/read_flash_sreg.S:28: Error: unknown mnemonic `pop' -- `pop {r1,pc}'gmake[2]: *** [pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default.dir/build.make:75: pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default.dir/compile_time_choice.S.obj] Error 1gmake[1]: *** [CMakeFiles/Makefile2:1581: pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default.dir/all] Error 2gmake[1]: *** Waiting for unfinished jobs....[100%] Built target pioasm[ 3%] Built target check_git[ 4%] No install step for 'PioasmBuild'[ 5%] Completed 'PioasmBuild'[ 11%] Built target PioasmBuildgmake: *** [Makefile:91: all] Error 2Traceback (most recent call last): File "/home/rini/.local/lib/python3.11/site-packages/conans/errors.py", line 52, in conanfile_exception_formatter yield File "/home/rini/.local/lib/python3.11/site-packages/conans/client/conanfile/build.py", line 14, in run_build_method conanfile.build() File "/home/rini/git-stash/Testcenter.TestAutomation.Lex.Solution/Testcenter.TestAutomation.CBus.Driver/conanfile.py", line 67, in build cmake.build(cli_args=common_cmake_args) File "/home/rini/.local/lib/python3.11/site-packages/conan/tools/cmake/cmake.py", line 188, in build self._build(build_type, target, cli_args, build_tool_args, stdout=stdout, stderr=stderr) File "/home/rini/.local/lib/python3.11/site-packages/conan/tools/cmake/cmake.py", line 167, in _build self._conanfile.run(command, env=env, stdout=stdout, stderr=stderr) File "/home/rini/.local/lib/python3.11/site-packages/conans/model/conan_file.py", line 342, in run raise ConanException("Error %d while executing" % retcode)conans.errors.ConanException: Error 2 while executingDuring handling of the above exception, another exception occurred:Traceback (most recent call last): File "/home/rini/.local/lib/python3.11/site-packages/conan/cli/cli.py", line 193, in run command.run(self._conan_api, args[0][1:]) File "/home/rini/.local/lib/python3.11/site-packages/conan/cli/command.py", line 164, in run info = self._method(conan_api, parser, *args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/rini/.local/lib/python3.11/site-packages/conan/cli/commands/build.py", line 70, in build conan_api.local.build(conanfile) File "/home/rini/.local/lib/python3.11/site-packages/conan/api/subapi/local.py", line 102, in build run_build_method(conanfile, app.hook_manager) File "/home/rini/.local/lib/python3.11/site-packages/conans/client/conanfile/build.py", line 12, in run_build_method with conanfile_exception_formatter(conanfile, "build"): File "/usr/lib/python3.11/contextlib.py", line 155, in __exit__ self.gen.throw(typ, value, traceback) File "/home/rini/.local/lib/python3.11/site-packages/conans/errors.py", line 67, in conanfile_exception_formatter _raise_conanfile_exc(exc) File "/home/rini/.local/lib/python3.11/site-packages/conans/errors.py", line 46, in _raise_conanfile_exc raise ConanException(traceback.format_exc())conans.errors.ConanException: Traceback (most recent call last): File "/home/rini/.local/lib/python3.11/site-packages/conans/errors.py", line 52, in conanfile_exception_formatter yield File "/home/rini/.local/lib/python3.11/site-packages/conans/client/conanfile/build.py", line 14, in run_build_method conanfile.build() File "/home/rini/git-stash/Testcenter.TestAutomation.Lex.Solution/Testcenter.TestAutomation.CBus.Driver/conanfile.py", line 67, in build cmake.build(cli_args=common_cmake_args) File "/home/rini/.local/lib/python3.11/site-packages/conan/tools/cmake/cmake.py", line 188, in build self._build(build_type, target, cli_args, build_tool_args, stdout=stdout, stderr=stderr) File "/home/rini/.local/lib/python3.11/site-packages/conan/tools/cmake/cmake.py", line 167, in _build self._conanfile.run(command, env=env, stdout=stdout, stderr=stderr) File "/home/rini/.local/lib/python3.11/site-packages/conans/model/conan_file.py", line 342, in run raise ConanException("Error %d while executing" % retcode)conans.errors.ConanException: Error 2 while executingERROR: Traceback (most recent call last): File "/home/rini/.local/lib/python3.11/site-packages/conans/errors.py", line 52, in conanfile_exception_formatter yield File "/home/rini/.local/lib/python3.11/site-packages/conans/client/conanfile/build.py", line 14, in run_build_method conanfile.build() File "/home/rini/git-stash/Testcenter.TestAutomation.Lex.Solution/Testcenter.TestAutomation.CBus.Driver/conanfile.py", line 67, in build cmake.build(cli_args=common_cmake_args) File "/home/rini/.local/lib/python3.11/site-packages/conan/tools/cmake/cmake.py", line 188, in build self._build(build_type, target, cli_args, build_tool_args, stdout=stdout, stderr=stderr) File "/home/rini/.local/lib/python3.11/site-packages/conan/tools/cmake/cmake.py", line 167, in _build self._conanfile.run(command, env=env, stdout=stdout, stderr=stderr) File "/home/rini/.local/lib/python3.11/site-packages/conans/model/conan_file.py", line 342, in run raise ConanException("Error %d while executing" % retcode)conans.errors.ConanException: Error 2 while executing
Code:
$ conan build . --profile=rp2040-debug======== Input profiles ========Profile host:[settings]arch=armv6build_type=Debugcompiler=gcccompiler.cppstd=gnu17compiler.libcxx=libstdc++11compiler.version=12os=baremetal[conf]tools.build:cflags=['-mcpu=cortex-m0plus -mthumb -nostartfiles']tools.build:cxxflags=['-mcpu=cortex-m0plus -mthumb -nostartfiles'][buildenv]CC=/usr/bin/arm-none-eabi-gccCXX=/usr/bin/arm-none-eabi-g++AR=/usr/bin/arm-none-eabi-arAS=/usr/bin/arm-none-eabi-asRANLIB=/usr/bin/arm-none-eabi-ranlibLD=/usr/bin/arm-none-eabi-ldSTRIP=/usr/bin/arm-none-eabi-stripProfile build:[settings]arch=armv8build_type=Releasecompiler=gcccompiler.cppstd=gnu17compiler.libcxx=libstdc++11compiler.version=12os=Linux======== Computing dependency graph ========Graph root conanfile.py (cbus-driver/0.0.1): /home/rini/git-stash/Testcenter.TestAutomation.Lex.Solution/Testcenter.TestAutomation.CBus.Driver/conanfile.pyRequirements lex-common/0.0.1#c5211493ddee8a419f3977d985465afa - Cache======== Computing necessary packages ========Requirements lex-common/0.0.1#c5211493ddee8a419f3977d985465afa:d8dc8394b999a822397a546e971d8b2f790ecc97#24517e713605e7bea750052318b834c5 - Cache======== Installing packages ================ Installing packages ========lex-common/0.0.1: Already installed! (1 of 1)======== Finalizing install (deploy, generators) ========conanfile.py (cbus-driver/0.0.1): Calling generate()conanfile.py (cbus-driver/0.0.1): Generators folder: /home/rini/git-stash/Testcenter.TestAutomation.Lex.Solution/Testcenter.TestAutomation.CBus.Driver/build/Debug/generatorsconanfile.py (cbus-driver/0.0.1): CMakeDeps necessary find_package() and targets for your CMakeLists.txt find_package(lex-common) target_link_libraries(... lex-common::lex-common)conanfile.py (cbus-driver/0.0.1): CMakeToolchain generated: conan_toolchain.cmakeconanfile.py (cbus-driver/0.0.1): Preset 'conan-debug' added to CMakePresets.json. Invoke it manually using 'cmake --preset conan-debug' if using CMake>=3.23conanfile.py (cbus-driver/0.0.1): If your CMake version is not compatible with CMakePresets (<3.23) call cmake like: 'cmake <path> -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=/home/rini/git-stash/Testcenter.TestAutomation.Lex.Solution/Testcenter.TestAutomation.CBus.Driver/build/Debug/generators/conan_toolchain.cmake -DCMAKE_POLICY_DEFAULT_CMP0091=NEW -DCMAKE_BUILD_TYPE=Debug'conanfile.py (cbus-driver/0.0.1): CMakeToolchain generated: CMakePresets.jsonconanfile.py (cbus-driver/0.0.1): CMakeToolchain generated: ../../../CMakeUserPresets.jsonconanfile.py (cbus-driver/0.0.1): Generating aggregated env filesconanfile.py (cbus-driver/0.0.1): Generated aggregated env files: ['conanbuild.sh', 'conanrun.sh']======== Calling build() ========conanfile.py (cbus-driver/0.0.1): Calling build()conanfile.py (cbus-driver/0.0.1): Running CMake.configure()conanfile.py (cbus-driver/0.0.1): RUN: cmake -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE="/home/rini/git-stash/Testcenter.TestAutomation.Lex.Solution/Testcenter.TestAutomation.CBus.Driver/build/Debug/generators/conan_toolchain.cmake" -DCMAKE_INSTALL_PREFIX="/home/rini/git-stash/Testcenter.TestAutomation.Lex.Solution/Testcenter.TestAutomation.CBus.Driver" -DCMAKE_POLICY_DEFAULT_CMP0091="NEW" -DCMAKE_BUILD_TYPE="Debug" "/home/rini/git-stash/Testcenter.TestAutomation.Lex.Solution/Testcenter.TestAutomation.CBus.Driver"-- PICO_SDK_PATH not defined.-- Using path: /home/rini/git-stash/Testcenter.TestAutomation.Lex.Solution/Testcenter.TestAutomation.CBus.Driver/build/Debug/deps/pico-sdkPICO_SDK_PATH is /home/rini/git-stash/Testcenter.TestAutomation.Lex.Solution/Testcenter.TestAutomation.CBus.Driver/build/Debug/deps/pico-sdkPICO platform is rp2040.-- Using Conan toolchain: /home/rini/git-stash/Testcenter.TestAutomation.Lex.Solution/Testcenter.TestAutomation.CBus.Driver/build/Debug/generators/conan_toolchain.cmake-- Conan toolchain: C++ Standard 17 with extensions ON-- Conan toolchain: Setting BUILD_SHARED_LIBS = OFF-- The C compiler identification is GNU 12.2.1-- The CXX compiler identification is GNU 12.2.1-- The ASM compiler identification is GNU-- Found assembler: /usr/bin/arm-none-eabi-gcc-- Detecting C compiler ABI info-- Detecting C compiler ABI info - failed-- Check for working C compiler: /usr/bin/arm-none-eabi-gcc-- Check for working C compiler: /usr/bin/arm-none-eabi-gcc - brokenCMake Error at /usr/share/cmake-3.25/Modules/CMakeTestCCompiler.cmake:70 (message): The C compiler "/usr/bin/arm-none-eabi-gcc" is not able to compile a simple test program. It fails with the following output: Change Dir: /home/rini/git-stash/Testcenter.TestAutomation.Lex.Solution/Testcenter.TestAutomation.CBus.Driver/build/Debug/CMakeFiles/CMakeScratch/TryCompile-MQ3qZg Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_e659b/fast && /usr/bin/gmake -f CMakeFiles/cmTC_e659b.dir/build.make CMakeFiles/cmTC_e659b.dir/build gmake[1]: Entering directory '/home/rini/git-stash/Testcenter.TestAutomation.Lex.Solution/Testcenter.TestAutomation.CBus.Driver/build/Debug/CMakeFiles/CMakeScratch/TryCompile-MQ3qZg' Building C object CMakeFiles/cmTC_e659b.dir/testCCompiler.c.obj /usr/bin/arm-none-eabi-gcc -mcpu=cortex-m0plus -mthumb -o CMakeFiles/cmTC_e659b.dir/testCCompiler.c.obj -c /home/rini/git-stash/Testcenter.TestAutomation.Lex.Solution/Testcenter.TestAutomation.CBus.Driver/build/Debug/CMakeFiles/CMakeScratch/TryCompile-MQ3qZg/testCCompiler.c Linking C executable cmTC_e659b /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_e659b.dir/link.txt --verbose=1 /usr/bin/arm-none-eabi-gcc -mcpu=cortex-m0plus -mthumb CMakeFiles/cmTC_e659b.dir/testCCompiler.c.obj -o cmTC_e659b /usr/lib/gcc/arm-none-eabi/12.2.1/../../../arm-none-eabi/bin/ld: /usr/lib/gcc/arm-none-eabi/12.2.1/../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc.a(lib_a-exit.o): in function `exit': /build/newlib-afIbHz/newlib-3.3.0/build/arm-none-eabi/thumb/v6-m/nofp/newlib/libc/stdlib/../../../../../../../../newlib/libc/stdlib/exit.c:64: undefined reference to `_exit' collect2: error: ld returned 1 exit status gmake[1]: *** [CMakeFiles/cmTC_e659b.dir/build.make:99: cmTC_e659b] Error 1 gmake[1]: Leaving directory '/home/rini/git-stash/Testcenter.TestAutomation.Lex.Solution/Testcenter.TestAutomation.CBus.Driver/build/Debug/CMakeFiles/CMakeScratch/TryCompile-MQ3qZg' gmake: *** [Makefile:127: cmTC_e659b/fast] Error 2 CMake will not be able to correctly generate this project.Call Stack (most recent call first): CMakeLists.txt:27 (project)-- Configuring incomplete, errors occurred!See also "/home/rini/git-stash/Testcenter.TestAutomation.Lex.Solution/Testcenter.TestAutomation.CBus.Driver/build/Debug/CMakeFiles/CMakeOutput.log".See also "/home/rini/git-stash/Testcenter.TestAutomation.Lex.Solution/Testcenter.TestAutomation.CBus.Driver/build/Debug/CMakeFiles/CMakeError.log".ERROR: conanfile.py (cbus-driver/0.0.1): Error in build() method, line 65 cmake.configure(cli_args=common_cmake_args) ConanException: Error 1 while executing
How can I properly setup the Pico SDK toolchains for conan to recognize?
What does the Pico SDK generally setup to work with arm-none-eabi cross-compilation?
Any help would be greatly appreciated!
Statistics: Posted by HackXIt — Thu May 02, 2024 9:12 am