Commit Graph

3879 Commits

Author SHA1 Message Date
Darian Leung
887421bb49 ci: Fix failing build system test when FreeRTOS SMP is enabled
Build system tests check that xtensa_vectors.S is rebuilt in some of the CMake build system
tests. However, the path of this file may change when FreeRTOS SMP is enabled.

This commit fixes the CMake build system test by selecting another ".S" file who's path
does not change based on configuration.
2022-05-25 16:31:34 +08:00
Fu Hanxi
d2aae6d53a fix: panic test case test_task_wdt 2022-05-25 10:30:29 +08:00
songruojing
a5b09cf015 rtc_clk: Clean up some clock related enum and macro in soc/rtc.h, replace with new ones in
soc/clk_tree_defs.h
2022-05-24 22:59:41 +08:00
simon.chupin
1c5e596633 idf.py: Change copyright in tools dir 2022-05-24 14:01:50 +02:00
Marius Vikhammer
cf1b222cac build system: removed target component
After refactoring the target components (e.g. esp32) no longer contained any real functionality.
What remained in these components have been moved elsewhere and the component itself deleted from the
build system.
2022-05-24 09:12:59 +08:00
Marius Vikhammer
d485f6add8 Merge branch 'feature/arch_build_property' into 'master'
build-system: add property for architecture (riscv/xtensa)

Closes IDF-1754

See merge request espressif/esp-idf!18127
2022-05-24 08:46:09 +08:00
Marius Vikhammer
0687daf2c8 kconfig: move remaining kconfig options out of target component
The kconfig options are moved to the component where they are used,
mostly esp_hw_support and esp_system.
2022-05-23 17:57:45 +08:00
Roland Dobai
2e9ac36fc8 Merge branch 'contrib/github_pr_8981' into 'master'
Tools: Add missing DTR/RTS set before serial port open on reconnect (GitHub PR)

Closes IDFGH-7403

See merge request espressif/esp-idf!18171
2022-05-23 16:32:08 +08:00
Fu Hanxi
4746a71028 ci: add qemu example 2022-05-21 00:11:59 +08:00
Marius Vikhammer
96965d5d64 Merge branch 'ci/app_type_elf_reduce_ram' into 'master'
CI: reduce memory footprint for "Loadable ELF build"

Closes IDFCI-1272

See merge request espressif/esp-idf!18185
2022-05-20 15:48:15 +08:00
Marius Vikhammer
27045f5e74 CI: reduce memory footprint for "Loadable ELF build"
Build test was failing due to IRAM overflow, building with the recommended
options for reducing memory footprint should give us some breathing room.
2022-05-20 14:39:46 +08:00
Omar Chebib
68ddce7c0b Merge branch 'bugfix/esp32_i2c_incorrect_speed' into 'master'
I2C: Fix SCL period timings on ESP targets

See merge request espressif/esp-idf!17999
2022-05-20 13:33:03 +08:00
Marius Vikhammer
9362434c47 build-system: add property for architecture (riscv/xtensa)
riscv/xtensa is now a common component.
2022-05-20 09:00:32 +08:00
Roland Dobai
f49df63a16 Merge branch 'fix/arm-architecture-detection' into 'master'
Tools: fix architecture armhf/armel detection

Closes IDFCI-1238, IDFCI-1239, IDFCI-1240, IDFCI-1241, IDFCI-1242, IDFCI-1243, IDFCI-1244, IDFCI-1245, IDFCI-1246, and IDFCI-1247

See merge request espressif/esp-idf!18122
2022-05-19 18:59:42 +08:00
Nonoo
f6e4140171 Tools: Add missing DTR/RTS set before serial port open on reconnect when --no-reset is used
This makes sure --no-reset works correctly when the monitor reconnects the serial port.
2022-05-19 08:24:50 +02:00
morris
5d46bf3429 check_term: allow alacritty term 2022-05-19 11:10:59 +08:00
David Cermak
356bc603c4 lwip: Support DHCP restore last IP 2022-05-18 17:11:35 +02:00
David Cermak
53c009e626 lwip: Update socket API to include port-version of sockets/netdb
Added socket extention to the lwip hooks for implementing non-vanilla
{get/set}sockopts()
2022-05-18 17:10:42 +02:00
David Cermak
44a9620c17 esp_netif: Add thread safe pppapi set_auth API to esp-netif 2022-05-18 17:10:42 +02:00
David Cermak
5b471a1848 esp_netif/lwip: Implement basic support for vanilla-lwip (2.1.3-REL)
* Reference lwip-2.1.3-REL vanilla lwip version
* Use inherent NETIF callbacks instead of dhcp/ipv6/autoip
2022-05-18 17:10:42 +02:00
Alexey Lapshin
0afd70c362 Tools: fix architecture armhf/armel detection 2022-05-18 15:18:09 +04:00
Roland Dobai
3bf6e06a80 Merge branch 'tools/fix_cmake_variables_propagation' into 'master'
tools: Fix cmake variable propagation

Closes IDFGH-7212 and IDFGH-7292

See merge request espressif/esp-idf!17983
2022-05-18 15:44:22 +08:00
Omar Chebib
477bc9e64c I2C: Fix SCL period timings on ESP targets
The output frequency is now more accurate as the SCL period timings have been fixed.
This fix applies for ESP32, ESP32S3, ESP32C3, ESP32C2 and ESP32H2
2022-05-18 05:36:08 +00:00
Roland Dobai
37b641608a Merge branch 'fix/gdb-version-check' into 'master'
tools: Fix gdb version check

Closes IDFGH-7385

See merge request espressif/esp-idf!18129
2022-05-17 18:59:25 +08:00
Roland Dobai
762820971c Merge branch 'tools/update_cmake' into 'master'
tools: Update CMake

Closes IDFGH-7227

See merge request espressif/esp-idf!17991
2022-05-17 17:27:48 +08:00
Martin Gano
e9716b1498 Merge branch 'feature/add-fatfs-parser' into 'master'
fatfsgen.py implement functionality for parsing fatfs

Closes IDF-4360

See merge request espressif/esp-idf!17951
2022-05-17 17:07:13 +08:00
Alexey Lapshin
41bbdcc26b tools: Fix gdb version check
Closes https://github.com/espressif/esp-idf/issues/8965
2022-05-17 12:17:03 +04:00
Darian
4d751b9d6b Merge branch 'feature/task_watchdog_freeertos_smp' into 'master'
esp_system: Add task watchdog user feature and fix SMP FreeRTOS idle task watchdog

