From a5f6cb3c57fa088afa20d2892105fb068cd11645 Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Fri, 19 Aug 2016 20:24:04 -0700 Subject: [PATCH] Compiled and linked SAMD21x18 version successfully. --- atmel-samd/Makefile | 93 ++++++++++++ atmel-samd/README.md | 17 +++ atmel-samd/asf/asf-releasenotes-3.32.0.pdf | Bin 0 -> 147250 bytes atmel-samd/asf/readme.txt | 125 +++++++++++++++ atmel-samd/frozentest.mpy | Bin 0 -> 255 bytes atmel-samd/frozentest.py | 7 + atmel-samd/main.c | 167 +++++++++++++++++++++ atmel-samd/mpconfigport.h | 95 ++++++++++++ atmel-samd/mphalport.h | 2 + atmel-samd/qstrdefsport.h | 1 + atmel-samd/samd21.ld | 62 ++++++++ atmel-samd/uart_core.c | 44 ++++++ 12 files changed, 613 insertions(+) create mode 100644 atmel-samd/Makefile create mode 100644 atmel-samd/README.md create mode 100644 atmel-samd/asf/asf-releasenotes-3.32.0.pdf create mode 100644 atmel-samd/asf/readme.txt create mode 100644 atmel-samd/frozentest.mpy create mode 100644 atmel-samd/frozentest.py create mode 100644 atmel-samd/main.c create mode 100644 atmel-samd/mpconfigport.h create mode 100644 atmel-samd/mphalport.h create mode 100644 atmel-samd/qstrdefsport.h create mode 100644 atmel-samd/samd21.ld create mode 100644 atmel-samd/uart_core.c diff --git a/atmel-samd/Makefile b/atmel-samd/Makefile new file mode 100644 index 0000000000..2174d67d82 --- /dev/null +++ b/atmel-samd/Makefile @@ -0,0 +1,93 @@ +include ../py/mkenv.mk + +CROSS = 0 + +# qstr definitions (must come before including py.mk) +QSTR_DEFS = qstrdefsport.h + +# include py core make definitions +include ../py/py.mk + +ifeq ($(CROSS), 1) +CROSS_COMPILE = arm-none-eabi- +endif + +BOSSAC := /Users/tannewt/ArduinoCore-samd/tools/bossac_osx + +INC += -I. +INC += -I.. +INC += -I../lib/mp-readline +INC += -I$(BUILD) + +ifeq ($(CROSS), 1) +CFLAGS_CORTEX_M0 = -mthumb -mabi=aapcs-linux -mcpu=cortex-m0plus -fsingle-precision-constant -Wdouble-promotion -D__SAMD21G18A__ +CFLAGS = $(INC) -Wall -Werror -ansi -std=gnu99 -nostdlib $(CFLAGS_CORTEX_M0) $(COPT) +else +CFLAGS = -m32 $(INC) -Wall -Werror -ansi -std=gnu99 $(COPT) +endif + +#Debugging/Optimization +ifeq ($(DEBUG), 1) +CFLAGS += -O0 -ggdb +else +CFLAGS += -Os -DNDEBUG +endif + +LIBS = +ifeq ($(CROSS), 1) +LIBGCC_FILE_NAME = $(shell $(CC) $(CFLAGS) -print-libgcc-file-name) +LDFLAGS = -Lasf/thirdparty/CMSIS/Lib/GCC/ -L $(dir $(LIBGCC_FILE_NAME)) -nostdlib -T samd21.ld -Map=$@.map --cref +LIBS += -larm_cortexM0l_math -lgcc +else +LD = gcc +LDFLAGS = -m32 -Wl,-Map=$@.map,--cref +endif + +SRC_C = \ + main.c \ + uart_core.c \ + lib/utils/stdout_helpers.c \ + lib/utils/printf.c \ + lib/utils/pyexec.c \ + lib/libc/string0.c \ + lib/mp-readline/readline.c \ + $(BUILD)/_frozen_mpy.c \ + +OBJ = $(PY_O) $(addprefix $(BUILD)/, $(SRC_C:.c=.o)) + +ifeq ($(CROSS), 1) +all: $(BUILD)/firmware.bin +else +all: $(BUILD)/firmware.elf +endif + +$(BUILD)/_frozen_mpy.c: frozentest.mpy $(BUILD)/genhdr/qstrdefs.generated.h + $(ECHO) "MISC freezing bytecode" + $(Q)../tools/mpy-tool.py -f -q $(BUILD)/genhdr/qstrdefs.preprocessed.h -mlongint-impl=none $< > $@ + +$(BUILD)/firmware.elf: $(OBJ) + $(ECHO) "LINK $@" + $(Q)$(LD) $(LDFLAGS) -o $@ $^ $(LIBS) + $(Q)$(SIZE) $@ + +$(BUILD)/firmware.bin: $(BUILD)/firmware.elf + $(ECHO) "Create $@" + $(Q)$(OBJCOPY) -O binary -j .isr_vector -j .text -j .data $^ $@ + +deploy: $(BUILD)/firmware.bin + $(ECHO) "Writing $< to the board" + $(BOSSAC) -u $< + +# Run emulation build on a POSIX system with suitable terminal settings +run: + stty raw opost -echo + build/firmware.elf + @echo Resetting terminal... +# This sleep is useful to spot segfaults + sleep 1 + reset + +test: $(BUILD)/firmware.elf + $(Q)/bin/echo -e "print('hello world!', list(x+1 for x in range(10)), end='eol\\\\n')\\r\\n\\x04" | $(BUILD)/firmware.elf | tail -n2 | grep "^hello world! \\[1, 2, 3, 4, 5, 6, 7, 8, 9, 10\\]eol" + +include ../py/mkrules.mk diff --git a/atmel-samd/README.md b/atmel-samd/README.md new file mode 100644 index 0000000000..d28484e606 --- /dev/null +++ b/atmel-samd/README.md @@ -0,0 +1,17 @@ +# SAMD21x18 + +This port is intended to be a full featured MicroPython port for SAMD21x18 based +development boards including the Arduino Zero, Adafruit Feather M0 and Adafruit +M0 BLE. + +## Building for a SAMD21x18 MCU + +The Makefile has the ability to build for a SAMD21x18, and by default +includes some start-up code and also enables a UART for communication. To build: + + $ make CROSS=1 + +If you previously built the Linux version, you will need to first run +`make clean` to get rid of incompatible object files. + +Deploying coming soon! diff --git a/atmel-samd/asf/asf-releasenotes-3.32.0.pdf b/atmel-samd/asf/asf-releasenotes-3.32.0.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0a17a3bc282aa993a25e7a810718b3f0c2270792 GIT binary patch literal 147250 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

