Merge branch 'master' into structure-refactor
This commit is contained in:
7
cores/beken-72xx/base/fixups/gcc10.c
Normal file
7
cores/beken-72xx/base/fixups/gcc10.c
Normal file
@@ -0,0 +1,7 @@
|
||||
/* Copyright (c) Kuba Szczodrzyński 2023-03-13. */
|
||||
|
||||
// Compiling with GCC 10.3.1 requires this or it will produce linker errors.
|
||||
// See:
|
||||
// - https://github.com/purduesigbots/pros/issues/153#issuecomment-519335375
|
||||
// - https://stackoverflow.com/a/64664385
|
||||
void __sync_synchronize(void) {}
|
||||
50
cores/realtek-ambz/base/fixups/cmsis.h
Normal file
50
cores/realtek-ambz/base/fixups/cmsis.h
Normal file
@@ -0,0 +1,50 @@
|
||||
/* Copyright (c) Kuba Szczodrzyński 2023-03-12. */
|
||||
|
||||
// Fix for PeripheralNames.h producing errors on GCC newer than 5.x.x.
|
||||
// The struct pointer casts are replaced with register addresses, which fixes compilation.
|
||||
// On older versions, this change doesn't make any difference.
|
||||
// MBED_PERIPHERALNAMES_H is defined in the SDK builder, to eliminate PeripheralNames.h completely.
|
||||
|
||||
#include_next "cmsis.h"
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef enum {
|
||||
UART_0 = (int)UART0_REG_BASE,
|
||||
UART_1 = (int)UART1_REG_BASE,
|
||||
UART_2 = (int)UART2_REG_BASE,
|
||||
} UARTName;
|
||||
|
||||
typedef enum {
|
||||
ADC0_0 = 0,
|
||||
ADC0_1,
|
||||
ADC0_2,
|
||||
ADC0_3
|
||||
} ADCName;
|
||||
|
||||
typedef enum {
|
||||
SPI_0 = (int)SPI0_REG_BASE,
|
||||
SPI_1 = (int)SPI1_REG_BASE,
|
||||
} SPIName;
|
||||
|
||||
typedef enum {
|
||||
I2C_0 = (int)I2C0_REG_BASE,
|
||||
I2C_1 = (int)I2C1_REG_BASE,
|
||||
} I2CName;
|
||||
|
||||
typedef enum {
|
||||
PWM_0 = 1,
|
||||
PWM_1,
|
||||
PWM_2,
|
||||
PWM_3,
|
||||
PWM_4,
|
||||
PWM_5
|
||||
} PWMName;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
21
cores/realtek-ambz/base/fixups/machine/endian.h
Normal file
21
cores/realtek-ambz/base/fixups/machine/endian.h
Normal file
@@ -0,0 +1,21 @@
|
||||
/* Copyright (c) Kuba Szczodrzyński 2023-03-12. */
|
||||
|
||||
#include_next <machine/endian.h>
|
||||
|
||||
#pragma once
|
||||
|
||||
// GCC versions newer than 5.x.x specify the LITTLE_ENDIAN macro
|
||||
// as an alias to _LITTLE_ENDIAN (which in turn holds the actual numeric value).
|
||||
// Realtek's rtl8711b_crypto.h redefines _LITTLE_ENDIAN as a macro without
|
||||
// any value, which makes comparisons like '#if BYTE_ORDER == LITTLE_ENDIAN' impossible.
|
||||
|
||||
#if __GNUC__ > 5
|
||||
#undef _LITTLE_ENDIAN
|
||||
#undef _BIG_ENDIAN
|
||||
#undef LITTLE_ENDIAN
|
||||
#undef BIG_ENDIAN
|
||||
#undef BYTE_ORDER
|
||||
#define LITTLE_ENDIAN 1234
|
||||
#define BIG_ENDIAN 4321
|
||||
#define BYTE_ORDER LITTLE_ENDIAN
|
||||
#endif
|
||||
Reference in New Issue
Block a user