Closes IDF-3340

See merge request espressif/esp-idf!17768
2022-05-17 15:13:43 +08:00
Djordje Nedic
2ee43cf6c4 tools: Update CMake
This updates CMake to the latest version (3.23).
There are no deprecations and feature removals that affect us going from the previous version:

https://cmake.org/cmake/help/latest/release/3.21.html#deprecated-and-removed-features

https://cmake.org/cmake/help/latest/release/3.22.html#deprecated-and-removed-features

https://cmake.org/cmake/help/latest/release/3.23.html#deprecated-and-removed-features

Closes https://github.com/espressif/esp-idf/issues/8821
2022-05-17 05:06:35 +00:00
Kapil Gupta
ba1daac5f0 Merge branch 'bugfix/wnm_rrm_caps_validation' into 'master'
esp_wifi: Add APIs to check for BTM, RRM support of connected AP

See merge request espressif/esp-idf!18092
2022-05-17 11:33:23 +08:00
Shu Chen
f1d1c5a876 Merge branch 'support/esp32h2beta2_phy_build' into 'master'
esp_phy: support esp32h2beta2 phy build

See merge request espressif/esp-idf!17856
2022-05-17 10:32:07 +08:00
Djordje Nedic
11f3898e33 tools: Fix cmake variable propagation
This fixes the issue where component CMAKE variables propagate by default to the entire project, for instance compiler flags.
Useful for when you want to have component specific compiler flags or defines.

Closes https://github.com/espressif/esp-idf/pull/8806
Closes https://github.com/espressif/esp-idf/issues/8881
2022-05-16 16:55:34 +02:00
Roland Dobai
31b7694551 Merge branch 'contrib/github_pr_8955' into 'master'
Tools: fix idf.py monitor reset with hotkey with --no-reset arg (GitHub PR)

Closes IDFGH-7375

See merge request espressif/esp-idf!18118
2022-05-16 21:50:16 +08:00
Martin Gaňo
005af75da3 Added FATFS partition parser 2022-05-16 14:32:17 +02:00
Tomas Rezucha
0a511e576e Merge branch 'feature/remove_extra_components' into 'master'
examples: Use components from idf-extra-components repository

See merge request espressif/esp-idf!17992
2022-05-16 19:56:11 +08:00
Nonoo
c063cbd7f7 Tools: Set idf.py monitor DTR to the default state when reset is not needed
This lets use the reset hotkey (Ctrl+T Ctrl+R).

Tools: fix idf.py monitor reset with hotkey with --no-reset arg

Tools: Set idf.py monitor DTR to the default state when reset is not needed
2022-05-16 13:06:35 +02:00
zhangwenxu
9440430db2 esp_phy: support esp32h2beta2 phy build 2022-05-16 10:50:44 +00:00
Kapil Gupta
ee33c6ae05 esp_wifi: Add APIs to check BTM and RRM support of connected AP 2022-05-16 15:57:59 +05:30
Fu Hanxi
38345d9cd8 Merge branch 'ci/improve_build_scripts_for_multi_targets' into 'master'
CI: improve build scripts for multi targets

See merge request espressif/esp-idf!17895
2022-05-16 11:18:11 +08:00
Armando (Dou Yiwen)
ad747b237a Merge branch 'toos/add_s3_ut_based_on_quad_octal_psram' into 'master'
ci: add s3 ut based on quad octal psram

See merge request espressif/esp-idf!18087
2022-05-16 09:57:21 +08:00
Michael (XIAO Xufeng)
6f507d527c rtc: fixed 8MD256 can't be used as RTC slow src on ESP32
Sync configuration from other chips

Closes: https://github.com/espressif/esp-idf/issues/8007, https://github.com/espressif/esp-idf/pull/8089
2022-05-14 22:35:41 +08:00
Jing Li
ac0d16cdc8 Merge branch 'bugfix/fix_cannot_lslp_again_after_ulp_wakeup' into 'master'
sleep: fix cannot lightsleep again after a wakeup from ULP

Closes IDFGH-4396

See merge request espressif/esp-idf!17970
2022-05-13 22:25:23 +08:00
Darian Leung
4877a9fcba esp_system: Refactor task_wdt
This commit refactors the task watchdog as follows:

- Renamed variables, types, and functions
- Replaced manual linked list implementation with SLIST()
- Moved calloc()/free() calls out of critical sections
- Shortened ISR critical sections
- Updated API description
- Updated code formatting
2022-05-13 17:57:44 +08:00
Roland Dobai
4bd5c4ef53 Merge branch 'partition_table/warn_partition_nearly_full' into 'master'
partition_table: Add warning when partitions are nearly full

Closes IDF-4533

See merge request espressif/esp-idf!17916
2022-05-13 16:28:35 +08:00
Roland Dobai
6cbe0ceaa7 Merge branch 'feature/enable_component_manager_by_default_for_pure_cmake' into 'master'
tools: Enable the component manager by default in CMake

Closes IDF-4322

See merge request espressif/esp-idf!17724
2022-05-13 15:39:01 +08:00
Djordje Nedic
e09ef86d7c partition_table: Add warning when partitions are nearly full
This adds a warning in cases where the smallest partition is nearly full.
A test with a specially crafted partition table is created for the smallest partition warning.
If the threshold or the template itself change, change the factory app partition size as well.
2022-05-13 07:14:04 +00:00
Alexey Lapshin
e49d4a83d9 tools: Add tool's versions update with checksum file
'idf_tools.py add-version' has new options:
--override            Override tool versions with new data
--checksum-file       URL or path to local file with checksum/size for artifacts

Usage e.g.:
CHECKSUM_URL=https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2/crosstool-NG-esp-2021r2-checksum.sha256
idf_tools.py add-version --tool xtensa-esp32-elf --version esp-2021r2 --override --checksum-file $CHECKSUM_URL

Positional argument 'files' moved to optional argument '--artifact-file'

