Add RISC-V support, GCC 14 move (#2491)
* Adds RISC-V compilation option to the IDE and Platform.IO. * Build RP2350-RISCV libpico, libbearssl * Fix RP2350 BearSSL library (was copied from RP2040, now built for M33) * New GCC 14.2 toolchain is required (12.4 RISC-V support is borked) * Newlib locking fixed prototypes * Manually force all runtime init code into RP2350 binaries * Add RISC-V to CI * Remove RP2350 BOOT2.S files, binaries (not used) * Clean up minor GCC 14.x warnings * Add RP2350-RISCV OTA build, link * Add RISC-V FreeRTOS files (configuration still not running, but builds) * Add basic documentation
This commit is contained in:
parent
f49d058477
commit
f6973fc64d
89 changed files with 11240 additions and 457 deletions
33
.github/workflows/pull-request.yml
vendored
33
.github/workflows/pull-request.yml
vendored
|
|
@ -17,7 +17,7 @@ jobs:
|
|||
with:
|
||||
submodules: false
|
||||
- name: Run codespell
|
||||
uses: codespell-project/actions-codespell@master
|
||||
uses: codespell-project/actions-codespell@v2
|
||||
with:
|
||||
skip: ./ArduinoCore-API,./libraries/ESP8266SdFat,./libraries/Adafruit_TinyUSB_Arduino,./libraries/LittleFS/lib,./tools/pyserial,./pico-sdk,./.github,./docs/i2s.rst,./cores/rp2040/api,./libraries/FreeRTOS,./tools/libbearssl/bearssl,./include,./libraries/WiFi/examples/BearSSL_Server,./ota/uzlib,./libraries/http-parser/lib,./libraries/WebServer/examples/HelloServerBearSSL/HelloServerBearSSL.ino,./libraries/HTTPUpdateServer/examples/SecureBearSSLUpdater/SecureBearSSLUpdater.ino,./.git,./libraries/FatFS/lib/fatfs,./libraries/FatFS/src/diskio.h,./libraries/FatFS/src/ff.cpp,./libraries/FatFS/src/ffconf.h,./libraries/FatFS/src/ffsystem.cpp,./libraries/FatFS/src/ff.h,./libraries/lwIP_WINC1500/src/driver,./libraries/lwIP_WINC1500/src/common,./libraries/lwIP_WINC1500/src/bus_wrapper,./libraries/lwIP_WINC1500/src/spi_flash
|
||||
ignore_words_list: ser,dout,shiftIn,acount
|
||||
|
|
@ -101,6 +101,37 @@ jobs:
|
|||
cd ..
|
||||
bash ./tests/build-rp2350.sh
|
||||
|
||||
# Build all rp2350-riscv examples on linux (core and Arduino IDE)
|
||||
build-rp2350-riscv-linux:
|
||||
name: Build RP2350-RISCV ${{ matrix.chunk }}
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
chunk: [0, 1, 2, 3, 4, 5]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: true
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.x'
|
||||
- name: Cache Linux toolchain
|
||||
id: cache-linux
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: ./tools/dist
|
||||
key: ${{ runner.os }}-${{ hashFiles('package/package_pico_index.template.json', 'tests/common.sh') }}
|
||||
- name: Build Sketches
|
||||
env:
|
||||
BUILD_PARITY: custom
|
||||
mod: 6
|
||||
rem: ${{ matrix.chunk }}
|
||||
run: |
|
||||
cd pico-sdk
|
||||
git submodule update --init
|
||||
cd ..
|
||||
bash ./tests/build-rp2350-riscv.sh
|
||||
|
||||
# Build TinyUSB examples, requires custom build command line
|
||||
build-tinyusb:
|
||||
name: Build TinyUSB Examples
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
Raspberry Pi Pico Arduino core, for all RP2040 and RP2350 boards
|
||||
|
||||
This is a port of Arduino to the RP2040 (Raspberry Pi Pico processor) and RP2350 (Raspberry Pi Pico 2 processor). It uses the bare Raspberry Pi Pico SDK and a custom GCC 12.3/Newlib 4.0 toolchain.
|
||||
This is a port of Arduino to the RP2040 (Raspberry Pi Pico processor) and RP2350 (Raspberry Pi Pico 2 processor). It uses the bare Raspberry Pi Pico SDK and a custom GCC 14.2/Newlib 4.3 toolchain and supports ARM and RISC-V cores.
|
||||
|
||||
# Documentation
|
||||
See https://arduino-pico.readthedocs.io/en/latest/ along with the examples for more detailed usage information.
|
||||
|
|
@ -126,6 +126,7 @@ Read the [Contributing Guide](https://github.com/earlephilhower/arduino-pico/blo
|
|||
* Peripherals: SPI master/slave, Wire(I2C) master/slave, dual UART, emulated EEPROM, I2S audio input/output, Servo
|
||||
* printf (i.e. debug) output over USB serial
|
||||
* Transparent use of PSRAM globals and heap (RP2350 only)
|
||||
* ARM or RISC-V (Hazard3) support for The RP2350
|
||||
|
||||
The RP2040 PIO state machines (SMs) are used to generate jitter-free:
|
||||
* Servos
|
||||
|
|
|
|||
229
boards.txt
229
boards.txt
|
|
@ -9,6 +9,7 @@ menu.psramcs=PSRAM CS
|
|||
menu.psram=PSRAM Size
|
||||
menu.psramfreq=PSRAM Speed
|
||||
menu.freq=CPU Speed
|
||||
menu.arch=CPU Architecture
|
||||
menu.opt=Optimize
|
||||
menu.rtti=RTTI
|
||||
menu.stackprotect=Stack Protector
|
||||
|
|
@ -598,10 +599,6 @@ rpipico2.build.usbvid=-DUSBD_VID=0x2e8a
|
|||
rpipico2.build.usbpid=-DUSBD_PID=0x000f
|
||||
rpipico2.build.usbpwr=-DUSBD_MAX_POWER_MA=250
|
||||
rpipico2.build.board=RASPBERRY_PI_PICO_2
|
||||
rpipico2.build.chip=rp2350
|
||||
rpipico2.build.toolchain=arm-none-eabi
|
||||
rpipico2.build.toolchainopts=-mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse
|
||||
rpipico2.build.uf2family=--family rp2350-arm-s --abs-block
|
||||
rpipico2.build.variant=rpipico2
|
||||
rpipico2.upload.maximum_size=4194304
|
||||
rpipico2.upload.wait_for_upload_port=true
|
||||
|
|
@ -612,7 +609,7 @@ rpipico2.build.f_cpu=125000000
|
|||
rpipico2.build.led=
|
||||
rpipico2.build.core=rp2040
|
||||
rpipico2.build.ldscript=memmap_default.ld
|
||||
rpipico2.build.boot2=boot2_generic_03h_2_padded_checksum
|
||||
rpipico2.build.boot2=none
|
||||
rpipico2.build.usb_manufacturer="Raspberry Pi"
|
||||
rpipico2.build.usb_product="Pico 2"
|
||||
rpipico2.build.psram_length=0x000000
|
||||
|
|
@ -672,6 +669,16 @@ rpipico2.menu.flash.4194304_3145728.build.flash_length=1040384
|
|||
rpipico2.menu.flash.4194304_3145728.build.eeprom_start=272621568
|
||||
rpipico2.menu.flash.4194304_3145728.build.fs_start=269475840
|
||||
rpipico2.menu.flash.4194304_3145728.build.fs_end=272621568
|
||||
rpipico2.menu.arch.arm=ARM
|
||||
rpipico2.menu.arch.arm.build.chip=rp2350
|
||||
rpipico2.menu.arch.arm.build.toolchain=arm-none-eabi
|
||||
rpipico2.menu.arch.arm.build.toolchainopts=-mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse
|
||||
rpipico2.menu.arch.arm.build.uf2family=--family rp2350-arm-s --abs-block
|
||||
rpipico2.menu.arch.riscv=RISC-V
|
||||
rpipico2.menu.arch.riscv.build.chip=rp2350-riscv
|
||||
rpipico2.menu.arch.riscv.build.toolchain=riscv32-unknown-elf
|
||||
rpipico2.menu.arch.riscv.build.toolchainopts=-march=rv32imac_zicsr_zifencei_zba_zbb_zbs_zbkb -mabi=ilp32
|
||||
rpipico2.menu.arch.riscv.build.uf2family=--family rp2350-riscv --abs-block
|
||||
rpipico2.menu.freq.150=150 MHz
|
||||
rpipico2.menu.freq.150.build.f_cpu=150000000L
|
||||
rpipico2.menu.freq.50=50 MHz
|
||||
|
|
@ -5199,10 +5206,6 @@ adafruit_feather_rp2350_hstx.build.usbvid=-DUSBD_VID=0x239a
|
|||
adafruit_feather_rp2350_hstx.build.usbpid=-DUSBD_PID=0x814f
|
||||
adafruit_feather_rp2350_hstx.build.usbpwr=-DUSBD_MAX_POWER_MA=250
|
||||
adafruit_feather_rp2350_hstx.build.board=ADAFRUIT_FEATHER_RP2350_HSTX
|
||||
adafruit_feather_rp2350_hstx.build.chip=rp2350
|
||||
adafruit_feather_rp2350_hstx.build.toolchain=arm-none-eabi
|
||||
adafruit_feather_rp2350_hstx.build.toolchainopts=-mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse
|
||||
adafruit_feather_rp2350_hstx.build.uf2family=--family rp2350-arm-s --abs-block
|
||||
adafruit_feather_rp2350_hstx.build.variant=adafruit_feather_rp2350_hstx
|
||||
adafruit_feather_rp2350_hstx.upload.maximum_size=8388608
|
||||
adafruit_feather_rp2350_hstx.upload.wait_for_upload_port=true
|
||||
|
|
@ -5213,7 +5216,7 @@ adafruit_feather_rp2350_hstx.build.f_cpu=125000000
|
|||
adafruit_feather_rp2350_hstx.build.led=
|
||||
adafruit_feather_rp2350_hstx.build.core=rp2040
|
||||
adafruit_feather_rp2350_hstx.build.ldscript=memmap_default.ld
|
||||
adafruit_feather_rp2350_hstx.build.boot2=boot2_w25q080_2_padded_checksum
|
||||
adafruit_feather_rp2350_hstx.build.boot2=none
|
||||
adafruit_feather_rp2350_hstx.build.usb_manufacturer="Adafruit"
|
||||
adafruit_feather_rp2350_hstx.build.usb_product="Feather RP2350 HSTX"
|
||||
adafruit_feather_rp2350_hstx.build.psram_length=0x000000
|
||||
|
|
@ -5301,6 +5304,16 @@ adafruit_feather_rp2350_hstx.menu.flash.8388608_7340032.build.flash_length=10403
|
|||
adafruit_feather_rp2350_hstx.menu.flash.8388608_7340032.build.eeprom_start=276815872
|
||||
adafruit_feather_rp2350_hstx.menu.flash.8388608_7340032.build.fs_start=269475840
|
||||
adafruit_feather_rp2350_hstx.menu.flash.8388608_7340032.build.fs_end=276815872
|
||||
adafruit_feather_rp2350_hstx.menu.arch.arm=ARM
|
||||
adafruit_feather_rp2350_hstx.menu.arch.arm.build.chip=rp2350
|
||||
adafruit_feather_rp2350_hstx.menu.arch.arm.build.toolchain=arm-none-eabi
|
||||
adafruit_feather_rp2350_hstx.menu.arch.arm.build.toolchainopts=-mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse
|
||||
adafruit_feather_rp2350_hstx.menu.arch.arm.build.uf2family=--family rp2350-arm-s --abs-block
|
||||
adafruit_feather_rp2350_hstx.menu.arch.riscv=RISC-V
|
||||
adafruit_feather_rp2350_hstx.menu.arch.riscv.build.chip=rp2350-riscv
|
||||
adafruit_feather_rp2350_hstx.menu.arch.riscv.build.toolchain=riscv32-unknown-elf
|
||||
adafruit_feather_rp2350_hstx.menu.arch.riscv.build.toolchainopts=-march=rv32imac_zicsr_zifencei_zba_zbb_zbs_zbkb -mabi=ilp32
|
||||
adafruit_feather_rp2350_hstx.menu.arch.riscv.build.uf2family=--family rp2350-riscv --abs-block
|
||||
adafruit_feather_rp2350_hstx.menu.freq.150=150 MHz
|
||||
adafruit_feather_rp2350_hstx.menu.freq.150.build.f_cpu=150000000L
|
||||
adafruit_feather_rp2350_hstx.menu.freq.50=50 MHz
|
||||
|
|
@ -5409,10 +5422,6 @@ adafruit_feather_rp2350_hstx.menu.ipbtstack.ipv4btcblebig.build.libpicowdefs=-DL
|
|||
adafruit_feather_rp2350_hstx.menu.ipbtstack.ipv4ipv6btcblebig=IPv4 + IPv6 + Bluetooth - 32K
|
||||
adafruit_feather_rp2350_hstx.menu.ipbtstack.ipv4ipv6btcblebig.build.libpicow=libipv4-ipv6-bt-big.a
|
||||
adafruit_feather_rp2350_hstx.menu.ipbtstack.ipv4ipv6btcblebig.build.libpicowdefs=-DLWIP_IPV6=1 -DLWIP_IPV4=1 -DENABLE_CLASSIC=1 -DENABLE_BLE=1 -D__LWIP_MEMMULT=2
|
||||
adafruit_feather_rp2350_hstx.menu.boot2.boot2_w25q080_2_padded_checksum=W25Q080 QSPI /2
|
||||
adafruit_feather_rp2350_hstx.menu.boot2.boot2_w25q080_2_padded_checksum.build.boot2=boot2_w25q080_2_padded_checksum
|
||||
adafruit_feather_rp2350_hstx.menu.boot2.boot2_w25q080_4_padded_checksum=W25Q080 QSPI /4
|
||||
adafruit_feather_rp2350_hstx.menu.boot2.boot2_w25q080_4_padded_checksum.build.boot2=boot2_w25q080_4_padded_checksum
|
||||
adafruit_feather_rp2350_hstx.menu.uploadmethod.default=Default (UF2)
|
||||
adafruit_feather_rp2350_hstx.menu.uploadmethod.default.build.ram_length=512k
|
||||
adafruit_feather_rp2350_hstx.menu.uploadmethod.default.build.debugscript=picoprobe_cmsis_dap.tcl
|
||||
|
|
@ -9060,10 +9069,6 @@ cytron_iriv_io_controller.build.usbvid=-DUSBD_VID=0x2e8a
|
|||
cytron_iriv_io_controller.build.usbpid=-DUSBD_PID=0x1093
|
||||
cytron_iriv_io_controller.build.usbpwr=-DUSBD_MAX_POWER_MA=250
|
||||
cytron_iriv_io_controller.build.board=CYTRON_IRIV_IO_CONTROLLER
|
||||
cytron_iriv_io_controller.build.chip=rp2350
|
||||
cytron_iriv_io_controller.build.toolchain=arm-none-eabi
|
||||
cytron_iriv_io_controller.build.toolchainopts=-mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse
|
||||
cytron_iriv_io_controller.build.uf2family=--family rp2350-arm-s --abs-block
|
||||
cytron_iriv_io_controller.build.variant=cytron_iriv_io_controller
|
||||
cytron_iriv_io_controller.upload.maximum_size=2097152
|
||||
cytron_iriv_io_controller.upload.wait_for_upload_port=true
|
||||
|
|
@ -9074,7 +9079,7 @@ cytron_iriv_io_controller.build.f_cpu=125000000
|
|||
cytron_iriv_io_controller.build.led=
|
||||
cytron_iriv_io_controller.build.core=rp2040
|
||||
cytron_iriv_io_controller.build.ldscript=memmap_default.ld
|
||||
cytron_iriv_io_controller.build.boot2=boot2_w25q080_2_padded_checksum
|
||||
cytron_iriv_io_controller.build.boot2=none
|
||||
cytron_iriv_io_controller.build.usb_manufacturer="Cytron"
|
||||
cytron_iriv_io_controller.build.usb_product="IRIV IO Controller"
|
||||
cytron_iriv_io_controller.build.psram_length=0x000000
|
||||
|
|
@ -9120,6 +9125,16 @@ cytron_iriv_io_controller.menu.flash.2097152_1048576.build.flash_length=1040384
|
|||
cytron_iriv_io_controller.menu.flash.2097152_1048576.build.eeprom_start=270524416
|
||||
cytron_iriv_io_controller.menu.flash.2097152_1048576.build.fs_start=269475840
|
||||
cytron_iriv_io_controller.menu.flash.2097152_1048576.build.fs_end=270524416
|
||||
cytron_iriv_io_controller.menu.arch.arm=ARM
|
||||
cytron_iriv_io_controller.menu.arch.arm.build.chip=rp2350
|
||||
cytron_iriv_io_controller.menu.arch.arm.build.toolchain=arm-none-eabi
|
||||
cytron_iriv_io_controller.menu.arch.arm.build.toolchainopts=-mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse
|
||||
cytron_iriv_io_controller.menu.arch.arm.build.uf2family=--family rp2350-arm-s --abs-block
|
||||
cytron_iriv_io_controller.menu.arch.riscv=RISC-V
|
||||
cytron_iriv_io_controller.menu.arch.riscv.build.chip=rp2350-riscv
|
||||
cytron_iriv_io_controller.menu.arch.riscv.build.toolchain=riscv32-unknown-elf
|
||||
cytron_iriv_io_controller.menu.arch.riscv.build.toolchainopts=-march=rv32imac_zicsr_zifencei_zba_zbb_zbs_zbkb -mabi=ilp32
|
||||
cytron_iriv_io_controller.menu.arch.riscv.build.uf2family=--family rp2350-riscv --abs-block
|
||||
cytron_iriv_io_controller.menu.freq.150=150 MHz
|
||||
cytron_iriv_io_controller.menu.freq.150.build.f_cpu=150000000L
|
||||
cytron_iriv_io_controller.menu.freq.50=50 MHz
|
||||
|
|
@ -9973,10 +9988,6 @@ cytron_motion_2350_pro.build.usbvid=-DUSBD_VID=0x2e8a
|
|||
cytron_motion_2350_pro.build.usbpid=-DUSBD_PID=0x1096
|
||||
cytron_motion_2350_pro.build.usbpwr=-DUSBD_MAX_POWER_MA=250
|
||||
cytron_motion_2350_pro.build.board=CYTRON_MOTION_2350_PRO
|
||||
cytron_motion_2350_pro.build.chip=rp2350
|
||||
cytron_motion_2350_pro.build.toolchain=arm-none-eabi
|
||||
cytron_motion_2350_pro.build.toolchainopts=-mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse
|
||||
cytron_motion_2350_pro.build.uf2family=--family rp2350-arm-s --abs-block
|
||||
cytron_motion_2350_pro.build.variant=cytron_motion_2350_pro
|
||||
cytron_motion_2350_pro.upload.maximum_size=2097152
|
||||
cytron_motion_2350_pro.upload.wait_for_upload_port=true
|
||||
|
|
@ -9987,7 +9998,7 @@ cytron_motion_2350_pro.build.f_cpu=125000000
|
|||
cytron_motion_2350_pro.build.led=
|
||||
cytron_motion_2350_pro.build.core=rp2040
|
||||
cytron_motion_2350_pro.build.ldscript=memmap_default.ld
|
||||
cytron_motion_2350_pro.build.boot2=boot2_generic_03h_2_padded_checksum
|
||||
cytron_motion_2350_pro.build.boot2=none
|
||||
cytron_motion_2350_pro.build.usb_manufacturer="Cytron"
|
||||
cytron_motion_2350_pro.build.usb_product="Motion 2350 Pro"
|
||||
cytron_motion_2350_pro.build.psram_length=0x000000
|
||||
|
|
@ -10033,6 +10044,16 @@ cytron_motion_2350_pro.menu.flash.2097152_1048576.build.flash_length=1040384
|
|||
cytron_motion_2350_pro.menu.flash.2097152_1048576.build.eeprom_start=270524416
|
||||
cytron_motion_2350_pro.menu.flash.2097152_1048576.build.fs_start=269475840
|
||||
cytron_motion_2350_pro.menu.flash.2097152_1048576.build.fs_end=270524416
|
||||
cytron_motion_2350_pro.menu.arch.arm=ARM
|
||||
cytron_motion_2350_pro.menu.arch.arm.build.chip=rp2350
|
||||
cytron_motion_2350_pro.menu.arch.arm.build.toolchain=arm-none-eabi
|
||||
cytron_motion_2350_pro.menu.arch.arm.build.toolchainopts=-mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse
|
||||
cytron_motion_2350_pro.menu.arch.arm.build.uf2family=--family rp2350-arm-s --abs-block
|
||||
cytron_motion_2350_pro.menu.arch.riscv=RISC-V
|
||||
cytron_motion_2350_pro.menu.arch.riscv.build.chip=rp2350-riscv
|
||||
cytron_motion_2350_pro.menu.arch.riscv.build.toolchain=riscv32-unknown-elf
|
||||
cytron_motion_2350_pro.menu.arch.riscv.build.toolchainopts=-march=rv32imac_zicsr_zifencei_zba_zbb_zbs_zbkb -mabi=ilp32
|
||||
cytron_motion_2350_pro.menu.arch.riscv.build.uf2family=--family rp2350-riscv --abs-block
|
||||
cytron_motion_2350_pro.menu.freq.150=150 MHz
|
||||
cytron_motion_2350_pro.menu.freq.150.build.f_cpu=150000000L
|
||||
cytron_motion_2350_pro.menu.freq.50=50 MHz
|
||||
|
|
@ -10430,10 +10451,6 @@ datanoisetv_picoadk_v2.build.usbvid=-DUSBD_VID=0x2e8a
|
|||
datanoisetv_picoadk_v2.build.usbpid=-DUSBD_PID=0x10ae
|
||||
datanoisetv_picoadk_v2.build.usbpwr=-DUSBD_MAX_POWER_MA=250
|
||||
datanoisetv_picoadk_v2.build.board=DATANOISETV_PICOADK_V2
|
||||
datanoisetv_picoadk_v2.build.chip=rp2350
|
||||
datanoisetv_picoadk_v2.build.toolchain=arm-none-eabi
|
||||
datanoisetv_picoadk_v2.build.toolchainopts=-mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse
|
||||
datanoisetv_picoadk_v2.build.uf2family=--family rp2350-arm-s --abs-block
|
||||
datanoisetv_picoadk_v2.build.variant=datanoisetv_picoadk_v2
|
||||
datanoisetv_picoadk_v2.upload.maximum_size=4194304
|
||||
datanoisetv_picoadk_v2.upload.wait_for_upload_port=true
|
||||
|
|
@ -10444,7 +10461,7 @@ datanoisetv_picoadk_v2.build.f_cpu=125000000
|
|||
datanoisetv_picoadk_v2.build.led=
|
||||
datanoisetv_picoadk_v2.build.core=rp2040
|
||||
datanoisetv_picoadk_v2.build.ldscript=memmap_default.ld
|
||||
datanoisetv_picoadk_v2.build.boot2=boot2_w25q080_2_padded_checksum
|
||||
datanoisetv_picoadk_v2.build.boot2=none
|
||||
datanoisetv_picoadk_v2.build.usb_manufacturer="DatanoiseTV"
|
||||
datanoisetv_picoadk_v2.build.usb_product="PicoADK v2"
|
||||
datanoisetv_picoadk_v2.build.psram_length=0x000000
|
||||
|
|
@ -10504,6 +10521,16 @@ datanoisetv_picoadk_v2.menu.flash.4194304_3145728.build.flash_length=1040384
|
|||
datanoisetv_picoadk_v2.menu.flash.4194304_3145728.build.eeprom_start=272621568
|
||||
datanoisetv_picoadk_v2.menu.flash.4194304_3145728.build.fs_start=269475840
|
||||
datanoisetv_picoadk_v2.menu.flash.4194304_3145728.build.fs_end=272621568
|
||||
datanoisetv_picoadk_v2.menu.arch.arm=ARM
|
||||
datanoisetv_picoadk_v2.menu.arch.arm.build.chip=rp2350
|
||||
datanoisetv_picoadk_v2.menu.arch.arm.build.toolchain=arm-none-eabi
|
||||
datanoisetv_picoadk_v2.menu.arch.arm.build.toolchainopts=-mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse
|
||||
datanoisetv_picoadk_v2.menu.arch.arm.build.uf2family=--family rp2350-arm-s --abs-block
|
||||
datanoisetv_picoadk_v2.menu.arch.riscv=RISC-V
|
||||
datanoisetv_picoadk_v2.menu.arch.riscv.build.chip=rp2350-riscv
|
||||
datanoisetv_picoadk_v2.menu.arch.riscv.build.toolchain=riscv32-unknown-elf
|
||||
datanoisetv_picoadk_v2.menu.arch.riscv.build.toolchainopts=-march=rv32imac_zicsr_zifencei_zba_zbb_zbs_zbkb -mabi=ilp32
|
||||
datanoisetv_picoadk_v2.menu.arch.riscv.build.uf2family=--family rp2350-riscv --abs-block
|
||||
datanoisetv_picoadk_v2.menu.freq.150=150 MHz
|
||||
datanoisetv_picoadk_v2.menu.freq.150.build.f_cpu=150000000L
|
||||
datanoisetv_picoadk_v2.menu.freq.50=50 MHz
|
||||
|
|
@ -16021,10 +16048,6 @@ challenger_2350_wifi6_ble5.build.usbvid=-DUSBD_VID=0x2e8a
|
|||
challenger_2350_wifi6_ble5.build.usbpid=-DUSBD_PID=0x109a
|
||||
challenger_2350_wifi6_ble5.build.usbpwr=-DUSBD_MAX_POWER_MA=500
|
||||
challenger_2350_wifi6_ble5.build.board=CHALLENGER_2350_WIFI_BLE_RP2350
|
||||
challenger_2350_wifi6_ble5.build.chip=rp2350
|
||||
challenger_2350_wifi6_ble5.build.toolchain=arm-none-eabi
|
||||
challenger_2350_wifi6_ble5.build.toolchainopts=-mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse
|
||||
challenger_2350_wifi6_ble5.build.uf2family=--family rp2350-arm-s --abs-block
|
||||
challenger_2350_wifi6_ble5.build.variant=challenger_2350_wifi6_ble5
|
||||
challenger_2350_wifi6_ble5.upload.maximum_size=8388608
|
||||
challenger_2350_wifi6_ble5.upload.wait_for_upload_port=true
|
||||
|
|
@ -16035,7 +16058,7 @@ challenger_2350_wifi6_ble5.build.f_cpu=125000000
|
|||
challenger_2350_wifi6_ble5.build.led=
|
||||
challenger_2350_wifi6_ble5.build.core=rp2040
|
||||
challenger_2350_wifi6_ble5.build.ldscript=memmap_default.ld
|
||||
challenger_2350_wifi6_ble5.build.boot2=boot2_generic_03h_2_padded_checksum
|
||||
challenger_2350_wifi6_ble5.build.boot2=none
|
||||
challenger_2350_wifi6_ble5.build.usb_manufacturer="iLabs"
|
||||
challenger_2350_wifi6_ble5.build.usb_product="Challenger 2350 WiFi/BLE"
|
||||
challenger_2350_wifi6_ble5.build.psram_length=0x800000
|
||||
|
|
@ -16224,6 +16247,16 @@ challenger_2350_wifi6_ble5.menu.flash.16777216_2097152.build.flash_length=146718
|
|||
challenger_2350_wifi6_ble5.menu.flash.16777216_2097152.build.eeprom_start=285204480
|
||||
challenger_2350_wifi6_ble5.menu.flash.16777216_2097152.build.fs_start=283107328
|
||||
challenger_2350_wifi6_ble5.menu.flash.16777216_2097152.build.fs_end=285204480
|
||||
challenger_2350_wifi6_ble5.menu.arch.arm=ARM
|
||||
challenger_2350_wifi6_ble5.menu.arch.arm.build.chip=rp2350
|
||||
challenger_2350_wifi6_ble5.menu.arch.arm.build.toolchain=arm-none-eabi
|
||||
challenger_2350_wifi6_ble5.menu.arch.arm.build.toolchainopts=-mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse
|
||||
challenger_2350_wifi6_ble5.menu.arch.arm.build.uf2family=--family rp2350-arm-s --abs-block
|
||||
challenger_2350_wifi6_ble5.menu.arch.riscv=RISC-V
|
||||
challenger_2350_wifi6_ble5.menu.arch.riscv.build.chip=rp2350-riscv
|
||||
challenger_2350_wifi6_ble5.menu.arch.riscv.build.toolchain=riscv32-unknown-elf
|
||||
challenger_2350_wifi6_ble5.menu.arch.riscv.build.toolchainopts=-march=rv32imac_zicsr_zifencei_zba_zbb_zbs_zbkb -mabi=ilp32
|
||||
challenger_2350_wifi6_ble5.menu.arch.riscv.build.uf2family=--family rp2350-riscv --abs-block
|
||||
challenger_2350_wifi6_ble5.menu.freq.150=150 MHz
|
||||
challenger_2350_wifi6_ble5.menu.freq.150.build.f_cpu=150000000L
|
||||
challenger_2350_wifi6_ble5.menu.freq.50=50 MHz
|
||||
|
|
@ -16393,10 +16426,6 @@ challenger_2350_bconnect.build.usbvid=-DUSBD_VID=0x2e8a
|
|||
challenger_2350_bconnect.build.usbpid=-DUSBD_PID=0x109b
|
||||
challenger_2350_bconnect.build.usbpwr=-DUSBD_MAX_POWER_MA=500
|
||||
challenger_2350_bconnect.build.board=CHALLENGER_2350_BCONNECT_RP2350
|
||||
challenger_2350_bconnect.build.chip=rp2350
|
||||
challenger_2350_bconnect.build.toolchain=arm-none-eabi
|
||||
challenger_2350_bconnect.build.toolchainopts=-mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse
|
||||
challenger_2350_bconnect.build.uf2family=--family rp2350-arm-s --abs-block
|
||||
challenger_2350_bconnect.build.variant=challenger_2350_bconnect
|
||||
challenger_2350_bconnect.upload.maximum_size=8388608
|
||||
challenger_2350_bconnect.upload.wait_for_upload_port=true
|
||||
|
|
@ -16407,7 +16436,7 @@ challenger_2350_bconnect.build.f_cpu=125000000
|
|||
challenger_2350_bconnect.build.led=
|
||||
challenger_2350_bconnect.build.core=rp2040
|
||||
challenger_2350_bconnect.build.ldscript=memmap_default.ld
|
||||
challenger_2350_bconnect.build.boot2=boot2_generic_03h_2_padded_checksum
|
||||
challenger_2350_bconnect.build.boot2=none
|
||||
challenger_2350_bconnect.build.usb_manufacturer="iLabs"
|
||||
challenger_2350_bconnect.build.usb_product="Challenger 2350 BConnect"
|
||||
challenger_2350_bconnect.build.psram_length=0x800000
|
||||
|
|
@ -16495,6 +16524,16 @@ challenger_2350_bconnect.menu.flash.8388608_7340032.build.flash_length=1040384
|
|||
challenger_2350_bconnect.menu.flash.8388608_7340032.build.eeprom_start=276815872
|
||||
challenger_2350_bconnect.menu.flash.8388608_7340032.build.fs_start=269475840
|
||||
challenger_2350_bconnect.menu.flash.8388608_7340032.build.fs_end=276815872
|
||||
challenger_2350_bconnect.menu.arch.arm=ARM
|
||||
challenger_2350_bconnect.menu.arch.arm.build.chip=rp2350
|
||||
challenger_2350_bconnect.menu.arch.arm.build.toolchain=arm-none-eabi
|
||||
challenger_2350_bconnect.menu.arch.arm.build.toolchainopts=-mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse
|
||||
challenger_2350_bconnect.menu.arch.arm.build.uf2family=--family rp2350-arm-s --abs-block
|
||||
challenger_2350_bconnect.menu.arch.riscv=RISC-V
|
||||
challenger_2350_bconnect.menu.arch.riscv.build.chip=rp2350-riscv
|
||||
challenger_2350_bconnect.menu.arch.riscv.build.toolchain=riscv32-unknown-elf
|
||||
challenger_2350_bconnect.menu.arch.riscv.build.toolchainopts=-march=rv32imac_zicsr_zifencei_zba_zbb_zbs_zbkb -mabi=ilp32
|
||||
challenger_2350_bconnect.menu.arch.riscv.build.uf2family=--family rp2350-riscv --abs-block
|
||||
challenger_2350_bconnect.menu.freq.150=150 MHz
|
||||
challenger_2350_bconnect.menu.freq.150.build.f_cpu=150000000L
|
||||
challenger_2350_bconnect.menu.freq.50=50 MHz
|
||||
|
|
@ -19071,10 +19110,6 @@ pimoroni_pga2350.build.usbvid=-DUSBD_VID=0x2e8a
|
|||
pimoroni_pga2350.build.usbpid=-DUSBD_PID=0x1018
|
||||
pimoroni_pga2350.build.usbpwr=-DUSBD_MAX_POWER_MA=250
|
||||
pimoroni_pga2350.build.board=PIMORONI_PGA2350
|
||||
pimoroni_pga2350.build.chip=rp2350
|
||||
pimoroni_pga2350.build.toolchain=arm-none-eabi
|
||||
pimoroni_pga2350.build.toolchainopts=-mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse
|
||||
pimoroni_pga2350.build.uf2family=--family rp2350-arm-s --abs-block
|
||||
pimoroni_pga2350.build.variant=pimoroni_pga2350
|
||||
pimoroni_pga2350.upload.maximum_size=16777216
|
||||
pimoroni_pga2350.upload.wait_for_upload_port=true
|
||||
|
|
@ -19085,7 +19120,7 @@ pimoroni_pga2350.build.f_cpu=125000000
|
|||
pimoroni_pga2350.build.led=
|
||||
pimoroni_pga2350.build.core=rp2040
|
||||
pimoroni_pga2350.build.ldscript=memmap_default.ld
|
||||
pimoroni_pga2350.build.boot2=boot2_w25q080_4_padded_checksum
|
||||
pimoroni_pga2350.build.boot2=none
|
||||
pimoroni_pga2350.build.usb_manufacturer="Pimoroni"
|
||||
pimoroni_pga2350.build.usb_product="PGA2350"
|
||||
pimoroni_pga2350.build.psram_length=0x800000
|
||||
|
|
@ -19229,6 +19264,16 @@ pimoroni_pga2350.menu.flash.16777216_15728640.build.flash_length=1040384
|
|||
pimoroni_pga2350.menu.flash.16777216_15728640.build.eeprom_start=285204480
|
||||
pimoroni_pga2350.menu.flash.16777216_15728640.build.fs_start=269475840
|
||||
pimoroni_pga2350.menu.flash.16777216_15728640.build.fs_end=285204480
|
||||
pimoroni_pga2350.menu.arch.arm=ARM
|
||||
pimoroni_pga2350.menu.arch.arm.build.chip=rp2350
|
||||
pimoroni_pga2350.menu.arch.arm.build.toolchain=arm-none-eabi
|
||||
pimoroni_pga2350.menu.arch.arm.build.toolchainopts=-mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse
|
||||
pimoroni_pga2350.menu.arch.arm.build.uf2family=--family rp2350-arm-s --abs-block
|
||||
pimoroni_pga2350.menu.arch.riscv=RISC-V
|
||||
pimoroni_pga2350.menu.arch.riscv.build.chip=rp2350-riscv
|
||||
pimoroni_pga2350.menu.arch.riscv.build.toolchain=riscv32-unknown-elf
|
||||
pimoroni_pga2350.menu.arch.riscv.build.toolchainopts=-march=rv32imac_zicsr_zifencei_zba_zbb_zbs_zbkb -mabi=ilp32
|
||||
pimoroni_pga2350.menu.arch.riscv.build.uf2family=--family rp2350-riscv --abs-block
|
||||
pimoroni_pga2350.menu.freq.150=150 MHz
|
||||
pimoroni_pga2350.menu.freq.150.build.f_cpu=150000000L
|
||||
pimoroni_pga2350.menu.freq.50=50 MHz
|
||||
|
|
@ -19398,10 +19443,6 @@ pimoroni_pico_plus_2.build.usbvid=-DUSBD_VID=0x2e8a
|
|||
pimoroni_pico_plus_2.build.usbpid=-DUSBD_PID=0x100a
|
||||
pimoroni_pico_plus_2.build.usbpwr=-DUSBD_MAX_POWER_MA=500
|
||||
pimoroni_pico_plus_2.build.board=PIMORONI_PICO_PLUS_2
|
||||
pimoroni_pico_plus_2.build.chip=rp2350
|
||||
pimoroni_pico_plus_2.build.toolchain=arm-none-eabi
|
||||
pimoroni_pico_plus_2.build.toolchainopts=-mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse
|
||||
pimoroni_pico_plus_2.build.uf2family=--family rp2350-arm-s --abs-block
|
||||
pimoroni_pico_plus_2.build.variant=pimoroni_pico_plus_2
|
||||
pimoroni_pico_plus_2.upload.maximum_size=16777216
|
||||
pimoroni_pico_plus_2.upload.wait_for_upload_port=true
|
||||
|
|
@ -19412,7 +19453,7 @@ pimoroni_pico_plus_2.build.f_cpu=125000000
|
|||
pimoroni_pico_plus_2.build.led=
|
||||
pimoroni_pico_plus_2.build.core=rp2040
|
||||
pimoroni_pico_plus_2.build.ldscript=memmap_default.ld
|
||||
pimoroni_pico_plus_2.build.boot2=boot2_generic_03h_4_padded_checksum
|
||||
pimoroni_pico_plus_2.build.boot2=none
|
||||
pimoroni_pico_plus_2.build.usb_manufacturer="Pimoroni"
|
||||
pimoroni_pico_plus_2.build.usb_product="PicoPlus2"
|
||||
pimoroni_pico_plus_2.build.psram_length=0x800000
|
||||
|
|
@ -19556,6 +19597,16 @@ pimoroni_pico_plus_2.menu.flash.16777216_15728640.build.flash_length=1040384
|
|||
pimoroni_pico_plus_2.menu.flash.16777216_15728640.build.eeprom_start=285204480
|
||||
pimoroni_pico_plus_2.menu.flash.16777216_15728640.build.fs_start=269475840
|
||||
pimoroni_pico_plus_2.menu.flash.16777216_15728640.build.fs_end=285204480
|
||||
pimoroni_pico_plus_2.menu.arch.arm=ARM
|
||||
pimoroni_pico_plus_2.menu.arch.arm.build.chip=rp2350
|
||||
pimoroni_pico_plus_2.menu.arch.arm.build.toolchain=arm-none-eabi
|
||||
pimoroni_pico_plus_2.menu.arch.arm.build.toolchainopts=-mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse
|
||||
pimoroni_pico_plus_2.menu.arch.arm.build.uf2family=--family rp2350-arm-s --abs-block
|
||||
pimoroni_pico_plus_2.menu.arch.riscv=RISC-V
|
||||
pimoroni_pico_plus_2.menu.arch.riscv.build.chip=rp2350-riscv
|
||||
pimoroni_pico_plus_2.menu.arch.riscv.build.toolchain=riscv32-unknown-elf
|
||||
pimoroni_pico_plus_2.menu.arch.riscv.build.toolchainopts=-march=rv32imac_zicsr_zifencei_zba_zbb_zbs_zbkb -mabi=ilp32
|
||||
pimoroni_pico_plus_2.menu.arch.riscv.build.uf2family=--family rp2350-riscv --abs-block
|
||||
pimoroni_pico_plus_2.menu.freq.150=150 MHz
|
||||
pimoroni_pico_plus_2.menu.freq.150.build.f_cpu=150000000L
|
||||
pimoroni_pico_plus_2.menu.freq.50=50 MHz
|
||||
|
|
@ -20209,10 +20260,6 @@ pimoroni_tiny2350.build.usbvid=-DUSBD_VID=0x2e8a
|
|||
pimoroni_tiny2350.build.usbpid=-DUSBD_PID=0x100b
|
||||
pimoroni_tiny2350.build.usbpwr=-DUSBD_MAX_POWER_MA=500
|
||||
pimoroni_tiny2350.build.board=PIMORONI_TINY2350
|
||||
pimoroni_tiny2350.build.chip=rp2350
|
||||
pimoroni_tiny2350.build.toolchain=arm-none-eabi
|
||||
pimoroni_tiny2350.build.toolchainopts=-mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse
|
||||
pimoroni_tiny2350.build.uf2family=--family rp2350-arm-s --abs-block
|
||||
pimoroni_tiny2350.build.variant=pimoroni_tiny2350
|
||||
pimoroni_tiny2350.upload.maximum_size=4194304
|
||||
pimoroni_tiny2350.upload.wait_for_upload_port=true
|
||||
|
|
@ -20223,7 +20270,7 @@ pimoroni_tiny2350.build.f_cpu=125000000
|
|||
pimoroni_tiny2350.build.led=
|
||||
pimoroni_tiny2350.build.core=rp2040
|
||||
pimoroni_tiny2350.build.ldscript=memmap_default.ld
|
||||
pimoroni_tiny2350.build.boot2=boot2_w25q080_4_padded_checksum
|
||||
pimoroni_tiny2350.build.boot2=none
|
||||
pimoroni_tiny2350.build.usb_manufacturer="Pimoroni"
|
||||
pimoroni_tiny2350.build.usb_product="Tiny2350"
|
||||
pimoroni_tiny2350.build.psram_length=0x000000
|
||||
|
|
@ -20283,6 +20330,16 @@ pimoroni_tiny2350.menu.flash.4194304_3145728.build.flash_length=1040384
|
|||
pimoroni_tiny2350.menu.flash.4194304_3145728.build.eeprom_start=272621568
|
||||
pimoroni_tiny2350.menu.flash.4194304_3145728.build.fs_start=269475840
|
||||
pimoroni_tiny2350.menu.flash.4194304_3145728.build.fs_end=272621568
|
||||
pimoroni_tiny2350.menu.arch.arm=ARM
|
||||
pimoroni_tiny2350.menu.arch.arm.build.chip=rp2350
|
||||
pimoroni_tiny2350.menu.arch.arm.build.toolchain=arm-none-eabi
|
||||
pimoroni_tiny2350.menu.arch.arm.build.toolchainopts=-mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse
|
||||
pimoroni_tiny2350.menu.arch.arm.build.uf2family=--family rp2350-arm-s --abs-block
|
||||
pimoroni_tiny2350.menu.arch.riscv=RISC-V
|
||||
pimoroni_tiny2350.menu.arch.riscv.build.chip=rp2350-riscv
|
||||
pimoroni_tiny2350.menu.arch.riscv.build.toolchain=riscv32-unknown-elf
|
||||
pimoroni_tiny2350.menu.arch.riscv.build.toolchainopts=-march=rv32imac_zicsr_zifencei_zba_zbb_zbs_zbkb -mabi=ilp32
|
||||
pimoroni_tiny2350.menu.arch.riscv.build.uf2family=--family rp2350-riscv --abs-block
|
||||
pimoroni_tiny2350.menu.freq.150=150 MHz
|
||||
pimoroni_tiny2350.menu.freq.150.build.f_cpu=150000000L
|
||||
pimoroni_tiny2350.menu.freq.50=50 MHz
|
||||
|
|
@ -22200,10 +22257,6 @@ solderparty_rp2350_stamp.build.usbvid=-DUSBD_VID=0x1209
|
|||
solderparty_rp2350_stamp.build.usbpid=-DUSBD_PID=0xa183
|
||||
solderparty_rp2350_stamp.build.usbpwr=-DUSBD_MAX_POWER_MA=500
|
||||
solderparty_rp2350_stamp.build.board=SOLDERPARTY_RP2350_STAMP
|
||||
solderparty_rp2350_stamp.build.chip=rp2350
|
||||
solderparty_rp2350_stamp.build.toolchain=arm-none-eabi
|
||||
solderparty_rp2350_stamp.build.toolchainopts=-mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse
|
||||
solderparty_rp2350_stamp.build.uf2family=--family rp2350-arm-s --abs-block
|
||||
solderparty_rp2350_stamp.build.variant=solderparty_rp2350_stamp
|
||||
solderparty_rp2350_stamp.upload.maximum_size=16777216
|
||||
solderparty_rp2350_stamp.upload.wait_for_upload_port=true
|
||||
|
|
@ -22214,7 +22267,7 @@ solderparty_rp2350_stamp.build.f_cpu=125000000
|
|||
solderparty_rp2350_stamp.build.led=
|
||||
solderparty_rp2350_stamp.build.core=rp2040
|
||||
solderparty_rp2350_stamp.build.ldscript=memmap_default.ld
|
||||
solderparty_rp2350_stamp.build.boot2=boot2_generic_03h_2_padded_checksum
|
||||
solderparty_rp2350_stamp.build.boot2=none
|
||||
solderparty_rp2350_stamp.build.usb_manufacturer="Solder Party"
|
||||
solderparty_rp2350_stamp.build.usb_product="RP2350 Stamp"
|
||||
solderparty_rp2350_stamp.build.psram_length=0x000000
|
||||
|
|
@ -22358,6 +22411,16 @@ solderparty_rp2350_stamp.menu.flash.16777216_15728640.build.flash_length=1040384
|
|||
solderparty_rp2350_stamp.menu.flash.16777216_15728640.build.eeprom_start=285204480
|
||||
solderparty_rp2350_stamp.menu.flash.16777216_15728640.build.fs_start=269475840
|
||||
solderparty_rp2350_stamp.menu.flash.16777216_15728640.build.fs_end=285204480
|
||||
solderparty_rp2350_stamp.menu.arch.arm=ARM
|
||||
solderparty_rp2350_stamp.menu.arch.arm.build.chip=rp2350
|
||||
solderparty_rp2350_stamp.menu.arch.arm.build.toolchain=arm-none-eabi
|
||||
solderparty_rp2350_stamp.menu.arch.arm.build.toolchainopts=-mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse
|
||||
solderparty_rp2350_stamp.menu.arch.arm.build.uf2family=--family rp2350-arm-s --abs-block
|
||||
solderparty_rp2350_stamp.menu.arch.riscv=RISC-V
|
||||
solderparty_rp2350_stamp.menu.arch.riscv.build.chip=rp2350-riscv
|
||||
solderparty_rp2350_stamp.menu.arch.riscv.build.toolchain=riscv32-unknown-elf
|
||||
solderparty_rp2350_stamp.menu.arch.riscv.build.toolchainopts=-march=rv32imac_zicsr_zifencei_zba_zbb_zbs_zbkb -mabi=ilp32
|
||||
solderparty_rp2350_stamp.menu.arch.riscv.build.uf2family=--family rp2350-riscv --abs-block
|
||||
solderparty_rp2350_stamp.menu.freq.150=150 MHz
|
||||
solderparty_rp2350_stamp.menu.freq.150.build.f_cpu=150000000L
|
||||
solderparty_rp2350_stamp.menu.freq.50=50 MHz
|
||||
|
|
@ -22503,10 +22566,6 @@ solderparty_rp2350_stamp_xl.build.usbvid=-DUSBD_VID=0x1209
|
|||
solderparty_rp2350_stamp_xl.build.usbpid=-DUSBD_PID=0xa184
|
||||
solderparty_rp2350_stamp_xl.build.usbpwr=-DUSBD_MAX_POWER_MA=500
|
||||
solderparty_rp2350_stamp_xl.build.board=SOLDERPARTY_RP2350_STAMP_XL
|
||||
solderparty_rp2350_stamp_xl.build.chip=rp2350
|
||||
solderparty_rp2350_stamp_xl.build.toolchain=arm-none-eabi
|
||||
solderparty_rp2350_stamp_xl.build.toolchainopts=-mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse
|
||||
solderparty_rp2350_stamp_xl.build.uf2family=--family rp2350-arm-s --abs-block
|
||||
solderparty_rp2350_stamp_xl.build.variant=solderparty_rp2350_stamp_xl
|
||||
solderparty_rp2350_stamp_xl.upload.maximum_size=16777216
|
||||
solderparty_rp2350_stamp_xl.upload.wait_for_upload_port=true
|
||||
|
|
@ -22517,7 +22576,7 @@ solderparty_rp2350_stamp_xl.build.f_cpu=125000000
|
|||
solderparty_rp2350_stamp_xl.build.led=
|
||||
solderparty_rp2350_stamp_xl.build.core=rp2040
|
||||
solderparty_rp2350_stamp_xl.build.ldscript=memmap_default.ld
|
||||
solderparty_rp2350_stamp_xl.build.boot2=boot2_generic_03h_2_padded_checksum
|
||||
solderparty_rp2350_stamp_xl.build.boot2=none
|
||||
solderparty_rp2350_stamp_xl.build.usb_manufacturer="Solder Party"
|
||||
solderparty_rp2350_stamp_xl.build.usb_product="RP2350 Stamp XL"
|
||||
solderparty_rp2350_stamp_xl.build.psram_length=0x000000
|
||||
|
|
@ -22661,6 +22720,16 @@ solderparty_rp2350_stamp_xl.menu.flash.16777216_15728640.build.flash_length=1040
|
|||
solderparty_rp2350_stamp_xl.menu.flash.16777216_15728640.build.eeprom_start=285204480
|
||||
solderparty_rp2350_stamp_xl.menu.flash.16777216_15728640.build.fs_start=269475840
|
||||
solderparty_rp2350_stamp_xl.menu.flash.16777216_15728640.build.fs_end=285204480
|
||||
solderparty_rp2350_stamp_xl.menu.arch.arm=ARM
|
||||
solderparty_rp2350_stamp_xl.menu.arch.arm.build.chip=rp2350
|
||||
solderparty_rp2350_stamp_xl.menu.arch.arm.build.toolchain=arm-none-eabi
|
||||
solderparty_rp2350_stamp_xl.menu.arch.arm.build.toolchainopts=-mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse
|
||||
solderparty_rp2350_stamp_xl.menu.arch.arm.build.uf2family=--family rp2350-arm-s --abs-block
|
||||
solderparty_rp2350_stamp_xl.menu.arch.riscv=RISC-V
|
||||
solderparty_rp2350_stamp_xl.menu.arch.riscv.build.chip=rp2350-riscv
|
||||
solderparty_rp2350_stamp_xl.menu.arch.riscv.build.toolchain=riscv32-unknown-elf
|
||||
solderparty_rp2350_stamp_xl.menu.arch.riscv.build.toolchainopts=-march=rv32imac_zicsr_zifencei_zba_zbb_zbs_zbkb -mabi=ilp32
|
||||
solderparty_rp2350_stamp_xl.menu.arch.riscv.build.uf2family=--family rp2350-riscv --abs-block
|
||||
solderparty_rp2350_stamp_xl.menu.freq.150=150 MHz
|
||||
solderparty_rp2350_stamp_xl.menu.freq.150.build.f_cpu=150000000L
|
||||
solderparty_rp2350_stamp_xl.menu.freq.50=50 MHz
|
||||
|
|
@ -23482,10 +23551,6 @@ sparkfun_promicrorp2350.build.usbvid=-DUSBD_VID=0x1b4f
|
|||
sparkfun_promicrorp2350.build.usbpid=-DUSBD_PID=0x0026
|
||||
sparkfun_promicrorp2350.build.usbpwr=-DUSBD_MAX_POWER_MA=250
|
||||
sparkfun_promicrorp2350.build.board=SPARKFUN_PROMICRO_RP2350
|
||||
sparkfun_promicrorp2350.build.chip=rp2350
|
||||
sparkfun_promicrorp2350.build.toolchain=arm-none-eabi
|
||||
sparkfun_promicrorp2350.build.toolchainopts=-mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse
|
||||
sparkfun_promicrorp2350.build.uf2family=--family rp2350-arm-s --abs-block
|
||||
sparkfun_promicrorp2350.build.variant=sparkfun_promicrorp2350
|
||||
sparkfun_promicrorp2350.upload.maximum_size=16777216
|
||||
sparkfun_promicrorp2350.upload.wait_for_upload_port=true
|
||||
|
|
@ -23496,7 +23561,7 @@ sparkfun_promicrorp2350.build.f_cpu=125000000
|
|||
sparkfun_promicrorp2350.build.led=
|
||||
sparkfun_promicrorp2350.build.core=rp2040
|
||||
sparkfun_promicrorp2350.build.ldscript=memmap_default.ld
|
||||
sparkfun_promicrorp2350.build.boot2=boot2_w25q080_2_padded_checksum
|
||||
sparkfun_promicrorp2350.build.boot2=none
|
||||
sparkfun_promicrorp2350.build.usb_manufacturer="SparkFun"
|
||||
sparkfun_promicrorp2350.build.usb_product="ProMicro RP2350"
|
||||
sparkfun_promicrorp2350.build.psram_length=0x800000
|
||||
|
|
@ -23640,6 +23705,16 @@ sparkfun_promicrorp2350.menu.flash.16777216_15728640.build.flash_length=1040384
|
|||
sparkfun_promicrorp2350.menu.flash.16777216_15728640.build.eeprom_start=285204480
|
||||
sparkfun_promicrorp2350.menu.flash.16777216_15728640.build.fs_start=269475840
|
||||
sparkfun_promicrorp2350.menu.flash.16777216_15728640.build.fs_end=285204480
|
||||
sparkfun_promicrorp2350.menu.arch.arm=ARM
|
||||
sparkfun_promicrorp2350.menu.arch.arm.build.chip=rp2350
|
||||
sparkfun_promicrorp2350.menu.arch.arm.build.toolchain=arm-none-eabi
|
||||
sparkfun_promicrorp2350.menu.arch.arm.build.toolchainopts=-mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse
|
||||
sparkfun_promicrorp2350.menu.arch.arm.build.uf2family=--family rp2350-arm-s --abs-block
|
||||
sparkfun_promicrorp2350.menu.arch.riscv=RISC-V
|
||||
sparkfun_promicrorp2350.menu.arch.riscv.build.chip=rp2350-riscv
|
||||
sparkfun_promicrorp2350.menu.arch.riscv.build.toolchain=riscv32-unknown-elf
|
||||
sparkfun_promicrorp2350.menu.arch.riscv.build.toolchainopts=-march=rv32imac_zicsr_zifencei_zba_zbb_zbs_zbkb -mabi=ilp32
|
||||
sparkfun_promicrorp2350.menu.arch.riscv.build.uf2family=--family rp2350-riscv --abs-block
|
||||
sparkfun_promicrorp2350.menu.freq.150=150 MHz
|
||||
sparkfun_promicrorp2350.menu.freq.150.build.f_cpu=150000000L
|
||||
sparkfun_promicrorp2350.menu.freq.50=50 MHz
|
||||
|
|
@ -28375,10 +28450,6 @@ generic_rp2350.build.usbvid=-DUSBD_VID=0x2e8a
|
|||
generic_rp2350.build.usbpid=-DUSBD_PID=0xf00f
|
||||
generic_rp2350.build.usbpwr=-DUSBD_MAX_POWER_MA=250
|
||||
generic_rp2350.build.board=GENERIC_RP2350
|
||||
generic_rp2350.build.chip=rp2350
|
||||
generic_rp2350.build.toolchain=arm-none-eabi
|
||||
generic_rp2350.build.toolchainopts=-mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse
|
||||
generic_rp2350.build.uf2family=--family rp2350-arm-s --abs-block
|
||||
generic_rp2350.build.variant=generic_rp2350
|
||||
generic_rp2350.upload.maximum_size=16777216
|
||||
generic_rp2350.upload.wait_for_upload_port=true
|
||||
|
|
@ -28389,7 +28460,7 @@ generic_rp2350.build.f_cpu=125000000
|
|||
generic_rp2350.build.led=
|
||||
generic_rp2350.build.core=rp2040
|
||||
generic_rp2350.build.ldscript=memmap_default.ld
|
||||
generic_rp2350.build.boot2=boot2_generic_03h_4_padded_checksum
|
||||
generic_rp2350.build.boot2=none
|
||||
generic_rp2350.build.usb_manufacturer="Generic"
|
||||
generic_rp2350.build.usb_product="RP2350"
|
||||
generic_rp2350.menu.flash.2097152_0=2MB (no FS)
|
||||
|
|
@ -28504,6 +28575,16 @@ generic_rp2350.menu.flash.16777216_2097152.build.flash_length=14671872
|
|||
generic_rp2350.menu.flash.16777216_2097152.build.eeprom_start=285204480
|
||||
generic_rp2350.menu.flash.16777216_2097152.build.fs_start=283107328
|
||||
generic_rp2350.menu.flash.16777216_2097152.build.fs_end=285204480
|
||||
generic_rp2350.menu.arch.arm=ARM
|
||||
generic_rp2350.menu.arch.arm.build.chip=rp2350
|
||||
generic_rp2350.menu.arch.arm.build.toolchain=arm-none-eabi
|
||||
generic_rp2350.menu.arch.arm.build.toolchainopts=-mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse
|
||||
generic_rp2350.menu.arch.arm.build.uf2family=--family rp2350-arm-s --abs-block
|
||||
generic_rp2350.menu.arch.riscv=RISC-V
|
||||
generic_rp2350.menu.arch.riscv.build.chip=rp2350-riscv
|
||||
generic_rp2350.menu.arch.riscv.build.toolchain=riscv32-unknown-elf
|
||||
generic_rp2350.menu.arch.riscv.build.toolchainopts=-march=rv32imac_zicsr_zifencei_zba_zbb_zbs_zbkb -mabi=ilp32
|
||||
generic_rp2350.menu.arch.riscv.build.uf2family=--family rp2350-riscv --abs-block
|
||||
generic_rp2350.menu.freq.150=150 MHz
|
||||
generic_rp2350.menu.freq.150.build.f_cpu=150000000L
|
||||
generic_rp2350.menu.freq.50=50 MHz
|
||||
|
|
|
|||
4
boot2/rp2350-riscv/none.S
Normal file
4
boot2/rp2350-riscv/none.S
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
.section .boot2, "ax"
|
||||
|
||||
.global __boot2_entry_point
|
||||
__boot2_entry_point:
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
// Padded and checksummed version of: boot2_generic_03h.2.bin
|
||||
|
||||
.cpu cortex-m0plus
|
||||
.thumb
|
||||
|
||||
.section .boot2, "ax"
|
||||
|
||||
.global __boot2_entry_point
|
||||
__boot2_entry_point:
|
||||
.byte 0x00, 0xb5, 0x05, 0x4b, 0x05, 0x48, 0xd8, 0x60, 0x4f, 0xf0, 0x03, 0x00, 0x58, 0x61, 0x4f, 0xf4
|
||||
.byte 0x80, 0x50, 0x18, 0x61, 0x00, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x40, 0x02, 0x01, 0x00, 0x40
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
// Padded and checksummed version of: boot2_generic_03h.4.bin
|
||||
|
||||
.cpu cortex-m0plus
|
||||
.thumb
|
||||
|
||||
.section .boot2, "ax"
|
||||
|
||||
.global __boot2_entry_point
|
||||
__boot2_entry_point:
|
||||
.byte 0x00, 0xb5, 0x05, 0x4b, 0x05, 0x48, 0xd8, 0x60, 0x4f, 0xf0, 0x03, 0x00, 0x58, 0x61, 0x4f, 0xf4
|
||||
.byte 0x80, 0x50, 0x18, 0x61, 0x00, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x40, 0x04, 0x01, 0x00, 0x40
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
// Padded and checksummed version of: boot2_w25q080.2.bin
|
||||
|
||||
.cpu cortex-m0plus
|
||||
.thumb
|
||||
|
||||
.section .boot2, "ax"
|
||||
|
||||
.global __boot2_entry_point
|
||||
__boot2_entry_point:
|
||||
.byte 0x00, 0xb5, 0x24, 0x4b, 0x21, 0x20, 0x58, 0x60, 0x13, 0xf5, 0x40, 0x53, 0x02, 0x20, 0x98, 0x60
|
||||
.byte 0xd8, 0x60, 0x18, 0x61, 0x58, 0x61, 0x13, 0xf5, 0x0d, 0x23, 0x1f, 0x49, 0x19, 0x60, 0x18, 0x68
|
||||
.byte 0x10, 0xf0, 0x02, 0x0f, 0xfb, 0xd1, 0x35, 0x20, 0x00, 0xf0, 0x2c, 0xf8, 0x02, 0x28, 0x14, 0xd0
|
||||
.byte 0x06, 0x20, 0x58, 0x60, 0x00, 0xf0, 0x22, 0xf8, 0x98, 0x68, 0x01, 0x20, 0x58, 0x60, 0x00, 0x20
|
||||
.byte 0x58, 0x60, 0x02, 0x20, 0x58, 0x60, 0x00, 0xf0, 0x19, 0xf8, 0x98, 0x68, 0x98, 0x68, 0x98, 0x68
|
||||
.byte 0x05, 0x20, 0x00, 0xf0, 0x17, 0xf8, 0x40, 0x08, 0xfa, 0xd2, 0x31, 0xf0, 0x01, 0x01, 0x19, 0x60
|
||||
.byte 0x0e, 0x48, 0xd8, 0x60, 0x4a, 0xf2, 0xeb, 0x00, 0x58, 0x61, 0x0d, 0x48, 0x18, 0x61, 0x4f, 0xf0
|
||||
.byte 0xa0, 0x51, 0x09, 0x78, 0x20, 0xf4, 0x80, 0x50, 0x18, 0x61, 0x00, 0xbd, 0x18, 0x68, 0x80, 0x08
|
||||
.byte 0xfc, 0xd2, 0x70, 0x47, 0x00, 0xb5, 0x58, 0x60, 0x58, 0x60, 0xff, 0xf7, 0xf7, 0xff, 0x98, 0x68
|
||||
.byte 0x98, 0x68, 0x00, 0xbd, 0x00, 0x00, 0x04, 0x40, 0x41, 0x00, 0x80, 0x07, 0x02, 0x02, 0x00, 0x40
|
||||
.byte 0xa8, 0x92, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
// Padded and checksummed version of: boot2_w25q080.4.bin
|
||||
|
||||
.cpu cortex-m0plus
|
||||
.thumb
|
||||
|
||||
.section .boot2, "ax"
|
||||
|
||||
.global __boot2_entry_point
|
||||
__boot2_entry_point:
|
||||
.byte 0x00, 0xb5, 0x24, 0x4b, 0x21, 0x20, 0x58, 0x60, 0x13, 0xf5, 0x40, 0x53, 0x02, 0x20, 0x98, 0x60
|
||||
.byte 0xd8, 0x60, 0x18, 0x61, 0x58, 0x61, 0x13, 0xf5, 0x0d, 0x23, 0x1f, 0x49, 0x19, 0x60, 0x18, 0x68
|
||||
.byte 0x10, 0xf0, 0x02, 0x0f, 0xfb, 0xd1, 0x35, 0x20, 0x00, 0xf0, 0x2c, 0xf8, 0x02, 0x28, 0x14, 0xd0
|
||||
.byte 0x06, 0x20, 0x58, 0x60, 0x00, 0xf0, 0x22, 0xf8, 0x98, 0x68, 0x01, 0x20, 0x58, 0x60, 0x00, 0x20
|
||||
.byte 0x58, 0x60, 0x02, 0x20, 0x58, 0x60, 0x00, 0xf0, 0x19, 0xf8, 0x98, 0x68, 0x98, 0x68, 0x98, 0x68
|
||||
.byte 0x05, 0x20, 0x00, 0xf0, 0x17, 0xf8, 0x40, 0x08, 0xfa, 0xd2, 0x31, 0xf0, 0x01, 0x01, 0x19, 0x60
|
||||
.byte 0x0e, 0x48, 0xd8, 0x60, 0x4a, 0xf2, 0xeb, 0x00, 0x58, 0x61, 0x0d, 0x48, 0x18, 0x61, 0x4f, 0xf0
|
||||
.byte 0xa0, 0x51, 0x09, 0x78, 0x20, 0xf4, 0x80, 0x50, 0x18, 0x61, 0x00, 0xbd, 0x18, 0x68, 0x80, 0x08
|
||||
.byte 0xfc, 0xd2, 0x70, 0x47, 0x00, 0xb5, 0x58, 0x60, 0x58, 0x60, 0xff, 0xf7, 0xf7, 0xff, 0x98, 0x68
|
||||
.byte 0x98, 0x68, 0x00, 0xbd, 0x00, 0x00, 0x04, 0x40, 0x41, 0x00, 0x80, 0x07, 0x04, 0x02, 0x00, 0x40
|
||||
.byte 0xa8, 0x92, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
4
boot2/rp2350/none.S
Normal file
4
boot2/rp2350/none.S
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
.section .boot2, "ax"
|
||||
|
||||
.global __boot2_entry_point
|
||||
__boot2_entry_point:
|
||||
|
|
@ -37,7 +37,7 @@
|
|||
#ifdef abs
|
||||
#undef abs
|
||||
#endif // abs
|
||||
#ifdef __cplusplus
|
||||
#if defined(__cplusplus) && !defined(__riscv)
|
||||
using std::abs;
|
||||
using std::round;
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -175,18 +175,22 @@ public:
|
|||
|
||||
void begin() {
|
||||
_epoch = 0;
|
||||
#if !defined(__riscv)
|
||||
if (!__isFreeRTOS) {
|
||||
// Enable SYSTICK exception
|
||||
exception_set_exclusive_handler(SYSTICK_EXCEPTION, _SystickHandler);
|
||||
systick_hw->csr = 0x7;
|
||||
systick_hw->rvr = 0x00FFFFFF;
|
||||
} else {
|
||||
#endif
|
||||
int off = 0;
|
||||
_ccountPgm = new PIOProgram(&ccount_program);
|
||||
_ccountPgm->prepare(&_pio, &_sm, &off);
|
||||
ccount_program_init(_pio, _sm, off);
|
||||
pio_sm_set_enabled(_pio, _sm, true);
|
||||
#if !defined(__riscv)
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
// Convert from microseconds to PIO clock cycles
|
||||
|
|
@ -208,6 +212,7 @@ public:
|
|||
// Get CPU cycle count. Needs to do magic to extens 24b HW to something longer
|
||||
volatile uint64_t _epoch = 0;
|
||||
inline uint32_t getCycleCount() {
|
||||
#if !defined(__riscv)
|
||||
if (!__isFreeRTOS) {
|
||||
uint32_t epoch;
|
||||
uint32_t ctr;
|
||||
|
|
@ -217,11 +222,15 @@ public:
|
|||
} while (epoch != (uint32_t)_epoch);
|
||||
return epoch + (1 << 24) - ctr; /* CTR counts down from 1<<24-1 */
|
||||
} else {
|
||||
#endif
|
||||
return ccount_read(_pio, _sm);
|
||||
#if !defined(__riscv)
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
inline uint64_t getCycleCount64() {
|
||||
#if !defined(__riscv)
|
||||
if (!__isFreeRTOS) {
|
||||
uint64_t epoch;
|
||||
uint64_t ctr;
|
||||
|
|
@ -231,8 +240,11 @@ public:
|
|||
} while (epoch != _epoch);
|
||||
return epoch + (1LL << 24) - ctr;
|
||||
} else {
|
||||
#endif
|
||||
return ccount_read(_pio, _sm);
|
||||
#if !defined(__riscv)
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
inline int getFreeHeap() {
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ typedef struct {
|
|||
static FMMap *_map = nullptr;
|
||||
SemaphoreHandle_t __get_freertos_mutex_for_ptr(mutex_t *m, bool recursive) {
|
||||
if (!_map) {
|
||||
_map = (FMMap *)calloc(sizeof(FMMap), 16);
|
||||
_map = (FMMap *)calloc(16, sizeof(FMMap));
|
||||
}
|
||||
// Pre-existing map
|
||||
for (int i = 0; i < 16; i++) {
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ static SemaphoreHandle_t __getFreeRTOSRecursiveMutex(_LOCK_T lock) {
|
|||
return __get_freertos_mutex_for_ptr((mutex_t *)l, true);
|
||||
}
|
||||
|
||||
void __retarget_lock_init(_LOCK_T *lock) {
|
||||
void __retarget_lock_init(_LOCK_T lock) {
|
||||
if (__freeRTOSinitted) {
|
||||
mutex_t *l = (mutex_t *)lock;
|
||||
if ((l == &__lock___at_quick_exit_mutex) || (l == &__lock___tz_mutex) || (l == &__lock___dd_hash_mutex) || (l == &__lock___arc4random_mutex)) {
|
||||
|
|
@ -113,7 +113,7 @@ void __retarget_lock_init(_LOCK_T *lock) {
|
|||
}
|
||||
}
|
||||
|
||||
void __retarget_lock_init_recursive(_LOCK_T *lock) {
|
||||
void __retarget_lock_init_recursive(_LOCK_T lock) {
|
||||
if (__freeRTOSinitted) {
|
||||
recursive_mutex_t *l = (recursive_mutex_t *)lock;
|
||||
if ((l == &__lock___sinit_recursive_mutex) || (l == &__lock___sfp_recursive_mutex) || (l == &__lock___atexit_recursive_mutex) || (l == &__lock___malloc_recursive_mutex) || (l == &__lock___env_recursive_mutex)) {
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ extern "C" int main() {
|
|||
|
||||
// Allocate impure_ptr (newlib temps) if there is a 2nd core running
|
||||
if (!__isFreeRTOS && (setup1 || loop1)) {
|
||||
_impure_ptr1 = (struct _reent*)calloc(sizeof(struct _reent), 1);
|
||||
_impure_ptr1 = (struct _reent*)calloc(1, sizeof(struct _reent));
|
||||
_REENT_INIT_PTR(_impure_ptr1);
|
||||
}
|
||||
|
||||
|
|
@ -134,7 +134,6 @@ extern "C" int main() {
|
|||
}
|
||||
rp2040.fifo.registerCore();
|
||||
}
|
||||
|
||||
if (!__isFreeRTOS) {
|
||||
if (setup1 || loop1) {
|
||||
delay(1); // Needed to make Picoprobe upload start 2nd core
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ RP2040 (Raspberry Pi Pico processor) and RP2350 (Raspberry Pi Pico 2
|
|||
processor), intended to make it easier and more fun to use and
|
||||
program the Raspberry Pi Pico / RP2040 / RP2350 based boards.
|
||||
|
||||
This Arduino core uses a custom toolset with GCC 12.3 and Newlib 4.0.0
|
||||
This Arduino core uses a custom toolset with GCC 14.2 and Newlib 4.3
|
||||
and doesn't require any system-installed prerequisites.
|
||||
|
||||
For the latest version, always check https://github.com/earlephilhower/arduino-pico
|
||||
|
|
|
|||
|
|
@ -309,6 +309,19 @@ local copy of the core (with e.g. some modifications) on disk (`see documentatio
|
|||
Note that this can only be done for versions that have the PlatformIO
|
||||
builder script it in, so versions before 1.9.2 are not supported.
|
||||
|
||||
Selecting the CPU architecture
|
||||
------------------------------
|
||||
|
||||
By default Platform.IO will build for the onboard ARM cores on the RP2350. To build RISC-V binaries
|
||||
adjust the ``board_build.mcu`` option accordingly:
|
||||
|
||||
.. code:: ini
|
||||
|
||||
; RP2350 based (RISC-V)
|
||||
[env:rpipico2-riscv]
|
||||
board = rpipico2
|
||||
board_build.mcu = rp2350-riscv
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,14 @@ is supported by the core with some minor caveats:
|
|||
|
||||
* PSRAM is supported via a new ``pmalloc`` call and ``PSRAM`` variable decorator.
|
||||
* Both RP2350A and RP2350B (48 GPIOs) are supported.
|
||||
* Only ARM mode is available. For RISC-V (Hazard3), please use the raw SDK.
|
||||
|
||||
ARM and RISC-V Modes
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Either set of cores can be used on the RP2350, ARM Cortex-M33 or RISC-V Hazard3.
|
||||
Select the desired core from the IDE menus under ``Tools->CPU Architecture``.
|
||||
As of the initial release, all libraries should work under the new RISC-V mode with
|
||||
the exception of FreeRTOS. If not, patches are always welcome.
|
||||
|
||||
P2350-E9 Errata ("Increased leakage current on Bank 0 GPIO when pad input is enabled")
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
// Do not edit -- Automatically generated by tools/sdk/ssl/bearssl/Makefile
|
||||
#define BEARSSL_GIT c2c9d9d
|
||||
#define BEARSSL_GIT 5b7f3d5
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
lib/rp2040/ota.o
BIN
lib/rp2040/ota.o
Binary file not shown.
BIN
lib/rp2350-riscv/libbearssl.a
Normal file
BIN
lib/rp2350-riscv/libbearssl.a
Normal file
Binary file not shown.
BIN
lib/rp2350-riscv/libipv4-big.a
Normal file
BIN
lib/rp2350-riscv/libipv4-big.a
Normal file
Binary file not shown.
BIN
lib/rp2350-riscv/libipv4-ipv6-big.a
Normal file
BIN
lib/rp2350-riscv/libipv4-ipv6-big.a
Normal file
Binary file not shown.
BIN
lib/rp2350-riscv/libipv4-ipv6.a
Normal file
BIN
lib/rp2350-riscv/libipv4-ipv6.a
Normal file
Binary file not shown.
BIN
lib/rp2350-riscv/libipv4.a
Normal file
BIN
lib/rp2350-riscv/libipv4.a
Normal file
Binary file not shown.
BIN
lib/rp2350-riscv/libpico.a
Normal file
BIN
lib/rp2350-riscv/libpico.a
Normal file
Binary file not shown.
336
lib/rp2350-riscv/memmap_default.ld
Normal file
336
lib/rp2350-riscv/memmap_default.ld
Normal file
|
|
@ -0,0 +1,336 @@
|
|||
/* Based on GCC ARM embedded samples.
|
||||
Defines the following symbols for use by code:
|
||||
__exidx_start
|
||||
__exidx_end
|
||||
__etext
|
||||
__data_start__
|
||||
__preinit_array_start
|
||||
__preinit_array_end
|
||||
__init_array_start
|
||||
__init_array_end
|
||||
__fini_array_start
|
||||
__fini_array_end
|
||||
__data_end__
|
||||
__bss_start__
|
||||
__bss_end__
|
||||
__end__
|
||||
end
|
||||
__HeapLimit
|
||||
__StackLimit
|
||||
__StackTop
|
||||
__stack (== StackTop)
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
MEMORY
|
||||
{
|
||||
FLASH(rx) : ORIGIN = 0x10000000, LENGTH = __FLASH_LENGTH__
|
||||
PSRAM(rwx) : ORIGIN = 0x11000000, LENGTH = __PSRAM_LENGTH__
|
||||
RAM(rwx) : ORIGIN = 0x20000000, LENGTH = __RAM_LENGTH__
|
||||
SCRATCH_X(rwx) : ORIGIN = 0x20080000, LENGTH = 4k
|
||||
SCRATCH_Y(rwx) : ORIGIN = 0x20081000, LENGTH = 4k
|
||||
}
|
||||
|
||||
PROVIDE ( _EEPROM_start = __EEPROM_START__ );
|
||||
PROVIDE ( _FS_start = __FS_START__ );
|
||||
PROVIDE ( _FS_end = __FS_END__ );
|
||||
|
||||
ENTRY(_entry_point)
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
.flash_begin : {
|
||||
__flash_binary_start = .;
|
||||
} > FLASH
|
||||
|
||||
.ota : {
|
||||
/* Start image with OTA */
|
||||
KEEP (*(.OTA))
|
||||
*ota.o
|
||||
} > FLASH
|
||||
|
||||
.partition : {
|
||||
. = __flash_binary_start + 0x2ff0;
|
||||
LONG(__FS_START__)
|
||||
LONG(__FS_END__)
|
||||
LONG(__EEPROM_START__)
|
||||
LONG(__FLASH_LENGTH__)
|
||||
} > FLASH
|
||||
|
||||
/* The bootrom will enter the image at the point indicated in your
|
||||
IMAGE_DEF, which is usually the reset handler of your vector table.
|
||||
|
||||
The debugger will use the ELF entry point, which is the _entry_point
|
||||
symbol, and in our case is *different from the bootrom's entry point.*
|
||||
This is used to go back through the bootrom on debugger launches only,
|
||||
to perform the same initial flash setup that would be performed on a
|
||||
cold boot.
|
||||
*/
|
||||
|
||||
.text : {
|
||||
KEEP (*(.vectors))
|
||||
__logical_binary_start = .;
|
||||
KEEP (*(.binary_info_header))
|
||||
__binary_info_header_end = .;
|
||||
KEEP (*(.embedded_block))
|
||||
__embedded_block_end = .;
|
||||
KEEP (*(.reset))
|
||||
/* TODO revisit this now memset/memcpy/float in ROM */
|
||||
/* bit of a hack right now to exclude all floating point and time critical (e.g. memset, memcpy) code from
|
||||
* FLASH ... we will include any thing excluded here in .data below by default */
|
||||
*(.init)
|
||||
*libgcc.a:cmse_nonsecure_call.o
|
||||
*(EXCLUDE_FILE(*libgcc.a: *libc.a:*lib_a-mem*.o *libm.a:) .text*)
|
||||
*(.fini)
|
||||
/* Pull all c'tors into .text */
|
||||
*crtbegin.o(.ctors)
|
||||
*crtbegin?.o(.ctors)
|
||||
*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
|
||||
*(SORT(.ctors.*))
|
||||
*(.ctors)
|
||||
/* Followed by destructors */
|
||||
*crtbegin.o(.dtors)
|
||||
*crtbegin?.o(.dtors)
|
||||
*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
|
||||
*(SORT(.dtors.*))
|
||||
*(.dtors)
|
||||
|
||||
. = ALIGN(4);
|
||||
/* preinit data */
|
||||
PROVIDE_HIDDEN (__preinit_array_start = .);
|
||||
KEEP(*(SORT(.preinit_array.*)))
|
||||
KEEP(*(.preinit_array))
|
||||
PROVIDE_HIDDEN (__preinit_array_end = .);
|
||||
|
||||
. = ALIGN(4);
|
||||
/* init data */
|
||||
PROVIDE_HIDDEN (__init_array_start = .);
|
||||
KEEP(*(SORT(.init_array.*)))
|
||||
KEEP(*(.init_array))
|
||||
PROVIDE_HIDDEN (__init_array_end = .);
|
||||
|
||||
. = ALIGN(4);
|
||||
/* finit data */
|
||||
PROVIDE_HIDDEN (__fini_array_start = .);
|
||||
*(SORT(.fini_array.*))
|
||||
*(.fini_array)
|
||||
PROVIDE_HIDDEN (__fini_array_end = .);
|
||||
|
||||
*(.eh_frame*)
|
||||
. = ALIGN(4);
|
||||
} > FLASH
|
||||
|
||||
/* Note the boot2 section is optional, and should be discarded if there is
|
||||
no reference to it *inside* the binary, as it is not called by the
|
||||
bootrom. (The bootrom performs a simple best-effort XIP setup and
|
||||
leaves it to the binary to do anything more sophisticated.) However
|
||||
there is still a size limit of 256 bytes, to ensure the boot2 can be
|
||||
stored in boot RAM.
|
||||
|
||||
Really this is a "XIP setup function" -- the name boot2 is historic and
|
||||
refers to its dual-purpose on RP2040, where it also handled vectoring
|
||||
from the bootrom into the user image.
|
||||
*/
|
||||
/*
|
||||
.boot2 : {
|
||||
__boot2_start__ = .;
|
||||
*(.boot2)
|
||||
__boot2_end__ = .;
|
||||
} > FLASH
|
||||
|
||||
ASSERT(__boot2_end__ - __boot2_start__ <= 256,
|
||||
"ERROR: Pico second stage bootloader must be no more than 256 bytes in size")
|
||||
*/
|
||||
.rodata : {
|
||||
*(EXCLUDE_FILE(*libgcc.a: *libc.a:*lib_a-mem*.o *libm.a:) .rodata*)
|
||||
*(.srodata*)
|
||||
. = ALIGN(4);
|
||||
*(SORT_BY_ALIGNMENT(SORT_BY_NAME(.flashdata*)))
|
||||
. = ALIGN(4);
|
||||
} > FLASH
|
||||
|
||||
.ARM.extab :
|
||||
{
|
||||
*(.ARM.extab* .gnu.linkonce.armextab.*)
|
||||
} > FLASH
|
||||
|
||||
__exidx_start = .;
|
||||
.ARM.exidx :
|
||||
{
|
||||
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
|
||||
} > FLASH
|
||||
__exidx_end = .;
|
||||
|
||||
/* Machine inspectable binary information */
|
||||
. = ALIGN(4);
|
||||
__binary_info_start = .;
|
||||
.binary_info :
|
||||
{
|
||||
KEEP(*(.binary_info.keep.*))
|
||||
*(.binary_info.*)
|
||||
} > FLASH
|
||||
__binary_info_end = .;
|
||||
. = ALIGN(4);
|
||||
|
||||
.ram_vector_table (NOLOAD): {
|
||||
*(.ram_vector_table)
|
||||
} > RAM
|
||||
|
||||
.uninitialized_data (NOLOAD): {
|
||||
. = ALIGN(4);
|
||||
*(.uninitialized_data*)
|
||||
} > RAM
|
||||
|
||||
.data : {
|
||||
__data_start__ = .;
|
||||
*(vtable)
|
||||
|
||||
*(.time_critical*)
|
||||
|
||||
/* remaining .text and .rodata; i.e. stuff we exclude above because we want it in RAM */
|
||||
*(.text*)
|
||||
. = ALIGN(4);
|
||||
*(.rodata*)
|
||||
. = ALIGN(4);
|
||||
|
||||
*(.data*)
|
||||
*(.sdata*)
|
||||
|
||||
. = ALIGN(4);
|
||||
*(.after_data.*)
|
||||
. = ALIGN(4);
|
||||
/* preinit data */
|
||||
PROVIDE_HIDDEN (__mutex_array_start = .);
|
||||
KEEP(*(SORT(.mutex_array.*)))
|
||||
KEEP(*(.mutex_array))
|
||||
PROVIDE_HIDDEN (__mutex_array_end = .);
|
||||
|
||||
*(.jcr)
|
||||
. = ALIGN(4);
|
||||
} > RAM AT> FLASH
|
||||
|
||||
.tdata : {
|
||||
. = ALIGN(4);
|
||||
*(.tdata .tdata.* .gnu.linkonce.td.*)
|
||||
/* All data end */
|
||||
__tdata_end = .;
|
||||
} > RAM AT> FLASH
|
||||
PROVIDE(__data_end__ = .);
|
||||
|
||||
/* __etext is (for backwards compatibility) the name of the .data init source pointer (...) */
|
||||
__etext = LOADADDR(.data);
|
||||
|
||||
.tbss (NOLOAD) : {
|
||||
. = ALIGN(4);
|
||||
__bss_start__ = .;
|
||||
__tls_base = .;
|
||||
*(.tbss .tbss.* .gnu.linkonce.tb.*)
|
||||
*(.tcommon)
|
||||
|
||||
__tls_end = .;
|
||||
} > RAM
|
||||
|
||||
.bss (NOLOAD) : {
|
||||
. = ALIGN(4);
|
||||
__tbss_end = .;
|
||||
|
||||
*(SORT_BY_ALIGNMENT(SORT_BY_NAME(.bss*)))
|
||||
*(COMMON)
|
||||
PROVIDE(__global_pointer$ = . + 2K);
|
||||
*(.sbss*)
|
||||
. = ALIGN(4);
|
||||
__bss_end__ = .;
|
||||
} > RAM
|
||||
|
||||
.heap (NOLOAD):
|
||||
{
|
||||
__end__ = .;
|
||||
end = __end__;
|
||||
KEEP(*(.heap*))
|
||||
/* historically on GCC sbrk was growing past __HeapLimit to __StackLimit, however
|
||||
to be more compatible, we now set __HeapLimit explicitly to where the end of the heap is */
|
||||
. = ORIGIN(RAM) + LENGTH(RAM);
|
||||
__HeapLimit = .;
|
||||
} > RAM
|
||||
|
||||
/* Start and end symbols must be word-aligned */
|
||||
.scratch_x : {
|
||||
__scratch_x_start__ = .;
|
||||
*(.scratch_x.*)
|
||||
. = ALIGN(4);
|
||||
__scratch_x_end__ = .;
|
||||
} > SCRATCH_X AT > FLASH
|
||||
__scratch_x_source__ = LOADADDR(.scratch_x);
|
||||
|
||||
.scratch_y : {
|
||||
__scratch_y_start__ = .;
|
||||
*(.scratch_y.*)
|
||||
. = ALIGN(4);
|
||||
__scratch_y_end__ = .;
|
||||
} > SCRATCH_Y AT > FLASH
|
||||
__scratch_y_source__ = LOADADDR(.scratch_y);
|
||||
|
||||
/* .stack*_dummy section doesn't contains any symbols. It is only
|
||||
* used for linker to calculate size of stack sections, and assign
|
||||
* values to stack symbols later
|
||||
*
|
||||
* stack1 section may be empty/missing if platform_launch_core1 is not used */
|
||||
|
||||
/* by default we put core 0 stack at the end of scratch Y, so that if core 1
|
||||
* stack is not used then all of SCRATCH_X is free.
|
||||
*/
|
||||
.stack1_dummy (NOLOAD):
|
||||
{
|
||||
*(.stack1*)
|
||||
} > SCRATCH_X
|
||||
.stack_dummy (NOLOAD):
|
||||
{
|
||||
KEEP(*(.stack*))
|
||||
} > SCRATCH_Y
|
||||
|
||||
.flash_end : {
|
||||
KEEP(*(.embedded_end_block*))
|
||||
PROVIDE(__flash_binary_end = .);
|
||||
} > FLASH = 0xaa
|
||||
|
||||
.psram (NOLOAD) : {
|
||||
__psram_start__ = .;
|
||||
*(.psram*)
|
||||
. = ALIGN(4096);
|
||||
__psram_heap_start__ = .;
|
||||
} > PSRAM
|
||||
|
||||
/* stack limit is poorly named, but historically is maximum heap ptr */
|
||||
__StackLimit = ORIGIN(RAM) + LENGTH(RAM);
|
||||
__StackOneTop = ORIGIN(SCRATCH_X) + LENGTH(SCRATCH_X);
|
||||
__StackTop = ORIGIN(SCRATCH_Y) + LENGTH(SCRATCH_Y);
|
||||
__StackOneBottom = __StackOneTop - SIZEOF(.stack1_dummy);
|
||||
__StackBottom = __StackTop - SIZEOF(.stack_dummy);
|
||||
PROVIDE(__stack = __StackTop);
|
||||
|
||||
/* picolibc and LLVM */
|
||||
PROVIDE (__heap_start = __end__);
|
||||
PROVIDE (__heap_end = __HeapLimit);
|
||||
PROVIDE( __tls_align = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss)) );
|
||||
PROVIDE( __tls_size_align = (__tls_size + __tls_align - 1) & ~(__tls_align - 1));
|
||||
PROVIDE( __arm32_tls_tcb_offset = MAX(8, __tls_align) );
|
||||
|
||||
/* TLSF */
|
||||
PROVIDE (__psram_start = __psram_start__);
|
||||
PROVIDE (__psram_heap_start = __psram_heap_start__);
|
||||
|
||||
/* llvm-libc */
|
||||
PROVIDE (_end = __end__);
|
||||
PROVIDE (__llvm_libc_heap_limit = __HeapLimit);
|
||||
|
||||
/* Check if data + heap + stack exceeds RAM limit */
|
||||
ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed")
|
||||
|
||||
ASSERT( __binary_info_header_end - __logical_binary_start <= 1024, "Binary info must be in first 1024 bytes of the binary")
|
||||
ASSERT( __embedded_block_end - __logical_binary_start <= 4096, "Embedded block must be in first 4096 bytes of the binary")
|
||||
|
||||
/* todo assert on extra code */
|
||||
}
|
||||
|
||||
BIN
lib/rp2350-riscv/ota.o
Normal file
BIN
lib/rp2350-riscv/ota.o
Normal file
Binary file not shown.
53
lib/rp2350-riscv/platform_def.txt
Normal file
53
lib/rp2350-riscv/platform_def.txt
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
-DCFG_TUSB_MCU=OPT_MCU_RP2040
|
||||
-DCFG_TUSB_OS=OPT_OS_PICO
|
||||
-DLIB_BOOT_STAGE2_HEADERS=1
|
||||
-DLIB_PICO_ATOMIC=1
|
||||
-DLIB_PICO_BIT_OPS=1
|
||||
-DLIB_PICO_BIT_OPS_PICO=1
|
||||
-DLIB_PICO_CLIB_INTERFACE=1
|
||||
-DLIB_PICO_CRT0=1
|
||||
-DLIB_PICO_CXX_OPTIONS=1
|
||||
-DLIB_PICO_DIVIDER=1
|
||||
-DLIB_PICO_DIVIDER_COMPILER=1
|
||||
-DLIB_PICO_DOUBLE=1
|
||||
-DLIB_PICO_DOUBLE_PICO=1
|
||||
-DLIB_PICO_FIX_RP2040_USB_DEVICE_ENUMERATION=1
|
||||
-DLIB_PICO_FLOAT=1
|
||||
-DLIB_PICO_FLOAT_PICO=1
|
||||
-DLIB_PICO_FLOAT_PICO_VFP=1
|
||||
-DLIB_PICO_INT64_OPS=1
|
||||
-DLIB_PICO_INT64_OPS_COMPILER=1
|
||||
-DLIB_PICO_MEM_OPS=1
|
||||
-DLIB_PICO_MEM_OPS_COMPILER=1
|
||||
-DLIB_PICO_NEWLIB_INTERFACE=1
|
||||
-DLIB_PICO_PLATFORM=1
|
||||
-DLIB_PICO_PLATFORM_COMPILER=1
|
||||
-DLIB_PICO_PLATFORM_PANIC=1
|
||||
-DLIB_PICO_PLATFORM_SECTIONS=1
|
||||
-DLIB_PICO_RUNTIME=1
|
||||
-DLIB_PICO_RUNTIME_INIT=1
|
||||
-DLIB_PICO_STANDARD_BINARY_INFO=1
|
||||
-DLIB_PICO_STANDARD_LINK=1
|
||||
-DLIB_PICO_SYNC=1
|
||||
-DLIB_PICO_SYNC_CRITICAL_SECTION=1
|
||||
-DLIB_PICO_SYNC_MUTEX=1
|
||||
-DLIB_PICO_SYNC_SEM=1
|
||||
-DLIB_PICO_TIME=1
|
||||
-DLIB_PICO_TIME_ADAPTER=1
|
||||
-DLIB_PICO_UNIQUE_ID=1
|
||||
-DLIB_PICO_UTIL=1
|
||||
-DLIB_TINYUSB_BOARD=1
|
||||
-DLIB_TINYUSB_DEVICE=1
|
||||
-DPICO_32BIT=1
|
||||
-DPICO_BOARD=\"solderparty_rp2350_stamp_xl\"
|
||||
-DPICO_BUILD=1
|
||||
-DPICO_COPY_TO_RAM=0
|
||||
-DPICO_CXX_ENABLE_EXCEPTIONS=0
|
||||
-DPICO_NO_FLASH=0
|
||||
-DPICO_NO_HARDWARE=0
|
||||
-DPICO_ON_DEVICE=1
|
||||
-DPICO_RP2040_USB_DEVICE_ENUMERATION_FIX=1
|
||||
-DPICO_RP2040_USB_DEVICE_UFRAME_FIX=1
|
||||
-DPICO_RP2350=1
|
||||
-DPICO_RISCV=1
|
||||
-DPICO_USE_BLOCKED_RAM=0
|
||||
10
lib/rp2350-riscv/platform_inc.txt
Normal file
10
lib/rp2350-riscv/platform_inc.txt
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
-iwithprefixbefore/include/rp2350
|
||||
-iwithprefixbefore/include/rp2350/pico_base
|
||||
-iwithprefixbefore/pico-sdk/src/rp2350/hardware_regs/include
|
||||
-iwithprefixbefore/pico-sdk/src/rp2350/hardware_structs/include
|
||||
-iwithprefixbefore/pico-sdk/src/rp2350/pico_platform/include
|
||||
-iwithprefixbefore/pico-sdk/src/rp2_common/hardware_riscv/include
|
||||
-iwithprefixbefore/pico-sdk/src/rp2_common/hardware_riscv_platform_timer/include
|
||||
-iwithprefixbefore/pico-sdk/src/rp2_common/hardware_hazard3/include
|
||||
-iwithprefixbefore/pico-sdk/src/rp2_common/hardware_sha256/include
|
||||
-iwithprefixbefore/pico-sdk/src/rp2_common/pico_sha256/include
|
||||
1
lib/rp2350-riscv/platform_wrap.txt
Normal file
1
lib/rp2350-riscv/platform_wrap.txt
Normal file
|
|
@ -0,0 +1 @@
|
|||
-Wl,--wrap=__ctzdi2
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -133,7 +133,7 @@ SECTIONS
|
|||
refers to its dual-purpose on RP2040, where it also handled vectoring
|
||||
from the bootrom into the user image.
|
||||
*/
|
||||
|
||||
/*
|
||||
.boot2 : {
|
||||
__boot2_start__ = .;
|
||||
*(.boot2)
|
||||
|
|
@ -142,7 +142,7 @@ SECTIONS
|
|||
|
||||
ASSERT(__boot2_end__ - __boot2_start__ <= 256,
|
||||
"ERROR: Pico second stage bootloader must be no more than 256 bytes in size")
|
||||
|
||||
*/
|
||||
.rodata : {
|
||||
*(EXCLUDE_FILE(*libgcc.a: *libc.a:*lib_a-mem*.o *libm.a:) .rodata*)
|
||||
*(.srodata*)
|
||||
|
|
|
|||
BIN
lib/rp2350/ota.o
BIN
lib/rp2350/ota.o
Binary file not shown.
|
|
@ -39,7 +39,7 @@
|
|||
-DLIB_TINYUSB_BOARD=1
|
||||
-DLIB_TINYUSB_DEVICE=1
|
||||
-DPICO_32BIT=1
|
||||
-DPICO_BOARD=\"pico2\"
|
||||
-DPICO_BOARD=\"solderparty_rp2350_stamp_xl\"
|
||||
-DPICO_BUILD=1
|
||||
-DPICO_COPY_TO_RAM=0
|
||||
-DPICO_CXX_ENABLE_EXCEPTIONS=0
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit c6b7f4a6fb57c55c04913c6667e956204990f828
|
||||
Subproject commit 9e1457101ca47b9ace198086dbd8854efc573ccf
|
||||
|
|
@ -1,3 +1,5 @@
|
|||
#ifdef PICO_RP2350
|
||||
#ifndef __riscv
|
||||
#include "../lib/FreeRTOS-Kernel/portable/ThirdParty/GCC/RP2350_ARM_NTZ/non_secure/mpu_wrappers_v2_asm.c"
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
#ifdef PICO_RP2040
|
||||
#include "../lib/FreeRTOS-Kernel/portable/ThirdParty/GCC/RP2040/port.c"
|
||||
#else
|
||||
#ifndef __riscv
|
||||
#include "../lib/FreeRTOS-Kernel/portable/ThirdParty/GCC/RP2350_ARM_NTZ/non_secure/port.c"
|
||||
#else
|
||||
#include "../lib/FreeRTOS-Kernel/portable/ThirdParty/GCC/RP2350_RISC-V/port.c"
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
|||
5
libraries/FreeRTOS/src/portASM.S
Normal file
5
libraries/FreeRTOS/src/portASM.S
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
#ifdef PICO_RP2350
|
||||
#ifdef __riscv
|
||||
#include "../lib/FreeRTOS-Kernel/portable/ThirdParty/GCC/RP2350_RISC-V/portASM.S"
|
||||
#endif
|
||||
#endif
|
||||
6
libraries/FreeRTOS/src/portContext.h
Normal file
6
libraries/FreeRTOS/src/portContext.h
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
#ifdef PICO_RP2350
|
||||
#ifdef __riscv
|
||||
#include "../lib/FreeRTOS-Kernel/portable/ThirdParty/GCC/RP2350_RISC-V/include/portContext.h"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
|
@ -1,3 +1,5 @@
|
|||
#ifdef PICO_RP2350
|
||||
#ifndef __riscv
|
||||
#include "../lib/FreeRTOS-Kernel/portable/ThirdParty/GCC/RP2350_ARM_NTZ/non_secure/portasm.c"
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
#ifdef PICO_RP2350
|
||||
#ifndef __riscv
|
||||
#include "../lib/FreeRTOS-Kernel/portable/ThirdParty/GCC/RP2350_ARM_NTZ/non_secure/portmacro.h"
|
||||
#else
|
||||
#include "../lib/FreeRTOS-Kernel/portable/ThirdParty/GCC/RP2350_RISC-V/include/portmacro.h"
|
||||
#endif
|
||||
#else
|
||||
#include "../lib/FreeRTOS-Kernel/portable/ThirdParty/GCC/RP2040/include/portmacro.h"
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
#ifdef PICO_RP2350
|
||||
#ifndef __riscv
|
||||
#include "../lib/FreeRTOS-Kernel/portable/ThirdParty/GCC/RP2350_ARM_NTZ/non_secure//rp2040_config.h"
|
||||
#else
|
||||
#include "../lib/FreeRTOS-Kernel/portable/ThirdParty/GCC/RP2350_RISC-V/include/rp2040_config.h"
|
||||
#endif
|
||||
#else
|
||||
#include "../lib/FreeRTOS-Kernel/portable/ThirdParty/GCC/RP2040/include/rp2040_config.h"
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -119,7 +119,7 @@ bool PWMAudio::begin() {
|
|||
|
||||
if (_stereo && (_pin & 1)) {
|
||||
// Illegal, need to have consecutive pins on the same PWM slice
|
||||
Serial.printf("ERROR: PWMAudio stereo mode requires pin be even\n");
|
||||
DEBUGV("ERROR: PWMAudio stereo mode requires pin be even\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
#include <LittleFS.h>
|
||||
#include "blink_100_1000_rp2040.h"
|
||||
#include "blink_500_500_rp2350.h"
|
||||
#include "blink_250_250_rp2350-riscv.h"
|
||||
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
|
|
|
|||
9844
libraries/PicoOTA/examples/OTAfromFile/blink_250_250_rp2350-riscv.h
Normal file
9844
libraries/PicoOTA/examples/OTAfromFile/blink_250_250_rp2350-riscv.h
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -1,4 +1,5 @@
|
|||
#ifdef PICO_RP2350
|
||||
#ifndef __riscv
|
||||
const unsigned char blink[] = {
|
||||
0x00, 0x20, 0x08, 0x20, 0x49, 0x01, 0x00, 0x10, 0x13, 0x01, 0x00, 0x10,
|
||||
0x15, 0x01, 0x00, 0x10, 0x11, 0x01, 0x00, 0x10, 0x11, 0x01, 0x00, 0x10,
|
||||
|
|
@ -5682,3 +5683,4 @@ const unsigned char blink[] = {
|
|||
0xfc, 0x26, 0xff, 0xff, 0x79, 0x35, 0x12, 0xab
|
||||
};
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -9,12 +9,21 @@ if (${cpu} MATCHES "rp2040")
|
|||
set(PICO_CYW43_SUPPORTED 0)
|
||||
set(OBJARCH armv6-m)
|
||||
set(WRAP -Wl,--wrap=clocks_init)
|
||||
elseif(${cpu} MATCHES "rp2350")
|
||||
set(TUPLE arm-none-eabi)
|
||||
elseif(${cpu} MATCHES "rp2350$")
|
||||
set(PICO_BOARD pico2)
|
||||
set(PICO_PLATFORM rp2350)
|
||||
set(PICO_CYW43_SUPPORTED 0)
|
||||
set(OBJARCH armv8-m)
|
||||
set(WRAP )
|
||||
set(TUPLE arm-none-eabi)
|
||||
elseif(${cpu} MATCHES "rp2350-riscv$")
|
||||
set(PICO_BOARD pico2)
|
||||
set(PICO_PLATFORM rp2350-riscv)
|
||||
set(PICO_CYW43_SUPPORTED 0)
|
||||
set(OBJARCH rv32imac_zicsr_zifencei_zba_zbb_zbs_zbkb)
|
||||
set(WRAP )
|
||||
set(TUPLE riscv32-unknown-elf)
|
||||
else()
|
||||
message(FATAL_ERROR "Unknown CPU, '${cpu}'")
|
||||
endif()
|
||||
|
|
@ -101,7 +110,7 @@ target_link_libraries(ota
|
|||
)
|
||||
|
||||
add_custom_command(TARGET ota POST_BUILD
|
||||
COMMAND ../../system/arm-none-eabi/bin/arm-none-eabi-ld -r -A ${OBJARCH} -b binary -o ota.o ota.bin
|
||||
COMMAND ../../system/arm-none-eabi/bin/arm-none-eabi-objcopy --rename-section .data=.OTA ota.o ../../lib/${cpu}/ota.o
|
||||
COMMAND ../../system/${TUPLE}/bin/${TUPLE}-ld -r -A ${OBJARCH} -b binary -o ota.o ota.bin
|
||||
COMMAND ../../system/${TUPLE}/bin/${TUPLE}-objcopy --rename-section .data=.OTA ota.o ../../lib/${cpu}/ota.o
|
||||
COMMAND cp ../ota_command.h ../../include/${cpu}/pico_base/pico/.
|
||||
)
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ set -e # Exit on error
|
|||
|
||||
export PICO_SDK_PATH="$(cd ../pico-sdk/; pwd)"
|
||||
export PATH="$(cd ../system/arm-none-eabi/bin; pwd):$PATH"
|
||||
export PATH="$(cd ../system/riscv32-unknown-elf/bin; pwd):$PATH"
|
||||
|
||||
rm -rf build
|
||||
mkdir build
|
||||
|
|
@ -18,3 +19,10 @@ cd build-rp2350
|
|||
CPU=rp2350 cmake .. -DPICO_RUNTIME_SKIP_INIT_DEFAULT_ALARM_POOL=1
|
||||
CPU=rp2350 make -j # VERBOSE=1
|
||||
cd ..
|
||||
|
||||
rm -rf build-rp2350-riscv
|
||||
mkdir build-rp2350-riscv
|
||||
cd build-rp2350-riscv
|
||||
CPU=rp2350-riscv cmake .. -DPICO_RUNTIME_SKIP_INIT_DEFAULT_ALARM_POOL=1
|
||||
CPU=rp2350-riscv make -j # VERBOSE=1
|
||||
cd ..
|
||||
|
|
|
|||
295
ota/memmap_ota_rp2350-riscv.ld
Normal file
295
ota/memmap_ota_rp2350-riscv.ld
Normal file
|
|
@ -0,0 +1,295 @@
|
|||
/* Based on GCC ARM embedded samples.
|
||||
Defines the following symbols for use by code:
|
||||
__exidx_start
|
||||
__exidx_end
|
||||
__etext
|
||||
__data_start__
|
||||
__preinit_array_start
|
||||
__preinit_array_end
|
||||
__init_array_start
|
||||
__init_array_end
|
||||
__fini_array_start
|
||||
__fini_array_end
|
||||
__data_end__
|
||||
__bss_start__
|
||||
__bss_end__
|
||||
__end__
|
||||
end
|
||||
__HeapLimit
|
||||
__StackLimit
|
||||
__StackTop
|
||||
__stack (== StackTop)
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
INCLUDE "pico_flash_region.ld"
|
||||
RAM(rwx) : ORIGIN = 0x20000000, LENGTH = 212k
|
||||
GLOBALS(rwx) : ORIGIN = 0x20035000, LENGTH = 44k
|
||||
SCRATCH_X(rwx) : ORIGIN = 0x20080000, LENGTH = 4k
|
||||
SCRATCH_Y(rwx) : ORIGIN = 0x20081000, LENGTH = 4k
|
||||
}
|
||||
|
||||
ENTRY(_entry_point)
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
/* Second stage bootloader is prepended to the image. It must be 256 bytes big
|
||||
and checksummed. It is usually built by the boot_stage2 target
|
||||
in the Raspberry Pi Pico SDK
|
||||
*/
|
||||
|
||||
/* Make sure the globals are not copied/etc. They're empty RAM we will init ourselves */
|
||||
.globals (NOLOAD) : {
|
||||
} > GLOBALS
|
||||
|
||||
.flash_begin : {
|
||||
__flash_binary_start = .;
|
||||
} > FLASH
|
||||
|
||||
/* The bootrom will enter the image at the point indicated in your
|
||||
IMAGE_DEF, which is usually the reset handler of your vector table.
|
||||
|
||||
The debugger will use the ELF entry point, which is the _entry_point
|
||||
symbol, and in our case is *different from the bootrom's entry point.*
|
||||
This is used to go back through the bootrom on debugger launches only,
|
||||
to perform the same initial flash setup that would be performed on a
|
||||
cold boot.
|
||||
*/
|
||||
|
||||
.flashtext : {
|
||||
__logical_binary_start = .;
|
||||
KEEP (*(.vectors))
|
||||
KEEP (*(.binary_info_header))
|
||||
__binary_info_header_end = .;
|
||||
KEEP (*(.embedded_block))
|
||||
__embedded_block_end = .;
|
||||
KEEP (*(.reset))
|
||||
. = ALIGN(4);
|
||||
} > FLASH
|
||||
|
||||
.rodata : {
|
||||
/* segments not marked as .flashdata are instead pulled into .data (in RAM) to avoid accidental flash accesses */
|
||||
*(SORT_BY_ALIGNMENT(SORT_BY_NAME(.flashdata*)))
|
||||
. = ALIGN(4);
|
||||
} > FLASH
|
||||
|
||||
.ARM.extab :
|
||||
{
|
||||
*(.ARM.extab* .gnu.linkonce.armextab.*)
|
||||
} > FLASH
|
||||
|
||||
__exidx_start = .;
|
||||
.ARM.exidx :
|
||||
{
|
||||
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
|
||||
} > FLASH
|
||||
__exidx_end = .;
|
||||
|
||||
/* Machine inspectable binary information */
|
||||
. = ALIGN(4);
|
||||
__binary_info_start = .;
|
||||
.binary_info :
|
||||
{
|
||||
KEEP(*(.binary_info.keep.*))
|
||||
*(.binary_info.*)
|
||||
} > FLASH
|
||||
__binary_info_end = .;
|
||||
. = ALIGN(4);
|
||||
|
||||
/* Vector table goes first in RAM, to avoid large alignment hole */
|
||||
.ram_vector_table (NOLOAD): {
|
||||
*(.ram_vector_table)
|
||||
} > RAM
|
||||
|
||||
.uninitialized_data (NOLOAD): {
|
||||
. = ALIGN(4);
|
||||
*(.uninitialized_data*)
|
||||
} > RAM
|
||||
|
||||
.text : {
|
||||
__ram_text_start__ = .;
|
||||
*(.init)
|
||||
*(.text*)
|
||||
*(.fini)
|
||||
/* Pull all c'tors into .text */
|
||||
*crtbegin.o(.ctors)
|
||||
*crtbegin?.o(.ctors)
|
||||
*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
|
||||
*(SORT(.ctors.*))
|
||||
*(.ctors)
|
||||
/* Followed by destructors */
|
||||
*crtbegin.o(.dtors)
|
||||
*crtbegin?.o(.dtors)
|
||||
*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
|
||||
*(SORT(.dtors.*))
|
||||
*(.dtors)
|
||||
|
||||
*(.eh_frame*)
|
||||
. = ALIGN(4);
|
||||
__ram_text_end__ = .;
|
||||
} > RAM AT> FLASH
|
||||
__ram_text_source__ = LOADADDR(.text);
|
||||
. = ALIGN(4);
|
||||
|
||||
.data : {
|
||||
__data_start__ = .;
|
||||
*(vtable)
|
||||
|
||||
*(.time_critical*)
|
||||
|
||||
. = ALIGN(4);
|
||||
*(.rodata*)
|
||||
*(.srodata*)
|
||||
. = ALIGN(4);
|
||||
|
||||
*(.data*)
|
||||
*(.sdata*)
|
||||
|
||||
. = ALIGN(4);
|
||||
*(.after_data.*)
|
||||
. = ALIGN(4);
|
||||
/* preinit data */
|
||||
PROVIDE_HIDDEN (__mutex_array_start = .);
|
||||
KEEP(*(SORT(.mutex_array.*)))
|
||||
KEEP(*(.mutex_array))
|
||||
PROVIDE_HIDDEN (__mutex_array_end = .);
|
||||
|
||||
. = ALIGN(4);
|
||||
/* preinit data */
|
||||
PROVIDE_HIDDEN (__preinit_array_start = .);
|
||||
KEEP(*(SORT(.preinit_array.*)))
|
||||
KEEP(*(.preinit_array))
|
||||
PROVIDE_HIDDEN (__preinit_array_end = .);
|
||||
|
||||
. = ALIGN(4);
|
||||
/* init data */
|
||||
PROVIDE_HIDDEN (__init_array_start = .);
|
||||
KEEP(*(SORT(.init_array.*)))
|
||||
KEEP(*(.init_array))
|
||||
PROVIDE_HIDDEN (__init_array_end = .);
|
||||
|
||||
. = ALIGN(4);
|
||||
/* finit data */
|
||||
PROVIDE_HIDDEN (__fini_array_start = .);
|
||||
*(SORT(.fini_array.*))
|
||||
*(.fini_array)
|
||||
PROVIDE_HIDDEN (__fini_array_end = .);
|
||||
|
||||
*(.jcr)
|
||||
. = ALIGN(4);
|
||||
} > RAM AT> FLASH
|
||||
|
||||
.tdata : {
|
||||
. = ALIGN(4);
|
||||
*(.tdata .tdata.* .gnu.linkonce.td.*)
|
||||
/* All data end */
|
||||
__tdata_end = .;
|
||||
} > RAM AT> FLASH
|
||||
PROVIDE(__data_end__ = .);
|
||||
|
||||
/* __etext is (for backwards compatibility) the name of the .data init source pointer (...) */
|
||||
__etext = LOADADDR(.data);
|
||||
|
||||
.tbss (NOLOAD) : {
|
||||
. = ALIGN(4);
|
||||
__bss_start__ = .;
|
||||
__tls_base = .;
|
||||
*(.tbss .tbss.* .gnu.linkonce.tb.*)
|
||||
*(.tcommon)
|
||||
|
||||
__tls_end = .;
|
||||
} > RAM
|
||||
|
||||
.bss : {
|
||||
. = ALIGN(4);
|
||||
__tbss_end = .;
|
||||
|
||||
*(SORT_BY_ALIGNMENT(SORT_BY_NAME(.bss*)))
|
||||
*(COMMON)
|
||||
PROVIDE(__global_pointer$ = . + 2K);
|
||||
*(.sbss*)
|
||||
. = ALIGN(4);
|
||||
__bss_end__ = .;
|
||||
} > RAM
|
||||
|
||||
.heap (NOLOAD):
|
||||
{
|
||||
__end__ = .;
|
||||
end = __end__;
|
||||
KEEP(*(.heap*))
|
||||
/* historically on GCC sbrk was growing past __HeapLimit to __StackLimit, however
|
||||
to be more compatible, we now set __HeapLimit explicitly to where the end of the heap is */
|
||||
. = ORIGIN(RAM) + LENGTH(RAM);
|
||||
__HeapLimit = .;
|
||||
} > RAM
|
||||
|
||||
/* Start and end symbols must be word-aligned */
|
||||
.scratch_x : {
|
||||
__scratch_x_start__ = .;
|
||||
*(.scratch_x.*)
|
||||
. = ALIGN(4);
|
||||
__scratch_x_end__ = .;
|
||||
} > SCRATCH_X AT > FLASH
|
||||
__scratch_x_source__ = LOADADDR(.scratch_x);
|
||||
|
||||
.scratch_y : {
|
||||
__scratch_y_start__ = .;
|
||||
*(.scratch_y.*)
|
||||
. = ALIGN(4);
|
||||
__scratch_y_end__ = .;
|
||||
} > SCRATCH_Y AT > FLASH
|
||||
__scratch_y_source__ = LOADADDR(.scratch_y);
|
||||
|
||||
/* .stack*_dummy section doesn't contains any symbols. It is only
|
||||
* used for linker to calculate size of stack sections, and assign
|
||||
* values to stack symbols later
|
||||
*
|
||||
* stack1 section may be empty/missing if platform_launch_core1 is not used */
|
||||
|
||||
/* by default we put core 0 stack at the end of scratch Y, so that if core 1
|
||||
* stack is not used then all of SCRATCH_X is free.
|
||||
*/
|
||||
.stack1_dummy (NOLOAD):
|
||||
{
|
||||
*(.stack1*)
|
||||
} > SCRATCH_X
|
||||
.stack_dummy (NOLOAD):
|
||||
{
|
||||
KEEP(*(.stack*))
|
||||
} > SCRATCH_Y
|
||||
|
||||
.flash_end : {
|
||||
KEEP(*(.embedded_end_block*))
|
||||
PROVIDE(__flash_binary_end = .);
|
||||
} > FLASH =0xaa
|
||||
|
||||
/* stack limit is poorly named, but historically is maximum heap ptr */
|
||||
__StackLimit = ORIGIN(RAM) + LENGTH(RAM);
|
||||
__StackOneTop = ORIGIN(SCRATCH_X) + LENGTH(SCRATCH_X);
|
||||
__StackTop = ORIGIN(SCRATCH_Y) + LENGTH(SCRATCH_Y);
|
||||
__StackOneBottom = __StackOneTop - SIZEOF(.stack1_dummy);
|
||||
__StackBottom = __StackTop - SIZEOF(.stack_dummy);
|
||||
PROVIDE(__stack = __StackTop);
|
||||
|
||||
/* picolibc and LLVM */
|
||||
PROVIDE (__heap_start = __end__);
|
||||
PROVIDE (__heap_end = __HeapLimit);
|
||||
PROVIDE( __tls_align = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss)) );
|
||||
PROVIDE( __tls_size_align = (__tls_size + __tls_align - 1) & ~(__tls_align - 1));
|
||||
PROVIDE( __arm32_tls_tcb_offset = MAX(8, __tls_align) );
|
||||
|
||||
/* llvm-libc */
|
||||
PROVIDE (_end = __end__);
|
||||
PROVIDE (__llvm_libc_heap_limit = __HeapLimit);
|
||||
|
||||
/* Check if data + heap + stack exceeds RAM limit */
|
||||
ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed")
|
||||
|
||||
ASSERT( __binary_info_header_end - __logical_binary_start <= 1024, "Binary info must be in first 1024 bytes of the binary")
|
||||
ASSERT( __embedded_block_end - __logical_binary_start <= 4096, "Embedded block must be in first 4096 bytes of the binary")
|
||||
|
||||
/* todo assert on extra code */
|
||||
PROVIDE(__mainapp = 0x10003022);
|
||||
}
|
||||
|
||||
|
|
@ -178,6 +178,13 @@ int main(int a, char **b) {
|
|||
|
||||
do_ota();
|
||||
|
||||
#ifdef __riscv
|
||||
extern void __mainapp();
|
||||
__mainapp();
|
||||
|
||||
// Should never get here!
|
||||
return 0;
|
||||
#else
|
||||
// Reset the interrupt/etc. vectors to the real app. Will be copied to RAM in app's runtime_init
|
||||
scb_hw->vtor = (uint32_t)0x10003000;
|
||||
|
||||
|
|
@ -190,6 +197,7 @@ int main(int a, char **b) {
|
|||
|
||||
// Should never get here!
|
||||
return *sp;
|
||||
#endif
|
||||
}
|
||||
#pragma GCC pop_options
|
||||
|
||||
|
|
|
|||
|
|
@ -333,17 +333,22 @@
|
|||
"toolsDependencies": [
|
||||
{
|
||||
"packager": "rp2040",
|
||||
"version": "2.3.0-dfd82b2",
|
||||
"version": "4.0.1-8ec9d6f",
|
||||
"name": "pqt-gcc"
|
||||
},
|
||||
{
|
||||
"packager": "rp2040",
|
||||
"version": "2.3.0-dfd82b2",
|
||||
"version": "4.0.1-8ec9d6f",
|
||||
"name": "pqt-gcc-riscv"
|
||||
},
|
||||
{
|
||||
"packager": "rp2040",
|
||||
"version": "4.0.1-8ec9d6f",
|
||||
"name": "pqt-mklittlefs"
|
||||
},
|
||||
{
|
||||
"packager": "rp2040",
|
||||
"version": "2.3.0-dfd82b2",
|
||||
"version": "4.0.1-8ec9d6f",
|
||||
"name": "pqt-pioasm"
|
||||
},
|
||||
{
|
||||
|
|
@ -353,12 +358,12 @@
|
|||
},
|
||||
{
|
||||
"packager": "rp2040",
|
||||
"version": "2.3.0-dfd82b2",
|
||||
"version": "4.0.1-8ec9d6f",
|
||||
"name": "pqt-openocd"
|
||||
},
|
||||
{
|
||||
"packager": "rp2040",
|
||||
"version": "2.3.0-dfd82b2",
|
||||
"version": "4.0.1-8ec9d6f",
|
||||
"name": "pqt-picotool"
|
||||
}
|
||||
],
|
||||
|
|
@ -369,125 +374,187 @@
|
|||
],
|
||||
"tools": [
|
||||
{
|
||||
"version": "2.3.0-dfd82b2",
|
||||
"version": "4.0.1-8ec9d6f",
|
||||
"name": "pqt-gcc",
|
||||
"systems": [
|
||||
{
|
||||
"host": "arm64-apple-darwin",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/aarch64-apple-darwin20.4.arm-none-eabi-8ec9d6f.240929.tar.gz",
|
||||
"archiveFileName": "aarch64-apple-darwin20.4.arm-none-eabi-8ec9d6f.240929.tar.gz",
|
||||
"checksum": "SHA-256:cb84f473efda1b8147d552b5e42a20017654fb13ffa8fa6fabdca6b517f0eaa9",
|
||||
"size": "106002809"
|
||||
},
|
||||
{
|
||||
"host": "aarch64-linux-gnu",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/aarch64-linux-gnu.arm-none-eabi-8ec9d6f.240929.tar.gz",
|
||||
"archiveFileName": "aarch64-linux-gnu.arm-none-eabi-8ec9d6f.240929.tar.gz",
|
||||
"checksum": "SHA-256:f80c0bacbb9e522666e2f41a35a8536dfe1b959532062e63dd052a576ba7f418",
|
||||
"size": "114435949"
|
||||
},
|
||||
{
|
||||
"host": "arm-linux-gnueabihf",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/arm-linux-gnueabihf.arm-none-eabi-8ec9d6f.240929.tar.gz",
|
||||
"archiveFileName": "arm-linux-gnueabihf.arm-none-eabi-8ec9d6f.240929.tar.gz",
|
||||
"checksum": "SHA-256:736679d3aa55ba08ca2cfc4e88e1a71eff2bcba7c4d1aed2f9d3e325bf7f362d",
|
||||
"size": "107960125"
|
||||
},
|
||||
{
|
||||
"host": "i686-pc-linux-gnu",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/i686-linux-gnu.arm-none-eabi-8ec9d6f.240929.tar.gz",
|
||||
"archiveFileName": "i686-linux-gnu.arm-none-eabi-8ec9d6f.240929.tar.gz",
|
||||
"checksum": "SHA-256:ba8bfadaa28da88777f95de0f28720d4bc6d24367bacc0751fe7f91fabec543d",
|
||||
"size": "117654636"
|
||||
},
|
||||
{
|
||||
"host": "i686-mingw32",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/i686-w64-mingw32.arm-none-eabi-8ec9d6f.240929.zip",
|
||||
"archiveFileName": "i686-w64-mingw32.arm-none-eabi-8ec9d6f.240929.zip",
|
||||
"checksum": "SHA-256:3b9672cbd4ebb32cd1510bfd7839ab0b59f6fac3ecd6151aa0d10047a1c2230a",
|
||||
"size": "124363537"
|
||||
},
|
||||
{
|
||||
"host": "x86_64-apple-darwin",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/x86_64-apple-darwin20.4.arm-none-eabi-8ec9d6f.240929.tar.gz",
|
||||
"archiveFileName": "x86_64-apple-darwin20.4.arm-none-eabi-8ec9d6f.240929.tar.gz",
|
||||
"checksum": "SHA-256:509820140252eed71cc4148f89c00318febddea08e500ffaa642cb7b7831ba59",
|
||||
"size": "118604056"
|
||||
},
|
||||
{
|
||||
"host": "x86_64-pc-linux-gnu",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/x86_64-linux-gnu.arm-none-eabi-8ec9d6f.240929.tar.gz",
|
||||
"archiveFileName": "x86_64-linux-gnu.arm-none-eabi-8ec9d6f.240929.tar.gz",
|
||||
"checksum": "SHA-256:ae082491cc07d60c014ca928c406aed72c4b1ead4c33076216c77fd2d242f74d",
|
||||
"size": "115607420"
|
||||
},
|
||||
{
|
||||
"host": "x86_64-mingw32",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/x86_64-w64-mingw32.arm-none-eabi-8ec9d6f.240929.zip",
|
||||
"archiveFileName": "x86_64-w64-mingw32.arm-none-eabi-8ec9d6f.240929.zip",
|
||||
"checksum": "SHA-256:a1ac18cde856fa01aafc9985a719f3749abd3588ac6725d1781f02da94b84d54",
|
||||
"size": "128268207"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"version": "4.0.1-8ec9d6f",
|
||||
"name": "pqt-picotool",
|
||||
"systems": [
|
||||
{
|
||||
"host": "arm64-apple-darwin",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/aarch64-apple-darwin20.4.picotool-8a9af99.240919.tar.gz",
|
||||
"archiveFileName": "aarch64-apple-darwin20.4.picotool-8a9af99.240919.tar.gz",
|
||||
"checksum": "SHA-256:3e20acb5e8c97448a5ffa316cfc74307df0fd887cf4364d787956ddc359608c1",
|
||||
"size": "856203"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/aarch64-apple-darwin20.4.picotool-8a9af99.240929.tar.gz",
|
||||
"archiveFileName": "aarch64-apple-darwin20.4.picotool-8a9af99.240929.tar.gz",
|
||||
"checksum": "SHA-256:71eb93270747c5910893f36f5552affd4c254f085b4a7850765b29eec28040ec",
|
||||
"size": "856205"
|
||||
},
|
||||
{
|
||||
"host": "aarch64-linux-gnu",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/aarch64-linux-gnu.picotool-8a9af99.240919.tar.gz",
|
||||
"archiveFileName": "aarch64-linux-gnu.picotool-8a9af99.240919.tar.gz",
|
||||
"checksum": "SHA-256:67a912dd712a1717bf850205aff9ee4b3f0a289c4d0a87ab62e9f71c433e6d38",
|
||||
"size": "896504"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/aarch64-linux-gnu.picotool-8a9af99.240929.tar.gz",
|
||||
"archiveFileName": "aarch64-linux-gnu.picotool-8a9af99.240929.tar.gz",
|
||||
"checksum": "SHA-256:1f73e2c6ce8c7503678dfacec3d2ea889e0f5a161912eff68b290cf405206094",
|
||||
"size": "896502"
|
||||
},
|
||||
{
|
||||
"host": "arm-linux-gnueabihf",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/arm-linux-gnueabihf.picotool-8a9af99.240919.tar.gz",
|
||||
"archiveFileName": "arm-linux-gnueabihf.picotool-8a9af99.240919.tar.gz",
|
||||
"checksum": "SHA-256:2fa0a0a2affa8991b917c06b89cb3c4be597d120bd920b6258a4f7ce041c877b",
|
||||
"size": "840245"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/arm-linux-gnueabihf.picotool-8a9af99.240929.tar.gz",
|
||||
"archiveFileName": "arm-linux-gnueabihf.picotool-8a9af99.240929.tar.gz",
|
||||
"checksum": "SHA-256:6cd60632141f68e1bde7afef93dc5521e78dfff2be421ffddd2da76af5bb3eb1",
|
||||
"size": "840254"
|
||||
},
|
||||
{
|
||||
"host": "i686-pc-linux-gnu",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/i686-linux-gnu.picotool-8a9af99.240919.tar.gz",
|
||||
"archiveFileName": "i686-linux-gnu.picotool-8a9af99.240919.tar.gz",
|
||||
"checksum": "SHA-256:b0c8018a58c3d3b1e72698326a38f660c9dbc535a393179a92a009a24a22e90a",
|
||||
"size": "984649"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/i686-linux-gnu.picotool-8a9af99.240929.tar.gz",
|
||||
"archiveFileName": "i686-linux-gnu.picotool-8a9af99.240929.tar.gz",
|
||||
"checksum": "SHA-256:bd5acd7d7085ba01bff07fef6ce4a5ba067abd0b8914c33fae371ec87c846d83",
|
||||
"size": "984652"
|
||||
},
|
||||
{
|
||||
"host": "i686-mingw32",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/i686-w64-mingw32.picotool-8a9af99.240919.zip",
|
||||
"archiveFileName": "i686-w64-mingw32.picotool-8a9af99.240919.zip",
|
||||
"checksum": "SHA-256:f23a2a4b3994b80f885e28050f5559a2875294a62de431d7e0d254a800caece2",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/i686-w64-mingw32.picotool-8a9af99.240929.zip",
|
||||
"archiveFileName": "i686-w64-mingw32.picotool-8a9af99.240929.zip",
|
||||
"checksum": "SHA-256:9f7c90c4f05996f5156beb4dc06edfc7e0b36006edd6ad273daca0085ea19ac6",
|
||||
"size": "1335369"
|
||||
},
|
||||
{
|
||||
"host": "x86_64-apple-darwin",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/x86_64-apple-darwin20.4.picotool-8a9af99.240919.tar.gz",
|
||||
"archiveFileName": "x86_64-apple-darwin20.4.picotool-8a9af99.240919.tar.gz",
|
||||
"checksum": "SHA-256:86b55d51fc9e154ce209a067afac54116bce2bac823f5f3ec3687b7a021230a5",
|
||||
"size": "829476"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/x86_64-apple-darwin20.4.picotool-8a9af99.240929.tar.gz",
|
||||
"archiveFileName": "x86_64-apple-darwin20.4.picotool-8a9af99.240929.tar.gz",
|
||||
"checksum": "SHA-256:a8d30f63e421901000d2b2520f047d1dc586f827f41a3ef52056fd92272ff051",
|
||||
"size": "829477"
|
||||
},
|
||||
{
|
||||
"host": "x86_64-pc-linux-gnu",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/x86_64-linux-gnu.picotool-8a9af99.240919.tar.gz",
|
||||
"archiveFileName": "x86_64-linux-gnu.picotool-8a9af99.240919.tar.gz",
|
||||
"checksum": "SHA-256:1192b43bcacfa33cc5b2d58e4686c7cbf3e4e77fd819d2fbf2cc797a3e174bb8",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/x86_64-linux-gnu.picotool-8a9af99.240929.tar.gz",
|
||||
"archiveFileName": "x86_64-linux-gnu.picotool-8a9af99.240929.tar.gz",
|
||||
"checksum": "SHA-256:4c5b43afd1e9dba149753089c9715e110f2612cbd47fa005fb033adbe5237ad8",
|
||||
"size": "926046"
|
||||
},
|
||||
{
|
||||
"host": "x86_64-mingw32",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/x86_64-w64-mingw32.picotool-8a9af99.240919.zip",
|
||||
"archiveFileName": "x86_64-w64-mingw32.picotool-8a9af99.240919.zip",
|
||||
"checksum": "SHA-256:86a95cae6edfbefe1725f66fcea9ebe20d19bdc8708371d32a21473ca197967d",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/x86_64-w64-mingw32.picotool-8a9af99.240929.zip",
|
||||
"archiveFileName": "x86_64-w64-mingw32.picotool-8a9af99.240929.zip",
|
||||
"checksum": "SHA-256:d4a43c8172f6b32de412a08e4deac4ef50218f5955c9cda85411b252fcecaea3",
|
||||
"size": "1270392"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"version": "2.3.0-dfd82b2",
|
||||
"version": "4.0.1-8ec9d6f",
|
||||
"name": "pqt-openocd",
|
||||
"systems": [
|
||||
{
|
||||
"host": "arm64-apple-darwin",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/aarch64-apple-darwin20.4.openocd-ebec9504d.240919.tar.gz",
|
||||
"archiveFileName": "aarch64-apple-darwin20.4.openocd-ebec9504d.240919.tar.gz",
|
||||
"checksum": "SHA-256:eb89c3fb9d797e6dadbc14a866d1cfe27b425689a32687773aef6bf3dbe8d855",
|
||||
"size": "1981014"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/aarch64-apple-darwin20.4.openocd-ebec9504d.240929.tar.gz",
|
||||
"archiveFileName": "aarch64-apple-darwin20.4.openocd-ebec9504d.240929.tar.gz",
|
||||
"checksum": "SHA-256:d2f2e615b45cb57dad5bf8cc8637dc047f0e2a2d6d07907b961f82fdc9d9dff1",
|
||||
"size": "1981025"
|
||||
},
|
||||
{
|
||||
"host": "aarch64-linux-gnu",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/aarch64-linux-gnu.openocd-ebec9504d.240919.tar.gz",
|
||||
"archiveFileName": "aarch64-linux-gnu.openocd-ebec9504d.240919.tar.gz",
|
||||
"checksum": "SHA-256:845e7a4918b8ee0fea7854b0d7b973009390b245560fc1699be71d0c5470ff71",
|
||||
"size": "7440912"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/aarch64-linux-gnu.openocd-ebec9504d.240929.tar.gz",
|
||||
"archiveFileName": "aarch64-linux-gnu.openocd-ebec9504d.240929.tar.gz",
|
||||
"checksum": "SHA-256:b9f98837bce6da1e7d2229d8e2a9a2736a433356b82cea678b8fc4e95c3cd30f",
|
||||
"size": "7354446"
|
||||
},
|
||||
{
|
||||
"host": "arm-linux-gnueabihf",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/arm-linux-gnueabihf.openocd-ebec9504d.240919.tar.gz",
|
||||
"archiveFileName": "arm-linux-gnueabihf.openocd-ebec9504d.240919.tar.gz",
|
||||
"checksum": "SHA-256:4e9278e8777af01f90c51dc7fb9d5c8c912c11a9c3597a3d8b4f314d17f17ed4",
|
||||
"size": "7296425"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/arm-linux-gnueabihf.openocd-ebec9504d.240929.tar.gz",
|
||||
"archiveFileName": "arm-linux-gnueabihf.openocd-ebec9504d.240929.tar.gz",
|
||||
"checksum": "SHA-256:5a13e718029d5b86fef880f78e60e7521fcf1952911cd65b4cbfc8ef09a5d37c",
|
||||
"size": "7209884"
|
||||
},
|
||||
{
|
||||
"host": "i686-pc-linux-gnu",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/i686-linux-gnu.openocd-ebec9504d.240919.tar.gz",
|
||||
"archiveFileName": "i686-linux-gnu.openocd-ebec9504d.240919.tar.gz",
|
||||
"checksum": "SHA-256:ace2a6c14e7c1e89921b50e1e0735ac2999b193d8baf9e9d35fbdb2b6a870d20",
|
||||
"size": "7031049"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/i686-linux-gnu.openocd-ebec9504d.240929.tar.gz",
|
||||
"archiveFileName": "i686-linux-gnu.openocd-ebec9504d.240929.tar.gz",
|
||||
"checksum": "SHA-256:fa324ab0a8a20dab6335196e6b8ebb5fb0c083dc4d8017140287068bf85b3b5f",
|
||||
"size": "6944581"
|
||||
},
|
||||
{
|
||||
"host": "i686-mingw32",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/i686-w64-mingw32.openocd-ebec9504d.240919.zip",
|
||||
"archiveFileName": "i686-w64-mingw32.openocd-ebec9504d.240919.zip",
|
||||
"checksum": "SHA-256:0082def9373e56608c584e94c8c199c44f8fd00153557878478edaf383d496a9",
|
||||
"size": "2597198"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/i686-w64-mingw32.openocd-ebec9504d.240929.zip",
|
||||
"archiveFileName": "i686-w64-mingw32.openocd-ebec9504d.240929.zip",
|
||||
"checksum": "SHA-256:f0d9cd099bb80d9f68b3554ef9233b2576c4959b4d2ce7444a9a5358d3bd40e0",
|
||||
"size": "2597199"
|
||||
},
|
||||
{
|
||||
"host": "x86_64-apple-darwin",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/x86_64-apple-darwin20.4.openocd-ebec9504d.240919.tar.gz",
|
||||
"archiveFileName": "x86_64-apple-darwin20.4.openocd-ebec9504d.240919.tar.gz",
|
||||
"checksum": "SHA-256:1e0fe05bed6ab8d4e41898496b45940893fe308d1b66c49448fefa9c67d41024",
|
||||
"size": "3193799"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/x86_64-apple-darwin20.4.openocd-ebec9504d.240929.tar.gz",
|
||||
"archiveFileName": "x86_64-apple-darwin20.4.openocd-ebec9504d.240929.tar.gz",
|
||||
"checksum": "SHA-256:e06283df22585bf6a83742d364d3594f7bcd724aa8be83de0446c3d1eaca7a58",
|
||||
"size": "3193818"
|
||||
},
|
||||
{
|
||||
"host": "x86_64-pc-linux-gnu",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/x86_64-linux-gnu.openocd-ebec9504d.240919.tar.gz",
|
||||
"archiveFileName": "x86_64-linux-gnu.openocd-ebec9504d.240919.tar.gz",
|
||||
"checksum": "SHA-256:8ddae277a21f485636989903b2ae0dbf98e5ae8d58c80bf73782bef217cf151b",
|
||||
"size": "7462299"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/x86_64-linux-gnu.openocd-ebec9504d.240929.tar.gz",
|
||||
"archiveFileName": "x86_64-linux-gnu.openocd-ebec9504d.240929.tar.gz",
|
||||
"checksum": "SHA-256:d8dd0740e16414488de35f5ca1ddfcfe85763fe25d55a46cb9df8698ea83836d",
|
||||
"size": "7375538"
|
||||
},
|
||||
{
|
||||
"host": "x86_64-mingw32",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/x86_64-w64-mingw32.openocd-ebec9504d.240919.zip",
|
||||
"archiveFileName": "x86_64-w64-mingw32.openocd-ebec9504d.240919.zip",
|
||||
"checksum": "SHA-256:a5d27ca4f6fa1e05f55d287c2cfdb124c47b3c064bf10c4f660ddd97dda8ed23",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/x86_64-w64-mingw32.openocd-ebec9504d.240929.zip",
|
||||
"archiveFileName": "x86_64-w64-mingw32.openocd-ebec9504d.240929.zip",
|
||||
"checksum": "SHA-256:4c6463c2818f7b9623d1c08c17c6e6036bd8d522631098d8befde5b66ab312f9",
|
||||
"size": "2541780"
|
||||
}
|
||||
]
|
||||
|
|
@ -562,188 +629,188 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"version": "2.3.0-dfd82b2",
|
||||
"name": "pqt-gcc",
|
||||
"version": "4.0.1-8ec9d6f",
|
||||
"name": "pqt-gcc-riscv",
|
||||
"systems": [
|
||||
{
|
||||
"host": "arm64-apple-darwin",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/aarch64-apple-darwin20.4.arm-none-eabi-dfd82b2.240919.tar.gz",
|
||||
"archiveFileName": "aarch64-apple-darwin20.4.arm-none-eabi-dfd82b2.240919.tar.gz",
|
||||
"checksum": "SHA-256:9a0bce8ae3d28489cdc2bf4d1d849b7b9c93f13b74f2449d07499f224801ed99",
|
||||
"size": "96802517"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/aarch64-apple-darwin20.4.riscv32-unknown-elf-8ec9d6f.240929.tar.gz",
|
||||
"archiveFileName": "aarch64-apple-darwin20.4.riscv32-unknown-elf-8ec9d6f.240929.tar.gz",
|
||||
"checksum": "SHA-256:2dc5495acf7de48ce8e1c3f723e78102ad06add8e8e5dee86bf1dc05b25147ad",
|
||||
"size": "139017383"
|
||||
},
|
||||
{
|
||||
"host": "aarch64-linux-gnu",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/aarch64-linux-gnu.arm-none-eabi-dfd82b2.240919.tar.gz",
|
||||
"archiveFileName": "aarch64-linux-gnu.arm-none-eabi-dfd82b2.240919.tar.gz",
|
||||
"checksum": "SHA-256:04dfe507037553fb5b0844bfc674d7f39cb8fa30fedbd72739b4c5324b260e04",
|
||||
"size": "103997060"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/aarch64-linux-gnu.riscv32-unknown-elf-8ec9d6f.240929.tar.gz",
|
||||
"archiveFileName": "aarch64-linux-gnu.riscv32-unknown-elf-8ec9d6f.240929.tar.gz",
|
||||
"checksum": "SHA-256:5d70f84ee56d68583ff61eff6461a4f3e2ecfcd445ffecdbb53e944dd229de5e",
|
||||
"size": "148943445"
|
||||
},
|
||||
{
|
||||
"host": "arm-linux-gnueabihf",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/arm-linux-gnueabihf.arm-none-eabi-dfd82b2.240919.tar.gz",
|
||||
"archiveFileName": "arm-linux-gnueabihf.arm-none-eabi-dfd82b2.240919.tar.gz",
|
||||
"checksum": "SHA-256:365dd442d1d2cc284ddc7c1df7f96620e4b9169de268f4c2c2dd85f515724838",
|
||||
"size": "97831453"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/arm-linux-gnueabihf.riscv32-unknown-elf-8ec9d6f.240929.tar.gz",
|
||||
"archiveFileName": "arm-linux-gnueabihf.riscv32-unknown-elf-8ec9d6f.240929.tar.gz",
|
||||
"checksum": "SHA-256:65a3cd450d1b2a18e4bb6192f375e98e82a9808545d517a21357900a931f83f2",
|
||||
"size": "142237277"
|
||||
},
|
||||
{
|
||||
"host": "i686-pc-linux-gnu",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/i686-linux-gnu.arm-none-eabi-dfd82b2.240919.tar.gz",
|
||||
"archiveFileName": "i686-linux-gnu.arm-none-eabi-dfd82b2.240919.tar.gz",
|
||||
"checksum": "SHA-256:8844d6c9f9040a673c0354b9fdc413faaa8f4075292f8b9fdefca020c0a7cd03",
|
||||
"size": "106646523"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/i686-linux-gnu.riscv32-unknown-elf-8ec9d6f.240929.tar.gz",
|
||||
"archiveFileName": "i686-linux-gnu.riscv32-unknown-elf-8ec9d6f.240929.tar.gz",
|
||||
"checksum": "SHA-256:130a9d0e970609dd27f70a27d5d34ed927b6a270f956f52aec3b636a206d86f6",
|
||||
"size": "153960388"
|
||||
},
|
||||
{
|
||||
"host": "i686-mingw32",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/i686-w64-mingw32.arm-none-eabi-dfd82b2.240919.zip",
|
||||
"archiveFileName": "i686-w64-mingw32.arm-none-eabi-dfd82b2.240919.zip",
|
||||
"checksum": "SHA-256:11ff0b24c557cf8334450c6f4826230ec2f25efbf0792f506c3009e2663205ea",
|
||||
"size": "113765075"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/i686-w64-mingw32.riscv32-unknown-elf-8ec9d6f.240929.zip",
|
||||
"archiveFileName": "i686-w64-mingw32.riscv32-unknown-elf-8ec9d6f.240929.zip",
|
||||
"checksum": "SHA-256:25f985cd7ff242fa93a808582911545529eeab2d84b16ac96509425c11249c36",
|
||||
"size": "159523471"
|
||||
},
|
||||
{
|
||||
"host": "x86_64-apple-darwin",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/x86_64-apple-darwin20.4.arm-none-eabi-dfd82b2.240919.tar.gz",
|
||||
"archiveFileName": "x86_64-apple-darwin20.4.arm-none-eabi-dfd82b2.240919.tar.gz",
|
||||
"checksum": "SHA-256:c11b7f19751a13ba2fb456eaf209472666d77dec8720d51ef44091b8a6fadfa9",
|
||||
"size": "108052800"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/x86_64-apple-darwin20.4.riscv32-unknown-elf-8ec9d6f.240929.tar.gz",
|
||||
"archiveFileName": "x86_64-apple-darwin20.4.riscv32-unknown-elf-8ec9d6f.240929.tar.gz",
|
||||
"checksum": "SHA-256:4144abfef1c69cee272b6621dd995a5e88ff1e3cf646c8da30d64d9b1cd44b47",
|
||||
"size": "153526986"
|
||||
},
|
||||
{
|
||||
"host": "x86_64-pc-linux-gnu",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/x86_64-linux-gnu.arm-none-eabi-dfd82b2.240919.tar.gz",
|
||||
"archiveFileName": "x86_64-linux-gnu.arm-none-eabi-dfd82b2.240919.tar.gz",
|
||||
"checksum": "SHA-256:1f37b78a9d371659e2a45b8c602046ec6a1c920f36959fc702db9c68cc2c778c",
|
||||
"size": "106789920"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/x86_64-linux-gnu.riscv32-unknown-elf-8ec9d6f.240929.tar.gz",
|
||||
"archiveFileName": "x86_64-linux-gnu.riscv32-unknown-elf-8ec9d6f.240929.tar.gz",
|
||||
"checksum": "SHA-256:63ed149ba20ddc215479eaae5f1709a6bd882f4cd583a52ac2171f9096fda3a5",
|
||||
"size": "151383989"
|
||||
},
|
||||
{
|
||||
"host": "x86_64-mingw32",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/x86_64-w64-mingw32.arm-none-eabi-dfd82b2.240919.zip",
|
||||
"archiveFileName": "x86_64-w64-mingw32.arm-none-eabi-dfd82b2.240919.zip",
|
||||
"checksum": "SHA-256:ee3ed6354ccf71fcfdb2083859ffafc0e2dd6982906f14d3cdb501a85db6cbd8",
|
||||
"size": "117655702"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/x86_64-w64-mingw32.riscv32-unknown-elf-8ec9d6f.240929.zip",
|
||||
"archiveFileName": "x86_64-w64-mingw32.riscv32-unknown-elf-8ec9d6f.240929.zip",
|
||||
"checksum": "SHA-256:182b38d22b8a4447b8b335c1ce482d16bfb0720be51d6368b404c8628a372dd8",
|
||||
"size": "163390255"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"version": "2.3.0-dfd82b2",
|
||||
"version": "4.0.1-8ec9d6f",
|
||||
"name": "pqt-pioasm",
|
||||
"systems": [
|
||||
{
|
||||
"host": "arm64-apple-darwin",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/aarch64-apple-darwin20.4.pioasm-efe2103.240919.tar.gz",
|
||||
"archiveFileName": "aarch64-apple-darwin20.4.pioasm-efe2103.240919.tar.gz",
|
||||
"checksum": "SHA-256:7db03dddebe3f2d736fb88fd1435076b0874667a9be8cfc18a273acc75067a11",
|
||||
"size": "267871"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/aarch64-apple-darwin20.4.pioasm-efe2103.240929.tar.gz",
|
||||
"archiveFileName": "aarch64-apple-darwin20.4.pioasm-efe2103.240929.tar.gz",
|
||||
"checksum": "SHA-256:6afebe366be3aefd1caa268ec309bd486d7f1f98eedba033ba3b83a0653f1184",
|
||||
"size": "267869"
|
||||
},
|
||||
{
|
||||
"host": "aarch64-linux-gnu",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/aarch64-linux-gnu.pioasm-efe2103.240919.tar.gz",
|
||||
"archiveFileName": "aarch64-linux-gnu.pioasm-efe2103.240919.tar.gz",
|
||||
"checksum": "SHA-256:d71c165b8ac243c578c3615f7a74857a6131c235bbf623b55437f3716d0d3097",
|
||||
"size": "644219"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/aarch64-linux-gnu.pioasm-efe2103.240929.tar.gz",
|
||||
"archiveFileName": "aarch64-linux-gnu.pioasm-efe2103.240929.tar.gz",
|
||||
"checksum": "SHA-256:48ca0fe638bf8ccca654c0588678178c3d9c2f933892dbd67244fe5f5637eacb",
|
||||
"size": "644212"
|
||||
},
|
||||
{
|
||||
"host": "arm-linux-gnueabihf",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/arm-linux-gnueabihf.pioasm-efe2103.240919.tar.gz",
|
||||
"archiveFileName": "arm-linux-gnueabihf.pioasm-efe2103.240919.tar.gz",
|
||||
"checksum": "SHA-256:c8bed422247870a1163fa0fa967b4c49432dbdb2bf4b4a058f6bcfa03eaba637",
|
||||
"size": "576895"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/arm-linux-gnueabihf.pioasm-efe2103.240929.tar.gz",
|
||||
"archiveFileName": "arm-linux-gnueabihf.pioasm-efe2103.240929.tar.gz",
|
||||
"checksum": "SHA-256:06001c3eaf5fbe29e94634218569d13c8d61d6007f7b8da0cca1e7f1fd9414cc",
|
||||
"size": "576904"
|
||||
},
|
||||
{
|
||||
"host": "i686-pc-linux-gnu",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/i686-linux-gnu.pioasm-efe2103.240919.tar.gz",
|
||||
"archiveFileName": "i686-linux-gnu.pioasm-efe2103.240919.tar.gz",
|
||||
"checksum": "SHA-256:12774501242f8d20d29a3d5461326ede3ab6906a98e55539aa908d9574994285",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/i686-linux-gnu.pioasm-efe2103.240929.tar.gz",
|
||||
"archiveFileName": "i686-linux-gnu.pioasm-efe2103.240929.tar.gz",
|
||||
"checksum": "SHA-256:09c4db3bf797b2a9f5edc3db05717c32c2fdd045ebca12ffba1c3ba037759470",
|
||||
"size": "703370"
|
||||
},
|
||||
{
|
||||
"host": "i686-mingw32",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/i686-w64-mingw32.pioasm-efe2103.240919.zip",
|
||||
"archiveFileName": "i686-w64-mingw32.pioasm-efe2103.240919.zip",
|
||||
"checksum": "SHA-256:be3705551828925cde12e59ee6ae54d9de4c0fea862f4def00f72d8ea4792c49",
|
||||
"size": "797522"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/i686-w64-mingw32.pioasm-efe2103.240929.zip",
|
||||
"archiveFileName": "i686-w64-mingw32.pioasm-efe2103.240929.zip",
|
||||
"checksum": "SHA-256:50ec452554c000c692e1f8ee6657a5bb47d99aae62ac10cbf2da3e97cdc45db1",
|
||||
"size": "797527"
|
||||
},
|
||||
{
|
||||
"host": "x86_64-apple-darwin",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/x86_64-apple-darwin20.4.pioasm-efe2103.240919.tar.gz",
|
||||
"archiveFileName": "x86_64-apple-darwin20.4.pioasm-efe2103.240919.tar.gz",
|
||||
"checksum": "SHA-256:c4f24d6cb591c3e9b9e9d99a3b207e941e8ed0d27810a322ce94da18554ea47c",
|
||||
"size": "780427"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/x86_64-apple-darwin20.4.pioasm-efe2103.240929.tar.gz",
|
||||
"archiveFileName": "x86_64-apple-darwin20.4.pioasm-efe2103.240929.tar.gz",
|
||||
"checksum": "SHA-256:9161b685fe394a6bbc19e3f14082d018d230a33941edd523d163d158f0480422",
|
||||
"size": "780453"
|
||||
},
|
||||
{
|
||||
"host": "x86_64-pc-linux-gnu",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/x86_64-linux-gnu.pioasm-efe2103.240919.tar.gz",
|
||||
"archiveFileName": "x86_64-linux-gnu.pioasm-efe2103.240919.tar.gz",
|
||||
"checksum": "SHA-256:7827603f11dd3bcda23c92440913980ee7eff6e867f686aa8188de7dea7dbb6d",
|
||||
"size": "649758"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/x86_64-linux-gnu.pioasm-efe2103.240929.tar.gz",
|
||||
"archiveFileName": "x86_64-linux-gnu.pioasm-efe2103.240929.tar.gz",
|
||||
"checksum": "SHA-256:974481d6b9678c73cefc3c7df657647bc216f2d6c2bdef12236aa06542246973",
|
||||
"size": "649767"
|
||||
},
|
||||
{
|
||||
"host": "x86_64-mingw32",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/x86_64-w64-mingw32.pioasm-efe2103.240919.zip",
|
||||
"archiveFileName": "x86_64-w64-mingw32.pioasm-efe2103.240919.zip",
|
||||
"checksum": "SHA-256:ad047233dd4522474723e59e4b627d3f85ac3bdda75a32abd9797895f170909d",
|
||||
"size": "929506"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/x86_64-w64-mingw32.pioasm-efe2103.240929.zip",
|
||||
"archiveFileName": "x86_64-w64-mingw32.pioasm-efe2103.240929.zip",
|
||||
"checksum": "SHA-256:73cc318e0b1df84fcb661ae9322e22a52f49678f44d3766b4baa82b328b19822",
|
||||
"size": "929510"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"version": "2.3.0-dfd82b2",
|
||||
"version": "4.0.1-8ec9d6f",
|
||||
"name": "pqt-mklittlefs",
|
||||
"systems": [
|
||||
{
|
||||
"host": "arm64-apple-darwin",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/aarch64-apple-darwin20.4.mklittlefs-2f7654f.240919.tar.gz",
|
||||
"archiveFileName": "aarch64-apple-darwin20.4.mklittlefs-2f7654f.240919.tar.gz",
|
||||
"checksum": "SHA-256:fe35b65fd8d9c03dfcd754f10c3e1ca0c750e850ce9a86302ab1e141d1ea8709",
|
||||
"size": "72514"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/aarch64-apple-darwin20.4.mklittlefs-2f7654f.240929.tar.gz",
|
||||
"archiveFileName": "aarch64-apple-darwin20.4.mklittlefs-2f7654f.240929.tar.gz",
|
||||
"checksum": "SHA-256:09ddf3f856f2828e94c1e3599021265eb1e69ed84d659604a638af4a010f4f3d",
|
||||
"size": "72517"
|
||||
},
|
||||
{
|
||||
"host": "aarch64-linux-gnu",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/aarch64-linux-gnu.mklittlefs-2f7654f.240919.tar.gz",
|
||||
"archiveFileName": "aarch64-linux-gnu.mklittlefs-2f7654f.240919.tar.gz",
|
||||
"checksum": "SHA-256:bc97b86b60a1f03635a9f387f64c61a0ad2192a1f7fb4ade60d606921d6ab548",
|
||||
"size": "684061"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/aarch64-linux-gnu.mklittlefs-2f7654f.240929.tar.gz",
|
||||
"archiveFileName": "aarch64-linux-gnu.mklittlefs-2f7654f.240929.tar.gz",
|
||||
"checksum": "SHA-256:47e276ee0707e78fa4b588ef4346187071ea4be194519d405b8a1da91d34e682",
|
||||
"size": "684064"
|
||||
},
|
||||
{
|
||||
"host": "arm-linux-gnueabihf",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/arm-linux-gnueabihf.mklittlefs-2f7654f.240919.tar.gz",
|
||||
"archiveFileName": "arm-linux-gnueabihf.mklittlefs-2f7654f.240919.tar.gz",
|
||||
"checksum": "SHA-256:96fde072a3b5951a3539baaaf47d9c1a8520f2757b6377ef58b7f2c0da4abd2b",
|
||||
"size": "632931"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/arm-linux-gnueabihf.mklittlefs-2f7654f.240929.tar.gz",
|
||||
"archiveFileName": "arm-linux-gnueabihf.mklittlefs-2f7654f.240929.tar.gz",
|
||||
"checksum": "SHA-256:f4fb24a675de0bf3575ed6320ae1053d67355bbd3af116933bb1a90c1989bf57",
|
||||
"size": "632936"
|
||||
},
|
||||
{
|
||||
"host": "i686-pc-linux-gnu",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/i686-linux-gnu.mklittlefs-2f7654f.240919.tar.gz",
|
||||
"archiveFileName": "i686-linux-gnu.mklittlefs-2f7654f.240919.tar.gz",
|
||||
"checksum": "SHA-256:ea520bf89f4596c0d06d68c47f26a4ce0a181458f0845330f95e38c4e9772d4c",
|
||||
"size": "665586"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/i686-linux-gnu.mklittlefs-2f7654f.240929.tar.gz",
|
||||
"archiveFileName": "i686-linux-gnu.mklittlefs-2f7654f.240929.tar.gz",
|
||||
"checksum": "SHA-256:29df0ca122767357a7f14a2b5fb6e6d1f912789086dcb5e3c39b9df8d85f908a",
|
||||
"size": "665594"
|
||||
},
|
||||
{
|
||||
"host": "i686-mingw32",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/i686-w64-mingw32.mklittlefs-2f7654f.240919.zip",
|
||||
"archiveFileName": "i686-w64-mingw32.mklittlefs-2f7654f.240919.zip",
|
||||
"checksum": "SHA-256:c5782c8cb3cdeb03abda4fd2fed1dd1655c422920d407845bd85ec007af9f4ef",
|
||||
"size": "1232207"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/i686-w64-mingw32.mklittlefs-2f7654f.240929.zip",
|
||||
"archiveFileName": "i686-w64-mingw32.mklittlefs-2f7654f.240929.zip",
|
||||
"checksum": "SHA-256:fa9071ee8f806ca7bf1cc16e1cb2be5588908cff929ec91e007dafa33eb4be1c",
|
||||
"size": "1232212"
|
||||
},
|
||||
{
|
||||
"host": "x86_64-apple-darwin",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/x86_64-apple-darwin20.4.mklittlefs-2f7654f.240919.tar.gz",
|
||||
"archiveFileName": "x86_64-apple-darwin20.4.mklittlefs-2f7654f.240919.tar.gz",
|
||||
"checksum": "SHA-256:7c1732e98752f2b8a6d11f8f058c2a3cf426fa070d730e27d3c15d41bbde0376",
|
||||
"size": "621579"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/x86_64-apple-darwin20.4.mklittlefs-2f7654f.240929.tar.gz",
|
||||
"archiveFileName": "x86_64-apple-darwin20.4.mklittlefs-2f7654f.240929.tar.gz",
|
||||
"checksum": "SHA-256:50a932d7c0351a70c3ecfce725b2c7bd926ddfb086145c225bb1134ad1b1a5ff",
|
||||
"size": "621594"
|
||||
},
|
||||
{
|
||||
"host": "x86_64-pc-linux-gnu",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/x86_64-linux-gnu.mklittlefs-2f7654f.240919.tar.gz",
|
||||
"archiveFileName": "x86_64-linux-gnu.mklittlefs-2f7654f.240919.tar.gz",
|
||||
"checksum": "SHA-256:e194f6c9d0b2e02c6b6cc326ad083581801ecf8f616da44d1755fbec5646b127",
|
||||
"size": "690458"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/x86_64-linux-gnu.mklittlefs-2f7654f.240929.tar.gz",
|
||||
"archiveFileName": "x86_64-linux-gnu.mklittlefs-2f7654f.240929.tar.gz",
|
||||
"checksum": "SHA-256:aec72ad65cec9a96afda0507605661dfd552d5e304dd654c1b1ebb2bcc9f2d76",
|
||||
"size": "690461"
|
||||
},
|
||||
{
|
||||
"host": "x86_64-mingw32",
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.3.0/x86_64-w64-mingw32.mklittlefs-2f7654f.240919.zip",
|
||||
"archiveFileName": "x86_64-w64-mingw32.mklittlefs-2f7654f.240919.zip",
|
||||
"checksum": "SHA-256:bd080b5b4ec7df84d444c72260010905a13744afca79f13e4017e658a56b4005",
|
||||
"size": "1328982"
|
||||
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/4.0.1/x86_64-w64-mingw32.mklittlefs-2f7654f.240929.zip",
|
||||
"archiveFileName": "x86_64-w64-mingw32.mklittlefs-2f7654f.240929.zip",
|
||||
"checksum": "SHA-256:83f75c88e8e44fa1a38346ccff2e89756ffcfcda96b5d849f9e6563d996081eb",
|
||||
"size": "1328984"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ pluggable_discovery.required.0=builtin:serial-discovery
|
|||
pluggable_discovery.required.1=builtin:mdns-discovery
|
||||
pluggable_monitor.required.serial=builtin:serial-monitor
|
||||
|
||||
runtime.tools.pqt-gcc.path={runtime.platform.path}/system/arm-none-eabi
|
||||
runtime.tools.pqt-gcc.path={runtime.platform.path}/system/{build.toolchain}
|
||||
runtime.tools.pqt-python3.path={runtime.platform.path}/system/python3
|
||||
runtime.tools.pqt-mklittlefs.path={runtime.platform.path}/system/mklittlefs
|
||||
runtime.tools.pqt-pioasm.path={runtime.platform.path}/system/pioasm
|
||||
|
|
@ -61,7 +61,7 @@ compiler.c.flags=-c {compiler.warning_flags} {compiler.defines} {compiler.flags}
|
|||
compiler.c.elf.cmd={build.toolchain}-g++
|
||||
compiler.c.elf.flags={compiler.warning_flags} {compiler.defines} {compiler.flags} {build.flags.optimize} -u _printf_float -u _scanf_float
|
||||
compiler.S.cmd={build.toolchain}-gcc
|
||||
compiler.S.flags=-c {compiler.warning_flags} {compiler.defines} -g -x assembler-with-cpp -MMD {compiler.includes} -g
|
||||
compiler.S.flags=-c {compiler.warning_flags} {compiler.defines} -g -x assembler-with-cpp -MMD {compiler.includes} {build.toolchainopts} -g
|
||||
compiler.cpp.cmd={build.toolchain}-g++
|
||||
compiler.cpp.flags=-c {compiler.warning_flags} {compiler.defines} {compiler.flags} -MMD {compiler.includes} {build.flags.rtti} -std=gnu++17 -g -pipe
|
||||
|
||||
|
|
@ -72,7 +72,7 @@ compiler.objcopy.eep.flags=-O ihex -j .eeprom --set-section-flags=.eeprom=alloc,
|
|||
compiler.elf2hex.bin.flags=-O binary
|
||||
compiler.elf2hex.hex.flags=-O ihex -R .eeprom
|
||||
compiler.elf2hex.cmd={build.toolchain}-objcopy
|
||||
compiler.ldflags={compiler.wrap} -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--undefined=runtime_init_install_ram_vector_table
|
||||
compiler.ldflags={compiler.wrap} -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--undefined=runtime_init_install_ram_vector_table -Wl,--undefined=__pre_init_runtime_init_clocks -Wl,--undefined=__pre_init_runtime_init_bootrom_reset -Wl,--undefined=__pre_init_runtime_init_early_resets -Wl,--undefined=__pre_init_runtime_init_usb_power_down -Wl,--undefined=__pre_init_runtime_init_clocks -Wl,--undefined=__pre_init_runtime_init_post_clock_resets -Wl,--undefined=__pre_init_runtime_init_spin_locks_reset -Wl,--undefined=__pre_init_runtime_init_boot_locks_reset -Wl,--undefined=__pre_init_runtime_init_bootrom_locking_enable -Wl,--undefined=__pre_init_runtime_init_mutex -Wl,--undefined=__pre_init_runtime_init_default_alarm_pool -Wl,--undefined=__pre_init_first_per_core_initializer -Wl,--undefined=__pre_init_runtime_init_per_core_bootrom_reset -Wl,--undefined=__pre_init_runtime_init_per_core_h3_irq_registers -Wl,--undefined=__pre_init_runtime_init_per_core_irq_priorities
|
||||
compiler.size.cmd={build.toolchain}-size
|
||||
compiler.define=-DARDUINO=
|
||||
compiler.readelf.cmd={build.toolchain}-readelf
|
||||
|
|
|
|||
23
tests/build-rp2350-riscv.sh
Executable file
23
tests/build-rp2350-riscv.sh
Executable file
|
|
@ -0,0 +1,23 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
cache_dir=$(mktemp -d)
|
||||
|
||||
source "$GITHUB_WORKSPACE"/tests/common.sh
|
||||
|
||||
if [ -z "$BUILD_PARITY" ]; then
|
||||
mod=1
|
||||
rem=0
|
||||
elif [ "$BUILD_PARITY" = "even" ]; then
|
||||
mod=2
|
||||
rem=0
|
||||
elif [ "$BUILD_PARITY" = "odd" ]; then
|
||||
mod=2
|
||||
rem=1
|
||||
fi
|
||||
export FQBN=pico:rp2040:rpipico2:flash=4194304_0,arch=riscv,freq=150,opt=Small,rtti=Disabled,stackprotect=Disabled,exceptions=Disabled,dbgport=Disabled,dbglvl=None,usbstack=picosdk,ipbtstack=ipv4only,uploadmethod=default
|
||||
export PICO_BOARD=rp2350
|
||||
|
||||
install_arduino nodebug
|
||||
build_sketches_with_arduino "$mod" "$rem" ""
|
||||
|
||||
rm -rf "$cache_dir"
|
||||
|
|
@ -15,7 +15,7 @@ elif [ "$BUILD_PARITY" = "odd" ]; then
|
|||
rem=1
|
||||
fi
|
||||
|
||||
export FQBN=pico:rp2040:rpipico2:flash=4194304_0,freq=150,opt=Small,rtti=Disabled,stackprotect=Disabled,exceptions=Disabled,dbgport=Disabled,dbglvl=None,usbstack=picosdk,ipbtstack=ipv4only,uploadmethod=default
|
||||
export FQBN=pico:rp2040:rpipico2:flash=4194304_0,arch=arm,freq=150,opt=Small,rtti=Disabled,stackprotect=Disabled,exceptions=Disabled,dbgport=Disabled,dbglvl=None,usbstack=picosdk,ipbtstack=ipv4only,uploadmethod=default
|
||||
export PICO_BOARD=rp2350
|
||||
|
||||
install_arduino nodebug
|
||||
|
|
|
|||
|
|
@ -234,7 +234,7 @@ function install_ide()
|
|||
fi
|
||||
# Set custom warnings for all builds (i.e. could add -Wextra at some point)
|
||||
echo "compiler.c.extra_flags=-Wall -Wextra -Werror -Wno-ignored-qualifiers $debug_flags" > rp2040/platform.local.txt
|
||||
echo "compiler.cpp.extra_flags=-Wall -Wextra -Werror -Wno-ignored-qualifiers $debug_flags" >> rp2040/platform.local.txt
|
||||
echo "compiler.cpp.extra_flags=-Wall -Wextra -Werror -Wno-ignored-qualifiers -Wno-overloaded-virtual $debug_flags" >> rp2040/platform.local.txt
|
||||
echo -e "\n----platform.local.txt----"
|
||||
cat rp2040/platform.local.txt
|
||||
echo -e "\n----\n"
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
"build": {
|
||||
"arduino": {
|
||||
"earlephilhower": {
|
||||
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||
"boot2_source": "none.S",
|
||||
"usb_vid": "0x239A",
|
||||
"usb_pid": "0x814F"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
"build": {
|
||||
"arduino": {
|
||||
"earlephilhower": {
|
||||
"boot2_source": "boot2_generic_03h_2_padded_checksum.S",
|
||||
"boot2_source": "none.S",
|
||||
"usb_vid": "0x2E8A",
|
||||
"usb_pid": "0x109B"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
"build": {
|
||||
"arduino": {
|
||||
"earlephilhower": {
|
||||
"boot2_source": "boot2_generic_03h_2_padded_checksum.S",
|
||||
"boot2_source": "none.S",
|
||||
"usb_vid": "0x2E8A",
|
||||
"usb_pid": "0x109A"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
"build": {
|
||||
"arduino": {
|
||||
"earlephilhower": {
|
||||
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||
"boot2_source": "none.S",
|
||||
"usb_vid": "0x2E8A",
|
||||
"usb_pid": "0x1093"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
"build": {
|
||||
"arduino": {
|
||||
"earlephilhower": {
|
||||
"boot2_source": "boot2_generic_03h_2_padded_checksum.S",
|
||||
"boot2_source": "none.S",
|
||||
"usb_vid": "0x2E8A",
|
||||
"usb_pid": "0x1096"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
"build": {
|
||||
"arduino": {
|
||||
"earlephilhower": {
|
||||
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||
"boot2_source": "none.S",
|
||||
"usb_vid": "0x2E8A",
|
||||
"usb_pid": "0x10AE"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
"build": {
|
||||
"arduino": {
|
||||
"earlephilhower": {
|
||||
"boot2_source": "boot2_generic_03h_4_padded_checksum.S",
|
||||
"boot2_source": "none.S",
|
||||
"usb_vid": "0x2E8A",
|
||||
"usb_pid": "0xF00F"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
"build": {
|
||||
"arduino": {
|
||||
"earlephilhower": {
|
||||
"boot2_source": "boot2_w25q080_4_padded_checksum.S",
|
||||
"boot2_source": "none.S",
|
||||
"usb_vid": "0x2E8A",
|
||||
"usb_pid": "0x1018"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
"build": {
|
||||
"arduino": {
|
||||
"earlephilhower": {
|
||||
"boot2_source": "boot2_generic_03h_4_padded_checksum.S",
|
||||
"boot2_source": "none.S",
|
||||
"usb_vid": "0x2E8A",
|
||||
"usb_pid": "0x100A"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
"build": {
|
||||
"arduino": {
|
||||
"earlephilhower": {
|
||||
"boot2_source": "boot2_w25q080_4_padded_checksum.S",
|
||||
"boot2_source": "none.S",
|
||||
"usb_vid": "0x2E8A",
|
||||
"usb_pid": "0x100B"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
"build": {
|
||||
"arduino": {
|
||||
"earlephilhower": {
|
||||
"boot2_source": "boot2_generic_03h_2_padded_checksum.S",
|
||||
"boot2_source": "none.S",
|
||||
"usb_vid": "0x2E8A",
|
||||
"usb_pid": "0x000F"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
"build": {
|
||||
"arduino": {
|
||||
"earlephilhower": {
|
||||
"boot2_source": "boot2_generic_03h_2_padded_checksum.S",
|
||||
"boot2_source": "none.S",
|
||||
"usb_vid": "0x1209",
|
||||
"usb_pid": "0xA183"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
"build": {
|
||||
"arduino": {
|
||||
"earlephilhower": {
|
||||
"boot2_source": "boot2_generic_03h_2_padded_checksum.S",
|
||||
"boot2_source": "none.S",
|
||||
"usb_vid": "0x1209",
|
||||
"usb_pid": "0xA184"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
"build": {
|
||||
"arduino": {
|
||||
"earlephilhower": {
|
||||
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||
"boot2_source": "none.S",
|
||||
"usb_vid": "0x1B4F",
|
||||
"usb_pid": "0x0026"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,11 +14,17 @@ all2: bearssl/README.txt
|
|||
PATH="$(PWD)/../../system/arm-none-eabi/bin/:$(PATH)" && arm-none-eabi-gcc --version && cd bearssl && $(MAKE) CONF=pico2 clean all
|
||||
|
||||
install2: all2 version-header
|
||||
cp bearssl/pico/libbearssl.a ../../lib/rp2350/.
|
||||
cp bearssl/pico2/libbearssl.a ../../lib/rp2350/.
|
||||
ar d ../../lib/rp2350/libbearssl.a `ar t ../../lib/rp2350/libbearssl.a | egrep 'x86|sse|pwr8|i62|m32|m62|m64|ct64|ctmul64'` # Remove unneeded objects
|
||||
cp bearssl/inc/bearssl*.h ../../include/bearssl/.
|
||||
|
||||
bearssl/README.txt:
|
||||
all2rv: bearssl/README.txt
|
||||
PATH="$(PWD)/../../system/riscv32-unknown-elf/bin/:$(PATH)" && riscv32-unknown-elf-gcc --version && cd bearssl && $(MAKE) CONF=pico2rv clean all
|
||||
|
||||
install2rv: all2rv version-header
|
||||
cp bearssl/pico2rv/libbearssl.a ../../lib/rp2350-riscv/.
|
||||
ar d ../../lib/rp2350-riscv/libbearssl.a `ar t ../../lib/rp2350-riscv/libbearssl.a | egrep 'x86|sse|pwr8|i62|m32|m62|m64|ct64|ctmul64'` # Remove unneeded objects
|
||||
cp bearssl/inc/bearssl*.h ../../include/bearssl/.
|
||||
|
||||
bearssl/README.txt:
|
||||
git submodule update --init --recursive bearssl
|
||||
|
|
|
|||
|
|
@ -8,10 +8,15 @@ if (${cpu} MATCHES "rp2040")
|
|||
set(PICO_BOARD pico_w)
|
||||
set(PICO_PLATFORM rp2040)
|
||||
set(PICO_CYW43_SUPPORTED 1)
|
||||
elseif(${cpu} MATCHES "rp2350")
|
||||
elseif(${cpu} MATCHES "rp2350$")
|
||||
set(PICO_BOARD solderparty_rp2350_stamp_xl) # Pico2 sets to RP2350A which disables all code for RP2350B
|
||||
set(PICO_PLATFORM rp2350)
|
||||
set(PICO_CYW43_SUPPORTED 0)
|
||||
elseif(${cpu} MATCHES "rp2350-riscv$")
|
||||
message(INFO "Building RISCV")
|
||||
set(PICO_BOARD solderparty_rp2350_stamp_xl) # Pico2 sets to RP2350A which disables all code for RP2350B
|
||||
set(PICO_PLATFORM rp2350-riscv)
|
||||
set(PICO_CYW43_SUPPORTED 0)
|
||||
else()
|
||||
message(FATAL_ERROR "Unknown CPU, '${cpu}'")
|
||||
endif()
|
||||
|
|
@ -28,6 +33,18 @@ pico_sdk_init()
|
|||
|
||||
add_library(common-${cpu} INTERFACE)
|
||||
|
||||
if (${cpu} MATCHES "rp2350$")
|
||||
set(xcda
|
||||
LIB_PICO_DOUBLE_PICO=1
|
||||
LIB_PICO_FLOAT_PICO=1
|
||||
LIB_PICO_FLOAT_PICO_VFP=1)
|
||||
elseif (${cpu} MATCHES "rp2350-riscv$")
|
||||
set(xcda
|
||||
LIB_PICO_DOUBLE_COMPILER=1
|
||||
LIB_PICO_FLOAT_COMPILER=1
|
||||
PICO_RISCV=1)
|
||||
endif()
|
||||
|
||||
if (${cpu} MATCHES "rp2040")
|
||||
set(xcd
|
||||
PICO_RP2040_B0_SUPPORTED=1
|
||||
|
|
@ -39,9 +56,8 @@ if (${cpu} MATCHES "rp2040")
|
|||
PICO_FLOAT_SUPPORT_ROM_V1=1
|
||||
PICO_DOUBLE_SUPPORT_ROM_V1=1
|
||||
PICO_RP2040=1
|
||||
PICO_PLATFORM=rp2040
|
||||
PICO_CYW43_SUPPORTED=1)
|
||||
elseif(${cpu} MATCHES "rp2350")
|
||||
elseif (${cpu} MATCHES "rp2350")
|
||||
set(xcd
|
||||
CFG_TUSB_DEBUG=0
|
||||
CFG_TUSB_MCU=OPT_MCU_RP2040
|
||||
|
|
@ -56,11 +72,8 @@ elseif(${cpu} MATCHES "rp2350")
|
|||
LIB_PICO_DIVIDER=1
|
||||
LIB_PICO_DIVIDER_COMPILER=1
|
||||
LIB_PICO_DOUBLE=1
|
||||
LIB_PICO_DOUBLE_PICO=1
|
||||
LIB_PICO_FIX_RP2040_USB_DEVICE_ENUMERATION=1
|
||||
LIB_PICO_FLOAT=1
|
||||
LIB_PICO_FLOAT_PICO=1
|
||||
LIB_PICO_FLOAT_PICO_VFP=1
|
||||
LIB_PICO_INT64_OPS=1
|
||||
LIB_PICO_INT64_OPS_COMPILER=1
|
||||
LIB_PICO_MEM_OPS=1
|
||||
|
|
@ -97,7 +110,15 @@ elseif(${cpu} MATCHES "rp2350")
|
|||
PICO_RP2040_USB_DEVICE_UFRAME_FIX=1
|
||||
PICO_RP2350=1
|
||||
PICO_USE_BLOCKED_RAM=0
|
||||
PICO_PLATFORM=rp2350)
|
||||
${xcda})
|
||||
endif()
|
||||
|
||||
if (${cpu} MATCHES "rp2040")
|
||||
set(ppp PICO_PLATFORM=rp2040)
|
||||
elseif(${cpu} MATCHES "rp2350$")
|
||||
set(ppp PICO_PLATFORM=rp2350)
|
||||
elseif(${cpu} MATCHES "rp2350-riscv$")
|
||||
set(ppp PICO_PLATFORM=rp2350-riscv)
|
||||
endif()
|
||||
|
||||
# Use a longer XOSC startup time, to accommodate Adafruit and other boards that may need it.
|
||||
|
|
@ -110,6 +131,7 @@ target_compile_definitions(common-${cpu} INTERFACE
|
|||
LWIP_IGMP=1
|
||||
LWIP_CHECKSUM_CTRL_PER_NETIF=1
|
||||
${xcd}
|
||||
${ppp}
|
||||
)
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ set -x
|
|||
|
||||
export PICO_SDK_PATH="$(cd ../../pico-sdk/; pwd)"
|
||||
export PATH="$(cd ../../system/arm-none-eabi/bin; pwd):$PATH"
|
||||
export PATH="$(cd ../../system/riscv32-unknown-elf/bin; pwd):$PATH"
|
||||
|
||||
rm -rf build-rp2040
|
||||
mkdir build-rp2040
|
||||
|
|
@ -53,39 +54,9 @@ cd build-rp2350
|
|||
CPU=rp2350 cmake ..
|
||||
make -j
|
||||
|
||||
rm -rf boot
|
||||
mkdir boot
|
||||
cd boot
|
||||
mkdir -p pico
|
||||
touch pico/config.h
|
||||
# Some in the rp2350 boot2 directory don't compile(!?)
|
||||
for type in boot2_generic_03h boot2_w25q080; do
|
||||
for div in 2 4; do
|
||||
arm-none-eabi-gcc -mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse -O3 \
|
||||
-DNDEBUG -DPICO_FLASH_SPI_CLKDIV=$div \
|
||||
-DPICO_RP2350 \
|
||||
-c "$PICO_SDK_PATH/src/rp2350/boot_stage2/$type.S" \
|
||||
-I "$PICO_SDK_PATH/src/boards/include/boards/" \
|
||||
-I "$PICO_SDK_PATH/src/rp2350/hardware_regs/include/" \
|
||||
-I "$PICO_SDK_PATH/src/rp2040/hardware_regs/include/" \
|
||||
-I "$PICO_SDK_PATH/src/rp2_common/pico_platform/include/" \
|
||||
-I "$PICO_SDK_PATH/src/rp2_common/boot_stage2/asminclude/" \
|
||||
-I "$PICO_SDK_PATH/src/rp2350/pico_platform/include/" \
|
||||
-I "$PICO_SDK_PATH/src/rp2350/boot_stage2/asminclude/" \
|
||||
-I .
|
||||
|
||||
arm-none-eabi-gcc -mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse -O3 \
|
||||
-DNDEBUG -Wl,--build-id=none --specs=nosys.specs -nostartfiles \
|
||||
-Wl,--script="$PICO_SDK_PATH/src/rp2350/boot_stage2/boot_stage2.ld" \
|
||||
-Wl,-Map=$type.$div.elf.map $type.o -o $type.$div.elf
|
||||
|
||||
arm-none-eabi-objdump -h $type.$div.elf > $type.$div.dis
|
||||
arm-none-eabi-objdump -d $type.$div.elf >> $type.$div.dis
|
||||
|
||||
arm-none-eabi-objcopy -Obinary $type.$div.elf $type.$div.bin
|
||||
|
||||
python3 "$PICO_SDK_PATH/src/rp2350/boot_stage2/pad_checksum" \
|
||||
-s 0xffffffff $type.$div.bin ${type}_${div}_padded_checksum.S
|
||||
done
|
||||
done
|
||||
mv *.S ../../../../boot2/rp2350/.
|
||||
cd ..
|
||||
rm -rf build-rp2350-riscv
|
||||
mkdir build-rp2350-riscv
|
||||
cd build-rp2350-riscv
|
||||
CPU=rp2350-riscv cmake ..
|
||||
make -j
|
||||
|
|
|
|||
|
|
@ -48,6 +48,20 @@ def BuildFreq(name, defmhz):
|
|||
print("%s.menu.freq.%s=%s MHz%s" % (name, f, f, warn))
|
||||
print("%s.menu.freq.%s.build.f_cpu=%dL" % (name, f, f * 1000000))
|
||||
|
||||
def BuildArch(name):
|
||||
# Cortex M-33
|
||||
print("%s.menu.arch.arm=ARM" % (name))
|
||||
print("%s.menu.arch.arm.build.chip=%s" % (name, "rp2350"))
|
||||
print("%s.menu.arch.arm.build.toolchain=arm-none-eabi" % (name))
|
||||
print("%s.menu.arch.arm.build.toolchainopts=-mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse" % (name))
|
||||
print("%s.menu.arch.arm.build.uf2family=--family rp2350-arm-s --abs-block" % (name))
|
||||
# RISC-V Hazard3
|
||||
print("%s.menu.arch.riscv=RISC-V" % (name))
|
||||
print("%s.menu.arch.riscv.build.chip=%s" % (name, "rp2350-riscv"))
|
||||
print("%s.menu.arch.riscv.build.toolchain=riscv32-unknown-elf" % (name))
|
||||
print("%s.menu.arch.riscv.build.toolchainopts=-march=rv32imac_zicsr_zifencei_zba_zbb_zbs_zbkb -mabi=ilp32" % (name))
|
||||
print("%s.menu.arch.riscv.build.uf2family=--family rp2350-riscv --abs-block" % (name))
|
||||
|
||||
def BuildPSRAM(name):
|
||||
for s in [ 0, 2, 4, 8]:
|
||||
print("%s.menu.psram.%dmb=%dMByte PSRAM" % (name, s, s))
|
||||
|
|
@ -222,14 +236,11 @@ def BuildHeader(name, chip, chaintuple, chipoptions, vendor_name, product_name,
|
|||
print("%s.build.usbpwr=-DUSBD_MAX_POWER_MA=%s" % (name, pwr))
|
||||
print("%s.build.board=%s" % (name, boarddefine))
|
||||
# print("%s.build.mcu=cortex-m0plus" % (name))
|
||||
if chip == "rp2040": # RP2350 has menu for this later on
|
||||
print("%s.build.chip=%s" % (name, chip))
|
||||
print("%s.build.toolchain=%s" % (name, chaintuple))
|
||||
print("%s.build.toolchainopts=%s" % (name, chipoptions))
|
||||
if chip == "rp2350":
|
||||
uf2family = "--family rp2350-arm-s --abs-block"
|
||||
elif chip == "rp2040":
|
||||
uf2family = "--family rp2040"
|
||||
print("%s.build.uf2family=%s" % (name, uf2family))
|
||||
print("%s.build.uf2family=%s" % (name, "--family rp2040"))
|
||||
print("%s.build.variant=%s" % (name, variant))
|
||||
print("%s.upload.maximum_size=%d" % (name, flashsize))
|
||||
print("%s.upload.wait_for_upload_port=true" % (name))
|
||||
|
|
@ -243,7 +254,7 @@ def BuildHeader(name, chip, chaintuple, chipoptions, vendor_name, product_name,
|
|||
print("%s.build.boot2=%s" % (name, boot2))
|
||||
print('%s.build.usb_manufacturer="%s"' % (name, vendor_name))
|
||||
print('%s.build.usb_product="%s"' % (name, product_name))
|
||||
if (chip == "rp2350") and (name != "generic_rp2350"):
|
||||
if ((chip == "rp2350") or (chip == "rp2350-riscv")) and (name != "generic_rp2350"):
|
||||
print("%s.build.psram_length=0x%d00000" % (name, psramsize))
|
||||
if extra != None:
|
||||
m_extra = ''
|
||||
|
|
@ -265,6 +276,7 @@ def BuildGlobalMenuList():
|
|||
print("menu.psram=PSRAM Size")
|
||||
print("menu.psramfreq=PSRAM Speed")
|
||||
print("menu.freq=CPU Speed")
|
||||
print("menu.arch=CPU Architecture")
|
||||
print("menu.opt=Optimize")
|
||||
print("menu.rtti=RTTI")
|
||||
print("menu.stackprotect=Stack Protector")
|
||||
|
|
@ -294,9 +306,9 @@ def MakeBoard(name, chip, vendor_name, product_name, vid, pid, pwr, boarddefine,
|
|||
elif chip == "rp2350":
|
||||
tup = "arm-none-eabi"
|
||||
opts = "-mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse"
|
||||
elif chip == "rp2530rv":
|
||||
tup = "riscv-none-eabi"
|
||||
opts = "TBD"
|
||||
elif chip == "rp2350-riscv":
|
||||
tup = "riscv32-unknown-elf"
|
||||
opts = "-march=rv32imac_zicsr_zifencei_zba_zbb_zbs_zbkb -mabi=ilp32"
|
||||
else:
|
||||
raise Exception("Unknown board type " + str(chip));
|
||||
BuildHeader(name, chip, tup, opts, vendor_name, product_name, vid, pid, pwr, boarddefine, name, flashsizemb * 1024 * 1024, psramsize, boot2, extra)
|
||||
|
|
@ -319,7 +331,8 @@ def MakeBoard(name, chip, vendor_name, product_name, vid, pid, pwr, boarddefine,
|
|||
BuildFlashMenu(name, chip, 16*1024*1024, [0, 15*1024*1024, 14*1024*1024, 12*1024*1024, 8*1024*1024, 4*1024*1024, 2*1024*1024])
|
||||
else:
|
||||
BuildFlashMenu(name, chip, flashsizemb * 1024 * 1024, fssizelist)
|
||||
if chip == "rp2350":
|
||||
if (chip == "rp2350") or (chip == "rp2350-riscv"):
|
||||
BuildArch(name)
|
||||
BuildFreq(name, 150)
|
||||
if name == "generic_rp2350":
|
||||
BuildRP2350Variant(name)
|
||||
|
|
@ -372,6 +385,11 @@ def MakeBoardJSON(name, chip, vendor_name, product_name, vid, pid, pwr, boarddef
|
|||
ramsize = 512
|
||||
jlink = "RP2350_0"
|
||||
fcpu = "150000000L"
|
||||
elif chip == "rp2350-riscv":
|
||||
cpu = "riscv"
|
||||
ramsize = 512
|
||||
jlink = "RP2350_0"
|
||||
fcpu = "150000000L"
|
||||
j = {
|
||||
"build": {
|
||||
"arduino": {
|
||||
|
|
@ -428,7 +446,7 @@ def MakeBoardJSON(name, chip, vendor_name, product_name, vid, pid, pwr, boarddef
|
|||
"vendor": vendor_name,
|
||||
}
|
||||
# add nonzero PSRAM sizes of known boards (can still be overwritten in platformio.ini)
|
||||
if psramsize != 0 and name != "generic_rp2350":
|
||||
if (psramsize != 0) and (name != "generic_rp2350"):
|
||||
j["upload"]["psram_length"] = psramsize * 1024 * 1024
|
||||
|
||||
jsondir = os.path.abspath(os.path.dirname(__file__)) + "/json"
|
||||
|
|
@ -449,7 +467,7 @@ BuildGlobalMenuList()
|
|||
# Raspberry Pi
|
||||
MakeBoard("rpipico", "rp2040", "Raspberry Pi", "Pico", "0x2e8a", "0x000a", 250, "RASPBERRY_PI_PICO", 2, 0, "boot2_w25q080_2_padded_checksum")
|
||||
MakeBoard("rpipicow", "rp2040", "Raspberry Pi", "Pico W", "0x2e8a", "0xf00a", 250, "RASPBERRY_PI_PICO_W", 2, 0, "boot2_w25q080_2_padded_checksum")
|
||||
MakeBoard("rpipico2", "rp2350", "Raspberry Pi", "Pico 2", "0x2e8a", "0x000f", 250, "RASPBERRY_PI_PICO_2", 4, 0, "boot2_generic_03h_2_padded_checksum")
|
||||
MakeBoard("rpipico2", "rp2350", "Raspberry Pi", "Pico 2", "0x2e8a", "0x000f", 250, "RASPBERRY_PI_PICO_2", 4, 0, "none")
|
||||
|
||||
# 0xCB
|
||||
MakeBoard("0xcb_helios", "rp2040", "0xCB", "Helios", "0x1209", "0xCB74", 500, "0XCB_HELIOS", 16, 0, "boot2_w25q128jvxq_4_padded_checksum")
|
||||
|
|
@ -471,7 +489,7 @@ MakeBoard("adafruit_stemmafriend", "rp2040", "Adafruit", "STEMMA Friend RP2040",
|
|||
MakeBoard("adafruit_trinkeyrp2040qt", "rp2040", "Adafruit", "Trinkey RP2040 QT", "0x239a", "0x8109", 250, "ADAFRUIT_TRINKEYQT_RP2040", 8, 0, "boot2_w25q080_2_padded_checksum")
|
||||
MakeBoard("adafruit_macropad2040", "rp2040", "Adafruit", "MacroPad RP2040", "0x239a", "0x8107", 250, "ADAFRUIT_MACROPAD_RP2040", 8, 0, "boot2_w25q080_2_padded_checksum")
|
||||
MakeBoard("adafruit_kb2040", "rp2040", "Adafruit", "KB2040", "0x239a", "0x8105", 250, "ADAFRUIT_KB2040_RP2040", 8, 0, "boot2_w25q080_2_padded_checksum")
|
||||
MakeBoard("adafruit_feather_rp2350_hstx", "rp2350", "Adafruit", "Feather RP2350 HSTX", "0x239a", "0x814f", 250, "ADAFRUIT_FEATHER_RP2350_HSTX", 8, 0, "boot2_w25q080_2_padded_checksum")
|
||||
MakeBoard("adafruit_feather_rp2350_hstx", "rp2350", "Adafruit", "Feather RP2350 HSTX", "0x239a", "0x814f", 250, "ADAFRUIT_FEATHER_RP2350_HSTX", 8, 0, "none")
|
||||
|
||||
|
||||
#Amken
|
||||
|
|
@ -494,15 +512,15 @@ MakeBoard("bridgetek_idm2040_7a", "rp2040", "BridgeTek", "IDM2040-7A", "0x2e8a",
|
|||
MakeBoard("bridgetek_idm2040_43a", "rp2040", "BridgeTek", "IDM2040-43A", "0x2e8b", "0xf00a", 250, "BRIDGETEK_IDM2040_43A", 8, 0, "boot2_w25q080_2_padded_checksum", ["FT8XX_TYPE=BT883", "DISPLAY_RES=WQVGA", "PLATFORM_RP2040"])
|
||||
|
||||
# Cytron
|
||||
MakeBoard("cytron_iriv_io_controller", "rp2350", "Cytron", "IRIV IO Controller", "0x2e8a", "0x1093", 250, "CYTRON_IRIV_IO_CONTROLLER", 2, 0, "boot2_w25q080_2_padded_checksum")
|
||||
MakeBoard("cytron_iriv_io_controller", "rp2350", "Cytron", "IRIV IO Controller", "0x2e8a", "0x1093", 250, "CYTRON_IRIV_IO_CONTROLLER", 2, 0, "none")
|
||||
MakeBoard("cytron_maker_nano_rp2040", "rp2040", "Cytron", "Maker Nano RP2040", "0x2e8a", "0x100f", 250, "CYTRON_MAKER_NANO_RP2040", 2, 0, "boot2_w25q080_2_padded_checksum")
|
||||
MakeBoard("cytron_maker_pi_rp2040", "rp2040", "Cytron", "Maker Pi RP2040", "0x2e8a", "0x1000", 250, "CYTRON_MAKER_PI_RP2040", 2, 0, "boot2_w25q080_2_padded_checksum")
|
||||
MakeBoard("cytron_maker_uno_rp2040", "rp2040", "Cytron", "Maker Uno RP2040", "0x2e8a", "0x1071", 250, "CYTRON_MAKER_UNO_RP2040", 2, 0, "boot2_w25q080_2_padded_checksum")
|
||||
MakeBoard("cytron_motion_2350_pro", "rp2350", "Cytron", "Motion 2350 Pro", "0x2e8a", "0x1096", 250, "CYTRON_MOTION_2350_PRO", 2, 0, "boot2_generic_03h_2_padded_checksum")
|
||||
MakeBoard("cytron_motion_2350_pro", "rp2350", "Cytron", "Motion 2350 Pro", "0x2e8a", "0x1096", 250, "CYTRON_MOTION_2350_PRO", 2, 0, "none")
|
||||
|
||||
# DatanoiseTV
|
||||
MakeBoard("datanoisetv_picoadk", "rp2040", "DatanoiseTV", "PicoADK", "0x2e8a", "0x000a", 250, "DATANOISETV_PICOADK", 2, 0, "boot2_w25q080_2_padded_checksum")
|
||||
MakeBoard("datanoisetv_picoadk_v2", "rp2350", "DatanoiseTV", "PicoADK v2", "0x2e8a", "0x10ae", 250, "DATANOISETV_PICOADK_V2", 4, 0, "boot2_w25q080_2_padded_checksum")
|
||||
MakeBoard("datanoisetv_picoadk_v2", "rp2350", "DatanoiseTV", "PicoADK v2", "0x2e8a", "0x10ae", 250, "DATANOISETV_PICOADK_V2", 4, 0, "none")
|
||||
|
||||
# Degz Robotics
|
||||
MakeBoard("degz_suibo", "rp2040", "Degz Robotics", "Suibo RP2040", "0x2e8a", "0xf00a", 250, "DEGZ_SUIBO_RP2040", 16, 0, "boot2_generic_03h_4_padded_checksum", board_url="https://www.degzrobotics.com/suibo")
|
||||
|
|
@ -541,8 +559,8 @@ MakeBoard("challenger_2040_nfc", "rp2040", "iLabs", "Challenger 2040 NFC", "0x2e
|
|||
MakeBoard("challenger_2040_uwb", "rp2040", "iLabs", "Challenger 2040 UWB", "0x2e8a", "0x1052", 500, "CHALLENGER_2040_UWB_RP2040", 8, 0, "boot2_w25q080_2_padded_checksum")
|
||||
MakeBoard("connectivity_2040_lte_wifi_ble", "rp2040", "iLabs", "Connectivity 2040 LTE/WiFi/BLE", "0x2e8a", "0x107b", 500, "CONNECTIVITY_2040_LTE_WIFI_BLE_RP2040", 8, 0, "boot2_w25q080_2_padded_checksum", ["WIFIESPAT2"])
|
||||
MakeBoard("ilabs_rpico32", "rp2040", "iLabs", "RPICO32", "0x2e8a", "0x1010", 250, "ILABS_2040_RPICO32_RP2040", 8, 0, "boot2_w25q080_2_padded_checksum", ["WIFIESPAT2"])
|
||||
MakeBoard("challenger_2350_wifi6_ble5", "rp2350", "iLabs", "Challenger 2350 WiFi/BLE", "0x2e8a", "0x109a", 500, "CHALLENGER_2350_WIFI_BLE_RP2350", 8, 8, "boot2_generic_03h_2_padded_checksum")
|
||||
MakeBoard("challenger_2350_bconnect", "rp2350", "iLabs", "Challenger 2350 BConnect", "0x2e8a", "0x109b", 500, "CHALLENGER_2350_BCONNECT_RP2350", 8, 8, "boot2_generic_03h_2_padded_checksum")
|
||||
MakeBoard("challenger_2350_wifi6_ble5", "rp2350", "iLabs", "Challenger 2350 WiFi/BLE", "0x2e8a", "0x109a", 500, "CHALLENGER_2350_WIFI_BLE_RP2350", 8, 8, "none")
|
||||
MakeBoard("challenger_2350_bconnect", "rp2350", "iLabs", "Challenger 2350 BConnect", "0x2e8a", "0x109b", 500, "CHALLENGER_2350_BCONNECT_RP2350", 8, 8, "none")
|
||||
|
||||
# Melopero
|
||||
MakeBoard("melopero_cookie_rp2040", "rp2040", "Melopero", "Cookie RP2040", "0x2e8a", "0x1011", 250, "MELOPERO_COOKIE_RP2040", 8, 0, "boot2_w25q080_2_padded_checksum")
|
||||
|
|
@ -566,11 +584,11 @@ MakeBoard("olimex_rp2040pico30_16mb", "rp2040", "Olimex", "RP2040-Pico30 16MB",
|
|||
|
||||
# Pimoroni
|
||||
MakeBoard("pimoroni_pga2040", "rp2040", "Pimoroni", "PGA2040", "0x2e8a", "0x1008", 250, "PIMORONI_PGA2040", 8, 0, "boot2_w25q64jv_4_padded_checksum")
|
||||
MakeBoard("pimoroni_pga2350", "rp2350", "Pimoroni", "PGA2350", "0x2e8a", "0x1018", 250, "PIMORONI_PGA2350", 16, 8, "boot2_w25q080_4_padded_checksum")
|
||||
MakeBoard("pimoroni_pico_plus_2", "rp2350", "Pimoroni", "PicoPlus2", "0x2e8a", "0x100a", 500, "PIMORONI_PICO_PLUS_2", 16, 8, "boot2_generic_03h_4_padded_checksum")
|
||||
MakeBoard("pimoroni_pga2350", "rp2350", "Pimoroni", "PGA2350", "0x2e8a", "0x1018", 250, "PIMORONI_PGA2350", 16, 8, "none")
|
||||
MakeBoard("pimoroni_pico_plus_2", "rp2350", "Pimoroni", "PicoPlus2", "0x2e8a", "0x100a", 500, "PIMORONI_PICO_PLUS_2", 16, 8, "none")
|
||||
MakeBoard("pimoroni_plasma2040", "rp2040", "Pimoroni", "Plasma2040", "0x2e8a", "0x100a", 500, "PIMORONI_PLASMA2040", 2, 0, "boot2_w25q080_2_padded_checksum")
|
||||
MakeBoard("pimoroni_tiny2040", "rp2040", "Pimoroni", "Tiny2040", "0x2e8a", "0x100a", 500, "PIMORONI_TINY2040", 2, 0, "boot2_w25q64jv_4_padded_checksum")
|
||||
MakeBoard("pimoroni_tiny2350", "rp2350", "Pimoroni", "Tiny2350", "0x2e8a", "0x100b", 500, "PIMORONI_TINY2350", 4, 0, "boot2_w25q080_4_padded_checksum")
|
||||
MakeBoard("pimoroni_tiny2350", "rp2350", "Pimoroni", "Tiny2350", "0x2e8a", "0x100b", 500, "PIMORONI_TINY2350", 4, 0, "none")
|
||||
|
||||
#Pintronix
|
||||
MakeBoard("pintronix_pinmax", "rp2040", "Pintronix", "PinMax", "0x2e8a", "0x9101", 250, "PINTRONIX_PINMAX", 4, 0, "boot2_w25q080_2_padded_checksum")
|
||||
|
|
@ -590,13 +608,13 @@ MakeBoard("silicognition_rp2040_shim", "rp2040", "Silicognition", "RP2040-Shim",
|
|||
|
||||
# Solder Party
|
||||
MakeBoard("solderparty_rp2040_stamp", "rp2040", "Solder Party", "RP2040 Stamp", "0x1209", "0xa182", 500, "SOLDERPARTY_RP2040_STAMP", 8, 0, "boot2_generic_03h_4_padded_checksum", None, "https://www.solder.party/docs/rp2040-stamp/")
|
||||
MakeBoard("solderparty_rp2350_stamp", "rp2350", "Solder Party", "RP2350 Stamp", "0x1209", "0xa183", 500, "SOLDERPARTY_RP2350_STAMP", 16, 0, "boot2_generic_03h_2_padded_checksum", None, "https://www.solder.party/docs/rp2350-stamp/")
|
||||
MakeBoard("solderparty_rp2350_stamp_xl", "rp2350", "Solder Party", "RP2350 Stamp XL", "0x1209", "0xa184", 500, "SOLDERPARTY_RP2350_STAMP_XL", 16, 0, "boot2_generic_03h_2_padded_checksum", None, "https://www.solder.party/docs/rp2350-stamp-xl/")
|
||||
MakeBoard("solderparty_rp2350_stamp", "rp2350", "Solder Party", "RP2350 Stamp", "0x1209", "0xa183", 500, "SOLDERPARTY_RP2350_STAMP", 16, 0, "none", None, "https://www.solder.party/docs/rp2350-stamp/")
|
||||
MakeBoard("solderparty_rp2350_stamp_xl", "rp2350", "Solder Party", "RP2350 Stamp XL", "0x1209", "0xa184", 500, "SOLDERPARTY_RP2350_STAMP_XL", 16, 0, "none", None, "https://www.solder.party/docs/rp2350-stamp-xl/")
|
||||
|
||||
# SparkFun
|
||||
MakeBoard("sparkfun_micromodrp2040", "rp2040", "SparkFun", "MicroMod RP2040", "0x1b4f", "0x0026", 250, "SPARKFUN_MICROMOD_RP2040", 16, 0, "boot2_w25q080_2_padded_checksum")
|
||||
MakeBoard("sparkfun_promicrorp2040", "rp2040", "SparkFun", "ProMicro RP2040", "0x1b4f", "0x0026", 250, "SPARKFUN_PROMICRO_RP2040", 16, 0, "boot2_generic_03h_4_padded_checksum")
|
||||
MakeBoard("sparkfun_promicrorp2350", "rp2350", "SparkFun", "ProMicro RP2350", "0x1b4f", "0x0026", 250, "SPARKFUN_PROMICRO_RP2350", 16, 8, "boot2_w25q080_2_padded_checksum")
|
||||
MakeBoard("sparkfun_promicrorp2350", "rp2350", "SparkFun", "ProMicro RP2350", "0x1b4f", "0x0026", 250, "SPARKFUN_PROMICRO_RP2350", 16, 8, "none")
|
||||
MakeBoard("sparkfun_thingplusrp2040", "rp2040", "SparkFun", "Thing Plus RP2040", "0x1b4f", "0x0026", 250, "SPARKFUN_THINGPLUS_RP2040", 16, 0, "boot2_w25q080_2_padded_checksum")
|
||||
|
||||
# Upesy
|
||||
|
|
@ -629,7 +647,7 @@ MakeBoard("wiznet_5500_evb_pico", "rp2040", "WIZnet", "W5500-EVB-Pico", "0x2e8a"
|
|||
|
||||
# Generic
|
||||
MakeBoard("generic", "rp2040", "Generic", "RP2040", "0x2e8a", "0xf00a", 250, "GENERIC_RP2040", 16, 0, "boot2_generic_03h_4_padded_checksum")
|
||||
MakeBoard("generic_rp2350", "rp2350", "Generic", "RP2350", "0x2e8a", "0xf00f", 250, "GENERIC_RP2350", 16, 8, "boot2_generic_03h_4_padded_checksum")
|
||||
MakeBoard("generic_rp2350", "rp2350", "Generic", "RP2350", "0x2e8a", "0xf00f", 250, "GENERIC_RP2350", 16, 8, "none")
|
||||
|
||||
sys.stdout.close()
|
||||
with open(os.path.abspath(os.path.dirname(__file__)) + '/../package/package_pico_index.template.json', 'w', newline='\n') as f:
|
||||
|
|
|
|||
|
|
@ -120,7 +120,7 @@ if chip == "rp2040":
|
|||
("PICO_FLASH_SIZE_BYTES", board.get("upload.maximum_size"))
|
||||
]
|
||||
)
|
||||
elif chip == "rp2350":
|
||||
elif (chip == "rp2350") or (chip == "rp2350-riscv"):
|
||||
env.Append(
|
||||
CPPDEFINES=[
|
||||
("ARDUINO", 10810),
|
||||
|
|
@ -139,11 +139,8 @@ elif chip == "rp2350":
|
|||
("LIB_PICO_DIVIDER", "1"),
|
||||
("LIB_PICO_DIVIDER_COMPILER", "1"),
|
||||
("LIB_PICO_DOUBLE", "1"),
|
||||
("LIB_PICO_DOUBLE_PICO", "1"),
|
||||
("LIB_PICO_FIX_RP2040_USB_DEVICE_ENUMERATION", "1"),
|
||||
("LIB_PICO_FLOAT", "1"),
|
||||
("LIB_PICO_FLOAT_PICO", "1"),
|
||||
("LIB_PICO_FLOAT_PICO_VFP", "1"),
|
||||
("LIB_PICO_INT64_OPS", "1"),
|
||||
("LIB_PICO_INT64_OPS_COMPILER", "1"),
|
||||
("LIB_PICO_MEM_OPS", "1"),
|
||||
|
|
@ -186,11 +183,29 @@ elif chip == "rp2350":
|
|||
("PICO_FLASH_SIZE_BYTES", board.get("upload.maximum_size"))
|
||||
]
|
||||
)
|
||||
if chip == "rp2350":
|
||||
env.Append(
|
||||
CPPDEFINES=[
|
||||
("LIB_PICO_DOUBLE_PICO", "1"),
|
||||
("LIB_PICO_FLOAT_PICO", "1"),
|
||||
("LIB_PICO_FLOAT_PICO_VFP", "1")
|
||||
]
|
||||
)
|
||||
elif chip == "rp2350-riscv":
|
||||
env.Append(
|
||||
CPPDEFINES=[
|
||||
("LIB_PICO_DOUBLE_COMPILER", "1"),
|
||||
("LIB_PICO_FLOAT_COMPILER", "1"),
|
||||
("PICO_RISCV", "1")
|
||||
]
|
||||
)
|
||||
|
||||
if chip == "rp2040":
|
||||
toolopts = ["-march=armv6-m", "-mcpu=cortex-m0plus", "-mthumb"]
|
||||
elif chip == "rp2350":
|
||||
toolopts = ["-mcpu=cortex-m33", "-mthumb", "-march=armv8-m.main+fp+dsp", "-mfloat-abi=softfp", "-mcmse"]
|
||||
elif chip == "rp2350-riscv":
|
||||
toolopts = ["-march=rv32imac_zicsr_zifencei_zba_zbb_zbs_zbkb", "-mabi=ilp32"]
|
||||
|
||||
env.Append(
|
||||
CCFLAGS=[
|
||||
|
|
@ -229,7 +244,22 @@ env.Append(
|
|||
"-Wl,--gc-sections",
|
||||
"-Wl,--unresolved-symbols=report-all",
|
||||
"-Wl,--warn-common",
|
||||
"-Wl,--undefined=runtime_init_install_ram_vector_table"
|
||||
"-Wl,--undefined=runtime_init_install_ram_vector_table",
|
||||
"-Wl,--undefined=__pre_init_runtime_init_clocks",
|
||||
"-Wl,--undefined=__pre_init_runtime_init_bootrom_reset",
|
||||
"-Wl,--undefined=__pre_init_runtime_init_early_resets",
|
||||
"-Wl,--undefined=__pre_init_runtime_init_usb_power_down",
|
||||
"-Wl,--undefined=__pre_init_runtime_init_clocks",
|
||||
"-Wl,--undefined=__pre_init_runtime_init_post_clock_resets",
|
||||
"-Wl,--undefined=__pre_init_runtime_init_spin_locks_reset",
|
||||
"-Wl,--undefined=__pre_init_runtime_init_boot_locks_reset",
|
||||
"-Wl,--undefined=__pre_init_runtime_init_bootrom_locking_enable",
|
||||
"-Wl,--undefined=__pre_init_runtime_init_mutex",
|
||||
"-Wl,--undefined=__pre_init_runtime_init_default_alarm_pool",
|
||||
"-Wl,--undefined=__pre_init_first_per_core_initializer",
|
||||
"-Wl,--undefined=__pre_init_runtime_init_per_core_bootrom_reset"
|
||||
"-Wl,--undefined=__pre_init_runtime_init_per_core_h3_irq_registers",
|
||||
"-Wl,--undefined=__pre_init_runtime_init_per_core_irq_priorities"
|
||||
] + toolopts,
|
||||
|
||||
LIBSOURCE_DIRS=[os.path.join(FRAMEWORK_DIR, "libraries")],
|
||||
|
|
@ -263,7 +293,7 @@ else:
|
|||
"-iprefix" + os.path.join(FRAMEWORK_DIR),
|
||||
"@%s" % os.path.join(FRAMEWORK_DIR, "lib", chip, "platform_inc.txt"),
|
||||
"@%s" % os.path.join(FRAMEWORK_DIR, "lib", "core_inc.txt")
|
||||
])
|
||||
] + toolopts)
|
||||
|
||||
def configure_usb_flags(cpp_defines):
|
||||
if "USE_TINYUSB" in cpp_defines:
|
||||
|
|
|
|||
Loading…
Reference in a new issue