Commit Graph

14693 Commits

Author SHA1 Message Date
Peter Hoddie
3a768f51c3 app_update: add support for incremental flash erase
This patch modifies the OTA implementation to incremental erase flash sectors
as they are written, rather than bulk erasing them all at once when OTA begins.

This solves several problems:
- The bulk flash erase can take so long that it triggers the watchdog timer.
  Disabling the watchdog is an undesirable risk.
- The bulk erase interferes with the responsiveness of the system to user input.
- Incremental erasing eliminates the need to pass the firmware image size to
  esp_ota_begin to avoid erasing more flash sectors than required.
- When installing an OTA received via HTTP, the size of the firmware image is
  known when the content-length header is received. Calling esp_ota_begin at that
  time causes a long delay to do the bulk erase which causes the TCP transfer
  speed to be measurably slowed when the transfer resumes after the erase.
  Incremental erasing eliminates this TCP slowdown.

Update:
Rework so erase optimization is only applied when image_size is set to
OTA_WITH_SEQUENTIAL_WRITES #5246

Merges https://github.com/espressif/esp-idf/pull/5246
2020-09-04 12:05:02 +05:30
Ivan Grokhotkov
9d3add538b Merge branch 'feature/toolchain_2020r3' into 'master'
Update toolchain to esp-2020r3

See merge request espressif/esp-idf!10250
2020-09-04 14:07:24 +08:00
David Čermák
fdd40b0d9e Merge branch 'bugfix/slip_ipv6_fix' into 'master'
esp-netif: Fix SLIP interface to start with correct IPv6 addr

Closes IDFGH-2952

See merge request espressif/esp-idf!10116
2020-09-04 13:55:32 +08:00
Michael (XIAO Xufeng)
4941cf58d0 Revert "ci: temporarily disable RS485 related tests"
This reverts commit 983220e216
2020-09-04 12:57:08 +08:00
Mahavir Jain
cec605f74d Merge branch 'bugfix/espcommon_reqs_cmake' into 'master'
esp_common: Add required missing components to CMakelists

Closes IDFGH-3373

See merge request espressif/esp-idf!10122
2020-09-04 12:54:47 +08:00
lly
01617303dd ble_mesh: example: Fix sensor data wrong iteration 2020-09-04 11:44:59 +08:00
Ivan Grokhotkov
ab0fc70104 Merge branch 'feature/check_section_references' into 'master'
ci: add script to check section references

See merge request espressif/esp-idf!9513
2020-09-04 06:19:13 +08:00
David Cermak
d3801be6d9 esp_http_server: Add httpd_ws_get_fd_info() API to check active WS clients
Added a new API to WebSocket server to test provided socket descriptor if it belongs to active clients for this server and if websocket handshake has been performed

Closes https://github.com/espressif/esp-idf/issues/5602
2020-09-03 20:40:11 +02:00
David Cermak
5dae28069f esp-netif: Fix SLIP interface to start with correct IPv6 addr
Merges https://github.com/espressif/esp-idf/pull/4985
2020-09-03 18:11:09 +00:00
Ivan Grokhotkov
52d935615c Merge branch 'bugfix/window_spill_a0_corruption' into 'master'
freertos: don't clobber a4 while spilling register windows

Closes IDFGH-3852 and IDF-1935

See merge request espressif/esp-idf!10252
2020-09-04 00:23:43 +08:00
Ivan Grokhotkov
7a9d2c3fb4 bootloader: fix section placement of wdt_hal
Regression from moving HAL and LL code into the new "hal" component.
2020-09-03 18:14:17 +02:00
Ivan Grokhotkov
66a32c1707 bootloader: fix section placement issues found by the check script
Summary of changes:

- bootloader_clock split into *_clock_init and *_clock_loader.
  Only esp_clk_apb_freq is in *_clock_loader.
- bootloader_common moved out of loader; functions needed in loader
  (or, referenced from bootloader_utility) were moved into
  bootloader_common_loader.c.
- assert and abort moved into bootloader_panic, made part of the
  loader
- rtc_clk and rtc_time made part of loader
2020-09-03 18:14:17 +02:00
Ivan Grokhotkov
52607063cb ci: add script to check section references 2020-09-03 18:14:17 +02:00
Ivan Grokhotkov
6beefff725 Merge branch 'ci/not_show_error_when_checkout_ref' into 'master'
CI: Not showing stdout nor stderr when checkout ref

See merge request espressif/esp-idf!10258
2020-09-03 23:45:07 +08:00
Michael (XIAO Xufeng)
91af5eaf4f Merge branch 'refactor/twai_hal_state' into 'master'
Refactor TWAI HAL to store state information

Closes IDF-1633

See merge request espressif/esp-idf!9789
2020-09-03 23:22:30 +08:00
Ivan Grokhotkov
277a902dec Merge branch 'bugfix/docker_gdb_python' into 'master'
tools/docker: Add libpython2.7 in order to satisfy GDB dependencies (Github PR)

