Commit Graph

97 Commits

Author SHA1 Message Date
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
Damien George
0334058fa4 Rename "Micro Python" to "MicroPython" in REPL, help, readme's and misc. 2015-10-12 00:06:25 +01:00
Bill Owens
e2bfa471fa esp8266: Added wlan.isconnected() to maintain parity with other ports. 2015-09-15 20:07:50 +03:00
Damien George
229b908d2e esp8266: Remove "time" command from deploy target. 2015-09-12 22:22:30 +01:00
Bill Owens
a66a99bfd8 esp8266: Added wifi_mode() to read and set WiFi operating mode. 2015-08-29 16:58:51 +03:00
Damien George
75b1d881ec esp8266: Use m_new/m_renew/m_del funcs instead of private gc_xxx. 2015-07-20 12:14:21 +01:00
Paul Sokolovsky
ab14c30493 esp8266: modesp: Update for gc_realloc() refactor.
TODO: Contributed code in modesp incorrectly uses private gc_* API.
2015-07-19 00:28:16 +03:00
Paul Sokolovsky
b19d273beb esp8266: Allow to easily override programming baudrate. 2015-07-04 00:36:10 +03:00
Damien George
de8b585ab7 esp8266: Make pyb.RTC a type, and pyb.RTC() constructs an RTC object.
This is the standard way of doing things, one should construct a
peripheral object (even if it's a singleton).

See issue #1330.
2015-06-22 23:03:17 +01:00
Bill Owens
60ccb41fac esp8266: Move status() from esp module to network 2015-06-20 23:35:55 +03:00
Paul Sokolovsky
a193ced7fa esp8266: README: Typo fix. 2015-06-19 21:09:53 +03:00
Paul Sokolovsky
b6a08208e1 esp8266: Explicit warning that port is experimental and subject to change. 2015-06-18 11:46:43 +03:00
Radomir Dopieralski
0cba23716d ESP8266: Update the README.md to reflect what works 2015-06-18 11:42:05 +03:00
Bill Owens
686516f90a esp8266: Move scan from esp module to network 2015-06-17 23:13:12 +03:00
Bill Owens
3ce212e0a6 esp8266: Changed esp_scan to keep the current WiFi operating mode but throw an exception if WiFi is in AP only mode 2015-06-14 10:57:08 +03:00
Paul Sokolovsky
32eb4b9055 esp8266: Move connect/disconnect from "esp" module to network. 2015-06-12 17:45:28 +03:00
Paul Sokolovsky
ee3fec3167 esp8266: Add skeleton "network" module.
MicroPython "network" module interface requires it to contains classes
to instantiate. But as we have a static network interace, make WLAN()
"constructor" just return module itself, and just make all methods
module-global functions.
2015-06-12 17:45:20 +03:00
Paul Sokolovsky
431603ad69 esp8266: esp_connect(): The function is now vararg.
Fixes regression from a previous commit.
2015-06-12 14:26:44 +03:00
Paul Sokolovsky
a32538bb66 esp8266: Do not call espconn_create in constructor of esp.socket.
Turns out this is supposed to be called only for UDP connections.

Patch by Josef Gajdusek.
2015-06-02 22:40:06 +03:00
Paul Sokolovsky
2fc1e64319 esp8266: Fix lost chars problem when block-xfering data (e.g., when pasting).
Pasting more or less sizable text into ESP8266 REPL leads to random chars
missing in the received input. Apparent cause is that using RTOS messages
to pass individual chars one by one is to slow and leads to UART FIFO
overflow. So, instead of passing chars one by one, use RTOS msg to signal
that input data is available in FIFO, and then let task handler to read
data directly from FIFO.

With this change, lost chars problem is gone, but the pasted text is
truncated after some position. At least 500 chars can be pasted reliably
(at 115200 baud), but 1K never pastes completely.
2015-06-01 23:57:19 +03:00
Josef Gajdusek
7d8edeff4e esp8266: Update to SDK version 1.1.0 (MIT-licensed).
1. Updated linker script, now user app appears to contain exception vector
table and oesn't work (faults) without it.
2. Commened out support for GPIO pulldown, which was removed in this SDK
version without clear explanation, but apparently because it was released
without proper validation, and now turns out it doesn't work as expected,
or there's a different function there.
2015-05-30 20:58:59 +03:00
Josef Gajdusek
286ced4c2f esp8266: Add a bunch of miscellaneous methods 2015-05-28 21:38:46 +03:00
Josef Gajdusek
25a8a42447 esp8266: Add pyb.ADC class 2015-05-28 21:31:37 +03:00
Josef Gajdusek
492fd5cb6b esp8266: Enable setting CPU frequency to 160MHz 2015-05-28 21:28:29 +03:00
Josef Gajdusek
967f3230f5 esp8266: Move initialization to system_init_done_cb
Initializing too early caused some of the API functions (wifi_*) to fail
when called in main.py
2015-05-26 22:22:08 +03:00
Josef Gajdusek
59610c4004 esp8266: Add uos module
Currently implements only .uname()
2015-05-26 22:18:07 +03:00