Add tests for add-version logic
2022-05-13 06:51:59 +00:00
Fu Hanxi
52b5a8348e test: add pytest_wifi_getting_started script 2022-05-13 11:56:59 +08:00
Fu Hanxi
511ccdcb70 ci(pytest): support multi-dut different app 2022-05-13 11:54:42 +08:00
Fu Hanxi
5c997bd5dd ci(pytest): upgrade to 0.7.0 2022-05-13 11:54:42 +08:00
Armando
ed1e4c854e ci: support distribute ut based on psram type 2022-05-13 10:49:02 +08:00
jingli
dd414b9305 esp_hw_‎support/sleep: ‎fix cannot lightsleep again after a wakeup from ULP
Since ulp wakeup signal are connected to ulp int raw(except esp32), we
need to clear ulp int raw before sleep when ulp wakeup enabled. Otherwise,
if the ulp int raw is already set, chip will not sleep properly.

Closes https://github.com/espressif/esp-idf/issues/6229
2022-05-12 17:57:08 +08:00
Tomas Rezucha
4dde197cca examples: Use components from idf-extra-components repository 2022-05-12 08:37:44 +00:00
Marius Vikhammer
c8617fe965 docs: fix all doxygen warnings
Doxygen warnings would previously not result in a failed pipeline.
Fixed this as well as all current warnings.
2022-05-12 14:50:03 +08:00
Mahavir Jain
af1f342ee8 Merge branch 'fix/make_esp_tls_t_private' into 'master'
Make esp_tls_t as private structure

Closes IDF-2812

See merge request espressif/esp-idf!17812
2022-05-12 14:47:42 +08:00
morris
47e4fe83ba ci: enable build pytest ut and examples on esp32c2 2022-05-12 05:18:57 +00:00
morris
6d288575dc test: fix broken host test of idf_as_lib 2022-05-12 05:18:57 +00:00
morris
24f5fecef0 hal: use ROM implementation for systimer and wdt on esp32c2 2022-05-12 05:18:57 +00:00
morris
334126315f esp32c2: level up from preview targets 2022-05-12 05:18:57 +00:00
Mahavir Jain
42aac8d1d7 Merge branch 'contrib/github_pr_8816' into 'master'
Don't ignore return value of `httpd_stop` (GitHub PR)

Closes IDFGH-7222

See merge request espressif/esp-idf!18040
2022-05-12 12:00:03 +08:00
Kapil Gupta
97d7bde1ea Merge branch 'feature/wps_code_updation' into 'master'
wpa_supplicant: wps code cleanup

See merge request espressif/esp-idf!16577
2022-05-12 11:56:58 +08:00
Ivan Grokhotkov
2e506bd93e Merge branch 'bugfix/iperf_output_regex' into 'master'
ci: iperf: recognize report results from newer iperf versions

Closes IDFCI-1226 and IDFCI-1229

See merge request espressif/esp-idf!18055
2022-05-12 03:26:34 +08:00
Kapil Gupta
ecc87cfc8d wpa_supplicant: wps code updation
Update WPS code with upstream. Also moved ESP specific code
in another esp code folder.
2022-05-11 12:18:52 +00:00
Nathan Phillips
e8e63a06e8 Don't ignore return value of httpd_stop 2022-05-11 08:58:01 +00:00
Aditya Patwardhan
aa9de02259 esp_tls.h: Clean up included header files. 2022-05-11 07:09:34 +00:00
Martin Gano
89f754183e Merge branch 'contrib/github_pr_8788' into 'master'
Add idf.py monitor argument --no-reset (-R) (GitHub PR)

Closes IDFGH-7189, IDFGH-7301, and IDFGH-5963

See merge request espressif/esp-idf!18010
2022-05-10 23:34:37 +08:00
Ivan Grokhotkov
d2e519012c
ci: iperf: recognize report results from newer iperf versions
The iperf version used in older version of CI docker images had the
following output format:
[  3]  0.0-10.0 sec  1.25 MBytes  1.05 Mbits/sec   0.000 ms    0/  892 (0%)
The newer iperf version which was recently included in the container
prints more digits after the decimal point:
[  3] 0.0000-10.0148 sec  1.25 MBytes  1.05 Mbits/sec   0.002 ms    0/  895 (0%)
The regular expression to match this line expected a single zero after
the decimal point, so the new format no longer matches.
The fix is to expect any number of digits in the fractional part.
2022-05-10 15:49:53 +02:00
Martin Gaňo
c02c0cc9b7 Tools: Add --no-reset option for IDF Monitor in order to avoid resetting the chip target upon connection
Closes https://github.com/espressif/esp-idf/issues/8889

Closes IDFGH-7189, IDFGH-7301, IDFGH-5963

Closes https://github.com/espressif/esp-idf/issues/7651

Merges https://github.com/espressif/esp-idf/pull/8788
2022-05-10 14:19:37 +02:00
morris
722fde218d uart: add default source clock for all targets 2022-05-09 11:26:30 +08:00
Marius Vikhammer
5bee313bde Merge branch 'bugfix/kconfig_checker_osource' into 'master'
kconfig: update check_kconfigs.py to handle orsource command

See merge request espressif/esp-idf!18013
2022-05-09 09:48:06 +08:00
Wu Zheng Hui
0580d68b69 esp32c2: Support riscv floating-point library selection 2022-05-08 17:57:40 +08:00
Armando (Dou Yiwen)
03aeac1dde Merge branch 'refactor/adc_hal_common_layer' into 'master'
adc: create common adc hal layer

See merge request espressif/esp-idf!17577
2022-05-08 15:45:56 +08:00
Armando
49747bb486 adc: create common adc hal layer 2022-05-07 19:20:44 +08:00
morris
b3c1480d9c example: update musical buzzer example with new rmt driver 2022-05-07 10:34:50 +00:00
morris
d537da5bfb example: update led strip example with new rmt driver 2022-05-07 10:34:50 +00:00
morris
977a2830dd example: update ir nec example with new rmt driver 2022-05-07 10:34:50 +00:00
morris
c5cd86ae8b test_utils: migrate to use new rmt driver 2022-05-07 10:34:50 +00:00
morris
5bfe873725 driver: deprecate legacy rmt driver
The legacy driver is still available, but new feature won't be added.
Enable RMT_SUPPRESS_DEPRECATE_WARN if you don't want to see the
deprecated warnings.
2022-05-07 10:34:50 +00:00
Roland Dobai
efc3357f1a Merge branch 'feature/semihosting_call_number_change' into 'master'
Semihosting V2

Closes IDF-4893

See merge request espressif/esp-idf!17412
2022-05-07 00:28:48 +08:00
morris
1f922f2124 Merge branch 'contrib/github_pr_8900' into 'master'
hello_world_main : fix incorrect printf format (GitHub PR)