See merge request espressif/esp-idf!10257
2020-09-03 20:35:56 +08:00
Ivan Grokhotkov
c3008e8ae1 hal: workaround for UART FIFO read on ESP32 with -O2 optimization 2020-09-03 12:13:11 +02:00
Ivan Grokhotkov
390a90ff7f Merge branch 'feature/codeowners' into 'master'
add initial CODEOWNERS file

Closes IDF-308

See merge request espressif/esp-idf!9928
2020-09-03 17:54:31 +08:00
Shivani Tipnis
8963ebf2e2 esp_common: Add required missing components to CMakelists 2020-09-03 09:46:37 +00:00
lly
d6947d0699 ble_mesh: stack: Avoid using assert in mesh stack 2020-09-03 07:17:50 +00:00
Anton Maklakov
439f4e4f70 Update toolchain to esp-2020r3
Fixup more for PSRAM issue;
    Allow GDB work correctly with Privileged Registers;
    Based on GCC 8.4.0;
    Update a fix of C++ exception crashs from the GCC mainline;
    Fixup strptime_l() and some locale in libc;

    Closes https://github.com/espressif/esp-idf/issues/5765
2020-09-03 14:09:38 +07:00
David Čermák
9e8f4e51b2 Merge branch 'bugfix/mdns_query_id' into 'master'
mdns: Responding: Fix query ID, add questions if not strict mode

Closes IDFGH-3639 and IDFGH-3577

See merge request espressif/esp-idf!9795
2020-09-03 14:57:47 +08:00
Anton Maklakov
f63bbc169e toolchain: fix the C++ exception workaround for new toolchains that don't have such hook 2020-09-03 13:50:54 +07:00
Island
bc6d239681 Merge branch 'feat/ble_mesh_use_model_cb' into 'master'
ble_mesh: stack: Use model callback for operations [Zephyr]

See merge request espressif/esp-idf!9505
2020-09-03 14:48:13 +08:00
Krzysztof Budzynski
6211d5297d Merge branch 'doc/warn_doxygen_ver' into 'master'
docs: add warning for doxygen version

See merge request espressif/esp-idf!10219
2020-09-03 13:48:40 +08:00
Marius Vikhammer
9b552ce004 docs: add warning for doxygen version
Running with a newer doxygen version than what's
used in CI may raise warnings locally that are not
present when built by CI
2020-09-03 13:48:40 +08:00
Mahavir Jain
7f5b6d1843 Merge branch 'bugfix/time_spinlock' into 'master'
newlib: revert back from spinlocks to using newlib locks for time.h

Closes IDFGH-3858

See merge request espressif/esp-idf!10130
2020-09-03 12:34:29 +08:00
Shubham Kulkarni
58b386bca3 Fix issue when algotithm header is not present 2020-09-03 04:32:45 +00:00
Fu Hanxi
6f675925d8 CI: Not showing stdout nor stderr when checkout ref 2020-09-03 12:17:50 +08:00
lly
043abf5750 ble_mesh: stack: Use model callback for operations [Zephyr]
- Previously when a model is initialized or deinitialized, in the
  access layer, we need to check the model id with the ids in the
  table in order to find the proper model operation function.
- Currently all the operation functions of each model will be set
  during the mesh initialization. When the model is found, we can
  directly use the corresponding callback for different operations.
- Currently only init/deinit operations are registered, later we
  will add more operations.
2020-09-03 02:02:33 +00:00
Marius Vikhammer
6fb996b1ac newlib: revert back from spinlocks to using newlib locks for time.h
Spinlocks from spinlock.h do not disable the scheduler and thus cannot safely
be directly used as a locking mechanism. A task holding the lock can get
pre-empted, and at that point the new running task will also be allowed to
take the spinlock and access whatever it was protecting.

Another issue is that the task holding a spinlock could migrate to a different
core which in turn would cause the application to fail asserts. The current
implementation assumes the core that takes the lock is also the core that
releases it.

Closes https://github.com/espressif/esp-idf/issues/5762
2020-09-03 09:56:02 +08:00
Krzysztof Budzynski
cc33c1db91 Merge branch 'doc/adc_grammar_stuff' into 'master'
Bugfix(doc): minor modifications in the adc section

Closes DOC-436

See merge request espressif/esp-idf!9620
2020-09-03 04:29:24 +08:00
Michael (XIAO Xufeng)
9e7eda9770 Merge branch 'feat/spi_flash_override_size' into 'master'
spi_flash: add config option to override flash size in bootloader header

See merge request espressif/esp-idf!10131
2020-09-03 02:57:31 +08:00
Martin Stejskal
be0372b1db tools/docker: Add libpython2.7 in order to satisfy GDB dependencies
It was not possible to run xtensa-esp32-elf-gdb from container due to
missing libpython2.7 library.

