From cf33ad9a548d5d481a34b46d6d0f6c5bd3d1e720 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 18 May 2018 12:31:23 +0200 Subject: [PATCH] atmel-samd/samd21: Enable long int on Express boards This is necessary for using 1970 epoch in the time module. --- .../boards/circuitplayground_express/mpconfigboard.h | 3 +++ .../boards/circuitplayground_express/mpconfigboard.mk | 2 ++ ports/atmel-samd/boards/feather_m0_express/mpconfigboard.h | 3 +++ ports/atmel-samd/boards/feather_m0_express/mpconfigboard.mk | 2 ++ ports/atmel-samd/boards/itsybitsy_m0_express/mpconfigboard.h | 3 +++ ports/atmel-samd/boards/itsybitsy_m0_express/mpconfigboard.mk | 1 + ports/atmel-samd/boards/metro_m0_express/mpconfigboard.h | 3 +++ ports/atmel-samd/boards/metro_m0_express/mpconfigboard.mk | 2 ++ ports/atmel-samd/mpconfigport.h | 2 ++ ports/atmel-samd/mpconfigport.mk | 2 ++ 10 files changed, 23 insertions(+) diff --git a/ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h b/ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h index 3d97e2cb19..44da28eae4 100644 --- a/ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h +++ b/ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h @@ -1,6 +1,9 @@ #define MICROPY_HW_BOARD_NAME "Adafruit CircuitPlayground Express" #define MICROPY_HW_MCU_NAME "samd21g18" +#define MICROPY_LONGINT_IMPL MICROPY_LONGINT_IMPL_MPZ +#define MP_SSIZE_MAX 0x7fffffff + // Don't allow touch on A0 (PA02), because it's connected to the speaker. #define PA02_NO_TOUCH (true) diff --git a/ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.mk b/ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.mk index 4d6e32eb7b..3b341c32c9 100644 --- a/ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.mk +++ b/ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.mk @@ -9,6 +9,8 @@ SPI_FLASH_FILESYSTEM = 1 CHIP_VARIANT = SAMD21G18A CHIP_FAMILY = samd21 +MPY_TOOL_LONGINT_IMPL = -mlongint-impl=mpz + # Include these Python libraries in firmware. FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_BusDevice FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_CircuitPlayground diff --git a/ports/atmel-samd/boards/feather_m0_express/mpconfigboard.h b/ports/atmel-samd/boards/feather_m0_express/mpconfigboard.h index bfa8c642a2..44141773da 100644 --- a/ports/atmel-samd/boards/feather_m0_express/mpconfigboard.h +++ b/ports/atmel-samd/boards/feather_m0_express/mpconfigboard.h @@ -1,6 +1,9 @@ #define MICROPY_HW_BOARD_NAME "Adafruit Feather M0 Express" #define MICROPY_HW_MCU_NAME "samd21g18" +#define MICROPY_LONGINT_IMPL MICROPY_LONGINT_IMPL_MPZ +#define MP_SSIZE_MAX 0x7fffffff + #define MICROPY_HW_NEOPIXEL (&pin_PA06) // Clock rates are off: Salae reads 12MHz which is the limit even though we set it to the safer 8MHz. diff --git a/ports/atmel-samd/boards/feather_m0_express/mpconfigboard.mk b/ports/atmel-samd/boards/feather_m0_express/mpconfigboard.mk index 909922dbe4..202d8a6264 100644 --- a/ports/atmel-samd/boards/feather_m0_express/mpconfigboard.mk +++ b/ports/atmel-samd/boards/feather_m0_express/mpconfigboard.mk @@ -8,3 +8,5 @@ SPI_FLASH_FILESYSTEM = 1 CHIP_VARIANT = SAMD21G18A CHIP_FAMILY = samd21 + +MPY_TOOL_LONGINT_IMPL = -mlongint-impl=mpz diff --git a/ports/atmel-samd/boards/itsybitsy_m0_express/mpconfigboard.h b/ports/atmel-samd/boards/itsybitsy_m0_express/mpconfigboard.h index be59bc5d4a..fea2d290b5 100644 --- a/ports/atmel-samd/boards/itsybitsy_m0_express/mpconfigboard.h +++ b/ports/atmel-samd/boards/itsybitsy_m0_express/mpconfigboard.h @@ -1,6 +1,9 @@ #define MICROPY_HW_BOARD_NAME "Adafruit Itsy Bitsy M0 Express" #define MICROPY_HW_MCU_NAME "samd21g18" +#define MICROPY_LONGINT_IMPL MICROPY_LONGINT_IMPL_MPZ +#define MP_SSIZE_MAX 0x7fffffff + #define CIRCUITPY_BITBANG_APA102 #define MICROPY_HW_APA102_MOSI (&pin_PA01) #define MICROPY_HW_APA102_SCK (&pin_PA00) diff --git a/ports/atmel-samd/boards/itsybitsy_m0_express/mpconfigboard.mk b/ports/atmel-samd/boards/itsybitsy_m0_express/mpconfigboard.mk index 0fb0e38ed4..b3e5a636d0 100644 --- a/ports/atmel-samd/boards/itsybitsy_m0_express/mpconfigboard.mk +++ b/ports/atmel-samd/boards/itsybitsy_m0_express/mpconfigboard.mk @@ -9,3 +9,4 @@ SPI_FLASH_FILESYSTEM = 1 CHIP_VARIANT = SAMD21G18A CHIP_FAMILY = samd21 +MPY_TOOL_LONGINT_IMPL = -mlongint-impl=mpz diff --git a/ports/atmel-samd/boards/metro_m0_express/mpconfigboard.h b/ports/atmel-samd/boards/metro_m0_express/mpconfigboard.h index f798c5d365..4825b66631 100644 --- a/ports/atmel-samd/boards/metro_m0_express/mpconfigboard.h +++ b/ports/atmel-samd/boards/metro_m0_express/mpconfigboard.h @@ -1,6 +1,9 @@ #define MICROPY_HW_BOARD_NAME "Adafruit Metro M0 Express" #define MICROPY_HW_MCU_NAME "samd21g18" +#define MICROPY_LONGINT_IMPL MICROPY_LONGINT_IMPL_MPZ +#define MP_SSIZE_MAX 0x7fffffff + #define MICROPY_HW_LED_TX PIN_PA27 //#define MICROPY_HW_LED_RX PIN_PA31 diff --git a/ports/atmel-samd/boards/metro_m0_express/mpconfigboard.mk b/ports/atmel-samd/boards/metro_m0_express/mpconfigboard.mk index 79d60380de..ee1335c9a0 100644 --- a/ports/atmel-samd/boards/metro_m0_express/mpconfigboard.mk +++ b/ports/atmel-samd/boards/metro_m0_express/mpconfigboard.mk @@ -8,3 +8,5 @@ SPI_FLASH_FILESYSTEM = 1 CHIP_VARIANT = SAMD21G18A CHIP_FAMILY = samd21 + +MPY_TOOL_LONGINT_IMPL = -mlongint-impl=mpz diff --git a/ports/atmel-samd/mpconfigport.h b/ports/atmel-samd/mpconfigport.h index 27c2480013..8e726f9b74 100644 --- a/ports/atmel-samd/mpconfigport.h +++ b/ports/atmel-samd/mpconfigport.h @@ -141,8 +141,10 @@ typedef long mp_off_t; #define MICROPY_PY_SYS_PLATFORM "Atmel SAMD21" #define PORT_HEAP_SIZE (16384 + 4096) // If you change MICROPY_LONGINT_IMPL, also change MPY_TOOL_LONGINT_IMPL in mpconfigport.mk. +#ifndef MICROPY_LONGINT_IMPL #define MICROPY_LONGINT_IMPL (MICROPY_LONGINT_IMPL_NONE) #endif +#endif #ifdef SAMD51 #define CIRCUITPY_MCU_FAMILY samd51 diff --git a/ports/atmel-samd/mpconfigport.mk b/ports/atmel-samd/mpconfigport.mk index 0f3f399e22..80ec9d9787 100644 --- a/ports/atmel-samd/mpconfigport.mk +++ b/ports/atmel-samd/mpconfigport.mk @@ -2,8 +2,10 @@ # $(MPY-TOOL) needs to know what kind of longint to use (if any) to freeze long integers. # This should correspond to the MICROPY_LONGINT_IMPL definition in mpconfigport.h. ifeq ($(CHIP_FAMILY), samd21) +ifndef MPY_TOOL_LONGINT_IMPL MPY_TOOL_LONGINT_IMPL = -mlongint-impl=none endif +endif ifeq ($(CHIP_FAMILY), samd51) MPY_TOOL_LONGINT_IMPL = -mlongint-impl=mpz