summaryrefslogtreecommitdiffstatshomepage
path: root/esp8266/main.c
Commit message (Collapse)AuthorAge
* esp8266: Support dedicated REPL loop (aka pull-style).Paul Sokolovsky2016-04-01
| | | | | | | | Event-driven loop (push-style) is still supported and default (controlled by MICROPY_REPL_EVENT_DRIVEN setting, as expected). Dedicated loop worked even without adding ets_loop_iter(), though that needs to be revisited later.
* esp8266: Reset term_obj on reboot.Damien George2016-03-31
| | | | | Also, term_obj can be NULL if socket enables REPL duplication signalling before os.dupterm is called, so it should be checked.
* esp8266: Implement input part of dupterm handling.Paul Sokolovsky2016-03-31
| | | | | | | | The idea is following: underlying interrupt-driven or push-style data source signals that more data is available for dupterm processing via call to mp_hal_signal_dupterm_input(). This triggers a task which pumps data between actual dupterm object (which may perform additional processing on data from low-level data source) and input ring buffer.
* esp8266: Reduce heap size for now to avoid random segfaults on WiFi connect.Paul Sokolovsky2016-03-29
|
* esp8266: Allow to build without FatFs support again.Paul Sokolovsky2016-03-28
|
* esp8266: Support importing modules from filesystem.Paul Sokolovsky2016-03-28
|
* esp8266: Zero out fs_user_mount state on (soft) reset.Damien George2016-03-28
| | | | | Otherwise device stays mounted on soft reset and leads to corruption (since block device object is now gone).
* esp8266: Set up UART handling task soon into init process.Paul Sokolovsky2016-03-27
| | | | | Otherwise, events may be posted to non-initialized task, which leads to segfaults.
* esp8266/main: Module to run on boot is "boot", not "main".Paul Sokolovsky2016-03-08
|
* esp8266: Enable stack overflow checking.Paul Sokolovsky2016-03-07
|
* esp8266: Support raising KeyboardInterrupt on Ctrl+C.Paul Sokolovsky2016-03-05
|
* esp8266: Change "soft reboot" message to work with pyboard.py.Damien George2016-03-02
|
* lib/utils: Add pyexec_frozen_module to load and execute frozen module.Damien George2015-12-26
| | | | | | 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.
* lib/pyexec: Move header pyexec.h from stmhal directory.Damien George2015-11-09
|
* all: Add py/mphal.h and use it in all ports.Damien George2015-10-31
| | | | | | 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.
* esp8266: Switch to standard mp_hal_delay_us() MPHAL function.Paul Sokolovsky2015-10-29
|
* esp8266: Move initialization to system_init_done_cbJosef Gajdusek2015-05-26
| | | | | Initializing too early caused some of the API functions (wifi_*) to fail when called in main.py
* esp8266: Add support for frozen modulesJosef Gajdusek2015-05-06
|
* esp8266: Fix garbage collector by hard-coding stack end address.Josef Gajdusek2015-05-06
| | | | | | | As user_init() is not a true main functions, the stack pointer captured within is not pointing at the base of the stack. This caused gc_collect being called with sp being higher than stack_end, causing integer overflow and crashing as gc tried to scan almost the entire address space.
* pyexec: Make raw REPL work with event-driven version of pyexec.Damien George2015-05-06
| | | | | | | esp8266 port now has working raw and friendly REPL, as well as working soft reset (CTRL-D at REPL, or raise SystemExit). tools/pyboard.py now works with esp8266 port.
* py: Protect mp_parse and mp_compile with nlr push/pop block.Damien George2015-02-07
| | | | | | | | | | To enable parsing constants more efficiently, mp_parse should be allowed to raise an exception, and mp_compile can already raise a MemoryError. So these functions need to be protected by an nlr push/pop block. This patch adds that feature in all places. This allows to simplify how mp_parse and mp_compile are called: they now raise an exception if they have an error and so explicit checking is not needed anymore.
* esp8266: Implement task-based, event-driven interface with UART.Paul Sokolovsky2015-01-16
| | | | | | This enables proper interfacing with underlying OS - MicroPython doesn't run the main loop, OS does, MicroPython just gets called when some event takes place.
* esp8266: Use dedicated heap allocated as static array.Paul Sokolovsky2015-01-15
| | | | | We cannot assume that all memory belongs to us - it actually belongs to ESP8266 OS.
* py: Put all global state together in state structures.Damien George2015-01-07
| | | | | | This patch consolidates all global variables in py/ core into one place, in a global structure. Root pointers are all located together to make GC tracing easier and more efficient.
* esp8266: Prefix includes with py/; remove need for -I../py.Damien George2015-01-01
|
* esp8266: Change bignum from mpz to longlong; move some rodata to iram.Damien George2014-11-28
| | | | | | Some rodata items can go in iram/irom segment, but not others. With this patch ESP now has 24256 bytes of heap ram. It passes 228 out of 248 tests from tests/basics directory.
* esp8266: New port of Micro Python to ESP8266 wifi module.Damien George2014-11-27