* umm_malloc manual merge with upstream
* Fix divide by zero, case when heap is 100% allocated.
* Removed extra line.
* Fixed block count for debug build. This resolves OOM events for debug build.
Correct overstepping array when freeing.
* Handle another corner case in example HeapMetric.ino.
Comment corrections.
* Revert - ESP.getMaxFreeBlockSize() is back to indicating the size of a
contiguous block of memory before the umm_malloc overhead is removed.
* Stale code cleanup and comment improvements
* Remove unnecessary XMC support from eboot
eboot is always run with the flash access speed set to 20MHz, so
there is no need for special treatment of XMC chips.
* After eboot copies the new firmware into place, verify the copy.
If the data written to flash is as expected, the line cmp:0 will be displayed
after the usual @cp:0 from eboot.
* Disable interrupts during the precached part of _SPICommand()
For some reason this was an issue during the reboot after an OTA update.
Manually merged the PATCH files from upstream up until Jan 26, 2020.
Looks to only fix a single bug related to reading past the end of a file
in certain cases. Other new features (secure erase) are included to
make it easier to merge any future releases, but are not enabled in the
core.
Merges included:
20fc6df0ab2bee391961b5f823a327887abc96b4
da1cf494796d68bb5c02ba70cf78a904db08a170
13935985cdde6d6b4ec77f2685264242ee55e7ac
ec68ba8208d7550860e4e78299d58a529b88bf85
f59d958e0b2f169b549e5cdc293a70bc6873cd45
f7d3e9f2b207958dfc2c01cf3fc42f98a4b9b239
554b59c147d96223ccce18374989f191f7222b45
07e013056dd976d12ae36db5c54a275e1497f6c8
d0d44c4908efff7a443ed9b1174d9173fb784a72
3cb24dbfd32a396dca46a7ca56a8e75bdcb97078
8172b40813ff36aa0df4c88a6e9c76e5300d7e32
* Deprecate SPIFFS, move examples to LittleFS
SPIFFS has been a great filesystem, but it has significant problems in
many cases (and it's also pretty slow). Development seems to have
slowed/stopped on the upstream version, and we're not able to provide
support or fix the known issues with it as-is.
Deprecate SPIFFS variable.
Update all examples to use LittleFS instead of SPIFFS.
Also, minor cleanup on very old examples which has obsolete delays
waiting for the Serial port to come up, or which were stuck at 9600 baud
because of their ancient AVR heritage.
Fixes#7095
* Remove leftover debug code
* Clean up comments in some examples
* Update documentation on SPIFFS deprecation
* Fix host tests to avoid deprecation warnings
* Fix cut-n-paste error
* Restore SpeedTest.ino, adjust to allow custom FSes
Co-authored-by: Develo <deveyes@gmail.com>
Documentation that bit USTX in UART status register USS(u) / U0S / U1S is not mirroring TX level as expected but always reads 0, see issue #7256
Co-authored-by: Develo <deveyes@gmail.com>
Add minor NULL and double-free checks to source, identified using GCC10
pre-release static `-fanalyzer` on the coude. These are harmless to
other versions.
Also add explicit include of stdint to Schedule.h, because libstdc++20
will not automatically include it. Safe and no-op on earlier versions.
- Add using namespace experimental::crypto; to HelloCrypto.ino.
- Add mention about new random function in libraries.rst.
- Update keywords.
Co-authored-by: Anders <andlo151@student.liu.se>
* - Add CryptoInterface library.
- Add TypeConversion core files.
* Fix compiler errors.
- Make HelloCrypto.ino stylish.
- Include assert.h in CryptoInterface.cpp.
* - Move base36 arrays to PROGMEM in TypeConversionFunctions.cpp.
- Add deprecated attribute to SHA1 and MD5 hashes.
- Remove _warningsEnabled since this has been replaced by the deprecated attribute.
- Prefix all getters with "get".
- Move all CryptoInterface functionality to the experimental namespace.
- Change formatting of core files.
- Improve comments.
* - Update keywords.txt.
* - Remove WiFi.disconnect() from setup() in HelloCrypto example since it no longer seems to be required.
* - Classify everything.
- Remove delay in setup() from HelloCrypto example since it does not seem to be required to prevent missing initial Serial prints.
- Mark type conversion functions as big endian.
- Update keywords.txt.
* - Remove namespace experimental.
- Create ESP.random functions in the core based on the defaultNonceGenerator code, and use these in defaultNonceGenerator.
- Rename CryptoInterface to esp8266::Crypto and move all functionality to the core.
- Remove need to #include <bearssl/bearssl.h> in the Crypto header file by changing br_hkdf_context to ::br_hkdf_context.
- Restyle code files for core usage.
* - Re-add namespace experimental.
- Improve comments.
* - Remove namespace esp8266.
- Rename namespace Crypto to namespace crypto.
Co-authored-by: Anders <andlo151@student.liu.se>
Co-authored-by: Develo <deveyes@gmail.com>
* Move the spi vendor list from Esp.h to its own header in eboot.
* Fix ifdef issue with spi_vendors.h
* Add initFlashQuirks() for any chip specific flash initialization.
Called from user_init().
* namespace experimental for initFlashQuirks()
* Slow down flash access during eboot firmware copy
Part 1 - still some work to do
* Slow down flash access during eboot firmware copy on XMC chips
Part 2 - Identify the chip type.
Note: there may still be issues with the access speed change.
This is very much experimental.
* Commit eboot.elf
Co-authored-by: Develo <deveyes@gmail.com>
Co-authored-by: Earle F. Philhower, III <earlephilhower@yahoo.com>
* TZ update
Added the possibility to set the timezone without using NTP. This is helpful to have the timezone advantages when using an external RTC.
* Update time.cpp
Fix/clarify comments.
Fix redundancies in Tone, end Tone waveform on exact period limit for proper sound.
Fix redundancies in wiring_pwmExtend Servo to map in-use pins, Tone already has this.
* Allow waveforms to be specified in clock cycles
Allow the PWM to specify sub-microsecond waveform edges, as have been
proposed by @dok-net and me. No other changes intended.
This will increase the linearity at 30 and 40 kHZ PWM rates, but leave
most other things unaffected.
* Cycle-accurate wafveform to specify Tone periods
Co-authored-by: Develo <deveyes@gmail.com>
* At least the F_CPU define in host mock.h is needed by host Arduino.h - need to include Arduino.h further down in mock.h for this to work.
* Geting the include order right
* Prepare for runtime CPU clock rate selection
* Fix compile for not defined F_CPU
If defined F_CPU, make getCpuFreqMHz() a constexpr
* Use defines for register CPU2X instead of hex value
* Fix build for host - getCpuFreqMHz there was also in conflict with getCycleCount, using F_CPU:
tests/host/common/mock.h:#define F_CPU 80000000 (!)
* Asymmetrical includes and defines on host
* Support restart switch from 160MHz to 80MHz, e.g for OTA. Fixes#579
* Pull GPIO initialization into its own 'weak' function.
By pulling GPIO init into its own weak function, it can be overridden by the user. This is important in cases when GPIOs should not toggle during reboot, exceptions or other crashes. Fixes#7041.
* Add prototype for resetPins()
* Use 2nd stack for update signature verification
Fixes#7145
When doing a signed update, the signature calculation can use a lot of
stack, so move it silently to the BearSSL second stack.
Also fix a memory leak of signature-bytes found by @JiriBilek
* Reset state on any error condition in Updater::end
* Add fileCreation/getCreation create-time accessors
For SDFS and LittleFS, enable a creation time accessor for files and Dir
iterators, similar to the existing fileTime/getLastWrite calls.
Remove spurious Dir::getLastWrite method (the proper and only documented
way is really Dir::fileTime).
Update json to point to new mklittlefs which copies the creation date of
files to the image.
Fixes#6992
* Remove malloc(), use stack vars for temp names
LFS filenames are limited in size and generally very small. Use a stack
variable instead of a dynamic allocation when performing full-path
computations.
* Replace "Creation" w/"CreationTime" in FS accessor
Per review, `getCreation` -> `getCreationTime`, `fileCreation` ->
`fileCreationTime`.
The names `fileTime()` and `getLastWrite()` are inherited from ESP32
implementation and unchanged.
* Add creation time to listfiles SD example
* Enable SdFat's sateTime callback for timestamping
SdFat requries the dateTimeCallback call (global for everything) to
update dates and times on created files.
Because the callback signature doesn't have space for us to provide
any parameters, we cannot get the the File, Dir, or FS object's
dateTimeCB member. Instead, just go with `time(null)` as the callback
function which is right in all but the most esoteric cases.
* Correct DOS year/month offset in dateTime callback
* Fix docs to match new xxxCreationTime() API names
Co-authored-by: Develo <deveyes@gmail.com>
* configTime(tzsec,dstsec,): fix UTC/local management
This PR also remove dead code since probably newlib updates
The NTP-TZ-DST example is also updated
* restore sntp_set_timezone_in_seconds()
fixes#6678
* +configTzTime()
Fixes#7043
Two slightly different custom routines were implemented by hand in
dtostrf (an AVR-lib non-ISO function) and Print. This resulted in
inconsistent output of float/double vars when rounding was needed.
Replace them all with a call to sprintf(), removing the duplicated, not
quite correct code.
Print(String(float)) and Print(float) now generate the same output.
* Code size optimisation of ESP.getResetReason()
doing if/else snakes for something that is a switch/case
is wasteful, as it repeatedly evaluates the same if() condition.
Also repeating strcpy_P is adding code bloat.
This simplification reduces size from 111 to 41 bytes.
* add break statement also to default case