LDF}vNp?yKbfTdd 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 literal 0 HcmV?d00001 diff --git a/atmel-samd/asf/readme.txt b/atmel-samd/asf/readme.txt new file mode 100644 index 0000000000..24a71b0a84 --- /dev/null +++ b/atmel-samd/asf/readme.txt @@ -0,0 +1,125 @@ +1 - Introduction +---------------- + +The Atmel® Software Framework (ASF) is a collection of embedded software for Atmel flash MCU (www.atmel.com/asf). +» It simplifies the usage of microcontrollers, providing an abstraction to the hardware and high-value middlewares +» ASF is designed to be used for evaluation, prototyping, design and production phases +» ASF is integrated in the Atmel Studio IDE with a graphical user interface or available as standalone for GCC, IAR compilers +» ASF can be downloaded for free + +ASF online documentation can be found here: http://asf.atmel.com + +Supported devices: +» AVR UC3(Trade Mark) (http://www.atmel.com/products/microcontrollers/avr/32-bitavruc3.aspx) +» AVR XMEGA(Trade Mark) (http://www.atmel.com/products/microcontrollers/avr/avr_xmega.aspx) +» megaAVR(Trade Mark) (http://www.atmel.com/products/microcontrollers/avr/megaavr.aspx) +» SAM (http://www.atmel.com/products/microcontrollers/arm/default.aspx) + +Each software module is provided with full source code, example of usage and +ready-to-use projects for the IAR EW and GNU GCC compilers. + +This package is dedicated for IAR and GCC makefile users. AVR Studio 5 or Atmel Studio 6 users do not +need this package as the ASF is integrated in Atmel Studio. + +The top folder organization is as follow: +- the avr32/ folder contains software modules(source code and projects) dedicated to AVR UC3 devices, +- the mega/ folder contains software modules(source code and projects) dedicated to megaAVR devices, +- the xmega/ folder contains software modules(source code and projects) dedicated to AVR XMEGA devices, +- the sam/ folder contains software modules(source code and projects) dedicated to SAM devices, +- the common/ folder contains software modules(source code and projects) shared by all AVR and SAM devices, +- the thirdparty/ folder contains software modules(source code and projects) from thirdparty providers for all Atmel devices. + +The thirdparty/ folder is organized by thirdparty software module (i.e. one folder per thirdparty software module). + +The avr32/, xmega/, mega/, sam/ and common/ folders are organized as follow: +- the drivers/ folder contains low-level software drivers for MCU on-chip resources (eg cpu, usart, adc drivers). +- the boards/ folder contains board-specific source code files. +- the utils/ folder contains files that are used by all other modules: it holds +several linker script files, IAR & GCC pre-compiled libraries of some ASF modules, +and C/C++ utility files with general usage defines, macros and functions. +- the services/ folder contains application-oriented pieces of software that are +not specific to boards nor chips (eg. FAT, TCP/IP stack, os, JPEG decoder). +For the common/ top folder, the services/ folder also contains chip-specific code. +- the components/ folder offers, for each supported hardware component, a software +interface to interact with the component (eg memories like SDRAM, SD card, or display) +- the applications/ contains hefty examples of applications using services and drivers. + + +2 - Documentation +-------------------------- + +ASF release notes, reference manual and getting started documents can be found on http://www.atmel.com/asf. + +The ASF documentation can be found online on http://asf.atmel.com. + + +3 - Toolchain Header Files Update +--------------------------------- + +For 8-bit AVR users it is recommended to update the toolchain header files, a +description about how to do that is located in the readme.txt file under the +xmega/utils/header_files/ directory. + +For AVR UC3 users using IAR, it is recommended to update the IAR header files. +To do that, unzip the avr32-headers.zip file (located under +the avr32/utils/header_files/ directory) to the IAR EWAVR32 installation folder +under "IAR installation folder"/Embedded Workbench x.y/avr32/inc/. + + +4 - IAR EW Users +---------------- + +Using an example of usage of the AVR UC3 GPIO driver module as an example, the +IAR projects are located under: +- avr32/drivers/gpio/peripheral_bus_example/at32uc3a0512_evk1000/iar/ for an EVK1100 board, +- avr32/drivers/gpio/peripheral_bus_example/at32uc3a0512_evk1105/iar/ for an EVK1105 board, +- avr32/drivers/gpio/peripheral_bus_example/at32uc3b0256_evk1101/iar/ for an EVK1101 board, +- avr32/drivers/gpio/peripheral_bus_example/at32uc3a3256_evk1104/iar/ for an EVK1104 board, +- avr32/drivers/gpio/peripheral_bus_example/at32uc3l064_stk600-rcuc3l0/iar/ for an STK600-RCUC3L0 setup, +- avr32/drivers/gpio/peripheral_bus_example/at32uc3c0512c_uc3c_ek/iar/ for an AT32UC3C-EK board, +- avr32/drivers/gpio/peripheral_bus_example/at32uc3l064_uc3l_ek/iar/ for an AT32UC3L-EK board. + +Each iar folder contains a full IAR project with: +- an IAR EWAVR32 workspace file(avr32_drivers_gpio_peripheral_bus_example_uc3l_ek.eww: double-click on this file to open the whole project), +- an IAR EWAVR32 project file(avr32_drivers_gpio_peripheral_bus_example_uc3l_ek.ewp), +- an IAR EWAVR32 debug configuration file(avr32_drivers_gpio_peripheral_bus_example_uc3l_ek.ewd). + + +5 - AVR32 Studio Users +---------------------- + +It is possible to work with an unzipped ASF package from within AVR32 Studio: this +is described in the application note "AVR32769: How to Compile the standalone AVR +UC3 Software Framework in AVR32 Studio V2": http://www.atmel.com/dyn/resources/prod_documents/doc32115.pdf + + +6 - Offline documentation - Generating The HTML Documentation +------------------------------------- + +All modules are fully documented using doxygen tags. Each project within the ASF +contains a doxyfile.doxygen (used to configure doxygen for a proper documentation +generation): to generate the html documentation, doxygen must be installed (see +http://www.doxygen.org/download.html) and the doxyfile.doxygen must be used as +the input configuration file for doxygen. + +Using an example of usage of the AVR UC3 GPIO driver module as an example, for +an AT32UC3C-EK board, the associated doxyfile.doxygen file is under the +avr32/drivers/gpio/peripheral_bus_example/at32uc3c0512c_uc3c_ek/doxygen/ folder. +Run doxygen and use this doxyfile.doxygen as configuration file for doxygen. +Using the command line, this is done with the following command: doxygen doxyfile.doxygen + + +7 - Contact Information +----------------------- + +For more info about Atmel MCU visit http://www.atmel.com/products/microcontrollers/default.aspx or contact support through the http://support.atmel.no/ site. +The support site also have a Frequently Asked Questions page with the most common questions. + +ASF bugs or enhancement requests can be reported in the ASF Bug Tracker (http://asf.atmel.com/bugzilla/). + + +8 - Community Information +------------------------- + +Users can find an ASF forum (http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewforum&f=21) on AVRfreaks for AVR users or on http://www.at91.com/ for SAM users. +This forum can be used to have an open discussion about usage, development, bugs, fixes, improvements, etc. \ No newline at end of file diff --git a/atmel-samd/frozentest.mpy b/atmel-samd/frozentest.mpy new file mode 100644 index 0000000000000000000000000000000000000000..c8345b1910611e890fde2e3058f3c41cf2c19970 GIT binary patch literal 255 zcmeZeV3LnvW&i=+Ck($Cv@|p{v^5wQ{>!v8i2Y$mVKf3V#9=fel+OgAMRvWPB?@FV znDRFmsQhIBDwX*QQrq~_pyh+v>v|)>Xbzj){FKt1R6E|ZqWr4Vypq)761{>-)`FtU zyb|Wp04NK>Mwpg_4ZK5{1lSg}i(q1vIiKFEyoD tEfGaJBe7VaG%qtbKP6S++{Sa8&TUpm&PXgOPU23g1Uf>&(8$ +#include +#include + +#include "py/nlr.h" +#include "py/compile.h" +#include "py/runtime.h" +#include "py/repl.h" +#include "py/gc.h" +#include "lib/utils/pyexec.h" + +void do_str(const char *src, mp_parse_input_kind_t input_kind) { + mp_lexer_t *lex = mp_lexer_new_from_str_len(MP_QSTR__lt_stdin_gt_, src, strlen(src), 0); + if (lex == NULL) { + printf("MemoryError: lexer could not allocate memory\n"); + return; + } + + nlr_buf_t nlr; + if (nlr_push(&nlr) == 0) { + qstr source_name = lex->source_name; + mp_parse_tree_t parse_tree = mp_parse(lex, input_kind); + mp_obj_t module_fun = mp_compile(&parse_tree, source_name, MP_EMIT_OPT_NONE, true); + mp_call_function_0(module_fun); + nlr_pop(); + } else { + // uncaught exception + mp_obj_print_exception(&mp_plat_print, (mp_obj_t)nlr.ret_val); + } +} + +static char *stack_top; +static char heap[2048]; + +int main(int argc, char **argv) { + int stack_dummy; + stack_top = (char*)&stack_dummy; + + #if MICROPY_ENABLE_GC + gc_init(heap, heap + sizeof(heap)); + #endif + mp_init(); + #if MICROPY_REPL_EVENT_DRIVEN + pyexec_event_repl_init(); + for (;;) { + int c = mp_hal_stdin_rx_chr(); + if (pyexec_event_repl_process_char(c)) { + break; + } + } + #else + pyexec_friendly_repl(); + #endif + //do_str("print('hello world!', list(x+1 for x in range(10)), end='eol\\n')", MP_PARSE_SINGLE_INPUT); + //do_str("for i in range(10):\r\n print(i)", MP_PARSE_FILE_INPUT); + mp_deinit(); + return 0; +} + +void gc_collect(void) { + // WARNING: This gc_collect implementation doesn't try to get root + // pointers from CPU registers, and thus may function incorrectly. + void *dummy; + gc_collect_start(); + gc_collect_root(&dummy, ((mp_uint_t)stack_top - (mp_uint_t)&dummy) / sizeof(mp_uint_t)); + gc_collect_end(); + gc_dump_info(); +} + +mp_lexer_t *mp_lexer_new_from_file(const char *filename) { + return NULL; +} + +mp_import_stat_t mp_import_stat(const char *path) { + return MP_IMPORT_STAT_NO_EXIST; +} + +mp_obj_t mp_builtin_open(uint n_args, const mp_obj_t *args, mp_map_t *kwargs) { + return mp_const_none; +} +MP_DEFINE_CONST_FUN_OBJ_KW(mp_builtin_open_obj, 1, mp_builtin_open); + +void nlr_jump_fail(void *val) { +} + +void NORETURN __fatal_error(const char *msg) { + while (1); +} + +#ifndef NDEBUG +void MP_WEAK __assert_func(const char *file, int line, const char *func, const char *expr) { + printf("Assertion '%s' failed, at file %s:%d\n", expr, file, line); + __fatal_error("Assertion failed"); +} +#endif + +#if MICROPY_MIN_USE_CORTEX_CPU + +// this is a minimal IRQ and reset framework for any Cortex-M CPU + +extern uint32_t _estack, _sidata, _sdata, _edata, _sbss, _ebss; + +void Reset_Handler(void) __attribute__((naked)); +void Reset_Handler(void) { + // stack pointer set by bootloader + // copy .data section from flash to RAM + for (uint32_t *src = &_sidata, *dest = &_sdata; dest < &_edata;) { + *dest++ = *src++; + } + // zero out .bss section + for (uint32_t *dest = &_sbss; dest < &_ebss;) { + *dest++ = 0; + } + // jump to board initialisation + void _start(void); + _start(); +} + +void Default_Handler(void) { + for (;;) { + } +} + +uint32_t isr_vector[] __attribute__((section(".isr_vector"))) = { + (uint32_t)&_estack, + (uint32_t)&Reset_Handler, + (uint32_t)&Default_Handler, // NMI_Handler + (uint32_t)&Default_Handler, // HardFault_Handler + (uint32_t)&Default_Handler, // MemManage_Handler + (uint32_t)&Default_Handler, // BusFault_Handler + (uint32_t)&Default_Handler, // UsageFault_Handler + 0, + 0, + 0, + 0, + (uint32_t)&Default_Handler, // SVC_Handler + (uint32_t)&Default_Handler, // DebugMon_Handler + 0, + (uint32_t)&Default_Handler, // PendSV_Handler + (uint32_t)&Default_Handler, // SysTick_Handler +}; + +void _start(void) { + // when we get here: stack is initialised, bss is clear, data is copied + + // initialise the cpu and peripherals + #if MICROPY_MIN_USE_SAMD21_MCU + void samd21_init(void); + samd21_init(); + #endif + + // now that we have a basic system up and running we can call main + main(0, NULL); + + // we must not return + for (;;) { + } +} + +#endif + +#if MICROPY_MIN_USE_SAMD21_MCU + +void samd21_init(void) { +} + +#endif diff --git a/atmel-samd/mpconfigport.h b/atmel-samd/mpconfigport.h new file mode 100644 index 0000000000..462629f14b --- /dev/null +++ b/atmel-samd/mpconfigport.h @@ -0,0 +1,95 @@ +#include + +// options to control how Micro Python is built + +#define MICROPY_QSTR_BYTES_IN_HASH (1) +#define MICROPY_QSTR_EXTRA_POOL mp_qstr_frozen_const_pool +#define MICROPY_ALLOC_PATH_MAX (256) +#define MICROPY_ALLOC_PARSE_CHUNK_INIT (16) +#define MICROPY_EMIT_X64 (0) +#define MICROPY_EMIT_THUMB (0) +#define MICROPY_EMIT_INLINE_THUMB (0) +#define MICROPY_COMP_MODULE_CONST (0) +#define MICROPY_COMP_CONST (0) +#define MICROPY_COMP_DOUBLE_TUPLE_ASSIGN (0) +#define MICROPY_COMP_TRIPLE_TUPLE_ASSIGN (0) +#define MICROPY_MEM_STATS (0) +#define MICROPY_DEBUG_PRINTERS (0) +#define MICROPY_ENABLE_GC (1) +#define MICROPY_GC_ALLOC_THRESHOLD (0) +#define MICROPY_REPL_EVENT_DRIVEN (0) +#define MICROPY_HELPER_REPL (1) +#define MICROPY_HELPER_LEXER_UNIX (0) +#define MICROPY_ENABLE_SOURCE_LINE (0) +#define MICROPY_ENABLE_DOC_STRING (0) +#define MICROPY_ERROR_REPORTING (MICROPY_ERROR_REPORTING_TERSE) +#define MICROPY_BUILTIN_METHOD_CHECK_SELF_ARG (0) +#define MICROPY_PY_ASYNC_AWAIT (0) +#define MICROPY_PY_BUILTINS_BYTEARRAY (0) +#define MICROPY_PY_BUILTINS_MEMORYVIEW (0) +#define MICROPY_PY_BUILTINS_ENUMERATE (0) +#define MICROPY_PY_BUILTINS_FILTER (0) +#define MICROPY_PY_BUILTINS_FROZENSET (0) +#define MICROPY_PY_BUILTINS_REVERSED (0) +#define MICROPY_PY_BUILTINS_SET (0) +#define MICROPY_PY_BUILTINS_SLICE (0) +#define MICROPY_PY_BUILTINS_PROPERTY (0) +#define MICROPY_PY_BUILTINS_MIN_MAX (0) +#define MICROPY_PY___FILE__ (0) +#define MICROPY_PY_GC (0) +#define MICROPY_PY_ARRAY (0) +#define MICROPY_PY_ATTRTUPLE (0) +#define MICROPY_PY_COLLECTIONS (0) +#define MICROPY_PY_MATH (0) +#define MICROPY_PY_CMATH (0) +#define MICROPY_PY_IO (0) +#define MICROPY_PY_STRUCT (0) +#define MICROPY_PY_SYS (0) +#define MICROPY_MODULE_FROZEN_MPY (1) +#define MICROPY_CPYTHON_COMPAT (0) +#define MICROPY_LONGINT_IMPL (MICROPY_LONGINT_IMPL_NONE) +#define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_NONE) + +// type definitions for the specific machine + +#define BYTES_PER_WORD (4) + +#define MICROPY_MAKE_POINTER_CALLABLE(p) ((void*)((mp_uint_t)(p) | 1)) + +// This port is intended to be 32-bit, but unfortunately, int32_t for +// different targets may be defined in different ways - either as int +// or as long. This requires different printf formatting specifiers +// to print such value. So, we avoid int32_t and use int directly. +#define UINT_FMT "%u" +#define INT_FMT "%d" +typedef int mp_int_t; // must be pointer size +typedef unsigned mp_uint_t; // must be pointer size + +typedef long mp_off_t; + +#define MP_PLAT_PRINT_STRN(str, len) mp_hal_stdout_tx_strn_cooked(str, len) + +// extra built in names to add to the global namespace +extern const struct _mp_obj_fun_builtin_t mp_builtin_open_obj; +#define MICROPY_PORT_BUILTINS \ + { MP_OBJ_NEW_QSTR(MP_QSTR_open), (mp_obj_t)&mp_builtin_open_obj }, + +// We need to provide a declaration/definition of alloca() +#include + +#define MICROPY_HW_BOARD_NAME "atmel-samd" +#define MICROPY_HW_MCU_NAME "samd21" + +#ifdef __linux__ +#define MICROPY_MIN_USE_STDOUT (1) +#endif + +#ifdef __thumb__ +#define MICROPY_MIN_USE_CORTEX_CPU (1) +#define MICROPY_MIN_USE_STM32_MCU (1) +#endif + +#define MP_STATE_PORT MP_STATE_VM + +#define MICROPY_PORT_ROOT_POINTERS \ + const char *readline_hist[8]; diff --git a/atmel-samd/mphalport.h b/atmel-samd/mphalport.h new file mode 100644 index 0000000000..60d68bd2d6 --- /dev/null +++ b/atmel-samd/mphalport.h @@ -0,0 +1,2 @@ +static inline mp_uint_t mp_hal_ticks_ms(void) { return 0; } +static inline void mp_hal_set_interrupt_char(char c) {} diff --git a/atmel-samd/qstrdefsport.h b/atmel-samd/qstrdefsport.h new file mode 100644 index 0000000000..3ba897069b --- /dev/null +++ b/atmel-samd/qstrdefsport.h @@ -0,0 +1 @@ +// qstrs specific to this port diff --git a/atmel-samd/samd21.ld b/atmel-samd/samd21.ld new file mode 100644 index 0000000000..c05b7a65d8 --- /dev/null +++ b/atmel-samd/samd21.ld @@ -0,0 +1,62 @@ +/* + GNU linker script for SAMD21 +*/ + +/* Specify the memory areas */ +MEMORY +{ + FLASH (rx) : ORIGIN = 0x00000000+0x2000, LENGTH = 0x00040000-0x2000 /* First 8KB used by bootloader */ + RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 0x008000 /* 32 KiB */ +} + +/* top end of the stack */ +_estack = ORIGIN(RAM) + LENGTH(RAM); + +/* define output sections */ +SECTIONS +{ + /* The program code and other data goes into FLASH */ + .text : + { + . = ALIGN(4); + KEEP(*(.isr_vector)) /* isr vector table */ + *(.text) /* .text sections (code) */ + *(.text*) /* .text* sections (code) */ + *(.rodata) /* .rodata sections (constants, strings, etc.) */ + *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ + + . = ALIGN(4); + _etext = .; /* define a global symbol at end of code */ + _sidata = _etext; /* This is used by the startup in order to initialize the .data secion */ + } >FLASH + + /* This is the initialized data section + The program executes knowing that the data is in the RAM + but the loader puts the initial values in the FLASH (inidata). + It is one task of the startup to copy the initial values from FLASH to RAM. */ + .data : AT ( _sidata ) + { + . = ALIGN(4); + _sdata = .; /* create a global symbol at data start; used by startup code in order to initialise the .data section in RAM */ + *(.data) /* .data sections */ + *(.data*) /* .data* sections */ + + . = ALIGN(4); + _edata = .; /* define a global symbol at data end; used by startup code in order to initialise the .data section in RAM */ + } >RAM + + /* Uninitialized data section */ + .bss : + { + . = ALIGN(4); + _sbss = .; /* define a global symbol at bss start; used by startup code */ + *(.bss) + *(.bss*) + *(COMMON) + + . = ALIGN(4); + _ebss = .; /* define a global symbol at bss end; used by startup code */ + } >RAM + + .ARM.attributes 0 : { *(.ARM.attributes) } +} diff --git a/atmel-samd/uart_core.c b/atmel-samd/uart_core.c new file mode 100644 index 0000000000..1fd9ac5faa --- /dev/null +++ b/atmel-samd/uart_core.c @@ -0,0 +1,44 @@ +#include +#include "py/mpconfig.h" + +/* + * Core UART functions to implement for a port + */ + +#if MICROPY_MIN_USE_STM32_MCU +typedef struct { + volatile uint32_t SR; + volatile uint32_t DR; +} periph_uart_t; +#define USART1 ((periph_uart_t*)0x40011000) +#endif + +// Receive single character +int mp_hal_stdin_rx_chr(void) { + unsigned char c = 0; +#if MICROPY_MIN_USE_STDOUT + int r = read(0, &c, 1); + (void)r; +#elif MICROPY_MIN_USE_SAMD21_MCU + // wait for RXNE + while ((USART1->SR & (1 << 5)) == 0) { + } + c = USART1->DR; +#endif + return c; +} + +// Send string of given length +void mp_hal_stdout_tx_strn(const char *str, mp_uint_t len) { +#if MICROPY_MIN_USE_STDOUT + int r = write(1, str, len); + (void)r; +#elif MICROPY_MIN_USE_SAMD21_MCU + while (len--) { + // wait for TXE + while ((USART1->SR & (1 << 7)) == 0) { + } + USART1->DR = *str++; + } +#endif +}