Paul Sokolovsky
26f0616e8f
esp8266/modmachine: Add Pin class from modpyb.
2016-03-05 21:43:11 +02:00
Paul Sokolovsky
eb247eacd8
esp8266/modpybpin: Add support for GPIO16.
...
GPIO16 is actually special-function I/O, though some boards have LED there.
2016-03-05 21:37:55 +02:00
Damien George
342d903a13
esp8266: Expose simple pin API at C level.
2016-03-05 21:36:32 +02:00
Damien George
cdad2b6f4d
esp8266: Implement Pin.__call__() and Pin.OPEN_DRAIN mode.
...
OPEN_DRAIN is of course synthesised. All pin modes are tested and
working.
2016-03-05 21:35:32 +02:00
Paul Sokolovsky
8ab16b6af0
esp8266: Add custom _assert() function.
...
Enabling standard assert() (by removing -DNDEBUG) produces non-bootable
binary (because all messages go to .rodata which silently overflows).
So, for once-off debugging, have a custom _assert().
2016-03-05 11:30:15 +02:00
Paul Sokolovsky
c70637bc00
esp8266/modmachine: Timer: Add ONE_SHOT and PERIODIC symbolic constants.
2016-03-04 22:26:59 +02:00
Paul Sokolovsky
98b727c931
esp8266/modmachine: Use etshal.h.
2016-03-04 19:41:15 +02:00
Paul Sokolovsky
f22a4f8e0a
esp8266/etshal.h: Add timer functions prototypes.
2016-03-04 19:39:24 +02:00
Paul Sokolovsky
f39bcb304b
esp8266/modmachine: Changing params of a timer requires disarming it first.
2016-03-04 18:41:37 +02:00
Paul Sokolovsky
7193086c03
esp8266/modmachine: Basic implementation of Timer for OS virtual timers.
2016-03-04 18:40:35 +02:00
Paul Sokolovsky
4284b3811f
esp8266: Enable modmachine.
2016-03-04 17:37:13 +02:00
Paul Sokolovsky
5d7c408ba8
esp8266: Add modmachine with mem* arrays.
2016-03-04 17:34:25 +02:00
Paul Sokolovsky
6abafca1aa
esp8266/modutime: Support float argument to time.sleep().
2016-03-04 16:52:30 +02:00
Paul Sokolovsky
a4c8ef9d16
esp8266: Reset "virtual RTC" on power on.
...
Initialize RTC period coefficients, etc. if RTC RAM doesn't contain valid
values. time.time() then will return number of seconds since power-on, unless
set to different timebase.
This reuses MEM_MAGIC for the purpose beyond its initial purpose (but the whole
modpybrtc.c need to be eventually reworked completely anyway).
2016-03-04 16:49:01 +02:00
Damien George
57884996b9
esp8266: Add time.{sleep_ms,sleep_us,ticks_ms,ticks_us,ticks_diff}.
...
Framework for time.ticks_cpu added, but not implemented.
2016-03-04 09:25:53 +02:00
Damien George
b41a14a4b9
esp8266: Add mp_hal_delay_us function.
2016-03-04 09:25:05 +02:00
Damien George
f70873db23
esp8266: Enable more features in mpconfigport.h.
...
This is to get the test suite running and passing.
2016-03-03 23:34:31 +02:00
Paul Sokolovsky
7480ee5892
esp8266: Enable uhashlib module.
2016-03-03 20:14:50 +02:00
Paul Sokolovsky
70fb9ee99b
esp8266: Enable config settings helpful for debugging.
2016-03-03 20:12:26 +02:00
Paul Sokolovsky
259f1344ca
esp8266/esp8266.ld: Link in SDK version section.
...
Otherwise, os.uname() returns empty string for SDK version.
2016-03-03 15:37:19 +02:00
Paul Sokolovsky
ff69a1d27d
esp8266: Enable ujson, ubinascii, and uctypes modules.
2016-03-03 15:35:29 +02:00
Damien George
02ea74d8f5
esp8266: Add network.ifconfig().
2016-03-02 23:04:21 +02:00
Damien George
1febaf3ac3
esp8266: Change "soft reboot" message to work with pyboard.py.
2016-03-02 22:58:48 +02:00
Damien George
d083d7d610
esp8266: Allow Makefile's PORT variable to be overridden.
2016-03-02 22:50:55 +02:00
Damien George
6f4357c28e
esp8266: Enable math module.
2016-03-02 22:43:10 +02:00
Damien George
6d0629bddc
esp8266: Enable float support, using 30-bit stuffed floats.
...
No complex numbers though.
2016-03-02 22:43:10 +02:00
Damien George
ecd1272d16
esp8266: Switch bignum implementation from long-long to mpz.
2016-03-02 22:43:10 +02:00
Paul Sokolovsky
609a9c6b71
eagle.rom.addr.v6.ld: More symbols from SDK 1.5.0.
2016-02-14 13:09:42 +02:00
Paul Sokolovsky
a2e39a756c
esp8266/modpybrtc: Simplify multiplication by fixed-point value.
2016-02-12 23:20:52 +02:00
Paul Sokolovsky
9e78ab4b86
esp8266/README: Add hint about adding toolchain to PATH.
2016-02-08 22:35:24 +02:00
Paul Sokolovsky
814b1ae3a9
esp8266/modpybrtc: pyb_rtc_memory(): Fix copy-paste error.
2016-02-08 21:39:33 +02:00
Alex March
81407729a5
esp8266/modesp: Implement flash_write(), flash_erase().
2016-02-08 11:42:24 +02:00
Damien George
5b3f0b7f39
py: Change first arg of type.make_new from mp_obj_t to mp_obj_type_t*.
...
The first argument to the type.make_new method is naturally a uPy type,
and all uses of this argument cast it directly to a pointer to a type
structure. So it makes sense to just have it a pointer to a type from
the very beginning (and a const pointer at that). This patch makes
such a change, and removes all unnecessary casting to/from mp_obj_t.
2016-01-11 00:49:27 +00:00
Paul Sokolovsky
adfe4ff72a
esp8266: Support CFLAGS_EXTRA.
2016-01-08 01:30:20 +02:00
Paul Sokolovsky
43fecb0acb
esp8266/modesp: Allow to compile out proprietary espconn stuff.
2015-12-30 15:53:51 +02:00
Paul Sokolovsky
fce0036a67
esp8266: mac() function belongs to network module per the latest API.
2015-12-27 10:03:32 +02:00
Damien George
84b245f187
lib/utils: Add pyexec_frozen_module to load and execute frozen module.
...
This is a convenience function similar to pyexec_file. It should be used
instead of raw mp_parse_compile_execute because the latter does not catch
and report exceptions.
2015-12-26 12:32:33 +00:00
Paul Sokolovsky
abd0fcfc86
esp8266: Remove superfluous includes.
2015-12-21 22:08:06 +02:00
Paul Sokolovsky
e13d462f77
esp8266/modesp: flash_read() takes 2 args (fix typo).
2015-12-21 22:07:11 +02:00
Paul Sokolovsky
90202b4c0d
esp8266/modesp: Implement flash_read(offset, size_bytes) function.
...
Based on vendor API documentation, untested on real hardware.
2015-11-24 23:29:26 +02:00
Paul Sokolovsky
73ff0687f2
lib/utils/printf: Move from stmhal/ .
...
This file contains various MicroPython-specific helper functions, so isn't
good fit for lib/libc/.
2015-11-10 18:58:58 +02:00
Damien George
40274fec9c
lib/pyexec: Move header pyexec.h from stmhal directory.
2015-11-09 13:13:09 +00:00
Paul Sokolovsky
0ec51441de
stmhal: pyexec.c is common module, move to lib/utils/ .
2015-10-31 19:35:10 +03:00
Damien George
731f359292
all: Add py/mphal.h and use it in all ports.
...
py/mphal.h contains declarations for generic mp_hal_XXX functions, such
as stdio and delay/ticks, which ports should provide definitions for. A
port will also provide mphalport.h with further HAL declarations.
2015-10-31 19:14:30 +03:00
Paul Sokolovsky
6a09e7d7ae
esp8266: Switch to standard mp_hal_ticks_ms() MPHAL function.
2015-10-29 19:40:05 +03:00
Paul Sokolovsky
ebd9f550e8
esp8266: Switch to standard mp_hal_delay_ms() MPHAL function.
2015-10-29 13:03:59 +03:00
Paul Sokolovsky
5699fc9d0e
esp8266: Switch to standard mp_hal_delay_us() MPHAL function.
2015-10-29 02:06:58 +03:00
Paul Sokolovsky
0dbd928cee
Makefiles: Remove duplicate object files when linking.
...
Scenario: module1 depends on some common file from lib/, so specifies it
in its SRC_MOD, and the same situation with module2, then common file
from lib/ eventually ends up listed twice in $(OBJ), which leads to link
errors.
Make is equipped to deal with such situation easily, quoting the manual:
"The value of $^ omits duplicate prerequisites, while $+ retains them and
preserves their order." So, just use $^ consistently in all link targets.
2015-10-24 15:46:53 +03:00
Damien George
f09f8097d5
esp8266: Put more code in irom0 section, to get it building again.
2015-10-20 22:59:31 +01:00
Paul Sokolovsky
e0f5df579b
all: Make netutils.h available to all ports by default.
...
Generally, ports should inherit INC from py.mk, append to it, not
overwrite it. TODO: Likely should do the same for other vars too.
2015-10-19 18:32:42 +03:00