kopia lustrzana https://github.com/micropython/micropython
stm32: Add configuration to build in nanbox mode.
Most stm32 boards can now be built in nan-boxing mode via: $ make NANBOX=1 Note that if float is enabled then it will be forced to double-precision. Also, native emitters will be disabled.pull/5460/head
rodzic
d980d51807
commit
93509ac8c7
|
@ -95,6 +95,15 @@ CFLAGS += -I$(BOARD_DIR)
|
||||||
CFLAGS += -DSTM32_HAL_H='<stm32$(MCU_SERIES)xx_hal.h>'
|
CFLAGS += -DSTM32_HAL_H='<stm32$(MCU_SERIES)xx_hal.h>'
|
||||||
CFLAGS += -DMICROPY_HW_VTOR=$(TEXT0_ADDR)
|
CFLAGS += -DMICROPY_HW_VTOR=$(TEXT0_ADDR)
|
||||||
|
|
||||||
|
# Configure for nan-boxing object model if requested
|
||||||
|
ifeq ($(NANBOX),1)
|
||||||
|
CFLAGS += -DMP_CONFIGFILE='"mpconfigport_nanbox.h"'
|
||||||
|
ifneq ($(MICROPY_FLOAT_IMPL),none)
|
||||||
|
MICROPY_FLOAT_IMPL = double
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Configure floating point support
|
||||||
ifeq ($(MICROPY_FLOAT_IMPL),double)
|
ifeq ($(MICROPY_FLOAT_IMPL),double)
|
||||||
CFLAGS += -DMICROPY_FLOAT_IMPL=MICROPY_FLOAT_IMPL_DOUBLE
|
CFLAGS += -DMICROPY_FLOAT_IMPL=MICROPY_FLOAT_IMPL_DOUBLE
|
||||||
else
|
else
|
||||||
|
|
|
@ -305,11 +305,14 @@ struct _mp_bluetooth_nimble_root_pointers_t;
|
||||||
|
|
||||||
#define MP_SSIZE_MAX (0x7fffffff)
|
#define MP_SSIZE_MAX (0x7fffffff)
|
||||||
|
|
||||||
|
// Assume that if we already defined the obj repr then we also defined these items
|
||||||
|
#ifndef MICROPY_OBJ_REPR
|
||||||
#define UINT_FMT "%u"
|
#define UINT_FMT "%u"
|
||||||
#define INT_FMT "%d"
|
#define INT_FMT "%d"
|
||||||
|
|
||||||
typedef int mp_int_t; // must be pointer size
|
typedef int mp_int_t; // must be pointer size
|
||||||
typedef unsigned int mp_uint_t; // must be pointer size
|
typedef unsigned int mp_uint_t; // must be pointer size
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef long mp_off_t;
|
typedef long mp_off_t;
|
||||||
|
|
||||||
#define MP_PLAT_PRINT_STRN(str, len) mp_hal_stdout_tx_strn_cooked(str, len)
|
#define MP_PLAT_PRINT_STRN(str, len) mp_hal_stdout_tx_strn_cooked(str, len)
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the MicroPython project, http://micropython.org/
|
||||||
|
*
|
||||||
|
* The MIT License (MIT)
|
||||||
|
*
|
||||||
|
* Copyright (c) 2019 Damien P. George
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
// Select nan-boxing object model
|
||||||
|
#define MICROPY_OBJ_REPR (MICROPY_OBJ_REPR_D)
|
||||||
|
|
||||||
|
// Native emitters don't work with nan-boxing
|
||||||
|
#define MICROPY_EMIT_THUMB (0)
|
||||||
|
#define MICROPY_EMIT_INLINE_THUMB (0)
|
||||||
|
|
||||||
|
// Types needed for nan-boxing
|
||||||
|
#define UINT_FMT "%llu"
|
||||||
|
#define INT_FMT "%lld"
|
||||||
|
typedef int64_t mp_int_t;
|
||||||
|
typedef uint64_t mp_uint_t;
|
||||||
|
|
||||||
|
// Include base configuration file for rest of configuration
|
||||||
|
#include <mpconfigport.h>
|
Ładowanie…
Reference in New Issue