Conditionalize LTO

This commit is contained in:
Scott Shawcroft 2022-05-27 12:59:54 -07:00
parent c676253834
commit 9d10a3da66
No known key found for this signature in database
GPG Key ID: 0DFD512649C052DA
243 changed files with 534 additions and 413 deletions

View File

@ -44,6 +44,7 @@
#include "shared-bindings/_bleio/Service.h"
#include "shared-bindings/_bleio/UUID.h"
#include "supervisor/shared/tick.h"
#include "supervisor/shared/translate/translate.h"
STATIC uint16_t max_mtu = BT_ATT_DEFAULT_LE_MTU; // 23
STATIC unsigned long timeout = 5000;

View File

@ -33,6 +33,8 @@
#include "shared-bindings/supervisor/__init__.h"
#endif
#include "supervisor/shared/translate/translate.h"
#if MICROPY_PY_UASYNCIO
// Used when task cannot be guaranteed to be non-NULL.

View File

@ -11,6 +11,8 @@
#include "py/runtime.h"
#include "py/binary.h"
#include "supervisor/shared/translate/translate.h"
static void check_not_unicode(const mp_obj_t arg) {
#if MICROPY_CPYTHON_COMPAT
if (mp_obj_is_str(arg)) {

View File

@ -11,7 +11,7 @@
#include "py/objtuple.h"
#include "py/binary.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#if MICROPY_PY_UCTYPES

View File

@ -8,7 +8,7 @@
#include "py/runtime.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#if MICROPY_PY_UHASHLIB

View File

@ -6,7 +6,7 @@
#include "py/objlist.h"
#include "py/runtime.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#if MICROPY_PY_UHEAPQ

View File

@ -13,7 +13,7 @@
#include "py/runtime.h"
#include "py/stream.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#if MICROPY_PY_UJSON

View File

@ -10,7 +10,7 @@
#include "py/runtime.h"
#include "py/smallint.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#if MICROPY_PY_UTIMEQ

View File

@ -10,7 +10,7 @@
#include "py/stream.h"
#include "py/mperrno.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#if MICROPY_PY_UZLIB

View File

@ -20,7 +20,7 @@
#include "extmod/vfs_fat.h"
#include "shared/timeutils/timeutils.h"
#include "supervisor/filesystem.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#if FF_MAX_SS == FF_MIN_SS
#define SECSIZE(fs) (FF_MIN_SS)

View File

@ -8,7 +8,7 @@
#include "py/runtime.h"
#include "py/stream.h"
#include "extmod/vfs_posix.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#if (defined(MICROPY_VFS_POSIX) && MICROPY_VFS_POSIX) || (defined(MICROPY_VFS_POSIX_FILE) && MICROPY_VFS_POSIX_FILE)

2
main.c
View File

@ -58,7 +58,7 @@
#include "supervisor/shared/status_leds.h"
#include "supervisor/shared/tick.h"
#include "supervisor/shared/traceback.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "supervisor/shared/workflow.h"
#include "supervisor/usb.h"
#include "supervisor/workflow.h"

View File

@ -123,8 +123,6 @@ $(echo PERIPHERALS_CHIP_FAMILY=$(PERIPHERALS_CHIP_FAMILY))
#Debugging/Optimization
ifeq ($(DEBUG), 1)
CFLAGS += -ggdb3 -Og -Os
# You may want to disable -flto if it interferes with debugging.
CFLAGS += -flto -flto-partition=one
# You may want to enable these flags to make setting breakpoints easier.
# CFLAGS += -fno-inline -fno-ipa-sra
ifeq ($(CHIP_FAMILY), samd21)
@ -147,11 +145,8 @@ else
CFLAGS += -finline-limit=$(CFLAGS_INLINE_LIMIT)
endif
CFLAGS += -flto
ifeq ($(CIRCUITPY_FULL_BUILD),0)
CFLAGS += --param inline-unit-growth=15 --param max-inline-insns-auto=20
CFLAGS += -flto-partition=one
endif
ifdef CFLAGS_BOARD
@ -168,8 +163,7 @@ CFLAGS += \
-mcpu=cortex-m0plus \
-msoft-float \
-mfloat-abi=soft \
-DSAMD21 \
-flto-partition=one
-DSAMD21
endif
ifeq ($(CHIP_FAMILY), samd51)
CFLAGS += \
@ -206,7 +200,6 @@ endif
CFLAGS += -Wno-stringop-overread -Wno-stringop-overflow
LDFLAGS = $(CFLAGS) -nostartfiles -Wl,-nostdlib -Wl,-T,$(GENERATED_LD_FILE) -Wl,-Map=$@.map -Wl,-cref -Wl,-gc-sections -specs=nano.specs
LDFLAGS += -flto=$(shell $(NPROC))
LIBS := -lgcc -lc
# Use toolchain libm if we're not using our own.

View File

@ -35,7 +35,7 @@
#include "shared-bindings/digitalio/DigitalInOut.h"
#include "shared-bindings/util.h"
#include "samd/timers.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "timer_handler.h"

View File

@ -37,7 +37,7 @@
#include "samd/adc.h"
#include "shared-bindings/analogio/AnalogIn.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "atmel_start_pins.h"
#include "hal/include/hal_adc_sync.h"

View File

@ -33,7 +33,7 @@
#include "shared-bindings/analogio/AnalogOut.h"
#include "shared-bindings/audioio/AudioOut.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "atmel_start_pins.h"
#include "hal/include/hal_dac_sync.h"

View File

@ -40,7 +40,7 @@
#include "shared-bindings/audiobusio/I2SOut.h"
#include "shared-bindings/audiocore/RawSample.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "atmel_start_pins.h"
#include "hal/include/hal_gpio.h"

View File

@ -37,7 +37,7 @@
#include "shared-bindings/audiobusio/PDMIn.h"
#include "shared-bindings/microcontroller/__init__.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "atmel_start_pins.h"
#include "hal/include/hal_gpio.h"
@ -58,11 +58,11 @@
#define MIN_MIC_CLOCK 1000000
#ifdef SAMD21
#define SERCTRL(name) I2S_SERCTRL_ ## name
#define SERCTRL(name) I2S_SERCTRL_##name
#endif
#ifdef SAM_D5X_E5X
#define SERCTRL(name) I2S_RXCTRL_ ## name
#define SERCTRL(name) I2S_RXCTRL_##name
#endif
// Set by interrupt handler when DMA block has finished transferring.
@ -80,102 +80,104 @@ void pdmin_reset(void) {
pdmin_dma_block_done = false;
pdmin_event_channel = EVSYS_SYNCH_NUM;
while (I2S->SYNCBUSY.reg & I2S_SYNCBUSY_ENABLE) {}
while (I2S->SYNCBUSY.reg & I2S_SYNCBUSY_ENABLE) {
}
I2S->INTENCLR.reg = I2S_INTENCLR_MASK;
I2S->INTFLAG.reg = I2S_INTFLAG_MASK;
I2S->CTRLA.reg &= ~I2S_SYNCBUSY_ENABLE;
while (I2S->SYNCBUSY.reg & I2S_SYNCBUSY_ENABLE) {}
while (I2S->SYNCBUSY.reg & I2S_SYNCBUSY_ENABLE) {
}
I2S->CTRLA.reg = I2S_CTRLA_SWRST;
}
// Caller validates that pins are free.
void common_hal_audiobusio_pdmin_construct(audiobusio_pdmin_obj_t* self,
const mcu_pin_obj_t* clock_pin,
const mcu_pin_obj_t* data_pin,
uint32_t sample_rate,
uint8_t bit_depth,
bool mono,
uint8_t oversample) {
void common_hal_audiobusio_pdmin_construct(audiobusio_pdmin_obj_t *self,
const mcu_pin_obj_t *clock_pin,
const mcu_pin_obj_t *data_pin,
uint32_t sample_rate,
uint8_t bit_depth,
bool mono,
uint8_t oversample) {
self->clock_pin = clock_pin; // PA10, PA20 -> SCK0, PB11 -> SCK1
#ifdef SAMD21
if (clock_pin == &pin_PA10
if (clock_pin == &pin_PA10
#if defined(PIN_PA20) && !defined(IGNORE_PIN_PA20)
|| clock_pin == &pin_PA20
#endif
) {
self->clock_unit = 0;
#if defined(PIN_PB11) && !defined(IGNORE_PIN_PB11)
} else if (clock_pin == &pin_PB11) {
self->clock_unit = 1;
|| clock_pin == &pin_PA20
#endif
) {
self->clock_unit = 0;
#if defined(PIN_PB11) && !defined(IGNORE_PIN_PB11)
} else if (clock_pin == &pin_PB11) {
self->clock_unit = 1;
#endif
#endif
#ifdef SAM_D5X_E5X
if (clock_pin == &pin_PA10 || clock_pin == &pin_PB16) {
self->clock_unit = 0;
if (clock_pin == &pin_PA10 || clock_pin == &pin_PB16) {
self->clock_unit = 0;
} else if (clock_pin == &pin_PB12
#if defined(PIN_PB28) && !defined(IGNORE_PIN_PB28)
|| data_pin == &pin_PB28) {
#else
) {
#if defined(PIN_PB28) && !defined(IGNORE_PIN_PB28)
|| data_pin == &pin_PB28) {
#else
) {
#endif
self->clock_unit = 1;
self->clock_unit = 1;
#endif
} else {
raise_ValueError_invalid_pin_name(MP_QSTR_clock);
}
} else {
raise_ValueError_invalid_pin_name(MP_QSTR_clock);
}
self->data_pin = data_pin; // PA07, PA19 -> SD0, PA08, PB16 -> SD1
self->data_pin = data_pin; // PA07, PA19 -> SD0, PA08, PB16 -> SD1
#ifdef SAMD21
if (false
if (false
#if defined(PIN_PA07) && !defined(IGNORE_PIN_PA07)
|| data_pin == &pin_PA07
|| data_pin == &pin_PA07
#endif
#if defined(PIN_PA19) && !defined(IGNORE_PIN_PA19)
|| data_pin == &pin_PA19
|| data_pin == &pin_PA19
#endif
) {
self->serializer = 0;
}
else if (false
) {
self->serializer = 0;
} else if (false
#if defined(PIN_PA08) && !defined(IGNORE_PIN_PA08)
|| data_pin == &pin_PA08
|| data_pin == &pin_PA08
#endif
#if defined (PIN_PB16) && !defined(IGNORE_PIN_PB16)
|| data_pin == &pin_PB16
#if defined(PIN_PB16) && !defined(IGNORE_PIN_PB16)
|| data_pin == &pin_PB16
#endif
) {
self->serializer = 1;
) {
self->serializer = 1;
#endif
#ifdef SAM_D5X_E5X
if (data_pin == &pin_PB10 || data_pin == &pin_PA22) {
self->serializer = 1;
if (data_pin == &pin_PB10 || data_pin == &pin_PA22) {
self->serializer = 1;
#endif
} else {
raise_ValueError_invalid_pin_name(MP_QSTR_data);
}
}else {
raise_ValueError_invalid_pin_name(MP_QSTR_data);
}
if (!(bit_depth == 16 || bit_depth == 8) || !mono || oversample != OVERSAMPLING) {
mp_raise_NotImplementedError(translate("Only 8 or 16 bit mono with " MP_STRINGIFY(OVERSAMPLING) "x oversampling is supported."));
}
if (!(bit_depth == 16 || bit_depth == 8) || !mono || oversample != OVERSAMPLING) {
mp_raise_NotImplementedError(translate("Only 8 or 16 bit mono with " MP_STRINGIFY(OVERSAMPLING) "x oversampling is supported."));
}
turn_on_i2s();
turn_on_i2s();
if (I2S->CTRLA.bit.ENABLE == 0) {
I2S->CTRLA.bit.SWRST = 1;
while (I2S->CTRLA.bit.SWRST == 1) {}
} else {
#ifdef SAMD21
if ((I2S->CTRLA.vec.SEREN & (1 << self->serializer)) != 0) {
mp_raise_RuntimeError(translate("Serializer in use"));
}
#endif
#ifdef SAM_D5X_E5X
if (I2S->CTRLA.bit.RXEN == 1) {
mp_raise_RuntimeError(translate("Serializer in use"));
}
#endif
if (I2S->CTRLA.bit.ENABLE == 0) {
I2S->CTRLA.bit.SWRST = 1;
while (I2S->CTRLA.bit.SWRST == 1) {
}
} else {
#ifdef SAMD21
if ((I2S->CTRLA.vec.SEREN & (1 << self->serializer)) != 0) {
mp_raise_RuntimeError(translate("Serializer in use"));
}
#endif
#ifdef SAM_D5X_E5X
if (I2S->CTRLA.bit.RXEN == 1) {
mp_raise_RuntimeError(translate("Serializer in use"));
}
#endif
}
#ifdef SAM_D5X_E5X
#define GPIO_I2S_FUNCTION GPIO_PIN_FUNCTION_J
#endif
@ -183,69 +185,69 @@ void common_hal_audiobusio_pdmin_construct(audiobusio_pdmin_obj_t* self,
#define GPIO_I2S_FUNCTION GPIO_PIN_FUNCTION_G
#endif
uint32_t clock_divisor = (uint32_t) roundf( 48000000.0f / sample_rate / oversample);
float mic_clock_freq = 48000000.0f / clock_divisor;
self->sample_rate = mic_clock_freq / oversample;
if (mic_clock_freq < MIN_MIC_CLOCK || clock_divisor == 0) {
mp_raise_ValueError(translate("sampling rate out of range"));
}
// Find a free GCLK to generate the MCLK signal.
uint8_t gclk = find_free_gclk(clock_divisor);
if (gclk > GCLK_GEN_NUM) {
mp_raise_RuntimeError(translate("Unable to find free GCLK"));
}
self->gclk = gclk;
uint32_t clock_divisor = (uint32_t)roundf(48000000.0f / sample_rate / oversample);
float mic_clock_freq = 48000000.0f / clock_divisor;
self->sample_rate = mic_clock_freq / oversample;
if (mic_clock_freq < MIN_MIC_CLOCK || clock_divisor == 0) {
mp_raise_ValueError(translate("sampling rate out of range"));
}
// Find a free GCLK to generate the MCLK signal.
uint8_t gclk = find_free_gclk(clock_divisor);
if (gclk > GCLK_GEN_NUM) {
mp_raise_RuntimeError(translate("Unable to find free GCLK"));
}
self->gclk = gclk;
enable_clock_generator(self->gclk, CLOCK_48MHZ, clock_divisor);
connect_gclk_to_peripheral(self->gclk, I2S_GCLK_ID_0 + self->clock_unit);
enable_clock_generator(self->gclk, CLOCK_48MHZ, clock_divisor);
connect_gclk_to_peripheral(self->gclk, I2S_GCLK_ID_0 + self->clock_unit);
// Clock unit configuration
// Clock unit configuration
uint32_t clkctrl = I2S_CLKCTRL_MCKSEL_GCLK |
I2S_CLKCTRL_NBSLOTS(2) |
I2S_CLKCTRL_FSWIDTH_SLOT |
I2S_CLKCTRL_SLOTSIZE_16;
uint32_t clkctrl = I2S_CLKCTRL_MCKSEL_GCLK |
I2S_CLKCTRL_NBSLOTS(2) |
I2S_CLKCTRL_FSWIDTH_SLOT |
I2S_CLKCTRL_SLOTSIZE_16;
// Serializer configuration
// Serializer configuration
#ifdef SAMD21
uint32_t serctrl = (self->clock_unit << I2S_SERCTRL_CLKSEL_Pos) | SERCTRL(SERMODE_PDM2) | SERCTRL(DATASIZE_32);
uint32_t serctrl = (self->clock_unit << I2S_SERCTRL_CLKSEL_Pos) | SERCTRL(SERMODE_PDM2) | SERCTRL(DATASIZE_32);
#endif
#ifdef SAM_D5X_E5X
uint32_t serctrl = (self->clock_unit << I2S_RXCTRL_CLKSEL_Pos) | SERCTRL(SERMODE_PDM2) | SERCTRL(DATASIZE_32);
uint32_t serctrl = (self->clock_unit << I2S_RXCTRL_CLKSEL_Pos) | SERCTRL(SERMODE_PDM2) | SERCTRL(DATASIZE_32);
#endif
// Configure the I2S peripheral
i2s_set_enable(false);
// Configure the I2S peripheral
i2s_set_enable(false);
I2S->CLKCTRL[self->clock_unit].reg = clkctrl;
I2S->CLKCTRL[self->clock_unit].reg = clkctrl;
#ifdef SAMD21
I2S->SERCTRL[self->serializer].reg = serctrl;
I2S->SERCTRL[self->serializer].reg = serctrl;
#endif
#ifdef SAM_D5X_E5X
I2S->RXCTRL.reg = serctrl;
I2S->RXCTRL.reg = serctrl;
#endif
i2s_set_enable(true);
i2s_set_enable(true);
// Run the clock all the time. This eliminates startup delay for the microphone,
// which can be 10-100ms. Turn serializer on as needed.
i2s_set_clock_unit_enable(self->clock_unit, true);
// Run the clock all the time. This eliminates startup delay for the microphone,
// which can be 10-100ms. Turn serializer on as needed.
i2s_set_clock_unit_enable(self->clock_unit, true);
claim_pin(clock_pin);
claim_pin(data_pin);
claim_pin(clock_pin);
claim_pin(data_pin);
gpio_set_pin_function(self->clock_pin->number, GPIO_I2S_FUNCTION);
gpio_set_pin_function(self->data_pin->number, GPIO_I2S_FUNCTION);
gpio_set_pin_function(self->clock_pin->number, GPIO_I2S_FUNCTION);
gpio_set_pin_function(self->data_pin->number, GPIO_I2S_FUNCTION);
self->bytes_per_sample = oversample >> 3;
self->bit_depth = bit_depth;
self->bytes_per_sample = oversample >> 3;
self->bit_depth = bit_depth;
}
bool common_hal_audiobusio_pdmin_deinited(audiobusio_pdmin_obj_t* self) {
bool common_hal_audiobusio_pdmin_deinited(audiobusio_pdmin_obj_t *self) {
return self->clock_pin == NULL;
}
void common_hal_audiobusio_pdmin_deinit(audiobusio_pdmin_obj_t* self) {
void common_hal_audiobusio_pdmin_deinit(audiobusio_pdmin_obj_t *self) {
if (common_hal_audiobusio_pdmin_deinited(self)) {
return;
}
@ -264,24 +266,24 @@ void common_hal_audiobusio_pdmin_deinit(audiobusio_pdmin_obj_t* self) {
self->data_pin = NULL;
}
uint8_t common_hal_audiobusio_pdmin_get_bit_depth(audiobusio_pdmin_obj_t* self) {
uint8_t common_hal_audiobusio_pdmin_get_bit_depth(audiobusio_pdmin_obj_t *self) {
return self->bit_depth;
}
uint32_t common_hal_audiobusio_pdmin_get_sample_rate(audiobusio_pdmin_obj_t* self) {
uint32_t common_hal_audiobusio_pdmin_get_sample_rate(audiobusio_pdmin_obj_t *self) {
return self->sample_rate;
}
static void setup_dma(audiobusio_pdmin_obj_t* self, uint32_t length,
DmacDescriptor* descriptor,
DmacDescriptor* second_descriptor,
uint32_t words_per_buffer, uint8_t words_per_sample,
uint32_t* first_buffer, uint32_t* second_buffer) {
static void setup_dma(audiobusio_pdmin_obj_t *self, uint32_t length,
DmacDescriptor *descriptor,
DmacDescriptor *second_descriptor,
uint32_t words_per_buffer, uint8_t words_per_sample,
uint32_t *first_buffer, uint32_t *second_buffer) {
descriptor->BTCTRL.reg = DMAC_BTCTRL_VALID |
DMAC_BTCTRL_BLOCKACT_NOACT |
DMAC_BTCTRL_EVOSEL_BLOCK |
DMAC_BTCTRL_DSTINC |
DMAC_BTCTRL_BEATSIZE_WORD;
DMAC_BTCTRL_BLOCKACT_NOACT |
DMAC_BTCTRL_EVOSEL_BLOCK |
DMAC_BTCTRL_DSTINC |
DMAC_BTCTRL_BEATSIZE_WORD;
// Block transfer count is the number of beats per block (aka descriptor).
// In this case there are two bytes per beat so divide the length by two.
@ -291,7 +293,7 @@ static void setup_dma(audiobusio_pdmin_obj_t* self, uint32_t length,
}
descriptor->BTCNT.reg = block_transfer_count;
descriptor->DSTADDR.reg = ((uint32_t) first_buffer + sizeof(uint32_t) * block_transfer_count);
descriptor->DSTADDR.reg = ((uint32_t)first_buffer + sizeof(uint32_t) * block_transfer_count);
descriptor->DESCADDR.reg = 0;
if (length * words_per_sample > words_per_buffer) {
descriptor->DESCADDR.reg = ((uint32_t)second_descriptor);
@ -314,7 +316,7 @@ static void setup_dma(audiobusio_pdmin_obj_t* self, uint32_t length,
block_transfer_count = length * words_per_sample - words_per_buffer;
second_descriptor->DESCADDR.reg = 0;
}
second_descriptor->DSTADDR.reg = ((uint32_t) second_buffer + sizeof(uint32_t) * block_transfer_count);
second_descriptor->DSTADDR.reg = ((uint32_t)second_buffer + sizeof(uint32_t) * block_transfer_count);
second_descriptor->BTCNT.reg = block_transfer_count;
#ifdef SAMD21
@ -324,10 +326,10 @@ static void setup_dma(audiobusio_pdmin_obj_t* self, uint32_t length,
second_descriptor->SRCADDR.reg = (uint32_t)&I2S->RXDATA;
#endif
second_descriptor->BTCTRL.reg = DMAC_BTCTRL_VALID |
DMAC_BTCTRL_BLOCKACT_NOACT |
DMAC_BTCTRL_EVOSEL_BLOCK |
DMAC_BTCTRL_DSTINC |
DMAC_BTCTRL_BEATSIZE_WORD;
DMAC_BTCTRL_BLOCKACT_NOACT |
DMAC_BTCTRL_EVOSEL_BLOCK |
DMAC_BTCTRL_DSTINC |
DMAC_BTCTRL_BEATSIZE_WORD;
}
}
@ -341,7 +343,7 @@ static void setup_dma(audiobusio_pdmin_obj_t* self, uint32_t length,
// higher sample rate than specified. Then after the audio is
// recorded, a more expensive filter non-real-time filter could be
// used to down-sample and low-pass.
const uint16_t sinc_filter [OVERSAMPLING] = {
const uint16_t sinc_filter[OVERSAMPLING] = {
0, 2, 9, 21, 39, 63, 94, 132,
179, 236, 302, 379, 467, 565, 674, 792,
920, 1055, 1196, 1341, 1487, 1633, 1776, 1913,
@ -353,26 +355,26 @@ const uint16_t sinc_filter [OVERSAMPLING] = {
};
#ifdef SAMD21
#define REPEAT_16_TIMES(X) do { for(uint8_t j=0; j<4; j++) { X X X X } } while (0)
#define REPEAT_16_TIMES(X) do { for (uint8_t j = 0; j < 4; j++) { X X X X } } while (0)
#else
#define REPEAT_16_TIMES(X) do { X X X X X X X X X X X X X X X X } while(0)
#define REPEAT_16_TIMES(X) do { X X X X X X X X X X X X X X X X } while (0)
#endif
static uint16_t filter_sample(uint32_t pdm_samples[4]) {
uint16_t running_sum = 0;
const uint16_t *filter_ptr = sinc_filter;
for (uint8_t i = 0; i < OVERSAMPLING/16; i++) {
for (uint8_t i = 0; i < OVERSAMPLING / 16; i++) {
// The sample is 16-bits right channel in the upper two bytes and 16-bits left channel
// in the lower two bytes.
// We just ignore the upper bits
uint32_t pdm_sample = pdm_samples[i];
REPEAT_16_TIMES( {
if (pdm_sample & 0x8000) {
running_sum += *filter_ptr;
}
filter_ptr++;
pdm_sample <<= 1;
REPEAT_16_TIMES({
if (pdm_sample & 0x8000) {
running_sum += *filter_ptr;
}
filter_ptr++;
pdm_sample <<= 1;
}
);
}
return running_sum;
@ -380,8 +382,8 @@ static uint16_t filter_sample(uint32_t pdm_samples[4]) {
// output_buffer may be a byte buffer or a halfword buffer.
// output_buffer_length is the number of slots, not the number of bytes.
uint32_t common_hal_audiobusio_pdmin_record_to_buffer(audiobusio_pdmin_obj_t* self,
uint16_t* output_buffer, uint32_t output_buffer_length) {
uint32_t common_hal_audiobusio_pdmin_record_to_buffer(audiobusio_pdmin_obj_t *self,
uint16_t *output_buffer, uint32_t output_buffer_length) {
uint8_t dma_channel = dma_allocate_channel();
pdmin_event_channel = find_sync_event_channel_raise();
pdmin_dma_block_done = false;
@ -399,7 +401,7 @@ uint32_t common_hal_audiobusio_pdmin_record_to_buffer(audiobusio_pdmin_obj_t* se
COMPILER_ALIGNED(16) DmacDescriptor second_descriptor;
setup_dma(self, output_buffer_length, dma_descriptor(dma_channel), &second_descriptor,
words_per_buffer, words_per_sample, first_buffer, second_buffer);
words_per_buffer, words_per_sample, first_buffer, second_buffer);
uint8_t trigger_source = I2S_DMAC_ID_RX_0;
#ifdef SAMD21
@ -444,7 +446,7 @@ uint32_t common_hal_audiobusio_pdmin_record_to_buffer(audiobusio_pdmin_obj_t* se
// Flip back and forth between processing the first and second buffers.
uint32_t *buffer = first_buffer;
DmacDescriptor* descriptor = dma_descriptor(dma_channel);
DmacDescriptor *descriptor = dma_descriptor(dma_channel);
if (buffers_processed % 2 == 1) {
buffer = second_buffer;
descriptor = &second_descriptor;
@ -459,7 +461,7 @@ uint32_t common_hal_audiobusio_pdmin_record_to_buffer(audiobusio_pdmin_obj_t* se
uint16_t value = filter_sample(buffer + i * words_per_sample);
if (self->bit_depth == 8) {
// Truncate to 8 bits.
((uint8_t*) output_buffer)[values_output] = value >> 8;
((uint8_t *)output_buffer)[values_output] = value >> 8;
} else {
output_buffer[values_output] = value;
}
@ -471,7 +473,7 @@ uint32_t common_hal_audiobusio_pdmin_record_to_buffer(audiobusio_pdmin_obj_t* se
// Compute how many more samples we need, and if the last buffer is the last
// set of samples needed, adjust the DMA count to only fetch as necessary.
remaining_samples_needed = output_buffer_length - values_output;
if (remaining_samples_needed <= samples_per_buffer*2 &&
if (remaining_samples_needed <= samples_per_buffer * 2 &&
remaining_samples_needed > samples_per_buffer) {
// Adjust the DMA settings for the current buffer, which will be processed
// after the other buffer, which is now receiving samples via DMA.
@ -484,7 +486,7 @@ uint32_t common_hal_audiobusio_pdmin_record_to_buffer(audiobusio_pdmin_obj_t* se
// Set up to receive the last set of samples (don't include the alternate buffer, now in use).
uint32_t samples_needed_for_last_buffer = remaining_samples_needed - samples_per_buffer;
descriptor->BTCNT.reg = samples_needed_for_last_buffer * words_per_sample;
descriptor->DSTADDR.reg = ((uint32_t) buffer)
descriptor->DSTADDR.reg = ((uint32_t)buffer)
+ samples_needed_for_last_buffer * words_per_sample * sizeof(buffer[0]);
// Break chain to alternate buffer.

View File

@ -35,7 +35,7 @@
#include "shared-bindings/audioio/AudioOut.h"
#include "shared-bindings/microcontroller/__init__.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "atmel_start_pins.h"
#include "hal/include/hal_gpio.h"

View File

@ -35,7 +35,7 @@
#include "samd/sercom.h"
#include "shared-bindings/microcontroller/__init__.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "common-hal/busio/__init__.h"

View File

@ -33,6 +33,7 @@
#include "peripheral_clk_config.h"
#include "supervisor/board.h"
#include "supervisor/shared/translate/translate.h"
#include "common-hal/busio/__init__.h"
#include "hal/include/hal_gpio.h"

View File

@ -34,7 +34,7 @@
#include "py/mperrno.h"
#include "py/runtime.h"
#include "py/stream.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "supervisor/shared/tick.h"
#include "hpl_sercom_config.h"

View File

@ -7,7 +7,7 @@
#include "eic_handler.h"
#include "samd/external_interrupts.h"
#include "py/runtime.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
void common_hal_countio_counter_construct(countio_counter_obj_t *self,
const mcu_pin_obj_t *pin, countio_edge_t edge, digitalio_pull_t pull) {

View File

@ -34,7 +34,7 @@
#include "common-hal/microcontroller/Pin.h"
#include "shared-bindings/digitalio/DigitalInOut.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
digitalinout_result_t common_hal_digitalio_digitalinout_construct(
digitalio_digitalinout_obj_t *self, const mcu_pin_obj_t *pin) {

View File

@ -48,7 +48,7 @@
#include "shared-bindings/microcontroller/Pin.h"
#include "shared-bindings/time/__init__.h"
#include "supervisor/shared/tick.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#ifdef SAMD21
#include "hpl/gclk/hpl_gclk_base.h"

View File

@ -27,6 +27,7 @@
#include "py/runtime.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "supervisor/shared/translate/translate.h"
#include "atmel_start_pins.h"
#include "hal/include/hal_gpio.h"

View File

@ -36,7 +36,7 @@
#include "shared-bindings/microcontroller/Pin.h"
#include "shared-bindings/microcontroller/Processor.h"
#include "supervisor/shared/safe_mode.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
void common_hal_mcu_delay_us(uint32_t delay) {
mp_hal_delay_us(delay);

View File

@ -43,7 +43,7 @@
#include "shared-bindings/microcontroller/__init__.h"
#include "shared-bindings/ps2io/Ps2.h"
#include "supervisor/port.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#define STATE_IDLE 0
#define STATE_RECV 1

View File

@ -44,7 +44,7 @@
#include "shared-bindings/microcontroller/Pin.h"
#include "shared-bindings/pulseio/PulseIn.h"
#include "supervisor/shared/tick.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "supervisor/port.h"
// This timer is shared amongst all PulseIn objects as a higher resolution clock.

View File

@ -36,7 +36,7 @@
#include "py/gc.h"
#include "py/runtime.h"
#include "shared-bindings/pulseio/PulseOut.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "timer_handler.h"
// This timer is shared amongst all PulseOut objects under the assumption that

View File

@ -38,7 +38,7 @@
#include "hal/utils/include/utils_repeat_macro.h"
#include "samd/pins.h"
#include "samd/timers.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#undef ENABLE

View File

@ -33,7 +33,7 @@
#include "eic_handler.h"
#include "samd/external_interrupts.h"
#include "py/runtime.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
void common_hal_rotaryio_incrementalencoder_construct(rotaryio_incrementalencoder_obj_t *self,
const mcu_pin_obj_t *pin_a, const mcu_pin_obj_t *pin_b) {

View File

@ -37,7 +37,7 @@
#include "shared-bindings/rtc/__init__.h"
#include "shared-bindings/rtc/RTC.h"
#include "supervisor/port.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
// This is the time in seconds since 2000 that the RTC was started.
// TODO: Change the offset to ticks so that it can be a subsecond adjustment.

View File

@ -32,7 +32,7 @@
#include "shared-bindings/sdioio/SDCard.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "shared-bindings/microcontroller/__init__.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "genhdr/sdiodata.h"

View File

@ -33,7 +33,7 @@
#include "py/mphal.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "shared-bindings/touchio/TouchIn.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
// Native touchio only exists for SAMD21
#ifdef SAMD21

View File

@ -78,6 +78,8 @@ endif
SUPEROPT_GC = 0
SUPEROPT_VM = 0
CIRCUITPY_LTO = one
ifeq ($(CIRCUITPY_FULL_BUILD),0)
# On the smallest boards, this saves about 180 bytes. On other boards, it may -increase- space used.
CFLAGS_BOARD = -fweb -frename-registers
@ -94,6 +96,12 @@ ifeq ($(CHIP_FAMILY),samd51)
# No native touchio on SAMD51.
CIRCUITPY_TOUCHIO_USE_NATIVE = 0
ifeq ($(CIRCUITPY_FULL_BUILD),1)
CIRCUITPY_LTO ?= balanced
else
CIRCUITPY_LTO ?= one
endif
# The ?='s allow overriding in mpconfigboard.mk.

View File

@ -32,7 +32,7 @@
#include "common-hal/microcontroller/Pin.h"
#include "shared-bindings/digitalio/DigitalInOut.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "peripherals/broadcom/gpio.h"

View File

@ -35,7 +35,7 @@
#include "shared-bindings/microcontroller/Pin.h"
#include "shared-bindings/microcontroller/__init__.h"
#include "supervisor/port.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "peripherals/broadcom/cpu.h"
#include "peripherals/broadcom/defines.h"

View File

@ -165,8 +165,6 @@ else
# RISC-V is larger than xtensa so do -Os for it
OPTIMIZATION_FLAGS ?= -Os
endif
# TODO: Test with -flto
### CFLAGS += -flto
endif
# option to override compiler optimization level, set in boards/$(BOARD)/mpconfigboard.mk

View File

@ -28,7 +28,7 @@
#include "shared-bindings/analogio/AnalogIn.h"
#include "py/mperrno.h"
#include "py/runtime.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "components/driver/include/driver/adc_common.h"
#include "components/esp_adc_cal/include/esp_adc_cal.h"

View File

@ -33,7 +33,7 @@
#include "shared-bindings/analogio/AnalogOut.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#ifdef CONFIG_IDF_TARGET_ESP32S2
#include "components/driver/include/driver/dac_common.h"

View File

@ -42,7 +42,7 @@
#include "shared-bindings/audiobusio/I2SOut.h"
#include "shared-bindings/audiocore/RawSample.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "driver/i2s.h"

View File

@ -32,7 +32,7 @@
#include "shared-bindings/microcontroller/__init__.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
void common_hal_busio_i2c_construct(busio_i2c_obj_t *self,
const mcu_pin_obj_t *scl, const mcu_pin_obj_t *sda, uint32_t frequency, uint32_t timeout) {

View File

@ -38,7 +38,7 @@
#include "py/runtime.h"
#include "py/stream.h"
#include "supervisor/port.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "supervisor/shared/tick.h"
uint8_t never_reset_uart_mask = 0;

View File

@ -29,7 +29,7 @@
#include "common-hal/microcontroller/Pin.h"
#include "py/runtime.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
void common_hal_countio_counter_construct(countio_counter_obj_t *self,
const mcu_pin_obj_t *pin, countio_edge_t edge, digitalio_pull_t pull) {

View File

@ -26,7 +26,7 @@
#include "shared-bindings/digitalio/DigitalInOut.h"
#include "py/runtime.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "components/driver/include/driver/gpio.h"

View File

@ -33,7 +33,7 @@
#include "common-hal/microcontroller/Processor.h"
#include "shared-bindings/microcontroller/Processor.h"
#include "shared-bindings/microcontroller/ResetReason.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "esp_sleep.h"
#include "esp_system.h"

View File

@ -81,8 +81,6 @@ ifeq ($(DEBUG), 1)
else
CFLAGS += -DNDEBUG -ggdb3
OPTIMIZATION_FLAGS ?= -O2 -fno-inline-functions
# TODO: Test with -flto
### CFLAGS += -flto
endif
# option to override compiler optimization level, set in boards/$(BOARD)/mpconfigboard.mk
@ -99,7 +97,7 @@ LDFLAGS = $(CFLAGS) -Wl,-nostdlib -Wl,-T,$(LD_FILE) -Wl,-Map=$@.map -Wl,-cref -W
LIBS := -lgcc -lc
LDFLAGS += -flto -ffreestanding -nostartfiles -Wl,--gc-section -Wl,-Bstatic -Wl,-melf32lriscv -nostartfiles \
LDFLAGS += -ffreestanding -nostartfiles -Wl,--gc-section -Wl,-Bstatic -Wl,-melf32lriscv -nostartfiles \
-Wl,--no-warn-mismatch \
-Wl,--build-id=none

View File

@ -27,7 +27,7 @@
#include "shared-bindings/digitalio/DigitalInOut.h"
#include "py/runtime.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "csr.h"

View File

@ -31,7 +31,7 @@
#include "common-hal/microcontroller/Processor.h"
#include "shared-bindings/microcontroller/Processor.h"
#include "shared-bindings/microcontroller/ResetReason.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "csr.h"
#include "generated/soc.h"

View File

@ -75,7 +75,7 @@ INC += \
# NDEBUG disables assert() statements. This reduces code size pretty dramatically, per tannewt.
CFLAGS += -Os -ftree-vrp -DNDEBUG -ffreestanding
CFLAGS += -ftree-vrp -DNDEBUG
# TinyUSB defines
CFLAGS += -DCFG_TUSB_MCU=OPT_MCU_MIMXRT10XX -DCFG_TUD_MIDI_RX_BUFSIZE=512 -DCFG_TUD_CDC_RX_BUFSIZE=512 -DCFG_TUD_MIDI_TX_BUFSIZE=512 -DCFG_TUD_CDC_TX_BUFSIZE=512 -DCFG_TUD_MSC_BUFSIZE=1024
@ -84,12 +84,8 @@ CFLAGS += -DCFG_TUSB_MCU=OPT_MCU_MIMXRT10XX -DCFG_TUD_MIDI_RX_BUFSIZE=512 -DCFG_
# Never set -fno-inline because we use inline to move small functions into routines that must be
# in RAM. If inlining is disallowed, then we may end up calling a function in flash when we cannot.
ifeq ($(DEBUG), 1)
# You may want to disable -flto if it interferes with debugging.
# CFLAGS += -flto -flto-partition=none
# You may want to enable these flags to make setting breakpoints easier.
CFLAGS += -fno-ipa-sra
else
#CFLAGS += -flto -flto-partition=none
endif
CFLAGS += $(INC) -ggdb -Wall -Werror -std=gnu11 -nostdlib -fshort-enums $(BASE_CFLAGS) $(CFLAGS_MOD) $(COPT) -Werror=missing-prototypes
@ -105,7 +101,6 @@ CFLAGS += \
-mfloat-abi=hard \
-mfpu=fpv5-sp-d16 \
-DCPU_$(CHIP_VARIANT) \
-DDEBUG \
-DIMXRT10XX \
-g3 -Wno-unused-parameter \
-ffunction-sections -fdata-sections -fstack-usage

View File

@ -29,7 +29,7 @@
#include "shared-bindings/analogio/AnalogOut.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
void common_hal_analogio_analogout_construct(analogio_analogout_obj_t *self, const mcu_pin_obj_t *pin) {
mp_raise_NotImplementedError_varg(translate("%q"), MP_QSTR_AnalogOut);

View File

@ -36,7 +36,7 @@
#include "shared-bindings/microcontroller/Pin.h"
#include "shared-bindings/digitalio/DigitalInOut.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#define IOMUXC_SW_MUX_CTL_PAD_MUX_MODE_ALT5 5U

View File

@ -37,7 +37,7 @@
#include "shared-bindings/microcontroller/Pin.h"
#include "shared-bindings/microcontroller/Processor.h"
#include "supervisor/shared/safe_mode.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#define DBL_TAP_REG SNVS->LPGPR[3]

View File

@ -35,7 +35,7 @@
#include "fsl_pwm.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "periph.h"
// Debug print support set to zero to enable debug printing

View File

@ -33,7 +33,7 @@
#include "shared-bindings/rtc/__init__.h"
#include "shared-bindings/rtc/RTC.h"
#include "common-hal/rtc/RTC.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "fsl_snvs_hp.h"

View File

@ -84,14 +84,6 @@ INC += -I../../lib/mp-readline
INC += -I../../lib/tinyusb/src
INC += -I../../supervisor/shared/usb
ifeq ($(MCU_CHIP),nrf52833)
OPTIMIZATION_FLAGS ?= -Os -flto -flto-partition=one
else
ifeq ($(INTERNAL_FLASH_FILESYSTEM),1)
OPTIMIZATION_FLAGS ?= -Os -flto
endif
endif
#Debugging/Optimization
ifeq ($(DEBUG), 1)
CFLAGS += -ggdb3

View File

@ -29,7 +29,7 @@
#include "shared-bindings/analogio/AnalogIn.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "py/runtime.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "nrf_saadc.h"
#include "nrf_gpio.h"
@ -77,7 +77,7 @@ uint16_t common_hal_analogio_analogin_get_value(analogio_analogin_obj_t *self) {
// Something else might have used the ADC in a different way,
// so we completely re-initialize it.
nrf_saadc_value_t value;
nrf_saadc_value_t value = -1;
const nrf_saadc_channel_config_t config = {
.resistor_p = NRF_SAADC_RESISTOR_DISABLED,

View File

@ -31,7 +31,7 @@
#include "py/mperrno.h"
#include "py/runtime.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
void common_hal_analogio_analogout_construct(analogio_analogout_obj_t *self, const mcu_pin_obj_t *pin) {
mp_raise_NotImplementedError_varg(translate("%q"), MP_QSTR_AnalogOut);

View File

@ -37,7 +37,7 @@
#include "shared-bindings/microcontroller/__init__.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "supervisor/shared/tick.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
// TODO: This should be the same size as PWMOut.c:pwms[], but there's no trivial way to accomplish that
STATIC audiopwmio_pwmaudioout_obj_t *active_audio[4];

View File

@ -32,7 +32,7 @@
#include "shared-bindings/microcontroller/Pin.h"
#include "py/mperrno.h"
#include "py/runtime.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "nrfx_twim.h"
#include "nrfx_spim.h"

View File

@ -33,7 +33,7 @@
#include "py/mperrno.h"
#include "py/runtime.h"
#include "py/stream.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "nrfx_uarte.h"
#include "nrf_gpio.h"

View File

@ -26,7 +26,7 @@
#include "shared-bindings/digitalio/DigitalInOut.h"
#include "py/runtime.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "nrf_gpio.h"

View File

@ -31,7 +31,6 @@
#include "common-hal/alarm/__init__.h"
#include "shared-bindings/microcontroller/ResetReason.h"
#include "supervisor/shared/translate.h"
#include "nrfx_saadc.h"
#ifdef BLUETOOTH_SD
@ -72,7 +71,7 @@ uint32_t common_hal_mcu_processor_get_frequency(void) {
}
float common_hal_mcu_processor_get_voltage(void) {
nrf_saadc_value_t value;
nrf_saadc_value_t value = -1;
const nrf_saadc_channel_config_t config = {
.resistor_p = NRF_SAADC_RESISTOR_DISABLED,

View File

@ -35,7 +35,7 @@
#include "py/runtime.h"
#include "shared-bindings/pulseio/PulseOut.h"
#include "shared-bindings/pwmio/PWMOut.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
// A single timer is shared amongst all PulseOut objects under the assumption that
// the code is single threaded.

View File

@ -30,7 +30,7 @@
#include "py/runtime.h"
#include "common-hal/pwmio/PWMOut.h"
#include "shared-bindings/pwmio/PWMOut.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "nrf_gpio.h"

View File

@ -33,7 +33,7 @@
#include "common-hal/rtc/RTC.h"
#include "shared-bindings/rtc/RTC.h"
#include "supervisor/port.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
// This is the time in seconds since 2000 that the RTC was started.
__attribute__((section(".uninitialized"))) static uint32_t rtc_offset[3];

View File

@ -71,6 +71,11 @@ NRF_DEFINES += -DNRF52840_XXAA -DNRF52840
# Defined here because system_nrf52840.c doesn't #include any of our own include files.
CFLAGS += -DCONFIG_NFCT_PINS_AS_GPIOS
ifeq ($(INTERNAL_FLASH_FILESYSTEM),1)
OPTIMIZATION_FLAGS ?= -Os
CIRCUITPY_LTO=balanced
endif
else
ifeq ($(MCU_CHIP),nrf52833)
MCU_SERIES = m4
@ -87,5 +92,8 @@ SOFTDEV_VERSION ?= 7.0.1
BOOT_SETTING_ADDR = 0x7F000
NRF_DEFINES += -DNRF52833_XXAA -DNRF52833
OPTIMIZATION_FLAGS ?= -Os
CIRCUITPY_LTO=one
endif
endif

View File

@ -40,7 +40,7 @@
#include "py/mperrno.h"
#include "py/objproperty.h"
#include "py/runtime.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
//| class StateMachine:

View File

@ -28,7 +28,7 @@
#include "shared-bindings/analogio/AnalogIn.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "py/runtime.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "src/rp2_common/hardware_adc/include/hardware/adc.h"

View File

@ -31,7 +31,7 @@
#include "py/mperrno.h"
#include "py/runtime.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
void common_hal_analogio_analogout_construct(analogio_analogout_obj_t *self, const mcu_pin_obj_t *pin) {
mp_raise_NotImplementedError_varg(translate("%q"), MP_QSTR_AnalogOut);

View File

@ -37,7 +37,7 @@
#include "shared-bindings/microcontroller/Pin.h"
#include "shared-module/audiocore/__init__.h"
#include "bindings/rp2pio/StateMachine.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
const uint16_t i2s_program[] = {
// ; Load the next set of samples

View File

@ -32,7 +32,7 @@
#include "py/runtime.h"
#include "shared-bindings/audiobusio/PDMIn.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "audio_dma.h"

View File

@ -39,7 +39,7 @@
#include "shared-bindings/microcontroller/__init__.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "shared-bindings/microcontroller/Processor.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "src/rp2040/hardware_structs/include/hardware/structs/dma.h"
#include "src/rp2_common/hardware_pwm/include/hardware/pwm.h"

View File

@ -2,7 +2,7 @@
#include "py/runtime.h"
#include "py/mpstate.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "shared-bindings/countio/Edge.h"
#include "shared-bindings/digitalio/Pull.h"

View File

@ -32,7 +32,7 @@
#include "common-hal/microcontroller/Pin.h"
#include "shared-bindings/digitalio/DigitalInOut.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "src/rp2_common/hardware_gpio/include/hardware/gpio.h"

View File

@ -38,7 +38,7 @@
#include "supervisor/filesystem.h"
#include "supervisor/port.h"
#include "supervisor/shared/safe_mode.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "src/rp2040/hardware_structs/include/hardware/structs/sio.h"
#include "src/rp2_common/hardware_sync/include/hardware/sync.h"

View File

@ -32,7 +32,7 @@
#include "shared-bindings/microcontroller/__init__.h"
#include "shared-bindings/pulseio/PulseIn.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "bindings/rp2pio/StateMachine.h"
#include "common-hal/pulseio/PulseIn.h"

View File

@ -33,7 +33,7 @@
#include "shared-bindings/pwmio/PWMOut.h"
#include "shared-bindings/microcontroller/__init__.h"
#include "common-hal/pwmio/PWMOut.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "src/rp2040/hardware_structs/include/hardware/structs/pwm.h"
#include "src/rp2_common/hardware_gpio/include/hardware/gpio.h"
#include "src/rp2_common/hardware_pwm/include/hardware/pwm.h"

View File

@ -32,7 +32,7 @@
#include "shared-bindings/pwmio/PWMOut.h"
#include "shared-bindings/microcontroller/Processor.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "src/rp2040/hardware_regs/include/hardware/platform_defs.h"
#include "src/rp2_common/hardware_clocks/include/hardware/clocks.h"

View File

@ -88,8 +88,6 @@ else
CFLAGS += -DNDEBUG
OPTIMIZATION_FLAGS ?= -O2 -fno-inline-functions
CFLAGS += -ggdb3
# TODO: Test with -flto
# CFLAGS += -flto
endif
# to override compiler optimization level, set in boards/$(BOARD)/mpconfigboard.mk

View File

@ -27,7 +27,7 @@
#include "common-hal/analogio/AnalogIn.h"
#include "py/runtime.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "shared-bindings/microcontroller/Pin.h"

View File

@ -33,7 +33,7 @@
#include "shared-bindings/analogio/AnalogOut.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "common-hal/microcontroller/Pin.h"

View File

@ -31,7 +31,7 @@
#include "py/runtime.h"
#include "shared-bindings/microcontroller/__init__.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "shared-bindings/microcontroller/Pin.h"
// I2C timing specs for the H7 and F7

View File

@ -33,7 +33,7 @@
#include "shared-bindings/microcontroller/__init__.h"
#include "supervisor/board.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "shared-bindings/microcontroller/Pin.h"
// Note that any bugs introduced in this file can cause crashes at startup

View File

@ -35,7 +35,7 @@
#include "py/mperrno.h"
#include "py/runtime.h"
#include "py/stream.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#define ALL_UARTS 0xFFFF

View File

@ -28,7 +28,7 @@
#include "shared-bindings/digitalio/DigitalInOut.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "py/runtime.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
// The HAL is sparse on obtaining register information, so we use the LLs here.
#if (CPY_STM32H7)

View File

@ -32,7 +32,7 @@
#endif
#include "common-hal/microcontroller/Processor.h"
#include "shared-bindings/microcontroller/ResetReason.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include STM32_HAL_H

View File

@ -33,7 +33,7 @@
#include "py/runtime.h"
#include "shared-bindings/pulseio/PulseOut.h"
#include "shared-bindings/pwmio/PWMOut.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include STM32_HAL_H
#include "shared-bindings/microcontroller/Pin.h"

View File

@ -29,7 +29,7 @@
#include "py/runtime.h"
#include "common-hal/pwmio/PWMOut.h"
#include "shared-bindings/pwmio/PWMOut.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "shared-bindings/microcontroller/__init__.h"
#include STM32_HAL_H

View File

@ -32,7 +32,7 @@
#include "shared-bindings/microcontroller/__init__.h"
#include "shared-bindings/util.h"
#include "supervisor/board.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "common-hal/microcontroller/Pin.h"
#include "shared-bindings/microcontroller/Pin.h"

View File

@ -29,7 +29,7 @@
#include "py/gc.h"
#include "py/obj.h"
#include "py/runtime.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#include "shared-bindings/microcontroller/__init__.h"
#include "shared-bindings/microcontroller/Pin.h"

View File

@ -38,7 +38,7 @@
#include "py/objint.h"
#include "py/gc.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
/*
* modffi uses character codes to encode a value type, based on "struct"

View File

@ -36,7 +36,7 @@
#include "extmod/machine_signal.h"
#include "extmod/machine_pulse.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#if MICROPY_PLAT_DEV_MEM
#include <errno.h>

View File

@ -29,7 +29,7 @@
#include "py/runtime.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
void mp_arg_check_num_sig(size_t n_args, size_t n_kw, uint32_t sig) {
// TODO maybe take the function name as an argument so we can print nicer error messages

View File

@ -33,7 +33,7 @@
#include "py/bc0.h"
#include "py/bc.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#if MICROPY_DEBUG_VERBOSE // print debugging info
#define DEBUG_PRINT (1)

View File

@ -36,7 +36,7 @@
#include "py/objint.h"
#include "py/runtime.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
// Helpers to work with binary-encoded data

View File

@ -31,7 +31,7 @@
#include "py/runtime.h"
#include "py/builtin.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#if MICROPY_PY_BUILTINS_COMPILE

View File

@ -32,6 +32,8 @@
#include "py/mpconfig.h"
#include "py/objmodule.h"
#include "supervisor/shared/translate/translate.h"
#if MICROPY_PY_BUILTINS_HELP
const char mp_help_default_text[] =

View File

@ -39,7 +39,7 @@
#include "py/builtin.h"
#include "py/frozenmod.h"
#include "supervisor/shared/translate.h"
#include "supervisor/shared/translate/translate.h"
#if MICROPY_DEBUG_VERBOSE // print debugging info
#define DEBUG_PRINT (1)

Some files were not shown because too many files have changed in this diff Show More