├── .gitignore
├── FlashDev.c
├── FlashOS.h
├── FlashPrg.c
├── LICENSE
├── README.md
├── documents
└── Pictures
│ ├── Debug_printf_Viewer.png
│ ├── EnableThePikaBeforeBuild.png
│ ├── Reset_Pico.png
│ └── enable_lcd_1in3
├── pico-sdk
├── .github
│ ├── pull_request_template.md
│ └── workflows
│ │ ├── choco_packages.config
│ │ ├── cmake.yml
│ │ ├── macOS.yml
│ │ ├── multi-gcc.yml
│ │ ├── scripts
│ │ └── generate_multi_gcc_workflow.py
│ │ └── windows.yml
├── .gitignore
├── .gitmodules
├── CMakeLists.txt
├── CONTRIBUTING.md
├── LICENSE.TXT
├── README.md
├── cmake
│ ├── Platform
│ │ └── PICO.cmake
│ ├── pico_pre_load_platform.cmake
│ ├── pico_pre_load_toolchain.cmake
│ ├── pico_utils.cmake
│ └── preload
│ │ ├── platforms
│ │ ├── host.cmake
│ │ ├── pico
│ │ │ └── pico.cmake
│ │ └── rp2040.cmake
│ │ └── toolchains
│ │ ├── find_compiler.cmake
│ │ ├── pico_arm_clang.cmake
│ │ ├── pico_arm_clang_arm.cmake
│ │ ├── pico_arm_gcc.cmake
│ │ └── set_flags.cmake
├── docs
│ ├── CMakeLists.txt
│ ├── Doxyfile.in
│ ├── DoxygenLayout.xml
│ ├── examples.md
│ ├── footer.html
│ ├── header.html
│ ├── index.h
│ ├── logo-mobile.svg
│ ├── logo.svg
│ ├── main.css
│ ├── main.js
│ ├── mainpage.md
│ ├── normalise.css
│ ├── pico.jpg
│ ├── rp2040.png
│ ├── search.svg
│ ├── styles.css
│ └── weblinks_page.md
├── external
│ └── pico_sdk_import.cmake
├── pico_sdk_init.cmake
├── pico_sdk_version.cmake
├── src
│ ├── CMakeLists.txt
│ ├── board_setup.cmake
│ ├── boards
│ │ ├── generic_board.cmake
│ │ ├── include
│ │ │ └── boards
│ │ │ │ ├── adafruit_feather_rp2040.h
│ │ │ │ ├── adafruit_itsybitsy_rp2040.h
│ │ │ │ ├── adafruit_kb2040.h
│ │ │ │ ├── adafruit_macropad_rp2040.h
│ │ │ │ ├── adafruit_qtpy_rp2040.h
│ │ │ │ ├── adafruit_trinkey_qt2040.h
│ │ │ │ ├── arduino_nano_rp2040_connect.h
│ │ │ │ ├── datanoisetv_rp2040_dsp.h
│ │ │ │ ├── eetree_gamekit_rp2040.h
│ │ │ │ ├── garatronic_pybstick26_rp2040.h
│ │ │ │ ├── melopero_shake_rp2040.h
│ │ │ │ ├── none.h
│ │ │ │ ├── nullbits_bit_c_pro.h
│ │ │ │ ├── pico.h
│ │ │ │ ├── pico_w.h
│ │ │ │ ├── pimoroni_badger2040.h
│ │ │ │ ├── pimoroni_interstate75.h
│ │ │ │ ├── pimoroni_keybow2040.h
│ │ │ │ ├── pimoroni_motor2040.h
│ │ │ │ ├── pimoroni_pga2040.h
│ │ │ │ ├── pimoroni_picolipo_16mb.h
│ │ │ │ ├── pimoroni_picolipo_4mb.h
│ │ │ │ ├── pimoroni_picosystem.h
│ │ │ │ ├── pimoroni_plasma2040.h
│ │ │ │ ├── pimoroni_servo2040.h
│ │ │ │ ├── pimoroni_tiny2040.h
│ │ │ │ ├── pimoroni_tiny2040_2mb.h
│ │ │ │ ├── seeed_xiao_rp2040.h
│ │ │ │ ├── solderparty_rp2040_stamp.h
│ │ │ │ ├── solderparty_rp2040_stamp_carrier.h
│ │ │ │ ├── solderparty_rp2040_stamp_round_carrier.h
│ │ │ │ ├── sparkfun_micromod.h
│ │ │ │ ├── sparkfun_promicro.h
│ │ │ │ ├── sparkfun_thingplus.h
│ │ │ │ ├── vgaboard.h
│ │ │ │ ├── waveshare_rp2040_lcd_0.96.h
│ │ │ │ ├── waveshare_rp2040_lcd_1.28.h
│ │ │ │ ├── waveshare_rp2040_one.h
│ │ │ │ ├── waveshare_rp2040_plus_16mb.h
│ │ │ │ ├── waveshare_rp2040_plus_4mb.h
│ │ │ │ ├── waveshare_rp2040_zero.h
│ │ │ │ └── wiznet_w5100s_evb_pico.h
│ │ └── pico_w.cmake
│ ├── common
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── boot_picoboot
│ │ │ ├── CMakeLists.txt
│ │ │ └── include
│ │ │ │ └── boot
│ │ │ │ └── picoboot.h
│ │ ├── boot_uf2
│ │ │ ├── CMakeLists.txt
│ │ │ └── include
│ │ │ │ └── boot
│ │ │ │ └── uf2.h
│ │ ├── pico_base
│ │ │ ├── CMakeLists.txt
│ │ │ ├── generate_config_header.cmake
│ │ │ └── include
│ │ │ │ ├── pico.h
│ │ │ │ └── pico
│ │ │ │ ├── assert.h
│ │ │ │ ├── config.h
│ │ │ │ ├── error.h
│ │ │ │ ├── types.h
│ │ │ │ └── version.h.in
│ │ ├── pico_binary_info
│ │ │ ├── CMakeLists.txt
│ │ │ └── include
│ │ │ │ └── pico
│ │ │ │ ├── binary_info.h
│ │ │ │ └── binary_info
│ │ │ │ ├── code.h
│ │ │ │ ├── defs.h
│ │ │ │ └── structure.h
│ │ ├── pico_bit_ops
│ │ │ ├── CMakeLists.txt
│ │ │ └── include
│ │ │ │ └── pico
│ │ │ │ └── bit_ops.h
│ │ ├── pico_divider
│ │ │ ├── CMakeLists.txt
│ │ │ └── include
│ │ │ │ └── pico
│ │ │ │ └── divider.h
│ │ ├── pico_stdlib
│ │ │ ├── CMakeLists.txt
│ │ │ └── include
│ │ │ │ └── pico
│ │ │ │ └── stdlib.h
│ │ ├── pico_sync
│ │ │ ├── CMakeLists.txt
│ │ │ ├── critical_section.c
│ │ │ ├── include
│ │ │ │ └── pico
│ │ │ │ │ ├── critical_section.h
│ │ │ │ │ ├── lock_core.h
│ │ │ │ │ ├── mutex.h
│ │ │ │ │ ├── sem.h
│ │ │ │ │ └── sync.h
│ │ │ ├── lock_core.c
│ │ │ ├── mutex.c
│ │ │ └── sem.c
│ │ ├── pico_time
│ │ │ ├── CMakeLists.txt
│ │ │ ├── include
│ │ │ │ └── pico
│ │ │ │ │ ├── time.h
│ │ │ │ │ └── timeout_helper.h
│ │ │ ├── time.c
│ │ │ └── timeout_helper.c
│ │ ├── pico_usb_reset_interface
│ │ │ ├── CMakeLists.txt
│ │ │ └── include
│ │ │ │ └── pico
│ │ │ │ └── usb_reset_interface.h
│ │ └── pico_util
│ │ │ ├── CMakeLists.txt
│ │ │ ├── datetime.c
│ │ │ ├── doc.h
│ │ │ ├── include
│ │ │ └── pico
│ │ │ │ └── util
│ │ │ │ ├── datetime.h
│ │ │ │ ├── pheap.h
│ │ │ │ └── queue.h
│ │ │ ├── pheap.c
│ │ │ └── queue.c
│ ├── host.cmake
│ ├── host
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── boot_stage2.c
│ │ ├── hardware_divider
│ │ │ ├── CMakeLists.txt
│ │ │ ├── divider.c
│ │ │ └── include
│ │ │ │ └── hardware
│ │ │ │ └── divider.h
│ │ ├── hardware_gpio
│ │ │ ├── CMakeLists.txt
│ │ │ ├── gpio.c
│ │ │ └── include
│ │ │ │ └── hardware
│ │ │ │ └── gpio.h
│ │ ├── hardware_sync
│ │ │ ├── CMakeLists.txt
│ │ │ ├── include
│ │ │ │ └── hardware
│ │ │ │ │ └── sync.h
│ │ │ └── sync_core0_only.c
│ │ ├── hardware_timer
│ │ │ ├── CMakeLists.txt
│ │ │ ├── include
│ │ │ │ └── hardware
│ │ │ │ │ └── timer.h
│ │ │ └── timer.c
│ │ ├── hardware_uart
│ │ │ ├── CMakeLists.txt
│ │ │ ├── include
│ │ │ │ └── hardware
│ │ │ │ │ └── uart.h
│ │ │ └── uart.c
│ │ ├── pico_bit_ops
│ │ │ ├── CMakeLists.txt
│ │ │ └── bit_ops.c
│ │ ├── pico_divider
│ │ │ ├── CMakeLists.txt
│ │ │ └── divider.c
│ │ ├── pico_multicore
│ │ │ ├── CMakeLists.txt
│ │ │ └── include
│ │ │ │ └── pico
│ │ │ │ └── multicore.h
│ │ ├── pico_platform
│ │ │ ├── CMakeLists.txt
│ │ │ ├── include
│ │ │ │ ├── hardware
│ │ │ │ │ └── platform_defs.h
│ │ │ │ └── pico
│ │ │ │ │ └── platform.h
│ │ │ └── platform_base.c
│ │ ├── pico_printf
│ │ │ └── CMakeLists.txt
│ │ ├── pico_stdio
│ │ │ ├── CMakeLists.txt
│ │ │ ├── include
│ │ │ │ └── pico
│ │ │ │ │ └── stdio.h
│ │ │ └── stdio.c
│ │ └── pico_stdlib
│ │ │ ├── CMakeLists.txt
│ │ │ └── stdlib.c
│ ├── rp2040.cmake
│ ├── rp2040
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── hardware_regs
│ │ │ ├── CMakeLists.txt
│ │ │ ├── include
│ │ │ │ └── hardware
│ │ │ │ │ ├── platform_defs.h
│ │ │ │ │ └── regs
│ │ │ │ │ ├── adc.h
│ │ │ │ │ ├── addressmap.h
│ │ │ │ │ ├── busctrl.h
│ │ │ │ │ ├── clocks.h
│ │ │ │ │ ├── dma.h
│ │ │ │ │ ├── dreq.h
│ │ │ │ │ ├── i2c.h
│ │ │ │ │ ├── intctrl.h
│ │ │ │ │ ├── io_bank0.h
│ │ │ │ │ ├── io_qspi.h
│ │ │ │ │ ├── m0plus.h
│ │ │ │ │ ├── pads_bank0.h
│ │ │ │ │ ├── pads_qspi.h
│ │ │ │ │ ├── pio.h
│ │ │ │ │ ├── pll.h
│ │ │ │ │ ├── psm.h
│ │ │ │ │ ├── pwm.h
│ │ │ │ │ ├── resets.h
│ │ │ │ │ ├── rosc.h
│ │ │ │ │ ├── rtc.h
│ │ │ │ │ ├── sio.h
│ │ │ │ │ ├── spi.h
│ │ │ │ │ ├── ssi.h
│ │ │ │ │ ├── syscfg.h
│ │ │ │ │ ├── sysinfo.h
│ │ │ │ │ ├── tbman.h
│ │ │ │ │ ├── timer.h
│ │ │ │ │ ├── uart.h
│ │ │ │ │ ├── usb.h
│ │ │ │ │ ├── usb_device_dpram.h
│ │ │ │ │ ├── vreg_and_chip_reset.h
│ │ │ │ │ ├── watchdog.h
│ │ │ │ │ ├── xip.h
│ │ │ │ │ └── xosc.h
│ │ │ └── rp2040.svd
│ │ └── hardware_structs
│ │ │ ├── CMakeLists.txt
│ │ │ └── include
│ │ │ └── hardware
│ │ │ └── structs
│ │ │ ├── adc.h
│ │ │ ├── bus_ctrl.h
│ │ │ ├── clocks.h
│ │ │ ├── dma.h
│ │ │ ├── i2c.h
│ │ │ ├── interp.h
│ │ │ ├── iobank0.h
│ │ │ ├── ioqspi.h
│ │ │ ├── mpu.h
│ │ │ ├── nvic.h
│ │ │ ├── pads_qspi.h
│ │ │ ├── padsbank0.h
│ │ │ ├── pio.h
│ │ │ ├── pll.h
│ │ │ ├── psm.h
│ │ │ ├── pwm.h
│ │ │ ├── resets.h
│ │ │ ├── rosc.h
│ │ │ ├── rtc.h
│ │ │ ├── scb.h
│ │ │ ├── sio.h
│ │ │ ├── spi.h
│ │ │ ├── ssi.h
│ │ │ ├── syscfg.h
│ │ │ ├── systick.h
│ │ │ ├── timer.h
│ │ │ ├── uart.h
│ │ │ ├── usb.h
│ │ │ ├── vreg_and_chip_reset.h
│ │ │ ├── watchdog.h
│ │ │ ├── xip_ctrl.h
│ │ │ └── xosc.h
│ ├── rp2_common.cmake
│ └── rp2_common
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── boot_stage2
│ │ ├── CMakeLists.txt
│ │ ├── asminclude
│ │ │ └── boot2_helpers
│ │ │ │ ├── exit_from_boot2.S
│ │ │ │ ├── read_flash_sreg.S
│ │ │ │ └── wait_ssi_ready.S
│ │ ├── boot2_at25sf128a.S
│ │ ├── boot2_generic_03h.S
│ │ ├── boot2_is25lp080.S
│ │ ├── boot2_usb_blinky.S
│ │ ├── boot2_w25q080.S
│ │ ├── boot2_w25x10cl.S
│ │ ├── boot_stage2.ld
│ │ ├── compile_time_choice.S
│ │ ├── doc.h
│ │ ├── include
│ │ │ └── boot_stage2
│ │ │ │ └── config.h
│ │ └── pad_checksum
│ │ ├── cmsis
│ │ ├── CMakeLists.txt
│ │ ├── include
│ │ │ └── cmsis
│ │ │ │ └── rename_exceptions.h
│ │ └── stub
│ │ │ └── CMSIS
│ │ │ ├── Core
│ │ │ └── Include
│ │ │ │ ├── cmsis_armcc.h
│ │ │ │ ├── cmsis_armclang.h
│ │ │ │ ├── cmsis_armclang_ltm.h
│ │ │ │ ├── cmsis_compiler.h
│ │ │ │ ├── cmsis_gcc.h
│ │ │ │ ├── cmsis_iccarm.h
│ │ │ │ ├── cmsis_version.h
│ │ │ │ ├── core_cm0plus.h
│ │ │ │ └── mpu_armv7.h
│ │ │ ├── Device
│ │ │ └── RaspberryPi
│ │ │ │ └── RP2040
│ │ │ │ ├── Include
│ │ │ │ ├── RP2040.h
│ │ │ │ └── system_RP2040.h
│ │ │ │ └── Source
│ │ │ │ └── system_RP2040.c
│ │ │ └── LICENSE.txt
│ │ ├── hardware_adc
│ │ ├── CMakeLists.txt
│ │ ├── adc.c
│ │ └── include
│ │ │ └── hardware
│ │ │ └── adc.h
│ │ ├── hardware_base
│ │ ├── CMakeLists.txt
│ │ └── include
│ │ │ └── hardware
│ │ │ └── address_mapped.h
│ │ ├── hardware_claim
│ │ ├── CMakeLists.txt
│ │ ├── claim.c
│ │ └── include
│ │ │ └── hardware
│ │ │ └── claim.h
│ │ ├── hardware_clocks
│ │ ├── CMakeLists.txt
│ │ ├── clocks.c
│ │ ├── include
│ │ │ └── hardware
│ │ │ │ └── clocks.h
│ │ └── scripts
│ │ │ └── vcocalc.py
│ │ ├── hardware_divider
│ │ ├── CMakeLists.txt
│ │ ├── divider.S
│ │ └── include
│ │ │ └── hardware
│ │ │ ├── divider.h
│ │ │ └── divider_helper.S
│ │ ├── hardware_dma
│ │ ├── CMakeLists.txt
│ │ ├── dma.c
│ │ └── include
│ │ │ └── hardware
│ │ │ └── dma.h
│ │ ├── hardware_exception
│ │ ├── CMakeLists.txt
│ │ ├── exception.c
│ │ └── include
│ │ │ └── hardware
│ │ │ └── exception.h
│ │ ├── hardware_flash
│ │ ├── CMakeLists.txt
│ │ ├── flash.c
│ │ └── include
│ │ │ └── hardware
│ │ │ └── flash.h
│ │ ├── hardware_gpio
│ │ ├── CMakeLists.txt
│ │ ├── gpio.c
│ │ └── include
│ │ │ └── hardware
│ │ │ └── gpio.h
│ │ ├── hardware_i2c
│ │ ├── CMakeLists.txt
│ │ ├── i2c.c
│ │ └── include
│ │ │ └── hardware
│ │ │ └── i2c.h
│ │ ├── hardware_interp
│ │ ├── CMakeLists.txt
│ │ ├── include
│ │ │ └── hardware
│ │ │ │ └── interp.h
│ │ └── interp.c
│ │ ├── hardware_irq
│ │ ├── CMakeLists.txt
│ │ ├── include
│ │ │ └── hardware
│ │ │ │ └── irq.h
│ │ ├── irq.c
│ │ └── irq_handler_chain.S
│ │ ├── hardware_pio
│ │ ├── CMakeLists.txt
│ │ ├── include
│ │ │ └── hardware
│ │ │ │ ├── pio.h
│ │ │ │ └── pio_instructions.h
│ │ └── pio.c
│ │ ├── hardware_pll
│ │ ├── CMakeLists.txt
│ │ ├── include
│ │ │ └── hardware
│ │ │ │ └── pll.h
│ │ └── pll.c
│ │ ├── hardware_pwm
│ │ ├── CMakeLists.txt
│ │ └── include
│ │ │ └── hardware
│ │ │ └── pwm.h
│ │ ├── hardware_resets
│ │ ├── CMakeLists.txt
│ │ └── include
│ │ │ └── hardware
│ │ │ └── resets.h
│ │ ├── hardware_rtc
│ │ ├── CMakeLists.txt
│ │ ├── include
│ │ │ └── hardware
│ │ │ │ └── rtc.h
│ │ └── rtc.c
│ │ ├── hardware_spi
│ │ ├── CMakeLists.txt
│ │ ├── include
│ │ │ └── hardware
│ │ │ │ └── spi.h
│ │ └── spi.c
│ │ ├── hardware_sync
│ │ ├── CMakeLists.txt
│ │ ├── include
│ │ │ └── hardware
│ │ │ │ └── sync.h
│ │ └── sync.c
│ │ ├── hardware_timer
│ │ ├── CMakeLists.txt
│ │ ├── include
│ │ │ └── hardware
│ │ │ │ └── timer.h
│ │ └── timer.c
│ │ ├── hardware_uart
│ │ ├── CMakeLists.txt
│ │ ├── include
│ │ │ └── hardware
│ │ │ │ └── uart.h
│ │ └── uart.c
│ │ ├── hardware_vreg
│ │ ├── CMakeLists.txt
│ │ ├── include
│ │ │ └── hardware
│ │ │ │ └── vreg.h
│ │ └── vreg.c
│ │ ├── hardware_watchdog
│ │ ├── CMakeLists.txt
│ │ ├── include
│ │ │ └── hardware
│ │ │ │ └── watchdog.h
│ │ └── watchdog.c
│ │ ├── hardware_xosc
│ │ ├── CMakeLists.txt
│ │ ├── include
│ │ │ └── hardware
│ │ │ │ └── xosc.h
│ │ └── xosc.c
│ │ ├── pico_async_context
│ │ ├── CMakeLists.txt
│ │ ├── async_context_base.c
│ │ ├── async_context_freertos.c
│ │ ├── async_context_poll.c
│ │ ├── async_context_threadsafe_background.c
│ │ └── include
│ │ │ └── pico
│ │ │ ├── async_context.h
│ │ │ ├── async_context_base.h
│ │ │ ├── async_context_freertos.h
│ │ │ ├── async_context_poll.h
│ │ │ └── async_context_threadsafe_background.h
│ │ ├── pico_bit_ops
│ │ ├── CMakeLists.txt
│ │ └── bit_ops_aeabi.S
│ │ ├── pico_bootrom
│ │ ├── CMakeLists.txt
│ │ ├── bootrom.c
│ │ └── include
│ │ │ └── pico
│ │ │ ├── bootrom.h
│ │ │ └── bootrom
│ │ │ └── sf_table.h
│ │ ├── pico_bootsel_via_double_reset
│ │ ├── CMakeLists.txt
│ │ └── pico_bootsel_via_double_reset.c
│ │ ├── pico_btstack
│ │ ├── CMakeLists.txt
│ │ ├── btstack_flash_bank.c
│ │ ├── btstack_run_loop_async_context.c
│ │ ├── btstack_stdin_pico.c
│ │ ├── doc.h
│ │ └── include
│ │ │ └── pico
│ │ │ ├── btstack_flash_bank.h
│ │ │ └── btstack_run_loop_async_context.h
│ │ ├── pico_cxx_options
│ │ ├── CMakeLists.txt
│ │ └── doc.h
│ │ ├── pico_cyw43_arch
│ │ ├── CMakeLists.txt
│ │ ├── cyw43_arch.c
│ │ ├── cyw43_arch_freertos.c
│ │ ├── cyw43_arch_poll.c
│ │ ├── cyw43_arch_threadsafe_background.c
│ │ └── include
│ │ │ └── pico
│ │ │ ├── cyw43_arch.h
│ │ │ └── cyw43_arch
│ │ │ ├── arch_freertos.h
│ │ │ ├── arch_poll.h
│ │ │ └── arch_threadsafe_background.h
│ │ ├── pico_cyw43_driver
│ │ ├── CMakeLists.txt
│ │ ├── btstack_cyw43.c
│ │ ├── btstack_hci_transport_cyw43.c
│ │ ├── cybt_shared_bus
│ │ │ ├── CMakeLists.txt
│ │ │ ├── cybt_shared_bus.c
│ │ │ ├── cybt_shared_bus_driver.c
│ │ │ └── cybt_shared_bus_driver.h
│ │ ├── cyw43_bus_pio_spi.c
│ │ ├── cyw43_bus_pio_spi.pio
│ │ ├── cyw43_driver.c
│ │ └── include
│ │ │ ├── cyw43_configport.h
│ │ │ └── pico
│ │ │ ├── btstack_cyw43.h
│ │ │ ├── btstack_hci_transport_cyw43.h
│ │ │ └── cyw43_driver.h
│ │ ├── pico_divider
│ │ ├── CMakeLists.txt
│ │ └── divider.S
│ │ ├── pico_double
│ │ ├── CMakeLists.txt
│ │ ├── double_aeabi.S
│ │ ├── double_init_rom.c
│ │ ├── double_math.c
│ │ ├── double_none.S
│ │ ├── double_v1_rom_shim.S
│ │ └── include
│ │ │ └── pico
│ │ │ └── double.h
│ │ ├── pico_fix
│ │ ├── CMakeLists.txt
│ │ └── rp2040_usb_device_enumeration
│ │ │ ├── CMakeLists.txt
│ │ │ ├── include
│ │ │ └── pico
│ │ │ │ └── fix
│ │ │ │ └── rp2040_usb_device_enumeration.h
│ │ │ └── rp2040_usb_device_enumeration.c
│ │ ├── pico_float
│ │ ├── CMakeLists.txt
│ │ ├── float_aeabi.S
│ │ ├── float_init_rom.c
│ │ ├── float_math.c
│ │ ├── float_none.S
│ │ ├── float_v1_rom_shim.S
│ │ └── include
│ │ │ └── pico
│ │ │ └── float.h
│ │ ├── pico_i2c_slave
│ │ ├── CMakeLists.txt
│ │ ├── i2c_slave.c
│ │ └── include
│ │ │ └── pico
│ │ │ └── i2c_slave.h
│ │ ├── pico_int64_ops
│ │ ├── CMakeLists.txt
│ │ ├── include
│ │ │ └── pico
│ │ │ │ └── int64_ops.h
│ │ └── pico_int64_ops_aeabi.S
│ │ ├── pico_lwip
│ │ ├── CMakeLists.txt
│ │ ├── doc.h
│ │ ├── include
│ │ │ ├── arch
│ │ │ │ └── cc.h
│ │ │ └── pico
│ │ │ │ ├── lwip_freertos.h
│ │ │ │ └── lwip_nosys.h
│ │ ├── lwip_freertos.c
│ │ └── lwip_nosys.c
│ │ ├── pico_malloc
│ │ ├── CMakeLists.txt
│ │ ├── include
│ │ │ └── pico
│ │ │ │ └── malloc.h
│ │ └── pico_malloc.c
│ │ ├── pico_mbedtls
│ │ ├── CMakeLists.txt
│ │ └── pico_mbedtls.c
│ │ ├── pico_mem_ops
│ │ ├── CMakeLists.txt
│ │ ├── include
│ │ │ └── pico
│ │ │ │ └── mem_ops.h
│ │ ├── mem_ops.c
│ │ └── mem_ops_aeabi.S
│ │ ├── pico_multicore
│ │ ├── CMakeLists.txt
│ │ ├── include
│ │ │ └── pico
│ │ │ │ └── multicore.h
│ │ └── multicore.c
│ │ ├── pico_platform
│ │ ├── CMakeLists.txt
│ │ ├── include
│ │ │ └── pico
│ │ │ │ ├── asm_helper.S
│ │ │ │ └── platform.h
│ │ └── platform.c
│ │ ├── pico_printf
│ │ ├── CMakeLists.txt
│ │ ├── include
│ │ │ └── pico
│ │ │ │ └── printf.h
│ │ ├── printf.c
│ │ └── printf_none.S
│ │ ├── pico_rand
│ │ ├── CMakeLists.txt
│ │ ├── include
│ │ │ └── pico
│ │ │ │ └── rand.h
│ │ └── rand.c
│ │ ├── pico_runtime
│ │ ├── CMakeLists.txt
│ │ ├── include
│ │ │ └── pico
│ │ │ │ └── runtime.h
│ │ └── runtime.c
│ │ ├── pico_standard_link
│ │ ├── CMakeLists.txt
│ │ ├── binary_info.c
│ │ ├── crt0.S
│ │ ├── doc.h
│ │ ├── memmap_blocked_ram.ld
│ │ ├── memmap_copy_to_ram.ld
│ │ ├── memmap_default.ld
│ │ ├── memmap_no_flash.ld
│ │ └── new_delete.cpp
│ │ ├── pico_stdio
│ │ ├── CMakeLists.txt
│ │ ├── LICENSE
│ │ ├── include
│ │ │ └── pico
│ │ │ │ ├── stdio.h
│ │ │ │ └── stdio
│ │ │ │ └── driver.h
│ │ └── stdio.c
│ │ ├── pico_stdio_semihosting
│ │ ├── CMakeLists.txt
│ │ ├── include
│ │ │ └── pico
│ │ │ │ └── stdio_semihosting.h
│ │ └── stdio_semihosting.c
│ │ ├── pico_stdio_uart
│ │ ├── CMakeLists.txt
│ │ ├── include
│ │ │ └── pico
│ │ │ │ └── stdio_uart.h
│ │ └── stdio_uart.c
│ │ ├── pico_stdio_usb
│ │ ├── CMakeLists.txt
│ │ ├── include
│ │ │ ├── pico
│ │ │ │ ├── stdio_usb.h
│ │ │ │ └── stdio_usb
│ │ │ │ │ └── reset_interface.h
│ │ │ └── tusb_config.h
│ │ ├── reset_interface.c
│ │ ├── stdio_usb.c
│ │ └── stdio_usb_descriptors.c
│ │ ├── pico_stdlib
│ │ ├── CMakeLists.txt
│ │ └── stdlib.c
│ │ ├── pico_unique_id
│ │ ├── CMakeLists.txt
│ │ ├── include
│ │ │ └── pico
│ │ │ │ └── unique_id.h
│ │ └── unique_id.c
│ │ └── tinyusb
│ │ ├── CMakeLists.txt
│ │ └── doc.h
├── test
│ ├── CMakeLists.txt
│ ├── cmsis_test
│ │ ├── CMakeLists.txt
│ │ └── cmsis_test.c
│ ├── hardware_irq_test
│ │ ├── CMakeLists.txt
│ │ └── hardware_irq_test.c
│ ├── hardware_pwm_test
│ │ ├── CMakeLists.txt
│ │ └── hardware_pwm_test.c
│ ├── kitchen_sink
│ │ ├── CMakeLists.txt
│ │ ├── btstack_config.h
│ │ ├── kitchen_sink.c
│ │ ├── kitchen_sink_cpp.cpp
│ │ ├── lwipopts.h
│ │ └── mbedtls_config.h
│ ├── pico_divider_test
│ │ ├── CMakeLists.txt
│ │ ├── pico_divider_nesting_test.c
│ │ └── pico_divider_test.c
│ ├── pico_float_test
│ │ ├── CMakeLists.txt
│ │ ├── llvm
│ │ │ ├── LICENSE.TXT
│ │ │ ├── call_apsr.S
│ │ │ └── call_apsr.h
│ │ ├── pico_double_test.c
│ │ └── pico_float_test.c
│ ├── pico_sem_test
│ │ ├── CMakeLists.txt
│ │ └── pico_sem_test.c
│ ├── pico_stdio_test
│ │ ├── CMakeLists.txt
│ │ └── pico_stdio_test.c
│ ├── pico_stdlib_test
│ │ ├── CMakeLists.txt
│ │ └── pico_stdlib_test.c
│ ├── pico_test
│ │ ├── CMakeLists.txt
│ │ └── include
│ │ │ └── pico
│ │ │ └── test.h
│ └── pico_time_test
│ │ ├── CMakeLists.txt
│ │ └── pico_time_test.c
└── tools
│ ├── CMakeLists.txt
│ ├── FindELF2UF2.cmake
│ ├── FindPioasm.cmake
│ ├── check_configs.sh
│ ├── check_doxygen_groups.py
│ ├── elf2uf2
│ ├── CMakeLists.txt
│ ├── elf.h
│ └── main.cpp
│ ├── extract_configs.py
│ └── pioasm
│ ├── CMakeLists.txt
│ ├── ada_output.cpp
│ ├── c_sdk_output.cpp
│ ├── gen
│ ├── lexer.cpp
│ ├── location.h
│ ├── parser.cpp
│ └── parser.hpp
│ ├── hex_output.cpp
│ ├── lexer.ll
│ ├── main.cpp
│ ├── output_format.h
│ ├── parser.yy
│ ├── pio_assembler.cpp
│ ├── pio_assembler.h
│ ├── pio_disassembler.cpp
│ ├── pio_disassembler.h
│ ├── pio_types.h
│ └── python_output.cpp
└── project
└── mdk
├── AC6-flash-FLM.BAT
├── AC6-flash.BAT
├── RP2040_flash_flm.sct
├── RTE
└── Compiler
│ └── EventRecorderConf.h
├── Raspberry_Pi_Pico.FLM
├── axf2uf2.bat
├── debug_with_cmsis-dap.ini
├── debug_with_cmsis-dap_in_ram.ini
├── startup_RP2040.c
├── template.uvoptx
├── template.uvprojx
└── wrapper
├── env_wrapper.c
├── env_wrapper.h
├── hardware
└── sync.h
├── pico
└── platform.h
├── pico_base
└── pico
│ ├── config_autogen.h
│ └── version.h
├── runtime.c
├── stdio.c
└── sys
└── cdefs.h
/.gitignore:
--------------------------------------------------------------------------------
1 | # Prerequisites
2 | *.d
3 |
4 | # Object files
5 | *.o
6 | *.ko
7 | *.obj
8 | *.elf
9 |
10 | # Linker output
11 | *.ilk
12 | *.map
13 | *.exp
14 |
15 | # Precompiled Headers
16 | *.gch
17 | *.pch
18 |
19 | # Libraries
20 | *.lib
21 | *.a
22 | *.la
23 | *.lo
24 |
25 | # Shared objects (inc. Windows DLLs)
26 | *.dll
27 | *.so
28 | *.so.*
29 | *.dylib
30 |
31 | # Executables
32 | *.out
33 | *.app
34 | *.i*86
35 | *.x86_64
36 | *.hex
37 |
38 | # Debug files
39 | *.dSYM/
40 | *.su
41 | *.idb
42 | *.pdb
43 |
44 | # Kernel Module Compile Results
45 | *.mod*
46 | *.cmd
47 | .tmp_versions/
48 | modules.order
49 | Module.symvers
50 | Mkfile.old
51 | dkms.conf
52 | *.dep
53 | project/mdk/template.uvguix.*
54 | project/mdk/Objects
55 | *.scvd
56 | *.iex
57 | project/mdk/JLinkLog.txt
58 | project/mdk/template.uf2
59 | *._ac
60 | *.__i
61 | *@*
62 |
63 | project/mdk/RTE/PikaScript
64 | RTE_Components.h
65 | Pre_Include_*
66 | project/mdk/RTE/Acceleration/README.md
67 | project/mdk/RTE/Acceleration/img2c.py
68 | project/mdk/RTE/Acceleration/arm_2d.c
69 |
--------------------------------------------------------------------------------
/documents/Pictures/Debug_printf_Viewer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aladdin-Wang/RP2040_Flash_Algorithm/8a5bf5c4e8f04f3863cb179ca439e6560bcc14a3/documents/Pictures/Debug_printf_Viewer.png
--------------------------------------------------------------------------------
/documents/Pictures/EnableThePikaBeforeBuild.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aladdin-Wang/RP2040_Flash_Algorithm/8a5bf5c4e8f04f3863cb179ca439e6560bcc14a3/documents/Pictures/EnableThePikaBeforeBuild.png
--------------------------------------------------------------------------------
/documents/Pictures/Reset_Pico.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aladdin-Wang/RP2040_Flash_Algorithm/8a5bf5c4e8f04f3863cb179ca439e6560bcc14a3/documents/Pictures/Reset_Pico.png
--------------------------------------------------------------------------------
/documents/Pictures/enable_lcd_1in3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aladdin-Wang/RP2040_Flash_Algorithm/8a5bf5c4e8f04f3863cb179ca439e6560bcc14a3/documents/Pictures/enable_lcd_1in3
--------------------------------------------------------------------------------
/pico-sdk/.github/pull_request_template.md:
--------------------------------------------------------------------------------
1 | _Instructions: (please delete)_
2 | - _please do not submit against `master`, use `develop` instead_
3 | - _please make sure there is an associated issue for your PR, and reference it via "Fixes #num" in the description_
4 | - _please enter a detailed description_
5 |
--------------------------------------------------------------------------------
/pico-sdk/.github/workflows/choco_packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/pico-sdk/.github/workflows/cmake.yml:
--------------------------------------------------------------------------------
1 | name: CMake
2 | on: [push, pull_request]
3 |
4 | env:
5 | # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
6 | BUILD_TYPE: Release
7 |
8 | jobs:
9 | build:
10 | if: github.repository_owner == 'raspberrypi'
11 | runs-on: [self-hosted, Linux, X64]
12 |
13 | steps:
14 | - name: Clean workspace
15 | run: |
16 | echo "Cleaning up previous run"
17 | rm -rf "${{ github.workspace }}"
18 | mkdir -p "${{ github.workspace }}"
19 |
20 | - name: Checkout repo
21 | uses: actions/checkout@v2
22 |
23 | - name: Checkout submodules
24 | run: git submodule update --init
25 |
26 | - name: Create Build Environment
27 | # Some projects don't allow in-source building, so create a separate build directory
28 | # We'll use this as our working directory for all subsequent commands
29 | run: cmake -E make_directory ${{github.workspace}}/build
30 |
31 | - name: Configure CMake
32 | # Use a bash shell so we can use the same syntax for environment variable
33 | # access regardless of the host operating system
34 | shell: bash
35 | working-directory: ${{github.workspace}}/build
36 | # Note the current convention is to use the -S and -B options here to specify source
37 | # and build directories, but this is only available with CMake 3.13 and higher.
38 | # The CMake binaries on the Github Actions machines are (as of this writing) 3.12
39 | run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DPICO_SDK_TESTS_ENABLED=1
40 |
41 | - name: Get core count
42 | id: core_count
43 | run : cat /proc/cpuinfo | grep processor | wc -l
44 |
45 | - name: Build
46 | working-directory: ${{github.workspace}}/build
47 | shell: bash
48 | # Execute the build. You can specify a specific target with "--target "
49 | run: cmake --build . --config $BUILD_TYPE --parallel ${{steps.core_count.outputs.output}}
50 |
--------------------------------------------------------------------------------
/pico-sdk/.github/workflows/macOS.yml:
--------------------------------------------------------------------------------
1 | name: Build on macOS
2 | on:
3 | workflow_dispatch:
4 | push:
5 | branches:
6 | - 'develop'
7 | - 'master'
8 | - 'test_workflow'
9 |
10 | jobs:
11 | build:
12 | runs-on: macos-12
13 | steps:
14 | - name: Clean workspace
15 | run: |
16 | echo "Cleaning up previous run"
17 | rm -rf "${{ github.workspace }}"
18 | mkdir -p "${{ github.workspace }}"
19 | - name: Checkout repo
20 | uses: actions/checkout@v3
21 | - name: Checkout submodules
22 | run: git submodule update --init
23 | - name: Install dependencies
24 | run: |
25 | brew install cmake
26 | brew tap ArmMbed/homebrew-formulae
27 | brew install arm-none-eabi-gcc
28 |
29 | - name: Build Project
30 | # bash required otherwise this mysteriously (no error) fails at "Generating cyw43_bus_pio_spi.pio.h"
31 | shell: bash
32 | run: |
33 | mkdir build
34 | cd build
35 | cmake .. -G "Unix Makefiles" -DPICO_SDK_TESTS_ENABLED=1 -DCMAKE_BUILD_TYPE=Debug -DPICO_BOARD=pico_w
36 | cmake --build .
37 |
38 | - name: Build Native
39 | # bash required otherwise this mysteriously (no error) fails at "Generating cyw43_bus_pio_spi.pio.h"
40 | shell: bash
41 | run: |
42 | mkdir build_native
43 | cd build_native
44 | cmake .. -G "Unix Makefiles" -DPICO_SDK_TESTS_ENABLED=1 -DCMAKE_BUILD_TYPE=Debug -DPICO_PLATFORM=host
45 | cmake --build .
46 |
--------------------------------------------------------------------------------
/pico-sdk/.github/workflows/windows.yml:
--------------------------------------------------------------------------------
1 | name: Build on Windows
2 | on:
3 | workflow_dispatch:
4 | push:
5 | branches:
6 | - 'develop'
7 | - 'master'
8 | - 'test_workflow'
9 |
10 | jobs:
11 | build:
12 | runs-on: windows-2022
13 | steps:
14 | - name: Clean workspace
15 | shell: bash
16 | run: |
17 | echo "Cleaning up previous run"
18 | rm -rf "${{ github.workspace }}/pico-sdk"
19 | - name: Checkout repo
20 | uses: actions/checkout@v3
21 | - name: Checkout submodules
22 | run: git submodule update --init
23 | - name: Install dependencies
24 | run: choco install .github/workflows/choco_packages.config
25 |
26 | - name: Build Project
27 | # bash required otherwise this mysteriously (no error) fails at "Generating cyw43_bus_pio_spi.pio.h"
28 | shell: bash
29 | run: |
30 | mkdir build
31 | cd build
32 | cmake .. -G Ninja -DPICO_SDK_TESTS_ENABLED=1 -DCMAKE_BUILD_TYPE=Debug -DPICO_BOARD=pico_w
33 | cmake --build .
34 |
--------------------------------------------------------------------------------
/pico-sdk/.gitignore:
--------------------------------------------------------------------------------
1 | .idea
2 | .vscode
3 | cmake-*
4 | .DS_Store
5 | build
6 |
--------------------------------------------------------------------------------
/pico-sdk/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "tinyusb"]
2 | path = lib/tinyusb
3 | url = https://github.com/hathach/tinyusb.git
4 | [submodule "lib/cyw43-driver"]
5 | path = lib/cyw43-driver
6 | url = https://github.com/georgerobotics/cyw43-driver.git
7 | [submodule "lib/lwip"]
8 | path = lib/lwip
9 | url = https://github.com/lwip-tcpip/lwip.git
10 | [submodule "lib/mbedtls"]
11 | path = lib/mbedtls
12 | url = https://github.com/Mbed-TLS/mbedtls.git
13 | [submodule "lib/btstack"]
14 | path = lib/btstack
15 | url = https://github.com/bluekitchen/btstack.git
16 |
--------------------------------------------------------------------------------
/pico-sdk/LICENSE.TXT:
--------------------------------------------------------------------------------
1 | Copyright 2020 (c) 2020 Raspberry Pi (Trading) Ltd.
2 |
3 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
4 | following conditions are met:
5 |
6 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following
7 | disclaimer.
8 |
9 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
10 | disclaimer in the documentation and/or other materials provided with the distribution.
11 |
12 | 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products
13 | derived from this software without specific prior written permission.
14 |
15 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
16 | INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
18 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
19 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
20 | WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
21 | THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------------------
/pico-sdk/cmake/Platform/PICO.cmake:
--------------------------------------------------------------------------------
1 | # this is included because toolchain file sets SYSTEM_NAME=PICO
2 |
3 | set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE)
4 | set(CMAKE_EXECUTABLE_SUFFIX .elf)
--------------------------------------------------------------------------------
/pico-sdk/cmake/pico_pre_load_platform.cmake:
--------------------------------------------------------------------------------
1 | # PICO_CMAKE_CONFIG: PICO_PLATFORM, platform to build for e.g. rp2040/host, default=rp2040 or environment value, group=build
2 | if (DEFINED ENV{PICO_PLATFORM} AND (NOT PICO_PLATFORM))
3 | set(PICO_PLATFORM $ENV{PICO_PLATFORM})
4 | message("Using PICO_PLATFORM from environment ('${PICO_PLATFORM}')")
5 | else()
6 | if (NOT PICO_PLATFORM)
7 | set(PICO_PLATFORM "rp2040")
8 | pico_message("Defaulting PICO_PLATFORM to ${PICO_PLATFORM} since not specified.")
9 | else()
10 | message("PICO platform is ${PICO_PLATFORM}.")
11 | endif()
12 | endif ()
13 |
14 | set(PICO_PLATFORM ${PICO_PLATFORM} CACHE STRING "PICO Build platform (e.g. rp2040, host)")
15 |
16 | # PICO_CMAKE_CONFIG: PICO_CMAKE_PRELOAD_PLATFORM_FILE, custom CMake file to use to set up the platform environment, default=none, group=build
17 | set(PICO_CMAKE_PRELOAD_PLATFORM_FILE "" CACHE INTERNAL "")
18 | set(PICO_CMAKE_PRELOAD_PLATFORM_DIR "${CMAKE_CURRENT_LIST_DIR}/preload/platforms" CACHE INTERNAL "")
19 |
20 | if (NOT PICO_CMAKE_PRELOAD_PLATFORM_FILE)
21 | set(PICO_CMAKE_PRELOAD_PLATFORM_FILE ${PICO_CMAKE_PRELOAD_PLATFORM_DIR}/${PICO_PLATFORM}.cmake CACHE INTERNAL "")
22 | endif ()
23 |
24 | if (NOT EXISTS "${PICO_CMAKE_PRELOAD_PLATFORM_FILE}")
25 | message(FATAL_ERROR "${PICO_CMAKE_PRELOAD_PLATFORM_FILE} does not exist. \
26 | Either specify a valid PICO_PLATFORM (or PICO_CMAKE_PRELOAD_PLATFORM_FILE).")
27 | endif ()
28 |
29 | include(${PICO_CMAKE_PRELOAD_PLATFORM_FILE})
30 |
--------------------------------------------------------------------------------
/pico-sdk/cmake/pico_utils.cmake:
--------------------------------------------------------------------------------
1 | function(pico_message param)
2 | if (${ARGC} EQUAL 1)
3 | message("${param}")
4 | return()
5 | endif ()
6 |
7 | if (NOT ${ARGC} EQUAL 2)
8 | message(FATAL_ERROR "Expect at most 2 arguments")
9 | endif ()
10 | message("${param}" "${ARGV1}")
11 | endfunction()
12 |
13 | macro(assert VAR MSG)
14 | if (NOT ${VAR})
15 | message(FATAL_ERROR "${MSG}")
16 | endif ()
17 | endmacro()
18 |
19 | function(pico_find_in_paths OUT PATHS NAME)
20 | foreach(PATH IN LISTS ${PATHS})
21 | if (EXISTS ${PATH}/${NAME})
22 | get_filename_component(FULLNAME ${PATH}/${NAME} ABSOLUTE)
23 | set(${OUT} ${FULLNAME} PARENT_SCOPE)
24 | return()
25 | endif()
26 | endforeach()
27 | set(${OUT} "" PARENT_SCOPE)
28 | endfunction()
--------------------------------------------------------------------------------
/pico-sdk/cmake/preload/platforms/host.cmake:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aladdin-Wang/RP2040_Flash_Algorithm/8a5bf5c4e8f04f3863cb179ca439e6560bcc14a3/pico-sdk/cmake/preload/platforms/host.cmake
--------------------------------------------------------------------------------
/pico-sdk/cmake/preload/platforms/pico/pico.cmake:
--------------------------------------------------------------------------------
1 | if (NOT (DEFINED PICO_COMPILER OR DEFINED CMAKE_TOOLCHAIN_FILE))
2 | pico_message("Defaulting PICO platform compiler to pico_arm_gcc since not specified.")
3 | set(PICO_COMPILER "pico_arm_gcc")
4 | endif ()
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/pico-sdk/cmake/preload/platforms/rp2040.cmake:
--------------------------------------------------------------------------------
1 | include(${CMAKE_CURRENT_LIST_DIR}/pico/pico.cmake)
--------------------------------------------------------------------------------
/pico-sdk/cmake/preload/toolchains/find_compiler.cmake:
--------------------------------------------------------------------------------
1 | # Toolchain file is processed multiple times, however, it cannot access CMake cache on some runs.
2 | # We store the search path in an environment variable so that we can always access it.
3 | if (NOT "${PICO_TOOLCHAIN_PATH}" STREQUAL "")
4 | set(ENV{PICO_TOOLCHAIN_PATH} "${PICO_TOOLCHAIN_PATH}")
5 | endif ()
6 |
7 | # Find the compiler executable and store its path in a cache entry ${compiler_path}.
8 | # If not found, issue a fatal message and stop processing. PICO_TOOLCHAIN_PATH can be provided from
9 | # commandline as additional search path.
10 | function(pico_find_compiler compiler_path compiler_exe)
11 | # Search user provided path first.
12 | find_program(
13 | ${compiler_path} ${compiler_exe}
14 | PATHS ENV PICO_TOOLCHAIN_PATH
15 | PATH_SUFFIXES bin
16 | NO_DEFAULT_PATH
17 | )
18 |
19 | # If not then search system paths.
20 | if ("${${compiler_path}}" STREQUAL "${compiler_path}-NOTFOUND")
21 | if (DEFINED ENV{PICO_TOOLCHAIN_PATH})
22 | message(WARNING "PICO_TOOLCHAIN_PATH specified ($ENV{PICO_TOOLCHAIN_PATH}), but ${compiler_exe} not found there")
23 | endif()
24 | find_program(${compiler_path} ${compiler_exe})
25 | endif ()
26 | if ("${${compiler_path}}" STREQUAL "${compiler_path}-NOTFOUND")
27 | set(PICO_TOOLCHAIN_PATH "" CACHE PATH "Path to search for compiler.")
28 | message(FATAL_ERROR "Compiler '${compiler_exe}' not found, you can specify search path with\
29 | \"PICO_TOOLCHAIN_PATH\".")
30 | endif ()
31 | endfunction()
32 |
--------------------------------------------------------------------------------
/pico-sdk/cmake/preload/toolchains/set_flags.cmake:
--------------------------------------------------------------------------------
1 |
2 | get_property(IS_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE)
3 | foreach(LANG IN ITEMS C CXX ASM)
4 | set(CMAKE_${LANG}_FLAGS_INIT "${ARM_TOOLCHAIN_COMMON_FLAGS}")
5 | if (PICO_DEOPTIMIZED_DEBUG)
6 | set(CMAKE_${LANG}_FLAGS_DEBUG_INIT "-O0")
7 | else()
8 | set(CMAKE_${LANG}_FLAGS_DEBUG_INIT "-Og")
9 | endif()
10 | set(CMAKE_${LANG}_LINK_FLAGS "-Wl,--build-id=none")
11 |
12 | # try_compile is where the feature testing is done, and at that point,
13 | # pico_standard_link is not ready to be linked in to provide essential
14 | # functions like _exit. So pass -nostdlib so it doesn't link in an exit()
15 | # function at all.
16 | if(IS_IN_TRY_COMPILE)
17 | set(CMAKE_${LANG}_LINK_FLAGS "${CMAKE_${LANG}_LINK_FLAGS} -nostdlib")
18 | endif()
19 | endforeach()
20 |
--------------------------------------------------------------------------------
/pico-sdk/docs/examples.md:
--------------------------------------------------------------------------------
1 | ## Examples Index {#examples_page}
2 |
3 | This page links to the various example code fragments in this documentation. For more complete examples, please see the [pico-examples](https://github.com/raspberrypi/pico-examples) repository, which contains complete buildable projects.
4 |
5 | - [RTC example](@ref rtc_example)
6 | - [UART example](@ref uart_example)
7 | - [ADC example](@ref adc_example)
8 | - [I2C example](@ref i2c_example)
9 | - [Clock example](@ref clock_example)
10 | - [Timer example](@ref timer_example)
11 | - [Flash programming example](@ref flash_example)
12 | - [Watchdog example](@ref watchdog_example)
13 | - [Divider example](@ref divider_example)
14 | - [PWM example](@ref pwm_example)
15 | - [Multicore example](@ref multicore_example)
16 | - [Reset example](@ref reset_example)
17 |
18 |
19 | All examples are "Copyright (c) 2020 Raspberry Pi (Trading) Ltd", and are released under a 3-Clause BSD licence. Briefly, this means you are free to use the example code
20 | as long as you retain the copyright notice. Full details on the licence can be found [here](https://opensource.org/licenses/BSD-3-Clause).
21 |
22 |
--------------------------------------------------------------------------------
/pico-sdk/docs/footer.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |