From 15d8d88950a7827e02857c6a87e849a3d4e86208 Mon Sep 17 00:00:00 2001 From: Hierophect Date: Mon, 4 Nov 2019 14:15:26 -0500 Subject: Add default defines --- ports/stm32f4/boards/feather_stm32f405_express/board.c | 3 ++- .../boards/feather_stm32f405_express/mpconfigboard.h | 13 +++++++++++-- ports/stm32f4/boards/pyboard_v11/mpconfigboard.h | 6 +++++- ports/stm32f4/boards/stm32f412zg_discovery/mpconfigboard.h | 2 ++ 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/ports/stm32f4/boards/feather_stm32f405_express/board.c b/ports/stm32f4/boards/feather_stm32f405_express/board.c index 4421970ee..82b0c506e 100644 --- a/ports/stm32f4/boards/feather_stm32f405_express/board.c +++ b/ports/stm32f4/boards/feather_stm32f405_express/board.c @@ -25,12 +25,13 @@ */ #include "boards/board.h" +#include "mpconfigboard.h" void board_init(void) { } bool board_requests_safe_mode(void) { - return false; + return false; } void reset_board(void) { diff --git a/ports/stm32f4/boards/feather_stm32f405_express/mpconfigboard.h b/ports/stm32f4/boards/feather_stm32f405_express/mpconfigboard.h index d795342dd..67ddc885a 100644 --- a/ports/stm32f4/boards/feather_stm32f405_express/mpconfigboard.h +++ b/ports/stm32f4/boards/feather_stm32f405_express/mpconfigboard.h @@ -3,8 +3,7 @@ * * The MIT License (MIT) * - * Copyright (c) 2016 Glenn Ruben Bakke - * Copyright (c) 2018 Dan Halbert for Adafruit Industries + * Copyright (c) 2019 Lucian Copeland for Adafruit Industries * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -41,3 +40,13 @@ #define SPI_FLASH_MISO_PIN &pin_PB04 #define SPI_FLASH_SCK_PIN &pin_PB03 #define SPI_FLASH_CS_PIN &pin_PA15 + +#define DEFAULT_I2C_BUS_SCL (&pin_PB06) +#define DEFAULT_I2C_BUS_SDA (&pin_PB07) + +#define DEFAULT_SPI_BUS_SCK (&pin_PB13) +#define DEFAULT_SPI_BUS_MOSI (&pin_PB15) +#define DEFAULT_SPI_BUS_MISO (&pin_PB14) + +#define DEFAULT_UART_BUS_RX (&pin_PB11) +#define DEFAULT_UART_BUS_TX (&pin_PB10) diff --git a/ports/stm32f4/boards/pyboard_v11/mpconfigboard.h b/ports/stm32f4/boards/pyboard_v11/mpconfigboard.h index e8441d665..57ad4ca54 100644 --- a/ports/stm32f4/boards/pyboard_v11/mpconfigboard.h +++ b/ports/stm32f4/boards/pyboard_v11/mpconfigboard.h @@ -34,4 +34,8 @@ #define FLASH_PAGE_SIZE (0x4000) #define AUTORESET_DELAY_MS 500 -#define BOARD_FLASH_SIZE (FLASH_SIZE - 0x4000) \ No newline at end of file +#define BOARD_FLASH_SIZE (FLASH_SIZE - 0x4000) + + +#define DEFAULT_I2C_BUS_SCL (&pin_PB06) +#define DEFAULT_I2C_BUS_SDA (&pin_PB07) \ No newline at end of file diff --git a/ports/stm32f4/boards/stm32f412zg_discovery/mpconfigboard.h b/ports/stm32f4/boards/stm32f412zg_discovery/mpconfigboard.h index ebee98f89..339c5313f 100644 --- a/ports/stm32f4/boards/stm32f412zg_discovery/mpconfigboard.h +++ b/ports/stm32f4/boards/stm32f412zg_discovery/mpconfigboard.h @@ -36,3 +36,5 @@ #define AUTORESET_DELAY_MS 500 #define BOARD_FLASH_SIZE (FLASH_SIZE - 0x4000) +#define DEFAULT_I2C_BUS_SCL (&pin_PB10) +#define DEFAULT_I2C_BUS_SDA (&pin_PB09) -- cgit v1.2.3 From 3526fed611cc64ce7faddfc85ebadea540d5de05 Mon Sep 17 00:00:00 2001 From: Hierophect Date: Mon, 4 Nov 2019 14:31:57 -0500 Subject: add board global --- ports/stm32f4/boards/feather_stm32f405_express/pins.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ports/stm32f4/boards/feather_stm32f405_express/pins.c b/ports/stm32f4/boards/feather_stm32f405_express/pins.c index 518ab6d2a..4aa1f362a 100644 --- a/ports/stm32f4/boards/feather_stm32f405_express/pins.c +++ b/ports/stm32f4/boards/feather_stm32f405_express/pins.c @@ -25,5 +25,9 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PB10) }, { MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PB11) }, + + { MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) }, + { MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) }, + { MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) }, }; MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table); -- cgit v1.2.3 From ca1eb4def1bb48f69545c875baffa56c42df3fa2 Mon Sep 17 00:00:00 2001 From: Hierophect Date: Mon, 4 Nov 2019 14:35:23 -0500 Subject: Add other board globals --- ports/stm32f4/boards/pyboard_v11/pins.c | 2 ++ ports/stm32f4/boards/stm32f412zg_discovery/pins.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/ports/stm32f4/boards/pyboard_v11/pins.c b/ports/stm32f4/boards/pyboard_v11/pins.c index ccbb58ab9..8783dfcf1 100644 --- a/ports/stm32f4/boards/pyboard_v11/pins.c +++ b/ports/stm32f4/boards/pyboard_v11/pins.c @@ -46,5 +46,7 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PB06) }, { MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PB07) }, + + { MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) }, }; MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table); diff --git a/ports/stm32f4/boards/stm32f412zg_discovery/pins.c b/ports/stm32f4/boards/stm32f412zg_discovery/pins.c index a0b477a47..b92f21270 100644 --- a/ports/stm32f4/boards/stm32f412zg_discovery/pins.c +++ b/ports/stm32f4/boards/stm32f412zg_discovery/pins.c @@ -88,5 +88,7 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR_LED2), MP_ROM_PTR(&pin_PE01) }, { MP_ROM_QSTR(MP_QSTR_LED3), MP_ROM_PTR(&pin_PE02) }, { MP_ROM_QSTR(MP_QSTR_LED4), MP_ROM_PTR(&pin_PE03) }, + + { MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) }, }; MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table); -- cgit v1.2.3 From 40f920fbdfbeaf5c698aa1348ed559731dc4eb26 Mon Sep 17 00:00:00 2001 From: Hierophect Date: Mon, 4 Nov 2019 14:39:41 -0500 Subject: complete attribution edits --- ports/stm32f4/boards/pyboard_v11/mpconfigboard.h | 4 +--- ports/stm32f4/boards/stm32f411ve_discovery/mpconfigboard.h | 3 +-- ports/stm32f4/boards/stm32f412zg_discovery/mpconfigboard.h | 3 +-- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/ports/stm32f4/boards/pyboard_v11/mpconfigboard.h b/ports/stm32f4/boards/pyboard_v11/mpconfigboard.h index 57ad4ca54..7c4d670b4 100644 --- a/ports/stm32f4/boards/pyboard_v11/mpconfigboard.h +++ b/ports/stm32f4/boards/pyboard_v11/mpconfigboard.h @@ -3,8 +3,7 @@ * * The MIT License (MIT) * - * Copyright (c) 2016 Glenn Ruben Bakke - * Copyright (c) 2018 Dan Halbert for Adafruit Industries + * Copyright (c) 2019 Lucian Copeland for Adafruit Industries * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -36,6 +35,5 @@ #define AUTORESET_DELAY_MS 500 #define BOARD_FLASH_SIZE (FLASH_SIZE - 0x4000) - #define DEFAULT_I2C_BUS_SCL (&pin_PB06) #define DEFAULT_I2C_BUS_SDA (&pin_PB07) \ No newline at end of file diff --git a/ports/stm32f4/boards/stm32f411ve_discovery/mpconfigboard.h b/ports/stm32f4/boards/stm32f411ve_discovery/mpconfigboard.h index d5491fe36..d7898ba0b 100644 --- a/ports/stm32f4/boards/stm32f411ve_discovery/mpconfigboard.h +++ b/ports/stm32f4/boards/stm32f411ve_discovery/mpconfigboard.h @@ -3,8 +3,7 @@ * * The MIT License (MIT) * - * Copyright (c) 2016 Glenn Ruben Bakke - * Copyright (c) 2018 Dan Halbert for Adafruit Industries + * Copyright (c) 2019 Lucian Copeland for Adafruit Industries * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/ports/stm32f4/boards/stm32f412zg_discovery/mpconfigboard.h b/ports/stm32f4/boards/stm32f412zg_discovery/mpconfigboard.h index 339c5313f..45505dee2 100644 --- a/ports/stm32f4/boards/stm32f412zg_discovery/mpconfigboard.h +++ b/ports/stm32f4/boards/stm32f412zg_discovery/mpconfigboard.h @@ -3,8 +3,7 @@ * * The MIT License (MIT) * - * Copyright (c) 2016 Glenn Ruben Bakke - * Copyright (c) 2018 Dan Halbert for Adafruit Industries + * Copyright (c) 2019 Lucian Copeland for Adafruit Industries * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal -- cgit v1.2.3 From 9d4c95deeb726d6f90c9dbb3d5924911212e6330 Mon Sep 17 00:00:00 2001 From: Hierophect Date: Mon, 4 Nov 2019 16:45:19 -0500 Subject: Revert "Add default defines" This reverts commit 15d8d88950a7827e02857c6a87e849a3d4e86208. --- ports/stm32f4/boards/feather_stm32f405_express/board.c | 3 +-- .../boards/feather_stm32f405_express/mpconfigboard.h | 13 ++----------- ports/stm32f4/boards/pyboard_v11/mpconfigboard.h | 6 +----- ports/stm32f4/boards/stm32f412zg_discovery/mpconfigboard.h | 2 -- 4 files changed, 4 insertions(+), 20 deletions(-) diff --git a/ports/stm32f4/boards/feather_stm32f405_express/board.c b/ports/stm32f4/boards/feather_stm32f405_express/board.c index 82b0c506e..4421970ee 100644 --- a/ports/stm32f4/boards/feather_stm32f405_express/board.c +++ b/ports/stm32f4/boards/feather_stm32f405_express/board.c @@ -25,13 +25,12 @@ */ #include "boards/board.h" -#include "mpconfigboard.h" void board_init(void) { } bool board_requests_safe_mode(void) { - return false; + return false; } void reset_board(void) { diff --git a/ports/stm32f4/boards/feather_stm32f405_express/mpconfigboard.h b/ports/stm32f4/boards/feather_stm32f405_express/mpconfigboard.h index 67ddc885a..d795342dd 100644 --- a/ports/stm32f4/boards/feather_stm32f405_express/mpconfigboard.h +++ b/ports/stm32f4/boards/feather_stm32f405_express/mpconfigboard.h @@ -3,7 +3,8 @@ * * The MIT License (MIT) * - * Copyright (c) 2019 Lucian Copeland for Adafruit Industries + * Copyright (c) 2016 Glenn Ruben Bakke + * Copyright (c) 2018 Dan Halbert for Adafruit Industries * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -40,13 +41,3 @@ #define SPI_FLASH_MISO_PIN &pin_PB04 #define SPI_FLASH_SCK_PIN &pin_PB03 #define SPI_FLASH_CS_PIN &pin_PA15 - -#define DEFAULT_I2C_BUS_SCL (&pin_PB06) -#define DEFAULT_I2C_BUS_SDA (&pin_PB07) - -#define DEFAULT_SPI_BUS_SCK (&pin_PB13) -#define DEFAULT_SPI_BUS_MOSI (&pin_PB15) -#define DEFAULT_SPI_BUS_MISO (&pin_PB14) - -#define DEFAULT_UART_BUS_RX (&pin_PB11) -#define DEFAULT_UART_BUS_TX (&pin_PB10) diff --git a/ports/stm32f4/boards/pyboard_v11/mpconfigboard.h b/ports/stm32f4/boards/pyboard_v11/mpconfigboard.h index 57ad4ca54..e8441d665 100644 --- a/ports/stm32f4/boards/pyboard_v11/mpconfigboard.h +++ b/ports/stm32f4/boards/pyboard_v11/mpconfigboard.h @@ -34,8 +34,4 @@ #define FLASH_PAGE_SIZE (0x4000) #define AUTORESET_DELAY_MS 500 -#define BOARD_FLASH_SIZE (FLASH_SIZE - 0x4000) - - -#define DEFAULT_I2C_BUS_SCL (&pin_PB06) -#define DEFAULT_I2C_BUS_SDA (&pin_PB07) \ No newline at end of file +#define BOARD_FLASH_SIZE (FLASH_SIZE - 0x4000) \ No newline at end of file diff --git a/ports/stm32f4/boards/stm32f412zg_discovery/mpconfigboard.h b/ports/stm32f4/boards/stm32f412zg_discovery/mpconfigboard.h index 339c5313f..ebee98f89 100644 --- a/ports/stm32f4/boards/stm32f412zg_discovery/mpconfigboard.h +++ b/ports/stm32f4/boards/stm32f412zg_discovery/mpconfigboard.h @@ -36,5 +36,3 @@ #define AUTORESET_DELAY_MS 500 #define BOARD_FLASH_SIZE (FLASH_SIZE - 0x4000) -#define DEFAULT_I2C_BUS_SCL (&pin_PB10) -#define DEFAULT_I2C_BUS_SDA (&pin_PB09) -- cgit v1.2.3 From 632b3267dc33ec8f822159860bd012851b0ef977 Mon Sep 17 00:00:00 2001 From: Hierophect Date: Mon, 4 Nov 2019 17:08:00 -0500 Subject: Add auto-shutoff of DAC when channels de-inited --- ports/stm32f4/common-hal/analogio/AnalogOut.c | 17 +++++++++++++---- ports/stm32f4/common-hal/analogio/AnalogOut.h | 2 +- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/ports/stm32f4/common-hal/analogio/AnalogOut.c b/ports/stm32f4/common-hal/analogio/AnalogOut.c index 5eb8c2dc0..fd9608112 100644 --- a/ports/stm32f4/common-hal/analogio/AnalogOut.c +++ b/ports/stm32f4/common-hal/analogio/AnalogOut.c @@ -46,6 +46,8 @@ DAC_HandleTypeDef handle; #endif +STATIC bool dac_on[2]; + void common_hal_analogio_analogout_construct(analogio_analogout_obj_t* self, const mcu_pin_obj_t *pin) { #if !(HAS_DAC) @@ -53,11 +55,14 @@ void common_hal_analogio_analogout_construct(analogio_analogout_obj_t* self, #else if (pin == &pin_PA04) { self->channel = DAC_CHANNEL_1; + self->dac_index = 0; } else if (pin == &pin_PA05) { self->channel = DAC_CHANNEL_2; + self->dac_index = 1; } else { mp_raise_ValueError(translate("Invalid DAC pin supplied")); } + dac_on[self->dac_index] = true; //Only init if the shared DAC is empty or reset if (handle.Instance == NULL || handle.State == HAL_DAC_STATE_RESET) { @@ -83,21 +88,25 @@ void common_hal_analogio_analogout_construct(analogio_analogout_obj_t* self, } self->pin = pin; - self->deinited = false; claim_pin(pin); #endif } bool common_hal_analogio_analogout_deinited(analogio_analogout_obj_t *self) { - return self->deinited; + return !dac_on[self->dac_index]; } void common_hal_analogio_analogout_deinit(analogio_analogout_obj_t *self) { #if HAS_DAC reset_pin_number(self->pin->port,self->pin->number); self->pin = mp_const_none; - self->deinited = true; - //TODO: if both are de-inited, should we turn off the DAC? + dac_on[self->dac_index] = false; + + //turn off the DAC if both channels are off + if(dac_on[0] == false && dac_on[1] == false) { + __HAL_RCC_DAC_CLK_DISABLE(); + HAL_DAC_DeInit(&handle); + } #endif } diff --git a/ports/stm32f4/common-hal/analogio/AnalogOut.h b/ports/stm32f4/common-hal/analogio/AnalogOut.h index 1381d4d3a..61591d0e6 100644 --- a/ports/stm32f4/common-hal/analogio/AnalogOut.h +++ b/ports/stm32f4/common-hal/analogio/AnalogOut.h @@ -41,7 +41,7 @@ typedef struct { #endif const mcu_pin_obj_t * pin; uint8_t channel; - bool deinited; + uint8_t dac_index:1; } analogio_analogout_obj_t; void analogout_reset(void); -- cgit v1.2.3 From 38e38b9f8d793de3227c4035a3a606a270a888f5 Mon Sep 17 00:00:00 2001 From: Hierophect Date: Mon, 4 Nov 2019 17:20:10 -0500 Subject: remove redundant comment --- ports/stm32f4/common-hal/analogio/AnalogOut.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/ports/stm32f4/common-hal/analogio/AnalogOut.c b/ports/stm32f4/common-hal/analogio/AnalogOut.c index fd9608112..f38c86274 100644 --- a/ports/stm32f4/common-hal/analogio/AnalogOut.c +++ b/ports/stm32f4/common-hal/analogio/AnalogOut.c @@ -40,8 +40,6 @@ #include "stm32f4xx_hal.h" //DAC is shared between both channels. -//TODO: store as struct with channel info, automatically turn it off if unused -//on both channels for power save? #if HAS_DAC DAC_HandleTypeDef handle; #endif -- cgit v1.2.3 From dfe73a063d5a38745e314120ce1b28008b719481 Mon Sep 17 00:00:00 2001 From: Hierophect Date: Tue, 5 Nov 2019 10:50:57 -0500 Subject: Fix error that would carry past python exception --- ports/stm32f4/common-hal/analogio/AnalogOut.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/stm32f4/common-hal/analogio/AnalogOut.c b/ports/stm32f4/common-hal/analogio/AnalogOut.c index f38c86274..79ced0492 100644 --- a/ports/stm32f4/common-hal/analogio/AnalogOut.c +++ b/ports/stm32f4/common-hal/analogio/AnalogOut.c @@ -60,7 +60,6 @@ void common_hal_analogio_analogout_construct(analogio_analogout_obj_t* self, } else { mp_raise_ValueError(translate("Invalid DAC pin supplied")); } - dac_on[self->dac_index] = true; //Only init if the shared DAC is empty or reset if (handle.Instance == NULL || handle.State == HAL_DAC_STATE_RESET) { @@ -85,6 +84,7 @@ void common_hal_analogio_analogout_construct(analogio_analogout_obj_t* self, mp_raise_ValueError(translate("DAC Channel Init Error")); } + dac_on[self->dac_index] = true; self->pin = pin; claim_pin(pin); #endif -- cgit v1.2.3 From e66fcb5e1f98ff75185d3829ef36c0af33fd293f Mon Sep 17 00:00:00 2001 From: Hierophect Date: Tue, 5 Nov 2019 16:32:34 -0500 Subject: add missing newline --- ports/stm32f4/boards/pyboard_v11/mpconfigboard.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/stm32f4/boards/pyboard_v11/mpconfigboard.h b/ports/stm32f4/boards/pyboard_v11/mpconfigboard.h index 7c4d670b4..9d8f72f77 100644 --- a/ports/stm32f4/boards/pyboard_v11/mpconfigboard.h +++ b/ports/stm32f4/boards/pyboard_v11/mpconfigboard.h @@ -36,4 +36,4 @@ #define BOARD_FLASH_SIZE (FLASH_SIZE - 0x4000) #define DEFAULT_I2C_BUS_SCL (&pin_PB06) -#define DEFAULT_I2C_BUS_SDA (&pin_PB07) \ No newline at end of file +#define DEFAULT_I2C_BUS_SDA (&pin_PB07) -- cgit v1.2.3 From c7195c4bc5a43f0aae731f3030961b60d1db4cac Mon Sep 17 00:00:00 2001 From: Thea Flowers Date: Tue, 29 Oct 2019 10:11:19 -0700 Subject: Allow boards to enable the `micropython.native` decorator Adds the `CIRCUITPY_ENABLE_MPY_NATIVE` for `mpconfigboard.mk` that enables the `micropython.native` decorator. --- .../atmel-samd/boards/winterbloom_sol/mpconfigboard.mk | 3 +++ py/circuitpy_mpconfig.h | 4 ++-- py/circuitpy_mpconfig.mk | 7 +++++++ py/compile.c | 2 +- py/emitnative.c | 18 ++++++++++++++++++ py/objfun.c | 2 ++ 6 files changed, 33 insertions(+), 3 deletions(-) diff --git a/ports/atmel-samd/boards/winterbloom_sol/mpconfigboard.mk b/ports/atmel-samd/boards/winterbloom_sol/mpconfigboard.mk index 19917898b..aa94af6a4 100644 --- a/ports/atmel-samd/boards/winterbloom_sol/mpconfigboard.mk +++ b/ports/atmel-samd/boards/winterbloom_sol/mpconfigboard.mk @@ -25,3 +25,6 @@ CIRCUITPY_I2CSLAVE = 0 CIRCUITPY_NETWORK = 0 CIRCUITPY_TOUCHIO = 0 CIRCUITPY_PS2IO = 0 + +# Enable micropython.native +CIRCUITPY_ENABLE_MPY_NATIVE = 1 diff --git a/py/circuitpy_mpconfig.h b/py/circuitpy_mpconfig.h index 2cb617819..b1e7bc05a 100644 --- a/py/circuitpy_mpconfig.h +++ b/py/circuitpy_mpconfig.h @@ -56,8 +56,8 @@ #define MICROPY_COMP_MODULE_CONST (1) #define MICROPY_COMP_TRIPLE_TUPLE_ASSIGN (0) #define MICROPY_DEBUG_PRINTERS (0) -#define MICROPY_EMIT_INLINE_THUMB (0) -#define MICROPY_EMIT_THUMB (0) +#define MICROPY_EMIT_INLINE_THUMB (CIRCUITPY_ENABLE_MPY_NATIVE) +#define MICROPY_EMIT_THUMB (CIRCUITPY_ENABLE_MPY_NATIVE) #define MICROPY_EMIT_X64 (0) #define MICROPY_ENABLE_DOC_STRING (0) #define MICROPY_ENABLE_FINALISER (1) diff --git a/py/circuitpy_mpconfig.mk b/py/circuitpy_mpconfig.mk index ac79d32d0..c1199571b 100644 --- a/py/circuitpy_mpconfig.mk +++ b/py/circuitpy_mpconfig.mk @@ -294,3 +294,10 @@ ifndef CIRCUITPY_BITBANG_APA102 CIRCUITPY_BITBANG_APA102 = 0 endif CFLAGS += -DCIRCUITPY_BITBANG_APA102=$(CIRCUITPY_BITBANG_APA102) + + +# Enabled micropython.native decorator (experimental) +ifndef CIRCUITPY_ENABLE_MPY_NATIVE +CIRCUITPY_ENABLE_MPY_NATIVE = 0 +endif +CFLAGS += -DCIRCUITPY_ENABLE_MPY_NATIVE=$(CIRCUITPY_ENABLE_MPY_NATIVE) diff --git a/py/compile.c b/py/compile.c index 1218aa07e..8b17935bd 100644 --- a/py/compile.c +++ b/py/compile.c @@ -3207,7 +3207,7 @@ STATIC void compile_scope_inline_asm(compiler_t *comp, scope_t *scope, pass_kind } if (pass > MP_PASS_SCOPE) { mp_int_t bytesize = MP_PARSE_NODE_LEAF_SMALL_INT(pn_arg[0]); - for (uint j = 1; j < n_args; j++) { + for (int j = 1; j < n_args; j++) { if (!MP_PARSE_NODE_IS_SMALL_INT(pn_arg[j])) { compile_syntax_error(comp, nodes[i], translate("'data' requires integer arguments")); return; diff --git a/py/emitnative.c b/py/emitnative.c index 67b0025c6..6d23bf097 100644 --- a/py/emitnative.c +++ b/py/emitnative.c @@ -58,6 +58,22 @@ #define DEBUG_printf(...) (void)0 #endif +#ifndef N_X64 + #define N_X64 (0) +#endif +#ifndef N_X86 + #define N_X86 (0) +#endif +#ifndef N_THUMB + #define N_THUMB (0) +#endif +#ifndef N_ARM + #define N_ARM (0) +#endif +#ifndef N_XTENSA + #define N_XTENSA (0) +#endif + // wrapper around everything in this file #if N_X64 || N_X86 || N_THUMB || N_ARM || N_XTENSA @@ -443,10 +459,12 @@ STATIC void emit_native_end_pass(emit_t *emit) { type_sig |= (emit->local_vtype[i] & 0xf) << (i * 4 + 4); } + #pragma GCC diagnostic ignored "-Wcast-align" mp_emit_glue_assign_native(emit->scope->raw_code, emit->do_viper_types ? MP_CODE_NATIVE_VIPER : MP_CODE_NATIVE_PY, f, f_len, (mp_uint_t*)((byte*)f + emit->const_table_offset), emit->scope->num_pos_args, emit->scope->scope_flags, type_sig); + #pragma GCC diagnostic pop } } diff --git a/py/objfun.c b/py/objfun.c index b8364815b..fd55e532a 100644 --- a/py/objfun.c +++ b/py/objfun.c @@ -546,7 +546,9 @@ STATIC mp_uint_t convert_obj_for_inline_asm(mp_obj_t obj) { STATIC mp_obj_t fun_asm_call(mp_obj_t self_in, size_t n_args, size_t n_kw, const mp_obj_t *args) { mp_obj_fun_asm_t *self = self_in; + #pragma GCC diagnostic ignored "-Wint-conversion" mp_arg_check_num(n_args, n_kw, self->n_args, self->n_args, false); + #pragma GCC diagnostic pop void *fun = MICROPY_MAKE_POINTER_CALLABLE(self->fun_data); -- cgit v1.2.3 From 3439c3619753955b6368fc91acec3e14c76c6dd3 Mon Sep 17 00:00:00 2001 From: Thea Flowers Date: Tue, 5 Nov 2019 17:49:47 -0800 Subject: Fix bad call to mp_arg_check_num --- py/objfun.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/py/objfun.c b/py/objfun.c index fd55e532a..7e5899456 100644 --- a/py/objfun.c +++ b/py/objfun.c @@ -546,9 +546,7 @@ STATIC mp_uint_t convert_obj_for_inline_asm(mp_obj_t obj) { STATIC mp_obj_t fun_asm_call(mp_obj_t self_in, size_t n_args, size_t n_kw, const mp_obj_t *args) { mp_obj_fun_asm_t *self = self_in; - #pragma GCC diagnostic ignored "-Wint-conversion" - mp_arg_check_num(n_args, n_kw, self->n_args, self->n_args, false); - #pragma GCC diagnostic pop + mp_arg_check_num_kw_array(n_args, n_kw, self->n_args, self->n_args, false); void *fun = MICROPY_MAKE_POINTER_CALLABLE(self->fun_data); -- cgit v1.2.3 From 39dbcb529aa9dd2466900e5ae852c7bea9422b48 Mon Sep 17 00:00:00 2001 From: Hierophect Date: Wed, 6 Nov 2019 14:54:07 -0500 Subject: revert git being a dumb --- ports/stm32f4/boards/feather_stm32f405_express/board.c | 3 ++- .../boards/feather_stm32f405_express/mpconfigboard.h | 13 +++++++++++-- ports/stm32f4/boards/stm32f412zg_discovery/mpconfigboard.h | 2 ++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/ports/stm32f4/boards/feather_stm32f405_express/board.c b/ports/stm32f4/boards/feather_stm32f405_express/board.c index 4421970ee..4560e86fc 100644 --- a/ports/stm32f4/boards/feather_stm32f405_express/board.c +++ b/ports/stm32f4/boards/feather_stm32f405_express/board.c @@ -25,12 +25,13 @@ */ #include "boards/board.h" +#include "mpconfigboard.h" void board_init(void) { } bool board_requests_safe_mode(void) { - return false; + return false; } void reset_board(void) { diff --git a/ports/stm32f4/boards/feather_stm32f405_express/mpconfigboard.h b/ports/stm32f4/boards/feather_stm32f405_express/mpconfigboard.h index d795342dd..67ddc885a 100644 --- a/ports/stm32f4/boards/feather_stm32f405_express/mpconfigboard.h +++ b/ports/stm32f4/boards/feather_stm32f405_express/mpconfigboard.h @@ -3,8 +3,7 @@ * * The MIT License (MIT) * - * Copyright (c) 2016 Glenn Ruben Bakke - * Copyright (c) 2018 Dan Halbert for Adafruit Industries + * Copyright (c) 2019 Lucian Copeland for Adafruit Industries * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -41,3 +40,13 @@ #define SPI_FLASH_MISO_PIN &pin_PB04 #define SPI_FLASH_SCK_PIN &pin_PB03 #define SPI_FLASH_CS_PIN &pin_PA15 + +#define DEFAULT_I2C_BUS_SCL (&pin_PB06) +#define DEFAULT_I2C_BUS_SDA (&pin_PB07) + +#define DEFAULT_SPI_BUS_SCK (&pin_PB13) +#define DEFAULT_SPI_BUS_MOSI (&pin_PB15) +#define DEFAULT_SPI_BUS_MISO (&pin_PB14) + +#define DEFAULT_UART_BUS_RX (&pin_PB11) +#define DEFAULT_UART_BUS_TX (&pin_PB10) diff --git a/ports/stm32f4/boards/stm32f412zg_discovery/mpconfigboard.h b/ports/stm32f4/boards/stm32f412zg_discovery/mpconfigboard.h index d01d0dd9f..45505dee2 100644 --- a/ports/stm32f4/boards/stm32f412zg_discovery/mpconfigboard.h +++ b/ports/stm32f4/boards/stm32f412zg_discovery/mpconfigboard.h @@ -35,3 +35,5 @@ #define AUTORESET_DELAY_MS 500 #define BOARD_FLASH_SIZE (FLASH_SIZE - 0x4000) +#define DEFAULT_I2C_BUS_SCL (&pin_PB10) +#define DEFAULT_I2C_BUS_SDA (&pin_PB09) -- cgit v1.2.3 From d42c4b082d2d7d50d3588a5983f5222d3d60b11e Mon Sep 17 00:00:00 2001 From: Hierophect Date: Wed, 6 Nov 2019 14:55:16 -0500 Subject: revert sublime being a dumb --- ports/stm32f4/boards/feather_stm32f405_express/board.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/stm32f4/boards/feather_stm32f405_express/board.c b/ports/stm32f4/boards/feather_stm32f405_express/board.c index 4560e86fc..82b0c506e 100644 --- a/ports/stm32f4/boards/feather_stm32f405_express/board.c +++ b/ports/stm32f4/boards/feather_stm32f405_express/board.c @@ -31,7 +31,7 @@ void board_init(void) { } bool board_requests_safe_mode(void) { - return false; + return false; } void reset_board(void) { -- cgit v1.2.3 From 39b38256fd2159680d0f01f73de6cad26597909c Mon Sep 17 00:00:00 2001 From: Melissa LeBlanc-Williams Date: Fri, 8 Nov 2019 12:35:35 -0800 Subject: Fixed I2CDisplay reset issue --- shared-module/displayio/I2CDisplay.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/shared-module/displayio/I2CDisplay.c b/shared-module/displayio/I2CDisplay.c index d9452dc50..0307410d1 100644 --- a/shared-module/displayio/I2CDisplay.c +++ b/shared-module/displayio/I2CDisplay.c @@ -42,12 +42,22 @@ void common_hal_displayio_i2cdisplay_construct(displayio_i2cdisplay_obj_t* self, busio_i2c_obj_t* i2c, uint16_t device_address, const mcu_pin_obj_t* reset) { + // Reset the display before probing + self->reset.base.type = &mp_type_NoneType; + if (reset != NULL) { + self->reset.base.type = &digitalio_digitalinout_type; + common_hal_digitalio_digitalinout_construct(&self->reset, reset); + common_hal_digitalio_digitalinout_switch_to_output(&self->reset, true, DRIVE_MODE_PUSH_PULL); + never_reset_pin_number(reset->number); + common_hal_displayio_i2cdisplay_reset(self); + } + // Probe the bus to see if a device acknowledges the given address. if (!common_hal_busio_i2c_probe(i2c, device_address)) { mp_raise_ValueError_varg(translate("Unable to find I2C Display at %x"), device_address); } - // Write to the device and return 0 on success or an appropriate error code from mperrno.h + // Write to the device and return 0 on success or an appropriate error code from mperrno.h self->bus = i2c; common_hal_busio_i2c_never_reset(self->bus); // Our object is statically allocated off the heap so make sure the bus object lives to the end @@ -55,15 +65,6 @@ void common_hal_displayio_i2cdisplay_construct(displayio_i2cdisplay_obj_t* self, gc_never_free(self->bus); self->address = device_address; - - self->reset.base.type = &mp_type_NoneType; - if (reset != NULL) { - self->reset.base.type = &digitalio_digitalinout_type; - common_hal_digitalio_digitalinout_construct(&self->reset, reset); - common_hal_digitalio_digitalinout_switch_to_output(&self->reset, true, DRIVE_MODE_PUSH_PULL); - never_reset_pin_number(reset->number); - common_hal_displayio_i2cdisplay_reset(self); - } } void common_hal_displayio_i2cdisplay_deinit(displayio_i2cdisplay_obj_t* self) { -- cgit v1.2.3