Closes IDFGH-7312

See merge request espressif/esp-idf!17998
2022-05-06 21:22:51 +08:00
morris
06e071ba4b Merge branch 'feature/driver_ng_enable_disable_logic' into 'master'
driver_ng: added explicit enable/disable functions

Closes IDF-4204

See merge request espressif/esp-idf!17885
2022-05-06 20:44:50 +08:00
Zim Kalinowski
4967ee40c6 Merge branch 'bugfix/lwip_afl_host_test_mock' into 'master'
LUpdate AFL host test mock

Closes IDF-4953

See merge request espressif/esp-idf!17962
2022-05-06 20:13:21 +08:00
huardti
a01820c583 hello_world: fix incorrect printf format
spi_flash_get_chip_size return a size_t to printf this type it's better to use %u than %d.

We didn't use %zu because it will be ignored by "nano" printf (i.e. when
CONFIG_NEWLIB_NANO_FORMAT is on).

Closes https://github.com/espressif/esp-idf/pull/8900
2022-05-06 10:38:49 +00:00
morris
d67888b92b pcnt: added enable/disable functions 2022-05-06 18:18:39 +08:00
morris
e7295c3577 gptimer: added enable/disable functions 2022-05-06 18:18:39 +08:00
morris
3f66660444 Merge branch 'feature/bringup_esp32c2eco1' into 'master'
esp32c2:ECO1 ROM update

Closes IDF-4933

See merge request espressif/esp-idf!17723
2022-05-06 18:06:26 +08:00
Marius Vikhammer
c7a827a136 kconfig: update check_kconfigs.py to handle orsource command
check_kconfigs.py would only correctly handle "source", but not "rsource", "osource"
or "orsource".

Fixed any warnings detected after updating the test.
2022-05-06 11:31:24 +08:00
Armando (Dou Yiwen)
76be0c2624 Merge branch 'bugfix/fix_esp32_mmu_init_issue' into 'master'
mmu: add ll functions for mmu unmap

Closes OCD-526 and IDF-4962

See merge request espressif/esp-idf!17868
2022-05-05 22:21:18 +08:00
wuzhenghui
afd86542d8 ci: add build test for newly added Kconfig option 2022-05-05 17:41:11 +08:00
jiangguangming
6ec373daf5 heap_tlsf: use tlsf IMPL in ESP32C2 ROM 2022-05-05 17:41:11 +08:00
Erhan Kurubas
ad078c5153 semihosting: drop absolute path support 2022-05-05 09:12:42 +00:00
Kapil Gupta
805b5c9115 Merge branch 'feature/11r_changes' into 'master'
esp_wifi: Add support for FT psk

Closes WIFI-2160

See merge request espressif/esp-idf!16754
2022-05-05 14:30:37 +08:00
Sergei Silnov
69cf85e6a6 tools: Enable the component manager by default in CMake 2022-05-03 17:38:36 +02:00
Roland Dobai
08cc2fd493 Tools: Fix the Python dependency checker by skipping not installed dependency sub-trees 2022-05-03 16:50:25 +02:00
Ivan Grokhotkov
5b0a302ea4 Merge branch 'bugfix/build_spaces_in_path_docs_tests' into 'master'
ci, tools: add build tests for spaces in paths, fix regression in export.sh, add migration guide

See merge request espressif/esp-idf!15431
2022-05-03 21:04:49 +08:00
Nonoo
9266a7c52e Add idf.py monitor argument --no-reset (-R) to prevent resetting the MCU target on monitor startup
Add idf.py monitor argument --no-reset (-R) to prevent resetting the CPU on monitor startup

idf.py monitor: fix type signature

idf.py monitor: fix reset key shortcut when --no-reset (-R) argument is used

idf.py monitor: change --no-reset (-R) argument descriptions in help

idf.py monitor: simplify --no-reset (-R) argument checks

idf.py monitor: add warning if --no-reset is used, but --port is not given

idf.py monitor: ignore --no-reset if --port is not given
2022-05-03 14:52:34 +02:00
Ivan Grokhotkov
89e78976ab
tests: panic: make 'get_test_name' work without VFS, add echo
When vfs component is not added to the build, bare minimum syscalls
are provided by newlib component. These syscalls currently don't
perform CR/LF translation.
This commit makes the 'get_test_name' function work with minimal
syscalls and also adds echo, so that the user sees what they type.
2022-05-02 20:47:18 +02:00
Ivan Grokhotkov
77b754b47f
newlib: fix return value of no-VFS _read_r if nothing received
'read' function should return 0 when encountering an end of file. When
newlib calls read and sees EOF returned, it assumes that this
condition is permanent and never calls 'read' for this file again
(unless the read pointer is moved using fseek).
The correct behavior in case no characters were received over UART is
to return -1. In this case newlib will retry reading from file on next
call to fread, fgetc or another function which calls __srefill_r.
2022-05-02 20:47:18 +02:00
Ivan Grokhotkov
47659be5b8
build system: remove lwip from common requirements
lwip was added to common requirements list to provide "sys/socket.h"
header to all components without additional requirements specified.

However, lwip pulls in a lot of dependencies on other components.
This commit removes lwip from common requirements to reduce the number
of components in G1-only apps.

To compensate for this removal, the following changes are made:
- newlib (which is a common requirement) has a public dependency on
  lwip if lwip is present in the build. This ensures that sys/socket.h
  is available as long as lwip component is included into the build.
- lwip is now a public requirement of esp-tls since esp_tls.h includes
  sys/socket.h header.
- lwip is now a public requirement o esp_http_client because
  sys/socket.h is included from esp_http_client.h
- lwip is now a private requirement of esp_wifi for "smartconfig_ack"
- lwip is now a private requirement of mqtt for socket functions
- lwip is now a public requirement of tcp_transport because
  esp_transport_tcp.h includes sys/socket.h header.
- mbedtls checks if lwip component is present in the build. If yes,
  net_sockets.c is added to the build, along with the dependency on
  lwip. Previously lwip was a public requirement of mbedtls
  unconditionally.

system/g1_components test app is updated to reflect the changes

Default public dependencies of a component before and after this
change, except common requirements:

- esp_timer (public dependency of freertos)
- bootloader_support (public dependency of esp_hw_support)
- vfs (public dependency of lwip)
- esp_wifi (public dependency of lwip)
- esp_event (public dependency of esp_wifi)
- esp_netif (public dependency of esp_event)
- esp_eth (public dependency of esp_netif)
- esp_phy (public dependency of esp_wifi)

