summaryrefslogtreecommitdiff
path: root/esp8266/esp8266.ld
AgeCommit message (Collapse)Author
2017-05-12esp8266/esp8266.ld, esp8266_ota.ld: Grow main firmware size by 32KB.Paul Sokolovsky
To accommodate both system and user frozen modules.
2017-01-25esp8266: Factor out common linker code to esp8266_common.ld.Damien George
2016-11-16py: Factor out persistent-code reader into separate files.Damien George
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.
2016-11-16py: Factor persistent code load/save funcs into persistentcode.[ch].Damien George
2016-11-06esp8266: Rename "machine" module implementation to use contemporary naming.Paul Sokolovsky
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).
2016-10-19esp8266: Add MP_FASTCODE modifier to put a function to iRAM.Paul Sokolovsky
It can be used in the following manner: void MP_FASTCODE(foo)(int arg) { ... }
2016-10-19esp8266/esp8266.ld: Move main.o to iROM.Paul Sokolovsky
2016-10-19esp8266/esp8266.ld: Move modmachine.o to iROM.Paul Sokolovsky
2016-10-19esp8266/esp8266.ld: Move help.o to iROM.Paul Sokolovsky
2016-10-18esp8266/esp_init_data: Auto-initialize system params with vendor SDK 2.0.0.Paul Sokolovsky
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.
2016-09-04esp8266/modmachine: Simplify SPI class implementation multiplexing.Paul Sokolovsky
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, ...)
2016-09-03esp8266/esp8266.ld: Move modmachinewdt to FlashROM.Paul Sokolovsky
2016-08-19esp8266/modmachinespi: Add a factory method for SoftSPI/HSPIRadomir Dopieralski
2016-08-19esp8266/modpybhspi: Add a HSPI module for hardware SPI supportRadomir Dopieralski
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-09esp8266/esp8266.ld: Increase firmware image size to 0x90000 (576K).Paul Sokolovsky
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-07-31esp8266: Enable btree module.Paul Sokolovsky
2016-04-27esp8266/esp8266.ld: Put axTLS to FlashROM.Paul Sokolovsky
2016-04-14esp8266: Separate 1-wire timing funcs from Python module to save iRAM.Damien George
esponewire.c contains low-level timing-critical functions that go in iRAM. modonewire.c contains Python wrapper code.
2016-04-06esp8266: Add initial implementation of machine.UART.Damien George
Currently UART(0) and UART(1) are exposed and only uart.write works.
2016-04-03esp8266: Minimize gap between Inst/DataRAM segments and FlashROM segment.Paul Sokolovsky
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-03esp8266: Bump iROM size to 512k.Paul Sokolovsky
Needed for frozen scripts, and for future growth of binary.
2016-04-03esp8266: Move .rodata where it belongs with -mforce-l32 help.Paul Sokolovsky
2016-03-27esp8266/esp8266.ld: Put FatFs to FlashROM.Paul Sokolovsky
2016-03-26esp8266: Put modpybi2c.o to FlashROM.Paul Sokolovsky
2016-03-26esp8266: Put utils.o to FlashROM.Paul Sokolovsky
2016-03-26esp8266: Put lexerstr32.o into FlashROM.Paul Sokolovsky
2016-03-26esp8266: Add PWM support.Damien George
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.
2016-03-25esp8266: Implement software SPI class.Damien George
Supports speeds up to 500k baud, polarity=0/1, phase=0/1, and using any pins. Only supports MSB output at the moment.
2016-03-17esp8266: Store frozen modules in FlashROM.Paul Sokolovsky
Requires special lexer to access their contents.
2016-03-08esp8266: Put more code in iROM section.Damien George
Also explicitly name the py/*.o files in the linker file, to enable easy testing of putting certain ones in iRAM.
2016-03-08esp8266: Enable modlwip.Damien George
2016-03-03esp8266/esp8266.ld: Link in SDK version section.Paul Sokolovsky
Otherwise, os.uname() returns empty string for SDK version.
2016-03-02esp8266: Enable float support, using 30-bit stuffed floats.Damien George
No complex numbers though.
2015-10-20esp8266: Put more code in irom0 section, to get it building again.Damien George
2015-05-30esp8266: Update to SDK version 1.1.0 (MIT-licensed).Josef Gajdusek
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.
2015-05-13esp8266: Put more literal and text obj data in irom0_0_seg.Damien George
With newer versions of esp_iot_sdk the iram1_0_seg started to overflow. Now it doesn't. Addresses issue #1254.
2015-05-13esp8266: Update the linker scriptJosef Gajdusek
Moved modesp.o to flash and increased size of the irom0_0_seg segment. The new value was taken from NodeMCU linker script.
2014-11-29esp8266: Move more rodata to irom section.Damien George
rodata can only go in iram/irom if it's accessed only using word loads (ie no byte or half-word access).
2014-11-28esp8266: Change bignum from mpz to longlong; move some rodata to iram.Damien George
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.
2014-11-27esp8266: New port of Micro Python to ESP8266 wifi module.Damien George