[core] Add hardware peripheral availability defines

This commit is contained in:
Kuba Szczodrzyński
2023-06-21 17:02:48 +02:00
parent 96412624d9
commit b38a4d5d46
23 changed files with 166 additions and 80 deletions

View File

@@ -8,31 +8,6 @@
using namespace arduino;
#if HAS_SERIAL0
#ifndef PIN_SERIAL0_RX
#define PIN_SERIAL0_RX PIN_INVALID
#endif
#ifndef PIN_SERIAL0_TX
#define PIN_SERIAL0_TX PIN_INVALID
#endif
#endif
#if HAS_SERIAL1
#ifndef PIN_SERIAL1_RX
#define PIN_SERIAL1_RX PIN_INVALID
#endif
#ifndef PIN_SERIAL1_TX
#define PIN_SERIAL1_TX PIN_INVALID
#endif
#endif
#if HAS_SERIAL2
#ifndef PIN_SERIAL2_RX
#define PIN_SERIAL2_RX PIN_INVALID
#endif
#ifndef PIN_SERIAL2_TX
#define PIN_SERIAL2_TX PIN_INVALID
#endif
#endif
class SerialClass : public HardwareSerial {
private:
uint32_t port;

View File

@@ -44,13 +44,13 @@ using namespace arduino;
#include <Serial.h>
#if HAS_SERIAL_CLASS
#if HAS_SERIAL0
#if LT_HW_UART0
extern SerialClass Serial0;
#endif
#if HAS_SERIAL1
#if LT_HW_UART1
extern SerialClass Serial1;
#endif
#if HAS_SERIAL2
#if LT_HW_UART2
extern SerialClass Serial2;
#endif
#endif

View File

@@ -22,7 +22,6 @@ extern "C" {
#define PIN_UART (1 << 11)
#define PIN_MODE_ALL 0xFFFFFFFF
#define PIN_INVALID 255
typedef struct PinData_s PinData;

View File

@@ -44,6 +44,7 @@
// APIs
#include "lt_api.h" // main API function definitions
#include "lt_logger.h" // UART logger utility
#include "lt_pins.h" // additional pin macros
#include "lt_posix_api.h" // POSIX compat functions
// printf silencing methods
#include <printf_port.h>

View File

@@ -0,0 +1,69 @@
/* Copyright (c) Kuba Szczodrzyński 2023-06-21. */
#include LT_VARIANT_H
#define PIN_INVALID 255
#define LT_HW_UART0 HAS_SERIAL0
#define LT_HW_UART1 HAS_SERIAL1
#define LT_HW_UART2 HAS_SERIAL2
#define LT_HW_I2C0 HAS_WIRE0
#define LT_HW_I2C1 HAS_WIRE1
#define LT_HW_I2C2 HAS_WIRE2
#define LT_HW_SPI0 HAS_SPI0
#define LT_HW_SPI1 HAS_SPI1
#define LT_HW_SPI2 HAS_SPI2
#if LT_HW_UART0
#ifndef PIN_SERIAL0_RX
#define PIN_SERIAL0_RX PIN_INVALID
#endif
#ifndef PIN_SERIAL0_TX
#define PIN_SERIAL0_TX PIN_INVALID
#endif
#endif
#if LT_HW_UART1
#ifndef PIN_SERIAL1_RX
#define PIN_SERIAL1_RX PIN_INVALID
#endif
#ifndef PIN_SERIAL1_TX
#define PIN_SERIAL1_TX PIN_INVALID
#endif
#endif
#if LT_HW_UART2
#ifndef PIN_SERIAL2_RX
#define PIN_SERIAL2_RX PIN_INVALID
#endif
#ifndef PIN_SERIAL2_TX
#define PIN_SERIAL2_TX PIN_INVALID
#endif
#endif
#if LT_HW_I2C0
#ifndef PIN_WIRE0_SDA
#define PIN_WIRE0_SDA PIN_INVALID
#endif
#ifndef PIN_WIRE0_SCL
#define PIN_WIRE0_SCL PIN_INVALID
#endif
#endif
#if LT_HW_I2C1
#ifndef PIN_WIRE1_SDA
#define PIN_WIRE1_SDA PIN_INVALID
#endif
#ifndef PIN_WIRE1_SCL
#define PIN_WIRE1_SCL PIN_INVALID
#endif
#endif
#if LT_HW_I2C2
#ifndef PIN_WIRE2_SDA
#define PIN_WIRE2_SDA PIN_INVALID
#endif
#ifndef PIN_WIRE2_SCL
#define PIN_WIRE2_SCL PIN_INVALID
#endif
#endif