| Commit message (Collapse) | Author | Age |
|
|
|
| |
To accommodate both system and user frozen modules.
|
| |
|
|
|
|
|
|
|
| |
Implementations of persistent-code reader are provided for POSIX systems
and systems using FatFS. Macros to use these are MICROPY_READER_POSIX and
MICROPY_READER_FATFS respectively. If an alternative implementation is
needed then a port can define the function mp_reader_new_file.
|
| |
|
|
|
|
|
|
|
| |
Previously they used historical "pyb" affix causing confusion and
inconsistency (there's no "pyb" module in modern ports; but people
took esp8266 port as an example, and "pyb" naming kept proliferating,
while other people complained that source structure is not clear).
|
|
|
|
|
|
| |
It can be used in the following manner:
void MP_FASTCODE(foo)(int arg) { ... }
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
SDK 2.0.0 goes into boot loop if a firmware is programmed over erased flash,
causing problems with user experience. This change implements behavior
similar to older SDKs': if clean flash is detected, default system
parameters are used.
|
|
|
|
|
|
|
|
|
|
|
|
| |
modpybhspi now does the needed multiplexing, calling out to modpybspi
(bitbanging SPI) for suitable peripheral ID's. modmachinespi (previous
multiplexer class) thus not needed and removed.
modpybhspi also updated to following standard SPI peripheral naming:
SPI0 is used for FlashROM and thus not supported so far. SPI1 is available
for users, and thus needs to be instantiated as:
spi = machine.SPI(1, ...)
|
| |
|
| |
|
|
|
|
|
|
| |
This module uses ESP8266's SPI hardware, which allows much higher
speeds. It uses a library from
https://github.com/MetalPhreak/ESP8266_SPI_Driver
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
| |
esponewire.c contains low-level timing-critical functions that go in
iRAM. modonewire.c contains Python wrapper code.
|
|
|
|
| |
Currently UART(0) and UART(1) are exposed and only uart.write works.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Needed for frozen scripts, and for future growth of binary.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Supports speeds up to 500k baud, polarity=0/1, phase=0/1, and using any
pins. Only supports MSB output at the moment.
|
|
|
|
| |
Requires special lexer to access their contents.
|
|
|
|
|
| |
Also explicitly name the py/*.o files in the linker file, to enable easy
testing of putting certain ones in iRAM.
|
| |
|
|
|
|
| |
Otherwise, os.uname() returns empty string for SDK version.
|
|
|
|
| |
No complex numbers though.
|
| |
|
|
|
|
|
|
|
|
|
| |
1. Updated linker script, now user app appears to contain exception vector
table and oesn't work (faults) without it.
2. Commened out support for GPIO pulldown, which was removed in this SDK
version without clear explanation, but apparently because it was released
without proper validation, and now turns out it doesn't work as expected,
or there's a different function there.
|
|
|
|
|
|
|
| |
With newer versions of esp_iot_sdk the iram1_0_seg started to overflow.
Now it doesn't.
Addresses issue #1254.
|
|
|
|
|
| |
Moved modesp.o to flash and increased size of the irom0_0_seg segment. The new
value was taken from NodeMCU linker script.
|
|
|
|
|
| |
rodata can only go in iram/irom if it's accessed only using word loads
(ie no byte or half-word access).
|
|
|
|
|
|
| |
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.
|
|
|