Compare commits

..
29 Commits
Author SHA1 Message Date
Earle F. Philhower, III ef257c32b4 Update version 2023-09-05 14:15:03 -07:00
Earle F. Philhower, III 88cd4b5288 Fix Print::print(0ULL) (#1692)
Move to a patched ArduinoCore-API revision.

Fixes #1691
2023-09-03 13:30:12 -07:00
Earle F. Philhower, III ca7ec56f0d Rebuild OTA using GCC 12.3 (#1690)
No functional changes, just for completeness.
2023-09-03 09:58:28 -07:00
Earle F. Philhower, III 74b1156d5e Fix PicoProbe CMSIS restart of second core (#1689)
For some reason `program ... reset" causes OpenOCD to leave the chip in a
state where the 2nd core does not come up properly, leading to problems in
FreeRTOS and others.

Use a separate reset sequence after programming to work around the issue.

Fixes #1687
2023-09-03 09:43:34 -07:00
Odd Stråbø 6ac7ee1a9d Fix gcc search path in make-ota.sh (#1688) 2023-09-03 09:23:50 -07:00
Earle F. Philhower, III 0b56452c35 Rebuild libpico/libbearssl using GCC 12.3 (#1686) 2023-09-01 08:17:31 -07:00
Earle F. Philhower, III b9c66ca0fd Ensure HID reports aren't dropped (#1685)
Fixes #1682

Make the HID report wait up to 500ms for an existing one to go out
before giving up sending a report.
2023-08-31 08:40:38 -07:00
Earle F. Philhower, III faf06a3b70 Avoid obsolete GCC 7.1 note on building WiFi (#1684)
Fixes #1683
2023-08-31 07:42:54 -07:00
Earle F. Philhower, III d0ac7f06b1 Update version 2023-08-30 08:29:26 -07:00
Earle F. Philhower, III e9daaa3589 Add TDM support to I2S (#1673)
Fixes #1066

Implements a simple TDM mode for the I2S output object.
2023-08-30 08:28:34 -07:00
João Vieira 1393811525 Add stdint.h to generic variant common.h (#1677)
Fixes #1676
2023-08-27 13:55:17 -07:00
Andriy Golovnya 2b640669a7 Added RP2040-ProMini board to the project. (#1674) 2023-08-27 11:53:19 -07:00
Earle F. Philhower, III 9d0f0a8d7a Add missing Tiny2040 JSON (#1675) 2023-08-27 10:03:12 -07:00
Earle F. Philhower, III 21d2fb4afa Add Pimoroni Tiny2040 (#1672)
Fixes #1604.  Supports 2MB and 8MB revs
2023-08-25 10:39:56 -07:00
Earle F. Philhower, III ade74986ee GCC 12.3, GDB 12, OpenOCD 0.12, Picotool 1.1.2 (#1670)
Major toolchain update including:
* GCC 12.3
* GDB 12
* OpenOCD 0.12
* Picotool 1.1.2

* Fix MDNS infinite recursion

* Remove legacy Picoprobe

Fixes #1313
Fixes #1650
2023-08-25 09:56:52 -07:00
LinusHeu 73722b5c87 Fix I2S stop/start race condition #1656 (#1659)
Fixes  #1656
2023-08-22 08:40:23 -07:00
Earle F. Philhower, III 456b474a48 Allow re-setting identical pins without panic() (#1655)
Setting a pin to the current value is a no-op, not fatal.

Fixes #1652
2023-08-21 08:52:49 -07:00
Jimmy Hedman f11cc4db69 Make MDNS compile with IPv6 enabled (#1651) 2023-08-20 14:47:23 -07:00
Matt 8c2901da13 Update license.rst (#1648)
fixed typo in license.rst
2023-08-17 09:33:31 -07:00
LinusHeu ca4637d14d SPI debugging: tiny fix & log actual baudrate (#1641) 2023-08-10 07:39:36 -07:00
Earle F. Philhower, III 313caf406e Update version 2023-08-04 17:09:07 -07:00
Rastloser 25052fedd6 Update platform.txt to require auto-discovery and serial-monitor (#1631)
Fixes #1619

Requiring the auto-discovery tool and serial monitor if they have not already been included by other boards (namely if AVR cores have been uninstalled in the IDE).
2023-08-04 16:31:47 -07:00
Kattni 678cd2c4b9 Add Adafruit Metro RP2040 (#1630) 2023-08-04 15:49:05 -07:00
Dryw Wade 1231317c9c Fix race condition between WiFi receive and consume (#1614)
If another packet comes in between freeing `_rx_buf` and setting `_rx_buf` to 0, that new packet could get put into the same memory address and get concatenated to itself, which leads to an infinite loop.
New solution assigns a temp pointer, sets `rx_buf` to 0, then frees the memory, which guarantees `_rx_buf` always points to valid data.
2023-08-03 20:10:24 -07:00
Earle F. Philhower, III cd76f030cb Update serial.rst 2023-08-03 11:10:01 -07:00
Earle F. Philhower, III 36839cb190 Update serial.rst, add ignoreFlowControl docs (#1626) 2023-08-02 17:06:42 -07:00
marklinmax 23e68973c0 Add SerialUSB::ignoreFlowControl() method (#1624)
Fixes #1620
2023-08-02 17:00:26 -07:00
Patrick Van Oosterwijck 70af32eead Add new board Silicognition RP2040-Shim (#1623)
Board documentation can be found here:
https://silicognition.com/Products/rp2040-shim/

Signed-off-by: Patrick Van Oosterwijck <patrick@silicognition.com>
2023-08-02 16:48:55 -07:00
Maximilian Gerhardt 3cc5ac14ff Fix PlatformIO intellisense (#1616)
The `_idedata` has been changed to `__idedata` in newer PlatformIO core versions per https://github.com/platformio/platformio-core/commit/158aabbdf23ed1ff8f5e3f01fb4ef1723a78d3bb. This change has broken the logic to expand out the `-iprefix PATH @INCLUDEFILE` argument into its individual include paths, causing Intellisense breakages on some VSCode systems and other IDEs that didn't handle these arguments correctly or in which the path was corrupted.
2023-07-29 13:48:29 -07:00
52 changed files with 2029 additions and 604 deletions
+5
View File
@@ -21,6 +21,7 @@ Read the [Contributing Guide](https://github.com/earlephilhower/arduino-pico/blo
* Adafruit ItsyBitsy RP2040
* Adafruit KB2040
* Adafruit Macropad RP2040
* Adafruit Metro RP2040
* Adafruit QTPy RP2040
* Adafruit STEMMA Friend RP2040
* Adafruit Trinkey RP2040 QT
@@ -49,8 +50,11 @@ Read the [Contributing Guide](https://github.com/earlephilhower/arduino-pico/blo
* Neko Systems BL2040 Mini
* nullbits Bit-C PRO
* Pimoroni PGA2040
* Pimoroni Plasma2040
* Pimoroni Tiny2040
* Seeed Indicator RP2040
* Seeed XIAO RP2040
* Silicognition RP2040-Shim
* Solder Party RP2040 Stamp
* SparkFun ProMicro RP2040
* SparkFun Thing Plus RP2040
@@ -65,6 +69,7 @@ Read the [Contributing Guide](https://github.com/earlephilhower/arduino-pico/blo
* WIZnet W5100S-EVB-Pico
* WIZnet W5500-EVB-Pico
* WIZnet WizFi360-EVB-Pico
* Redscorp RP2040-ProMini
* Generic (configurable flash, I/O pins)
# Installing via Arduino Boards Manager
+1026 -372
View File
File diff suppressed because it is too large Load Diff
+12
View File
@@ -394,6 +394,18 @@ void __USBStart() {
}
bool __USBHIDReady() {
uint32_t start = millis();
const uint32_t timeout = 500;
while (((millis() - start) < timeout) && tud_ready() && !tud_hid_ready()) {
tud_task();
delay(1);
}
return tud_hid_ready();
}
// Invoked when received GET_REPORT control request
// Application must fill buffer report's content and return its length.
// Return zero will cause the stack to STALL request
+3
View File
@@ -45,3 +45,6 @@ int __USBGetJoystickReportID();
// Called by main() to init the USB HW/SW.
void __USBStart();
// Helper class for HID report sending with wait and timeout
bool __USBHIDReady();
+2 -2
View File
@@ -1,5 +1,5 @@
#pragma once
#define ARDUINO_PICO_MAJOR 3
#define ARDUINO_PICO_MINOR 3
#define ARDUINO_PICO_MINOR 4
#define ARDUINO_PICO_REVISION 1
#define ARDUINO_PICO_VERSION_STR "3.3.1"
#define ARDUINO_PICO_VERSION_STR "3.4.1"
+16
View File
@@ -40,6 +40,10 @@ bool SerialUART::setRX(pin_size_t pin) {
return true;
}
if (_rx == pin) {
return true;
}
if (_running) {
panic("FATAL: Attempting to set Serial%d.RX while running", uart_get_index(_uart) + 1);
} else {
@@ -57,6 +61,10 @@ bool SerialUART::setTX(pin_size_t pin) {
return true;
}
if (_tx == pin) {
return true;
}
if (_running) {
panic("FATAL: Attempting to set Serial%d.TX while running", uart_get_index(_uart) + 1);
} else {
@@ -74,6 +82,10 @@ bool SerialUART::setRTS(pin_size_t pin) {
return true;
}
if (_rts == pin) {
return true;
}
if (_running) {
panic("FATAL: Attempting to set Serial%d.RTS while running", uart_get_index(_uart) + 1);
} else {
@@ -91,6 +103,10 @@ bool SerialUART::setCTS(pin_size_t pin) {
return true;
}
if (_cts == pin) {
return true;
}
if (_running) {
panic("FATAL: Attempting to set Serial%d.CTS while running", uart_get_index(_uart) + 1);
} else {
+4 -1
View File
@@ -130,7 +130,7 @@ size_t SerialUSB::write(const uint8_t *buf, size_t length) {
static uint64_t last_avail_time;
int written = 0;
if (tud_cdc_connected()) {
if (tud_cdc_connected() || _ignoreFlowControl) {
for (size_t i = 0; i < length;) {
int n = length - i;
int avail = tud_cdc_write_available();
@@ -171,6 +171,9 @@ SerialUSB::operator bool() {
return tud_cdc_connected();
}
void SerialUSB::ignoreFlowControl(bool ignore) {
_ignoreFlowControl = ignore;
}
static bool _dtr = false;
static bool _rts = false;
+3
View File
@@ -44,6 +44,8 @@ public:
using Print::write;
operator bool() override;
void ignoreFlowControl(bool ignore = true);
// ESP8266 compat
void setDebugOutput(bool unused) {
(void) unused;
@@ -51,6 +53,7 @@ public:
private:
bool _running = false;
bool _ignoreFlowControl = false;
};
extern SerialUSB Serial;
+2 -2
View File
@@ -54,9 +54,9 @@ author = u'Earle F. Philhower, III'
# built documents.
#
# The short X.Y version.
version = u'3.3.1'
version = u'3.4.1'
# The full version, including alpha/beta/rc tags.
release = u'3.3.1'
release = u'3.4.1'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
+9
View File
@@ -81,6 +81,15 @@ Enables LSB-J format for I2S output. In this mode the MSB comes out at the
same time as the LRCLK changes, and not the normal 1-cycle delay. Useful for
DAC chips like the PT8211.
bool setTDMFormat()
~~~~~~~~~~~~~~~~~~~
Enabled TDM formatted multi-channel output. Be sure to set the number of channels to
the expected value (8 normally) and the bits per sample to 32.
bool setTDMChannels(int channels)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sets the number of TDM channels between frame syncs. Generally should be set to 8.
bool swapClocks()
~~~~~~~~~~~~~~~~~
Certain boards are hardwired with the WCLK before the BCLK, instead of the normal
+1 -1
View File
@@ -10,5 +10,5 @@ In addition, it contains code from additional open source projects:
* The `Pico-SDK <https://github.com/raspberrypi/pico-sdk>`_ and `Pico-Extras <https://github.com/raspberrypi/pico-extras>`_ are by Raspberry Pi (Trading) Ltd. and licensed under the BSD 3-Clause license.
* `Arduino-Pico <https://github.com/earlephilhower/arduino-pico>`_ core files are licenses under the LGPL.
* `LittleFS <https://github.com/ARMmbed/littlefs>`_ library written by ARM Limited and released under the `BSD 3-clause license <https://github.com/ARMmbed/littlefs/blob/master/LICENSE.md>`_ .
* `UF2CONV.PY <https://github.com/microsoft/uf2>`_ is by Microsoft Corporatio and licensed under the MIT license.
* `UF2CONV.PY <https://github.com/microsoft/uf2>`_ is by Microsoft Corporation and licensed under the MIT license.
* Some filesystem code taken from the `ESP8266 Arduino Core <https://github.com/esp8266/Arduino>`_ and licensed under the LGPL.
+10
View File
@@ -45,3 +45,13 @@ For applications where an IRQ driven serial port is not appropriate, use
For detailed information about the Serial ports, see the
Arduino `Serial Reference <https://www.arduino.cc/reference/en/language/functions/communication/serial/>`_ .
RP2040 Specific SerialUSB methods
---------------------------------
void Serial.ignoreFlowControl(bool ignore)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In some cases, the target application will not assert the DTR virtual line, thus preventing writing operations to succeed.
For this reason, the SerialUSB::ignoreFlowControl() method disables the connection's state verification, enabling the program to write on the port, even though the data might be lost.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
-2
View File
@@ -1,2 +0,0 @@
source [find interface/picoprobe.cfg]
source [find target/rp2040.cfg]
@@ -73,11 +73,9 @@ AudioBufferManager::~AudioBufferManager() {
if (_running) {
_running = false;
for (auto i = 0; i < 2; i++) {
dma_channel_set_irq0_enabled(_channelDMA[i], false);
dma_channel_cleanup(_channelDMA[i]);
__channelMap[_channelDMA[i]] = nullptr;
dma_channel_abort(_channelDMA[i]);
dma_channel_unclaim(_channelDMA[i]);
dma_channel_acknowledge_irq0(_channelDMA[i]);
__channelCount--;
}
if (!__channelCount) {
+49
View File
@@ -0,0 +1,49 @@
/*
This example just sends out TDM data on 8 channels with their value
equal to the channel number.
Released to the public domain by Earle F. Philhower, III <earlephilhower@yahoo.com>
*/
#include <I2S.h>
// Create the I2S port using a PIO state machine
I2S i2s(OUTPUT);
// GPIO pin numbers
#define pBCLK 20
#define pWS (pBCLK+1)
#define pDOUT 22
const int sampleRate = 1000;
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, 1);
Serial.begin(115200);
Serial.println("I2S TDM test");
i2s.setBCLK(pBCLK);
i2s.setDATA(pDOUT);
i2s.setBitsPerSample(32);
i2s.setTDMFormat();
i2s.setTDMChannels(8);
// start I2S at the sample rate with 16-bits per sample
if (!i2s.begin(sampleRate)) {
Serial.println("Failed to initialize I2S!");
while (1); // do nothing
}
}
void loop() {
uint32_t x = 0;
while (1) {
i2s.write(x & 0x07);
if (!(x % 10000)) {
Serial.println(x);
}
x++;
}
}
+2
View File
@@ -21,6 +21,8 @@ setBitsPerSample KEYWORD2
setFrequency KEYWORD2
setBuffers KEYWORD2
setLSBJFormat KEYWORD2
setTDMFormat KEYWORD2
setTDMChannels KEYWORD2
swapClocks KEYWORD2
setMCLKmult KEYWORD2
setSysClk KEYWORD2
+25 -5
View File
@@ -55,6 +55,8 @@ I2S::I2S(PinMode direction) {
_bufferWords = 0;
_silenceSample = 0;
_isLSBJ = false;
_isTDM = false;
_tdmChannels = 8;
_swapClocks = false;
_multMCLK = 256;
}
@@ -109,10 +111,10 @@ bool I2S::setFrequency(int newFreq) {
_freq = newFreq;
if (_running) {
if (_MCLKenabled) {
int bitClk = _freq * _bps * 2.0 /* channels */ * 2.0 /* edges per clock */;
int bitClk = _freq * _bps * (_isTDM ? (double)_tdmChannels : 2.0) /* channels */ * 2.0 /* edges per clock */;
pio_sm_set_clkdiv_int_frac(_pio, _sm, clock_get_hz(clk_sys) / bitClk, 0);
} else {
float bitClk = _freq * _bps * 2.0 /* channels */ * 2.0 /* edges per clock */;
float bitClk = _freq * _bps * (_isTDM ? (double)_tdmChannels : 2.0) /* channels */ * 2.0 /* edges per clock */;
pio_sm_set_clkdiv(_pio, _sm, (float)clock_get_hz(clk_sys) / bitClk);
}
}
@@ -151,6 +153,22 @@ bool I2S::setLSBJFormat() {
return true;
}
bool I2S::setTDMFormat() {
if (_running || !_isOutput) {
return false;
}
_isTDM = true;
return true;
}
bool I2S::setTDMChannels(int channels) {
if (_running || !_isOutput) {
return false;
}
_tdmChannels = channels;
return true;
}
bool I2S::swapClocks() {
if (_running || !_isOutput) {
return false;
@@ -193,9 +211,9 @@ bool I2S::begin() {
_isHolding = 0;
int off = 0;
if (!_swapClocks) {
_i2s = new PIOProgram(_isOutput ? (_isLSBJ ? &pio_lsbj_out_program : &pio_i2s_out_program) : &pio_i2s_in_program);
_i2s = new PIOProgram(_isOutput ? (_isTDM ? &pio_tdm_out_program : (_isLSBJ ? &pio_lsbj_out_program : &pio_i2s_out_program)) : &pio_i2s_in_program);
} else {
_i2s = new PIOProgram(_isOutput ? (_isLSBJ ? &pio_lsbj_out_swap_program : &pio_i2s_out_swap_program) : &pio_i2s_in_swap_program);
_i2s = new PIOProgram(_isOutput ? (_isTDM ? &pio_tdm_out_swap_program : (_isLSBJ ? &pio_lsbj_out_swap_program : &pio_i2s_out_swap_program)) : &pio_i2s_in_swap_program);
}
if (!_i2s->prepare(&_pio, &_sm, &off)) {
_running = false;
@@ -204,7 +222,9 @@ bool I2S::begin() {
return false;
}
if (_isOutput) {
if (_isLSBJ) {
if (_isTDM) {
pio_tdm_out_program_init(_pio, _sm, off, _pinDOUT, _pinBCLK, _bps, _swapClocks, _tdmChannels);
} else if (_isLSBJ) {
pio_lsbj_out_program_init(_pio, _sm, off, _pinDOUT, _pinBCLK, _bps, _swapClocks);
} else {
pio_i2s_out_program_init(_pio, _sm, off, _pinDOUT, _pinBCLK, _bps, _swapClocks);
+4
View File
@@ -35,6 +35,8 @@ public:
bool setBuffers(size_t buffers, size_t bufferWords, int32_t silenceSample = 0);
bool setFrequency(int newFreq);
bool setLSBJFormat();
bool setTDMFormat();
bool setTDMChannels(int channels);
bool swapClocks();
bool setMCLKmult(int mult);
bool setSysClk(int samplerate);
@@ -121,6 +123,8 @@ private:
size_t _bufferWords;
int32_t _silenceSample;
bool _isLSBJ;
bool _isTDM;
int _tdmChannels;
bool _isOutput;
bool _swapClocks;
bool _MCLKenabled;
+59
View File
@@ -72,6 +72,38 @@ right:
; Loop back to beginning...
.program pio_tdm_out
.side_set 2 ; 0 = bclk, 1 = wclk
; The C code should place (number of bits - 1) in Y and update SHIFTCTRL
; to be 32 (as per the TDM specs)
; +----- WCLK
; |+---- BCLK
mov x, y side 0b11
bitloop:
out pins, 1 side 0b00
jmp x-- bitloop side 0b01
lastbit:
out pins, 1 side 0b10
; Loop back to the beginning
.program pio_tdm_out_swap
.side_set 2 ; 0 = wclk, 1 = bclk
; The C code should place (number of bits - 1) in Y and update SHIFTCTRL
; to be 32 (as per the TDM specs)
; +----- BCLK
; |+---- WCLK
mov x, y side 0b11
bitloop:
out pins, 1 side 0b00
jmp x-- bitloop side 0b10
lastbit:
out pins, 1 side 0b01
; Loop back to the beginning
.program pio_lsbj_out
.side_set 2 ; 0 = bclk, 1=wclk
@@ -195,6 +227,33 @@ static inline void pio_i2s_out_program_init(PIO pio, uint sm, uint offset, uint
pio_sm_exec(pio, sm, pio_encode_set(pio_y, bits - 2));
}
static inline void pio_tdm_out_program_init(PIO pio, uint sm, uint offset, uint data_pin, uint clock_pin_base, uint bits, bool swap, uint channels) {
pio_gpio_init(pio, data_pin);
pio_gpio_init(pio, clock_pin_base);
pio_gpio_init(pio, clock_pin_base + 1);
pio_sm_config sm_config = swap ? pio_tdm_out_swap_program_get_default_config(offset) : pio_tdm_out_program_get_default_config(offset);
sm_config_set_out_pins(&sm_config, data_pin, 1);
sm_config_set_sideset_pins(&sm_config, clock_pin_base);
sm_config_set_out_shift(&sm_config, false, true, 32);
sm_config_set_fifo_join(&sm_config, PIO_FIFO_JOIN_TX);
pio_sm_init(pio, sm, offset, &sm_config);
uint pin_mask = (1u << data_pin) | (3u << clock_pin_base);
pio_sm_set_pindirs_with_mask(pio, sm, pin_mask, pin_mask);
pio_sm_set_pins(pio, sm, 0); // clear pins
// Can't set constant > 31, so push and pop/mov
pio_sm_put_blocking(pio, sm, bits * channels - 2);
pio_sm_exec(pio, sm, pio_encode_pull(false, false));
pio_sm_exec(pio, sm, pio_encode_mov(pio_y, pio_osr));
// Need to make OSR believe there's nothing left to shift out, or the 1st word will be the count we just passed in, not a sample
pio_sm_exec(pio, sm, pio_encode_out(pio_osr, 32));
}
static inline void pio_lsbj_out_program_init(PIO pio, uint sm, uint offset, uint data_pin, uint clock_pin_base, uint bits, bool swap) {
pio_gpio_init(pio, data_pin);
pio_gpio_init(pio, clock_pin_base);
+83
View File
@@ -106,6 +106,68 @@ static inline pio_sm_config pio_i2s_out_swap_program_get_default_config(uint off
}
#endif
// ----------- //
// pio_tdm_out //
// ----------- //
#define pio_tdm_out_wrap_target 0
#define pio_tdm_out_wrap 3
static const uint16_t pio_tdm_out_program_instructions[] = {
// .wrap_target
0xb822, // 0: mov x, y side 3
0x6001, // 1: out pins, 1 side 0
0x0841, // 2: jmp x--, 1 side 1
0x7001, // 3: out pins, 1 side 2
// .wrap
};
#if !PICO_NO_HARDWARE
static const struct pio_program pio_tdm_out_program = {
.instructions = pio_tdm_out_program_instructions,
.length = 4,
.origin = -1,
};
static inline pio_sm_config pio_tdm_out_program_get_default_config(uint offset) {
pio_sm_config c = pio_get_default_sm_config();
sm_config_set_wrap(&c, offset + pio_tdm_out_wrap_target, offset + pio_tdm_out_wrap);
sm_config_set_sideset(&c, 2, false, false);
return c;
}
#endif
// ---------------- //
// pio_tdm_out_swap //
// ---------------- //
#define pio_tdm_out_swap_wrap_target 0
#define pio_tdm_out_swap_wrap 3
static const uint16_t pio_tdm_out_swap_program_instructions[] = {
// .wrap_target
0xb822, // 0: mov x, y side 3
0x6001, // 1: out pins, 1 side 0
0x1041, // 2: jmp x--, 1 side 2
0x6801, // 3: out pins, 1 side 1
// .wrap
};
#if !PICO_NO_HARDWARE
static const struct pio_program pio_tdm_out_swap_program = {
.instructions = pio_tdm_out_swap_program_instructions,
.length = 4,
.origin = -1,
};
static inline pio_sm_config pio_tdm_out_swap_program_get_default_config(uint offset) {
pio_sm_config c = pio_get_default_sm_config();
sm_config_set_wrap(&c, offset + pio_tdm_out_swap_wrap_target, offset + pio_tdm_out_swap_wrap);
sm_config_set_sideset(&c, 2, false, false);
return c;
}
#endif
// ------------ //
// pio_lsbj_out //
// ------------ //
@@ -267,6 +329,26 @@ static inline void pio_i2s_out_program_init(PIO pio, uint sm, uint offset, uint
pio_sm_set_pins(pio, sm, 0); // clear pins
pio_sm_exec(pio, sm, pio_encode_set(pio_y, bits - 2));
}
static inline void pio_tdm_out_program_init(PIO pio, uint sm, uint offset, uint data_pin, uint clock_pin_base, uint bits, bool swap, uint channels) {
pio_gpio_init(pio, data_pin);
pio_gpio_init(pio, clock_pin_base);
pio_gpio_init(pio, clock_pin_base + 1);
pio_sm_config sm_config = swap ? pio_tdm_out_swap_program_get_default_config(offset) : pio_tdm_out_program_get_default_config(offset);
sm_config_set_out_pins(&sm_config, data_pin, 1);
sm_config_set_sideset_pins(&sm_config, clock_pin_base);
sm_config_set_out_shift(&sm_config, false, true, 32);
sm_config_set_fifo_join(&sm_config, PIO_FIFO_JOIN_TX);
pio_sm_init(pio, sm, offset, &sm_config);
uint pin_mask = (1u << data_pin) | (3u << clock_pin_base);
pio_sm_set_pindirs_with_mask(pio, sm, pin_mask, pin_mask);
pio_sm_set_pins(pio, sm, 0); // clear pins
// Can't set constant > 31, so push and pop/mov
pio_sm_put_blocking(pio, sm, bits * channels - 2);
pio_sm_exec(pio, sm, pio_encode_pull(false, false));
pio_sm_exec(pio, sm, pio_encode_mov(pio_y, pio_osr));
// Need to make OSR believe there's nothing left to shift out, or the 1st word will be the count we just passed in, not a sample
pio_sm_exec(pio, sm, pio_encode_out(pio_osr, 32));
}
static inline void pio_lsbj_out_program_init(PIO pio, uint sm, uint offset, uint data_pin, uint clock_pin_base, uint bits, bool swap) {
pio_gpio_init(pio, data_pin);
pio_gpio_init(pio, clock_pin_base);
@@ -299,3 +381,4 @@ static inline void pio_i2s_in_program_init(PIO pio, uint sm, uint offset, uint d
}
#endif
+1 -1
View File
@@ -40,7 +40,7 @@ Joystick_::Joystick_(void) {
void Joystick_::send_now(void) {
CoreMutex m(&__usb_mutex);
tud_task();
if (tud_hid_ready()) {
if (__USBHIDReady()) {
tud_hid_n_report(0, __USBGetJoystickReportID(), &data, sizeof(data));
}
tud_task();
+2 -2
View File
@@ -40,7 +40,7 @@ Keyboard_::Keyboard_(void) {
void Keyboard_::sendReport(KeyReport* keys) {
CoreMutex m(&__usb_mutex);
tud_task();
if (tud_hid_ready()) {
if (__USBHIDReady()) {
tud_hid_keyboard_report(__USBGetKeyboardReportID(), keys->modifiers, keys->keys);
}
tud_task();
@@ -49,7 +49,7 @@ void Keyboard_::sendReport(KeyReport* keys) {
void Keyboard_::sendConsumerReport(uint16_t key) {
CoreMutex m(&__usb_mutex);
tud_task();
if (tud_hid_ready()) {
if (__USBHIDReady()) {
tud_hid_report(__USBGetKeyboardReportID() + 1, &key, sizeof(key));
}
tud_task();
@@ -268,7 +268,11 @@ bool MDNSResponder::_parseQuery(const MDNSResponder::stcMDNS_MsgHeader& p_MsgHea
remote = m_pUDPContext->getRemoteAddress();
local = WiFi.localIP();
netmask = WiFi.subnetMask();
#if LWIP_IPV6
if (ip4_addr_netcmp(&remote.u_addr.ip4, &local.u_addr.ip4, &netmask.u_addr.ip4))
#else
if (ip4_addr_netcmp(&remote, &local, &netmask))
#endif
// ip_info IPInfo_Local;
// ip_info IPInfo_Remote;
// if (((IPInfo_Remote.ip.addr = m_pUDPContext->getRemoteAddress()))
@@ -1539,15 +1539,6 @@ bool MDNSResponder::stcMDNSServiceQuery::stcAnswer::removeIP4Address(
return bResult;
}
/*
MDNSResponder::stcMDNSServiceQuery::stcAnswer::findIP4Address (const)
*/
const MDNSResponder::stcMDNSServiceQuery::stcAnswer::stcIP4Address*
MDNSResponder::stcMDNSServiceQuery::stcAnswer::findIP4Address(
const IPAddress& p_IPAddress) const {
return (stcIP4Address*)(((const stcAnswer*)this)->findIP4Address(p_IPAddress));
}
/*
MDNSResponder::stcMDNSServiceQuery::stcAnswer::findIP4Address
*/
+1 -1
View File
@@ -44,7 +44,7 @@ Mouse_::Mouse_(void) {
void Mouse_::move(int x, int y, signed char wheel) {
CoreMutex m(&__usb_mutex);
tud_task();
if (tud_hid_ready()) {
if (__USBHIDReady()) {
tud_hid_mouse_report(__USBGetMouseReportID(), _buttons, limit_xy(x), limit_xy(y), wheel, 0);
}
tud_task();
+18 -1
View File
@@ -177,7 +177,7 @@ void SPIClassRP2040::transfer(const void *txbuf, void *rxbuf, size_t count) {
}
void SPIClassRP2040::beginTransaction(SPISettings settings) {
DEBUGSPI("SPI::beginTransaction(clk=%lu, bo=%s\n", _spis.getClockFreq(), (_spis.getBitOrder() == MSBFIRST) ? "MSB" : "LSB");
DEBUGSPI("SPI::beginTransaction(clk=%lu, bo=%s)\n", settings.getClockFreq(), (settings.getBitOrder() == MSBFIRST) ? "MSB" : "LSB");
if (_initted && settings == _spis) {
DEBUGSPI("SPI: Reusing existing initted SPI\n");
} else {
@@ -188,6 +188,7 @@ void SPIClassRP2040::beginTransaction(SPISettings settings) {
}
DEBUGSPI("SPI: initting SPI\n");
spi_init(_spi, _spis.getClockFreq());
DEBUGSPI("SPI: actual baudrate=%u\n", spi_get_baudrate(_spi));
_initted = true;
}
}
@@ -205,6 +206,10 @@ bool SPIClassRP2040::setRX(pin_size_t pin) {
return true;
}
if (_RX == pin) {
return true;
}
if (_running) {
panic("FATAL: Attempting to set SPI%s.RX while running", spi_get_index(_spi) ? "1" : "");
} else {
@@ -222,6 +227,10 @@ bool SPIClassRP2040::setCS(pin_size_t pin) {
return true;
}
if (_CS == pin) {
return true;
}
if (_running) {
panic("FATAL: Attempting to set SPI%s.CS while running", spi_get_index(_spi) ? "1" : "");
} else {
@@ -239,6 +248,10 @@ bool SPIClassRP2040::setSCK(pin_size_t pin) {
return true;
}
if (_SCK == pin) {
return true;
}
if (_running) {
panic("FATAL: Attempting to set SPI%s.SCK while running", spi_get_index(_spi) ? "1" : "");
} else {
@@ -256,6 +269,10 @@ bool SPIClassRP2040::setTX(pin_size_t pin) {
return true;
}
if (_TX == pin) {
return true;
}
if (_running) {
panic("FATAL: Attempting to set SPI%s.TX while running", spi_get_index(_spi) ? "1" : "");
} else {
+2 -1
View File
@@ -611,9 +611,10 @@ protected:
_rx_buf_offset += size;
} else if (!_rx_buf->next) {
DEBUGV(":c0 %d, %d\r\n", size, _rx_buf->tot_len);
pbuf_free(_rx_buf);
auto head = _rx_buf;
_rx_buf = 0;
_rx_buf_offset = 0;
pbuf_free(head);
} else {
DEBUGV(":c %d, %d, %d\r\n", size, _rx_buf->len, _rx_buf->tot_len);
auto head = _rx_buf;
+8
View File
@@ -56,6 +56,10 @@ bool TwoWire::setSDA(pin_size_t pin) {
return true;
}
if (_sda == pin) {
return true;
}
if (_running) {
panic("FATAL: Attempting to set Wire%s.SDA while running", i2c_hw_index(_i2c) ? "1" : "");
} else {
@@ -73,6 +77,10 @@ bool TwoWire::setSCL(pin_size_t pin) {
return true;
}
if (_scl == pin) {
return true;
}
if (_running) {
panic("FATAL: Attempting to set Wire%s.SCL while running", i2c_hw_index(_i2c) ? "1" : "");
} else {
+1 -1
View File
@@ -3,7 +3,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/arm-none-eabi/bin; pwd):$PATH"
rm -rf build
mkdir build
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "framework-arduinopico",
"version": "1.30301.0",
"version": "1.30401.0",
"description": "Arduino Wiring-based Framework (RPi Pico RP2040)",
"keywords": [
"framework",
+192 -180
View File
@@ -53,6 +53,9 @@
{
"name": "Adafruit ItsyBitsy RP2040"
},
{
"name": "Adafruit Metro RP2040"
},
{
"name": "Adafruit QT Py RP2040"
},
@@ -149,6 +152,12 @@
{
"name": "Pimoroni Plasma2040"
},
{
"name": "Pimoroni Tiny2040"
},
{
"name": "Silicognition RP2040-Shim"
},
{
"name": "Solder Party RP2040 Stamp"
},
@@ -200,6 +209,9 @@
{
"name": "WIZnet W5500-EVB-Pico"
},
{
"name": "redscorp RP2040-ProMini"
},
{
"name": "Generic RP2040"
}
@@ -207,22 +219,22 @@
"toolsDependencies": [
{
"packager": "rp2040",
"version": "1.5.0-b-c7bab52",
"version": "2.0.0-a-d3d2e6b",
"name": "pqt-gcc"
},
{
"packager": "rp2040",
"version": "1.5.0-b-c7bab52",
"version": "2.0.0-a-d3d2e6b",
"name": "pqt-mklittlefs"
},
{
"packager": "rp2040",
"version": "1.5.0-b-c7bab52",
"version": "2.0.0-a-d3d2e6b",
"name": "pqt-elf2uf2"
},
{
"packager": "rp2040",
"version": "1.5.0-b-c7bab52",
"version": "2.0.0-a-d3d2e6b",
"name": "pqt-pioasm"
},
{
@@ -232,12 +244,12 @@
},
{
"packager": "rp2040",
"version": "1.5.0-b-c7bab52",
"version": "2.0.0-a-d3d2e6b",
"name": "pqt-openocd"
},
{
"packager": "rp2040",
"version": "1.5.0-b-03f2812",
"version": "2.0.0-a-d3d2e6b",
"name": "pqt-picotool"
}
],
@@ -248,112 +260,112 @@
],
"tools": [
{
"version": "1.5.0-b-03f2812",
"version": "2.0.0-a-d3d2e6b",
"name": "pqt-picotool",
"systems": [
{
"host": "aarch64-linux-gnu",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/aarch64-linux-gnu.picotool-03f2812.230216.tar.gz",
"archiveFileName": "aarch64-linux-gnu.picotool-03f2812.230216.tar.gz",
"checksum": "SHA-256:5efe9c4ccc08d9d28cc87a0cfaf563b6fc1caa5d3967c963814225fd252756c7",
"size": "171877"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/aarch64-linux-gnu.picotool-f6fe6b7.230824.tar.gz",
"archiveFileName": "aarch64-linux-gnu.picotool-f6fe6b7.230824.tar.gz",
"checksum": "SHA-256:161f345373b4eb02cd5aa9d9009af51262c6ad4ce3ee7dbf251eb47bf60d2ab5",
"size": "173036"
},
{
"host": "arm-linux-gnueabihf",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/arm-linux-gnueabihf.picotool-03f2812.230216.tar.gz",
"archiveFileName": "arm-linux-gnueabihf.picotool-03f2812.230216.tar.gz",
"checksum": "SHA-256:38f3f0925be5e053866ad33e8a535ac9d08f58af837a53b65dfe45f2ccbe9c5b",
"size": "152925"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/arm-linux-gnueabihf.picotool-f6fe6b7.230824.tar.gz",
"archiveFileName": "arm-linux-gnueabihf.picotool-f6fe6b7.230824.tar.gz",
"checksum": "SHA-256:2fcd62798af43b2c6228153158ab7a2c6dd2dac9e25b3a66454f72aa27e4c3d4",
"size": "153324"
},
{
"host": "i686-pc-linux-gnu",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/i686-linux-gnu.picotool-03f2812.230216.tar.gz",
"archiveFileName": "i686-linux-gnu.picotool-03f2812.230216.tar.gz",
"checksum": "SHA-256:485c09be49850d2e05c32e20fcc899b58e649e2863b300c7e89110d36094dce1",
"size": "183644"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/i686-linux-gnu.picotool-f6fe6b7.230824.tar.gz",
"archiveFileName": "i686-linux-gnu.picotool-f6fe6b7.230824.tar.gz",
"checksum": "SHA-256:b36741bdf141b2f2606f0053747f5d571a2f9496662617b76edba321477cd6e5",
"size": "184362"
},
{
"host": "i686-mingw32",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/i686-w64-mingw32.picotool-03f2812.230216.zip",
"archiveFileName": "i686-w64-mingw32.picotool-03f2812.230216.zip",
"checksum": "SHA-256:9d7516313c1e9b341fe8ce05b786348def60692dc88f17bdee5bc25b6baf6871",
"size": "352766"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/i686-w64-mingw32.picotool-f6fe6b7.230824.zip",
"archiveFileName": "i686-w64-mingw32.picotool-f6fe6b7.230824.zip",
"checksum": "SHA-256:4c6bea425acca78e26dd0fc9d1a02b167ca459f1a51ac714c54cef8ad6f107d4",
"size": "292401"
},
{
"host": "x86_64-apple-darwin",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/x86_64-apple-darwin14.picotool-03f2812.230216.tar.gz",
"archiveFileName": "x86_64-apple-darwin14.picotool-03f2812.230216.tar.gz",
"checksum": "SHA-256:8b48c395f871dac7cbe396e4518649d40582d5a78948f0e792d0569db5069226",
"size": "852423"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/x86_64-apple-darwin15.picotool-f6fe6b7.230824.tar.gz",
"archiveFileName": "x86_64-apple-darwin15.picotool-f6fe6b7.230824.tar.gz",
"checksum": "SHA-256:39111cba2e6b72060f42e25c04a2660398213aa9a3ca76295a588bf8da73d2e0",
"size": "844015"
},
{
"host": "x86_64-pc-linux-gnu",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/x86_64-linux-gnu.picotool-03f2812.230216.tar.gz",
"archiveFileName": "x86_64-linux-gnu.picotool-03f2812.230216.tar.gz",
"checksum": "SHA-256:507d7d01d63caebb2c3f33e99a8545a3719699c5645c423175bf0b7bfd685a48",
"size": "131605"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/x86_64-linux-gnu.picotool-f6fe6b7.230824.tar.gz",
"archiveFileName": "x86_64-linux-gnu.picotool-f6fe6b7.230824.tar.gz",
"checksum": "SHA-256:361f63ef35d15cdf5c3cd2edcaaef059e22d137c288b5b59eae9c9e1f916ecc4",
"size": "131860"
},
{
"host": "x86_64-mingw32",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/x86_64-w64-mingw32.picotool-03f2812.230216.zip",
"archiveFileName": "x86_64-w64-mingw32.picotool-03f2812.230216.zip",
"checksum": "SHA-256:ca62fe7dd783fc38080d834e413e1632086c6bc24660e6f5eaad931465ca87e3",
"size": "337119"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/x86_64-w64-mingw32.picotool-f6fe6b7.230824.zip",
"archiveFileName": "x86_64-w64-mingw32.picotool-f6fe6b7.230824.zip",
"checksum": "SHA-256:1bda4467f4fd433a57a73bc899c0557b62ea4357eed0add9ca4f9e2817d0af67",
"size": "277241"
}
]
},
{
"version": "1.5.0-b-c7bab52",
"version": "2.0.0-a-d3d2e6b",
"name": "pqt-openocd",
"systems": [
{
"host": "aarch64-linux-gnu",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/aarch64-linux-gnu.openocd-8e3c38f78.230216.tar.gz",
"archiveFileName": "aarch64-linux-gnu.openocd-8e3c38f78.230216.tar.gz",
"checksum": "SHA-256:6875c0c2e7faa320882d00f33f415499e1028d3bd0bac7d672d4342968c28eaf",
"size": "5812640"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/aarch64-linux-gnu.openocd-4d87f6dca.230824.tar.gz",
"archiveFileName": "aarch64-linux-gnu.openocd-4d87f6dca.230824.tar.gz",
"checksum": "SHA-256:f47ab6ee8b0f4fccb6975255009e9d0ba57b3b1b9d41a22e7aeee6fd26e0bc0a",
"size": "6438760"
},
{
"host": "arm-linux-gnueabihf",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/arm-linux-gnueabihf.openocd-8e3c38f78.230216.tar.gz",
"archiveFileName": "arm-linux-gnueabihf.openocd-8e3c38f78.230216.tar.gz",
"checksum": "SHA-256:fa35b2c6ca10b332718db8217c7bb57cc1e15bafc526dd05c0d6a890b05dec50",
"size": "5543967"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/arm-linux-gnueabihf.openocd-4d87f6dca.230824.tar.gz",
"archiveFileName": "arm-linux-gnueabihf.openocd-4d87f6dca.230824.tar.gz",
"checksum": "SHA-256:ff8228dc8a3f79212b5204f53404dd569c28899a9264925c64fe0a4c667c7c27",
"size": "6155079"
},
{
"host": "i686-pc-linux-gnu",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/i686-linux-gnu.openocd-8e3c38f78.230216.tar.gz",
"archiveFileName": "i686-linux-gnu.openocd-8e3c38f78.230216.tar.gz",
"checksum": "SHA-256:0f27f4a7be0411db032b8fc0aa8f55b559d03909830b38dc6610301a9a79050c",
"size": "5347247"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/i686-linux-gnu.openocd-4d87f6dca.230824.tar.gz",
"archiveFileName": "i686-linux-gnu.openocd-4d87f6dca.230824.tar.gz",
"checksum": "SHA-256:86713ce74bc19c09e4f4536a26ec331e8ccb62a796f4257d2e9d99d5d28fb87c",
"size": "5961262"
},
{
"host": "i686-mingw32",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/i686-w64-mingw32.openocd-8e3c38f78.230216.zip",
"archiveFileName": "i686-w64-mingw32.openocd-8e3c38f78.230216.zip",
"checksum": "SHA-256:a53ee67b63893d2dc432df293f494443921301021ec0828a044813528880d16a",
"size": "2207880"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/i686-w64-mingw32.openocd-4d87f6dca.230824.zip",
"archiveFileName": "i686-w64-mingw32.openocd-4d87f6dca.230824.zip",
"checksum": "SHA-256:4873ccc7b7bbe25c5a5e5bff494887a1b069d7c0612440033cc063095f7ec9c3",
"size": "2468166"
},
{
"host": "x86_64-apple-darwin",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/x86_64-apple-darwin14.openocd-8e3c38f78.230216.tar.gz",
"archiveFileName": "x86_64-apple-darwin14.openocd-8e3c38f78.230216.tar.gz",
"checksum": "SHA-256:8f68f93ee51973926cb94c24164013d35d4dd42a636e4c15af5d3bb3884e6daf",
"size": "2599703"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/x86_64-apple-darwin15.openocd-4d87f6dca.230824.tar.gz",
"archiveFileName": "x86_64-apple-darwin15.openocd-4d87f6dca.230824.tar.gz",
"checksum": "SHA-256:1313bd1ea2503052e3b2158d6f6b6489668b54246fb5d12267d402a4a78a85eb",
"size": "2800939"
},
{
"host": "x86_64-pc-linux-gnu",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/x86_64-linux-gnu.openocd-8e3c38f78.230216.tar.gz",
"archiveFileName": "x86_64-linux-gnu.openocd-8e3c38f78.230216.tar.gz",
"checksum": "SHA-256:50fe784a938922ffb0c12076245cedbc467f5f51b6030da776b6f95305308492",
"size": "5732546"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/x86_64-linux-gnu.openocd-4d87f6dca.230824.tar.gz",
"archiveFileName": "x86_64-linux-gnu.openocd-4d87f6dca.230824.tar.gz",
"checksum": "SHA-256:f43ccce16676e59d0bb06e3343c281343aa1e36d6f4e24d7668a90a881022592",
"size": "6355819"
},
{
"host": "x86_64-mingw32",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/x86_64-w64-mingw32.openocd-8e3c38f78.230216.zip",
"archiveFileName": "x86_64-w64-mingw32.openocd-8e3c38f78.230216.zip",
"checksum": "SHA-256:d36a25b7e40771bcc286a51bfa4803668037662651bce5a40a36608babbc3f5f",
"size": "2168940"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/x86_64-w64-mingw32.openocd-4d87f6dca.230824.zip",
"archiveFileName": "x86_64-w64-mingw32.openocd-4d87f6dca.230824.zip",
"checksum": "SHA-256:db17f7a64ff0386de76c11a054be6c35f4ffa2c1bab0558c147e551abfb717a9",
"size": "2412178"
}
]
},
@@ -420,222 +432,222 @@
]
},
{
"version": "1.5.0-b-c7bab52",
"version": "2.0.0-a-d3d2e6b",
"name": "pqt-gcc",
"systems": [
{
"host": "aarch64-linux-gnu",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/aarch64-linux-gnu.arm-none-eabi-c7bab52.230216.tar.gz",
"archiveFileName": "aarch64-linux-gnu.arm-none-eabi-c7bab52.230216.tar.gz",
"checksum": "SHA-256:2b3ec7c790bab21e08347205b8dec03a39747d0ef99266ce26a04e8e55bd7db8",
"size": "81474732"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/aarch64-linux-gnu.arm-none-eabi-d3d2e6b.230824.tar.gz",
"archiveFileName": "aarch64-linux-gnu.arm-none-eabi-d3d2e6b.230824.tar.gz",
"checksum": "SHA-256:dedc8a8d1fda82c56622d0d7054f47fbf3e41b80f2ce94e51ee4bbd7b111d6be",
"size": "91447565"
},
{
"host": "arm-linux-gnueabihf",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/arm-linux-gnueabihf.arm-none-eabi-c7bab52.230216.tar.gz",
"archiveFileName": "arm-linux-gnueabihf.arm-none-eabi-c7bab52.230216.tar.gz",
"checksum": "SHA-256:9ec76a79f045d6f634a21e2b1e814b39bf85bb294c53a076b9c8ac2640ad3acc",
"size": "76133046"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/arm-linux-gnueabihf.arm-none-eabi-d3d2e6b.230824.tar.gz",
"archiveFileName": "arm-linux-gnueabihf.arm-none-eabi-d3d2e6b.230824.tar.gz",
"checksum": "SHA-256:3d59a409c8eb1791055f35b0d423ea28bf0ed42fb1cde4ea1ffbf3f50c980cbc",
"size": "85417744"
},
{
"host": "i686-pc-linux-gnu",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/i686-linux-gnu.arm-none-eabi-c7bab52.230216.tar.gz",
"archiveFileName": "i686-linux-gnu.arm-none-eabi-c7bab52.230216.tar.gz",
"checksum": "SHA-256:dea62b8d66c323a07e366625049a17b2d1d8a8a7882b4d2b3aa6247456614867",
"size": "83713275"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/i686-linux-gnu.arm-none-eabi-d3d2e6b.230824.tar.gz",
"archiveFileName": "i686-linux-gnu.arm-none-eabi-d3d2e6b.230824.tar.gz",
"checksum": "SHA-256:979dfc2131d1e2114273b516e68a7a2ba4920cbd818394a075ecf3ec0c51b6e8",
"size": "93996357"
},
{
"host": "i686-mingw32",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/i686-w64-mingw32.arm-none-eabi-c7bab52.230216.zip",
"archiveFileName": "i686-w64-mingw32.arm-none-eabi-c7bab52.230216.zip",
"checksum": "SHA-256:0b76a320398ce6f0457edf98033742afd85ea3f143dec034a3fec7d3a21c52bf",
"size": "85634400"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/i686-w64-mingw32.arm-none-eabi-d3d2e6b.230824.zip",
"archiveFileName": "i686-w64-mingw32.arm-none-eabi-d3d2e6b.230824.zip",
"checksum": "SHA-256:7d1efb7628a3757539a5f04edd4596262b59d1315e3f2bbce44bea10d14ff3b4",
"size": "94386074"
},
{
"host": "x86_64-apple-darwin",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/x86_64-apple-darwin14.arm-none-eabi-c7bab52.230216.tar.gz",
"archiveFileName": "x86_64-apple-darwin14.arm-none-eabi-c7bab52.230216.tar.gz",
"checksum": "SHA-256:f83f143d424077322f7ea3971b88ac558c7b211f4a27776f6ba7c012a7c19938",
"size": "84979864"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/x86_64-apple-darwin15.arm-none-eabi-d3d2e6b.230824.tar.gz",
"archiveFileName": "x86_64-apple-darwin15.arm-none-eabi-d3d2e6b.230824.tar.gz",
"checksum": "SHA-256:a186dcb41c23ef784700299d580671d21a51c7ac2ed92bf488b3f59b0177410a",
"size": "96256078"
},
{
"host": "x86_64-pc-linux-gnu",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/x86_64-linux-gnu.arm-none-eabi-c7bab52.230216.tar.gz",
"archiveFileName": "x86_64-linux-gnu.arm-none-eabi-c7bab52.230216.tar.gz",
"checksum": "SHA-256:bf197bde7ee76d26a8c142b2308e46269252b19403df5617aa1bd90ea4618427",
"size": "83669292"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/x86_64-linux-gnu.arm-none-eabi-d3d2e6b.230824.tar.gz",
"archiveFileName": "x86_64-linux-gnu.arm-none-eabi-d3d2e6b.230824.tar.gz",
"checksum": "SHA-256:29b3b7bb64e1876c94fd14889e55bee08777630a6f31c5e4fd32179adea2993b",
"size": "93883705"
},
{
"host": "x86_64-mingw32",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/x86_64-w64-mingw32.arm-none-eabi-c7bab52.230216.zip",
"archiveFileName": "x86_64-w64-mingw32.arm-none-eabi-c7bab52.230216.zip",
"checksum": "SHA-256:ed1a7103c9d55ad3d44eeb399a308789d1d1094a73c78b554e2693eb8140b9c5",
"size": "88352385"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/x86_64-w64-mingw32.arm-none-eabi-d3d2e6b.230824.zip",
"archiveFileName": "x86_64-w64-mingw32.arm-none-eabi-d3d2e6b.230824.zip",
"checksum": "SHA-256:6da912f970be58447dea84b80565fe7c1c3308d0c62674bf7ac14b1fd8e61544",
"size": "97313187"
}
]
},
{
"version": "1.5.0-b-c7bab52",
"version": "2.0.0-a-d3d2e6b",
"name": "pqt-elf2uf2",
"systems": [
{
"host": "aarch64-linux-gnu",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/aarch64-linux-gnu.elf2uf2-2e6142b.230216.tar.gz",
"archiveFileName": "aarch64-linux-gnu.elf2uf2-2e6142b.230216.tar.gz",
"checksum": "SHA-256:00adc6949c467c75181364e9e5bf6378e50483caf4f04b0fc5e4c1d105f780ee",
"size": "82856"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/aarch64-linux-gnu.elf2uf2-6a7db34.230824.tar.gz",
"archiveFileName": "aarch64-linux-gnu.elf2uf2-6a7db34.230824.tar.gz",
"checksum": "SHA-256:a7be96a75084675aeedaf2ef476102447e464308f9b2216997e6b6dd085773da",
"size": "83803"
},
{
"host": "arm-linux-gnueabihf",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/arm-linux-gnueabihf.elf2uf2-2e6142b.230216.tar.gz",
"archiveFileName": "arm-linux-gnueabihf.elf2uf2-2e6142b.230216.tar.gz",
"checksum": "SHA-256:de9991519727ecbb3a157e672de2572c843558018515d7c680a3aa5a0d700056",
"size": "56175"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/arm-linux-gnueabihf.elf2uf2-6a7db34.230824.tar.gz",
"archiveFileName": "arm-linux-gnueabihf.elf2uf2-6a7db34.230824.tar.gz",
"checksum": "SHA-256:19f3df244c6ca6c1dc6481e594322d961900067edae69aafaf46580be148318e",
"size": "56800"
},
{
"host": "i686-pc-linux-gnu",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/i686-linux-gnu.elf2uf2-2e6142b.230216.tar.gz",
"archiveFileName": "i686-linux-gnu.elf2uf2-2e6142b.230216.tar.gz",
"checksum": "SHA-256:12c4d4566a61c15104e26b10a1330a2dc12ecf63e054966e2d6cea13cef8f92b",
"size": "91559"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/i686-linux-gnu.elf2uf2-6a7db34.230824.tar.gz",
"archiveFileName": "i686-linux-gnu.elf2uf2-6a7db34.230824.tar.gz",
"checksum": "SHA-256:73ecc3e36569f7132e55a57623d91ecbd1e711c05dd0f7a8b20556dd7d8c2007",
"size": "92430"
},
{
"host": "i686-mingw32",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/i686-w64-mingw32.elf2uf2-2e6142b.230216.zip",
"archiveFileName": "i686-w64-mingw32.elf2uf2-2e6142b.230216.zip",
"checksum": "SHA-256:6537879c71359b916dd604dc4833aeaab6ff7571ad9e498f1f2aa8085670548c",
"size": "72230"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/i686-w64-mingw32.elf2uf2-6a7db34.230824.zip",
"archiveFileName": "i686-w64-mingw32.elf2uf2-6a7db34.230824.zip",
"checksum": "SHA-256:e4b8464c4a74a56c2e9e011a897284de63eadb13eee8711d74930472c1a99e5e",
"size": "72747"
},
{
"host": "x86_64-apple-darwin",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/x86_64-apple-darwin14.elf2uf2-2e6142b.230216.tar.gz",
"archiveFileName": "x86_64-apple-darwin14.elf2uf2-2e6142b.230216.tar.gz",
"checksum": "SHA-256:5b8fb8fc2dec9819ca018fa53d84b824dd2136fdcde713d98ef2cea9e5a1ce3f",
"size": "86779"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/x86_64-apple-darwin15.elf2uf2-6a7db34.230824.tar.gz",
"archiveFileName": "x86_64-apple-darwin15.elf2uf2-6a7db34.230824.tar.gz",
"checksum": "SHA-256:3acd2d8f8a6f9ec9b85560ef7a68d3e019ae9fbe55b8e0432159118bf7f1c3b8",
"size": "105160"
},
{
"host": "x86_64-pc-linux-gnu",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/x86_64-linux-gnu.elf2uf2-2e6142b.230216.tar.gz",
"archiveFileName": "x86_64-linux-gnu.elf2uf2-2e6142b.230216.tar.gz",
"checksum": "SHA-256:784b76139053cd5fd3cac25ec00ac75d1612dc512c0cd5f7a69b5867df8ec7ba",
"size": "82555"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/x86_64-linux-gnu.elf2uf2-6a7db34.230824.tar.gz",
"archiveFileName": "x86_64-linux-gnu.elf2uf2-6a7db34.230824.tar.gz",
"checksum": "SHA-256:1d02a002eabf2897ad668e2467a04a224cedb9cb3bc37cb3498cbfa049a18ad5",
"size": "83323"
},
{
"host": "x86_64-mingw32",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/x86_64-w64-mingw32.elf2uf2-2e6142b.230216.zip",
"archiveFileName": "x86_64-w64-mingw32.elf2uf2-2e6142b.230216.zip",
"checksum": "SHA-256:7ab9d08f6f3cd472c7fc005def31c87d9ce9ea57923ef7a6a81fe4f86a75b12a",
"size": "80680"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/x86_64-w64-mingw32.elf2uf2-6a7db34.230824.zip",
"archiveFileName": "x86_64-w64-mingw32.elf2uf2-6a7db34.230824.zip",
"checksum": "SHA-256:f2751cdc76195da584533db70a08164e97f5f4e20aa1fbced234ad2ee6a49c68",
"size": "81347"
}
]
},
{
"version": "1.5.0-b-c7bab52",
"version": "2.0.0-a-d3d2e6b",
"name": "pqt-pioasm",
"systems": [
{
"host": "aarch64-linux-gnu",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/aarch64-linux-gnu.pioasm-2e6142b.230216.tar.gz",
"archiveFileName": "aarch64-linux-gnu.pioasm-2e6142b.230216.tar.gz",
"checksum": "SHA-256:6b60c57530bb3bd07f85a95808209f158b7b45b2808544794307701d8d468dd8",
"size": "453460"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/aarch64-linux-gnu.pioasm-6a7db34.230824.tar.gz",
"archiveFileName": "aarch64-linux-gnu.pioasm-6a7db34.230824.tar.gz",
"checksum": "SHA-256:ee0f2ceb5c63c8935ea8af4e0bc3046141daf94d88d6c4f3a47435c1deb712dc",
"size": "453452"
},
{
"host": "arm-linux-gnueabihf",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/arm-linux-gnueabihf.pioasm-2e6142b.230216.tar.gz",
"archiveFileName": "arm-linux-gnueabihf.pioasm-2e6142b.230216.tar.gz",
"checksum": "SHA-256:079dc194321751d70e76496f0bcffdec58b73eb9976670a170f65ec06f110450",
"size": "360828"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/arm-linux-gnueabihf.pioasm-6a7db34.230824.tar.gz",
"archiveFileName": "arm-linux-gnueabihf.pioasm-6a7db34.230824.tar.gz",
"checksum": "SHA-256:db87d67ef5faad21db418ccab51aa32548477090b5ed2c194247d564ee41b9b4",
"size": "360801"
},
{
"host": "i686-pc-linux-gnu",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/i686-linux-gnu.pioasm-2e6142b.230216.tar.gz",
"archiveFileName": "i686-linux-gnu.pioasm-2e6142b.230216.tar.gz",
"checksum": "SHA-256:8926f848f80c29d6e52595e54e9021c4955f053f8cf157b88275408a0047d08f",
"size": "511533"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/i686-linux-gnu.pioasm-6a7db34.230824.tar.gz",
"archiveFileName": "i686-linux-gnu.pioasm-6a7db34.230824.tar.gz",
"checksum": "SHA-256:1e0bf5984b416cfa42dfdabc207dbf4681990e0ef97e70ef7ed27516aa7b0c36",
"size": "510798"
},
{
"host": "i686-mingw32",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/i686-w64-mingw32.pioasm-2e6142b.230216.zip",
"archiveFileName": "i686-w64-mingw32.pioasm-2e6142b.230216.zip",
"checksum": "SHA-256:55a887da459e46b62b4e2eb6d62556e27a879e8bbf241c719f4d85b495d1caab",
"size": "386161"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/i686-w64-mingw32.pioasm-6a7db34.230824.zip",
"archiveFileName": "i686-w64-mingw32.pioasm-6a7db34.230824.zip",
"checksum": "SHA-256:446d3cb173e654a170641946f4129afcf33c26628cb80ecb6e0bf69999b4665d",
"size": "386188"
},
{
"host": "x86_64-apple-darwin",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/x86_64-apple-darwin14.pioasm-2e6142b.230216.tar.gz",
"archiveFileName": "x86_64-apple-darwin14.pioasm-2e6142b.230216.tar.gz",
"checksum": "SHA-256:2818ab1de24bad4e421315ac497b20373beaa16dd09b876bc6d00e2bba1f3d15",
"size": "480566"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/x86_64-apple-darwin15.pioasm-6a7db34.230824.tar.gz",
"archiveFileName": "x86_64-apple-darwin15.pioasm-6a7db34.230824.tar.gz",
"checksum": "SHA-256:9da859c3192de1a994c3bb7aae3be0ff2ec584dfa70f0c34b0ed3ffb44287a34",
"size": "585393"
},
{
"host": "x86_64-pc-linux-gnu",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/x86_64-linux-gnu.pioasm-2e6142b.230216.tar.gz",
"archiveFileName": "x86_64-linux-gnu.pioasm-2e6142b.230216.tar.gz",
"checksum": "SHA-256:c79400b056594268aab8ae1baf18abc8cf3170c6edb1f8104579738d78cd22ad",
"size": "458858"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/x86_64-linux-gnu.pioasm-6a7db34.230824.tar.gz",
"archiveFileName": "x86_64-linux-gnu.pioasm-6a7db34.230824.tar.gz",
"checksum": "SHA-256:52594b9199e21401b5b1d0a06ed8a24cb29e670ad4afde424775a4d55823f5c5",
"size": "458905"
},
{
"host": "x86_64-mingw32",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/x86_64-w64-mingw32.pioasm-2e6142b.230216.zip",
"archiveFileName": "x86_64-w64-mingw32.pioasm-2e6142b.230216.zip",
"checksum": "SHA-256:8c06fa68fe5d51fd54e9e9db11608e0e893d3b90e0437a6507eaef972e95b891",
"size": "409379"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/x86_64-w64-mingw32.pioasm-6a7db34.230824.zip",
"archiveFileName": "x86_64-w64-mingw32.pioasm-6a7db34.230824.zip",
"checksum": "SHA-256:e09098e7e0c12faccbe2bee0d6fccf99a21e88986c9c8b0a39a2e84a076e42b6",
"size": "408969"
}
]
},
{
"version": "1.5.0-b-c7bab52",
"version": "2.0.0-a-d3d2e6b",
"name": "pqt-mklittlefs",
"systems": [
{
"host": "aarch64-linux-gnu",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/aarch64-linux-gnu.mklittlefs-4aca452.230216.tar.gz",
"archiveFileName": "aarch64-linux-gnu.mklittlefs-4aca452.230216.tar.gz",
"checksum": "SHA-256:07d1baa8f0e8c3eb38db8751eb647e0f3ff465c5d7973642c8f9011a2c05dba2",
"size": "63222"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/aarch64-linux-gnu.mklittlefs-4aca452.230824.tar.gz",
"archiveFileName": "aarch64-linux-gnu.mklittlefs-4aca452.230824.tar.gz",
"checksum": "SHA-256:9a7749c9296173c07636b8538f8025d57cb02c5e0512cd8108423d72978b9b9a",
"size": "63139"
},
{
"host": "arm-linux-gnueabihf",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/arm-linux-gnueabihf.mklittlefs-4aca452.230216.tar.gz",
"archiveFileName": "arm-linux-gnueabihf.mklittlefs-4aca452.230216.tar.gz",
"checksum": "SHA-256:e7ce6a71ea02cae9d149ee1e078702a4af50d7a930452237666a2b402c3f1181",
"size": "53461"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/arm-linux-gnueabihf.mklittlefs-4aca452.230824.tar.gz",
"archiveFileName": "arm-linux-gnueabihf.mklittlefs-4aca452.230824.tar.gz",
"checksum": "SHA-256:673c3014252947b4d916f4e9af1d5106c744be914dced74f71eec6b51fa7688f",
"size": "53394"
},
{
"host": "i686-pc-linux-gnu",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/i686-linux-gnu.mklittlefs-4aca452.230216.tar.gz",
"archiveFileName": "i686-linux-gnu.mklittlefs-4aca452.230216.tar.gz",
"checksum": "SHA-256:8c41373fb26bcdc15590b2924f23672a46464877702c583d9a7c30ac3a1ea942",
"size": "69995"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/i686-linux-gnu.mklittlefs-4aca452.230824.tar.gz",
"archiveFileName": "i686-linux-gnu.mklittlefs-4aca452.230824.tar.gz",
"checksum": "SHA-256:d7368d642220e3fb945e3516ffd274ef201d35621a66929ad22cbe198e076c45",
"size": "69905"
},
{
"host": "i686-mingw32",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/i686-w64-mingw32.mklittlefs-4aca452.230216.zip",
"archiveFileName": "i686-w64-mingw32.mklittlefs-4aca452.230216.zip",
"checksum": "SHA-256:9a4460c0e2e46847c2bd1ab934544f88fbd611237a12445ae69dbc6086f05c4f",
"size": "347619"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/i686-w64-mingw32.mklittlefs-4aca452.230824.zip",
"archiveFileName": "i686-w64-mingw32.mklittlefs-4aca452.230824.zip",
"checksum": "SHA-256:f1e90a974db08ce5d84a4137491da06436f013672a15d2e2852002d36f75ff70",
"size": "347612"
},
{
"host": "x86_64-apple-darwin",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/x86_64-apple-darwin14.mklittlefs-4aca452.230216.tar.gz",
"archiveFileName": "x86_64-apple-darwin14.mklittlefs-4aca452.230216.tar.gz",
"checksum": "SHA-256:3575877065d206083c3dc4715bee983a1e7145969457d1fca752943aa67eb655",
"size": "378957"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/x86_64-apple-darwin15.mklittlefs-4aca452.230824.tar.gz",
"archiveFileName": "x86_64-apple-darwin15.mklittlefs-4aca452.230824.tar.gz",
"checksum": "SHA-256:aa738f35be492016ebe4a7485495c8491e4ac105a41d4b66c1b13420eb491fda",
"size": "434818"
},
{
"host": "x86_64-pc-linux-gnu",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/x86_64-linux-gnu.mklittlefs-4aca452.230216.tar.gz",
"archiveFileName": "x86_64-linux-gnu.mklittlefs-4aca452.230216.tar.gz",
"checksum": "SHA-256:af472f914ba46b6a7466049cb989804ce56d5808334b1af09403dedfdf6e1ff2",
"size": "64931"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/x86_64-linux-gnu.mklittlefs-4aca452.230824.tar.gz",
"archiveFileName": "x86_64-linux-gnu.mklittlefs-4aca452.230824.tar.gz",
"checksum": "SHA-256:7f913d9e91b5d34c9ac15becc843c49099e665f0e842985722bcfbeba48593f9",
"size": "64822"
},
{
"host": "x86_64-mingw32",
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.5.0-b/x86_64-w64-mingw32.mklittlefs-4aca452.230216.zip",
"archiveFileName": "x86_64-w64-mingw32.mklittlefs-4aca452.230216.zip",
"checksum": "SHA-256:fd3dbfd224708f05f14d1c3f715d90473d462ba2fa06683fc523e13d2bb716f2",
"size": "359304"
"url": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.0.0-a/x86_64-w64-mingw32.mklittlefs-4aca452.230824.zip",
"archiveFileName": "x86_64-w64-mingw32.mklittlefs-4aca452.230824.zip",
"checksum": "SHA-256:108350d5ea2372b72bc1d82d2079dca530529cbba60b423fa2fb97294223f0f7",
"size": "359298"
}
]
}
+14 -15
View File
@@ -20,7 +20,13 @@
# https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification
name=Raspberry Pi RP2040 Boards
version=3.3.1
version=3.4.1
# Required discoveries and monitors
# ---------------------------------
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-python3.path={runtime.platform.path}/system/python3
@@ -36,11 +42,11 @@ compiler.libraries.ldflags=
# Compile variables
# -----------------
compiler.warning_flags=-Werror=return-type
compiler.warning_flags.none=-Werror=return-type
compiler.warning_flags.default=-Werror=return-type
compiler.warning_flags.more=-Wall -Werror=return-type -Wno-ignored-qualifiers
compiler.warning_flags.all=-Wall -Wextra -Werror=return-type -Wno-ignored-qualifiers
compiler.warning_flags=-Werror=return-type -Wno-psabi
compiler.warning_flags.none=-Werror=return-type -Wno-psabi
compiler.warning_flags.default=-Werror=return-type -Wno-psabi
compiler.warning_flags.more=-Wall -Werror=return-type -Wno-ignored-qualifiers -Wno-psabi
compiler.warning_flags.all=-Wall -Wextra -Werror=return-type -Wno-ignored-qualifiers -Wno-psabi
compiler.netdefines=-DPICO_CYW43_ARCH_THREADSAFE_BACKGROUND=1 -DCYW43_LWIP=1 {build.libpicowdefs} -DLWIP_IGMP=1 -DLWIP_CHECKSUM_CTRL_PER_NETIF=1
compiler.defines={build.led} {build.usbstack_flags} -DCFG_TUSB_MCU=OPT_MCU_RP2040 {build.usbpid} {build.usbvid} {build.usbpwr} '-DUSB_MANUFACTURER={build.usb_manufacturer}' '-DUSB_PRODUCT={build.usb_product}' {compiler.netdefines} -DARDUINO_VARIANT="{build.variant}" -DTARGET_RP2040 -DPICO_FLASH_SIZE_BYTES={build.flash_total}
@@ -99,7 +105,7 @@ build.libpicow=libpicow-noipv6-nobtc-noble.a
build.boot2=boot2_generic_03h_4_padded_checksum
build.libpicowdefs=-DLWIP_IPV6=0 -DLWIP_IPV4=1
build.wificc=-DWIFICC=CYW43_COUNTRY_WORLDWIDE
build.debugscript=picoprobe.tcl
build.debugscript=picoprobe_cmsis_dap.tcl
build.picodebugflags=
# Allow Pico boards do be auto-discovered by the IDE
@@ -198,19 +204,12 @@ tools.picotool.upload.params.verbose=
tools.picotool.upload.params.quiet=
tools.picotool.upload.pattern="{cmd}/picotool" load "{build.path}/{build.project_name}.uf2" -f
#tools.picoprobe.cmd={runtime.tools.pqt-openocd.path}
tools.picoprobe.cmd={runtime.platform.path}/system/openocd
tools.picoprobe.upload.protocol=picoprobe
tools.picoprobe.upload.params.verbose=
tools.picoprobe.upload.params.quiet=
tools.picoprobe.upload.pattern="{cmd}/bin/openocd" -f "interface/picoprobe.cfg" -f "target/rp2040.cfg" -s "{cmd}/share/openocd/scripts" -c "program {{build.path}/{build.project_name}.elf} verify reset exit"
#tools.picoprobe_cmsis_dap.cmd={runtime.tools.pqt-openocd.path}
tools.picoprobe_cmsis_dap.cmd={runtime.platform.path}/system/openocd
tools.picoprobe_cmsis_dap.upload.protocol=picoprobe_cmsis_dap
tools.picoprobe_cmsis_dap.upload.params.verbose=
tools.picoprobe_cmsis_dap.upload.params.quiet=
tools.picoprobe_cmsis_dap.upload.pattern="{cmd}/bin/openocd" -f "interface/cmsis-dap.cfg" -f "target/rp2040.cfg" -s "{cmd}/share/openocd/scripts" -c "adapter speed 5000" -c "program {{build.path}/{build.project_name}.elf} verify reset exit"
tools.picoprobe_cmsis_dap.upload.pattern="{cmd}/bin/openocd" -f "interface/cmsis-dap.cfg" -f "target/rp2040.cfg" -s "{cmd}/share/openocd/scripts" -c "adapter speed 5000" -c "program {{build.path}/{build.project_name}.elf} verify" -c "reset init" -c "resume" -c "exit"
#tools.picodebug.cmd={runtime.tools.pqt-openocd.path}
tools.picodebug.cmd={runtime.platform.path}/system/openocd
+56
View File
@@ -0,0 +1,56 @@
{
"build": {
"arduino": {
"earlephilhower": {
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
"usb_vid": "0x239A",
"usb_pid": "0x813D"
}
},
"core": "earlephilhower",
"cpu": "cortex-m0plus",
"extra_flags": "-D ARDUINO_ADAFRUIT_METRO_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
"f_cpu": "133000000L",
"hwids": [
[
"0x2E8A",
"0x00C0"
],
[
"0x239A",
"0x813D"
]
],
"mcu": "rp2040",
"variant": "adafruit_metro"
},
"debug": {
"jlink_device": "RP2040_M0_0",
"openocd_target": "rp2040.cfg",
"svd_path": "rp2040.svd"
},
"frameworks": [
"arduino"
],
"name": "Metro RP2040",
"upload": {
"maximum_ram_size": 270336,
"maximum_size": 16777216,
"require_upload_port": true,
"native_usb": true,
"use_1200bps_touch": true,
"wait_for_upload_port": false,
"protocol": "picotool",
"protocols": [
"blackmagic",
"cmsis-dap",
"jlink",
"raspberrypi-swd",
"picotool",
"picoprobe",
"pico-debug"
]
},
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
"vendor": "Adafruit"
}
+56
View File
@@ -0,0 +1,56 @@
{
"build": {
"arduino": {
"earlephilhower": {
"boot2_source": "boot2_w25q64jv_4_padded_checksum.S",
"usb_vid": "0x2E8A",
"usb_pid": "0x100A"
}
},
"core": "earlephilhower",
"cpu": "cortex-m0plus",
"extra_flags": "-D ARDUINO_PIMORONI_TINY2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500",
"f_cpu": "133000000L",
"hwids": [
[
"0x2E8A",
"0x00C0"
],
[
"0x2E8A",
"0x100A"
]
],
"mcu": "rp2040",
"variant": "pimoroni_tiny2040"
},
"debug": {
"jlink_device": "RP2040_M0_0",
"openocd_target": "rp2040.cfg",
"svd_path": "rp2040.svd"
},
"frameworks": [
"arduino"
],
"name": "Tiny2040",
"upload": {
"maximum_ram_size": 270336,
"maximum_size": 2097152,
"require_upload_port": true,
"native_usb": true,
"use_1200bps_touch": true,
"wait_for_upload_port": false,
"protocol": "picotool",
"protocols": [
"blackmagic",
"cmsis-dap",
"jlink",
"raspberrypi-swd",
"picotool",
"picoprobe",
"pico-debug"
]
},
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
"vendor": "Pimoroni"
}
+56
View File
@@ -0,0 +1,56 @@
{
"build": {
"arduino": {
"earlephilhower": {
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
"usb_vid": "0x2341",
"usb_pid": "0x005F"
}
},
"core": "earlephilhower",
"cpu": "cortex-m0plus",
"extra_flags": "-D ARDUINO_REDSCORP_RP2040_PROMINI -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
"f_cpu": "133000000L",
"hwids": [
[
"0x2E8A",
"0x00C0"
],
[
"0x2341",
"0x005F"
]
],
"mcu": "rp2040",
"variant": "redscorp-rp2040-promini"
},
"debug": {
"jlink_device": "RP2040_M0_0",
"openocd_target": "rp2040.cfg",
"svd_path": "rp2040.svd"
},
"frameworks": [
"arduino"
],
"name": "RP2040-ProMini",
"upload": {
"maximum_ram_size": 270336,
"maximum_size": 16777216,
"require_upload_port": true,
"native_usb": true,
"use_1200bps_touch": true,
"wait_for_upload_port": false,
"protocol": "picotool",
"protocols": [
"blackmagic",
"cmsis-dap",
"jlink",
"raspberrypi-swd",
"picotool",
"picoprobe",
"pico-debug"
]
},
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
"vendor": "redscorp"
}
+56
View File
@@ -0,0 +1,56 @@
{
"build": {
"arduino": {
"earlephilhower": {
"boot2_source": "boot2_generic_03h_4_padded_checksum.S",
"usb_vid": "0x1209",
"usb_pid": "0xF502"
}
},
"core": "earlephilhower",
"cpu": "cortex-m0plus",
"extra_flags": "-D ARDUINO_SILICOGNITION_RP2040_SHIM -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500",
"f_cpu": "133000000L",
"hwids": [
[
"0x2E8A",
"0x00C0"
],
[
"0x1209",
"0xF502"
]
],
"mcu": "rp2040",
"variant": "silicognition_rp2040_shim"
},
"debug": {
"jlink_device": "RP2040_M0_0",
"openocd_target": "rp2040.cfg",
"svd_path": "rp2040.svd"
},
"frameworks": [
"arduino"
],
"name": "RP2040-Shim",
"upload": {
"maximum_ram_size": 270336,
"maximum_size": 4194304,
"require_upload_port": true,
"native_usb": true,
"use_1200bps_touch": true,
"wait_for_upload_port": false,
"protocol": "picotool",
"protocols": [
"blackmagic",
"cmsis-dap",
"jlink",
"raspberrypi-swd",
"picotool",
"picoprobe",
"pico-debug"
]
},
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
"vendor": "Silicognition"
}
+1 -1
View File
@@ -3,7 +3,7 @@
VER_H=../../include/bearssl/bearssl_git.h
all T0 clean: bearssl/README.txt
PATH="$(PATH):$(PWD)/../../system/arm-none-eabi/bin/" && cd bearssl && $(MAKE) CONF=pico $@
PATH="$(PWD)/../../system/arm-none-eabi/bin/:$(PATH)" && arm-none-eabi-gcc --version && cd bearssl && $(MAKE) CONF=pico $@
install: all version-header
cp bearssl/pico/libbearssl.a ../../lib/.
+11 -1
View File
@@ -119,7 +119,6 @@ def BuildIPBTStack(name):
def BuildUploadMethodMenu(name):
for a, b, c, d, e, f in [ ["default", "Default (UF2)", 256, "picoprobe_cmsis_dap.tcl", "uf2conv", "uf2conv-network"],
["picotool", "Picotool", 256, "picoprobe.tcl", "picotool", None],
["picoprobe", "Picoprobe", 256, "picoprobe.tcl", "picoprobe", None],
["picoprobe_cmsis_dap", "Picoprobe (CMSIS-DAP)", 256, "picoprobe_cmsis_dap.tcl", "picoprobe_cmsis_dap", None],
["picodebug", "Pico-Debug", 240, "picodebug.tcl", "picodebug", None] ]:
print("%s.menu.uploadmethod.%s=%s" % (name, a, b))
@@ -216,6 +215,9 @@ def MakeBoard(name, vendor_name, product_name, vid, pid, pwr, boarddefine, flash
BuildFlashMenu(name, 4*1024*1024, [0, 3*1024*1024, 2*1024*1024])
BuildFlashMenu(name, 8*1024*1024, [0, 7*1024*1024, 4*1024*1024, 2*1024*1024])
BuildFlashMenu(name, 16*1024*1024, [0, 15*1024*1024, 14*1024*1024, 12*1024*1024, 8*1024*1024, 4*1024*1024, 2*1024*1024])
elif name == "pimoroni_tiny2040":
BuildFlashMenu(name, 2*1024*1024, fssizelist)
BuildFlashMenu(name, 8*1024*1024, [0, 7*1024*1024, 4*1024*1024, 2*1024*1024])
else:
BuildFlashMenu(name, flashsizemb * 1024 * 1024, fssizelist)
BuildFreq(name)
@@ -348,6 +350,7 @@ MakeBoard("adafruit_feather_usb_host", "Adafruit", "Feather RP2040 USB Host", "0
MakeBoard("adafruit_feather_can", "Adafruit", "Feather RP2040 CAN", "0x239a", "0x812f", 250, "ADAFRUIT_FEATHER_RP2040_CAN", 8, "boot2_w25q080_2_padded_checksum")
MakeBoard("adafruit_feather_prop_maker", "Adafruit", "Feather RP2040 Prop-Maker", "0x239a", "0x8131", 250, "ADAFRUIT_FEATHER_RP2040_PROP_MAKER", 8, "boot2_w25q080_2_padded_checksum")
MakeBoard("adafruit_itsybitsy", "Adafruit", "ItsyBitsy RP2040", "0x239a", "0x80fd", 250, "ADAFRUIT_ITSYBITSY_RP2040", 8, "boot2_w25q080_2_padded_checksum")
MakeBoard("adafruit_metro", "Adafruit", "Metro RP2040", "0x239a", "0x813d", 250, "ADAFRUIT_METRO_RP2040", 16, "boot2_w25q080_2_padded_checksum")
MakeBoard("adafruit_qtpy", "Adafruit", "QT Py RP2040", "0x239a", "0x80f7", 250, "ADAFRUIT_QTPY_RP2040", 8, "boot2_w25q080_2_padded_checksum")
MakeBoard("adafruit_stemmafriend", "Adafruit", "STEMMA Friend RP2040", "0x239a", "0x80e3", 250, "ADAFRUIT_STEMMAFRIEND_RP2040", 8, "boot2_w25q080_2_padded_checksum")
MakeBoard("adafruit_trinkeyrp2040qt", "Adafruit", "Trinkey RP2040 QT", "0x239a", "0x8109", 250, "ADAFRUIT_TRINKEYQT_RP2040", 8, "boot2_w25q080_2_padded_checksum")
@@ -408,6 +411,10 @@ MakeBoard("nullbits_bit_c_pro", "nullbits", "Bit-C PRO", "0x2e8a", "0x6e61", 500
# Pimoroni
MakeBoard("pimoroni_pga2040", "Pimoroni", "PGA2040", "0x2e8a", "0x1008", 250, "PIMORONI_PGA2040", 8, "boot2_w25q64jv_4_padded_checksum")
MakeBoard("pimoroni_plasma2040", "Pimoroni", "Plasma2040", "0x2e8a", "0x100a", 500, "PIMORONI_PLASMA2040", 2, "boot2_w25q080_2_padded_checksum")
MakeBoard("pimoroni_tiny2040", "Pimoroni", "Tiny2040", "0x2e8a", "0x100a", 500, "PIMORONI_TINY2040", 2, "boot2_w25q64jv_4_padded_checksum")
# Silicognition
MakeBoard("silicognition_rp2040_shim", "Silicognition", "RP2040-Shim", "0x1209", "0xf502", 500, "SILICOGNITION_RP2040_SHIM", 4, "boot2_generic_03h_4_padded_checksum")
# Solder Party
MakeBoard("solderparty_rp2040_stamp", "Solder Party", "RP2040 Stamp", "0x1209", "0xa182", 500, "SOLDERPARTY_RP2040_STAMP", 8, "boot2_generic_03h_4_padded_checksum")
@@ -442,6 +449,9 @@ MakeBoard("wiznet_5100s_evb_pico", "WIZnet", "W5100S-EVB-Pico", "0x2e8a", "0x102
MakeBoard("wiznet_wizfi360_evb_pico", "WIZnet", "WizFi360-EVB-Pico", "0x2e8a", "0x1028", 250, "WIZNET_WIZFI360_EVB_PICO", 2, "boot2_w25q080_2_padded_checksum")
MakeBoard("wiznet_5500_evb_pico", "WIZnet", "W5500-EVB-Pico", "0x2e8a", "0x1029", 250, "WIZNET_5500_EVB_PICO", 2, "boot2_w25q080_2_padded_checksum")
# AG
MakeBoard("redscorp-rp2040-promini", "redscorp", "RP2040-ProMini", "0x2341", ["0x005f", "0x805f", "0x015f", "0x025f"] , 250, "REDSCORP_RP2040_PROMINI", 16, "boot2_w25q080_2_padded_checksum")
# Generic
MakeBoard("generic", "Generic", "RP2040", "0x2e8a", "0xf00a", 250, "GENERIC_RP2040", 16, "boot2_generic_03h_4_padded_checksum")
+1 -1
View File
@@ -53,7 +53,7 @@ for l in file_lines:
def is_pio_build():
from SCons.Script import COMMAND_LINE_TARGETS
return "idedata" not in COMMAND_LINE_TARGETS and "_idedata" not in COMMAND_LINE_TARGETS
return all([x not in COMMAND_LINE_TARGETS for x in ["idedata", "_idedata", "__idedata"]])
# get all activated macros
flatten_cppdefines = env.Flatten(env['CPPDEFINES'])
+41
View File
@@ -0,0 +1,41 @@
#pragma once
// LEDs
#define PIN_LED (13u)
// NeoPixel
#define PIN_NEOPIXEL (14u)
// Serial
#define PIN_SERIAL1_TX (0u)
#define PIN_SERIAL1_RX (1u)
// Not pinned out
#define PIN_SERIAL2_TX (31u)
#define PIN_SERIAL2_RX (31u)
// SPI
#define PIN_SPI0_MISO (20u)
#define PIN_SPI0_MOSI (19u)
#define PIN_SPI0_SCK (18u)
#define PIN_SPI0_SS (23u)
// Not pinned out
#define PIN_SPI1_MISO (31u)
#define PIN_SPI1_MOSI (31u)
#define PIN_SPI1_SCK (31u)
#define PIN_SPI1_SS (31u)
// Wire
#define __WIRE0_DEVICE i2c0
#define PIN_WIRE0_SDA (16u)
#define PIN_WIRE0_SCL (17u)
#define __WIRE1_DEVICE i2c1
#define PIN_WIRE1_SDA (2u)
#define PIN_WIRE1_SCL (3u)
#define SERIAL_HOWMANY (2u)
#define SPI_HOWMANY (1u)
#define WIRE_HOWMANY (1u)
#include "../generic/common.h"
+2
View File
@@ -1,5 +1,7 @@
#pragma once
#include <stdint.h>
#define PINS_COUNT (30u)
#define NUM_DIGITAL_PINS (30u)
#define NUM_ANALOG_INPUTS (4u)
@@ -0,0 +1,5 @@
#pragma once
// This is a bare board with no real predefined pins, so use generic
#include "../generic/pins_arduino.h"
@@ -0,0 +1,102 @@
/* RP2040-ProMini board support
URL: https://github.com/red-scorp/RP2040-ProMini
Based on Arduino Nano Connect configuration */
#pragma once
// Pin definitions taken from:
// https://datasheets.raspberrypi.org/pico/pico-datasheet.pdf
static const uint8_t D0 = (1u);
static const uint8_t D1 = (0u);
static const uint8_t D2 = (25u);
static const uint8_t D3 = (15u);
static const uint8_t D4 = (16u);
static const uint8_t D5 = (17u);
static const uint8_t D6 = (18u);
static const uint8_t D7 = (19u);
static const uint8_t D8 = (20u);
static const uint8_t D9 = (21u);
static const uint8_t D10 = (5u);
static const uint8_t D11 = (7u);
static const uint8_t D12 = (4u);
static const uint8_t D13 = (6u);
static const uint8_t D14 = (26u);
static const uint8_t D15 = (27u);
static const uint8_t D16 = (28u);
static const uint8_t D17 = (29u);
static const uint8_t D18 = (12u);
static const uint8_t D19 = (13u);
static const uint8_t D20 = (22u);
static const uint8_t D21 = (23u);
static const uint8_t D22 = (2u);
static const uint8_t D23 = (24u);
static const uint8_t D24 = (3u);
static const uint8_t D25 = (8u);
static const uint8_t D26 = (9u);
static const uint8_t D27 = (10u);
static const uint8_t D28 = (11u);
static const uint8_t D29 = (14u);
static const uint8_t A0 = (26u);
static const uint8_t A1 = (27u);
static const uint8_t A2 = (28u);
static const uint8_t A3 = (29u);
// LEDs
#define PIN_LED (D13)
// Serial
#define PIN_SERIAL1_TX (D1)
#define PIN_SERIAL1_RX (D0)
#define PIN_SERIAL2_TX (D25)
#define PIN_SERIAL2_RX (D26)
#define PIN_SERIAL2_CTS (D27)
#define PIN_SERIAL2_RTS (D28)
// SPI
#define PIN_SPI0_MISO (D12)
#define PIN_SPI0_MOSI (D11)
#define PIN_SPI0_SCK (D13)
#define PIN_SPI0_SS (D10)
#define PIN_SPI1_MISO (D25)
#define PIN_SPI1_MOSI (D28)
#define PIN_SPI1_SCK (D29)
#define PIN_SPI1_SS (D10)
// Wire
#define PIN_WIRE0_SDA (D18)
#define PIN_WIRE0_SCL (D19)
#define PIN_WIRE1_SDA (D14)
#define PIN_WIRE1_SCL (D15)
#define SERIAL_HOWMANY (3u)
#define SPI_HOWMANY (2u)
#define WIRE_HOWMANY (1u)
#define PINS_COUNT (30u)
#define NUM_DIGITAL_PINS (30u)
#define NUM_ANALOG_INPUTS (4u)
#define NUM_ANALOG_OUTPUTS (0u)
#define ADC_RESOLUTION (12u)
#define LED_BUILTIN PIN_LED
#define DigitalPinToPinName(p) (p)
static const uint8_t SS = PIN_SPI0_SS;
static const uint8_t MOSI = PIN_SPI0_MOSI;
static const uint8_t MISO = PIN_SPI0_MISO;
static const uint8_t SCK = PIN_SPI0_SCK;
// Some random stuff
#define SERIAL_PORT_USBVIRTUAL SerialUSB
#define SERIAL_PORT_MONITOR SerialUSB
#define SERIAL_PORT_HARDWARE Serial1
#define SERIAL_PORT_HARDWARE_OPEN Serial2
#define CRYPTO_WIRE Wire
#define USB_MAX_POWER (500)
@@ -0,0 +1,81 @@
#pragma once
// Pin definitions taken from:
// https://silicognition.com/Products/rp2040-shim/
// LEDs
#define LED_BUILTIN (22u)
// NeoPixel
#define PIN_NEOPIXEL (23u)
// Serial
#define PIN_SERIAL1_TX (0u)
#define PIN_SERIAL1_RX (1u)
// Not pinned out
#define PIN_SERIAL2_TX (31u)
#define PIN_SERIAL2_RX (31u)
// SPI0
#define __SPI0_DEVICE spi1
#define PIN_SPI0_MISO (12u)
#define PIN_SPI0_MOSI (11u)
#define PIN_SPI0_SCK (10u)
#define PIN_SPI0_SS (21u)
// SPI1
#define __SPI1_DEVICE spi0
#define PIN_SPI1_MISO (20u)
#define PIN_SPI1_MOSI (19u)
#define PIN_SPI1_SCK (18u)
#define PIN_SPI1_SS (15u)
// Wire
#define __WIRE0_DEVICE i2c0
#define PIN_WIRE0_SDA (16u)
#define PIN_WIRE0_SCL (17u)
#define __WIRE1_DEVICE i2c1
#define PIN_WIRE1_SDA (31u)
#define PIN_WIRE1_SCL (31u)
#define SERIAL_HOWMANY (2u)
#define SPI_HOWMANY (2u)
#define WIRE_HOWMANY (1u)
// Defines normally loaded from common.h
// We have custom pin mapping to match Adafruit Feather
#define PINS_COUNT (30u)
#define NUM_DIGITAL_PINS (30u)
#define NUM_ANALOG_INPUTS (4u)
#define NUM_ANALOG_OUTPUTS (0u)
#define ADC_RESOLUTION (12u)
static const uint8_t D0 = (1u);
static const uint8_t D1 = (0u);
static const uint8_t D4 = (6u);
static const uint8_t D5 = (18u);
static const uint8_t D6 = (19u);
static const uint8_t D9 = (20u);
static const uint8_t D10 = (21u);
static const uint8_t D11 = (15u);
static const uint8_t D12 = (14u);
static const uint8_t D13 = (22u);
static const uint8_t D24 = (24u);
static const uint8_t D25 = (25u);
static const uint8_t A0 = (29u);
static const uint8_t A1 = (28u);
static const uint8_t A2 = (27u);
static const uint8_t A3 = (26u);
static const uint8_t SS = PIN_SPI0_SS;
static const uint8_t MOSI = PIN_SPI0_MOSI;
static const uint8_t MISO = PIN_SPI0_MISO;
static const uint8_t SCK = PIN_SPI0_SCK;
static const uint8_t SDA = PIN_WIRE0_SDA;
static const uint8_t SCL = PIN_WIRE0_SCL;