bus710 / Arduino-pico-development-in-linux

MIT License
1 stars 0 forks source link

some suggestions #1

Open Turro75 opened 1 year ago

Turro75 commented 1 year ago

First of All many thanks for Your work, it helped me getting a well working pico development suite (I'm on Ubuntu).

Just a couple of improvements:

I deleted the picosdk included in the arduino-pico framework and I created a symlink to the actual sdk. Then, if You use the PICO_SDK_PATH instead of an absolute path the "c_cpp_properties.json" becames more generic:

"${env:PICO_SDK_PATH}/lib/tinyusb/src/", "${env:PICO_SDK_PATH}/src/boards/include", "${env:PICO_SDK_PATH}/src/common/pico_base/include", "${env:PICO_SDK_PATH}/src/common/pico_binary_info/include", "${env:PICO_SDK_PATH}/src/common/pico_bit_ops/include", "${env:PICO_SDK_PATH}/src/common/pico_divider/include", "${env:PICO_SDK_PATH}/src/common/pico_stdlib/include", "${env:PICO_SDK_PATH}/src/common/pico_sync/include", "${env:PICO_SDK_PATH}/src/common/pico_time/include", "${env:PICO_SDK_PATH}/src/common/pico_usb_reset_interface/include", "${env:PICO_SDK_PATH}/src/common/pico_util/include", "${env:PICO_SDK_PATH}/src/rp2040/hardware_regs/include", "${env:PICO_SDK_PATH}/src/rp2040/hardware_structs/include", "${env:PICO_SDK_PATH}/src/rp2_common/cmsis/include", "${env:PICO_SDK_PATH}/src/rp2_common/cmsis/stub/CMSIS/Core/Include", "${env:PICO_SDK_PATH}/src/rp2_common/cmsis/stub/CMSIS/Device/RaspberryPi/RP2040/Include", "${env:PICO_SDK_PATH}/src/rp2_common/hardware_adc/include", "${env:PICO_SDK_PATH}/src/rp2_common/hardware_base/include", "${env:PICO_SDK_PATH}/src/rp2_common/hardware_claim/include", "${env:PICO_SDK_PATH}/src/rp2_common/hardware_clocks/include", "${env:PICO_SDK_PATH}/src/rp2_common/hardware_divider/include", "${env:PICO_SDK_PATH}/src/rp2_common/hardware_dma/include", "${env:PICO_SDK_PATH}/src/rp2_common/hardware_exception/include", "${env:PICO_SDK_PATH}/src/rp2_common/hardware_flash/include", "${env:PICO_SDK_PATH}/src/rp2_common/hardware_gpio/include", "${env:PICO_SDK_PATH}/src/rp2_common/hardware_i2c/include", "${env:PICO_SDK_PATH}/src/rp2_common/hardware_interp/include", "${env:PICO_SDK_PATH}/src/rp2_common/hardware_irq/include", "${env:PICO_SDK_PATH}/src/rp2_common/hardware_rtc/include", "${env:PICO_SDK_PATH}/src/rp2_common/hardware_pio/include", "${env:PICO_SDK_PATH}/src/rp2_common/hardware_pll/include", "${env:PICO_SDK_PATH}/src/rp2_common/hardware_pwm/include", "${env:PICO_SDK_PATH}/src/rp2_common/hardware_resets/include", "${env:PICO_SDK_PATH}/src/rp2_common/hardware_spi/include", "${env:PICO_SDK_PATH}/src/rp2_common/hardware_sync/include", "${env:PICO_SDK_PATH}/src/rp2_common/hardware_timer/include", "${env:PICO_SDK_PATH}/src/rp2_common/hardware_uart/include", "${env:PICO_SDK_PATH}/src/rp2_common/hardware_vreg/include", "${env:PICO_SDK_PATH}/src/rp2_common/hardware_watchdog/include", "${env:PICO_SDK_PATH}/src/rp2_common/hardware_xosc/include", "${env:PICO_SDK_PATH}/src/rp2_common/pico_async_context/include", "${env:PICO_SDK_PATH}/src/rp2_common/pico_bootrom/include", "${env:PICO_SDK_PATH}/src/rp2_common/pico_btstack/include", "${env:PICO_SDK_PATH}/src/rp2_common/pico_cyw43_arch/include", "${env:PICO_SDK_PATH}/src/rp2_common/pico_cyw43_driver/include", "${env:PICO_SDK_PATH}/src/rp2_common/pico_double/include", "${env:PICO_SDK_PATH}/src/rp2_common/pico_float/include", "${env:PICO_SDK_PATH}/src/rp2_common/pico_int64_ops/include", "${env:PICO_SDK_PATH}/src/rp2_common/pico_lwip/include", "${env:PICO_SDK_PATH}/src/rp2_common/pico_multicore/include", "${env:PICO_SDK_PATH}/src/rp2_common/pico_platform/include", "${env:PICO_SDK_PATH}/src/rp2_common/pico_printf/include", "${env:PICO_SDK_PATH}/src/rp2_common/pico_runtime/include", "${env:PICO_SDK_PATH}/src/rp2_common/pico_rand/include", "${env:PICO_SDK_PATH}/src/rp2_common/pico_stdio/include", "${env:PICO_SDK_PATH}/src/rp2_common/pico_stdio_uart/include", "${env:PICO_SDK_PATH}/src/rp2_common/pico_unique_id/include", "${env:PICO_SDK_PATH}/lib/cyw43-driver/src", "${env:PICO_SDK_PATH}/lib/lwip/src/include", "${env:PICO_SDK_PATH}/lib/btstack/src", "${env:PICO_SDK_PATH}/lib/btstack/platform/embedded"

To edit the file I used the find/replace tools integrated in vscode and, to place the '",' at the end of each line I used the wonderful multicursor feature available in vscode, just select all the lines then press shift+alt+i and see the magic.

last thing: You can disable intellisense directly in the arduino.json file so no need to create a settings.json for that purpose only. { "configuration": "flash=2097152_0,freq=133,opt=Small,rtti=Disabled,stackprotect=Disabled,exceptions=Disabled,dbgport=Disabled,dbglvl=None,usbstack=picosdk,ipbtstack=ipv4only,uploadmethod=default", "board": "rp2040:rp2040:rpipico", "sketch": "multifirmware.ino", "port": "/dev/ttyACM0", "intelliSenseGen": "disable", "output": "build" }

bus710 commented 1 year ago

@Turro75 Thanks for those great tips!

My understanding is that:

  1. Manually or automatically we can check the environment variable $PICO_SDK_PATH. If exists, the output can be shorten with the env key. Also, possibly a double quote and comma can be added (not sure how I can reproduce this yet, but let me try).
  2. I didn't know if arduino.json can be used to suppress Intellisense's intervention. I will update the section 4 with that method.