* Add flash for vtable destination, make it default
Add an option for placing vtables in flash to complement the existing
iram and heap options. "make flash"
Now that there is a way to change it, move to vtables in flash as default
as only users with interrupts which use vtables require the vtable to
be in RAM. For those users, if the tables are small enough they can put
them in IRAM and save heap space for their app. If not, then the vtables
can be placed in HEAP which supports much larger tables.
* Add VTable menu, FLASH as default, remove Makefile
Convert from manual "make" operated app.ld creation to runtime creation
whose options are selected from the build menu.
Use a prelink recipe to create the output app.ld file each run, without
need for any special tools.
Update the boards.txt.py script to generate this new config.
Move all exception strings to IRAM and out of both PMEM (illegal) and add
output of any assert() failinf conditions.
The exception handler may be called while the SPI interface is in a bad
state. This means no PROGMEM reads are allowed, and all data and functions
used must be in system RAM or IRAM.
Add a new helper macro, ets_printf_P(), which places a constant string in
IRAM and copies it to the stack before calling the real ets_printf().
This makes the code simpler to read as no unwieldy combinations of
ets_putc/ets_printf/... are required to output anything.
The old handler also mistakenly used PSTR() strings in some places, so
fix those with this patch as well.
Gives back ~180 bytes of heap to every sketch built as the exception handler
is always included an application.
- Fixes WiFi not being able to reconnect after SDK update (#4398)
- Fixes increased current in light sleep mode
- Fixes return value documentation for wifi_{get,set}_country
* LED_BUILTIN should be a #define
deduplicate and hide BUILTIN_LED as a deprecated constant
* test for LED_BUILTIN existence
* board:espino:variant: rename button macro (naming coherence)
GCC places vtables in .rodata, with a mangled name of "_ZTV*." Because
these are simply address jump tables, there is no need to place them in
RAM. Instead, have the linker place them in the .text (aka IRAM) section.
This will free up a variable amount of heap space, depending on the number
of classes with virtual functions used in any particular project.
* Case change and and 'none' reset option for Digistump Oak
The logo is 'digiStump', but is always written in text form as 'Digistump'.
The generator fixed an issue with the release version of 2.4.0 not having a resetMethod for the Digistump Oak, and hence not being able to be uploaded to without modifying the boards.txt file. However, the Oak doesn't support auto-reset via serial - it was primarily designed to be a cloud-programmed board.
* Regenerated boards.txt
* Regeneration of doc/boards.rst
+ generates boards.rst
+ generate and replace boards section in package.json
+ generate ldscripts
+ new debug option: OOM
+ new led menu for generic board