Paul Sokolovsky
1708fe3cc7
esp8266/modmachine: Add WDT_RESET and SOFT_RESET constants.
...
Both tested to work. (WDT_RESET can be seen by issuing machine.disable_irq()
and waiting for WDT reset, SOFT_RESET - by machine.reset()).
2016-09-04 19:45:58 +03:00
Paul Sokolovsky
015774a04f
esp8266/modmachinewdt: Add .deinit() method.
2016-09-03 20:45:11 +03:00
Paul Sokolovsky
4a33677c97
esp8266/esp8266.ld: Move modmachinewdt to FlashROM.
2016-09-03 20:44:24 +03:00
Damien George
3be8b688c0
esp8266/modpybhspi: Simplify HSPI driver by using 1 function for xfers.
2016-09-01 16:40:12 +10:00
Damien George
5863e15a23
esp8266/modpybspi: Use generic SPI helper methods to implement SPI.
2016-09-01 16:39:42 +10:00
Damien George
9c04ef2a67
unix,stmhal,esp8266: When find'ing frozen files don't use extra slash.
...
This extra forward slash for the starting-point directory is unnecessary
and leads to additional slashes on Max OS X which mean that the frozen
files cannot be imported.
Fixes #2374 .
2016-08-31 15:12:57 +10:00
Damien George
59a9509703
esp8266/modules/ds18x20.py: Add support for DS18S20 devices.
2016-08-29 12:45:07 +10:00
Damien George
8e9b98e974
esp8266/modules/onewire: Change onewire.read() to onewire.readinto().
...
This allows 1-wire drivers (eg DS18X20) to perform in-place operations and
hence do less memory allocations.
2016-08-29 12:27:21 +10:00
Damien George
9fba618356
esp8266/modules: Split onewire.py into OneWire and DS18X20 driver.
...
The OneWire class is now in its own onewire.py module, and the temperature
sensor class is in its own ds18x20.py module. The latter is renamed to
DS18X20 to reflect the fact that it will support both the "S" and "B"
variants of the device.
These files are moved to the modules/ subdirectory to take advantage of
frozen bytecode.
2016-08-29 12:12:49 +10:00
Paul Sokolovsky
263aaa7030
esp8266/modmachinewdt: Implement machine.WDT class.
2016-08-28 14:48:49 +03:00
Radomir Dopieralski
d29ca28288
esp8266/modous: Add os.umount method to unmount a filesystem.
...
This is an object-oriented approach, where uos is only a proxy for the
methods on the vfs object. Some internals had to be exposed (the STATIC
keyword removed) for this to work.
Fixes #2338 .
2016-08-26 12:45:21 +10:00
Radomir Dopieralski
891479e62a
esp8266/hspi: Enable duplex operation of hardware SPI
...
Without this, spi.read(1, 0xff) would use 16 clock cycles,
first to send 0xff and then to receive one byte, as visible
with a logic analyzer.
2016-08-25 21:24:22 +03:00
Damien George
d09b6b9aa1
esp8266/modpybrtc: Use 64-bit arithmetic when computing alarm expiry.
2016-08-25 14:10:25 +10:00
Paul Sokolovsky
f2a21a2489
esp8266/esp_mphal: No longer disable watchdog on startup.
...
Disabling it was an omission from early development stages.
2016-08-20 16:33:04 +03:00
Radomir Dopieralski
d076fae219
esp8266/modmachinespi: Add a factory method for SoftSPI/HSPI
2016-08-19 21:19:59 +03:00
Radomir Dopieralski
8e7dfea803
esp8266/modpybhspi: Add a HSPI module for hardware SPI support
...
This module uses ESP8266's SPI hardware, which allows much higher
speeds. It uses a library from
https://github.com/MetalPhreak/ESP8266_SPI_Driver
2016-08-19 21:19:59 +03:00
Damien George
675d1c9c60
ports: Remove typedef of machine_ptr_t, it's no longer needed.
...
This type was used only for the typedef of mp_obj_t, which is now defined
by the object representation. So we can now remove this unused typedef,
to simplify the mpconfigport.h file.
2016-08-15 11:02:59 +10:00
Paul Sokolovsky
9cf2949356
esp8266/mpconfigport.h: Enable support for all special methods.
2016-08-14 01:02:35 +03:00
Damien George
8a15e0b1c7
esp8266: PULL_UP is not supported on Pin(16), so raise an exception.
2016-08-10 12:45:40 +10:00
Damien George
b203c1774e
esp8266: Fix reading of pin object for GPIO16.
...
Pin(16) now works as an input.
2016-08-10 12:44:47 +10:00
Paul Sokolovsky
3c9510d767
esp8266/modules/flashbdev: Start filesystem at 0x90000.
...
To accommodate growing firmware.
2016-08-09 14:59:27 +03:00
Paul Sokolovsky
3372f69586
esp8266/esp8266.ld: Increase firmware image size to 0x90000 (576K).
...
Of them, 0x87000 is irom0 segment.
This is required to ship increasing number of modules and examples
developed in teh course of ESP8266 port project.
2016-08-09 14:54:26 +03:00
Paul Sokolovsky
31ad1bb606
esp8266/modmachine: Implement dummy sleep() function.
2016-08-07 16:20:01 +03:00
Paul Sokolovsky
541e76fa45
esp8266/modutime: Actually implement ticks_cpu().
2016-08-07 16:13:51 +03:00
Paul Sokolovsky
f71f37e426
esp8266/esp_mphal.h: Add mp_hal_ticks_cpu() for reuse.
2016-08-07 16:03:00 +03:00
Paul Sokolovsky
c2070d771a
esp8266/modmachine: Implement idle() function.
2016-08-07 15:51:04 +03:00
Paul Sokolovsky
6de37864a2
esp8266/scripts/inisetup: Add commented-out call to esp.osdebug(None).
...
That apparently will only help folks who read the docs on how to disable,
but could use a quick reminder straight in boot.py. For the developers,
it's important to have debug logging enabled in development branch
(master).
2016-08-06 15:27:38 +03:00
Paul Sokolovsky
ca59f5f208
esp8266/flashbdev: Reserve extra sysparam sector for SDK 2.0.0 compatibility.
2016-08-06 15:21:49 +03:00
Paul Sokolovsky
4a27ad040e
esp8266/scripts/port_diag.py: Include esp.check_fw() call.
2016-08-04 00:43:58 +03:00
Paul Sokolovsky
e33d2383d1
esp8266/modesp: Add check_fw() function to check integrity of the firmware.
...
Requires firmware generated by the latest makeimg.py (which stores size
and md5 of the firmware together with the firmware itself).
2016-08-04 00:29:19 +03:00
Paul Sokolovsky
bf47b71b78
esp8266/makeimg.py: Append md5 hash to the generated binary.
...
md5 is calculated over the entire file, except first 4 bytes, which contain
flash parameters and may be changed by flashing tool or MicroPython flash
auto-config.
2016-08-04 00:21:05 +03:00
Paul Sokolovsky
a621333a4c
esp8266/makeimg.py: Store firmware size as last 4 bytes of padding area.
2016-08-04 00:19:09 +03:00
Paul Sokolovsky
0e4cae5212
esp8266: Make APA102 driver inclusion configurable.
2016-08-01 00:03:55 +03:00
Paul Sokolovsky
88d3cd582e
esp8266/eagle.rom.addr.v6.ld: Add Enable_QMode symbol from SDK 2.0.0.
2016-08-01 00:01:49 +03:00
Paul Sokolovsky
4d22ade102
esp8266: Enable btree module.
2016-07-31 02:39:59 +03:00
Paul Sokolovsky
64ad838fde
esp8266/esp_mphal: Implement libc's errno.
...
Using __errno() function, and redirect it to use mp_stream_errno from
stream module. This is pre-requisite for integrating with 3rd-party libs,
like BerkeleyDB.
2016-07-31 02:30:05 +03:00
Paul Sokolovsky
61e77a4e88
py/mpconfig.h: Add MICROPY_STREAMS_POSIX_API setting.
...
To filter out even prototypes of mp_stream_posix_*() functions, which
require POSIX types like ssize_t & off_t, which may be not available in
some ports.
2016-07-30 20:05:56 +03:00
Paul Sokolovsky
ba2c503541
esp8266/mpconfigport.h: Include sys/types.h for POSIX types definitions.
...
As required for related functions in stream.h.
2016-07-30 17:46:36 +03:00
Paul Sokolovsky
50fea19416
esp8266/axtls_helpers: Remove abort_(), now in lib/embed/.
2016-07-30 00:36:28 +03:00
daniel-k
aa4ada943a
esp8266/modpybuart: Fix UART parity setting.
...
The configuration bits for the UART register were wrong and the parity
couldn't be enabled, because the exist_parity member hasn't been updated. I
took this ESP8266 register description (http://esp8266.ru/esp8266-uart-reg/ )
as reference.
Verification has been done with a logic analyzer.
2016-07-27 21:05:45 +03:00
Paul Sokolovsky
0d221775f5
esp8266/_boot.py: Decrease GC alloc threshold to quarter of heap size.
...
The idea behind decrease is: bytecode and other static data is also kept on
heap, and can easily become half of heap, then setting threshold to half of
heap will have null effect - GC will happen on complete heap exhaustion like
before. But exactly in such config maintaining heap defragmented is very
important, so lower threshold to accommodate that.
2016-07-23 13:56:24 +03:00
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