After:

- esp_timer (public dependency of freertos)
- bootloader_support (public dependency of esp_hw_support)

Altogether, the following components have been always added as
public requirements to all other components, and are not added now
([breaking-change]):

- lwip
- vfs
- esp_wifi
- esp_event
- esp_netif
- esp_eth
- esp_phy

Application components now need to explicitly declare dependencies on
these components.
2022-05-02 20:47:17 +02:00
Ivan Grokhotkov
ab6151fc8e
test_utils: add missing dependency on esp_netif 2022-05-02 20:47:17 +02:00
Ivan Grokhotkov
130bbf3d6c
ci: add build job to test paths with spaces 2022-05-02 19:05:48 +02:00
Ivan Grokhotkov
cf8fb9e950
tools: fixup version references related to paths with spaces
The feature will only appear in 5.0 release, not in 4.4.
2022-05-02 19:05:47 +02:00
kapil.gupta
3d5ca7ee6e wpa_supplicant: Add support for FT psk 2022-05-01 16:16:51 +05:30
David Čermák
2941cd353a Merge branch 'bugfix/tcp_transport_documentation' into 'master'
tcp_transport: Fix documentation for connect functions

See merge request espressif/esp-idf!17270
2022-04-30 07:45:21 +08:00
Darian Leung
4e4f20d82a lwip: Fix extra or missing includes 2022-04-29 15:11:44 +08:00
Roland Dobai
9b64c40981 Merge branch 'feature/add_freertos_gdb_integration' into 'master'
tools: add freertos support to GDB

Closes GCC-226

See merge request espressif/esp-idf!17571
2022-04-28 14:36:58 +08:00
Roland Dobai
fdf784b7d7 Merge branch 'feature/add_gdb_as_a_tool' into 'master'
tools: add GDB v11.1 as a tool

Closes IDF-3880, IDF-4079, OCD-411, IDFGH-4510, and GCC-90

See merge request espressif/esp-idf!17100
2022-04-28 14:35:13 +08:00
radim.karnis
1cdaf4a831 bugfix: Fix port autodetection with esptool package 2022-04-27 09:34:25 +00:00
Ivan Grokhotkov
871375cae3 Merge branch 'bugfix/bootloader_support_public_req' into 'master'
esp_hw_support: remove public dependency on bootloader_support

See merge request espressif/esp-idf!17792
2022-04-27 17:04:07 +08:00
jiangguangming
63ac5e4a99 mmu: add ll func used to invalidate the mmu entry 2022-04-27 11:35:07 +08:00
Simon
e4d85807ea Merge branch 'feature/spi_flash_esp8684_support' into 'master'
spi_flash: refactor spi_flash clock configuration logic and support esp32c2

Closes IDF-4474, IDF-4025, and IDF-4066

See merge request espressif/esp-idf!16602
2022-04-27 11:05:45 +08:00
Fu Hanxi
609d5a4e77 Merge branch 'ci/force_based_on_commit' into 'master'
ci: support one pipeline must based on commmits

Closes IDFCI-1175

See merge request espressif/esp-idf!17817
2022-04-27 10:59:23 +08:00
Ivan Grokhotkov
3175e472ba Merge branch 'bugfix/freertos_esp_timer_deps' into 'master'
esp_timer: remove from freertos public requirements

See merge request espressif/esp-idf!17818
2022-04-27 04:13:25 +08:00
Rodrigo Garcia
d7201b82f2 provisioning: replace <lwip/inet.h> by <lwip/ip4_addr.h> in wifi_provisioning/wifi_config.h 2022-04-26 17:42:29 +08:00
Cao Sen Miao
4418a855ba spi_flash: refactor the spi_flash clock configuration, and add support for esp32c2 2022-04-26 15:22:37 +08:00
Ivan Grokhotkov
708e99497b
global: add dependency on esp_timer component and include esp_timer.h
Some components were including esp_timer.h without declaring a
dependency on esp_timer component. This used to work due to a
transitive public dependency on esp_timer from freertos component.
Add explicit dependencies where needed.
Also some source files were using esp_timer functions without
including the header file. This used to work because esp_timer.h was
included from freertos port header file. This commit adds esp_timer.h
includes where needed.
2022-04-25 18:39:23 +02:00
morris
1f0e27ca63 Merge branch 'bugfix/ignore_pytest_log_artifacts' into 'master'
test: ignore pytest dut log artifacts

See merge request espressif/esp-idf!17889
2022-04-25 20:52:54 +08:00
Roland Dobai
6c614a40be Merge branch 'bugfix/error_after_switching_IDFs' into 'master'
tools: bugfix - broken export script while working with esp-idf file

See merge request espressif/esp-idf!17528
2022-04-25 20:20:05 +08:00
morris
080953ce02 Merge branch 'contrib/github_pr_8812' into 'master'
usb_serial_jtag: make CONFIG_DEFAULT initializer match order of structure definition (GitHub PR)

Closes IDFGH-7218

See merge request espressif/esp-idf!17886
2022-04-25 18:54:55 +08:00
morris
517c0b54d8 Merge branch 'contrib/github_pr_8827' into 'master'
led_strip component : fix timing by adding the reset signal (GitHub PR)

Closes IDFGH-7233

See merge request espressif/esp-idf!17891
2022-04-25 18:33:31 +08:00
david zuhn
52e34fb7fd usb_serial_jtag: make CONFIG_DEFAULT initializer match order of structure definition 2022-04-25 17:52:00 +08:00
morris
4573448a74 test: ignore pytest dut log artifacts 2022-04-25 17:16:50 +08:00
morris
a385df8ea3 test: remove makefiles in unit-test-app 2022-04-25 17:12:34 +08:00
Roland Dobai
5f017e5390 Merge branch 'feature/esptool_package' into 'master'
esptool: Include esptool as a Python package instead of using it as a submodule

Closes IDF-4785

See merge request espressif/esp-idf!17639
2022-04-25 16:17:56 +08:00
Alexey Lapshin
b5bafae596 tools: add GDB v11.1 as a tool
GDB now is standalone tool separated from toolchain due to frequent updates.

Added installation tests for the new tool.

Tests are changed because they were wrong, see explanation:
esp32 objdump:
    40084290 <esp_crosscore_int_send_yield>:
    ......
    /builds/espressif/esp-idf/components/esp_system/crosscore_int.c:145
    4008429c:    000090            retw

