嵌入式史迪奇
嵌入式史迪奇
这家伙很懒,什么也没写!

注册于 3年前

回答
1
文章
0
关注者
0

发布于3年前

对着tinyusb的CMake扒了下,可以build成功了,并且printf可以成功打印到串口
但是rt_kprintf还不工作。。后续再研究其实现原理

4d9df53285b432543c7b9147a0ebf925.png.webp

需要修改libraries/SConscript文件,添加以下部分

  1. src = src + Split("""
  2. pico-sdk/src/rp2_common/pico_stdio_usb/stdio_usb.c
  3. pico-sdk/src/rp2_common/pico_stdio_usb/stdio_usb_descriptors.c
  4. pico-sdk/lib/tinyusb/src/tusb.c
  5. pico-sdk/lib/tinyusb/src/common/tusb_fifo.c
  6. pico-sdk/lib/tinyusb/src/portable/raspberrypi/rp2040/dcd_rp2040.c
  7. pico-sdk/lib/tinyusb/src/portable/raspberrypi/rp2040/rp2040_usb.c
  8. pico-sdk/lib/tinyusb/src/device/usbd.c
  9. pico-sdk/lib/tinyusb/src/device/usbd_control.c
  10. pico-sdk/lib/tinyusb/src/class/audio/audio_device.c
  11. pico-sdk/lib/tinyusb/src/class/cdc/cdc_device.c
  12. pico-sdk/lib/tinyusb/src/class/dfu/dfu_device.c
  13. pico-sdk/lib/tinyusb/src/class/dfu/dfu_rt_device.c
  14. pico-sdk/lib/tinyusb/src/class/hid/hid_device.c
  15. pico-sdk/lib/tinyusb/src/class/midi/midi_device.c
  16. pico-sdk/lib/tinyusb/src/class/msc/msc_device.c
  17. pico-sdk/lib/tinyusb/src/class/net/ecm_rndis_device.c
  18. pico-sdk/lib/tinyusb/src/class/net/ncm_device.c
  19. pico-sdk/lib/tinyusb/src/class/usbtmc/usbtmc_device.c
  20. pico-sdk/lib/tinyusb/src/class/vendor/vendor_device.c
  21. pico-sdk/lib/tinyusb/src/class/video/video_device.c
  22. pico-sdk/lib/tinyusb/hw/bsp/rp2040/family.c
  23. pico-sdk/src/rp2_common/pico_fix/rp2040_usb_device_enumeration/rp2040_usb_device_enumeration.c
  24. """)
  25. path = path + [
  26. cwd + '/pico-sdk/lib/tinyusb/src',
  27. cwd + '/pico-sdk/lib/tinyusb/src/common',
  28. cwd + '/pico-sdk/lib/tinyusb/hw',
  29. cwd + '/pico-sdk/src/rp2_common/pico_fix/rp2040_usb_device_enumeration/include'
  30. ]
  31. CPPDEFINES = CPPDEFINES + [
  32. 'CFG_TUSB_MCU=OPT_MCU_RP2040',
  33. 'CFG_TUSB_OS=OPT_OS_PICO',
  34. 'PICO_RP2040_USB_DEVICE_ENUMERATION_FIX=1',
  35. 'PICO_STDIO_USB=1',
  36. ]

下面两个文件的修改主要是因为rt thread里的pico sdk和pico sdk主分支代码有差异造成的build error,临时添加差异代码作为workaround
1.修改libraries/pico-sdk/src/common/pico_stdlib/include/pico/stdlib.h文件,添加如下

  1. // PICO_CONFIG: PICO_DEFAULT_LED_PIN_INVERTED, 1 if LED is inverted or 0 if not, type=int, default=0, group=pico_stdlib
  2. #ifndef PICO_DEFAULT_LED_PIN_INVERTED
  3. #define PICO_DEFAULT_LED_PIN_INVERTED 0
  4. #endif

2.修改libraries/pico-sdk/src/rp2_common/pico_stdio_usb/stdio_usb.c文件,添加如下

  1. #include "pico/mutex.h"

回到
顶部

发布
问题

投诉
建议