Merges https://github.com/espressif/esp-idf/pull/5817
Closes https://github.com/espressif/esp-idf/issues/5284
2020-09-02 18:15:52 +02:00
Ivan Grokhotkov
c23a9d91d8 add code owners list 2020-09-02 18:04:27 +02:00
Ivan Grokhotkov
52cc05108e Revert "CXX: removed exception windowspill test"
This reverts commit f3e180de72.
2020-09-02 15:44:18 +02:00
Ivan Grokhotkov
04b95f3567 freertos: don't clobber a4 while spilling register windows
Commit 891eb3b0 was fixing an issue with PS and EPC1 not being
preserved after the window spill procedure. It did so by saving PS in
a2 and EPC1 in a4. However the a4 register may be a live register of
another window in the call stack, and if it is overwritten and then
spilled to the stack, then the corresponding register value will end
up being corrupted. In practice the problem would show up as an
IllegalInstruction exception, when trying to return from a function
when a0 value was 0x40020.
Fix by using a0 register instead of a4 as scratch. Also fix a comment
about xthal_save_extra_nw, as this function in fact doesn't clobber
a4 or a5 because XCHAL_NCP_NUM_ATMPS is defined as 1.

Closes https://github.com/espressif/esp-idf/issues/5758
2020-09-02 15:40:41 +02:00
David Čermák
40f3cc4a34 Merge branch 'feature/mqtt_outbox_expired_config' into 'master'
MQTT: add configurable msg expired timeout

See merge request espressif/esp-idf!9997
2020-09-02 20:40:45 +08:00
Wu Bo Wen
658b56a690 doc/adc: modifications in the adc documentation and adc headers 2020-09-02 11:30:48 +00:00
David Cermak
81e89476fe mdns test: Add test to resolve esp32 hostname with DiG 2020-09-02 11:12:08 +02:00
David Cermak
52a7721bf7 examples: Common connect component: Unregister shutdown handler on disconnection
To be able to connect smoothly after disconnecting, we have to unregister all handlers including shutdown handler on disconnection
2020-09-02 11:12:08 +02:00
David Cermak
bcfa36db8f mdns: Support queries in responses in mDNS non-strict mode
By default adds original queries to responses in order to be resolved by some resolvers, such as lwIP mdns library. This functionality however is discouraged by the RFC6762, so it could be disabled in menuconfig if MDNS_STRICT_MODE configured

Closes https://github.com/espressif/esp-idf/issues/5521
2020-09-02 11:12:08 +02:00
David Cermak
f62e321d87 mdns: Fix include query ID in reponses
Closes https://github.com/espressif/esp-idf/issues/5574
2020-09-02 11:12:08 +02:00
Jakob Hasse
20c068ef3b cmock: added cmock as component
* changing dependencies from unity->cmock
* added component.mk and Makefile.projbuild
* ignore test dir in gen_esp_err_to_name.py
* added some brief introduction of CMock in IDF
2020-09-02 16:38:37 +08:00
Anton Maklakov
5c5c7c4449 Merge branch 'bugfix/pip_gdbgui' into 'master'
fix windows incompatibility with gdbgui>=0.14

Closes IDFGH-3896

See merge request espressif/esp-idf!10166
2020-09-02 15:09:42 +08:00
xutao
bd2daccb22 transport: fix transport ssl blocking
In SSL mode, if `esp_transport_poll_read` function is used, the cache data in mebdtls will be blocked
2020-09-02 07:01:01 +00:00
Fu Hanxi
9ba194f78a CI: Sonarqube: run python analysis with python 3 2020-09-02 14:42:07 +08:00
Jiang Jiang Jian
685d6af004 Merge branch 'feature/pmf_espnow_coexistance' into 'master'
espnow/pmf: Implement ESPNOW + PMF Co-existance

Closes WIFI-2712, WIFI-2774, WIFI-2775, and WIFI-2778

See merge request espressif/esp-idf!9885
2020-09-02 14:35:15 +08:00
Marek Ištok
96cfdf3184 tools: fix windows incompatibility with gdbgui>=0.14
gdbgui intentionally (https://github.com/cs01/gdbgui/pull/346) introduced dependencies that are incompatible with windows, and don't seem to have plans to resolve them anytime soon

Closes https://github.com/espressif/esp-idf/issues/5782
Closes https://github.com/espressif/esp-idf/issues/5787
Merges https://github.com/espressif/esp-idf/pull/5794
2020-09-02 06:00:53 +00:00
Darian Leung
7398390049 TWAI: Track HW state in HAL
This commit refactors the TWAI HAL such that it
now tracks  harwdare state instead of the driver
layer. Some HAL and LL cleanup was also done.
2020-09-02 13:03:41 +08:00