With previous GDB backtrace was:
    #0  0x4008429c in esp_crosscore_int_send_yield (core_id=0) at /builds/espressif/esp-idf/components/esp_system/crosscore_int.c:144

This commit fixes the backtrace with the right line number:
    #0  0x4008429c in esp_crosscore_int_send_yield (core_id=0) at /builds/espressif/esp-idf/components/esp_system/crosscore_int.c:145

Other tests changes have the same cause of fixing.

Closes https://github.com/espressif/esp-idf/issues/6334
2022-04-25 11:21:48 +07:00
Jiang Jiang Jian
68d4c47b7e Merge branch 'update/wifi_api_Docs' into 'master'
DOC:update wifi api docs

Closes WIFI-4380, WIFI-3856, IDFGH-6362, and IDFGH-6778

See merge request espressif/esp-idf!16194
2022-04-25 10:48:31 +08:00
Marek Fiala
0bf264a948 tools: bugfix - broken export script while working with esp-idf file
+ bugfix IDF_PATH detection in sh and dash shells.
+ created Classes that represents idf-env.json file
2022-04-24 22:29:18 +02:00
Michael (XIAO Xufeng)
cbbb308173 Merge branch 'bugfix/esp_flash_forbid_invalid_init' into 'master'
spi_flash: forbid writing to main flash when using invalid init arguments

Closes IDFGH-6936

See merge request espressif/esp-idf!17761
2022-04-24 22:53:57 +08:00
xueyunfei
26fa8260b1 Doc:update wifi api docs
* Add documents related to espnow config rate

* Optimization set dns server api description
2022-04-24 21:20:54 +08:00
Marius Vikhammer
45c1d1cba2 Merge branch 'feature/move_target_kconfig_2' into 'master'
system: move kconfig options out of target component

See merge request espressif/esp-idf!17321
2022-04-24 13:29:43 +08:00
radim.karnis
2bb7dc4471 esptool: Include as a package, delete submodule 2022-04-22 21:31:17 +02:00
Darian Leung
09dc46552b twai: Fix twai_ll_parse_frame_buffer() typo
Closes https://github.com/espressif/esp-idf/issues/8743
2022-04-22 15:25:39 +08:00
Marius Vikhammer
d2872095f9 soc: moved kconfig options out of the target component.
Moved the following kconfig options out of the target component:
 * CONFIG_ESP*_DEFAULT_CPU_FREQ* -> esp_system
 * ESP*_REV_MIN -> esp_hw_support
 * ESP*_TIME_SYSCALL -> newlib
 * ESP*_RTC_* -> esp_hw_support

Where applicable these target specific konfig names were merged into
a single common config, e.g;
CONFIG_ESP*_DEFAULT_CPU_FREQ -> CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ
2022-04-21 12:09:43 +08:00
Fu Hanxi
8dfc286d5f ci: support one pipeline must based on commmits 2022-04-21 11:55:39 +08:00
Roland Dobai
c3bac72cbb Merge branch 'feature/update_openocd_version' into 'master'
OpenOCD version update to v0.11.0-esp32-20220411

See merge request espressif/esp-idf!17770
2022-04-20 23:28:45 +08:00
Euripedes Rocha
f2c77bb70f tcp_transport: Fix documentation for connect functions
Documentation was incorrectly point that we return the socket number.
 The function returns an integer related to the status of the connection.

Closes https://github.com/espressif/esp-idf/issues/8416
2022-04-19 14:18:05 +00:00
Ivan Grokhotkov
fe904085fb Merge branch 'feature/modbus_remove_component' into 'master'
freemodbus: remove component files from esp-idf

See merge request espressif/esp-idf!17272
2022-04-19 21:04:30 +08:00
Ivan Grokhotkov
93edb8fd52 Merge branch 'bugfix/errno_overlap' into 'master'
newlib: fix ESHUTDOWN and ENOTSOCK having the same numerical value

See merge request espressif/esp-idf!17804
2022-04-19 18:39:20 +08:00
morris
373d9b3dbc Merge branch 'feature/default_clk_for_gptimer' into 'master'
clk_tree: added default clock source for peripherals (GPTimer, RMT, LCD, TempSensor)

Closes IDF-4894

See merge request espressif/esp-idf!17759
2022-04-19 18:02:40 +08:00
aleks
9fdf39651b freemodbus: remove component files from esp-idf (fix examples) 2022-04-19 07:23:17 +00:00
Nachiket Kukade
bd40793771 Merge branch 'bugfix/dpp_pkey_api_fix' into 'master'
Move adding prefix/postfix of DPP key to example

Closes IDFGH-7116

See merge request espressif/esp-idf!17383
2022-04-19 15:04:13 +08:00
Ivan Grokhotkov
71bab1078f
newlib: fix ESHUTDOWN and ENOTSOCK having the same numerical value 2022-04-18 12:10:30 +02:00
Omar Chebib
f772d78317 hal: Remove dependency on log component
hal component (G0) doesn't depend on log component (G1) anymore in G0-only applications.
2022-04-18 10:35:01 +08:00
Ivan Grokhotkov
85cb079838
esp_hw_support: remove public dependency on bootloader_support
In c4bcf111, soc_memory_types.h header was moved from soc to
esp_hw_support. Since some of the functions are also used in
bootloader and because esp_hw_support is not part of the bootloader
build, part of the functions were moved into bootloader_support.
To make these functions available to the app, bootloader_support was
added as a public dependency of esp_hw_support.

Since esp_hw_support is in common requirements list, this has added
bootloader_support as a public requirement to every component in the
build. Adding new public requirements outside of common components
is undesirable, since components may accidentally include headers
from bootloader_support without explicitly declaring it as a
requirement.

This commit reverts this addition. Until a better solution is found,
some part of esp_memory_utils.h is duplicated into
bootloader_memory_utils.h. A CI check is added to make sure these
files stay in sync.
2022-04-16 10:50:12 +02:00
Anton Maklakov
3f3d6c84d7 tools: print system platform 2022-04-15 13:37:27 +02:00
Erhan Kurubas
b36e9a5ebf tools: add distro links for macos-arm64 2022-04-15 13:37:27 +02:00
Erhan Kurubas
e87aabcfa3 tools: OpenOCD version updated to v0.11.0-esp32-20220411 2022-04-15 13:37:27 +02:00
Michael (XIAO Xufeng)
7c668770ee Merge branch 'feature/support_esp8684_esp32h2_ledc' into 'master'
ledc: Provide support for esp32c2 and esp32h2

