Paul Sokolovsky
54b89665fc
esp8266/modnetwork: .config(): Add "password" param (W/O).
2016-04-12 00:18:40 +03:00
Paul Sokolovsky
7acc252e93
esp8266/modnetwork: .config(): Add "authmode" param.
2016-04-12 00:17:31 +03:00
Paul Sokolovsky
6f3fc9bfa1
esp8266/modnetwork: .config(): Check interface whose config is requested.
2016-04-12 00:16:16 +03:00
Paul Sokolovsky
f49d63a75c
esp8266: Enable websocket module.
2016-04-11 21:25:43 +03:00
Paul Sokolovsky
1cc81ed449
esp8266/modesp: Add freemem() and meminfo() functions.
...
They call into vendor SDK functions system_get_free_heap_size() and
system_print_meminfo() respectively.
2016-04-11 01:16:38 +03:00
Paul Sokolovsky
c734de490a
esp8266/main: mp_builtin_open(): Implement, using vfs_proxy_call().
2016-04-10 16:59:19 +03:00
Damien George
6e87aeb841
esp8266: Implement multistage bootstrap sequence.
...
Upon start-up, _boot module is executed from frozen files to do early
initialization, e.g. create and mount the flash filesystem. Then
"boot.py" is executed if it exists in the filesystem. Finally, "main.py"
is executed if exists to allow start-on-boot user applications.
This allows a user to make a custom boot file or startup application
without recompiling the firmware, while letting to do early initialization
in Python code.
Based on RFC https://github.com/micropython/micropython/issues/1955 .
2016-04-10 14:24:41 +03:00
Damien George
2c407bcf20
esp8266: Switch from terse error messages to normal ones.
...
Adds 2k to the code size.
2016-04-07 00:38:08 +03:00
Paul Sokolovsky
d85439fd19
esp8266/README: Add short troubleshooting section.
2016-04-07 00:21:04 +03:00
Damien George
1a0a323ca8
esp8266: Add initial implementation of machine.UART.
...
Currently UART(0) and UART(1) are exposed and only uart.write works.
2016-04-06 19:45:52 +03:00
Damien George
96eca22322
esp8266: Make destination for vendor OS debug output soft-configurable.
...
Use esp.osdebug(None) to disable, or esp.osdebug(uart_id) to send output
to a UART.
2016-04-06 00:12:58 +03:00
Paul Sokolovsky
2c8356c482
esp8266/modnetwork: require_if(): Report the actual interface required.
2016-04-05 16:09:03 +03:00
Paul Sokolovsky
de12502d89
esp8266: Move pyb.unique_id() to machine.unique_id().
2016-04-05 00:57:49 +03:00
Paul Sokolovsky
81fd5685fc
esp8266: Move pyb.hard_reset() to machine.reset().
2016-04-05 00:20:25 +03:00
Paul Sokolovsky
69256ac0b1
esp8266: Bump heap size to 24k.
2016-04-03 19:55:45 +03:00
Paul Sokolovsky
debbaac1bd
esp8266: Update flashing instructions in README.
2016-04-03 16:04:18 +03:00
Paul Sokolovsky
919b70b7ec
esp8266: Switch back to flashing combined firmware (single file).
...
With gap between segments minimized, there's not much padding to flash,
so no big speed overhead.
2016-04-03 15:48:46 +03:00
Paul Sokolovsky
8d2bcaf3cd
esp8266: Minimize gap between Inst/DataRAM segments and FlashROM segment.
...
With .rodata being in FlashROM now, gap can be much smaller now. InstRAM
can be max 32K, and with segment headers, that already makes it more than
32K. Then there's some .data still, and the next Flash page boundary is
0x9000. That figure should be more or less future-proof.
TODO: Refactor makeimg to take FlashROM segment offset from file name.
2016-04-03 15:45:14 +03:00
Paul Sokolovsky
9698a60591
esp8266/ets_alt_task: Comment out debug output.
2016-04-03 01:04:01 +03:00
Paul Sokolovsky
fcd6862597
esp8266: Bump iROM size to 512k.
...
Needed for frozen scripts, and for future growth of binary.
2016-04-03 00:57:27 +03:00
Paul Sokolovsky
ef0c5db2ed
esp8266: Move .rodata where it belongs with -mforce-l32 help.
2016-04-03 00:51:51 +03:00
Paul Sokolovsky
333a63efaa
esp8266/README: Add link to docs.
2016-04-03 00:01:31 +03:00
Damien George
a0cb4eda9a
esp8266: Use VM_HOOK to call ets_loop_iter within the VM.
...
Starting with a divisor of 10, pystone_lowmem gives a score of 256.
2016-04-02 01:34:32 +03:00
Damien George
6a051a8e0b
esp8266/uart: Get ctrl-C working now that event-based REPL is disabled.
2016-04-01 14:53:01 +03:00
Damien George
fb6cc96951
esp8266/uart: Comment out old, unused rx buffering code.
...
This was originally used for non-event based REPL processing. Then it
was unused when event-based processing was activated. But now that event
based is disabled, and non-event based is back, there has been new ring
buffer code to process the chars.
2016-04-01 14:30:47 +03:00
Paul Sokolovsky
fc4c43a72e
esp8266: Switch to non event-driven REPL to support paste mode.
2016-04-01 14:22:28 +03:00
Paul Sokolovsky
785cf9a61f
esp8266: Support dedicated REPL loop (aka pull-style).
...
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.
2016-04-01 14:02:36 +03:00
Paul Sokolovsky
777232c9a5
esp8266: Disallow recursive calls to REPL.
...
Before this change, if REPL blocked executing some code, it was possible
to still input new statememts and excuting them, all leading to weird,
and portentially dangerous interaction.
TODO: Current implementation may have issues processing input accumulated
while REPL was blocked.
2016-04-01 12:53:50 +03:00
Paul Sokolovsky
5531437941
esp8266: Move PHY mode constants from modesp to modnetwork.
2016-04-01 12:10:11 +03:00
Damien George
4b597a1c1a
esp8266: Reset term_obj on reboot.
...
Also, term_obj can be NULL if socket enables REPL duplication signalling
before os.dupterm is called, so it should be checked.
2016-03-31 19:56:52 +03:00
Paul Sokolovsky
98af891610
esp8266: Implement input part of dupterm handling.
...
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.
2016-03-31 19:49:55 +03:00
Paul Sokolovsky
61fa7c8152
esp8266: Switch back to accumulating input data via ring buffer.
...
But now it's generic ring buffer implemented via ringbuf.h, and is intended
for any type of input, including dupterm's, not just UART. The general
process work like this: an interrupt-driven input source puts data into
input_buf, and then signals new data available via call to
mp_hal_signal_input().
2016-03-30 18:50:38 +03:00
Paul Sokolovsky
2e75a17bab
esp8266: Fix issue when current repl line was garbage-collected.
...
Reference it from root pointers section.
2016-03-30 18:13:03 +03:00
Damien George
9475cc59e6
esp8266: Support synchronous wifi scanning.
...
That is: aps = if0.scan()
TODO: make sure that returned list has tuple with values in "standard"
order (whatever that standard is).
2016-03-30 11:35:03 +03:00
Paul Sokolovsky
d88250c06e
esp8266: Reduce heap size for now to avoid random segfaults on WiFi connect.
2016-03-29 21:14:41 +03:00
Paul Sokolovsky
c4506ed869
esp8266: Let esp8266 "os" messages go to standard (REPL) UART.
...
That's definitely helpful for debugging.
2016-03-29 21:10:10 +03:00
Paul Sokolovsky
402a743821
esp8266/esp_mphal: Add support for debug UART-only output.
...
Helpful when debugging dupterm support (because otherwise all output is
spooled to dupterm too).
To use:
mp_printf(&mp_debug_print, "...");
2016-03-29 11:48:43 +03:00
Paul Sokolovsky
8fc5e56a6a
esp8266: Enable uos.dupterm() method.
2016-03-29 11:41:23 +03:00
Paul Sokolovsky
c961889e34
esp8266: Add basic support for duplicating REPL output.
2016-03-29 11:13:32 +03:00
Damien George
6ca17c1922
esp8266: Implement os.urandom function.
...
Uses what is suspected to be a hardware random number generator.
2016-03-29 10:29:57 +03:00
Paul Sokolovsky
b4070ee8a4
esp8266: Allow to build without FatFs support again.
2016-03-28 21:35:41 +03:00
Paul Sokolovsky
2f02302e22
esp8266: Support importing modules from filesystem.
2016-03-28 18:39:34 +03:00
Damien George
71d40f132d
esp8266: Zero out fs_user_mount state on (soft) reset.
...
Otherwise device stays mounted on soft reset and leads to corruption
(since block device object is now gone).
2016-03-28 13:28:41 +03:00
Paul Sokolovsky
9edd736ee6
esp8266/moduos: Add os.remove(), proxying to VFS object.
2016-03-28 12:50:07 +03:00
Paul Sokolovsky
e8e116e7fc
esp8266/moduos: Factor out VFS method proxy helper.
2016-03-28 12:44:36 +03:00
Paul Sokolovsky
8b08a0d9ed
esp8266/moduos: Add listdir() proxy for MP_STATE_PORT(fs_user_mount)[0].
...
I.e. os.listdir(...) will redirect to
MP_STATE_PORT(fs_user_mount)[0].listdir(...).
2016-03-28 12:29:47 +03:00
Damien George
61230e007d
esp8266/moduos: Use mp_rom_map_elem_t for static const dictionary.
2016-03-28 12:08:36 +03:00
Paul Sokolovsky
b01a373adb
esp8266: deploy: Use --flash_size=8m option to esptool.py.
...
Most esp8266 modules have at least 1MB (8Mbit) of flash. If not set, vendor
functions allow to access only first 512K.
2016-03-28 11:28:16 +03:00
Paul Sokolovsky
cd6194aefc
esp8266/esp8266.ld: Put FatFs to FlashROM.
2016-03-27 17:15:25 +03:00
Paul Sokolovsky
374654f2b8
esp8266: Enable FatFs support.
2016-03-27 17:13:47 +03:00