[core] Migrate to GPIO-based pin numbering

This commit is contained in:
Kuba Szczodrzyński
2023-03-20 21:28:43 +01:00
parent 201db4668e
commit c51bf0b7db
67 changed files with 3212 additions and 1849 deletions

View File

@@ -92,6 +92,7 @@
},
"27": {
"C_NAME": "AD_2",
"GPIONUM": 41,
"IO": "I",
"ADC": 2
},

View File

@@ -2,14 +2,12 @@
#include <Arduino.h>
extern "C" {
#ifdef LT_VARIANT_INCLUDE
#include LT_VARIANT_INCLUDE
#endif
// clang-format off
PinInfo pinTable[PINS_COUNT] = {
PinInfo lt_arduino_pin_info_list[PINS_COUNT] = {
// D0: PA05, PWM4, WAKE1
{PA_5, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
// D1: PA29, UART2_RX, I2C0_SCL, PWM4
@@ -33,6 +31,18 @@ PinInfo pinTable[PINS_COUNT] = {
// D10: PA23, UART0_TX, SPI0_MOSI, SPI1_MOSI, I2C1_SDA, SD_D1, PWM0, WAKE3
{PA_23, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_I2C | PIN_SPI | PIN_UART, PIN_NONE, 0},
};
// clang-format on
} // extern "C"
PinInfo *lt_arduino_pin_gpio_map[] = {
[0] = &(lt_arduino_pin_info_list[2]), // PA_0 (D2)
[5] = &(lt_arduino_pin_info_list[0]), // PA_5 (D0)
[12] = &(lt_arduino_pin_info_list[7]), // PA_12 (D7)
[14] = &(lt_arduino_pin_info_list[6]), // PA_14 (D6)
[15] = &(lt_arduino_pin_info_list[8]), // PA_15 (D8)
[18] = &(lt_arduino_pin_info_list[9]), // PA_18 (D9)
[19] = &(lt_arduino_pin_info_list[3]), // PA_19 (D3)
[22] = &(lt_arduino_pin_info_list[4]), // PA_22 (D4)
[23] = &(lt_arduino_pin_info_list[10]), // PA_23 (D10)
[29] = &(lt_arduino_pin_info_list[1]), // PA_29 (D1)
[30] = &(lt_arduino_pin_info_list[5]), // PA_30 (D5)
};
// clang-format on

View File

@@ -6,82 +6,118 @@
// Pins
// ----
#define PINS_COUNT 11
#define NUM_DIGITAL_PINS 11
#define NUM_ANALOG_INPUTS 1
#define NUM_ANALOG_OUTPUTS 0
// Analog pins
// -----------
#define PIN_A0 3u // PA_19
#define A0 PIN_A0
#define PINS_COUNT 11 // Total GPIO count
#define NUM_DIGITAL_PINS 11 // Digital inputs/outputs
#define NUM_ANALOG_INPUTS 1 // ADC inputs
#define NUM_ANALOG_OUTPUTS 9 // PWM & DAC outputs
#define PINS_GPIO_MAX 30 // Last usable GPIO number
// SPI Interfaces
// --------------
#define SPI_INTERFACES_COUNT 2
#define PIN_SPI0_CS 3u // PA_19
#define PIN_SPI0_MISO 4u // PA_22
#define PIN_SPI0_MOSI 10u // PA_23
#define PIN_SPI0_SCK 9u // PA_18
#define PIN_SPI1_CS 3u // PA_19
#define PIN_SPI1_MISO 4u // PA_22
#define PIN_SPI1_MOSI 10u // PA_23
#define PIN_SPI1_SCK 9u // PA_18
#define PIN_SPI0_CS 19u // PA_19
#define PIN_SPI0_MISO 22u // PA_22
#define PIN_SPI0_MOSI 23u // PA_23
#define PIN_SPI0_SCK 18u // PA_18
#define PIN_SPI1_CS 19u // PA_19
#define PIN_SPI1_MISO 22u // PA_22
#define PIN_SPI1_MOSI 23u // PA_23
#define PIN_SPI1_SCK 18u // PA_18
// Wire Interfaces
// ---------------
#define WIRE_INTERFACES_COUNT 2
#define PIN_WIRE0_SCL_0 1u // PA_29
#define PIN_WIRE0_SCL_1 4u // PA_22
#define PIN_WIRE0_SDA_0 3u // PA_19
#define PIN_WIRE0_SDA_1 5u // PA_30
#define PIN_WIRE1_SCL 9u // PA_18
#define PIN_WIRE1_SDA 10u // PA_23
#define PIN_WIRE0_SCL_0 29u // PA_29
#define PIN_WIRE0_SCL_1 22u // PA_22
#define PIN_WIRE0_SDA_0 19u // PA_19
#define PIN_WIRE0_SDA_1 30u // PA_30
#define PIN_WIRE1_SCL 18u // PA_18
#define PIN_WIRE1_SDA 23u // PA_23
// Serial ports
// ------------
#define SERIAL_INTERFACES_COUNT 2
#define PIN_SERIAL0_CTS 3u // PA_19
#define PIN_SERIAL0_RTS 4u // PA_22
#define PIN_SERIAL0_RX 9u // PA_18
#define PIN_SERIAL0_TX 10u // PA_23
#define PIN_SERIAL2_RX 1u // PA_29
#define PIN_SERIAL2_TX 5u // PA_30
#define PIN_SERIAL0_CTS 19u // PA_19
#define PIN_SERIAL0_RTS 22u // PA_22
#define PIN_SERIAL0_RX 18u // PA_18
#define PIN_SERIAL0_TX 23u // PA_23
#define PIN_SERIAL2_RX 29u // PA_29
#define PIN_SERIAL2_TX 30u // PA_30
// Pin function macros
// -------------------
#define PIN_ADC1 3u // PA_19
#define PIN_CS0 3u // PA_19
#define PIN_CS1 3u // PA_19
#define PIN_CTS0 3u // PA_19
#define PIN_MISO0 4u // PA_22
#define PIN_MISO1 4u // PA_22
#define PIN_MOSI0 10u // PA_23
#define PIN_MOSI1 10u // PA_23
#define PIN_PA00 2u // PA_0
#define PIN_PA05 0u // PA_5
#define PIN_PA12 7u // PA_12
#define PIN_PA14 6u // PA_14
#define PIN_PA15 8u // PA_15
#define PIN_PA18 9u // PA_18
#define PIN_PA19 3u // PA_19
#define PIN_PA22 4u // PA_22
#define PIN_PA23 10u // PA_23
#define PIN_PA29 1u // PA_29
#define PIN_PA30 5u // PA_30
#define PIN_RTS0 4u // PA_22
#define PIN_RX0 9u // PA_18
#define PIN_RX2 1u // PA_29
#define PIN_SCK0 9u // PA_18
#define PIN_SCK1 9u // PA_18
#define PIN_TX0 10u // PA_23
#define PIN_TX2 5u // PA_30
#define PIN_ADC1 19u // PA_19
#define PIN_CS0 19u // PA_19
#define PIN_CS1 19u // PA_19
#define PIN_CTS0 19u // PA_19
#define PIN_MISO0 22u // PA_22
#define PIN_MISO1 22u // PA_22
#define PIN_MOSI0 23u // PA_23
#define PIN_MOSI1 23u // PA_23
#define PIN_PA00 0u // PA_0
#define PIN_PA05 5u // PA_5
#define PIN_PA12 12u // PA_12
#define PIN_PA14 14u // PA_14
#define PIN_PA15 15u // PA_15
#define PIN_PA18 18u // PA_18
#define PIN_PA19 19u // PA_19
#define PIN_PA22 22u // PA_22
#define PIN_PA23 23u // PA_23
#define PIN_PA29 29u // PA_29
#define PIN_PA30 30u // PA_30
#define PIN_PWM0 23u // PA_23
#define PIN_PWM1 15u // PA_15
#define PIN_PWM2 0u // PA_0
#define PIN_PWM3 12u // PA_12
#define PIN_PWM4 30u // PA_30
#define PIN_PWM5 22u // PA_22
#define PIN_RTS0 22u // PA_22
#define PIN_RX0 18u // PA_18
#define PIN_RX2 29u // PA_29
#define PIN_SCK0 18u // PA_18
#define PIN_SCK1 18u // PA_18
#define PIN_SCL0 22u // PA_22
#define PIN_SCL1 18u // PA_18
#define PIN_SDA0 30u // PA_30
#define PIN_SDA1 23u // PA_23
#define PIN_TX0 23u // PA_23
#define PIN_TX2 30u // PA_30
// Port availability
// -----------------
#define HAS_SERIAL0 1
#define HAS_SERIAL2 1
#define HAS_SPI0 1
#define HAS_SPI1 1
#define HAS_WIRE0 1
#define HAS_WIRE1 1
#define HAS_SERIAL0 1
#define HAS_SERIAL2 1
#define HAS_SPI0 1
#define HAS_SPI1 1
#define HAS_WIRE0 1
#define HAS_WIRE1 1
#define SERIAL_INTERFACES_COUNT 2
#define SPI_INTERFACES_COUNT 2
#define WIRE_INTERFACES_COUNT 2
// Arduino pin names
// -----------------
#define PIN_D0 5u // PA_5
#define PIN_D1 29u // PA_29
#define PIN_D2 0u // PA_0
#define PIN_D3 19u // PA_19
#define PIN_D4 22u // PA_22
#define PIN_D5 30u // PA_30
#define PIN_D6 14u // PA_14
#define PIN_D7 12u // PA_12
#define PIN_D8 15u // PA_15
#define PIN_D9 18u // PA_18
#define PIN_D10 23u // PA_23
#define PIN_A0 19u // PA_19
// Static pin names
// ----------------
static const unsigned char A0 = PIN_A0;
static const unsigned char D0 = PIN_D0;
static const unsigned char D1 = PIN_D1;
static const unsigned char D2 = PIN_D2;
static const unsigned char D3 = PIN_D3;
static const unsigned char D4 = PIN_D4;
static const unsigned char D5 = PIN_D5;
static const unsigned char D6 = PIN_D6;
static const unsigned char D7 = PIN_D7;
static const unsigned char D8 = PIN_D8;
static const unsigned char D9 = PIN_D9;
static const unsigned char D10 = PIN_D10;

View File

@@ -2,14 +2,12 @@
#include <Arduino.h>
extern "C" {
#ifdef LT_VARIANT_INCLUDE
#include LT_VARIANT_INCLUDE
#endif
// clang-format off
PinInfo pinTable[PINS_COUNT] = {
PinInfo lt_arduino_pin_info_list[PINS_COUNT] = {
// D0: PA17, SD_CMD, PWM5
{PIN_A17, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
// D1: PA18, SD_CLK, PWM6
@@ -37,6 +35,20 @@ PinInfo pinTable[PINS_COUNT] = {
// D12: PA14, SD_INT, UART0_TX, PWM2
{PIN_A14, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_UART, PIN_NONE, 0},
};
// clang-format on
} // extern "C"
PinInfo *lt_arduino_pin_gpio_map[] = {
[0] = &(lt_arduino_pin_info_list[8]), // PIN_A0 (D8)
[1] = &(lt_arduino_pin_info_list[10]), // PIN_A1 (D10)
[2] = &(lt_arduino_pin_info_list[2]), // PIN_A2 (D2)
[3] = &(lt_arduino_pin_info_list[9]), // PIN_A3 (D9)
[4] = &(lt_arduino_pin_info_list[4]), // PIN_A4 (D4)
[13] = &(lt_arduino_pin_info_list[11]), // PIN_A13 (D11)
[14] = &(lt_arduino_pin_info_list[12]), // PIN_A14 (D12)
[15] = &(lt_arduino_pin_info_list[3]), // PIN_A15 (D3)
[16] = &(lt_arduino_pin_info_list[7]), // PIN_A16 (D7)
[17] = &(lt_arduino_pin_info_list[0]), // PIN_A17 (D0)
[18] = &(lt_arduino_pin_info_list[1]), // PIN_A18 (D1)
[19] = &(lt_arduino_pin_info_list[5]), // PIN_A19 (D5)
[20] = &(lt_arduino_pin_info_list[6]), // PIN_A20 (D6)
};
// clang-format on

View File

@@ -6,70 +6,123 @@
// Pins
// ----
#define PINS_COUNT 13
#define NUM_DIGITAL_PINS 13
#define NUM_ANALOG_OUTPUTS 0
#define PINS_COUNT 13 // Total GPIO count
#define NUM_DIGITAL_PINS 13 // Digital inputs/outputs
#define NUM_ANALOG_INPUTS 0 // ADC inputs
#define NUM_ANALOG_OUTPUTS 13 // PWM & DAC outputs
#define PINS_GPIO_MAX 20 // Last usable GPIO number
// SPI Interfaces
// --------------
#define SPI_INTERFACES_COUNT 1
#define PIN_SPI0_CS_0 2u // PIN_A2
#define PIN_SPI0_CS_1 3u // PIN_A15
#define PIN_SPI0_MISO 6u // PIN_A20
#define PIN_SPI0_MOSI_0 4u // PIN_A4
#define PIN_SPI0_MOSI_1 5u // PIN_A19
#define PIN_SPI0_SCK_0 7u // PIN_A16
#define PIN_SPI0_SCK_1 9u // PIN_A3
#define PIN_SPI0_CS_0 2u // PIN_A2
#define PIN_SPI0_CS_1 15u // PIN_A15
#define PIN_SPI0_MISO 20u // PIN_A20
#define PIN_SPI0_MOSI_0 4u // PIN_A4
#define PIN_SPI0_MOSI_1 19u // PIN_A19
#define PIN_SPI0_SCK_0 16u // PIN_A16
#define PIN_SPI0_SCK_1 3u // PIN_A3
// Wire Interfaces
// ---------------
#define WIRE_INTERFACES_COUNT 1
#define PIN_WIRE0_SCL_0 2u // PIN_A2
#define PIN_WIRE0_SCL_1 3u // PIN_A15
#define PIN_WIRE0_SCL_2 5u // PIN_A19
#define PIN_WIRE0_SDA_0 6u // PIN_A20
#define PIN_WIRE0_SDA_1 7u // PIN_A16
#define PIN_WIRE0_SDA_2 9u // PIN_A3
#define PIN_WIRE0_SCL_0 2u // PIN_A2
#define PIN_WIRE0_SCL_1 15u // PIN_A15
#define PIN_WIRE0_SCL_2 19u // PIN_A19
#define PIN_WIRE0_SDA_0 20u // PIN_A20
#define PIN_WIRE0_SDA_1 16u // PIN_A16
#define PIN_WIRE0_SDA_2 3u // PIN_A3
// Serial ports
// ------------
#define SERIAL_INTERFACES_COUNT 3
#define PIN_SERIAL0_RX 11u // PIN_A13
#define PIN_SERIAL0_TX 12u // PIN_A14
#define PIN_SERIAL1_CTS 4u // PIN_A4
#define PIN_SERIAL1_RX_0 2u // PIN_A2
#define PIN_SERIAL1_RX_1 8u // PIN_A0
#define PIN_SERIAL1_TX_0 9u // PIN_A3
#define PIN_SERIAL1_TX_1 10u // PIN_A1
#define PIN_SERIAL2_CTS 5u // PIN_A19
#define PIN_SERIAL2_RTS 6u // PIN_A20
#define PIN_SERIAL2_RX 3u // PIN_A15
#define PIN_SERIAL2_TX 7u // PIN_A16
#define PIN_SERIAL0_RX 13u // PIN_A13
#define PIN_SERIAL0_TX 14u // PIN_A14
#define PIN_SERIAL1_CTS 4u // PIN_A4
#define PIN_SERIAL1_RX_0 2u // PIN_A2
#define PIN_SERIAL1_RX_1 0u // PIN_A0
#define PIN_SERIAL1_TX_0 3u // PIN_A3
#define PIN_SERIAL1_TX_1 1u // PIN_A1
#define PIN_SERIAL2_CTS 19u // PIN_A19
#define PIN_SERIAL2_RTS 20u // PIN_A20
#define PIN_SERIAL2_RX 15u // PIN_A15
#define PIN_SERIAL2_TX 16u // PIN_A16
// Pin function macros
// -------------------
#define PIN_CS0 15u // PIN_A15
#define PIN_CTS1 4u // PIN_A4
#define PIN_CTS2 5u // PIN_A19
#define PIN_MISO0 6u // PIN_A20
#define PIN_PA00 8u // PIN_A0
#define PIN_PA01 10u // PIN_A1
#define PIN_CTS2 19u // PIN_A19
#define PIN_MISO0 20u // PIN_A20
#define PIN_MOSI0 19u // PIN_A19
#define PIN_PA00 0u // PIN_A0
#define PIN_PA01 1u // PIN_A1
#define PIN_PA02 2u // PIN_A2
#define PIN_PA03 9u // PIN_A3
#define PIN_PA03 3u // PIN_A3
#define PIN_PA04 4u // PIN_A4
#define PIN_PA13 11u // PIN_A13
#define PIN_PA14 12u // PIN_A14
#define PIN_PA15 3u // PIN_A15
#define PIN_PA16 7u // PIN_A16
#define PIN_PA17 0u // PIN_A17
#define PIN_PA18 1u // PIN_A18
#define PIN_PA19 5u // PIN_A19
#define PIN_PA20 6u // PIN_A20
#define PIN_RTS2 6u // PIN_A20
#define PIN_PA13 13u // PIN_A13
#define PIN_PA14 14u // PIN_A14
#define PIN_PA15 15u // PIN_A15
#define PIN_PA16 16u // PIN_A16
#define PIN_PA17 17u // PIN_A17
#define PIN_PA18 18u // PIN_A18
#define PIN_PA19 19u // PIN_A19
#define PIN_PA20 20u // PIN_A20
#define PIN_PWM0 0u // PIN_A0
#define PIN_PWM1 1u // PIN_A1
#define PIN_PWM2 14u // PIN_A14
#define PIN_PWM3 3u // PIN_A3
#define PIN_PWM4 16u // PIN_A16
#define PIN_PWM5 17u // PIN_A17
#define PIN_PWM6 18u // PIN_A18
#define PIN_PWM7 13u // PIN_A13
#define PIN_RTS2 20u // PIN_A20
#define PIN_RX0 13u // PIN_A13
#define PIN_RX1 0u // PIN_A0
#define PIN_RX2 15u // PIN_A15
#define PIN_SCK0 3u // PIN_A3
#define PIN_SCL0 19u // PIN_A19
#define PIN_SDA0 3u // PIN_A3
#define PIN_TX0 14u // PIN_A14
#define PIN_TX1 1u // PIN_A1
#define PIN_TX2 16u // PIN_A16
// Port availability
// -----------------
#define HAS_SERIAL0 1
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define HAS_SPI0 1
#define HAS_WIRE0 1
#define HAS_SERIAL0 1
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define HAS_SPI0 1
#define HAS_WIRE0 1
#define SERIAL_INTERFACES_COUNT 3
#define SPI_INTERFACES_COUNT 1
#define WIRE_INTERFACES_COUNT 1
// Arduino pin names
// -----------------
#define PIN_D0 17u // PIN_A17
#define PIN_D1 18u // PIN_A18
#define PIN_D2 2u // PIN_A2
#define PIN_D3 15u // PIN_A15
#define PIN_D4 4u // PIN_A4
#define PIN_D5 19u // PIN_A19
#define PIN_D6 20u // PIN_A20
#define PIN_D7 16u // PIN_A16
#define PIN_D8 0u // PIN_A0
#define PIN_D9 3u // PIN_A3
#define PIN_D10 1u // PIN_A1
#define PIN_D11 13u // PIN_A13
#define PIN_D12 14u // PIN_A14
// Static pin names
// ----------------
static const unsigned char D0 = PIN_D0;
static const unsigned char D1 = PIN_D1;
static const unsigned char D2 = PIN_D2;
static const unsigned char D3 = PIN_D3;
static const unsigned char D4 = PIN_D4;
static const unsigned char D5 = PIN_D5;
static const unsigned char D6 = PIN_D6;
static const unsigned char D7 = PIN_D7;
static const unsigned char D8 = PIN_D8;
static const unsigned char D9 = PIN_D9;
static const unsigned char D10 = PIN_D10;
static const unsigned char D11 = PIN_D11;
static const unsigned char D12 = PIN_D12;

View File

@@ -2,14 +2,12 @@
#include <Arduino.h>
extern "C" {
#ifdef LT_VARIANT_INCLUDE
#include LT_VARIANT_INCLUDE
#endif
// clang-format off
PinInfo pinTable[PINS_COUNT] = {
PinInfo lt_arduino_pin_info_list[PINS_COUNT] = {
// D0: P8, PWM2
{GPIO8, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
// D1: P7, PWM1
@@ -29,6 +27,16 @@ PinInfo pinTable[PINS_COUNT] = {
// D8: P21, I2C1_SDA, TMS, MCLK, ^FCS
{GPIO21, PIN_GPIO | PIN_IRQ | PIN_I2C | PIN_I2S | PIN_JTAG, PIN_NONE, 0},
};
// clang-format on
} // extern "C"
PinInfo *lt_arduino_pin_gpio_map[] = {
[0] = &(lt_arduino_pin_info_list[6]), // GPIO0 (D6)
[6] = &(lt_arduino_pin_info_list[2]), // GPIO6 (D2)
[7] = &(lt_arduino_pin_info_list[1]), // GPIO7 (D1)
[8] = &(lt_arduino_pin_info_list[0]), // GPIO8 (D0)
[10] = &(lt_arduino_pin_info_list[5]), // GPIO10 (D5)
[11] = &(lt_arduino_pin_info_list[7]), // GPIO11 (D7)
[21] = &(lt_arduino_pin_info_list[8]), // GPIO21 (D8)
[24] = &(lt_arduino_pin_info_list[4]), // GPIO24 (D4)
[26] = &(lt_arduino_pin_info_list[3]), // GPIO26 (D3)
};
// clang-format on

View File

@@ -6,48 +6,66 @@
// Pins
// ----
#define PINS_COUNT 9
#define NUM_DIGITAL_PINS 9
#define NUM_ANALOG_OUTPUTS 0
// SPI Interfaces
// --------------
#define SPI_INTERFACES_COUNT 0
// Wire Interfaces
// ---------------
#define WIRE_INTERFACES_COUNT 0
#define PINS_COUNT 9 // Total GPIO count
#define NUM_DIGITAL_PINS 9 // Digital inputs/outputs
#define NUM_ANALOG_INPUTS 0 // ADC inputs
#define NUM_ANALOG_OUTPUTS 5 // PWM & DAC outputs
#define PINS_GPIO_MAX 26 // Last usable GPIO number
// Serial ports
// ------------
#define SERIAL_INTERFACES_COUNT 2
#define PIN_SERIAL1_RX 5u // GPIO10
#define PIN_SERIAL1_TX 7u // GPIO11
#define PIN_SERIAL2_TX 6u // GPIO0
#define PIN_SERIAL1_RX 10u // GPIO10
#define PIN_SERIAL1_TX 11u // GPIO11
#define PIN_SERIAL2_TX 0u // GPIO0
// Pin function macros
// -------------------
#define PIN_P0 6u // GPIO0
#define PIN_P6 2u // GPIO6
#define PIN_P7 1u // GPIO7
#define PIN_P8 0u // GPIO8
#define PIN_P10 5u // GPIO10
#define PIN_P11 7u // GPIO11
#define PIN_P21 8u // GPIO21
#define PIN_P24 4u // GPIO24
#define PIN_P26 3u // GPIO26
#define PIN_PWM0 2u // GPIO6
#define PIN_PWM1 1u // GPIO7
#define PIN_PWM2 0u // GPIO8
#define PIN_PWM4 4u // GPIO24
#define PIN_PWM5 3u // GPIO26
#define PIN_RX1 5u // GPIO10
#define PIN_SCL2 6u // GPIO0
#define PIN_SDA1 8u // GPIO21
#define PIN_TX1 7u // GPIO11
#define PIN_TX2 6u // GPIO0
#define PIN_P0 0u // GPIO0
#define PIN_P6 6u // GPIO6
#define PIN_P7 7u // GPIO7
#define PIN_P8 8u // GPIO8
#define PIN_P10 10u // GPIO10
#define PIN_P11 11u // GPIO11
#define PIN_P21 21u // GPIO21
#define PIN_P24 24u // GPIO24
#define PIN_P26 26u // GPIO26
#define PIN_PWM0 6u // GPIO6
#define PIN_PWM1 7u // GPIO7
#define PIN_PWM2 8u // GPIO8
#define PIN_PWM4 24u // GPIO24
#define PIN_PWM5 26u // GPIO26
#define PIN_RX1 10u // GPIO10
#define PIN_SCL2 0u // GPIO0
#define PIN_SDA1 21u // GPIO21
#define PIN_TX1 11u // GPIO11
#define PIN_TX2 0u // GPIO0
// Port availability
// -----------------
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define SERIAL_INTERFACES_COUNT 2
// Arduino pin names
// -----------------
#define PIN_D0 8u // GPIO8
#define PIN_D1 7u // GPIO7
#define PIN_D2 6u // GPIO6
#define PIN_D3 26u // GPIO26
#define PIN_D4 24u // GPIO24
#define PIN_D5 10u // GPIO10
#define PIN_D6 0u // GPIO0
#define PIN_D7 11u // GPIO11
#define PIN_D8 21u // GPIO21
// Static pin names
// ----------------
static const unsigned char D0 = PIN_D0;
static const unsigned char D1 = PIN_D1;
static const unsigned char D2 = PIN_D2;
static const unsigned char D3 = PIN_D3;
static const unsigned char D4 = PIN_D4;
static const unsigned char D5 = PIN_D5;
static const unsigned char D6 = PIN_D6;
static const unsigned char D7 = PIN_D7;
static const unsigned char D8 = PIN_D8;

View File

@@ -2,14 +2,12 @@
#include <Arduino.h>
extern "C" {
#ifdef LT_VARIANT_INCLUDE
#include LT_VARIANT_INCLUDE
#endif
// clang-format off
PinInfo pinTable[PINS_COUNT] = {
PinInfo lt_arduino_pin_info_list[PINS_COUNT] = {
// D0: P6, PWM0
{GPIO6, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
// D1: P7, PWM1
@@ -33,6 +31,18 @@ PinInfo pinTable[PINS_COUNT] = {
// D10: P21, I2C1_SDA, TMS, MCLK, ^FCS
{GPIO21, PIN_GPIO | PIN_IRQ | PIN_I2C | PIN_I2S | PIN_JTAG, PIN_NONE, 0},
};
// clang-format on
} // extern "C"
PinInfo *lt_arduino_pin_gpio_map[] = {
[0] = &(lt_arduino_pin_info_list[8]), // GPIO0 (D8)
[1] = &(lt_arduino_pin_info_list[9]), // GPIO1 (D9)
[6] = &(lt_arduino_pin_info_list[0]), // GPIO6 (D0)
[7] = &(lt_arduino_pin_info_list[1]), // GPIO7 (D1)
[8] = &(lt_arduino_pin_info_list[2]), // GPIO8 (D2)
[10] = &(lt_arduino_pin_info_list[4]), // GPIO10 (D4)
[11] = &(lt_arduino_pin_info_list[5]), // GPIO11 (D5)
[21] = &(lt_arduino_pin_info_list[10]), // GPIO21 (D10)
[23] = &(lt_arduino_pin_info_list[3]), // GPIO23 (D3)
[24] = &(lt_arduino_pin_info_list[6]), // GPIO24 (D6)
[26] = &(lt_arduino_pin_info_list[7]), // GPIO26 (D7)
};
// clang-format on

View File

@@ -6,63 +6,85 @@
// Pins
// ----
#define PINS_COUNT 11
#define NUM_DIGITAL_PINS 11
#define NUM_ANALOG_INPUTS 1
#define NUM_ANALOG_OUTPUTS 0
// Analog pins
// -----------
#define PIN_A0 3u // GPIO23
#define A0 PIN_A0
// SPI Interfaces
// --------------
#define SPI_INTERFACES_COUNT 0
#define PINS_COUNT 11 // Total GPIO count
#define NUM_DIGITAL_PINS 11 // Digital inputs/outputs
#define NUM_ANALOG_INPUTS 1 // ADC inputs
#define NUM_ANALOG_OUTPUTS 5 // PWM & DAC outputs
#define PINS_GPIO_MAX 26 // Last usable GPIO number
// Wire Interfaces
// ---------------
#define WIRE_INTERFACES_COUNT 1
#define PIN_WIRE2_SCL 8u // GPIO0
#define PIN_WIRE2_SDA 9u // GPIO1
#define PIN_WIRE2_SCL 0u // GPIO0
#define PIN_WIRE2_SDA 1u // GPIO1
// Serial ports
// ------------
#define SERIAL_INTERFACES_COUNT 2
#define PIN_SERIAL1_RX 4u // GPIO10
#define PIN_SERIAL1_TX 5u // GPIO11
#define PIN_SERIAL2_RX 9u // GPIO1
#define PIN_SERIAL2_TX 8u // GPIO0
#define PIN_SERIAL1_RX 10u // GPIO10
#define PIN_SERIAL1_TX 11u // GPIO11
#define PIN_SERIAL2_RX 1u // GPIO1
#define PIN_SERIAL2_TX 0u // GPIO0
// Pin function macros
// -------------------
#define PIN_ADC3 3u // GPIO23
#define PIN_P0 8u // GPIO0
#define PIN_P1 9u // GPIO1
#define PIN_P6 0u // GPIO6
#define PIN_P7 1u // GPIO7
#define PIN_P8 2u // GPIO8
#define PIN_P10 4u // GPIO10
#define PIN_P11 5u // GPIO11
#define PIN_P21 10u // GPIO21
#define PIN_P23 3u // GPIO23
#define PIN_P24 6u // GPIO24
#define PIN_P26 7u // GPIO26
#define PIN_PWM0 0u // GPIO6
#define PIN_PWM1 1u // GPIO7
#define PIN_PWM2 2u // GPIO8
#define PIN_PWM4 6u // GPIO24
#define PIN_PWM5 7u // GPIO26
#define PIN_RX1 4u // GPIO10
#define PIN_RX2 9u // GPIO1
#define PIN_SCL2 8u // GPIO0
#define PIN_SDA1 10u // GPIO21
#define PIN_SDA2 9u // GPIO1
#define PIN_TX1 5u // GPIO11
#define PIN_TX2 8u // GPIO0
#define PIN_ADC3 23u // GPIO23
#define PIN_P0 0u // GPIO0
#define PIN_P1 1u // GPIO1
#define PIN_P6 6u // GPIO6
#define PIN_P7 7u // GPIO7
#define PIN_P8 8u // GPIO8
#define PIN_P10 10u // GPIO10
#define PIN_P11 11u // GPIO11
#define PIN_P21 21u // GPIO21
#define PIN_P23 23u // GPIO23
#define PIN_P24 24u // GPIO24
#define PIN_P26 26u // GPIO26
#define PIN_PWM0 6u // GPIO6
#define PIN_PWM1 7u // GPIO7
#define PIN_PWM2 8u // GPIO8
#define PIN_PWM4 24u // GPIO24
#define PIN_PWM5 26u // GPIO26
#define PIN_RX1 10u // GPIO10
#define PIN_RX2 1u // GPIO1
#define PIN_SCL2 0u // GPIO0
#define PIN_SDA1 21u // GPIO21
#define PIN_SDA2 1u // GPIO1
#define PIN_TX1 11u // GPIO11
#define PIN_TX2 0u // GPIO0
// Port availability
// -----------------
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define HAS_WIRE2 1
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define HAS_WIRE2 1
#define SERIAL_INTERFACES_COUNT 2
#define WIRE_INTERFACES_COUNT 1
// Arduino pin names
// -----------------
#define PIN_D0 6u // GPIO6
#define PIN_D1 7u // GPIO7
#define PIN_D2 8u // GPIO8
#define PIN_D3 23u // GPIO23
#define PIN_D4 10u // GPIO10
#define PIN_D5 11u // GPIO11
#define PIN_D6 24u // GPIO24
#define PIN_D7 26u // GPIO26
#define PIN_D8 0u // GPIO0
#define PIN_D9 1u // GPIO1
#define PIN_D10 21u // GPIO21
#define PIN_A0 23u // GPIO23
// Static pin names
// ----------------
static const unsigned char A0 = PIN_A0;
static const unsigned char D0 = PIN_D0;
static const unsigned char D1 = PIN_D1;
static const unsigned char D2 = PIN_D2;
static const unsigned char D3 = PIN_D3;
static const unsigned char D4 = PIN_D4;
static const unsigned char D5 = PIN_D5;
static const unsigned char D6 = PIN_D6;
static const unsigned char D7 = PIN_D7;
static const unsigned char D8 = PIN_D8;
static const unsigned char D9 = PIN_D9;
static const unsigned char D10 = PIN_D10;

View File

@@ -2,14 +2,12 @@
#include <Arduino.h>
extern "C" {
#ifdef LT_VARIANT_INCLUDE
#include LT_VARIANT_INCLUDE
#endif
// clang-format off
PinInfo pinTable[PINS_COUNT] = {
PinInfo lt_arduino_pin_info_list[PINS_COUNT] = {
// D0: P23, ADC3, TDO, FSO
{GPIO23, PIN_GPIO | PIN_IRQ | PIN_ADC | PIN_JTAG, PIN_NONE, 0},
// D1: P14, SD_CLK, SCK
@@ -35,6 +33,19 @@ PinInfo pinTable[PINS_COUNT] = {
// D11: P11, UART1_TX
{GPIO11, PIN_GPIO | PIN_IRQ | PIN_UART, PIN_NONE, 0},
};
// clang-format on
} // extern "C"
PinInfo *lt_arduino_pin_gpio_map[] = {
[0] = &(lt_arduino_pin_info_list[6]), // GPIO0 (D6)
[6] = &(lt_arduino_pin_info_list[4]), // GPIO6 (D4)
[7] = &(lt_arduino_pin_info_list[9]), // GPIO7 (D9)
[8] = &(lt_arduino_pin_info_list[8]), // GPIO8 (D8)
[9] = &(lt_arduino_pin_info_list[5]), // GPIO9 (D5)
[10] = &(lt_arduino_pin_info_list[10]), // GPIO10 (D10)
[11] = &(lt_arduino_pin_info_list[11]), // GPIO11 (D11)
[14] = &(lt_arduino_pin_info_list[1]), // GPIO14 (D1)
[21] = &(lt_arduino_pin_info_list[7]), // GPIO21 (D7)
[23] = &(lt_arduino_pin_info_list[0]), // GPIO23 (D0)
[24] = &(lt_arduino_pin_info_list[3]), // GPIO24 (D3)
[26] = &(lt_arduino_pin_info_list[2]), // GPIO26 (D2)
};
// clang-format on

View File

@@ -6,60 +6,80 @@
// Pins
// ----
#define PINS_COUNT 12
#define NUM_DIGITAL_PINS 12
#define NUM_ANALOG_INPUTS 1
#define NUM_ANALOG_OUTPUTS 0
// Analog pins
// -----------
#define PIN_A0 0u // GPIO23
#define A0 PIN_A0
// SPI Interfaces
// --------------
#define SPI_INTERFACES_COUNT 0
// Wire Interfaces
// ---------------
#define WIRE_INTERFACES_COUNT 0
#define PINS_COUNT 12 // Total GPIO count
#define NUM_DIGITAL_PINS 12 // Digital inputs/outputs
#define NUM_ANALOG_INPUTS 1 // ADC inputs
#define NUM_ANALOG_OUTPUTS 6 // PWM & DAC outputs
#define PINS_GPIO_MAX 26 // Last usable GPIO number
// Serial ports
// ------------
#define SERIAL_INTERFACES_COUNT 2
#define PIN_SERIAL1_RX 10u // GPIO10
#define PIN_SERIAL1_TX 11u // GPIO11
#define PIN_SERIAL2_TX 6u // GPIO0
#define PIN_SERIAL1_RX 10u // GPIO10
#define PIN_SERIAL1_TX 11u // GPIO11
#define PIN_SERIAL2_TX 0u // GPIO0
// Pin function macros
// -------------------
#define PIN_ADC3 0u // GPIO23
#define PIN_P0 6u // GPIO0
#define PIN_P6 4u // GPIO6
#define PIN_P7 9u // GPIO7
#define PIN_ADC3 23u // GPIO23
#define PIN_P0 0u // GPIO0
#define PIN_P6 6u // GPIO6
#define PIN_P7 7u // GPIO7
#define PIN_P8 8u // GPIO8
#define PIN_P9 5u // GPIO9
#define PIN_P9 9u // GPIO9
#define PIN_P10 10u // GPIO10
#define PIN_P11 11u // GPIO11
#define PIN_P14 1u // GPIO14
#define PIN_P21 7u // GPIO21
#define PIN_P23 0u // GPIO23
#define PIN_P24 3u // GPIO24
#define PIN_P26 2u // GPIO26
#define PIN_PWM0 4u // GPIO6
#define PIN_PWM1 9u // GPIO7
#define PIN_P14 14u // GPIO14
#define PIN_P21 21u // GPIO21
#define PIN_P23 23u // GPIO23
#define PIN_P24 24u // GPIO24
#define PIN_P26 26u // GPIO26
#define PIN_PWM0 6u // GPIO6
#define PIN_PWM1 7u // GPIO7
#define PIN_PWM2 8u // GPIO8
#define PIN_PWM3 5u // GPIO9
#define PIN_PWM4 3u // GPIO24
#define PIN_PWM5 2u // GPIO26
#define PIN_PWM3 9u // GPIO9
#define PIN_PWM4 24u // GPIO24
#define PIN_PWM5 26u // GPIO26
#define PIN_RX1 10u // GPIO10
#define PIN_SCK 1u // GPIO14
#define PIN_SCL2 6u // GPIO0
#define PIN_SDA1 7u // GPIO21
#define PIN_SCK 14u // GPIO14
#define PIN_SCL2 0u // GPIO0
#define PIN_SDA1 21u // GPIO21
#define PIN_TX1 11u // GPIO11
#define PIN_TX2 6u // GPIO0
#define PIN_TX2 0u // GPIO0
// Port availability
// -----------------
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define SERIAL_INTERFACES_COUNT 2
// Arduino pin names
// -----------------
#define PIN_D0 23u // GPIO23
#define PIN_D1 14u // GPIO14
#define PIN_D2 26u // GPIO26
#define PIN_D3 24u // GPIO24
#define PIN_D4 6u // GPIO6
#define PIN_D5 9u // GPIO9
#define PIN_D6 0u // GPIO0
#define PIN_D7 21u // GPIO21
#define PIN_D8 8u // GPIO8
#define PIN_D9 7u // GPIO7
#define PIN_D10 10u // GPIO10
#define PIN_D11 11u // GPIO11
#define PIN_A0 23u // GPIO23
// Static pin names
// ----------------
static const unsigned char A0 = PIN_A0;
static const unsigned char D0 = PIN_D0;
static const unsigned char D1 = PIN_D1;
static const unsigned char D2 = PIN_D2;
static const unsigned char D3 = PIN_D3;
static const unsigned char D4 = PIN_D4;
static const unsigned char D5 = PIN_D5;
static const unsigned char D6 = PIN_D6;
static const unsigned char D7 = PIN_D7;
static const unsigned char D8 = PIN_D8;
static const unsigned char D9 = PIN_D9;
static const unsigned char D10 = PIN_D10;
static const unsigned char D11 = PIN_D11;

View File

@@ -2,14 +2,12 @@
#include <Arduino.h>
extern "C" {
#ifdef LT_VARIANT_INCLUDE
#include LT_VARIANT_INCLUDE
#endif
// clang-format off
PinInfo pinTable[PINS_COUNT] = {
PinInfo lt_arduino_pin_info_list[PINS_COUNT] = {
// D0: P23, ADC3, TDO, FSO
{GPIO23, PIN_GPIO | PIN_IRQ | PIN_ADC | PIN_JTAG, PIN_NONE, 0},
// D1: P14, SD_CLK, SCK
@@ -39,6 +37,21 @@ PinInfo pinTable[PINS_COUNT] = {
// D13: P20, I2C1_SCL, TCK, FSCK
{GPIO20, PIN_GPIO | PIN_IRQ | PIN_I2C | PIN_JTAG, PIN_NONE, 0},
};
// clang-format on
} // extern "C"
PinInfo *lt_arduino_pin_gpio_map[] = {
[0] = &(lt_arduino_pin_info_list[6]), // GPIO0 (D6)
[6] = &(lt_arduino_pin_info_list[4]), // GPIO6 (D4)
[7] = &(lt_arduino_pin_info_list[9]), // GPIO7 (D9)
[8] = &(lt_arduino_pin_info_list[8]), // GPIO8 (D8)
[9] = &(lt_arduino_pin_info_list[5]), // GPIO9 (D5)
[10] = &(lt_arduino_pin_info_list[10]), // GPIO10 (D10)
[11] = &(lt_arduino_pin_info_list[11]), // GPIO11 (D11)
[14] = &(lt_arduino_pin_info_list[1]), // GPIO14 (D1)
[20] = &(lt_arduino_pin_info_list[13]), // GPIO20 (D13)
[21] = &(lt_arduino_pin_info_list[7]), // GPIO21 (D7)
[22] = &(lt_arduino_pin_info_list[12]), // GPIO22 (D12)
[23] = &(lt_arduino_pin_info_list[0]), // GPIO23 (D0)
[24] = &(lt_arduino_pin_info_list[3]), // GPIO24 (D3)
[26] = &(lt_arduino_pin_info_list[2]), // GPIO26 (D2)
};
// clang-format on

View File

@@ -6,69 +6,95 @@
// Pins
// ----
#define PINS_COUNT 14
#define NUM_DIGITAL_PINS 14
#define NUM_ANALOG_INPUTS 1
#define NUM_ANALOG_OUTPUTS 0
// Analog pins
// -----------
#define PIN_A0 0u // GPIO23
#define PIN_A0 0u // GPIO23
#define A0 PIN_A0
#define A0 PIN_A0
// SPI Interfaces
// --------------
#define SPI_INTERFACES_COUNT 0
#define PINS_COUNT 14 // Total GPIO count
#define NUM_DIGITAL_PINS 14 // Digital inputs/outputs
#define NUM_ANALOG_INPUTS 1 // ADC inputs
#define NUM_ANALOG_OUTPUTS 6 // PWM & DAC outputs
#define PINS_GPIO_MAX 26 // Last usable GPIO number
// Wire Interfaces
// ---------------
#define WIRE_INTERFACES_COUNT 1
#define PIN_WIRE1_SCL 13u // GPIO20
#define PIN_WIRE1_SDA_0 7u // GPIO21
#define PIN_WIRE1_SDA_1 7u // GPIO21
#define PIN_WIRE1_SCL 20u // GPIO20
#define PIN_WIRE1_SDA_0 21u // GPIO21
#define PIN_WIRE1_SDA_1 21u // GPIO21
// Serial ports
// ------------
#define SERIAL_INTERFACES_COUNT 2
#define PIN_SERIAL1_RX 10u // GPIO10
#define PIN_SERIAL1_TX 11u // GPIO11
#define PIN_SERIAL2_TX 6u // GPIO0
#define PIN_SERIAL1_RX 10u // GPIO10
#define PIN_SERIAL1_TX 11u // GPIO11
#define PIN_SERIAL2_TX 0u // GPIO0
// Pin function macros
// -------------------
#define PIN_ADC3 0u // GPIO23
#define PIN_P0 6u // GPIO0
#define PIN_P6 4u // GPIO6
#define PIN_P7 9u // GPIO7
#define PIN_ADC3 23u // GPIO23
#define PIN_P0 0u // GPIO0
#define PIN_P6 6u // GPIO6
#define PIN_P7 7u // GPIO7
#define PIN_P8 8u // GPIO8
#define PIN_P9 5u // GPIO9
#define PIN_P9 9u // GPIO9
#define PIN_P10 10u // GPIO10
#define PIN_P11 11u // GPIO11
#define PIN_P14 1u // GPIO14
#define PIN_P20 13u // GPIO20
#define PIN_P21 7u // GPIO21
#define PIN_P22 12u // GPIO22
#define PIN_P23 0u // GPIO23
#define PIN_P24 3u // GPIO24
#define PIN_P26 2u // GPIO26
#define PIN_PWM0 4u // GPIO6
#define PIN_PWM1 9u // GPIO7
#define PIN_P14 14u // GPIO14
#define PIN_P20 20u // GPIO20
#define PIN_P21 21u // GPIO21
#define PIN_P22 22u // GPIO22
#define PIN_P23 23u // GPIO23
#define PIN_P24 24u // GPIO24
#define PIN_P26 26u // GPIO26
#define PIN_PWM0 6u // GPIO6
#define PIN_PWM1 7u // GPIO7
#define PIN_PWM2 8u // GPIO8
#define PIN_PWM3 5u // GPIO9
#define PIN_PWM4 3u // GPIO24
#define PIN_PWM5 2u // GPIO26
#define PIN_PWM3 9u // GPIO9
#define PIN_PWM4 24u // GPIO24
#define PIN_PWM5 26u // GPIO26
#define PIN_RX1 10u // GPIO10
#define PIN_SCK 1u // GPIO14
#define PIN_SCL1 13u // GPIO20
#define PIN_SCL2 6u // GPIO0
#define PIN_SDA1 7u // GPIO21
#define PIN_SCK 14u // GPIO14
#define PIN_SCL1 20u // GPIO20
#define PIN_SCL2 0u // GPIO0
#define PIN_SDA1 21u // GPIO21
#define PIN_TX1 11u // GPIO11
#define PIN_TX2 6u // GPIO0
#define PIN_TX2 0u // GPIO0
// Port availability
// -----------------
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define HAS_WIRE1 1
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define HAS_WIRE1 1
#define SERIAL_INTERFACES_COUNT 2
#define WIRE_INTERFACES_COUNT 1
// Arduino pin names
// -----------------
#define PIN_D0 23u // GPIO23
#define PIN_D1 14u // GPIO14
#define PIN_D2 26u // GPIO26
#define PIN_D3 24u // GPIO24
#define PIN_D4 6u // GPIO6
#define PIN_D5 9u // GPIO9
#define PIN_D6 0u // GPIO0
#define PIN_D7 21u // GPIO21
#define PIN_D8 8u // GPIO8
#define PIN_D9 7u // GPIO7
#define PIN_D10 10u // GPIO10
#define PIN_D11 11u // GPIO11
#define PIN_D12 22u // GPIO22
#define PIN_D13 20u // GPIO20
#define PIN_A0 23u // GPIO23
// Static pin names
// ----------------
static const unsigned char A0 = PIN_A0;
static const unsigned char D0 = PIN_D0;
static const unsigned char D1 = PIN_D1;
static const unsigned char D2 = PIN_D2;
static const unsigned char D3 = PIN_D3;
static const unsigned char D4 = PIN_D4;
static const unsigned char D5 = PIN_D5;
static const unsigned char D6 = PIN_D6;
static const unsigned char D7 = PIN_D7;
static const unsigned char D8 = PIN_D8;
static const unsigned char D9 = PIN_D9;
static const unsigned char D10 = PIN_D10;
static const unsigned char D11 = PIN_D11;
static const unsigned char D12 = PIN_D12;
static const unsigned char D13 = PIN_D13;

View File

@@ -2,14 +2,12 @@
#include <Arduino.h>
extern "C" {
#ifdef LT_VARIANT_INCLUDE
#include LT_VARIANT_INCLUDE
#endif
// clang-format off
PinInfo pinTable[PINS_COUNT] = {
PinInfo lt_arduino_pin_info_list[PINS_COUNT] = {
// D0: P23, ADC3, TDO, FSO
{GPIO23, PIN_GPIO | PIN_IRQ | PIN_ADC | PIN_JTAG, PIN_NONE, 0},
// D1: P14, SD_CLK, SCK
@@ -45,6 +43,24 @@ PinInfo pinTable[PINS_COUNT] = {
// D16: P16, SD_D0, MOSI
{GPIO16, PIN_GPIO | PIN_IRQ | PIN_SPI, PIN_NONE, 0},
};
// clang-format on
} // extern "C"
PinInfo *lt_arduino_pin_gpio_map[] = {
[0] = &(lt_arduino_pin_info_list[6]), // GPIO0 (D6)
[1] = &(lt_arduino_pin_info_list[7]), // GPIO1 (D7)
[6] = &(lt_arduino_pin_info_list[4]), // GPIO6 (D4)
[7] = &(lt_arduino_pin_info_list[9]), // GPIO7 (D9)
[8] = &(lt_arduino_pin_info_list[8]), // GPIO8 (D8)
[9] = &(lt_arduino_pin_info_list[5]), // GPIO9 (D5)
[10] = &(lt_arduino_pin_info_list[10]), // GPIO10 (D10)
[11] = &(lt_arduino_pin_info_list[11]), // GPIO11 (D11)
[14] = &(lt_arduino_pin_info_list[1]), // GPIO14 (D1)
[15] = &(lt_arduino_pin_info_list[12]), // GPIO15 (D12)
[16] = &(lt_arduino_pin_info_list[16]), // GPIO16 (D16)
[17] = &(lt_arduino_pin_info_list[15]), // GPIO17 (D15)
[20] = &(lt_arduino_pin_info_list[14]), // GPIO20 (D14)
[22] = &(lt_arduino_pin_info_list[13]), // GPIO22 (D13)
[23] = &(lt_arduino_pin_info_list[0]), // GPIO23 (D0)
[24] = &(lt_arduino_pin_info_list[3]), // GPIO24 (D3)
[26] = &(lt_arduino_pin_info_list[2]), // GPIO26 (D2)
};
// clang-format on

View File

@@ -6,74 +6,108 @@
// Pins
// ----
#define PINS_COUNT 17
#define NUM_DIGITAL_PINS 17
#define NUM_ANALOG_INPUTS 1
#define NUM_ANALOG_OUTPUTS 0
// Analog pins
// -----------
#define PIN_A0 0u // GPIO23
#define A0 PIN_A0
// SPI Interfaces
// --------------
#define SPI_INTERFACES_COUNT 0
#define PINS_COUNT 17 // Total GPIO count
#define NUM_DIGITAL_PINS 17 // Digital inputs/outputs
#define NUM_ANALOG_INPUTS 1 // ADC inputs
#define NUM_ANALOG_OUTPUTS 6 // PWM & DAC outputs
#define PINS_GPIO_MAX 26 // Last usable GPIO number
// Wire Interfaces
// ---------------
#define WIRE_INTERFACES_COUNT 1
#define PIN_WIRE2_SCL 6u // GPIO0
#define PIN_WIRE2_SDA 7u // GPIO1
#define PIN_WIRE2_SCL 0u // GPIO0
#define PIN_WIRE2_SDA 1u // GPIO1
// Serial ports
// ------------
#define SERIAL_INTERFACES_COUNT 2
#define PIN_SERIAL1_RX 10u // GPIO10
#define PIN_SERIAL1_TX 11u // GPIO11
#define PIN_SERIAL2_RX 7u // GPIO1
#define PIN_SERIAL2_TX 6u // GPIO0
#define PIN_SERIAL1_RX 10u // GPIO10
#define PIN_SERIAL1_TX 11u // GPIO11
#define PIN_SERIAL2_RX 1u // GPIO1
#define PIN_SERIAL2_TX 0u // GPIO0
// Pin function macros
// -------------------
#define PIN_ADC3 0u // GPIO23
#define PIN_CS 12u // GPIO15
#define PIN_MISO 15u // GPIO17
#define PIN_ADC3 23u // GPIO23
#define PIN_CS 15u // GPIO15
#define PIN_MISO 17u // GPIO17
#define PIN_MOSI 16u // GPIO16
#define PIN_P0 6u // GPIO0
#define PIN_P1 7u // GPIO1
#define PIN_P6 4u // GPIO6
#define PIN_P7 9u // GPIO7
#define PIN_P0 0u // GPIO0
#define PIN_P1 1u // GPIO1
#define PIN_P6 6u // GPIO6
#define PIN_P7 7u // GPIO7
#define PIN_P8 8u // GPIO8
#define PIN_P9 5u // GPIO9
#define PIN_P9 9u // GPIO9
#define PIN_P10 10u // GPIO10
#define PIN_P11 11u // GPIO11
#define PIN_P14 1u // GPIO14
#define PIN_P15 12u // GPIO15
#define PIN_P14 14u // GPIO14
#define PIN_P15 15u // GPIO15
#define PIN_P16 16u // GPIO16
#define PIN_P17 15u // GPIO17
#define PIN_P20 14u // GPIO20
#define PIN_P22 13u // GPIO22
#define PIN_P23 0u // GPIO23
#define PIN_P24 3u // GPIO24
#define PIN_P26 2u // GPIO26
#define PIN_PWM0 4u // GPIO6
#define PIN_PWM1 9u // GPIO7
#define PIN_P17 17u // GPIO17
#define PIN_P20 20u // GPIO20
#define PIN_P22 22u // GPIO22
#define PIN_P23 23u // GPIO23
#define PIN_P24 24u // GPIO24
#define PIN_P26 26u // GPIO26
#define PIN_PWM0 6u // GPIO6
#define PIN_PWM1 7u // GPIO7
#define PIN_PWM2 8u // GPIO8
#define PIN_PWM3 5u // GPIO9
#define PIN_PWM4 3u // GPIO24
#define PIN_PWM5 2u // GPIO26
#define PIN_PWM3 9u // GPIO9
#define PIN_PWM4 24u // GPIO24
#define PIN_PWM5 26u // GPIO26
#define PIN_RX1 10u // GPIO10
#define PIN_RX2 7u // GPIO1
#define PIN_SCK 1u // GPIO14
#define PIN_SCL1 14u // GPIO20
#define PIN_SCL2 6u // GPIO0
#define PIN_SDA2 7u // GPIO1
#define PIN_RX2 1u // GPIO1
#define PIN_SCK 14u // GPIO14
#define PIN_SCL1 20u // GPIO20
#define PIN_SCL2 0u // GPIO0
#define PIN_SDA2 1u // GPIO1
#define PIN_TX1 11u // GPIO11
#define PIN_TX2 6u // GPIO0
#define PIN_TX2 0u // GPIO0
// Port availability
// -----------------
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define HAS_WIRE2 1
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define HAS_WIRE2 1
#define SERIAL_INTERFACES_COUNT 2
#define WIRE_INTERFACES_COUNT 1
// Arduino pin names
// -----------------
#define PIN_D0 23u // GPIO23
#define PIN_D1 14u // GPIO14
#define PIN_D2 26u // GPIO26
#define PIN_D3 24u // GPIO24
#define PIN_D4 6u // GPIO6
#define PIN_D5 9u // GPIO9
#define PIN_D6 0u // GPIO0
#define PIN_D7 1u // GPIO1
#define PIN_D8 8u // GPIO8
#define PIN_D9 7u // GPIO7
#define PIN_D10 10u // GPIO10
#define PIN_D11 11u // GPIO11
#define PIN_D12 15u // GPIO15
#define PIN_D13 22u // GPIO22
#define PIN_D14 20u // GPIO20
#define PIN_D15 17u // GPIO17
#define PIN_D16 16u // GPIO16
#define PIN_A0 23u // GPIO23
// Static pin names
// ----------------
static const unsigned char A0 = PIN_A0;
static const unsigned char D0 = PIN_D0;
static const unsigned char D1 = PIN_D1;
static const unsigned char D2 = PIN_D2;
static const unsigned char D3 = PIN_D3;
static const unsigned char D4 = PIN_D4;
static const unsigned char D5 = PIN_D5;
static const unsigned char D6 = PIN_D6;
static const unsigned char D7 = PIN_D7;
static const unsigned char D8 = PIN_D8;
static const unsigned char D9 = PIN_D9;
static const unsigned char D10 = PIN_D10;
static const unsigned char D11 = PIN_D11;
static const unsigned char D12 = PIN_D12;
static const unsigned char D13 = PIN_D13;
static const unsigned char D14 = PIN_D14;
static const unsigned char D15 = PIN_D15;
static const unsigned char D16 = PIN_D16;

View File

@@ -2,14 +2,12 @@
#include <Arduino.h>
extern "C" {
#ifdef LT_VARIANT_INCLUDE
#include LT_VARIANT_INCLUDE
#endif
// clang-format off
PinInfo pinTable[PINS_COUNT] = {
PinInfo lt_arduino_pin_info_list[PINS_COUNT] = {
// D0: P0, UART2_TX, I2C2_SCL
{GPIO0, PIN_GPIO | PIN_IRQ | PIN_I2C | PIN_UART, PIN_NONE, 0},
// D1: P1, UART2_RX, I2C2_SDA
@@ -49,6 +47,26 @@ PinInfo pinTable[PINS_COUNT] = {
// D18: P28, DN
{GPIO28, PIN_GPIO | PIN_IRQ, PIN_NONE, 0},
};
// clang-format on
} // extern "C"
PinInfo *lt_arduino_pin_gpio_map[] = {
[0] = &(lt_arduino_pin_info_list[0]), // GPIO0 (D0)
[1] = &(lt_arduino_pin_info_list[1]), // GPIO1 (D1)
[6] = &(lt_arduino_pin_info_list[2]), // GPIO6 (D2)
[7] = &(lt_arduino_pin_info_list[3]), // GPIO7 (D3)
[8] = &(lt_arduino_pin_info_list[4]), // GPIO8 (D4)
[9] = &(lt_arduino_pin_info_list[5]), // GPIO9 (D5)
[10] = &(lt_arduino_pin_info_list[6]), // GPIO10 (D6)
[11] = &(lt_arduino_pin_info_list[7]), // GPIO11 (D7)
[14] = &(lt_arduino_pin_info_list[8]), // GPIO14 (D8)
[15] = &(lt_arduino_pin_info_list[9]), // GPIO15 (D9)
[16] = &(lt_arduino_pin_info_list[10]), // GPIO16 (D10)
[17] = &(lt_arduino_pin_info_list[11]), // GPIO17 (D11)
[20] = &(lt_arduino_pin_info_list[12]), // GPIO20 (D12)
[21] = &(lt_arduino_pin_info_list[13]), // GPIO21 (D13)
[22] = &(lt_arduino_pin_info_list[14]), // GPIO22 (D14)
[23] = &(lt_arduino_pin_info_list[15]), // GPIO23 (D15)
[24] = &(lt_arduino_pin_info_list[16]), // GPIO24 (D16)
[26] = &(lt_arduino_pin_info_list[17]), // GPIO26 (D17)
[28] = &(lt_arduino_pin_info_list[18]), // GPIO28 (D18)
};
// clang-format on

View File

@@ -6,80 +6,118 @@
// Pins
// ----
#define PINS_COUNT 19
#define NUM_DIGITAL_PINS 19
#define NUM_ANALOG_INPUTS 1
#define NUM_ANALOG_OUTPUTS 0
// Analog pins
// -----------
#define PIN_A0 15u // GPIO23
#define A0 PIN_A0
// SPI Interfaces
// --------------
#define SPI_INTERFACES_COUNT 0
#define PINS_COUNT 19 // Total GPIO count
#define NUM_DIGITAL_PINS 19 // Digital inputs/outputs
#define NUM_ANALOG_INPUTS 1 // ADC inputs
#define NUM_ANALOG_OUTPUTS 6 // PWM & DAC outputs
#define PINS_GPIO_MAX 28 // Last usable GPIO number
// Wire Interfaces
// ---------------
#define WIRE_INTERFACES_COUNT 2
#define PIN_WIRE1_SCL 12u // GPIO20
#define PIN_WIRE1_SDA 13u // GPIO21
#define PIN_WIRE2_SCL 0u // GPIO0
#define PIN_WIRE2_SDA 1u // GPIO1
#define PIN_WIRE1_SCL 20u // GPIO20
#define PIN_WIRE1_SDA 21u // GPIO21
#define PIN_WIRE2_SCL 0u // GPIO0
#define PIN_WIRE2_SDA 1u // GPIO1
// Serial ports
// ------------
#define SERIAL_INTERFACES_COUNT 2
#define PIN_SERIAL1_RX 6u // GPIO10
#define PIN_SERIAL1_TX 7u // GPIO11
#define PIN_SERIAL2_RX 1u // GPIO1
#define PIN_SERIAL2_TX 0u // GPIO0
#define PIN_SERIAL1_RX 10u // GPIO10
#define PIN_SERIAL1_TX 11u // GPIO11
#define PIN_SERIAL2_RX 1u // GPIO1
#define PIN_SERIAL2_TX 0u // GPIO0
// Pin function macros
// -------------------
#define PIN_ADC3 15u // GPIO23
#define PIN_CS 9u // GPIO15
#define PIN_MISO 11u // GPIO17
#define PIN_MOSI 10u // GPIO16
#define PIN_ADC3 23u // GPIO23
#define PIN_CS 15u // GPIO15
#define PIN_MISO 17u // GPIO17
#define PIN_MOSI 16u // GPIO16
#define PIN_P0 0u // GPIO0
#define PIN_P1 1u // GPIO1
#define PIN_P6 2u // GPIO6
#define PIN_P7 3u // GPIO7
#define PIN_P8 4u // GPIO8
#define PIN_P9 5u // GPIO9
#define PIN_P10 6u // GPIO10
#define PIN_P11 7u // GPIO11
#define PIN_P14 8u // GPIO14
#define PIN_P15 9u // GPIO15
#define PIN_P16 10u // GPIO16
#define PIN_P17 11u // GPIO17
#define PIN_P20 12u // GPIO20
#define PIN_P21 13u // GPIO21
#define PIN_P22 14u // GPIO22
#define PIN_P23 15u // GPIO23
#define PIN_P24 16u // GPIO24
#define PIN_P26 17u // GPIO26
#define PIN_P28 18u // GPIO28
#define PIN_PWM0 2u // GPIO6
#define PIN_PWM1 3u // GPIO7
#define PIN_PWM2 4u // GPIO8
#define PIN_PWM3 5u // GPIO9
#define PIN_PWM4 16u // GPIO24
#define PIN_PWM5 17u // GPIO26
#define PIN_RX1 6u // GPIO10
#define PIN_P6 6u // GPIO6
#define PIN_P7 7u // GPIO7
#define PIN_P8 8u // GPIO8
#define PIN_P9 9u // GPIO9
#define PIN_P10 10u // GPIO10
#define PIN_P11 11u // GPIO11
#define PIN_P14 14u // GPIO14
#define PIN_P15 15u // GPIO15
#define PIN_P16 16u // GPIO16
#define PIN_P17 17u // GPIO17
#define PIN_P20 20u // GPIO20
#define PIN_P21 21u // GPIO21
#define PIN_P22 22u // GPIO22
#define PIN_P23 23u // GPIO23
#define PIN_P24 24u // GPIO24
#define PIN_P26 26u // GPIO26
#define PIN_P28 28u // GPIO28
#define PIN_PWM0 6u // GPIO6
#define PIN_PWM1 7u // GPIO7
#define PIN_PWM2 8u // GPIO8
#define PIN_PWM3 9u // GPIO9
#define PIN_PWM4 24u // GPIO24
#define PIN_PWM5 26u // GPIO26
#define PIN_RX1 10u // GPIO10
#define PIN_RX2 1u // GPIO1
#define PIN_SCK 8u // GPIO14
#define PIN_SCL1 12u // GPIO20
#define PIN_SCK 14u // GPIO14
#define PIN_SCL1 20u // GPIO20
#define PIN_SCL2 0u // GPIO0
#define PIN_SDA1 13u // GPIO21
#define PIN_SDA1 21u // GPIO21
#define PIN_SDA2 1u // GPIO1
#define PIN_TX1 7u // GPIO11
#define PIN_TX1 11u // GPIO11
#define PIN_TX2 0u // GPIO0
// Port availability
// -----------------
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define HAS_WIRE1 1
#define HAS_WIRE2 1
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define HAS_WIRE1 1
#define HAS_WIRE2 1
#define SERIAL_INTERFACES_COUNT 2
#define WIRE_INTERFACES_COUNT 2
// Arduino pin names
// -----------------
#define PIN_D0 0u // GPIO0
#define PIN_D1 1u // GPIO1
#define PIN_D2 6u // GPIO6
#define PIN_D3 7u // GPIO7
#define PIN_D4 8u // GPIO8
#define PIN_D5 9u // GPIO9
#define PIN_D6 10u // GPIO10
#define PIN_D7 11u // GPIO11
#define PIN_D8 14u // GPIO14
#define PIN_D9 15u // GPIO15
#define PIN_D10 16u // GPIO16
#define PIN_D11 17u // GPIO17
#define PIN_D12 20u // GPIO20
#define PIN_D13 21u // GPIO21
#define PIN_D14 22u // GPIO22
#define PIN_D15 23u // GPIO23
#define PIN_D16 24u // GPIO24
#define PIN_D17 26u // GPIO26
#define PIN_D18 28u // GPIO28
#define PIN_A0 23u // GPIO23
// Static pin names
// ----------------
static const unsigned char A0 = PIN_A0;
static const unsigned char D0 = PIN_D0;
static const unsigned char D1 = PIN_D1;
static const unsigned char D2 = PIN_D2;
static const unsigned char D3 = PIN_D3;
static const unsigned char D4 = PIN_D4;
static const unsigned char D5 = PIN_D5;
static const unsigned char D6 = PIN_D6;
static const unsigned char D7 = PIN_D7;
static const unsigned char D8 = PIN_D8;
static const unsigned char D9 = PIN_D9;
static const unsigned char D10 = PIN_D10;
static const unsigned char D11 = PIN_D11;
static const unsigned char D12 = PIN_D12;
static const unsigned char D13 = PIN_D13;
static const unsigned char D14 = PIN_D14;
static const unsigned char D15 = PIN_D15;
static const unsigned char D16 = PIN_D16;
static const unsigned char D17 = PIN_D17;
static const unsigned char D18 = PIN_D18;

View File

@@ -2,14 +2,12 @@
#include <Arduino.h>
extern "C" {
#ifdef LT_VARIANT_INCLUDE
#include LT_VARIANT_INCLUDE
#endif
// clang-format off
PinInfo pinTable[PINS_COUNT] = {
PinInfo lt_arduino_pin_info_list[PINS_COUNT] = {
// D0: P0, UART2_TX, I2C2_SCL
{GPIO0, PIN_GPIO | PIN_IRQ | PIN_I2C | PIN_UART, PIN_NONE, 0},
// D1: P1, UART2_RX, I2C2_SDA
@@ -49,6 +47,26 @@ PinInfo pinTable[PINS_COUNT] = {
// D18: P28, DN
{GPIO28, PIN_GPIO | PIN_IRQ, PIN_NONE, 0},
};
// clang-format on
} // extern "C"
PinInfo *lt_arduino_pin_gpio_map[] = {
[0] = &(lt_arduino_pin_info_list[0]), // GPIO0 (D0)
[1] = &(lt_arduino_pin_info_list[1]), // GPIO1 (D1)
[6] = &(lt_arduino_pin_info_list[2]), // GPIO6 (D2)
[7] = &(lt_arduino_pin_info_list[3]), // GPIO7 (D3)
[8] = &(lt_arduino_pin_info_list[4]), // GPIO8 (D4)
[9] = &(lt_arduino_pin_info_list[5]), // GPIO9 (D5)
[10] = &(lt_arduino_pin_info_list[6]), // GPIO10 (D6)
[11] = &(lt_arduino_pin_info_list[7]), // GPIO11 (D7)
[14] = &(lt_arduino_pin_info_list[8]), // GPIO14 (D8)
[15] = &(lt_arduino_pin_info_list[9]), // GPIO15 (D9)
[16] = &(lt_arduino_pin_info_list[10]), // GPIO16 (D10)
[17] = &(lt_arduino_pin_info_list[11]), // GPIO17 (D11)
[20] = &(lt_arduino_pin_info_list[12]), // GPIO20 (D12)
[21] = &(lt_arduino_pin_info_list[13]), // GPIO21 (D13)
[22] = &(lt_arduino_pin_info_list[14]), // GPIO22 (D14)
[23] = &(lt_arduino_pin_info_list[15]), // GPIO23 (D15)
[24] = &(lt_arduino_pin_info_list[16]), // GPIO24 (D16)
[26] = &(lt_arduino_pin_info_list[17]), // GPIO26 (D17)
[28] = &(lt_arduino_pin_info_list[18]), // GPIO28 (D18)
};
// clang-format on

View File

@@ -6,80 +6,118 @@
// Pins
// ----
#define PINS_COUNT 19
#define NUM_DIGITAL_PINS 19
#define NUM_ANALOG_INPUTS 1
#define NUM_ANALOG_OUTPUTS 0
// Analog pins
// -----------
#define PIN_A0 15u // GPIO23
#define A0 PIN_A0
// SPI Interfaces
// --------------
#define SPI_INTERFACES_COUNT 0
#define PINS_COUNT 19 // Total GPIO count
#define NUM_DIGITAL_PINS 19 // Digital inputs/outputs
#define NUM_ANALOG_INPUTS 1 // ADC inputs
#define NUM_ANALOG_OUTPUTS 6 // PWM & DAC outputs
#define PINS_GPIO_MAX 28 // Last usable GPIO number
// Wire Interfaces
// ---------------
#define WIRE_INTERFACES_COUNT 2
#define PIN_WIRE1_SCL 12u // GPIO20
#define PIN_WIRE1_SDA 13u // GPIO21
#define PIN_WIRE2_SCL 0u // GPIO0
#define PIN_WIRE2_SDA 1u // GPIO1
#define PIN_WIRE1_SCL 20u // GPIO20
#define PIN_WIRE1_SDA 21u // GPIO21
#define PIN_WIRE2_SCL 0u // GPIO0
#define PIN_WIRE2_SDA 1u // GPIO1
// Serial ports
// ------------
#define SERIAL_INTERFACES_COUNT 2
#define PIN_SERIAL1_RX 6u // GPIO10
#define PIN_SERIAL1_TX 7u // GPIO11
#define PIN_SERIAL2_RX 1u // GPIO1
#define PIN_SERIAL2_TX 0u // GPIO0
#define PIN_SERIAL1_RX 10u // GPIO10
#define PIN_SERIAL1_TX 11u // GPIO11
#define PIN_SERIAL2_RX 1u // GPIO1
#define PIN_SERIAL2_TX 0u // GPIO0
// Pin function macros
// -------------------
#define PIN_ADC3 15u // GPIO23
#define PIN_CS 9u // GPIO15
#define PIN_MISO 11u // GPIO17
#define PIN_MOSI 10u // GPIO16
#define PIN_ADC3 23u // GPIO23
#define PIN_CS 15u // GPIO15
#define PIN_MISO 17u // GPIO17
#define PIN_MOSI 16u // GPIO16
#define PIN_P0 0u // GPIO0
#define PIN_P1 1u // GPIO1
#define PIN_P6 2u // GPIO6
#define PIN_P7 3u // GPIO7
#define PIN_P8 4u // GPIO8
#define PIN_P9 5u // GPIO9
#define PIN_P10 6u // GPIO10
#define PIN_P11 7u // GPIO11
#define PIN_P14 8u // GPIO14
#define PIN_P15 9u // GPIO15
#define PIN_P16 10u // GPIO16
#define PIN_P17 11u // GPIO17
#define PIN_P20 12u // GPIO20
#define PIN_P21 13u // GPIO21
#define PIN_P22 14u // GPIO22
#define PIN_P23 15u // GPIO23
#define PIN_P24 16u // GPIO24
#define PIN_P26 17u // GPIO26
#define PIN_P28 18u // GPIO28
#define PIN_PWM0 2u // GPIO6
#define PIN_PWM1 3u // GPIO7
#define PIN_PWM2 4u // GPIO8
#define PIN_PWM3 5u // GPIO9
#define PIN_PWM4 16u // GPIO24
#define PIN_PWM5 17u // GPIO26
#define PIN_RX1 6u // GPIO10
#define PIN_P6 6u // GPIO6
#define PIN_P7 7u // GPIO7
#define PIN_P8 8u // GPIO8
#define PIN_P9 9u // GPIO9
#define PIN_P10 10u // GPIO10
#define PIN_P11 11u // GPIO11
#define PIN_P14 14u // GPIO14
#define PIN_P15 15u // GPIO15
#define PIN_P16 16u // GPIO16
#define PIN_P17 17u // GPIO17
#define PIN_P20 20u // GPIO20
#define PIN_P21 21u // GPIO21
#define PIN_P22 22u // GPIO22
#define PIN_P23 23u // GPIO23
#define PIN_P24 24u // GPIO24
#define PIN_P26 26u // GPIO26
#define PIN_P28 28u // GPIO28
#define PIN_PWM0 6u // GPIO6
#define PIN_PWM1 7u // GPIO7
#define PIN_PWM2 8u // GPIO8
#define PIN_PWM3 9u // GPIO9
#define PIN_PWM4 24u // GPIO24
#define PIN_PWM5 26u // GPIO26
#define PIN_RX1 10u // GPIO10
#define PIN_RX2 1u // GPIO1
#define PIN_SCK 8u // GPIO14
#define PIN_SCL1 12u // GPIO20
#define PIN_SCK 14u // GPIO14
#define PIN_SCL1 20u // GPIO20
#define PIN_SCL2 0u // GPIO0
#define PIN_SDA1 13u // GPIO21
#define PIN_SDA1 21u // GPIO21
#define PIN_SDA2 1u // GPIO1
#define PIN_TX1 7u // GPIO11
#define PIN_TX1 11u // GPIO11
#define PIN_TX2 0u // GPIO0
// Port availability
// -----------------
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define HAS_WIRE1 1
#define HAS_WIRE2 1
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define HAS_WIRE1 1
#define HAS_WIRE2 1
#define SERIAL_INTERFACES_COUNT 2
#define WIRE_INTERFACES_COUNT 2
// Arduino pin names
// -----------------
#define PIN_D0 0u // GPIO0
#define PIN_D1 1u // GPIO1
#define PIN_D2 6u // GPIO6
#define PIN_D3 7u // GPIO7
#define PIN_D4 8u // GPIO8
#define PIN_D5 9u // GPIO9
#define PIN_D6 10u // GPIO10
#define PIN_D7 11u // GPIO11
#define PIN_D8 14u // GPIO14
#define PIN_D9 15u // GPIO15
#define PIN_D10 16u // GPIO16
#define PIN_D11 17u // GPIO17
#define PIN_D12 20u // GPIO20
#define PIN_D13 21u // GPIO21
#define PIN_D14 22u // GPIO22
#define PIN_D15 23u // GPIO23
#define PIN_D16 24u // GPIO24
#define PIN_D17 26u // GPIO26
#define PIN_D18 28u // GPIO28
#define PIN_A0 23u // GPIO23
// Static pin names
// ----------------
static const unsigned char A0 = PIN_A0;
static const unsigned char D0 = PIN_D0;
static const unsigned char D1 = PIN_D1;
static const unsigned char D2 = PIN_D2;
static const unsigned char D3 = PIN_D3;
static const unsigned char D4 = PIN_D4;
static const unsigned char D5 = PIN_D5;
static const unsigned char D6 = PIN_D6;
static const unsigned char D7 = PIN_D7;
static const unsigned char D8 = PIN_D8;
static const unsigned char D9 = PIN_D9;
static const unsigned char D10 = PIN_D10;
static const unsigned char D11 = PIN_D11;
static const unsigned char D12 = PIN_D12;
static const unsigned char D13 = PIN_D13;
static const unsigned char D14 = PIN_D14;
static const unsigned char D15 = PIN_D15;
static const unsigned char D16 = PIN_D16;
static const unsigned char D17 = PIN_D17;
static const unsigned char D18 = PIN_D18;

View File

@@ -2,14 +2,12 @@
#include <Arduino.h>
extern "C" {
#ifdef LT_VARIANT_INCLUDE
#include LT_VARIANT_INCLUDE
#endif
// clang-format off
PinInfo pinTable[PINS_COUNT] = {
PinInfo lt_arduino_pin_info_list[PINS_COUNT] = {
// D0: P0, UART2_TX, I2C2_SCL
{GPIO0, PIN_GPIO | PIN_IRQ | PIN_I2C | PIN_UART, PIN_NONE, 0},
// D1: P1, UART2_RX, I2C2_SDA
@@ -87,6 +85,45 @@ PinInfo pinTable[PINS_COUNT] = {
// D37: P39, DVP_PD7
{GPIO39, PIN_GPIO | PIN_IRQ, PIN_NONE, 0},
};
// clang-format on
} // extern "C"
PinInfo *lt_arduino_pin_gpio_map[] = {
[0] = &(lt_arduino_pin_info_list[0]), // GPIO0 (D0)
[1] = &(lt_arduino_pin_info_list[1]), // GPIO1 (D1)
[2] = &(lt_arduino_pin_info_list[2]), // GPIO2 (D2)
[3] = &(lt_arduino_pin_info_list[3]), // GPIO3 (D3)
[4] = &(lt_arduino_pin_info_list[4]), // GPIO4 (D4)
[5] = &(lt_arduino_pin_info_list[5]), // GPIO5 (D5)
[6] = &(lt_arduino_pin_info_list[6]), // GPIO6 (D6)
[7] = &(lt_arduino_pin_info_list[7]), // GPIO7 (D7)
[10] = &(lt_arduino_pin_info_list[8]), // GPIO10 (D8)
[11] = &(lt_arduino_pin_info_list[9]), // GPIO11 (D9)
[12] = &(lt_arduino_pin_info_list[10]), // GPIO12 (D10)
[13] = &(lt_arduino_pin_info_list[11]), // GPIO13 (D11)
[14] = &(lt_arduino_pin_info_list[12]), // GPIO14 (D12)
[15] = &(lt_arduino_pin_info_list[13]), // GPIO15 (D13)
[16] = &(lt_arduino_pin_info_list[14]), // GPIO16 (D14)
[17] = &(lt_arduino_pin_info_list[15]), // GPIO17 (D15)
[18] = &(lt_arduino_pin_info_list[16]), // GPIO18 (D16)
[19] = &(lt_arduino_pin_info_list[17]), // GPIO19 (D17)
[20] = &(lt_arduino_pin_info_list[18]), // GPIO20 (D18)
[21] = &(lt_arduino_pin_info_list[19]), // GPIO21 (D19)
[22] = &(lt_arduino_pin_info_list[20]), // GPIO22 (D20)
[23] = &(lt_arduino_pin_info_list[21]), // GPIO23 (D21)
[24] = &(lt_arduino_pin_info_list[22]), // GPIO24 (D22)
[25] = &(lt_arduino_pin_info_list[23]), // GPIO25 (D23)
[26] = &(lt_arduino_pin_info_list[24]), // GPIO26 (D24)
[27] = &(lt_arduino_pin_info_list[25]), // GPIO27 (D25)
[28] = &(lt_arduino_pin_info_list[26]), // GPIO28 (D26)
[29] = &(lt_arduino_pin_info_list[27]), // GPIO29 (D27)
[30] = &(lt_arduino_pin_info_list[28]), // GPIO30 (D28)
[31] = &(lt_arduino_pin_info_list[29]), // GPIO31 (D29)
[32] = &(lt_arduino_pin_info_list[30]), // GPIO32 (D30)
[33] = &(lt_arduino_pin_info_list[31]), // GPIO33 (D31)
[34] = &(lt_arduino_pin_info_list[32]), // GPIO34 (D32)
[35] = &(lt_arduino_pin_info_list[33]), // GPIO35 (D33)
[36] = &(lt_arduino_pin_info_list[34]), // GPIO36 (D34)
[37] = &(lt_arduino_pin_info_list[35]), // GPIO37 (D35)
[38] = &(lt_arduino_pin_info_list[36]), // GPIO38 (D36)
[39] = &(lt_arduino_pin_info_list[37]), // GPIO39 (D37)
};
// clang-format on

View File

@@ -6,63 +6,41 @@
// Pins
// ----
#define PINS_COUNT 38
#define NUM_DIGITAL_PINS 38
#define NUM_ANALOG_INPUTS 7
#define NUM_ANALOG_OUTPUTS 0
// Analog pins
// -----------
#define PIN_A5 2u // GPIO2
#define PIN_A4 3u // GPIO3
#define PIN_A1 4u // GPIO4
#define PIN_A2 5u // GPIO5
#define PIN_A6 10u // GPIO12
#define PIN_A7 11u // GPIO13
#define PIN_A3 21u // GPIO23
#define A5 PIN_A5
#define A4 PIN_A4
#define A1 PIN_A1
#define A2 PIN_A2
#define A6 PIN_A6
#define A7 PIN_A7
#define A3 PIN_A3
// SPI Interfaces
// --------------
#define SPI_INTERFACES_COUNT 0
#define PINS_COUNT 38 // Total GPIO count
#define NUM_DIGITAL_PINS 38 // Digital inputs/outputs
#define NUM_ANALOG_INPUTS 7 // ADC inputs
#define NUM_ANALOG_OUTPUTS 4 // PWM & DAC outputs
#define PINS_GPIO_MAX 39 // Last usable GPIO number
// Wire Interfaces
// ---------------
#define WIRE_INTERFACES_COUNT 2
#define PIN_WIRE1_SCL 18u // GPIO20
#define PIN_WIRE1_SDA 19u // GPIO21
#define PIN_WIRE2_SCL 0u // GPIO0
#define PIN_WIRE2_SDA 1u // GPIO1
#define PIN_WIRE1_SCL 20u // GPIO20
#define PIN_WIRE1_SDA 21u // GPIO21
#define PIN_WIRE2_SCL 0u // GPIO0
#define PIN_WIRE2_SDA 1u // GPIO1
// Serial ports
// ------------
#define SERIAL_INTERFACES_COUNT 2
#define PIN_SERIAL1_CTS 10u // GPIO12
#define PIN_SERIAL1_RTS 11u // GPIO13
#define PIN_SERIAL1_RX 8u // GPIO10
#define PIN_SERIAL1_TX 9u // GPIO11
#define PIN_SERIAL2_RX 1u // GPIO1
#define PIN_SERIAL2_TX 0u // GPIO0
#define PIN_SERIAL1_CTS 12u // GPIO12
#define PIN_SERIAL1_RTS 13u // GPIO13
#define PIN_SERIAL1_RX 10u // GPIO10
#define PIN_SERIAL1_TX 11u // GPIO11
#define PIN_SERIAL2_RX 1u // GPIO1
#define PIN_SERIAL2_TX 0u // GPIO0
// Pin function macros
// -------------------
#define PIN_ADC1 4u // GPIO4
#define PIN_ADC2 5u // GPIO5
#define PIN_ADC3 21u // GPIO23
#define PIN_ADC3 23u // GPIO23
#define PIN_ADC4 2u // GPIO2
#define PIN_ADC5 3u // GPIO3
#define PIN_ADC6 10u // GPIO12
#define PIN_ADC7 11u // GPIO13
#define PIN_CS 13u // GPIO15
#define PIN_CTS1 10u // GPIO12
#define PIN_MISO 15u // GPIO17
#define PIN_MOSI 14u // GPIO16
#define PIN_ADC6 12u // GPIO12
#define PIN_ADC7 13u // GPIO13
#define PIN_CS 15u // GPIO15
#define PIN_CTS1 12u // GPIO12
#define PIN_MISO 17u // GPIO17
#define PIN_MOSI 16u // GPIO16
#define PIN_P0 0u // GPIO0
#define PIN_P1 1u // GPIO1
#define PIN_P2 2u // GPIO2
@@ -71,54 +49,152 @@
#define PIN_P5 5u // GPIO5
#define PIN_P6 6u // GPIO6
#define PIN_P7 7u // GPIO7
#define PIN_P10 8u // GPIO10
#define PIN_P11 9u // GPIO11
#define PIN_P12 10u // GPIO12
#define PIN_P13 11u // GPIO13
#define PIN_P14 12u // GPIO14
#define PIN_P15 13u // GPIO15
#define PIN_P16 14u // GPIO16
#define PIN_P17 15u // GPIO17
#define PIN_P18 16u // GPIO18
#define PIN_P19 17u // GPIO19
#define PIN_P20 18u // GPIO20
#define PIN_P21 19u // GPIO21
#define PIN_P22 20u // GPIO22
#define PIN_P23 21u // GPIO23
#define PIN_P24 22u // GPIO24
#define PIN_P25 23u // GPIO25
#define PIN_P26 24u // GPIO26
#define PIN_P27 25u // GPIO27
#define PIN_P28 26u // GPIO28
#define PIN_P29 27u // GPIO29
#define PIN_P30 28u // GPIO30
#define PIN_P31 29u // GPIO31
#define PIN_P32 30u // GPIO32
#define PIN_P33 31u // GPIO33
#define PIN_P34 32u // GPIO34
#define PIN_P35 33u // GPIO35
#define PIN_P36 34u // GPIO36
#define PIN_P37 35u // GPIO37
#define PIN_P38 36u // GPIO38
#define PIN_P39 37u // GPIO39
#define PIN_P10 10u // GPIO10
#define PIN_P11 11u // GPIO11
#define PIN_P12 12u // GPIO12
#define PIN_P13 13u // GPIO13
#define PIN_P14 14u // GPIO14
#define PIN_P15 15u // GPIO15
#define PIN_P16 16u // GPIO16
#define PIN_P17 17u // GPIO17
#define PIN_P18 18u // GPIO18
#define PIN_P19 19u // GPIO19
#define PIN_P20 20u // GPIO20
#define PIN_P21 21u // GPIO21
#define PIN_P22 22u // GPIO22
#define PIN_P23 23u // GPIO23
#define PIN_P24 24u // GPIO24
#define PIN_P25 25u // GPIO25
#define PIN_P26 26u // GPIO26
#define PIN_P27 27u // GPIO27
#define PIN_P28 28u // GPIO28
#define PIN_P29 29u // GPIO29
#define PIN_P30 30u // GPIO30
#define PIN_P31 31u // GPIO31
#define PIN_P32 32u // GPIO32
#define PIN_P33 33u // GPIO33
#define PIN_P34 34u // GPIO34
#define PIN_P35 35u // GPIO35
#define PIN_P36 36u // GPIO36
#define PIN_P37 37u // GPIO37
#define PIN_P38 38u // GPIO38
#define PIN_P39 39u // GPIO39
#define PIN_PWM0 6u // GPIO6
#define PIN_PWM1 7u // GPIO7
#define PIN_PWM4 22u // GPIO24
#define PIN_PWM5 24u // GPIO26
#define PIN_RTS1 11u // GPIO13
#define PIN_RX1 8u // GPIO10
#define PIN_PWM4 24u // GPIO24
#define PIN_PWM5 26u // GPIO26
#define PIN_RTS1 13u // GPIO13
#define PIN_RX1 10u // GPIO10
#define PIN_RX2 1u // GPIO1
#define PIN_SCK 12u // GPIO14
#define PIN_SCL1 18u // GPIO20
#define PIN_SCK 14u // GPIO14
#define PIN_SCL1 20u // GPIO20
#define PIN_SCL2 0u // GPIO0
#define PIN_SDA1 19u // GPIO21
#define PIN_SDA1 21u // GPIO21
#define PIN_SDA2 1u // GPIO1
#define PIN_TX1 9u // GPIO11
#define PIN_TX1 11u // GPIO11
#define PIN_TX2 0u // GPIO0
// Port availability
// -----------------
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define HAS_WIRE1 1
#define HAS_WIRE2 1
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define HAS_WIRE1 1
#define HAS_WIRE2 1
#define SERIAL_INTERFACES_COUNT 2
#define WIRE_INTERFACES_COUNT 2
// Arduino pin names
// -----------------
#define PIN_D0 0u // GPIO0
#define PIN_D1 1u // GPIO1
#define PIN_D2 2u // GPIO2
#define PIN_D3 3u // GPIO3
#define PIN_D4 4u // GPIO4
#define PIN_D5 5u // GPIO5
#define PIN_D6 6u // GPIO6
#define PIN_D7 7u // GPIO7
#define PIN_D8 10u // GPIO10
#define PIN_D9 11u // GPIO11
#define PIN_D10 12u // GPIO12
#define PIN_D11 13u // GPIO13
#define PIN_D12 14u // GPIO14
#define PIN_D13 15u // GPIO15
#define PIN_D14 16u // GPIO16
#define PIN_D15 17u // GPIO17
#define PIN_D16 18u // GPIO18
#define PIN_D17 19u // GPIO19
#define PIN_D18 20u // GPIO20
#define PIN_D19 21u // GPIO21
#define PIN_D20 22u // GPIO22
#define PIN_D21 23u // GPIO23
#define PIN_D22 24u // GPIO24
#define PIN_D23 25u // GPIO25
#define PIN_D24 26u // GPIO26
#define PIN_D25 27u // GPIO27
#define PIN_D26 28u // GPIO28
#define PIN_D27 29u // GPIO29
#define PIN_D28 30u // GPIO30
#define PIN_D29 31u // GPIO31
#define PIN_D30 32u // GPIO32
#define PIN_D31 33u // GPIO33
#define PIN_D32 34u // GPIO34
#define PIN_D33 35u // GPIO35
#define PIN_D34 36u // GPIO36
#define PIN_D35 37u // GPIO37
#define PIN_D36 38u // GPIO38
#define PIN_D37 39u // GPIO39
#define PIN_A1 4u // GPIO4
#define PIN_A2 5u // GPIO5
#define PIN_A3 23u // GPIO23
#define PIN_A4 3u // GPIO3
#define PIN_A5 2u // GPIO2
#define PIN_A6 12u // GPIO12
#define PIN_A7 13u // GPIO13
// Static pin names
// ----------------
static const unsigned char A1 = PIN_A1;
static const unsigned char A2 = PIN_A2;
static const unsigned char A3 = PIN_A3;
static const unsigned char A4 = PIN_A4;
static const unsigned char A5 = PIN_A5;
static const unsigned char A6 = PIN_A6;
static const unsigned char A7 = PIN_A7;
static const unsigned char D0 = PIN_D0;
static const unsigned char D1 = PIN_D1;
static const unsigned char D2 = PIN_D2;
static const unsigned char D3 = PIN_D3;
static const unsigned char D4 = PIN_D4;
static const unsigned char D5 = PIN_D5;
static const unsigned char D6 = PIN_D6;
static const unsigned char D7 = PIN_D7;
static const unsigned char D8 = PIN_D8;
static const unsigned char D9 = PIN_D9;
static const unsigned char D10 = PIN_D10;
static const unsigned char D11 = PIN_D11;
static const unsigned char D12 = PIN_D12;
static const unsigned char D13 = PIN_D13;
static const unsigned char D14 = PIN_D14;
static const unsigned char D15 = PIN_D15;
static const unsigned char D16 = PIN_D16;
static const unsigned char D17 = PIN_D17;
static const unsigned char D18 = PIN_D18;
static const unsigned char D19 = PIN_D19;
static const unsigned char D20 = PIN_D20;
static const unsigned char D21 = PIN_D21;
static const unsigned char D22 = PIN_D22;
static const unsigned char D23 = PIN_D23;
static const unsigned char D24 = PIN_D24;
static const unsigned char D25 = PIN_D25;
static const unsigned char D26 = PIN_D26;
static const unsigned char D27 = PIN_D27;
static const unsigned char D28 = PIN_D28;
static const unsigned char D29 = PIN_D29;
static const unsigned char D30 = PIN_D30;
static const unsigned char D31 = PIN_D31;
static const unsigned char D32 = PIN_D32;
static const unsigned char D33 = PIN_D33;
static const unsigned char D34 = PIN_D34;
static const unsigned char D35 = PIN_D35;
static const unsigned char D36 = PIN_D36;
static const unsigned char D37 = PIN_D37;

View File

@@ -2,14 +2,12 @@
#include <Arduino.h>
extern "C" {
#ifdef LT_VARIANT_INCLUDE
#include LT_VARIANT_INCLUDE
#endif
// clang-format off
PinInfo pinTable[PINS_COUNT] = {
PinInfo lt_arduino_pin_info_list[PINS_COUNT] = {
// D0: PA00, PWM2
{PA_0, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
// D1: PA05, PWM4, WAKE1
@@ -47,6 +45,25 @@ PinInfo pinTable[PINS_COUNT] = {
// A1: ADC2
{AD_2, PIN_ADC, PIN_NONE, 0},
};
// clang-format on
} // extern "C"
PinInfo *lt_arduino_pin_gpio_map[] = {
[0] = &(lt_arduino_pin_info_list[0]), // PA_0 (D0)
[5] = &(lt_arduino_pin_info_list[1]), // PA_5 (D1)
[6] = &(lt_arduino_pin_info_list[2]), // PA_6 (D2)
[7] = &(lt_arduino_pin_info_list[3]), // PA_7 (D3)
[8] = &(lt_arduino_pin_info_list[4]), // PA_8 (D4)
[9] = &(lt_arduino_pin_info_list[5]), // PA_9 (D5)
[10] = &(lt_arduino_pin_info_list[6]), // PA_10 (D6)
[11] = &(lt_arduino_pin_info_list[7]), // PA_11 (D7)
[12] = &(lt_arduino_pin_info_list[8]), // PA_12 (D8)
[14] = &(lt_arduino_pin_info_list[9]), // PA_14 (D9)
[15] = &(lt_arduino_pin_info_list[10]), // PA_15 (D10)
[18] = &(lt_arduino_pin_info_list[11]), // PA_18 (D11)
[19] = &(lt_arduino_pin_info_list[12]), // PA_19 (D12)
[22] = &(lt_arduino_pin_info_list[13]), // PA_22 (D13)
[23] = &(lt_arduino_pin_info_list[14]), // PA_23 (D14)
[29] = &(lt_arduino_pin_info_list[15]), // PA_29 (D15)
[30] = &(lt_arduino_pin_info_list[16]), // PA_30 (D16)
[41] = &(lt_arduino_pin_info_list[17]), // AD_2 (A1)
};
// clang-format on

View File

@@ -6,97 +6,145 @@
// Pins
// ----
#define PINS_COUNT 18
#define NUM_DIGITAL_PINS 17
#define NUM_ANALOG_INPUTS 2
#define NUM_ANALOG_OUTPUTS 0
// Analog pins
// -----------
#define PIN_A0 12u // PA_19
#define PIN_A1 17u // AD_2
#define A0 PIN_A0
#define A1 PIN_A1
#define PINS_COUNT 18 // Total GPIO count
#define NUM_DIGITAL_PINS 17 // Digital inputs/outputs
#define NUM_ANALOG_INPUTS 2 // ADC inputs
#define NUM_ANALOG_OUTPUTS 9 // PWM & DAC outputs
#define PINS_GPIO_MAX 41 // Last usable GPIO number
// SPI Interfaces
// --------------
#define SPI_INTERFACES_COUNT 2
#define PIN_SPI0_CS 12u // PA_19
#define PIN_SPI0_MISO 13u // PA_22
#define PIN_SPI0_MOSI 14u // PA_23
#define PIN_SPI0_SCK 11u // PA_18
#define PIN_SPI1_CS 12u // PA_19
#define PIN_SPI1_MISO 13u // PA_22
#define PIN_SPI1_MOSI 14u // PA_23
#define PIN_SPI1_SCK 11u // PA_18
#define PIN_SPI0_CS 19u // PA_19
#define PIN_SPI0_MISO 22u // PA_22
#define PIN_SPI0_MOSI 23u // PA_23
#define PIN_SPI0_SCK 18u // PA_18
#define PIN_SPI1_CS 19u // PA_19
#define PIN_SPI1_MISO 22u // PA_22
#define PIN_SPI1_MOSI 23u // PA_23
#define PIN_SPI1_SCK 18u // PA_18
// Wire Interfaces
// ---------------
#define WIRE_INTERFACES_COUNT 2
#define PIN_WIRE0_SCL_0 13u // PA_22
#define PIN_WIRE0_SCL_1 15u // PA_29
#define PIN_WIRE0_SDA_0 12u // PA_19
#define PIN_WIRE0_SDA_1 16u // PA_30
#define PIN_WIRE1_SCL 11u // PA_18
#define PIN_WIRE1_SDA 14u // PA_23
#define PIN_WIRE0_SCL_0 22u // PA_22
#define PIN_WIRE0_SCL_1 29u // PA_29
#define PIN_WIRE0_SDA_0 19u // PA_19
#define PIN_WIRE0_SDA_1 30u // PA_30
#define PIN_WIRE1_SCL 18u // PA_18
#define PIN_WIRE1_SDA 23u // PA_23
// Serial ports
// ------------
#define SERIAL_INTERFACES_COUNT 2
#define PIN_SERIAL0_CTS 12u // PA_19
#define PIN_SERIAL0_RTS 13u // PA_22
#define PIN_SERIAL0_RX 11u // PA_18
#define PIN_SERIAL0_TX 14u // PA_23
#define PIN_SERIAL2_RX 15u // PA_29
#define PIN_SERIAL2_TX 16u // PA_30
#define PIN_SERIAL0_CTS 19u // PA_19
#define PIN_SERIAL0_RTS 22u // PA_22
#define PIN_SERIAL0_RX 18u // PA_18
#define PIN_SERIAL0_TX 23u // PA_23
#define PIN_SERIAL2_RX 29u // PA_29
#define PIN_SERIAL2_TX 30u // PA_30
// Pin function macros
// -------------------
#define PIN_ADC1 12u // PA_19
#define PIN_ADC2 17u // AD_2
#define PIN_CS0 12u // PA_19
#define PIN_CS1 12u // PA_19
#define PIN_CTS0 12u // PA_19
#define PIN_FCS 2u // PA_6
#define PIN_FD0 5u // PA_9
#define PIN_FD1 3u // PA_7
#define PIN_FD2 4u // PA_8
#define PIN_FD3 7u // PA_11
#define PIN_FSCK 6u // PA_10
#define PIN_MISO0 13u // PA_22
#define PIN_MISO1 13u // PA_22
#define PIN_MOSI0 14u // PA_23
#define PIN_MOSI1 14u // PA_23
#define PIN_ADC1 19u // PA_19
#define PIN_ADC2 41u // AD_2
#define PIN_CS0 19u // PA_19
#define PIN_CS1 19u // PA_19
#define PIN_CTS0 19u // PA_19
#define PIN_FCS 6u // PA_6
#define PIN_FD0 9u // PA_9
#define PIN_FD1 7u // PA_7
#define PIN_FD2 8u // PA_8
#define PIN_FD3 11u // PA_11
#define PIN_FSCK 10u // PA_10
#define PIN_MISO0 22u // PA_22
#define PIN_MISO1 22u // PA_22
#define PIN_MOSI0 23u // PA_23
#define PIN_MOSI1 23u // PA_23
#define PIN_PA00 0u // PA_0
#define PIN_PA05 1u // PA_5
#define PIN_PA06 2u // PA_6
#define PIN_PA07 3u // PA_7
#define PIN_PA08 4u // PA_8
#define PIN_PA09 5u // PA_9
#define PIN_PA10 6u // PA_10
#define PIN_PA11 7u // PA_11
#define PIN_PA12 8u // PA_12
#define PIN_PA14 9u // PA_14
#define PIN_PA15 10u // PA_15
#define PIN_PA18 11u // PA_18
#define PIN_PA19 12u // PA_19
#define PIN_PA22 13u // PA_22
#define PIN_PA23 14u // PA_23
#define PIN_PA29 15u // PA_29
#define PIN_PA30 16u // PA_30
#define PIN_RTS0 13u // PA_22
#define PIN_RX0 11u // PA_18
#define PIN_RX2 15u // PA_29
#define PIN_SCK0 11u // PA_18
#define PIN_SCK1 11u // PA_18
#define PIN_TX0 14u // PA_23
#define PIN_TX2 16u // PA_30
#define PIN_PA05 5u // PA_5
#define PIN_PA06 6u // PA_6
#define PIN_PA07 7u // PA_7
#define PIN_PA08 8u // PA_8
#define PIN_PA09 9u // PA_9
#define PIN_PA10 10u // PA_10
#define PIN_PA11 11u // PA_11
#define PIN_PA12 12u // PA_12
#define PIN_PA14 14u // PA_14
#define PIN_PA15 15u // PA_15
#define PIN_PA18 18u // PA_18
#define PIN_PA19 19u // PA_19
#define PIN_PA22 22u // PA_22
#define PIN_PA23 23u // PA_23
#define PIN_PA29 29u // PA_29
#define PIN_PA30 30u // PA_30
#define PIN_PWM0 23u // PA_23
#define PIN_PWM1 15u // PA_15
#define PIN_PWM2 0u // PA_0
#define PIN_PWM3 12u // PA_12
#define PIN_PWM4 30u // PA_30
#define PIN_PWM5 22u // PA_22
#define PIN_RTS0 22u // PA_22
#define PIN_RX0 18u // PA_18
#define PIN_RX2 29u // PA_29
#define PIN_SCK0 18u // PA_18
#define PIN_SCK1 18u // PA_18
#define PIN_SCL0 29u // PA_29
#define PIN_SCL1 18u // PA_18
#define PIN_SDA0 30u // PA_30
#define PIN_SDA1 23u // PA_23
#define PIN_TX0 23u // PA_23
#define PIN_TX2 30u // PA_30
// Port availability
// -----------------
#define HAS_SERIAL0 1
#define HAS_SERIAL2 1
#define HAS_SPI0 1
#define HAS_SPI1 1
#define HAS_WIRE0 1
#define HAS_WIRE1 1
#define HAS_SERIAL0 1
#define HAS_SERIAL2 1
#define HAS_SPI0 1
#define HAS_SPI1 1
#define HAS_WIRE0 1
#define HAS_WIRE1 1
#define SERIAL_INTERFACES_COUNT 2
#define SPI_INTERFACES_COUNT 2
#define WIRE_INTERFACES_COUNT 2
// Arduino pin names
// -----------------
#define PIN_D0 0u // PA_0
#define PIN_D1 5u // PA_5
#define PIN_D2 6u // PA_6
#define PIN_D3 7u // PA_7
#define PIN_D4 8u // PA_8
#define PIN_D5 9u // PA_9
#define PIN_D6 10u // PA_10
#define PIN_D7 11u // PA_11
#define PIN_D8 12u // PA_12
#define PIN_D9 14u // PA_14
#define PIN_D10 15u // PA_15
#define PIN_D11 18u // PA_18
#define PIN_D12 19u // PA_19
#define PIN_D13 22u // PA_22
#define PIN_D14 23u // PA_23
#define PIN_D15 29u // PA_29
#define PIN_D16 30u // PA_30
#define PIN_A0 19u // PA_19
#define PIN_A1 41u // AD_2
// Static pin names
// ----------------
static const unsigned char A0 = PIN_A0;
static const unsigned char A1 = PIN_A1;
static const unsigned char D0 = PIN_D0;
static const unsigned char D1 = PIN_D1;
static const unsigned char D2 = PIN_D2;
static const unsigned char D3 = PIN_D3;
static const unsigned char D4 = PIN_D4;
static const unsigned char D5 = PIN_D5;
static const unsigned char D6 = PIN_D6;
static const unsigned char D7 = PIN_D7;
static const unsigned char D8 = PIN_D8;
static const unsigned char D9 = PIN_D9;
static const unsigned char D10 = PIN_D10;
static const unsigned char D11 = PIN_D11;
static const unsigned char D12 = PIN_D12;
static const unsigned char D13 = PIN_D13;
static const unsigned char D14 = PIN_D14;
static const unsigned char D15 = PIN_D15;
static const unsigned char D16 = PIN_D16;

View File

@@ -2,14 +2,12 @@
#include <Arduino.h>
extern "C" {
#ifdef LT_VARIANT_INCLUDE
#include LT_VARIANT_INCLUDE
#endif
// clang-format off
PinInfo pinTable[PINS_COUNT] = {
PinInfo lt_arduino_pin_info_list[PINS_COUNT] = {
// D0: PA00, PWM2
{PA_0, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
// D1: PA05, PWM4, WAKE1
@@ -47,6 +45,25 @@ PinInfo pinTable[PINS_COUNT] = {
// A1: ADC2
{AD_2, PIN_ADC, PIN_NONE, 0},
};
// clang-format on
} // extern "C"
PinInfo *lt_arduino_pin_gpio_map[] = {
[0] = &(lt_arduino_pin_info_list[0]), // PA_0 (D0)
[5] = &(lt_arduino_pin_info_list[1]), // PA_5 (D1)
[6] = &(lt_arduino_pin_info_list[2]), // PA_6 (D2)
[7] = &(lt_arduino_pin_info_list[3]), // PA_7 (D3)
[8] = &(lt_arduino_pin_info_list[4]), // PA_8 (D4)
[9] = &(lt_arduino_pin_info_list[5]), // PA_9 (D5)
[10] = &(lt_arduino_pin_info_list[6]), // PA_10 (D6)
[11] = &(lt_arduino_pin_info_list[7]), // PA_11 (D7)
[12] = &(lt_arduino_pin_info_list[8]), // PA_12 (D8)
[14] = &(lt_arduino_pin_info_list[9]), // PA_14 (D9)
[15] = &(lt_arduino_pin_info_list[10]), // PA_15 (D10)
[18] = &(lt_arduino_pin_info_list[11]), // PA_18 (D11)
[19] = &(lt_arduino_pin_info_list[12]), // PA_19 (D12)
[22] = &(lt_arduino_pin_info_list[13]), // PA_22 (D13)
[23] = &(lt_arduino_pin_info_list[14]), // PA_23 (D14)
[29] = &(lt_arduino_pin_info_list[15]), // PA_29 (D15)
[30] = &(lt_arduino_pin_info_list[16]), // PA_30 (D16)
[41] = &(lt_arduino_pin_info_list[17]), // AD_2 (A1)
};
// clang-format on

View File

@@ -6,97 +6,145 @@
// Pins
// ----
#define PINS_COUNT 18
#define NUM_DIGITAL_PINS 17
#define NUM_ANALOG_INPUTS 2
#define NUM_ANALOG_OUTPUTS 0
// Analog pins
// -----------
#define PIN_A0 12u // PA_19
#define PIN_A1 17u // AD_2
#define A0 PIN_A0
#define A1 PIN_A1
#define PINS_COUNT 18 // Total GPIO count
#define NUM_DIGITAL_PINS 17 // Digital inputs/outputs
#define NUM_ANALOG_INPUTS 2 // ADC inputs
#define NUM_ANALOG_OUTPUTS 9 // PWM & DAC outputs
#define PINS_GPIO_MAX 41 // Last usable GPIO number
// SPI Interfaces
// --------------
#define SPI_INTERFACES_COUNT 2
#define PIN_SPI0_CS 12u // PA_19
#define PIN_SPI0_MISO 13u // PA_22
#define PIN_SPI0_MOSI 14u // PA_23
#define PIN_SPI0_SCK 11u // PA_18
#define PIN_SPI1_CS 12u // PA_19
#define PIN_SPI1_MISO 13u // PA_22
#define PIN_SPI1_MOSI 14u // PA_23
#define PIN_SPI1_SCK 11u // PA_18
#define PIN_SPI0_CS 19u // PA_19
#define PIN_SPI0_MISO 22u // PA_22
#define PIN_SPI0_MOSI 23u // PA_23
#define PIN_SPI0_SCK 18u // PA_18
#define PIN_SPI1_CS 19u // PA_19
#define PIN_SPI1_MISO 22u // PA_22
#define PIN_SPI1_MOSI 23u // PA_23
#define PIN_SPI1_SCK 18u // PA_18
// Wire Interfaces
// ---------------
#define WIRE_INTERFACES_COUNT 2
#define PIN_WIRE0_SCL_0 13u // PA_22
#define PIN_WIRE0_SCL_1 15u // PA_29
#define PIN_WIRE0_SDA_0 12u // PA_19
#define PIN_WIRE0_SDA_1 16u // PA_30
#define PIN_WIRE1_SCL 11u // PA_18
#define PIN_WIRE1_SDA 14u // PA_23
#define PIN_WIRE0_SCL_0 22u // PA_22
#define PIN_WIRE0_SCL_1 29u // PA_29
#define PIN_WIRE0_SDA_0 19u // PA_19
#define PIN_WIRE0_SDA_1 30u // PA_30
#define PIN_WIRE1_SCL 18u // PA_18
#define PIN_WIRE1_SDA 23u // PA_23
// Serial ports
// ------------
#define SERIAL_INTERFACES_COUNT 2
#define PIN_SERIAL0_CTS 12u // PA_19
#define PIN_SERIAL0_RTS 13u // PA_22
#define PIN_SERIAL0_RX 11u // PA_18
#define PIN_SERIAL0_TX 14u // PA_23
#define PIN_SERIAL2_RX 15u // PA_29
#define PIN_SERIAL2_TX 16u // PA_30
#define PIN_SERIAL0_CTS 19u // PA_19
#define PIN_SERIAL0_RTS 22u // PA_22
#define PIN_SERIAL0_RX 18u // PA_18
#define PIN_SERIAL0_TX 23u // PA_23
#define PIN_SERIAL2_RX 29u // PA_29
#define PIN_SERIAL2_TX 30u // PA_30
// Pin function macros
// -------------------
#define PIN_ADC1 12u // PA_19
#define PIN_ADC2 17u // AD_2
#define PIN_CS0 12u // PA_19
#define PIN_CS1 12u // PA_19
#define PIN_CTS0 12u // PA_19
#define PIN_FCS 2u // PA_6
#define PIN_FD0 5u // PA_9
#define PIN_FD1 3u // PA_7
#define PIN_FD2 4u // PA_8
#define PIN_FD3 7u // PA_11
#define PIN_FSCK 6u // PA_10
#define PIN_MISO0 13u // PA_22
#define PIN_MISO1 13u // PA_22
#define PIN_MOSI0 14u // PA_23
#define PIN_MOSI1 14u // PA_23
#define PIN_ADC1 19u // PA_19
#define PIN_ADC2 41u // AD_2
#define PIN_CS0 19u // PA_19
#define PIN_CS1 19u // PA_19
#define PIN_CTS0 19u // PA_19
#define PIN_FCS 6u // PA_6
#define PIN_FD0 9u // PA_9
#define PIN_FD1 7u // PA_7
#define PIN_FD2 8u // PA_8
#define PIN_FD3 11u // PA_11
#define PIN_FSCK 10u // PA_10
#define PIN_MISO0 22u // PA_22
#define PIN_MISO1 22u // PA_22
#define PIN_MOSI0 23u // PA_23
#define PIN_MOSI1 23u // PA_23
#define PIN_PA00 0u // PA_0
#define PIN_PA05 1u // PA_5
#define PIN_PA06 2u // PA_6
#define PIN_PA07 3u // PA_7
#define PIN_PA08 4u // PA_8
#define PIN_PA09 5u // PA_9
#define PIN_PA10 6u // PA_10
#define PIN_PA11 7u // PA_11
#define PIN_PA12 8u // PA_12
#define PIN_PA14 9u // PA_14
#define PIN_PA15 10u // PA_15
#define PIN_PA18 11u // PA_18
#define PIN_PA19 12u // PA_19
#define PIN_PA22 13u // PA_22
#define PIN_PA23 14u // PA_23
#define PIN_PA29 15u // PA_29
#define PIN_PA30 16u // PA_30
#define PIN_RTS0 13u // PA_22
#define PIN_RX0 11u // PA_18
#define PIN_RX2 15u // PA_29
#define PIN_SCK0 11u // PA_18
#define PIN_SCK1 11u // PA_18
#define PIN_TX0 14u // PA_23
#define PIN_TX2 16u // PA_30
#define PIN_PA05 5u // PA_5
#define PIN_PA06 6u // PA_6
#define PIN_PA07 7u // PA_7
#define PIN_PA08 8u // PA_8
#define PIN_PA09 9u // PA_9
#define PIN_PA10 10u // PA_10
#define PIN_PA11 11u // PA_11
#define PIN_PA12 12u // PA_12
#define PIN_PA14 14u // PA_14
#define PIN_PA15 15u // PA_15
#define PIN_PA18 18u // PA_18
#define PIN_PA19 19u // PA_19
#define PIN_PA22 22u // PA_22
#define PIN_PA23 23u // PA_23
#define PIN_PA29 29u // PA_29
#define PIN_PA30 30u // PA_30
#define PIN_PWM0 23u // PA_23
#define PIN_PWM1 15u // PA_15
#define PIN_PWM2 0u // PA_0
#define PIN_PWM3 12u // PA_12
#define PIN_PWM4 30u // PA_30
#define PIN_PWM5 22u // PA_22
#define PIN_RTS0 22u // PA_22
#define PIN_RX0 18u // PA_18
#define PIN_RX2 29u // PA_29
#define PIN_SCK0 18u // PA_18
#define PIN_SCK1 18u // PA_18
#define PIN_SCL0 29u // PA_29
#define PIN_SCL1 18u // PA_18
#define PIN_SDA0 30u // PA_30
#define PIN_SDA1 23u // PA_23
#define PIN_TX0 23u // PA_23
#define PIN_TX2 30u // PA_30
// Port availability
// -----------------
#define HAS_SERIAL0 1
#define HAS_SERIAL2 1
#define HAS_SPI0 1
#define HAS_SPI1 1
#define HAS_WIRE0 1
#define HAS_WIRE1 1
#define HAS_SERIAL0 1
#define HAS_SERIAL2 1
#define HAS_SPI0 1
#define HAS_SPI1 1
#define HAS_WIRE0 1
#define HAS_WIRE1 1
#define SERIAL_INTERFACES_COUNT 2
#define SPI_INTERFACES_COUNT 2
#define WIRE_INTERFACES_COUNT 2
// Arduino pin names
// -----------------
#define PIN_D0 0u // PA_0
#define PIN_D1 5u // PA_5
#define PIN_D2 6u // PA_6
#define PIN_D3 7u // PA_7
#define PIN_D4 8u // PA_8
#define PIN_D5 9u // PA_9
#define PIN_D6 10u // PA_10
#define PIN_D7 11u // PA_11
#define PIN_D8 12u // PA_12
#define PIN_D9 14u // PA_14
#define PIN_D10 15u // PA_15
#define PIN_D11 18u // PA_18
#define PIN_D12 19u // PA_19
#define PIN_D13 22u // PA_22
#define PIN_D14 23u // PA_23
#define PIN_D15 29u // PA_29
#define PIN_D16 30u // PA_30
#define PIN_A0 19u // PA_19
#define PIN_A1 41u // AD_2
// Static pin names
// ----------------
static const unsigned char A0 = PIN_A0;
static const unsigned char A1 = PIN_A1;
static const unsigned char D0 = PIN_D0;
static const unsigned char D1 = PIN_D1;
static const unsigned char D2 = PIN_D2;
static const unsigned char D3 = PIN_D3;
static const unsigned char D4 = PIN_D4;
static const unsigned char D5 = PIN_D5;
static const unsigned char D6 = PIN_D6;
static const unsigned char D7 = PIN_D7;
static const unsigned char D8 = PIN_D8;
static const unsigned char D9 = PIN_D9;
static const unsigned char D10 = PIN_D10;
static const unsigned char D11 = PIN_D11;
static const unsigned char D12 = PIN_D12;
static const unsigned char D13 = PIN_D13;
static const unsigned char D14 = PIN_D14;
static const unsigned char D15 = PIN_D15;
static const unsigned char D16 = PIN_D16;

View File

@@ -2,14 +2,12 @@
#include <Arduino.h>
extern "C" {
#ifdef LT_VARIANT_INCLUDE
#include LT_VARIANT_INCLUDE
#endif
// clang-format off
PinInfo pinTable[PINS_COUNT] = {
PinInfo lt_arduino_pin_info_list[PINS_COUNT] = {
// D0: PA00, PWM2
{PA_0, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
// D1: PA05, PWM4, WAKE1
@@ -45,6 +43,24 @@ PinInfo pinTable[PINS_COUNT] = {
// D16: PA30, UART2_TX, I2C0_SDA, PWM4
{PA_30, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_I2C | PIN_UART, PIN_NONE, 0},
};
// clang-format on
} // extern "C"
PinInfo *lt_arduino_pin_gpio_map[] = {
[0] = &(lt_arduino_pin_info_list[0]), // PA_0 (D0)
[5] = &(lt_arduino_pin_info_list[1]), // PA_5 (D1)
[6] = &(lt_arduino_pin_info_list[2]), // PA_6 (D2)
[7] = &(lt_arduino_pin_info_list[3]), // PA_7 (D3)
[8] = &(lt_arduino_pin_info_list[4]), // PA_8 (D4)
[9] = &(lt_arduino_pin_info_list[5]), // PA_9 (D5)
[10] = &(lt_arduino_pin_info_list[6]), // PA_10 (D6)
[11] = &(lt_arduino_pin_info_list[7]), // PA_11 (D7)
[12] = &(lt_arduino_pin_info_list[8]), // PA_12 (D8)
[14] = &(lt_arduino_pin_info_list[9]), // PA_14 (D9)
[15] = &(lt_arduino_pin_info_list[10]), // PA_15 (D10)
[18] = &(lt_arduino_pin_info_list[11]), // PA_18 (D11)
[19] = &(lt_arduino_pin_info_list[12]), // PA_19 (D12)
[22] = &(lt_arduino_pin_info_list[13]), // PA_22 (D13)
[23] = &(lt_arduino_pin_info_list[14]), // PA_23 (D14)
[29] = &(lt_arduino_pin_info_list[15]), // PA_29 (D15)
[30] = &(lt_arduino_pin_info_list[16]), // PA_30 (D16)
};
// clang-format on

View File

@@ -6,94 +6,142 @@
// Pins
// ----
#define PINS_COUNT 17
#define NUM_DIGITAL_PINS 17
#define NUM_ANALOG_INPUTS 1
#define NUM_ANALOG_OUTPUTS 0
// Analog pins
// -----------
#define PIN_A0 12u // PA_19
#define A0 PIN_A0
#define PINS_COUNT 17 // Total GPIO count
#define NUM_DIGITAL_PINS 17 // Digital inputs/outputs
#define NUM_ANALOG_INPUTS 1 // ADC inputs
#define NUM_ANALOG_OUTPUTS 9 // PWM & DAC outputs
#define PINS_GPIO_MAX 30 // Last usable GPIO number
// SPI Interfaces
// --------------
#define SPI_INTERFACES_COUNT 2
#define PIN_SPI0_CS 12u // PA_19
#define PIN_SPI0_MISO 13u // PA_22
#define PIN_SPI0_MOSI 14u // PA_23
#define PIN_SPI0_SCK 11u // PA_18
#define PIN_SPI1_CS 12u // PA_19
#define PIN_SPI1_MISO 13u // PA_22
#define PIN_SPI1_MOSI 14u // PA_23
#define PIN_SPI1_SCK 11u // PA_18
#define PIN_SPI0_CS 19u // PA_19
#define PIN_SPI0_MISO 22u // PA_22
#define PIN_SPI0_MOSI 23u // PA_23
#define PIN_SPI0_SCK 18u // PA_18
#define PIN_SPI1_CS 19u // PA_19
#define PIN_SPI1_MISO 22u // PA_22
#define PIN_SPI1_MOSI 23u // PA_23
#define PIN_SPI1_SCK 18u // PA_18
// Wire Interfaces
// ---------------
#define WIRE_INTERFACES_COUNT 2
#define PIN_WIRE0_SCL_0 13u // PA_22
#define PIN_WIRE0_SCL_1 15u // PA_29
#define PIN_WIRE0_SDA_0 12u // PA_19
#define PIN_WIRE0_SDA_1 16u // PA_30
#define PIN_WIRE1_SCL 11u // PA_18
#define PIN_WIRE1_SDA 14u // PA_23
#define PIN_WIRE0_SCL_0 22u // PA_22
#define PIN_WIRE0_SCL_1 29u // PA_29
#define PIN_WIRE0_SDA_0 19u // PA_19
#define PIN_WIRE0_SDA_1 30u // PA_30
#define PIN_WIRE1_SCL 18u // PA_18
#define PIN_WIRE1_SDA 23u // PA_23
// Serial ports
// ------------
#define SERIAL_INTERFACES_COUNT 2
#define PIN_SERIAL0_CTS 12u // PA_19
#define PIN_SERIAL0_RTS 13u // PA_22
#define PIN_SERIAL0_RX 11u // PA_18
#define PIN_SERIAL0_TX 14u // PA_23
#define PIN_SERIAL2_RX 15u // PA_29
#define PIN_SERIAL2_TX 16u // PA_30
#define PIN_SERIAL0_CTS 19u // PA_19
#define PIN_SERIAL0_RTS 22u // PA_22
#define PIN_SERIAL0_RX 18u // PA_18
#define PIN_SERIAL0_TX 23u // PA_23
#define PIN_SERIAL2_RX 29u // PA_29
#define PIN_SERIAL2_TX 30u // PA_30
// Pin function macros
// -------------------
#define PIN_ADC1 12u // PA_19
#define PIN_CS0 12u // PA_19
#define PIN_CS1 12u // PA_19
#define PIN_CTS0 12u // PA_19
#define PIN_FCS 2u // PA_6
#define PIN_FD0 5u // PA_9
#define PIN_FD1 3u // PA_7
#define PIN_FD2 4u // PA_8
#define PIN_FD3 7u // PA_11
#define PIN_FSCK 6u // PA_10
#define PIN_MISO0 13u // PA_22
#define PIN_MISO1 13u // PA_22
#define PIN_MOSI0 14u // PA_23
#define PIN_MOSI1 14u // PA_23
#define PIN_ADC1 19u // PA_19
#define PIN_CS0 19u // PA_19
#define PIN_CS1 19u // PA_19
#define PIN_CTS0 19u // PA_19
#define PIN_FCS 6u // PA_6
#define PIN_FD0 9u // PA_9
#define PIN_FD1 7u // PA_7
#define PIN_FD2 8u // PA_8
#define PIN_FD3 11u // PA_11
#define PIN_FSCK 10u // PA_10
#define PIN_MISO0 22u // PA_22
#define PIN_MISO1 22u // PA_22
#define PIN_MOSI0 23u // PA_23
#define PIN_MOSI1 23u // PA_23
#define PIN_PA00 0u // PA_0
#define PIN_PA05 1u // PA_5
#define PIN_PA06 2u // PA_6
#define PIN_PA07 3u // PA_7
#define PIN_PA08 4u // PA_8
#define PIN_PA09 5u // PA_9
#define PIN_PA10 6u // PA_10
#define PIN_PA11 7u // PA_11
#define PIN_PA12 8u // PA_12
#define PIN_PA14 9u // PA_14
#define PIN_PA15 10u // PA_15
#define PIN_PA18 11u // PA_18
#define PIN_PA19 12u // PA_19
#define PIN_PA22 13u // PA_22
#define PIN_PA23 14u // PA_23
#define PIN_PA29 15u // PA_29
#define PIN_PA30 16u // PA_30
#define PIN_RTS0 13u // PA_22
#define PIN_RX0 11u // PA_18
#define PIN_RX2 15u // PA_29
#define PIN_SCK0 11u // PA_18
#define PIN_SCK1 11u // PA_18
#define PIN_TX0 14u // PA_23
#define PIN_TX2 16u // PA_30
#define PIN_PA05 5u // PA_5
#define PIN_PA06 6u // PA_6
#define PIN_PA07 7u // PA_7
#define PIN_PA08 8u // PA_8
#define PIN_PA09 9u // PA_9
#define PIN_PA10 10u // PA_10
#define PIN_PA11 11u // PA_11
#define PIN_PA12 12u // PA_12
#define PIN_PA14 14u // PA_14
#define PIN_PA15 15u // PA_15
#define PIN_PA18 18u // PA_18
#define PIN_PA19 19u // PA_19
#define PIN_PA22 22u // PA_22
#define PIN_PA23 23u // PA_23
#define PIN_PA29 29u // PA_29
#define PIN_PA30 30u // PA_30
#define PIN_PWM0 23u // PA_23
#define PIN_PWM1 15u // PA_15
#define PIN_PWM2 0u // PA_0
#define PIN_PWM3 12u // PA_12
#define PIN_PWM4 30u // PA_30
#define PIN_PWM5 22u // PA_22
#define PIN_RTS0 22u // PA_22
#define PIN_RX0 18u // PA_18
#define PIN_RX2 29u // PA_29
#define PIN_SCK0 18u // PA_18
#define PIN_SCK1 18u // PA_18
#define PIN_SCL0 29u // PA_29
#define PIN_SCL1 18u // PA_18
#define PIN_SDA0 30u // PA_30
#define PIN_SDA1 23u // PA_23
#define PIN_TX0 23u // PA_23
#define PIN_TX2 30u // PA_30
// Port availability
// -----------------
#define HAS_SERIAL0 1
#define HAS_SERIAL2 1
#define HAS_SPI0 1
#define HAS_SPI1 1
#define HAS_WIRE0 1
#define HAS_WIRE1 1
#define HAS_SERIAL0 1
#define HAS_SERIAL2 1
#define HAS_SPI0 1
#define HAS_SPI1 1
#define HAS_WIRE0 1
#define HAS_WIRE1 1
#define SERIAL_INTERFACES_COUNT 2
#define SPI_INTERFACES_COUNT 2
#define WIRE_INTERFACES_COUNT 2
// Arduino pin names
// -----------------
#define PIN_D0 0u // PA_0
#define PIN_D1 5u // PA_5
#define PIN_D2 6u // PA_6
#define PIN_D3 7u // PA_7
#define PIN_D4 8u // PA_8
#define PIN_D5 9u // PA_9
#define PIN_D6 10u // PA_10
#define PIN_D7 11u // PA_11
#define PIN_D8 12u // PA_12
#define PIN_D9 14u // PA_14
#define PIN_D10 15u // PA_15
#define PIN_D11 18u // PA_18
#define PIN_D12 19u // PA_19
#define PIN_D13 22u // PA_22
#define PIN_D14 23u // PA_23
#define PIN_D15 29u // PA_29
#define PIN_D16 30u // PA_30
#define PIN_A0 19u // PA_19
// Static pin names
// ----------------
static const unsigned char A0 = PIN_A0;
static const unsigned char D0 = PIN_D0;
static const unsigned char D1 = PIN_D1;
static const unsigned char D2 = PIN_D2;
static const unsigned char D3 = PIN_D3;
static const unsigned char D4 = PIN_D4;
static const unsigned char D5 = PIN_D5;
static const unsigned char D6 = PIN_D6;
static const unsigned char D7 = PIN_D7;
static const unsigned char D8 = PIN_D8;
static const unsigned char D9 = PIN_D9;
static const unsigned char D10 = PIN_D10;
static const unsigned char D11 = PIN_D11;
static const unsigned char D12 = PIN_D12;
static const unsigned char D13 = PIN_D13;
static const unsigned char D14 = PIN_D14;
static const unsigned char D15 = PIN_D15;
static const unsigned char D16 = PIN_D16;

View File

@@ -2,14 +2,12 @@
#include <Arduino.h>
extern "C" {
#ifdef LT_VARIANT_INCLUDE
#include LT_VARIANT_INCLUDE
#endif
// clang-format off
PinInfo pinTable[PINS_COUNT] = {
PinInfo lt_arduino_pin_info_list[PINS_COUNT] = {
// D0: PA00, TCK, UART1_RX, PWM0, SWCLK
{PIN_A0, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_JTAG | PIN_SWD | PIN_UART, PIN_NONE, 0},
// D1: PA01, TMS, UART1_TX, PWM1, SWDIO
@@ -51,6 +49,27 @@ PinInfo pinTable[PINS_COUNT] = {
// D19: PA23, PWM7
{PIN_A23, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
};
// clang-format on
} // extern "C"
PinInfo *lt_arduino_pin_gpio_map[] = {
[0] = &(lt_arduino_pin_info_list[0]), // PIN_A0 (D0)
[1] = &(lt_arduino_pin_info_list[1]), // PIN_A1 (D1)
[2] = &(lt_arduino_pin_info_list[2]), // PIN_A2 (D2)
[3] = &(lt_arduino_pin_info_list[3]), // PIN_A3 (D3)
[4] = &(lt_arduino_pin_info_list[4]), // PIN_A4 (D4)
[7] = &(lt_arduino_pin_info_list[5]), // PIN_A7 (D5)
[8] = &(lt_arduino_pin_info_list[6]), // PIN_A8 (D6)
[9] = &(lt_arduino_pin_info_list[7]), // PIN_A9 (D7)
[10] = &(lt_arduino_pin_info_list[8]), // PIN_A10 (D8)
[11] = &(lt_arduino_pin_info_list[9]), // PIN_A11 (D9)
[12] = &(lt_arduino_pin_info_list[10]), // PIN_A12 (D10)
[13] = &(lt_arduino_pin_info_list[11]), // PIN_A13 (D11)
[14] = &(lt_arduino_pin_info_list[12]), // PIN_A14 (D12)
[15] = &(lt_arduino_pin_info_list[13]), // PIN_A15 (D13)
[16] = &(lt_arduino_pin_info_list[14]), // PIN_A16 (D14)
[17] = &(lt_arduino_pin_info_list[15]), // PIN_A17 (D15)
[18] = &(lt_arduino_pin_info_list[16]), // PIN_A18 (D16)
[19] = &(lt_arduino_pin_info_list[17]), // PIN_A19 (D17)
[20] = &(lt_arduino_pin_info_list[18]), // PIN_A20 (D18)
[23] = &(lt_arduino_pin_info_list[19]), // PIN_A23 (D19)
};
// clang-format on

View File

@@ -6,88 +6,156 @@
// Pins
// ----
#define PINS_COUNT 20
#define NUM_DIGITAL_PINS 20
#define NUM_ANALOG_OUTPUTS 0
#define PINS_COUNT 20 // Total GPIO count
#define NUM_DIGITAL_PINS 20 // Digital inputs/outputs
#define NUM_ANALOG_INPUTS 0 // ADC inputs
#define NUM_ANALOG_OUTPUTS 16 // PWM & DAC outputs
#define PINS_GPIO_MAX 23 // Last usable GPIO number
// SPI Interfaces
// --------------
#define SPI_INTERFACES_COUNT 1
#define PIN_SPI0_CS_0 2u // PIN_A2
#define PIN_SPI0_CS_1 5u // PIN_A7
#define PIN_SPI0_CS_2 13u // PIN_A15
#define PIN_SPI0_MISO_0 8u // PIN_A10
#define PIN_SPI0_MISO_1 18u // PIN_A20
#define PIN_SPI0_MOSI_0 4u // PIN_A4
#define PIN_SPI0_MOSI_1 7u // PIN_A9
#define PIN_SPI0_MOSI_2 17u // PIN_A19
#define PIN_SPI0_SCK_0 3u // PIN_A3
#define PIN_SPI0_SCK_1 6u // PIN_A8
#define PIN_SPI0_SCK_2 14u // PIN_A16
#define PIN_SPI0_CS_0 2u // PIN_A2
#define PIN_SPI0_CS_1 7u // PIN_A7
#define PIN_SPI0_CS_2 15u // PIN_A15
#define PIN_SPI0_MISO_0 10u // PIN_A10
#define PIN_SPI0_MISO_1 20u // PIN_A20
#define PIN_SPI0_MOSI_0 4u // PIN_A4
#define PIN_SPI0_MOSI_1 9u // PIN_A9
#define PIN_SPI0_MOSI_2 19u // PIN_A19
#define PIN_SPI0_SCK_0 3u // PIN_A3
#define PIN_SPI0_SCK_1 8u // PIN_A8
#define PIN_SPI0_SCK_2 16u // PIN_A16
// Wire Interfaces
// ---------------
#define WIRE_INTERFACES_COUNT 1
#define PIN_WIRE0_SCL_0 2u // PIN_A2
#define PIN_WIRE0_SCL_1 9u // PIN_A11
#define PIN_WIRE0_SCL_2 13u // PIN_A15
#define PIN_WIRE0_SCL_3 17u // PIN_A19
#define PIN_WIRE0_SDA_0 3u // PIN_A3
#define PIN_WIRE0_SDA_1 10u // PIN_A12
#define PIN_WIRE0_SDA_2 14u // PIN_A16
#define PIN_WIRE0_SDA_3 18u // PIN_A20
#define PIN_WIRE0_SCL_0 2u // PIN_A2
#define PIN_WIRE0_SCL_1 11u // PIN_A11
#define PIN_WIRE0_SCL_2 15u // PIN_A15
#define PIN_WIRE0_SCL_3 19u // PIN_A19
#define PIN_WIRE0_SDA_0 3u // PIN_A3
#define PIN_WIRE0_SDA_1 12u // PIN_A12
#define PIN_WIRE0_SDA_2 16u // PIN_A16
#define PIN_WIRE0_SDA_3 20u // PIN_A20
// Serial ports
// ------------
#define SERIAL_INTERFACES_COUNT 3
#define PIN_SERIAL0_CTS 8u // PIN_A10
#define PIN_SERIAL0_RTS 7u // PIN_A9
#define PIN_SERIAL0_RX_0 10u // PIN_A12
#define PIN_SERIAL0_RX_1 11u // PIN_A13
#define PIN_SERIAL0_TX_0 9u // PIN_A11
#define PIN_SERIAL0_TX_1 12u // PIN_A14
#define PIN_SERIAL1_CTS 4u // PIN_A4
#define PIN_SERIAL1_RX_0 0u // PIN_A0
#define PIN_SERIAL1_RX_1 2u // PIN_A2
#define PIN_SERIAL1_TX_0 1u // PIN_A1
#define PIN_SERIAL1_TX_1 3u // PIN_A3
#define PIN_SERIAL2_CTS 17u // PIN_A19
#define PIN_SERIAL2_RTS 18u // PIN_A20
#define PIN_SERIAL2_RX 13u // PIN_A15
#define PIN_SERIAL2_TX 14u // PIN_A16
#define PIN_SERIAL0_CTS 10u // PIN_A10
#define PIN_SERIAL0_RTS 9u // PIN_A9
#define PIN_SERIAL0_RX_0 12u // PIN_A12
#define PIN_SERIAL0_RX_1 13u // PIN_A13
#define PIN_SERIAL0_TX_0 11u // PIN_A11
#define PIN_SERIAL0_TX_1 14u // PIN_A14
#define PIN_SERIAL1_CTS 4u // PIN_A4
#define PIN_SERIAL1_RX_0 0u // PIN_A0
#define PIN_SERIAL1_RX_1 2u // PIN_A2
#define PIN_SERIAL1_TX_0 1u // PIN_A1
#define PIN_SERIAL1_TX_1 3u // PIN_A3
#define PIN_SERIAL2_CTS 19u // PIN_A19
#define PIN_SERIAL2_RTS 20u // PIN_A20
#define PIN_SERIAL2_RX 15u // PIN_A15
#define PIN_SERIAL2_TX 16u // PIN_A16
// Pin function macros
// -------------------
#define PIN_CTS0 8u // PIN_A10
#define PIN_CTS1 4u // PIN_A4
#define PIN_CTS2 17u // PIN_A19
#define PIN_PA00 0u // PIN_A0
#define PIN_PA01 1u // PIN_A1
#define PIN_PA02 2u // PIN_A2
#define PIN_PA03 3u // PIN_A3
#define PIN_PA04 4u // PIN_A4
#define PIN_PA07 5u // PIN_A7
#define PIN_PA08 6u // PIN_A8
#define PIN_PA09 7u // PIN_A9
#define PIN_PA10 8u // PIN_A10
#define PIN_PA11 9u // PIN_A11
#define PIN_PA12 10u // PIN_A12
#define PIN_PA13 11u // PIN_A13
#define PIN_PA14 12u // PIN_A14
#define PIN_PA15 13u // PIN_A15
#define PIN_PA16 14u // PIN_A16
#define PIN_PA17 15u // PIN_A17
#define PIN_PA18 16u // PIN_A18
#define PIN_PA19 17u // PIN_A19
#define PIN_PA20 18u // PIN_A20
#define PIN_PA23 19u // PIN_A23
#define PIN_RTS0 7u // PIN_A9
#define PIN_RTS2 18u // PIN_A20
#define PIN_CS0 15u // PIN_A15
#define PIN_CTS0 10u // PIN_A10
#define PIN_CTS1 4u // PIN_A4
#define PIN_CTS2 19u // PIN_A19
#define PIN_MISO0 20u // PIN_A20
#define PIN_MOSI0 19u // PIN_A19
#define PIN_PA00 0u // PIN_A0
#define PIN_PA01 1u // PIN_A1
#define PIN_PA02 2u // PIN_A2
#define PIN_PA03 3u // PIN_A3
#define PIN_PA04 4u // PIN_A4
#define PIN_PA07 7u // PIN_A7
#define PIN_PA08 8u // PIN_A8
#define PIN_PA09 9u // PIN_A9
#define PIN_PA10 10u // PIN_A10
#define PIN_PA11 11u // PIN_A11
#define PIN_PA12 12u // PIN_A12
#define PIN_PA13 13u // PIN_A13
#define PIN_PA14 14u // PIN_A14
#define PIN_PA15 15u // PIN_A15
#define PIN_PA16 16u // PIN_A16
#define PIN_PA17 17u // PIN_A17
#define PIN_PA18 18u // PIN_A18
#define PIN_PA19 19u // PIN_A19
#define PIN_PA20 20u // PIN_A20
#define PIN_PA23 23u // PIN_A23
#define PIN_PWM0 20u // PIN_A20
#define PIN_PWM1 12u // PIN_A12
#define PIN_PWM2 14u // PIN_A14
#define PIN_PWM3 15u // PIN_A15
#define PIN_PWM4 16u // PIN_A16
#define PIN_PWM5 17u // PIN_A17
#define PIN_PWM6 18u // PIN_A18
#define PIN_PWM7 23u // PIN_A23
#define PIN_RTS0 9u // PIN_A9
#define PIN_RTS2 20u // PIN_A20
#define PIN_RX0 13u // PIN_A13
#define PIN_RX1 2u // PIN_A2
#define PIN_RX2 15u // PIN_A15
#define PIN_SCK0 16u // PIN_A16
#define PIN_SCL0 19u // PIN_A19
#define PIN_SDA0 20u // PIN_A20
#define PIN_TX0 14u // PIN_A14
#define PIN_TX1 3u // PIN_A3
#define PIN_TX2 16u // PIN_A16
// Port availability
// -----------------
#define HAS_SERIAL0 1
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define HAS_SPI0 1
#define HAS_WIRE0 1
#define HAS_SERIAL0 1
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define HAS_SPI0 1
#define HAS_WIRE0 1
#define SERIAL_INTERFACES_COUNT 3
#define SPI_INTERFACES_COUNT 1
#define WIRE_INTERFACES_COUNT 1
// Arduino pin names
// -----------------
#define PIN_D0 0u // PIN_A0
#define PIN_D1 1u // PIN_A1
#define PIN_D2 2u // PIN_A2
#define PIN_D3 3u // PIN_A3
#define PIN_D4 4u // PIN_A4
#define PIN_D5 7u // PIN_A7
#define PIN_D6 8u // PIN_A8
#define PIN_D7 9u // PIN_A9
#define PIN_D8 10u // PIN_A10
#define PIN_D9 11u // PIN_A11
#define PIN_D10 12u // PIN_A12
#define PIN_D11 13u // PIN_A13
#define PIN_D12 14u // PIN_A14
#define PIN_D13 15u // PIN_A15
#define PIN_D14 16u // PIN_A16
#define PIN_D15 17u // PIN_A17
#define PIN_D16 18u // PIN_A18
#define PIN_D17 19u // PIN_A19
#define PIN_D18 20u // PIN_A20
#define PIN_D19 23u // PIN_A23
// Static pin names
// ----------------
static const unsigned char D0 = PIN_D0;
static const unsigned char D1 = PIN_D1;
static const unsigned char D2 = PIN_D2;
static const unsigned char D3 = PIN_D3;
static const unsigned char D4 = PIN_D4;
static const unsigned char D5 = PIN_D5;
static const unsigned char D6 = PIN_D6;
static const unsigned char D7 = PIN_D7;
static const unsigned char D8 = PIN_D8;
static const unsigned char D9 = PIN_D9;
static const unsigned char D10 = PIN_D10;
static const unsigned char D11 = PIN_D11;
static const unsigned char D12 = PIN_D12;
static const unsigned char D13 = PIN_D13;
static const unsigned char D14 = PIN_D14;
static const unsigned char D15 = PIN_D15;
static const unsigned char D16 = PIN_D16;
static const unsigned char D17 = PIN_D17;
static const unsigned char D18 = PIN_D18;
static const unsigned char D19 = PIN_D19;

View File

@@ -2,14 +2,12 @@
#include <Arduino.h>
extern "C" {
#ifdef LT_VARIANT_INCLUDE
#include LT_VARIANT_INCLUDE
#endif
// clang-format off
PinInfo pinTable[PINS_COUNT] = {
PinInfo lt_arduino_pin_info_list[PINS_COUNT] = {
// D0: P26, PWM5, IRDA
{GPIO26, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
// D1: P14, SD_CLK, SCK
@@ -41,6 +39,22 @@ PinInfo pinTable[PINS_COUNT] = {
// D14: P1, UART2_RX, I2C2_SDA
{GPIO1, PIN_GPIO | PIN_IRQ | PIN_I2C | PIN_UART, PIN_NONE, 0},
};
// clang-format on
} // extern "C"
PinInfo *lt_arduino_pin_gpio_map[] = {
[0] = &(lt_arduino_pin_info_list[5]), // GPIO0 (D5)
[1] = &(lt_arduino_pin_info_list[14]), // GPIO1 (D14)
[6] = &(lt_arduino_pin_info_list[10]), // GPIO6 (D10)
[7] = &(lt_arduino_pin_info_list[11]), // GPIO7 (D11)
[8] = &(lt_arduino_pin_info_list[7]), // GPIO8 (D7)
[9] = &(lt_arduino_pin_info_list[8]), // GPIO9 (D8)
[10] = &(lt_arduino_pin_info_list[12]), // GPIO10 (D12)
[11] = &(lt_arduino_pin_info_list[13]), // GPIO11 (D13)
[14] = &(lt_arduino_pin_info_list[1]), // GPIO14 (D1)
[16] = &(lt_arduino_pin_info_list[2]), // GPIO16 (D2)
[21] = &(lt_arduino_pin_info_list[9]), // GPIO21 (D9)
[22] = &(lt_arduino_pin_info_list[4]), // GPIO22 (D4)
[23] = &(lt_arduino_pin_info_list[6]), // GPIO23 (D6)
[24] = &(lt_arduino_pin_info_list[3]), // GPIO24 (D3)
[26] = &(lt_arduino_pin_info_list[0]), // GPIO26 (D0)
};
// clang-format on

View File

@@ -6,70 +6,100 @@
// Pins
// ----
#define PINS_COUNT 15
#define NUM_DIGITAL_PINS 15
#define NUM_ANALOG_INPUTS 1
#define NUM_ANALOG_OUTPUTS 0
// Analog pins
// -----------
#define PIN_A0 6u // GPIO23
#define A0 PIN_A0
// SPI Interfaces
// --------------
#define SPI_INTERFACES_COUNT 0
#define PINS_COUNT 15 // Total GPIO count
#define NUM_DIGITAL_PINS 15 // Digital inputs/outputs
#define NUM_ANALOG_INPUTS 1 // ADC inputs
#define NUM_ANALOG_OUTPUTS 6 // PWM & DAC outputs
#define PINS_GPIO_MAX 26 // Last usable GPIO number
// Wire Interfaces
// ---------------
#define WIRE_INTERFACES_COUNT 1
#define PIN_WIRE2_SCL 5u // GPIO0
#define PIN_WIRE2_SDA 14u // GPIO1
#define PIN_WIRE2_SCL 0u // GPIO0
#define PIN_WIRE2_SDA 1u // GPIO1
// Serial ports
// ------------
#define SERIAL_INTERFACES_COUNT 2
#define PIN_SERIAL1_RX 12u // GPIO10
#define PIN_SERIAL1_TX 13u // GPIO11
#define PIN_SERIAL2_RX 14u // GPIO1
#define PIN_SERIAL2_TX 5u // GPIO0
#define PIN_SERIAL1_RX 10u // GPIO10
#define PIN_SERIAL1_TX 11u // GPIO11
#define PIN_SERIAL2_RX 1u // GPIO1
#define PIN_SERIAL2_TX 0u // GPIO0
// Pin function macros
// -------------------
#define PIN_ADC3 6u // GPIO23
#define PIN_MOSI 2u // GPIO16
#define PIN_P0 5u // GPIO0
#define PIN_P1 14u // GPIO1
#define PIN_P6 10u // GPIO6
#define PIN_P7 11u // GPIO7
#define PIN_P8 7u // GPIO8
#define PIN_P9 8u // GPIO9
#define PIN_P10 12u // GPIO10
#define PIN_P11 13u // GPIO11
#define PIN_P14 1u // GPIO14
#define PIN_P16 2u // GPIO16
#define PIN_P21 9u // GPIO21
#define PIN_P22 4u // GPIO22
#define PIN_P23 6u // GPIO23
#define PIN_P24 3u // GPIO24
#define PIN_P26 0u // GPIO26
#define PIN_PWM0 10u // GPIO6
#define PIN_PWM1 11u // GPIO7
#define PIN_PWM2 7u // GPIO8
#define PIN_PWM3 8u // GPIO9
#define PIN_PWM4 3u // GPIO24
#define PIN_PWM5 0u // GPIO26
#define PIN_RX1 12u // GPIO10
#define PIN_RX2 14u // GPIO1
#define PIN_SCK 1u // GPIO14
#define PIN_SCL2 5u // GPIO0
#define PIN_SDA1 9u // GPIO21
#define PIN_SDA2 14u // GPIO1
#define PIN_TX1 13u // GPIO11
#define PIN_TX2 5u // GPIO0
#define PIN_ADC3 23u // GPIO23
#define PIN_MOSI 16u // GPIO16
#define PIN_P0 0u // GPIO0
#define PIN_P1 1u // GPIO1
#define PIN_P6 6u // GPIO6
#define PIN_P7 7u // GPIO7
#define PIN_P8 8u // GPIO8
#define PIN_P9 9u // GPIO9
#define PIN_P10 10u // GPIO10
#define PIN_P11 11u // GPIO11
#define PIN_P14 14u // GPIO14
#define PIN_P16 16u // GPIO16
#define PIN_P21 21u // GPIO21
#define PIN_P22 22u // GPIO22
#define PIN_P23 23u // GPIO23
#define PIN_P24 24u // GPIO24
#define PIN_P26 26u // GPIO26
#define PIN_PWM0 6u // GPIO6
#define PIN_PWM1 7u // GPIO7
#define PIN_PWM2 8u // GPIO8
#define PIN_PWM3 9u // GPIO9
#define PIN_PWM4 24u // GPIO24
#define PIN_PWM5 26u // GPIO26
#define PIN_RX1 10u // GPIO10
#define PIN_RX2 1u // GPIO1
#define PIN_SCK 14u // GPIO14
#define PIN_SCL2 0u // GPIO0
#define PIN_SDA1 21u // GPIO21
#define PIN_SDA2 1u // GPIO1
#define PIN_TX1 11u // GPIO11
#define PIN_TX2 0u // GPIO0
// Port availability
// -----------------
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define HAS_WIRE2 1
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define HAS_WIRE2 1
#define SERIAL_INTERFACES_COUNT 2
#define WIRE_INTERFACES_COUNT 1
// Arduino pin names
// -----------------
#define PIN_D0 26u // GPIO26
#define PIN_D1 14u // GPIO14
#define PIN_D2 16u // GPIO16
#define PIN_D3 24u // GPIO24
#define PIN_D4 22u // GPIO22
#define PIN_D5 0u // GPIO0
#define PIN_D6 23u // GPIO23
#define PIN_D7 8u // GPIO8
#define PIN_D8 9u // GPIO9
#define PIN_D9 21u // GPIO21
#define PIN_D10 6u // GPIO6
#define PIN_D11 7u // GPIO7
#define PIN_D12 10u // GPIO10
#define PIN_D13 11u // GPIO11
#define PIN_D14 1u // GPIO1
#define PIN_A0 23u // GPIO23
// Static pin names
// ----------------
static const unsigned char A0 = PIN_A0;
static const unsigned char D0 = PIN_D0;
static const unsigned char D1 = PIN_D1;
static const unsigned char D2 = PIN_D2;
static const unsigned char D3 = PIN_D3;
static const unsigned char D4 = PIN_D4;
static const unsigned char D5 = PIN_D5;
static const unsigned char D6 = PIN_D6;
static const unsigned char D7 = PIN_D7;
static const unsigned char D8 = PIN_D8;
static const unsigned char D9 = PIN_D9;
static const unsigned char D10 = PIN_D10;
static const unsigned char D11 = PIN_D11;
static const unsigned char D12 = PIN_D12;
static const unsigned char D13 = PIN_D13;
static const unsigned char D14 = PIN_D14;

View File

@@ -2,14 +2,12 @@
#include <Arduino.h>
extern "C" {
#ifdef LT_VARIANT_INCLUDE
#include LT_VARIANT_INCLUDE
#endif
// clang-format off
PinInfo pinTable[PINS_COUNT] = {
PinInfo lt_arduino_pin_info_list[PINS_COUNT] = {
// D0: P26, PWM5, IRDA
{GPIO26, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
// D1: P14, SD_CLK, SCK
@@ -41,6 +39,22 @@ PinInfo pinTable[PINS_COUNT] = {
// D14: P1, UART2_RX, I2C2_SDA
{GPIO1, PIN_GPIO | PIN_IRQ | PIN_I2C | PIN_UART, PIN_NONE, 0},
};
// clang-format on
} // extern "C"
PinInfo *lt_arduino_pin_gpio_map[] = {
[0] = &(lt_arduino_pin_info_list[5]), // GPIO0 (D5)
[1] = &(lt_arduino_pin_info_list[14]), // GPIO1 (D14)
[6] = &(lt_arduino_pin_info_list[10]), // GPIO6 (D10)
[7] = &(lt_arduino_pin_info_list[11]), // GPIO7 (D11)
[8] = &(lt_arduino_pin_info_list[7]), // GPIO8 (D7)
[9] = &(lt_arduino_pin_info_list[8]), // GPIO9 (D8)
[10] = &(lt_arduino_pin_info_list[12]), // GPIO10 (D12)
[11] = &(lt_arduino_pin_info_list[13]), // GPIO11 (D13)
[14] = &(lt_arduino_pin_info_list[1]), // GPIO14 (D1)
[16] = &(lt_arduino_pin_info_list[2]), // GPIO16 (D2)
[21] = &(lt_arduino_pin_info_list[9]), // GPIO21 (D9)
[22] = &(lt_arduino_pin_info_list[4]), // GPIO22 (D4)
[23] = &(lt_arduino_pin_info_list[6]), // GPIO23 (D6)
[24] = &(lt_arduino_pin_info_list[3]), // GPIO24 (D3)
[26] = &(lt_arduino_pin_info_list[0]), // GPIO26 (D0)
};
// clang-format on

View File

@@ -6,70 +6,100 @@
// Pins
// ----
#define PINS_COUNT 15
#define NUM_DIGITAL_PINS 15
#define NUM_ANALOG_INPUTS 1
#define NUM_ANALOG_OUTPUTS 0
// Analog pins
// -----------
#define PIN_A0 6u // GPIO23
#define A0 PIN_A0
// SPI Interfaces
// --------------
#define SPI_INTERFACES_COUNT 0
#define PINS_COUNT 15 // Total GPIO count
#define NUM_DIGITAL_PINS 15 // Digital inputs/outputs
#define NUM_ANALOG_INPUTS 1 // ADC inputs
#define NUM_ANALOG_OUTPUTS 6 // PWM & DAC outputs
#define PINS_GPIO_MAX 26 // Last usable GPIO number
// Wire Interfaces
// ---------------
#define WIRE_INTERFACES_COUNT 1
#define PIN_WIRE2_SCL 5u // GPIO0
#define PIN_WIRE2_SDA 14u // GPIO1
#define PIN_WIRE2_SCL 0u // GPIO0
#define PIN_WIRE2_SDA 1u // GPIO1
// Serial ports
// ------------
#define SERIAL_INTERFACES_COUNT 2
#define PIN_SERIAL1_RX 12u // GPIO10
#define PIN_SERIAL1_TX 13u // GPIO11
#define PIN_SERIAL2_RX 14u // GPIO1
#define PIN_SERIAL2_TX 5u // GPIO0
#define PIN_SERIAL1_RX 10u // GPIO10
#define PIN_SERIAL1_TX 11u // GPIO11
#define PIN_SERIAL2_RX 1u // GPIO1
#define PIN_SERIAL2_TX 0u // GPIO0
// Pin function macros
// -------------------
#define PIN_ADC3 6u // GPIO23
#define PIN_MOSI 2u // GPIO16
#define PIN_P0 5u // GPIO0
#define PIN_P1 14u // GPIO1
#define PIN_P6 10u // GPIO6
#define PIN_P7 11u // GPIO7
#define PIN_P8 7u // GPIO8
#define PIN_P9 8u // GPIO9
#define PIN_P10 12u // GPIO10
#define PIN_P11 13u // GPIO11
#define PIN_P14 1u // GPIO14
#define PIN_P16 2u // GPIO16
#define PIN_P21 9u // GPIO21
#define PIN_P22 4u // GPIO22
#define PIN_P23 6u // GPIO23
#define PIN_P24 3u // GPIO24
#define PIN_P26 0u // GPIO26
#define PIN_PWM0 10u // GPIO6
#define PIN_PWM1 11u // GPIO7
#define PIN_PWM2 7u // GPIO8
#define PIN_PWM3 8u // GPIO9
#define PIN_PWM4 3u // GPIO24
#define PIN_PWM5 0u // GPIO26
#define PIN_RX1 12u // GPIO10
#define PIN_RX2 14u // GPIO1
#define PIN_SCK 1u // GPIO14
#define PIN_SCL2 5u // GPIO0
#define PIN_SDA1 9u // GPIO21
#define PIN_SDA2 14u // GPIO1
#define PIN_TX1 13u // GPIO11
#define PIN_TX2 5u // GPIO0
#define PIN_ADC3 23u // GPIO23
#define PIN_MOSI 16u // GPIO16
#define PIN_P0 0u // GPIO0
#define PIN_P1 1u // GPIO1
#define PIN_P6 6u // GPIO6
#define PIN_P7 7u // GPIO7
#define PIN_P8 8u // GPIO8
#define PIN_P9 9u // GPIO9
#define PIN_P10 10u // GPIO10
#define PIN_P11 11u // GPIO11
#define PIN_P14 14u // GPIO14
#define PIN_P16 16u // GPIO16
#define PIN_P21 21u // GPIO21
#define PIN_P22 22u // GPIO22
#define PIN_P23 23u // GPIO23
#define PIN_P24 24u // GPIO24
#define PIN_P26 26u // GPIO26
#define PIN_PWM0 6u // GPIO6
#define PIN_PWM1 7u // GPIO7
#define PIN_PWM2 8u // GPIO8
#define PIN_PWM3 9u // GPIO9
#define PIN_PWM4 24u // GPIO24
#define PIN_PWM5 26u // GPIO26
#define PIN_RX1 10u // GPIO10
#define PIN_RX2 1u // GPIO1
#define PIN_SCK 14u // GPIO14
#define PIN_SCL2 0u // GPIO0
#define PIN_SDA1 21u // GPIO21
#define PIN_SDA2 1u // GPIO1
#define PIN_TX1 11u // GPIO11
#define PIN_TX2 0u // GPIO0
// Port availability
// -----------------
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define HAS_WIRE2 1
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define HAS_WIRE2 1
#define SERIAL_INTERFACES_COUNT 2
#define WIRE_INTERFACES_COUNT 1
// Arduino pin names
// -----------------
#define PIN_D0 26u // GPIO26
#define PIN_D1 14u // GPIO14
#define PIN_D2 16u // GPIO16
#define PIN_D3 24u // GPIO24
#define PIN_D4 22u // GPIO22
#define PIN_D5 0u // GPIO0
#define PIN_D6 23u // GPIO23
#define PIN_D7 8u // GPIO8
#define PIN_D8 9u // GPIO9
#define PIN_D9 21u // GPIO21
#define PIN_D10 6u // GPIO6
#define PIN_D11 7u // GPIO7
#define PIN_D12 10u // GPIO10
#define PIN_D13 11u // GPIO11
#define PIN_D14 1u // GPIO1
#define PIN_A0 23u // GPIO23
// Static pin names
// ----------------
static const unsigned char A0 = PIN_A0;
static const unsigned char D0 = PIN_D0;
static const unsigned char D1 = PIN_D1;
static const unsigned char D2 = PIN_D2;
static const unsigned char D3 = PIN_D3;
static const unsigned char D4 = PIN_D4;
static const unsigned char D5 = PIN_D5;
static const unsigned char D6 = PIN_D6;
static const unsigned char D7 = PIN_D7;
static const unsigned char D8 = PIN_D8;
static const unsigned char D9 = PIN_D9;
static const unsigned char D10 = PIN_D10;
static const unsigned char D11 = PIN_D11;
static const unsigned char D12 = PIN_D12;
static const unsigned char D13 = PIN_D13;
static const unsigned char D14 = PIN_D14;

View File

@@ -2,14 +2,12 @@
#include <Arduino.h>
extern "C" {
#ifdef LT_VARIANT_INCLUDE
#include LT_VARIANT_INCLUDE
#endif
// clang-format off
PinInfo pinTable[PINS_COUNT] = {
PinInfo lt_arduino_pin_info_list[PINS_COUNT] = {
// D0: P8, PWM2
{GPIO8, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
// D1: P7, PWM1
@@ -37,6 +35,20 @@ PinInfo pinTable[PINS_COUNT] = {
// D12: P22, TDI, FSI
{GPIO22, PIN_GPIO | PIN_IRQ | PIN_JTAG, PIN_NONE, 0},
};
// clang-format on
} // extern "C"
PinInfo *lt_arduino_pin_gpio_map[] = {
[0] = &(lt_arduino_pin_info_list[8]), // GPIO0 (D8)
[1] = &(lt_arduino_pin_info_list[7]), // GPIO1 (D7)
[6] = &(lt_arduino_pin_info_list[2]), // GPIO6 (D2)
[7] = &(lt_arduino_pin_info_list[1]), // GPIO7 (D1)
[8] = &(lt_arduino_pin_info_list[0]), // GPIO8 (D0)
[10] = &(lt_arduino_pin_info_list[5]), // GPIO10 (D5)
[11] = &(lt_arduino_pin_info_list[6]), // GPIO11 (D6)
[20] = &(lt_arduino_pin_info_list[9]), // GPIO20 (D9)
[21] = &(lt_arduino_pin_info_list[10]), // GPIO21 (D10)
[22] = &(lt_arduino_pin_info_list[12]), // GPIO22 (D12)
[23] = &(lt_arduino_pin_info_list[11]), // GPIO23 (D11)
[24] = &(lt_arduino_pin_info_list[4]), // GPIO24 (D4)
[26] = &(lt_arduino_pin_info_list[3]), // GPIO26 (D3)
};
// clang-format on

View File

@@ -6,69 +6,95 @@
// Pins
// ----
#define PINS_COUNT 13
#define NUM_DIGITAL_PINS 13
#define NUM_ANALOG_INPUTS 1
#define NUM_ANALOG_OUTPUTS 0
// Analog pins
// -----------
#define PIN_A0 11u // GPIO23
#define A0 PIN_A0
// SPI Interfaces
// --------------
#define SPI_INTERFACES_COUNT 0
#define PINS_COUNT 13 // Total GPIO count
#define NUM_DIGITAL_PINS 13 // Digital inputs/outputs
#define NUM_ANALOG_INPUTS 1 // ADC inputs
#define NUM_ANALOG_OUTPUTS 5 // PWM & DAC outputs
#define PINS_GPIO_MAX 26 // Last usable GPIO number
// Wire Interfaces
// ---------------
#define WIRE_INTERFACES_COUNT 2
#define PIN_WIRE1_SCL 9u // GPIO20
#define PIN_WIRE1_SDA 10u // GPIO21
#define PIN_WIRE2_SCL 8u // GPIO0
#define PIN_WIRE2_SDA 7u // GPIO1
#define PIN_WIRE1_SCL 20u // GPIO20
#define PIN_WIRE1_SDA 21u // GPIO21
#define PIN_WIRE2_SCL 0u // GPIO0
#define PIN_WIRE2_SDA 1u // GPIO1
// Serial ports
// ------------
#define SERIAL_INTERFACES_COUNT 2
#define PIN_SERIAL1_RX 5u // GPIO10
#define PIN_SERIAL1_TX 6u // GPIO11
#define PIN_SERIAL2_RX 7u // GPIO1
#define PIN_SERIAL2_TX 8u // GPIO0
#define PIN_SERIAL1_RX 10u // GPIO10
#define PIN_SERIAL1_TX 11u // GPIO11
#define PIN_SERIAL2_RX 1u // GPIO1
#define PIN_SERIAL2_TX 0u // GPIO0
// Pin function macros
// -------------------
#define PIN_ADC3 11u // GPIO23
#define PIN_P0 8u // GPIO0
#define PIN_P1 7u // GPIO1
#define PIN_P6 2u // GPIO6
#define PIN_P7 1u // GPIO7
#define PIN_P8 0u // GPIO8
#define PIN_P10 5u // GPIO10
#define PIN_P11 6u // GPIO11
#define PIN_P20 9u // GPIO20
#define PIN_P21 10u // GPIO21
#define PIN_P22 12u // GPIO22
#define PIN_P23 11u // GPIO23
#define PIN_P24 4u // GPIO24
#define PIN_P26 3u // GPIO26
#define PIN_PWM0 2u // GPIO6
#define PIN_PWM1 1u // GPIO7
#define PIN_PWM2 0u // GPIO8
#define PIN_PWM4 4u // GPIO24
#define PIN_PWM5 3u // GPIO26
#define PIN_RX1 5u // GPIO10
#define PIN_RX2 7u // GPIO1
#define PIN_SCL1 9u // GPIO20
#define PIN_SCL2 8u // GPIO0
#define PIN_SDA1 10u // GPIO21
#define PIN_SDA2 7u // GPIO1
#define PIN_TX1 6u // GPIO11
#define PIN_TX2 8u // GPIO0
#define PIN_ADC3 23u // GPIO23
#define PIN_P0 0u // GPIO0
#define PIN_P1 1u // GPIO1
#define PIN_P6 6u // GPIO6
#define PIN_P7 7u // GPIO7
#define PIN_P8 8u // GPIO8
#define PIN_P10 10u // GPIO10
#define PIN_P11 11u // GPIO11
#define PIN_P20 20u // GPIO20
#define PIN_P21 21u // GPIO21
#define PIN_P22 22u // GPIO22
#define PIN_P23 23u // GPIO23
#define PIN_P24 24u // GPIO24
#define PIN_P26 26u // GPIO26
#define PIN_PWM0 6u // GPIO6
#define PIN_PWM1 7u // GPIO7
#define PIN_PWM2 8u // GPIO8
#define PIN_PWM4 24u // GPIO24
#define PIN_PWM5 26u // GPIO26
#define PIN_RX1 10u // GPIO10
#define PIN_RX2 1u // GPIO1
#define PIN_SCL1 20u // GPIO20
#define PIN_SCL2 0u // GPIO0
#define PIN_SDA1 21u // GPIO21
#define PIN_SDA2 1u // GPIO1
#define PIN_TX1 11u // GPIO11
#define PIN_TX2 0u // GPIO0
// Port availability
// -----------------
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define HAS_WIRE1 1
#define HAS_WIRE2 1
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define HAS_WIRE1 1
#define HAS_WIRE2 1
#define SERIAL_INTERFACES_COUNT 2
#define WIRE_INTERFACES_COUNT 2
// Arduino pin names
// -----------------
#define PIN_D0 8u // GPIO8
#define PIN_D1 7u // GPIO7
#define PIN_D2 6u // GPIO6
#define PIN_D3 26u // GPIO26
#define PIN_D4 24u // GPIO24
#define PIN_D5 10u // GPIO10
#define PIN_D6 11u // GPIO11
#define PIN_D7 1u // GPIO1
#define PIN_D8 0u // GPIO0
#define PIN_D9 20u // GPIO20
#define PIN_D10 21u // GPIO21
#define PIN_D11 23u // GPIO23
#define PIN_D12 22u // GPIO22
#define PIN_A0 23u // GPIO23
// Static pin names
// ----------------
static const unsigned char A0 = PIN_A0;
static const unsigned char D0 = PIN_D0;
static const unsigned char D1 = PIN_D1;
static const unsigned char D2 = PIN_D2;
static const unsigned char D3 = PIN_D3;
static const unsigned char D4 = PIN_D4;
static const unsigned char D5 = PIN_D5;
static const unsigned char D6 = PIN_D6;
static const unsigned char D7 = PIN_D7;
static const unsigned char D8 = PIN_D8;
static const unsigned char D9 = PIN_D9;
static const unsigned char D10 = PIN_D10;
static const unsigned char D11 = PIN_D11;
static const unsigned char D12 = PIN_D12;

View File

@@ -2,14 +2,12 @@
#include <Arduino.h>
extern "C" {
#ifdef LT_VARIANT_INCLUDE
#include LT_VARIANT_INCLUDE
#endif
// clang-format off
PinInfo pinTable[PINS_COUNT] = {
PinInfo lt_arduino_pin_info_list[PINS_COUNT] = {
// D0: P8, PWM2
{GPIO8, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
// D1: P7, PWM1
@@ -39,6 +37,21 @@ PinInfo pinTable[PINS_COUNT] = {
// D13: P22, TDI, FSI
{GPIO22, PIN_GPIO | PIN_IRQ | PIN_JTAG, PIN_NONE, 0},
};
// clang-format on
} // extern "C"
PinInfo *lt_arduino_pin_gpio_map[] = {
[0] = &(lt_arduino_pin_info_list[11]), // GPIO0 (D11)
[1] = &(lt_arduino_pin_info_list[10]), // GPIO1 (D10)
[6] = &(lt_arduino_pin_info_list[2]), // GPIO6 (D2)
[7] = &(lt_arduino_pin_info_list[1]), // GPIO7 (D1)
[8] = &(lt_arduino_pin_info_list[0]), // GPIO8 (D0)
[9] = &(lt_arduino_pin_info_list[9]), // GPIO9 (D9)
[10] = &(lt_arduino_pin_info_list[4]), // GPIO10 (D4)
[11] = &(lt_arduino_pin_info_list[5]), // GPIO11 (D5)
[20] = &(lt_arduino_pin_info_list[8]), // GPIO20 (D8)
[21] = &(lt_arduino_pin_info_list[12]), // GPIO21 (D12)
[22] = &(lt_arduino_pin_info_list[13]), // GPIO22 (D13)
[23] = &(lt_arduino_pin_info_list[3]), // GPIO23 (D3)
[24] = &(lt_arduino_pin_info_list[6]), // GPIO24 (D6)
[26] = &(lt_arduino_pin_info_list[7]), // GPIO26 (D7)
};
// clang-format on

View File

@@ -6,73 +6,99 @@
// Pins
// ----
#define PINS_COUNT 14
#define NUM_DIGITAL_PINS 14
#define NUM_ANALOG_INPUTS 1
#define NUM_ANALOG_OUTPUTS 0
// Analog pins
// -----------
#define PIN_A0 3u // GPIO23
#define PIN_A0 3u // GPIO23
#define A0 PIN_A0
#define A0 PIN_A0
// SPI Interfaces
// --------------
#define SPI_INTERFACES_COUNT 0
#define PINS_COUNT 14 // Total GPIO count
#define NUM_DIGITAL_PINS 14 // Digital inputs/outputs
#define NUM_ANALOG_INPUTS 1 // ADC inputs
#define NUM_ANALOG_OUTPUTS 6 // PWM & DAC outputs
#define PINS_GPIO_MAX 26 // Last usable GPIO number
// Wire Interfaces
// ---------------
#define WIRE_INTERFACES_COUNT 2
#define PIN_WIRE1_SCL 8u // GPIO20
#define PIN_WIRE1_SDA 12u // GPIO21
#define PIN_WIRE2_SCL 11u // GPIO0
#define PIN_WIRE2_SDA 10u // GPIO1
#define PIN_WIRE1_SCL 20u // GPIO20
#define PIN_WIRE1_SDA 21u // GPIO21
#define PIN_WIRE2_SCL 0u // GPIO0
#define PIN_WIRE2_SDA 1u // GPIO1
// Serial ports
// ------------
#define SERIAL_INTERFACES_COUNT 2
#define PIN_SERIAL1_RX 4u // GPIO10
#define PIN_SERIAL1_TX 5u // GPIO11
#define PIN_SERIAL2_RX 10u // GPIO1
#define PIN_SERIAL2_TX 11u // GPIO0
#define PIN_SERIAL1_RX 10u // GPIO10
#define PIN_SERIAL1_TX 11u // GPIO11
#define PIN_SERIAL2_RX 1u // GPIO1
#define PIN_SERIAL2_TX 0u // GPIO0
// Pin function macros
// -------------------
#define PIN_ADC3 3u // GPIO23
#define PIN_P0 11u // GPIO0
#define PIN_P1 10u // GPIO1
#define PIN_P6 2u // GPIO6
#define PIN_P7 1u // GPIO7
#define PIN_P8 0u // GPIO8
#define PIN_ADC3 23u // GPIO23
#define PIN_P0 0u // GPIO0
#define PIN_P1 1u // GPIO1
#define PIN_P6 6u // GPIO6
#define PIN_P7 7u // GPIO7
#define PIN_P8 8u // GPIO8
#define PIN_P9 9u // GPIO9
#define PIN_P10 4u // GPIO10
#define PIN_P11 5u // GPIO11
#define PIN_P20 8u // GPIO20
#define PIN_P21 12u // GPIO21
#define PIN_P22 13u // GPIO22
#define PIN_P23 3u // GPIO23
#define PIN_P24 6u // GPIO24
#define PIN_P26 7u // GPIO26
#define PIN_PWM0 2u // GPIO6
#define PIN_PWM1 1u // GPIO7
#define PIN_PWM2 0u // GPIO8
#define PIN_P10 10u // GPIO10
#define PIN_P11 11u // GPIO11
#define PIN_P20 20u // GPIO20
#define PIN_P21 21u // GPIO21
#define PIN_P22 22u // GPIO22
#define PIN_P23 23u // GPIO23
#define PIN_P24 24u // GPIO24
#define PIN_P26 26u // GPIO26
#define PIN_PWM0 6u // GPIO6
#define PIN_PWM1 7u // GPIO7
#define PIN_PWM2 8u // GPIO8
#define PIN_PWM3 9u // GPIO9
#define PIN_PWM4 6u // GPIO24
#define PIN_PWM5 7u // GPIO26
#define PIN_RX1 4u // GPIO10
#define PIN_RX2 10u // GPIO1
#define PIN_SCL1 8u // GPIO20
#define PIN_SCL2 11u // GPIO0
#define PIN_SDA1 12u // GPIO21
#define PIN_SDA2 10u // GPIO1
#define PIN_TX1 5u // GPIO11
#define PIN_TX2 11u // GPIO0
#define PIN_PWM4 24u // GPIO24
#define PIN_PWM5 26u // GPIO26
#define PIN_RX1 10u // GPIO10
#define PIN_RX2 1u // GPIO1
#define PIN_SCL1 20u // GPIO20
#define PIN_SCL2 0u // GPIO0
#define PIN_SDA1 21u // GPIO21
#define PIN_SDA2 1u // GPIO1
#define PIN_TX1 11u // GPIO11
#define PIN_TX2 0u // GPIO0
// Port availability
// -----------------
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define HAS_WIRE1 1
#define HAS_WIRE2 1
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define HAS_WIRE1 1
#define HAS_WIRE2 1
#define SERIAL_INTERFACES_COUNT 2
#define WIRE_INTERFACES_COUNT 2
// Arduino pin names
// -----------------
#define PIN_D0 8u // GPIO8
#define PIN_D1 7u // GPIO7
#define PIN_D2 6u // GPIO6
#define PIN_D3 23u // GPIO23
#define PIN_D4 10u // GPIO10
#define PIN_D5 11u // GPIO11
#define PIN_D6 24u // GPIO24
#define PIN_D7 26u // GPIO26
#define PIN_D8 20u // GPIO20
#define PIN_D9 9u // GPIO9
#define PIN_D10 1u // GPIO1
#define PIN_D11 0u // GPIO0
#define PIN_D12 21u // GPIO21
#define PIN_D13 22u // GPIO22
#define PIN_A0 23u // GPIO23
// Static pin names
// ----------------
static const unsigned char A0 = PIN_A0;
static const unsigned char D0 = PIN_D0;
static const unsigned char D1 = PIN_D1;
static const unsigned char D2 = PIN_D2;
static const unsigned char D3 = PIN_D3;
static const unsigned char D4 = PIN_D4;
static const unsigned char D5 = PIN_D5;
static const unsigned char D6 = PIN_D6;
static const unsigned char D7 = PIN_D7;
static const unsigned char D8 = PIN_D8;
static const unsigned char D9 = PIN_D9;
static const unsigned char D10 = PIN_D10;
static const unsigned char D11 = PIN_D11;
static const unsigned char D12 = PIN_D12;
static const unsigned char D13 = PIN_D13;

View File

@@ -2,14 +2,12 @@
#include <Arduino.h>
extern "C" {
#ifdef LT_VARIANT_INCLUDE
#include LT_VARIANT_INCLUDE
#endif
// clang-format off
PinInfo pinTable[PINS_COUNT] = {
PinInfo lt_arduino_pin_info_list[PINS_COUNT] = {
// D0: P23, ADC3, TDO, FSO
{GPIO23, PIN_GPIO | PIN_IRQ | PIN_ADC | PIN_JTAG, PIN_NONE, 0},
// D1: P14, SD_CLK, SCK
@@ -43,6 +41,23 @@ PinInfo pinTable[PINS_COUNT] = {
// D15: P1, UART2_RX, I2C2_SDA
{GPIO1, PIN_GPIO | PIN_IRQ | PIN_I2C | PIN_UART, PIN_NONE, 0},
};
// clang-format on
} // extern "C"
PinInfo *lt_arduino_pin_gpio_map[] = {
[0] = &(lt_arduino_pin_info_list[6]), // GPIO0 (D6)
[1] = &(lt_arduino_pin_info_list[15]), // GPIO1 (D15)
[6] = &(lt_arduino_pin_info_list[4]), // GPIO6 (D4)
[7] = &(lt_arduino_pin_info_list[9]), // GPIO7 (D9)
[8] = &(lt_arduino_pin_info_list[8]), // GPIO8 (D8)
[9] = &(lt_arduino_pin_info_list[5]), // GPIO9 (D5)
[10] = &(lt_arduino_pin_info_list[10]), // GPIO10 (D10)
[11] = &(lt_arduino_pin_info_list[11]), // GPIO11 (D11)
[14] = &(lt_arduino_pin_info_list[1]), // GPIO14 (D1)
[16] = &(lt_arduino_pin_info_list[7]), // GPIO16 (D7)
[20] = &(lt_arduino_pin_info_list[14]), // GPIO20 (D14)
[21] = &(lt_arduino_pin_info_list[13]), // GPIO21 (D13)
[22] = &(lt_arduino_pin_info_list[12]), // GPIO22 (D12)
[23] = &(lt_arduino_pin_info_list[0]), // GPIO23 (D0)
[24] = &(lt_arduino_pin_info_list[3]), // GPIO24 (D3)
[26] = &(lt_arduino_pin_info_list[2]), // GPIO26 (D2)
};
// clang-format on

View File

@@ -6,77 +6,107 @@
// Pins
// ----
#define PINS_COUNT 16
#define NUM_DIGITAL_PINS 16
#define NUM_ANALOG_INPUTS 1
#define NUM_ANALOG_OUTPUTS 0
// Analog pins
// -----------
#define PIN_A0 0u // GPIO23
#define PIN_A0 0u // GPIO23
#define A0 PIN_A0
#define A0 PIN_A0
// SPI Interfaces
// --------------
#define SPI_INTERFACES_COUNT 0
#define PINS_COUNT 16 // Total GPIO count
#define NUM_DIGITAL_PINS 16 // Digital inputs/outputs
#define NUM_ANALOG_INPUTS 1 // ADC inputs
#define NUM_ANALOG_OUTPUTS 6 // PWM & DAC outputs
#define PINS_GPIO_MAX 26 // Last usable GPIO number
// Wire Interfaces
// ---------------
#define WIRE_INTERFACES_COUNT 2
#define PIN_WIRE1_SCL 14u // GPIO20
#define PIN_WIRE1_SDA 13u // GPIO21
#define PIN_WIRE2_SCL 6u // GPIO0
#define PIN_WIRE2_SDA 15u // GPIO1
#define PIN_WIRE1_SCL 20u // GPIO20
#define PIN_WIRE1_SDA 21u // GPIO21
#define PIN_WIRE2_SCL 0u // GPIO0
#define PIN_WIRE2_SDA 1u // GPIO1
// Serial ports
// ------------
#define SERIAL_INTERFACES_COUNT 2
#define PIN_SERIAL1_RX 10u // GPIO10
#define PIN_SERIAL1_TX 11u // GPIO11
#define PIN_SERIAL2_RX 15u // GPIO1
#define PIN_SERIAL2_TX 6u // GPIO0
#define PIN_SERIAL1_RX 10u // GPIO10
#define PIN_SERIAL1_TX 11u // GPIO11
#define PIN_SERIAL2_RX 1u // GPIO1
#define PIN_SERIAL2_TX 0u // GPIO0
// Pin function macros
// -------------------
#define PIN_ADC3 0u // GPIO23
#define PIN_MOSI 7u // GPIO16
#define PIN_P0 6u // GPIO0
#define PIN_P1 15u // GPIO1
#define PIN_P6 4u // GPIO6
#define PIN_P7 9u // GPIO7
#define PIN_ADC3 23u // GPIO23
#define PIN_MOSI 16u // GPIO16
#define PIN_P0 0u // GPIO0
#define PIN_P1 1u // GPIO1
#define PIN_P6 6u // GPIO6
#define PIN_P7 7u // GPIO7
#define PIN_P8 8u // GPIO8
#define PIN_P9 5u // GPIO9
#define PIN_P9 9u // GPIO9
#define PIN_P10 10u // GPIO10
#define PIN_P11 11u // GPIO11
#define PIN_P14 1u // GPIO14
#define PIN_P16 7u // GPIO16
#define PIN_P20 14u // GPIO20
#define PIN_P21 13u // GPIO21
#define PIN_P22 12u // GPIO22
#define PIN_P23 0u // GPIO23
#define PIN_P24 3u // GPIO24
#define PIN_P26 2u // GPIO26
#define PIN_PWM0 4u // GPIO6
#define PIN_PWM1 9u // GPIO7
#define PIN_P14 14u // GPIO14
#define PIN_P16 16u // GPIO16
#define PIN_P20 20u // GPIO20
#define PIN_P21 21u // GPIO21
#define PIN_P22 22u // GPIO22
#define PIN_P23 23u // GPIO23
#define PIN_P24 24u // GPIO24
#define PIN_P26 26u // GPIO26
#define PIN_PWM0 6u // GPIO6
#define PIN_PWM1 7u // GPIO7
#define PIN_PWM2 8u // GPIO8
#define PIN_PWM3 5u // GPIO9
#define PIN_PWM4 3u // GPIO24
#define PIN_PWM5 2u // GPIO26
#define PIN_PWM3 9u // GPIO9
#define PIN_PWM4 24u // GPIO24
#define PIN_PWM5 26u // GPIO26
#define PIN_RX1 10u // GPIO10
#define PIN_RX2 15u // GPIO1
#define PIN_SCK 1u // GPIO14
#define PIN_SCL1 14u // GPIO20
#define PIN_SCL2 6u // GPIO0
#define PIN_SDA1 13u // GPIO21
#define PIN_SDA2 15u // GPIO1
#define PIN_RX2 1u // GPIO1
#define PIN_SCK 14u // GPIO14
#define PIN_SCL1 20u // GPIO20
#define PIN_SCL2 0u // GPIO0
#define PIN_SDA1 21u // GPIO21
#define PIN_SDA2 1u // GPIO1
#define PIN_TX1 11u // GPIO11
#define PIN_TX2 6u // GPIO0
#define PIN_TX2 0u // GPIO0
// Port availability
// -----------------
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define HAS_WIRE1 1
#define HAS_WIRE2 1
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define HAS_WIRE1 1
#define HAS_WIRE2 1
#define SERIAL_INTERFACES_COUNT 2
#define WIRE_INTERFACES_COUNT 2
// Arduino pin names
// -----------------
#define PIN_D0 23u // GPIO23
#define PIN_D1 14u // GPIO14
#define PIN_D2 26u // GPIO26
#define PIN_D3 24u // GPIO24
#define PIN_D4 6u // GPIO6
#define PIN_D5 9u // GPIO9
#define PIN_D6 0u // GPIO0
#define PIN_D7 16u // GPIO16
#define PIN_D8 8u // GPIO8
#define PIN_D9 7u // GPIO7
#define PIN_D10 10u // GPIO10
#define PIN_D11 11u // GPIO11
#define PIN_D12 22u // GPIO22
#define PIN_D13 21u // GPIO21
#define PIN_D14 20u // GPIO20
#define PIN_D15 1u // GPIO1
#define PIN_A0 23u // GPIO23
// Static pin names
// ----------------
static const unsigned char A0 = PIN_A0;
static const unsigned char D0 = PIN_D0;
static const unsigned char D1 = PIN_D1;
static const unsigned char D2 = PIN_D2;
static const unsigned char D3 = PIN_D3;
static const unsigned char D4 = PIN_D4;
static const unsigned char D5 = PIN_D5;
static const unsigned char D6 = PIN_D6;
static const unsigned char D7 = PIN_D7;
static const unsigned char D8 = PIN_D8;
static const unsigned char D9 = PIN_D9;
static const unsigned char D10 = PIN_D10;
static const unsigned char D11 = PIN_D11;
static const unsigned char D12 = PIN_D12;
static const unsigned char D13 = PIN_D13;
static const unsigned char D14 = PIN_D14;
static const unsigned char D15 = PIN_D15;

View File

@@ -2,14 +2,12 @@
#include <Arduino.h>
extern "C" {
#ifdef LT_VARIANT_INCLUDE
#include LT_VARIANT_INCLUDE
#endif
// clang-format off
PinInfo pinTable[PINS_COUNT] = {
PinInfo lt_arduino_pin_info_list[PINS_COUNT] = {
// D0: P23, ADC3, TDO, FSO
{GPIO23, PIN_GPIO | PIN_IRQ | PIN_ADC | PIN_JTAG, PIN_NONE, 0},
// D1: P14, SD_CLK, SCK
@@ -41,6 +39,22 @@ PinInfo pinTable[PINS_COUNT] = {
// D14: P20, I2C1_SCL, TCK, FSCK
{GPIO20, PIN_GPIO | PIN_IRQ | PIN_I2C | PIN_JTAG, PIN_NONE, 0},
};
// clang-format on
} // extern "C"
PinInfo *lt_arduino_pin_gpio_map[] = {
[0] = &(lt_arduino_pin_info_list[6]), // GPIO0 (D6)
[1] = &(lt_arduino_pin_info_list[7]), // GPIO1 (D7)
[6] = &(lt_arduino_pin_info_list[4]), // GPIO6 (D4)
[7] = &(lt_arduino_pin_info_list[5]), // GPIO7 (D5)
[8] = &(lt_arduino_pin_info_list[9]), // GPIO8 (D9)
[9] = &(lt_arduino_pin_info_list[8]), // GPIO9 (D8)
[10] = &(lt_arduino_pin_info_list[10]), // GPIO10 (D10)
[11] = &(lt_arduino_pin_info_list[11]), // GPIO11 (D11)
[14] = &(lt_arduino_pin_info_list[1]), // GPIO14 (D1)
[20] = &(lt_arduino_pin_info_list[14]), // GPIO20 (D14)
[21] = &(lt_arduino_pin_info_list[13]), // GPIO21 (D13)
[22] = &(lt_arduino_pin_info_list[12]), // GPIO22 (D12)
[23] = &(lt_arduino_pin_info_list[0]), // GPIO23 (D0)
[24] = &(lt_arduino_pin_info_list[3]), // GPIO24 (D3)
[26] = &(lt_arduino_pin_info_list[2]), // GPIO26 (D2)
};
// clang-format on

View File

@@ -6,75 +6,103 @@
// Pins
// ----
#define PINS_COUNT 15
#define NUM_DIGITAL_PINS 15
#define NUM_ANALOG_INPUTS 1
#define NUM_ANALOG_OUTPUTS 0
// Analog pins
// -----------
#define PIN_A0 0u // GPIO23
#define PIN_A0 0u // GPIO23
#define A0 PIN_A0
#define A0 PIN_A0
// SPI Interfaces
// --------------
#define SPI_INTERFACES_COUNT 0
#define PINS_COUNT 15 // Total GPIO count
#define NUM_DIGITAL_PINS 15 // Digital inputs/outputs
#define NUM_ANALOG_INPUTS 1 // ADC inputs
#define NUM_ANALOG_OUTPUTS 6 // PWM & DAC outputs
#define PINS_GPIO_MAX 26 // Last usable GPIO number
// Wire Interfaces
// ---------------
#define WIRE_INTERFACES_COUNT 2
#define PIN_WIRE1_SCL 14u // GPIO20
#define PIN_WIRE1_SDA 13u // GPIO21
#define PIN_WIRE2_SCL 6u // GPIO0
#define PIN_WIRE2_SDA 7u // GPIO1
#define PIN_WIRE1_SCL 20u // GPIO20
#define PIN_WIRE1_SDA 21u // GPIO21
#define PIN_WIRE2_SCL 0u // GPIO0
#define PIN_WIRE2_SDA 1u // GPIO1
// Serial ports
// ------------
#define SERIAL_INTERFACES_COUNT 2
#define PIN_SERIAL1_RX 10u // GPIO10
#define PIN_SERIAL1_TX 11u // GPIO11
#define PIN_SERIAL2_RX 7u // GPIO1
#define PIN_SERIAL2_TX 6u // GPIO0
#define PIN_SERIAL1_RX 10u // GPIO10
#define PIN_SERIAL1_TX 11u // GPIO11
#define PIN_SERIAL2_RX 1u // GPIO1
#define PIN_SERIAL2_TX 0u // GPIO0
// Pin function macros
// -------------------
#define PIN_ADC3 0u // GPIO23
#define PIN_P0 6u // GPIO0
#define PIN_P1 7u // GPIO1
#define PIN_P6 4u // GPIO6
#define PIN_P7 5u // GPIO7
#define PIN_P8 9u // GPIO8
#define PIN_P9 8u // GPIO9
#define PIN_ADC3 23u // GPIO23
#define PIN_P0 0u // GPIO0
#define PIN_P1 1u // GPIO1
#define PIN_P6 6u // GPIO6
#define PIN_P7 7u // GPIO7
#define PIN_P8 8u // GPIO8
#define PIN_P9 9u // GPIO9
#define PIN_P10 10u // GPIO10
#define PIN_P11 11u // GPIO11
#define PIN_P14 1u // GPIO14
#define PIN_P20 14u // GPIO20
#define PIN_P21 13u // GPIO21
#define PIN_P22 12u // GPIO22
#define PIN_P23 0u // GPIO23
#define PIN_P24 3u // GPIO24
#define PIN_P26 2u // GPIO26
#define PIN_PWM0 4u // GPIO6
#define PIN_PWM1 5u // GPIO7
#define PIN_PWM2 9u // GPIO8
#define PIN_PWM3 8u // GPIO9
#define PIN_PWM4 3u // GPIO24
#define PIN_PWM5 2u // GPIO26
#define PIN_P14 14u // GPIO14
#define PIN_P20 20u // GPIO20
#define PIN_P21 21u // GPIO21
#define PIN_P22 22u // GPIO22
#define PIN_P23 23u // GPIO23
#define PIN_P24 24u // GPIO24
#define PIN_P26 26u // GPIO26
#define PIN_PWM0 6u // GPIO6
#define PIN_PWM1 7u // GPIO7
#define PIN_PWM2 8u // GPIO8
#define PIN_PWM3 9u // GPIO9
#define PIN_PWM4 24u // GPIO24
#define PIN_PWM5 26u // GPIO26
#define PIN_RX1 10u // GPIO10
#define PIN_RX2 7u // GPIO1
#define PIN_SCK 1u // GPIO14
#define PIN_SCL1 14u // GPIO20
#define PIN_SCL2 6u // GPIO0
#define PIN_SDA1 13u // GPIO21
#define PIN_SDA2 7u // GPIO1
#define PIN_RX2 1u // GPIO1
#define PIN_SCK 14u // GPIO14
#define PIN_SCL1 20u // GPIO20
#define PIN_SCL2 0u // GPIO0
#define PIN_SDA1 21u // GPIO21
#define PIN_SDA2 1u // GPIO1
#define PIN_TX1 11u // GPIO11
#define PIN_TX2 6u // GPIO0
#define PIN_TX2 0u // GPIO0
// Port availability
// -----------------
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define HAS_WIRE1 1
#define HAS_WIRE2 1
#define HAS_SERIAL1 1
#define HAS_SERIAL2 1
#define HAS_WIRE1 1
#define HAS_WIRE2 1
#define SERIAL_INTERFACES_COUNT 2
#define WIRE_INTERFACES_COUNT 2
// Arduino pin names
// -----------------
#define PIN_D0 23u // GPIO23
#define PIN_D1 14u // GPIO14
#define PIN_D2 26u // GPIO26
#define PIN_D3 24u // GPIO24
#define PIN_D4 6u // GPIO6
#define PIN_D5 7u // GPIO7
#define PIN_D6 0u // GPIO0
#define PIN_D7 1u // GPIO1
#define PIN_D8 9u // GPIO9
#define PIN_D9 8u // GPIO8
#define PIN_D10 10u // GPIO10
#define PIN_D11 11u // GPIO11
#define PIN_D12 22u // GPIO22
#define PIN_D13 21u // GPIO21
#define PIN_D14 20u // GPIO20
#define PIN_A0 23u // GPIO23
// Static pin names
// ----------------
static const unsigned char A0 = PIN_A0;
static const unsigned char D0 = PIN_D0;
static const unsigned char D1 = PIN_D1;
static const unsigned char D2 = PIN_D2;
static const unsigned char D3 = PIN_D3;
static const unsigned char D4 = PIN_D4;
static const unsigned char D5 = PIN_D5;
static const unsigned char D6 = PIN_D6;
static const unsigned char D7 = PIN_D7;
static const unsigned char D8 = PIN_D8;
static const unsigned char D9 = PIN_D9;
static const unsigned char D10 = PIN_D10;
static const unsigned char D11 = PIN_D11;
static const unsigned char D12 = PIN_D12;
static const unsigned char D13 = PIN_D13;
static const unsigned char D14 = PIN_D14;

View File

@@ -2,14 +2,12 @@
#include <Arduino.h>
extern "C" {
#ifdef LT_VARIANT_INCLUDE
#include LT_VARIANT_INCLUDE
#endif
// clang-format off
PinInfo pinTable[PINS_COUNT] = {
PinInfo lt_arduino_pin_info_list[PINS_COUNT] = {
// D0: PA12, PWM3
{PA_12, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
// D1: PA00, PWM2
@@ -27,6 +25,15 @@ PinInfo pinTable[PINS_COUNT] = {
// A1: ADC2
{AD_2, PIN_ADC, PIN_NONE, 0},
};
// clang-format on
} // extern "C"
PinInfo *lt_arduino_pin_gpio_map[] = {
[0] = &(lt_arduino_pin_info_list[1]), // PA_0 (D1)
[5] = &(lt_arduino_pin_info_list[2]), // PA_5 (D2)
[12] = &(lt_arduino_pin_info_list[0]), // PA_12 (D0)
[14] = &(lt_arduino_pin_info_list[5]), // PA_14 (D6)
[15] = &(lt_arduino_pin_info_list[6]), // PA_15 (D7)
[18] = &(lt_arduino_pin_info_list[3]), // PA_18 (D4)
[23] = &(lt_arduino_pin_info_list[4]), // PA_23 (D5)
[41] = &(lt_arduino_pin_info_list[7]), // AD_2 (A1)
};
// clang-format on

View File

@@ -6,52 +6,71 @@
// Pins
// ----
#define PINS_COUNT 8
#define NUM_DIGITAL_PINS 7
#define NUM_ANALOG_INPUTS 1
#define NUM_ANALOG_OUTPUTS 0
// Analog pins
// -----------
#define PIN_A1 7u // AD_2
#define A1 PIN_A1
// SPI Interfaces
// --------------
#define SPI_INTERFACES_COUNT 0
#define PINS_COUNT 8 // Total GPIO count
#define NUM_DIGITAL_PINS 7 // Digital inputs/outputs
#define NUM_ANALOG_INPUTS 1 // ADC inputs
#define NUM_ANALOG_OUTPUTS 6 // PWM & DAC outputs
#define PINS_GPIO_MAX 41 // Last usable GPIO number
// Wire Interfaces
// ---------------
#define WIRE_INTERFACES_COUNT 1
#define PIN_WIRE1_SCL 3u // PA_18
#define PIN_WIRE1_SDA 4u // PA_23
#define PIN_WIRE1_SCL 18u // PA_18
#define PIN_WIRE1_SDA 23u // PA_23
// Serial ports
// ------------
#define SERIAL_INTERFACES_COUNT 1
#define PIN_SERIAL0_RX 3u // PA_18
#define PIN_SERIAL0_TX 4u // PA_23
#define PIN_SERIAL0_RX 18u // PA_18
#define PIN_SERIAL0_TX 23u // PA_23
// Pin function macros
// -------------------
#define PIN_ADC2 7u // AD_2
#define PIN_MOSI0 4u // PA_23
#define PIN_MOSI1 4u // PA_23
#define PIN_PA00 1u // PA_0
#define PIN_PA05 2u // PA_5
#define PIN_PA12 0u // PA_12
#define PIN_PA14 5u // PA_14
#define PIN_PA15 6u // PA_15
#define PIN_PA18 3u // PA_18
#define PIN_PA23 4u // PA_23
#define PIN_RX0 3u // PA_18
#define PIN_SCK0 3u // PA_18
#define PIN_SCK1 3u // PA_18
#define PIN_SCL1 3u // PA_18
#define PIN_SDA1 4u // PA_23
#define PIN_TX0 4u // PA_23
#define PIN_ADC2 41u // AD_2
#define PIN_MOSI0 23u // PA_23
#define PIN_MOSI1 23u // PA_23
#define PIN_PA00 0u // PA_0
#define PIN_PA05 5u // PA_5
#define PIN_PA12 12u // PA_12
#define PIN_PA14 14u // PA_14
#define PIN_PA15 15u // PA_15
#define PIN_PA18 18u // PA_18
#define PIN_PA23 23u // PA_23
#define PIN_PWM0 14u // PA_14
#define PIN_PWM1 15u // PA_15
#define PIN_PWM2 0u // PA_0
#define PIN_PWM3 12u // PA_12
#define PIN_PWM4 5u // PA_5
#define PIN_RX0 18u // PA_18
#define PIN_SCK0 18u // PA_18
#define PIN_SCK1 18u // PA_18
#define PIN_SCL1 18u // PA_18
#define PIN_SDA1 23u // PA_23
#define PIN_TX0 23u // PA_23
// Port availability
// -----------------
#define HAS_SERIAL0 1
#define HAS_WIRE1 1
#define HAS_SERIAL0 1
#define HAS_WIRE1 1
#define SERIAL_INTERFACES_COUNT 1
#define WIRE_INTERFACES_COUNT 1
// Arduino pin names
// -----------------
#define PIN_D0 12u // PA_12
#define PIN_D1 0u // PA_0
#define PIN_D2 5u // PA_5
#define PIN_D4 18u // PA_18
#define PIN_D5 23u // PA_23
#define PIN_D6 14u // PA_14
#define PIN_D7 15u // PA_15
#define PIN_A1 41u // AD_2
// Static pin names
// ----------------
static const unsigned char A1 = PIN_A1;
static const unsigned char D0 = PIN_D0;
static const unsigned char D1 = PIN_D1;
static const unsigned char D2 = PIN_D2;
static const unsigned char D4 = PIN_D4;
static const unsigned char D5 = PIN_D5;
static const unsigned char D6 = PIN_D6;
static const unsigned char D7 = PIN_D7;

View File

@@ -2,14 +2,12 @@
#include <Arduino.h>
extern "C" {
#ifdef LT_VARIANT_INCLUDE
#include LT_VARIANT_INCLUDE
#endif
// clang-format off
PinInfo pinTable[PINS_COUNT] = {
PinInfo lt_arduino_pin_info_list[PINS_COUNT] = {
// D0: PA12, PWM3
{PA_12, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
// D1: PA19, ADC1, UART0_CTS, SPI0_CS, SPI1_CS, I2C0_SDA, SD_D3, TMR5_TRIG, I2S0_TX
@@ -27,6 +25,15 @@ PinInfo pinTable[PINS_COUNT] = {
// A1: ADC2
{AD_2, PIN_ADC, PIN_NONE, 0},
};
// clang-format on
} // extern "C"
PinInfo *lt_arduino_pin_gpio_map[] = {
[5] = &(lt_arduino_pin_info_list[2]), // PA_5 (D2)
[12] = &(lt_arduino_pin_info_list[0]), // PA_12 (D0)
[14] = &(lt_arduino_pin_info_list[5]), // PA_14 (D5)
[15] = &(lt_arduino_pin_info_list[6]), // PA_15 (D6)
[18] = &(lt_arduino_pin_info_list[3]), // PA_18 (D3)
[19] = &(lt_arduino_pin_info_list[1]), // PA_19 (D1)
[23] = &(lt_arduino_pin_info_list[4]), // PA_23 (D4)
[41] = &(lt_arduino_pin_info_list[7]), // AD_2 (A1)
};
// clang-format on

View File

@@ -6,60 +6,78 @@
// Pins
// ----
#define PINS_COUNT 8
#define NUM_DIGITAL_PINS 7
#define NUM_ANALOG_INPUTS 2
#define NUM_ANALOG_OUTPUTS 0
// Analog pins
// -----------
#define PIN_A0 1u // PA_19
#define PIN_A1 7u // AD_2
#define A0 PIN_A0
#define A1 PIN_A1
// SPI Interfaces
// --------------
#define SPI_INTERFACES_COUNT 0
#define PINS_COUNT 8 // Total GPIO count
#define NUM_DIGITAL_PINS 7 // Digital inputs/outputs
#define NUM_ANALOG_INPUTS 2 // ADC inputs
#define NUM_ANALOG_OUTPUTS 5 // PWM & DAC outputs
#define PINS_GPIO_MAX 41 // Last usable GPIO number
// Wire Interfaces
// ---------------
#define WIRE_INTERFACES_COUNT 1
#define PIN_WIRE1_SCL 3u // PA_18
#define PIN_WIRE1_SDA 4u // PA_23
#define PIN_WIRE1_SCL 18u // PA_18
#define PIN_WIRE1_SDA 23u // PA_23
// Serial ports
// ------------
#define SERIAL_INTERFACES_COUNT 1
#define PIN_SERIAL0_CTS 1u // PA_19
#define PIN_SERIAL0_RX 3u // PA_18
#define PIN_SERIAL0_TX 4u // PA_23
#define PIN_SERIAL0_CTS 19u // PA_19
#define PIN_SERIAL0_RX 18u // PA_18
#define PIN_SERIAL0_TX 23u // PA_23
// Pin function macros
// -------------------
#define PIN_ADC1 1u // PA_19
#define PIN_ADC2 7u // AD_2
#define PIN_CS0 1u // PA_19
#define PIN_CS1 1u // PA_19
#define PIN_CTS0 1u // PA_19
#define PIN_MOSI0 4u // PA_23
#define PIN_MOSI1 4u // PA_23
#define PIN_PA05 2u // PA_5
#define PIN_PA12 0u // PA_12
#define PIN_PA14 5u // PA_14
#define PIN_PA15 6u // PA_15
#define PIN_PA18 3u // PA_18
#define PIN_PA19 1u // PA_19
#define PIN_PA23 4u // PA_23
#define PIN_RX0 3u // PA_18
#define PIN_SCK0 3u // PA_18
#define PIN_SCK1 3u // PA_18
#define PIN_SCL1 3u // PA_18
#define PIN_SDA0 1u // PA_19
#define PIN_SDA1 4u // PA_23
#define PIN_TX0 4u // PA_23
#define PIN_ADC1 19u // PA_19
#define PIN_ADC2 41u // AD_2
#define PIN_CS0 19u // PA_19
#define PIN_CS1 19u // PA_19
#define PIN_CTS0 19u // PA_19
#define PIN_MOSI0 23u // PA_23
#define PIN_MOSI1 23u // PA_23
#define PIN_PA05 5u // PA_5
#define PIN_PA12 12u // PA_12
#define PIN_PA14 14u // PA_14
#define PIN_PA15 15u // PA_15
#define PIN_PA18 18u // PA_18
#define PIN_PA19 19u // PA_19
#define PIN_PA23 23u // PA_23
#define PIN_PWM0 14u // PA_14
#define PIN_PWM1 15u // PA_15
#define PIN_PWM3 12u // PA_12
#define PIN_PWM4 5u // PA_5
#define PIN_RX0 18u // PA_18
#define PIN_SCK0 18u // PA_18
#define PIN_SCK1 18u // PA_18
#define PIN_SCL1 18u // PA_18
#define PIN_SDA0 19u // PA_19
#define PIN_SDA1 23u // PA_23
#define PIN_TX0 23u // PA_23
// Port availability
// -----------------
#define HAS_SERIAL0 1
#define HAS_WIRE1 1
#define HAS_SERIAL0 1
#define HAS_WIRE1 1
#define SERIAL_INTERFACES_COUNT 1
#define WIRE_INTERFACES_COUNT 1
// Arduino pin names
// -----------------
#define PIN_D0 12u // PA_12
#define PIN_D1 19u // PA_19
#define PIN_D2 5u // PA_5
#define PIN_D3 18u // PA_18
#define PIN_D4 23u // PA_23
#define PIN_D5 14u // PA_14
#define PIN_D6 15u // PA_15
#define PIN_A0 19u // PA_19
#define PIN_A1 41u // AD_2
// Static pin names
// ----------------
static const unsigned char A0 = PIN_A0;
static const unsigned char A1 = PIN_A1;
static const unsigned char D0 = PIN_D0;
static const unsigned char D1 = PIN_D1;
static const unsigned char D2 = PIN_D2;
static const unsigned char D3 = PIN_D3;
static const unsigned char D4 = PIN_D4;
static const unsigned char D5 = PIN_D5;
static const unsigned char D6 = PIN_D6;

View File

@@ -2,14 +2,12 @@
#include <Arduino.h>
extern "C" {
#ifdef LT_VARIANT_INCLUDE
#include LT_VARIANT_INCLUDE
#endif
// clang-format off
PinInfo pinTable[PINS_COUNT] = {
PinInfo lt_arduino_pin_info_list[PINS_COUNT] = {
// D0: PA15, PWM1, SWDIO
{PA_15, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_SWD, PIN_NONE, 0},
// D1: PA14, PWM0, SWCLK
@@ -21,6 +19,12 @@ PinInfo pinTable[PINS_COUNT] = {
// D4: PA12, PWM3
{PA_12, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
};
// clang-format on
} // extern "C"
PinInfo *lt_arduino_pin_gpio_map[] = {
[5] = &(lt_arduino_pin_info_list[2]), // PA_5 (D2)
[12] = &(lt_arduino_pin_info_list[4]), // PA_12 (D4)
[14] = &(lt_arduino_pin_info_list[1]), // PA_14 (D1)
[15] = &(lt_arduino_pin_info_list[0]), // PA_15 (D0)
[19] = &(lt_arduino_pin_info_list[3]), // PA_19 (D3)
};
// clang-format on

View File

@@ -6,41 +6,43 @@
// Pins
// ----
#define PINS_COUNT 5
#define NUM_DIGITAL_PINS 5
#define NUM_ANALOG_INPUTS 1
#define NUM_ANALOG_OUTPUTS 0
// Analog pins
// -----------
#define PIN_A0 3u // PA_19
#define A0 PIN_A0
// SPI Interfaces
// --------------
#define SPI_INTERFACES_COUNT 0
// Wire Interfaces
// ---------------
#define WIRE_INTERFACES_COUNT 0
// Serial ports
// ------------
#define SERIAL_INTERFACES_COUNT 0
#define PINS_COUNT 5 // Total GPIO count
#define NUM_DIGITAL_PINS 5 // Digital inputs/outputs
#define NUM_ANALOG_INPUTS 1 // ADC inputs
#define NUM_ANALOG_OUTPUTS 4 // PWM & DAC outputs
#define PINS_GPIO_MAX 19 // Last usable GPIO number
// Pin function macros
// -------------------
#define PIN_ADC1 3u // PA_19
#define PIN_CS0 3u // PA_19
#define PIN_CS1 3u // PA_19
#define PIN_CTS0 3u // PA_19
#define PIN_PA05 2u // PA_5
#define PIN_PA12 4u // PA_12
#define PIN_PA14 1u // PA_14
#define PIN_PA15 0u // PA_15
#define PIN_PA19 3u // PA_19
#define PIN_PWM0 1u // PA_14
#define PIN_PWM1 0u // PA_15
#define PIN_PWM3 4u // PA_12
#define PIN_PWM4 2u // PA_5
#define PIN_SDA0 3u // PA_19
#define PIN_ADC1 19u // PA_19
#define PIN_CS0 19u // PA_19
#define PIN_CS1 19u // PA_19
#define PIN_CTS0 19u // PA_19
#define PIN_PA05 5u // PA_5
#define PIN_PA12 12u // PA_12
#define PIN_PA14 14u // PA_14
#define PIN_PA15 15u // PA_15
#define PIN_PA19 19u // PA_19
#define PIN_PWM0 14u // PA_14
#define PIN_PWM1 15u // PA_15
#define PIN_PWM3 12u // PA_12
#define PIN_PWM4 5u // PA_5
#define PIN_SDA0 19u // PA_19
// Arduino pin names
// -----------------
#define PIN_D0 15u // PA_15
#define PIN_D1 14u // PA_14
#define PIN_D2 5u // PA_5
#define PIN_D3 19u // PA_19
#define PIN_D4 12u // PA_12
#define PIN_A0 19u // PA_19
// Static pin names
// ----------------
static const unsigned char A0 = PIN_A0;
static const unsigned char D0 = PIN_D0;
static const unsigned char D1 = PIN_D1;
static const unsigned char D2 = PIN_D2;
static const unsigned char D3 = PIN_D3;
static const unsigned char D4 = PIN_D4;

View File

@@ -2,14 +2,12 @@
#include <Arduino.h>
extern "C" {
#ifdef LT_VARIANT_INCLUDE
#include LT_VARIANT_INCLUDE
#endif
// clang-format off
PinInfo pinTable[PINS_COUNT] = {
PinInfo lt_arduino_pin_info_list[PINS_COUNT] = {
// D0: PA15, PWM1, SWDIO
{PA_15, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_SWD, PIN_NONE, 0},
// D1: PA14, PWM0, SWCLK
@@ -21,6 +19,12 @@ PinInfo pinTable[PINS_COUNT] = {
// D4: PA12, PWM3
{PA_12, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
};
// clang-format on
} // extern "C"
PinInfo *lt_arduino_pin_gpio_map[] = {
[5] = &(lt_arduino_pin_info_list[2]), // PA_5 (D2)
[12] = &(lt_arduino_pin_info_list[4]), // PA_12 (D4)
[14] = &(lt_arduino_pin_info_list[1]), // PA_14 (D1)
[15] = &(lt_arduino_pin_info_list[0]), // PA_15 (D0)
[22] = &(lt_arduino_pin_info_list[3]), // PA_22 (D3)
};
// clang-format on

View File

@@ -6,35 +6,41 @@
// Pins
// ----
#define PINS_COUNT 5
#define NUM_DIGITAL_PINS 5
#define NUM_ANALOG_OUTPUTS 0
// SPI Interfaces
// --------------
#define SPI_INTERFACES_COUNT 0
// Wire Interfaces
// ---------------
#define WIRE_INTERFACES_COUNT 0
// Serial ports
// ------------
#define SERIAL_INTERFACES_COUNT 0
#define PINS_COUNT 5 // Total GPIO count
#define NUM_DIGITAL_PINS 5 // Digital inputs/outputs
#define NUM_ANALOG_INPUTS 0 // ADC inputs
#define NUM_ANALOG_OUTPUTS 5 // PWM & DAC outputs
#define PINS_GPIO_MAX 22 // Last usable GPIO number
// Pin function macros
// -------------------
#define PIN_MISO0 3u // PA_22
#define PIN_MISO1 3u // PA_22
#define PIN_PA05 2u // PA_5
#define PIN_PA12 4u // PA_12
#define PIN_PA14 1u // PA_14
#define PIN_PA15 0u // PA_15
#define PIN_PA22 3u // PA_22
#define PIN_PWM0 1u // PA_14
#define PIN_PWM1 0u // PA_15
#define PIN_PWM3 4u // PA_12
#define PIN_PWM4 2u // PA_5
#define PIN_PWM5 3u // PA_22
#define PIN_RTS0 3u // PA_22
#define PIN_SCL0 3u // PA_22
#define PIN_MISO0 22u // PA_22
#define PIN_MISO1 22u // PA_22
#define PIN_PA05 5u // PA_5
#define PIN_PA12 12u // PA_12
#define PIN_PA14 14u // PA_14
#define PIN_PA15 15u // PA_15
#define PIN_PA22 22u // PA_22
#define PIN_PWM0 14u // PA_14
#define PIN_PWM1 15u // PA_15
#define PIN_PWM3 12u // PA_12
#define PIN_PWM4 5u // PA_5
#define PIN_PWM5 22u // PA_22
#define PIN_RTS0 22u // PA_22
#define PIN_SCL0 22u // PA_22
// Arduino pin names
// -----------------
#define PIN_D0 15u // PA_15
#define PIN_D1 14u // PA_14
#define PIN_D2 5u // PA_5
#define PIN_D3 22u // PA_22
#define PIN_D4 12u // PA_12
// Static pin names
// ----------------
static const unsigned char D0 = PIN_D0;
static const unsigned char D1 = PIN_D1;
static const unsigned char D2 = PIN_D2;
static const unsigned char D3 = PIN_D3;
static const unsigned char D4 = PIN_D4;

View File

@@ -2,14 +2,12 @@
#include <Arduino.h>
extern "C" {
#ifdef LT_VARIANT_INCLUDE
#include LT_VARIANT_INCLUDE
#endif
// clang-format off
PinInfo pinTable[PINS_COUNT] = {
PinInfo lt_arduino_pin_info_list[PINS_COUNT] = {
// D0: PA22, UART0_RTS, SPI0_MISO, SPI1_MISO, I2C0_SCL, SD_D0, PWM5, I2S0_WS, WAKE2
{PA_22, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_I2C | PIN_I2S | PIN_SPI | PIN_UART, PIN_NONE, 0},
// D1: PA19, ADC1, UART0_CTS, SPI0_CS, SPI1_CS, I2C0_SDA, SD_D3, TMR5_TRIG, I2S0_TX
@@ -35,6 +33,19 @@ PinInfo pinTable[PINS_COUNT] = {
// A1: ADC2
{AD_2, PIN_ADC, PIN_NONE, 0},
};
// clang-format on
} // extern "C"
PinInfo *lt_arduino_pin_gpio_map[] = {
[0] = &(lt_arduino_pin_info_list[4]), // PA_0 (D4)
[5] = &(lt_arduino_pin_info_list[7]), // PA_5 (D7)
[12] = &(lt_arduino_pin_info_list[8]), // PA_12 (D8)
[14] = &(lt_arduino_pin_info_list[2]), // PA_14 (D2)
[15] = &(lt_arduino_pin_info_list[3]), // PA_15 (D3)
[18] = &(lt_arduino_pin_info_list[9]), // PA_18 (D9)
[19] = &(lt_arduino_pin_info_list[1]), // PA_19 (D1)
[22] = &(lt_arduino_pin_info_list[0]), // PA_22 (D0)
[23] = &(lt_arduino_pin_info_list[10]), // PA_23 (D10)
[29] = &(lt_arduino_pin_info_list[5]), // PA_29 (D5)
[30] = &(lt_arduino_pin_info_list[6]), // PA_30 (D6)
[41] = &(lt_arduino_pin_info_list[11]), // AD_2 (A1)
};
// clang-format on

View File

@@ -6,85 +6,121 @@
// Pins
// ----
#define PINS_COUNT 12
#define NUM_DIGITAL_PINS 11
#define NUM_ANALOG_INPUTS 2
#define NUM_ANALOG_OUTPUTS 0
// Analog pins
// -----------
#define PIN_A0 1u // PA_19
#define PIN_A1 11u // AD_2
#define A0 PIN_A0
#define A1 PIN_A1
#define PINS_COUNT 12 // Total GPIO count
#define NUM_DIGITAL_PINS 11 // Digital inputs/outputs
#define NUM_ANALOG_INPUTS 2 // ADC inputs
#define NUM_ANALOG_OUTPUTS 9 // PWM & DAC outputs
#define PINS_GPIO_MAX 41 // Last usable GPIO number
// SPI Interfaces
// --------------
#define SPI_INTERFACES_COUNT 2
#define PIN_SPI0_CS 1u // PA_19
#define PIN_SPI0_MISO 0u // PA_22
#define PIN_SPI0_MOSI 10u // PA_23
#define PIN_SPI0_SCK 9u // PA_18
#define PIN_SPI1_CS 1u // PA_19
#define PIN_SPI1_MISO 0u // PA_22
#define PIN_SPI1_MOSI 10u // PA_23
#define PIN_SPI1_SCK 9u // PA_18
#define PIN_SPI0_CS 19u // PA_19
#define PIN_SPI0_MISO 22u // PA_22
#define PIN_SPI0_MOSI 23u // PA_23
#define PIN_SPI0_SCK 18u // PA_18
#define PIN_SPI1_CS 19u // PA_19
#define PIN_SPI1_MISO 22u // PA_22
#define PIN_SPI1_MOSI 23u // PA_23
#define PIN_SPI1_SCK 18u // PA_18
// Wire Interfaces
// ---------------
#define WIRE_INTERFACES_COUNT 2
#define PIN_WIRE0_SCL_0 0u // PA_22
#define PIN_WIRE0_SCL_1 5u // PA_29
#define PIN_WIRE0_SDA_0 1u // PA_19
#define PIN_WIRE0_SDA_1 6u // PA_30
#define PIN_WIRE1_SCL 9u // PA_18
#define PIN_WIRE1_SDA 10u // PA_23
#define PIN_WIRE0_SCL_0 22u // PA_22
#define PIN_WIRE0_SCL_1 29u // PA_29
#define PIN_WIRE0_SDA_0 19u // PA_19
#define PIN_WIRE0_SDA_1 30u // PA_30
#define PIN_WIRE1_SCL 18u // PA_18
#define PIN_WIRE1_SDA 23u // PA_23
// Serial ports
// ------------
#define SERIAL_INTERFACES_COUNT 2
#define PIN_SERIAL0_CTS 1u // PA_19
#define PIN_SERIAL0_RTS 0u // PA_22
#define PIN_SERIAL0_RX 9u // PA_18
#define PIN_SERIAL0_TX 10u // PA_23
#define PIN_SERIAL2_RX 5u // PA_29
#define PIN_SERIAL2_TX 6u // PA_30
#define PIN_SERIAL0_CTS 19u // PA_19
#define PIN_SERIAL0_RTS 22u // PA_22
#define PIN_SERIAL0_RX 18u // PA_18
#define PIN_SERIAL0_TX 23u // PA_23
#define PIN_SERIAL2_RX 29u // PA_29
#define PIN_SERIAL2_TX 30u // PA_30
// Pin function macros
// -------------------
#define PIN_ADC1 1u // PA_19
#define PIN_ADC2 11u // AD_2
#define PIN_CS0 1u // PA_19
#define PIN_CS1 1u // PA_19
#define PIN_CTS0 1u // PA_19
#define PIN_MISO0 0u // PA_22
#define PIN_MISO1 0u // PA_22
#define PIN_MOSI0 10u // PA_23
#define PIN_MOSI1 10u // PA_23
#define PIN_PA00 4u // PA_0
#define PIN_PA05 7u // PA_5
#define PIN_PA12 8u // PA_12
#define PIN_PA14 2u // PA_14
#define PIN_PA15 3u // PA_15
#define PIN_PA18 9u // PA_18
#define PIN_PA19 1u // PA_19
#define PIN_PA22 0u // PA_22
#define PIN_PA23 10u // PA_23
#define PIN_PA29 5u // PA_29
#define PIN_PA30 6u // PA_30
#define PIN_RTS0 0u // PA_22
#define PIN_RX0 9u // PA_18
#define PIN_RX2 5u // PA_29
#define PIN_SCK0 9u // PA_18
#define PIN_SCK1 9u // PA_18
#define PIN_TX0 10u // PA_23
#define PIN_TX2 6u // PA_30
#define PIN_ADC1 19u // PA_19
#define PIN_ADC2 41u // AD_2
#define PIN_CS0 19u // PA_19
#define PIN_CS1 19u // PA_19
#define PIN_CTS0 19u // PA_19
#define PIN_MISO0 22u // PA_22
#define PIN_MISO1 22u // PA_22
#define PIN_MOSI0 23u // PA_23
#define PIN_MOSI1 23u // PA_23
#define PIN_PA00 0u // PA_0
#define PIN_PA05 5u // PA_5
#define PIN_PA12 12u // PA_12
#define PIN_PA14 14u // PA_14
#define PIN_PA15 15u // PA_15
#define PIN_PA18 18u // PA_18
#define PIN_PA19 19u // PA_19
#define PIN_PA22 22u // PA_22
#define PIN_PA23 23u // PA_23
#define PIN_PA29 29u // PA_29
#define PIN_PA30 30u // PA_30
#define PIN_PWM0 23u // PA_23
#define PIN_PWM1 15u // PA_15
#define PIN_PWM2 0u // PA_0
#define PIN_PWM3 12u // PA_12
#define PIN_PWM4 5u // PA_5
#define PIN_PWM5 22u // PA_22
#define PIN_RTS0 22u // PA_22
#define PIN_RX0 18u // PA_18
#define PIN_RX2 29u // PA_29
#define PIN_SCK0 18u // PA_18
#define PIN_SCK1 18u // PA_18
#define PIN_SCL0 29u // PA_29
#define PIN_SCL1 18u // PA_18
#define PIN_SDA0 30u // PA_30
#define PIN_SDA1 23u // PA_23
#define PIN_TX0 23u // PA_23
#define PIN_TX2 30u // PA_30
// Port availability
// -----------------
#define HAS_SERIAL0 1
#define HAS_SERIAL2 1
#define HAS_SPI0 1
#define HAS_SPI1 1
#define HAS_WIRE0 1
#define HAS_WIRE1 1
#define HAS_SERIAL0 1
#define HAS_SERIAL2 1
#define HAS_SPI0 1
#define HAS_SPI1 1
#define HAS_WIRE0 1
#define HAS_WIRE1 1
#define SERIAL_INTERFACES_COUNT 2
#define SPI_INTERFACES_COUNT 2
#define WIRE_INTERFACES_COUNT 2
// Arduino pin names
// -----------------
#define PIN_D0 22u // PA_22
#define PIN_D1 19u // PA_19
#define PIN_D2 14u // PA_14
#define PIN_D3 15u // PA_15
#define PIN_D4 0u // PA_0
#define PIN_D5 29u // PA_29
#define PIN_D6 30u // PA_30
#define PIN_D7 5u // PA_5
#define PIN_D8 12u // PA_12
#define PIN_D9 18u // PA_18
#define PIN_D10 23u // PA_23
#define PIN_A0 19u // PA_19
#define PIN_A1 41u // AD_2
// Static pin names
// ----------------
static const unsigned char A0 = PIN_A0;
static const unsigned char A1 = PIN_A1;
static const unsigned char D0 = PIN_D0;
static const unsigned char D1 = PIN_D1;
static const unsigned char D2 = PIN_D2;
static const unsigned char D3 = PIN_D3;
static const unsigned char D4 = PIN_D4;
static const unsigned char D5 = PIN_D5;
static const unsigned char D6 = PIN_D6;
static const unsigned char D7 = PIN_D7;
static const unsigned char D8 = PIN_D8;
static const unsigned char D9 = PIN_D9;
static const unsigned char D10 = PIN_D10;

View File

@@ -2,14 +2,12 @@
#include <Arduino.h>
extern "C" {
#ifdef LT_VARIANT_INCLUDE
#include LT_VARIANT_INCLUDE
#endif
// clang-format off
PinInfo pinTable[PINS_COUNT] = {
PinInfo lt_arduino_pin_info_list[PINS_COUNT] = {
// D0: PA29, UART2_RX, I2C0_SCL, PWM4
{PA_29, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_I2C | PIN_UART, PIN_NONE, 0},
// D1: PA14, PWM0, SWCLK
@@ -35,6 +33,19 @@ PinInfo pinTable[PINS_COUNT] = {
// A1: ADC2
{AD_2, PIN_ADC, PIN_NONE, 0},
};
// clang-format on
} // extern "C"
PinInfo *lt_arduino_pin_gpio_map[] = {
[0] = &(lt_arduino_pin_info_list[4]), // PA_0 (D4)
[5] = &(lt_arduino_pin_info_list[7]), // PA_5 (D7)
[12] = &(lt_arduino_pin_info_list[8]), // PA_12 (D8)
[14] = &(lt_arduino_pin_info_list[1]), // PA_14 (D1)
[15] = &(lt_arduino_pin_info_list[2]), // PA_15 (D2)
[18] = &(lt_arduino_pin_info_list[9]), // PA_18 (D9)
[19] = &(lt_arduino_pin_info_list[6]), // PA_19 (D6)
[22] = &(lt_arduino_pin_info_list[3]), // PA_22 (D3)
[23] = &(lt_arduino_pin_info_list[10]), // PA_23 (D10)
[29] = &(lt_arduino_pin_info_list[0]), // PA_29 (D0)
[30] = &(lt_arduino_pin_info_list[5]), // PA_30 (D5)
[41] = &(lt_arduino_pin_info_list[11]), // AD_2 (A1)
};
// clang-format on

View File

@@ -6,85 +6,121 @@
// Pins
// ----
#define PINS_COUNT 12
#define NUM_ANALOG_INPUTS 2
#define NUM_DIGITAL_PINS 11
#define NUM_ANALOG_OUTPUTS 0
// Analog pins
// -----------
#define PIN_A1 11u // AD_2
#define PIN_A0 6u // PA_19
#define A1 PIN_A1
#define A0 PIN_A0
#define PINS_COUNT 12 // Total GPIO count
#define NUM_DIGITAL_PINS 11 // Digital inputs/outputs
#define NUM_ANALOG_INPUTS 2 // ADC inputs
#define NUM_ANALOG_OUTPUTS 9 // PWM & DAC outputs
#define PINS_GPIO_MAX 41 // Last usable GPIO number
// SPI Interfaces
// --------------
#define SPI_INTERFACES_COUNT 2
#define PIN_SPI0_CS 6u // PA_19
#define PIN_SPI0_MISO 3u // PA_22
#define PIN_SPI0_MOSI 10u // PA_23
#define PIN_SPI0_SCK 9u // PA_18
#define PIN_SPI1_CS 6u // PA_19
#define PIN_SPI1_MISO 3u // PA_22
#define PIN_SPI1_MOSI 10u // PA_23
#define PIN_SPI1_SCK 9u // PA_18
#define PIN_SPI0_CS 19u // PA_19
#define PIN_SPI0_MISO 22u // PA_22
#define PIN_SPI0_MOSI 23u // PA_23
#define PIN_SPI0_SCK 18u // PA_18
#define PIN_SPI1_CS 19u // PA_19
#define PIN_SPI1_MISO 22u // PA_22
#define PIN_SPI1_MOSI 23u // PA_23
#define PIN_SPI1_SCK 18u // PA_18
// Wire Interfaces
// ---------------
#define WIRE_INTERFACES_COUNT 2
#define PIN_WIRE0_SCL_0 0u // PA_29
#define PIN_WIRE0_SCL_1 3u // PA_22
#define PIN_WIRE0_SDA_0 5u // PA_30
#define PIN_WIRE0_SDA_1 6u // PA_19
#define PIN_WIRE1_SCL 9u // PA_18
#define PIN_WIRE1_SDA 10u // PA_23
#define PIN_WIRE0_SCL_0 29u // PA_29
#define PIN_WIRE0_SCL_1 22u // PA_22
#define PIN_WIRE0_SDA_0 30u // PA_30
#define PIN_WIRE0_SDA_1 19u // PA_19
#define PIN_WIRE1_SCL 18u // PA_18
#define PIN_WIRE1_SDA 23u // PA_23
// Serial ports
// ------------
#define SERIAL_INTERFACES_COUNT 2
#define PIN_SERIAL0_CTS 6u // PA_19
#define PIN_SERIAL0_RTS 3u // PA_22
#define PIN_SERIAL0_RX 9u // PA_18
#define PIN_SERIAL0_TX 10u // PA_23
#define PIN_SERIAL2_RX 0u // PA_29
#define PIN_SERIAL2_TX 5u // PA_30
#define PIN_SERIAL0_CTS 19u // PA_19
#define PIN_SERIAL0_RTS 22u // PA_22
#define PIN_SERIAL0_RX 18u // PA_18
#define PIN_SERIAL0_TX 23u // PA_23
#define PIN_SERIAL2_RX 29u // PA_29
#define PIN_SERIAL2_TX 30u // PA_30
// Pin function macros
// -------------------
#define PIN_ADC1 6u // PA_19
#define PIN_ADC2 11u // AD_2
#define PIN_CS0 6u // PA_19
#define PIN_CS1 6u // PA_19
#define PIN_CTS0 6u // PA_19
#define PIN_MISO0 3u // PA_22
#define PIN_MISO1 3u // PA_22
#define PIN_MOSI0 10u // PA_23
#define PIN_MOSI1 10u // PA_23
#define PIN_PA00 4u // PA_0
#define PIN_PA05 7u // PA_5
#define PIN_PA12 8u // PA_12
#define PIN_PA14 1u // PA_14
#define PIN_PA15 2u // PA_15
#define PIN_PA18 9u // PA_18
#define PIN_PA19 6u // PA_19
#define PIN_PA22 3u // PA_22
#define PIN_PA23 10u // PA_23
#define PIN_PA29 0u // PA_29
#define PIN_PA30 5u // PA_30
#define PIN_RTS0 3u // PA_22
#define PIN_RX0 9u // PA_18
#define PIN_RX2 0u // PA_29
#define PIN_SCK0 9u // PA_18
#define PIN_SCK1 9u // PA_18
#define PIN_TX0 10u // PA_23
#define PIN_TX2 5u // PA_30
#define PIN_ADC1 19u // PA_19
#define PIN_ADC2 41u // AD_2
#define PIN_CS0 19u // PA_19
#define PIN_CS1 19u // PA_19
#define PIN_CTS0 19u // PA_19
#define PIN_MISO0 22u // PA_22
#define PIN_MISO1 22u // PA_22
#define PIN_MOSI0 23u // PA_23
#define PIN_MOSI1 23u // PA_23
#define PIN_PA00 0u // PA_0
#define PIN_PA05 5u // PA_5
#define PIN_PA12 12u // PA_12
#define PIN_PA14 14u // PA_14
#define PIN_PA15 15u // PA_15
#define PIN_PA18 18u // PA_18
#define PIN_PA19 19u // PA_19
#define PIN_PA22 22u // PA_22
#define PIN_PA23 23u // PA_23
#define PIN_PA29 29u // PA_29
#define PIN_PA30 30u // PA_30
#define PIN_PWM0 23u // PA_23
#define PIN_PWM1 15u // PA_15
#define PIN_PWM2 0u // PA_0
#define PIN_PWM3 12u // PA_12
#define PIN_PWM4 5u // PA_5
#define PIN_PWM5 22u // PA_22
#define PIN_RTS0 22u // PA_22
#define PIN_RX0 18u // PA_18
#define PIN_RX2 29u // PA_29
#define PIN_SCK0 18u // PA_18
#define PIN_SCK1 18u // PA_18
#define PIN_SCL0 22u // PA_22
#define PIN_SCL1 18u // PA_18
#define PIN_SDA0 19u // PA_19
#define PIN_SDA1 23u // PA_23
#define PIN_TX0 23u // PA_23
#define PIN_TX2 30u // PA_30
// Port availability
// -----------------
#define HAS_SERIAL0 1
#define HAS_SERIAL2 1
#define HAS_SPI0 1
#define HAS_SPI1 1
#define HAS_WIRE0 1
#define HAS_WIRE1 1
#define HAS_SERIAL0 1
#define HAS_SERIAL2 1
#define HAS_SPI0 1
#define HAS_SPI1 1
#define HAS_WIRE0 1
#define HAS_WIRE1 1
#define SERIAL_INTERFACES_COUNT 2
#define SPI_INTERFACES_COUNT 2
#define WIRE_INTERFACES_COUNT 2
// Arduino pin names
// -----------------
#define PIN_D0 29u // PA_29
#define PIN_D1 14u // PA_14
#define PIN_D2 15u // PA_15
#define PIN_D3 22u // PA_22
#define PIN_D4 0u // PA_0
#define PIN_D5 30u // PA_30
#define PIN_D6 19u // PA_19
#define PIN_D7 5u // PA_5
#define PIN_D8 12u // PA_12
#define PIN_D9 18u // PA_18
#define PIN_D10 23u // PA_23
#define PIN_A0 19u // PA_19
#define PIN_A1 41u // AD_2
// Static pin names
// ----------------
static const unsigned char A0 = PIN_A0;
static const unsigned char A1 = PIN_A1;
static const unsigned char D0 = PIN_D0;
static const unsigned char D1 = PIN_D1;
static const unsigned char D2 = PIN_D2;
static const unsigned char D3 = PIN_D3;
static const unsigned char D4 = PIN_D4;
static const unsigned char D5 = PIN_D5;
static const unsigned char D6 = PIN_D6;
static const unsigned char D7 = PIN_D7;
static const unsigned char D8 = PIN_D8;
static const unsigned char D9 = PIN_D9;
static const unsigned char D10 = PIN_D10;

View File

@@ -2,14 +2,12 @@
#include <Arduino.h>
extern "C" {
#ifdef LT_VARIANT_INCLUDE
#include LT_VARIANT_INCLUDE
#endif
// clang-format off
PinInfo pinTable[PINS_COUNT] = {
PinInfo lt_arduino_pin_info_list[PINS_COUNT] = {
// D0: PA22, UART0_RTS, SPI0_MISO, SPI1_MISO, I2C0_SCL, SD_D0, PWM5, I2S0_WS, WAKE2
{PA_22, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_I2C | PIN_I2S | PIN_SPI | PIN_UART, PIN_NONE, 0},
// D1: PA19, ADC1, UART0_CTS, SPI0_CS, SPI1_CS, I2C0_SDA, SD_D3, TMR5_TRIG, I2S0_TX
@@ -35,6 +33,19 @@ PinInfo pinTable[PINS_COUNT] = {
// A1: ADC2
{AD_2, PIN_ADC, PIN_NONE, 0},
};
// clang-format on
} // extern "C"
PinInfo *lt_arduino_pin_gpio_map[] = {
[0] = &(lt_arduino_pin_info_list[4]), // PA_0 (D4)
[5] = &(lt_arduino_pin_info_list[7]), // PA_5 (D7)
[12] = &(lt_arduino_pin_info_list[8]), // PA_12 (D8)
[14] = &(lt_arduino_pin_info_list[2]), // PA_14 (D2)
[15] = &(lt_arduino_pin_info_list[3]), // PA_15 (D3)
[18] = &(lt_arduino_pin_info_list[9]), // PA_18 (D9)
[19] = &(lt_arduino_pin_info_list[1]), // PA_19 (D1)
[22] = &(lt_arduino_pin_info_list[0]), // PA_22 (D0)
[23] = &(lt_arduino_pin_info_list[10]), // PA_23 (D10)
[29] = &(lt_arduino_pin_info_list[5]), // PA_29 (D5)
[30] = &(lt_arduino_pin_info_list[6]), // PA_30 (D6)
[41] = &(lt_arduino_pin_info_list[11]), // AD_2 (A1)
};
// clang-format on

View File

@@ -6,85 +6,121 @@
// Pins
// ----
#define PINS_COUNT 12
#define NUM_DIGITAL_PINS 11
#define NUM_ANALOG_INPUTS 2
#define NUM_ANALOG_OUTPUTS 0
// Analog pins
// -----------
#define PIN_A0 1u // PA_19
#define PIN_A1 11u // AD_2
#define A0 PIN_A0
#define A1 PIN_A1
#define PINS_COUNT 12 // Total GPIO count
#define NUM_DIGITAL_PINS 11 // Digital inputs/outputs
#define NUM_ANALOG_INPUTS 2 // ADC inputs
#define NUM_ANALOG_OUTPUTS 9 // PWM & DAC outputs
#define PINS_GPIO_MAX 41 // Last usable GPIO number
// SPI Interfaces
// --------------
#define SPI_INTERFACES_COUNT 2
#define PIN_SPI0_CS 1u // PA_19
#define PIN_SPI0_MISO 0u // PA_22
#define PIN_SPI0_MOSI 10u // PA_23
#define PIN_SPI0_SCK 9u // PA_18
#define PIN_SPI1_CS 1u // PA_19
#define PIN_SPI1_MISO 0u // PA_22
#define PIN_SPI1_MOSI 10u // PA_23
#define PIN_SPI1_SCK 9u // PA_18
#define PIN_SPI0_CS 19u // PA_19
#define PIN_SPI0_MISO 22u // PA_22
#define PIN_SPI0_MOSI 23u // PA_23
#define PIN_SPI0_SCK 18u // PA_18
#define PIN_SPI1_CS 19u // PA_19
#define PIN_SPI1_MISO 22u // PA_22
#define PIN_SPI1_MOSI 23u // PA_23
#define PIN_SPI1_SCK 18u // PA_18
// Wire Interfaces
// ---------------
#define WIRE_INTERFACES_COUNT 2
#define PIN_WIRE0_SCL_0 0u // PA_22
#define PIN_WIRE0_SCL_1 5u // PA_29
#define PIN_WIRE0_SDA_0 1u // PA_19
#define PIN_WIRE0_SDA_1 6u // PA_30
#define PIN_WIRE1_SCL 9u // PA_18
#define PIN_WIRE1_SDA 10u // PA_23
#define PIN_WIRE0_SCL_0 22u // PA_22
#define PIN_WIRE0_SCL_1 29u // PA_29
#define PIN_WIRE0_SDA_0 19u // PA_19
#define PIN_WIRE0_SDA_1 30u // PA_30
#define PIN_WIRE1_SCL 18u // PA_18
#define PIN_WIRE1_SDA 23u // PA_23
// Serial ports
// ------------
#define SERIAL_INTERFACES_COUNT 2
#define PIN_SERIAL0_CTS 1u // PA_19
#define PIN_SERIAL0_RTS 0u // PA_22
#define PIN_SERIAL0_RX 9u // PA_18
#define PIN_SERIAL0_TX 10u // PA_23
#define PIN_SERIAL2_RX 5u // PA_29
#define PIN_SERIAL2_TX 6u // PA_30
#define PIN_SERIAL0_CTS 19u // PA_19
#define PIN_SERIAL0_RTS 22u // PA_22
#define PIN_SERIAL0_RX 18u // PA_18
#define PIN_SERIAL0_TX 23u // PA_23
#define PIN_SERIAL2_RX 29u // PA_29
#define PIN_SERIAL2_TX 30u // PA_30
// Pin function macros
// -------------------
#define PIN_ADC1 1u // PA_19
#define PIN_ADC2 11u // AD_2
#define PIN_CS0 1u // PA_19
#define PIN_CS1 1u // PA_19
#define PIN_CTS0 1u // PA_19
#define PIN_MISO0 0u // PA_22
#define PIN_MISO1 0u // PA_22
#define PIN_MOSI0 10u // PA_23
#define PIN_MOSI1 10u // PA_23
#define PIN_PA00 4u // PA_0
#define PIN_PA05 7u // PA_5
#define PIN_PA12 8u // PA_12
#define PIN_PA14 2u // PA_14
#define PIN_PA15 3u // PA_15
#define PIN_PA18 9u // PA_18
#define PIN_PA19 1u // PA_19
#define PIN_PA22 0u // PA_22
#define PIN_PA23 10u // PA_23
#define PIN_PA29 5u // PA_29
#define PIN_PA30 6u // PA_30
#define PIN_RTS0 0u // PA_22
#define PIN_RX0 9u // PA_18
#define PIN_RX2 5u // PA_29
#define PIN_SCK0 9u // PA_18
#define PIN_SCK1 9u // PA_18
#define PIN_TX0 10u // PA_23
#define PIN_TX2 6u // PA_30
#define PIN_ADC1 19u // PA_19
#define PIN_ADC2 41u // AD_2
#define PIN_CS0 19u // PA_19
#define PIN_CS1 19u // PA_19
#define PIN_CTS0 19u // PA_19
#define PIN_MISO0 22u // PA_22
#define PIN_MISO1 22u // PA_22
#define PIN_MOSI0 23u // PA_23
#define PIN_MOSI1 23u // PA_23
#define PIN_PA00 0u // PA_0
#define PIN_PA05 5u // PA_5
#define PIN_PA12 12u // PA_12
#define PIN_PA14 14u // PA_14
#define PIN_PA15 15u // PA_15
#define PIN_PA18 18u // PA_18
#define PIN_PA19 19u // PA_19
#define PIN_PA22 22u // PA_22
#define PIN_PA23 23u // PA_23
#define PIN_PA29 29u // PA_29
#define PIN_PA30 30u // PA_30
#define PIN_PWM0 23u // PA_23
#define PIN_PWM1 15u // PA_15
#define PIN_PWM2 0u // PA_0
#define PIN_PWM3 12u // PA_12
#define PIN_PWM4 5u // PA_5
#define PIN_PWM5 22u // PA_22
#define PIN_RTS0 22u // PA_22
#define PIN_RX0 18u // PA_18
#define PIN_RX2 29u // PA_29
#define PIN_SCK0 18u // PA_18
#define PIN_SCK1 18u // PA_18
#define PIN_SCL0 29u // PA_29
#define PIN_SCL1 18u // PA_18
#define PIN_SDA0 30u // PA_30
#define PIN_SDA1 23u // PA_23
#define PIN_TX0 23u // PA_23
#define PIN_TX2 30u // PA_30
// Port availability
// -----------------
#define HAS_SERIAL0 1
#define HAS_SERIAL2 1
#define HAS_SPI0 1
#define HAS_SPI1 1
#define HAS_WIRE0 1
#define HAS_WIRE1 1
#define HAS_SERIAL0 1
#define HAS_SERIAL2 1
#define HAS_SPI0 1
#define HAS_SPI1 1
#define HAS_WIRE0 1
#define HAS_WIRE1 1
#define SERIAL_INTERFACES_COUNT 2
#define SPI_INTERFACES_COUNT 2
#define WIRE_INTERFACES_COUNT 2
// Arduino pin names
// -----------------
#define PIN_D0 22u // PA_22
#define PIN_D1 19u // PA_19
#define PIN_D2 14u // PA_14
#define PIN_D3 15u // PA_15
#define PIN_D4 0u // PA_0
#define PIN_D5 29u // PA_29
#define PIN_D6 30u // PA_30
#define PIN_D7 5u // PA_5
#define PIN_D8 12u // PA_12
#define PIN_D9 18u // PA_18
#define PIN_D10 23u // PA_23
#define PIN_A0 19u // PA_19
#define PIN_A1 41u // AD_2
// Static pin names
// ----------------
static const unsigned char A0 = PIN_A0;
static const unsigned char A1 = PIN_A1;
static const unsigned char D0 = PIN_D0;
static const unsigned char D1 = PIN_D1;
static const unsigned char D2 = PIN_D2;
static const unsigned char D3 = PIN_D3;
static const unsigned char D4 = PIN_D4;
static const unsigned char D5 = PIN_D5;
static const unsigned char D6 = PIN_D6;
static const unsigned char D7 = PIN_D7;
static const unsigned char D8 = PIN_D8;
static const unsigned char D9 = PIN_D9;
static const unsigned char D10 = PIN_D10;

View File

@@ -2,14 +2,12 @@
#include <Arduino.h>
extern "C" {
#ifdef LT_VARIANT_INCLUDE
#include LT_VARIANT_INCLUDE
#endif
// clang-format off
PinInfo pinTable[PINS_COUNT] = {
PinInfo lt_arduino_pin_info_list[PINS_COUNT] = {
// D0: PA29, UART2_RX, I2C0_SCL, PWM4
{PA_29, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_I2C | PIN_UART, PIN_NONE, 0},
// D1: PA14, PWM0, SWCLK
@@ -35,6 +33,19 @@ PinInfo pinTable[PINS_COUNT] = {
// A1: ADC2
{AD_2, PIN_ADC, PIN_NONE, 0},
};
// clang-format on
} // extern "C"
PinInfo *lt_arduino_pin_gpio_map[] = {
[0] = &(lt_arduino_pin_info_list[4]), // PA_0 (D4)
[5] = &(lt_arduino_pin_info_list[7]), // PA_5 (D7)
[12] = &(lt_arduino_pin_info_list[8]), // PA_12 (D8)
[14] = &(lt_arduino_pin_info_list[1]), // PA_14 (D1)
[15] = &(lt_arduino_pin_info_list[2]), // PA_15 (D2)
[18] = &(lt_arduino_pin_info_list[9]), // PA_18 (D9)
[19] = &(lt_arduino_pin_info_list[6]), // PA_19 (D6)
[22] = &(lt_arduino_pin_info_list[3]), // PA_22 (D3)
[23] = &(lt_arduino_pin_info_list[10]), // PA_23 (D10)
[29] = &(lt_arduino_pin_info_list[0]), // PA_29 (D0)
[30] = &(lt_arduino_pin_info_list[5]), // PA_30 (D5)
[41] = &(lt_arduino_pin_info_list[11]), // AD_2 (A1)
};
// clang-format on

View File

@@ -6,85 +6,121 @@
// Pins
// ----
#define PINS_COUNT 12
#define NUM_ANALOG_INPUTS 2
#define NUM_DIGITAL_PINS 11
#define NUM_ANALOG_OUTPUTS 0
// Analog pins
// -----------
#define PIN_A1 11u // AD_2
#define PIN_A0 6u // PA_19
#define A1 PIN_A1
#define A0 PIN_A0
#define PINS_COUNT 12 // Total GPIO count
#define NUM_DIGITAL_PINS 11 // Digital inputs/outputs
#define NUM_ANALOG_INPUTS 2 // ADC inputs
#define NUM_ANALOG_OUTPUTS 9 // PWM & DAC outputs
#define PINS_GPIO_MAX 41 // Last usable GPIO number
// SPI Interfaces
// --------------
#define SPI_INTERFACES_COUNT 2
#define PIN_SPI0_CS 6u // PA_19
#define PIN_SPI0_MISO 3u // PA_22
#define PIN_SPI0_MOSI 10u // PA_23
#define PIN_SPI0_SCK 9u // PA_18
#define PIN_SPI1_CS 6u // PA_19
#define PIN_SPI1_MISO 3u // PA_22
#define PIN_SPI1_MOSI 10u // PA_23
#define PIN_SPI1_SCK 9u // PA_18
#define PIN_SPI0_CS 19u // PA_19
#define PIN_SPI0_MISO 22u // PA_22
#define PIN_SPI0_MOSI 23u // PA_23
#define PIN_SPI0_SCK 18u // PA_18
#define PIN_SPI1_CS 19u // PA_19
#define PIN_SPI1_MISO 22u // PA_22
#define PIN_SPI1_MOSI 23u // PA_23
#define PIN_SPI1_SCK 18u // PA_18
// Wire Interfaces
// ---------------
#define WIRE_INTERFACES_COUNT 2
#define PIN_WIRE0_SCL_0 0u // PA_29
#define PIN_WIRE0_SCL_1 3u // PA_22
#define PIN_WIRE0_SDA_0 5u // PA_30
#define PIN_WIRE0_SDA_1 6u // PA_19
#define PIN_WIRE1_SCL 9u // PA_18
#define PIN_WIRE1_SDA 10u // PA_23
#define PIN_WIRE0_SCL_0 29u // PA_29
#define PIN_WIRE0_SCL_1 22u // PA_22
#define PIN_WIRE0_SDA_0 30u // PA_30
#define PIN_WIRE0_SDA_1 19u // PA_19
#define PIN_WIRE1_SCL 18u // PA_18
#define PIN_WIRE1_SDA 23u // PA_23
// Serial ports
// ------------
#define SERIAL_INTERFACES_COUNT 2
#define PIN_SERIAL0_CTS 6u // PA_19
#define PIN_SERIAL0_RTS 3u // PA_22
#define PIN_SERIAL0_RX 9u // PA_18
#define PIN_SERIAL0_TX 10u // PA_23
#define PIN_SERIAL2_RX 0u // PA_29
#define PIN_SERIAL2_TX 5u // PA_30
#define PIN_SERIAL0_CTS 19u // PA_19
#define PIN_SERIAL0_RTS 22u // PA_22
#define PIN_SERIAL0_RX 18u // PA_18
#define PIN_SERIAL0_TX 23u // PA_23
#define PIN_SERIAL2_RX 29u // PA_29
#define PIN_SERIAL2_TX 30u // PA_30
// Pin function macros
// -------------------
#define PIN_ADC1 6u // PA_19
#define PIN_ADC2 11u // AD_2
#define PIN_CS0 6u // PA_19
#define PIN_CS1 6u // PA_19
#define PIN_CTS0 6u // PA_19
#define PIN_MISO0 3u // PA_22
#define PIN_MISO1 3u // PA_22
#define PIN_MOSI0 10u // PA_23
#define PIN_MOSI1 10u // PA_23
#define PIN_PA00 4u // PA_0
#define PIN_PA05 7u // PA_5
#define PIN_PA12 8u // PA_12
#define PIN_PA14 1u // PA_14
#define PIN_PA15 2u // PA_15
#define PIN_PA18 9u // PA_18
#define PIN_PA19 6u // PA_19
#define PIN_PA22 3u // PA_22
#define PIN_PA23 10u // PA_23
#define PIN_PA29 0u // PA_29
#define PIN_PA30 5u // PA_30
#define PIN_RTS0 3u // PA_22
#define PIN_RX0 9u // PA_18
#define PIN_RX2 0u // PA_29
#define PIN_SCK0 9u // PA_18
#define PIN_SCK1 9u // PA_18
#define PIN_TX0 10u // PA_23
#define PIN_TX2 5u // PA_30
#define PIN_ADC1 19u // PA_19
#define PIN_ADC2 41u // AD_2
#define PIN_CS0 19u // PA_19
#define PIN_CS1 19u // PA_19
#define PIN_CTS0 19u // PA_19
#define PIN_MISO0 22u // PA_22
#define PIN_MISO1 22u // PA_22
#define PIN_MOSI0 23u // PA_23
#define PIN_MOSI1 23u // PA_23
#define PIN_PA00 0u // PA_0
#define PIN_PA05 5u // PA_5
#define PIN_PA12 12u // PA_12
#define PIN_PA14 14u // PA_14
#define PIN_PA15 15u // PA_15
#define PIN_PA18 18u // PA_18
#define PIN_PA19 19u // PA_19
#define PIN_PA22 22u // PA_22
#define PIN_PA23 23u // PA_23
#define PIN_PA29 29u // PA_29
#define PIN_PA30 30u // PA_30
#define PIN_PWM0 23u // PA_23
#define PIN_PWM1 15u // PA_15
#define PIN_PWM2 0u // PA_0
#define PIN_PWM3 12u // PA_12
#define PIN_PWM4 5u // PA_5
#define PIN_PWM5 22u // PA_22
#define PIN_RTS0 22u // PA_22
#define PIN_RX0 18u // PA_18
#define PIN_RX2 29u // PA_29
#define PIN_SCK0 18u // PA_18
#define PIN_SCK1 18u // PA_18
#define PIN_SCL0 22u // PA_22
#define PIN_SCL1 18u // PA_18
#define PIN_SDA0 19u // PA_19
#define PIN_SDA1 23u // PA_23
#define PIN_TX0 23u // PA_23
#define PIN_TX2 30u // PA_30
// Port availability
// -----------------
#define HAS_SERIAL0 1
#define HAS_SERIAL2 1
#define HAS_SPI0 1
#define HAS_SPI1 1
#define HAS_WIRE0 1
#define HAS_WIRE1 1
#define HAS_SERIAL0 1
#define HAS_SERIAL2 1
#define HAS_SPI0 1
#define HAS_SPI1 1
#define HAS_WIRE0 1
#define HAS_WIRE1 1
#define SERIAL_INTERFACES_COUNT 2
#define SPI_INTERFACES_COUNT 2
#define WIRE_INTERFACES_COUNT 2
// Arduino pin names
// -----------------
#define PIN_D0 29u // PA_29
#define PIN_D1 14u // PA_14
#define PIN_D2 15u // PA_15
#define PIN_D3 22u // PA_22
#define PIN_D4 0u // PA_0
#define PIN_D5 30u // PA_30
#define PIN_D6 19u // PA_19
#define PIN_D7 5u // PA_5
#define PIN_D8 12u // PA_12
#define PIN_D9 18u // PA_18
#define PIN_D10 23u // PA_23
#define PIN_A0 19u // PA_19
#define PIN_A1 41u // AD_2
// Static pin names
// ----------------
static const unsigned char A0 = PIN_A0;
static const unsigned char A1 = PIN_A1;
static const unsigned char D0 = PIN_D0;
static const unsigned char D1 = PIN_D1;
static const unsigned char D2 = PIN_D2;
static const unsigned char D3 = PIN_D3;
static const unsigned char D4 = PIN_D4;
static const unsigned char D5 = PIN_D5;
static const unsigned char D6 = PIN_D6;
static const unsigned char D7 = PIN_D7;
static const unsigned char D8 = PIN_D8;
static const unsigned char D9 = PIN_D9;
static const unsigned char D10 = PIN_D10;

View File

@@ -2,14 +2,12 @@
#include <Arduino.h>
extern "C" {
#ifdef LT_VARIANT_INCLUDE
#include LT_VARIANT_INCLUDE
#endif
// clang-format off
PinInfo pinTable[PINS_COUNT] = {
PinInfo lt_arduino_pin_info_list[PINS_COUNT] = {
// D0: PA29, UART2_RX, I2C0_SCL, PWM4
{PA_29, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_I2C | PIN_UART, PIN_NONE, 0},
// D1: PA14, PWM0, SWCLK
@@ -31,6 +29,17 @@ PinInfo pinTable[PINS_COUNT] = {
// A1: ADC2
{AD_2, PIN_ADC, PIN_NONE, 0},
};
// clang-format on
} // extern "C"
PinInfo *lt_arduino_pin_gpio_map[] = {
[0] = &(lt_arduino_pin_info_list[3]), // PA_0 (D3)
[5] = &(lt_arduino_pin_info_list[5]), // PA_5 (D5)
[12] = &(lt_arduino_pin_info_list[6]), // PA_12 (D6)
[14] = &(lt_arduino_pin_info_list[1]), // PA_14 (D1)
[15] = &(lt_arduino_pin_info_list[2]), // PA_15 (D2)
[18] = &(lt_arduino_pin_info_list[7]), // PA_18 (D7)
[23] = &(lt_arduino_pin_info_list[8]), // PA_23 (D8)
[29] = &(lt_arduino_pin_info_list[0]), // PA_29 (D0)
[30] = &(lt_arduino_pin_info_list[4]), // PA_30 (D4)
[41] = &(lt_arduino_pin_info_list[9]), // AD_2 (A1)
};
// clang-format on

View File

@@ -6,64 +6,87 @@
// Pins
// ----
#define PINS_COUNT 10
#define NUM_ANALOG_INPUTS 1
#define NUM_DIGITAL_PINS 9
#define NUM_ANALOG_OUTPUTS 0
// Analog pins
// -----------
#define PIN_A1 9u // AD_2
#define A1 PIN_A1
// SPI Interfaces
// --------------
#define SPI_INTERFACES_COUNT 0
#define PINS_COUNT 10 // Total GPIO count
#define NUM_DIGITAL_PINS 9 // Digital inputs/outputs
#define NUM_ANALOG_INPUTS 1 // ADC inputs
#define NUM_ANALOG_OUTPUTS 8 // PWM & DAC outputs
#define PINS_GPIO_MAX 41 // Last usable GPIO number
// Wire Interfaces
// ---------------
#define WIRE_INTERFACES_COUNT 2
#define PIN_WIRE0_SCL 0u // PA_29
#define PIN_WIRE0_SDA 4u // PA_30
#define PIN_WIRE1_SCL 7u // PA_18
#define PIN_WIRE1_SDA 8u // PA_23
#define PIN_WIRE0_SCL 29u // PA_29
#define PIN_WIRE0_SDA 30u // PA_30
#define PIN_WIRE1_SCL 18u // PA_18
#define PIN_WIRE1_SDA 23u // PA_23
// Serial ports
// ------------
#define SERIAL_INTERFACES_COUNT 2
#define PIN_SERIAL0_RX 7u // PA_18
#define PIN_SERIAL0_TX 8u // PA_23
#define PIN_SERIAL2_RX 0u // PA_29
#define PIN_SERIAL2_TX 4u // PA_30
#define PIN_SERIAL0_RX 18u // PA_18
#define PIN_SERIAL0_TX 23u // PA_23
#define PIN_SERIAL2_RX 29u // PA_29
#define PIN_SERIAL2_TX 30u // PA_30
// Pin function macros
// -------------------
#define PIN_ADC2 9u // AD_2
#define PIN_MOSI0 8u // PA_23
#define PIN_MOSI1 8u // PA_23
#define PIN_PA00 3u // PA_0
#define PIN_PA05 5u // PA_5
#define PIN_PA12 6u // PA_12
#define PIN_PA14 1u // PA_14
#define PIN_PA15 2u // PA_15
#define PIN_PA18 7u // PA_18
#define PIN_PA23 8u // PA_23
#define PIN_PA29 0u // PA_29
#define PIN_PA30 4u // PA_30
#define PIN_RX0 7u // PA_18
#define PIN_RX2 0u // PA_29
#define PIN_SCK0 7u // PA_18
#define PIN_SCK1 7u // PA_18
#define PIN_SCL0 0u // PA_29
#define PIN_SCL1 7u // PA_18
#define PIN_SDA0 4u // PA_30
#define PIN_SDA1 8u // PA_23
#define PIN_TX0 8u // PA_23
#define PIN_TX2 4u // PA_30
#define PIN_ADC2 41u // AD_2
#define PIN_MOSI0 23u // PA_23
#define PIN_MOSI1 23u // PA_23
#define PIN_PA00 0u // PA_0
#define PIN_PA05 5u // PA_5
#define PIN_PA12 12u // PA_12
#define PIN_PA14 14u // PA_14
#define PIN_PA15 15u // PA_15
#define PIN_PA18 18u // PA_18
#define PIN_PA23 23u // PA_23
#define PIN_PA29 29u // PA_29
#define PIN_PA30 30u // PA_30
#define PIN_PWM0 23u // PA_23
#define PIN_PWM1 15u // PA_15
#define PIN_PWM2 0u // PA_0
#define PIN_PWM3 12u // PA_12
#define PIN_PWM4 5u // PA_5
#define PIN_RX0 18u // PA_18
#define PIN_RX2 29u // PA_29
#define PIN_SCK0 18u // PA_18
#define PIN_SCK1 18u // PA_18
#define PIN_SCL0 29u // PA_29
#define PIN_SCL1 18u // PA_18
#define PIN_SDA0 30u // PA_30
#define PIN_SDA1 23u // PA_23
#define PIN_TX0 23u // PA_23
#define PIN_TX2 30u // PA_30
// Port availability
// -----------------
#define HAS_SERIAL0 1
#define HAS_SERIAL2 1
#define HAS_WIRE0 1
#define HAS_WIRE1 1
#define HAS_SERIAL0 1
#define HAS_SERIAL2 1
#define HAS_WIRE0 1
#define HAS_WIRE1 1
#define SERIAL_INTERFACES_COUNT 2
#define WIRE_INTERFACES_COUNT 2
// Arduino pin names
// -----------------
#define PIN_D0 29u // PA_29
#define PIN_D1 14u // PA_14
#define PIN_D2 15u // PA_15
#define PIN_D3 0u // PA_0
#define PIN_D4 30u // PA_30
#define PIN_D5 5u // PA_5
#define PIN_D6 12u // PA_12
#define PIN_D7 18u // PA_18
#define PIN_D8 23u // PA_23
#define PIN_A1 41u // AD_2
// Static pin names
// ----------------
static const unsigned char A1 = PIN_A1;
static const unsigned char D0 = PIN_D0;
static const unsigned char D1 = PIN_D1;
static const unsigned char D2 = PIN_D2;
static const unsigned char D3 = PIN_D3;
static const unsigned char D4 = PIN_D4;
static const unsigned char D5 = PIN_D5;
static const unsigned char D6 = PIN_D6;
static const unsigned char D7 = PIN_D7;
static const unsigned char D8 = PIN_D8;

View File

@@ -59,7 +59,7 @@ queue.AddLibrary(
name="board_${VARIANT}",
base_dir="$VARIANTS_DIR",
srcs=[
"+<${VARIANT}.cpp>",
"+<${VARIANT}.c>",
],
# not adding includes since they're added with the base core
)

View File

@@ -48,6 +48,7 @@ def env_uf2ota(env: Environment, *args, **kwargs):
f"--lt-version {lt_version}",
f'--fw "{project_name}:{project_version}"',
f"--date {int(now.timestamp())}",
"--legacy",
*env["UF2OTA"],
]

View File

@@ -9,30 +9,25 @@ static void *irqHandlerArgs[PINS_COUNT] = {NULL};
static bool irqChangeList[PINS_COUNT];
static void irqHandler(unsigned char gpio) {
int pin = -1;
for (pin_size_t i = 0; i < PINS_COUNT; i++) {
if (pinTable[i].gpio == gpio) {
pin = i;
break;
PinInfo *pin = pinByGpio(gpio);
if (pin == NULL)
return;
uint32_t index = pinIndex(pin);
if (!irqHandlerList[index])
return;
if (irqChangeList[index]) {
if (pin->mode == INPUT_PULLDOWN) {
pin->mode = INPUT_PULLUP;
gpio_int_enable(pin->gpio, GPIO_INT_LEVEL_FALLING, irqHandler);
} else if (pin->mode == INPUT_PULLUP) {
pin->mode = INPUT_PULLDOWN;
gpio_int_enable(pin->gpio, GPIO_INT_LEVEL_RISING, irqHandler);
}
}
if (pin == -1)
return;
if (!irqHandlerList[pin])
return;
if (irqChangeList[pin]) {
if (pinTable[pin].mode == INPUT_PULLDOWN) {
pinTable[pin].mode = INPUT_PULLUP;
gpio_int_enable(pinTable[pin].gpio, GPIO_INT_LEVEL_FALLING, irqHandler);
} else if (pinTable[pin].mode == INPUT_PULLUP) {
pinTable[pin].mode = INPUT_PULLDOWN;
gpio_int_enable(pinTable[pin].gpio, GPIO_INT_LEVEL_RISING, irqHandler);
}
}
if (irqHandlerArgs[pin] == NULL) {
((voidFuncPtr)irqHandlerList[pin])();
if (irqHandlerArgs[index] == NULL) {
((voidFuncPtr)irqHandlerList[index])();
} else {
((voidFuncPtrParam)irqHandlerList[pin])(irqHandlerArgs[pin]);
((voidFuncPtrParam)irqHandlerList[index])(irqHandlerArgs[index]);
}
}
@@ -46,6 +41,7 @@ void attachInterruptParam(pin_size_t interruptNumber, voidFuncPtrParam callback,
return;
if (!pinSupported(pin, PIN_IRQ))
return;
uint32_t index = pinIndex(pin);
uint32_t event = 0;
PinMode modeNew = 0;
bool change = 0;
@@ -79,9 +75,9 @@ void attachInterruptParam(pin_size_t interruptNumber, voidFuncPtrParam callback,
default:
return;
}
irqHandlerList[interruptNumber] = callback;
irqHandlerArgs[interruptNumber] = param;
irqChangeList[interruptNumber] = change;
irqHandlerList[index] = callback;
irqHandlerArgs[index] = param;
irqChangeList[index] = change;
gpio_int_enable(pin->gpio, event, irqHandler);
pin->enabled |= PIN_IRQ | PIN_GPIO;
pin->mode = modeNew;
@@ -93,9 +89,10 @@ void detachInterrupt(pin_size_t interruptNumber) {
return;
if (!pinSupported(pin, PIN_IRQ))
return;
irqHandlerList[interruptNumber] = NULL;
irqHandlerArgs[interruptNumber] = NULL;
irqChangeList[interruptNumber] = false;
uint32_t index = pinIndex(pin);
irqHandlerList[index] = NULL;
irqHandlerArgs[index] = NULL;
irqChangeList[index] = false;
gpio_int_disable(pin->gpio);
pin->enabled &= ~PIN_IRQ;
}

View File

@@ -32,25 +32,43 @@ void runPeriodicTasks() {
#endif
}
/**
* @brief Check if pin is invalid (too low or too high).
*/
bool pinInvalid(pin_size_t pinNumber) {
#ifdef PINS_COUNT
return pinNumber < 0 || pinNumber >= PINS_COUNT;
#else
return false;
#endif
}
/**
* @brief Get PinInfo struct for the specified number.
* Returns NULL if pin number is invalid.
*/
PinInfo *pinInfo(pin_size_t pinNumber) {
if (pinInvalid(pinNumber))
if (pinNumber < 0 || pinNumber > PINS_GPIO_MAX)
return NULL;
return &(pinTable[pinNumber]);
return lt_arduino_pin_gpio_map[pinNumber];
}
/**
* @brief Get PinInfo struct for the specified index.
* Returns NULL if pin index is invalid.
*/
PinInfo *pinByIndex(uint32_t index) {
if (index < 0 || index >= PINS_COUNT)
return NULL;
return &(lt_arduino_pin_info_list[index]);
}
/**
* @brief Find PinInfo struct by GPIO number.
* Returns NULL if not found.
*/
PinInfo *pinByGpio(uint32_t gpio) {
for (uint32_t i = 0; i < PINS_COUNT; i++) {
if (lt_arduino_pin_info_list[i].gpio == gpio)
return &(lt_arduino_pin_info_list[i]);
}
return NULL;
}
/**
* @brief Get index of PinInfo in the global pin info table.
*/
uint32_t pinIndex(PinInfo *pin) {
return pin - lt_arduino_pin_info_list;
}
/**

View File

@@ -40,7 +40,8 @@ typedef struct {
uint32_t mode;
} PinInfo;
extern PinInfo pinTable[];
extern PinInfo lt_arduino_pin_info_list[PINS_COUNT];
extern PinInfo *lt_arduino_pin_gpio_map[PINS_GPIO_MAX + 1];
// Custom Wiring methods
@@ -54,8 +55,10 @@ bool startMainTask(void);
void mainTask(const void *arg); // implemented in main.cpp
void runPeriodicTasks(); // implemented in wiring_custom.c
bool pinInvalid(pin_size_t pinNumber);
PinInfo *pinInfo(pin_size_t pinNumber);
PinInfo *pinByIndex(uint32_t index);
PinInfo *pinByGpio(uint32_t gpio);
uint32_t pinIndex(PinInfo *pin);
bool pinSupported(PinInfo *pin, uint32_t mask);
bool pinEnabled(PinInfo *pin, uint32_t mask);
bool pinIsOutput(PinInfo *pin);

View File

@@ -45,8 +45,8 @@ bool TwoWire::setPins(int8_t sda, int8_t scl) {
// set private pins
_sda = sda;
_scl = scl;
sda = pinTable[sda].gpio;
scl = pinTable[scl].gpio;
sda = pinInfo(sda)->gpio;
scl = pinInfo(scl)->gpio;
// check if pins are valid
if ((sda == PA_4 || sda == PA_19 || sda == PA_30) && (scl == PA_1 || scl == PA_22 || scl == PA_29)) {
@@ -81,7 +81,7 @@ bool TwoWire::begin(int8_t sda, int8_t scl, uint32_t frequency) {
frequency = WIRE_DEFAULT_FREQ;
_i2c = new i2c_t;
i2c_init(_i2c, (PinName)pinTable[_sda].gpio, (PinName)pinTable[_scl].gpio);
i2c_init(_i2c, (PinName)pinInfo(_sda)->gpio, (PinName)pinInfo(_scl)->gpio);
i2c_frequency(_i2c, frequency);
_freq = frequency;
return true;

View File

@@ -5,10 +5,10 @@ extern void *gpio_pin_struct[PINS_COUNT];
static void *gpio_irq_handler_list[PINS_COUNT] = {NULL};
static void *gpio_irq_handler_args[PINS_COUNT] = {NULL};
extern bool pinInvalid(pin_size_t pinNumber);
extern void pinRemoveMode(pin_size_t pinNumber);
static void gpioIrqHandler(uint32_t id, gpio_irq_event event) {
// id is pin index
if (gpio_irq_handler_list[id] != NULL) {
if (gpio_irq_handler_args[id] == NULL)
((voidFuncPtr)gpio_irq_handler_list[id])();
@@ -22,33 +22,35 @@ void attachInterrupt(pin_size_t interruptNumber, voidFuncPtr callback, PinStatus
}
void attachInterruptParam(pin_size_t interruptNumber, voidFuncPtrParam callback, PinStatus mode, void *param) {
if (pinInvalid(interruptNumber))
PinInfo *pin = pinInfo(interruptNumber);
if (pin == NULL)
return;
uint32_t index = pinIndex(pin);
gpio_irq_handler_list[interruptNumber] = callback;
gpio_irq_handler_args[interruptNumber] = param;
gpio_irq_handler_list[index] = callback;
gpio_irq_handler_args[index] = param;
if (pinTable[interruptNumber].enabled == PIN_IRQ && pinTable[interruptNumber].mode == mode)
if (pin->enabled == PIN_IRQ && pin->mode == mode)
// Nothing changes in pin mode
return;
if (pinTable[interruptNumber].enabled != PIN_IRQ)
if (pin->enabled != PIN_IRQ)
// pin mode changes; deinit gpio and free memory
pinRemoveMode(interruptNumber);
gpio_irq_t *gpio;
if (pinTable[interruptNumber].enabled == PIN_NONE) {
if (pin->enabled == PIN_NONE) {
// allocate memory if pin not used before
gpio = malloc(sizeof(gpio_irq_t));
gpio_pin_struct[interruptNumber] = gpio;
gpio_irq_init(gpio, pinTable[interruptNumber].gpio, gpioIrqHandler, interruptNumber);
pinTable[interruptNumber].enabled = PIN_IRQ;
gpio = malloc(sizeof(gpio_irq_t));
gpio_pin_struct[index] = gpio;
gpio_irq_init(gpio, pin->gpio, gpioIrqHandler, index);
pin->enabled = PIN_IRQ;
} else {
// pin already used as irq
gpio = (gpio_irq_t *)gpio_pin_struct[interruptNumber];
gpio = (gpio_irq_t *)gpio_pin_struct[index];
}
pinTable[interruptNumber].mode = mode;
pin->mode = mode;
gpio_irq_event event;
@@ -74,11 +76,13 @@ void attachInterruptParam(pin_size_t interruptNumber, voidFuncPtrParam callback,
}
void detachInterrupt(pin_size_t interruptNumber) {
if (pinInvalid(interruptNumber))
PinInfo *pin = pinInfo(interruptNumber);
if (pin == NULL)
return;
uint32_t index = pinIndex(pin);
if (pinTable[interruptNumber].enabled == PIN_IRQ) {
if (pin->enabled == PIN_IRQ) {
pinRemoveMode(interruptNumber);
}
gpio_irq_handler_list[interruptNumber] = NULL;
gpio_irq_handler_list[index] = NULL;
}

View File

@@ -25,23 +25,28 @@ extern void *gpio_pin_struct[];
* or LOW, the type of pulse to measure. Works on pulses from 2-3 microseconds
* to 3 minutes in length, but must be called at least a few dozen microseconds
* before the start of the pulse. */
extern unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout) {
extern unsigned long pulseIn(uint8_t pinNumber, uint8_t state, unsigned long timeout) {
// cache the port and bit of the pin in order to speed up the
// pulse width measuring loop and achieve finer resolution. calling
// digitalRead() instead yields much coarser resolution.
PinInfo *pin = pinInfo(pinNumber);
if (pin == NULL)
return;
uint32_t index = pinIndex(pin);
gpio_t *pGpio_t;
uint32_t start_ticks, cur_ticks;
if (pin < 0 || pin > PINS_COUNT || (pinTable[pin].gpio == NC))
if (pin < 0 || pin > PINS_COUNT || (pin->gpio == NC))
return 0;
/* Handle */
if (pinTable[pin].enabled != PIN_GPIO) {
if (pin->enabled != PIN_GPIO) {
return 0;
}
pGpio_t = (gpio_t *)gpio_pin_struct[pin];
pGpio_t = (gpio_t *)gpio_pin_struct[index];
// wait for any previous pulse to end
start_ticks = us_ticker_read();