summaryrefslogtreecommitdiffstatshomepage
path: root/esp8266
Commit message (Collapse)AuthorAge
* esp8266: Minimize gap between Inst/DataRAM segments and FlashROM segment.Paul Sokolovsky2016-04-03
| | | | | | | | | 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.
* esp8266/ets_alt_task: Comment out debug output.Paul Sokolovsky2016-04-03
|
* esp8266: Bump iROM size to 512k.Paul Sokolovsky2016-04-03
| | | | Needed for frozen scripts, and for future growth of binary.
* esp8266: Move .rodata where it belongs with -mforce-l32 help.Paul Sokolovsky2016-04-03
|
* esp8266/README: Add link to docs.Paul Sokolovsky2016-04-03
|
* esp8266: Use VM_HOOK to call ets_loop_iter within the VM.Damien George2016-04-02
| | | | Starting with a divisor of 10, pystone_lowmem gives a score of 256.
* esp8266/uart: Get ctrl-C working now that event-based REPL is disabled.Damien George2016-04-01
|
* esp8266/uart: Comment out old, unused rx buffering code.Damien George2016-04-01
| | | | | | | 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.
* esp8266: Switch to non event-driven REPL to support paste mode.Paul Sokolovsky2016-04-01
|
* 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: Disallow recursive calls to REPL.Paul Sokolovsky2016-04-01
| | | | | | | | | 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.
* esp8266: Move PHY mode constants from modesp to modnetwork.Paul Sokolovsky2016-04-01
|
* 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: Switch back to accumulating input data via ring buffer.Paul Sokolovsky2016-03-30
| | | | | | | | 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().
* esp8266: Fix issue when current repl line was garbage-collected.Paul Sokolovsky2016-03-30
| | | | Reference it from root pointers section.
* esp8266: Support synchronous wifi scanning.Damien George2016-03-30
| | | | | | | That is: aps = if0.scan() TODO: make sure that returned list has tuple with values in "standard" order (whatever that standard is).
* esp8266: Reduce heap size for now to avoid random segfaults on WiFi connect.Paul Sokolovsky2016-03-29
|
* esp8266: Let esp8266 "os" messages go to standard (REPL) UART.Paul Sokolovsky2016-03-29
| | | | That's definitely helpful for debugging.
* esp8266/esp_mphal: Add support for debug UART-only output.Paul Sokolovsky2016-03-29
| | | | | | | | | Helpful when debugging dupterm support (because otherwise all output is spooled to dupterm too). To use: mp_printf(&mp_debug_print, "...");
* esp8266: Enable uos.dupterm() method.Paul Sokolovsky2016-03-29
|
* esp8266: Add basic support for duplicating REPL output.Paul Sokolovsky2016-03-29
|
* esp8266: Implement os.urandom function.Damien George2016-03-29
| | | | Uses what is suspected to be a hardware random number generator.
* 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/moduos: Add os.remove(), proxying to VFS object.Paul Sokolovsky2016-03-28
|
* esp8266/moduos: Factor out VFS method proxy helper.Paul Sokolovsky2016-03-28
|
* esp8266/moduos: Add listdir() proxy for MP_STATE_PORT(fs_user_mount)[0].Paul Sokolovsky2016-03-28
| | | | | I.e. os.listdir(...) will redirect to MP_STATE_PORT(fs_user_mount)[0].listdir(...).
* esp8266/moduos: Use mp_rom_map_elem_t for static const dictionary.Damien George2016-03-28
|
* esp8266: deploy: Use --flash_size=8m option to esptool.py.Paul Sokolovsky2016-03-28
| | | | | Most esp8266 modules have at least 1MB (8Mbit) of flash. If not set, vendor functions allow to access only first 512K.
* esp8266/esp8266.ld: Put FatFs to FlashROM.Paul Sokolovsky2016-03-27
|
* esp8266: Enable FatFs support.Paul Sokolovsky2016-03-27
|
* esp8266/README: Update for the current status of the port.Paul Sokolovsky2016-03-27
|
* esp8266/modesp: flash_read(): Accept buffer to read to as a second argument.Paul Sokolovsky2016-03-27
|
* esp8266/modesp: flash_write(): Writes in multiples of 4 bytes.Paul Sokolovsky2016-03-27
|
* 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: Put modpybi2c.o to FlashROM.Paul Sokolovsky2016-03-26
|
* esp8266/tests: Add neopixel.py test.Damien George2016-03-26
|
* esp8266: Add esp.neopixel_write function to bit-bang WS2812 data.Damien George2016-03-26
|
* esp8266: Link ADC class into machine module.Damien George2016-03-26
|
* esp8266: Put utils.o to FlashROM.Paul Sokolovsky2016-03-26
|
* esp8266: Put lexerstr32.o into FlashROM.Paul Sokolovsky2016-03-26
|
* esp8266/esppwm.c: Fix IRQ handler prototype.Paul Sokolovsky2016-03-26
|
* esp8266: Add PWM support.Damien George2016-03-26
| | | | | | | | | | | | | | | | | PWM implementation uses a timer and interrupts (FRC1), taken from Espressif's/NodeMCU's implementation and adapted for our use. 8 channels are supported, on pins 0, 2, 4, 5, 12, 13, 14, 15. Usage: import machine pwm0 = machine.PWM(machine.Pin(0)) pwm0.freq(1000) pwm0.duty(500) Frequency is shared (ie the same) for all channels. Frequency is between 1 and 1000. Duty is between 0 and 1023.
* esp8266: Implement software SPI class.Damien George2016-03-25
| | | | | Supports speeds up to 500k baud, polarity=0/1, phase=0/1, and using any pins. Only supports MSB output at the moment.
* esp8266/README: Remove outdated reference to initial port heap size.Paul Sokolovsky2016-03-25
|
* esp8266: Add tests/onewire.py as a driver and test code for ds18b20 dev.Damien George2016-03-24
|
* esp8266: Add onewire helper functions as C module.Damien George2016-03-24
| | | | Includes functions to read and write bits and bytes.
* esp8266: Implement bit-bang I2C read, and add i2c.readfrom method.Damien George2016-03-24
| | | | I2C reading tested with TSL2561 luminosity sensor.