Damien George | 075d597 | 2014-11-27 20:30:33 +0000 | [diff] [blame] | 1 | #include <stdint.h> |
| 2 | |
| 3 | // options to control how Micro Python is built |
| 4 | |
| 5 | #define MICROPY_ALLOC_PATH_MAX (128) |
| 6 | #define MICROPY_EMIT_X64 (0) |
| 7 | #define MICROPY_EMIT_THUMB (0) |
| 8 | #define MICROPY_EMIT_INLINE_THUMB (0) |
| 9 | #define MICROPY_MEM_STATS (0) |
| 10 | #define MICROPY_DEBUG_PRINTERS (0) |
| 11 | #define MICROPY_ENABLE_GC (1) |
Paul Sokolovsky | f12ea7c | 2015-01-16 01:54:40 +0200 | [diff] [blame] | 12 | #define MICROPY_STACK_CHECK (0) |
| 13 | #define MICROPY_REPL_EVENT_DRIVEN (1) |
Damien George | 075d597 | 2014-11-27 20:30:33 +0000 | [diff] [blame] | 14 | #define MICROPY_HELPER_REPL (1) |
| 15 | #define MICROPY_HELPER_LEXER_UNIX (0) |
| 16 | #define MICROPY_ENABLE_SOURCE_LINE (1) |
Damien George | 4e7dc97 | 2015-05-13 00:18:41 +0100 | [diff] [blame] | 17 | #define MICROPY_MODULE_WEAK_LINKS (1) |
Damien George | 075d597 | 2014-11-27 20:30:33 +0000 | [diff] [blame] | 18 | #define MICROPY_PY_BUILTINS_STR_UNICODE (1) |
| 19 | #define MICROPY_PY_BUILTINS_BYTEARRAY (1) |
| 20 | #define MICROPY_PY_BUILTINS_MEMORYVIEW (1) |
| 21 | #define MICROPY_PY_BUILTINS_FROZENSET (1) |
| 22 | #define MICROPY_PY_BUILTINS_SET (1) |
| 23 | #define MICROPY_PY_BUILTINS_SLICE (1) |
| 24 | #define MICROPY_PY_BUILTINS_PROPERTY (1) |
| 25 | #define MICROPY_PY___FILE__ (0) |
| 26 | #define MICROPY_PY_GC (1) |
| 27 | #define MICROPY_PY_ARRAY (1) |
| 28 | #define MICROPY_PY_COLLECTIONS (1) |
| 29 | #define MICROPY_PY_MATH (0) |
| 30 | #define MICROPY_PY_CMATH (0) |
| 31 | #define MICROPY_PY_IO (1) |
| 32 | #define MICROPY_PY_STRUCT (1) |
| 33 | #define MICROPY_PY_SYS (1) |
| 34 | #define MICROPY_PY_SYS_EXIT (1) |
| 35 | #define MICROPY_PY_SYS_STDFILES (1) |
| 36 | #define MICROPY_CPYTHON_COMPAT (0) |
Damien George | fbea810 | 2014-11-28 14:58:25 +0000 | [diff] [blame] | 37 | #define MICROPY_LONGINT_IMPL (MICROPY_LONGINT_IMPL_LONGLONG) |
Damien George | 075d597 | 2014-11-27 20:30:33 +0000 | [diff] [blame] | 38 | #define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_NONE) |
| 39 | #define MICROPY_ERROR_REPORTING (MICROPY_ERROR_REPORTING_TERSE) |
Josef Gajdusek | bda7041 | 2015-05-06 00:19:26 +0200 | [diff] [blame] | 40 | #define MICROPY_MODULE_FROZEN (1) |
Damien George | 075d597 | 2014-11-27 20:30:33 +0000 | [diff] [blame] | 41 | |
| 42 | // type definitions for the specific machine |
| 43 | |
| 44 | #define BYTES_PER_WORD (4) |
| 45 | |
| 46 | #define MICROPY_MAKE_POINTER_CALLABLE(p) ((void*)((mp_uint_t)(p))) |
| 47 | |
| 48 | #define UINT_FMT "%u" |
| 49 | #define INT_FMT "%d" |
| 50 | |
| 51 | typedef int32_t mp_int_t; // must be pointer size |
| 52 | typedef uint32_t mp_uint_t; // must be pointer size |
| 53 | typedef void *machine_ptr_t; // must be of pointer size |
| 54 | typedef const void *machine_const_ptr_t; // must be of pointer size |
| 55 | typedef long mp_off_t; |
| 56 | |
Damien George | 7f9d1d6 | 2015-04-09 23:56:15 +0100 | [diff] [blame] | 57 | void mp_hal_stdout_tx_strn_cooked(const char *str, mp_uint_t len); |
| 58 | #define MP_PLAT_PRINT_STRN(str, len) mp_hal_stdout_tx_strn_cooked(str, len) |
| 59 | |
Damien George | 075d597 | 2014-11-27 20:30:33 +0000 | [diff] [blame] | 60 | // extra built in names to add to the global namespace |
| 61 | extern const struct _mp_obj_fun_builtin_t mp_builtin_open_obj; |
| 62 | #define MICROPY_PORT_BUILTINS \ |
| 63 | { MP_OBJ_NEW_QSTR(MP_QSTR_open), (mp_obj_t)&mp_builtin_open_obj }, |
| 64 | |
| 65 | // extra built in modules to add to the list of known ones |
| 66 | extern const struct _mp_obj_module_t pyb_module; |
Paul Sokolovsky | 6ec650b | 2015-01-23 00:34:16 +0200 | [diff] [blame] | 67 | extern const struct _mp_obj_module_t esp_module; |
Josef Gajdusek | 103d12a | 2015-05-11 21:11:37 +0200 | [diff] [blame] | 68 | extern const struct _mp_obj_module_t utime_module; |
Josef Gajdusek | 59610c4 | 2015-05-18 18:35:25 +0200 | [diff] [blame] | 69 | extern const struct _mp_obj_module_t uos_module; |
Damien George | 075d597 | 2014-11-27 20:30:33 +0000 | [diff] [blame] | 70 | |
| 71 | #define MICROPY_PORT_BUILTIN_MODULES \ |
| 72 | { MP_OBJ_NEW_QSTR(MP_QSTR_pyb), (mp_obj_t)&pyb_module }, \ |
Paul Sokolovsky | 6ec650b | 2015-01-23 00:34:16 +0200 | [diff] [blame] | 73 | { MP_OBJ_NEW_QSTR(MP_QSTR_esp), (mp_obj_t)&esp_module }, \ |
Josef Gajdusek | 103d12a | 2015-05-11 21:11:37 +0200 | [diff] [blame] | 74 | { MP_OBJ_NEW_QSTR(MP_QSTR_utime), (mp_obj_t)&utime_module }, \ |
Josef Gajdusek | 59610c4 | 2015-05-18 18:35:25 +0200 | [diff] [blame] | 75 | { MP_OBJ_NEW_QSTR(MP_QSTR_uos), (mp_obj_t)&uos_module }, \ |
Damien George | 075d597 | 2014-11-27 20:30:33 +0000 | [diff] [blame] | 76 | |
Damien George | 4e7dc97 | 2015-05-13 00:18:41 +0100 | [diff] [blame] | 77 | #define MICROPY_PORT_BUILTIN_MODULE_WEAK_LINKS \ |
| 78 | { MP_OBJ_NEW_QSTR(MP_QSTR_time), (mp_obj_t)&utime_module }, \ |
Josef Gajdusek | 59610c4 | 2015-05-18 18:35:25 +0200 | [diff] [blame] | 79 | { MP_OBJ_NEW_QSTR(MP_QSTR_os), (mp_obj_t)&uos_module }, \ |
Damien George | 4e7dc97 | 2015-05-13 00:18:41 +0100 | [diff] [blame] | 80 | |
Damien George | 3b51b3e | 2015-01-07 23:38:50 +0000 | [diff] [blame] | 81 | #define MP_STATE_PORT MP_STATE_VM |
| 82 | |
| 83 | #define MICROPY_PORT_ROOT_POINTERS \ |
Josef Gajdusek | 9e00ac8 | 2015-05-02 21:24:25 +0200 | [diff] [blame] | 84 | const char *readline_hist[8]; \ |
| 85 | \ |
| 86 | /* Singleton instance of scan callback, meaning that there can |
| 87 | be only one concurrent AP scan. */ \ |
| 88 | mp_obj_t scan_cb_obj; \ |
Damien George | 3b51b3e | 2015-01-07 23:38:50 +0000 | [diff] [blame] | 89 | |
Damien George | 075d597 | 2014-11-27 20:30:33 +0000 | [diff] [blame] | 90 | // We need to provide a declaration/definition of alloca() |
| 91 | #include <alloca.h> |
| 92 | |
| 93 | // board specifics |
| 94 | |
| 95 | #define MICROPY_HAL_H "esp_mphal.h" |
| 96 | #define MICROPY_HW_BOARD_NAME "ESP module" |
| 97 | #define MICROPY_HW_MCU_NAME "ESP8266" |
Josef Gajdusek | 59610c4 | 2015-05-18 18:35:25 +0200 | [diff] [blame] | 98 | #define MICROPY_PY_SYS_PLATFORM "ESP8266" |