Closes IDF-4347, IDF-3900, IDF-4157, and IDF-4648

See merge request espressif/esp-idf!17071
2022-04-15 00:42:36 +08:00
Roland Dobai
d34e1e1fde Merge branch 'bugfix/idf_tools_constr_path' into 'master'
Tools: IDF_TOOLS_PATH environment variable should change the constraint file path

See merge request espressif/esp-idf!17778
2022-04-14 23:30:30 +08:00
Roland Dobai
3f385b46cc Revert "Install always latest version of git"
This reverts commit 6d2abc2332.
2022-04-14 15:26:40 +02:00
Nachiket Kukade
282d3c6188 wpa_supplicant/dpp: Move adding prefix/postfix of DPP key to example
1. Move adding of prefix/postfix to the private key to example code.
   This is to preserve forward compatibility when more curves are supported.
2. Documentation correction of bootstrapping key configuration.
2022-04-14 16:54:47 +05:30
Roland Dobai
4520fee875 Tools: IDF_TOOLS_PATH environment variable should change the constraint file path 2022-04-14 11:08:20 +02:00
songruojing
534346f4bb ledc: Provide support for esp32c2 and esp32h2
LEDC examples, unit test, and programming guide are all updated.
2022-04-14 08:15:14 +00:00
morris
f32a89826c clk_tree: added default clock source for peripheral 2022-04-14 15:44:56 +08:00
morris
cc71e645be Merge branch 'feature/ksz8863rll_support' into 'master'
ESP IDF infrastructure preparation for ksz8863rll support

See merge request espressif/esp-idf!17203
2022-04-14 10:51:27 +08:00
Michael (XIAO Xufeng)
46b5363e39 spi_flash: forbid writing to main flash when using invalid init arguments
Also refactored the init code to make the logic of device (CS) acquiring
more centralized.

Resolves: https://github.com/espressif/esp-idf/issues/8556
2022-04-13 18:02:34 +08:00
Martin Vychodil
3b3bfc1971 Merge branch 'vfs_fat/improve_mount_function_names' into 'master'
vfs: renamed FATFS convenience mounting functions

Closes IDF-4370

See merge request espressif/esp-idf!17369
2022-04-13 17:52:10 +08:00
morris
cb5507f11c Merge branch 'feature/clk_tree_defs' into 'master'
clk_tree: prework of introducing clock subsystem control

Closes IDF-4892

See merge request espressif/esp-idf!17631
2022-04-13 10:36:56 +08:00
Ivan Grokhotkov
69d1424c15
console: argtable3: add SPDX copyright headers 2022-04-11 19:42:52 +02:00
Ivan Grokhotkov
7c65370d84
spiffs: add esp_spiffs_gc function to force garbage collection
Closes https://github.com/espressif/esp-idf/issues/8626
2022-04-11 11:19:10 +02:00
Matus Fabo
24268d47a2 change: renamed FATFS convenience mounting functions
change: renamed every instance of these functions
add: deprecation notice with old functions
change: CC0 licence to CC0-1.0 in fatfsgen_example_main.c
2022-04-11 08:44:40 +00:00
songruo
60bb5c913d clk_tree: prework of introducing clk subsystem control
1. Clean up clk usage in IDF, replace rtc_clk_xtal/apb_freq_get with
   upper level API esp_clk_xtal/apb_freq
2. Fix small errors and wrong comments related to clock
3. Add clk_tree_defs.h to provide an unified clock id for each chip
   Modify the NGed drivers to adopt new clock ids
2022-04-11 12:09:06 +08:00
Ondrej Kosta
4051b80b4d esp_netif: remove dependency of L2 TAP Interface from netif_lwip
esp_eth: extended infrastructure to optionally provide more advanced access to MAC/PHY layers
2022-04-08 16:40:29 +02:00
Armando
a8a47a61f5 spi_flash: move buffer check from hal layer to driver layer
Prior to this change, `spi_flash_hal_supports_direct_write` and
`spi_flash_hal_supports_direct_read` will check the buffer pointer
place, which should be done in driver layer, instead of HAL layer.
2022-04-08 11:46:10 +08:00
Armando
c4bcf1117c esp_hw_support: move soc_memory_types.h helper functions into esp_hw_support 2022-04-08 11:46:10 +08:00
Mahavir Jain
37ad7c2e1f test_apps: add build only test for !MBEDTLS_CERTIFICATE_BUNDLE 2022-04-06 05:10:43 +00:00
Ivan Grokhotkov
273633ee31
build system: add WHOLE_ARCHIVE component property
This component property allows including all component object files
into the executable. It is equivalent to wrapping the component
library with -Wl,--whole-archive and -Wl,--no-whole-archive flags.

Closes https://github.com/espressif/esp-idf/issues/8667
2022-04-05 18:50:20 +02:00
Roland Dobai
86e5ff1e64 Merge branch 'fix/idf_tools_print_url_earlier' into 'master'
Tools: idf_tools.py prints URL before starting the download

Closes IDFGH-7008

See merge request espressif/esp-idf!17647
2022-04-04 20:46:10 +08:00
Martin Gaňo
74048f079b Fix coredump attribute error in idf_monitor.py
Closes https://github.com/espressif/esp-idf/issues/8651
2022-04-04 12:31:23 +02:00
Darian Leung
8c88c6f68f freertos: Update task snapshot unit tests
This commit updates the task snapshot unit tests as follows:

- Both uxTaskGetSnapshotAll() and vTaskGetSnapshot() are now both tested
- Test cases are now dependent on CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT
2022-04-01 22:01:16 +08:00
Song Ruo Jing
e13bb580c7 Merge branch 'refactor/gpio_unit_test' into 'master'
gpio: Clean up unit tests and enable ci ut on some previously disabled test cases

Closes IDF-4620

See merge request espressif/esp-idf!17417
2022-04-01 18:38:19 +08:00
morris
1459a09978 Merge branch 'bugfix/cxx_gcc11_warnings' into 'master'
C++: fix several gcc11 warnings

Closes GCC-229

See merge request espressif/esp-idf!17658
2022-04-01 15:12:55 +08:00
Roland Dobai
968fa03cb7 Merge branch 'feature/docker_image_latest_git_master' into 'master'
Install always latest version of git

