Paul Sokolovsky
c141584e1e
esp8266/_boot.py: Set GC alloc threshold to half of heap size.
...
Should keep good chunk of heap unfragmented, if a user application allows
that at all.
2016-07-23 00:20:49 +03:00
Paul Sokolovsky
77f0cd8027
esp8266: dupterm_task_init() should be called before running _boot.py, etc.
...
Because they may use dupterm functionality (e.g. WebREPL running on boot).
2016-07-23 00:05:38 +03:00
Paul Sokolovsky
40214b9e26
esp8266: Enable MICROPY_PY_STR_BYTES_CMP_WARN.
2016-07-22 00:57:55 +03:00
Paul Sokolovsky
6aa7c805cc
esp8266: Cache Xtensa-built libaxtls.a in local build dir.
...
Allows to build the library variant for other archs in parallel.
2016-07-16 04:56:23 +03:00
Paul Sokolovsky
bcd0e9a7fa
esp8266/moduos: Add rmdir() function.
2016-07-16 03:53:55 +03:00
Paul Sokolovsky
be313ea215
esp8266: Select axTLS for SSL implementation, following recent refactor.
2016-07-13 01:59:41 +03:00
Paul Sokolovsky
380561836d
esp8266/esp_mphal: Properly handle dupterm EOF after switching to readinto().
2016-07-05 14:18:12 +03:00
Paul Sokolovsky
a22b6ebff1
esp8266/esp_mphal: call_dupterm_read: Use readinto() method.
...
It's memory fragmentation hazard to allocate 1-char string each time by
calling read() method.
2016-07-04 21:34:40 +03:00
Paul Sokolovsky
e07ef8f1a2
esp8266/main: Init recently added dupterm_arr_obj port state var.
2016-07-04 17:40:26 +03:00
Paul Sokolovsky
4cfe3e84b0
esp8266/README: Promote from "highly experimental" to "experimental".
2016-07-02 23:14:22 +03:00
Paul Sokolovsky
b8f45166c6
esp8266: Switch webrepl to use frozen bytecode.
2016-07-02 22:45:31 +03:00
Paul Sokolovsky
dec51e3519
esp8266: Switch webrepl_setup to use frozen bytecode.
2016-07-02 22:40:16 +03:00
Paul Sokolovsky
686367dcfc
esp8266: Explicitly collect garbage in bootstrap scripts.
...
Leads to less fragmentation at teh time user code starts.
2016-07-02 19:22:55 +03:00
Radomir Dopieralski
35962eaab0
esp8266/modpybuart: allow setting baudrate and other params
2016-06-30 18:18:50 +02:00
Paul Sokolovsky
d1b7ba5dc1
esp8266/websocket_helper.py: Fix typo in debug output.
2016-06-30 13:34:58 +03:00
Paul Sokolovsky
6907496016
esp8266/websocket_helper.py: Avoid extra string allocations.
2016-06-30 00:02:45 +03:00
Damien George
56845b6aff
esp8266/README: Describe how to build mpy-cross.
2016-06-29 14:25:12 +01:00
Damien George
db80c0ed46
esp8266: Enable frozen bytecode, with scripts in modules/ subdir.
...
To start with, the critical scripts _boot.py and flashbdev.py are frozen
to improve performance and reduce RAM consumption.
Saves about 1000 bytes of heap RAM for a bare boot with filesystem.
2016-06-29 13:59:19 +01:00
Robert HH
eb7637ba2e
esp8266/main.c: Clear the command line history when (re)booting.
...
Not clearing the command line history sometimes results in strange output
when going back after a reset.
2016-06-26 12:48:19 +01:00
Paul Sokolovsky
07209f8592
all: Rename mp_obj_type_t::stream_p to protocol.
...
It's now used for more than just stream protocol (e.g. pin protocol), so
don't use false names.
2016-06-18 18:44:57 +03:00
Robert HH
23067a1422
esp8266: Use RTC to set date & time stamps for files.
...
The time stamp is taken from the RTC for all newly generated
or changed files. RTC must be maintained separately.
The dummy time stamp of Jan 1, 2000 is set in vfs.stat() for the
root directory, avoiding invalid time values.
2016-06-16 19:31:58 +03:00
Paul Sokolovsky
236838a9fc
esp8266/Makefile: Enable --verify option for esptool.py write_flash.
...
Based on my experience, there's rather non-zero chance to have an image be
flashed incorrectly. As --verify option is now works well in teh latest
esptool.py, enable it by default.
2016-06-12 18:50:24 +03:00
Paul Sokolovsky
9f8b788fe5
esp8266: Switch floating-point arith routines to BootROM.
2016-06-12 18:44:14 +03:00
puuu
ee12581a35
esp8266: Let RTC work correctly after deepsleep.
...
By design, at wake up from deepsleep, the RTC timer will be reset, but
the data stored in RTC memory will not [1]. Therefore, we have to adjust
delta in RTC memory before going into deepsleep to get almost correct
time after waking up.
[1] http://bbs.espressif.com/viewtopic.php?t=1184#p4082
2016-06-06 10:51:12 +01:00
Mark
822e9ca8f3
esp8266/modnetwork: Use struct bss_info::ssid_len for ESSID length.
...
Instead of calling strlen(), which won't work if there're 32 chars in
returned ESSID. struct bss_info::ssid_len is not documented in SDK API
Guide, but is present in SDK headers since 1.4.0. Just in case, previous
code is left commented.
2016-06-04 22:02:01 +03:00
puuu
cafdfb7af3
esp8266/modpybrtc: Handle RTC overflow.
...
ESP-SDK system_get_rtc_time() returns uint32 and therefore overflow
about every 7:45h. Let's write the last state of system_get_rtc_time()
in RTC mem and use it to check for overflow. This commit require running
pyb_rtc_get_us_since_2000() at least once within 7 hours to avoid
overflow.
2016-06-03 14:37:49 +01:00
Damien George
927388e80e
esp8266: Provide a dedicated variable to disable ets_loop_iter.
...
So ets_loop_iter is now only disabled when using machine.disable_irq.
2016-06-01 17:26:49 +01:00
Damien George
752e952096
esp8266/rtc: Set RTC user memory length to 0 on first boot.
...
So that RTC.memory() returns b'' on power up if it was never set.
Fixes issue #2138 .
2016-06-01 11:33:04 +01:00
Robert HH
4f3fbf09cc
esp8266/moduos.c: Add stat() to the module uos of esp8266.
...
This implementation makes use of vfs.stat() and therefore has the same
properties. Known issues for all ports: uos.stat(".") on the top level
returns the error code 22, EINVAL. The same happens with
uos.stat("dirname/") where dirname IS the name of a directory.
2016-05-31 23:00:38 +03:00
Paul Sokolovsky
15eb1ce52d
esp8266: Enable MICROPY_PY_IO_FILEIO to get compliant text/binary streams.
2016-05-31 21:46:02 +03:00
Damien George
33168081f4
extmod/machine: Add MICROPY_PY_MACHINE_PULSE config for time_pulse_us.
...
Since not all ports that enable the machine module have the pin HAL
functions.
2016-05-31 14:25:19 +01:00
Damien George
cff2b7a6e3
esp8266/modmachine: Add machine.time_pulse_us function.
2016-05-31 14:06:50 +01:00
Paul Sokolovsky
225562d915
esp8266/scripts/ntptime: Allow to override NTP server.
...
This is not part of public API, variable name may change, or it can be
replaced with a function.
2016-05-30 19:16:05 +03:00
Paul Sokolovsky
12401f337e
esp8266/moduos: Add chdir() and getcwd() functions.
2016-05-29 19:44:24 +03:00
Damien George
602305b211
esp8266/uart: Properly initialise UART0 RXD pin in uart_config.
...
Tested and seems to work. See #1995 .
2016-05-29 10:30:27 +01:00
Damien George
6707fc94ae
esp8266/modnetwork: Allow to press ctrl-C while scan() is running.
...
Ctrl-C will raise a KeyboardInterrupt and stop the scan (although it will
continue to run in the background, it won't report anything). If
interrupted, and another scan() is started before the old one completes
in the background, then the second scan will fail with an OSError.
2016-05-29 09:53:04 +01:00
Damien George
84381fa0fc
esp8266/modnetwork: Protect scan() callback against memory errors.
...
scan() allocates memory so may cause an exception to be raised.
2016-05-29 09:52:07 +01:00
Damien George
55df14f1a4
esp8266/modnetwork: scan() is only supported by STA when it's enabled.
2016-05-29 00:35:24 +01:00
Paul Sokolovsky
74e6c0337d
esp8266/Makefile: Document "disable" value for UART_OS.
2016-05-27 00:44:05 +03:00
Damien George
7ebfe09fbd
esp8266: Add dht.py script for high-level control of DHT11/DHT22 sensor.
...
TODO: should go in a more port-neutral place, like drivers/dht, but at the
moment in relies on specific esp module.
2016-05-26 17:13:03 +01:00
Damien George
45f3416816
esp8266: Enable DHT C-level driver.
...
Exposed as esp.dht_readinto. Probably should go somewhere less
port-specific.
2016-05-26 17:11:43 +01:00
Damien George
4b37e775ea
extmod/machine_i2c: Redo mp_hal_pin macros to use open_drain and od_low.
...
mp_hal_pin_config_od is renamed mp_hal_pin_open_drain, and mp_hal_pin_low
is mp_hal_pin_od_low.
2016-05-26 17:06:40 +01:00
Damien George
9a368ae831
esp8266/modmachine: Add disable_irq and enable_irq functions.
2016-05-26 15:47:47 +01:00
Damien George
849eb835f0
esp8266/ets_alt_task: Don't run ets_loop_iter if irqs are disabled.
...
ets_loop_iter processes pending tasks, and tasks are considered lower
priority than interrupts, so tasks shouldn't be processed if interrupts
are disabled.
2016-05-26 15:47:47 +01:00
Damien George
99b14593a6
esp8266/xtirq: Add xtirq.h for controlling xtensa irqs.
2016-05-26 15:47:47 +01:00
Damien George
7e809b4baf
esp8266/modpybspi: Configure pins when initialising an SPI object.
2016-05-26 15:42:44 +01:00
Damien George
68e222afdc
esp8266: Add mp_hal_pin_input() and mp_hal_pin_output() functions.
2016-05-26 15:42:27 +01:00
Paul Sokolovsky
2b05b60bbc
esp8266/esp_mphal: mp_uos_dupterm_deactivate() may raise exception.
...
So, keep call to it protected via NLR still.
2016-05-24 15:04:59 +03:00
Paul Sokolovsky
4681b86850
esp8266/esp_mphal: Handle Ctrl+C from dupterm (e.g. WebREPL).
2016-05-24 01:37:56 +03:00
Paul Sokolovsky
116eeee6db
esp8266/esp_mphal: Fix NLR buffer leak in call_dupterm_read().
2016-05-24 01:30:28 +03:00