summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrobert-hh <robert@hammelrath.com>2022-06-04 13:27:12 +0200
committerDamien George <damien@micropython.org>2022-10-06 22:30:37 +1100
commita5d5ecbf8434e480b42a8a477ef9ba7979bba927 (patch)
treedd534e0cb6c26e1fc09c43f7c1335b53975840d0
parent0420799a847d4bb74c9a92666e2cd35c23b1c12c (diff)
samd/boards: Move mcu-specific settings into a mpconfig_samdXX.h file.
Located at the boards directory. That way, the mpconfigboard.h files are almost empty, just setting the board name and the MCU name.
-rw-r--r--ports/samd/Makefile3
-rw-r--r--ports/samd/boards/ADAFRUIT_FEATHER_M0_EXPRESS/mpconfigboard.h10
-rw-r--r--ports/samd/boards/ADAFRUIT_ITSYBITSY_M4_EXPRESS/mpconfigboard.h15
-rw-r--r--ports/samd/boards/ADAFRUIT_TRINKET_M0/mpconfigboard.h10
-rw-r--r--ports/samd/boards/MINISAM_M4/mpconfigboard.h15
-rw-r--r--ports/samd/boards/SAMD21_XPLAINED_PRO/mpconfigboard.h10
-rw-r--r--ports/samd/boards/SEEED_WIO_TERMINAL/mpconfigboard.h15
-rw-r--r--ports/samd/boards/SEEED_XIAO/mpconfigboard.h10
-rw-r--r--ports/samd/boards/mpconfig_samd21.h9
-rw-r--r--ports/samd/boards/mpconfig_samd51.h21
-rw-r--r--ports/samd/mpconfigport.h2
11 files changed, 35 insertions, 85 deletions
diff --git a/ports/samd/Makefile b/ports/samd/Makefile
index 1ef35c1a0..4dd6356c1 100644
--- a/ports/samd/Makefile
+++ b/ports/samd/Makefile
@@ -50,6 +50,9 @@ CFLAGS_MCU_SAMD51 = -mtune=cortex-m4 -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-a
CFLAGS = $(INC) -Wall -Werror -std=c99 -nostdlib -mthumb $(CFLAGS_MCU_$(MCU_SERIES)) -fsingle-precision-constant -Wdouble-promotion
CFLAGS += -DMCU_$(MCU_SERIES) -D__$(CMSIS_MCU)__
CFLAGS += $(CFLAGS_MOD) $(CFLAGS_EXTRA)
+CFLAGS += -DMPCONFIG_MCU_H='<boards/mpconfig_$(MCU_SERIES_LOWER).h>'
+
+QSTR_GLOBAL_DEPENDENCIES += boards/mpconfig_$(MCU_SERIES_LOWER).h
LDFLAGS = -nostdlib $(addprefix -T,$(LD_FILES)) -Map=$@.map --cref
LDFLAGS += $(LDFLAGS_MOD)
diff --git a/ports/samd/boards/ADAFRUIT_FEATHER_M0_EXPRESS/mpconfigboard.h b/ports/samd/boards/ADAFRUIT_FEATHER_M0_EXPRESS/mpconfigboard.h
index bdb22d2e0..cec9e9ccd 100644
--- a/ports/samd/boards/ADAFRUIT_FEATHER_M0_EXPRESS/mpconfigboard.h
+++ b/ports/samd/boards/ADAFRUIT_FEATHER_M0_EXPRESS/mpconfigboard.h
@@ -1,12 +1,2 @@
#define MICROPY_HW_BOARD_NAME "Feather M0 Express"
#define MICROPY_HW_MCU_NAME "SAMD21G18A"
-
-// MicroPython configs
-// samd_flash.c flash parameters
-// Build a 64k Flash storage at top. 256k-64k=196k
-// 256*1024=262144 minus 64*1024=65536 = 196608 = 0x30000
-#define MICROPY_HW_FLASH_STORAGE_BASE (0x30000)
-#define MICROPY_HW_FLASH_STORAGE_BYTES (0xFFFF)
-#define VFS_BLOCK_SIZE_BYTES (1536) // 24x 64B flash pages;
-
-#define CPU_FREQ (48000000) // For selecting Baud from clock.
diff --git a/ports/samd/boards/ADAFRUIT_ITSYBITSY_M4_EXPRESS/mpconfigboard.h b/ports/samd/boards/ADAFRUIT_ITSYBITSY_M4_EXPRESS/mpconfigboard.h
index 80baf39e5..2fffc9c7d 100644
--- a/ports/samd/boards/ADAFRUIT_ITSYBITSY_M4_EXPRESS/mpconfigboard.h
+++ b/ports/samd/boards/ADAFRUIT_ITSYBITSY_M4_EXPRESS/mpconfigboard.h
@@ -1,17 +1,2 @@
#define MICROPY_HW_BOARD_NAME "ItsyBitsy M4 Express"
#define MICROPY_HW_MCU_NAME "SAMD51G19A"
-
-#define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_FLOAT)
-#define MICROPY_PY_BUILTINS_COMPLEX (0)
-#define MICROPY_PY_MATH (0)
-#define MICROPY_PY_CMATH (0)
-
-// MicroPython configs
-// samd_flash.c flash parameters
-// Build a 128k Flash storage at top. 512k-128k=384k=0x60000
-// 512*1024= 0x80000 minus 128*1024= 0x20000 = 0x60000
-#define MICROPY_HW_FLASH_STORAGE_BASE (0x60000)
-#define MICROPY_HW_FLASH_STORAGE_BYTES (0x1FFFF)
-#define VFS_BLOCK_SIZE_BYTES (1536) //
-
-#define CPU_FREQ (48000000) // For selecting Baud from clock.
diff --git a/ports/samd/boards/ADAFRUIT_TRINKET_M0/mpconfigboard.h b/ports/samd/boards/ADAFRUIT_TRINKET_M0/mpconfigboard.h
index 066c7ee14..d3a6ba2d8 100644
--- a/ports/samd/boards/ADAFRUIT_TRINKET_M0/mpconfigboard.h
+++ b/ports/samd/boards/ADAFRUIT_TRINKET_M0/mpconfigboard.h
@@ -1,12 +1,2 @@
#define MICROPY_HW_BOARD_NAME "Trinket M0"
#define MICROPY_HW_MCU_NAME "SAMD21E18A"
-
-// MicroPython configs
-// samd_flash.c flash parameters
-// Build a 64k Flash storage at top. 256k-64k=196k
-// 256*1024=262144 minus 64*1024=65536 = 196608 = 0x30000
-#define MICROPY_HW_FLASH_STORAGE_BASE (0x30000)
-#define MICROPY_HW_FLASH_STORAGE_BYTES (0xFFFF)
-#define VFS_BLOCK_SIZE_BYTES (1536) // 24x 64B flash pages;
-
-#define CPU_FREQ (48000000) // For selecting Baud from clock.
diff --git a/ports/samd/boards/MINISAM_M4/mpconfigboard.h b/ports/samd/boards/MINISAM_M4/mpconfigboard.h
index a8f1f9624..6715a16f0 100644
--- a/ports/samd/boards/MINISAM_M4/mpconfigboard.h
+++ b/ports/samd/boards/MINISAM_M4/mpconfigboard.h
@@ -1,17 +1,2 @@
#define MICROPY_HW_BOARD_NAME "Mini SAM M4"
#define MICROPY_HW_MCU_NAME "SAMD51G19A"
-
-#define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_FLOAT)
-#define MICROPY_PY_BUILTINS_COMPLEX (0)
-#define MICROPY_PY_MATH (0)
-#define MICROPY_PY_CMATH (0)
-
-// MicroPython configs
-// samd_flash.c flash parameters
-// Build a 128k Flash storage at top. 512k-128k=384k=0x60000
-// 512*1024= 0x80000 minus 128*1024= 0x20000 = 0x60000
-#define MICROPY_HW_FLASH_STORAGE_BASE (0x60000)
-#define MICROPY_HW_FLASH_STORAGE_BYTES (0x1FFFF)
-#define VFS_BLOCK_SIZE_BYTES (1536) //
-
-#define CPU_FREQ (48000000) // For selecting Baud from clock.
diff --git a/ports/samd/boards/SAMD21_XPLAINED_PRO/mpconfigboard.h b/ports/samd/boards/SAMD21_XPLAINED_PRO/mpconfigboard.h
index 860cb6b97..c69b5b4c1 100644
--- a/ports/samd/boards/SAMD21_XPLAINED_PRO/mpconfigboard.h
+++ b/ports/samd/boards/SAMD21_XPLAINED_PRO/mpconfigboard.h
@@ -1,12 +1,2 @@
#define MICROPY_HW_BOARD_NAME "SAMD21-XPLAINED-PRO"
#define MICROPY_HW_MCU_NAME "SAMD21J18A"
-
-// MicroPython configs
-// samd_flash.c flash parameters
-// Build a 64k Flash storage at top. 256k-64k=196k
-// 256*1024=262144 minus 64*1024=65536 = 196608 = 0x30000
-#define MICROPY_HW_FLASH_STORAGE_BASE (0x30000)
-#define MICROPY_HW_FLASH_STORAGE_BYTES (0xFFFF)
-#define VFS_BLOCK_SIZE_BYTES (1536) // 24x 64B flash pages;
-
-#define CPU_FREQ (48000000) // For selecting Baud from clock.
diff --git a/ports/samd/boards/SEEED_WIO_TERMINAL/mpconfigboard.h b/ports/samd/boards/SEEED_WIO_TERMINAL/mpconfigboard.h
index bb0f1c828..cfda18d11 100644
--- a/ports/samd/boards/SEEED_WIO_TERMINAL/mpconfigboard.h
+++ b/ports/samd/boards/SEEED_WIO_TERMINAL/mpconfigboard.h
@@ -1,17 +1,2 @@
#define MICROPY_HW_BOARD_NAME "Wio Terminal D51R"
#define MICROPY_HW_MCU_NAME "SAMD51P19A"
-
-#define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_FLOAT)
-#define MICROPY_PY_BUILTINS_COMPLEX (0)
-#define MICROPY_PY_MATH (0)
-#define MICROPY_PY_CMATH (0)
-
-// MicroPython configs
-// samd_flash.c flash parameters
-// Build a 128k Flash storage at top. 512k-128k=384k=0x60000
-// 512*1024= 0x80000 minus 128*1024= 0x20000 = 0x60000
-#define MICROPY_HW_FLASH_STORAGE_BASE (0x60000)
-#define MICROPY_HW_FLASH_STORAGE_BYTES (0x1FFFF)
-#define VFS_BLOCK_SIZE_BYTES (1536) // 24x 64B flash pages;
-
-#define CPU_FREQ (48000000) // For selecting Baud from clock.
diff --git a/ports/samd/boards/SEEED_XIAO/mpconfigboard.h b/ports/samd/boards/SEEED_XIAO/mpconfigboard.h
index a2f2a9fb0..2026efc6b 100644
--- a/ports/samd/boards/SEEED_XIAO/mpconfigboard.h
+++ b/ports/samd/boards/SEEED_XIAO/mpconfigboard.h
@@ -1,12 +1,2 @@
#define MICROPY_HW_BOARD_NAME "Seeed Xiao"
#define MICROPY_HW_MCU_NAME "SAMD21G18A"
-
-// MicroPython configs
-// samd_flash.c flash parameters
-// Build a 64k Flash storage at top. 256k-64k=196k
-// 256*1024=262144 minus 64*1024=65536 = 196608 = 0x30000
-#define MICROPY_HW_FLASH_STORAGE_BASE (0x30000)
-#define MICROPY_HW_FLASH_STORAGE_BYTES (0xFFFF)
-#define VFS_BLOCK_SIZE_BYTES (1536) // 24x 64B flash pages;
-
-#define CPU_FREQ (48000000) // For selecting Baud from clock.
diff --git a/ports/samd/boards/mpconfig_samd21.h b/ports/samd/boards/mpconfig_samd21.h
new file mode 100644
index 000000000..1924f66f0
--- /dev/null
+++ b/ports/samd/boards/mpconfig_samd21.h
@@ -0,0 +1,9 @@
+// Deinitions common to all SAMD21 boards
+#include "samd21.h"
+
+#define MICROPY_HW_FLASH_STORAGE_BASE (0x30000)
+#define MICROPY_HW_FLASH_STORAGE_BYTES (0xFFFF)
+#define VFS_BLOCK_SIZE_BYTES (1536) // 24x 64B flash pages;
+
+#define CPU_FREQ (48000000)
+#define APB_FREQ (48000000)
diff --git a/ports/samd/boards/mpconfig_samd51.h b/ports/samd/boards/mpconfig_samd51.h
new file mode 100644
index 000000000..1b67b1d02
--- /dev/null
+++ b/ports/samd/boards/mpconfig_samd51.h
@@ -0,0 +1,21 @@
+// Deinitions common to all SAMD51 boards
+#include "samd51.h"
+
+#define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_FLOAT)
+#define MICROPY_PY_BUILTINS_COMPLEX (0)
+#define MICROPY_PY_MATH (0)
+#define MICROPY_PY_CMATH (0)
+
+// Due to a limitation in the TC counter for us, the ticks period is 2**29
+#define MICROPY_PY_UTIME_TICKS_PERIOD (0x20000000)
+// MicroPython configs
+// samd_flash.c flash parameters
+// Build a 128k Flash storage at top. 512k-128k=384k=0x60000
+// 512*1024= 0x80000 minus 128*1024= 0x20000 = 0x60000
+#define MICROPY_HW_FLASH_STORAGE_BASE (0x60000)
+#define MICROPY_HW_FLASH_STORAGE_BYTES (0x1FFFF)
+#define VFS_BLOCK_SIZE_BYTES (1536) //
+
+#define CPU_FREQ (120000000)
+#define APB_FREQ (48000000)
+#define DPLLx_REF_FREQ (32768)
diff --git a/ports/samd/mpconfigport.h b/ports/samd/mpconfigport.h
index 2c6052149..c29043c5d 100644
--- a/ports/samd/mpconfigport.h
+++ b/ports/samd/mpconfigport.h
@@ -28,6 +28,8 @@
// Board specific definitions
#include "mpconfigboard.h"
+// MCU-Specific definitions
+#include MPCONFIG_MCU_H
// Memory allocation policies
#define MICROPY_GC_STACK_ENTRY_TYPE uint16_t