See merge request espressif/esp-idf!17652
2022-03-31 21:02:46 +08:00
Anton Maklakov
9386014201 examples/cxx: add missing header 2022-03-31 15:02:34 +07:00
Anton Maklakov
40d189137e examples/cxx: add explicit-declared copy constructor 2022-03-31 15:02:27 +07:00
Tomas Sebestik
6d2abc2332 Install always latest version of git 2022-03-30 14:41:41 +02:00
Roland Dobai
c3c2b03ed4 Tools: idf_tools.py prints URL before starting the download
This helps users with poor Internet connection to be able to cancel the
download and download it in another way.

Closes https://github.com/espressif/esp-idf/issues/8625
2022-03-30 11:13:16 +02:00
songruojing
8d84033b8c gpio: Clean up unit tests and enable ci ut on some previously disabled test cases
Eliminate UT_T1_GPIO runner requirement by routing internally through gpio matrix and by setting gpio pins to GPIO_MODE_INPUT_OUTPUT mode for all interrupt related test cases.
2022-03-30 15:11:08 +08:00
songruojing
edcf44679d ci: add TEST_CASE_CI_IGNORE macro to allow pytest test cases to be ignored in ci 2022-03-30 15:11:08 +08:00
songruojing
bdb5b11b39 unit test: move unit-test_app test_utils_task_delete API to be a utils API (unity_utils_task_delete) in unity component 2022-03-30 15:11:08 +08:00
wuzhenghui
4652f77a7c esp32h2beta2:update rom layout table 2022-03-29 14:13:06 +08:00
Roland Dobai
b30846ff9e Merge branch 'feature/add_h2_target_to_tools' into 'master'
tools: add RISC-V toolchain for esp32h2 and esp32c2 targets

See merge request espressif/esp-idf!17596
2022-03-28 18:35:46 +08:00
Roland Dobai
5cebbbe74d Merge branch 'feature/idfpy_depecated_commands' into 'master'
tools: Remove deprecated idf.py commands

Closes IDF-3869

See merge request espressif/esp-idf!17525
2022-03-28 18:27:48 +08:00
Michael (XIAO Xufeng)
e3c0229d2e Merge branch 'ci/renable_s3_tests' into 'master'
ci: renable s3 tests

See merge request espressif/esp-idf!17574
2022-03-28 15:53:49 +08:00
Jakob Hasse
2c3ff999ac Merge branch 'feature/cxx_tests_pytest_embedded' into 'master'
C++: change cxx unit tests to component unit tests

Closes IDF-4807

See merge request espressif/esp-idf!17554
2022-03-28 11:45:20 +08:00
Alexey Lapshin
a2f6595c5f tools: add freertos support to GDB
GDB with python support will automatically load freertos-gdb python module.
It comes to GDB with commands starting with 'freertos' to show human-readable
tables with freertos task/queue/timer information

Python module URL: https://pypi.org/project/freertos-gdb
2022-03-25 15:25:36 +04:00
Ivan Grokhotkov
c70a69b1dd Merge branch 'bugfix/remove_ref_non_ex_options' into 'master'
config: removed references to non-existing kconfig options

See merge request espressif/esp-idf!17495
2022-03-25 18:02:54 +08:00
Anton Maklakov
a5d3f2e26d tools: add RISC-V toolchain for esp32h2 and esp32c2 targets 2022-03-25 16:28:36 +07:00
Marius Vikhammer
5618ba80f9 Merge branch 'feature/refactor_esp_sys_deps' into 'master'
esp-system: removed esp_phy and nvs dependencies, change app update and pm to weak dependencies

Closes IDF-4656

See merge request espressif/esp-idf!17092
2022-03-25 17:17:43 +08:00
Marek Fiala
b5c374ae3e tools: Deprecated commands removed from idf.py
Remove deprecated commands from idf.py, but they are still kept working as cmake deprecated targets.
2022-03-25 09:08:53 +01:00
Fu Hanxi
4a59bf9594 Revert "ci: temporarily disable s3 assign test"
This reverts commit 8a31c52825.
2022-03-25 12:39:57 +08:00
Jakob Hasse
9e25e0ed4b refactor (cxx): changed cxx unit tests to component unit tests 2022-03-25 12:14:02 +08:00
morris
4cd839ec8e Merge branch 'bugfix/ldgen_path_error' into 'master'
ldgen: fixed error reporting of duplicate and missing entries.

See merge request espressif/esp-idf!17568
2022-03-24 21:22:22 +08:00
Aleksei Apaseev
528cdc1546 core_dump: split corefile and coredump script from idf into a separate package 2022-03-24 13:57:48 +08:00
Marius Vikhammer
e32fc9eb36 ldgen: fixed error reporting of duplicate and missing entries.
Fragment was missing path variable which is used for error reporting.
2022-03-24 13:04:02 +08:00
David Cermak
c63c8d4df1 esp_eth: Fix open-cores explicit inclusion 2022-03-23 09:05:30 +01:00
Anton Maklakov
118d39c8fe Merge branch 'bugfix/remove-IRAM_ATTR-from-decls' into 'master'
Remove IRAM_ATTR from any function declarations

Closes GCC-223

See merge request espressif/esp-idf!17440
2022-03-23 11:49:22 +08:00
morris
95b3dad771 Merge branch 'bugfix/fix_heap_caps_add_region_with_caps_wrong_check' into 'master'
heap: fix wrong memory region check in `heap_caps_add_region_with_caps()`

See merge request espressif/esp-idf!17535
2022-03-23 10:26:52 +08:00
Ivan Grokhotkov
8506b2f6c9 Merge branch 'bugfix/driver_hal_essl_static_analysis_fixes' into 'master'
driver, essl, hal: fix issues reported by PVS-Studio

Closes IDF-2749, IDF-2753, and IDF-2785

See merge request espressif/esp-idf!17490
2022-03-22 21:47:15 +08:00
Armando
32408b718f heap: fix wrong memory region check
A memory region starts from REGION_START and ends at
(REGION_START+SIZE-1).

Prior to this change, the check assumes a to-be-added region starting from REGION_START is invalid. Let's take an easy example:

A memory region:  0x1000~0x10ff
new added region: 0x1000~0x1020

This will be valid.

Valid conditions and invalid conditions are illustrated in the code comment
2022-03-22 18:51:40 +08:00