tinyvision-ai-inc / pico-ice-sdk

Firmware and software support for the pico-ice board
MIT License
49 stars 14 forks source link

SDK doesn't work with ICE_USB_USE_TINYUF2_MSC disabled #54

Open MrJake222 opened 6 months ago

MrJake222 commented 6 months ago
[34/34] Linking CXX executable pico_ice_default.elf
FAILED: pico_ice_default.elf 
: && /usr/bin/arm-none-eabi-g++ -mcpu=cortex-m0plus -mthumb -Og -g -Wl,--build-id=none --specs=nosys.specs -Wl,--wrap=sprintf -Wl,--wrap=snprintf -Wl,--wrap=vsnprintf -Wl,--wrap=__clzsi2 -Wl,--wrap=__clzdi2 -Wl,--wrap=__ctzsi2 -Wl,--wrap=__ctzdi2 -Wl,--wrap=__popcountsi2 -Wl,--wrap=__popcountdi2 -Wl,--wrap=__clz -Wl,--wrap=__clzl -Wl,--wrap=__clzll -Wl,--wrap=__aeabi_idiv -Wl,--wrap=__aeabi_idivmod -Wl,--wrap=__aeabi_ldivmod -Wl,--wrap=__aeabi_uidiv -Wl,--wrap=__aeabi_uidivmod -Wl,--wrap=__aeabi_uldivmod -Wl,--wrap=__aeabi_dadd -Wl,--wrap=__aeabi_ddiv -Wl,--wrap=__aeabi_dmul -Wl,--wrap=__aeabi_drsub -Wl,--wrap=__aeabi_dsub -Wl,--wrap=__aeabi_cdcmpeq -Wl,--wrap=__aeabi_cdrcmple -Wl,--wrap=__aeabi_cdcmple -Wl,--wrap=__aeabi_dcmpeq -Wl,--wrap=__aeabi_dcmplt -Wl,--wrap=__aeabi_dcmple -Wl,--wrap=__aeabi_dcmpge -Wl,--wrap=__aeabi_dcmpgt -Wl,--wrap=__aeabi_dcmpun -Wl,--wrap=__aeabi_i2d -Wl,--wrap=__aeabi_l2d -Wl,--wrap=__aeabi_ui2d -Wl,--wrap=__aeabi_ul2d -Wl,--wrap=__aeabi_d2iz -Wl,--wrap=__aeabi_d2lz -Wl,--wrap=__aeabi_d2uiz -Wl,--wrap=__aeabi_d2ulz -Wl,--wrap=__aeabi_d2f -Wl,--wrap=sqrt -Wl,--wrap=cos -Wl,--wrap=sin -Wl,--wrap=tan -Wl,--wrap=atan2 -Wl,--wrap=exp -Wl,--wrap=log -Wl,--wrap=ldexp -Wl,--wrap=copysign -Wl,--wrap=trunc -Wl,--wrap=floor -Wl,--wrap=ceil -Wl,--wrap=round -Wl,--wrap=sincos -Wl,--wrap=asin -Wl,--wrap=acos -Wl,--wrap=atan -Wl,--wrap=sinh -Wl,--wrap=cosh -Wl,--wrap=tanh -Wl,--wrap=asinh -Wl,--wrap=acosh -Wl,--wrap=atanh -Wl,--wrap=exp2 -Wl,--wrap=log2 -Wl,--wrap=exp10 -Wl,--wrap=log10 -Wl,--wrap=pow -Wl,--wrap=powint -Wl,--wrap=hypot -Wl,--wrap=cbrt -Wl,--wrap=fmod -Wl,--wrap=drem -Wl,--wrap=remainder -Wl,--wrap=remquo -Wl,--wrap=expm1 -Wl,--wrap=log1p -Wl,--wrap=fma -Wl,--wrap=__aeabi_lmul -Wl,--wrap=__aeabi_fadd -Wl,--wrap=__aeabi_fdiv -Wl,--wrap=__aeabi_fmul -Wl,--wrap=__aeabi_frsub -Wl,--wrap=__aeabi_fsub -Wl,--wrap=__aeabi_cfcmpeq -Wl,--wrap=__aeabi_cfrcmple -Wl,--wrap=__aeabi_cfcmple -Wl,--wrap=__aeabi_fcmpeq -Wl,--wrap=__aeabi_fcmplt -Wl,--wrap=__aeabi_fcmple -Wl,--wrap=__aeabi_fcmpge -Wl,--wrap=__aeabi_fcmpgt -Wl,--wrap=__aeabi_fcmpun -Wl,--wrap=__aeabi_i2f -Wl,--wrap=__aeabi_l2f -Wl,--wrap=__aeabi_ui2f -Wl,--wrap=__aeabi_ul2f -Wl,--wrap=__aeabi_f2iz -Wl,--wrap=__aeabi_f2lz -Wl,--wrap=__aeabi_f2uiz -Wl,--wrap=__aeabi_f2ulz -Wl,--wrap=__aeabi_f2d -Wl,--wrap=sqrtf -Wl,--wrap=cosf -Wl,--wrap=sinf -Wl,--wrap=tanf -Wl,--wrap=atan2f -Wl,--wrap=expf -Wl,--wrap=logf -Wl,--wrap=ldexpf -Wl,--wrap=copysignf -Wl,--wrap=truncf -Wl,--wrap=floorf -Wl,--wrap=ceilf -Wl,--wrap=roundf -Wl,--wrap=sincosf -Wl,--wrap=asinf -Wl,--wrap=acosf -Wl,--wrap=atanf -Wl,--wrap=sinhf -Wl,--wrap=coshf -Wl,--wrap=tanhf -Wl,--wrap=asinhf -Wl,--wrap=acoshf -Wl,--wrap=atanhf -Wl,--wrap=exp2f -Wl,--wrap=log2f -Wl,--wrap=exp10f -Wl,--wrap=log10f -Wl,--wrap=powf -Wl,--wrap=powintf -Wl,--wrap=hypotf -Wl,--wrap=cbrtf -Wl,--wrap=fmodf -Wl,--wrap=dremf -Wl,--wrap=remainderf -Wl,--wrap=remquof -Wl,--wrap=expm1f -Wl,--wrap=log1pf -Wl,--wrap=fmaf -Wl,--wrap=malloc -Wl,--wrap=calloc -Wl,--wrap=realloc -Wl,--wrap=free -Wl,--wrap=memcpy -Wl,--wrap=memset -Wl,--wrap=__aeabi_memcpy -Wl,--wrap=__aeabi_memset -Wl,--wrap=__aeabi_memcpy4 -Wl,--wrap=__aeabi_memset4 -Wl,--wrap=__aeabi_memcpy8 -Wl,--wrap=__aeabi_memset8 -Wl,-Map=pico_ice_default.elf.map -Wl,--script=/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/pico_standard_link/memmap_default.ld -Wl,-z,max-page-size=4096 -Wl,--gc-sections -Wl,--no-warn-rwx-segments -Wl,--wrap=printf -Wl,--wrap=vprintf -Wl,--wrap=puts -Wl,--wrap=putchar -Wl,--wrap=getchar CMakeFiles/pico_ice_default.dir/main.c.obj CMakeFiles/pico_ice_default.dir/usb_descriptors.c.obj CMakeFiles/pico_ice_default.dir/pico-ice-sdk/src/ice_fpga.c.obj CMakeFiles/pico_ice_default.dir/pico-ice-sdk/src/ice_spi.c.obj CMakeFiles/pico_ice_default.dir/pico-ice-sdk/src/ice_flash.c.obj CMakeFiles/pico_ice_default.dir/pico-ice-sdk/src/ice_sram.c.obj CMakeFiles/pico_ice_default.dir/pico-ice-sdk/src/ice_led.c.obj CMakeFiles/pico_ice_default.dir/pico-ice-sdk/src/ice_cram.c.obj CMakeFiles/pico_ice_default.dir/pico-ice-sdk/src/ice_wishbone.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/hardware_flash/flash.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/pico_platform/platform.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/hardware_claim/claim.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/hardware_sync/sync.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/pico_bootrom/bootrom.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/hardware_gpio/gpio.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/hardware_irq/irq.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/hardware_irq/irq_handler_chain.S.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/common/pico_sync/sem.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/common/pico_sync/lock_core.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/common/pico_sync/mutex.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/common/pico_sync/critical_section.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/common/pico_time/time.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/common/pico_time/timeout_helper.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/hardware_timer/timer.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/common/pico_util/datetime.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/common/pico_util/pheap.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/common/pico_util/queue.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/hardware_pio/pio.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/hardware_spi/spi.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/hardware_clocks/clocks.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/hardware_pll/pll.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/hardware_vreg/vreg.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/hardware_watchdog/watchdog.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/hardware_xosc/xosc.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/hardware_dma/dma.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/hardware_uart/uart.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/pico_stdlib/stdlib.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/hardware_divider/divider.S.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/pico_runtime/runtime.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/pico_printf/printf.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/pico_bit_ops/bit_ops_aeabi.S.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/pico_divider/divider.S.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/pico_double/double_aeabi.S.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/pico_double/double_init_rom.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/pico_double/double_math.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/pico_double/double_v1_rom_shim.S.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/pico_int64_ops/pico_int64_ops_aeabi.S.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/pico_float/float_aeabi.S.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/pico_float/float_init_rom.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/pico_float/float_math.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/pico_float/float_v1_rom_shim.S.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/pico_malloc/pico_malloc.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/pico_mem_ops/mem_ops_aeabi.S.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/pico_standard_link/crt0.S.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/pico_standard_link/new_delete.cpp.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/pico_standard_link/binary_info.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/pico_stdio/stdio.c.obj CMakeFiles/pico_ice_default.dir/pico-ice-sdk/src/ice_usb.c.obj CMakeFiles/pico_ice_default.dir/pico-ice-sdk/src/tinyuf2_main.c.obj CMakeFiles/pico_ice_default.dir/pico-ice-sdk/src/tinyuf2_board.c.obj CMakeFiles/pico_ice_default.dir/pico-ice-sdk/src/tinyuf2_include.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/pico_multicore/multicore.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/pico_unique_id/unique_id.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/lib/tinyusb/src/portable/raspberrypi/rp2040/dcd_rp2040.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/lib/tinyusb/src/portable/raspberrypi/rp2040/rp2040_usb.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/lib/tinyusb/src/device/usbd.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/lib/tinyusb/src/device/usbd_control.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/lib/tinyusb/src/class/audio/audio_device.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/lib/tinyusb/src/class/cdc/cdc_device.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/lib/tinyusb/src/class/dfu/dfu_device.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/lib/tinyusb/src/class/dfu/dfu_rt_device.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/lib/tinyusb/src/class/hid/hid_device.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/lib/tinyusb/src/class/midi/midi_device.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/lib/tinyusb/src/class/msc/msc_device.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/lib/tinyusb/src/class/net/ecm_rndis_device.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/lib/tinyusb/src/class/net/ncm_device.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/lib/tinyusb/src/class/usbtmc/usbtmc_device.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/lib/tinyusb/src/class/vendor/vendor_device.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/lib/tinyusb/src/class/video/video_device.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/lib/tinyusb/src/tusb.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/lib/tinyusb/src/common/tusb_fifo.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/pico_fix/rp2040_usb_device_enumeration/rp2040_usb_device_enumeration.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/lib/tinyusb/hw/bsp/rp2040/family.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/pico_stdio_usb/reset_interface.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/pico_stdio_usb/stdio_usb.c.obj CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/src/rp2_common/pico_stdio_usb/stdio_usb_descriptors.c.obj -o pico_ice_default.elf  pico-sdk/src/rp2_common/boot_stage2/bs2_default_padded_checksummed.S && cd /home/norbert/git/ice/pico-ice/Firmware/pico-ice-default/cmake-build-debug && /usr/bin/arm-none-eabi-objcopy -Oihex /home/norbert/git/ice/pico-ice/Firmware/pico-ice-default/cmake-build-debug/pico_ice_default.elf pico_ice_default.hex && cd /home/norbert/git/ice/pico-ice/Firmware/pico-ice-default/cmake-build-debug && /usr/bin/arm-none-eabi-objcopy -Obinary /home/norbert/git/ice/pico-ice/Firmware/pico-ice-default/cmake-build-debug/pico_ice_default.elf pico_ice_default.bin && cd /home/norbert/git/ice/pico-ice/Firmware/pico-ice-default/cmake-build-debug && /usr/bin/arm-none-eabi-objdump -h /home/norbert/git/ice/pico-ice/Firmware/pico-ice-default/cmake-build-debug/pico_ice_default.elf > pico_ice_default.dis && /usr/bin/arm-none-eabi-objdump -d /home/norbert/git/ice/pico-ice/Firmware/pico-ice-default/cmake-build-debug/pico_ice_default.elf >> pico_ice_default.dis && cd /home/norbert/git/ice/pico-ice/Firmware/pico-ice-default/cmake-build-debug && /home/norbert/git/ice/pico-ice/Firmware/pico-ice-default/cmake-build-debug/elf2uf2/elf2uf2 /home/norbert/git/ice/pico-ice/Firmware/pico-ice-default/cmake-build-debug/pico_ice_default.elf pico_ice_default.uf2
/usr/lib/gcc/arm-none-eabi/13.2.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/lib/tinyusb/src/class/msc/msc_device.c.obj: in function `proc_builtin_scsi':
/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/lib/tinyusb/src/class/msc/msc_device.c:658:(.text.proc_builtin_scsi+0x1a): undefined reference to `tud_msc_test_unit_ready_cb'
/usr/lib/gcc/arm-none-eabi/13.2.0/../../../../arm-none-eabi/bin/ld: /home/norbert/git/ice/pico-ice/Firmware/pico-sdk/lib/tinyusb/src/class/msc/msc_device.c:691:(.text.proc_builtin_scsi+0x8a): undefined reference to `tud_msc_capacity_cb'
/usr/lib/gcc/arm-none-eabi/13.2.0/../../../../arm-none-eabi/bin/ld: /home/norbert/git/ice/pico-ice/Firmware/pico-sdk/lib/tinyusb/src/class/msc/msc_device.c:728:(.text.proc_builtin_scsi+0xec): undefined reference to `tud_msc_capacity_cb'
/usr/lib/gcc/arm-none-eabi/13.2.0/../../../../arm-none-eabi/bin/ld: /home/norbert/git/ice/pico-ice/Firmware/pico-sdk/lib/tinyusb/src/class/msc/msc_device.c:764:(.text.proc_builtin_scsi+0x180): undefined reference to `tud_msc_inquiry_cb'
/usr/lib/gcc/arm-none-eabi/13.2.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/lib/tinyusb/src/class/msc/msc_device.c.obj: in function `proc_read10_cmd':
/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/lib/tinyusb/src/class/msc/msc_device.c:843:(.text.proc_read10_cmd+0x90): undefined reference to `tud_msc_read10_cb'
/usr/lib/gcc/arm-none-eabi/13.2.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/lib/tinyusb/src/class/msc/msc_device.c.obj: in function `proc_write10_new_data':
/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/lib/tinyusb/src/class/msc/msc_device.c:905:(.text.proc_write10_new_data+0x6e): undefined reference to `tud_msc_write10_cb'
/usr/lib/gcc/arm-none-eabi/13.2.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/pico_ice_default.dir/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/lib/tinyusb/src/class/msc/msc_device.c.obj: in function `mscd_xfer_cb':
/home/norbert/git/ice/pico-ice/Firmware/pico-sdk/lib/tinyusb/src/class/msc/msc_device.c:476:(.text.mscd_xfer_cb+0x136): undefined reference to `tud_msc_scsi_cb'
/usr/lib/gcc/arm-none-eabi/13.2.0/../../../../arm-none-eabi/bin/ld: /home/norbert/git/ice/pico-ice/Firmware/pico-sdk/lib/tinyusb/src/class/msc/msc_device.c:544:(.text.mscd_xfer_cb+0x1e0): undefined reference to `tud_msc_scsi_cb'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

Seems that pico-sdk still uses msc_device.c somewhere.

josuah commented 4 months ago

Sorry for such a long delay! I just noticed that I did not click on "watch" for that repo, so did not receive the notifications when issues are opened...

josuah commented 4 months ago

tud_msc_capacity_cb is a TinyUSB callback: this means that some submodule or source file somewhere might be implementing this, but is not currently included in this build.

This is the default firmware: a firmware build that uses the SDK to implement several features, including TinyUF2, which allows to program the FPGA using an USB Mass Storage Class (MSC) device: the pico-ice gets detected as an USB storage dongle.

Are you interested in using the default firmware?

Maybe you would also want to look at the examples which include only the minimal functionality for each task: https://github.com/tinyvision-ai-inc/pico-ice-sdk/tree/main/examples