Compare commits

..

2302 Commits

Author SHA1 Message Date
Zim Kalinowski
349385cb64 Merge branch 'update/release_v4.1.4' into 'release/v4.1'
Update version to v4.1.4

See merge request espressif/esp-idf!21553
2022-12-12 15:05:20 +08:00
Zim Kalinowski
9173ec9d30 versions: Update to v4.1.4 2022-12-10 10:38:22 +01:00
Jiang Jiang Jian
acf6a3c558 Merge branch 'bugfix/nvs_coverity_issues_4.1' into 'release/v4.1'
bugfix (nvs): Fixed issues found by Coverity (backport 4.1)

See merge request espressif/esp-idf!17765
2022-12-01 18:24:31 +08:00
Jiang Jiang Jian
742ed8b414 Merge branch 'bufix/a2dp_fail_connect_again_after_disconnect_v4.1' into 'release/v4.1'
component_bt: Fixed a2dp failing to connect again after disconnect(v4.1)

See merge request espressif/esp-idf!21346
2022-12-01 17:53:43 +08:00
Jiang Jiang Jian
0420bfcfee Merge branch 'bugfix/unprot_sa_query_issue_v4.1' into 'release/v4.1'
Fix unprotected SA Query issue (backport v4.1)

See merge request espressif/esp-idf!21317
2022-12-01 17:53:36 +08:00
Nachiket Kukade
2100c1ded9 esp_wifi: Update wifi libs
Fix unprotected SA Query issue
2022-11-30 17:23:44 +05:30
xiongweichao
54c36a63ce bt: Fixed a2dp failing to connect again after disconnect 2022-11-30 19:23:09 +08:00
Jiang Jiang Jian
2c435e1a33 Merge branch 'bugfix/security_params_overwrite_v4.1' into 'release/v4.1'
Add changes to prevent security params overwritten in full scan (backport v4.1)

See merge request espressif/esp-idf!21273
2022-11-30 11:02:00 +08:00
gauri patankar
3c0db8c6b3 Add changes to prevent security params overwritten in full scan (backport v4.1) 2022-11-25 18:20:11 +05:30
Jiang Jiang Jian
4a8fc7ed9c Merge branch 'bugfix/fix_stale_pmf_config_v4.1' into 'release/v4.1'
Fix stale PMF config in NVS issue (Backport v4.1)

See merge request espressif/esp-idf!21201
2022-11-25 11:53:50 +08:00
Jiang Jiang Jian
d1539b3b3f Merge branch 'bugfix/change_log_print_forv4.1' into 'release/v4.1'
ble_mesh:example:Add command to test the function of duplicate exceptional list(v4.1)

See merge request espressif/esp-idf!21124
2022-11-25 10:44:46 +08:00
Yuan Hong Hui
2fdc78b882 ble_mesh:example:Add command to test the function of duplicate exceptional list(v4.1) 2022-11-25 10:44:46 +08:00
Jiang Jiang Jian
37b65cfc4a Merge branch 'bugfix/fixing_memory_leak_wps_scan_v4.1' into 'release/v4.1'
wpa_supplicant : Fixed memory leak issue in wps scan(backport v4.1)

See merge request espressif/esp-idf!20990
2022-11-25 10:44:34 +08:00
Jiang Jiang Jian
3c46bd7ce4 Merge branch 'bugfix/a2dp_can_not_connect_after_ble_connected_v4.1' into 'release/v4.1'
fixed the issue iOS devices cannot initiate connection (v4.1)

See merge request espressif/esp-idf!21059
2022-11-25 10:44:24 +08:00
Jiang Jiang Jian
52bc2064f2 Merge branch 'bugfix/fix_hfp_clcc_parser_bug_4.1' into 'release/v4.1'
Bugfix/Fix HFP client parse CLCC command response bug[backport 4.1]

See merge request espressif/esp-idf!21162
2022-11-25 10:44:14 +08:00
Nachiket Kukade
ca4448a700 esp_wifi: Update wifi lib
Fix issue where set_config API uses stale NVS config if PMF disable
API was used before
2022-11-23 12:33:04 +05:30
Jakob Hasse
41501c4f23 bugfix (nvs): Fixed issues found by Coverity
*  Fixed potential memory leak
*  Fixed wrong strncpy usage
*  Fixed potential out of bounds access
2022-11-22 09:21:05 +00:00
jgujarathi
7d7481845f wpa_supplicant : Fixed a memory leak issue created when parsing scan results 2022-11-21 17:26:35 +05:30
liqigan
1150295092 fix HFP client parse CLCC command response bug 2022-11-18 19:52:59 +08:00
Jin Cheng
c6277f4383 fixed the issue iOS devices cannot initiate connection
to ESP32 while there is a BLE connection to this ESP32

Closes https://github.com/espressif/esp-idf/issues/6557
2022-11-14 09:51:30 +08:00
Jiang Jiang Jian
d1b3b6a577 Merge branch 'bugfix/fix_disassembler_interpreting_padding_v4.1' into 'release/v4.1'
(Xtensa) Build: add .xt.prop and .xt.lit to the compiled ELF file (backport v4.1)

See merge request espressif/esp-idf!19614
2022-11-09 18:57:05 +08:00
Jiang Jiang Jian
6f45916ffe Merge branch 'bugfix/fix_trans_optional_info_using_group_addr_v4.1' into 'release/v4.1'
ble_mesh: stack: Fix can't trans optional info to group address(v4.1)

See merge request espressif/esp-idf!20962
2022-11-08 11:02:43 +08:00
Jiang Jiang Jian
7562fe1720 Merge branch 'bugfix/ble_mesh_console_memory_leak_test_forv4.1' into 'release/v4.1'
ble_mesh:example:fix memory leak(v4.1)

See merge request espressif/esp-idf!20041
2022-11-08 11:02:12 +08:00
David Čermák
d6f897956e Merge branch 'bugfix/cxx_exception_pool_4.1' into 'release/v4.1'
startup: Make __cxx_eh_arena_size_get return 0 if exceptions disabled (v4.1)

See merge request espressif/esp-idf!19292
2022-11-07 21:31:11 +08:00
wangjialiang
1d661e2786 ble_mesh: stack: Fix can't trans optional info to group address 2022-11-07 15:53:24 +08:00
Jakob Hasse
99352c4d23 startup: Make __cxx_eh_arena_size_get return 0 if exceptions disabled
This function is necessary to provide the emergency exception
memory pool size for C++ code.
Since our libstdc++ always has exceptions enabled, this function
must exist here even if -fno-exception is set for user code.
2022-11-03 12:02:39 +00:00
Michael (XIAO Xufeng)
d1a33ea1d1 Merge branch 'bugfix/fix_uart_fake_tx_done_v4.1' into 'release/v4.1'
uart: Fix unwanted processing of TX_DONE interrupt immediately after calling uart_wait_tx_done() (backport v4.1)

See merge request espressif/esp-idf!20317
2022-11-02 18:09:36 +08:00
Jiang Jiang Jian
ec32bf2a64 Merge branch 'bugfix/combined_softap_pmf_fixes_v4.1' into 'release/v4.1'
Combined bugfixes for SoftAP and PMF (Backport v4.1)

See merge request espressif/esp-idf!19126
2022-11-01 11:06:32 +08:00
Jiang Jiang Jian
c3330628f4 Merge branch 'bugfix/use_nonblocking_coex_callback_v4.1' into 'release/v4.1'
bluetooth: use non-blocking coexistence callback functions so that Wi-Fi task is not blocked by Bluetooth(backport v4.1)

See merge request espressif/esp-idf!20810
2022-11-01 10:48:19 +08:00
morris
1617200e5e Merge branch 'bugfix/spi_slave_intr_iram_v4.1' into 'release/v4.1'
driver: spi_slave: make sure CS helpers are in IRAM if the ISR is (v4.1)

See merge request espressif/esp-idf!17834
2022-10-31 20:30:11 +08:00
Nachiket Kukade
a735c0513e esp_wifi: Update wifi libs
Update wifi libs with below fixes -
1. Improved error handling in SoftAP Rx path, fixed LoRa IE length
2. Handle low memory scenario in STA PMF
2022-10-31 17:41:37 +05:30
Song Ruo Jing
5d06480236 uart: Fix unwanted processing of TX_DONE interrupt immediately after calling uart_wait_tx_done()
In previous transmission(s), the TX_DONE interrupt raw bit may be raised, but never been cleared.
TX_DONE interrrupt status bit should be cleared before enabling it to check the new transmission.

Introduced in d778f3f3fb77b5e734cfc0e651fa770350baed4f
2022-10-31 08:24:41 +00:00
Ivan Grokhotkov
efc00f1183 driver: spi_slave: make sure CS helpers are in IRAM if the ISR is
Closes https://github.com/espressif/esp-idf/issues/3870
2022-10-31 03:40:37 +00:00
Wang Meng Yang
12dddeb160 Merge branch 'bugfix/spp_vfs_mode_send_data_fail_v4.1' into 'release/v4.1'
bt: Fixed SPP VFS mode not being able to send data(v4.1)

See merge request espressif/esp-idf!20800
2022-10-27 10:50:09 +08:00
Jiang Jiang Jian
b308c5b676 Merge branch 'bugfix/build_wifi_lib_with_Os_v4.1' into 'release/v4.1'
esp_wifi: build wifi lib with -Os optimization (Backport v4.1)

See merge request espressif/esp-idf!20777
2022-10-27 10:43:04 +08:00
wangmengyang
38fc312d26 bt: use non-blocking coexistence callback functions so that Wi-Fi task is not blocked by Bluetooth on ESP32 2022-10-26 19:06:43 +08:00
Wang Meng Yang
e9ded8fdec Merge branch 'bugfix/handle_issue_of_malloc_fail_v4.1' into 'release/v4.1'
bugfix/avoid unexpected free when malloc failed (v4.1)

See merge request espressif/esp-idf!20724
2022-10-26 18:57:32 +08:00
xiongweichao
c346cd4e9f bt: Fixed SPP VFS mode not being able to send data 2022-10-26 16:20:03 +08:00
Jiang Jiang Jian
8da39d82ca Merge branch 'bugfix/fix_esp32_some_bugs_v4.1' into 'release/v4.1'
Fixed BLE ASSERT_PARAM(32 0) in rwble.c at line 384 on ESP32(backport v4.1)

See merge request espressif/esp-idf!20764
2022-10-26 10:55:58 +08:00
Jiang Jiang Jian
af9e3e827f Merge branch 'bugfix/update_ctrl_init_config_macro_v4.1' into 'release/v4.1'
Bugfix/update ctrl init config macro (v4.1)

See merge request espressif/esp-idf!20715
2022-10-25 17:41:28 +08:00
zhangyanjiao
a2997a92de esp_wifi: build wifi lib with -Os optimization 2022-10-25 17:01:19 +08:00
zhiweijian
901828c1d8 Fixed ESP32 BLE assert(32 0) 2022-10-25 11:54:00 +08:00
zwj
5ab210b986 allow bluedroid host to report adv_ind separately 2022-10-25 11:53:49 +08:00
Island
db6821665b Merge branch 'bugfix/remove_get_modle_and_get_comp_api_forv4.1' into 'release/v4.1'
ble_mesh:example:change the method of get model(for v4.1)

See merge request espressif/esp-idf!20396
2022-10-24 19:43:13 +08:00
Jiang Jiang Jian
7d9b0b456c Merge branch 'bugfix/fix_legacy_pair_not_send_link_key_host_v4.1' into 'release/v4.1'
component_bt: fix legacy pair controller does not send the link key to the host (v4.1)

See merge request espressif/esp-idf!19324
2022-10-24 13:58:31 +08:00
Jiang Jiang Jian
5fbc8774b6 Merge branch 'bugfix/esp_spp_write_len_0_v4.1' into 'release/v4.1'
bt: Fixed esp_spp_write() crash when len is 0 (v4.1)

See merge request espressif/esp-idf!20709
2022-10-24 12:31:22 +08:00
xiongweichao
08282760be fix legacy pair controller does not send the link key to the host
Closes https://github.com/espressif/esp-idf/issues/5850
2022-10-24 04:29:36 +00:00
Jiang Jiang Jian
51359eb270 Merge branch 'bugfix/fix_some_wifi_bugs_1019_v4.1' into 'release/v4.1'
esp_wifi: fix some wifi bugs(Backport v4.1)

See merge request espressif/esp-idf!20685
2022-10-24 12:25:36 +08:00
Fu Hanxi
552853a8dd Merge branch 'ci/force_based_on_commit_v4.1' into 'release/v4.1'
ci: support one pipeline must based on commmits (v4.1)

See merge request espressif/esp-idf!17925
2022-10-24 08:57:13 +08:00
muhaidong
20294ff1f0 esp_wifi: fix some wifi bugs
1. fix pairwise cipher tkip pmf compability issue
2. compute packet length use lldesc length instead rx_ctl sig_len for sniffer
3. refactor WiFi ioctl function
2022-10-21 17:48:22 +08:00
tgotic
f738750ae6 [bt] fix if allocation fails
If osi_malloc fails for work_queues or osi_work_queue_create fails, osi_work_queue_delete in _err may release unallocated memory.
2022-10-21 14:59:04 +08:00
Jin Cheng
3f27363753 Corrects header names in string from "bt.h" to "esp_bt.h". 2022-10-21 13:15:44 +08:00
xiongweichao
65d3c54c19 bt: Fixed esp_spp_write() crash when len is 0
Closes https://github.com/espressif/esp-idf/issues/9977
2022-10-21 11:33:37 +08:00
Jiang Jiang Jian
0736faff89 Merge branch 'bugfix/fix_sta_scan_when_already_connected_v4.1' into 'release/v4.1'
esp-wifi: Restores station status to connected when no other AP is found for roam

See merge request espressif/esp-idf!20391
2022-10-21 10:46:35 +08:00
Fu Hanxi
514a6f8589 ci: support one pipeline must based on commmits 2022-10-20 12:46:03 +00:00
Jiang Jiang Jian
bbfca2c729 Merge branch 'bugfix/revert_commit_da44fc9c_v4.1' into 'release/v4.1'
Revert "fixed the issue iOS devices cannot initiate connection" (v4.1)

See merge request espressif/esp-idf!20669
2022-10-20 19:19:04 +08:00
Island
e51646aff0 Merge branch 'feature/Add_IVI_recovery_option_v4.1' into 'release/v4.1'
ble_mesh: stack: Add IV index recovery option when device missed the whole IV update(v4.1)

See merge request espressif/esp-idf!20645
2022-10-20 16:43:03 +08:00
Island
3ab621c0a3 Merge branch 'bugfix/fix_fast_interval_prov_adv_v4.1' into 'release/v4.1'
ble_mesh: stack: Fix send fast interval prov_adv failed(v4.1)

See merge request espressif/esp-idf!20636
2022-10-20 16:42:11 +08:00
Michael (XIAO Xufeng)
29b807713b Merge branch 'feat/epi_flash_api_iram_save_4.1' into 'release/v4.1'
spi_flash: partially move API functions out of IRAM (v4.1)

See merge request espressif/esp-idf!18477
2022-10-19 03:32:10 +08:00
Jin Cheng
87ca734e48 Revert "fixed the issue iOS devices cannot initiate connection"
This reverts commit da44fc9cbe.
2022-10-18 19:46:19 +08:00
Michael (XIAO Xufeng)
3f09c2abc9 bootloader: support unlock MXIC flash chips 2022-10-17 19:15:25 +08:00
Cao Sen Miao
dda13f88ea spi_flash: move the unlock patch to bootloader and add support for GD 2022-10-17 19:15:25 +08:00
Michael (XIAO Xufeng)
fa18296c32 spi_flash: fix the corruption of ROM after calling bootloader_execute_flash_command
The user register, especially dummy related ones, needs to be restored, otherwise the ROM function will not work.

Introduced in dd40123129.
2022-10-17 19:15:25 +08:00
Michael (XIAO Xufeng)
bab633cf9e bootloader: add xmc spi_flash startup flow to improve reliability 2022-10-17 19:15:25 +08:00
Michael (XIAO Xufeng)
eba6f019ef bootloader: create public bootloader_flash.h header
Move non-public functions into bootloader_flash_priv.h header
2022-10-17 19:15:25 +08:00
Michael (XIAO Xufeng)
d2f9113d14 bootloader: fix the WRSR format for ISSI flash chips
1. The 2nd bootloader always call `rom_spiflash_unlock()`, but never help to clear the WEL bit when exit. This may cause system unstability.

   This commit helps to clear WEL when flash configuration is done.

   **RISK:** When the app starts, it didn't have to clear the WEL before it actually write/erase. But now the very first write/erase operation should be done after a WEL clear. Though the risk is little (all the following write/erase also need to clear the WEL), we still have to test this carefully, especially for those functions used by the OTA.

2. The `rom_spiflash_unlock()` function in the patch of ESP32 may (1) trigger the QPI, (2) clear the QE or (3) fail to unlock the ISSI chips.

   Status register bitmap of ISSI chip and GD chip:

| SR | ISSI | GD25LQ32C |
| -- | ---- | --------- |
| 0  | WIP  | WIP       |
| 1  | WEL  | WEL       |
| 2  | BP0  | BP0       |
| 3  | BP1  | BP1       |
| 4  | BP2  | BP2       |
| 5  | BP3  | BP3       |
| 6  | QE   | BP4       |
| 7  | SRWD | SRP0      |
| 8  |      | SRP1      |
| 9  |      | QE        |
| 10 |      | SUS2      |
| 11 |      | LB1       |
| 12 |      | LB2       |
| 13 |      | LB3       |
| 14 |      | CMP       |
| 15 |      | SUS1      |

   QE bit of other chips are at the bit 9 of the status register (i.e. bit 1 of SR2), which should be read by RDSR2 command.

   However, the RDSR2 (35H, Read Status 2) command for chip of other vendors happens to be the QIOEN (Enter QPI mode) command of ISSI chips. When the `rom_spiflash_unlock()` function trys to read SR2, it may trigger the QPI of ISSI chips.

   Moreover, when `rom_spiflash_unlock()` try to clear the BP4 bit in the status register, QE (bit 6) of ISSI chip may be cleared by accident. Or if the ISSI chip doesn't accept WRSR command with argument of two bytes (since it only have status register of one byte), it may fail to clear the other protect bits (BP0~BP3) as expected.

   This commit makes the `rom_spiflash_unlock()` check whether the vendor is issi. if so, `rom_spiflash_unlock()` only send RDSR to read the status register, send WRSR with only 1 byte argument, and also avoid clearing the QE bit (bit 6).

3. `rom_spiflash_unlock()` always send WRSR command to clear protection bits even when there is no protection bit active. And the execution of clearing status registers, which takes about 700us, will also happen even when there's no bits cleared.

   This commit skips the clearing of status register if there is no protection bits active.

Also move the execute_flash_command to be a bootloader API; move
implementation of spi_flash_wrap_set to the bootloader
2022-10-17 19:15:25 +08:00
Michael (XIAO Xufeng)
740b961bb1 test_spiffs: increase test case stack size 2022-10-17 19:15:24 +08:00
Michael (XIAO Xufeng)
61989e0fbb spi_flash: partially move API functions out of IRAM 2022-10-17 19:15:24 +08:00
wangjialiang
eab26282ce ble_mesh: stack: Add IV index recovery option when device missed the whole IV update 2022-10-17 16:55:46 +08:00
wangjialiang
11bd23d67e ble_mesh: stack: Fix send fast interval prov_adv failed when PB-ADV and PB-GATT enable simultaneously 2022-10-17 16:41:12 +08:00
Roland Dobai
56dff0beae Merge branch 'fix/virtualenv_dir_v4.1' into 'release/v4.1'
Tools: Keep making virtual environments with python in the bin directory (v4.1)

See merge request espressif/esp-idf!20622
2022-10-17 01:04:54 +08:00
Roland Dobai
e4d57fa1fa Tools: Keep making virtual environments with python in the bin directory
On Ubuntu 22.04 virtualenv with the latest setuptools produces
environments with Python in "local/bin" instead of "bin" (see
https://github.com/pypa/virtualenv/issues/2350).

Closes https://github.com/espressif/esp-idf/issues/9931
2022-10-14 15:38:24 +02:00
Michael (XIAO Xufeng)
c5dfaec6b3 Merge branch 'feat/essl_extra_component_v4.1' into 'release/v4.1'
sdio/example: fixed the essl return value issue (v4.1)

See merge request espressif/esp-idf!20348
2022-10-14 16:19:41 +08:00
morris
5bf01cedf6 Merge branch 'bugfix/fix_rtc8m_calibration_fail_after_cpu_core_reset_v4.1' into 'release/v4.1'
rtc_clk: Fix rtc8m calibration failure after cpu/core reset (backport v4.1)

See merge request espressif/esp-idf!20556
2022-10-14 14:07:20 +08:00
Song Ruo Jing
ed3a570e20 rtc_clk: Fix rtc8m calibration failure after cpu/core reset
Explicitly guarantee 8md256 clk is enabled before calibration
2022-10-12 12:46:41 +08:00
Wang Meng Yang
40cc53b0e0 Merge branch 'bugfix/a2dp_can_not_connect_after_ble_connected_v4.1' into 'release/v4.1'
fixed the issue iOS devices cannot initiate connection (v4.1)

See merge request espressif/esp-idf!20407
2022-10-10 17:25:46 +08:00
morris
63ac426644 Merge branch 'feature/modbus_master_fix_check_uart_set_pin_v41' into 'release/v4.1'
example/modbus_master: fix the assert for uart_set_pin (backport v4.1)

See merge request espressif/esp-idf!17627
2022-10-08 19:08:14 +08:00
Alex Lisitsyn
b17494c223 example/modbus_master: fix the assert for uart_set_pin (backport v4.1) 2022-10-08 19:08:14 +08:00
Wang Meng Yang
63cdcf3f57 Merge branch 'bugfix/fix_ble_get_cur_pkt_num_crash_sometimes_when_bluetooth_is_disconnecting_v4.1' into 'release/v4.1'
Fixed calling esp_ble_get_cur_sendable_packets_num() sometimes crashes when bluetooth is disconnecting(backport v4.1)

See merge request espressif/esp-idf!20380
2022-10-08 16:35:55 +08:00
David Čermák
3f3cd01ef6 Merge branch 'bugfix/fix_mdns_example_v4.1' into 'release/v4.1'
mDNS: Improve example test stability (v4.1)

See merge request espressif/esp-idf!20215
2022-09-30 21:00:57 +08:00
Suren Gabrielyan
4a432e03b1 mDNS: Improved example test stability 2022-09-28 18:23:15 +04:00
Jin Cheng
11bd663e9e fixed the issue iOS devices cannot initiate connection
to ESP32 while there is a BLE connection to this ESP32

Closes https://github.com/espressif/esp-idf/issues/6557
2022-09-28 16:16:45 +08:00
Yuan Hong Hui
4f424a6722 ble_mesh:example:change the method of get model 2022-09-28 15:37:11 +08:00
jgujarathi
45ce744c54 esp-wifi: Restores station status to connected when no other AP is found for roam 2022-09-28 12:26:48 +05:30
cjin
b70ffe519f fix on data len change cmd malfunction 2022-09-27 21:53:50 +08:00
cjin
284b77e6a5 fix err using rpa for confirmation calculation 2022-09-27 21:53:36 +08:00
zwj
615dcb4115 fix calling esp_ble_get_cur_sendable_packets_num() sometimes crashes when bluetooth is disconnecting 2022-09-27 21:53:23 +08:00
Michael (XIAO Xufeng)
43ec862944 sdio/example: fixed the essl return type issue 2022-09-26 19:43:03 +08:00
Island
85c878acc5 Merge branch 'bugfix/relay_friend_cred_message_v4.1' into 'release/v4.1'
ble_mesh: stack: Fix friend relay lpn message when relay disable(v4.1)

See merge request espressif/esp-idf!20207
2022-09-22 14:17:36 +08:00
Jiang Jiang Jian
7b0515c3ac Merge branch 'ci/optimize_ats_ci_flow_v4.1' into 'release/v4.1'
CI: optimize ATS ci flow (v4.1)

See merge request espressif/esp-idf!20181
2022-09-22 14:12:29 +08:00
Mahavir Jain
017852bc2d Merge branch 'bugfix/freertos_event_group_unblock_race_condition_v4.1' into 'release/v4.1'
FreeRTOS: Fix event group task list race condition (v4.1)

See merge request espressif/esp-idf!19106
2022-09-21 13:16:24 +08:00
wangjialiang
d2fcb15610 ble_mesh: stack: Fix friend relay lpn message when relay disable. 2022-09-21 03:37:41 +00:00
Island
26c7df9857 Merge branch 'bugfix/lpn_not_recv_message_to_all_node_4.1' into 'release/v4.1'
ble_mesh: stack: Add option for lpn auto sub all-nodes(v4.1)

See merge request espressif/esp-idf!20261
2022-09-21 11:31:17 +08:00
wangjialiang
ef45e12a40 ble_mesh: stack: Add option for lpn auto sub all-nodes. 2022-09-20 20:33:13 +08:00
Darian Leung
51eb9bea03 freertos: Fix flakey event group unit test
The "FreeRTOS Event Groups" main task will only wait a single tick for the created
tasks to set their response bits. This short delay may not be sufficent if the tick
frequency is high.

This commit updates the test so that

- the main task waits indefinitely for all the response bits to be set.
- created tasks are cleaned up by the main task
2022-09-19 15:14:24 +08:00
Darian Leung
6358f93a51 freertos: Fix event group task list race condition
FreeRTOS synchronization primitives (e.g., queues, eventgroups) use various event lists (i.e., task lists) to track what
tasks are blocked on a current primitive. Usually these event lists are accessed via one of the event lists functions
(such as vTask[PlaceOn|RemoveFrom]UnorderedEventList()), which in turn ensure that the global task list spinlock
(xTaskQueueMutex) is taken when accessing these lists.

However, some functions in event_groups.c manually traverse their event lists. Thus if a tick interrupt occurs on
another core during traversal and that tick interrupt unblocks a task on the event list being traversed, the event list
will be corrupted.

This commit modifies the following event_groups.c functions so that they take the global task list lock before
traversing their event list.

- xEventGroupSetBits()
- vEventGroupDelete()
2022-09-19 15:14:24 +08:00
Island
0bb4b995be Merge branch 'bugfix/adapt_new_btc_v4.1' into 'release/v4.1'
ble_mesh: stack: Corrected parameter size when the btc_transfer_context is used (v4.1)

See merge request espressif/esp-idf!20169
2022-09-18 14:36:02 +08:00
Chen Yudong
5ad0ccea46 CI: optimize ATS ci flow 2022-09-16 16:37:15 +08:00
wangjialiang
6160cedbdc ble_mesh: stack: added the judgment that the parameter is NULL but the parameter len is not zero to avoid btc_transfer_context failed 2022-09-15 17:03:22 +08:00
Jiang Jiang Jian
b4878a0f09 Merge branch 'bugfix/stack_init_changes_v4.1' into 'release/v4.1'
Nimble: Check stack initialization status before executing stack command (v4.1)

See merge request espressif/esp-idf!19946
2022-09-14 16:13:32 +08:00
Jiang Jiang Jian
61bd396b39 Merge branch 'feature/sink_support_mono_v4.1' into 'release/v4.1'
bt: Fixed sink not being able to output mono audio because it can only decode dual channel audio data(v4.1)

See merge request espressif/esp-idf!20081
2022-09-14 16:12:39 +08:00
xiongweichao
c2411837d1 bt:Fixed sink not being able to output mono audio because it can only decode dual channel audio data 2022-09-09 17:49:00 +08:00
Yuan Hong Hui
3c815fe6d3 ble_mesh:example:fix memory leak 2022-09-08 16:37:40 +08:00
Wang Meng Yang
771e1cb020 Merge branch 'bugfix/remove_bt_dft_init_semicolon_v41' into 'release/v4.1'
bt: Remove trailing semicolon from bt dft initializer(v4.1)

See merge request espressif/esp-idf!19918
2022-09-07 12:00:48 +08:00
Wang Meng Yang
0441c575a8 Merge branch 'bugfix/deadlock_after_call_esp_bluedroid_disable_v4.1' into 'release/v4.1'
bt:Fixed deadlock due to wrong parameter when calling btc_transfer_context() after calling esp_bluedroid_disable()(v4.1)

See merge request espressif/esp-idf!19955
2022-09-07 11:56:12 +08:00
Rahul Tank
0c7f0058f2 Nimble: Check stack initialization status before executing stack command 2022-09-06 10:15:42 +05:30
xiongweichao
2df7bcbe0f Fixed deadlock due to wrong parameter when calling btc_transfer_context() after calling esp_bluedroid_disable()
Closes https://github.com/espressif/esp-idf/issues/9672
2022-09-05 14:31:10 +08:00
Pedro
62f89a3303 Remove trailing semicolon from bt dft initializer
Similar to espressif#6554
2022-09-02 11:16:52 +08:00
Island
94dddbd985 Merge branch 'bugfix/vendor_model_send_message_no_memory_forv4.1' into 'release/v4.1'
ble_mesh:example: free the memory of malloc (v4.1)

See merge request espressif/esp-idf!19188
2022-08-25 14:14:25 +08:00
Wang Meng Yang
7332be209c Merge branch 'bugfix/hfp_examples_not_work_with_default_sdkconfig_v4.1' into 'release/v4.1'
bugfix/set default number of sco connection to 1 (v4.1)

See merge request espressif/esp-idf!19588
2022-08-25 10:47:10 +08:00
Wang Meng Yang
465bd86073 Merge branch 'contrib/github_pr_9529_mr_v4.1' into 'release/v4.1'
bt:No need to use local copy of btc_msg_t in btc_transfer_context, create it on heap and pass to osi_thread_post()(v4.1)

See merge request espressif/esp-idf!19695
2022-08-25 10:45:46 +08:00
Omar Chebib
ffd60dd1ef (Xtensa) Build: add .xt.prop and .xt.lit to the compiled ELF file
Adding prop and lit sections to the ELF will let the debugger and the disassembler
have more info about data bytes present in the middle of the Xtensa
instructions, usually used for padding.
2022-08-24 16:31:07 +08:00
Island
bd549729d2 Merge branch 'bugfix/ble_mesh_console_support_nimble_host_for_v4.1' into 'release/v4.1'
ble_mesh:ble mesh console support nimble(v4.1)

See merge request espressif/esp-idf!19607
2022-08-24 10:27:57 +08:00
Fu Hanxi
d602bf0416 Merge branch 'feat/make_property_idf_component_manager_root_level_v4.1' into 'release/v4.1'
Feat/make property idf component manager root level (v4.1)

See merge request espressif/esp-idf!19085
2022-08-23 13:16:29 +08:00
tgotic
ccb8b03ca5 update code to use osi_free() 2022-08-22 16:10:25 +08:00
tgotic
71c8b2ba80 local copy of btc_msg_t
No need to use local copy of btc_msg_t in btc_transfer_context, create it on heap and pass to osi_thread_post().
2022-08-22 16:10:25 +08:00
Yuan Hong Hui
614950cf4a ble_mesh:ble mesh console support nimble 2022-08-17 14:42:52 +08:00
jincheng
190b864206 Fixed the failure of 'connect audio' operation in HFP examples with default SDK configuration
Due to the lack of synchronized connections, the hf_client can not create audio_connection to
hf_ag. Set default number of synchronized connection to 1.

Closes https://github.com/espressif/esp-idf/issues/9537
2022-08-17 10:15:54 +08:00
Roland Dobai
7c0f5e658e Merge branch 'feature/oocd_ver_upgrade_v4.1' into 'release/v4.1'
tools: Updates OpenOCD version to 'v0.11.0-esp32-20220706' (v4.1)

See merge request espressif/esp-idf!19493
2022-08-17 01:57:40 +08:00
Jiang Jiang Jian
e072b09196 Merge branch 'bugfix/fix_bluedroid_host_memory_overflow_v4.1' into 'release/v4.1'
Fixed bluedroid host memory overflow for v4.1

See merge request espressif/esp-idf!18906
2022-08-16 17:48:11 +08:00
Alexey Gerenkov
af87ee2888 test/examples: Fixes expected GDB message upon thread hit breakpoint 2022-08-16 11:33:20 +03:00
Alexey Gerenkov
0f39eaa4ad tools: Updates OpenOCD version to 'v0.11.0-esp32-20220706' 2022-08-12 14:14:53 +03:00
Island
0af44e73a4 Merge branch 'bugfix/mesh_bqb_test_issues_v4.1' into 'release/v4.1'
ble_mesh: stack: Fix mesh v1.0 BQB test issues(v4.1)

See merge request espressif/esp-idf!19505
2022-08-11 20:09:45 +08:00
wangjialiang
e446ee2ea2 ble_mesh: stack: Fix kr from non-primary subnet shouldn't ignore
For case MESH/NODE/KR/BV-02-C
2022-08-11 14:19:20 +08:00
wangjialiang
6b3c88873e ble_mesh: stack: Add a check if the appkey is bound to the model.
For case MESH/NODE/CFG/MP/BI-03-C
2022-08-11 14:19:15 +08:00
wangjialiang
a53ebdf8a3 ble_mesh: stack: the count_log field should be set to 0 when HBS is sent.
For MESH/NODE/CFG/HBS/BV-02-C
2022-08-11 14:19:09 +08:00
wangjialiang
8a1325dab8 ble_mesh: stack: The Heartbeat Publication Period Log value can set to 0x11, range: [0, 0x11] 2022-08-11 14:19:04 +08:00
wangjialiang
d3f6770665 ble_mesh: stack: The value of expect_ack_for will be rewrited after send_pub_key().
For case MESH/PVNR/PROV/BV-04-C
2022-08-11 14:18:58 +08:00
wangjialiang
0a39d9e154 ble_mesh: stack: Fix ignore connectable PB-ADV PDU containing a Link Open message.
For case MESH/NODE/PBADV/BI-04-C
2022-08-11 14:18:54 +08:00
wangjialiang
9f073021da ble_mesh: stack: Fix PB-GATT not check invalid link flag
For case MESH/NODE/PROV/BI-03-C
2022-08-11 14:18:48 +08:00
wangjialiang
96ecfa677e ble_mesh: stack: Fix invalid provisioning pdu type check
For case MESH/NODE/PROV/BI-15-C
2022-08-11 14:18:43 +08:00
Island
b91556fbcf Merge branch 'bugfix/friend_and_lpn_issues_v4.1' into 'release/v4.1'
ble_mesh: stack: Fix friend and lpn issues(v4.1)

See merge request espressif/esp-idf!19478
2022-08-10 13:50:24 +08:00
wangjialiang
3fa1f36fbc ble_mesh: stack: Fix add continuously secure update into friend queue.
For MESH/NODE/FRND/FN/BV-20-C
2022-08-09 21:51:39 +08:00
wangjialiang
d024b4aafa ble_mesh: stack: Fix friend relay lpn message when relay feature is disable
For MESH/NODE/FRND/FN/BV-23-C
2022-08-09 21:51:31 +08:00
Island
5cd0893407 Merge branch 'bugfix/restore_missing_ble_mesh_videos_v4.1' into 'release/v4.1'
ble_mesh: doc: Restore missing ble mesh videos(v4.1)

See merge request espressif/esp-idf!19406
2022-08-08 17:12:13 +08:00
wangjialiang
280f577a64 ble_mesh: doc: Restore missing ble mesh videos 2022-08-05 13:59:14 +08:00
Jiang Jiang Jian
377a5d78db Merge branch 'bugfix/espnow_recv_unencrypted_packets_issue_v4.1' into 'release/v4.1'
esp_wifi: fix espnow recv unencrypted packets issue (backport v4.1)

See merge request espressif/esp-idf!19386
2022-08-05 12:11:07 +08:00
Jiang Jiang Jian
da82c4f804 Merge branch 'bugfix/wlan_fixes_backports_v4.1' into 'release/v4.1'
esp_wifi: Fix some wlan issues(backport v4.1)

See merge request espressif/esp-idf!19363
2022-08-04 21:45:17 +08:00
zhangyanjiao
9c6d54b9f6 esp_wifi: fix espnow recv unencrypted packets issue 2022-08-04 15:10:22 +08:00
Jiang Jiang Jian
fcd4b930ee Merge branch 'bugfix/backport_wifi_bugs_to_4.1_0803' into 'release/v4.1'
esp wifi:bugfix for backport wifi bugs to 4.1

See merge request espressif/esp-idf!19360
2022-08-04 10:55:49 +08:00
Kapil Gupta
941d79baa2 wpa_supplicant: Unicast key renew in TKIP mic failure
Currently we always request group key renew for during
TKIP mic failure. Add support for unicast/multicast
key renew as per packet.
2022-08-03 14:52:43 +05:30
Kapil Gupta
78f88c1e01 esp_wifi: Changes to not use pmkid caching when SSID is changed 2022-08-03 14:52:13 +05:30
Kapil Gupta
a5e418b4b6 wpa_supplicant: Fix issues reported by coverity 2022-08-03 14:51:53 +05:30
xueyunfei
f2bee03f08 bugfix for backport wifi bugs to 4.1
- Bugfix for close sniffer mode when wifi stop

    - Bugfix for qos null update ba ssn

    - Fix deep sleep can't reconnect to ap when pmf enable.

    - Fix some ap will ignore auth when rx deauth for a while.
2022-08-03 15:05:53 +08:00
Jiang Jiang Jian
3cf24bd5d6 Merge branch 'bugfix/sta_pmf_mixed_mode_coexist' into 'release/v4.1'
esp_wifi: Fix sta connection issue with pmf AP when in mixed mode(v4.1)

See merge request espressif/esp-idf!17522
2022-08-03 11:22:00 +08:00
Jiang Jiang Jian
581880db04 Merge branch 'bugfix/fix_write_to_null_pointer_if_malloc_failed_issue_v4.1' into 'release/v4.1'
fix write to null pointer if malloc failed(Backport v4.1)

See merge request espressif/esp-idf!19349
2022-08-03 11:00:33 +08:00
Jiang Jiang Jian
f1d5b56d34 Merge branch 'bugfix/set_ipv6_dns_error_v4.1' into 'release/v4.1'
lw ip: Fixed that ipv6 dns cannot work (v4.1)

See merge request espressif/esp-idf!19065
2022-08-02 20:21:52 +08:00
Oleg Savchenko
53351fc7f4 fix write to null pointer if malloc failed 2022-08-02 20:20:14 +08:00
Jiang Jiang Jian
1a2ebc538c Merge branch 'bugfix/memory_debug_not_work_v4.1' into 'release/v4.1'
bugfix/fix the dependency error of macro for memory debug (v4.1)

See merge request espressif/esp-idf!19235
2022-08-02 15:49:55 +08:00
Jiang Jiang Jian
d9206e87bc Merge branch 'bugfix/put_sempher_and_queue_used_in_isr_into_DRAM_v4.1' into 'release/v4.1'
Make sure semphr/queue used in interrupt is in DRAM

See merge request espressif/esp-idf!18991
2022-08-02 11:32:25 +08:00
Fu Hanxi
62408a6872 ci: pip install idf-component-manager inside CI 2022-08-01 10:52:52 +08:00
Sergei Silnov
f76ce89c96 docs: Add IDF_COMPONENT_MANAGER build property 2022-08-01 10:52:52 +08:00
Sergei Silnov
acded76b4e docs: Enable the component manager by default in CMake 2022-08-01 10:52:52 +08:00
Fu Hanxi
dc28a9b33f build&config: lift property IDF_COMPONENT_MANAGER to root level 2022-08-01 10:52:52 +08:00
Yuan Hong Hui
16eabd6b18 ble_mesh:the memory requested by malloc has not benn released 2022-07-28 11:37:31 +08:00
baohongde
07397b566b components/coex: Make sure sempher and queue used in isr is in DRAM
Closes https://github.com/espressif/esp-idf/issues/9032
Closes https://github.com/espressif/esp-idf/issues/8928
Closes https://github.com/espressif/esp-idf/issues/9129
2022-07-25 13:51:25 +08:00
baohongde
d290e77657 components/bt: Make sure sempher and queue used in isr is in DRAM 2022-07-25 11:48:43 +08:00
Jiang Jiang Jian
cbb25917c9 Merge branch 'bugfix/schm_process_in_active_crash_v4.1' into 'release/v4.1'
Coex: fixed crash when calculating end transfer time(v4.1)

See merge request espressif/esp-idf!19193
2022-07-22 21:24:08 +08:00
jincheng
41775cbdf5 fix the dependency error of macro for memory debug 2022-07-22 16:23:55 +08:00
xiongweichao
d77f7687f5 coex: fixed crash when calculating end transfer time 2022-07-22 16:18:24 +08:00
Chen Wu
ceb6a812b4 lwip: Fixed that ipv6 dns cannot work 2022-07-15 16:21:17 +08:00
zhiweijian@espressif.com
c6e504da19 Fixed bluedroid host memory overflow 2022-07-15 14:28:51 +08:00
David Čermák
cf3b9c0ef4 Merge branch 'bugfix/eth_icmp_dest_localhost_v4.1' into 'release/v4.1'
ci/esp_eth: Make the ICMP destination localhost (v4.1)

See merge request espressif/esp-idf!18754
2022-07-14 20:11:05 +08:00
Island
f5fc4ab3fe Merge branch 'bugfix/print_ready_after_init_transaction_forv4.1' into 'release/v4.1'
ble_mesh:change the location of print ready(v4.1)

See merge request espressif/esp-idf!19031
2022-07-14 17:28:31 +08:00
morris
59a352b49c ci/esp_eth: Make the ICMP destination localhost
Original commit: 9fa06719fa
global: enable build uinit test for esp32-s3
2022-07-14 04:46:45 +00:00
Yuan Hong Hui
a36a41ea3f ble_mesh:change the location of print ready 2022-07-13 18:20:56 +08:00
Jiang Jiang Jian
2e0bc4a3ef Merge branch 'bugfix/idle_task_skipped_light_sleep_backport_v4.1' into 'release/v4.1'
pm_impl: fix neither enter light sleep nor enter waiti state in idle task(backport v4.1)

See merge request espressif/esp-idf!17850
2022-07-13 14:08:12 +08:00
Jiang Jiang Jian
9641d40c2f Merge branch 'bugfix/update_gpio_intr_enable_note_v4.1' into 'release/v4.1'
Update the note of the gpio_intr_enable function(v4.1)

See merge request espressif/esp-idf!18546
2022-07-13 14:07:51 +08:00
Jiang Jiang Jian
9e11b98071 Merge branch 'bugfix/fix_esp32_ke_mem_c_assert_v4.1' into 'release/v4.1'
Fixed ESP32 BLE ke_mem.c assert for v4.1

See merge request espressif/esp-idf!19005
2022-07-13 14:07:03 +08:00
zwj
9d93420d6a Fixed ESP32 BLE ke_mem.c assert 2022-07-13 03:08:18 +00:00
xiongweichao
b860ca24f9 Update the note of the gpio_intr_enable function 2022-07-13 03:07:11 +00:00
gaoxiaojie
2c621e538b pm_impl: fix neither enter light sleep nor enter waiti state in idle task 2022-07-13 03:06:37 +00:00
Island
207ccea3c8 Merge branch 'bugfix/no_proxy_beacon_send_after_deinit_v4.1' into 'release/v4.1'
ble_mesh: stack: Bugfix for proxy beacon send after reinit mesh(v4.1)

See merge request espressif/esp-idf!18794
2022-07-12 17:36:52 +08:00
Jiang Jiang Jian
a84d7296b6 Merge branch 'bugfix/driver_uart_fix_tx_bytes_rts_assert_failure_v41' into 'release/v4.1'
driver: fixes context switch while sending cause rts reset before send (backport v4.1)

See merge request espressif/esp-idf!17943
2022-07-11 16:46:51 +08:00
Jiang Jiang Jian
e5e7cb4654 Merge branch 'bugfix/not_use_malloc_in_bluedroid_v4.1' into 'release/v4.1'
component/bt: use osi_malloc instead of malloc in bluedroid

See merge request espressif/esp-idf!18846
2022-07-11 16:32:14 +08:00
Wang Meng Yang
85c5f17e0c Merge branch 'bugfix/fix_osi_men_dbg_xxx_not_defined_when_enable_mem_dbg_v4.1' into 'release/v4.1'
bugfix/fix the issue of functions not defined when enable memory debug (v4.1)

See merge request espressif/esp-idf!18818
2022-07-11 15:38:06 +08:00
Jiang Jiang Jian
3d88183b23 Merge branch 'bugfix/do_not_allow_unauthenticated_encrypted_key_data_release_v4.1' into 'release/v4.1'
esp_wifi: Ignore unauthenticated encrypted EAPOL-Key data and fix

See merge request espressif/esp-idf!18319
2022-07-10 15:59:38 +08:00
Jiang Jiang Jian
16d9aa4ed0 Merge branch 'bugfix/eap_method_selection_release_v4.1' into 'release/v4.1'
esp_wifi: Fix the negotiation of method with eap server.

See merge request espressif/esp-idf!18510
2022-07-10 15:55:44 +08:00
Jiang Jiang Jian
06ef10f38a Merge branch 'bugfix/a2dp_source_not_stop_discovery_correctly_v4.1' into 'release/v4.1'
bugfix/avoid wrongly restart discovery in a2dp_source (v4.1)

See merge request espressif/esp-idf!18713
2022-07-10 15:52:05 +08:00
Jiang Jiang Jian
2889ba8ff8 Merge branch 'bugfix/restore_edr_en_and_protect_for_vhci_env_v4.1' into 'release/v4.1'
bugfix/restore edr_en and add protect for vhci_env (v4.1)

See merge request espressif/esp-idf!18814
2022-07-10 15:49:03 +08:00
Jiang Jiang Jian
70c6f0b581 Merge branch 'bugfix/lower_a2dp_appT_prio_v4.1' into 'release/v4.1'
bugfix/lower the priority of application task of a2dp demo (v4.1)

See merge request espressif/esp-idf!18823
2022-07-10 15:47:43 +08:00
Jiang Jiang Jian
775162afad Merge branch 'bugfix/resolve_redefinition_in_spp_and_hid_v4.1' into 'release/v4.1'
bugfix/resolve redefinition in btc_spp.h and btc_hd.h/btc_hh.h (v4.1)

See merge request espressif/esp-idf!18827
2022-07-10 15:46:41 +08:00
Jiang Jiang Jian
e324df9a88 Merge branch 'bugfix/xtensa_sol_frame_saves_extra_registers_v4.1' into 'release/v4.1'
freertos: Xtensa solicited stack frame should save threadptr register (v4.1)

See merge request espressif/esp-idf!18856
2022-07-10 15:44:56 +08:00
jincheng
528a65a4a9 resolve redefinition in btc_spp.h and btc_hd.h/btc_hh.h
Closes https://github.com/espressif/esp-idf/issues/9199
2022-07-08 14:25:24 +08:00
jincheng
9322cd93b8 avoid wrongly restart discovery 2022-07-08 14:19:07 +08:00
jincheng
42695fb59c restore edr_en which wrongly cleared by rsw
add critical protection for vhci_env_p->vhci_intr_st
ignore max_page when handle remote features
2022-07-08 14:14:19 +08:00
jincheng
cdb5e4345c lower the priority of application task of a2dp demo 2022-07-08 14:04:17 +08:00
jincheng
52f1688e6b fix the issue of functions not defined when enable memory debug 2022-07-08 10:59:49 +08:00
Darian Leung
68c881b457 freertos: Xtensa FreeRTOS saves threadptr in solicited stack frame
The Xtensa FreeRTOS port does not save the threadptr register when
doing a voluntary yield. This can result in a crash when multiple
tasks used the threadptr register and call "taskYIELD()".

This commit adds the threadptr register to the solicited stack frame.
2022-07-04 18:25:30 +08:00
baohongde
0f2bf37b23 component/bt: use osi_malloc instead of malloc in bluedroid 2022-07-04 16:35:23 +08:00
wangjialiang
ba6bf196a3 ble_mesh: stack: Bugfix for proxy beacon send after reinit mesh 2022-07-01 11:57:48 +08:00
Island
9185191f74 Merge branch 'feature/add_filter_seq_auth_config_v4.1' into 'release/v4.1'
ble_mesh: stack: Add filter old seq_auth packet menuconfig(v4.1)

See merge request espressif/esp-idf!18652
2022-06-24 11:15:35 +08:00
wangjialiang
b5c554b632 ble_mesh: stack: Add filter old seq_auth packet menuconfig 2022-06-23 16:23:48 +08:00
Jiang Jiang Jian
459487b04a Merge branch 'bugfix/avdtp_genreal_reject_format_error_v4.1' into 'release/v4.1'
component_bt: Fix AVDTP general reject format error(v4.1)

See merge request espressif/esp-idf!18559
2022-06-21 20:54:22 +08:00
Jiang Jiang Jian
510565c585 Merge branch 'bugfix/modbus_allow_master_slave_work_simultaneously_v41' into 'release/v4.1'
freemodbus: fix issues when modbus master and slave work simultaneously (backport v4.1)

See merge request espressif/esp-idf!14951
2022-06-19 23:23:24 +08:00
xiongweichao
e59ce80147 Fix AVDTP general reject format error. 2022-06-17 10:32:56 +08:00
Jiang Jiang Jian
d52e52d2e4 Merge branch 'bugfix/pm_enabled_bt_build_fail_v4.1' into 'release/v4.1'
Bluetooth build fail when power management is enabled(v4.1)

See merge request espressif/esp-idf!18384
2022-06-15 11:07:22 +08:00
Hrudaynath Dhabe
092036602c esp_wifi: Ignore unauthenticated encrypted EAPOL-Key data and fix handling of key RSC.
Closes https://github.com/espressif/esp-idf/issues/8401
2022-06-14 18:23:17 +05:30
Hrudaynath Dhabe
ee50721f81 esp_wifi: Fix the negotiation of method with eap server. 2022-06-14 17:49:05 +05:30
aleks
09c3e4080e modbus: add additional timer group options for master 2022-06-13 11:44:46 +00:00
aleks
3f10640b67 freemodbus: fix issues when modbus master and slave work simultaneously 2022-06-13 11:44:46 +00:00
aleks
c02cfc39e5 uart: add separate function to control mode and fill fifo 2022-06-13 11:39:20 +00:00
aleks
5c332a5749 driver: fixes context switch while sending cause rts reset before send
fixes tx bytes w/o ring buffer causes rts reset before send data
put uart_hal_write_txfifo() under critical section
2022-06-13 11:39:20 +00:00
aleks
d83c17deec driver: uart fix the rts line assertion issue 2022-06-13 11:39:20 +00:00
xiongweichao
2873c46122 Bluetooth build fail when power management is enabled 2022-06-06 20:44:13 +08:00
Roland Dobai
5ef3614e5f Merge branch 'bugfix/disable_extensions_idfpy_tests_v4.1' into 'release/v4.1'
Tools: Make idf.py tests independent on extra extensions (v4.1)

See merge request espressif/esp-idf!18285
2022-06-03 19:06:14 +08:00
Sergei Silnov
ad5b18401c Tools: Make idf.py tests independent on extra extensions 2022-06-02 18:02:42 +02:00
Jiang Jiang Jian
2b16127192 Merge branch 'bugfix/add_bda_to_read_rmt_name_param_v4.1' into 'release/v4.1'
Bugfix/add bda to read rmt name param v4.1

See merge request espressif/esp-idf!18283
2022-06-02 11:46:39 +08:00
Jiang Jiang Jian
d8fd1bf24d Merge branch 'feature/docker_build_gh_actions_v4.1' into 'release/v4.1'
ci: move Docker image builds to Github, plus other improvements (v4.1)

See merge request espressif/esp-idf!18290
2022-06-02 11:45:12 +08:00
keymoon
e8ee4c05e6 assign value to uninitialized bt_addr field 2022-05-29 18:01:21 -07:00
keymoon
3c79eccc66 add address field to read_rmt_name_param 2022-05-29 18:01:11 -07:00
Ivan Grokhotkov
0ede5c11b5 ci: build and push Docker images in Github actions
Replaces the previously used Docker Hub autobuild infrastructure.
This allows for more flexible configuration of the build process,
at the expense of some extra maintenance of CI workflow files
required.
2022-05-27 14:11:46 +02:00
Ivan Grokhotkov
2188e3fdca docs: document build arguments of the Docker image 2022-05-27 14:09:34 +02:00
Ivan Grokhotkov
c5db7dd2c7 tools/docker: add IDF_CLONE_SHALLOW and IDF_INSTALL_TARGETS arguments
These two arguments can be used to reduce the size of the Docker
image:

- Setting IDF_CLONE_SHALLOW enables shallow cloning.
- Setting IDF_INSTALL_TARGETS to the comma separated list of targets
  results in toolchains being installed only for these targets.
2022-05-27 14:05:44 +02:00
aditi_lonkar
cceb9e11e7 esp_wifi: Fix sta connection issue with pmf AP when in mixed mode. 2022-05-09 10:34:54 +05:30
Jiang Jiang Jian
1004ff712f Merge branch 'bugfix/return_correct_QOS_values' into 'release/v4.1'
esp_wifi: Fix the QOS value of reply packets to peers.

See merge request espressif/esp-idf!17811
2022-05-07 10:13:09 +08:00
Michael (XIAO Xufeng)
d2debfaddf Merge branch 'bugfix/phy_regi2c_critical_section_v4.1' into 'release/v4.1'
esp_phy: use spinlock to avoid regi2c access conflicts (v4.1)

See merge request espressif/esp-idf!17694
2022-05-06 23:32:24 +08:00
Hrudaynath Dhabe
662bd2f57e esp_wifi: Fix the QOS value of reply packets to peers. 2022-05-06 14:08:44 +05:30
Jiang Jiang Jian
047fcd2c90 Merge branch 'bugfix/ignore_pmf_capable_flag_v4.1' into 'release/v4.1'
Always connect Station in PMF mode if possible (Backport v4.1)

See merge request espressif/esp-idf!17539
2022-05-01 17:30:48 +08:00
Michael (XIAO Xufeng)
a1aa2f13b3 Merge branch 'bugfix/fix_x32k_startup_slow_bug_v4.1' into 'release/v4.1'
bugfix: Fix xtal 32k not oscillate or oscillate too slowly issue for esp32 (v4.1)

See merge request espressif/esp-idf!17592
2022-04-28 17:14:10 +08:00
Jiang Jiang Jian
7e0a023c7e Merge branch 'contrib/github_pr_8779_v4.1' into 'release/v4.1'
esp_wifi: fix clearing default wifi netif procedure(v4.1)

See merge request espressif/esp-idf!17941
2022-04-28 16:17:02 +08:00
Jiang Jiang Jian
b4c119bbdc Merge branch 'bugfix/spp_crash_after_call_spp_deinit_v4.1' into 'release/v4.1'
Component_bt/Fix spp crash after call esp_spp_deinit(v4.1)

See merge request espressif/esp-idf!17936
2022-04-27 18:06:01 +08:00
Krzysztof Lewandowski
4fcce88db9 esp_wifi: fix clearing default wifi netif procedure
Prior to this change "esp_wifi_clear_default_wifi_driver_and_handlers"
will not remove netif pointer from table when both AP and STA interfaces were
created and destroying default wifi interfaces is done in unfortunate
order. As a result there is dangling pointer left and it may cause crash in
later code (i.e. when esp_wifi_stop() is called).
2022-04-27 03:24:34 -04:00
xiongweichao
25fdbddffa Fix spp initialization failure without free mutex 2022-04-27 14:59:46 +08:00
xiongweichao
5bbdbabd75 Fix spp crash after calling esp_spp_deinit 2022-04-27 14:59:37 +08:00
Wang Meng Yang
4c69f1f901 Merge branch 'bugfix/fix_disable_bt_log_ci_fail_v4.1' into 'release/v4.1'
component_bt: Fix CI failure when disable bluetooth debug log(v4.1)

See merge request espressif/esp-idf!17900
2022-04-26 15:01:46 +08:00
xiongweichao
71e403a81e Fix CI failure when disable bluetooth debug log 2022-04-26 11:37:48 +08:00
Island
3cc92c92dc Merge branch 'bugfix/oversized_SegN_as_valid_v4.1' into 'release/v4.1'
ble_mesh: stack: Bugfix for oversized SegN as valid(v4.1)

See merge request espressif/esp-idf!17773
2022-04-25 16:50:31 +08:00
wangjialiang
5aa6fa39ea ble_mesh: stack: Bugfix for oversized SegN as valid 2022-04-25 11:54:37 +08:00
Michael (XIAO Xufeng)
d146c48f76 Merge branch 'bugfix/fix_uart_set_line_inverse_breaking_change_issue_v4.1' into 'release/v4.1'
Bugfix(uart): fix uart_set_line_inverse breaking change issue (v4.1)

See merge request espressif/esp-idf!17595
2022-04-25 10:15:57 +08:00
Michael (XIAO Xufeng)
23c2556ca7 Merge branch 'bugfix/flash_mmap_output_psram_arg_v4.1' into 'release/v4.1'
mmap: fixed the issue mmap cannot be called with pointers to psram (v4.1)

See merge request espressif/esp-idf!17700
2022-04-25 10:14:28 +08:00
Michael (XIAO Xufeng)
21a68c5df7 Merge branch 'bugfix/gpio_example_config_struct_zero_init_v4.1' into 'release/v4.1'
example: fixed the issue that config struct is not properly initialized (v4.1)

See merge request espressif/esp-idf!17590
2022-04-25 10:13:42 +08:00
xiewenxiang
dcf385b356 esp_phy: Add IRAM_ATTR for phy i2c spinlock 2022-04-21 02:58:25 +08:00
Wang Meng Yang
a808f59991 Merge branch 'bugfix/bt_add_some_debug_log_v4.1' into 'release/v4.1'
component_bt: Add some bluetooth debug log(v4.1)

See merge request espressif/esp-idf!17619
2022-04-19 20:12:25 +08:00
Wang Meng Yang
5f95be7703 Merge branch 'feature/update_hfp_hf_version_v4.1' into 'release/v4.1'
component_bt: Update HFP_HF version to 1.7.2(v4.1)

See merge request espressif/esp-idf!17394
2022-04-19 20:10:38 +08:00
Wang Meng Yang
6787a576fa Merge branch 'bugfix/fix_spp_initiator_connect_failed_v4.1' into 'release/v4.1'
Component_bt/Fix SPP initiator can not free resource when connection is failed[backport 4.1]

See merge request espressif/esp-idf!17747
2022-04-19 20:04:54 +08:00
morris
7f4ba3e89e Merge branch 'fix/spi_master_use_data_flag_v4.1' into 'release/v4.1'
spi_master: fix the error log when use tx/rx_data with larger data (v4.1)

See merge request espressif/esp-idf!17801
2022-04-18 23:31:34 +08:00
morris
ba999cf443 Merge branch 'bugfix/i2s_dac_no_output_v4.1' into 'release/v4.1'
i2s: fixed DAC no output issue(v4.1)

See merge request espressif/esp-idf!17381
2022-04-18 15:36:15 +08:00
Michael (XIAO Xufeng)
d36b74d6b4 spi_master: fix the error log when use tx/rx_data with larger data 2022-04-18 15:18:40 +08:00
Ivan Grokhotkov
5861c8ccbb Merge branch 'update/version_4_1_3' into 'release/v4.1'
Update version to 4.1.3

See merge request espressif/esp-idf!17762
2022-04-14 14:53:18 +08:00
Ivan Grokhotkov
de9348802c versions: Update version to 4.1.3 2022-04-13 11:43:45 +02:00
Nachiket Kukade
ace7ea8173 esp_wifi: Always connect Station in PMF mode if possible
While using esp_wifi_set_config, flag pmf_capable defaults to 0.
Users may not bother to enable it, which prevents connection to a
WPA3 AP. Or the AP may reset into WPA3 mode failing the re-connection.
To ensure better security, deprecate the pmf_capable flag and set it to
true internally.
Additionally add API esp_wifi_disable_pmf_config to disable PMF for
debug purposes or to avoid PMF issues on AP side.
2022-04-12 17:48:47 +05:30
liqigan
a7f2510423 add missing unlock in btc_spp_cb_handler of BTA_JV_RFCOMM_WRITE_EVT 2022-04-12 15:41:44 +08:00
liqigan
baf89cb3bd fix SPP initiator can not free resource when connection is failed 2022-04-12 15:41:06 +08:00
Michael (XIAO Xufeng)
4957ddf61d mmap: fixed the issue mmap cannot be called with pointers to psram 2022-04-06 17:24:01 +08:00
Michael (XIAO Xufeng)
a8e00c3691 esp_phy: use spinlock to avoid regi2c access conflicts 2022-04-06 15:20:03 +08:00
Michael (XIAO Xufeng)
c419c50c25 regi2c: use safe version of spinlock, instead of ISR ver 2022-04-06 15:04:03 +08:00
laokaiyao
387fb06aa0 i2s: fixed DAC no output issue
Closes https://github.com/espressif/esp-idf/issues/6470
2022-03-28 20:13:54 +08:00
xiongweichao
6d9d5b4cde Add some bluetooth debug log 2022-03-28 14:06:49 +08:00
houwenxiang
205c409d19 driver(uart): fix uart_set_line_inverse breaking change issue
closes https://github.com/espressif/esp-idf/issues/4581
2022-03-25 15:19:02 +08:00
chaijie
9100cd558e ESP32: Fix xtal 32k not oscillate or oscillate too slowly issue
ESP32 in revision0 and revision1 uses touchpad to provide
current to oscillate xtal 32k. But revision2 and revision3
do not need to do that.
Note: touchpad can not work and toupad/ULP wakeup sources
are not available when toupad provides current to xtal 32k
2022-03-25 14:20:54 +08:00
Michael (XIAO Xufeng)
cd6ed488c8 example: fixed the issue that config struct is not properly initialized 2022-03-25 01:12:22 +08:00
xiongweichao
9f80c20181 Update HFP_HF version to 1.7.2 2022-03-08 11:21:00 +08:00
Jiang Jiang Jian
23e8233506 Merge branch 'bugfix/pmf_bcast_deauth_fix_v4.1' into 'release/v4.1'
Stop dropping bcast PMF deauths/disassocs with certain reason codes (Backport v4.1)

See merge request espressif/esp-idf!14691
2022-03-04 15:34:20 +08:00
morris
3d9935e431 Merge branch 'bugfix/i2s_write_failed_in_32bit_slave_mode_v4.1' into 'release/v4.1'
i2s: fix write failure issue in slave mode (backport v4.1)

See merge request espressif/esp-idf!15083
2022-03-04 13:21:37 +08:00
Jiang Jiang Jian
c757427617 Merge branch 'bugfix/a2dp_sniff_v4.1' into 'release/v4.1'
Fix crash when host exit sniff mode(v4.1)

See merge request espressif/esp-idf!17344
2022-03-03 22:28:40 +08:00
Nachiket Kukade
15a7c51143 esp_wifi: Update wifi lib
Stop dropping bcast PMF deauths/disassocs with certain reason codes
2022-03-03 16:38:47 +05:30
Jiang Jiang Jian
e604f638c7 Merge branch 'feature/refactor_phy_access_v4.1' into 'release/v4.1'
esp_wifi: refactor PHY access (Backport v4.1)

See merge request espressif/esp-idf!16985
2022-03-03 17:40:25 +08:00
xiongweichao
47f9da2cec Fix crash when host exit sniff mode 2022-03-03 17:00:02 +08:00
laokaiyao
6aba908086 i2s: fix write failure issue in slave mode (backport v4.1) 2022-03-03 15:15:24 +08:00
Jiang Jiang Jian
7523759b30 Merge branch 'Bugfix/pppos_coonection_lost_v4.1' into 'release/v4.1'
Bugfix/PPPOS fix stack smashing, modify get operator and add access technology(backport v4.1)

See merge request espressif/esp-idf!14033
2022-03-03 10:48:35 +08:00
Ivan Grokhotkov
a8d23566b0 Merge branch 'bugfix/fix_modbus_rs485_rts_en_fail_v41' into 'release/v4.1'
Bugfix/fix modbus rs485 rts en fail v41 (backport v4.1)

See merge request espressif/esp-idf!11549
2022-03-03 01:44:06 +08:00
Alex Lisitsyn
6273cb8dfc Bugfix/fix modbus rs485 rts en fail v41 (backport v4.1) 2022-03-03 01:44:06 +08:00
Jiang Jiang Jian
5c281ed18c Merge branch 'bugfix/wpa3_memory_leak_v4.1' into 'release/v4.1'
esp_wifi: Fix Some wifi bugs.(v4.1)

See merge request espressif/esp-idf!16560
2022-03-02 22:00:52 +08:00
morris
89a6396297 Merge branch 'bugfix/touch_ll_get_sleep_time_v4.1' into 'release/v4.1'
Fixed error in "touch_ll_get_sleep_time" function for ESP32 (v4.1)

See merge request espressif/esp-idf!16250
2022-03-02 19:19:34 +08:00
Ivan Grokhotkov
73f56bbbe1 Merge branch 'bugfix/sleep_wrong_log_lvl_v4.1' into 'release/v4.1'
Sleep: fix wrong debug level (backport v4.1)

See merge request espressif/esp-idf!17301
2022-03-02 19:18:33 +08:00
morris
81492361fc Merge branch 'bugfix/mcpwm-deadtime-preset-config-backport_v4.1' into 'release/v4.1'
MCPWM/deadtime: fix and sync preset deadtime modes with well-known definition (backport v4.1)

See merge request espressif/esp-idf!14624
2022-03-02 18:05:59 +08:00
Li Hang Fan
2f2d2e776c MCPWM/deadtime: fix and sync preset deadtime modes with well-known definition (backport v4.1) 2022-03-02 18:05:59 +08:00
Liu Han
4c30995b88 esp-modem: prefix the crash issue both bg96 and sim800l in OVERALL mode 2022-03-02 10:49:25 +01:00
Ash
a313f37b2d rename dce parameter
Merges https://github.com/espressif/esp-idf/pull/5750
Signed-off-by: Liu Han <liuhan@espressif.com>
2022-03-02 10:48:52 +01:00
Robert Nuttall
3d0eef5fcc Expose get operator name command. Add get access tech
Signed-off-by: Liu Han <liuhan@espressif.com>
2022-03-02 10:48:36 +01:00
Jiang Jiang Jian
70bda5d6bc Merge branch 'bugfix/eap_client_crash_v4.1' into 'release/v4.1'
wpa_supplicant: Fix memory corruption (v4.1)

See merge request espressif/esp-idf!17131
2022-03-02 16:40:53 +08:00
Ivan Grokhotkov
7ef9868d65 Merge branch 'feature/add_component_manager_python_dependency_v4.1' into 'release/v4.1'
Build System: Add idf-component-manager python dependency (v4.1)

See merge request espressif/esp-idf!15987
2022-03-02 16:28:10 +08:00
Ivan Grokhotkov
b017f68dc3 Merge branch 'fix/gitlab_404_local_mirror_v4.1' into 'release/v4.1'
Handle gitlab 404 error (v4.1)

See merge request espressif/esp-idf!16961
2022-03-02 16:27:47 +08:00
Omar Chebib
56c3ebc4e7 Sleep: fix wrong debug level
Fix usage of ESP_LOGD in sleep_modes.c which triggers a panic when
used in debug log level.
2022-03-01 16:22:54 +08:00
Island
1caf2b37b4 Merge branch 'bugfix/ble_mesh_console_correct_repl_config_prompt_forv4.1' into 'release/v4.1'
ble mesh:example:correct repl config prompt in ble mesh console(v4.1)

See merge request espressif/esp-idf!17187
2022-03-01 13:51:39 +08:00
Sergey Gorban
8bb2eb299e Fixed error in "touch_ll_get_sleep_time" function for ESP32
Merges https://github.com/espressif/esp-idf/pull/6895
2022-02-28 09:45:10 +00:00
Jiang Jiang Jian
2ed96858a5 Merge branch 'bugfix/dual_core_pm_lock_issue_backport_v4.1' into 'release/v4.1'
System: fix pm lock issue in dual core mode(backport v4.1)

See merge request espressif/esp-idf!17264
2022-02-25 12:12:39 +00:00
zhangyanjiao
dad8d00bdf esp_wifi: refactor modem sleep access phy 2022-02-24 14:35:48 +08:00
Xia Xiaotian
900dc2ada6 esp_wifi: define wifi_clock_enable() on esp32 2022-02-24 14:35:48 +08:00
Xia Xiaotian
5056892b9b esp_wifi: store PHY digital registers before disabling PHY and load
them after enabling PHY
2022-02-24 14:35:48 +08:00
zhangyanjiao
002b273aa3 call pm_wakeup_init in esp_phy_enable() on esp32 2022-02-24 14:35:48 +08:00
Xia Xiaotian
89c036498e esp_wifi: refactor PHY access
- Simplify PHY access API
- Move coexist initializing and deinitializing out from PHY API
  to Wi-Fi and Bluetooth
- Remove coexist pause and resume for they are no longer needed.
2022-02-24 14:35:48 +08:00
jingli
0f86d752e5 fix pm lock issue in dual core mode 2022-02-23 22:07:56 +08:00
Michael (XIAO Xufeng)
77f6dea505 Merge branch 'bugfix/ledc_consecutive_fade_v4.1' into 'release/v4.1'
ledc: Bugfixes for issues related to fade protection (backport v4.1)

See merge request espressif/esp-idf!16957
2022-02-23 04:17:21 +00:00
Michael (XIAO Xufeng)
89b9ffbee7 Merge branch 'fix/sdio_slave_recv_intr_unhandled_v4.1' into 'release/v4.1'
sdio_slave: fixed the issue that interrupt may be cleared with finished trans unhandled (v4.1)

See merge request espressif/esp-idf!17151
2022-02-22 08:52:20 +00:00
morris
5213a7123f Merge branch 'bugfix/esp_flash_write_temp_buffer_lifetime_v4.1' into 'release/v4.1'
esp_flash: fix write issue using buffer on stack out of lifetime (v4.1)

See merge request espressif/esp-idf!17207
2022-02-21 07:39:30 +00:00
Michael (XIAO Xufeng)
b183ef2586 esp_flash: fix write issue using buffer on stack out of lifetime 2022-02-20 03:25:37 +08:00
Wang Meng Yang
605fb98948 Merge branch 'bugfix/config_parse_crash_after_flash_erase_v4.1' into 'release/v4.1'
component_bt: fixed config parse crash after flash_erase(v4.1)

See merge request espressif/esp-idf!16732
2022-02-18 05:01:40 +00:00
Jiang Jiang Jian
e3433724cc Merge branch 'bugfix/fix_ble_adv_underrun_error_v4.1' into 'release/v4.1'
components/bt: Fix ble adv_underrun issue(backport v4.1)

See merge request espressif/esp-idf!17167
2022-02-17 04:49:18 +00:00
Zim Kalinowski
ea815ca751 Merge branch 'bugfix/sdio_slave_dma_desc_int_v4.1' into 'release/v4.1'
sdio_slave: Fixed the issue that DMA descriptors allocated to non-DMA capable area (v4.1)

See merge request espressif/esp-idf!17140
2022-02-16 13:24:18 +00:00
Yuan Hong Hui
eee1a6f37c ble mesh:example:correct the output log level 2022-02-16 16:01:12 +08:00
Yuan Hong Hui
495f1fb132 ble mesh:example:response for checking restart in auto_test 2022-02-16 15:48:22 +08:00
xiewenxiang
abcd2a7c9e components/bt: Fix ble adv_underrun issue
components/bt: Fix LLCP collision for channel map update
2022-02-16 00:30:05 +08:00
Jiang Jiang Jian
6e548b7d8d Merge branch 'bugfix/a2dp_source_congest_v4.1' into 'release/v4.1'
component_bt: Fixed a2dp source audio data packet congestion causing choppy audio in a2dp sink (v4.1)

See merge request espressif/esp-idf!16737
2022-02-15 07:46:13 +00:00
songruojing
08efd3e495 ledc: Fix FADE_NO_WAIT mode concurrency problem.
Add test cases for fade concurrency issue and fade timing check.

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

(cherry picked from commit be2ab09832)
2022-02-15 12:43:08 +08:00
songruojing
370d24d001 ledc: Simplify the procedure to perform a one-time duty update
Avoid adding one extra fade cycle when performing a one-time duty update.
Add some notes to ledc_get_duty and ledc_update_duty APIs, so that users
are aware of when the new duty will be effective.

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

(cherry picked from commit e175086226)
2022-02-15 12:43:08 +08:00
xiongweichao
52f6ed8646 btc_a2dp_control_set_datachnl_stat is only used by a2dp sink 2022-02-15 11:56:45 +08:00
xiongweichao
b432340266 remove btc_a2dp_dispatch_datapath_evt and event 2022-02-15 11:56:45 +08:00
xiongweichao
cd05f5252a Fixed the crash caused by calling esp_a2d_media_ctrl(ESP_A2D_MEDIA_CTRL_START) after stream started 2022-02-15 11:56:45 +08:00
xiongweichao
b29ec46c88 Fixed a2dp source audio data packet congestion causing choppy audio in a2dp sink 2022-02-15 11:56:44 +08:00
Wang Meng Yang
8c1aa176f2 Merge branch 'bugfix/clear_whitelist_v4.1' into 'release/v4.1'
Nimble : Modify `ble_gap_wl_set` to support clearing complete whitelist (v4.1)

See merge request espressif/esp-idf!17142
2022-02-15 03:20:41 +00:00
Michael (XIAO Xufeng)
ece06a9016 sdio_slave: fixed the issue that interrupt may be cleared with finished trans unhandled 2022-02-15 00:02:02 +08:00
Jiang Jiang Jian
6ebe70287c Merge branch 'bugfix/wps_fixes_v4.1' into 'release/v4.1'
wpa_supplicant: Add WPS Fixes (backport V4.1)

See merge request espressif/esp-idf!17061
2022-02-14 13:05:05 +00:00
Rahul Tank
eee592d809 Nimble : Modify ble_gap_wl_set to support clearing complete whitelist 2022-02-14 16:44:57 +05:30
Michael (XIAO Xufeng)
786bbc26eb sdio_slave: fixed the issue DMA desc not capable 2022-02-14 12:58:14 +08:00
Michael (XIAO Xufeng)
7916c4079c Merge branch 'flash/add_th_support_v4.1' into 'release/v4.1'
spi_flash: add support for th 1M flash(backport v4.1)

See merge request espressif/esp-idf!16719
2022-02-14 04:46:59 +00:00
Michael (XIAO Xufeng)
793b1cc8e8 Merge branch 'feature/support_new_psram_v4.1' into 'release/v4.1'
psram: add ESP32-D0WD-R2-V3 support(backport v4.1)

See merge request espressif/esp-idf!16711
2022-02-13 14:46:01 +00:00
Kapil Gupta
b3d03e8db7 wpa_supplicant: Fix invalid memory dereference 2022-02-12 10:36:40 +05:30
Wang Meng Yang
5ea980e80c Merge branch 'bugfix/rd_rem_ext_feats_delayed_cs_v4.1' into 'release/v4.1'
bugfix/fix cs event for rd_rem_ext_feats delayed issue (v4.1)

See merge request espressif/esp-idf!16816
2022-02-10 09:46:44 +00:00
jincheng
c726a25d98 fix cs event for rd_rem_ext_feats delayed issue 2022-02-10 15:40:41 +08:00
xiongweichao
f5516d661c fixed config parse crash after flash_erase
Closes https://github.com/espressif/esp-idf/issues/6170
2022-02-09 19:20:20 +08:00
Roland Dobai
3273bd5fab Merge branch 'bugfix/win_rename_delay_v4.1' into 'release/v4.1'
Tools: Use delay between rename attempts on Windows in the installer (v4.1)

See merge request espressif/esp-idf!17059
2022-02-08 18:24:28 +00:00
Kapil Gupta
9f70b89794 wpa_supplicant: Add WPS Fixes
Add following bugfixes

1. Station not able to connect when WPS pin is pressed first on AP.
2. PBC overlap getting detected for selected registrar PIN APs.
3. Station not considering authorised MACs for PIN method.
4. For PIN methodm If no AP is found, station will loop through
   APs in its vicinity and try to do WPS with them one by one till
   WPS timeout occurs. This is for some APs which do not set
   selected registrar correctly.
2022-02-08 17:09:41 +05:30
Roland Dobai
cd78a3c1c5 Tools: Use delay between rename attempts on Windows in the installer 2022-02-08 11:09:27 +01:00
Michael (XIAO Xufeng)
d199dc421d Merge branch 'bugfix/modbus_add_task_affinity_and_callbacks_v41' into 'release/v4.1'
freemodbus: add affinity option for modbus stack tasks (backport v4.1)

See merge request espressif/esp-idf!14543
2022-02-07 09:44:38 +00:00
Jiang Jiang Jian
df2856c13d Merge branch 'bugfix/wps_wfa_cert_fixes_v4.1' into 'release/v4.1'
wpa_supplicant: Add WPS strict in config option(backport v4.1)

See merge request espressif/esp-idf!14229
2022-01-28 13:04:12 +00:00
aditi_lonkar
b6688edb37 esp_wifi: Fixed issue of weak md for certificates in wifi_enterprise example. 2022-01-28 16:56:23 +05:30
aditi_lonkar
445852da8d esp_wifi: Fixes memory leak in wpa3 connection. 2022-01-28 16:50:36 +05:30
Anton Maklakov
f69ef6b5db Merge branch 'bugfix/rm_copyright_ignore_list_v4.1' into 'release/v4.1'
CI: Remove unused copyright ignore list (v4.1)

See merge request espressif/esp-idf!16968
2022-01-28 11:01:58 +00:00
Jiang Jiang Jian
3636fbf822 Merge branch 'ajust_espnow_channel_config_range_v4.1' into 'release/v4.1'
adjust espnow channel range

See merge request espressif/esp-idf!13687
2022-01-28 10:12:35 +00:00
Jiang Jiang Jian
fb948175f8 Merge branch 'bugfix/alarm_update_invalid_v4.1' into 'release/v4.1'
timer: stop alarm if alarm value doesn't change in ISR callback (v4.1)

See merge request espressif/esp-idf!16535
2022-01-28 09:26:54 +00:00
aditi_lonkar
d9ed6d93e9 wpa_supplicant: Add WPS strict in config option
WPS strict disables workarounds with different APs and may cause
IOT issues. Remove this as default and introduce as a config option.

Also declare esp device as single band mobile device otherwise
WFA sniffer was not able to identify it in the certification setup.
2022-01-28 16:52:51 +08:00
dongyou
ba9d913296 adjust espnow channel range 2022-01-28 16:52:12 +08:00
Jiang Jiang Jian
4066200d98 Merge branch 'bugfix/fix_spp_open_err_bda_v4.1' into 'release/v4.1'
Component_bt/Fix SPP acceptor open with wrong remote address[backport 4.1]

See merge request espressif/esp-idf!16616
2022-01-28 08:47:25 +00:00
Sergei Silnov
3476ed2ce6 examples: Add the component manager example 2022-01-27 18:57:52 +01:00
Sergei Silnov
5717288cd7 docs: Add component manager documentation 2022-01-27 18:57:52 +01:00
Sergei Silnov
9366c4e31e Build System: Don't track dependencies.lock 2022-01-27 18:57:52 +01:00
Sergei Silnov
ed4a632d7b Add idf-component-manager python dependency 2022-01-27 18:57:15 +01:00
Tomas Sebestik
3522f3fc31 Handle gitlab 404 error
ci: do not retry on 404 when LOCAL_GITLAB_HTTPS_HOST not set
2022-01-27 13:29:37 +01:00
Roland Dobai
7d672b23b0 CI: Remove unused copyright ignore list 2022-01-27 12:53:42 +01:00
Jiang Jiang Jian
916e3ef1f1 Merge branch 'bugfix/fix_tbtt_and_phy_issues_v4.1' into 'release/v4.1'
esp_wifi: fix tbtt and phy issues (Backport v4.1)

See merge request espressif/esp-idf!16842
2022-01-27 10:29:15 +00:00
zhangyanjiao
3410711f9b esp_wifi:
1. fix the issue that no tbtt is generated in station+softap mode when maximum modem sleep is enabled
2. update libphy.a to V4670 719f9f6_20210218 for esp32
2022-01-27 14:37:28 +08:00
Island
12c4b90745 Merge branch 'bugfix/filter_repeated_packages_forv4.1' into 'release/v4.1'
filter repeated packages but not send response(v4.1)

See merge request espressif/esp-idf!16823
2022-01-25 06:39:34 +00:00
Yuan Hong Hui
5134b76249 filter repeated packages but not send response(v4.1) 2022-01-25 06:39:33 +00:00
Island
c7c8194ecd Merge branch 'feature/pro_recv_hb_forv4.1' into 'release/v4.1'
provisioner receive heartbeat message(v4.1)

See merge request espressif/esp-idf!16641
2022-01-24 07:55:12 +00:00
Ivan Grokhotkov
cd4e0482fd Merge branch 'test/remove_spi_flash_perf_thr_v4.1' into 'release/v4.1'
spi_flash_test: remove threshold from unit test (v4.1)

See merge request espressif/esp-idf!16825
2022-01-18 12:10:32 +00:00
Michael (XIAO Xufeng)
9bc21c4906 spi_flash_test: remove threshold from unit test 2022-01-18 16:34:19 +08:00
Michael (XIAO Xufeng)
6004073482 test_utils: allow printint multiple argument in the performance log 2022-01-18 16:34:19 +08:00
xiehang
8e47b98c8e example: Fix espnow stuck issue 2022-01-18 15:43:01 +08:00
Jiang Jiang Jian
82ae11e476 Merge branch 'bugfix/fix_smartconfig_setopt_fail_v4.1' into 'release/v4.1'
smartconfig: Fix smartconfig set socket option fail (backport v4.1)

See merge request espressif/esp-idf!16774
2022-01-17 06:48:43 +00:00
Ivan Grokhotkov
6f7550668f Merge branch 'feature/oocd_ver_upgrade_v4.1' into 'release/v4.1'
tools: Updates OpenOCD version to 'v0.11.0-esp32-20211220' (v4.1)

See merge request espressif/esp-idf!16768
2022-01-13 16:23:02 +00:00
Alexey Gerenkov
4550384d71 tools: Updates OpenOCD version to 'v0.11.0-esp32-20211220' 2022-01-12 09:31:15 +01:00
yuanjm
b59e3b88b6 smartconfig: Fix smartconfig set socket option fail 2022-01-12 14:56:22 +08:00
Cao Sen Miao
0fc751ad6c spi_flash: add support for th 1M flash 2022-01-10 11:58:57 +08:00
Cao Sen Miao
19d2a765d3 psram: add ESP32-D0WD-R2-V3 support 2022-01-10 11:13:00 +08:00
Jiang Jiang Jian
b84233626e Merge branch 'bugfix/set_authmode_by_switching_number_to_string_v4.1' into 'release/v4.1'
CI: set authmode by switching number to string (backport v4.1)

See merge request espressif/esp-idf!16556
2022-01-06 10:10:27 +00:00
Yuan Hong Hui
f24beb25c8 add cmd to publish and recv heartbeat message 2022-01-04 15:59:41 +08:00
liqigan
09d97a007b fix SPP open with wrong remote bd_addr 2021-12-31 15:48:48 +08:00
Zim Kalinowski
fa9ca143c1 Merge branch 'bugfix/ringbuf_read_pointer_wrap_v4.1' into 'release/v4.1'
ringbuf: Fix bug where comparision between a signed and unsigned operand resulted in incorrect free size for no-split/allow-split buffers (v4.1)

See merge request espressif/esp-idf!15884
2021-12-30 02:23:29 +00:00
Jiang Jiang Jian
ebf628e4ae Merge branch 'feature/support_ble_direct_ind_low_adv_v4.1' into 'release/v4.1'
components/bt: Support low duty cycle directed advertising(backport release/v4.1)

See merge request espressif/esp-idf!16380
2021-12-29 06:09:51 +00:00
huchaoru
9e9be2538d bugfix: set authmode by switching number to string (backport v4.1) 2021-12-27 20:01:58 +08:00
Sudeep Mohanty
30cd5a6f0f ringbuf: Fix bug where comparision between a signed and unsigned operand resulted in incorrect free size for no-split/allow-split buffers
This commit fixes a bug in no-split and allow-split ring buffers free buffer size calculation.
When the free size available in the buffers less than the size of one item header,
the function prvGetCurMaxSizeNoSplit/AllowSplit() incorrectly returned the maxItemSize instead of 0.
This is due to the comparision between a negative and a positive value
where both operands are treated as unsigned during the comparision operation,
thereby treating the negative operand as a large integer.

Also added new unit tests to test buffer-full and almost-full conditions
where this scenario is likely to be hit.

Closes https://github.com/espressif/esp-idf/issues/7344
Closes https://github.com/espressif/esp-idf/pull/7371
2021-12-27 15:13:52 +08:00
Jiang Jiang Jian
6cd99a7ebd Merge branch 'bugfix/fix_rx_fragment_error_issue_v4.1' into 'release/v4.1'
esp_wifi: fix fragment issue and PMF compatible for faulty APs(Backport v4.1)

See merge request espressif/esp-idf!16400
2021-12-24 08:39:09 +00:00
Sudeep Mohanty
0a68ce5952 Merge branch 'bugfix/ringbuf_send_semaphore_release_order_v4.1' into 'release/v4.1'
esp_ringbuf: Fix order of semaphore release in xRingbufferSend (v4.1)

See merge request espressif/esp-idf!16232
2021-12-24 06:16:16 +00:00
morris
7abb92fbea timer: stop alarm if alarm value doesn't change in ISR handler
Alarm will be disabled by hardware when alarm event happend.
In the ISR, if auto-reload is enabled, we should re-enable the alarm.
If the alarm target value is changed in user's callback,
the alarm will be reenabled as well.

Closes https://github.com/espressif/esp-idf/issues/7001
Closes https://github.com/espressif/esp-idf/issues/8095
2021-12-24 13:10:49 +08:00
Jiang Jiang Jian
2515d115fe Merge branch 'feature/mbedtls-2.16.12-integration_v4.1' into 'release/v4.1'
mbedtls: upgrade to release v2.16.12 (v4.1)

See merge request espressif/esp-idf!16486
2021-12-24 03:21:59 +00:00
Zim Kalinowski
2b23f04968 Merge branch 'bugfix/fix_select_timeout_v4.1' into 'release/v4.1'
VFS: `select` function's timeout is now POSIX compliant (backport v4.1)

See merge request espressif/esp-idf!16192
2021-12-22 05:50:32 +00:00
Mahavir Jain
b47a7353ac mbedtls: upgrade to release v2.16.12
For release notes, please refer to:
https://github.com/ARMmbed/mbedtls/releases/tag/v2.16.12
2021-12-21 14:08:11 +05:30
Wang Meng Yang
284fa65271 Merge branch 'bugfix/fix_spp_listen_err_v4.1' into 'release/v4.1'
Component_bt/Fix SPP cannot malloc slot bugs[backport v4.1]

See merge request espressif/esp-idf!16386
2021-12-21 08:01:18 +00:00
Jiang Jiang Jian
0d500b84df Merge branch 'doc/nvs_get_used_entry_count__clarify_4.1' into 'release/v4.1'
[doc]: NVS documentation updates (backport 4.1)

See merge request espressif/esp-idf!16431
2021-12-21 03:33:25 +00:00
Jiang Jiang Jian
7e7ea6c779 Merge branch 'feature/add_coex_hci_command_v4.1' into 'release/v4.1'
Add hci command to set coexistence status (v4.1)

See merge request espressif/esp-idf!16056
2021-12-21 03:31:57 +00:00
Jiang Jiang Jian
6f737fdca8 Merge branch 'bugfix/leedarson_v4.1' into 'release/v4.1'
component_bt: Fix some code logic errors (v4.1)

See merge request espressif/esp-idf!16039
2021-12-21 03:31:43 +00:00
Jiang Jiang Jian
bdb45af57e Merge branch 'bugfix/fix_supplicant_log_v4.1' into 'release/v4.1'
wpa_supplicant: Fix compilation when debug prints are enabled

See merge request espressif/esp-idf!14222
2021-12-21 03:30:50 +00:00
Jiang Jiang Jian
7a81db5c54 Merge branch 'bugfix/fix_blufi_encryption_fail_v4.1' into 'release/v4.1'
components/bt: fix blufi encryption fail(backport release/v4.1)

See merge request espressif/esp-idf!16317
2021-12-21 03:29:11 +00:00
David Čermák
fbb102604b Merge branch 'feature/add_dhcp_option_v4.1' into 'release/v4.1'
lw-ip: Add macro to disable vendor class option(backport v4.1)

See merge request espressif/esp-idf!15981
2021-12-20 17:27:20 +00:00
Mahavir Jain
0a531c0f8c Merge branch 'bugfix/address_already_used_exception_in_ota_tests_v4.1' into 'release/v4.1'
Fix 'address already in use' exception in OTA tests (v4.1)

See merge request espressif/esp-idf!16419
2021-12-20 07:11:46 +00:00
Jakob Hasse
908dbe0595 [doc]: NVS documentation updates
* Better comment of nvs_get_used_entry_count()
* Mention C++ example in API reference
* WIP: Used target instead of hard code ESP32
* Note that strings can only span one page
* Reflect that item types have been moved
* Some clarification about nvs_commit()
* Improved reference to the ESP Partition API
* fixed little mistake in documenting-code.rst
* Change of nvs_open_from_part() to
  nvs_open_from_partition() reflected in docs
* Corrected documentation of
  NVSHandle::get_string(), NVSHandle::get_blob()
  and NVSHandle::get_item_size().

* Closes IDF-1563
* Closes IDF-859
* Closes https://github.com/espressif/esp-idf/issues/6123
2021-12-17 16:13:23 +08:00
Harshit Malpani
773c5ec5b9 Fix for advanced_ota_redirect_url example failure in CI 2021-12-16 14:07:57 +05:30
xiewenxiang
e4d61c3d85 components/bt: fix blufi encryption fail 2021-12-16 16:22:23 +08:00
xiewenxiang
554b71c541 components/bt: Fix high duty cycle directed advertising will not be stopped when timeout 2021-12-16 16:21:52 +08:00
xiewenxiang
2aa8b8794c components/bt: Support low duty cycle directed advertising 2021-12-16 16:21:52 +08:00
Harshit Malpani
c480ba851e Fix 'address already in use' exception in OTA tests
We will stop the server instance at the end of each test case. This will solve the "address already in use" exception
2021-12-16 10:35:25 +05:30
yuanjm
7ca2fa5fd2 lwip: Add macro to disable vendor class option 2021-12-16 11:42:58 +08:00
Konstantin Kondrashov
e6943e970c Merge branch 'bugfix/fix_esp32h2_efuse_get_ext_mac_v4.1' into 'release/v4.1'
efuse_table_gen: Fixes wrong joining fields with omitted names (v4.1)

See merge request espressif/esp-idf!15740
2021-12-15 15:33:12 +00:00
NikLeberg
4b8ae70256 allow for minimal scope of wifi_init_config_t
With this change one can use the default config as a variable with minimal scope: esp_wifi_init(&(wifi_init_config_t)WIFI_INIT_CONFIG_DEFAULT())
2021-12-14 20:20:11 +08:00
Shang Zhou
626ce87ffb docs: Update miswritten and abbreviated words and syntax errors for initialize WiFi section in esp_wifi.h header file 2021-12-14 20:19:26 +08:00
muhaidong
171a59cc88 esp_wifi: fix fragment issue and PMF compatible for faulty APs
1. fix(pp): fix fragment plt loss when 2td pn compare with 1th pn
2. pmf allow keyindex in big endian format to workaround faulty APs
3. docs: update miswritten and abbreviated words and syntax errors for initialize WiFi section in esp_wifi.h header file
4. allow for minimal scope of wifi_init_config_t
2021-12-14 20:15:42 +08:00
liqigan
70375166ba fix SPP server bugs when the BTC layer can not allocate a slot for the listen port 2021-12-14 11:22:53 +08:00
Roland Dobai
33b617571d Merge branch 'bugfix/remove_PIP_USER_v4.1' into 'release/v4.1'
tools: Add check for PIP_USER variable (backport v4.1)

See merge request espressif/esp-idf!16335
2021-12-09 08:10:26 +00:00
Wang Meng Yang
22d127ecc1 Merge branch 'bugfix/fix_memory_leak_controller_deinit_v4.1' into 'release/v4.1'
ESP32: Fix memory leak in controller deinit function v4.1

See merge request espressif/esp-idf!15971
2021-12-09 02:36:52 +00:00
Juraj Sadel
e7ee43bdb5 tools: Add check for PIP_USER variable
Closes https://github.com/espressif/esp-idf/issues/7910
2021-12-08 15:56:21 +01:00
Jiang Jiang Jian
abdad421bb Merge branch 'bugfix/fix_wifi_bugs_20211206_v4.1' into 'release/v4.1'
esp_wifi: fix wifi bugs 20211206 (Backport v4.1)

See merge request espressif/esp-idf!16271
2021-12-08 03:02:39 +00:00
xiongweichao
edd24b518b Add hci command to set coexistence status 2021-12-07 17:41:59 +08:00
zhangyanjiao
2cdf9b5d9d esp_wifi:
1. Fix airkiss and esptouch find channel crash issue
2. Fix issue of softAP not initating 4-way handshake if max length passphrase is set
3. Fix issue of esptouch find hidden AP fail
4. Clear hostpot bss when auth timeout happens
5. Fix not connect to open AP when WPA3 auth fail
6. Fix issue with hidden AP scans after connecting AP
7. Fix the watchdog issue when receiving action frame
8. Fix set config return value error
9. Fix the issue of reason code change from 15 to 204 when provide wrong password
10. Fix ampdu age timer memory leak
11. Fix issue of esp_wifi_80211_tx
12. Fix crash issue in presence of WEP AP
13. Fix the MIC comparison logic AES-128-CMAC decryption
14. Fix issue of setting incorrect log_length of NVS misc log
15. Fix SoftAP crash by handling public action frames
16. Fix a bug that Wi-Fi stack may crash when receive AMSDU length bigger then 3200
2021-12-07 14:22:24 +08:00
Rahul Tank
ecbf1e398a ESP32: Fix memory leak in controller deinit function
Added change to dealloc s_pm_lock in controller deinit as it gets allocated
during init procedure.
2021-12-07 11:34:37 +05:30
aditi_lonkar
388bf07ceb wpa_supplicant: Fix compilation when debug prints are enabled 2021-12-07 12:21:56 +08:00
xiongweichao
b01ea3e2c7 Missing break in switch 2021-12-07 12:11:33 +08:00
xiongweichao
b37e2553aa already defined in bt_target.h 2021-12-07 12:11:33 +08:00
xiongweichao
33fd228c9d Dereference after null check 2021-12-07 12:11:33 +08:00
xiongweichao
01a7b1de70 Dereference before null check 2021-12-07 12:11:33 +08:00
xiongweichao
92f258e927 Logically dead code 2021-12-07 12:11:33 +08:00
Jiang Jiang Jian
6ce71ecacf Merge branch 'bugfix/link_spi_flash_rom_func_in_bootloader_stage_v4.1' into 'release/v4.1'
esp_rom: link rom spi flash functions in bootloader stage (v4.1)

See merge request espressif/esp-idf!15259
2021-12-07 03:37:57 +00:00
Jiang Jiang Jian
cce06a33ed Merge branch 'bugfix/psram_fix_bootloader_v4.1' into 'release/v4.1'
bootloader: disable psram cache bug fix for bootloader (v4.1)

See merge request espressif/esp-idf!15807
2021-12-07 03:37:35 +00:00
Jiang Jiang Jian
c7af5d8ce9 Merge branch 'feature/adds_fault_injection_protection_for_check_anti_rollback_v4.1' into 'release/v4.1'
bootloader_support: Adds fault injection protection for check_anti_rollback (v4.1)

See merge request espressif/esp-idf!16182
2021-12-07 03:33:11 +00:00
Jiang Jiang Jian
9fe266f18e Merge branch 'bugfix/fix_modem_sleep_hw_error_mr_4.1' into 'release/v4.1'
fix modem sleep hw error

See merge request espressif/esp-idf!16020
2021-12-07 03:32:50 +00:00
Jiang Jiang Jian
97c96b64bf Merge branch 'bugfix/fix_static_check_error_mr_4.1' into 'release/v4.1'
Fix the high-impact issues from the code analysis report from customer.

See merge request espressif/esp-idf!16047
2021-12-07 03:32:27 +00:00
Yang Zhao
22096945d8 1.fix the issue create Connection request is not properly terminated
which blocks BlueZ from reconnecting
2.fix the issue bt_spp_acceptor example fails when SPP is initiated
  on a windows machine using Realtek Bluetooth adapter
3.fix the issue HCI_Read_Clock failed read local Bluetooth Clock
4.It is abnormal when getting the deep sleep state bit. So we need to
  check the state again and run the "ble_master_soft_rst()" if neesed.
2021-12-06 17:37:49 +08:00
xiehang
d23be33b0d esp_wifi: Add beacon timeout event 2021-12-06 15:16:37 +08:00
“YangZhao”
dea009aa62 Fix the high-impact issues from the code analysis report from customer.
For the CID10564,10384,10280,10098,10038,The memory was released in other place.
For the CID10365,it release the memory in the function when sent successfully.
For the CID10268,10011, we need not change the code.
2021-12-06 14:04:05 +08:00
RichFalk
f698e9ad3c esp_ringbuf: Fix assertion xQueueGenericSend queue.c
The release of the semaphore indicating the item was successfully sent must be the last semaphore released.  The receiver may be in another task and may delete the Ringbuffer (such as with a return code across tasks design pattern) if they are through with the Ringbuffer.

The function xRingbufferSendAcquire followed by xRingbufferSendComplete had the semaphores released in the proper order and that same pattern should have been used in xRingbufferSend and xRingbufferSendFromISR.  This commit fixes this order.

Issue (IDFGH-6030) #7716 describes the problem in more detail.

Closes IDFGH-6030, https://github.com/espressif/esp-idf/issues/7716
Closes IDFGH-6036, https://github.com/espressif/esp-idf/pull/7721
2021-12-03 09:50:06 +05:30
Jiang Jiang Jian
488930b9f7 Merge branch 'bugfix/enable_gpio_20_v4.1' into 'release/v4.1'
gpio: Enable IO20 on ESP32 (backport v4.1)

See merge request espressif/esp-idf!15024
2021-12-03 03:37:33 +00:00
Jiang Jiang Jian
8c6853bbc1 Merge branch 'bugfix/lwip_config_dhcp_client_id_v4.1' into 'release/v4.1'
lw-ip: Add config for DHCP client id; Fix DNS server idx assert issue (v4.1)

See merge request espressif/esp-idf!16175
2021-12-03 03:33:51 +00:00
Jiang Jiang Jian
70fbcbddc8 Merge branch 'bugfix/eap_client_iot_issues_v4.1' into 'release/v4.1'
ESP_WiFi: Fix some wpa enterprise issue (backport V4.1)

See merge request espressif/esp-idf!15574
2021-12-03 03:30:59 +00:00
Jiang Jiang Jian
31203908a3 Merge branch 'bugfix/fix_adc-dma_reading_gap_for_esp32_backport_v4.1' into 'release/v4.1'
bugfix(adc): missing ranges of ADC codes in ESP32 (backport v4.1)

See merge request espressif/esp-idf!12878
2021-12-03 03:26:04 +00:00
Jiang Jiang Jian
2da581f82f Merge branch 'bugfix/pm_dump_format_v4.1' into 'release/v4.1'
esp_pm: fix formatting issues in esp_pm_dump_locks (backport v4.1)

See merge request espressif/esp-idf!12023
2021-12-03 03:23:54 +00:00
Island
e8982b5874 Merge branch 'test/update_ble_mesh_console_files_forv4.1' into 'release/v4.1'
test: fix ble mesh send problem (v4.1)

See merge request espressif/esp-idf!14492
2021-11-30 06:08:10 +00:00
Yuan Hong Hui
48506b70c4 test: fix ble mesh send problem (v4.1) 2021-11-30 06:08:09 +00:00
Omar Chebib
ddf693b662 VFS: select function's timeout is now POSIX compliant
`select` function will now round up the timeout passed as a parameter (if any).
It  makes it POSIX compliant.

* Closes https://github.com/espressif/esp-idf/issues/7514
2021-11-30 12:29:35 +08:00
Mahavir Jain
48cac250c7 bootloader: add anti-FI checks around secure version in anti-rollback scheme 2021-11-29 18:50:01 +05:30
David Cermak
8bf61c289a lwip: Add config for DHCP client id; Fix DNS server idx assert issue
This commit brings two esp-lwip fixes to IDF:

1) Add configuration to disable DHCP client identification
2195f7416f
This config could be used to disable option 61 in DHCP packets, so that
clients will be identified by their  chaddr only.
(This is the lwip upstream original behaviour)

2) Fix server_idx increasing to DNS_MAX_SERVERS and trigger the LWIP_ASSERT
5a567d52f7
When lwip doesn't have DNS server and resolve a domain address, the server_idx
will increase to DNS_MAX_SERVERS, which will trigger the LWIP_ASSERT and make device crash.

Closes https://github.com/espressif/esp-idf/issues/6878
2021-11-29 11:18:54 +01:00
Roland Dobai
c9124ed99a Merge branch 'bugfix/doskey_v4.1' into 'release/v4.1'
tools: fix export.bat /tools/idf.py not found issue (v4.1)

See merge request espressif/esp-idf!16051
2021-11-26 15:28:03 +00:00
Roland Dobai
f3b823381b Merge branch 'bugfix/coredump_esp_panic_reason_v4.1' into 'release/v4.1'
coredump: Fixes ESP-specific panic reasons handling (v4.1)

See merge request espressif/esp-idf!16068
2021-11-26 11:03:57 +00:00
Ivan Grokhotkov
5132d6ab5c tools: {install, export}.bat: fix path quoting
Also includes fix for DOSKEY definitions.
Closes https://github.com/espressif/esp-idf/issues/7605
Closes https://github.com/espressif/esp-idf/issues/7927
2021-11-26 11:08:01 +01:00
Mahavir Jain
2dbefaa3d4 Merge branch 'bugfix/bootloader_debug_buffers_v4.1' into 'release/v4.1'
bootloader_support: Fix and re-enable bootloader_debug_buffer function (v4.1)

See merge request espressif/esp-idf!16076
2021-11-26 08:01:00 +00:00
Mahavir Jain
45130c47a1 Merge branch 'feature/docker_build_use_git_mirror_v4.1' into 'release/v4.1'
ci: use LOCAL_GIT_MIRROR in docker build job, if set (v4.1)

See merge request espressif/esp-idf!16113
2021-11-26 05:22:17 +00:00
Gustavo Henrique Nihei
7e17bd8eb3 bootloader_support: Fix and re-enable bootloader_debug_buffer function
The body of the bootloader_debug_buffer function was conditioned to
macros that were never defined, resulting in deactivated code.

Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
2021-11-26 13:19:18 +08:00
Shen Jun
28d3a8c06b Merge branch 'mesh/esp_mesh_send_block_time_v4.1' into 'release/v4.1'
esp_wifi_mesh: add esp_mesh_send_block_time to set blocking time of esp_mesh_send(backport v4.1)

See merge request espressif/esp-idf!13410
2021-11-25 12:51:03 +00:00
Roland Dobai
706778b5df Merge branch 'docs/fix_oocd_debug_level_opt_v4.1' into 'release/v4.1'
docs: Fixes OpenOCD debug level option

See merge request espressif/esp-idf!16064
2021-11-25 11:55:33 +00:00
Roland Dobai
4bb68b3da9 Merge branch 'feature/oocd_ver_upgrade_v4.1' into 'release/v4.1'
tools: Updates OpenOCD version to 'v0.10.0-esp32-20211111' (v4.1)

See merge request espressif/esp-idf!16002
2021-11-25 11:26:25 +00:00
Alexey Gerenkov
719974ac88 coredump: Fixes ESP-specific panic reasons handling 2021-11-25 09:43:32 +01:00
Alexey Gerenkov
9b31ddcc49 idf_tools: Adds 'linux-armhf' platform support 2021-11-25 09:41:52 +01:00
Alexey Gerenkov
3e9da74451 tools: Updates OpenOCD version to 'v0.10.0-esp32-20211111' 2021-11-25 09:41:52 +01:00
Alexey Gerenkov
ba03d9f55b docs: Fixes OpenOCD debug level option 2021-11-25 09:38:48 +01:00
shenjun
56a1a74492 esp_wifi_mesh: add esp_mesh_send_block_time to set blocking time of esp_mesh_send
1. add esp_mesh_send_block_time to set blocking time of esp_mesh_send
2. fix the issue that layer2 node connect to lower-layer node when FIXED-ROOT root disappeared
2021-11-25 14:02:03 +08:00
Ivan Grokhotkov
e25d83744e ci: use LOCAL_GIT_MIRROR in docker build job, if set
When the build runner has a local git mirror configured via
LOCAL_GIT_MIRROR variable, use that mirror when cloning IDF insider
the docker build job. Follows similar logic for
LOCAL_GITLAB_HTTPS_HOST, which is used for geo nodes.
2021-11-25 13:36:42 +08:00
Anton Maklakov
943d4e4f72 Merge branch 'feature/remove_component_manager_tests_v4.1' into 'release/v4.1'
ci: Remove component manager test from build system tests (v4.1)

See merge request espressif/esp-idf!16109
2021-11-25 05:35:48 +00:00
Sergei Silnov
3458101c48 ci: Remove component manager test from build system tests
Component manager itself has a set of integration tests
that run against different ESP-IDF versions
2021-11-24 15:41:18 +01:00
Roland Dobai
ad3ee9f4f9 Merge branch 'feature/json_schema_for_idf_size_v4.1' into 'release/v4.1'
tools: add json schema for idf_size (v4.1)

See merge request espressif/esp-idf!15962
2021-11-24 09:02:33 +00:00
Roland Dobai
81517ead9e Merge branch 'feature/gcov_dump_in_thread_v4.1' into 'release/v4.1'
Feature/gcov dump in thread v4.1

See merge request espressif/esp-idf!15918
2021-11-23 07:55:11 +00:00
Anton Maklakov
3f75d76fb7 Merge branch 'feature/ci_runner_failure_retries_v4.1' into 'release/v4.1'
ci: runner system failure retries (v4.1)

See merge request espressif/esp-idf!15725
2021-11-19 08:02:24 +00:00
Mahavir Jain
81fdf6a4c1 Merge branch 'bugfix/efuse_stdbool_v4.1' into 'release/v4.1'
efuse: Add missing stdbool.h include file (v4.1)

See merge request espressif/esp-idf!15938
2021-11-15 15:29:37 +00:00
simon.chupin
a0bc68ac92 tools: add json schema for idf_size 2021-11-15 15:32:33 +01:00
Erhan Kurubas
08ef49e478 gcov: enable gcov in single core 2021-11-12 22:35:52 +03:00
Gustavo Henrique Nihei
8e03ec2253 efuse: Enable C++ linkage for the include headers on esp_efuse.h
Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
2021-11-12 13:30:37 -03:00
Gustavo Henrique Nihei
c72930f726 efuse: Add missing stdbool.h include file
Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
2021-11-12 13:30:36 -03:00
Erhan Kurubas
3277ff6856 gcov: ipc component name changei 2021-11-12 19:28:07 +03:00
Erhan Kurubas
3830ac21e2 esp_ipc: fix race condition in ipc task 2021-11-12 00:33:01 +03:00
Erhan Kurubas
384ca3452b gcov: enable single core tests 2021-11-12 00:32:44 +03:00
Erhan Kurubas
9681fb3d71 ipc: enable ipc task at single core for gcov dump 2021-11-12 00:32:43 +03:00
Erhan Kurubas
1d987334d3 gcov: add stub table size entry 2021-11-12 00:32:43 +03:00
Erhan Kurubas
fd8b943619 gcov: add gcov callback into the ipc task 2021-11-12 00:32:39 +03:00
Erhan Kurubas
49942a9468 gcov: readme update for ESP32-S2 2021-11-12 00:31:56 +03:00
Erhan Kurubas
357e938298 gcov: dump in a special thread 2021-11-12 00:31:17 +03:00
Erhan Kurubas
1a40148be0 gcov: added dbg stub capabilites and magic number entry to keep backward compatible 2021-11-12 00:29:57 +03:00
Xie Wen Xiang
fb7f4ed6ab Merge branch 'bugfix/fix_crash_when_shutdown_bt_v4.1' into 'release/v4.1'
component/bt: fix crash when shutdown bt(backport v4.1)

See merge request espressif/esp-idf!15711
2021-11-10 06:31:53 +00:00
Wang Meng Yang
cce7229188 Merge branch 'bugfix/hfp_demo_audio_not_sine_v4.1' into 'release/v4.1'
fix hfp_ag demo audio not sine_v4.1

See merge request espressif/esp-idf!15748
2021-11-09 08:26:08 +00:00
boarchuz
59a37806e7 fix bootloader build with rom flash driver
Closes https://github.com/espressif/esp-idf/pull/7508
Closes https://github.com/espressif/esp-idf/issues/6849
2021-11-08 14:14:14 +08:00
xiewenxiang
7b18c32ad2 component/bt: fix crash when shutdown bt(backport v4.1) 2021-11-08 10:43:15 +08:00
Island
25ce06d32e Merge branch 'bugfix/ble_mesh_host_init_v4.1' into 'release/v4.1'
ble_mesh: nimble: return error if init host twice (v4.1)

See merge request espressif/esp-idf!15790
2021-11-05 03:12:34 +00:00
Island
30450b456f Merge branch 'bugfix/sig_ble_mesh_errata_e16350_v4.1' into 'release/v4.1'
ble_mesh: stack: Apply the errata E16350 from Bluetooth SIG (v4.1)

See merge request espressif/esp-idf!15786
2021-11-05 03:09:32 +00:00
Chinmay Chhajed
8aad029805 Merge branch 'bugfix/ble_conn_latency_max_value_v4.1' into 'release/v4.1'
BLE: Set connection max latency value to 499.

See merge request espressif/esp-idf!15757
2021-11-04 10:17:38 +00:00
Marius Vikhammer
0e3ebe868f bootloader: disable psram cache bug fix for bootloader
The psram cache bug fix was also being applied to the bootloader binary (for cmake),
which doesnt do any psram access.

Applying this fix would increase the binary size, as much as 300 bytes in worst case scenarios
2021-11-04 11:32:19 +08:00
lly
2f0fbfa3ef ble_mesh: nimble: return error if init host twice 2021-11-03 19:22:00 +08:00
lly
68d902e9c8 ble_mesh: stack: Apply the errata E16350 from Bluetooth SIG 2021-11-03 19:07:08 +08:00
Chinmay Chhajed
5bf675ea4f BLE: Set connection max latency value to 499. 2021-11-01 16:39:13 +05:30
jincheng
4e34c26a56 fix hfp_ag demo audio not sine_v4.1 2021-11-01 12:19:58 +08:00
KonstantinKondrashov
104dc63c85 efuse_table_gen: Fixes wrong joining fields with omitted names
The issue is related to the non-sequential way of description when
such fields going together sequential.

Related to esp32h2 chip for eFuses: MAC_FACTORY and MAC_EXT.
The issue is in wrong indexes of MAC_EXT.
MAC_EXT got indexes like it is joined to MAC_FACTORY.

const esp_efuse_desc_t* ESP_EFUSE_MAC_FACTORY[] = {
    &MAC_FACTORY[0],
    &MAC_FACTORY[1],
    &MAC_FACTORY[2],
    &MAC_FACTORY[3],
    &MAC_FACTORY[4],
    &MAC_FACTORY[5],
    NULL
};

const esp_efuse_desc_t* ESP_EFUSE_MAC_EXT[] = {
    &MAC_EXT[6],
    &MAC_EXT[7],
    NULL
};

This commit fixed it to:

const esp_efuse_desc_t* ESP_EFUSE_MAC_EXT[] = {
    &MAC_EXT[0],
    &MAC_EXT[1],
    NULL
};
2021-10-29 19:37:35 +08:00
Anton Maklakov
41e3158c26 ci: Add retries on runner system failures 2021-10-29 13:50:56 +07:00
Mahavir Jain
9029ad44fa Merge branch 'bugfix/fix_http_head_request_v4.1' into 'release/v4.1'
esp_http_client: Fix HEAD request will affect the all next HTTP requests unless we close the HTTP request(backport v4.1)

See merge request espressif/esp-idf!15712
2021-10-29 06:38:42 +00:00
yuanjm
4b8a5ff153 esp_http_client: Fix HEAD request will affect the all next HTTP requests unless we close the HTTP request
Closes https://github.com/espressif/esp-idf/issues/7777
2021-10-29 10:21:07 +08:00
Kapil Gupta
bd716b6fa1 wpa_supplicant: Add missing cflag for legacy makefile 2021-10-28 16:55:50 +05:30
Kapil Gupta
c4b411cbb2 wpa_supplicant: Update internal tls client with sha384/sha512 support 2021-10-28 16:55:14 +05:30
Kapil Gupta
04d02e5b52 esp_wifi: Fix interoperability issue with windows 2008 2021-10-28 16:07:01 +08:00
Mahavir Jain
f9327b9d82 Merge branch 'bugfix/select_boot_app_v4.1' into 'release/v4.1'
partition_table: Fix case when a few similar to otadata partitions in the table (v4.1)

See merge request espressif/esp-idf!15650
2021-10-28 05:38:23 +00:00
Island
2a455d7d5e Merge branch 'bugfix/heartbeat_filter_with_acceptlist_v4.1' into 'release/v4.1'
ble_mesh: stack: Fix heartbeat filter with accept list (v4.1)

See merge request espressif/esp-idf!15678
2021-10-28 02:58:47 +00:00
Jiang Jiang Jian
9af2c5991d Merge branch 'bugfix/remove_assert_when_inq_done_4.1' into 'release/v4.1'
component_bt: fix crash after inquiry has finished (v4.1)

See merge request espressif/esp-idf!15672
2021-10-27 11:29:32 +00:00
wangjialiang
661528d4f7 ble_mesh: stack: Fix heartbeat filter with accept list 2021-10-27 16:47:17 +08:00
xiongweichao
8656b9f088 Remove assert when inq done
Closes https://github.com/espressif/esp-idf/issues/6759
2021-10-27 14:36:37 +08:00
Anton Maklakov
38d3c35a4b Merge branch 'bugfix/support_py34-35_cffi_v4.1' into 'release/v4.1'
Tools: Constrain the cffi package for older pythons (v4.1)

See merge request espressif/esp-idf!15609
2021-10-26 13:53:22 +00:00
KonstantinKondrashov
a86117223b partition_table: Fix case when a few similar to otadata partitions in the table
It was when in the partition table there is a partition with type="data" and suptype=""(empty),
in this case type=1, suptype=0. It is similar to otadata partition.

This commit fixes it, now it will handle it as type=1, suptype=6 (ESP_PARTITION_SUBTYPE_DATA_UNDEFINED).
2021-10-26 16:49:26 +08:00
Sergei Silnov
0603acf91e Tools: Constrain the cffi package for older pythons 2021-10-25 20:14:31 +08:00
Wang Meng Yang
e0deeedfba Merge branch 'feature/add_README_for_controller_hci_uart_demo_v4.1' into 'release/v4.1'
[document] add README.md for demo controller_hci_uart_demo for v4.1

See merge request espressif/esp-idf!15570
2021-10-25 08:11:34 +00:00
Jiang Jiang Jian
e16977f67f Merge branch 'bugfix/fix_ble_scan_failed_issue_master_4.1' into 'release/v4.1'
Fix the ble scan failed issue

See merge request espressif/esp-idf!15590
2021-10-21 11:57:58 +00:00
Anton Maklakov
be8eec22f8 Merge branch 'ci/fix_deploy_docs_preview_url_v4.1' into 'release/v4.1'
ci: update docs preview url (v4.1)

See merge request espressif/esp-idf!15510
2021-10-21 03:30:01 +00:00
Yang Zhao
e14327fa02 1.Fix the ble scan failed issue, this may happen in coexit environment
2.Fix connection failed with LG 5.0 phone
3.Check only for same X component of public key in BR/EDR
2021-10-21 11:08:46 +08:00
Anton Maklakov
d78f07166c Merge branch 'bugfix/retry_download_submodule_v4.1' into 'release/v4.1'
ci: retry download from Gitlab on error 500 (v4.1)

See merge request espressif/esp-idf!15560
2021-10-20 08:13:07 +00:00
jincheng
50b8f73b5b add README.md for demo controller_hci_uart_demo 2021-10-20 09:04:20 +08:00
Ivan Grokhotkov
25385d72ab ci: revert type annotations in gitlab_api.py to python2 compatible 2021-10-19 19:44:31 +07:00
Ivan Grokhotkov
fdcfba5650 ci: retry Gitlab operations on error 500 2021-10-19 19:44:24 +07:00
Fu Hanxi
bb7dcb8113 ci: retry download artifacts 2021-10-19 19:44:17 +07:00
Ivan Grokhotkov
4878cdd125 ci: fetch submodules from mirror, if enabled 2021-10-19 19:44:10 +07:00
Fu Hanxi
beaee539de ci: retry download if catched IOError/EOFError 2021-10-19 19:44:04 +07:00
Wang Meng Yang
bd28980da5 Merge branch 'bugfix/btdm_ble_data_length_update_fail_v4.1' into 'release/v4.1'
Fix data length update failed(release v4.1)

See merge request espressif/esp-idf!15504
2021-10-18 03:08:22 +00:00
Wang Meng Yang
3874ab6aac Merge branch 'bugfix/ble_set_scan_param_error_v4.1' into 'release/v4.1'
Fix the bug when ble setting scan param

See merge request espressif/esp-idf!13978
2021-10-15 07:59:00 +00:00
Yuan Jian Min
0c46c56c01 Merge branch 'bugfix/fix_cplusplus_miss_in_dhcp_v4.1' into 'release/v4.1'
dhcpserver: support cplusplus (backport v4.1)

See merge request espressif/esp-idf!15361
2021-10-14 11:59:38 +00:00
Marius Vikhammer
b6842845b9 ci: update docs preview url 2021-10-14 14:24:00 +08:00
xiewenxiang
85a6c2ea9b component/bt: fix data length update failed 2021-10-13 19:47:43 +08:00
Ivan Grokhotkov
ef647e941e Merge branch 'feature/windows_installer_moved_to_github_backport_4.1' into 'release/v4.1'
tools: Windows Installer project moved to github.com/espressif/idf-installer - backport v4.1

See merge request espressif/esp-idf!15476
2021-10-11 13:50:54 +00:00
Juraj Michálek
58d48574a1 tools: remove dependency on Windows installer - backport 2021-10-11 12:31:30 +02:00
Roland Dobai
cd1c40459f Merge branch 'bugfix/constrain_cryptography_v4.1' into 'release/v4.1'
Tools: Constrain the cryptography package version in order to avoid breaking changes (v4.1)

See merge request espressif/esp-idf!15463
2021-10-11 07:19:57 +00:00
Mahavir Jain
1bc071c2de Merge branch 'fix/update_https_example_root_certificate_v4.1' into 'release/v4.1'
Updated the root certificate of https examples (v4.1)

See merge request espressif/esp-idf!15439
2021-10-11 04:00:49 +00:00
Bao Hong De
4d46e6c268 Merge branch 'feature/sync_bt_lib_with_hli_v4.1' into 'release/v4.1'
components/bt: Sync bt lib with the high level interrupt version

See merge request espressif/esp-idf!15329
2021-10-11 03:15:06 +00:00
Roland Dobai
72e96a58f3 Tools: Constrain the cryptography package for avoiding breaking changes
The cryptography 35 release causes breaking changes. Some of
certificates are rendered invalid and the package cannot be build
without rust. See
https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst#3500---2021-09-29
for more details.
2021-10-10 19:27:05 +02:00
yuanjm
f570b33b66 dhcpserver: support cplusplus
Closes https://github.com/espressif/esp-idf/issues/7494

Merges https://github.com/espressif/esp-idf/pull/7526
2021-10-08 16:45:39 +08:00
baohongde
e10416659c components/bt: Sync bt lib with the high level interrupt version 2021-10-08 14:20:36 +08:00
Harshit Malpani
4cde8e7792 Update example test for esp_http_client 2021-10-07 18:03:47 +05:30
Harshit Malpani
ade8b8b7a0 Updated the root certificate of https examples 2021-10-07 16:51:08 +05:30
Mahavir Jain
f6f417ceee Merge branch 'feature/upgrade_nghttp2_component_v4.1' into 'release/v4.1'
nghttp2: upgrade to v1.41.0 release (v4.1)

See merge request espressif/esp-idf!15344
2021-10-05 05:39:29 +00:00
Vikram Dattu
369ef2e6a8 Fixed broken http2_request example.
Implementation of `esp_tls_conn_new_sync` now uses timeout_ms value to
give up retries.

Specified this value to be 10 sec. (10 * 1000 ms).

Signed-off-by: Vikram Dattu <vikram.dattu@espressif.com>
2021-10-01 04:10:51 +08:00
Mahavir Jain
bf80d8b5da nghttp2: upgrade to v1.41.0 release
Detailed changelog:
https://github.com/nghttp2/nghttp2/releases/tag/v1.41.0

Closes: https://github.com/espressif/esp-idf/issues/4883
Closes IDFGH-2821
2021-10-01 04:10:51 +08:00
Jiang Jiang Jian
05f5998b98 Merge branch 'cherry-pick-e8360fe0-2' into 'release/v4.1'
wpa_supplicant: clean tls client state machine (backport v4.1)

See merge request espressif/esp-idf!15038
2021-09-29 11:47:06 +00:00
Roland Dobai
80ba98aa9d Merge branch 'bugfix/idf_tools_virtualenv_seeder_v4.1' into 'release/v4.1'
tools/idf_tools.py: Changed default AppData seeder to seeder pip (backport v4.1)

See merge request espressif/esp-idf!15351
2021-09-27 12:33:42 +00:00
Michael (XIAO Xufeng)
cf584f1542 Merge branch 'bugfix/uart_driver_obj_into_sram_v4.1' into 'release/v4.1'
uart: put driver object into sram(v4.1)

See merge request espressif/esp-idf!14754
2021-09-26 01:33:37 +00:00
Juraj Sadel
eb369f21a9 tools/idf_tools.py: Changed default AppData seeder to seeder pip 2021-09-24 16:02:21 +02:00
David Čermák
e83df0aa20 Merge branch 'bugfix/config_data_interface_early_v4.1' into 'release/v4.1'
initialize data interface early (v4.1)

See merge request espressif/esp-idf!15091
2021-09-24 07:33:28 +00:00
Jiang Jiang Jian
d0525dcf03 Merge branch 'bugfix/stack_init_check_v4.1' into 'release/v4.1'
NimBLE: Check stack status before executing stack command

See merge request espressif/esp-idf!14985
2021-09-23 07:55:34 +00:00
Wang Meng Yang
47a62a6577 Merge branch 'feature/btdm_add_clear_white_list_API_v4.1' into 'release/v4.1'
component/bt: add clear white list API(backport v4.1)

See merge request espressif/esp-idf!15300
2021-09-23 03:24:21 +00:00
zhiweijian
ffc6072f80 component/bt: add clear white list API 2021-09-22 16:01:51 +08:00
morris
1c75ad9416 uart: support alloc driver object in SRAM
If CONFIG_UART_ISR_IN_IRAM is on, which means user hope the uart
interrupt can still be serviced even when cache is diabled (e.g.
writing to flash). In that case, the driver should make sure to
put the all related objects into SRAM, avoid putting them in the PSRAM.

Closes https://github.com/espressif/esp-idf/issues/7044
Closes https://github.com/espressif/esp-idf/pull/7355
2021-09-22 11:57:28 +08:00
morris
89990bcbf5 uart: format driver code by astyle 2021-09-22 11:57:28 +08:00
Mahavir Jain
de3d75605f Merge branch 'bugfix/http_client_eagain_v4.1' into 'release/v4.1'
esp_http_client: Fixed handling of EAGAIN return (backport v4.1)

See merge request espressif/esp-idf!15275
2021-09-21 11:50:26 +00:00
Vikram Dattu
112cfe8f57 esp_http_client: Fixed handling of EAGAIN return
For https connection `ESP_TLS_ERR_SSL_WANT_READ` of esp_transport_read was getting treated as error.
Treated this as a timeout to fix connection abort issue!

Also handled http connection EAGAIN with `errno == EAGAIN` check.

Signed-off-by: Vikram Dattu <vikram.dattu@espressif.com>
2021-09-20 18:22:21 +05:30
Mahavir Jain
64d352af27 Merge branch 'fix/esp_mbedtls_write_api_v4.1' into 'release/v4.1'
Fix esp_mbedtls_write API (v4.1)

See merge request espressif/esp-idf!15216
2021-09-20 11:19:19 +00:00
Aditya Patwardhan
fc931ff193 Fix esp_mbedtls_write API
Fix esp_wolfssl_write API
Closes https://github.com/espressif/esp-idf/issues/7461
2021-09-16 09:07:48 +05:30
Krzysztof Budzynski
b22c975a3b Merge branch 'docs/fix_adc_pad_typo_MOSI_typo_and_broken_link_v4.1' into 'release/v4.1'
Fix ADC pad and MOSI typo, update esp32c3 rom elf link (v4.1)

See merge request espressif/esp-idf!15189
2021-09-14 08:48:16 +00:00
Wang Fang
7dc5375867 docs: Fix ADC pad and MOSI typo, update esp32c3 rom elf link 2021-09-14 11:30:50 +08:00
Roland Dobai
fcb8aff5a7 Merge branch 'feature/oocd_ver_upgrade_v4.1' into 'release/v4.1'
tools: Updates OpenOCD version to 'v0.10.0-esp32-20210902' (v4.1)

See merge request espressif/esp-idf!15134
2021-09-09 07:39:49 +00:00
Alex Lisitsyn
05d647a04a Merge branch 'bugfix/modbus_fix_invalid_error_handling_for_duplicate_param_key_v41' into 'release/v4.1'
freemodbus: fix invalid error handling for duplicate param key (backport v4.1)

See merge request espressif/esp-idf!14786
2021-09-09 05:56:33 +00:00
Alexey Gerenkov
b04f781bd9 tools: Updates OpenOCD version to 'v0.10.0-esp32-20210902' 2021-09-08 21:06:26 +03:00
Wang Meng Yang
f6695052ab Merge branch 'bugfix/controller_hci_uart_sdkconfig_v4.1' into 'release/v4.1'
controller_hci_uart: fixed the sdkconfig.defaults in the example(backport v4.1)

See merge request espressif/esp-idf!14827
2021-09-08 06:09:58 +00:00
Wang Meng Yang
01a11b2d0e Merge branch 'bugfix/hf_disc_acl_no_disc_v4.1' into 'release/v4.1'
bugfix/acl can't disconnect when hfp_client disconnect [release/v4.1]

See merge request espressif/esp-idf!15058
2021-09-07 23:30:20 +00:00
morris
530b2b0f81 eth: dont warn nego timeout if link is down 2021-09-06 19:10:46 +08:00
morris
a5057f7202 emac: configure data interface early 2021-09-06 19:10:46 +08:00
Wang Meng Yang
c358ca07d4 Merge branch 'bugfix/bt_spp_timer_collision_v4.1' into 'release/v4.1'
Fix timer collision in role switch(v4.1)

See merge request espressif/esp-idf!14820
2021-09-06 08:24:04 +00:00
Mahavir Jain
659de924da Merge branch 'feature/update_cjson_submodule_v4.1' into 'release/v4.1'
cJSON: Update submodule to v1.7.15 (v4.1)

See merge request espressif/esp-idf!15076
2021-09-06 06:39:01 +00:00
Mahavir Jain
97c378a5e1 Merge branch 'feature/update_expat_v4.1' into 'release/v4.1'
expat: Update library from 2.2.9 to 2.4.1(backport v4.1)

See merge request espressif/esp-idf!15069
2021-09-06 04:01:29 +00:00
jincheng
f5e1d1c2bf fix timer collision in role switch
Closes https://github.com/espressif/esp-idf/issues/7203
2021-09-06 10:35:25 +08:00
Shubham Kulkarni
b9643ee59c cJSON: Update submodule to latest release.
This update fixes NULL pointer dereference issues in previous release

Closes https://github.com/espressif/esp-idf/issues/7317
2021-09-06 07:44:42 +05:30
Liu Han
895dbb90c2 expat: Update library from 2.2.9 to 2.4.1 2021-09-03 16:32:39 +08:00
jincheng
ba8f1e4b5c fix acl can not disconnect when hf_client disconnect 2021-09-03 11:29:14 +08:00
Wang Meng Yang
907205a13a Merge branch 'bugfix/btdm_fix_some_Document_Description_Error_v4.1' into 'release/v4.1'
component/bt: fix some ble document description error(backport v4.1)

See merge request espressif/esp-idf!14825
2021-09-03 01:40:26 +00:00
XieWenxiang
3ba43f4991 component/bt: fix some ble document description error 2021-09-01 20:46:14 +08:00
Kapil Gupta
789a7e5e5a Merge branch 'bugfix/eap_client_windows' into 'master'
wpa_supplicant: clean tls client state machine

Closes IDFGH-5702, IDFGH-5662, and IDFGH-119

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

See merge request espressif/esp-idf!14968

(cherry picked from commit e8360fe075)

d3a42d78 wpa_supplicant: clean tls client state machine
2021-09-01 19:15:02 +08:00
Alberto García Hierro
f1a024e374 Enable IO20 on ESP32
Some newer ESP32 variants (like ESP32-PICO-V3 and ESP32-PICO-MINI-02)
do implement this pin and it can be used as a normal GPIO.

Fixes #6016
Fixes #6837

Closes https://github.com/espressif/esp-idf/pull/6918

(cherry picked from commit 6deaefde69)
2021-08-31 20:45:17 +08:00
Rahul Tank
12b50729ed NimBLE: Check stack status before executing stack command 2021-08-27 20:53:19 +05:30
Alex Lisitsyn
1e309a3885 Merge branch 'bugfix/freemodbus_fix_mbm_event_processing_v41' into 'release/v4.1'
freemodbuss: fix event processing after merge (backport v4.1)

See merge request espressif/esp-idf!12824
2021-08-25 15:12:49 +00:00
Wang Meng Yang
47cc42f662 Merge branch 'component_bt/add_spp_faq_v4.1' into 'release/v4.1'
Component_bt/Add FAQ in SPP Demo README[backport v4.1]

See merge request espressif/esp-idf!14798
2021-08-23 05:15:26 +00:00
Jiang Jiang Jian
e769c9fb43 Merge branch 'bugfix/spp_memory_leak_v4.1' into 'release/v4.1'
Fix spp memory leak(v4.1)

See merge request espressif/esp-idf!14863
2021-08-20 02:50:28 +00:00
xiongweichao
367675be4e components/bt: fix spp memory leak
Closes https://github.com/espressif/esp-idf/issues/7238
2021-08-19 14:41:06 +08:00
Mahavir Jain
f7563fffbe Merge branch 'fix/warning_in_wifi_prov_mgr_v4.1' into 'release/v4.1'
provisioning: fix wifi warning in wifi_prov_mgr application (v4.1)

See merge request espressif/esp-idf!14765
2021-08-19 04:11:05 +00:00
Island
b7bc49e942 Merge branch 'bugfix/ble_mesh_cve_recommendation_v4.1' into 'release/v4.1'
ble_mesh: Update the SIG recommendations for CVE issues (v4.1)

See merge request espressif/esp-idf!14843
2021-08-18 12:41:33 +00:00
Harshit Malpani
1169a42e71 provisioning: fix wifi warning in wifi_prov_mgr application
Scan configuration parameters should not modify in co-existence mode.
2021-08-18 18:35:14 +08:00
Zim Kalinowski
7d79333208 Merge branch 'bugfix/remove_bt_get_mac_v4.1' into 'release/v4.1'
bt: Remove unused function esp_bt_get_mac. (v4.1)

See merge request espressif/esp-idf!14838
2021-08-18 05:03:34 +00:00
lly
d272f830b2 ble_mesh: Update the SIG recommendations for CVE issues 2021-08-18 10:58:56 +08:00
Chinmay Chhajed
3675409ee8 bt: Remove unused function esp_bt_get_mac. 2021-08-17 18:55:21 +05:30
David Čermák
0246c5ddee Merge branch 'bugfix/fix_eth2ap_example_crash_v4.1' into 'release/v4.1'
eth2ap: Fix eth2ap example crash issue (backport v4.1)

See merge request espressif/esp-idf!14560
2021-08-17 10:59:34 +00:00
liqigan
69b2100a13 add FAQ in SPP demo README 2021-08-17 15:19:31 +08:00
wangmengyang
287695f623 controller_hci_uart: fixed the sdkconfig.defaults in the example 2021-08-16 17:05:29 +08:00
Wang Meng Yang
e589fdd18c Merge branch 'bugfix/btdm_auto_update_PPCP_attribute_value_v4.1' into 'release/v4.1'
component/bt: fix bluedroid host auto update PPCP attribute value(backport  v4.1)

See merge request espressif/esp-idf!14750
2021-08-16 07:36:29 +00:00
Anton Maklakov
7c06467277 Merge branch 'ci/change_perf_key_v4.1' into 'release/v4.1'
ci: update performance test key to db compatible format (v4.1)

See merge request espressif/esp-idf!14656
2021-08-16 06:13:13 +00:00
Zim Kalinowski
e3081a08fa Merge branch 'bugfix/add_critical_section_in_uart_driver_v4.1' into 'release/v4.1'
UART: add missing critical section wrappers around rx_buffered_len (backport v4.1)

See merge request espressif/esp-idf!14777
2021-08-14 02:55:31 +00:00
Omar Chebib
c10c604af9 uart: Add missing critical section wrappers around rx_buffered_len
The missing barriers caused uart_get_buffered_data_len() to (very rarely)
return a garbage value. When used in MicroPython, though, this caused
select() to return and a subsequent read() to stall indefinitely until
a char was actually available.

Signed-off-by: Chen Yi Qun <chenyiqun@espressif.com>

Closes https://github.com/espressif/esp-idf/issues/6397
Merges https://github.com/espressif/esp-idf/pull/6396
2021-08-14 10:55:26 +08:00
Wang Meng Yang
52875ff2b2 Merge branch 'bugfix/fix_deep_sleep_miss_bug_mr_v4.1' into 'release/v4.1'
Fix controller may miss the sleep time

See merge request espressif/esp-idf!14739
2021-08-13 09:17:44 +00:00
aleks
dfc509d3e4 freemodbus: fix invalid error handling for duplicate param_key 2021-08-13 10:40:25 +02:00
Zim Kalinowski
2acf705460 Merge branch 'bugfix/cmake_export_ver_during_reqs_expansion_v4.1' into 'release/v4.1'
cmake: set IDF_VERSION_* variables at requirement expansion stage (v4.1)

See merge request espressif/esp-idf!14045
2021-08-12 21:41:51 +00:00
Zim Kalinowski
88340e04cd Merge branch 'bugfix/freertos_ut_suspend_v4.1' into 'release/v4.1'
freertos: Increases delta for UT - Test suspend-resume CPU. The number of... (v4.1)

See merge request espressif/esp-idf!14632
2021-08-12 21:32:46 +00:00
Zim Kalinowski
6d876a8677 Merge branch 'bugfix/read_ota_partition_required_output_arg_v4.1' into 'release/v4.1'
otatool: Fixes read_ota_partition cmd, required output arg (v4.1)

See merge request espressif/esp-idf!13674
2021-08-12 21:30:20 +00:00
Zim Kalinowski
2720bf0455 Merge branch 'bugfix/newlib_FD_ISSET_v4.1' into 'release/v4.1'
newlib: Fix a case in FD_ISSET macro when n==-1 (v4.1)

See merge request espressif/esp-idf!13692
2021-08-12 21:28:07 +00:00
Zim Kalinowski
b48b5e1829 Merge branch 'bugfix/otatool_imported_as_lib_v4.1' into 'release/v4.1'
otatool: Fix a crash when imported as external python lib (v4.1)

See merge request espressif/esp-idf!13668
2021-08-12 21:26:16 +00:00
XieWenxiang
cd671be627 component/bt: fix bluedroid host auto update PPCP attribute value 2021-08-11 18:06:44 +08:00
Yang Zhao
bca844c2f5 The controller may miss the sleep time caculated before. So it will stuck
in the loop to get the deep sleep HW flag. Then the watchdog issue happen.
2021-08-11 14:28:24 +08:00
Zim Kalinowski
52b36b0ef9 Merge branch 'bugfix/esp_event_any_id_unregister_4.1' into 'release/v4.1'
ESP Event: fix unregister documentation (backport 4.1)

See merge request espressif/esp-idf!14432
2021-08-10 03:37:19 +00:00
Zim Kalinowski
c809c33caa Merge branch 'bugfix/setjmp_longjmp_4.1' into 'release/v4.1'
[system]: Made longjmp save for context switch (backport v4.1)

See merge request espressif/esp-idf!13502
2021-08-10 03:35:12 +00:00
Zim Kalinowski
0870b1a1b9 Merge branch 'bugfix/missing_extern_c_4.1' into 'release/v4.1'
[test_utils]: added extern C decl to ccomp (backport 4.1)

See merge request espressif/esp-idf!14328
2021-08-10 03:32:10 +00:00
Wang Meng Yang
c4a519de29 Merge branch 'bugfix/spp_connect_20_fail_v4.1' into 'release/v4.1'
component_bt: fix spp acceptor deadlock

See merge request espressif/esp-idf!14107
2021-08-10 03:03:48 +00:00
Zim Kalinowski
05ed8331bc Merge branch 'feature/twdt_prints_backtrace_v4.1' into 'release/v4.1'
Add Task Watchdog backtrace printing (v4.1)

See merge request espressif/esp-idf!12617
2021-08-10 02:42:43 +00:00
Zim Kalinowski
4703f33c5e Merge branch 'feature/skip_known_failure_cases_v4.1' into 'release/v4.1'
CI: Ignore Known Failure Cases Result (v4.1)

See merge request espressif/esp-idf!14650
2021-08-10 02:26:53 +00:00
Fu Hanxi
980cb0e52d feat(tiny_test_fw): ignore known failure cases result
py
2021-08-10 10:26:47 +08:00
Zim Kalinowski
79566e087b Merge branch 'feature/prevent_unwind_code_linking_4.1' into 'release/v4.1'
[C++]: wrapper functions around unwind code (backport 4.1)

See merge request espressif/esp-idf!13805
2021-08-09 21:39:47 +00:00
Zim Kalinowski
b5dc49fa3b Merge branch 'docs/spi_max_transfer_sz_limit_v4.1' into 'release/v4.1'
spi_docs: Fixed the default value of max_transfer_sz_limit (backport v4.1)

See merge request espressif/esp-idf!14254
2021-08-09 21:34:33 +00:00
Zim Kalinowski
80727f739a Merge branch 'bugfix/prefetch_invalid_v4.1' into 'release/v4.1'
soc: add dummy bytes to ensure instr prefetch always valid (v4.1)

See merge request espressif/esp-idf!12995
2021-08-09 21:18:21 +00:00
Zim Kalinowski
1aad6124b4 Merge branch 'docs/fix_readme_links_v4.1' into 'release/v4.1'
docs: fixed dead readme links (v4.1)

See merge request espressif/esp-idf!14466
2021-08-09 21:17:37 +00:00
Zim Kalinowski
9a0ae975c6 Merge branch 'bugfix/uart_sw_sw_flow_error_typo_v4.1' into 'release/v4.1'
uart: fix typo in error message (v4.1)

See merge request espressif/esp-idf!14615
2021-08-09 21:16:27 +00:00
Zim Kalinowski
783851f350 Merge branch 'feature/regi2c_add_lock_v4.1' into 'release/v4.1'
regi2c: add a spinlock for accessing (reg)I2C devices (v4.1)

See merge request espressif/esp-idf!13715
2021-08-09 21:15:51 +00:00
Zim Kalinowski
6ba4f298e3 Merge branch 'update/version_4_1_2' into 'release/v4.1'
Update version to 4.1.2

See merge request espressif/esp-idf!14553
2021-08-09 21:12:27 +00:00
Roland Dobai
e5276b2c4c Merge branch 'feature/oocd_ver_upgrade_v4.1' into 'release/v4.1'
tools: Updates OpenOCD version to 'v0.10.0-esp32-20210721' (v4.1)

See merge request espressif/esp-idf!14695
2021-08-09 15:26:09 +00:00
xiongweichao
aec82dca51 fix spp acceptor deadlock 2021-08-09 11:06:12 +08:00
Alexey Gerenkov
0377a85d12 tools: Updates OpenOCD version to 'v0.10.0-esp32-20210721' 2021-08-06 21:40:19 +03:00
Darian Leung
57d8934707 Add Task Watchdog backtrace printing
This commit makes the Task Watchdog print the backtrace of both
cores when it times out.
2021-08-06 13:37:53 +08:00
Mahavir Jain
99c1ef8a32 Merge branch 'bugfix/fix_truncated_headers_for_esp_http_client_v4.1' into 'release/v4.1'
esp_http_client: Fix header truncated when responded header length over buffer_size (backport v4.1)

See merge request espressif/esp-idf!14385
2021-08-06 05:22:12 +00:00
Mahavir Jain
2331c1d59e Merge branch 'feature/upgrade_mbedtls_to_v4.1' into 'release/v4.1'
mbedtls: upgrade to release v2.16.11 (v4.1)

See merge request espressif/esp-idf!14439
2021-08-06 05:18:12 +00:00
Mahavir Jain
5aa828a364 Merge branch 'fix/memory_leaks_identified_by_cppcheck_v4.1' into 'release/v4.1'
Fix/memory leaks identified by cppcheck (v4.1)

See merge request espressif/esp-idf!14503
2021-08-06 05:17:35 +00:00
Wang Meng Yang
f86a4c4cdb Merge branch 'bugfix/fix_a2dp_sink_blocked_v4.1' into 'release/v4.1'
Bugfix/Fix a2dp Sink Blocked Bugs[backport v4.1]

See merge request espressif/esp-idf!14013
2021-08-06 03:20:00 +00:00
KonstantinKondrashov
ad073b5a1d otatool: Fix a crash when imported as external python lib
Closes: https://github.com/espressif/esp-idf/issues/6733
2021-08-05 15:30:58 +08:00
Fu Hanxi
4357d05974 ci: update performance test key to db compatible format 2021-08-04 12:27:05 +08:00
KonstantinKondrashov
3b988e7f7d freertos: Increases delta for UT - Test suspend-resume CPU. The number of tick_hook should be the same for both CPUs 2021-08-03 16:01:29 +05:00
Marius Vikhammer
ac8c621d24 uart: fix typo in error message
Closes https://github.com/espressif/esp-idf/issues/7360
2021-08-03 09:28:53 +08:00
Roland Dobai
b962a91ad4 Merge branch 'bugfix/xtensa_extra_info_register_values_v4.1' into 'release/v4.1'
espcoredump.py: Parse EPS and EPC register values using register index (v4.1)

See merge request espressif/esp-idf!14566
2021-08-02 11:19:42 +00:00
Omar Chebib
c27290f205 regi2c: add a spinlock for accessing (reg)I2C devices
When not compiling bootloader, a spinlock will be used for reading or writing
I2C internal devices/registers.
When compiling for bootloader, no need to use any lock.
2021-07-31 17:30:07 +08:00
Anton Maklakov
10ce0ef6cd Merge branch 'bugfix/ci_fix_test_build_system_cmake_v4.1' into 'release/v4.1'
ci: Fix concurrency issues for macOS build system tests (v4.1)

See merge request espressif/esp-idf!14401
2021-07-30 09:59:46 +00:00
Shubham Patil
fae314099d espcoredump.py: Parse EPS and EPC register values using register index 2021-07-30 16:34:15 +08:00
Anton Maklakov
a121a37edb Merge branch 'bugfix/ttfw_fix_flush_index_error_v4.1' into 'release/v4.1'
test: TTFW fix flush index error (v4.1)

See merge request espressif/esp-idf!14262
2021-07-30 06:36:04 +00:00
Wang Meng Yang
1b2ef2ea78 Merge branch 'bugfix/fix_scan_timeout_mr_4.1' into 'release/v4.1'
Fix the scan timeout report

See merge request espressif/esp-idf!14447
2021-07-29 07:59:27 +00:00
Michael (XIAO Xufeng)
4427586902 Merge branch 'test/flash_perf_thr_update_by_grafana_avg_v4.1' into 'release/v4.1'
ci: adjust spi_flash performance value according to more test data (v4.1)

See merge request espressif/esp-idf!14118
2021-07-29 06:44:31 +00:00
Michael (XIAO Xufeng)
8dcaedcf62 ci: adjust spi_flash performance value according to more test data
After we have the performance dashboard, we have more data and no longer depend on the threshold to ensure performance.
Set looser performance thresholds to avoid CI failure.
2021-07-29 14:44:26 +08:00
yuanjm
e62a4f1a58 eth2ap: Fix eth2ap example crash issue
Closes https://github.com/espressif/esp-idf/issues/7260
2021-07-29 10:48:31 +08:00
He Yin Ling
c198f34f48 versions: Update version to 4.1.2 2021-07-28 17:46:16 +08:00
Mahavir Jain
92d703e1f3 Merge branch 'bugfix/ci_ble_wifi_example_test_v4.1' into 'release/v4.1'
Fix for ble and wifi example test (v4.1)

See merge request espressif/esp-idf!13804
2021-07-28 07:33:43 +00:00
aleks
2512f394ca freemodbus: add affinity option for modbus stack tasks 2021-07-28 08:37:20 +02:00
Shivani Tipnis
9150ab30cf ble-wifi-example-tests: Add fixes and cleanups to ble and wifi tests
(cherry picked from commit 2d22374460)
2021-07-27 21:13:06 +08:00
Anton Maklakov
d28158ca15 Merge branch 'feature/idf_tools_darwin_arm64_v4.1' into 'release/v4.1'
tools: idf_tools.py: allow macOS x86_64 tools to be installed on arm64 (v4.1)

See merge request espressif/esp-idf!14073
2021-07-27 10:11:25 +00:00
Ivan Grokhotkov
d73fa298d1 tools: idf_tools.py: allow macOS x86_64 tools to be installed on arm64
Until arm64 tool binaries are available, we can run existing x86_64
ones under emulation.

Suggested in https://github.com/espressif/esp-idf/issues/6113.
2021-07-27 16:20:17 +08:00
Mahavir Jain
051686ca14 Merge branch 'bugfix/update_ota_cert_v4.1' into 'release/v4.1'
OTA examples: Update server certificate (v4.1)

See merge request espressif/esp-idf!14356
2021-07-26 15:16:06 +00:00
Alex Henrie
06ea5da2c8 Fix memory leak on error path in register_select
And remove dead error handling code from unregister_select.

Closes https://github.com/espressif/esp-idf/pull/7296
2021-07-25 07:44:43 +05:30
Alex Henrie
7e7d4e291d Fix memory leak on error path in http_header_set_format 2021-07-25 07:44:43 +05:30
Alex Henrie
88abe2a4cb Fix memory leak on error path in md5_printf 2021-07-25 07:44:42 +05:30
Krzysztof Budzynski
49e5961ec5 Merge branch 'docs/fix_UART_default_pin_error_and_provide_a_link_to_ESP_PROG_v4.1' into 'release/v4.1'
docs: fix uart default pin error and provide more information about ESP-Prog board (v4.1)

See merge request espressif/esp-idf!13970
2021-07-23 11:19:01 +00:00
Michael (XIAO Xufeng)
61a7165212 Merge branch 'feature/support_for_esp32_pico_v3_02_v4.1' into 'release/v4.1'
psram: support for esp32-pico-v3-02 (backport v4.1)

See merge request espressif/esp-idf!14267
2021-07-23 10:52:14 +00:00
Roland Dobai
8b27636d5a Merge branch 'ci/rename_test_log_path_v4.1' into 'release/v4.1'
CI: rename log path of IT jobs (v4.1)

See merge request espressif/esp-idf!14454
2021-07-22 13:55:05 +00:00
chenjianqiang
59a07d40ad psram: support for esp32-pico-v3-02
1. Support for 16Mbit PSRAM
2. Support for esp32-pico-v3-02
3. Use package identifier to look up SPI flash/PSRAM WP Pin, unless overridden
2021-07-22 18:19:23 +08:00
Marius Vikhammer
fb0a6022f5 docs: fixed dead readme link 2021-07-21 17:36:23 +08:00
Roland Dobai
802eb855bc Merge branch 'bugfix/link_gcov_rtio_backport_v4.1' into 'release/v4.1'
Bugfix/link gcov rtio backport v4.1

See merge request espressif/esp-idf!13834
2021-07-21 06:57:41 +00:00
He Yin Ling
208781f022 CI: rename log path of IT jobs 2021-07-21 10:28:52 +08:00
Yang Zhao
23fddb4b48 This is to fix the hardware bug. The device may report scan event
timeout when scaning.If check this error,then reset the rwble core.
2021-07-20 20:44:50 +08:00
Wang Fang
2df08f3445 docs: Correct uart default pin names and provid more information about ESP-Prog board 2021-07-20 17:11:54 +08:00
Mahavir Jain
1c4114a758 mbedtls: upgrade to release v2.16.11
For detailed release notes please refer to:
https://github.com/ARMmbed/mbedtls/releases/tag/v2.16.11
2021-07-20 14:33:27 +05:30
Roland Dobai
e17cdbf2fb Merge branch 'bugfix/idf_tools_not_found_issue_v4.1' into 'release/v4.1'
tools: Catch OSError which is raised when the tool is not available (v4.1)

See merge request espressif/esp-idf!14135
2021-07-20 08:19:22 +00:00
Jakob Hasse
afa8599a91 [esp_event]: fixed and improved docs
* Description of unregistering was incorrect
* Made clear that event loop arg mustn't be NULL
* Added parameter check in create function

Closes https://github.com/espressif/esp-idf/issues/6761
Closes IDFGH-4969
2021-07-20 15:57:59 +08:00
Jiang Jiang Jian
c7b83717b0 Merge branch 'bugfix/concurrent_mode_sae_crash_fix_v4.1' into 'release/v4.1'
esp_wifi: Fix some wifi bugs(v4.1)

See merge request espressif/esp-idf!14239
2021-07-20 04:11:46 +00:00
Jiang Jiang Jian
31594a0ae5 Merge branch 'bugfix/a2dp_deint_crash_v4.1' into 'release/v4.1'
fix a2dp deinit crash

See merge request espressif/esp-idf!14362
2021-07-20 03:14:34 +00:00
Jiang Jiang Jian
2fd3f8e076 Merge branch 'bugfix/SCO_connect_fail_after_peer_not_accept_sniff_v4.1' into 'release/v4.1'
bugfix/unable to initiate SCO connection when peer device not accept sniff mode (v4.1)

See merge request espressif/esp-idf!14365
2021-07-19 07:30:04 +00:00
aditi_lonkar
865453bbe5 esp_wifi: Fix some wifi bugs
Add station based check for auth frame formation.
    Remove dependency of SHA256 AKM on PMF.
    Fix Block Ack setup issue in PMF scenario(aggregation issue).
2021-07-19 12:38:54 +05:30
wangmengyang
b60af85f98 component/bt: Fix some bugs in bluetooth controller(2fcbe897)
1. Fixed BLE ACL tx flush issue during reset.
2. Added remove sniff when peer not accepted sniff mode
3. Fixed crash issue when using scan parameter(window=4 slot, interval=5 slot)
4. Removed duplicated events in lld_evt_end
2021-07-19 07:54:59 +08:00
Yang Zhao
d75cb43257 bugfix:Set address resolution enable. If not set enable and the filter
policy is 2 or 3, the controller will reply with invalid param error.
2021-07-19 07:54:59 +08:00
Sergei Silnov
efe7820d3e ci: Fix concurrency issues for macos buildsystem tests 2021-07-16 14:26:07 +02:00
Jiang Jiang Jian
e1b0e367f5 Merge branch 'bugfix/rm_esp32s2beta' into 'release/v4.1'
esp_wifi: rm esp32s2beta in release v4.1

See merge request espressif/esp-idf!14154
2021-07-16 10:42:11 +00:00
xiongweichao
2be0def9b5 Not initialized or in the process of de-initialization, calling API will return ERR 2021-07-16 16:49:17 +08:00
xiongweichao
b681d4e415 fix a2dp deinit crash 2021-07-16 11:58:40 +08:00
yuanjm
96a49aebb7 esp_http_client: Optimize code structure 2021-07-15 16:30:46 +08:00
Clickau
bb675184bf esp_http_client: fix truncated headers
Signed-off-by: yuanjm <yuanjianmin@espressif.com>

Merges https://github.com/espressif/esp-idf/pull/6370
2021-07-15 16:30:41 +08:00
He Yin Ling
8f7f429488 CI: remove ESP32S2Beta related jobs 2021-07-15 11:59:58 +08:00
He Yin Ling
ab830517bf CI: remove wifi lib md5 test on ESP32S2beta 2021-07-15 11:59:58 +08:00
ChenJianxing
9c897ef280 esp_wifi: rm esp32s2beta 2021-07-15 11:59:55 +08:00
KonstantinKondrashov
082c534ca3 newlib: Fix a case in FD_ISSET macro when n==-1 2021-07-15 11:18:31 +08:00
KonstantinKondrashov
1c54276021 otatool: Fixes read_ota_partition cmd, required output arg
Closes: https://github.com/espressif/esp-idf/issues/6559
2021-07-15 11:15:36 +08:00
Shubham Kulkarni
1630fd6abb OTA examples: Updated server certificate 2021-07-14 12:50:05 +05:30
He Yin Ling
18b6a45146 ttfw: fix incorrect length when flush data cache after expect:
data cache is unicode. while we use bytes in RegEx expect. The index of
matched pattern is calculated with bytes, could be different from
unicode. Now we fix this issue by using unicode in expect.
2021-07-14 11:57:32 +08:00
Jakob Hasse
db636f6a6b [test_utils]: added extern C decl to ccomp
Closes https://github.com/espressif/esp-idf/issues/7121
2021-07-12 14:48:51 +08:00
Marius Vikhammer
0dfe45249a soc: add dummy bytes to ensure instr prefetch always valid
The CPU might prefetch instructions, which means it in some cases
will try to fetch instruction located after the last instruction in
flash.text.

Add dummy bytes to ensure fetching these wont result in an error,
 e.g. MMU exceptions
2021-07-12 09:18:15 +08:00
morris
c69ceefb27 Merge branch 'bugfix/timer_example_crashed_not_calling_timer_group_set_alarm_value_in_isr_v4.1' into 'release/v4.1'
driver/timer: fixed auto reload problem in default isr callback (backport to 4.1)

See merge request espressif/esp-idf!13531
2021-07-06 12:48:31 +00:00
Michael (XIAO Xufeng)
0e36a7e3c0 spi_docs: Fixed the default value of max_transfer_sz.
(cherry picked from commit e89fabb963)
2021-07-05 14:15:39 +08:00
fuzhibo
21150d9286 bugfix(adc): missing ranges of ADC codes in ESP32 2021-07-04 22:22:40 +08:00
Angus Gratton
47a5ef0b56 Merge branch 'bugfix/ringbuf_cache_disabled_test_v4.1' into 'release/v4.1'
esp_ringbuf: don't test xRingbufferCreate with cache disabled

See merge request espressif/esp-idf!14204
2021-07-02 05:52:05 +00:00
Krzysztof Budzynski
1f1de86ed9 Merge branch 'docs/windows_installer_2.9_backport_4.1' into 'release/v4.1'
docs: update Windows Tools 2.9 installation - backport 4.1

See merge request espressif/esp-idf!14191
2021-07-01 14:27:02 +00:00
Yang Zhao
8acac6fb74 bugfix:Set address resolution enable. If not set enable and the filter
policy is 2 or 3, the controller will reply with invalid param error.
2021-07-01 16:02:23 +08:00
Juraj Michálek
1738f01c10 docs: update Windows Tools 2.9 installation 2021-06-30 12:47:51 +02:00
Ivan Grokhotkov
66e45d143b esp_ringbuf: don't test xRingbufferCreate with cache disabled
Creating a ringbuffer is not an operation that needs to be done when
the cache is disabled.
2021-06-30 12:01:19 +02:00
Wang Meng Yang
f8997beb0d Merge branch 'bugfix/fix_data_length_callback_param_err_v4.1' into 'release/v4.1'
Fixed data length update callback parameters error(back port v4.1)

See merge request espressif/esp-idf!14182
2021-06-30 05:57:58 +00:00
Anton Maklakov
1b792c4687 Merge branch 'bugfix/gdbstub_threads_and_tests_v4.1' into 'release/v4.1'
gdbstub: fix thread list generation, add tests (v4.1)

See merge request espressif/esp-idf!14054
2021-06-30 04:28:09 +00:00
zwj
c6897a43ce - fix data length update failed
- fix no callback when the value being used is the same as the value to be set
2021-06-29 14:13:56 +08:00
Angus Gratton
9d82fc4447 Merge branch 'bugfix/pthread_join_debug_log_v4.1' into 'release/v4.1'
pthread: Fix possible deadlock when using pthread_join() and Debug log level (v4.1)

See merge request espressif/esp-idf!13778
2021-06-28 04:37:34 +00:00
Michael (XIAO Xufeng)
62034d4432 Merge branch 'bugfix/i2s_apll_disable_issue_v4.1' into 'release/v4.1'
backport: Bugfix/i2s apll disable issue to release/v4.1

See merge request espressif/esp-idf!14008
2021-06-27 13:34:39 +00:00
David Čermák
9bd41e2431 Merge branch 'feature/mqtt_intro_new_modes_v4.1' into 'release/v4.1'
MQTT:  Update submodule reference to support new config modes (v4.1)

See merge request espressif/esp-idf!13709
2021-06-24 09:49:34 +00:00
Roland Dobai
7a8c9d88e9 tools: Catch OSError which is raised when the tool is not available
Closes https://github.com/espressif/esp-idf/issues/7140
2021-06-24 09:28:11 +02:00
Jiang Jiang Jian
da8f10bbac Merge branch 'test/wifi_connect_with_full_scan_in_examples_v4.1' into 'release/v4.1'
example: set example wifi scan method to all channel (v4.1)

See merge request espressif/esp-idf!13914
2021-06-24 06:14:26 +00:00
Jiang Jiang Jian
97c8be7194 Merge branch 'bugfix/fix_amsdu_fragment_vulnerability_v4.1' into 'release/v4.1'
esp_wifi: fix amsdu & fragment vulnerabilities(v4.1)

See merge request espressif/esp-idf!14077
2021-06-24 05:21:59 +00:00
Angus Gratton
1e9367f48e Merge branch 'bugfix/elf_sha256_first_byte_skip_v4.1' into 'release/v4.1'
app_update: fix incorrect first byte from esp_ota_get_app_elf_sha256 (v4.1)

See merge request espressif/esp-idf!13664
2021-06-24 01:55:30 +00:00
Ivan Grokhotkov
de3a428985 Merge branch 'feature/codeowners_v4.1' into 'release/v4.1'
add simplified CODEOWNERS file for older release branches (v4.1)

See merge request espressif/esp-idf!14092
2021-06-23 08:06:36 +00:00
Mahavir Jain
cd961e7fff Merge branch 'bugfix/http_client_test_memcorupt_v4.1' into 'release/v4.1'
ci/test: Fix esp_http_client test not to use pointer after free (v4.1)

See merge request espressif/esp-idf!13702
2021-06-23 03:29:46 +00:00
He Yin Ling
f5db736aa6 example: set example wifi scan method to all channel:
in CI example test we could have runners with same SSID in the same lab.
Use scan on all channel will let DUT connect to the AP with best RSSI.
2021-06-23 10:16:48 +08:00
Angus Gratton
1ea2b57b41 Merge branch 'bugfix/ldgen_ignore_nonexistent_archives_and_obj_v4.1' into 'release/v4.1'
ldgen: check mappings (v4.1)

See merge request espressif/esp-idf!14058
2021-06-22 23:34:31 +00:00
Ivan Grokhotkov
5e2fceafa6 add simplified CODEOWNERS file for older release branches 2021-06-22 09:23:13 +02:00
David Čermák
fb9f140fa5 Merge branch 'bugfix/mqtt_examples_certificates_update_v4.1' into 'release/v4.1'
bugfix/mqtt examples: Updates the CA certificates used. (v4.1)

See merge request espressif/esp-idf!13127
2021-06-22 06:06:30 +00:00
Ivan Grokhotkov
51ee6e482e Merge branch 'feature/oocd_ver_backport_v4.1' into 'release/v4.1'
Feature/oocd ver backport v4.1

See merge request espressif/esp-idf!11379
2021-06-21 16:15:01 +00:00
Ivan Grokhotkov
004ea31cb7 Merge branch 'bugfix/loadable_elf_test_eco3_v4.1' into 'release/v4.1'
tests: gdb_loadable_elf: adjust the breakpoint location for ESP32 ECO3 (v4.1)

See merge request espressif/esp-idf!14041
2021-06-21 15:50:31 +00:00
David Cermak
6980b57a97 ci/test: Fix esp_http_client test not to use pointer after free 2021-06-21 21:47:39 +08:00
Euripedes Rocha
e0c2145cc7 bugfix/mqtt examples: Updates the CA certificates used.
- Updates the CA certificates.
- Updates the URI names to reflect the new URI in the service used in
  the examples.

Closes IDFGH-4986
Closes https://github.com/espressif/esp-idf/issues/6776
2021-06-21 21:45:08 +08:00
liqigan
72e5dfb4e3 fix a2dp sink RxSbcQ bugs
Closes https://github.com/espressif/esp-idf/issues/6712
Closes https://github.com/espressif/esp-idf/issues/7100
2021-06-21 20:16:42 +08:00
ChenJianxing
e2526915b7 esp_wifi: fix amsdu & fragment vulnerabilities 2021-06-21 19:26:43 +08:00
Wang Meng Yang
14e6b55923 Merge branch 'feat/ble_mesh_make_unprov_beacon_interval_configurable_v4.1' into 'release/v4.1'
Feat/ble mesh make unprov beacon interval configurable (v4.1)

See merge request espressif/esp-idf!14063
2021-06-21 09:22:28 +00:00
Wang Meng Yang
620049646d Merge branch 'bugfix/btdm_set_discoverable_after_create_server_v4.1' into 'release/v4.1'
components/bt: Set discoverable after create server

See merge request espressif/esp-idf!13727
2021-06-21 09:15:48 +00:00
wangjialiang
16898897a9 ble_mesh: stack: Fix crash for net_key_del when subnet is NULL 2021-06-21 11:26:10 +08:00
wangjialiang
9aecaa6fd0 ble_mesh: stack: Make unprovisioned beacon interval configurable.
Closes https://github.com/espressif/esp-idf/issues/6722
2021-06-21 11:26:03 +08:00
Renz Bagaporo
bf341d966c components: fix ldgen check errors 2021-06-21 09:52:03 +10:00
Renz Bagaporo
b9d288879d ci: exempt upstream libmbedtls mapping for sha256 2021-06-21 09:45:23 +10:00
Renz Bagaporo
23aff378f4 ldgen: fix sections info parsing
Fixes an issure where the first part of an object file name is not
included, due to matching the rule for a section entry previously.

Reduce depedency on matching literal strings in sections which might
change depending on toolchain (ex. matching 'elf32-xtensa-le')

Make sure parsing rule succeeds for the entirety of the sections info
string by adding 'parseAll=True'.

Add test for sections info parsing.
2021-06-21 09:45:23 +10:00
Renz Bagaporo
ffefe603ae ci: enabled ldgen mapping check in ci 2021-06-21 09:45:23 +10:00
Renz Bagaporo
8c6ec0bd48 ldgen: allow checking mappings 2021-06-21 09:36:26 +10:00
Ivan Grokhotkov
8ef0017662 gdbstub: fix thread list generation
This commit fixes an issue with gdbstub, where it would list threads
with TIDs 1 to N in qfThreadInfo/qsThreadInfo responses, and then
would tell GDB that the current TID is 0 in the qC response. This
caused an assertion failure in GDB, because it couldn't find the
thread structure corresponding to TID 0:

src/gdb/gdb/thread.c:93: internal-error: thread_info* inferior_thread(): Assertion `tp' failed.

The issue was caused by the logic of qfThreadInfo/qsThreadInfo.
If the "paniced" task index was 1, the code would report it in the
response to qfThreadInfo, and then mistakenly skip task with index 0
in qsThreadInfo, due to the use of pre-increment instead of a
post-increment.

With that issue fixed, GDB assertion doesn't happen anymore. However
the code contained a deeper problem, which manifested itself in the
fact that GDB would incorrectly show task index 0 as the current task,
after the above fix.

Previous version of the code assumed that when GDB requests the thread
list, it uses the first thread returned by the target as the "default"
thread, and subsequently shows the user that the program is stopped
in that thread. This assumption was incorrect. In fact, after
connecting to a remote target, GDB obtains information about the
"default" or "current" thread from two sources:
1. the 'thread' special register indicated in the status response
   ($T00thread;00000001#ee)
2. if the target has only sent the plain stop response ($T00#ee), GDB
   would ask for the current thread using a qC packet.
With that in mind, it is not necessary to report the paniced task as
the first task in qfThreadInfo response. We can simply returns the
tasks in their natural order, and then indicate the current task in
the qS packet response.

However even that change does not fully resolve the issues with task
list. The previous version of this code also incorrectly interpreted
the meaning of GDB TIDs -1 and 0. When GDB sends an "Hg0" command
early in the connection process, it doesn't expect the server to set
task 0 as the current task, as the code assumed. Rather, it tells the
server to "set any (arbitrary) task as the current one", and the most
logical thing to do for the server that is already in "stopped" state
is to keep the current task selection.

Since TID 0 has a special meaning in GDB remote protocol, gdbstub code
is now modified to map task indices (which start from 0) to GDB TIDs.
GDB TIDs are arbitrary, and for simplicity we keep the same order and
start counting them from 1.

The summary of all the above changes is:

1. Use "task index + 1" as the TID reported to GDB
2. Report the tasks in natural order; don't complicate the code to
   make the paniced task first in the list.
3. Centralize modification of 'current_task_index' and 'regfile'
   in the new 'set_active_task' function, to improve encapsulation.
2021-06-18 16:04:02 +02:00
Ivan Grokhotkov
f9f318d666 cmake: set IDF_VERSION_* variables at requirement expansion stage
Currently IDF_VERSION_* variables are not available to the component
CMakeLists.txt files at the requirements expansion stage. This makes
it harder to write component CMakeLists files compatible with
different IDF versions.

Include version.cmake from the requirements expansion script, add a
build system test.
2021-06-18 15:29:53 +02:00
Ivan Grokhotkov
0d5ec69adc tests: gdb_loadable_elf: adjust the breakpoint location for ESP32 ECO3
The previous location was the return from the first ets_printf call
that prints ROM sign-on message. Since the main function was patched
in ECO3, the new address no longer works — there is no instruction at
0x40007901 in ECO3 ROM. This could be solved by setting two
breakpoints (one would work for ECO <=2, the other for ECO3), but we
would need to remove the unused breakpoint later.
Fix this by setting the breakpoint at ets_printf. This means that when
debugging a loadable ELF the ROM sign-on message will no longer be
shown, but this doesn't seem to be an issue.
2021-06-18 15:10:06 +02:00
Krzysztof Budzynski
ac5511972f Merge branch 'bugfix/make_docs_ldgen_v4.1' into 'release/v4.1'
docs: remove quotes in ldgen documentation for adding fragment file (v4.1)

See merge request espressif/esp-idf!14002
2021-06-18 08:44:21 +00:00
Island
4dab171c9f Merge branch 'bugfix/AuthValue_leak_v4.1' into 'release/v4.1'
ble_mesh: stack: Fix AuthValue Leak and Predictable AuthValue in Bluetooth... (v4.1)

See merge request espressif/esp-idf!14007
2021-06-18 06:09:37 +00:00
Krzysztof Budzynski
d8ef56e630 Merge branch 'docs/update_docs_for_doc_751_v4.1' into 'release/v4.1'
docs: update the documents based on customer feedbacks (v4.1)

See merge request espressif/esp-idf!13960
2021-06-17 10:14:00 +00:00
Itay Perl
27fe437412 app_update: fix incorrect first byte from esp_ota_get_app_elf_sha256
At -O2 optimization level, GCC seems to optimize out the copying of the
first byte of the checksum, assuming it is zero. This "miscompilation"
happens because the esp_app_desc struct is declared const, but then modified
post-compilation. Casting to volatile disables the optimization.

Closes: https://github.com/espressif/esp-idf/pull/6389
2021-06-17 17:32:49 +08:00
wangjialiang
bfcaa64b49 ble_mesh: stack: Fix AuthValue Leak and Predictable AuthValue in Bluetooth Mesh Provisioning Leads to MITM 2021-06-17 17:23:49 +08:00
morris
41c82efcb9 i2s: fix driver uninstall issue 2021-06-17 16:37:11 +08:00
Island
cb1a17e7ce Merge branch 'bugfix/impersonation_attacks_and_AuthValue_disclosure_v4.1' into 'release/v4.1'
ble_mesh: stack: Add check the value of Provisioning Random & Confirmation... (v4.1)

See merge request espressif/esp-idf!13930
2021-06-17 07:20:12 +00:00
Renz Bagaporo
c97984de99 docs: remove quotes in ldgen documentation for adding fragment file
Closes https://github.com/espressif/esp-idf/issues/5142
2021-06-17 09:13:40 +02:00
laokaiyao
45ee699eae driver/timer: only re-enable alarm in callback when auto reload is true
closes https://github.com/espressif/esp-idf/issues/7001
2021-06-17 10:37:32 +08:00
wangjialiang
4c453660ae ble_mesh: stack: Add check the value of Provisioning Random & Confirmation sent and received by provisioner 2021-06-16 17:03:38 +08:00
Michael (XIAO Xufeng)
fd1a67dd61 Merge branch 'bugfix/spi_flash_cs_setup_v4.1' into 'release/v4.1'
spi_flash: fix cs line setup to make the flash driver more stable(backport v4.1)

See merge request espressif/esp-idf!13964
2021-06-16 07:36:06 +00:00
David Čermák
1f76c9014b Merge branch 'bugfix/start_emac_after_phy_reset_v4.1' into 'release/v4.1'
esp_eth: restart negotiation in esp_eth_start (v4.1)

See merge request espressif/esp-idf!13700
2021-06-16 06:00:32 +00:00
Jiang Jiang Jian
84f3d3e69a Merge branch 'bugfix/enable_pmf_in_iperf_test_v4.1' into 'release/v4.1'
iperf example: set PMF capable to connect to PMF required APs (v4.1)

See merge request espressif/esp-idf!13871
2021-06-16 04:39:17 +00:00
David Čermák
afb5248ec8 Merge branch 'bugfix/mdns_interface_del_crash_v4.1' into 'release/v4.1'
mdns: Fix of crash when wifi interface get deleted and mdns receives the packets(Backport v4.1)

See merge request espressif/esp-idf!13855
2021-06-15 12:00:10 +00:00
Suren Gabrielyan
b1e5705bbd mdns: Fix of crash when wifi interface get deleted and mdns receives the packets
Closes https://github.com/espressif/esp-idf/issues/6973
2021-06-15 16:54:44 +08:00
He Yin Ling
5438706922 Merge branch 'bugfix/example_test_socket_issue_4.1' into 'release/v4.1'
CI: example test socket issue (4.1)

See merge request espressif/esp-idf!13906
2021-06-15 08:48:27 +00:00
Michael (XIAO Xufeng)
cd99f0856c Merge branch 'bugfix/freemodbus_change_max_task_prio_v41' into 'release/v4.1'
Bugfix/freemodbus change max task prio (backport v4.1)

See merge request espressif/esp-idf!13721
2021-06-15 07:55:03 +00:00
Cao Sen Miao
7180526645 spi_flash: fix cs line setup to make the flash driver more stable 2021-06-15 15:11:47 +08:00
Wang Fang
b9ca1e9b48 docs: update the documents based on customer feedbacks 2021-06-15 14:54:11 +08:00
Anton Maklakov
d7612c14c9 Merge branch 'ci/unify_all_target_test_artifacts_paths_v4.1' into 'release/v4.1'
ci: unify target test artifacts to all .log file and $LOG_PATH (v4.1)

See merge request espressif/esp-idf!13850
2021-06-11 07:32:59 +00:00
Island
a22cd6f542 Merge branch 'bugfix/btdm_enable_gattc_cache_will_crash_v4.1' into 'release/v4.1'
component/bt: fix enable gattc nvs cache lead to crash

See merge request espressif/esp-idf!13917
2021-06-10 02:56:50 +00:00
Wang Meng Yang
1f075dc346 Merge branch 'bugfix/btdm_incorrectly_spelled_v4.1' into 'release/v4.1'
component/bt: fix Spelling mistakes (release v4.1)

See merge request espressif/esp-idf!12817
2021-06-09 10:05:53 +00:00
XieWenxiang
9daeddac0b component/bt: Modify some ambiguous descriptions(release v4.1) 2021-06-09 14:14:18 +08:00
Island
4789575f49 Merge branch 'bugfix/bt_impersonation_passkey_fix_v4.1' into 'release/v4.1'
Bluedroid: Check only x component of passkey to avoid passkey impersonation attack. (v4.1)

See merge request espressif/esp-idf!13760
2021-06-09 02:55:44 +00:00
Chen Yudong
dc433b50b0 test: fix socket issue in iperf example test 2021-06-08 17:20:32 +08:00
He Yin Ling
069182853e test: fix iperf example errors:
1. fix TypeError when running with python3
2. fix throughput chart x/y axis label error
3. make test case compatibile with iperf bin on earlier release branches
2021-06-08 17:20:18 +08:00
Chen Yudong
911cc3710b CI: fix connection failures in asio example tests 2021-06-08 17:18:45 +08:00
xiewenxiang
a1f743772f component/bt: fix enable gattc nvs cache lead to crash 2021-06-07 17:56:55 +08:00
Chinmay Chhajed
74b48f1df7 Bluedroid: Check only x component of passkey to avoid passkey impersonation attack. 2021-06-07 07:18:16 +00:00
Ivan Grokhotkov
935deb4082 Merge branch 'bugfix/idfpy_global_action_callbacks_order_v4.1' into 'release/v4.1'
idf.py: Run global_action_callbacks in predictable order (v4.1)

See merge request espressif/esp-idf!13683
2021-06-07 05:09:49 +00:00
Angus Gratton
1e84e87f7f pthread: Fix possible deadlock when using pthread_join() and Debug log level
Possible for a joined task to be deleted at the moment it is logging,
meaning it might hold the stdout lock. In that case the lock isn't
released and the next task to try and take it (i.e. call printf)
will block indefinitely.
2021-06-07 02:15:36 +00:00
Wang Meng Yang
27a3d44f68 Merge branch 'bugfix/invalid_feat_page_exec_v4.1' into 'release/v4.1'
bt controller: Fixed handling for invalid feature page.

See merge request espressif/esp-idf!13573
2021-06-07 01:50:06 +00:00
He Yin Ling
381f2008ac example: set PMF capable to connect to PMF required APs 2021-06-04 17:59:57 +08:00
Angus Gratton
3e664c8a80 Merge branch 'bugfix/override_cmake_python_v4.1' into 'release/v4.1'
cmake: Minor Python CMake build fixes (v4.1)

See merge request espressif/esp-idf!13196
2021-06-04 05:27:38 +00:00
Fu Hanxi
7b9f8c0e8c ci: unify target test artifacts to all .log file and $LOG_PATH 2021-06-03 17:45:35 +08:00
David Čermák
90a763b5a8 Merge branch 'bugfix/websocket_example_error_handling_v4.1' into 'release/v4.1'
ci: Fix websocket example test error handling (v4.1)

See merge request espressif/esp-idf!13807
2021-06-03 05:42:15 +00:00
Alexey Gerenkov
ce04bc87e1 gcov: Fixes not linked gcov rtio functions 2021-06-02 22:17:56 +03:00
liaowenhao
eb36b63e7d bugfix/fix crash when lmp flooding 2021-06-02 09:48:30 +00:00
baohongde
cf5d810bae components/bt: Delete BLE ADV priority high 2021-06-02 09:48:30 +00:00
Chinmay Chhajed
a81a6c5471 bt controller: Fixed handling for invalid feature page. 2021-06-02 09:48:30 +00:00
wangmengyang
c08d81a91f components/bt: fix PATH of libbtdm_app.a in build script 2021-06-02 09:48:30 +00:00
Angus Gratton
7e0abf78f9 Merge branch 'bugfix/partition_table_integrity_check_v4.1' into 'release/v4.1'
paritition_table: Verify the partition table md5sum when loading in the app (v4.1)

See merge request espressif/esp-idf!13584
2021-06-02 08:54:01 +00:00
Angus Gratton
8d1a99e026 paritition_table: Verify the partition table md5sum when loading the app
Additionally, always enable the partition MD5 check if flash encryption is on in
Release mode. This ensures the partition table ciphertext has not been modified
(CVE-2021-27926).

The exception is pre-V3.1 ESP-IDF bootloaders and partition tables, which
don't have support for the MD5 entry.
2021-06-02 16:31:19 +10:00
Angus Gratton
e836297b55 Merge branch 'feature/idf_tools_github_mirror_v4.1' into 'release/v4.1'
Add GitHub mirror option for IDF tools installs (v4.1)

See merge request espressif/esp-idf!13766
2021-06-01 09:48:12 +00:00
Jakob Hasse
aba87df4f2 [system]: Made longjmp save for context switch
* Patched longjmp to be context-switch safe
  longjmp modifies the windowbase and windowstart
  registers, which isn't safe if a context switch
  occurs during the modification. After a context
  switch, windowstart and windowbase will be
  different, leading to a wrongly set windowstart
  bit due to longjmp writing it based on the
  windowbase before the context switch. This
  corrupts the registers at the next window
  overflow reaching that wrongly set bit.

  The solution is to disable interrupts during
  this code. It is only 6 instructions long,
  the impact shouldn't be significant.

  The fix is implemented as a wrapper which
  replaces the original first instructions of
  longjmp which are buggy. Then, it jumps back
  to execute the rest of the original longjmp
  function.

  Added a comparably reliable test to the
  test apps.
2021-06-01 07:38:50 +00:00
Angus Gratton
10785bc1e4 ci: Fix websocket example test error handling
If connection fails for websocket test, a second exception was generated in
__exit__
2021-06-01 17:18:56 +10:00
Jakob Hasse
ba11976efb [C++]: wrapper functions around unwind code
* Replaced all C++ exception related
  functions with wrappers if -fno-exception
  is used. This prevents linking of the
  corresponding code in libgcc. The code
  size will decrease by around 7-9 KB when
  building with -fno-exception.
* added no except test app

Closes https://github.com/espressif/esp-idf/pull/5380
Closes https://github.com/espressif/esp-idf/issues/5363
Closes https://github.com/espressif/esp-idf/issues/5224
Closes IDFGH-3153
Closes IDF-2577
2021-06-01 14:51:15 +08:00
Ivan Grokhotkov
7c6ada7f86 Merge branch 'feature/installed_tool_failed_v4.1' into 'release/v4.1'
tools: Warning about tool being installed but failed to run. (v4.1)

See merge request espressif/esp-idf!13232
2021-05-31 17:25:24 +00:00
Ivan Grokhotkov
931577bc11 Merge branch 'feature/ci_release_zips_v4.1' into 'release/v4.1'
ci: Use GitHub Actions to generate recursive source code zips for releases (v4.1)

See merge request espressif/esp-idf!13200
2021-05-31 17:23:16 +00:00
Ivan Grokhotkov
ee15d4c3af Merge branch 'feature/IDF-2612_human_readable_error_v4.1' into 'release/v4.1'
export.bat/install.bat: print human-readable error message if Git or Python are not in PATH (v4.1)

See merge request espressif/esp-idf!13228
2021-05-31 17:22:22 +00:00
aleks
998b67094b freemodbus: increase max priority of modbus tasks
allows to avoid issues with modbus processing when higher priority tasks are used in user application
2021-05-31 12:20:15 +02:00
Krzysztof Budzynski
bb2ce2cb4e Merge branch 'bugfix/lwip_docs_delete_while_select_v4.1' into 'release/v4.1'
lw-IP: Add docs about not supported delete of task while blocked on select (v4.1)

See merge request espressif/esp-idf!13678
2021-05-31 02:36:14 +00:00
Angus Gratton
97b6b435a8 docs: Remove some uses of IDF_TARGET_NAME accidentally backported 2021-05-31 11:09:05 +10:00
daiziyan
c8906224fd add CN translation for index.rst in get started section for MR10616 2021-05-31 11:08:00 +10:00
Anton Maklakov
fe3fd4d561 tools: windows installer: Modify IDF's archive mirror link 2021-05-31 11:06:19 +10:00
Ivan Grokhotkov
89568b73d6 tools: windows installer: add support for IDF_GITHUB_ASSETS
Adds a checkbox to download tools from dl.espressif.com mirror.
2021-05-31 11:06:19 +10:00
Angus Gratton
fd91bf4500 tools: Use GitHub download URLs for all files that can be downloaded from GitHub 2021-05-31 11:06:19 +10:00
Angus Gratton
f99c367e5d idf_tools: Add option to replace all GitHub tools download URLs with dl.espressif.com
Via new IDF_GITHUB_ASSETS environment variable.
2021-05-31 11:06:19 +10:00
Michael (XIAO Xufeng)
fa34265c4b Merge branch 'ci/decrease_flash_performance_thr_4.1' into 'release/v4.1'
ci: decrease the flash performance threshold (4.1)

See merge request espressif/esp-idf!13747
2021-05-28 09:10:29 +00:00
Michael (XIAO Xufeng)
1ddac24b0a ci: decrease the flash performance threshold 2021-05-27 14:07:01 +08:00
baohongde
c0a586bdea components/bt: Set discoverable after create server 2021-05-26 11:36:08 +08:00
He Yin Ling
4ae45ff756 Merge branch 'ci/ttfw_fix_dut_exception_not_added_to_junit_report_v4.1' into 'release/v4.1'
ttfw: fix DUT exception not added to junit report (v4.1)

See merge request espressif/esp-idf!13612
2021-05-26 03:12:19 +00:00
Jiang Jiang Jian
3c3eab0bd8 Merge branch 'bugfix/fix_set_channel_error_after_wifi_stop_v4.1' into 'release/v4.1'
esp_wifi: Fix setting channel error after WiFi stop (backport v4.1)

See merge request espressif/esp-idf!13449
2021-05-25 14:53:11 +00:00
Jiang Jiang Jian
2a63d1058e Merge branch 'nimble/fix_ble_sm_sc_pub_key_v4.1' into 'release/v4.1'
NimBLE: Fix MITM vulnerability and free AES context (v4.1)

See merge request espressif/esp-idf!13598
2021-05-25 14:52:59 +00:00
Jiang Jiang Jian
3a12c7ee8d Merge branch 'bugfix/ag_use_dynamic_memory_error_v4.1' into 'release/v4.1'
Fix ag use dynamic memory error

See merge request espressif/esp-idf!13552
2021-05-25 14:28:21 +00:00
Prasad Alatkar
3319702355 NimBLE: Fix MITM vulnerability and free AES context (v4.1) 2021-05-25 14:47:22 +05:30
xiongweichao
7c53e88b05 Remove btc_hf_idx_by_bdaddr in both btc_hf_init and btc_hf_deinit functions 2021-05-25 09:00:09 +00:00
xiongweichao
5b5a36a7b2 fix ag use dynamic memory error 2021-05-25 09:00:09 +00:00
David Cermak
6aa902c509 MQTT: Update submodule reference to support new config modes
* Queueing publish messages to outbox when the client is not connected (default=off -> messages are queued if disconnected)
* Use of incremental msg-id instead of random id (default=off -> msg-id uses platform_random())
* Posting a new event-id if a queued message gets deleted from the outbox (default=off -> events are not posted)

Detailed description of included `esp-mqtt` changes
(da850b0add1e71b3659bfac5d797cc834dc3e89b...9ea804e0ab5368d5ab53ae2301a5fec9d1f12f1a)
* mqtt: Remove unused mqtt_header_state_t
  - esp-mqtt commit: b7158a4aea
  - esp-mqtt MR: espressif/esp-mqtt!84
  - Merges https://github.com/espressif/esp-mqtt/pull/180
* Cleanup public include dirs
  - esp-mqtt commit: f65d5d05db
  - esp-mqtt MR: espressif/esp-mqtt!85
* Config: Add a new option to use incremental message id
  - esp-mqtt commit: 8bb4a26f46
  - esp-mqtt MR: espressif/esp-mqtt!85
  - Closes https://github.com/espressif/esp-mqtt/issues/176
* Publish: Add new API to enqueue qos>0 messages
  - esp-mqtt commit: dc7fd5c0b1
  - esp-mqtt MR: espressif/esp-mqtt!85
  - Closes https://github.com/espressif/esp-mqtt/issues/155
* Config: Add a new option to disable publishing when disconnected
  - esp-mqtt commit: f44dcb1c26
  - esp-mqtt MR: espressif/esp-mqtt!85
  - Related https://github.com/espressif/esp-mqtt/issues/177
* Events: Add new event to report deleted messages from outbox
  - esp-mqtt commit: 2e35d4d4d5
  - esp-mqtt MR: espressif/esp-mqtt!85
* Publish: Allow for qos=0 messages to be stored using esp_mqtt_client_enqueue()
  - esp-mqtt commit: e2de0f3e3e
  - esp-mqtt MR: espressif/esp-mqtt!85
2021-05-25 09:56:29 +02:00
morris
bf9587132b esp_eth: restart negotiation in esp_eth_start 2021-05-25 15:26:09 +08:00
Sergei Silnov
83bda9f63e Run global_action_callbacks in predictable order 2021-05-24 18:20:39 +02:00
David Cermak
bd3de5c295 lwip: Add docs about not supported delete of task while blocked on select 2021-05-24 15:11:09 +02:00
He Yin Ling
f01bfeddb9 ttfw: fix DUT exception not added to junit report 2021-05-20 16:48:17 +08:00
Island
ba35834ec8 Merge branch 'nimble/fix_host_flow_ctrl_v4.1' into 'release/v4.1'
NimBLE: Fix host flow control in NimBLE porting layer and host (release/v4.1)

See merge request espressif/esp-idf!13576
2021-05-19 09:50:15 +00:00
Prasad Alatkar
98116a627e NimBLE: Update submodule to fix host flow control bugs. 2021-05-18 18:46:26 +05:30
Prasad Alatkar
842a55cda3 NimBLE: Fix host flow control in NimBLE porting layer.
- Register `ble_hs_flow_acl_free` callback in NimBLE porting layer.
2021-05-17 19:53:37 +05:30
Michael (XIAO Xufeng)
97a0523b34 Merge branch 'bugfix/timer_spinlock_iram_v4.1' into 'release/v4.1'
timer: add IRAM_ATTR to spinlock give/take API (v4.1)

See merge request espressif/esp-idf!13513
2021-05-15 17:21:27 +00:00
Marius Vikhammer
5241d68bf4 timer: add IRAM_ATTR to spinlock give/take API
Closes https://github.com/espressif/esp-idf/issues/6824
2021-05-13 16:07:01 +08:00
Jiang Jiang Jian
b1a5c00ee7 Merge branch 'bugfix/gtk_reinstallation_fix_v4.1' into 'release/v4.1'
wpa_supplicant: Prevent reinstallation of an already in-use group key (v4.1)

See merge request espressif/esp-idf!13183
2021-05-13 07:35:05 +00:00
Hrudaynath Dhabe
e1af1fe126 wpa_supplicant: Group key reinstallation fixes
This commit reverts previous commit for GTK reinstallation fix
and corrects original fix.
2021-05-13 15:34:58 +08:00
He Yin Ling
4f06532e80 Merge branch 'bugfix/python3_target_test_4.1' into 'release/v4.1'
ci: using python3 to tun target test (4.1)

See merge request espressif/esp-idf!13017
2021-05-11 09:13:33 +00:00
Angus Gratton
966e45598b Merge branch 'bugfix/otatool_wrong_switch_ota_partition_slots_v4.1' into 'release/v4.1'
otatool: Fix incorrect using otadata.seq&crc in switch_ota_partition cmd (v4.1)

See merge request espressif/esp-idf!13369
2021-05-11 02:10:07 +00:00
Ivan Grokhotkov
ad9987f859 esp_pm: fix formatting issues in esp_pm_dump_locks
- line was truncated because 64 characters were not sufficient
- length passed to snprintf should be full buffer length, not -1
- make the width of lock name field fixed
- fix alignment of lock type column
2021-05-10 16:29:29 +00:00
Alexey Gerenkov
49e26e05e9 tools: Updates OpenOCD version to 'v0.10.0-esp32-20210401' 2021-05-10 16:22:43 +00:00
Jiang Jiang Jian
0f1801d6b4 Merge branch 'bugfix/backport_some_lwip_bugs_0428_v4.1' into 'release/v4.1'
lw-ip:backport bugfix lwip for v4.1(backport 4.1)

See merge request espressif/esp-idf!13377
2021-05-10 05:37:29 +00:00
Jiang Jiang Jian
d3f11b1e9d Merge branch 'bugfix/fix_uart_set_rx_timeout_feature_v41' into 'release/v4.1'
Bugfix/fix uart set rx timeout feature (backport v4.1)

See merge request espressif/esp-idf!11538
2021-05-10 03:41:08 +00:00
Alex Lisitsyn
538117a904 Bugfix/fix uart set rx timeout feature (backport v4.1) 2021-05-10 11:41:02 +08:00
Angus Gratton
3a0652602a cmake: Improve the error message if the Python interpreter fails to run
RESULT_VARIABLE will return a string not a number in this case, so display it
for the user.
2021-05-10 03:40:50 +00:00
Angus Gratton
b79fc8271f cmake: Set IDFTOOL variable using the correct PYTHON interpreter variable 2021-05-10 03:40:50 +00:00
Angus Gratton
b8afe13b3a cmake: Fix passing PYTHON path via CMake variable if using IDF as library
Closes https://github.com/espressif/esp-idf/issues/6285
2021-05-10 03:40:50 +00:00
Jiang Jiang Jian
099daf7873 Merge branch 'bugfix/fix_gpio_wakeup_light_sleep_backport_v4.1' into 'release/v4.1'
bugfix: gpio can't wakeup light sleep (backport v4.1)

See merge request espressif/esp-idf!12884
2021-05-10 03:37:28 +00:00
Jiang Jiang Jian
932ac7abf1 Merge branch 'nimble/add_error_prints_acl_buf_v4.1' into 'release/v4.1'
NimBLE: Add error prints for ACL buffer exhaustion in NPL (v4.1)

See merge request espressif/esp-idf!12970
2021-05-10 03:28:06 +00:00
Jiang Jiang Jian
2ac583cd12 Merge branch 'bugfix/endianness_in_output_or_input_oob_v4.1' into 'release/v4.1'
ble_mesh: stack: Fix endianness error in output or input oob data of number (v4.1)

See merge request espressif/esp-idf!13256
2021-05-10 03:27:40 +00:00
Jiang Jiang Jian
db84ddc82f Merge branch 'bugfix/btdm_fix_multi-con_pair_failed_and_cancle_con_state_err_v4.1' into 'release/v4.1'
fix multi con pair failed and cancel con state error (backport v4.1)

See merge request espressif/esp-idf!13476
2021-05-08 13:01:33 +00:00
Jiang Jiang Jian
6eb2b46592 Merge branch 'bugfix/generate_value_0_when_prov_auth_v4.1' into 'release/v4.1'
ble_mesh: stack: Fix provisioning input or output count number should be at least 1 (v4.1)

See merge request espressif/esp-idf!13481
2021-05-08 12:53:59 +00:00
wangjialiang
f50680310e ble_mesh: stack: Fix provisioning input or output count number should be at least 1
Closes https://github.com/espressif/esp-idf/issues/6863
2021-05-08 12:01:11 +08:00
zwj
3d6b03d98c update con state when getting connection cancle complete 2021-05-07 20:51:55 +08:00
zwj
f4cadc56c0 fix multi-connection pair failed 2021-05-07 20:51:43 +08:00
Prasad Alatkar
13756c6a55 NimBLE: Add error prints for ACL buffer exhaustion in NPL 2021-05-07 09:47:01 +00:00
wangjialiang
1b3ac526a7 ble_mesh: stack: Fix endianness error in output or input oob data of number
Closes https://github.com/espressif/esp-idf/issues/6862
2021-05-07 03:35:42 +00:00
Michael (XIAO Xufeng)
9a8dbbc281 Merge branch 'bugfix/spi_fix_duplex_switch_v4.1' into 'release/v4.1'
spi_master: fix duplex mode switch issue for multi devices (4.1)

See merge request espressif/esp-idf!11234
2021-05-06 07:45:29 +00:00
xiehang
b8520d0c9c esp_wifi: Fix setting channel error after WiFi stop 2021-05-06 11:52:26 +08:00
Angus Gratton
492297339c Merge branch 'bugfix/freertos_addition_overflow_v4.1' into 'release/v4.1'
freertos: Fix addition overflow (v4.1)

See merge request espressif/esp-idf!13424
2021-05-05 23:22:49 +00:00
Angus Gratton
189c04279c freertos: Check for arithmetic overflows on queue creation
Addition overflow check is from FreeRTOS kernel commit 47338393f1f79558f6144213409f09f81d7c4837
2021-05-04 18:35:38 +10:00
Angus Gratton
7355493a35 Merge branch 'bugfix/espsecure_args_v4.1' into 'release/v4.1'
esptool: Update to fix espsecure.py sign_data default version argument

See merge request espressif/esp-idf!13319
2021-05-03 05:53:43 +00:00
Angus Gratton
57ff3f92a5 esptool: Update to fix espsecure.py sign_data default version argument
Regression in Secure Boot signing, reported at https://github.com/espressif/esp-idf/issues/6831
2021-05-03 04:44:50 +00:00
Angus Gratton
63685a3a40 ci: Use GitHub Actions to generate recursive source code zips for releases
We do this for all ESP-IDF releases, this step automates it.

Uses action added in https://github.com/espressif/github-actions/pull/10
2021-05-03 04:19:58 +00:00
Jiang Jiang Jian
da66ddd4c1 Merge branch 'bugfix/remove_redundant_other_core_cache_disable_v4.1' into 'release/v4.1'
[system]: Remove redundant othercore cache disable (backport v4.1)

See merge request espressif/esp-idf!13358
2021-04-30 09:18:03 +00:00
Jiang Jiang Jian
cc9d0e1e99 Merge branch 'bugfix/wifi_softap_deep_sleep_current_opt_v4.1' into 'release/v4.1'
backport v4.1: optimize deep sleep current in wifi softap mode

See merge request espressif/esp-idf!13396
2021-04-30 02:50:50 +00:00
xueyunfei
72b35dec11 backport bugfix lwip for v4.1 2021-04-29 13:03:26 +00:00
Mahavir Jain
ffe4d844bf Merge branch 'bugfix/esp_http_client_read_v4.1' into 'release/v4.1'
Fix esp_http_client_read for file size aligned to 289 bytes (v4.1)

See merge request espressif/esp-idf!13307
2021-04-29 06:59:15 +00:00
Li Shuai
f417181e62 deep sleep: optimize sleep current in wifi softap mode 2021-04-29 14:14:15 +08:00
Chen Yudong
9a29375f7d ci: run target test with python3 2021-04-28 18:10:34 +08:00
Shubham Kulkarni
22ca7adccb esp_http_client_read: Add check for esp_http_client_is_complete_data_received before returning ESP_FAIL
Closes: https://github.com/espressif/esp-idf/issues/6772
2021-04-28 05:00:33 +00:00
Krzysztof Budzynski
f9ec761215 Merge branch 'docs/update_CN_trans_buildsystem_v4.1' into 'release/v4.1'
update CN translation for build-system,ulp,unit-tests,and idf-monitor for v4.1

See merge request espressif/esp-idf!13252
2021-04-28 02:47:08 +00:00
KonstantinKondrashov
544fa05bd1 otatool: Fix incorrect using otadata.seq&crc in switch_ota_partition cmd
Closes: https://github.com/espressif/esp-idf/issues/6773
2021-04-27 19:41:17 +08:00
daiziyan
9fe035e4f5 docs:update CN translation for build-system,ulp,unit-tests,and idf-monitor for v4.1 2021-04-27 09:39:01 +00:00
wuzhenghui
dcd6e82826 remove othercore cache disable 2021-04-27 14:37:45 +08:00
Marek Fiala
97631de46c Human-readable error if Git or Python are missing.
When user forgot to add git.exe or python to the PATH, there was a not
very helpful error message.
This improves the error with which tool is misssing and shows a link to
the espressif installer tool.
2021-04-26 14:11:08 +02:00
Marek Fiala
2a82c353d9 tools: Warning about tool beiing installed but failed to run.
idf_tool.py runs "<tool> --version" which returns the error message but it is not used
This improves the error printing.
2021-04-26 13:55:45 +02:00
Angus Gratton
e17a8e1904 Merge branch 'bugfix/extern_c_decl_4.1' into 'release/v4.1'
[cxx]: fixed extern "C" declarations (backport 4.1)

See merge request espressif/esp-idf!12743
2021-04-23 09:59:51 +00:00
Angus Gratton
b63bbedc65 Merge branch 'bugfix/fix_partition_table_in_flash_encryption_example_v4.1' into 'release/v4.1'
example/flash_encryption: Fix partition table (v4.1)

See merge request espressif/esp-idf!10852
2021-04-23 08:08:58 +00:00
William Ferguson
13b0633e8d [cxx]: fixed extern "C" declarations
* Moving #includes above
  #ifdef __cplusplus extern "C" { #endif
  So that we can compile with CPP.

Signed-off-by: Jakob Hasse <jakob.hasse@espressif.com>

Merges https://github.com/espressif/esp-idf/pull/6634
2021-04-23 07:35:47 +00:00
Angus Gratton
fe5c9bb03e Merge branch 'bugfix/calc_8m_freq_test_v4.1' into 'release/v4.1'
rtc: increase CI acceptance range for calc 8M test (v4.1)

See merge request espressif/esp-idf!13087
2021-04-23 07:32:03 +00:00
Jiang Jiang Jian
a418a52ea1 Merge branch 'bugfix/correct_cod_check_v4.1' into 'release/v4.1'
esp-idf: Corrected check of Class of Device for discovered devices (v4.1)

See merge request espressif/esp-idf!13021
2021-04-22 06:06:57 +00:00
Jiang Jiang Jian
75b10c80ff Merge branch 'bugfix/e8192_and_assert_param_v4.1' into 'release/v4.1'
Modify E8192 ELx200 ELx40 log level to LOGD

See merge request espressif/esp-idf!13149
2021-04-22 06:05:38 +00:00
baohongde
12b6656d90 Synchronize multiple branch of bt-lib 2021-04-21 05:29:48 +00:00
xiongweichao
c1215f27ed Modify E8192 ELx200 ELx40 log level to LOGD 2021-04-21 05:29:48 +00:00
Ivan Grokhotkov
92f41b098b Merge branch 'bugfix/broken_virtualenv_v4.1' into 'release/v4.1'
tools: Reinstall virtualenv if it is broken (v4.1)

See merge request espressif/esp-idf!12953
2021-04-20 23:34:20 +00:00
Ivan Grokhotkov
92aed6c759 Merge branch 'bugfix/fix_idf_monitor_unicode_path_crash_v4.1' into 'release/v4.1'
tools: handle exception in case of logging Unicode characters (v4.1)

See merge request espressif/esp-idf!13043
2021-04-20 23:33:38 +00:00
Anton Maklakov
c6db3a426a Merge branch 'bugfix/ci/ci_fetch_submodule_fully_match_return_first_v4.1' into 'release/v4.1'
fix(ci): ci_fetch_submodule return full match name first (v4.1)

See merge request espressif/esp-idf!13212
2021-04-20 02:36:03 +00:00
Fu Hanxi
97649c45eb fix(ci): ci_fetch_submodule return full match name first 2021-04-19 20:24:13 +08:00
Krzysztof Budzynski
6d5bb47512 Merge branch 'bugfix/doxygen_input_file_bug_v4.1' into 'release/v4.1'
docs: fix doxygen compile warnings for doxygen 1.9.1 (v4.1)

See merge request espressif/esp-idf!13078
2021-04-12 00:44:10 +00:00
Marius Vikhammer
7e839a82de docs: fix doxygen compile warnings for doxygen 1.9.1
Newer versions of doxygen will give warnings for comments in
INPUT lists

Delete all comment lines to fix these warnings, our folder structure
stil gives an OK overview of what we are including
2021-04-12 08:44:06 +08:00
Marius Vikhammer
02ce0744f0 rtc: increase CI acceptance range for calc 8M test 2021-04-09 15:06:37 +08:00
Juraj Michálek
f60c8c8164 tools: handle exception in case of logging Unicode characters 2021-04-06 19:17:01 +02:00
Rahul Tank
c3f3dda7df esp-idf: Corrected check of Class of Device for discovered devices
Current code stopped inquiry if major class is not Phone. Modified the
condition to consider for both Phone and Audio to cover majority of real
world devices.

Closes https://github.com/espressif/esp-idf/issues/6548
2021-04-05 15:29:41 +05:30
David Čermák
a92185263e Merge branch 'bugfix/esp_netif_ppp_event_data_v4.1' into 'release/v4.1'
esp-netif: Fix PPP netif event posting to include esp_netif data (v4.1)

See merge request espressif/esp-idf!11869
2021-03-31 14:25:04 +00:00
David Čermák
3a535daa8c Merge branch 'feature/support_transport_keepalive_v4.1' into 'release/v4.1'
Feature/support transport keepalive v4.1 [backport v4.1]

See merge request espressif/esp-idf!12156
2021-03-31 09:37:03 +00:00
David Čermák
9ed4215787 Merge branch 'bugfix/ppp_netif_free_v4.1' into 'release/v4.1'
esp-modem: Remove esp-netif destroy from modem network glue code (v4.1)

See merge request espressif/esp-idf!11873
2021-03-31 09:36:41 +00:00
yuanjm
3826b80f3a Make OTA example support keepalive 2021-03-31 05:44:48 +00:00
Shubham Kulkarni
9933037c0d Add options for esp_http_client and esp_websocket_client to support keepalive 2021-03-31 05:44:48 +00:00
yuanjm
f946e296a2 Modify esp-tls and tcp_transport to support keep alive for tcp and ssl connection 2021-03-31 05:44:48 +00:00
David Cermak
90cdceac39 esp-modem: Remove esp-netif destroy from modem network glue code
To be in line with other interfaces, when deleting the driver and it's glue layer to esp-netif, we DO NOT delete the related esp-netif (since is was allocated and created outside of the glue code and it works the same way in esp-eth and esp-wifi driver/glue layers).

Closes https://github.com/espressif/esp-idf/issues/5486
2021-03-31 05:44:39 +00:00
David Cermak
2da1f2059e esp-netif: Fix PPP netif event posting to include esp_netif data
Closes https://github.com/espressif/esp-idf/issues/6009
2021-03-31 05:43:39 +00:00
Roland Dobai
7638d92400 tools: Reinstall virtualenv if it is broken
Closes https://github.com/espressif/esp-idf/issues/6656
2021-03-29 19:25:59 +02:00
Angus Gratton
a395f3592b Merge branch 'bugfix/dport_init_min_stack_size_v4.1' into 'release/v4.1'
freertos: Increase minimum task stack size when stack smashing checker is enabled (v4.1)

See merge request espressif/esp-idf!12800
2021-03-29 06:26:36 +00:00
Krzysztof Budzynski
e71033b6ee Merge branch 'bugfix/remove_readdocs_badge_v4.1' into 'release/v4.1'
docs: remove read the docs badge (v4.1)

See merge request espressif/esp-idf!12843
2021-03-26 08:31:33 +00:00
Jiang Jiang Jian
44b47f79e1 Merge branch 'bugfix/btdm_controller_task_watchdog_in_wifi_test_v4.1' into 'release/v4.1'
Fix controller task watchdog in Wi-Fi test

See merge request espressif/esp-idf!12709
2021-03-25 06:32:21 +00:00
fuzhibo
b7c4925d0b driver(gpio): fix gpio can't wakeup light sleep 2021-03-24 16:39:16 +08:00
Jiang Jiang Jian
69084bafec Merge branch 'bugfix/btdm_assert_without_sw_coex_enable_v4.1' into 'release/v4.1'
components/bt: Fix assert without sw coexist enabled

See merge request espressif/esp-idf!12528
2021-03-24 03:25:08 +00:00
Jiang Jiang Jian
056890a41a Merge branch 'bugfix/fix_some_wifi_bugs_0105_v4.1' into 'release/v4.1'
Bugfix/fix some wifi bugs 0105 v4.1 (backport v4.1)

See merge request espressif/esp-idf!11881
2021-03-23 16:36:07 +00:00
Marius Vikhammer
0d1da69fb3 docs: remove the read the docs CI badge
Docs are built and hosted on our server, so this badge is
no longer needed.
2021-03-23 12:21:14 +08:00
Jiang Jiang Jian
997ac7e166 Merge branch 'bugfix/spp_data_send_delay_v4.1' into 'release/v4.1'
Bugfix/spp data send delay v4.1

See merge request espressif/esp-idf!11773
2021-03-23 03:33:46 +00:00
Jiang Jiang Jian
21d2fa6934 Merge branch 'bugfix/mdns_txt_length_collision_v4.1' into 'release/v4.1'
mDNS: Fix of text length calculation when detecting a collision(Backport v4.1)

See merge request espressif/esp-idf!12028
2021-03-23 03:28:36 +00:00
Jiang Jiang Jian
645b200d73 Merge branch 'bugfix/wpa_supplicant_coverity_issue_fixes_v4.1' into 'release/v4.1'
Fix some issues raised by Coverity static Analyzer.(backport_v4.1)

See merge request espressif/esp-idf!11920
2021-03-23 03:27:44 +00:00
Jiang Jiang Jian
a38bbe46d0 Merge branch 'bugfix/btdm_blufi_send_custom_data_will_congested_after_connection_is_broken_v4.1' into 'release/v4.1'
component/bt: fix Blufi sends customer data will congested when connection is broken(backport v4.1)

See merge request espressif/esp-idf!11848
2021-03-23 03:20:27 +00:00
Jiang Jiang Jian
6f788a81dd Merge branch 'bugfix/ppp_deinit_failure_v4.1' into 'release/v4.1'
esp_modem: Fixed race condition on exiting PPP mode (v4.1)

See merge request espressif/esp-idf!11871
2021-03-23 03:14:07 +00:00
Jiang Jiang Jian
2750bb8e16 Merge branch 'bugfix/rtc_clk_cal_cycles_add_default_vals_for_all_sources_v4.1' into 'release/v4.1'
esp32xx: Fix default values for all RTC sources in RTC_CLK_CAL_CYCLES option (v4.1)

See merge request espressif/esp-idf!11413
2021-03-23 03:08:38 +00:00
Jiang Jiang Jian
150910ccd8 Merge branch 'bugfix/esp_netif_hostname_v4.1' into 'release/v4.1'
esp_netif: fix get/set hostname API to reflect user settings (v4.1)

See merge request espressif/esp-idf!11360
2021-03-23 03:08:21 +00:00
Jiang Jiang Jian
450f99f0f9 Merge branch 'bugfix/crash_on_enabling_verbose_logs_v4.1' into 'release/v4.1'
esp_wifi: Fixes issue of crashing when verbose logs are enabled (v4.1)

See merge request espressif/esp-idf!12494
2021-03-23 03:07:04 +00:00
Jiang Jiang Jian
8dabab4e36 Merge branch 'bugfix/fix_wifi_interface_use_v4.1' into 'release/v4.1'
esp_wifi: Modify ESP_IF_WIFI_STA to WIFI_IF_STA (backport v4.1)

See merge request espressif/esp-idf!12167
2021-03-23 03:06:42 +00:00
Jiang Jiang Jian
fe3ec246c0 Merge branch 'bugfix/ping_zero_interval_cause_to_assert_reset_v4.1' into 'release/v4.1'
lw-ip: Fixed ping assert reset when ping interval is 0 (v4.1)

See merge request espressif/esp-idf!12175
2021-03-22 12:59:36 +00:00
aleks
818b45654f freemodbuss: fix event processing after merge 2021-03-22 09:39:49 +00:00
xiehang
c277240dc6 esp_wifi: Modify ESP_IF_WIFI_AP to WIFI_IF_AP 2021-03-22 17:19:47 +08:00
xiehang
4403af7267 esp_wifi: Modify ESP_IF_WIFI_STA to WIFI_IF_STA 2021-03-22 17:18:58 +08:00
Jiang Jiang Jian
d6d7a2ad12 Merge branch 'bugfix/fix_iperf_example_crash_issue_v4.1' into 'release/v4.1'
Bugfix/fix iperf example crash issue v4.1 (backport v4.1)

See merge request espressif/esp-idf!12021
2021-03-22 09:05:49 +00:00
Chen Wu
cffcac6106 lwip: Fixed ping assert reset when ping interval is 0 2021-03-22 08:00:30 +00:00
Michael (XIAO Xufeng)
6bd7cadc7b Merge branch 'bugfix/fatfs_v4.1' into 'release/v4.1'
spi_flash: fix the issue of ext_flash_fatfs_example(backport v4.1)

See merge request espressif/esp-idf!12666
2021-03-22 07:44:12 +00:00
Michael (XIAO Xufeng)
c10fd0edb2 Merge branch 'bugfix/uart_read_o2_v4.1' into 'release/v4.1'
hal: workaround for UART FIFO read on ESP32 with -O2 optimization (backport v4.1)

See merge request espressif/esp-idf!12660
2021-03-22 07:41:40 +00:00
Jiang Jiang Jian
29422884d8 Merge branch 'bugfix/flash_encryption_v4.1' into 'release/v4.1'
ota: fix ota with flash encryption(backport v4.1)

See merge request espressif/esp-idf!12702
2021-03-22 06:13:38 +00:00
Jiang Jiang Jian
efcb1959bc Merge branch 'bugfix/fix_arp_buffer_error_in_smart_config_v4.1' into 'release/v4.1'
bugfix/fix_arp_buffer_error_in_smart_config_v4.1

See merge request espressif/esp-idf!12255
2021-03-22 06:10:40 +00:00
Jiang Jiang Jian
396cc61bab Merge branch 'bugfix/fix_iperf_example_exception_handling_for_no_ap_found_v4.1' into 'release/v4.1'
bugfix/fix_iperf_example_exception_handling_for_no_ap_found_v4.1

See merge request espressif/esp-idf!12272
2021-03-22 06:10:13 +00:00
Jiang Jiang Jian
b8c1824e37 Merge branch 'bugfix/spiram_reserve_size_pr5373_v4.1' into 'release/v4.1'
SPIRAM reserved memory size fixes (v4.1)

See merge request espressif/esp-idf!11517
2021-03-22 04:33:53 +00:00
Jiang Jiang Jian
1750acfa17 Merge branch 'bufix/ag_deep_copy_crash_v_4_1' into 'release/v4.1'
components/bt: Fix crash in btc_hf_arg_deep_copy when name or number is NULL

See merge request espressif/esp-idf!12793
2021-03-22 04:32:06 +00:00
Jiang Jiang Jian
bf86c59ec4 Merge branch 'component_bt/optimize_spp_stop_server_v4.1' into 'release/v4.1'
component_bt/Optimize SPP Stop Server API[backport v4.1]

See merge request espressif/esp-idf!12621
2021-03-22 04:31:28 +00:00
Krzysztof Budzynski
ff084d86b2 Merge branch 'bugfix/translation_link' into 'release/v4.1'
docs: fix "link to translation" being broken (v4.1)

See merge request espressif/esp-idf!12689
2021-03-19 07:47:00 +00:00
Angus Gratton
4afdc394c9 freertos: Add a small additional stack when optimization set to None
Fix for occasional crash on startup when DPORT task overwrites its stack during
context switch, otherwise.
2021-03-19 13:22:24 +08:00
Angus Gratton
280baea4f7 freertos: Increase minimum task stack size when stack smashing checker is enabled
Fixes issue with DPORT init task, this task uses minimum stack size and may not be
enough if stack smashing detection is set to Overall mode.

Also reworks the way we calculate minimum stack to allow for adding multiple
contributing factors.

Closes https://github.com/espressif/esp-idf/issues/6403
2021-03-19 13:22:10 +08:00
xiongweichao
f8946dc471 components/bt: Fix crash in btc_hf_arg_deep_copy when name or number is NULL 2021-03-18 20:35:13 +08:00
Jiang Jiang Jian
4628a37435 Merge branch 'bugfix/bta_hf_client_sco_co_out_data_v4.1' into 'release/v4.1'
bugfix/if bta_hf_client_sco_co_out_data is called, it will crash when sco disconnected [backport v4.1]

See merge request espressif/esp-idf!12559
2021-03-18 04:05:14 +00:00
Jiang Jiang Jian
d70f854edb Merge branch 'bugfix/avrc_set_player_value_cmd_event_unhandle_v_4_1' into 'release/v4.1'
bugfix/fix unhandle RC vendor PDU when tg receive set_player_app_value cmd[backport v4.1]

See merge request espressif/esp-idf!12100
2021-03-18 04:04:49 +00:00
Jiang Jiang Jian
961f79612a Merge branch 'bugfix/btdm_backport_ble_bugs_21_01_29_v4.1' into 'release/v4.1'
Bugfix/btdm backport ble bugs v4.1

See merge request espressif/esp-idf!12433
2021-03-18 03:55:49 +00:00
liqigan
a630e1317d add API esp_spp_stop_srv_scn to stop a specific server 2021-03-18 11:48:25 +08:00
xiehang
e67d29b4e8 esp_wifi: Update WiFi lib
1. Change wifi scan duration from 120ms to 100ms
2. Using deport reg instead of ahb
3. Revert to report specific reason code when receiving deauth during 4-way-handshark
4. Fix the bug that tx ampdu parameter is not from peer device
5. Faster WiFi station connect improvement, avoid 100ms passive scan
6. Add FCS failed packets filter
7.Update esp32 phy lib to v4660
8.Fix country code last byte to space instead of NULL
9.Fix softap cannot forward A-MSDU
10.Fix some typos in esp_wifi.h
11.Fix max tx power to 20dBm
12.Fix the issue that the esp_wifi_sta_get_ap_info can't get country
13.Add support for 802.1x sha256 auth key mode
2021-03-17 15:30:09 +08:00
xiehang
40f124b0d0 esp_wifi: Add macro control for phy log 2021-03-17 15:27:39 +08:00
kapil.gupta
c907da0656 esp_wifi: Add support for 802.1x sha256 auth key mode 2021-03-17 15:27:39 +08:00
xiehang
37ce175bb5 esp_wifi: ESP32 phy add [sections:phy_iram] 2021-03-17 15:27:39 +08:00
ChenJianxing
f4bb2b466c esp_wifi: optimize phy version log 2021-03-17 15:27:39 +08:00
ronghulin
18b6ed65f1 bugfix: fix some wifi bugs
1. fix max tx power to 20dBm
2. fix the issue that the esp_wifi_sta_get_ap_info can't get country

Closes https://github.com/espressif/esp-idf/issues/6267
2021-03-17 15:27:39 +08:00
dongyou
87968f8406 esp_wifi: Add documentation to avoid using WiFi modem sleep for WiFi/BT coexistence
Remove description of unusable API esp_wifi_restart()
Update esp_now_fetch_peer discription
Update description for ssid and password
2021-03-17 15:27:25 +08:00
Cao Sen Miao
2333667cb5 ota: fix ota with flash encryption 2021-03-12 16:44:06 +08:00
Michael (XIAO Xufeng)
fa8d8de05e Merge branch 'bugfix/can_backport_accumulated_fixes_v4.1' into 'release/v4.1'
CAN backport accumulated fixes (backport v4.1)

See merge request espressif/esp-idf!11460
2021-03-11 14:01:18 +00:00
baohongde
43ee2976f2 Fix controller task watchdog in Wi-Fi test 2021-03-11 17:21:01 +08:00
Cao Sen Miao
63e4510e9e flash_encryption: Quick fixed the issue that block when flash_encryption_write, Related https://github.com/espressif/esp-idf/issues/6322, Related https://github.com/espressif/esp-idf/issues/6254 2021-03-11 14:11:01 +08:00
Marius Vikhammer
e4af49ca23 docs: fix "link to translation" being broken
The translation link would link a specifc commit hash instead of
the release name.
2021-03-10 18:55:43 +08:00
Cao Sen Miao
98c4c98840 spi_flash: fix flash issue of ext_flash_fatfs_example 2021-03-09 18:34:47 +08:00
Omar Chebib
8db219c292 hal: workaround for UART FIFO read on ESP32 with -O2 optimization 2021-03-09 14:18:28 +08:00
Darian Leung
fb2d6a44eb CAN: ISR runs when cache is disabled
This commit adds the feature where the CAN ISR will continue to
run even if the cache is disabled. Whilst cache is disabled, any
received messages will go into the RX queue, and any pending TX
messages in the TX queue will be transmitted. This feature should
be enabled using the CONFIG_CAN_ISR_IN_IRAM option.
2021-03-09 08:47:58 +08:00
Darian Leung
c2afe02507 CAN: Fix BRP field initialization onf ESP32 ECO3
This commit zero initializes the brp_div field on ESP32 ECO3
to prevent incorrect timing configuration.
2021-03-09 08:47:58 +08:00
Darian Leung
5311a60af2 CAN: Simplify caps header
This commit simplifies the defines made in the _caps.h header. Kconfig
option dependencies were moved into the LL, and the check for a
valid BRP has bee simplified.
2021-03-09 08:47:57 +08:00
Krzysztof Budzynski
da1ed49a65 Merge branch 'docs/fix_broken_example_links_for_releasev4.1' into 'release/v4.1'
docs: fix broken example links for release v4.1

See merge request espressif/esp-idf!12503
2021-03-08 08:22:04 +00:00
Jiang Jiang Jian
356bf67443 Merge branch 'bugfix/fix_tx_issue_after_esp_restart_v4.1' into 'release/v4.1'
components/bt: Shutdown Bluetooth before esp_restart.(V4.1)

See merge request espressif/esp-idf!11756
2021-03-05 12:29:27 +00:00
Jiang Jiang Jian
8cfb4a2426 Merge branch 'bugfix/fix_csa_channel_crash_v4.1' into 'release/v4.1'
esp_wifi: fix CSA and BAR crash issue(v4.1)

See merge request espressif/esp-idf!12550
2021-03-05 12:24:18 +00:00
Jiang Jiang Jian
f71577afe0 Merge branch 'feature/add_init_and_deinit_evt_for_a2dp_4_1' into 'release/v4.1'
feature/ Add A2DP Init and Deinit Complete Evt [backport v4.1]

See merge request espressif/esp-idf!12151
2021-03-05 12:21:12 +00:00
Jiang Jiang Jian
34e1d1d69f Merge branch 'bugfix/fix_a2dp_underrun_issue_4_1' into 'release/v4.1'
Fix A2DP Underrun Issue [backport v4.1]

See merge request espressif/esp-idf!12278
2021-03-05 12:18:45 +00:00
Mahavir Jain
4567b6e866 Merge branch 'bugfix/correct_logging_timestamp_format_v4.1' into 'release/v4.1'
log: correct timestamp formatting to unsigned integer type (v4.1)

See merge request espressif/esp-idf!12612
2021-03-05 09:27:04 +00:00
Mahavir Jain
08333362e3 Merge branch 'fix/esp_tls_typo_v4.1' into 'release/v4.1'
Fix/esp_tls_mispaced_paranthesis (v4.1)

See merge request espressif/esp-idf!12632
2021-03-05 08:51:50 +00:00
Aditya Patwardhan
5b215dbc9e protocomm: Fixed NULL check of allocated memory
Fixes one part of - https://github.com/espressif/esp-idf/issues/6440
2021-03-05 10:10:55 +05:30
Aditya Patwardhan
b8274496f9 esp_tls: Fix misplaced paranthesis in esp_tls_mbedtls.c
Fixes one part of -  https://github.com/espressif/esp-idf/issues/6440
2021-03-05 10:10:55 +05:30
Mahavir Jain
188eb221aa log: correct timestamp formatting to unsigned integer type
Closes https://github.com/espressif/esp-idf/issues/6226

Closes IDFGH-4393
2021-03-04 11:54:47 +05:30
Angus Gratton
ca9ff949a1 Merge branch 'bugfix/ci_stdout_encoding_v4.1' into 'release/v4.1'
ci: Fix missing sys.stdout.encoding in python2 runners (v4.1)

See merge request espressif/esp-idf!12597
2021-03-04 04:05:37 +00:00
Jiang Jiang Jian
d481781180 Merge branch 'bugfix/fix_spp_vfs_dynamic_memory_bugs_v4.1' into 'release/v4.1'
component_bt/fix spp vfs demo crash when use dynamic memory[backport v4.1]

See merge request espressif/esp-idf!11728
2021-03-04 03:34:43 +00:00
Angus Gratton
2c4f90dab2 ci: Fix missing sys.stdout.encoding in python2 runners
Regression in fed98cd6ad
2021-03-04 09:27:26 +11:00
ChenJianxing
a7302a6880 esp_wifi: fix CSA and BAR crash issue 2021-03-02 11:32:46 +08:00
baohongde
cc49472ea4 components/bt: Fix crash in Bluetooth when esp_restart 2021-03-01 14:46:26 +08:00
baohongde
fdfc95812c components/bt: Shutdown Bluetooth before esp_restart. 2021-03-01 14:46:05 +08:00
Mahavir Jain
ad93815681 Merge branch 'bugfix/esp_wifi_deinit_v4.1' into 'release/v4.1'
esp_wifi_deinit: Return ESP_ERR_WIFI_NOT_STOPPED if wifi is not stopped (v4.1)

See merge request espressif/esp-idf!12541
2021-03-01 03:53:42 +00:00
liaowenhao
195160af94 bugfix/if bta_hf_client_sco_co_out_data is called, it will crash when sco disconnected 2021-03-01 11:38:35 +08:00
Angus Gratton
1f79b580f9 Merge branch 'bugfix/ttfw_example_test_fails_port_remains_open_v4.1' into 'release/v4.1'
ci: Fix CI issue if one example test fails, and if serial port returns some noise (v4.1)

See merge request espressif/esp-idf!12382
2021-02-28 23:57:04 +00:00
aditi_lonkar
b68f07dbc7 esp_wifi: Fixes issue of crashing when verbose logs are enabled. 2021-02-26 19:11:17 +05:30
Shubham Kulkarni
761a3cdeae esp_wifi_deinit: Return ESP_ERR_WIFI_NOT_STOPPED if wifi is not stopped
Add test case to test this workflow
2021-02-26 14:56:42 +05:30
baohongde
54c71781a9 components/bt: Fix assert without sw coexist enabled 2021-02-26 14:33:01 +08:00
Michael (XIAO Xufeng)
657ae5e11e Merge branch 'feat/spi_flash_override_size_v4.1' into 'release/v4.1'
spi_flash: add config option to override flash size in bootloader header (v4.1)

See merge request espressif/esp-idf!12457
2021-02-26 02:08:39 +00:00
Island
8ed7a899d7 Merge branch 'bugfix/ble_mesh_server_model_deinit_v4.1' into 'release/v4.1'
ble_mesh: stack: Fix deinit server models with no matching id (v4.1)

See merge request espressif/esp-idf!12316
2021-02-25 11:09:48 +00:00
Wang Fang
90118531a7 docs: fix broken example links for release v4.1 2021-02-25 13:41:04 +08:00
Angus Gratton
fcef475989 Merge branch 'bugfix/esptool_version_v4.1' into 'release/v4.1'
esptool: Update esptool to latest v2.x version

See merge request espressif/esp-idf!11487
2021-02-24 22:30:37 +00:00
Michael (XIAO Xufeng)
b6bc7e9df8 Merge branch 'revert-983220e2_v4.1' into 'release/v4.1'
ci: enable RS485 related tests again (v4.1)

See merge request espressif/esp-idf!12464
2021-02-24 06:45:13 +00:00
Krzysztof Budzynski
0503b02312 Merge branch 'docs/remove_rtd_pdf_link_v4.1' into 'release/v4.1'
docs: remove rtd pdf link (v4.1)

See merge request espressif/esp-idf!12467
2021-02-23 10:46:30 +00:00
Marius Vikhammer
10311644e4 docs: remove RTD download PDF links
PDF download is available from the version selector menu.
Read the docs links are out of date.
2021-02-23 11:46:06 +08:00
Michael (XIAO Xufeng)
46d8dad2e1 Revert "ci: temporarily disable RS485 related tests"
This reverts commit 983220e216
2021-02-23 11:02:10 +08:00
Michael (XIAO Xufeng)
f6da7f3305 spi_flash: add config option to override flash size in bootloader header
Sometimes the flash size read from bootloader is not correct. This may
forbid SPI Flash driver from reading the the area larger than the size
in bootloader header.

When the new config option is enabled, the latest configured
ESPTOOLPY_FLAHSIZE in the app header will be used to override the value
read from bootloader header.
2021-02-23 01:23:53 +08:00
Michael (XIAO Xufeng)
52496189d9 Merge branch 'bugfix/freemodbus_fix_parity_propagation_issue_v41' into 'release/v4.1'
Bugfix/freemodbus fix parity propagation issue (Backport v4.1)

See merge request espressif/esp-idf!12388
2021-02-22 05:26:31 +00:00
zwj
ed04398a8c add connection parameter check 2021-02-22 11:29:06 +08:00
zwj
62396e3b23 fix ble connection maximum latency is 499 2021-02-22 11:28:55 +08:00
zwj
37c2b7e9b7 disable bluedroid congest error log print 2021-02-22 11:28:42 +08:00
zhiweijian
490af40be5 fix read multi char failed(GATT_27001) 2021-02-22 11:28:25 +08:00
zhiweijian
89a1f8e7a9 fix add white list failed 2021-02-22 11:28:07 +08:00
zwj
c1f23ada19 fix bluedroid repair faild if the two most significant bits of public address is '01' 2021-02-22 11:27:54 +08:00
zwj
1b6572ec9f - fix congest return value
- fix system no rsp when doing disconnect
- fix no congest event when ssc do writing performance
2021-02-22 11:27:39 +08:00
zwj
0e2236a2f1 fix ble read multi char err when the number of handles is more than 10 2021-02-22 11:27:22 +08:00
zwj
e109c9980c fix scan rsp length err 2021-02-22 11:27:09 +08:00
zwj
a2eec8a1e2 fix vendor hci memory leak 2021-02-22 11:26:56 +08:00
Ivan Grokhotkov
b1c383211c Merge branch 'bugfix/eclipse_make_decode_v4.1' into 'release/v4.1'
tools: Fix Eclipse build: “UnicodeDecodeError: 'ascii' codec can't decode byte” (v4.1)

See merge request espressif/esp-idf!12359
2021-02-19 15:55:47 +00:00
Ivan Grokhotkov
dc70cd1304 Merge branch 'feature/prefer_python3_in_installer_v4.1' into 'release/v4.1'
tools: Prefer python3 during install and export (v4.1)

See merge request espressif/esp-idf!12378
2021-02-19 15:53:29 +00:00
Mahavir Jain
e7e776a535 Merge branch 'bugfix/fix_enable_reset_provision_cause_device_crash_v4.1' into 'release/v4.1'
provisioning: Fix enable CONFIG_EXAMPLE_RESET_PROVISIONED will cause device crash [backport v4.1]

See merge request espressif/esp-idf!12351
2021-02-19 12:39:43 +00:00
lly
6b6a883824 ble_mesh: stack: Fix deinit server models with no matching id 2021-02-19 01:03:55 +00:00
Island
77feee975e Merge branch 'bugfix/ignore_null_valued_comb_key_4_1' into 'release/v4.1'
Bugfix/ignore null valued comb key 4 1

See merge request espressif/esp-idf!12408
2021-02-18 13:58:52 +00:00
Chinmay Chhajed
a585bb54e4 bt: NULL combkey check and fixed divide by zero error.
- Added check for NULL valued combination key. (cbc69c8b9)
- Fix divided by zero err & clear timer after remote reject when respond the parameters update (d886f91)
2021-02-18 15:37:20 +05:30
aleks
471237dab6 freemodbus: fix mb controller parity propagation issues
Closes https://github.com/espressif/esp-idf/issues/6377
2021-02-17 12:34:00 +01:00
Mahavir Jain
8938eed1c4 Merge branch 'bugfix/softap_prov_cookies_v4.1' into 'release/v4.1'
protocomm_httpd: Use HTTP cookies to track session (v4.1)

See merge request espressif/esp-idf!12266
2021-02-15 04:45:14 +00:00
Angus Gratton
fed98cd6ad ci: ttfw: Encode serial port data to whatever the console encoding is
This is a bit of a hack, but gives us a way to always log it
2021-02-15 10:48:30 +11:00
Angus Gratton
65fb2ead1a ci: Log failure to close any DUT 2021-02-15 10:48:30 +11:00
Roland Dobai
52ecfeb337 tools: Prefer python3 during install and export
Install and export script should work on systems without "python"
executable.

Closes https://github.com/espressif/esp-idf/pull/6471

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

Related to https://github.com/espressif/esp-idf/issues/6421 and
https://github.com/espressif/arduino-esp32/issues/4717
2021-02-14 19:46:28 +01:00
Piyush Shah
3a5be7ce26 protocomm security1: Restart security session if SESSION_STATE_CMD0 is received
With the introduction of cookies to track a session, it is possible that the
clients restart the provisioning on the same session, specifically when a user
cancels a current provisioning attempt. This can result in an error as the state
on the device side and client side will go out of sync.

This has now been changed such that if SESSION_STATE_CMD0 is received on
an existing session, the state is reset and flow allowed to continue.
2021-02-12 05:53:00 +00:00
Piyush Shah
c13fe0be6e protocomm_httpd: Use HTTP cookies to track session
Earlier, a "socket connection" was being considered as a protocomm "session".
However, for HTTP, we cannot expect clients to necessarily use the same
socket for all requests of a given transaction. This was indeed causing
some failures for Wi-Fi provisioning from Android phones.

So, we have introduced http cookies to track a session even if the socket
connection does not stay intact throughout the transaction.
This change is backward compatible. If the client does not use cookies, the
socket connection will be considered as the session.

Closes: https://github.com/espressif/esp-idf/issues/6316
Reference: https://github.com/espressif/esp-idf/pull/6330
2021-02-12 05:53:00 +00:00
Angus Gratton
ba17e97665 Merge branch 'bugfix/get_component_requirements_v4.1' into 'release/v4.1'
cmake: fix getting component requirements (v4.1)

See merge request espressif/esp-idf!9714
2021-02-11 07:56:19 +08:00
Patryk Krzywdziński
85b96879f2 Fix eclipse build: “UnicodeDecodeError: 'ascii' codec can't decode byte”
Closes https://github.com/espressif/esp-idf/pull/6505
2021-02-10 12:50:39 +01:00
Chinmay Chhajed
428e9b008c Bluedroid: Do not initiate/accept connection with device having same BDADDR.
Added BD_ADDR comparison in l2cu_lcp_allocate and removed check from
security connection request handler as it's handled in l2cu_lcp_allocate
for both connection request and create connection.
2021-02-10 15:13:10 +05:30
Chinmay Chhajed
1c6c6998bc bt: removed esp_bt_get_mac()
There was no need for this function as there is already a way present to
fetch own mac address. Own mac addr can be fetched by calling
controller_get_interface().
2021-02-10 15:13:02 +05:30
yuanjm
b497628ef6 provisioning: Fix enable CONFIG_EXAMPLE_RESET_PROVISIONED will cause device crash 2021-02-10 16:05:26 +08:00
Island
131bfd90a4 Merge branch 'bugfix/ble_mesh_mbedtls_aes_fix_v4.1' into 'release/v4.1'
Bugfix/ble mesh mbedtls aes fix (v4.1)

See merge request espressif/esp-idf!12326
2021-02-09 16:24:54 +08:00
Angus Gratton
42b126e4dd Merge branch 'bugfix/sign_compare_warning_in_soc_component' into 'release/v4.1'
fix sign compare warning in soc component

See merge request espressif/esp-idf!11434
2021-02-09 11:05:12 +08:00
Michael (XIAO Xufeng)
e508a64ae9 Merge branch 'bugfix/mcpwm_can_set_two_falut_signal_v4.1' into 'release/v4.1'
mcpwm: fix second fault line broken issue (v4.1)

See merge request espressif/esp-idf!12172
2021-02-08 14:21:43 +08:00
Island
261d107abd Merge branch 'bugfix/ble_mesh_log_macro_v4.1' into 'release/v4.1'
ble_mesh: stack: Add prefix for log macros (v4.1)

See merge request espressif/esp-idf!12325
2021-02-07 16:39:38 +08:00
Island
528e9b2818 Merge branch 'bugfix/ble_mesh_prov_use_diff_rand_v4.1' into 'release/v4.1'
ble_mesh: stack: Use different random for each provisioning (v4.1)

See merge request espressif/esp-idf!12323
2021-02-07 16:38:42 +08:00
Island
47d859b2a4 Merge branch 'bugfix/ble_mesh_proxy_client_net_resend_v4.1' into 'release/v4.1'
ble_mesh: stack: Fix proxy client may fail to resend msg (v4.1)

See merge request espressif/esp-idf!12322
2021-02-07 16:38:36 +08:00
Island
9ef16af05e Merge branch 'bugfix/ble_mesh_node_set_name_status_check_v4.1' into 'release/v4.1'
ble_mesh: stack: Remove node set device name return status check (v4.1)

See merge request espressif/esp-idf!12321
2021-02-07 16:38:25 +08:00
Island
3a06fa4bd9 Merge branch 'update/ble_mesh_set_hsl_states_v4.1' into 'release/v4.1'
ble_mesh: stack: Enable updating lighting hsl state (v4.1)

See merge request espressif/esp-idf!12320
2021-02-07 16:38:13 +08:00
Island
afcbf0d311 Merge branch 'bugfix/ble_mesh_macro_OR_v4.1' into 'release/v4.1'
ble_mesh: stack: Fix using wrong | for OR between macros (v4.1)

See merge request espressif/esp-idf!12319
2021-02-07 16:37:58 +08:00
Island
47d6b3f2b3 Merge branch 'bugfix/ble_mesh_build_error_c3_merge_master_v4.1' into 'release/v4.1'
Bugfix/ble mesh build error merge master (v4.1)

See merge request espressif/esp-idf!12318
2021-02-07 16:37:49 +08:00
lly
10b5436cc9 ble_mesh: stack: Fix mbedtls aes ctx not deallocated 2021-02-07 12:06:49 +08:00
lly
5e8695d7be ble_mesh: stack: Fix mbedtls aes ctx not initialized 2021-02-07 12:06:49 +08:00
lly
829b16a997 ble_mesh: stack: Fix compile warning when log is disabled 2021-02-07 12:03:24 +08:00
lly
7b5a3b50f0 ble_mesh: ci: Add disable log sdkconfig test files 2021-02-07 12:03:24 +08:00
lly
cb918dcd2f ble_mesh: stack: Add prefix BLE_MESH_ for log related macros 2021-02-07 12:03:24 +08:00
lly
638b36cc6b ble_mesh: stack: Use different random for each provisioning 2021-02-07 11:46:20 +08:00
lly
59443eca02 ble_mesh: stack: Fix proxy client may fail to resend msg 2021-02-07 11:44:13 +08:00
lly
7799954d99 ble_mesh: stack: Remove node set device name return status check 2021-02-07 11:41:57 +08:00
lly
fc27117299 ble_mesh: stack: Enable updating lighting hsl state 2021-02-07 11:39:53 +08:00
lly
eb52b1da96 ble_mesh: stack: Fix using wrong | for OR between macros 2021-02-07 11:36:45 +08:00
lly
4e8a53aec2 ble_mesh: stack: Fix compile warning with BIT macro 2021-02-07 11:33:00 +08:00
lly
938530b193 ble_mesh: stack: Update mesh max conn macro when using bluedroid 2021-02-07 11:32:55 +08:00
Island
c6f7abbe94 Merge branch 'feat/ble_mesh_support_ble_scan_v4.1' into 'release/v4.1'
ble_mesh: stack: Add BLE scan callback when mesh is enabled (v4.1)

See merge request espressif/esp-idf!12304
2021-02-07 11:22:50 +08:00
morris
e2886115dc mcpwm: fix second fault line broken
Closes: https://github.com/espressif/esp-idf/issues/6053
2021-02-06 21:45:51 +08:00
morris
e85a444cd0 mcpwm: fix wrong capture edge 2021-02-06 21:45:51 +08:00
lly
2d04130ce0 ble_mesh: ci: Add ble & ble mesh coex sdkconfig test files 2021-02-05 21:22:52 +08:00
lly
bdf6d3e8cb ble_mesh: stack: Support reporting normal ble adv packets 2021-02-05 21:22:52 +08:00
lly
e06a5587c7 ble_mesh: stack: Add a btc file for ble coex functions
Previously if starting/stopping BLE advertising when BLE Mesh
is enabled, the corresponding events will be notified through
the callback registered by esp_ble_mesh_register_prov_callback().

With this commit, the func esp_ble_mesh_register_ble_callback()
needs to be invoked for resgitering the callback used for BLE
coexistence related functionalities (i.e. ADV/SCAN).
2021-02-05 21:22:52 +08:00
lly
228ab398b9 ble_mesh: stack: Move ble scan funcitons to a single file 2021-02-05 21:22:52 +08:00
lly
9cff5797a1 ble_mesh: stack: Optimize handling received mesh adv packets 2021-02-05 21:22:52 +08:00
Island
53317da676 Merge branch 'optimize/ble_mesh_miscellaneous_v4.1' into 'release/v4.1'
Optimize/ble mesh miscellaneous (v4.1)

See merge request espressif/esp-idf!12293
2021-02-05 21:00:35 +08:00
lly
1cdd2b0609 ble_mesh: stack: Move bt_mesh_rand to mesh_common.c 2021-02-05 14:55:38 +08:00
lly
a0da80fe89 ble_mesh: stack: Remove useless BT_DBG_ENABLED in a few files 2021-02-05 14:55:33 +08:00
lly
f3ff34d818 ble_mesh: Replace zephyr integer types with C99 types [Zephyr] 2021-02-05 14:55:11 +08:00
lly
392fb4b916 ble_mesh: stack: Update ARRAY_SIZE definition 2021-02-05 14:54:17 +08:00
Island
8812365c6f Merge branch 'feat/ble_mesh_multiple_nvs_namespace_v4.1' into 'release/v4.1'
ble_mesh: stack: Provisioner supports multiple nvs namespaces (v4.1)

See merge request espressif/esp-idf!12264
2021-02-05 14:49:32 +08:00
Angus Gratton
9d76fd62d7 Merge branch 'test/disable_twai_example_ci_v4.1' into 'release/v4.1'
Temporarily disable TWAI network example test (backport v4.1)

See merge request espressif/esp-idf!11562
2021-02-05 13:00:02 +08:00
Mahavir Jain
a60e9c136b Merge branch 'fix/wolfssl_domain_name_check_v4.1' into 'release/v4.1'
esp_tls_wolfssl : Add domain name check (v4.1)

See merge request espressif/esp-idf!11817
2021-02-05 12:07:11 +08:00
lly
968d0fbb13 ble_mesh: ci: Add settings sdkconfig test files 2021-02-05 03:10:47 +00:00
lly
c1f3b20273 ble_mesh: stack: Provisioner supports multiple nvs namespaces
Now Provisioner can use different NVS namespaces to store
different instances of mesh information, for example, for
different user accounts.
2021-02-05 03:10:47 +00:00
Fu Hanxi
b91448aa03 Merge branch 'ci/increase_cmake_build_parallel_count_v4.1' into 'release/v4.1'
ci: Increase cmake build parallel count

See merge request espressif/esp-idf!12282
2021-02-05 10:46:57 +08:00
Ivan Grokhotkov
fb63cf75ad Merge branch 'bugfix/idf_monitor_baudrate_arg_crash_v4.1' into 'release/v4.1'
idf monitor: fix crash when monitor baudrate argument set (Backport 4.1)

See merge request espressif/esp-idf!9759
2021-02-05 10:08:13 +08:00
Mahavir Jain
834089c4b2 Merge branch 'bugfix/protocomm_http_print_v4.1' into 'release/v4.1'
protocomm_httpd: Change an info print to debug print as it isn't really required in the logs (v4.1)

See merge request espressif/esp-idf!12262
2021-02-04 21:28:26 +08:00
lly
a47f4ae9fe ci: Increase cmake build parallel count 2021-02-04 20:48:22 +08:00
weitianhua
e2dd35e6f6 Fix A2DP Underrun Issue 2021-02-04 19:33:50 +08:00
dongyou
bebd1b4106 add exception handling for iperf example's scan when no ap was found 2021-02-04 17:49:13 +08:00
Piyush Shah
6ebb73df7c protocomm_httpd: Change an info print to debug print as it isn't really required in the logs 2021-02-04 15:04:43 +05:30
Island
52f661fa41 Merge branch 'feat/ble_mesh_provisioner_recv_hb_support_v4.1' into 'release/v4.1'
Feat/ble mesh provisioner recv hb support (v4.1)

See merge request espressif/esp-idf!11914
2021-02-04 17:13:20 +08:00
lly
45e0d59b3b ble_mesh: ci: Add enabling hb recv sdkconfig file 2021-02-04 03:33:45 +00:00
lly
ad718c53cd ble_mesh: stack: Provisioner supports receiving heartbeat 2021-02-04 03:33:45 +00:00
dongyou
53398c646a fix smartconfig issue when router reply arp late 2021-02-04 11:33:23 +08:00
Island
8ba74ad9f7 Merge branch 'optimize/ble_mesh_provision_dev_uuid_check_v4.1' into 'release/v4.1'
ble_mesh: stack: Need uuid when adding device for provisioning (v4.1)

See merge request espressif/esp-idf!11578
2021-02-04 10:57:01 +08:00
lly
1b2748e00f ble_mesh: ci: Add PB-ADV & PB-GATT sdkconfig test files 2021-02-03 08:45:18 +00:00
lly
ecf8427b1e ble_mesh: stack: Need uuid when adding device for provisioning 2021-02-03 08:45:18 +00:00
Anton Maklakov
62acc8734f Merge branch 'bugfix/ttfw_idf_find_artifacts_inaccurate_with_same_prefix_path_v4.1' into 'release/v4.1'
CI: fix the bug returns wrong artifact path when app_name is a subset of a longer one (v4.1)

See merge request espressif/esp-idf!12229
2021-02-03 11:34:42 +08:00
Island
d6a07efed5 Merge branch 'bugfix/ble_mesh_node_id_adv_v4.1' into 'release/v4.1'
ble_mesh: stack: Fix Node ID adv with wrong timeout (v4.1)

See merge request espressif/esp-idf!11878
2021-02-03 10:48:35 +08:00
Mahavir Jain
83aaee86d8 Merge branch 'bugfix/reenable_encrypted_partition_write_v4.1' into 'release/v4.1'
Re-enable encrypted flash read/writes even if flash encryption is disabled (v4.1)

See merge request espressif/esp-idf!12191
2021-02-02 18:31:04 +08:00
Mahavir Jain
6317ef13f8 unit-test-app: disable encrypted flash read/write in psram config to fix build failure 2021-02-02 05:10:34 +00:00
Mahavir Jain
e032384c7f spi_flash: add config option to enable encrypted partition read/write
This feature can be disabled to save some IRAM (approx 1KB) for cases
where flash encryption feature is not required.
2021-02-02 05:10:34 +00:00
Mahavir Jain
0715c86211 Revert "esp_partition: disable encrypted reads/writes if flash encryption is disabled"
This reverts commit bf35ef1ce7.

It has been noticed that there are scenarios where even though firmware is not enabled
with flash encryption config feature, it should be able to write to encrypted partitions.

This revert adds the feature back which was removed around v4.0 timelines, and same
change will be backported to all releases (upto v4.0) for consistency.
2021-02-02 05:10:34 +00:00
Fu Hanxi
aa2400f5f0 CI: fix the bug returns wrong artifact path when app_name is a subset of a longer one 2021-02-02 11:14:18 +08:00
Mahavir Jain
9468af050b Merge branch 'bugfix/redirection_v4.1' into 'release/v4.1'
esp_http_client: Skip check for redirection counter if status code is success, fix issue with digest auth, configurable user agent string. (v4.1)

See merge request espressif/esp-idf!11598
2021-02-01 20:50:03 +08:00
Mahavir Jain
dec0bca0ba Merge branch 'bugfix/httpd_session_close_lru_v4.1' into 'release/v4.1'
esp_http_server: Add flag in sock_db to identify httpd_sess_close is called from httpd_session_close_lru (v4.1)

See merge request espressif/esp-idf!12113
2021-02-01 17:21:55 +08:00
Mahavir Jain
0d2ab9459d Merge branch 'bugfix/http_client_buffer_overread_v4.1' into 'release/v4.1'
esp_http_client: Fix buffer overread, update https_request example to use HTTP/1.1 (v4.1)

See merge request espressif/esp-idf!12109
2021-02-01 17:20:02 +08:00
Scott Shell
3f32d1020d Make the UserAgent string in esp-http-client configurable
Signed-off-by: Shubham Kulkarni <shubham.kulkarni@espressif.com>

Merges https://github.com/espressif/esp-idf/pull/6044
2021-02-01 09:17:43 +00:00
Shubham Kulkarni
34b845e484 http_auth.c: Fix crash when opaque field is not present in challenge string
Closes: https://github.com/espressif/esp-idf/issues/5888
2021-02-01 09:17:43 +00:00
Shubham Kulkarni
bffeb8705c esp_http_client: Skip check for redirection counter if status code is success.
Set disable_auto_redirect in esp_http_client example to validate this condition in CI
2021-02-01 09:17:43 +00:00
Mahavir Jain
64be5f1010 Merge branch 'bugfix/update_howsmyssl_cert_v4.1' into 'release/v4.1'
examples/protocols: update www.howsmyssl.com certificate to fix test failures (v4.1)

See merge request espressif/esp-idf!12212
2021-02-01 17:14:39 +08:00
Mahavir Jain
b35c3dd84f examples/protocols: update www.howsmyssl.com certificate to fix test failures 2021-02-01 11:08:05 +05:30
Mahavir Jain
8b53ac9056 Merge branch 'fix/esp_tls_add_warning_if_ca_chain_has_invalid_cert_v4.1' into 'release/v4.1'
esp_tls: Add warning if the CA chain provided contains invalid cert (v4.1)

See merge request espressif/esp-idf!11940
2021-02-01 13:27:31 +08:00
Anton Maklakov
9760595f2f Merge branch 'bugfix/auto_test_script_only_use_given_branch_v4.1' into 'release/v4.1'
CI: limit switching branches for auto_test_script (v4.1)

See merge request espressif/esp-idf!11147
2021-01-30 22:20:31 +08:00
Mahavir Jain
1fec915bdb Merge branch 'feature/upgrade_mbedtls_to_v4.1' into 'release/v4.1'
mbedtls: upgrade to v2.16.9 release (v4.1)

See merge request espressif/esp-idf!11900
2021-01-29 20:35:13 +08:00
Mahavir Jain
744948e189 Merge branch 'fix/esp_tls_fix_memory_leak_v4.1' into 'release/v4.1'
esp-tls: Fix mem leak when global_ca_store is freed

See merge request espressif/esp-idf!12086
2021-01-29 20:34:11 +08:00
Mahavir Jain
5f7f2cc70b Merge branch 'fix/i2c_pm_lock_v4.1' into 'release/v4.1'
i2c: Acquire PM lock after acquiring mutex (v4.1)

See merge request espressif/esp-idf!11831
2021-01-29 20:30:46 +08:00
Mahavir Jain
fa0f3dc13c Merge branch 'fix/update_tls_sockfd_after_freeing_internally_v4.1' into 'release/v4.1'
esp-tls : (Fix) update tls->sockfd value after socket is freed internally (v4.1)

See merge request espressif/esp-idf!11696
2021-01-29 17:23:12 +08:00
Ivan Grokhotkov
f74bb4e5a9 Merge branch 'feature/nvs_erase_check_init_4.1' into 'release/v4.1'
NVS Flash: prevent erasing initialized partition, nvs partition deinit bug (backport v4.1)

See merge request espressif/esp-idf!10063
2021-01-29 17:12:25 +08:00
Ivan Grokhotkov
0fcd502613 Merge branch 'bugfix/tools_python_subprocess_capture_output_v4.1' into 'release/v4.1'
tools: Avoid subprocess.run(capture_output) argument for Python <3.7 compatibility (v4.1)

See merge request espressif/esp-idf!11507
2021-01-29 17:10:43 +08:00
Ivan Grokhotkov
2d7b596c9e Merge branch 'bugfix/phy_xpd_v4.1' into 'release/v4.1'
wifi: add set_xpd_sar override(backport v4.1)

See merge request espressif/esp-idf!11545
2021-01-29 17:10:03 +08:00
Anton Maklakov
38b0243807 Merge branch 'bugfix/ci_retries_when_download_v4.1' into 'release/v4.1'
CI: retry shell commands when download (v4.1)

See merge request espressif/esp-idf!9889
2021-01-29 16:55:03 +08:00
Anton Maklakov
75b33a1072 Merge branch 'feature/ci_fix_docker_build_v4.1' into 'release/v4.1'
ci: Use git mirror for docker image (v4.1)

See merge request espressif/esp-idf!10446
2021-01-29 16:48:57 +08:00
Angus Gratton
b691ef7e69 Merge branch 'bugfix/blecent_example_test_4.1' into 'release/v4.1'
Fix CI blecent example test (backport v4.1)

See merge request espressif/esp-idf!11322
2021-01-29 16:47:36 +08:00
Angus Gratton
7e2e162653 Merge branch 'ci/disable_dev_push_pipelines_v4.1' into 'release/v4.1'
CI: Disable pipelines generated by push on dev branches (v4.1)

See merge request espressif/esp-idf!11593
2021-01-29 16:46:49 +08:00
Angus Gratton
44d6bbea8b Merge branch 'bugfix/driver_spi_poll_test_stack_v41' into 'release/v4.1'
driver test: Increase stack for the "spi poll tasks" test

See merge request espressif/esp-idf!12117
2021-01-29 16:45:53 +08:00
Angus Gratton
6713bade96 Merge branch 'update/version_4_1_1' into 'release/v4.1'
Update version to 4.1.1

See merge request espressif/esp-idf!12106
2021-01-29 16:45:32 +08:00
weitianhua
432b4c8863 Add init & deinit event for a2dp 2021-01-26 10:52:39 +08:00
Shubham Kulkarni
f74dbafbbe Enable lru_purge_enable in simple HTTP server example 2021-01-22 15:34:50 +05:30
Angus Gratton
e48e6aa9df driver test: Increase stack for the "spi poll tasks" test
Current stack usage gets very close to overflowing
2021-01-22 18:03:45 +11:00
Shubham Kulkarni
03a09c1f51 esp_http_server: Add lru_socket flag in sock_db to indicate httpd_sess_close is called from httpd_sess_close_lru 2021-01-22 11:16:50 +05:30
Shubham Kulkarni
a819237722 esp_http_client.c: Clear raw_len for response buffer after dispatching HTTP_EVENT_ON_FINISH event
Closes: https://github.com/espressif/esp-idf/issues/6146
2021-01-22 11:03:48 +05:30
He Yin Ling
4ebe0d8a2f versions: Update version to 4.1.1 2021-01-22 11:08:17 +08:00
liaowenhao
c4c18c79a0 bugfix:unhandle event when tg receive set_player_app_value cmd 2021-01-21 21:37:14 +08:00
Aditya Patwardhan
6282936f19 esp-tls: Fix mem leak when global_ca_store is freed 2021-01-21 10:58:40 +05:30
Jiang Jiang Jian
6f7c750f0d Merge branch 'bugfix/mdns_revert_nonstrict_mode' into 'release/v4.1'
mdns: Revert support for queries in responses, mDNS non-strict mode (v4.1)

See merge request espressif/esp-idf!12044
2021-01-20 16:42:58 +08:00
Jiang Jiang Jian
faa740028c Merge branch 'bugfix/bt_bluedroid_same_public_key_attack_v4.1' into 'release/v4.1'
Bluedroid: Fixes for some Bluetooth vulnerabilities. (v4.1)

See merge request espressif/esp-idf!11764
2021-01-19 20:49:25 +08:00
Island
2d7508bd58 Merge branch 'bugfix/bluedroid_avoid_same_bdaddr_conn_v4.1' into 'release/v4.1'
Bluedroid: Do not connect if peer BD_ADDR is same as own BD_ADDR. (v4.1)

See merge request espressif/esp-idf!11991
2021-01-18 19:15:36 +08:00
David Cermak
31ecdcd3f6 mdns: Revert support for queries in responses, mDNS non-strict mode
This reverts backporting commits to v4.1 related to mDNS non-strict mode
and the related fix for resolving the non-strict mode:
* Revert "mdns: Allow resolve its own non-strict answers"
  This reverts commit 0182a84c2b.
* Revert "mdns: Support queries in responses in mDNS non-strict mode"
  This reverts commit 12e86a7c1b.
2021-01-18 07:53:54 +01:00
aditi_lonkar
620e747355 esp_http_client: Fix some memory leak issues by coverity static analyzer. 2021-01-18 11:38:46 +05:30
aditi_lonkar
d6bf822ab8 wifi_provisioning: Fix some memory leak issues by coverity static analyzer. 2021-01-18 11:38:24 +05:30
aditi_lonkar
85d2d2fcf8 esp_local_ctrl: Fix some memory leak issues by coverity static analyzer. 2021-01-18 11:38:00 +05:30
aditi_lonkar
ce1e71c0de esp_netif: Fix some memory leak issues by coverity static analyzer. 2021-01-18 11:37:10 +05:30
aditi_lonkar
a9f6042d41 fatfs: Fix some memory leak issues by coverity static analyzer. 2021-01-18 11:36:53 +05:30
aditi_lonkar
de3421718d tcp_transport: Fix some memory leak issues by coverity static analyzer. 2021-01-18 11:36:22 +05:30
aditi_lonkar
8668c11a12 wpa_supplicant: Fix some memory leak issues by coverity static analyzer. 2021-01-18 11:35:48 +05:30
suren.gabrielyan
3b862da384 mDNS: Fix of text length calculation when detecting a collision 2021-01-15 17:03:32 +04:00
suren.gabrielyan
a02ac1ffd3 mDNS: Fix of collision detection during txt length calculation
Closes https://github.com/espressif/esp-idf/issues/6114
2021-01-15 17:03:17 +04:00
xiehang
025e2b0439 example: Scan failure should not cause system crash 2021-01-15 20:14:59 +08:00
xiehang
43a328a7c3 example: do not check the return value of esp_wifi_connect() 2021-01-15 20:10:35 +08:00
Marius Vikhammer
fbb5ada91d idf monitor: fix crash when monitor baudrate argument set
Closes IDF-1902
2021-01-15 09:10:05 +00:00
Chinmay Chhajed
53e93c0a10 Bluedroid: Do not connect if peer BD_ADDR is same as own BD_ADDR. 2021-01-14 12:22:47 +05:30
Jiang Jiang Jian
22c82a4e28 Merge branch 'bugfix/mdns_resolve_nonstrict_answers_v4.1' into 'release/v4.1'
mdns: Allow resolve (it's own) non-strict answers (v4.1)

See merge request espressif/esp-idf!11819
2021-01-13 16:54:02 +08:00
Aditya Patwardhan
976c3787c3 esp_tls: Add warning if the CA chain provided contains one/more invalid
cert
2021-01-11 12:05:45 +05:30
Mahavir Jain
1c89992335 mbedtls: upgrade to v2.16.9 release
For details release notes please refer to:
https://github.com/ARMmbed/mbedtls/releases/tag/v2.16.9
2021-01-07 11:16:35 +05:30
Armando
7720cd9c34 spi: fix duplex mode switch issue for multi devices 2021-01-07 12:05:14 +08:00
Jakob Hasse
fe7ebf75a0 NVS Flash: prevent erasing initialized partition
Closes https://github.com/espressif/esp-idf/issues/4755
Closes https://github.com/espressif/esp-idf/issues/2777
Closes FCS-533

* nvs_flash_erase_partition() checks whether
  the parition in question is initialized
  already and will return an error if so
* reflect changes in the documentation

* nvs host unit tests now clean up after each
  test case

nvs_flash: fixed deinit other partition's handles

* When deinitializing or erasing a partition,
  nvs used to close all handles instead of only
  the current partition's handles.
  This is fixed now
* Added a unit test for that case
2021-01-07 11:32:29 +08:00
lly
5c4d7e61c2 ble_mesh: stack: Fix Node ID adv with wrong timeout 2021-01-05 20:14:57 +08:00
David Cermak
427aeec530 esp_modem: Fixed race condition on exiting PPP mode (v4.1)
esp_modem_stop_ppp() stops both ppp netif and switches the modem back to
command mode. IF these two actions are not synchronised, we might
experience issues of
* active PPP session trying to send/receive uart-data
* command mode already active before modem switched to it
both resulting in crashes.
Fixed by introducing the transition mode and running these actions in sequence
* set esp-modem to transition mode
* enter command mode, wait for the reply or re-sync
* close the PPP netif
* wait until the netif closes
Other fixes include ignoring certain events if modem component not ready
or not in appropriate mode:
* ignoring all UART events comming from DTE with no DCE attached
* ignore pattern detection in PPP mode
2021-01-05 12:32:30 +01:00
baohongde
b7e6c18f8c components/bt: Add API to config QoS 2021-01-04 11:56:00 +08:00
Mahavir Jain
382fa9072d Merge branch 'bugfix/misc_secure_boot_v4.1' into 'release/v4.1'
Bugfix/misc secure boot v2 (v4.1)

See merge request espressif/esp-idf!11744
2020-12-31 18:35:58 +08:00
Morozov-5F
cca370df47 secure boot v2: Fix crash if signature verification fails in app
sha_handle is "finished" when verify_secure_boot_signature() returns and
should be nulled out.

Alternative version of fix submitted in https://github.com/espressif/esp-idf/pull/6210

Closes https://github.com/espressif/esp-idf/pull/6210

Signed-off-by: Angus Gratton <angus@espressif.com>
2020-12-31 14:34:25 +05:30
XieWenxiang
ddfc19d531 component/bt: fix Blufi sends customer data will congested when connection is broken 2020-12-31 15:44:38 +08:00
Sachin Parekh
c8a4ad9c3b i2c: Acquire PM lock after acquiring mutex 2020-12-30 13:25:02 +05:30
David Cermak
0182a84c2b mdns: Allow resolve its own non-strict answers
the mDNS responder should not repeat questions when replying, however resolvers
must ignore these questions field if they are present. esp-idf mDNS
library does include questions in answering packets (thus not strictly
following the RFC6762) so the resolver did not correctly resolved
another instance host name.

Closes https://github.com/espressif/esp-idf/issues/6190
2020-12-29 19:05:32 +01:00
Aditya Patwardhan
52d9d07422 esp_tls_wolfssl : Add domain name check 2020-12-29 21:28:51 +05:30
Chinmay Chhajed
5dd8bf4fe5 Bluedroid: Fixes for some vulnerabilities.
This commit fixes 'Impersonation in Passkey entry protocol'
(CVE-2020-26558) and suggests fixes for other vulnerabilites like
'Impersonation in the Pin Pairing Protocol' (CVE-2020-26555) and
'Authentication of the LE Legacy Pairing Protocol'

CVE-2020-26558 can be easily implemented if the peer device can
impersonate our public key. This commit adds a check by comparing our
and received public key and returns failed pairing if keys are same.

This commit also adds comments suggesting to use secure connection when
supported by all devices.
2020-12-25 16:01:30 +05:30
baohongde
edb2a4af41 components/bt: Add QOS for SPP, to decrease the delay from slave to master 2020-12-25 14:56:35 +08:00
Supreet Deshpande
801bbcc7ad Secure boot v2: Fixes the issue of passing the flash calculated digest for ota verification. 2020-12-24 14:25:28 +05:30
Supreet Deshpande
2427847229 Secure Boot v2: Fix the double padding of the image length during flash encryption
Fixes https://github.com/espressif/esp-idf/issues/6236
2020-12-24 14:22:08 +05:30
liqigan
bf7435d80d fix spp vfs demo crash when use dynamic memory 2020-12-23 15:13:37 +08:00
Aditya Patwardhan
ebaf8ae461 esp-tls : (Fix) update tls->sockfd value after socket is freed internally
Closes https://github.com/espressif/esp-idf/issues/6163
2020-12-21 11:23:45 +05:30
Jiang Jiang Jian
64c2f8605a Merge branch 'nimble/fix_misc_coverity_issue_v4.1' into 'release/v4.1'
Nimble: Fix misc issues in NimBLE NVS, `ble_eddystone`, recursive call and  L2CAP CoC (v4.1)

See merge request espressif/esp-idf!11391
2020-12-21 12:07:37 +08:00
Jiang Jiang Jian
6710148748 Merge branch 'bugfix/fix_crash_caused_by_calling_deinit_directly_4_1' into 'release/v4.1'
Fix crash cause by calling a2dp deinit when connected [backport v4.1]

See merge request espressif/esp-idf!11690
2020-12-21 12:05:40 +08:00
Jiang Jiang Jian
be2d72b660 Merge branch 'bugfix/blufi_config_potential_double_free_v4.1' into 'release/v4.1'
Bugfix/blufi config potential double free v4.1

See merge request espressif/esp-idf!11164
2020-12-21 12:05:33 +08:00
weitianhua
aee941a087 Fix crash cause by calling a2dp deinit when connected 2020-12-21 10:23:46 +08:00
Jiang Jiang Jian
73f601554b Merge branch 'bugfix/eap_client_crash_4.1' into 'release/v4.1'
wpa_supplicant: Fix null pointer dereference if eap init failed

See merge request espressif/esp-idf!11642
2020-12-20 15:58:29 +08:00
Jiang Jiang Jian
aff13c0fbc Merge branch 'fixbug/baidu_tcp_recv_assert_for_4.1' into 'release/v4.1'
lw-ip:fix bug for tcp recv assert(backport 4.1)

See merge request espressif/esp-idf!11602
2020-12-20 15:52:44 +08:00
xueyunfei
5f3f5f15b2 fix bug for tcp recv assert 2020-12-18 14:00:48 +00:00
Jiang Jiang Jian
286f8c76b6 Merge branch 'bugfix/exl200_reset_and_adv_v4.1' into 'release/v4.1'
Bugfix/exl200 reset and adv v4.1

See merge request espressif/esp-idf!11672
2020-12-18 21:59:32 +08:00
wangcheng
b5e93053e5 components/bt:fix exl200, add btdm_disable_adv_delay, fix RPA addr update error. 2020-12-18 12:25:19 +00:00
wangcheng
c6d2c43661 components/bt: Fixed the problem of early release of pointer(p_ccb) in funcion 2020-12-18 12:25:19 +00:00
Jiang Jiang Jian
bd9025f817 Merge branch 'bugfix/revert_tx_optimization_v4.1' into 'release/v4.1'
Revert "esp_wifi: optimize WiFi TX performance" (v4.1)

See merge request espressif/esp-idf!11675
2020-12-18 20:22:41 +08:00
Fu Hanxi
7bdef15e85 CI: Disable pipelines generated by push on dev branches 2020-12-18 08:43:22 +00:00
zhangyanjiao
20dc46ca49 Revert "esp_wifi: optimize WiFi TX performance"
This reverts commit 5de5eb5676.
2020-12-18 08:38:01 +00:00
He Yin Ling
592645f0c0 Merge branch 'bugfix/ci_py2_warnings_fix_v4.1' into 'release/v4.1'
ci: Python 2 warnings fix (v4.1)

See merge request espressif/esp-idf!11618
2020-12-18 16:33:44 +08:00
Artem Godlevskyi
a582fbdfdc Added missing MYNEWT_VAL_BLE_L2CAP_COC_MPS definition
Signed-off-by: Prasad Alatkar <prasad.alatkar@espressif.com>

Merges https://github.com/espressif/esp-idf/pull/5825
2020-12-17 07:20:35 +00:00
Prasad Alatkar
30c89dc11d NimBLE: Fix misc coverity issues in NimBLE host
- NimBLE NVS : Additional check to account for NVS operation failure
- NimBLE host: Fix minor bug in ble_eddystone_set_adv_data_gen
- NimBLE host: remove recursive call, upstream PR: https://github.com/apache/mynewt-nimble/pull/857
2020-12-17 07:20:35 +00:00
Angus Gratton
9d21d0a671 Merge branch 'feature/dis_uart_dl_mode_v4.1' into 'release/v4.1'
feature: Disable UART download mode (v4.1)

See merge request espressif/esp-idf!10765
2020-12-16 16:24:25 +08:00
kapil.gupta
45370f4fae wpa_supplicant: Fix null pointer dereference if eap init failed 2020-12-16 11:57:08 +05:30
Angus Gratton
5b3734a04a efuse: Add ESP32 V3 'disable Download Mode' functionality 2020-12-16 17:08:04 +11:00
Cao Sen Miao
cabe0a44b7 adc_i2s: solve the i2s_adc issue when using wifi 2020-12-15 20:57:02 +08:00
Anton Maklakov
b766dc00eb tools: Redirect some warnings to stderr 2020-12-15 13:27:00 +07:00
Anton Maklakov
d3c35e1c5f ci: Ignore Python 2 deprecation warning 2020-12-15 13:26:18 +07:00
Angus Gratton
fca2d78459 efuse: Add new esp_efuse_read_field_bit() convenience function 2020-12-15 15:53:26 +11:00
Angus Gratton
1ef020f0a6 efuse: Add new esp_efuse_write_field_bit() convenience function 2020-12-15 15:53:26 +11:00
Angus Gratton
9b31bd54da efuse: Don't need to burn WR_CRYPT_CNT if CRYPT_CNT is already max
Reduces write cycles, and useful on ESP32 ECO3 as UART_DIS_DL is protected by
the same efuse.

Also fixes accidental macro definition introduced in 7635dce502
2020-12-15 15:53:26 +11:00
Angus Gratton
c9307cb16e secure boot: Fix regression enabling secure boot v2
Regression in 18b4ae2a65 - write-protecting BLK2 caused write
registers to be cleared, so key digest was all zeroes.
2020-12-15 15:53:26 +11:00
Ivan Grokhotkov
f4739d69ab Merge branch 'bugfix/verify-directory-exists_v4.1' into 'release/v4.1'
Bugfix: add check for existence build directory (v4.1)

See merge request espressif/esp-idf!11583
2020-12-12 01:43:28 +08:00
Martin Gaňo
a303b53209 Add checking if the build directory exists and move expression after docstring 2020-12-11 13:26:45 +01:00
radim.karnis
99a6072824 Changed esptool version to latest v2.x 2020-12-11 10:42:50 +01:00
Ivan Grokhotkov
77be96fd87 Merge branch 'bugfix/log-error-run-esptool_v4.1' into 'release/v4.1'
parttool.py: Add file stream parameter and log stdout and stderr to same stream (v4.1)

See merge request espressif/esp-idf!10517
2020-12-11 16:55:09 +08:00
Krzysztof Budzynski
3217cd4734 Merge branch 'doc/update_CN_translation_for_relase/v4.1' into 'release/v4.1'
update get-started/index.rst for release/v4.1

See merge request espressif/esp-idf!11513
2020-12-11 11:38:41 +08:00
Dai Zi Yan
37d8033906 update get-started/index.rst for release/v4.1 2020-12-11 11:38:37 +08:00
Krzysztof Budzynski
6daf14a031 Merge branch 'feature/python2-deprecation-warn_v4.1' into 'release/v4.1'
Tools: Add Python 2 deprecation warning (v4.1)

See merge request espressif/esp-idf!11527
2020-12-11 11:28:56 +08:00
Jiang Jiang Jian
bb20c40fd8 Merge branch 'bugfix/decouple_wifi_bt_with_coex_v4.1' into 'release/v4.1'
esp_wifi: decouple Wi-Fi and bluetooth with coexist to reduce binary file size

See merge request espressif/esp-idf!11534
2020-12-10 22:33:23 +08:00
Darian Leung
4256b1098c twai: Temporarily disable network example test
Disabling network example test due to issue with synchronizing the
start of each DUT
2020-12-10 21:31:56 +08:00
Xia Xiaotian
649d834c16 esp_wifi: decouple Wi-Fi and bluetooth with coexist to reduce binary file size
close https://github.com/espressif/esp-idf/issues/5970
2020-12-10 17:07:49 +08:00
daiziyan
026accbb91 add CN translation for adding python2 deprecation warning(MR 11115) 2020-12-09 14:41:33 +01:00
martin.gano
f75acede24 Tools: add Python 2 deprecation warning 2020-12-09 14:41:33 +01:00
Jiang Jiang Jian
69beb55bbd Merge branch 'bugfix/revert_iram_optimizaion_v4.1' into 'release/v4.1'
esp_wifi: revert wifi iram optimization(v4.1)

See merge request espressif/esp-idf!11512
2020-12-09 17:39:28 +08:00
negativekelvin
161569e3f9 Fix reserved psram region
Closes https://github.com/espressif/esp-idf/pull/5373

Closes https://github.com/espressif/esp-idf/issues/5821
2020-12-08 17:43:49 +11:00
ChenJianxing
f5cee05010 esp_wifi: revert wifi iram optimization(v4.1) 2020-12-08 14:03:20 +08:00
Angus Gratton
e7f40fca68 tools: Avoid subprocess.run(capture_output) argument for Python <3.7 compatibility
In Python 3.5 and 3.6 the equivalent to capture_output=True is to set stdout
and stderr arguments to subprocess.PIPE
2020-12-08 09:44:44 +11:00
Jiang Jiang Jian
6a9b351b67 Merge branch 'bugfix/pmf_tx_rx_routine_v4.1' into 'release/v4.1'
esp_wifi: Always register pmf tx/rx routines (backport v4.1)

See merge request espressif/esp-idf!11449
2020-12-03 18:10:00 +08:00
xiehang
1ae727bbc2 esp_wifi: Always register pmf tx/rx routines
Fixes the issue when PMF packets are not sent after mode change.
2020-12-03 15:31:30 +08:00
Jiang Jiang Jian
369222f811 Merge branch 'feature/btdm_support_some_ble_new_features_v4.1' into 'release/v4.1'
components/bt: backport some new features for Bluedroid BLE(release v4.1)

See merge request espressif/esp-idf!11441
2020-12-03 14:38:53 +08:00
Jiang Jiang Jian
0499dfdd0c Merge branch 'bugfix/update_release_v4.1_bt_lib' into 'release/v4.1'
components/bt: backport requires commit to release v4.1

See merge request espressif/esp-idf!11425
2020-12-03 11:21:53 +08:00
xiewenxiang
1273982045 component/bt: support BLE Read Attribute value by UUID 2020-12-02 20:20:03 +08:00
xiewenxiang
5da4c0f125 component/bt: refactor ble random address setting 2020-12-02 20:19:54 +08:00
XieWenxiang
8e08156141 component/bt: support BLE Application Layer Encryption key size check 2020-12-02 20:19:45 +08:00
XieWenxiang
a6ea010898 component/bt: support BLE Authorization 2020-12-02 20:19:35 +08:00
xiewenxiang
217e90ec5c component/bt: fix incorrect encryption flag setting 2020-12-02 20:19:21 +08:00
morris
ec2817a285 soc: fix comparison error in soc component
Closes https://github.com/espressif/esp-idf/issues/6120
2020-12-02 12:23:17 +08:00
wangcheng
ee4fb9b182 components/bt: backport requires commit to release v4.1 2020-12-01 19:36:39 +08:00
Ivan Grokhotkov
29d5a4dcc3 examples: fix flash encryption example test
Commit 5e8795eebe has changed the partition table offset, which
has resulted in the ciphertext not matching the one expected in the
example test.
Fix by calculating the ciphertext using espsecure.py.
2020-12-01 18:30:11 +08:00
KonstantinKondrashov
f124c30b6f example/flash_encryption: Fix partition table and sdkconfig.defaults
When the flash encryption is enabled then we do not need to change the partition table.
The partition_example.csv should not have fixed offsets for partitions because we want to move the whole table.
The fixed offsets in the table were cleared.
2020-12-01 17:01:45 +08:00
Shivani Tipnis
38b15816b4 ci: Fix blecent example test
(cherry picked from commit fc146a98e4)
2020-11-30 22:41:12 +05:30
KonstantinKondrashov
3dddf0c81d esp32xx: Fix default values for all RTC sources in RTC_CLK_CAL_CYCLES option
Closes: https://github.com/espressif/esp-idf/issues/6037
2020-11-30 23:33:48 +08:00
Krzysztof Budzynski
ea28da9b61 Merge branch 'docs/self_hosted' into 'release/v4.1'
docs: self host docs

See merge request espressif/esp-idf!10191
2020-11-26 13:45:21 +08:00
Island
de6d8c6521 Merge branch 'bugfix/ble_mesh_wifi_coexit_example_v4.1' into 'release/v4.1'
bugfix: Delete local variables to avoid null global variables (backport v4.1)

See merge request espressif/esp-idf!11371
2020-11-26 10:38:00 +08:00
InfiniteYuan
30e4f83127 bugfix: Delete local variables to avoid null global variables 2020-11-25 20:51:24 +08:00
David Cermak
3d4d56727a ESP-NETIF: fix get/set hostname API to reflect user settings
On startup of the common interface (ethernet, wifi), the lwip netif hostname was assigned to confg value .
Fixed to assign to esp-netif hostname if it exists

Closes https://github.com/espressif/esp-idf/issues/4737
2020-11-24 14:00:05 +01:00
Angus Gratton
611160e90e Merge branch 'bugfix/secure_boot_v2_manual_enablement_v4.1' into 'release/v4.1'
Secure Boot V2: Fix an issue leading to manual enablement of Secure Boot v2. (v4.1)

See merge request espressif/esp-idf!11229
2020-11-24 15:46:12 +08:00
Angus Gratton
bb3bec200c Merge branch 'bugfix/coredump_memregion_size_v4.1' into 'release/v4.1'
coredump: Fixes size of memory region used by espcoredump.py (backport v4.1)

See merge request espressif/esp-idf!8976
2020-11-24 13:18:51 +08:00
wangcheng
87669b23da component/bt: Add a macro to control the compilation of blufi. 2020-11-24 10:45:36 +08:00
wangcheng
f7e870e45d component/bt: Fix a potential double free error. 2020-11-24 10:45:36 +08:00
wangcheng
7765b07898 blufi: fix an error caused by incorrect conn_id parameters. 2020-11-24 10:45:36 +08:00
Marius Vikhammer
329ae0a987 docs: self host docs
Move doc hosting from readthedocs to espressif servers

Update CI, Sphinx configs and add IDF Sphinx theme
2020-11-24 02:16:02 +00:00
Krzysztof Budzynski
50efa84dc4 Merge branch 'docs/fix_a_broken_link_to_temp_sensor_esp32s2' into 'release/v4.1'
docs: fix a broken link for v4.1

See merge request espressif/esp-idf!11339
2020-11-23 19:11:43 +08:00
Angus Gratton
c57de0d6ca Merge branch 'ci/fix_annotated_tag_check_v4.1' into 'release/v4.1'
ci: Fix annotated tag check (v4.1)

See merge request espressif/esp-idf!11332
2020-11-23 17:34:41 +08:00
Wang Fang
753eaa03a6 docs: fix a broken link for v4.1 2020-11-23 15:46:01 +08:00
Michael (XIAO Xufeng)
f59d1dfab9 Merge branch 'bugfix/freemodbus_fix_event_processing_after_destroy_v4.1' into 'release/v4.1'
freemodbus: fix event processing failure after destroy (backport v4.1)

See merge request espressif/esp-idf!9326
2020-11-23 14:33:47 +08:00
Angus Gratton
9a141cc0ce ci: Fix annotated tag check
Regression in 1612f84
2020-11-23 17:28:21 +11:00
Michael (XIAO Xufeng)
a4c72cfa28 Merge branch 'bugfix/fix_iram_handler_call_inline_func' into 'release/v4.1'
Bugfix/fix iram handler call inline function uart_ll_is_tx_idle in flash (v4.1)

See merge request espressif/esp-idf!9951
2020-11-23 12:16:57 +08:00
Alex Lisitsyn
40636d6a49 uart: fix uart_ll_is_tx_idle to inline into handler correctly when opt for size
Closes https://github.com/espressif/esp-idf/issues/5694
2020-11-23 12:16:57 +08:00
aleks
62c44408c2 freemodbus: fix event processing failure after destroy
Closes https://github.com/espressif/esp-idf/issues/5275
2020-11-23 04:08:03 +00:00
Jiang Jiang Jian
e87d95f895 Merge branch 'bugfix/backport_master_to_v4.1' into 'release/v4.1'
Bugfix/backport master to v4.1

See merge request espressif/esp-idf!11316
2020-11-23 00:44:21 +08:00
wangcheng
6956d43f29 components/bt: Point the btlib to the latest branch. 2020-11-22 23:26:22 +08:00
Jiang Jiang Jian
d09d5479a8 Merge branch 'feature/light_sleep_reject_v4.1' into 'release/v4.1'
sleep: enable sleep reject when entering light sleep (backport v4.1)

See merge request espressif/esp-idf!9500
2020-11-22 20:48:39 +08:00
baohongde
f69fe10e7e components/coex: Some bugfix about ble dynamic prio
Rewrite ble dynamic prio to fix ble disconn in conn_param_update/channel_map_update
Rewrite ble dynamic prio in connection establishment
Fix ble dynamic prio with latency
Fix status bit set error when conn fail
2020-11-22 20:37:10 +08:00
baohongde
9b274cc989 components/bt: Fix waking up fail while sleeping 2020-11-22 20:37:10 +08:00
baohongde
a64acef06f components/bt: Make sleep avaliable in hli(for future use) 2020-11-22 20:37:10 +08:00
wangcheng
c33dc7afd1 components/bt: Fix BT controller dead issue caused by clk overflow
components/bt: Fix assert(10, 9), when the AFPM happens
2020-11-22 20:37:10 +08:00
wangcheng
2b19bc9efa components/bt: fixed memory damage caused by bluetooth memory release 2020-11-22 20:37:10 +08:00
wangcheng
a8035d21ef ble_mesh: add ble mesh coex test example 2020-11-22 20:37:10 +08:00
Jiang Jiang Jian
5b73ec939c Merge branch 'bugfix/fix_some_wifi_bugs_1120_v4.1' into 'release/v4.1'
WiFi: fix some wifi bugs 1120 (backport v4.1)

See merge request espressif/esp-idf!11317
2020-11-22 20:07:37 +08:00
dongyou
d950d3b6b0 WIFI: Iperf example's parameter opt was uninitialized, may leads setsockoption invalide if it equal to 0 2020-11-22 18:05:12 +08:00
ronghulin
5a2445bb96 bugfix: fix TCP timer interval 2020-11-22 18:03:57 +08:00
ronghulin
f835edbf5c fix TCP retransmission interval 2020-11-22 18:03:06 +08:00
Jan-Hendrik Frintrop
87bd31983c Fixed links to example directories for fast_scan and scan
Signed-off-by: ronghulin <ronghulin@espressif.com>

https://github.com/espressif/esp-idf/pull/5186
2020-11-22 17:55:09 +08:00
Hrudaynath Dhabe
fc18d7972e wpa_supplicant: Minor bugfix with wpa_supplicant debug logs. 2020-11-22 17:47:20 +08:00
Jiang Jiang Jian
8171579a5c Merge branch 'feature/switch_from_external_to_interanl_ram_v4.1' into 'release/v4.1'
esp32: Switch SPIRAM stack in esp_restart_noos() to internal stack (v4.1)

See merge request espressif/esp-idf!9968
2020-11-22 15:17:41 +08:00
Jiang Jiang Jian
4dd4a1a2e0 Merge branch 'bugfix/backport_some_lwip_bugs_1120_v4.1' into 'release/v4.1'
lw-ip:backport bugfix lwip for v4.1(backport 4.1)

See merge request espressif/esp-idf!11305
2020-11-21 15:28:00 +08:00
KonstantinKondrashov
d925b564cd esp32: Switch SPIRAM stack in esp_restart_noos() to internal stack
If esp_restart_noos() is run and the stack address points to external memory (SPIRAM)
then Cache_Read_Disable() raises up the error "Cache disabled but cached memory region accessed"
to fix this we switch stack to internal RAM before disable cache.

Added unit tests.

Closes: https://github.com/espressif/esp-idf/issues/5107
2020-11-21 07:14:38 +00:00
Jiang Jiang Jian
941e7771d9 Merge branch 'feature/mqtt_submodule_update_23c8e1ec_v4.1' into 'release/v4.1'
MQTT: Update submodule reference to da850b (config, error flags, minor fixes) (v4.1)

See merge request espressif/esp-idf!11313
2020-11-21 15:13:18 +08:00
Jiang Jiang Jian
552baf659c Merge branch 'bugfix/mdns_src_addr_cpy_v4.1' into 'release/v4.1'
mdns: Fix wrong mdns source address if lwIP IPv6 zoning disabled (v4.1)

See merge request espressif/esp-idf!11311
2020-11-21 15:11:05 +08:00
Jiang Jiang Jian
fee376dcdc Merge branch 'bugfix/customer_baidu_psram_stack_backtrace_v4.1' into 'release/v4.1'
backport v4.1: added psram stack check in backtrace

See merge request espressif/esp-idf!8479
2020-11-20 22:33:26 +08:00
Hrudaynath Dhabe
7eada9f4d3 wpa_supplicant: Fix configurable debug log feature's warning issue 2020-11-20 22:26:44 +08:00
liu zhifu
3dc7dc9e97 esp_wifi: optimize WiFi debug log
1. Add esp_wifi_statis_dump()
2. Optimize WiFi related debug log
2020-11-20 22:13:19 +08:00
zhangyanjiao
2c85e830e0 esp_wifi: update wifi lib 2020-11-20 20:14:07 +08:00
liu zhifu
5de5eb5676 esp_wifi: optimize WiFi TX performance 2020-11-20 19:47:01 +08:00
Nachiket Kukade
ffc87ab7d9 esp_wifi: Update wifi lib
1. Add STA checks during STA PMF operations
2. Fix WPA2-Ent issue with Open AP
3. Skip WPA-TKIP profile if PMF is required
4. Skip & clear Supplicant PMK Cache with mismatching AP config
5. Use flag ESP32_WIFI_ENABLE_WPA3_SAE to control WPA3 code, disabling
   it code footprint reduces by 7.7kB in libwpa_supplicant.a
6. Fix handling of multiple AP credentials in WPS, apps need update
   to handle the new event for the fix to work

Closes https://github.com/espressif/esp-idf/issues/5971
2020-11-20 19:45:21 +08:00
ChenJianxing
b8991833ca esp_wifi: remove wifi tx buffer limits 2020-11-20 19:43:28 +08:00
Xia Xiaotian
3dbff1638c Wi-Fi: set softap beacon DTIM count according to TSF timer 2020-11-20 19:42:13 +08:00
GOPTIONS\pfrost
77e7b15190 Reduce log level of hexdumps to verbose
Revert "Reduce log level of hexdumps to verbose"

Add a menuconfig option to enable or disable the logging in wpa_supplicant

Clarify help message
2020-11-20 19:40:48 +08:00
aditi_lonkar
5707296aff wifi: Fix esp_wifi log levels 2020-11-20 19:38:34 +08:00
kapil.gupta
2c995da190 ESP-WIFI: Optimize 4way handshake failure time
In case of wrong passpharse, AP will keep on sending 1/4 multiple
times which may take around 10 secs to disconnect and detect
wrong password event.

Add changes to reject EAPOL1 after 3 consecutive reception
2020-11-20 19:33:43 +08:00
Nachiket Kukade
0bd483bbf5 espnow/pmf: Implement ESPNOW + PMF Co-existance
H/W decryption of Mgmt frames was disabled for PMF and done through
S/W. If ESPNOW packets go through this path, it affects backward
compatibility since method of decrypting Mgmt packets is different in H/W.

To address PMF + ESPNOW Co-existance, CCMP decryption method is modified
for ESPNOW packets so that they can be decrypted correctly. Since Tx
of ESPNOW packets can still be done in H/W alongside PMF, no change
required in encryption method in S/W.

Co-Authored-By: Nachiket Kukade <nachiket.kukade@espressif.com>
Co-Authored-By: zhangyanjiao <zhangyanjiao@espressif.com>
Co-Authored-By: kapil.gupta <kapil.gupta@espressif.com>
2020-11-20 19:00:55 +08:00
David Cermak
05314b6ce0 MQTT: Update submodule reference: config, error handle, minor fixes
Updates esp-mqtt reference to include fixes below related mainly to:
* configuration update (disable keepalive, network timeout)
* minor fixes (size_t for all sizes, unbalanced lock, api for
  outbox-size)
* extended error handle to include socket's errno

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

Config: Added config value to disable keepalive mechanism
esp-mqtt commit: 8562437c8a
Related https://github.com/espressif/esp-mqtt/issues/179

Added esp_mqtt_client_get_outbox_size API
esp-mqtt commit: 0a1d9d0300
Related https://github.com/espressif/esp-mqtt/pull/178

mqtt_outbox: Removed unused retry_count field from outbox_item_t
esp-mqtt commit: 673086e13a

config: Fixed typo for configuring OUTBOX_EXPIRED_TIMEOUT_MS
esp-mqtt commit: 259baaec96

Fixed missing MQTT_API_UNLOCK in esp_mqtt_client_stop error path
esp-mqtt commit: 845c2a3a1e
Related https://github.com/espressif/esp-mqtt/issues/173
Related https://github.com/espressif/esp-mqtt/pull/174

Extended mqtt error handle to capture transport's socket errno (IDF
v4.3+)
esp-mqtt commit: 23c8e1ecf5

Config: Added configuration value to set network timeout
esp-mqtt commit: a03228ac46
Related https://github.com/espressif/esp-mqtt/pull/166

Used size_t for all lengths to allow for other architectures
esp-mqtt commit: b9db8d9020
2020-11-20 10:25:25 +01:00
David Cermak
eec0934081 mdns: Fix wrong mdns source address if lwIP IPv6 zones disabled
The struct definition of ip6_addr_t in lwip and esp_ip6_addr_t
differs since zone could be possibly disabled in lwip. Using memcpy to copy the
address will cause wrong source address. Copy the entries manually
instead.

Merges https://github.com/espressif/esp-idf/pull/6055
2020-11-20 10:16:01 +01:00
Li Shuai
ab63824600 added psram stack check in backtrace 2020-11-20 07:13:11 +00:00
xueyunfei
62d1f3f9ba backport bugfix lwip for v4.1 2020-11-20 14:40:26 +08:00
Jiang Jiang Jian
ae5603381d Merge branch 'bugfix/backport_v4.1_fix_websocket_issue' into 'release/v4.1'
websocket_client: fix some issues for websocket client(backport v4.1)

See merge request espressif/esp-idf!11274
2020-11-20 14:02:32 +08:00
Jiang Jiang Jian
c3324a82a3 Merge branch 'bugfix/wpa3_pmkcache_expiry_workaround_v4.1' into 'release/v4.1'
wpa_supplicant: Increase PMK Lifetime to a very high value

See merge request espressif/esp-idf!11275
2020-11-19 16:27:45 +08:00
Island
be7b859198 Merge branch 'feat/ble_mesh_node_local_data_func_v4.1' into 'release/v4.1'
ble_mesh: stack: Add node local netkey/appkey func (v4.1)

See merge request espressif/esp-idf!11281
2020-11-19 11:22:55 +08:00
Jiang Jiang Jian
c2167f137a Merge branch 'fix/protocomm_simple_ble_v4.1' into 'release/v4.1'
Protocomm/simple_ble: Fix gatt table map size to number of handles received (v4.1)

See merge request espressif/esp-idf!11266
2020-11-19 11:21:04 +08:00
Jiang Jiang Jian
b21f42b279 Merge branch 'optimize/ble_mesh_gattc_conn_param_v4.1' into 'release/v4.1'
ble_mesh: stack: Update connection parameters used by Central (v4.1)

See merge request espressif/esp-idf!11284
2020-11-19 11:17:44 +08:00
lly
3873c9e260 ble_mesh: stack: Update connection interval to 15ms 2020-11-18 20:24:22 +08:00
lly
1fb0861b9c ble_mesh: stack: Update connection parameters used by Central 2020-11-18 20:24:22 +08:00
lly
e989d59a4e ble_mesh: stack: Fix wrong declaration of node bind AppKey func 2020-11-18 20:15:12 +08:00
lly
7b9c04b773 ble_mesh: stack: Add node local netkey/appkey func 2020-11-18 20:14:56 +08:00
Island
9798f2c9b0 Merge branch 'optimize/ble_mesh_reduce_code_size_v4.1' into 'release/v4.1'
ble_mesh: stack: Optimization introduced to reduce code size (v4.1)

See merge request espressif/esp-idf!11249
2020-11-18 20:08:29 +08:00
Jiang Jiang Jian
0a8fd1d44b Merge branch 'bugfix/backport_v4.1_fix_pthread_priority_inheritance' into 'release/v4.1'
pthread: fix the priority inheritance(backport v4.1)

See merge request espressif/esp-idf!11259
2020-11-18 17:28:35 +08:00
Nachiket Kukade
50cf0c2d24 wpa_supplicant: Increase PMK Lifetime to a very high value
For WPA3 connection nearing PMK lifetime expiry, PMK Cache
needs a re-authentication or the cache will expire. After
current expiry of 12 hours Station ends up sending a deauth
to the AP. An SAE re-authentication also cannot occur without
a disconnection with current implementation. So increase the
PMK lifetime to 100 days for now.
2020-11-18 12:36:52 +05:30
Jiang Jiang Jian
ae202d81ec Merge branch 'bugfix/fix_ag_outging_callback_not_triggered_v4.1' into 'release/v4.1'
Bugfix/Fix Ag Example Outgoing Callback Not Triggered [backport v4.1]

See merge request espressif/esp-idf!11019
2020-11-18 11:40:07 +08:00
Jiang Jiang Jian
e645e2e5d6 Merge branch 'bugfix/fix_spp_read_flow_control_v4.1' into 'release/v4.1'
component_bt/fix spp flow control and vfs write [backport 4.1]

See merge request espressif/esp-idf!11073
2020-11-18 11:39:35 +08:00
Alexey Gerenkov
c78f5cde40 coredump: Fixes size of memory region used by espcoredump.py 2020-11-17 20:25:56 +03:00
Prasad Alatkar
f39b02f299 Protocomm/simple_ble: Make gatt table map size equal to number of handles received (v4.1)
- Fixes memcpy failure observed while adding 2 or more endpoints in
  wifi_provisioning.

 Closes IDF-2250
2020-11-17 15:59:06 +05:30
Jiang Jiang Jian
8eff4e7a47 Merge branch 'optimization/AP_STAIPASSIGNED_passes_IP_send_through_event_data_for_4.1' into 'release/v4.1'
esp-event:AP_STAIPASSIGNED now passes the IP through 'event_data'(backport 4.1)

See merge request espressif/esp-idf!11240
2020-11-17 17:45:56 +08:00
xutao
88ddddbd3f websocket_client: fix some issues for websocket client
1. will post twice disconnect event when read error
    2. will block `timeout` times when set disable_auto_connect
    3. When `esp_websocket_client_stop` before `esp_websocket_client_send*`,
    if the `esp_websocket_client_send*` fails, the status will change to
     'WEBSOCKET_STATE_WAIT_TIMEOUT', and the next `esp_websocket_client_start` will fail forever
2020-11-17 15:53:19 +08:00
xutao
61807f6e52 pthread: fix the priority inheritance
When `pthread_mutex_destroy` is used to release mutex, `pthread_mutex_lock_internal` is used,
     which results in the increase of `uxmutexehold` and no recovery base priority
2020-11-17 14:46:09 +08:00
lly
c53fe053e7 ble_mesh: example: Update sdkconfig test files for disabling Health Server model 2020-11-17 11:06:34 +08:00
lly
230e8f5c92 ble_mesh: stack: Add a Kconfig option to make Health Server model optional 2020-11-17 11:06:34 +08:00
lly
c94d7fe982 ble_mesh: stack: Split model Kconfig menu into foundation and others 2020-11-17 11:06:34 +08:00
lly
ea1c51639f ble_mesh: example: Fix fast provisioning compile error 2020-11-17 11:06:34 +08:00
lly
447d19776c ble_mesh: ci: Add disabling mesh model sdkconfig test files 2020-11-17 11:06:34 +08:00
lly
dad5cc4aeb ble_mesh: stack: Add Kconfig options to make server models optional 2020-11-17 11:06:33 +08:00
lly
e44307504a ble_mesh: stack: Use Kconfig option to make client models optional 2020-11-17 11:06:33 +08:00
lly
a67d205468 ble_mesh: stack: Make some internal static functions inline 2020-11-17 11:06:33 +08:00
lly
22cfa7ea6a ble_mesh: ci: Add disabling mesh deinit sdkconfig test files 2020-11-17 11:06:33 +08:00
lly
bc5ba60ceb ble_mesh: stack: Add a Kconfig option to make deinit optional 2020-11-17 11:06:33 +08:00
lly
73733396cd ble_mesh: stack: Introduce a new header file mesh_config.h 2020-11-17 11:06:32 +08:00
Krzysztof Budzynski
4f74fd9e95 Merge branch 'bugfix/sleep_comments_v4.1' into 'release/v4.1'
doc: Specify that sleep wakeup source restrictions apply to all current ESP32 revisions (v4.1)

See merge request espressif/esp-idf!8567
2020-11-17 08:59:22 +08:00
Angus Gratton
09e669dba2 Merge branch 'bugfix/secure_boot_v2_key_gen_py3_v4.1' into 'release/v4.1'
esptool: Update submodule fixing Py3 keygen in Secure boot v2

See merge request espressif/esp-idf!11230
2020-11-17 07:38:43 +08:00
israel
467bf2f53f AP_STAIPASSIGNED now passes the IP through 'event_data'
Signed-off-by: xueyunfei <xueyunfei@espressif.com>
2020-11-16 17:32:14 +08:00
Anton Maklakov
3a5457efe4 ci: use the retry script to download 2020-11-16 11:36:35 +07:00
Angus Gratton
5bb72ea5cc Merge branch 'bugfix/cmake_example_sdkconfig_path_v4.1' into 'release/v4.1'
cmake/example: Move idf_as_lib sdkconfig path to project, document configuring project (v4.1)

See merge request espressif/esp-idf!10860
2020-11-16 12:14:00 +08:00
Angus Gratton
573f5de99a Merge branch 'bugfix/window_spill_a0_corruption_v4.1' into 'release/v4.1'
freertos: don't clobber a4 while spilling register windows (backport v4.1)

See merge request espressif/esp-idf!10306
2020-11-13 16:27:45 +08:00
Supreet Deshpande
5b1a3b801f esptool: Update submodule fixing Py3 keygen in Secure boot v2 2020-11-13 12:10:19 +05:30
Supreet Deshpande
18b4ae2a65 Secure Boot V2: Fix an issue leading to manual enablement of Secure Boot v2.
Fixes https://github.com/espressif/esp-idf/issues/6050
2020-11-13 11:36:29 +05:30
Mahavir Jain
00fb496eda Merge branch 'fix/esp_local_ctrl_update_expired_cert_v4.1' into 'release/v4.1'
esp_local_ctrl: Updated the expired cacert.pem (v4.1)

See merge request espressif/esp-idf!11207
2020-11-12 23:20:37 +08:00
David Čermák
ad7f8ed0ff Merge branch 'feature/pppos_client_test_v4.1' into 'release/v4.1'
PPPoS client fixes for UART: REF_TICK, driver install after config (v4.1)

See merge request espressif/esp-idf!11197
2020-11-12 20:31:45 +08:00
Jiang Jiang Jian
5468184381 Merge branch 'bugfix/update_toolchain_5.2.0_psram_final_v4.1' into 'release/v4.1'
esp_wifi: Update WiFi toolchain to 1.22.0-97-gc752ad5 (backport v4.1)

See merge request espressif/esp-idf!11101
2020-11-12 14:26:21 +08:00
Axel Lin
21dc6d1bf1 esp_modem: Ensure uart_param_config and uart pins are set before uart_driver_install
Fixes Guru Meditation Error: Core 0 panic'ed (LoadProhibited) when config with
CONFIG_PM_ENABLE=y && CONFIG_PM_DFS_INIT_AUTO=y.

Signed-off-by: Axel Lin <axel.lin@gmail.com>

Merges https://github.com/espressif/esp-idf/pull/4904
2020-11-12 07:15:39 +01:00
David Cermak
e4575b20a1 esp_modem: pppos_client modem to use uart with REF_TICK
pppos_client example used the UART default clock configuration which might
cause issues if power management enabled. Settings updated to UART_SCLK_REF_TICK
Also need to explicitly disable RX interrupts in UART pattern detection
mode.

Closes https://github.com/espressif/esp-idf/issues/4801
2020-11-12 07:13:13 +01:00
Jiang Jiang Jian
86dd11f176 Merge branch 'bugfix/esp_netif_ppp_setdefault_fix_v4.1' into 'release/v4.1'
ESP-NETIF: Set default interface for ppp netif must be called from lw_ip context (v4.1)

See merge request espressif/esp-idf!11196
2020-11-12 14:05:50 +08:00
Jiang Jiang Jian
29a995dd78 Merge branch 'bugfix/pppos_ignored_modem_start_return_v4.1' into 'release/v4.1'
pppos client: modem netif fix ignoring potential modem-start error (v4.1)

See merge request espressif/esp-idf!11199
2020-11-12 14:03:54 +08:00
Jiang Jiang Jian
d397767f5d Merge branch 'bugfix/fix_esp_modem_mode_switch_timeout_v4.1' into 'release/v4.1'
fix esp_modem switch mode timeout (v4.1)

See merge request espressif/esp-idf!11198
2020-11-12 14:03:15 +08:00
Aditya Patwardhan
2357d05427 esp_local_ctrl: Updated the expired cacert.pem 2020-11-12 10:16:54 +05:30
Ivan Grokhotkov
b6b1cf216b Revert "CXX: removed exception windowspill test"
This reverts commit f3e180de72.
2020-11-11 14:43:15 +00:00
Ivan Grokhotkov
cf5ef7f0e1 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-11-11 14:43:15 +00:00
David Cermak
07c41378fb pppos client: modem netif fix ignoring potential modem-start error
esp-modem netif glue layer implements esp-netif attach callback to setup corresponding driver functions and start the modem. The error code of esp_modem_start_ppp() was ignored and ESP_OK returned in all cases. Fixed by passing esp_modem_start_ppp()'s error code to post_attach callback.

Closes https://github.com/espressif/esp-idf/issues/5430
2020-11-11 14:25:05 +01:00
morris
e8834b66c5 fix esp_modem switch mode timeout
Closes https://github.com/espressif/esp-idf/issues/3506
Closes https://github.com/espressif/esp-idf/issues/4324
2020-11-11 14:19:23 +01:00
David Cermak
4c1ad38f79 esp-netif-ppp: support for setting ppp netif up and down
calling esp_netif_up() and esp_netif_down() was not supported if the
underlying netif wos of ppp type. Updated the code to enable setting
these interfaces up/down and registered actions in moden_netif glue for
connection/disconnection events to set the netif up/down.
2020-11-11 13:29:13 +01:00
David Cermak
b9d1afdb86 esp-netif: set default interface for ppp netif must be called from lwip context
On update of any interface (set up/down) a routing preference is updated calling esp_netif_update_default_netif() that is called from
lwip context. But if the related netif was ppp type, the set_default api used user-mode, thus causing a dead lock.

Closes https://github.com/espressif/esp-idf/issues/4746
2020-11-11 13:29:13 +01:00
Angus Gratton
f1d98671d2 doc: Specify that sleep wakeup source restrictions apply to all current ESP32 revisions
Closes https://github.com/espressif/esp-idf/issues/4681

Discussion https://esp32.com/viewtopic.php?f=13&t=15145
2020-11-11 17:34:42 +11:00
xiehang
2178f319c4 esp_wifi: Update WiFi toolchain to 1.22.0-97-gc752ad5 2020-11-10 20:15:13 +08:00
He Yin Ling
a59a8edfc0 Merge branch 'bugfix/example_test_import_error_4.1' into 'release/v4.1'
bugfix: import error in example tests (4.1)

See merge request espressif/esp-idf!11047
2020-11-09 19:19:37 +08:00
Chen Yu Dong
fd10a095dd ci: limit switching branches for auto_test_script 2020-11-06 17:19:54 +08:00
Jiang Jiang Jian
538b04bf14 Merge branch 'bugfix/fix_16mbit_psram_id_read_error_v4.1' into 'release/v4.1'
psram: fix 16mbit psram id read error (backport v4.1)

See merge request espressif/esp-idf!9426
2020-11-05 14:10:39 +08:00
Michael (XIAO Xufeng)
534b8a7940 spiram: fix the read id failure
The issue is caused by:
1. The disable_qio_mode inside read_id may have side effects.
2. read_id twice may have side effects.

Fix this issue by moving disable_qio_mode out of read_id and only do it
once before read_id. And retry read_id only when the first one is
failed.

Issue introduced in 3ecbb59c15.
2020-11-05 04:13:39 +00:00
chenjianqiang
cbf4d51ddb psram: fix 16mbit psram id read error 2020-11-05 04:13:39 +00:00
Jiang Jiang Jian
91e435d662 Merge branch 'feature/lwip_tcp_isn_hook_v4.1' into 'release/v4.1'
lw-ip: enable TCP ISN hook (v4.1)

See merge request espressif/esp-idf!11063
2020-11-05 12:10:17 +08:00
Michael (XIAO Xufeng)
ab1f6299ff Merge branch 'bugfix/fix_uart_module_enable_issue_v4.1' into 'release/v4.1'
Bugfix (uart):  fix uart module reset issue (release/v4.1)

See merge request espressif/esp-idf!8592
2020-11-05 10:32:28 +08:00
Michael (XIAO Xufeng)
7cbf4c4330 Merge branch 'bugfix/fix_i2s_reset_issue_v4.1' into 'release/v4.1'
driver(I2S): Fix I2S reset issue for release/v4.1

See merge request espressif/esp-idf!9584
2020-11-05 09:05:50 +08:00
Michael (XIAO Xufeng)
32c3db089b Merge branch 'bugfix/fix_i2c_slave_rxfifo_full_interrupt_bug_v.4.1' into 'release/v4.1'
Bugfix (I2C): fix I2C slave rxfifo_full interrupt enabled incorrectly bug (release/v4.1)

See merge request espressif/esp-idf!7679
2020-11-05 02:27:03 +08:00
Jiang Jiang Jian
c8289caa23 Merge branch 'mesh/bugfix_1023_backport_v4.1' into 'release/v4.1'
esp_wifi_mesh: update wifi mesh libs(Backport v4.1)

See merge request espressif/esp-idf!11080
2020-11-04 22:49:47 +08:00
Michael (XIAO Xufeng)
73381b5582 Merge branch 'bugfix/pcnt_interrupt_clear_v4.1' into 'release/v4.1'
pcnt: fix bug in clear interrupt status (v4.1)

See merge request espressif/esp-idf!10693
2020-11-04 19:43:01 +08:00
Michael (XIAO Xufeng)
5ca047ac9b Merge branch 'bugfix/rmt_memory_write_multiple_blocks_v4.1' into 'release/v4.1'
rmt: fix TX data truncated issue (v4.1)

See merge request espressif/esp-idf!10904
2020-11-04 18:44:51 +08:00
houwenxiang
eda943b7c5 driver(uart): fix uart module reset issue (release/v4.1)
On ESP32, due to fifo reset issue, UART2 will work incorrectly if reset the fifo of UART1(TX fifo and RX fifo). The software can workaround the RX fifo reset issue,

  while the TX fifo reset issue can not. When UART2 is used and UART1 is used as the log output port, a software reset can reproduce this issue. So we should reset the UART memory

  before the software reset to solve this problem.
2020-11-04 18:41:43 +08:00
houwenxiang
e76038ed76 driver(I2C): fix I2C slave rxfifo_full interrupt enabled incorrectly bug (release/v4.1) 2020-11-04 08:25:59 +00:00
houwenxiang
9f6f510ce2 driver(I2S): Fix I2S reset issue for release/v4.1
`i2s_start` reseting I2S in incorrect order causeing the word-order error.
2020-11-04 08:18:20 +00:00
Jiang Jiang Jian
f68b6e6c60 Merge branch 'bugfix/lwip_netdb_cpp_guards_v4.1' into 'release/v4.1'
lw-IP: Changed to C linkage in netdb.h for fixing bug when using mixed C/C++ code (v4.1)

See merge request espressif/esp-idf!11090
2020-11-04 15:18:14 +08:00
Jiang Jiang Jian
718efee074 Merge branch 'cherry-pick-65bee988' into 'release/v4.1'
esp_wifi: Add Failures Reason code in all WPS failure send event(backport v4.1)

See merge request espressif/esp-idf!11087
2020-11-04 15:07:55 +08:00
Ivan Grokhotkov
db2eec2096 Merge branch 'bugfix/ci_clone_https_v4.1' into 'release/v4.1'
ci: use HTTPS for cloning in IT jobs (v4.1)

See merge request espressif/esp-idf!11096
2020-11-03 21:45:47 +08:00
Ivan Grokhotkov
e552ea0d9c ci: use HTTPS for cloning in IT jobs 2020-11-03 19:30:30 +08:00
mathiasbredholt
10526ca207 lwip: Changed to C linkage for fixing bug when using mixed C/C++ code
Merges https://github.com/espressif/esp-idf/pull/5900
2020-11-03 08:42:02 +01:00
Jiang Jiang Jian
55bb405583 Merge branch 'bugfix/wps_fail_reason_code' into 'master'
esp_wifi: Add Failures Reason code in all WPS failure send event

Closes WIFI-2947

See merge request espressif/esp-idf!10924

(cherry picked from commit 65bee98861)

474c38a5 esp_wifi: Add WPS Reason code in all failures
2020-11-03 13:48:21 +08:00
Mahavir Jain
246e97c721 esp_netif: initialize TCP ISN hook if enabled in configuration 2020-11-02 14:27:33 +05:30
Mahavir Jain
3689b94882 lwip: provide configuration option to enable TCP ISN hook 2020-11-02 14:27:33 +05:30
Mahavir Jain
591606ba59 tcp_isn: use ROM APIs for md5 calculations 2020-11-02 14:27:26 +05:30
Mahavir Jain
2b351a936c lwip: add custom TCP ISN hook implementation
Source:
https://git.savannah.nongnu.org/cgit/lwip/lwip-contrib.git/
2020-11-02 14:26:19 +05:30
liqigan
caee4c24a9 replace list and ringbuffer with fixed queue
use eventgroup to sync spp_vfs_write

each connection has a switch_delay_timer not sharing a one

revert functions like spp_find_slot_by_xxx

fix vfs read bug when peer close
2020-11-02 10:33:19 +08:00
liqigan
c3171252ec move flow control to btc layer
defer free slot in btc layer when receive BTA_JV_RFCOMM_CLOSE_EVT
2020-11-02 10:33:19 +08:00
liqigan
8171702293 add event when calling spp API failed 2020-11-02 10:33:19 +08:00
Island
572ccd503f Merge branch 'bugfix/fix_node_test_func_not_set_role_v4.1' into 'release/v4.1'
ble_mesh: test: Fix node test function not update role flag (v4.1)

See merge request espressif/esp-idf!11041
2020-10-30 21:05:40 +08:00
Angus Gratton
176f146678 Merge branch 'bugfix/err_to_name_paths_windows_v4.1' into 'release/v4.1'
tools: fix path handling errors in gen_esp_err_to_name.py for Windows (v4.1)

See merge request espressif/esp-idf!10896
2020-10-30 15:12:43 +08:00
Ivan Grokhotkov
0cad7edf40 Merge branch 'bugfix/ldgen_section_windows_line_ending_v4.1' into 'release/v4.1'
tools/ldgen: Fix parsing of section names on Windows (v4.1)

See merge request espressif/esp-idf!11036
2020-10-30 03:55:20 +08:00
Chen Yu Dong
96a650169a bugfix: import error in example tests 2020-10-29 21:14:54 +08:00
shenjun
a281b667bb esp_wifi_mesh: update wifi mesh libs
1. Fix FIX-ROOT does not reconnect to router when disconnect reason is too many
2. Add API esp_mesh_print_scan_result
3. Modify not to reset mesh_xonseq of self and children when flush_upstream_packets
4. Fix not switch to a parent candidate which has the same layer and assoc as current parent
5. Fix not arm parent monitor when a parent candidate is cleared without sending an event to mesh layer
6. Fix the new voted root does not reconnect to router if rssi is weak
2020-10-29 20:26:49 +08:00
lly
02c3881b7e ble_mesh: test: Fix node test function not update role flag 2020-10-29 15:49:35 +08:00
Roland Dobai
1bc0f5ac0a tools/ldgen: Fix parsing of sections names on Windows 2020-10-29 08:34:33 +01:00
liqigan
c89640103f fix ag example outgoing callback not triggered
Closes https://github.com/espressif/esp-idf/issues/4967
2020-10-28 20:13:40 +08:00
Jiang Jiang Jian
e365d1ff60 Merge branch 'feature/esp_tls_for_supplicant_v4.1' into 'release/v4.1'
wpa_supplicant: Support for mbedtls tls handshake(backport v4.1)

See merge request espressif/esp-idf!9856
2020-10-28 19:29:55 +08:00
Jiang Jiang Jian
77eb201241 Merge branch 'bugfix/add_clear_bond_complete_evt_4_1' into 'release/v4.1'
componenet_bt/bugfix: add remove bond device complete event 4.1

See merge request espressif/esp-idf!10653
2020-10-28 16:03:35 +08:00
Jiang Jiang Jian
447708ef05 Merge branch 'bugfix/bredr_bugfix_release_for_qa_dummy_disconnect_4_1' into 'release/v4.1'
Bugfix/bredr bugfix release for qa dummy disconnect 4.1

See merge request espressif/esp-idf!10646
2020-10-28 16:03:21 +08:00
Jiang Jiang Jian
b6615a6c5a Merge branch 'bugfix/wpa_supplicant_link_depth_v4.1' into 'release/v4.1'
wpa_supplicant: Fix failure to link under some circumstances (v4.1)

See merge request espressif/esp-idf!10977
2020-10-28 15:59:22 +08:00
Jiang Jiang Jian
634a5e9355 Merge branch 'bugfix/add_disconn_req_action_when_no_link_4.1' into 'release/v4.1'
Bugfix/add disconn req action when no link 4.1

See merge request espressif/esp-idf!10509
2020-10-28 14:27:10 +08:00
morris
353826cacc rmt: fix RMT data trancate issue
Closes https://github.com/espressif/esp-idf/issues/5992
2020-10-27 19:43:11 +08:00
Michael (XIAO Xufeng)
abc2b2c968 Merge branch 'bugfix/fix_adc_dac_driver_ut_backport_v4.1' into 'release/v4.1'
bugfix(adc): add io init in adc dma driver for esp32  (backport v4.1)

See merge request espressif/esp-idf!10638
2020-10-26 22:04:29 +08:00
Jiang Jiang Jian
153c1f991d Merge branch 'bugfix/fix_tsf_bug_v4.1' into 'release/v4.1'
WiFi: fix tsf bug (backport v4.1)

See merge request espressif/esp-idf!10948
2020-10-26 21:31:57 +08:00
Jiang Jiang Jian
976dc42931 Merge branch 'bugfix/wpa3_to_wpa2_transition_fix_v4.1' into 'release/v4.1'
wpa_supplicant: Fix WPA3 and WPA2 transition related failures (Backport v4.1)

See merge request espressif/esp-idf!9864
2020-10-26 15:09:13 +08:00
Angus Gratton
865c1dd3dc wpa_supplicant: Fix failure to link under some circumstances
Depending on CMake internals, the wpa_supplicant library may need to be repeated
multiple times in the linker command line.

Closes https://github.com/espressif/esp-idf/issues/5641
2020-10-26 15:13:01 +11:00
Angus Gratton
c92efa0ae3 Merge branch 'bugfix/ldgen_unicode_path_v4.1' into 'release/v4.1'
tools/ldgen: Parse paths with Unicode characters in archives (v4.1)

See merge request espressif/esp-idf!10965
2020-10-26 12:08:07 +08:00
Jiang Jiang Jian
1e0bb9c4d3 Merge branch 'bugfix/fix_bredr_read_rssi_delta_v4.1' into 'release/v4.1'
Bugfix/Fix Read Rssi Delta Bug in Bredr [backport v4.1]

See merge request espressif/esp-idf!10802
2020-10-26 11:47:45 +08:00
zhangyanjiao
d1d5de9aa5 esp_wifi: Fixed the bug for timestamp check, didn't disconnect AP when AP's timestamp decrease abnormally 2020-10-26 02:10:25 +00:00
He Yin Ling
de8a512228 Merge branch 'feature/move_auto_test_script_to_new_repo_4.1' into 'release/v4.1'
ci: move auto_test_script to new repo (backport 4.1)

See merge request espressif/esp-idf!10879
2020-10-24 09:25:00 +08:00
Chen Yu Dong
52c3aa87b5 ci: move auto_test_script to new repo (backport 4.1) 2020-10-24 09:24:59 +08:00
Roland Dobai
4836d295a8 tools/ldgen: Parse paths with Unicode characters in archives
Closes https://github.com/espressif/esp-idf/issues/5996
2020-10-23 13:43:55 +02:00
Jiang Jiang Jian
f4e6607e7e Merge branch 'bugfix/ipv6_ping_error_when_src_ip_miss_for_4.1' into 'release/v4.1'
lw-ip:bugfix ipv6 ping error when src ip miss for 4.1(backport 4.1)

See merge request espressif/esp-idf!10933
2020-10-23 15:26:27 +08:00
Nachiket Kukade
af66eab249 wpa_supplicant: Fix WPA3 and WPA2 transition related failures
1. If Device is connected to AP in WPA3-PSK mode, AP switching
security to WPA2-PSK causes connection failures even after reset.
Fix is to not store WPA3's PMK in NVS for caching.

2. AP switching back to WPA3 causes even more connection failures.
This is due to device not clearing Supplicant level PMK Cache when
it is no longer valid. Fix is to clear the Cache when 4-way handshake
fails and to check Key Mgmt of Cache before using.

3. When AP switches from WPA3 to WPA2, device's PMF config in
Supplicant remains enabled. This may cause failures during
4-way handshake. So clear PMF config in when PMF is no longer used.
2020-10-22 10:05:02 +00:00
xueyunfei
16dd05981b bugfix ipv6 ping error when src ip miss for 4.1 2020-10-21 20:46:39 +08:00
Mahavir Jain
da7eaade68 Merge branch 'bugfix/esp_idf_version_v4.1' into 'release/v4.1'
Add __ASSEMBLER__ flag in esp_idf_version.h to fix build failure with assembly files (v4.1)

See merge request espressif/esp-idf!10900
2020-10-21 20:08:22 +08:00
fuzhibo
365cc0c1c8 bugfix(adc): add io init in adc dma driver for esp32 2020-10-20 12:58:26 +00:00
Jiang Jiang Jian
5a0124a103 Merge branch 'bugfix/fix_some_wifi_bugs_0924_v4.1' into 'release/v4.1'
fix some wifi bugs 0924 (v4.1)

See merge request espressif/esp-idf!10613
2020-10-20 20:30:21 +08:00
Island
163bffd0c4 Merge branch 'bugfix/ble_mesh_autorsp_description_v4.1' into 'release/v4.1'
esp_ble_mesh: api: fixed comment about autoresp (v4.1)

See merge request espressif/esp-idf!10889
2020-10-19 16:34:03 +08:00
Shubham Kulkarni
20fd302201 esp_idf_version.h: Add __ASSEMBLER__ flag to fix build failure with assembly files 2020-10-19 13:21:52 +05:30
Marius Vikhammer
a20c4a79e6 tools: fix path handling errors in gen_esp_err_to_name.py for Windows
Exclude paths that were specified with slash as a path separator were compared
as strings. This would fail on Windows which uses backslash as a path separator.
2020-10-19 14:38:57 +08:00
Michael (XIAO Xufeng)
68961436f1 Merge branch 'spi_dma_close_before_cpu_reset_v4.1' into 'release/v4.1'
spi: fix issue with closing DMA before CPU reset (4.1)

See merge request espressif/esp-idf!10824
2020-10-19 14:30:40 +08:00
andreachiara
dcde5626ad esp_ble_mesh: api: fixed comment about autoresp 2020-10-19 11:00:30 +08:00
Angus Gratton
65f1be59ad Merge branch 'bugfix/idf_py_disable_cmake_warnings_default_v4.1' into 'release/v4.1'
idf.py: disable cmake uninitialized variable warnings by default (v4.1)

See merge request espressif/esp-idf!10202
2020-10-19 06:34:15 +08:00
Armando
961af7f903 spi: fix issue with closing DMA before CPU reset 2020-10-16 06:39:01 +00:00
Angus Gratton
157ce5953a cmake: Log the project sdkconfig path as part of normal CMake status output
As discussed in footnote to https://github.com/espressif/esp-idf/issues/5251#issuecomment-625563782
2020-10-16 10:11:52 +11:00
Angus Gratton
bdd7461235 examples: Move idf_as_lib sdkconfig file to the project directory
Also add some explanation about configuring the project in the README

Previously with the default build-esp32.sh script, the build directory was
deleted and recreated so the project would always be built with default config.
2020-10-16 10:11:52 +11:00
David Čermák
d1c78c72d9 Merge branch 'bugfix/mdns_query_id_v4.1' into 'release/v4.1'
mdns: Responding: Fix query ID, add questions if not strict mode (v4.1)

See merge request espressif/esp-idf!10807
2020-10-15 22:43:58 +08:00
Ivan Grokhotkov
96469ad3dd Merge branch 'bugfix/docker_gdb_python_v4.1' into 'release/v4.1'
tools/docker: Add libpython2.7 in order to satisfy GDB dependencies (backport v4.1)

See merge request espressif/esp-idf!10308
2020-10-15 16:01:44 +08:00
Martin Stejskal
3932df3966 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-10-14 19:07:34 +00:00
Ivan Grokhotkov
ad78c86936 Merge branch 'feature/oocd_ver_backport_v4.1' into 'release/v4.1'
tools: Updates OpenOCD version to 'v0.10.0-esp32-20200709' (backport v4.1)

See merge request espressif/esp-idf!8435
2020-10-15 02:53:28 +08:00
Island
e810e4f036 Merge branch 'optimize/ble_mesh_make_buf_config_invisible_v4.1' into 'release/v4.1'
ble_mesh: stack: Make mesh buf debug option invisible (v4.1)

See merge request espressif/esp-idf!10795
2020-10-13 19:51:38 +08:00
Island
27a6550800 Merge branch 'feat/ble_mesh_device_properties_v2_v4.1' into 'release/v4.1'
Feat/ble mesh device properties v2 (v4.1)

See merge request espressif/esp-idf!10788
2020-10-13 19:50:03 +08:00
lly
18c753ba67 ble_mesh: stack: Make mesh buf debug option invisible 2020-10-13 09:31:32 +00:00
lly
1b1139ed55 ble_mesh: stack: Add mesh device properties v2 definitions
Also fixes wrong characteristic value length of some device
properties.
2020-10-13 09:29:50 +00:00
lly
10a618e7b2 ble_mesh: stack: Move device property to model common part 2020-10-13 09:29:50 +00:00
Island
e877d96ee2 Merge branch 'bugfix/ble_mesh_proxy_cfg_replay_v4.1' into 'release/v4.1'
Bugfix/ble mesh proxy cfg replay (v4.1)

See merge request espressif/esp-idf!10820
2020-10-13 17:24:04 +08:00
zhangyanjiao
4c1903a83e esp_wifi:
1. Modify LR for esp32 and esp32s2
2. Fix esp32s2 RTS rate
3. Optimize some debug logs for probe response
4. Optimize phy and soc files
5. Fix the bug that no event for connect
6. drop receiving packets from myself
2020-10-13 16:22:22 +08:00
kapil.gupta
d9fa1f6436 wpa_supplicant: Fix IOT issue with latest freeradius
Fix inter operability issue with freeradius version 3.0.21
and openssl 1.1.1f when internal tls client is used which
requires extension elements in client hello.

closes https://github.com/espressif/esp-idf/issues/5273
closes https://github.com/espressif/esp-idf/issues/5627
2020-10-13 08:09:00 +00:00
kapil.gupta
1d59af5c84 wpa_supplicant: Fix invalid pointer deference and memleak
Add following changes as part of this:

1. EAP client will crash during validation of key size when CA
certs and keys not present. Add changes to validate it first.
2. Free memory allocated in TLS context
2020-10-13 08:09:00 +00:00
kapil.gupta
70fb594873 wpa_supplicant: Support for mbedtls tls handshake
Add support for mbedtls based tls handshake, this removes
dependency from internal implementation of EAP client.
2020-10-13 08:09:00 +00:00
lly
6dadc60c8e ble_mesh: stack: Store kr phase after value changed [Zephyr] 2020-10-13 14:28:44 +08:00
lly
79d7cb2751 ble_mesh: stack: Fix rpl not check by proxy cfg [Zephyr] 2020-10-13 14:28:44 +08:00
Island
d363fafb0b Merge branch 'bugfix/ble_mesh_node_deinit_v4.1' into 'release/v4.1'
ble_mesh: stack: Persistent storage misc fixes (v4.1)

See merge request espressif/esp-idf!10814
2020-10-13 14:07:04 +08:00
lly
0c136620d9 ble_mesh: stack: Persistent storage misc fixes
* Fix the issue that deinit node with "erase_flash"
  set to true, but info is not erased from nvs
* Reuse bt_mesh_cfg_reset() when deinit node
* Optimize Provisioner related erase operations
* No store pending timeout will be used when Node
  is not provisioned OR Provisioner is disabled
  and erase operation is performed
* Change the default timeout for settings operation
  to 0, and rpl store rate to 0
2020-10-13 10:54:18 +08:00
Island
c01f0a08fc Merge branch 'bugfix/ble_mesh_settings_fix_v4.1' into 'release/v4.1'
Bugfix/ble mesh settings fix (v4.1)

See merge request espressif/esp-idf!10785
2020-10-13 10:50:03 +08:00
David Čermák
d94867aaac Merge branch 'bugfix/fix_transport_ssl_blocking_v4.1' into 'release/v4.1'
transport: fix transport ssl blocking (v4.1)

See merge request espressif/esp-idf!10692
2020-10-12 21:42:16 +08:00
David Cermak
fcfc04c42a mdns test: Add test to resolve esp32 hostname with DiG 2020-10-12 13:26:27 +02:00
David Cermak
2afcd77874 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-10-12 13:26:27 +02:00
David Cermak
12e86a7c1b 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-10-12 13:24:30 +02:00
David Cermak
e2b314522e mdns: Fix include query ID in reponses
Closes https://github.com/espressif/esp-idf/issues/5574
2020-10-12 13:24:30 +02:00
xutao
87bcb95180 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-10-12 10:11:22 +00:00
liqigan
ca42c8ec5c 1. fix read rssi delta bug in bredr
2. modify read rssi related function names

Closes https://github.com/espressif/esp-idf/issues/5660
2020-10-12 17:55:53 +08:00
lly
d48b719e66 ble_mesh: stack: Use settings_core_erase when deinit 2020-10-12 08:47:49 +08:00
lly
cf500b3f47 ble_mesh: stack: Fix storing next net_idx and app_idx 2020-10-12 08:47:49 +08:00
lly
ff88343a10 ble_mesh: stack: Continue restore even if failure happens
Previously we have used this solution for node info
restore. Here use the same solution for other mesh
information restore.
2020-10-12 08:47:49 +08:00
lly
66a798dbf2 ble_mesh: stack: Split model settings store and clear 2020-10-12 08:47:49 +08:00
lly
2598844423 ble_mesh: stack: Erase netkey and appkey with key index 2020-10-12 08:47:49 +08:00
lly
402fe837c1 ble_mesh: stack: Add clear hb_pub in settings 2020-10-12 08:47:49 +08:00
lly
e05d42d910 ble_mesh: stack: Transport rx reset settings update
When reset the rx info of transport layer, the
rpl list will always cleared, and rpl stored
in the nvs will only be erased when erase flag
is true and BLE_MESH_SETTINGS is enabled.
Compared with the previous solution, it should
be more clear.
2020-10-12 08:47:48 +08:00
lly
895dd44f8e ble_mesh: stack: Use erase settings functions 2020-10-12 08:47:47 +08:00
lly
ecf065e2a6 ble_mesh: stack: Use mutex for settings operation
Also expose the settings functions with the parameter
bt_mesh_nvs_handle_t, which will be used for further
updates.
2020-10-12 08:47:46 +08:00
lly
5444c8a462 ble_mesh: stack: Add role check before enabling device 2020-10-12 08:47:45 +08:00
lly
4b27c84095 ble_mesh: stack: Define a type for mesh nvs handle 2020-10-12 08:47:45 +08:00
lly
53d7b12c29 ble_mesh: ci: Enable settings in sdkconfig.ci.xxx 2020-10-12 08:47:44 +08:00
Krzysztof Budzynski
5d258af93c Merge branch 'feature/guide_change_for_catalina_v4.1' into 'release/v4.1'
docs: Add profile file name used by zsh shell (v4.1)

See merge request espressif/esp-idf!10773
2020-10-10 18:02:51 +08:00
Krzysztof
3bca931923 docs: Add profile file name used by zsh shell 2020-10-09 19:16:59 +02:00
Jiang Jiang Jian
751e0d205d Merge branch 'bugfix/nimble_host_rcv_pkt_length_check_v4.1' into 'release/v4.1'
NimBLE: host_rcv_pkt event buf size check. (v4.1)

See merge request espressif/esp-idf!10759
2020-10-09 15:19:41 +08:00
Chinmay Chhajed
0d25a9cff8 NimBLE: host_rcv_pkt event buf size check.
Check if the size of HCI event buffer is greater than the received HCI
packet. If not then abort with the error message.
2020-10-09 09:29:57 +05:30
Ivan Grokhotkov
580246d6ff Merge branch 'gdb/bt_on_invalid_pc_v4.1' into 'release/v4.1'
gdb: Modify PC in case of invalid PC (v4.1)

See merge request espressif/esp-idf!10748
2020-10-08 17:42:53 +08:00
Angus Gratton
7caa230cf9 Merge branch 'bugfix/ci_auto_checkout_revision_of_project_used_in_ci_v4.1' into 'release/v4.1'
CI: get git describe from annotated tags (v4.1)

See merge request espressif/esp-idf!10674
2020-10-08 16:44:18 +08:00
Mahavir Jain
e957cfe0eb Merge branch 'bugfix/bootloader_anti_rollback_mmap_v4.1' into 'release/v4.1'
bootloader_support: fix issue in memory mapping for getting app descriptor (v4.1)

See merge request espressif/esp-idf!10735
2020-10-08 16:31:54 +08:00
Sachin Parekh
63c006ac91 gdb: Modify PC in case of invalid PC
Incase the PC is invalid, GDB will fail to translate addresses to
function names. To fix this, replace the invalid PC with a placeholder
address
2020-10-08 11:13:17 +05:30
Angus Gratton
c48760e2d1 Merge branch 'bugfix/embed_file_symbol_names_v4.1' into 'release/v4.1'
cmake: fix C identifier generation from embedded file (v4.1)

See merge request espressif/esp-idf!10665
2020-10-08 11:59:50 +08:00
Angus Gratton
9f49a27c12 ci: Check version tags are always annotated
Closes https://github.com/espressif/esp-idf/issues/3114
2020-10-07 13:57:19 +11:00
Angus Gratton
df61488e54 build system: Also get IDF version from annotated tags only
Builds on previous commit.

Note: Getting the project version still pases --tags so still works with plain
tags, to keep compatibility for existing projects
2020-10-07 13:57:19 +11:00
Mahavir Jain
f7f81c33f7 bootloader_support: fix issue in memory mapping for getting app descriptor
For getting secure_version field in anti rollback case, bootloader tries
to map whole firmware partition but fails for cases where partition size
is beyond available MMU free pages capacity.

Fix here ensures to map only required length upto application descriptor
size in firmware partition.

Closes https://github.com/espressif/esp-idf/issues/5911
2020-10-06 14:42:45 +05:30
Angus Gratton
dc66bcb5ac Merge branch 'bugfix/efuse_test_stackoverflow_v4.1' into 'release/v4.1'
CI: Increase stack size for efuse unit test (Backport v4.1)

See merge request espressif/esp-idf!10547
2020-10-06 16:20:17 +08:00
Angus Gratton
15edb0d4b5 Merge branch 'bugfix/returns_correct_flash_encryption_mode_v4.1' into 'release/v4.1'
bootloader: Fix esp_get_flash_encryption_mode() (v4.1)

See merge request espressif/esp-idf!10713
2020-10-05 13:50:48 +08:00
Victor Lamoine
ccfe70872e Fix ccache documentation: environment variable is IDF_CCACHE_ENABLE
Merges https://github.com/espressif/esp-idf/pull/5753
2020-10-05 05:35:02 +00:00
Angus Gratton
aecb2bd8ee idf.py: Disable CMake --warn-uninitialized option by default
Can still be enabled by passing --cmake-warn-uninitialized on the command line

Prevents CMake warnings printed by default if IDF_PATH is underneath the CMake
project directory.

The reason for this is that CMake --warn-uninitialized only enables checks
inside the project directory (ie top-level CMakeLists.txt directory and
subdirectories), it doesn't enable for files included from other directories.

(The only way to enable warnings in other directories is to pass
--check-system-dirs and this looks like it's only useful for CMake's own
developers as it prints a lot of warnings from inside CMake otherwise - see
https://gitlab.kitware.com/cmake/cmake/-/issues/19645 )

Plan to follow up with a later commit to clean up most of the warnings (which
aren't problems for CMake execution), but we'll also disable this option by
default to avoid this unexpected triggering of IDF warnings.
2020-10-05 05:35:02 +00:00
Ivan Grokhotkov
37fb85b998 Merge branch 'bugfix/spi_flash_yield_coredump_v4.1' into 'release/v4.1'
spi_flash: don't call vTaskDelay in non-os context (v4.1)

See merge request espressif/esp-idf!10298
2020-10-03 14:52:55 +08:00
KonstantinKondrashov
66acb32665 bootloader: Fix esp_get_flash_encryption_mode(). RELEASE = (CRYPT_CNT == max) or (CRYPT_CNT.write_protect == true)
If the CRYPT_CNT efuse is max it means the same as a write protection bit for this efuse.

Closes: https://github.com/espressif/esp-idf/issues/5747
2020-10-01 14:29:43 +08:00
He Yin Ling
52baa25aa1 CI: get git describe from annotated tags:
we should only parse IDF version from annotated tags
2020-09-30 11:33:04 +08:00
morris
73a4063163 pcnt: fix bug in clear interrupt status 2020-09-30 11:12:33 +08:00
Renz Bagaporo
ef1d0b3d2e cmake: fix C identifier generation from embedded file 2020-09-28 21:16:20 +08:00
Renz Bagaporo
e0ee809d7d cmake: fix getting component requirements 2020-09-28 18:56:18 +08:00
baohongde
684ffdfe70 components/bt: Replace task post with btc_inter_profile_call, when post message from btc_dm to btc_gap 2020-09-28 15:27:24 +08:00
baohongde
98e7bc3375 components/bt: Fix clear bond fail when connected without ble included 2020-09-28 15:26:56 +08:00
xiongweichao
9c4e79dafa add remove bond device complete event 2020-09-28 15:26:48 +08:00
xiongweichao
09e48edd87 1.revert dummy command
2.fix send MEDIA_CTRL command in disconnect
2020-09-28 11:11:12 +08:00
xiongweichao
3db75c4e9d 1.fix test case dummy
2.fix sink send media control ESP_A2D_MEDIA_CHECK_SRC_RDY
2020-09-28 11:10:54 +08:00
Krzysztof Budzynski
7b7c641076 Merge branch 'feature/docs-add-python-clean_v4.1' into 'release/v4.1'
docs: Add solution for ImportError in idf.py into the documentation (v4.1)

See merge request espressif/esp-idf!10631
2020-09-27 14:28:07 +08:00
Island
49ee45e89b Merge branch 'optimize/ble_mesh_provisioner_delete_dev_v4.1' into 'release/v4.1'
ble_mesh: stack: Optimize Provisioner delete device function (v4.1)

See merge request espressif/esp-idf!10604
2020-09-27 10:53:20 +08:00
martin.gano
c44bc3752f docs: add description of python-clean command 2020-09-27 00:03:56 +02:00
Krzysztof Budzynski
5a0ee17ae2 Merge branch 'bugfix/remove_shortcut_to_build_instructions_v4.1' into 'release/v4.1'
doc: Getting Started Guide, remove shortcuts to 'build toolchain from scratch' instructions (v4.1)

See merge request espressif/esp-idf!10607
2020-09-25 21:04:49 +08:00
Krzysztof
83482b8912 doc: Getting Started Guide, remove shortcuts to 'build toolchain from scratch' instructions 2020-09-25 16:05:49 +08:00
Krzysztof Budzynski
7b60e83fd0 Merge branch 'doc/remove_lts_versions_v4.1' into 'release/v4.1'
docs: Update Versions file in line with the latest Support Policy document (v4.1)

See merge request espressif/esp-idf!10601
2020-09-25 14:16:57 +08:00
lly
0e83f4b960 ble_mesh: stack: Optimize Provisioner delete device function
Since we have provided separate functions for deleting node
information with node's unicast address, device uuid, etc.
So we update the behavior of this function, which will only
be used to delete device information which is not provisioned
or just under provisioning.
2020-09-25 14:03:52 +08:00
Angus Gratton
dab3d1750e docs: Update Versions file in line with the latest Support Policy document 2020-09-25 10:12:56 +10:00
Jiang Jiang Jian
4a1cfff12c Merge branch 'bugfix/update_esp32_phy_4390_v4.1' into 'release/v4.1'
esp_wifi: update phy v4390.(backport v4.1)

See merge request espressif/esp-idf!10487
2020-09-24 14:14:10 +08:00
Jiang Jiang Jian
df7fc6c452 Merge branch 'bugfix/can_mmap_after_get_enough_free_mmu_pages_v4.1' into 'release/v4.1'
flash_mmap: can mmap after get enough free MMU pages (backport v4.1)

See merge request espressif/esp-idf!10585
2020-09-24 14:13:46 +08:00
Jiang Jiang Jian
d5d05b053a Merge branch 'bugfix/fix_build_err_in_cpp_backport_v4.1' into 'release/v4.1'
ble_hid_device_demo: fix build if building with c++ backport v4.1

See merge request espressif/esp-idf!9232
2020-09-24 13:05:10 +08:00
Jiang Jiang Jian
46238b6ef0 Merge branch 'doc/add_UUID_description_in_gattc_demo_backport_v4.1' into 'release/v4.1'
docs:add 128-bit UUID description backport v4.1

See merge request espressif/esp-idf!9225
2020-09-24 13:05:01 +08:00
Jiang Jiang Jian
1cffedd6d2 Merge branch 'cherry-pick-4dcaa0e6-2' into 'release/v4.1'
wpa_supplicant: Deinit wpa2 states in wifi deinit(backport v4.1)

See merge request espressif/esp-idf!10162
2020-09-24 13:04:18 +08:00
Jiang Jiang Jian
e14f4d3fdb Merge branch 'bugfix/confirmed_bugfix_from_baidu_proj_4.1' into 'release/v4.1'
Confirmed bugfix from Baidu project 4.1

See merge request espressif/esp-idf!10545
2020-09-24 13:01:16 +08:00
Angus Gratton
d4e9953212 Merge branch 'bugfix/cpp_header_rom_secure_boot_v4.1' into 'release/v4.1'
Secure Boot: Fixes the cpp macro in esp32 secure boot rom functions.

See merge request espressif/esp-idf!10572
2020-09-24 12:25:22 +08:00
jiangguangming
387905a4ad flash_mmap: restore interrupt and cache before err return 2020-09-24 09:59:06 +08:00
jiangguangming
0ff3ceba32 flash_mmap: can mmap after get enough free MMU pages 2020-09-24 09:59:06 +08:00
Jiang Jiang Jian
b29209e3db Merge branch 'bugfix/ipv6_send_data_error_when_src_ip_miss_for_4.1' into 'release/v4.1'
lw-ip:ipv6 send multicast data fail when src address is null ( backport 4.1)

See merge request espressif/esp-idf!10559
2020-09-23 22:29:52 +08:00
Jiang Jiang Jian
805ee815d0 Merge branch 'bugfix/wifi_spin_lock_allocation_in_PSRAM_v4.1' into 'release/v4.1'
wifi: Fix spin lock allocation in PSRAM bug(v4.1)

See merge request espressif/esp-idf!10552
2020-09-23 18:58:27 +08:00
Ivan Grokhotkov
8a849b29f2 Merge branch 'bugfix/panic_instr_fetch_prohibited_v4.1' into 'release/v4.1'
panic: skip over the first invalid PC in case of InstrFetchProhibited (v4.1)

See merge request espressif/esp-idf!10294
2020-09-23 17:00:16 +08:00
Supreet Deshpande
66315e71fe Secure Boot: Fixes the cpp macro in esp32 secure boot rom functions.
Closes https://github.com/espressif/esp-idf/issues/5878
2020-09-23 02:57:30 +05:30
xueyunfei
e55af6c8a5 ipv6 send multicast data fail when src address is null for 4.1 2020-09-22 17:21:10 +08:00
David Čermák
b7fb9be045 Merge branch 'bugfix/openss_strict_verify_mode_4.1' into 'release/v4.1'
openssl: made verification mode conversion to mbetls modes more strict (v4.1)

See merge request espressif/esp-idf!10500
2020-09-22 16:33:02 +08:00
Angus Gratton
59ff505809 Merge branch 'bugfix/adjtime_return_outdelta_before_new_delta_set_v4.1' into 'release/v4.1'
newlib: Fix adjtime, returns the amount of time remaining from any previous adjustment (v4.1)

See merge request espressif/esp-idf!9972
2020-09-22 15:34:27 +08:00
dongyou
d95e91b344 Fix spin lock allocation in PSRAM bug 2020-09-22 14:28:18 +08:00
Jiang Jiang Jian
67b87e1bd8 Merge branch 'bugfix/fix_udp_tx_performance_issue_v4.1' into 'release/v4.1'
lw-ip: fix udp tx packet loss issue (backport v4.1)

See merge request espressif/esp-idf!10018
2020-09-22 14:16:12 +08:00
Marius Vikhammer
890a62b53e CI: Increase stack size for efuse unit test
"Batch mode is thread-safe" case would occasionally cause a stackoverflow.
Increased stack size.
2020-09-22 12:00:33 +08:00
weitianhua
754c91f9e1 Confirmed bugfix from Baidu project 2020-09-22 11:46:01 +08:00
David Cermak
8350f2fb6e openssl: made verification mode conversion to mbetls modes more strict 2020-09-21 13:21:41 +00:00
Angus Gratton
d83520060c Merge branch 'bugfix/esp32s2_o2_op_v4.1' into 'release/v4.1'
freertos: fix build error at -O2 optimization level (v4.1)

See merge request espressif/esp-idf!10304
2020-09-21 15:15:16 +08:00
ChenJianxing
4b11a05391 lwip: fix IPv6 ND6 queue too much pkts cause no mem issue and add menuconfig item for this params. 2020-09-21 11:08:47 +08:00
xiehang
4b662d1a22 lw-ip: fix udp tx packet loss issue 2020-09-21 10:58:43 +08:00
Michael (XIAO Xufeng)
214cc69fc1 Merge branch 'bugfix/spi_master_multiple_dev_with_diff_cs_lvl_4.1' into 'release/v4.1'
spi_master: correctly set cs polarity (4.1)

See merge request espressif/esp-idf!10392
2020-09-21 10:19:33 +08:00
Jiang Jiang Jian
1e526a5d7d Merge branch 'bugfix/wifi_create_and_start_ap_v4.1' into 'release/v4.1'
Set default AP handlers in wifi_create_and_start_ap() v4.1

See merge request espressif/esp-idf!10457
2020-09-20 16:36:16 +08:00
Jiang Jiang Jian
167966380b Merge branch 'docs/fix_event_typo_backport_v4.1' into 'release/v4.1'
docs/fix event typo backport v4.1

See merge request espressif/esp-idf!9383
2020-09-20 16:29:33 +08:00
Ivan Grokhotkov
e348a291ad spi_flash: don't call vTaskDelay in non-os context
Fixes regression in core dump, when a crash happens in interrupt
context.
2020-09-18 15:34:32 +00:00
Ivan Grokhotkov
ecd9d2515f Merge branch 'bugfix/parttool_example_test_fail_v4.1' into 'release/v4.1'
examples/parttool: fix the test to work on parallel test runner (backport v4.1)

See merge request espressif/esp-idf!10374
2020-09-18 23:30:45 +08:00
Mahavir Jain
88a3f963c4 Merge branch 'bugfix/provisioning_example_warning_with_O2_optimization_v4.1' into 'release/v4.1'
provisioning: use memcpy instead of strncpy for copying SSID (v4.1)

See merge request espressif/esp-idf!10495
2020-09-18 17:25:59 +08:00
martin.gano
6870c87aac add file stream parameter and log stdout and stderr to same stream 2020-09-18 10:39:07 +02:00
weitianhua
f78c8cc0db Redesign separating AVRC & A2DP
1. Add g_av_with_rc to avrc_tg_init function
2. Remove g_av_open_fail
3. Add comment in API files
4. Add a2dp init & deinit state variable to inidcate a2dp statement
2020-09-18 14:11:27 +08:00
weitianhua
e797e742f8 Add global header and change declaration position 2020-09-18 14:11:18 +08:00
weitianhua
627b5a4cae Remove uneccessary macro
Separate AVRC from A2DP when AVRC not Initialized
2020-09-18 14:11:10 +08:00
weitianhua
3c88fa5a1e Rewrite a2dp clean_up function 2020-09-18 14:11:00 +08:00
weitianhua
8ad40cecb4 Add bda_addr for esp_bt_a2dp_disconn_req API
1. Add reaction for a2dp snk & src disconn req when no link up
  2. Change state machine set before EVT upto APP layer in some cases
  3. Add bool open_fail to choose whether post disconnection evt to app layer
2020-09-18 14:10:48 +08:00
Island
98b6fe8f30 Merge branch 'bugfix/ble_mesh_check_stack_init_v4.1' into 'release/v4.1'
ble_mesh: stack: Check if mesh stack initialized before init vendor client (v4.1)

See merge request espressif/esp-idf!10482
2020-09-18 09:40:01 +08:00
Angus Gratton
5f5a398662 Merge branch 'backport/shared_stack_4.1' into 'release/v4.1'
Backport/shared stack 4.1

See merge request espressif/esp-idf!10302
2020-09-18 05:15:30 +08:00
Mahavir Jain
04b8564249 provisioning: use memcpy instead of strncpy for copying SSID
Per WiFi library requirement, SSID can be non-null terminated string
if its length goes to 32 bytes (maximum). Use of strncpy in this case,
along with compiler optimization level -O2 results in some warnings
for potential use of non-null terminated strings.

Fix here ensures use of memcpy to copy SSID string upto appropriate
desired length. This helps to avoid compiler specific workaround
flags added earlier.

Closes https://github.com/espressif/esp-idf/issues/5866
Closes IDFGH-3983
2020-09-17 15:54:23 +05:30
Ivan Grokhotkov
c2f46eb802 Merge branch 'feature/toolchain_2020r3_v4.1' into 'release/v4.1'
Update toolchain to esp-2020r3 (backport v4.1)

See merge request espressif/esp-idf!10389
2020-09-17 18:07:10 +08:00
Angus Gratton
bee6612ab9 Merge branch 'bugfix/doc_build_ut_cmdline_v4.1' into 'release/v4.1'
docs: Fixup format of a command line to build unit tests (backport v4.1)

See merge request espressif/esp-idf!9043
2020-09-17 17:43:35 +08:00
ChenJianxing
2c87065521 esp_wifi: update phy v4390.(backport v4.1) 2020-09-17 15:51:09 +08:00
Jiang Jiang Jian
f280be4a86 Merge branch 'bugfix/clean_wpa2_wifi_deinit' into 'master'
wpa_supplicant: Deinit wpa2 states in wifi deinit

See merge request espressif/esp-idf!10103

(cherry picked from commit 4dcaa0e6f4)

06bc7f1d wpa_supplicant: Deinit wpa2 states in wifi deinit
2020-09-17 06:06:40 +00:00
Jakob Hasse
89523af91f toolchain: C++ exception workaround
* disable C++ exception FDE sorting (saves RAM)

Closes IDF-1128
2020-09-17 10:51:39 +07:00
Anton Maklakov
c7ba54ed73 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;
2020-09-17 10:49:14 +07:00
lly
d1311d1e23 ble_mesh: stack: Check if mesh stack initialized before init vendor client 2020-09-17 11:26:40 +08:00
Angus Gratton
94cb7e8b8f Merge branch 'bugfix/cxx_flag_operators_v4.1' into 'release/v4.1'
esp_eth: moved extern "C" after includes (v4.1)

See merge request espressif/esp-idf!10352
2020-09-15 16:13:06 +08:00
Angus Gratton
01db565aef Merge branch 'bugfix/ulp_as_version_v4.1' into 'release/v4.1'
ulp: fix ULP assembler version detection for localized systems (v4.1)

See merge request espressif/esp-idf!10394
2020-09-15 15:23:18 +08:00
Angus Gratton
e7b34b921d Merge branch 'bugfix/eclipse_make_py3_v4.1' into 'release/v4.1'
tools: Fix Python 3 incompatibility for building with Eclipse on Windows (v4.1)

See merge request espressif/esp-idf!10399
2020-09-15 15:08:12 +08:00
Angus Gratton
ab98baff14 Merge branch 'bugfix/bootloader_skip_verify_jtag_v4.1' into 'release/v4.1'
bootloader_support: don't check signature when JTAG is attached (v4.1)

See merge request espressif/esp-idf!10379
2020-09-15 15:06:17 +08:00
dongyou
26bfb1cf10 Set default AP handlers in wifi_create_and_start_ap() 2020-09-15 14:53:11 +08:00
Angus Gratton
b022bb2770 Merge branch 'feature/portmux_debug_bump_timeout' into 'release/v4.1'
bugfix/freertos: increase portmux timeouts to avoid crashing when using debug feature

See merge request espressif/esp-idf!9957
2020-09-15 14:29:19 +08:00
Anton Maklakov
e1ad627a0f docs: Fixup format of a command line to build unit tests 2020-09-15 16:21:44 +10:00
Sergei Silnov
9d359b814f ci: Use git mirror for docker image 2020-09-14 12:49:29 +02:00
Michael (XIAO Xufeng)
1ced3f9750 Merge branch 'bugfix/add_return_in_uart_wait_tx_done_bp4.1' into 'release/v4.1'
bugfix(UART): Add return in uart_wait_tx_done(backport v4.1)

See merge request espressif/esp-idf!10336
2020-09-14 14:25:05 +08:00
Michael (XIAO Xufeng)
edb19cd748 Merge branch 'bugfix/fix_rtcio_adc_driver_for_esp32' into 'release/v4.1'
rtc(adc/rtcio): fix adc rtcio driver for esp32

See merge request espressif/esp-idf!8347
2020-09-14 10:57:26 +08:00
Island
9e8b44e353 Merge branch 'bugfix/ble_mesh_prov_iv_index_v4.1' into 'release/v4.1'
ble_mesh: stack: Using the latest iv_index for provisioning (v4.1)

See merge request espressif/esp-idf!10417
2020-09-11 20:09:01 +08:00
Jiang Jiang Jian
df3aef80c0 Merge branch 'component/seperate_bta_jv_l2c_4.1' into 'release/v4.1'
Component/seperate bta jv l2c 4.1

See merge request espressif/esp-idf!9645
2020-09-11 19:38:00 +08:00
Jiang Jiang Jian
b204bc1bd6 Merge branch 'bugfix/change_pcm_config_position_4.1' into 'release/v4.1'
Bugfix/ Change PCM config position 4.1

See merge request espressif/esp-idf!10314
2020-09-11 19:35:55 +08:00
Jiang Jiang Jian
b131fffa84 Merge branch 'bugfix/add_protection_for_spp_api_4.1' into 'release/v4.1'
Bugfix/add protection for spp api 4.1

See merge request espressif/esp-idf!10282
2020-09-11 19:33:49 +08:00
lly
bca0b85fc3 ble_mesh: stack: Using the latest iv_index for provisioning
Provisioner should always uses the latest IV Index for provisioning.
For example, if the current IV Index is 0x00000001, but prov->iv_index
is still initialized with 0x00000000, and if Provisioner uses prov->
iv_index for provisioning, this will cause the Provisioner failing to
control the node.
So here bt_mesh.iv_index is used instead of prov->iv_index.
2020-09-11 10:56:06 +08:00
Jiang Jiang Jian
445635fe45 Merge branch 'bugfix/fix_some_wifi_bugs_0907_v4.1' into 'release/v4.1'
bugfix: fix some wifi bugs (backport v4.1)

See merge request espressif/esp-idf!10315
2020-09-10 22:33:05 +08:00
Felipe Neves
10c498ae7d expression_with_stack: added a tweak on TCB stackpointers to avoid false trigger of stack overflow 2020-09-10 10:00:32 -03:00
Jiang Jiang Jian
723c8d9899 Merge branch 'bugfix/btdm_spp_null_ptr_with_dynamic_memory_v4.1' into 'release/v4.1'
components/bt: Fix SPP using NULL point with dynamic memory

See merge request espressif/esp-idf!10323
2020-09-10 18:24:11 +08:00
Ivan Grokhotkov
97b1f0f60c Merge branch 'init_priority_fix_v4.1' into 'release/v4.1'
CXX: make __attribute__((init_priority(n))) work (v4.1)

See merge request espressif/esp-idf!8444
2020-09-10 16:10:10 +08:00
Ivan Grokhotkov
b695152d43 Merge branch 'feature/nvs_allow_custom_part_4.1' into 'release/v4.1'
Feature/nvs allow custom part 4.1

See merge request espressif/esp-idf!9515
2020-09-10 16:08:36 +08:00
Roland Dobai
31f9c88269 tools: Fix Python 3 incompatibility for building with Eclipse on Windows 2020-09-10 09:46:10 +02:00
Roland Dobai
28e393c062 ulp: fix ULP assembler version detection for localized systems 2020-09-10 09:35:45 +02:00
Wielebny666
67d7fad764 spi_master: correctly set cs polarity
All devices must be added to the same spi line before use.
2020-09-10 14:48:37 +08:00
Mahavir Jain
ae72c7d417 Merge branch 'bugfix/secure_boot_v2_sign_cmake_copy_v4.1' into 'release/v4.1'
Add platform independent CMake copy during signing (v4.1)

See merge request espressif/esp-idf!9545
2020-09-10 14:41:26 +08:00
Island
e42c8d2f1f Merge branch 'feat/ble_mesh_use_model_c_v4.1' into 'release/v4.1'
ble_mesh: stack: Use model callback for operations [Zephyr] (v4.1)

See merge request espressif/esp-idf!10363
2020-09-10 10:39:54 +08:00
Island
b5df4843b2 Merge branch 'bugfix/ble_mesh_remove_assert_v4.1' into 'release/v4.1'
ble_mesh: stack: Avoid using assert in mesh stack (v4.1)

See merge request espressif/esp-idf!10359
2020-09-10 10:39:00 +08:00
Island
33ddc213ad Merge branch 'bugfix/ble_mesh_nimble_ccc_handle_v4.1' into 'release/v4.1'
ble_mesh: nimble: Fix updating ccc handle with wrong value (v4.1)

See merge request espressif/esp-idf!10355
2020-09-10 10:38:19 +08:00
Ivan Grokhotkov
42e694bb8f bootloader_support: don't check signature when JTAG is attached
If an insecure configuration is enabled (no hardware secure boot, just
software signature check), skip the signature check in bootloader if
JTAG debugger is attached. This allows the debugger to set breakpoints
in Flash before the application runs.

Closes https://github.com/espressif/esp-idf/issues/4734
Closes https://github.com/espressif/esp-idf/issues/4878
2020-09-09 23:42:24 +02:00
Ivan Grokhotkov
48fda05b3e examples/parttool: fix the test to work on parallel test runner
Pass the DUT port to parttool_example.py as an argument.
2020-09-09 18:37:06 +02:00
He Yin Ling
146c714541 Merge branch 'bugfix/remove_auto_conn_case_v4.1' into 'release/v4.1'
test: remove auto conn case because we do not support this anymore (v4.1)

See merge request espressif/esp-idf!9941
2020-09-09 15:55:05 +08:00
ronghulin
e9ece1255a bugfix: fix some wifi bugs
1. add sta connect again ap sent disconnect event
2. add set/get inactive time api
3. fix connect hidden AP doesn't update information
4. add rf test long short support
2020-09-09 07:34:40 +00:00
lly
c570f51b53 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-09 14:00:21 +08:00
lly
67055161c1 ble_mesh: stack: Avoid using assert in mesh stack 2020-09-09 10:57:25 +08:00
Jakob Hasse
5c223e17cb esp_eth: moved extern "C" after includes 2020-09-09 10:19:10 +08:00
Krzysztof Budzynski
aa8fffcd73 Merge branch 'bugfix/doc_main_readme_build_v4.1' into 'release/v4.1'
Fix the setup instructions in the main README (v4.1)

See merge request espressif/esp-idf!10338
2020-09-09 02:45:49 +08:00
lly
67ed9b5799 ble_mesh: nimble: Fix updating ccc handle with wrong value 2020-09-08 21:02:34 +08:00
Roland Dobai
7da1603a1c Fix the setup instructions in the main README 2020-09-08 10:15:15 +02:00
Chen Yi Qun
824c358097 UART: Add return in uart_wait_tx_done
uart_wait_tx_done quit due to timeout but without return ESP_ERR_TIMEOUT.
2020-09-08 15:10:30 +08:00
Jiang Jiang Jian
5123c80060 Merge branch 'bugfix/ipv6_fragment_for_4.1' into 'release/v4.1'
lw-ip:fix bug for ipv6 fragment(backport4.1)

See merge request espressif/esp-idf!9648
2020-09-08 12:21:10 +08:00
baohongde
86cd54117e components/bt: Fix SPP using NULL point with dynamic memory 2020-09-07 15:45:33 +08:00
David Čermák
d425a25875 Merge branch 'feature/mqtt_sub_update_01594bf1_v4.1' into 'release/v4.1'
MQTT: Update submodule reference (Backport v4.1)

See merge request espressif/esp-idf!10231
2020-09-07 14:58:56 +08:00
David Čermák
217e95d4db Merge branch 'bugfix/ws_stop_deadlock_v4.1' into 'release/v4.1'
Websocket client: avoid deadlock if stop called from event handler (Backport 4.1)

See merge request espressif/esp-idf!10227
2020-09-07 14:58:25 +08:00
Jiang Jiang Jian
7891ba1e24 Merge branch 'bugfix/l2cap_link_timeout_llcp_prog_btu_wtd_v4.1' into 'release/v4.1'
Bugfix/l2cap link timeout llcp prog btu wtd v4.1

See merge request espressif/esp-idf!10254
2020-09-07 14:11:57 +08:00
weitianhua
585120da0d Change PCM config position 2020-09-07 10:34:34 +08:00
Ivan Grokhotkov
420d436199 freertos: fix compilation warning at -O2 level
Closes https://github.com/espressif/esp-idf/issues/5525
2020-09-04 21:39:10 +02:00
Felipe Neves
124ec431e6 test/shared_stack_printf: improved printf with shared stack function test 2020-09-04 16:03:51 -03:00
Ivan Grokhotkov
3a96d07e11 panic: skip over the first invalid PC in case of InstrFetchProhibited
InstrFetchProhibited usually occurs because of a jump to an invalid
pointer. In this case, PC in the exception frame is the address of
the jump destination. 'esp_ptr_executable' check in print_backtrace
function recognizes the first frame as invalid, and the backtrace is
interrupted. This prevents the user from finding the location where
the invalid pointer is dereferenced.

Bypass the 'esp_ptr_executable' check if the exception cause is
InstrFetchProhibited. Update the test case to no longer ignore this
issue.
2020-09-04 20:56:03 +02:00
Jiang Jiang Jian
245047e82d Merge branch 'feature/enable_pcm_config_v4.1' into 'release/v4.1'
Feature/enable pcm config v4.1

See merge request espressif/esp-idf!9654
2020-09-04 20:07:27 +08:00
Island
4e8ebc2463 Merge branch 'bugfix/ble_mesh_sensor_example_fix_v4.1' into 'release/v4.1'
ble_mesh: example: Fix sensor data wrong iteration (v4.1)

See merge request espressif/esp-idf!10274
2020-09-04 16:54:51 +08:00
wangcheng
e963390324 component/bt: Fixed the watchdog timeout of btu task during multi-connection 2020-09-04 16:25:49 +08:00
Michael (XIAO Xufeng)
febabaa55a Merge branch 'ci/test_spi_speed_psram_enabled_4.1' into 'release/v4.1'
driver test: disable the spi master performance test when psram is used (v4.1)

See merge request espressif/esp-idf!9638
2020-09-04 15:55:01 +08:00
weitianhua
b4dc11a409 Add protection for rfcomm close API in SPP 2020-09-04 14:41:34 +08:00
weitianhua
15111210a1 Add some debug log for bt:
1. Add logs for SPP not enabled successfully
2. Add information to Applicatioin layer that the A2DP is connecting to peer device

Regular BTC and BTU Task name & Add BTC Init protection

1. Regular the BTC Task Name to Close a Github issue

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

2. Add BTC Init failure protection

3. Regular BTU Task Name with BTC

4. Correct the comment of
   a. SDP_ServiceSearchRequest and SDP_ServiceSearchRequest2
   b. l2cu_create_conn_after_switch

5. Correct comment of esp_bt_hf_vra();

6. Fix cpp compilier region
2020-09-04 14:41:26 +08:00
lly
eff8dedb2b ble_mesh: example: Fix sensor data wrong iteration 2020-09-04 11:55:14 +08:00
Hou Chen Yao
aefe9e0b03 remove auto conn case because we do not support this anymore 2020-09-04 03:32:19 +00:00
Mahavir Jain
da530f01dc Merge branch 'bugfix/http_client_read_v4.1' into 'release/v4.1'
Fix error handling in esp_http_client_read and esp_https_ota_perform (v4.1)

See merge request espressif/esp-idf!9203
2020-09-03 19:58:33 +08:00
wangcheng
8acffd2931 components/bt: Fixed the state not synchronized between controller and host when disconnected. 2020-09-02 21:45:26 +08:00
Shubham Kulkarni
39ef55261c Increase receive timeout in sdkconfig.ci to fix CI failures 2020-09-02 12:30:51 +00:00
Shubham Kulkarni
101c1a953a esp_https_ota.c: Add fix to return failure if (-1) is returned from esp_http_client_read
Closes https://github.com/espressif/esp-idf/issues/4960
2020-09-02 12:30:51 +00:00
Shubham Kulkarni
b9edf4783c esp_http_client.c: In esp_http_client_read, add fix to return (-1) if esp_transport_read fails 2020-09-02 12:30:51 +00:00
Island
da669efa0c Merge branch 'bugfix/btdm_blufi_data_sequence_not_reset_after_disconnect_v4.1' into 'release/v4.1'
component/bt: fix Blufi sends data after disconnect the seq still increase(backport v4.1)

See merge request espressif/esp-idf!10240
2020-09-02 14:20:44 +08:00
XieWenxiang
1f54e90bb4 component/bt: fix Blufi sends data after disconnect the seq still increase(backport v4.1) 2020-09-02 11:15:27 +08:00
Michael (XIAO Xufeng)
444b5582a7 driver test: disable the spi master performance test when psram is used 2020-09-02 00:58:20 +08:00
Island
eca90124fb Merge branch 'bugfix/ble_mesh_example_compile_warn_v4.1' into 'release/v4.1'
Bugfix/ble mesh example compile warn (v4.1)

See merge request espressif/esp-idf!10223
2020-09-01 20:39:39 +08:00
weitianhua
645715c1b0 Enable PCM config in controller 2020-09-01 16:35:07 +08:00
weitianhua
887f5040da Enable PCM config in host 2020-09-01 16:35:07 +08:00
Marius Vikhammer
1d4b8a742d MQTT: Update submodule reference
SSL: add config option for skipping common name check
esp-mqtt commit: 5e8950e681)
Closes https://github.com/espressif/esp-mqtt/issues/158

SSL: add support for tls with secure element (ATECC608A)
esp-mqtt commit: a7ff9afa3f)
Closes https://github.com/espressif/esp-mqtt/issues/156

Websocket: Allow the query part of the uri to be a part of the path
esp-mqtt commit: 40b06deb10)
Closes https://github.com/espressif/esp-mqtt/issues/161

Config: Add check for consistency between config settings
esp-mqtt commit: 8a412c147d)

Add IDF version check for secure element feature
esp-mqtt commit: db4bce01ab)

Fix esp_mqtt_client_stop deadlock
esp-mqtt commit: 5e17dcaeb2)
Closes https://github.com/espressif/esp-mqtt/issues/163

Add dispatch error event for read errors
esp-mqtt commit: d4aaec08ff
Closes https://github.com/espressif/esp-idf/issues/5704

Cleanup expired messages when offline
esp-mqtt commit: bdadd77c6e
Closes https://github.com/espressif/esp-idf/issues/5668

esp_mqtt_client_publish now returns msg id for QoS > 0 when offline
esp-mqtt commit: f7325bfa10
2020-09-01 16:00:49 +08:00
Marius Vikhammer
d28f1682fc Websocket client: avoid deadlock if stop called from event handler 2020-09-01 15:38:12 +08:00
lly
41a3759314 ble_mesh: example: Remove some useless included header files 2020-09-01 14:11:39 +08:00
Carlos Sobrinho
3adfa1ac78 Fix compilation warnings about portmacro being already define. 2020-09-01 14:11:06 +08:00
Island
85e3c733ff Merge branch 'bugfix/ble_mesh_client_msg_optimize_v4.1' into 'release/v4.1'
Bugfix/ble mesh client msg optimize (v4.1)

See merge request espressif/esp-idf!10214
2020-09-01 09:34:09 +08:00
David Čermák
f6517cf4e7 Merge branch 'bugfix/ppp_netif_up_after_new_v4.1' into 'release/v4.1'
esp-netif: ppp netif to use netif_is_link_up() to update interface state (v4.1)

See merge request espressif/esp-idf!9425
2020-08-31 21:14:04 +08:00
David Čermák
636a719f4d Merge branch 'feature/pin_ethernet_task_to_core_v4.1' into 'release/v4.1'
ethernet: support pin emac task to core (v4.1)

See merge request espressif/esp-idf!9037
2020-08-31 21:13:39 +08:00
lly
92ce5c1f23 ble_mesh: stack: Client model related code clean 2020-08-31 17:33:12 +08:00
lly
df1c6fd95c ble_mesh: stack: Rename cfg & health client status recv func 2020-08-31 17:33:11 +08:00
lly
bbe75af7a3 ble_mesh: stack: Check client msg result in common func 2020-08-31 17:33:11 +08:00
lly
4634ad6fa4 ble_mesh: stack: Fix no events for some error conditions 2020-08-31 17:33:10 +08:00
lly
5ccf6cd381 ble_mesh: stack: Move client role set to the msg function 2020-08-31 17:33:10 +08:00
lly
259d1924cb ble_mesh: stack: Remove some not used client parameters 2020-08-31 17:33:09 +08:00
lly
1bd4fe1f50 ble_mesh: stack: Remove some not used variables & functions 2020-08-31 17:33:09 +08:00
lly
62458dbb90 ble_mesh: stack: Update client model msg send 2020-08-31 17:33:08 +08:00
Island
d81dbd48ed Merge branch 'bugfix/ble_mesh_health_current_status_recv_v4.1' into 'release/v4.1'
ble_mesh: stack: Fix recv health current status incorrectly (v4.1)

See merge request espressif/esp-idf!10208
2020-08-31 17:30:10 +08:00
Ivan Grokhotkov
0dea1b38cb sleep: enable sleep reject when entering light sleep 2020-08-31 08:58:51 +00:00
David Čermák
e1115c951e Merge branch 'bugfix/fix_static_analysis_rules_v4.1' into 'release/v4.1'
static analysis: Apply current limits of known defects (v4.1)

See merge request espressif/esp-idf!9282
2020-08-31 14:42:36 +08:00
David Čermák
2973114938 Merge branch 'bugfix/eth_insert_min_hw_reset_time_v4.1' into 'release/v4.1'
ethernet: insert min assert time for PHY HW reset (v4.1)

See merge request espressif/esp-idf!9580
2020-08-31 14:41:10 +08:00
David Čermák
2222f842d6 Merge branch 'bugfix/esp_netif_restart_dhcpc_v4.1' into 'release/v4.1'
esp_netif: Remove restarting DHCP client/server if it has already been started (backport v4.1)

See merge request espressif/esp-idf!10000
2020-08-31 14:40:14 +08:00
David Čermák
8b89fbe88b Merge branch 'bugfix/ws_send_abort_v4.1' into 'release/v4.1'
websocket client: the client now aborts the connection if send fails.  (v4.1)

See merge request espressif/esp-idf!9170
2020-08-31 14:38:40 +08:00
David Cermak
2c1bf3ec3b esp-netif: ppp netif to use netif_is_link_up() to update interface state
Closes https://github.com/espressif/esp-idf/issues/5069
2020-08-31 06:38:17 +00:00
morris
aaa7476456 ethernet: support pin emac task to core 2020-08-31 06:36:23 +00:00
David Čermák
b72ab0b1f8 Merge branch 'bugfix/ethernet_handle_early_rx_interrupt_v4.1' into 'release/v4.1'
Bugfix/ethernet handle early rx interrupt (v4.1)

See merge request espressif/esp-idf!10099
2020-08-31 14:34:36 +08:00
lly
5704b13bc9 ble_mesh: stack: Fix recv health current status incorrectly 2020-08-31 13:57:12 +08:00
Island
32fa7c6c6c Merge branch 'bugfix/ble_mesh_misc_updates_v4.1' into 'release/v4.1'
Bugfix/ble mesh misc updates (v4.1)

See merge request espressif/esp-idf!10206
2020-08-31 13:42:06 +08:00
lly
d4348656ec ble_mesh: ci: Enable friend & low power in build check 2020-08-31 11:23:36 +08:00
lly
c3b300064b ble_mesh: stack: Only keep func pointer for very common log
Currently only keep func pointer for the followings:
- Invalid parameter (mesh btc & mesh stack)
- Out of memory (mesh btc & mesh stack)
- Unknown act (mesh btc)
- Invalid model user data (mesh stack)
- BT_DBG("%s", __func__) (mesh btc & mesh stack)
- A few other specific situations (buf ref debug, send status check)
2020-08-31 11:23:35 +08:00
lly
bbd9a8a44d ble_mesh: stack: Make proxy server & client functions clear 2020-08-31 11:23:34 +08:00
fuzhibo
72f43489a5 rtc(adc/rtcio): fix adc rtcio driver for esp32 2020-08-31 03:19:58 +00:00
Island
5f9a48c352 Merge branch 'bugfix/ble_mesh_add_misc_check_v4.1' into 'release/v4.1'
Bugfix/ble mesh add misc check (v4.1)

See merge request espressif/esp-idf!10198
2020-08-31 11:15:01 +08:00
Michael (XIAO Xufeng)
5b97931527 Merge branch 'feature/vfs_uart_set_line_ending_v4.1' into 'release/v4.1'
vfs: support vfs uart set line endings with specified uart number release/v4.1

See merge request espressif/esp-idf!9597
2020-08-30 22:33:11 +08:00
Angus Gratton
89d9b2ac27 Merge branch 'bugfix/mfg_tool_v4.1' into 'release/v4.1'
mfg_util: Update file handling to maintain line endings across various OS (backport v4.1)

See merge request espressif/esp-idf!10175
2020-08-28 18:23:14 +08:00
lly
72ce618f9a ble_mesh: stack: Add proxy cfg pdu length check 2020-08-28 17:45:09 +08:00
lly
36dc7ae71e ble_mesh: stack: Rework using dev flag to check scan status
Different bluetooth host has different behaviors, so it's better
to maintain a scan check mechanism of BLE Mesh itself.
Fixes an issue when only PB-GATT is enabled for node, which will
output a scan error log when the device is provisioned.
2020-08-28 17:45:08 +08:00
lly
7fa85d9a6a ble_mesh: example: Add result check during mesh init 2020-08-28 17:45:08 +08:00
lly
7b57311a0e ble_mesh: stack: Add more checks about input prov bearers 2020-08-28 17:45:07 +08:00
Island
6e52afaa2b Merge branch 'feat/ble_mesh_use_iram_for_mem_alloc_v4.1' into 'release/v4.1'
Feat/ble mesh use iram for mem alloc (v4.1)

See merge request espressif/esp-idf!10186
2020-08-28 17:32:26 +08:00
lly
ad412850d0 ble_mesh: stack: Rename mesh adv queue and relay queue 2020-08-28 06:07:17 +00:00
lly
20d33f27d6 ble_mesh: stack: Use macros for adv task name & prio 2020-08-28 06:07:17 +00:00
lly
34690034e6 ble_mesh: ci: Add psram configurations 2020-08-28 06:07:17 +00:00
lly
84012fa82f ble_mesh: stack: Make freertos static allocation visible 2020-08-28 06:07:17 +00:00
lly
ffcd55bbf2 ble_mesh: stack: Update option of using DRAM/SPIRAM for memory allocation 2020-08-28 06:07:17 +00:00
Island
e1e082072c Merge branch 'bugfix/ble_mesh_fast_prov_misc_update_v4.1' into 'release/v4.1'
Bugfix/ble mesh fast prov misc update (v4.1)

See merge request espressif/esp-idf!9465
2020-08-28 14:03:10 +08:00
Island
329f7f8210 Merge branch 'bugfix/btdm_blufi_send_longer_custom_data_will_congested_v4.1' into 'release/v4.1'
component/bt: fix Blufi sends longer customer data  will will lead congested(backport v4.1)

See merge request espressif/esp-idf!9947
2020-08-28 13:55:28 +08:00
Island
0cc8639e2f Merge branch 'bugfix/ble_mesh_update_send_ttl_v4.1' into 'release/v4.1'
Bugfix/ble mesh update send ttl (v4.1)

See merge request espressif/esp-idf!10159
2020-08-28 10:43:43 +08:00
XieWenxiang
a88420c860 component/bt: fix Blufi sends longer customer data will will lead congested(backport v4.1) 2020-08-28 07:10:11 +08:00
Jiang Jiang Jian
21ef71fa2b Merge branch 'bugfix/customer_baidu_int_wdt_v4.1' into 'release/v4.1'
backport v4.1: add soft solution for esp32 eco3 live lock issue

See merge request espressif/esp-idf!9209
2020-08-27 22:44:56 +08:00
Jiang Jiang Jian
346f09bf1c Merge branch 'bugfix/fix_some_wifi_bugs_0703_v4.1' into 'release/v4.1'
fix some wifi bugs 0703 (v4.1)

See merge request espressif/esp-idf!9517
2020-08-27 22:44:25 +08:00
lly
ce4a8af3c7 ble_mesh: stack: Update some fast prov functions 2020-08-27 14:36:58 +00:00
lly
e3a7fb2fd4 ble_mesh: stack: Move fast prov functions to a single file 2020-08-27 14:36:58 +00:00
Island
9b9ff7b183 Merge branch 'bugfix/ble_mesh_split_tinycrypt_v4.1' into 'release/v4.1'
Bugfix/ble mesh split tinycrypt (v4.1)

See merge request espressif/esp-idf!10160
2020-08-27 22:26:38 +08:00
lly
7308f60a74 ble_mesh: ci: Fix failing to compile when using make 2020-08-27 10:57:51 +00:00
lly
50fc403018 ble_mesh: Mark platform related default RNG as 0 2020-08-27 10:57:51 +00:00
lly
0b65005ffd ble_mesh: Remove the previously added redundant aes files 2020-08-27 10:57:51 +00:00
lly
60ba33afa9 ble_mesh: Update CMake and make files for tinycrypt 2020-08-27 10:57:51 +00:00
lly
d90f3f9119 ble_mesh: Update tinycrypt header file include guards
Add BLE_MESH in the macro to make it specific for BLE Mesh.
2020-08-27 10:57:51 +00:00
lly
7d40d308bb ble_mesh: Format source and header files of tinycrypt 2020-08-27 10:57:51 +00:00
lly
0dda8869cd ble_mesh: Port full implementation of tinycrypt [Zephyr]
- Original code is here: https://github.com/zephyrproject-rtos/tinycrypt
- Also this fixes the compile error when NimBLE and ESP BLE Mesh
  both uses the tinycrypt.
2020-08-27 10:57:51 +00:00
Island
8a0ae62a03 Merge branch 'bugfix/ble_mesh_compile_error_v4.1' into 'release/v4.1'
Bugfix/ble mesh proxy compile error (v4.1)

See merge request espressif/esp-idf!9431
2020-08-27 18:03:01 +08:00
Island
6c15b3c44e Merge branch 'bugfix/ble_mesh_example_tag_define_v4.1' into 'release/v4.1'
ble_mesh: Move TAG definition to each example (v4.1)

See merge request espressif/esp-idf!10171
2020-08-27 18:02:49 +08:00
Shivani Tipnis
4680bae94d mfg_util: Update file handling to maintain line endings across various OS
Fixes: https://github.com/espressif/esp-idf/issues/4888
2020-08-27 11:55:32 +05:30
Island
ce0189dd5a Merge branch 'bugfix/ble_mesh_readme_fix_v4.1' into 'release/v4.1'
ble_mesh: example: Fix example README & tutorial link error (v4.1)

See merge request espressif/esp-idf!9435
2020-08-27 14:24:27 +08:00
lly
90403c658c ble_mesh: Move TAG definition to each example
Move the TAG definition of each example to the corresponding
source file (previously it is defined in the common example
intialization header file), which can avoid the redefinition
of TAG in some situations.
2020-08-27 06:00:01 +00:00
Island
c4c3696d9b Merge branch 'bugfix/ble_mesh_example_nvs_store_v4.1' into 'release/v4.1'
Bugfix/ble mesh example nvs store (v4.1)

See merge request espressif/esp-idf!9016
2020-08-27 13:58:45 +08:00
Jiang Jiang Jian
ca5c632b38 Merge branch 'workaround/wps_iot_fixes_v4.1' into 'release/v4.1'
wpa_supplicant: WPS Inter operatability Fixes( backport v4.1)

See merge request espressif/esp-idf!8952
2020-08-27 11:42:21 +08:00
Angus Gratton
a7bd982556 Merge branch 'bugfix/espcoredump_fix_error_reported_for_blank_partition_v41' into 'release/v4.1'
Bugfix/espcoredump fix error reported for blank partition (Backport v4.1)

See merge request espressif/esp-idf!9628
2020-08-27 08:46:59 +08:00
Alex Lisitsyn
8647e5a839 Bugfix/espcoredump fix error reported for blank partition (Backport v4.1) 2020-08-27 08:46:58 +08:00
Angus Gratton
065d64555d Merge branch 'bugfix/idf_py_help_env_var_v4.1' into 'release/v4.1'
Tools: Mention ESPPORT and ESPBAUD in idf.py --help (v4.1)

See merge request espressif/esp-idf!9291
2020-08-27 08:46:43 +08:00
Angus Gratton
2a3ecaa926 Merge branch 'feature/pyc_clean_v4.1' into 'release/v4.1'
tools/idf.py: Clean Python bytecode files (v4.1)

See merge request espressif/esp-idf!9263
2020-08-27 08:46:38 +08:00
Angus Gratton
b76c3afa3a Merge branch 'bugfix/no_pyc_files_v4.1' into 'release/v4.1'
tools: Don't generate pyc files (v4.1)

See merge request espressif/esp-idf!8970
2020-08-27 08:46:30 +08:00
kapil.gupta
ab7eafa3b8 wpa_supplicant: WPS Inter operatability Fixes
Add WPS IOT fixes under config option

Current fixes under this flag.
1. Allow NULL-padded WPS attributes.
2. Bypass WPS-Config method validation
2020-08-26 08:49:43 +00:00
Nachiket Kukade
367397385e wpa_supplicant: Allow NULL-padded WPS attributes
Some AP's keep NULL-padding at the end of some variable length WPS
Attributes. This is not as par the WPS2.0 specs, but to avoid interop
issues, ignore the padding by reducing the attribute length by 1.
2020-08-26 08:49:43 +00:00
lly
632cfa5a82 ble_mesh: Add nvs operations for examples
- Store onoff_client example proper mesh info
- Store vendor_client example proper mesh info

Closes https://github.com/espressif/esp-idf/issues/5359
2020-08-26 08:28:12 +00:00
lly
6dddeaec5b ble_mesh: Add mesh example common nvs operations 2020-08-26 08:28:12 +00:00
lly
8988fb9b8d ble_mesh: Config and health client btc fixes
Fix an issue which may cause no error code is returned
when sending config client or health client messages
with invalid parameters.
2020-08-26 08:28:12 +00:00
lly
bd187b022f ble_mesh: Add more checks of net_idx & app_idx 2020-08-26 08:28:12 +00:00
lly
7ba69e5439 ble_mesh: Optimize some send & recv logs 2020-08-26 08:28:12 +00:00
lly
75af20e687 ble_mesh: stack: Add two application macros for TTL 2020-08-26 16:12:26 +08:00
lly
5952694160 ble_mesh: stack: Update send_ttl in btc when recv a msg
Update send_ttl mainly for server models. When a server model
receives a message, and the status is required to be replied
by the application, we need to set send_ttl to the msg context.
If send_ttl is not updated in btc, and the applcation does not
set the TTL either, then the status will be replied with TTL=0,
which may cause the client side (e.g. the phone App) failed to
receive the status.

Closes https://github.com/espressif/esp-idf/issues/5300
2020-08-26 16:12:26 +08:00
lly
1c87f1df05 ble_mesh: example: Fix example README & tutorial link error 2020-08-26 16:03:36 +08:00
Island
e40e694cf9 Merge branch 'bugfix/ble_mesh_set_recv_rssi_v4.1' into 'release/v4.1'
Bugfix/ble mesh set recv rssi (v4.1)

See merge request espressif/esp-idf!9400
2020-08-26 15:56:02 +08:00
lly
476a54886f ble_mesh: ci: Add different proxy configurations 2020-08-26 07:50:10 +00:00
lly
45f7edd4f2 ble_mesh: stack: Fix compile error when only proxy enabled
Also remove some redundant CONFIG_BLE_MESH_PROXY checks, because
when the following options are satisfied, the CONFIG_BLE_MESH_PROXY
option will be selected mandatorily.
2020-08-26 07:50:10 +00:00
weitianhua
fea61290d3 Fix tsk watchdog when running spp vfs demo 2020-08-26 15:30:26 +08:00
weitianhua
899ef49272 Seperate BTA_JV_L2CAP for less bin size 2020-08-26 15:30:26 +08:00
Island
ade43317ca Merge branch 'bugfix/ble_mesh_get_node_with_name_v4.1' into 'release/v4.1'
ble_mesh: Get node info with pre-configured node name (v4.1)

See merge request espressif/esp-idf!10145
2020-08-26 15:28:15 +08:00
xiehang
58d37de620 esp_wifi: Add API to get available internal heap size. 2020-08-26 12:06:26 +08:00
zhangyanjiao
1e8f68f829 esp_wifi:
1. Fix TX DMA buffer issue
2. API esp_wifi_get_config add acquisition sta.listen_interval
3. Configure bandwidth and phy mode to store NVS
4. If AP's tsf has been restarted, STA will disconnect from AP.
5. Do not reset softAP's tsf except it restart
6. Fix the WiFi regdomain update bug
7. Fix WiFi fragment issue
2020-08-26 12:05:50 +08:00
Jiang Jiang Jian
a27ea5a6c8 Merge branch 'feature/bt_secure_conn_downgrade_check_v4.1' into 'release/v4.1'
Bluedroid: Authentication fixes in Legacy and Secure Connection.

See merge request espressif/esp-idf!9339
2020-08-26 11:33:12 +08:00
Angus Gratton
d54f4bd691 Merge branch 'bugfix/idf_build_process_default_v4.1' into 'release/v4.1'
cmake: fix issue with setting defaults in idf_build_process (v4.1)

See merge request espressif/esp-idf!9712
2020-08-26 07:58:54 +08:00
xueyunfei
84c0fde0e8 fix bug for ipv6 fragment 2020-08-25 17:43:13 +08:00
lly
292333a27c ble_mesh: Get node info with pre-configured node name
Also add a function to get the entry of the nodes table.

Closes https://github.com/espressif/esp-idf/issues/5397
2020-08-25 09:35:34 +08:00
Island
1c8ce47465 Merge branch 'bugfix/ble_mesh_check_subnet_before_update_beacon_sent_v4.1' into 'release/v4.1'
ble_mesh: Check if subnet exists before updating beacon_sent (v4.1)

See merge request espressif/esp-idf!9396
2020-08-24 17:20:12 +08:00
lly
bd59c89540 ble_mesh: stack: Copy recv_rssi for other received messages
Follow the commit: 2b80cb6883,
copy the recv_rssi for other mesh messages.
2020-08-24 08:52:05 +00:00
mbroek
c3fe42250c When a generic mesh model message is received "bt_mesh_generic_server_cb_evt_to_btc" copies the
ctx values to cb_params for the mesh stack.

recv_rssi was not copied.

This means the rssi could not be read when receiving generic server messages using ble_mesh.
2020-08-24 08:52:05 +00:00
houwenxiang
f664527eb4 vfs: support vfs uart set line endings with specified uart number (release/v4.1) 2020-08-24 15:37:44 +08:00
Angus Gratton
9b7dca3769 Merge branch 'bugfix/bootloader_common_get_sha256_of_partition_v4.1' into 'release/v4.1'
bootloader_support: Fix bootloader_common_get_sha256_of_partition(), can handle a long image (v4.1)

See merge request espressif/esp-idf!9953
2020-08-24 13:37:27 +08:00
Angus Gratton
24efb6308d Merge branch 'bugfix/mbedtls_mpi_exp_mod_v4.1' into 'release/v4.1'
mbedtls: Fix a case for mpi_montgomery_exp_calc() when Z is not init (v4.1)

See merge request espressif/esp-idf!9495
2020-08-24 13:36:51 +08:00
Chinmay Chhajed
6f22d7590e Bluedroid: Authentication fixes in Legacy and Secure Connection.
Prevent a remote device from doing a Bluetooth Impersonation Attack
(BIAS) by:

- Preventing remote device to downgrade secure connection
feature mask. Secure connection feature mask should remain same or
increase to enabled in link key generation and authentication.

- Doing a mutual authentication during Legacy Authentication.

Signed-off-by: Chinmay Chhajed <chinmay.chhajed@espressif.com>
2020-08-24 10:27:04 +05:30
Jiang Jiang Jian
91903234a9 Merge branch 'bugfix/fix_event_bug_in_GAP_API_release_v4.1' into 'release/v4.1'
Bugfix/fix event bug in GAP API [backport v4.1]

See merge request espressif/esp-idf!9192
2020-08-24 12:34:30 +08:00
Jiang Jiang Jian
294a00c15d Merge branch 'feature/esp_spp_stop_srv_v4.1' into 'release/v4.1'
bugfix/Add API esp_spp_stop_srv and fix collection of SPP [backport v4.1]

See merge request espressif/esp-idf!10011
2020-08-24 12:34:04 +08:00
Jiang Jiang Jian
55203e9c09 Merge branch 'bugfix/wifi_deinit_stop_crash_v4.1' into 'release/v4.1'
esp_wifi: fix the crash when wifi stop after deinit (v4.1)

See merge request espressif/esp-idf!10030
2020-08-24 12:32:58 +08:00
Jiang Jiang Jian
a40a5405b7 Merge branch 'feature/make_tcp_rto_configurable_v4.1' into 'release/v4.1'
make TCP rto time configurable (backport v4.1)

See merge request espressif/esp-idf!9212
2020-08-24 12:32:23 +08:00
Jiang Jiang Jian
c547044f28 Merge branch 'bugfix/fix_error_in_ag_api_4.1' into 'release/v4.1'
Fix error of AG API return line v4.1

See merge request espressif/esp-idf!9604
2020-08-24 12:32:21 +08:00
Jiang Jiang Jian
d4af9d1ce4 Merge branch 'bugfix/fix_hci_max_page_num_v4.1' into 'release/v4.1'
bugfix/Support for more Bluetooth HID devices [backport v4.1]

See merge request espressif/esp-idf!9661
2020-08-24 12:31:22 +08:00
Jiang Jiang Jian
bb0fe3785f Merge branch 'bugfix/fix_softap_mode_wpa_memory_leak_issue_v4.1' into 'release/v4.1'
bugfix: fix softap mode wpa memory leak (backport v4.1)

See merge request espressif/esp-idf!9846
2020-08-24 12:30:37 +08:00
Jiang Jiang Jian
84b9ce81bb Merge branch 'bugfix/fix_get_bond_device_list_v4.1' into 'release/v4.1'
bugfix/fix esp_bt_gap_get_bond_device_list bug [backport v4.1]

See merge request espressif/esp-idf!9667
2020-08-24 12:30:07 +08:00
Jiang Jiang Jian
6b1473e084 Merge branch 'bugfix/fix_ping_specify_length_issue_v4.1' into 'release/v4.1'
bugfix: fix ICMP specify length issue (backport v4.1)

See merge request espressif/esp-idf!9402
2020-08-24 12:29:41 +08:00
Jiang Jiang Jian
975b8d228f Merge branch 'bugfix/put_periph_module_enable/diable_into_iram_v4.1' into 'release/v4.1'
wifi, bt: move esp_phy_common_clock_disable into periph_ctrl and put it into IRAM(v4.1)

See merge request espressif/esp-idf!9936
2020-08-24 12:28:25 +08:00
Jiang Jiang Jian
a36a020657 Merge branch 'bugfix/connect_param_check_and_channel_map_bugs_v4.1' into 'release/v4.1'
components/bt:Fix channel map instant reverse and add ble connect paramter check.(backport 4.1)

See merge request espressif/esp-idf!9235
2020-08-24 12:27:59 +08:00
Jiang Jiang Jian
788fe71b6b Merge branch 'nimble/nrpa_support_v4.1' into 'release/v4.1'
NimBLE: Add Non-Resolvable private address support and misc fixes (Backport v4.1)

See merge request espressif/esp-idf!9740
2020-08-24 12:27:03 +08:00
Jiang Jiang Jian
9c96e4554c Merge branch 'mesh/bugfix_set_type_4.1' into 'release/v4.1'
mesh/bugfix (backport 4.1)

See merge request espressif/esp-idf!9111
2020-08-24 12:25:26 +08:00
Michael (XIAO Xufeng)
c9ca1fbe78 Merge branch 'bugfix/fix_touch_sensor_api_backport_v4.1' into 'release/v4.1'
(High priority) driver(touch): fix touch sensor driver redundancy (backport v4.1)

See merge request espressif/esp-idf!9872
2020-08-23 16:08:49 +08:00
Krzysztof Budzynski
e3e5a41bc9 Merge branch 'doc/broken_readme_links_v4.1' into 'release/v4.1'
Docs: Fix broken README links (v4.1)

See merge request espressif/esp-idf!9502
2020-08-22 00:40:19 +08:00
Krzysztof Budzynski
c47cbe8139 Merge branch 'docs/doc138_backport_v4.1' into 'release/v4.1'
Fix incorrect redirect link in getting started guide (backport v4.1)

See merge request espressif/esp-idf!9719
2020-08-22 00:38:37 +08:00
Krzysztof Budzynski
d2fd9c10b3 Merge branch 'doc/freertos_backport_v4.1' into 'release/v4.1'
add a note about ESP-IDF FreeRTOS version (backport v4.1)

See merge request espressif/esp-idf!9811
2020-08-22 00:18:25 +08:00
lly
3d888ca777 ble_mesh: Check if subnet exists before updating beacon_sent
- Before updating the "beacon_sent" of a subnet, we need to check
  if the subnet still exists, especially for a Provisioner.
- Fix a bug which will cause Provisioner failed to send Secure
  Network Beacon if no device is provisioned
2020-08-21 12:58:34 +00:00
Island
2a5679c253 Merge branch 'bugfix/ble_mesh_model_recv_fix_v4.1' into 'release/v4.1'
Bugfix/ble mesh model recv fix (v4.1)

See merge request espressif/esp-idf!9007
2020-08-21 20:37:53 +08:00
Island
b7259bab36 Merge branch 'bugfix/ble_mesh_local_model_sub_v4.1' into 'release/v4.1'
Bugfix/ble mesh local model sub (v4.1)

See merge request espressif/esp-idf!8983
2020-08-21 20:37:37 +08:00
He Yin Ling
a3f71eeeb4 Merge branch 'test/merge_ble_mesh_node_and_provioner_in_console_v4.1' into 'release/v4.1'
Test:merge ble mesh node and provioner in console (backport v4.1)

See merge request espressif/esp-idf!9912
2020-08-21 20:00:34 +08:00
Lu Chang Jie
3512a775bc Test:merge ble mesh node and provioner in console 2020-08-21 20:00:32 +08:00
Michael (XIAO Xufeng)
869742de00 Merge branch 'bugfix/freemodbus_fix_long_frame_buffer_failure_backport4_1' into 'release/v4.1'
freemodbus: freemodbus fix long frame buffer failure (backport v4.1)

See merge request espressif/esp-idf!8197
2020-08-21 18:59:45 +08:00
Michael (XIAO Xufeng)
2a4e91553d Merge branch 'bugfix/mcpwm_fault_init_copypaste_typo_bp4.1' into 'release/v4.1'
MCPWM: Fix PWM-fault init function that read config incorrectly (backport v4.1)

See merge request espressif/esp-idf!9553
2020-08-21 18:58:25 +08:00
Michael (XIAO Xufeng)
fc1f1902a8 Merge branch 'bugfix/gpio_hold_function_for_esp32' into 'release/v4.1'
Bugfix/gpio hold function for esp32 (backport v4.1)

See merge request espressif/esp-idf!9175
2020-08-21 18:50:23 +08:00
lly
9ba5899206 ble_mesh: correct the return type [Zephyr] 2020-08-21 07:21:15 +00:00
lly
6b6cf151cf ble_mesh: Add net_buf_simple_init_with_data [Zephyr] 2020-08-21 07:21:15 +00:00
lly
897acd6a1d ble_mesh: Optimize model recv operations [Zephyr]
Previously the model recv operation is a littl fuzzy.
With the changes, the model recv operation is splitted into:
- find op
- check app_idx
- check dst
- check length
- update info & handle message
2020-08-21 07:21:15 +00:00
lly
cc36e415c0 ble_mesh: Local model (un)subscribes group address 2020-08-21 07:18:44 +00:00
lly
a43e5feee8 ble_mesh: Define a macro for invalid company id 2020-08-21 07:18:44 +00:00
Island
ab6139b9df Merge branch 'bugfix/ble_mesh_check_model_status_v4.1' into 'release/v4.1'
ble_mesh: stack: Check model status with variable length (v4.1)

See merge request espressif/esp-idf!9399
2020-08-21 14:57:03 +08:00
Island
6e42afb45b Merge branch 'bugfix/ble_mesh_not_define_bool_v4.1' into 'release/v4.1'
Bugfix/ble mesh not define bool (v4.1)

See merge request espressif/esp-idf!9394
2020-08-21 14:56:46 +08:00
Island
252aaf2ab7 Merge branch 'bugfix/ble_mesh_bt_hex_v4.1' into 'release/v4.1'
ble_mesh: Fix wrong log output with bt_hex (v4.1)

See merge request espressif/esp-idf!9393
2020-08-21 14:56:34 +08:00
Island
9ff30e81c5 Merge branch 'bugfix/ble_mesh_remove_relay_dependency_v4.1' into 'release/v4.1'
ble_mesh: Remove relay option dependency (v4.1)

See merge request espressif/esp-idf!9026
2020-08-21 14:56:23 +08:00
Island
7bc32cb773 Merge branch 'bugfix/ble_mesh_rework_prov_pdu_len_check_v4.1' into 'release/v4.1'
ble_mesh: Rework prov pdu length check (v4.1)

See merge request espressif/esp-idf!9003
2020-08-21 14:56:07 +08:00
Mahavir Jain
12cb99e815 Merge branch 'bugfix/enable_mbedtls_renegotiation_v4.1' into 'release/v4.1'
esp-tls: enable TLS renegotiation using explicit API call (v4.1)

See merge request espressif/esp-idf!9592
2020-08-21 12:30:45 +08:00
Michael (XIAO Xufeng)
866dde5025 Merge branch 'bugfix/sdmmc_check_slot_before_pullup_4.1' into 'release/v4.1'
sdmmc: Correctly check function parameters before using them (4.1)

See merge request espressif/esp-idf!9055
2020-08-20 21:59:31 +08:00
Mahavir Jain
829080e10e Merge branch 'bugfix/convert-string-to-bytes_v4.1' into 'release/v4.1'
components: convert string to bytes to fix TypeError (backport v4.1)

See merge request espressif/esp-idf!9733
2020-08-20 21:54:21 +08:00
Mahavir Jain
67504984c1 Merge branch 'feature/upgrade_mbedtls_to_v4.1' into 'release/v4.1'
mbedtls: update to mbedtls release v2.16.7 (v4.1)

See merge request espressif/esp-idf!9907
2020-08-20 21:52:51 +08:00
Mahavir Jain
29c40aa784 Merge branch 'bugfix/mbedtls_disable_sha_mpi_v4.1' into 'release/v4.1'
mbedtls: Don't compile hardware MPI & SHA files if disabled in config (v4.1)

See merge request espressif/esp-idf!9403
2020-08-20 21:50:36 +08:00
Mahavir Jain
6e22f6bae9 Merge branch 'fix/esp_tls_wolfssl_fix_cert_verify_v4.1' into 'release/v4.1'
esp_tls_wolfssl : fix incorrect error message after handshake fails (v4.1)

See merge request espressif/esp-idf!9231
2020-08-20 21:48:50 +08:00
Mahavir Jain
23a36bdd77 Merge branch 'bugfix/http_server_lru_v4.1' into 'release/v4.1'
esp_http_server: Update LRU counter on accepting a new connection (v4.1)

See merge request espressif/esp-idf!9351
2020-08-20 21:47:56 +08:00
Mahavir Jain
b3af5fb2c3 Merge branch 'bugfix/softap_prov_session_v4.1' into 'release/v4.1'
protocomm_httpd: Restart security session if request is received on a new session (v4.1)

See merge request espressif/esp-idf!9116
2020-08-20 21:47:34 +08:00
Mahavir Jain
a603bf9e02 Merge branch 'bugfix/httpd_lru_purge_v4.1' into 'release/v4.1'
esp_http_server: Fixed a bug which could cause issues with LRU purge (v4.1)

See merge request espressif/esp-idf!8830
2020-08-20 21:46:45 +08:00
Michael (XIAO Xufeng)
9ff88e9f0e Merge branch 'fixbug/sdmmc_spi_highspeed_v4.1' into 'release/v4.1'
sdmmc: fix the probe issue that forbid sdspi working in highspeed mode(backport v4.1)

See merge request espressif/esp-idf!9840
2020-08-20 19:14:30 +08:00
Michael (XIAO Xufeng)
c83a8c4cc7 Merge branch 'bugfix/fix_fifo_cnt_bug_v4.1' into 'release/v4.1'
bugfix(uart): fix esp32 fifo_cnt bug(backport v4.1)

See merge request espressif/esp-idf!9040
2020-08-20 19:13:57 +08:00
Michael (XIAO Xufeng)
000c0b4b8a Merge branch 'bugfix/fix_adc_dac_conflict_backportv4.1' into 'release/v4.1'
Driver(adc): Disable the synchronization operation function of ADC1 and DAC (backport v4.1)

See merge request espressif/esp-idf!9361
2020-08-20 19:12:35 +08:00
Michael (XIAO Xufeng)
d8061fa8d9 Merge branch 'bugfix/esp_flash_revert_qe_clear_4.1' into 'release/v4.1'
esp_flash: fix the regression of non-quad mode by default chip driver, bugs in add_device and deprecate cs_id (4.1)

See merge request espressif/esp-idf!8836
2020-08-20 19:11:00 +08:00
Michael (XIAO Xufeng)
6e148c0051 Merge branch 'bugfix/esp_flash_write_performance_regression_4.1' into 'release/v4.1'
esp_flash: fix the write performance regression (Backport v4.1)

See merge request espressif/esp-idf!8800
2020-08-20 19:09:59 +08:00
morris
612d8f173f ethernet: support power on timeout
Closes https://github.com/espressif/esp-idf/issues/5425
2020-08-20 10:54:50 +08:00
morris
221e89cf59 ethernet: set DMA owner after all descriptors have configured 2020-08-20 10:54:50 +08:00
morris
f5dde8b17e ethernet: handle early rx interrupt 2020-08-20 10:54:49 +08:00
fuzhibo
4fc12259dd Driver(adc): Disable the synchronization operation function of ADC1 and DAC
Closes IDF-1585
2020-08-14 06:49:35 +00:00
liqigan
40bc362809 add API esp_spp_stop_srv(), fix the error parameter in esp-idf/examples/bluetooth/bluedroid/classic_bt/bt_spp_initiator/main/example_spp_initiator_demo.c and fix collection of SPP
Closes https://github.com/espressif/esp-idf/issues/5409
Closes https://github.com/espressif/esp-idf/pull/5408

See merge request espressif/esp-idf!9114
2020-08-13 12:15:33 +08:00
Angus Gratton
5ef1b39002 Merge branch 'fix/prov_ble_read_offset_v4.1' into 'release/v4.1'
BLE provisioning: Add check for valid ble read offset (v4.1)

See merge request espressif/esp-idf!9745
2020-08-13 07:54:36 +08:00
KonstantinKondrashov
c519d78e00 mbedtls: Fix a case for mpi_montgomery_exp_calc() when Z is not init
Closes: IDF-1870

Closes: IDFGH-3671

Closes: https://github.com/espressif/esp-idf/issues/5605
2020-08-12 14:59:01 +08:00
Felipe Neves
fe6bc06366 freertos/portmux: increase portmux timeouts to avoid crashing when using debug feature
Closes: https://github.com/espressif/esp-idf/issues/3629#
2020-08-11 11:34:05 -03:00
zhangyanjiao
535fa9615c esp_wifi: fix the crash when wifi stop after deinit 2020-08-10 20:37:38 +08:00
David Cermak
c4f38c361e esp_netif tests: Add manual DHCP state transision tests
Extended test cases for DHCP server and DHCP client state transitions to include also manual transitions using esp_netif_dhcps_start/stop() esp_netif_dhcpc_start/stop()
2020-08-10 18:52:34 +08:00
David Cermak
75c82c5bc7 esp_netif: Remove restarting DHCP client and server if it has already been started
To be in line with previous behaviour in tcpip_adapter, do nothing and return appropriate error if the DHCP client/server has already been started
2020-08-10 18:52:27 +08:00
boblane
b57953efdf fix esp_bt_gap_get_bond_device_list bug
Closes https://github.com/espressif/esp-idf/issues/5395
2020-08-10 10:06:42 +08:00
Li Shuai
b89a2bb266 add soft solution for esp32 eco3 live lock issue 2020-08-07 06:42:35 +00:00
KonstantinKondrashov
4d735d8279 newlib: Fix UT for adjtime 2020-08-06 20:02:30 +08:00
KonstantinKondrashov
c370a8f7ce newlib: Fix adjtime, returns the amount of time remaining from any previous adjustment
If the olddelta argument is not a null pointer, the adjtime function returns information
about any previous time adjustment that has not yet completed.

Closes: https://github.com/espressif/esp-idf/issues/5194
2020-08-06 20:02:30 +08:00
KonstantinKondrashov
55fafa887c bootloader_support: Fix bootloader_common_get_sha256_of_partition, can handle a long image
Closes: IDFGH-3594
2020-08-05 22:09:15 +08:00
dongyou
46691df851 wifi, bt: move esp_phy_common_clock_disable into periph_ctrl and put it into IRAM
Replace periph_module_enable/disable by periph_wifi_bt_common_module_enable which are in IRAM.
AddIRAM_ATTR periph_ll_wifi_bt_module_enable_clk_clear_rstandIRAM_ATTR periph_ll_wifi_bt_module_disable_clk_set_rstto fit O0 optimization level.
Delete duplicated spinlock and counter.
2020-08-05 16:30:16 +08:00
Mahavir Jain
ac0731e977 mbedtls: update to mbedtls release v2.16.7
For detailed release notes, please refer to:
https://github.com/ARMmbed/mbedtls/releases/tag/mbedtls-2.16.7
2020-08-03 15:46:55 +05:30
Michael (XIAO Xufeng)
bd72a9ab2b Merge branch 'bugfix/can_multiple_fixes_backport_v4.1' into 'release/v4.1'
CAN multiple bug fixes (backport v4.1)

See merge request espressif/esp-idf!9886
2020-08-03 13:04:51 +08:00
Darian Leung
f1b651af7e CAN: Remove asserts used for program logic
This commit fixes the bug where CAN driver program logic was being
called in assert(), thus leading to the logic being omitted in
release builds.
2020-07-31 00:19:53 +08:00
Darian Leung
550ed39ea3 CAN: Fix size of RX msg count field on the esp32
This commit fixes the size of the RX message count register field
on the esp32.
2020-07-30 23:59:42 +08:00
fuzhibo
67a48580fa driver(touch): fix touch sensor driver redundancy 2020-07-30 16:42:48 +08:00
Jakob Hasse
5e536a3f43 CXX: make __attribute__((init_priority(n))) work
* Added corresponding test case
* Moved all C++ init tests to separate file

Closes https://github.com/espressif/esp-idf/issues/5038
2020-07-30 15:40:33 +08:00
lly
7f7397e67f ble_mesh: Remove relay option dependency
When the relay functionality of a node is not enabled, this
issue will cause the node failing to send messages to fixed
group.
2020-07-30 03:58:27 +00:00
Jakob Hasse
59680bbaff nvs: unit tests for new partition API 2020-07-29 16:40:13 +00:00
Dmitriy Shilin
07a88fbb7c nvs: allow to specify custom partition
Closes https://github.com/espressif/esp-idf/pull/5172
2020-07-29 16:40:13 +00:00
ronghulin
828cc1318b bugfix: fix softap mode wpa memory leak 2020-07-29 14:15:56 +08:00
Michael (XIAO Xufeng)
19fcd9cc19 sdmmc: fix the probe issue that forbid sdspi working in highspeed mode
SD cards don't support CMD7 (select_card) in SPI mode. Highspeed probe
of sdspi will fail in this step and stop working in highspeed mode.
Remove the CMD7 in enable_hs_mode_and_check to fix this issue.

Please note that, on ESP32, you have to use the IOMUX pins to use sdspi
in 40MHz, otherwise the initialization process will report reading issue
and fail.
2020-07-28 17:38:37 +08:00
yiying
ba01132b41 add a note about ESP-IDF FreeRTOS version 2020-07-27 19:05:59 +08:00
Prasad Alatkar
9587b53b2f NimBLE: Add Non-Resolvable private address support and misc bug fixes (Backport v4.1)
- Merges https://github.com/espressif/esp-nimble/pull/12
- Fixes repeated pairing failure in RPA feature

Closes https://github.com/espressif/esp-idf/issues/5530
2020-07-24 06:48:14 +00:00
Angus Gratton
95083233c5 Merge branch 'bugfix/prov_retry_failures_v4.1' into 'release/v4.1'
ci: Add retries for all provisioning methods, some refactors (v4.1)

See merge request espressif/esp-idf!9388
2020-07-23 13:19:30 +08:00
Angus Gratton
ceeee9036c Merge branch 'ci/fix_uart_read_write_priorities_v4.1' into 'release/v4.1'
driver test: Ensure uart write task can't overflow buffer of read task (v4.1)

See merge request espressif/esp-idf!9570
2020-07-23 13:15:27 +08:00
Alexey Gerenkov
7e2f701a3c tools: Updates OpenOCD version to 'v0.10.0-esp32-20200709' 2020-07-22 23:37:46 +03:00
Prasad Alatkar
be13513378 BLE provisioning: Add check for valid ble read offset 2020-07-22 19:40:49 +05:30
yiying
ca38f1eb0a docs: change redirection link in get-started
This link is supposed to go to Step 3, but it goes to Step 2.
2020-07-22 17:44:06 +08:00
Angus Gratton
36edd91060 Merge branch 'bugfix/rs485_test_temp_disable_v41' into 'release/v4.1'
Bugfix/rs485 test temp disable v41 (backport v4.1)

See merge request espressif/esp-idf!9524
2020-07-22 17:20:00 +08:00
martin.gano
b41752b95c components: convert string to bytes to fix TypeError There is a string passed as an argument for function, but a format of a string seemingly refers to bytes therefore it needs to be converted to bytes Solves https://esp32.com/viewtopic.php?f=13&t=16529
(cherry picked from commit cb0bdb8bba)
2020-07-22 11:19:10 +02:00
Angus Gratton
b3b7fcf51c Merge branch 'ci/workaround_multiple_ci_failures_v4.1' into 'release/v4.1'
CI: workaround multiple ci failures (v4.1)

See merge request espressif/esp-idf!9685
2020-07-22 11:54:04 +08:00
Renz Christian Bagaporo
b8c893774f ci: pushd and cd in one go in idf_build_process defaults test 2020-07-20 18:29:19 +08:00
Renz Bagaporo
d101da4ca4 cmake: fix setting defaults in idf_build_process
Closes https://github.com/espressif/esp-idf/issues/5053
2020-07-20 18:29:19 +08:00
Renz Bagaporo
a716442c72 ci: test idf_build_process defaults set properly 2020-07-20 18:29:19 +08:00
He Yin Ling
103503ba56 CI: do not run cases likely to fail 2020-07-19 14:58:06 +08:00
He Yin Ling
50b5b3184e CI: disable cases with test env SSC_T5_1 2020-07-19 14:58:05 +08:00
He Yin Ling
69ce0cea68 CI: temp allow mesh job to fail as runner is not stable 2020-07-19 14:58:03 +08:00
He Yin Ling
77fd8095e0 CI: remove incorrect MTU related cases 2020-07-19 14:58:02 +08:00
DerfJagged
16e33e3e33 Support for more Bluetooth HID devices
Some Bluetooth devices - such as an Xbox One S controller (model 1708) - report more than two external features pages and are rejected immediately. Pages 1 and 2 are marked as unhandled in btm_devctl.c anyway, so there is no reason to block devices with more pages.
(IDFGH-3515)

Signed-off-by: liqigan <liqigan@espressif.com>

Merges https://github.com/espressif/esp-idf/pull/5481
Closes https://github.com/espressif/esp-idf/issues/5470
2020-07-17 10:14:34 +08:00
weitianhua
491d564f5a Fix error of AG API return line
Closes https://github.com/espressif/esp-idf/issues/5554
2020-07-14 14:44:20 +08:00
Mahavir Jain
4c01c1a034 esp-tls: enable TLS renegotiation using explicit API call
mbedTLS stack does not keep TLS renegotiation enabled even if
relevant config option is turned on, it needs explicit API call
`mbedtls_ssl_conf_renegotiation` to do so.

This issue was observed in case of Azure IoT, where keys needs to
be refreshed periodically to keep TLS connection intact.
2020-07-13 15:35:57 +05:30
morris
ee6ff6bdd2 ethernet: insert min assert time for PHY HW reset
Closes https://github.com/espressif/esp-idf/issues/5528
2020-07-13 11:13:31 +08:00
chenyudong
907e206dff mesh/ci: fix MESH_EST_0216 2020-07-10 18:04:52 +08:00
chenyudong
b20943ad43 mesh: backport some bugfixes
1. If the root is specified (FIXED-ROOT) by set type or set parent, change ie.mesh_type to MESH_ROOT before connect to router.
2. Release esp_mesh_recv_toDS when the root becomes non-root.
3. esp_mesh_set_type now supports MESH_IDLE and MESH_STA.
4. Fix ie.rc_rssi is not updated during scan and vote.
5. Fix ie.mesh_type do not match ie.layer caused by parent switch.
6. Fix during root switch, the original root doesn't disconnect from the router after it receives the switch request from the new voted root. (root switch happens by invoking esp_mesh_waive_root).
7. Fix the routing announce timer is not stopped immediately in a new root if the new root is transformed from non-root.
8. Choose the candidate with less ie.assoc when doing parent switch.
2020-07-10 18:04:50 +08:00
Jiang Jiang Jian
839893cfce Merge branch 'bugfix/buff_semaphore_not_free_v4.1' into 'release/v4.1'
component/bt: Fixed ble memory leak issue, buff_semaphore was not released..(backport 4.1)

See merge request espressif/esp-idf!9508
2020-07-10 16:49:35 +08:00
Angus Gratton
5cf858bee3 driver test: Ensure uart write task can't overflow buffer of read task
Previously both tasks had equal priority, possible for write task and another
internal task to be scheduled at the same time - starving read task and
causing data loss.

Related to IDFCI-59
2020-07-10 16:00:39 +10:00
Wielebny666
b6e69b5014 Fix init MCPWM Fault line via config struct
Signed-off-by: wubowen <wubowen@espressif.com>

Merges https://github.com/espressif/esp-idf/pull/5491
Closes https://github.com/espressif/esp-idf/issues/5433
2020-07-09 19:13:56 +08:00
Supreet Deshpande
f8874e6940 Add platform independent CMake signing 2020-07-09 11:55:21 +05:30
Angus Gratton
f5a7c9635f Merge branch 'feature/msys2_env_update_v4.1' into 'release/v4.1'
windows: Update MSYS2 pre-compiled legacy build environment (v4.1)

See merge request espressif/esp-idf!9143
2020-07-08 17:34:33 +08:00
liqigan
f5d37dd416 components/bt: Adjust the description of esp_bt_gap_start_discovery and esp_bt_gap_cancel_discovery.
Add some comments to explain why `ESP_BT_GAP_DISC_STATE_CHANGED_EVT` is not reported.
2020-07-08 14:22:19 +08:00
Ivan Grokhotkov
1ecd5ab91d ci: temporarily disable RS485 related tests 2020-07-08 06:44:07 +02:00
wangcheng
9c9b64ee17 component/bt: Fixed ble memory leak issue, buff_semaphore was not released. 2020-07-07 21:02:49 +08:00
Marius Vikhammer
7ab64c5345 Fix broken README links 2020-07-07 17:35:35 +08:00
Angus Gratton
0116d5d096 Merge branch 'bugfix/esp32_encrypted_flash_write_v4.1' into 'release/v4.1'
spi_flash: esp32: fix regression in encrypted flash write (v4.1)

See merge request espressif/esp-idf!9378
2020-07-06 08:18:23 +08:00
Angus Gratton
6db66c96d6 Merge branch 'bugfix/ci_fixes_v4.1' into 'release/v4.1'
ci: multiple minor fixes (backport v4.1)

See merge request espressif/esp-idf!8226
2020-07-06 07:23:46 +08:00
Jiang Jiang Jian
8d54933e10 Merge branch 'mesh/bugfix_coexist_warning_4.1' into 'release/v4.1'
mesh: remove coexist warnings in ESP_WIFI_MESH (backport 4.1)

See merge request espressif/esp-idf!9414
2020-07-03 20:10:09 +08:00
Ivan Grokhotkov
b1e907ccf1 ci: consider sdkconfig.defaults.TARGET_NAME in examples and test apps 2020-07-03 09:45:03 +00:00
Ivan Grokhotkov
370aa39045 efuse: don't include esp_efuse_utility_debug_dump_blocks in bootloader 2020-07-03 09:45:03 +00:00
Ivan Grokhotkov
9b19b21073 ci: generate separate log files for each example config
Otherwise the build log gets overwritten, and warnings in earlier
builds may be masked.
2020-07-03 09:45:03 +00:00
Ivan Grokhotkov
88baff4cbb ci: do fetch submodules in test_build_system_cmake_macos
Also install Python packages required by the CI scripts, and install
build tools (CMake, ninja).
2020-07-03 09:45:03 +00:00
Angus Gratton
4ea2935b1a ci provisioning: Add some experiments to check the runner's STA state
Not clear why sometimes it associates without negotiating a new DHCP lease.
2020-07-03 09:02:04 +00:00
Angus Gratton
a1cd7d0ef5 esp_prov: Extend the timeout for HTTP connection to SoftAP 2020-07-03 09:02:04 +00:00
Angus Gratton
113721f8fc ci wifi_tools: Log the wpa_supplicant interface state when trying to connect
Trigger reconnection if wpa_supplicant seems to have dropped the connection.
2020-07-03 09:02:04 +00:00
Angus Gratton
5cc9ef901e legacy provisioning: Always try to reconnect when disconnected
Some APs may fail authentication temporarily if they have too many
associated stations, for example.
2020-07-03 09:02:04 +00:00
Angus Gratton
ea8fae9ded esp_prov: Refactor to use new 'wait_wifi_connected' function
Means all provisioning examples will have the same retry behaviour.
2020-07-03 09:02:04 +00:00
Angus Gratton
9d38b0ab9b ci provisioning: Use strings instead of "magic numbers" for connection state 2020-07-03 09:02:04 +00:00
Angus Gratton
faaf08c441 ci: Wait up to 60 seconds for client to connect to DUT in provisioning test 2020-07-03 09:02:04 +00:00
zhangyanjiao
f9e22b627e mesh: remove coexist warnings in ESP_WIFI_MESH
1. remove warning log when mesh is started:
Error! Should use default passive scan time parameter for WiFi scan when Bluetooth is enabled!!!!!!
2. remove abort when mesh is started:
Error! Should enable WiFi modem sleep when both WiFi and Bluetooth are enabled!!!!!!
2020-07-03 14:54:20 +08:00
Jiang Jiang Jian
b6e2163e5e Merge branch 'bugfix/beacon_security_downgrade_v4.1' into 'release/v4.1'
Avoid parsing RSN/WPA IE's after connection (Backport v4.1)

See merge request espressif/esp-idf!9284
2020-07-03 14:33:18 +08:00
Angus Gratton
40c9f0599c mbedtls: Don't compile hardware MPI & SHA files if disabled in config
Fixes bug where hardware accelerated mbedtls_mpi API was always used, even when
disabled in config.
2020-07-03 10:37:15 +10:00
Nachiket Kukade
aceb46efc2 esp_wifi: Update wifi lib
1. Avoid parsing RSN/WPA IE's after connection
2. Remove AUTH_CHANGED reason code logic
2020-07-01 11:49:02 +00:00
ronghulin
15c8337424 bugfix: fix ICMP specify length issue 2020-06-30 10:53:48 +08:00
lly
bf35465658 ble_mesh: stack: Check model status with variable length 2020-06-30 09:31:27 +08:00
lly
289b8bcea7 ble_mesh: Remove boolean type definitions 2020-06-30 09:18:42 +08:00
Nikolaos Strikos
0d5eb50ce2 ble_mesh: Do not #define bool when compiling in C++ 2020-06-30 09:18:42 +08:00
lly
353f893d95 ble_mesh: Fix wrong log output with bt_hex
- This issue was introduced in the commit: a788e7cd3d
  which updated the bt_hex() function incorrectly.
- And in bt_hex(), we use 2 for the two-dimensional array, because currently
  at most two bt_hex() will be used at the same time. Also this will save
  some DRAM compared with using 4.
2020-06-30 09:16:29 +08:00
liminyang
a55bd7339c docs:fix event typo
1.In the description of the ESP_API header file, it should be the event that the application layer needs to handle, not the BTA layer.
2.Fix name typo of BTA_GATTS_CREATE_SRVC_EVT event

Closes https://github.com/espressif/esp-idf/issues/5446
2020-06-29 20:56:08 +08:00
Mahavir Jain
56accfe4c4 spi_flash: esp32: fix regression in encrypted flash write
In commit 309376f51a, it seems like regression
was added to use ROM level API for disabling flash write protection. This
started random firmware crashes (on specific modules) with exception
`IllegalInstruction` during encrypted flash writes.

Fix here removes relevant ROM API call, since disabling flash write protection
is already ensured by caller of this API.

Closes https://github.com/espressif/esp-idf/issues/5467
2020-06-29 14:51:58 +05:30
Angus Gratton
7ab2ffb45f spi_flash: Use per-chip flash_ops files for legacy API
Looks like when ESP32-S2 Beta support was merged, the separate files
were dropped by accident.
2020-06-29 14:49:28 +05:30
Wang Jia Lin
6cbc7dc2cd Merge branch 'bugfix/fix_adc_io_init_bug_for_idfv4.1' into 'release/v4.1'
driver(adc): fix adc io init bug for idfv4.1 (backport v4.1)

See merge request espressif/esp-idf!8714
2020-06-29 15:00:22 +08:00
fuzhibo
c711a048bb driver(gpio): Solve gpio hold problems caused by code refactoring.
Closes https://github.com/espressif/esp-idf/issues/4600
2020-06-28 14:12:29 +00:00
Marius Vikhammer
5eb5b1148a websocket client: the client now aborts the connection if send fails.
Closes IDF-1744
2020-06-28 02:10:18 +00:00
Shubham Kulkarni
4b41f19a01 esp_http_server: Update LRU counter on accepting a new connection
Closes https://github.com/espressif/esp-idf/issues/3851
2020-06-26 19:24:49 +05:30
Ivan Grokhotkov
c735e7edf5 Merge branch 'bugfix/export_path_checks_v4.1' into 'release/v4.1'
tools: export.sh: better detection and checking of IDF_PATH (backport v4.1)

See merge request espressif/esp-idf!8747
2020-06-26 21:24:11 +08:00
Ivan Grokhotkov
f31a804c1e Merge branch 'ci/http_client_remove_httpbin_redirect_v4.1' into 'release/v4.1'
ci: Temporarily remove the esp_http_client httpbin redirect tests (v4.1)

See merge request espressif/esp-idf!9341
2020-06-26 21:23:04 +08:00
Angus Gratton
d168611bbf ci: Temporarily remove the esp_http_client httpbin redirect tests
Need to host httpbin ourselves or wait for
postmanlabs/httpbin/issues/617 to be resolved
2020-06-25 09:35:20 +00:00
Ivan Grokhotkov
b85f877817 tools: export.sh: fix compatibility with dash shell
* fix constructs invalid in dash
* clean shellcheck warnings and disable false positive ones

Closes https://github.com/espressif/esp-idf/issues/5366
2020-06-25 09:19:58 +00:00
Ivan Grokhotkov
6ae54e7fd2 tools: export.sh: better detection and checking of IDF_PATH
1. detect IDF_PATH in zsh, if it is not set
2. if IDF_PATH is set, check that it is valid
3. make sure IDF_PATH is exported, not just set

Related to https://github.com/espressif/esp-idf/issues/3793
Closes https://github.com/espressif/esp-idf/pull/4418
Closes https://github.com/espressif/esp-idf/issues/4770
Closes https://github.com/espressif/esp-idf/issues/5288
2020-06-25 09:19:58 +00:00
Roland Dobai
0ff9b0a812 Tools: Mention ESPPORT and ESPBAUD in idf.py --help
Closes https://github.com/espressif/esp-idf/issues/5461
2020-06-25 08:17:55 +02:00
David Cermak
a19fa857ad static analysis: Apply current limits of known defects on v4.1 2020-06-25 05:45:16 +00:00
Angus Gratton
dd99fc77cb Merge branch 'bugfix/python_lint_v4.1' into 'release/v4.1'
tools: fix python lint (4.1)

See merge request espressif/esp-idf!9294
2020-06-25 12:35:07 +08:00
morris
4daa605bd3 gh_action: fix python lint 2020-06-24 13:17:29 +08:00
Roland Dobai
43aafb0d86 tools/idf.py: Clean Python bytecode files 2020-06-22 10:24:12 +02:00
Aditya Patwardhan
6aba4efca0 esp_tls_wolfssl: fix incorrect error message after handshake fails 2020-06-18 13:58:07 +05:30
wangcheng
5cff7b1d55 components/bt:Fix instant reverse and add ble connect paramter check. 2020-06-18 15:52:34 +08:00
Elvis Dukaj
5925f6458a ble_hid_device_demo: fix build if building with c++
Signed-off-by: Elvis Dukaj <elvis.dukaj@gmail.com>
Signed-off-by: liminyang <liminyang@example.com>

Merges https://github.com/espressif/esp-idf/pull/5191
2020-06-18 15:44:25 +08:00
Jiang Jiang Jian
97f10f6509 Merge branch 'bugfix/wpa3_ble_coex_issue_v4.1' into 'release/v4.1'
Fix WPA3 Auth timeout during BLE coex (Backport 4.1)

See merge request espressif/esp-idf!9208
2020-06-18 14:44:38 +08:00
liminyang
be80b6f270 docs:perfect 128-bit UUID description
The previous description is not easy for the reader to understand, some changees have been made to perfect it.
Closes https://github.com/espressif/esp-idf/issues/5057
2020-06-18 14:44:28 +08:00
Nachiket Kukade
ee70736a03 esp_wifi: Update wifi lib
1. Fix WPA3 Auth timeout during BLE coex by increasing CNX timeout
2. Extend Coex phase for SAE Handshake
3. Define and utilize WPA3 Mixed Authmode, update esp_wifi_types.h
2020-06-18 05:19:26 +00:00
Angus Gratton
9e55345c43 Merge branch 'bugfix/efuse_logs_v4.1' into 'release/v4.1'
esp32: Reduce using ESP_EARLY_LOGx and move some code after the stdout initialization in startup code (v4.1)

See merge request espressif/esp-idf!9206
2020-06-18 07:11:42 +08:00
Jiang Jiang Jian
6b66850dc1 Merge branch 'bugfix/ble_conn_fail_v4.1' into 'release/v4.1'
Fix bugs from coex test v4.1

See merge request espressif/esp-idf!9136
2020-06-17 18:17:15 +08:00
KonstantinKondrashov
e0e391dce3 esp32s2: Move some code after the stdout initialization 2020-06-17 15:53:45 +08:00
KonstantinKondrashov
0a1919abff esp32: Reduce using ESP_EARLY_LOGx and move some code after the stdout initialization
After setting _GLOBAL_REENT, ESP_LOGIx can be used instead of ESP_EARLY_LOGx.

Closes: https://github.com/espressif/esp-idf/issues/5343
2020-06-17 15:53:45 +08:00
yuanjm
af82516cfb feat(lwip): make LWIP TCP rto time configurable 2020-06-17 15:29:25 +08:00
Piyush Shah
6baa5f0d7b protocomm_httpd: Restart security session if request is received on a new session
This commit fixes a bug as well as changes a behaviour.

Bugfix: During softap/httpd based provisioning, if a session was closed
midway and a new one started, it would never proceed if the http server
assigns same socket number to the new session (which happens almost always).
Now, if a session is closed, using the http callbacks, the older session
data is cleared so that a new one can be created.

Behavioural change: If a client (mobile app particularly) does not use
persistent http session i.e. all provisioning communication on the same
socket, the provisioning may fail. Earlier, since the session context was
not getting cleared, even if the client closed a session and continued
on a new one, it would go through if the socket number assigned was same
(which happens almost always).

Ideally, from a security perspective, all communication related
to secure provisioning must happen on the same socket, and so, this
change is required.
2020-06-17 05:34:11 +00:00
Jiang Jiang Jian
c5bbe87425 Merge branch 'bugfix/airkiss_find_hidden_ap_fail_v4.1' into 'release/v4.1'
fix the bug that airkiss find hidden AP fail (backport v4.1)

See merge request espressif/esp-idf!9176
2020-06-17 12:26:56 +08:00
Jiang Jiang Jian
5e52e5f6f5 Merge branch 'bugfix/blufi_buffer_overflow_report_v4.1' into 'release/v4.1'
Bugfix/blufi buffer overflow report v4.1

See merge request espressif/esp-idf!9178
2020-06-16 15:59:49 +08:00
Jiang Jiang Jian
f82010fa6a Merge branch 'bugfix/att_buffer_count_fixed_v4.1' into 'release/v4.1'
Bugfix/att buffer count fixed v4.1

See merge request espressif/esp-idf!9160
2020-06-16 15:59:34 +08:00
xiongyu
cf3b2df4a4 bugfix(uart): fix esp32 fifo_cnt bug
When using DPort to read fifo, fifo_cnt is not credible, we need to calculate the real cnt based on the fifo read and write pointer. When using AHB to read FIFO, we can use fifo_cnt to indicate the data length in fifo.
2020-06-16 14:48:02 +08:00
zhangyanjiao
08e7bce4ea esp_wifi:
1. fix the bug that airkiss find hidden AP fail
2. addba fix and send bar in first ampdu
2020-06-16 10:48:48 +08:00
Michael (XIAO Xufeng)
a945ae8a9d Merge branch 'bugfix/add_return_task_awoken_for_timer_callback_v4.1' into 'release/v4.1'
timer: add return task awoken for timer callback (backport v4.1)

See merge request espressif/esp-idf!9148
2020-06-16 10:38:43 +08:00
Jiang Jiang Jian
b33828e254 Merge branch 'bugfix/authmode_degrade_fix_v4.1' into 'release/v4.1'
esp_wifi: Remove auth_changed event and fix wpa2_ent authmode threshold (backport v4.1)

See merge request espressif/esp-idf!8804
2020-06-15 23:18:55 +08:00
wangcheng
ae64d9e738 blufi: When the format of the received data packet is wrong, reply with an error response 2020-06-15 19:37:38 +08:00
Wang Cheng
6861f7d5d8 components/bt: Add a detailed description for the user to distinguish the function of the query buffer api. 2020-06-15 19:19:14 +08:00
Geng Yu Chao
c5a6fc9c7e Update the limited of function esp_ble_get_sendable_packets_num. 2020-06-15 19:17:27 +08:00
wangcheng
3b8b057894 components/bt: Consider link_xmit_data_q in congest events to prevent excessive memory usage 2020-06-13 15:07:28 +08:00
wangcheng
e69ee31e1a components/bt: Fixed the problem of incomplete data packets caused by disordered acl data packets 2020-06-13 15:06:28 +08:00
wangcheng
846a2f95f4 components/bt: Add api to query the number of available buffers for the current connection 2020-06-13 15:06:14 +08:00
chenjianqiang
74623ac9d5 timer: add return task awoken for timer callback 2020-06-12 14:33:21 +08:00
Angus Gratton
37c155c359 msys2: Remove python version consideration in pacman commands 2020-06-12 10:22:10 +10:00
Angus Gratton
194a3b09dc windows: Update MSYS2 pre-compiled legacy build environment
* Bundled with esp2020r2 toolchain
* Built with Python 3 & latest MSYS2 packages
2020-06-12 10:22:10 +10:00
baohongde
1b8905e544 components/bt: Fix ble disconnect due to instant of channel map update is too small 2020-06-11 16:55:36 +08:00
baohongde
d0093c7675 Set AFH in time(075dd35)
Send LMP_channelClassification immediately
Fix first LMP_set_AFH not using host value
2020-06-11 16:55:26 +08:00
baohongde
de6f21936f components/coex: Fix ble connecting fail in coexist 2020-06-11 16:55:12 +08:00
kapil.gupta
46486a863c esp_wifi: Remove auth_changed event and fix wpa2-ent authmode threshold
Added following as part of this change
1. Removed auth_changed event
2. Updated doc regarding usage of  WPA/WEP secuiry modes
3. Fixed WPA2 enterprise authmode threshold.
2020-06-11 13:40:58 +05:30
Jiang Jiang Jian
29bc65e719 Merge branch 'feature/toolchain_2020r2_v4.1' into 'release/v4.1'
Update toolchain to esp-2020r2  (backport v4.1)

See merge request espressif/esp-idf!9000
2020-06-11 15:44:47 +08:00
Jiang Jiang Jian
7de0c391ac Merge branch 'bugfix/fix_some_wifi_bugs_0522_v4.1' into 'release/v4.1'
bugfix: fix some wifi bugs (backport v4.1)

See merge request espressif/esp-idf!8880
2020-06-11 15:41:06 +08:00
Jiang Jiang Jian
326b42560d Merge branch 'bugfix/collection_of_confirmed_fixes_from_baidu_project_4.1' into 'release/v4.1'
Backport MR for baidu project for release/v4.1

See merge request espressif/esp-idf!8987
2020-06-11 14:46:22 +08:00
Angus Gratton
6f768b74e4 Merge branch 'bugfix/parttool_get_info_wo_info_option_v4.1' into 'release/v4.1'
partition_table: Fix parttool.py crashes when retrieving partition info (v4.1)

See merge request espressif/esp-idf!9063
2020-06-10 16:02:03 +08:00
Angus Gratton
aa6481837f Merge branch 'bugfix/bootloader_header_align_v4.1' into 'release/v4.1'
bootloader: Force bootloader_image_hdr to be word aligned (v4.1)

See merge request espressif/esp-idf!9068
2020-06-05 07:28:35 +08:00
Ivan Grokhotkov
bd3caffdcd bootloader_support: force alignment of flash_read argument 2020-06-04 21:01:56 +10:00
Angus Gratton
a5b4fda207 bootloader: Force bootloader_image_hdr to be word aligned
Possible due to linker order for this file to be placed unaligned,
causing failure from bootloader_flash_read() function.
2020-06-04 20:53:46 +10:00
KonstantinKondrashov
7070fea6e4 partition_table: Fix parttool.py crashes when retrieving partition info
Closes: IDFGH-3279
Closes: https://github.com/espressif/esp-idf/issues/5271
2020-06-04 16:31:05 +08:00
Angus Gratton
d35226c656 Merge branch 'bugfix/wpa_supplicant_no_hw_mpi_v4.1' into 'release/v4.1'
wpa_supplicant: Allow building with mbedTLS integration but no hardware MPI (v4.1)

See merge request espressif/esp-idf!9013
2020-06-04 16:22:14 +08:00
aleks
4be2170250 freemodbus: add comments for limitation in current version of freemodbus 2020-06-04 09:46:04 +02:00
Alexander Borsuk
29d3c40a25 sdmmc: Correctly check function parameters before using them
Closes https://github.com/espressif/esp-idf/pull/5000
2020-06-04 11:49:40 +08:00
baohongde
7cdc2f2b81 Backport MR for baidu proj 2020-06-04 11:07:30 +08:00
Angus Gratton
50319bb03c wpa_supplicant: Allow building with mbedTLS integration but no hardware MPI
Also disable the relevant function in bignum.h based on config, so fails at
compile not link time.

Closes https://github.com/espressif/esp-idf/issues/5321
2020-06-03 15:11:21 +10:00
Angus Gratton
0ea6d39686 Merge branch 'bugfix/secure_boot_v2_fixes_v4.1' into 'release/v4.1'
Small secure boot v2 fixes (v4.1)

See merge request espressif/esp-idf!9019
2020-06-03 12:34:55 +08:00
Anton Maklakov
298f23c958 Update toolchain to esp-2020r2
Fixes PSRAM issues, volatile loads with -O2, std::locale, C++ exception crashs, FDE sorting switchable;

Includes a 64-bit toolchain for Windows (win64);

Closes https://github.com/espressif/esp-idf/issues/5090
Closes https://github.com/espressif/esp-idf/issues/5112
Closes https://github.com/espressif/esp-idf/issues/5150
2020-06-02 13:19:00 +07:00
Ivan Grokhotkov
1e12199832 esp32: use ccomp_timer in SHA test 2020-06-02 13:15:14 +07:00
Ivan Grokhotkov
36a66a7243 newlib: use --specs=nano.specs to enable "nano" version of C library
esp2020r1 toolchain includes a nano.specs file, which instructs GCC to
substitute libc.a with libc_nano.a.

In the build system, this simplifies handling of the nano formatting
option, eliminating LIBC and LIBM global variables.
2020-06-02 13:15:08 +07:00
Jeroen Domburg
4eec4fbc99 Add fixes for gcc8 psram fix improvement 2020-06-02 13:14:29 +07:00
Angus Gratton
b00f38f91c secure boot v2: Add anti-FI check that secure boot not enabled yet
Prevent a fault from causing bootloader to trust the provided signature incorrectly.
2020-06-02 16:14:01 +10:00
Angus Gratton
3c6b1b4c0a secure boot v2: Don't check efuse BLK2 if only boot-time signature verification is enabled 2020-06-02 16:14:01 +10:00
Angus Gratton
2c531d5bb3 secure boot v2: Don't log warnings when BLK2 is empty as expected
If BLK2 is empty then it's OK to continue with a warning (otherwise it may spook users into thinking
something this is wrong, but this is the expected workflow.)

If BLK2 is not empty and doesn't match then we need to fail because it won't be possible to
trust the signature.
2020-06-02 16:14:01 +10:00
lly
1bd7944316 ble_mesh: Rework prov pdu length check 2020-06-02 10:13:51 +08:00
Armando
75dd9835f6 esp_flash: fix cache exception when CS pin is through IOMUX 2020-06-01 15:29:30 +08:00
Armando
bda0c84552 esp_flash: fix the cleanup when add device fails 2020-06-01 15:29:30 +08:00
Armando
eacefba1c6 esp_flash: fix the regression of non-quad mode by default chip driver 2020-06-01 15:29:30 +08:00
Angus Gratton
69895387ee Merge branch 'bugfix/kconfig_hex_values_v4.1' into 'release/v4.1'
kconfig: Fix two cases of hex values being handled incorrectly (v4.1)

See merge request espressif/esp-idf!8787
2020-06-01 14:48:37 +08:00
Roland Dobai
c89d045322 tools: Don't generate pyc files 2020-05-29 10:08:51 +02:00
Angus Gratton
7708bf6158 Merge branch 'bugfix/ci_push_to_github_on_label_v4.1' into 'release/v4.1'
ci: Don't push to Github or deploy docs on customized pipelines (v4.1)

See merge request espressif/esp-idf!8937
2020-05-29 12:43:11 +08:00
Jiang Jiang Jian
10f3d92f6c Merge branch 'bugfix/add_so_linger_to_menuconfig_for_4.1' into 'release/v4.1'
lw-ip:add LINGER to menuconfig for 4.1(backport4.1)

See merge request espressif/esp-idf!8758
2020-05-29 11:13:52 +08:00
Jiang Jiang Jian
5fb93a14ae Merge branch 'bufix/fix_v4.1_bluedroid_bugs_mr' into 'release/v4.1'
component/bt: fix notify malloc failed , fix no BLE_AUTH_CMPL_EVT and fix bluedroid btc deinit crash(backport 4.1)

See merge request espressif/esp-idf!8756
2020-05-29 11:13:20 +08:00
Jiang Jiang Jian
63592b667c Merge branch 'nimble/config_option_sdkconfig_rename_v4.1' into 'release/v4.1'
Add NimBLE config options in sdkconfig.rename (v4.1)

See merge request espressif/esp-idf!8735
2020-05-29 11:12:44 +08:00
ronghulin
ba06ecf96d bugfix: fix some wifi bugs
1. optimization esp_wifi_set_max_tx_power description
2. Add API esp_wifi_ap_get_sta_aid
3. Fix the timeout issue of EAPOL four-way handshake
4. esp_wifi:Add softap example channel configuration
2020-05-29 11:04:26 +08:00
zhiweijian
8793aab0e3 add congest direct callback and fix malloc failed when multi_connection notify performance test 2020-05-28 12:07:58 +00:00
wangcheng
d32ee233af fix bta_dm_deinit_cb crash 2020-05-28 12:07:58 +00:00
wangcheng
049402ae8d master missing BLE_AUTH_CMPL_EVT after restart 2020-05-28 12:07:58 +00:00
Jiang Jiang Jian
977d98cb6d Merge branch 'bugfix/ble_mesh_check_timer_init_v4.1' into 'release/v4.1'
ble_mesh: Check the result of creating timer (v4.1)

See merge request espressif/esp-idf!8958
2020-05-28 15:27:42 +08:00
Jiang Jiang Jian
983a4be42e Merge branch 'nimble/update_nimble_submodule_v4.1' into 'release/v4.1'
NimBLE: Include upstream fixes and use macros for log level filtering (backport v4.1)

See merge request espressif/esp-idf!8794
2020-05-28 15:25:12 +08:00
lly
0c87b1c12d ble_mesh: Check the result of creating timer 2020-05-28 10:27:06 +08:00
Island
5ea193115b Merge branch 'bugfix/ble_mesh_sync_zephyr_fixes_v4.1' into 'release/v4.1'
Bugfix/ble mesh sync zephyr fixes (v4.1)

See merge request espressif/esp-idf!8948
2020-05-28 10:15:53 +08:00
Island
6971cdbad5 Merge branch 'bugfix/ble_mesh_not_use_same_private_key_v4.1' into 'release/v4.1'
ble_mesh: Not using pre-initialized private key (v4.1)

See merge request espressif/esp-idf!8945
2020-05-28 10:14:21 +08:00
Island
0af793f6ef Merge branch 'bugfix/ble_mesh_comp_data_store_restore_v4.1' into 'release/v4.1'
ble_mesh: Same func for storing/restoring comp data (v4.1)

See merge request espressif/esp-idf!8942
2020-05-28 10:12:12 +08:00
David Čermák
e1ce31483d Merge branch 'bugfix/ws_client_fragmented_send_v4.1' into 'release/v4.1'
ws_client: fix fragmented send setting proper opcodes (v4.1)

See merge request espressif/esp-idf!8690
2020-05-28 01:27:41 +08:00
Piyush Shah
492cece316 esp_http_server: Fixed a bug which could cause issues with LRU purge
LRU counter should be started from 1, and not 0, so that all checks
work fine.

Closes https://github.com/espressif/esp-idf/issues/4753
2020-05-27 10:56:22 +00:00
Mahavir Jain
55b56a1557 Merge branch 'bugfix/coap_component_build_issue_v4.1' into 'release/v4.1'
coap: move mbedTLS config options from component to examples (v4.1)

See merge request espressif/esp-idf!8929
2020-05-27 18:41:53 +08:00
lly
2f73d76768 ble_mesh: Transport tx fields overflow [Zephyr]
The transport segmented TX nack and seg_pending fields must be at least
6 bits to avoid overflow for 32 segment messages. This change rearranges
the seg_tx fields to gather all state flag fields in one byte, while
making the counter fields whole bytes.
2020-05-27 17:46:29 +08:00
lly
63c8dd2981 ble_mesh: Friend with unknown appkey [Zephyr]
Ensures that friend messages are enqueued, even if the packet is
received with an appkey is unknown to the friend. Previously, sdu_recv
would return EINVAL if the appkey was unknown, which would prevent the
lower transport layer from adding the packet to the friend queue. This
is irrelevant for the logic in lower transport, and should not be
returned as an error.
2020-05-27 17:46:23 +08:00
Krzysztof Budzynski
a02a782ee9 Merge branch 'doc/add_types_api_ref_v4.1' into 'release/v4.1'
doc: add peripheral_types.h as API reference for peripheral docs (v4.1)

See merge request espressif/esp-idf!8895
2020-05-27 17:44:30 +08:00
lly
0c06be9bcd ble_mesh: Not using pre-initialized private key 2020-05-27 17:39:50 +08:00
lly
d3921346a9 ble_mesh: Same func for storing/restoring comp data 2020-05-27 17:30:31 +08:00
Island
c3d33f4232 Merge branch 'bugfix/ble_mesh_uses_deprecated_config_v4.1' into 'release/v4.1'
ble_mesh: Fix using old config for duplicate scan (v4.1)

See merge request espressif/esp-idf!8900
2020-05-27 17:24:13 +08:00
Angus Gratton
ad4dfed632 ci: Don't push to Github or deploy docs on customized pipelines
BOT_TRIGGER_WITH_LABEL must be empty (meaning all tests are running).
2020-05-27 19:05:02 +10:00
Michael (XIAO Xufeng)
4a8effcbb9 ci: increase unit test job count 2020-05-27 15:09:50 +08:00
Michael (XIAO Xufeng)
d2666545d1 spi: simplify the caps header 2020-05-27 15:09:50 +08:00
Michael (XIAO Xufeng)
6f410cb7c4 spi_flash: add unit test for read/write performance 2020-05-27 15:09:49 +08:00
Michael (XIAO Xufeng)
8df1369d0a esp_flash: fix the write performance regression
Also changed internal delay unit into microsecond.
2020-05-27 15:09:49 +08:00
Marius Vikhammer
7d3d56ff9a doc: add peripheral_types.h as API reference for peripheral docs
Closes DOC-136
Closes IDF-1673
2020-05-27 12:38:38 +08:00
Mahavir Jain
edb84c19dd coap: move mbedTLS config options from component to examples
CoAP component relies on some mbedTLS crypto configuration
options, e.g. DTLS and PSK. These configuration options if
selected, have footprint impact on generic TLS examples like
https_request or https_ota as well.

Footprint of https_request example with/without change is per below:

$ ./tools/idf_size.py new_https_request.map --diff old_https_request.map

<CURRENT> MAP file: new_https_request.map
<REFERENCE> MAP file: old_https_request.map
Difference is counted as <CURRENT> - <REFERENCE>, i.e. a positive number means that <CURRENT> is larger.
Total sizes of <CURRENT>:                                                 <REFERENCE>     Difference
 DRAM .data size:   14796 bytes                                                 14796
 DRAM .bss  size:   23560 bytes                                                 23680           -120
Used static DRAM:   38356 bytes ( 142380 available, 21.2% used)                 38476           -120 (   +120 available,      +0 total)
Used static IRAM:   89045 bytes (  42027 available, 67.9% used)                 89045                (     +0 available,      +0 total)
      Flash code:  554231 bytes                                                563823          -9592
    Flash rodata:  179000 bytes                                                181224          -2224
Total image size:~ 860632 bytes (.bin may be padded larger)                    872568         -11936

This commit moves relevant config options to CoAP specific examples
and also adds some run time warnings if they are kept disabled.

Closes https://github.com/espressif/esp-idf/issues/5262
2020-05-26 20:05:33 +05:30
lly
3b89497b39 ble_mesh: Fix using old config for duplicate scan 2020-05-25 16:53:30 +08:00
xueyunfei
841aba8948 add LINGER to menuconfig 2020-05-25 11:36:05 +08:00
Jiang Jiang Jian
84b51781c8 Merge branch 'bugfix/espnow_fetch_peer_crash_v4.1' into 'release/v4.1'
wifi: fix the crash issue when fetch peer after delete cur_peer (backport v4.1)

See merge request espressif/esp-idf!8824
2020-05-22 23:10:48 +08:00
Jiang Jiang Jian
58f0a94cdf Merge branch 'bugfix/fix_memleak_in_wpa3_feature_v4.1' into 'release/v4.1'
fix(wpa_supplicant): fix memleak in wpa3 feature(backport v4.1)

See merge request espressif/esp-idf!8656
2020-05-22 21:23:43 +08:00
Island
3cfd7eebd1 Merge branch 'example/ble_mesh_structural_adjust_v4.1' into 'release/v4.1'
Example/ble mesh structural adjust (v4.1)

See merge request espressif/esp-idf!8856
2020-05-22 19:15:57 +08:00
Island
4775176d7f Merge branch 'bugfix/ble_mesh_provisioner_fail_to_pub_v4.1' into 'release/v4.1'
ble_mesh: Fix Provisioner failed to publish (v4.1)

See merge request espressif/esp-idf!8873
2020-05-22 19:14:14 +08:00
lly
eeff638c97 ble_mesh: Fix Provisioner failed to publish 2020-05-22 15:47:40 +08:00
David Cermak
ca01e8698f ws_client: fix fragmented send setting proper opcodes
Previous implementation violated the RFC by having both the actual opcode and WS_FIN flag set for all fragments of a message.
Fixed by setting the opcode only for the first fragment and WS_FIN for the last one

Closes IDFGH-2938
Closes https://github.com/espressif/esp-idf/issues/4974
2020-05-22 06:14:48 +00:00
Angus Gratton
db7e28b8c7 Merge branch 'bugfix/doc_version_links_v4.1' into 'release/v4.1'
doc: Fix broken Release page links when building a stable version (v4.1)

See merge request espressif/esp-idf!8820
2020-05-22 13:59:27 +08:00
lly
13537ce279 ble_mesh: Fix tutorial links in examples README.md 2020-05-22 05:43:57 +00:00
lly
cc187a43b3 ble_mesh: Rename esp_fast_prov_* to ble_mesh_fast_prov_* 2020-05-22 05:43:57 +00:00
lly
b4588f7d92 ble_mesh: Rename the folders ble_mesh_fast_prov_* to fast_prov_* 2020-05-22 05:43:57 +00:00
lly
59b313fdcf ble_mesh: Rename ble mesh example main & init files
- Rename ble_mesh_demo_main.c to main.c
- Rename ble_mesh_demo_init.* to ble_mesh_example_init.*
2020-05-22 05:43:57 +00:00
lly
74056dea91 ble_mesh: Move the example init to the common_components 2020-05-22 05:43:57 +00:00
lly
2eadacbf29 ble_mesh: Move the button component to common_components 2020-05-22 05:43:57 +00:00
lly
3c32f5a726 ble_mesh: Change the EXTRA_COMPONENT_DIRS used by examples 2020-05-22 05:43:57 +00:00
lly
55cd9206d5 ble_mesh: Rename common_vendor_models to common_components
Since the scripts of CI will bypass common_components when
trying to get ALL_EXAMPLES, and these BLE Mesh components
will only be used by other mesh examples, i.e. no need to
be compiled as a single example, so we rename the folder
to common_componnets.
2020-05-22 05:43:57 +00:00
zhangyanjiao
80412dfbb8 wifi: fix the crash issue when fetch peer after delete cur_peer 2020-05-22 11:04:46 +08:00
Island
502a2aed2a Merge branch 'bugfix/ble_mesh_friend_init_flag_v4.1' into 'release/v4.1'
Bugfix/ble mesh friend init flag (v4.1)

See merge request espressif/esp-idf!8848
2020-05-22 10:51:13 +08:00
Island
d075bcab98 Merge branch 'doc/ble_mesh_fix_v4.1' into 'release/v4.1'
ble_mesh: Doc miscellaneous fixes (v4.1)

See merge request espressif/esp-idf!8858
2020-05-22 10:49:53 +08:00
lly
88f6e2b60d ble_mesh: Doc miscellaneous fixes
- Update ble mesh architecture
2020-05-21 17:46:28 +08:00
Island
e789d85e69 Merge branch 'bugfix/ble_mesh_node_old_version_to_new_v4.1' into 'release/v4.1'
ble_mesh: Fix mesh node device role restore (v4.1)

See merge request espressif/esp-idf!8724
2020-05-21 15:10:48 +08:00
Island
eb8f6f942a Merge branch 'bugfix/ble_mesh_fix_typos_v4.1' into 'release/v4.1'
ble_mesh: Fix typos (v4.1)

See merge request espressif/esp-idf!8726
2020-05-21 15:10:10 +08:00
lly
715cb64288 ble_mesh: Clear two more vars during proxy server deinit 2020-05-21 14:26:05 +08:00
lly
52fa4c7f96 ble_mesh: Add missing sdkconfig.h 2020-05-21 14:26:05 +08:00
lly
f02d095ff1 ble_mesh: Init device name during proxy server init
Device name will be reset when deinit mesh stack. If not
initializing device name during the next mesh stack init,
it will fail to set the device name when using bluedroid.
2020-05-21 14:26:04 +08:00
lly
ab73b3fd8e ble_mesh: Add init flag for friend init/deinit
Since bt_mesh_friend_init() will only be invoked when
a device is provisioned or Provisioner is enabled, so
we add a flag to indicate if the friend functionality
is initialized in case deinit before initialization.
2020-05-21 14:26:04 +08:00
Island
dc4cd3ae7c Merge branch 'bugfix/ble_mesh_remove_patch_v4.1' into 'release/v4.1'
ble_mesh: Remove patch for the bug of an App (v4.1)

See merge request espressif/esp-idf!8779
2020-05-21 11:47:06 +08:00
Prasad Alatkar
3db186d5d1 NimBLE: Include upstream fixes and use macros for log level filtering (backport v4.1)
Change list:
- Reduces the size of the compiled binary, PR: https://github.com/espressif/esp-nimble/pull/6
- Null pointer check, PR: https://github.com/apache/mynewt-nimble/pull/701
- Pairing procedure abort on unexpected req: https://github.com/apache/mynewt-nimble/pull/710
- Fix conn flags after pairing: https://github.com/apache/mynewt-nimble/pull/730
- Remove notification for update process timeout (Vol 6, Part B, section 5.2 ):
  https://github.com/apache/mynewt-nimble/pull/782
- CCCD fix : https://github.com/apache/mynewt-nimble/pull/790 and
  https://github.com/apache/mynewt-nimble/pull/804
- Host based Privacy (RPA) fix: https://github.com/espressif/esp-nimble/pull/7

 Closes https://github.com/espressif/esp-nimble/issues/10

 Closes https://github.com/espressif/esp-idf/issues/4413
2020-05-20 16:09:02 +05:30
Jiang Jiang Jian
db3d03f9ac Merge branch 'bugfix/wpa3_pmf_memleak_fix_v4.1' into 'release/v4.1'
WPA3 / PMF memory leak fixes (backport v4.1)

See merge request espressif/esp-idf!8695
2020-05-20 11:36:41 +08:00
Angus Gratton
4a42368603 doc: Fix broken Release page links when building a stable version 2020-05-20 11:30:17 +10:00
Ivan Grokhotkov
db0897705f Merge branch 'ci/disable_esp32s2beta_jobs' into 'release/v4.1'
CI: disable esp32s2beta jobs

See merge request espressif/esp-idf!8489
2020-05-20 02:06:00 +08:00
Nachiket Kukade
276cbb69f3 wpa_supplicant: Fix memory leaks in WPA3 connection
1. Buffers for SAE messages are not freed after the handshake.
   This causes memory leak, free buffers after SAE handshake.
2. SAE global data is not freed until the next WPA3 connection
   takes place, holding up heap space without reason. Free theis
   data after SAE handshake is complete or event fails.
3. Update wifi lib which includes memory leak fix during BIP
   encryption/decryption operations.
2020-05-18 15:46:32 +05:30
Nachiket Kukade
c973bea7d1 wpa_supplicant: Fix formatting of file esp_wpa3.c
Replace tabs with spaces in esp_wpa3.c.
2020-05-18 15:45:34 +05:30
Angus Gratton
6191429df5 confserver: Always store hex values in sdkconfig with 0x prefix
This is not necessary for correct behaviour or to have valid sdkconfig files
(previous commit adds tests for this), but it's useful for consistency with
sdkconfig files generated by menuconfig.

As reported in https://github.com/espressif/vscode-esp-idf-extension/issues/83
2020-05-18 17:02:15 +10:00
Angus Gratton
5a1848a5a6 kconfig: Fix generation of hex outputs for Make & CMake
And add tests for hex output formatting in all output formats.

Previously, Make & CMake outputs only formatted hex values with the 0x prefix
if they had the 0x prefix in the sdkconfig file. Now this prefix is always
applied.

Closes https://github.com/espressif/vscode-esp-idf-extension/issues/83
2020-05-18 17:01:45 +10:00
Michael (XIAO Xufeng)
e9d4659175 Merge branch 'bugfix/erase_with_vtaskdelay_v4.1' into 'release/v4.1'
spi_flash: Add vTaskDelay while a long erasing (v4.1)

See merge request espressif/esp-idf!8598
2020-05-18 11:01:50 +08:00
Jiang Jiang Jian
0266ad95d7 Merge branch 'bugfix/fix_switch_channel_without_discon_issue_v4.1' into 'release/v4.1'
esp_wifi: Fix AP switch to adjacent channel without disconnect (backport v4.1)

See merge request espressif/esp-idf!8723
2020-05-17 15:01:23 +08:00
David Čermák
19163393a9 Merge branch 'bugfix/stop_mac_can_be_controlled_by_user_v4.1' into 'release/v4.1'
Bugfix/stop mac can be controlled by user v4.1

See merge request espressif/esp-idf!8761
2020-05-16 03:28:33 +08:00
lly
9d587eb8fd ble_mesh: Remove patch for the bug of an App 2020-05-15 20:23:48 +08:00
David Čermák
32e20304a7 Merge branch 'bugfix/ipv6_examples_4.1' into 'release/v4.1'
socket-examples: IPv6 related update for examples to set correct scoped id (v4.1)

See merge request espressif/esp-idf!8583
2020-05-15 13:58:42 +08:00
Jiang Jiang Jian
1cfeb8be7f Merge branch 'feature/enable_wpa3_pmf_by_default_v4.1' into 'release/v4.1'
Enable WPA3 & PMF by default (backport v4.1)

See merge request espressif/esp-idf!8601
2020-05-15 11:46:20 +08:00
morris
222ac1dd60 ethernet: fix potential task watch dog timeout 2020-05-14 22:07:06 +08:00
morris
63dae58176 ethernet: better control start/stop/uninstall/install 2020-05-14 22:07:00 +08:00
morris
e07023b9c7 ethernet: esp_eth_stop API should stop emac hardware 2020-05-14 22:06:54 +08:00
xiehang
ddae67f50f esp_wifi: Fix AP switch to adjacent channel without disconnect 2020-05-14 03:55:09 +00:00
Hrishikesh Dhayagude
c595429db0 Add NimBLE config options in sdkconfig.rename 2020-05-14 11:30:35 +10:00
lly
b929611d5d ble_mesh: Fix typos 2020-05-13 18:30:52 +08:00
lly
e9f64eb1c3 ble_mesh: Fix mesh node device role restore
Old version of BLE Mesh has no device role storage, because
previously we only support storing mesh node info.
If the binary of the node is upgraded from old version to a
new version (support storing provisioner info), the mesh info
of the node will not be restored because mesh role does not
exist in the flash.
2020-05-13 18:25:53 +08:00
Island
56c1646e2a Merge branch 'bugfix/sync_zephyr_bt_mesh_bugfix_v4.1' into 'release/v4.1'
Bugfix/sync zephyr bt mesh bugfix (v4.1)

See merge request espressif/esp-idf!8688
2020-05-13 18:15:37 +08:00
Island
204553ec6c Merge branch 'bugfix/ble_mesh_not_ignore_msg_in_fast_prov_v4.1' into 'release/v4.1'
ble_mesh: Not ignore msg when fast prov is enabled (v4.1)

See merge request espressif/esp-idf!8710
2020-05-13 18:15:06 +08:00
David Cermak
87141efd1e socket-examples: IPv6 related update for examples to set correct scoped id
The scope id must be present when connecting to IPv6 Local Link
address.
2020-05-13 08:18:03 +00:00
fuzhibo
260d6f83b7 driver(adc): fix adc io init bug 2020-05-13 11:48:55 +08:00
Angus Gratton
8860c1b94c Merge branch 'feature/ldgen_output_determinism_v4.1' into 'release/v4.1'
ldgen: determinism in mapping rule order (v4.1)

See merge request espressif/esp-idf!8661
2020-05-13 11:30:32 +08:00
lly
31b164ccb1 ble_mesh: Not ignore msg when fast prov is enabled
When fast provisioning is enabled, Provisioner shall not
ignore messages from the nodes whose addresses are not in
the provisioning database. Because other nodes which are
not provisioned by the Primary Provisioner will send node
address messages to the Primary Provisioner.
2020-05-13 10:09:04 +08:00
Jiang Jiang Jian
c96ce01d87 Merge branch 'bugfix/supplicant_general_fixes_41' into 'release/v4.1'
wpa_supplicant: Fix some memleaks and invalid memory access (backport v4.1)

See merge request espressif/esp-idf!8555
2020-05-12 20:28:45 +08:00
Mahavir Jain
97f72da56e Merge branch 'bugfix/pthread_tcb_cleanup_wrapper_v4.1' into 'release/v4.1'
Fix linking for vPortCleanUpTCB wrapper (v4.1)

See merge request espressif/esp-idf!8701
2020-05-12 14:18:13 +08:00
Shubham Kulkarni
3e93b8fed9 pthread: Use INTERFACE in target_link_libraries for vPortCleanUpTCB wrapper 2020-05-12 10:35:27 +05:30
lly
295a9eea82 ble_mesh: Fix not update prov addr in fast prov
When using fast provisioning, the Provisioner functionality
will be enabled. Unicast addresses within the pre-allocated
range will be used for provisioning nodes. And during the
address assignment, the allocated unicast address will be
checked that if it's duplicated with other nodes addresses
and the Provisioner's own addresses.
So before starting using fast provisioning, we need to update
the Provisioner address.
2020-05-11 15:42:58 +08:00
lly
06d445759a ble_mesh: net_key_status only pull one key idx [Zephyr]
Fixes bug where the config client's net_key_status handler would attempt
to pull two key indexes from a message which only holds one.
2020-05-11 15:42:57 +08:00
lly
b1efdd5eb1 ble_mesh: Update client message timeout calculation
Since the behavior of sending segmented messages has been
changed properly, the calculation of timeout value which
will be used when sending an acknowledged message by a
client model also needs to be updated.
2020-05-11 15:42:57 +08:00
lly
42ccb7277f ble_mesh: Add lock for segmented msg operations
Add mutex to protect some variables of the mesh segmented
messages.
Currently the timeout handler of mesh will be executed in
the btc task, while the received mesh messages will be
handled in the btu task. In case some variables are set to
NULL when handled in the btu task, meanwhile these variables
are also accessed in the timeout handler, so we add mutex to
protect these variables and related operations.
2020-05-11 15:42:57 +08:00
lly
cffbc32253 ble_mesh: Fix dereferencing pointer before checking for NULL [Zephyr]
The publication context is checked for NULL in bt_mesh_model_publish()
however it was dereferenced before that. Move the assignment to
ctx.send_rel to the same place where other ctx members are set.
2020-05-11 15:42:56 +08:00
lly
8f5564af84 ble_mesh: Optimize some mesh log output 2020-05-11 15:42:56 +08:00
lly
6a6bac2c62 ble_mesh: Fix restore when revoke keys [Zephyr]
Store keys (NetKey and AppKey) again after revoking.
2020-05-11 15:42:55 +08:00
lly
526f253b2e ble_mesh: Spit mesh_util.h into different header files
Split mesh_util.h into mesh_byteorder.h, mesh_compiler.h,
mesh_ffs.h and mesh_util.h based on the classification of
Zephyr, which will make further porting more clear.
2020-05-11 15:42:55 +08:00
lly
2f40c4449f ble_mesh: Split mesh os related into a separate file 2020-05-11 15:42:54 +08:00
lly
8ab29292ab ble_mesh: Split mesh mutex into a separate file 2020-05-11 15:42:54 +08:00
lly
9af8947e55 ble_mesh: Rename mesh_kernel.* to mesh_timer.* 2020-05-11 15:42:53 +08:00
lly
800cb0fff8 ble_mesh: Add and use transport macro definitions [Zephyr] 2020-05-11 15:42:53 +08:00
lly
362e8e0a1f ble_mesh: Friend SeqAuth cleanup [Zephyr]
The Friend queue uses the message SeqAuth to determine whether the
message is already in the queue. To facilitate this, the SeqAuth is
passed around as a pointer throughout the transport modules. In the
bt_mesh_ctl_send functions, this parameter is also exposed in the API,
but the internal usage is inconsistent and buggy. Also, no one actually
uses this parameter.

- Removes seq_auth param from bt_mesh_ctl_send, instead passing NULL
  directly to the friend module, to enforce its addition to the queue.
- Makes the seq_auth pointer const throughout the friend module.
2020-05-11 15:42:52 +08:00
lly
de648753b0 ble_mesh: Rework msg_cache [Zephyr]
Changes the behavior of the message cache to optimize for cache
capacity. Previously, the message cache's primary function was to avoid
decrypting messages multiple times, although the cache's main function
in the spec is to avoid message rebroadcasting. Optimizing for minimal
decryption causes us to fill the network cache faster, which in turn
causes more cache misses, potentially outweighing the advantage.

Now stores src + seq in message cache instead of field hash value. This
cuts cache size in two, while including more of the sequence number than
before.

Adds messages to the cache only after the packet is successfully
decrypted. This reduces noise in the cache, and ensures that no
invalid deobfuscations are added.

Additionally, this fixes a bug where multiple calls to net_decrypt with
the same packet failed, as the message cache found its own entry from
the previous call.
2020-05-11 15:42:52 +08:00
lly
aed5dc63b7 ble_mesh: Segmented TX to groups [Zephyr]
Implements several changes to the transport layer segmented tx to
improve group message performance:
- Moves retransmit counter to tx context instead of per packet. As every
  unacked packet is sent every retransmit, the retransmit counters would
  be the same in each segment. This makes it easier to control progress.
- Delays the scheduling of the retransmit until the completion of the
  last segment by adding a seg_pending counter. This is essentially the
  same as the old behavior, except that the old behavior might retrigger
  the sending before all segments are finished if the advertising is
  slow.
- Allows the group transmits to stop as soon as all retransmits have
  been exhausted, instead of timing out waiting for acks that won't
  come. This allows group tx to finish without error.
- Fixes a bug where a failed TX would block IV update.
- Cancels any pending transmissions of acked segments.
- Reduces log level for several common group tx scenarios that aren't
  erronous.
2020-05-11 15:42:51 +08:00
lly
21c5be311c ble_mesh: Add comment explaining use of byte order [Zephyr]
Add comment that explains why a different byte order is used for the
3-byte opcode on the CID part of the opcode.
2020-05-11 15:42:51 +08:00
lly
0a41241e10 ble_mesh: Use 24-bit functions [Zephyr]
Use 24-bit functions for byteorder and net_buf in order to make the
byteorder used more readable.
2020-05-11 15:42:50 +08:00
lly
e3472c1c99 ble_mesh: Optimize net_buf_simple routines [Zephyr]
Use sys_put_xyz() helpers instead of memcpy() whenever possible. This
brings in straight-line inline code for pushes and adds of known,
small sizes.
2020-05-11 15:42:50 +08:00
lly
175109d196 ble_mesh: Add PRIu64 & PRIx64 in mesh_types.h 2020-05-11 15:42:49 +08:00
lly
61d376109c ble_mesh: Add push functions for supported bit-variants [Zephyr]
Add push functions for bit-widths supported by add and pull functions.
2020-05-11 15:42:49 +08:00
lly
fd4b6fd47e ble_mesh: Add support for 64 bit data type [Zephyr]
This enables pulling and pushing values in 64 bit format.
2020-05-11 15:42:48 +08:00
lly
b348b55d1e ble_mesh: Add support for 48 bit data type [Zephyr]
This enables pulling and pushing values in 48 bit format.
2020-05-11 15:42:48 +08:00
lly
82a5b05948 ble_mesh: Add 48 bit variants [Zephyr]
This adds sys_*_*48 functions that operation on a 48 bits values.
2020-05-11 15:42:46 +08:00
lly
95718d9ef9 ble_mesh: Add support for 24 bit data type [Zephyr]
This enables pulling and pushing values in 24 bit format.
2020-05-11 15:42:46 +08:00
lly
33c0ddce40 ble_mesh: Add 24 bit variants [Zephyr]
This adds sys_*_*24 functions that operation on a 24 bits values.
2020-05-11 15:42:45 +08:00
lly
bf4b513e83 ble_mesh: Group resends in proxy nodes [Zephyr]
Resend transport segments for groups on the advertiser interface, even
if a connected proxy node holds the group.
2020-05-11 15:42:45 +08:00
lly
91fff8c897 ble_mesh: Typo in condition in comp_add_elem of cfg_srv [Zephyr]
Vendor model IDs take up four (not two) bytes in the composition
2020-05-11 15:42:45 +08:00
lly
7ea60199a6 ble_mesh: GATT Proxy Spec 1.0.1 changes [Zephyr]
Backport of https://github.com/apache/mynewt-nimble/pull/724

Mesh spec 1.0.1 changes proxy disabling behavior to only affect the
relaying from proxy nodes. Previously, disabling proxy would shut down
all proxy and node activity.

Tweaks from the original commit:
- Removed redundant call to bt_mesh_adv_update() in gatt_proxy_set()
- Removed invalid ref to 4.2.11.1 in node_identity_set()

---

According to Mesh Profile Spec 1.0.1, Section 4.2.11:
"If the Proxy feature is disabled, a GATT client device can connect
over GATT to that node for configuration and control. Messages from
the GATT bearer are not relayed to the advertising bearer."

Moreover some notes have been removed from the spec compared to
version 1.0:

Mesh Profile Spec 1.0, Section 4.2.11:

"Upon transition from GATT Proxy state 0x01 to GATT Proxy state 0x00
the GATT Bearer Server shall disconnect all GATT Bearer Clients."

"The Configuration Client should turn off the Proxy state as the last
step in the configuration process."

Mesh Profile Spec 1.0, Section 4.2.11.1:

"When the GATT Proxy state is set to 0x00, the Node Identity state
for all subnets shall be set to 0x00 and shall not be changed."
2020-05-11 15:42:44 +08:00
lly
2b84b673bf ble_mesh: Support reliable sending when publishing [Zephyr]
Until now the choice of reliable sending (segmented messages with
acks) was implicitly dependent on the size of the payload. Add a new
member to the bt_mesh_model_pub to force using segment acks even when
the payload would fit a single unsegmented message.
2020-05-11 15:42:44 +08:00
lly
c2e24e306f ble_mesh: Check device uuid when init provisioning 2020-05-11 15:42:43 +08:00
lly
a85459e245 ble_mesh: Fix provisioning buffer initialization [Zephyr]
When PB-GATT support has been enabled the provisioning code "borrows"
the buffer from the proxy code. However, the way that initialization
was happening the proxy buffers were initialized only after
provisioning initialization, resulting in a corrupted buffer with
buf->data pointing to NULL. Reorder the initialization calls so that
proxy is done first and provisioning only after it.
2020-05-11 15:42:43 +08:00
lly
a0434371b0 ble_mesh: Skip publish if update fails [Zephyr]
Allow models to skip a periodic publish interval by returning an error
from the publish update callback.

Previously, an error return from publish update would cancel periodic
publishing. This can't be recovered from, and as such, no valid model
implementation could return an error from this callback, and there was
no way to skip a periodic publish.
2020-05-11 15:42:42 +08:00
lly
1717c2face ble_mesh: Enable Segmented Control Messages [Zephyr]
The function bt_mesh_ctl_send() used to support maximum length of
11 bytes. The segmentation complies with the BLE Mesh Standard.
The ack is disabled in case of non unicast address.
2020-05-11 15:42:42 +08:00
Renz Bagaporo
ee0f8adaed ldgen: determinism in mapping rule order
This MR imposes some determinism in the mapping rule order in the output
file. For each section, the archives are arranged alphabetically
(ascending), and the mapping rules in each archive are arranged by
increasing specificity then alphabetically (ascending). The default
rules remain the very first rule for each section.
2020-05-08 20:48:43 +08:00
Zhang Jun Hao
949e7c6f85 fix(wpa_supplicant): fix memleak in wpa3 feature 2020-05-08 16:30:16 +08:00
Michael (XIAO Xufeng)
f14cdd5d3a Merge branch 'bugfix/timer_group_intr_enable_v4.1' into 'release/v4.1'
fix timer group intr enable (backport v4.1)

See merge request espressif/esp-idf!8529
2020-05-08 14:57:20 +08:00
Mahavir Jain
15daee9a0f Merge branch 'bugfix/wifi_prov_not_stopping_v4.1' into 'release/v4.1'
wifi_provisioning: Catch the Wi-Fi events even after Connection errors (v4.1)

See merge request espressif/esp-idf!8607
2020-05-06 22:28:06 +08:00
kapil.gupta
de85de7c51 wpa_supplicant: Fix some memleaks and invalid memory access
Add changes to fix issues reported in clang analyzer
2020-05-06 11:05:30 +00:00
Island
27ae9d3e2c Merge branch 'bugfix/ble_mesh_provisioner_check_key_v4.1' into 'release/v4.1'
ble_mesh: Check if appkey exist before deleting it (v4.1)

See merge request espressif/esp-idf!8621
2020-05-06 18:17:02 +08:00
Island
7db21de3b3 Merge branch 'bugfix/ble_mesh_compile_error_o2_v4.1' into 'release/v4.1'
ble_mesh: Fix compile error when -O2 (performance) is chosen (v4.1)

See merge request espressif/esp-idf!8616
2020-05-06 18:15:53 +08:00
Island
cec0f25484 Merge branch 'bugfix/ble_mesh_node_reset_erase_v4.1' into 'release/v4.1'
ble_mesh: Fix node not erase info completely (v4.1)

See merge request espressif/esp-idf!8622
2020-05-06 18:14:41 +08:00
David Čermák
f232b07e4e Merge branch 'feature/config_mqtt_task_prio_v4.1' into 'release/v4.1'
esp_mqtt:  configure task priority, esp_mqtt_abort_connection race condition, clenaup logs and docs (v4.1)

See merge request espressif/esp-idf!8472
2020-05-06 16:23:19 +08:00
lly
78b13034ef ble_mesh: Fix node not erase info completely
Previously only mesh node info is supported to be stored
in flash. So when trying to reset the node, we only need
to judge if the BLE_MESH_VALID flag is set.
Currently we support storing both node & Provisioner info
in flash, when trying to erase the node info from flash,
the BLE_MESH_NODE flag will be checked. So we need to set
bt_mesh.flags to 0 when all the erase operations are done.
2020-05-06 11:43:43 +08:00
lly
099bf88b2e ble_mesh: Check if appkey exist before deleting it 2020-05-06 11:40:20 +08:00
lly
466d450b4b ble_mesh: Add length check for some mesh operations 2020-05-06 11:26:33 +08:00
lly
a742255f8e ble_mesh: Fix compile error when -O2 (performance) is chosen 2020-05-06 11:26:25 +08:00
Island
dd89b2dc0d Merge branch 'bugfix/ble_mesh_rpl_list_size_v4.1' into 'release/v4.1'
ble_mesh: Associate replay protection list size with nodes count (v4.1)

See merge request espressif/esp-idf!8493
2020-05-06 11:15:21 +08:00
Island
654a3913eb Merge branch 'bugfix/ble_mesh_use_sdkconfig_ci_v4.1' into 'release/v4.1'
ble_mesh: Add bluedroid and nimble example configurations (v4.1)

See merge request espressif/esp-idf!8498
2020-05-06 11:13:43 +08:00
Island
fefa9b7fe9 Merge branch 'doc/ble_mesh_fixes_v4.1' into 'release/v4.1'
doc: Fix some ble mesh description (v4.1)

See merge request espressif/esp-idf!8502
2020-05-06 11:13:16 +08:00
Island
547fd926a9 Merge branch 'bugfix/ble_mesh_add_missing_cpp_v4.1' into 'release/v4.1'
ble_mesh: Add missing #ifdef __cplusplus (v4.1)

See merge request espressif/esp-idf!8505
2020-05-06 11:12:13 +08:00
Island
d6cbfc7f19 Merge branch 'feat/ble_mesh_sensor_model_example_v4.1' into 'release/v4.1'
ble_mesh: Add ble mesh sensor model examples (v4.1)

See merge request espressif/esp-idf!8507
2020-05-06 11:11:59 +08:00
Island
61405472e4 Merge branch 'bugfix/ble_mesh_time_scene_wrong_name_v4.1' into 'release/v4.1'
ble_mesh: Fix time scene wrong macro name (v4.1)

See merge request espressif/esp-idf!8510
2020-05-06 11:11:24 +08:00
Krzysztof Budzynski
541d8aef37 Merge branch 'bugfix/get_started_export_profile_v4.1' into 'release/v4.1'
docs: remove suggestion about running export.sh from .profile script (backport v4.1)

See merge request espressif/esp-idf!8613
2020-05-06 05:14:56 +08:00
Ivan Grokhotkov
f9bfc83295 docs: remove suggestion about running export.sh from .profile script
This was quite obviously a bad suggestion, and it seems that some
users have actually read the docs attentively enough to have followed
it. Replace be recommendation to create an alias.

Closes https://github.com/espressif/esp-idf/issues/3889
2020-05-05 21:34:00 +02:00
Piyush Shah
3fa198b8a2 wifi_provisioning: Catch the Wi-Fi events even after Connection errors
It was observed that after sending credentials, if the first
Wi-Fi conection attempt fails, the Wi-Fi provisioning managager
ignores subsequent Wi-Fi events. So, even if the device eventually
connects to the AP, the provisioning stays on indefinitely.

Changing a check so that subsequent events are also captured and
provisioning finishes successfully.
2020-05-05 22:09:18 +05:30
Angus Gratton
9778b163b1 Merge branch 'bugfix/fix_spi_flash_clock_config_error_v4.1' into 'release/v4.1'
flash: fix spi flash clock config error (backport v4.1)

See merge request espressif/esp-idf!8513
2020-05-05 11:31:11 +08:00
Nachiket Kukade
e006d21419 esp_wifi: Enable WPA3 & PMF by default
In wifi station example, set PMF(Protected Management Frames)
configuration to capable. Set WPA3 Feature in menuconfig enabled
by default. This will allow device to establish more secured
connection with AP's that support these protocols.
2020-05-04 17:37:56 +05:30
KonstantinKondrashov
4214179de1 spi_flash(new driver): Add a Kconfig option - Bypass a block erase and always do sector erase
Closes: IDF-1561
2020-05-04 17:16:33 +08:00
KonstantinKondrashov
5c98ff015e spi_flash(LEGACY_IMPL): Add a Kconfig option - Bypass a block erase and always do sector erase
Closes: IDF-1561
2020-05-04 17:16:33 +08:00
KonstantinKondrashov
b56c7d9066 spi_flash: Add into sim/stubs the esp_timer 2020-05-04 17:16:33 +08:00
KonstantinKondrashov
d67e764ef6 spi_flash(new driver): Add vTaskDelay while a long erasing 2020-05-04 17:16:33 +08:00
KonstantinKondrashov
1554fd3d8a spi_flash(LEGACY_IMPL): Add vTaskDelay while a long erasing
Added Kconfig options to enable yield operation during flash erase

Closes: https://github.com/espressif/esp-idf/issues/2083
Closes: https://github.com/espressif/esp-idf/issues/4916
Closes: IDFGH-261
2020-05-04 15:48:22 +08:00
David Cermak
0cd5e28bce mqtt: clenaup logs and docs, esp_mqtt_abort_connection race condition
esp_mqtt_abort_connection: Fixed an issue which could result in a race condition and subsequent crash

esp_mqtt: Change an error print to use ESP_LOGE instead of ESP_LOGI
Move Sending MQTT connect message log from Info to Debug level
docs: Makes clear that publish API could block
Change the message printed after MQTT connection failure
2020-05-04 07:48:20 +02:00
Simon Brélivet
c1cd396b95 esp_mqtt: add option to configure mqtt task priority.
Merges https://github.com/espressif/esp-idf/pull/4947
2020-05-04 07:45:24 +02:00
Krzysztof Budzynski
f7a2bfc873 Merge branch 'doc/openocd_security_features_v4.1' into 'release/v4.1'
doc: Add caveats about using JTAG debugging with hardware security features (v4.1)

See merge request espressif/esp-idf!8463
2020-05-04 03:10:02 +08:00
lly
4b1cbe87b3 ble_mesh: Fix client local parameters not initialized 2020-04-30 11:50:15 +00:00
lly
8b2291a718 ble_mesh: Continue node info restore even if failure happens
During BLE Mesh Provisioner initialization, the stack will restore
the nodes information if settings storage is enabled.
Previously when a failure happens (e.g. found the same uuid) during
the restore procedure, the information of the following nodes will
not be restored and error will be directly returned.
But this will introduce some problem with user experience, because
some newly provisioned nodes information will not be restored and
Provisioner will not be able to control those nodes.
So we change the operation here, when a failure happens during the
restore procedure, Provisioner will only ignore the information of
the current node and continue restoring other nodes information.
2020-04-30 11:50:15 +00:00
lly
fca4124f70 ble_mesh: Remove some redundant functions 2020-04-30 11:50:15 +00:00
lly
d35d765395 ble_mesh: Notify unprovisioned device beacon to application layer
With this change, if a Provisioner has provisioned the maximum
number of nodes, it can still report the unprovisioned device
beacon from other nodes to the application layer. And this will
be more reasonable compared with the previous implementation.
Previously when the node array of Provisioner is full, no beacon
from unprovisioned devices will be reported, only some warning
logs will be given.
2020-04-30 11:50:15 +00:00
lly
94092a148c ble_mesh: Check if assigned node address is duplicated
Previously only check the node address when it is assigned by the
application layer. Here we also check the address when the address
is allocated internally. And this will be useful when some mesh
internal tests are performed.
2020-04-30 11:50:15 +00:00
lly
68e8a7e0ba ble_mesh: Update next alloc address when node info is added 2020-04-30 11:50:15 +00:00
lly
62ac50f9d7 ble_mesh: Fix Provisioner provisioning deadlock 2020-04-30 11:50:15 +00:00
lly
fefd52f093 ble_mesh: Remove BLE_MESH_MAX_STORED_NODES option
Previously the BLE_MESH_MAX_STORED_NODES option is added for
internal mesh test, which will be a little confusing for the
users to understand.
Here we remove this option, instead the BLE_MESH_MAX_PROV_NODES
will be used for all the cases. For mesh internal test, when
the test function is called to add some nodes info, the info
will be stored in the array of provisioned nodes directly.
2020-04-30 11:50:15 +00:00
lly
7c379f8a65 ble_mesh: Associate replay protection list size with nodes count
The replay protection list of Provisioner should be at least equal
to the number of nodes with the precondition that each node contains
only one element.
The help information of replay protection list is updated, and the
maximum number of nodes for Provisioner is adjusted based on the
replay protection list size.
2020-04-30 11:50:15 +00:00
lly
fca858dd58 ble_mesh: Add bluedroid and nimble example configurations 2020-04-30 11:45:22 +00:00
lly
c28828d255 doc: Fix some ble mesh description 2020-04-30 11:43:26 +00:00
lly
d595793caa ble_mesh: Add ble mesh sensor model examples 2020-04-30 11:35:11 +00:00
lly
67eef52822 ble_mesh: Add some common macros for sensor model 2020-04-30 11:35:11 +00:00
lly
6f7acf6a21 ble_mesh: Allow empty sensor series column value 2020-04-30 11:35:11 +00:00
lly
df96c73471 ble_mesh: Check if same sensor (settings) property id exists 2020-04-30 11:35:11 +00:00
lly
3ceb5b3718 ble_mesh: Allow empty sensor settings exist 2020-04-30 11:35:11 +00:00
lly
d51bd36142 ble_mesh: Add missing #ifdef __cplusplus 2020-04-30 08:45:55 +00:00
Angus Gratton
bd01c359bd Merge branch 'bugfix/heap_psram_fill_v4.1' into 'release/v4.1'
heap: Only fill new heaps with FREE_FILL_PATTERN if Comprehensive poisoning is on (v4.1)

See merge request espressif/esp-idf!8490
2020-04-30 13:45:07 +08:00
Jiang Jiang Jian
c5cb44d813 Merge branch 'bugfix/fix_some_wifi_bugs_0427_v4.1' into 'release/v4.1'
wifi: backport some wifi fixes 0427 (v4.1)

See merge request espressif/esp-idf!8496
2020-04-29 23:39:58 +08:00
zhangyanjiao
43d8950682 wifi changes:
1. fix the bug for softAP update second channel wrong
2. change wifi_scan_time_t from union to struct
3. query country code wrong when policy change from manual to auto
2020-04-29 17:27:00 +08:00
Jiang Jiang Jian
d4e700e744 Merge branch 'bugfix/coex_fix_wifi_performance_when_ble_conn_v4.1' into 'release/v4.1'
Coexistence: Add coexist API to enable BLE connection dynamic priority

See merge request espressif/esp-idf!8467
2020-04-29 17:24:30 +08:00
baohongde
ddaa9d4523 Coexistence: Add coexist API to enable BLE connection dynamic priority 2020-04-29 13:57:59 +08:00
Angus Gratton
fadbfdadf4 Merge branch 'bugfix/make_to_cmake_msys_py3_v4.1' into 'release/v4.1'
tools: Make Unicode from subprocess result in the CMake convert script (v4.1)

See merge request espressif/esp-idf!8543
2020-04-29 13:44:10 +08:00
dowster
58044063dd Fix typo with sigmadelta.h #ifdef 2020-04-29 12:20:46 +08:00
morris
67f9448e71 fix broken CONFIG_LEGACY_INCLUDE_COMMON_HEADERS 2020-04-29 12:19:25 +08:00
morris
5b516b107a timer_group: update hal api && fix intr_enable
timer group interrupt enable is controled by level_int_ena instead of int_ena

Closes https://github.com/espressif/esp-idf/issues/5103
2020-04-29 12:19:25 +08:00
Jiang Jiang Jian
6366c20858 Merge branch 'bugfix/pmf_cert_fixes_backport_v4.1' into 'release/v4.1'
PMF cert fixes (backport v4.1)

See merge request espressif/esp-idf!8469
2020-04-29 11:58:49 +08:00
Nachiket Kukade
27ec86cd8e esp_wifi: Update wifi lib
Backports PMF Certification fixes -
1. Check return status of decrypt operation. Fixes 5.3.3.1.
2. Allow PMF negotiation for WPA2-Enterprise. Fixes 5.3.3.2, 5.3.3.4.
3. Add NULL check on key before encrypting PMF, fixes crash.

Closes WIFI-2251
2020-04-29 01:47:32 +00:00
Roland Dobai
3b3050b09f tools: Make Unicode from subprocess result in the CMake convert script
Fixes an issue with Python 3 in MSYS where it fails while trying to join
paths where one part is Unicode (default string on Python3) and the
second part are bytes (returned by the subprocess call).

Closes https://github.com/espressif/esp-idf/issues/5189
2020-04-28 15:22:07 +02:00
Jiang Jiang Jian
69c8d9211f Merge branch 'bugfix/supplicant_disable_tls_v1.2_backport_v4.1' into 'release/v4.1'
Disable TLS v1.2 (backport v4.1)

See merge request espressif/esp-idf!8536
2020-04-28 16:22:26 +08:00
Nachiket Kukade
6254bf443e wpa_supplicant: Disable TLSv1.2 by default
Some Enterprise Authentication Servers do not support TLS v1.2.
Move this option to Menuconfig and disable by default.
2020-04-28 10:46:59 +05:30
Jiang Jiang Jian
198953df8f Merge branch 'fixbug/tcp_kill_state_assert_for_v4.1' into 'release/v4.1'
lw-ip:fixbug for tcp kill state assert(backport 4.1)

See merge request espressif/esp-idf!8452
2020-04-28 11:43:37 +08:00
Jiang Jiang Jian
87fa7af6b7 Merge branch 'bugfix/pm_dump_locks_v4.1' into 'release/v4.1'
esp_pm: esp_pm_dump_locks: don't print from a critical section (backport v4.1)

See merge request espressif/esp-idf!8353
2020-04-28 11:41:21 +08:00
Michael (XIAO Xufeng)
e558b2237d Merge branch 'bugfix/mcpwm_period_error_v4.1' into 'release/v4.1'
bugfix(mcpwm_period_error): fix the issue of wrong period (backport v4.1)

See merge request espressif/esp-idf!7735
2020-04-27 18:06:15 +08:00
chenjianqiang
eb5bafeb65 flash: fix spi flash clock config error
Closes https://github.com/espressif/esp-idf/issues/5099
2020-04-27 16:56:58 +08:00
Jiang Jiang Jian
9a389162ab Merge branch 'fixbug/set_dhcp_time_fail_for_v4.1' into 'release/v4.1'
lw-ip:fixbug for set dhcp time fail for 4.1(backport4.1)

See merge request espressif/esp-idf!8426
2020-04-27 16:48:58 +08:00
lly
e6fc2a7bc8 ble_mesh: Fix time scene wrong macro name 2020-04-27 16:24:13 +08:00
Angus Gratton
2fb9cad1b4 doc: Add warnings about using JTAG debugging with hardware security features
This is related to the following issues but is not a fix, just documentation of a workaround until we can
improve the support:
https://github.com/espressif/esp-idf/issues/4878
https://github.com/espressif/esp-idf/issues/4734
2020-04-27 16:40:06 +10:00
Angus Gratton
13ef9cf4bc heap: Only fill new heaps with FREE_FILL_PATTERN if Comprehensive poisoning is on
Significantly speeds up heap initialization at startup when default "Light" heap
poisoning is enabled.

Tip via reddit user LinkeSeitentasche https://www.reddit.com/r/esp32/comments/fnj51a/a_guide_to_improving_esp32_boot_speed/
2020-04-27 16:32:24 +10:00
He Yin Ling
1229590a2c CI: disable unit test for ESP32S2Beta
* remove ESP32S2Beta UT configs
* remove ESP32S2Beta UT CI jobs
2020-04-27 14:02:47 +08:00
espressif
7d934dafb8 mcpwm: fix the issue of wrong period (backport v4.1) 2020-04-24 21:10:14 +08:00
Angus Gratton
6c9864ce86 Merge branch 'fix/ci_example_test_prov_v4.1' into 'release/v4.1'
CI: Fix prov example test exception handle (v4.1)

See merge request espressif/esp-idf!8439
2020-04-24 16:13:02 +08:00
Angus Gratton
4952b3baed Merge branch 'bugfix/ci_unterminated_sdkconfig_defaults_v4.1' into 'release/v4.1'
CI: Add EOL to sdkconfig.defaults before adding sdkconfig.ci (v4.1)

See merge request espressif/esp-idf!8456
2020-04-24 16:12:31 +08:00
Roland Dobai
ee234472c1 CI: Add EOL to sdkconfig.defaults before adding sdkconfig.ci 2020-04-23 16:54:16 +02:00
xueyunfei
c50952ebaf fixbug for tcp kill state assert 2020-04-23 15:58:29 +08:00
Angus Gratton
20085a0fcd Merge branch 'bugfix/ci_partition_table_detection_v4.1' into 'release/v4.1'
CI: Fix partition table detection if "partition" is in the project name (v4.1)

See merge request espressif/esp-idf!8431
2020-04-23 11:36:58 +08:00
Shivani Tipnis
19449289d0 CI: Fix prov example test cryptography package version exception handling 2020-04-23 00:47:41 +05:30
Roland Dobai
f5645cc9d8 CI: Fix partition table detection if "partition" is in the project name 2020-04-22 10:04:36 +02:00
xueyunfei
0c92ca5175 fixbug for set dhcp time fail for 4.1 2020-04-22 11:13:01 +08:00
Angus Gratton
a41bcacf31 Merge branch 'bugfix/ppp_enable_ipv6_v4.1' into 'release/v4.1'
esp-netif: make the IPv6 configurable for PPP netifs (v4.1)

See merge request espressif/esp-idf!8200
2020-04-21 12:36:00 +08:00
Angus Gratton
f4243de752 Merge branch 'bugfix/error_on_building_in_idf_path_v4.1' into 'release/v4.1'
cmake: Error out when building in IDF_PATH dir (v4.1)

See merge request espressif/esp-idf!8297
2020-04-20 15:04:33 +08:00
Angus Gratton
e9c6f119de Merge branch 'bugfix/make_system_using_rom_time_funcs_v4.1' into 'release/v4.1'
esp_rom: Fix esp32.rom.newlib-time.ld should includes all time ROM functions/data (v4.1)

See merge request espressif/esp-idf!8365
2020-04-17 14:14:13 +08:00
Angus Gratton
1ea008d22e Merge branch 'feature/add_rtc_xtal_cal_retry_option_v4.1' into 'release/v4.1'
esp32: Add a Kconfig option - Number of attempts to repeat 32k XTAL calibration (v4.1)

See merge request espressif/esp-idf!7931
2020-04-16 15:25:03 +08:00
Jiang Jiang Jian
585d53dfa8 Merge branch 'bugfix/fix_errors_with_mbedtls_disabled_v4.1' into 'release/v4.1'
wpa_supplicant: Fix compilation errors when USE_MBEDTLS is disabled. (v4.1)

See merge request espressif/esp-idf!8356
2020-04-16 14:59:35 +08:00
Jiang Jiang Jian
1f480f4570 Merge branch 'bugfix/fix_API_esp_wifi_stop_crash_issue_v4.1' into 'release/v4.1'
bugfix: fix esp_wifi_stop crash issue (backport v4.1)

See merge request espressif/esp-idf!8329
2020-04-16 14:58:00 +08:00
Angus Gratton
d10ad9a4b1 Merge branch 'bufgix/esp_ota_get_app_elf_sha256_v4.1' into 'release/v4.1'
app_update: Fix case when elf file SHA256 should be printed by panic handler while cache is disabled (v4.1)

See merge request espressif/esp-idf!8366
2020-04-16 14:32:21 +08:00
Angus Gratton
0effd9b257 Merge branch 'bugfix/efuse_get_coding_scheme_and_ut_v4.1' into 'release/v4.1'
efuse: Fix get_coding_scheme() using ESP_EARLY_LOG* instead of ESP_LOG* (v4.1)

See merge request espressif/esp-idf!8360
2020-04-16 14:29:12 +08:00
Marius Vikhammer
0c4e55e3bd app_update: fix test failure for get_app_elf_sha256 test
Commit fc03161f updated esp_ota_get_app_elf_sha256 to store and return
X number of bytes of the hash, but the test case still expected 64 bytes.

Updated test case to use CONFIG value for expected length.
2020-04-15 21:09:57 +08:00
KonstantinKondrashov
a2a71fc68f app_update: Fix case when elf file SHA256 should be printed by panic handler while cache is disabled
Closes: IDF-1342
2020-04-15 21:05:58 +08:00
KonstantinKondrashov
ae063d96c2 esp_rom: Fix esp32.rom.newlib-time.ld should includes all time ROM functions/data
- Added UT
Closes: https://github.com/espressif/esp-idf/issues/4925
2020-04-15 20:59:24 +08:00
KonstantinKondrashov
3948065c24 efuse: Using IDF_ENV_FPGA in UTs 2020-04-15 19:43:07 +08:00
KonstantinKondrashov
33eab40f2a efuse/esp32s2: Fix get_coding_scheme() when CONFIG_SECURE_FLASH_ENC_ENABLED and LOG_LEVEL is Debug 2020-04-15 19:36:47 +08:00
KonstantinKondrashov
f59ef5e6ef efuse/esp32: Fix get_coding_scheme() when CONFIG_SECURE_FLASH_ENC_ENABLED and LOG_LEVEL is Debug
Closes: https://github.com/espressif/esp-idf/issues/4862
2020-04-15 19:36:45 +08:00
Sagar Bijwe
b7ae3ff9bd wpa_supplicant: Fix compilation errors when USE_MBEDTLS is disabled.
This is a regression from earlier commit related to TLSV12 which used
sha functions that are currently declared static.
Solution: Follow upstream code structure and resolve the errors.
2020-04-15 15:33:59 +05:30
KonstantinKondrashov
a2a89fb95d esp32: Add a Kconfig option- Number of attempts to repeat 32k XTAL calibration
Closes: IDF-1479
2020-04-15 16:34:57 +08:00
Ivan Grokhotkov
ffe0cca423 esp_pm: esp_pm_dump_locks: don't print from a critical section
Closes https://github.com/espressif/esp-idf/issues/1917
2020-04-15 08:47:37 +02:00
Jiang Jiang Jian
b3410b9210 Merge branch 'bugfix/coredump_no_ext_stacks_v4.1' into 'release/v4.1'
core dump: don't allow core dumps to Flash if PSRAM is used for stacks (backport v4.1)

See merge request espressif/esp-idf!8228
2020-04-15 13:25:26 +08:00
Jiang Jiang Jian
b08b0f0949 Merge branch 'bugfix/psram_single_bit_error_v4.1' into 'release/v4.1'
psram: support psram 2T mode to fix single bit error (backport v4.1)

See merge request espressif/esp-idf!8327
2020-04-15 13:24:21 +08:00
Jiang Jiang Jian
f646cdd6a8 Merge branch 'nimble/fix_ble_hs_reset_v4.1' into 'release/v4.1'
NimBLE: Reset master and slave states on host reset and few minor fixes  (backport v4.1)

See merge request espressif/esp-idf!8216
2020-04-15 13:23:59 +08:00
Jiang Jiang Jian
445f727e7a Merge branch 'bugfix/fix_supplicant_tlsv12_v4.1' into 'release/v4.1'
wpa_supplicant: Fix wpa_supplicant TLS 1.2 issues (v4.1)

See merge request espressif/esp-idf!8202
2020-04-15 13:06:42 +08:00
Angus Gratton
e1562311bf Merge branch 'bugfix/logging_compilation_fix_anti_rollback_v4.1' into 'release/v4.1'
Minor fix logging issue hindering compilation on anti rollback. (v4.1)

See merge request espressif/esp-idf!8302
2020-04-14 16:36:29 +08:00
Sagar Bijwe
afc1362ea6 wpa_supplicant: Fix wpa_supplicant TLS 1.2 issues
1) Fixed compilation issues.
2) Added tlsprf.c from upstream
3) Enabled SHA256 in supplicant compilation.
2020-04-13 16:39:59 +00:00
Krzysztof Budzynski
5a09cfe70a Merge branch 'bugfix/uart_echo_readme_v4.1' into 'release/v4.1'
example: Remove duplicate commands and invalid serial port information (v4.1)

See merge request espressif/esp-idf!8335
2020-04-14 00:33:50 +08:00
Roland Dobai
858f4745fd example: Remove duplicate commands and invalid serial port information
Closes https://github.com/espressif/esp-idf/issues/5049
2020-04-13 15:16:11 +02:00
ronghulin
d880672076 bugfix: fix esp_wifi_stop crash issue 2020-04-13 16:05:48 +08:00
chenjianqiang
90a8945930 psram: support psram 2T mode to fix single bit error
1. add enable PSRAM 2T mode function
2. abort when himem and 2T mode are enabled meanwhile
3. set SPIRAM_2T_MODE as "n" by default, enable it when needed
2020-04-13 14:26:45 +08:00
Jiang Jiang Jian
34b9e6c677 Merge branch 'feat/ble_mesh_ble_adv_simultaneously_v4.1' into 'release/v4.1'
ble_mesh: Support BLE advertising simultaneously (v4.1)

See merge request espressif/esp-idf!8315
2020-04-10 21:07:19 +08:00
lly
1ac44aa202 ble_mesh: Support BLE advertising simultaneously 2020-04-10 17:34:06 +08:00
Island
7053737110 Merge branch 'bugfix/ble_mesh_add_test_function_v4.1' into 'release/v4.1'
ble_mesh: Add ble mesh white list test function (v4.1)

See merge request espressif/esp-idf!8158
2020-04-10 17:29:38 +08:00
Prasad Alatkar
acb92c225f NimBLE: Minor fix in esp_nimble_cfg and bleprph README (backport v4.1) 2020-04-09 16:05:14 +05:30
Prasad Alatkar
072d01da2f NimBLE: Reset master and slave states on host reset and fix build failure (backport v4.1) 2020-04-09 16:05:04 +05:30
Supreet Deshpande
87d68ebb98 Fixes logging issue hindering compilation on anti rollback. 2020-04-09 12:04:20 +05:30
lly
89f7e62011 ble_mesh: Add ble mesh white list test function
Using the ble mesh white list test functions, a node can choose to
only receive mesh messages from a specific node and relay the
messages for it. Messages from other nodes will be ignored.
2020-04-09 06:03:59 +00:00
Ivan Grokhotkov
4fe18a9258 Merge branch 'bugfix/IDFGH-2910_v4.1' into 'release/v4.1'
NVS: bugfix - iterator skipping version 1 blobs (v4.1)

See merge request espressif/esp-idf!8191
2020-04-09 05:45:49 +08:00
Ivan Grokhotkov
51c32997b1 Merge branch 'feature/idfpy_add_baud_parameter_to_monitor_v4.1' into 'release/v4.1'
idf.py: add monitor-baud option to monitor command (v4.1)

See merge request espressif/esp-idf!7458
2020-04-09 05:44:41 +08:00
Renz Bagaporo
40af109144 cmake: error out on building in IDF_PATH root dir 2020-04-08 19:51:35 +08:00
Mahavir Jain
ec5c123ef7 Merge branch 'bugfix/size_calculation_in_ota_v4.1' into 'release/v4.1'
Fix size calculation to erase partition range for OTA image (v4.1)

See merge request espressif/esp-idf!8266
2020-04-06 18:03:41 +08:00
Shubham Kulkarni
4573688862 esp_ota_ops.c: Fix size calculation to erase partition range for OTA image
Closes https://github.com/espressif/esp-idf/issues/4953
2020-04-06 13:39:01 +05:30
Ivan Grokhotkov
cd301cc324 core dump: don't allow core dumps to Flash if PSRAM is used for stacks
It is not possible to write to Flash when the stack is located in
PSRAM, and it is not possible to write PSRAM buffers into Flash when
malloc can not be used.
2020-04-02 23:43:20 +02:00
Jiang Jiang Jian
9a1c5a903f Merge branch 'bugfix/btdm_backports_v4.1_0328' into 'release/v4.1'
Bugfix/btdm backports v4.1 0328

See merge request espressif/esp-idf!8150
2020-04-02 22:47:49 +08:00
Sergei Silnov
655e201b1c idf.py: add monitor-baud option to monitor command 2020-04-01 15:11:20 +02:00
Jiang Jiang Jian
5e09d473c7 Merge branch 'bugfix/btdm_dont_dequeue_the_command_queue_v4.1' into 'release/v4.1'
component/bt: fix don't dequeue the command queue after process the read_by_type_req(backport v4.1)

See merge request espressif/esp-idf!8181
2020-04-01 19:06:55 +08:00
Anton Maklakov
bf7f40007a Merge branch 'ci/build_bootloader_configs_v4.1' into 'release/v4.1'
ci: Fix CI testing of bootloader configs (v4.1)

See merge request espressif/esp-idf!8195
2020-04-01 15:07:48 +08:00
David Cermak
a2c55e2c37 examples: common connect code to ignore GOT_IP6_EVENT if comes from unrelated netif 2020-04-01 08:52:55 +02:00
David Cermak
4b59f7e2c7 mdns: limit the GOT_IP6_EVENT to only known network interfaces 2020-04-01 08:52:54 +02:00
David Cermak
716298f8e3 esp-netif-ppp: support for posting GOT_IP event for IPv6 2020-04-01 08:52:54 +02:00
Francesco Giancane
38060c0b58 examples: pppos_client: update sdkconfig.defaults
As per discussion in #4782, IPV6 link local negotiation by default is
disabled.

Signed-off-by: Francesco Giancane <francesco.giancane@accenture.com>
2020-04-01 08:52:54 +02:00
Francesco Giancane
3c01f68a78 lwip: make IPV6 link-local support over PPP configurable
Make the link local negotiation for IPV6 in PPP optional and
configurable.
This is because some modems do not support the IPV6 negotiation and
sending IPV6CP frames would in some cases break the network
configuration phase, resulting in a timeout during the Phase Network.

Please note that this does not disable the IPV6 support for the outgoing
communication (IPV6 is still enabled even if this option is not
selected) but just for the local link between lwIP and modem.

Signed-off-by: Francesco Giancane <francesco.giancane@accenture.com>

Merges https://github.com/espressif/esp-idf/pull/4782
Closes https://github.com/espressif/esp-idf/issues/1065
2020-04-01 08:52:54 +02:00
Angus Gratton
a5bf353e3f Merge branch 'backport/malloc_zero_return_null_v4.1' into 'release/v4.1'
backport/malloc_zero_return_null_v4.1

See merge request espressif/esp-idf!8146
2020-04-01 14:41:33 +08:00
Angus Gratton
51b7247033 unit test app: Use the new config names for DEBUG/RELEASE configs
Also build the bootloader to the same config level as the app
2020-04-01 16:30:22 +11:00
Angus Gratton
52dcf1c180 ci: Build all bootloader configs when building the bootloader app
CI regression in 26efc5a6d0
2020-04-01 16:22:20 +11:00
Jakob Hasse
26379f7d3e NVS: bugfix - iterator skipping version 1 blobs
Closes https://github.com/espressif/esp-idf/issues/4954
2020-04-01 11:16:28 +08:00
Angus Gratton
8dc421c7e1 Merge branch 'bugfix/secure_boot_v2_wrdis_v4.1' into 'release/v4.1'
secure boot v2: esp32: Prevent read disabling additional efuses (v4.1)

See merge request espressif/esp-idf!8179
2020-04-01 10:53:06 +08:00
xiewenxiang
79590d2e21 component/bt: fix don't dequeue the command queue after process the read_by_type_req 2020-03-31 16:27:08 +08:00
Angus Gratton
c17d55eb9b esp32: Enable flash encryption by setting FLASH_CRYPT_CNT to max
Previous method was to write-protect this efuse, however on ECO3
the write protect field also covers the UART_DOWNLOAD_DIS efuse.

Doing it this way keeps the possibility of disabling UART download
mode, later.
2020-03-31 17:31:59 +11:00
Angus Gratton
7c34711c07 docs: secure boot v2: Add a note about maximum bootloader size 2020-03-31 17:31:58 +11:00
Angus Gratton
cf8dd62fc4 secure boot v2: esp32: Prevent read disabling additional efuses
Also reduce the number of eFuse write cycles during first boot when
Secure Boot and/or Flash Encryption are enabled.
2020-03-31 17:31:56 +11:00
Angus Gratton
f96d28172b Merge branch 'bugfix/monitor_encrypted_target_v4.1' into 'release/v4.1'
tools: Fix flashing encrypted binaries from IDF Monitor (v4.1)

See merge request espressif/esp-idf!8126
2020-03-31 13:09:55 +08:00
Jiang Jiang Jian
f538b63458 Merge branch 'bugfix/fix_airkiss_bug_v4.1' into 'release/v4.1'
fix the bug for Airkiss (backport  v4.1)

See merge request espressif/esp-idf!8121
2020-03-31 00:07:51 +08:00
Jiang Jiang Jian
6c7895fbac Merge branch 'bugfix/backport_some_wifi_bugs_0326_v4.1' into 'release/v4.1'
esp_wifi: backport some WiFi bugs 0326 (backport v4.1)

See merge request espressif/esp-idf!8149
2020-03-31 00:03:25 +08:00
baohongde
a8494b68e1 components/coex: Fix wakeup delay with DFS 2020-03-28 20:12:21 +08:00
liu zhifu
8367bc4571 esp_wifi: backport some WiFi bugs
1. Fix WiFi log print level
2. Optimize WiFi/BT coexist sleep
   - If any data tx/rx in WiFi slice, fore wakeup next TBTT
   - Increase active timeout time to coex TBTT interval to avoid sleep in WiFi slice
2020-03-28 18:13:31 +08:00
gengyuchao
374e9b32d4 bugfix/fix_controller_disable_re_enable_crash 2020-03-28 17:14:37 +08:00
Felipe Neves
7fdc9571ba multi_heap: ensure that malloc(0) return NULL pointer in any poisoning configuration 2020-03-27 14:27:45 -03:00
Mahavir Jain
f9f42a9d90 Merge branch 'fix/wifi_provisioning_uuid_v4.1' into 'release/v4.1'
Wifi_provisioning: Change service_uuid to non standard 128 bit UUID and add retries in test script (backport v4.1)

See merge request espressif/esp-idf!8081
2020-03-27 22:54:10 +08:00
Roland Dobai
820ed5c7f1 tools: Fix flashing encrypted binaries from IDF Monitor 2020-03-27 09:43:26 +01:00
Jiang Jiang Jian
69147fc4ec Merge branch 'feat/ble_mesh_vnd_model_example_v4.1' into 'release/v4.1'
Feat/ble mesh vnd model example (v4.1)

See merge request espressif/esp-idf!8001
2020-03-27 14:08:13 +08:00
zhangyanjiao
88f8f91d40 fix the bug for Airkiss
Closes https://github.com/espressif/esp-idf/issues/3362
2020-03-26 21:12:52 +08:00
Angus Gratton
06337f1034 Merge branch 'bugfix/cmake_bugfixes_v4.1' into 'release/v4.1'
CMake-related bugfixes (v4.1)

See merge request espressif/esp-idf!8067
2020-03-26 16:29:55 +08:00
Prasad Alatkar
40f66c3117 Wifi_provisioning_mgr_test: Allow three attempts to connect to AP before concluding provisioning failure 2020-03-26 05:04:52 +00:00
Prasad Alatkar
db1111ef79 Wifi_provisioning_ble: Change service_uuid to non standard 128 bit UUID
- Modifies UUIDs in scheme_ble, manager example and esp_prov tool to custom 128
  bit UUID
2020-03-26 05:04:52 +00:00
Jiang Jiang Jian
dbaf0f1e93 Merge branch 'bugfix/backport_some_wifi_bugs_0323_v4.1' into 'release/v4.1'
esp_wifi: Backport some wifi bugs 0323 (backport v4.1)

See merge request espressif/esp-idf!8086
2020-03-25 15:11:32 +08:00
Jiang Jiang Jian
906280e767 Merge branch 'optimization/TCPv6_connect_for_v4.1' into 'release/v4.1'
lw-ip:optimization TCPv6 connect for 4.1

See merge request espressif/esp-idf!8048
2020-03-24 15:25:27 +08:00
xiehang
55abe2eba8 esp_wifi: Fix ESP32S2 wifi log not printing 2020-03-24 15:05:05 +08:00
xiehang
fbe215f3c0 esp_wifi: backport some wifi bugs 0323
1.Reduce wifi bin size
2.Add TX packets size check
3.Fix scan get rssi error
4.Return fail when setting AP's channel out of range
2020-03-24 15:05:00 +08:00
Mahavir Jain
6e0b8af978 Merge branch 'feature/upgrade_mbedtls_to_v4.1' into 'release/v4.1'
mbedtls: upgrade to release v2.16.5 (v4.1)

See merge request espressif/esp-idf!7986
2020-03-24 13:46:00 +08:00
Mahavir Jain
b8fe1fdf27 bootloader_support: initialize mbedtls_ctr_drbg_context per mbedtls v2.16.5 requirement
In commit 02d2903e39, mbedtls was
updated to release v2.16.5, where it was made mandatory to initialize
mbedtls_ctr_drbg_context before using same. It was fixed in wpa supplicant
but missed out in secure boot v2 verification code. This commit
fixes that.
2020-03-23 11:22:20 +05:30
Mahavir Jain
355a210a38 mbedtls: upgrade to release v2.16.5
For detailed release notes please refer to:
https://tls.mbed.org/tech-updates/releases/mbedtls-2.16.5-and-2.7.14-released

Closes: IDFGH-2638
Closes: https://github.com/espressif/esp-idf/issues/4716
2020-03-23 11:22:02 +05:30
Sagar Bijwe
5c4f7948d4 wpa_supplicant: Fix SAE test-case failure on mbedtls version udpate
Problem:
mbedtls_ctr_drbg_context was initialized in crypto_ec_point_mul. This
was okay in releases before 2.16.4 as entropy_len used to get set to
MBEDTLS_CTR_DRBG_ENTROPY_LEN in function mbedtls_ctr_drbg_seed. The
function is now changed to set the length to
MBEDTLS_CTR_DRBG_ENTROPY_LEN if previous length is 0 and hence the bug.

Solution:
Initialize mbedtls_ctr_drbg_context in crypto_ec_point_mul.
2020-03-23 11:22:02 +05:30
Renz Bagaporo
bc81db3676 cmake: show error message on encrypted flash targets without proper config 2020-03-22 20:44:23 +08:00
Renz Christian Bagaporo
737215c50f cmake: utility to create a failing target 2020-03-22 20:01:33 +08:00
Renz Bagaporo
2925b5f42b examples: split source files for one of the ulp examples 2020-03-22 20:00:21 +08:00
Renz Bagaporo
cc95d14d80 ulp: fix ulp external project args
Closes https://github.com/espressif/esp-idf/issues/4713
2020-03-22 20:00:21 +08:00
Renz Christian Bagaporo
1717232f11 ulp: use quotes when specifying files for embedding ulp binaries 2020-03-22 19:59:50 +08:00
Renz Bagaporo
98742664e8 ci: add test for partition_table target 2020-03-22 19:58:48 +08:00
Renz Christian Bagaporo
2aba19e00d partition_table: output partition table info for partition_table target 2020-03-22 19:58:48 +08:00
He Yin Ling
9f024df9e5 Merge branch 'bugfix/modify_ble_mesh_command_for_v4.1' into 'release/v4.1'
ble mesh: update ble mesh console example  (backport v4.1)

See merge request espressif/esp-idf!8042
2020-03-22 18:36:29 +08:00
Chen Sheng
af3c81b68a ble mesh: update ble mesh console example (backport v4.1) 2020-03-22 18:36:26 +08:00
Jiang Jiang Jian
bac92d579f Merge branch 'bugfix/send_ok_when_sta_disconnect_for_v4.1' into 'release/v4.1'
lw-ip:bugfix for TCPv6 send ok when sta disconnect for v4.1

See merge request espressif/esp-idf!8025
2020-03-21 15:15:49 +08:00
Jiang Jiang Jian
b445b59c5e Merge branch 'bugfix/wep40_key_parsing_bug_v4.1' into 'release/v4.1'
Bugfix/wep40 key parsing bug v4.1

See merge request espressif/esp-idf!7990
2020-03-20 17:33:50 +08:00
xueyunfei
9b31a2e7f9 optimization TCPv6 connect for 4.1 2020-03-20 15:04:31 +08:00
Jiang Jiang Jian
71ffae5d6e Merge branch 'bugfix/hfp_github_issues_v4.1' into 'release/v4.1'
Bugfix for HFP and some Github issue. v4.1

See merge request espressif/esp-idf!7975
2020-03-20 13:21:33 +08:00
xueyunfei
c092f9b881 bugfix for TCPv6 send ok when sta disconnect 2020-03-19 14:14:13 +08:00
kapil.gupta
582a493739 wpa_supplicant: Add parsing support for WEP40 key
WEP key is passed as ascii key without "", add parsing support
in supplicant for this.
2020-03-18 13:40:05 +00:00
Angus Gratton
2976f5daea Merge branch 'bugfix/ci_handle_retried_jobs_v4.1' into 'release/v4.1'
ci: add find job id argument job status (backport v4.1)

See merge request espressif/esp-idf!7953
2020-03-18 16:03:18 +08:00
Angus Gratton
4414e829de Merge branch 'backport/feat/secure_boot_v2_v41' into 'release/v4.1'
Backport/feat/secure boot v2 v41

See merge request espressif/esp-idf!7854
2020-03-18 15:35:53 +08:00
Island
e4704e0875 Merge branch 'bugfix/ble_mesh_nimble_adapt_deinit_v4.1' into 'release/v4.1'
ble_mesh: Fix ble mesh nimble host deinit (v4.1)

See merge request espressif/esp-idf!8004
2020-03-18 12:32:21 +08:00
weitianhua
f5fc735711 Bugfix for HFP and some Github issue.
1. Bugfix for AG audio crash (change the return position)
2. Fix the error macro name and error return in hfp_hf demo
3. Fix the annotation error using UTF-8 ' (from Github)
4. Change or remove the log in SCO related code region.
5. Correct error of introduction of a function.
2020-03-18 04:06:24 +00:00
lly
7815cd9ff4 ble_mesh: Fix ble mesh nimble host deinit 2020-03-17 16:18:50 +08:00
lly
da113cdfa8 ble_mesh: Add ESP BLE Mesh vendor models example 2020-03-17 15:54:53 +08:00
lly
48e6195506 ble_mesh: Rename ble_mesh_vendor_models to common_vendor_models 2020-03-17 15:54:40 +08:00
Jiang Jiang Jian
1cdea40bba Merge branch 'bugfix/ble_mesh_miscellaneous_fix_v4.1' into 'release/v4.1'
Bugfix/ble mesh miscellaneous fix (v4.1)

See merge request espressif/esp-idf!7969
2020-03-17 15:34:19 +08:00
Jiang Jiang Jian
3d462d7d81 Merge branch 'bugfix/compiler_err_when_performance_optimization_enabled_v4.1' into 'release/v4.1'
Bugfix/compiler err when performance optimization enabled v4.1

See merge request espressif/esp-idf!7977
2020-03-17 13:54:06 +08:00
weitianhua
aa6347339c Remove (x2) variable in BCM_STRNCPY_S and BCM_STRCPY_S when performance optimization enabled 2020-03-14 14:41:16 +08:00
weitianhua
8488f292c2 Fix mem_start uninitialized error when compiler optimization performance enabled 2020-03-14 14:41:06 +08:00
lly
6431a5e185 ble_mesh: Move dev_role to the end of model_pub 2020-03-13 19:24:49 +08:00
lly
27b28c0249 ble_mesh: Use the right netkey during iv update 2020-03-13 19:24:45 +08:00
lly
b29bc240a7 ble_mesh: Use the right net_idx & app_idx for publish 2020-03-13 19:24:37 +08:00
lly
940e87c0da ble_mesh: Check buf->ref before unref the buffer 2020-03-13 19:24:32 +08:00
lly
60eaca9637 ble_mesh: Fix mesh memory use-after-free issue 2020-03-13 19:24:27 +08:00
lly
e01333514d ble_mesh: Add ble mesh deinit in btc task 2020-03-13 19:24:23 +08:00
lly
f0519c674f ble_mesh: Free beacon timer when deinit mesh 2020-03-13 19:24:18 +08:00
lly
de9186b908 ble_mesh: Use lock for mesh timer operations 2020-03-13 19:24:12 +08:00
Angus Gratton
5cd45a6d80 secure boot: Fix anti-fault value if hash is shorter than curve
(Not actually a problem with SBV1 anti-fault as hash size == curve size in this case.)
2020-03-13 14:01:45 +05:30
He Yin Ling
1fa6db757d ci: add find job id argument job status:
if we retry failed job, we will have 2 jobs with same name in one pipeline. we need to use status to find the retried job instead of failed job.
2020-03-12 09:56:33 +08:00
Ivan Grokhotkov
7f84669054 Merge branch 'bugfix/from_github_v4.1' into 'release/v4.1'
Fixes from Github (backport v4.1)

See merge request espressif/esp-idf!7920
2020-03-11 21:49:19 +08:00
Jiang Jiang Jian
e82ac041cd Merge branch 'bugfix/select_waiting_assert_for_v4.1' into 'release/v4.1'
lw-ip:fix bug for after udp close select_waiting assert for v4.1

See merge request espressif/esp-idf!7919
2020-03-11 20:45:35 +08:00
xueyunfei
47f9c0e301 fix bug for after udp close select_waiting assert for v4.1 2020-03-11 10:06:43 +00:00
Mahavir Jain
d09a43fc1e Merge branch 'bugfix/ota_with_redirection_v4.1' into 'release/v4.1'
esp_https_ota in sync with master (v4.1)

See merge request espressif/esp-idf!7914
2020-03-11 14:46:25 +08:00
Ivan Grokhotkov
a003bcde29 Merge branch 'bugfix/idfpygenerator_v4.1' into 'release/v4.1'
tools: fix idf.py to be able to select a generator for build (v4.1)

See merge request espressif/esp-idf!7917
2020-03-10 22:22:47 +08:00
Michael (XIAO Xufeng)
492065463d Merge branch 'bugfix/put_spihost_handle_in_sram_v4.1' into 'release/v4.1'
spi: always put spihost handle in SRAM (backport v4.1)

See merge request espressif/esp-idf!7901
2020-03-10 14:22:32 +08:00
khuynh
85c15812c9 fix markdown table formatting
fixed markdown for a table in
`examples/peripherals/temp_sensor_esp32s2/README.md`

Merges https://github.com/espressif/esp-idf/pull/4609
2020-03-09 11:25:54 +01:00
Alexander Borsuk
ba43902fb8 Fixes compilation error on verbose level (IDFGH-2439)
Closes #4552

Merges https://github.com/espressif/esp-idf/pull/4786
2020-03-09 11:25:54 +01:00
Rusty Eddy
eda9d8ffa8 Added semi-colon to esp_event_loop_create(...)
Title sums it up.

Merges https://github.com/espressif/esp-idf/pull/4711
2020-03-09 11:17:08 +01:00
Mooli Tayer
f4c84ea2b2 Fix typo
Merges https://github.com/espressif/esp-idf/pull/4752
2020-03-09 11:17:08 +01:00
Jiang Jiang Jian
fefd64fa83 Merge branch 'Bugfix/netconn_marked_close_crash_for_v4.1' into 'release/v4.1'
lw-ip:fix bug for netconn marked close crash for v4.1

See merge request espressif/esp-idf!7896
2020-03-09 16:36:39 +08:00
Shubham Kulkarni
70b1ab76e8 esp_https_ota.c: Add errno check for WiFi disconnection while performing OTA 2020-03-09 13:26:36 +05:30
Shubham Kulkarni
6bc77d79a6 OTA: Add fix in case of URL redirection and a test case of URL redirection
Closes https://github.com/espressif/esp-idf/issues/4780
2020-03-09 13:26:36 +05:30
Shubham Kulkarni
4c09dc6270 OTA: Fixed OTA with chunked servers and added example_test with chunked server 2020-03-09 13:26:36 +05:30
Roland Dobai
570653bc7b tools: fix idf.py to be able to select a generator for build 2020-03-09 08:42:14 +01:00
Angus Gratton
2241dda536 Merge branch 'feature/netif_ppp_authtype_none_v4.1' into 'release/v4.1'
esp-netif: PPPoS fixes (v4.1)

See merge request espressif/esp-idf!7849
2020-03-09 13:34:16 +08:00
Michael (XIAO Xufeng)
a559d55379 Merge branch 'bugfix/spiflash_read_psram_v4.1' into 'release/v4.1'
spi_flash: Fix over-allocation and OOM crash when reading from SPI flash to PSRAM buffers (v4.1)

See merge request espressif/esp-idf!7877
2020-03-09 11:13:29 +08:00
Angus Gratton
c99eac2f0b Merge branch 'bugfix/aligned_alloc_without_poisoning_v4.1' into 'release/v4.1'
bugfix/heap: Make aligned alloc and aligned free available to all heap poisoning configurations (v4.1)

See merge request espressif/esp-idf!7898
2020-03-09 11:05:24 +08:00
xueyunfei
a1764ec5b0 fix bug for netconn marked close crash for v4.1 2020-03-09 02:54:20 +00:00
Felipe Neves
5ce7ec848c heap: pushed down all the aligned_alloc / free implementation 2020-03-08 23:17:05 +00:00
Felipe Neves
15cdd2859a heap: added aligned alloc implementation on multi_heap layer 2020-03-08 23:17:05 +00:00
Krzysztof Budzynski
a0abb4dfdc Merge branch 'bugfix/docs_ulp_reg_rd_wr_instructions_v4.1' into 'release/v4.1'
Correct ULP REG_WR and REG_RD instruction for ESP32

See merge request espressif/esp-idf!7869
2020-03-06 19:08:30 +08:00
Krzysztof Budzynski
f5b678f7ba Correct ULP REG_WR and REG_RD instruction for ESP32 2020-03-06 19:08:29 +08:00
morris
1af819d19b spi: always put spihost handle in SRAM
Closes https://github.com/espressif/esp-idf/issues/4635
2020-03-06 17:36:44 +08:00
Angus Gratton
408d1d9f93 Merge branch 'bugfix/cmake_convert_whitespace_v4.1' into 'release/v4.1'
cmake: Minor convert_to_cmake.py fixes (v4.1)

See merge request espressif/esp-idf!7875
2020-03-06 14:58:14 +08:00
Angus Gratton
f70dcd9ab5 Merge branch 'bugfix/modem_ppp_close_fix_4.1' into 'release/v4.1'
esp_modem.c: post PPP stop event when requested (v4.1)

See merge request espressif/esp-idf!7882
2020-03-06 14:31:06 +08:00
Michael (XIAO Xufeng)
a251485359 Merge branch 'bugfix/clean_pcnt_i2s_public_header_v4.1' into 'release/v4.1'
driver: clean pcnt.h i2s.h (backport v4.1)

See merge request espressif/esp-idf!7839
2020-03-06 14:05:33 +08:00
Jiang Jiang Jian
ee86ee0094 Merge branch 'feature/wpa3_testcases_support_v4.1' into 'release/v4.1'
esp_wifi: Support for additional WPA3 testcases (Backport v4.1)

See merge request espressif/esp-idf!7880
2020-03-06 12:23:43 +08:00
Anton Maklakov
5dbabae9dc Merge branch 'nimble/host_based_rpa_v4.1' into 'release/v4.1'
NimBLE: Support Host based privacy (RPA) feature in NimBLE host (backport v4.1)

See merge request espressif/esp-idf!7887
2020-03-06 11:02:22 +08:00
Prasad Alatkar
48fe9dfce7 NimBLE: Add Host based privacy (RPA) feature support (v4.1)
- This feature removes dependency on controller to use privacy (RPA)

Closes BT-519
2020-03-06 11:02:22 +08:00
Angus Gratton
5f2d918437 bootloader: Set the bootloader optimization level separately to the app
Change the default bootloader config to -Os to save size.

This is a useful feature because it allows switching between debug
and release configs in the app without also needing to account for a
size change in the bootloader.
2020-03-06 01:16:04 +05:30
Angus Gratton
32756b165e bootloader: Add fault injection resistance to Secure Boot bootloader verification
Goal is that multiple faults would be required to bypass a boot-time signature check.

- Also strengthens some address range checks for safe app memory addresses
- Change pre-enable logic to also check the bootloader signature before enabling SBV2 on ESP32

Add some additional checks for invalid sections:

- Sections only partially in DRAM or IRAM are invalid
- If a section is in D/IRAM, allow the possibility only some is in D/IRAM
- Only pass sections that are entirely in the same type of RTC memory region
2020-03-06 01:16:04 +05:30
Angus Gratton
74b299c4c7 secure boot: Encrypt the bootloader signature when enabling flash encryption + secure boot v2 2020-03-06 01:16:04 +05:30
Supreet Deshpande
27e9cb785a feat/secure_boot_v2: Adding docs for secure boot v2 ESP32-ECO3 2020-03-06 01:16:04 +05:30
Supreet Deshpande
60fed38c0f feat/secure_boot_v2: Adding secure boot v2 support for ESP32-ECO3 2020-03-06 01:16:04 +05:30
Ivan Grokhotkov
a66955b36a Merge branch 'bugfix/cmake_generators_v4.1' into 'release/v4.1'
tools: Force the order of cmake generators (v4.1)

See merge request espressif/esp-idf!7848
2020-03-05 20:17:32 +08:00
Jiang Jiang Jian
535b378869 Merge branch 'nimble/make_msys_1_configurable_v4.1' into 'release/v4.1'
NimBLE: Fix check for static random address & add MSYS_1 in menuconfig (backport v4.1)

See merge request espressif/esp-idf!7864
2020-03-05 18:00:28 +08:00
Prasad Alatkar
e36b3e0d04 NimBLE: Fix check for static random address & add MSYS_1 in menuconfig (v4.1)
Closes BT-522 & BT-523
2020-03-05 18:00:27 +08:00
Francesco Giancane
2afafe890a esp_modem.c: post PPP stop event when requested
When library users call esp_stop_ppp(), it is expected that the PPP link
is closed and the DCE is moved into command mode.

If the STOP event is not posted into the event loop, then the PPP stack
would not be turned off, resulting in the impossibility to switch into
command mode, as the modem is still sending PPP binary data.

Signed-off-by: Francesco Giancane <francesco.giancane@accenture.com>

Merges https://github.com/espressif/esp-idf/pull/4642
2020-03-05 09:23:21 +01:00
Mahavir Jain
e7c8a36d46 Merge branch 'bugfix/esp_tls_blocking_timeout_v4.1' into 'release/v4.1'
esp-tls: add timeout for blocking connection (v4.1)

See merge request espressif/esp-idf!7395
2020-03-05 16:06:35 +08:00
Island
0e21d1e372 Merge branch 'nimble/misc_host_flow_ctrl_changes_v4.1' into 'release/v4.1'
NimBLE: Misc changes in host flow control, ble_gap_unpair, ble_hs_hci_rx_evt, memory management & example (backport v4.1)

See merge request espressif/esp-idf!7857
2020-03-05 14:54:39 +08:00
Jiang Jiang Jian
96cd373265 Merge branch 'bugfix/btdm_assert_when_create_connection_cancel_v4.1' into 'release/v4.1'
components/bt: Fix assert when create conntion cancel

See merge request espressif/esp-idf!7817
2020-03-05 14:53:18 +08:00
Nachiket Kukade
00f0cdcc92 esp_wifi: Support for additional WPA3 testcases
1. Anti-Clogging Token Request support
2. Return correct status from SAE modules for invalid scenarios
3. Add PMK Caching support for WPA3
2020-03-05 12:15:03 +05:30
Angus Gratton
425486223e spi_flash: Remove 16KB free internal heap limit for esp_flash_read() into PSRAM
Allocation of the temporary internal buffer will now repeat until a small enough buffer can be
allocated, and only fail if less than a 256 byte block of internal RAM is free.

Adds unit test for the same, and generic test utility for creating memory pressure.
2020-03-05 17:10:22 +11:00
Angus Gratton
d6026823fa spi_flash: Fix over-allocation and OOM crash when reading from SPI flash to PSRAM buffers
Previously would try allocate buffer of minimum size 16KB not maximum size 16KB, causing
out of memory errors for any large reads, or if less than 16KB contiguous free heap.

Also, if using legacy API and internal allocation failed then implementation would abort()
instead of returning the error to the caller.

Added test for using large buffers in PSRAM.

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

Also reported on forum: https://esp32.com/viewtopic.php?f=13&t=14304&p=55972
2020-03-05 17:10:22 +11:00
Angus Gratton
c57ba38d67 cmake: Add warnings that convert_to_cmake.py doesn't calculate component requirements
Any component which requires another component will need this manually
added to its CMakeLists.txt file.
2020-03-05 17:06:13 +11:00
Angus Gratton
250e219279 cmake: convert_to_cmake: Fix possible whitespace issues
As reported on forum:
https://esp32.com/viewtopic.php?f=2&t=13565&p=53476#p53453

split() with no arg will match any whitespace sequence not just
a single space, so takes care of case where two spaces are
inserted in the variable value.
2020-03-05 17:06:13 +11:00
David Cermak
233d4b94bd esp_tls: fail connection if esp_tls_conn_new() timeouts 2020-03-04 15:15:40 +00:00
David Cermak
d19c1c4b3c esp_tls: added connection timeout to esp_tls_conn_new_sync() 2020-03-04 15:15:40 +00:00
Jiang Jiang Jian
e7a33878bb Merge branch 'bugfix/backport_some_wifi_issues_0302' into 'release/v4.1'
esp_wifi: backport some wifi issues 0302 (backport v4.1)

See merge request espressif/esp-idf!7826
2020-03-04 15:36:31 +08:00
Hrishikesh Dhayagude
74c528d836 NimBLE: Use dynamic buffers instead of static memory.
The NimBLE host buffers that consume a significant amount of memory are
now allocated dynamically.
The advantage is that, the memory can be reclaimed in cases where BLE
is turned off and not required for the current boot cycle
2020-03-04 12:01:53 +05:30
Prasad Alatkar
c55689ca18 NimBLE: Misc changes in host flow control, ble_gap_unpair, ble_hs_hci_rx_evt & example (v4.1)
- Add menuconfig option for NimBLE host flow control
- Include changes in `blecent` example from upstream PR!702
- add ble_hs_lock in ble_gap_unpair Upstream PR!584
- ble_hs_hci_rx_evt, upstream PR!738

Closes https://github.com/espressif/esp-idf/issues/4243
2020-03-04 11:35:47 +05:30
Jiang Jiang Jian
b8c2fedec9 Merge branch 'bugfix/add_hostname_in_discover_packet_for_v4.1' into 'release/v4.1'
lw-ip:add host name in discover packet for v4.1

See merge request espressif/esp-idf!7842
2020-03-04 11:24:42 +08:00
David Cermak
23c5770156 esp_netif_lwip_ppp: fix posting ip-event data
Closes https://github.com/espressif/esp-idf/issues/4634
2020-03-03 15:00:37 +01:00
Axel Lin
4c668ff3d3 esp_netif_lwip_ppp: Allow esp_netif_ppp_set_auth set auth_type with NETIF_PPP_AUTHTYPE_NONE
The ppp_set_auth() is guard by #if PPP_AUTH_SUPPORT in lwIP, so
make it consistent. This also simplify the code a bit because the code
in #if PAP_SUPPORT guard and #if CHAP_SUPPORT guard are exactly the same.

Once NETIF_PPP_AUTHTYPE_NONE added to esp_netif_auth_type_t, it also allows
setting NETIF_PPP_AUTHTYPE_NONE with this change.

Signed-off-by: Axel Lin <axel.lin@gmail.com>

Merges https://github.com/espressif/esp-idf/pull/4639
2020-03-03 15:00:37 +01:00
Axel Lin
4a623798f1 esp_netif_ppp: Add NETIF_PPP_AUTHTYPE_NONE to esp_netif_auth_type_t
To allow setting auth_type to PPPAUTHTYPE_NONE, add NETIF_PPP_AUTHTYPE_NONE
to esp_netif_auth_type_t.
So even PAP/CHAP are enabled in lwIP, the application still can set
auth_type to PPPAUTHTYPE_NONE.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
2020-03-03 15:00:37 +01:00
Roland Dobai
0f191c3366 tools: Force the order of cmake generators 2020-03-03 11:39:59 +01:00
morris
077d68c752 driver: clean pcnt.h i2s.h 2020-03-03 18:12:11 +08:00
xiehang
4d10eb20db esp_wifi: fix some WiFi bugs
Fix following WiFi bugs:
1. Fix crashing during shared WEP connection
2. Remove log "age_bss: null bss
3. Add WiFi stop checking at the beginning of wifi deinit api
4. Fix espnow crash
5. Fix the bug for setting channel when WiFi is no NULL mode
6. Adjust scheme percent when BT is in connected status
7. Fix WiFi stop leads to memory leak
8. Place the Vendor Specific Element at the end of WiFi packet
2020-03-03 14:49:36 +08:00
xueyunfei
94327c10ed add host name in discover packet for v4.1 2020-03-03 14:25:47 +08:00
Jiang Jiang Jian
328c659cd3 Merge branch 'feat/ble_mesh_update_4.1' into 'release/v4.1'
Feat/ble mesh update 4.1

See merge request espressif/esp-idf!7798
2020-03-02 15:33:05 +08:00
lly
8e34adb94c ble_mesh: Calc incomplete timeout based on msg info 2020-03-02 02:08:13 +00:00
lly
7d41eb6f52 ble_mesh: Start the timer when starting to send the client message 2020-03-02 02:08:13 +00:00
lly
2a014db549 ble_mesh: No timeout for client message to non-unicast address 2020-03-02 02:08:13 +00:00
lly
6c207ea6d2 ble_mesh: Unify client application and lower transport layer timeout 2020-03-02 02:08:13 +00:00
lly
2611e23bd2 ble_mesh: Allow maximum 377 octets payload 2020-03-02 02:08:13 +00:00
lly
4b2ef7303e ble_mesh: Reset transport info when node is removed 2020-03-02 02:08:13 +00:00
lly
21af266a11 ble_mesh: Provisioner ignores msg from removed node 2020-03-02 02:08:13 +00:00
lly
711c8472fc ble_mesh: Miscellaneous modifications
1. Add an API to set Provisioner static oob value
2. Add an API to deinit BLE Mesh stack
3. Add an API to set Provisioner unicast address
4. Add an API to provision devices with fixed address
5. Add an API to store node composition data
6. Add an API to get node with device uuid
7. Add an API to get node with unicast address
8. Add an API to delete node with device uuid
9. Add an API to delete node with unicast address
10. Add an API for Provisioner to update local AppKey
11. Add an API for Provisioner to update local NetKey
12. Support Provisioner persistent functionality
13. Fix Provisioner entering IV Update procedure
14. Fix an issue which may cause client failing to send msg
15. Use bt_mesh.flags to indicate device role
16. Remove several useless macros
17. Callback RSSI of received mesh provisioning packets
18. Modify the Provisioner disable function
19. Change some log level from debug to info
20. Add parameters to Provisioner bind AppKey completion event
21. Fix node ignoring relay messages issue
22. Support using a specific partition for BLE Mesh
23. Fix compile warning when proxy related macros are disabled
24. Clean up BLE Mesh stack included header files
25. NULL can be input if client message needs no parameters
26. Fix compile warning when BT log is disabled
27. Initilize BLE Mesh stack local variables
28. Support using PSRAM for BLE Mesh mutex, queue and task
29. Add a menuconfig option to enable using memory from PSRAM
30. Clean up sdkconfig.defaults of BLE Mesh examples
2020-03-02 02:08:13 +00:00
Krzysztof Budzynski
df06f7d715 Merge branch 'bugfix/doc_remove_cmake_defconfig_v4.1' into 'release/v4.1'
Doc: replace defconfig with reconfigure (v4.1)

See merge request espressif/esp-idf!7687
2020-03-02 05:09:38 +08:00
Jiang Jiang Jian
a280f0a9ba Merge branch 'bugfix/IPV6_multicast_adress_error_for_v4.1' into 'release/v4.1'
lw-ip:fix ipv6 bug when input the wrong broadcast for v4.1

See merge request espressif/esp-idf!7804
2020-02-29 17:06:56 +08:00
Jiang Jiang Jian
9177f5d32e Merge branch 'feature/doc_feedback_links_v4.1' into 'release/v4.1'
docs: Include feedback link in footer (v4.1)

See merge request espressif/esp-idf!7820
2020-02-29 16:57:49 +08:00
Michael (XIAO Xufeng)
4045dc8508 Merge branch 'bugfix/nec_example_v4.1' into 'release/v4.1'
bugfix in NEC example and low level function  (v4.1)

See merge request espressif/esp-idf!7635
2020-02-29 02:56:12 +08:00
Krzysztof
f4f2724a4e Include feedback link in footer 2020-02-29 00:32:35 +08:00
baohongde
dbc0a9b3f4 components/bt: Fix assert when create conntion cancel 2020-02-28 20:23:39 +08:00
Jiang Jiang Jian
83fc174310 Merge branch 'bugfix/btdm_div_by_zero_in_slp_clk_conversion_for_v4.1' into 'release/v4.1'
bugfix/btdm_div_by_zero_in_slp_clk_conversion_for_v4.1(backport v4.1)

See merge request espressif/esp-idf!7786
2020-02-28 17:19:41 +08:00
wangmengyang
6fad6eb9f1 component/bt: set non-zero initial value for bt sleep clock cycle to avoid div-by-zero error in function "btdm_us_2_lpcycles" when BT modem sleep is not enabled 2020-02-28 14:08:47 +08:00
xueyunfei
9c5067a998 fix ipv6 bug when input the wrong broadcast for v4.1 2020-02-27 17:13:03 +08:00
Krzysztof Budzynski
3b16089cb2 Merge branch 'bugfix/doc_python3_v4.1' into 'release/v4.1'
Docs: Encourage to use Python 3 (v4.1)

See merge request espressif/esp-idf!7782
2020-02-27 01:48:23 +08:00
Roland Dobai
de3eed647f Docs: Encourage to used Python 3 2020-02-26 09:11:13 +01:00
Michael (XIAO Xufeng)
c4654298ce Merge branch 'bugfix/add_missing_ledc_set_pin_declaration_v4.1' into 'release/v4.1'
Bugfix: Add missing ledc_set_pin declaration in led.h (v4.1)

See merge request espressif/esp-idf!7372
2020-02-26 15:20:40 +08:00
Jiang Jiang Jian
9c8c6b5cd5 Merge branch 'bugfix/sntp_init_can_run_before_net_connection_v4.1' into 'release/v4.1'
lw_ip: Add to sys_arch_protect() a check that the mutex is created before use if not then creates it (v4.1)

See merge request espressif/esp-idf!7756
2020-02-26 11:30:09 +08:00
Jiang Jiang Jian
dc8701601d Merge branch 'bugfix/esp_netif_pppos_dce_off_v4.1' into 'release/v4.1'
pppos_client: Fix power_down dce immediately after got IP (v4.1)

See merge request espressif/esp-idf!7398
2020-02-26 11:29:18 +08:00
Jiang Jiang Jian
402a118299 Merge branch 'bugfix/btdm_check_EXT_CRYS_state_for_sleep_clk_for_v4.1' into 'release/v4.1'
bugfix/btdm_check_EXT_CRYS_state_for_sleep_clk(backport v4.1)

See merge request espressif/esp-idf!7748
2020-02-25 17:55:31 +08:00
KonstantinKondrashov
5487700bf1 lwip: Add to sys_arch_protect() a check that the mutex is created before use if not then creates it
Closes: https://github.com/espressif/esp-idf/issues/944
Closes: https://github.com/espressif/esp-idf/issues/3931
Closes: WIFI-1019
2020-02-24 15:48:27 +08:00
wangmengyang
cd492747e1 component/bt: fall back to main XTAL as Bluetooth sleep clock when EXT 32K CRYS is configured but not detected 2020-02-24 12:22:35 +08:00
Jiang Jiang Jian
9cdbda325a Merge branch 'bugfix/btdm_backports_v4.1_0220' into 'release/v4.1'
components/bt: backports to release/v4.1

See merge request espressif/esp-idf!7716
2020-02-21 14:57:16 +08:00
Jiang Jiang Jian
9bf147515c Merge branch 'bugfix/fix_sniffer_bug_caused_by_mode_switch_v4.1' into 'release/v4.1'
Fix sniffer bug caused by mode switch  (backport v4.1)

See merge request espressif/esp-idf!7690
2020-02-21 14:53:56 +08:00
Jiang Jiang Jian
3a9750746f Merge branch 'bugfix/add_option_to_ipv6_stateless_address_configuration_v4.1' into 'release/v4.1'
lw-ip: Add option to ipv6 stateless address configuration (backport v4.1)

See merge request espressif/esp-idf!7699
2020-02-21 14:53:32 +08:00
Mahavir Jain
0809136836 Merge branch 'bugfix/esp_log_timestamp_v4.1' into 'release/v4.1'
Use proper API to get Tick Count is esp_log_timestamp (v4.1)

See merge request espressif/esp-idf!7717
2020-02-20 21:11:10 +08:00
Shubham Kulkarni
124b735ac5 log: Check for ISR context and use proper API to get Tick Count 2020-02-20 15:38:08 +05:30
baohongde
a74d85945a components/bt: backports to release/v4.1
Fix bugs about role switch
Fix watchdog timeout when sleep enabled and crash without enabling sw coex
Fix ble crash issue triggered by ble event irq miss(0x20000)
Future events scheduling error in case of wifi and bluetooth.
2020-02-20 17:53:40 +08:00
xiehang
ce4334f4bf lwip: Enable IPv6 stateless address autoconfiguration 2020-02-20 14:44:49 +08:00
Jiang Jiang Jian
5c217d8bb6 Merge branch 'bugfix/coex_a2dp_stuck_after_creating_another_connection_v4.1' into 'release/v4.1'
components/coex: Fix a2dp stuck after creating another connection

See merge request espressif/esp-idf!7662
2020-02-20 14:16:53 +08:00
Jiang Jiang Jian
0664f82431 Merge branch 'bugfix/coex_fix_misspell_in_kconfig_v4.1' into 'release/v4.1'
components/coex: Fix misspell in Kconfig

See merge request espressif/esp-idf!7671
2020-02-20 14:15:53 +08:00
xiehang
0350ea5744 esp_wifi: Small refactor for ic_set_vif 2020-02-20 12:22:52 +08:00
Sergei Silnov
145682b854 Doc: replace defconfig with reconfigure
Closes https://github.com/espressif/esp-idf/issues/3965
2020-02-19 17:06:43 +01:00
baohongde
1e54e5ddef components/coex: Fix misspell in Kconfig 2020-02-19 11:43:53 +08:00
Angus Gratton
3f4da83520 Merge branch 'bugfix/kconfig_cmake_escape_v4.1' into 'release/v4.1'
confgen.py: Escape special characters for cmake (v4.1)

See merge request espressif/esp-idf!7645
2020-02-19 08:00:53 +08:00
Jiang Jiang Jian
8609b3730d Merge branch 'bugfix/unified_prov_bluedroid_v4.1' into 'release/v4.1'
Unified Provisioning - BLE: Fix characteristics read response issue (backport v4.1)

See merge request espressif/esp-idf!7652
2020-02-18 20:57:22 +08:00
Jiang Jiang Jian
e8d33e4faf Merge branch 'bugfix/ble_mesh_fix_compile_error_with_cpp_4.1' into 'release/v4.1'
ble_mesh: Fix compile error with c++ files (v4.1)

See merge request espressif/esp-idf!7583
2020-02-18 20:43:51 +08:00
baohongde
8908d52efa components/coex: Fix a2dp stuck after creating another connection 2020-02-18 20:13:41 +08:00
Hrishikesh Dhayagude
5a244bc935 Unified Provisioning - BLE: Fix characteristics read response issue
Fix the issue when number of bytes to be read is an exact multiple of [MTU-1]
2020-02-18 15:11:51 +05:30
Roland Dobai
ea35218d2a confgen.py: Escape special characters for cmake
Closes https://github.com/espressif/esp-idf/issues/4751
2020-02-18 09:55:30 +01:00
Ivan Grokhotkov
d01af529f6 Merge branch 'bugfix/idf_tools_pylauncher_v4.1' into 'release/v4.1'
idf_tools.py: fix typo in __PYVENV_LAUNCHER__ env variable name (backport v4.1)

See merge request espressif/esp-idf!7478
2020-02-18 16:24:56 +08:00
Jiang Jiang Jian
3b86e7e099 Merge branch 'bugfix/change_hci_task_size_back_v4.1' into 'release/v4.1'
components/bt: change HCI task size back

See merge request espressif/esp-idf!7568
2020-02-18 12:52:10 +08:00
morris
bd8baba0dc rmt: fix missing 0x in rmt_ll.h
Closes https://github.com/espressif/esp-idf/issues/4760
2020-02-18 10:54:03 +08:00
DeeFuse
8954c989f4 Update ir_builder_rmt_nec.c
fixes standard protocol mode wich would fail due to integer promotion in inversion

Merges https://github.com/espressif/esp-idf/pull/4750
2020-02-18 10:53:49 +08:00
DeeFuse
f6c90adb42 Update ir_protocols_main.c
RMT write should be non-blocking to wait the correct time for sending the repeat frame
2020-02-18 10:53:37 +08:00
Ivan Grokhotkov
a0ebe4d18c Merge branch 'bugfix/ulp_s2_linux_32bit_v4.1' into 'release/v4.1'
tools: mark ULP toolchain as not available on 32-bit Linux (backport v4.1)

See merge request espressif/esp-idf!7476
2020-02-15 00:53:04 +08:00
Ivan Grokhotkov
eb11a748e7 Merge branch 'feature/idf_docker_updates_v4.1' into 'release/v4.1'
Enable ccache and use newer CMake in Docker image (backport v4.1)

See merge request espressif/esp-idf!7481
2020-02-15 00:52:47 +08:00
Ivan Grokhotkov
c8e605cd71 Merge branch 'bugfix/idf_fullclean_loses_target_v4.1' into 'release/v4.1'
idf.py: guess IDF_TARGET from sdkconfig/sdkconfig.defaults, error out if IDF_TARGET is inconsistent (backport v4.1)

See merge request espressif/esp-idf!7601
2020-02-15 00:52:22 +08:00
Ivan Grokhotkov
0f9e14de9a Merge branch 'bugfix/smtp_strict_prototypes_fix_v4.1' into 'release/v4.1'
ci: re-add the lost PEDANTIC_{C,CXX}FLAGS in CMake example builds (backport v4.1)

See merge request espressif/esp-idf!7599
2020-02-15 00:52:02 +08:00
Jiang Jiang Jian
73fd009d40 Merge branch 'bugfix/btdm_hfp_ag_crash_in_unknown_at_cmd_v4.1' into 'release/v4.1'
components/bt: Fix connection fail and crash when receive unknown AT cmd

See merge request espressif/esp-idf!7405
2020-02-14 19:46:49 +08:00
Ivan Grokhotkov
17afd49e01 Merge branch 'bugfix/doc_sphinxcontrib_dep_v4.1' into 'release/v4.1'
Docs: Fix sphinxcontrib dependencies

See merge request espressif/esp-idf!7598
2020-02-14 17:21:07 +08:00
Ivan Grokhotkov
8cdb2538d3 Merge branch 'bugfix/win_tools_installer_fixes_v4.1' into 'release/v4.1'
docs: Windows tools installer release v2.3 (v4.1)

See merge request espressif/esp-idf!7560
2020-02-14 17:16:02 +08:00
Jiang Jiang Jian
cbd24259b2 Merge branch 'bugfix/btdm_error_type_in_config_eir_evt_v4.1' into 'release/v4.1'
components/bt: Fix error EIR type in config eir event

See merge request espressif/esp-idf!7406
2020-02-14 16:38:25 +08:00
Jiang Jiang Jian
9aa61d634b Merge branch 'bugfix/wifi_clear_phy_status_when_cpu_start_v4.1' into 'release/v4.1'
soc: clear PHY status when cpu start (backport v4.1)

See merge request espressif/esp-idf!7590
2020-02-14 11:34:38 +08:00
Ivan Grokhotkov
e547329935 ci: fix build system test on macOS
Replaces ${var^^} expansion supported with Bash >= 4 with 'tr'
2020-02-13 19:11:17 +01:00
Ivan Grokhotkov
6ae3311f48 idf.py: fail and show instructions on IDF_TARGET mismatch
Closes IDF-869
2020-02-13 19:10:41 +01:00
Ivan Grokhotkov
1adf837577 docs: update build system guide on setting IDF_TARGET 2020-02-13 19:10:41 +01:00
Ivan Grokhotkov
b76a10dd4f idf.py: guess IDF_TARGET from sdkconfig if CMakeCache doesn't exist
This solves the issue that target is changed to the default one after
idf.py fullclean.

Also allow setting the default target using sdkconfig.defaults, e.g.
CONFIG_IDF_TARGET="esp32s2"

Closes IDF-1040
2020-02-13 19:05:10 +01:00
Ivan Grokhotkov
911f931ccb ci: re-add the lost PEDANTIC_{C,CXX}FLAGS in CMake example builds 2020-02-13 18:51:56 +01:00
Roland Dobai
c74521f06d Docs: Fix sphinxcontrib dependencies 2020-02-13 14:50:31 +01:00
Xia Xiaotian
317f0d496a soc: clear PHY status when cpu start 2020-02-13 14:25:32 +08:00
Jiang Jiang Jian
ca735340f9 Merge branch 'bugfix/ble_mesh_utf_8_comma_4.1' into 'release/v4.1'
ble_mesh: Kconfig included a UTF-8 comma (v4.1)

See merge request espressif/esp-idf!7575
2020-02-13 11:12:17 +08:00
lly
45af9bf3ec ble_mesh: Fix compile error with c++ files 2020-02-13 09:46:54 +08:00
Ivan Grokhotkov
cdd3f6e8e7 Merge branch 'bugfix/spiffs_case_when_use_mtime_is_not_set_v4.1' into 'release/v4.1'
spiffs: Fix for case when CONFIG_SPIFFS_USE_MTIME is not defined (v4.1)

See merge request espressif/esp-idf!7573
2020-02-13 07:04:44 +08:00
lly
7acdc2f7fc ble_mesh: Kconfig included a UTF-8 comma 2020-02-12 18:25:43 +08:00
KonstantinKondrashov
c6c18ef2e8 spiffs: Fix for case when CONFIG_SPIFFS_USE_MTIME is not defined
Closes: 2c793cef06
2020-02-12 18:12:58 +08:00
Ivan Grokhotkov
9eec899f49 Merge branch 'bugfix/ci_no_attempts_no_custom_toolchain_url_v4.1' into 'release/v4.1'
ci: no stage attempts variables, no custom toolchain url (backport v4.1)

See merge request espressif/esp-idf!7543
2020-02-12 17:55:37 +08:00
Ivan Grokhotkov
549d026dc3 Merge branch 'bugfix/idf_tools_virtualenv_v4.1' into 'release/v4.1'
idf_tools.py: fix install-python-env failure with virtualenv 20.0.0 (backport v4.1)

See merge request espressif/esp-idf!7552
2020-02-12 17:32:15 +08:00
blueMoods
9ebdcf5b37 components/bt: change HCI task size back 2020-02-12 16:32:56 +08:00
Jiang Jiang Jian
a0d7dd770c Merge branch 'feature/esp32_5p0_backport_v4p1' into 'release/v4.1'
code optimize backport to v4.1

See merge request espressif/esp-idf!7558
2020-02-12 15:20:18 +08:00
june
21c1682a7a backport code optimize, mr !7409 2020-02-12 11:50:52 +08:00
Ivan Grokhotkov
4541e065e4 docs: update version of IDF tools installer for windows to v2.3 2020-02-12 10:26:34 +11:00
Ivan Grokhotkov
81298c3f70 idf_tools.py: fix install-python-env failure with virtualenv 20.0.0
--no-site-packages is the default behavior since virtualenv 1.7
(released in Nov 2011). This option was removed in virtualenv 20.0.
2020-02-11 09:43:27 +01:00
Angus Gratton
33069f3133 Merge branch 'bugfix/part_gen_subtype_fix_v4.1' into 'release/v4.1'
partition_table: Fix subtype in gen_esp32part.py (v4.1)

See merge request espressif/esp-idf!7535
2020-02-11 12:06:41 +08:00
Angus Gratton
04f589b1c7 Merge branch 'bugfix/remove_cjson_test_file_from_cmake_build_v4.1' into 'release/v4.1'
cJSON: include only source file objects for cmake build (v4.1)

See merge request espressif/esp-idf!7545
2020-02-11 11:57:26 +08:00
Angus Gratton
901ae4d11c Merge branch 'bugfix/newlib_nano_lib_linking_v4.1' into 'release/v4.1'
esp_rom: link newlib nano from ROM only if SPIRAM cache workaround is disabled (v4.1)

See merge request espressif/esp-idf!7544
2020-02-11 11:56:11 +08:00
Mahavir Jain
bdf8df61c0 Merge branch 'bugfix/stage_two_bootloader_linking_v4.1' into 'release/v4.1'
Fixes accessing some files from 2nd part of the bootloader. (v4.1)

See merge request espressif/esp-idf!7541
2020-02-10 20:54:34 +08:00
Mahavir Jain
d41f3cc759 cJSON: include only source file objects for cmake build
Test file can cause build issues in some cases, since it has its own main() function
2020-02-10 17:32:14 +05:30
Mahavir Jain
1ae9541176 esp_rom: link newlib nano from ROM only if SPIRAM cache workaround is disabled 2020-02-10 17:30:25 +05:30
Anton Maklakov
224c221ddd ci: remove using IDF_XTENSA_TOOLCHAIN_URL because there are idf_tools.json and multi-target support 2020-02-10 18:46:42 +07:00
Anton Maklakov
2ad0e78210 ci: Use ARTIFACT_DOWNLOAD_ATTEMPTS and others from the project settings 2020-02-10 18:46:37 +07:00
Supreet Deshpande
546cf10c5d Fixes accessing some files from 2nd part of the bootloader. 2020-02-10 16:33:02 +05:30
boarchuz
994e632a59 Fix subtype in PartitionTable.find_by_type
Fix ptype->subtype

Closes https://github.com/espressif/esp-idf/pull/4723
2020-02-10 08:37:10 +01:00
Angus Gratton
5799999e41 Merge branch 'bugfix/esp_timer_stucks_into_esp_timer_impl_set_alarm_v4.1' into 'release/v4.1'
esp_timer/esp32: Fix esp_timer_impl_set_alarm() when CPU and APB freqs are changed (v4.1)

See merge request espressif/esp-idf!7507
2020-02-10 13:43:05 +08:00
Angus Gratton
4e1c41c7e1 Merge branch 'bugfix/doc_nwdiag_v4.1' into 'release/v4.1'
docs: Fix nwdiag dependency for documentation build (v4.1)

See merge request espressif/esp-idf!7515
2020-02-07 06:29:23 +08:00
Roland Dobai
371565be3e docs: Fix nwdiag dependency for documentation build 2020-02-06 17:51:47 +01:00
KonstantinKondrashov
12353ff3d8 esp_timer/esp32: Fix case when alarm_reg > counter_reg but FRC_TIMER_INT_STATUS is not set
Closes: WIFI-1576
Closes: https://github.com/espressif/esp-idf/issues/2954
2020-02-06 14:43:40 +08:00
Angus Gratton
fc1119331a Merge branch 'bugfix/wps_config_init_v4.1' into 'release/v4.1'
WPS_CONFIG_INIT_DEFAULT(type) error

See merge request espressif/esp-idf!7443
2020-02-06 14:07:19 +08:00
Hrudaynath Dhabe
7d30c6d799 WPS_CONFIG_INIT_DEFAULT(type) error 2020-02-06 14:07:14 +08:00
Angus Gratton
73384c1b52 Merge branch 'bugfix/idf_monitor_usbser_sys_v4.1' into 'release/v4.1'
tools: work around usbser.sys bug in IDF monitor (v4.1)

See merge request espressif/esp-idf!7469
2020-01-31 15:59:59 +08:00
Axel Lin
c67c3aa14e pppos_client: Fix power_down dce immediately after got IP
This was accidently commited bug when convert to use esp-netif, fix it.

Fixes: 25913af2cc ("pppos_client: udated example code to use esp-netif in PPP configuration")
Signed-off-by: Axel Lin <axel.lin@gmail.com>

Merges https://github.com/espressif/esp-idf/pull/4618
2020-01-30 12:00:23 +00:00
Ivan Grokhotkov
70dee9f4bb tools/docker: enable ccache by default 2020-01-30 12:09:08 +01:00
Ivan Grokhotkov
bf6e745ac0 tools/docker: install CMake version provided in tools.json
Closes https://github.com/espressif/esp-idf/issues/4644
Closes IDFGH-2559
2020-01-30 12:09:08 +01:00
Ivan Grokhotkov
e89392596c idf_tools.py: fix typo in __PYVENV_LAUNCHER__ env variable name
Fixes the workaround added in 9279b72a6.
2020-01-30 11:51:59 +01:00
Ivan Grokhotkov
a8bec381bc tools: mark ULP toolchain as not available on 32-bit Linux
Also install ULP toolchain by default on ARM Linux.

Closes https://github.com/espressif/esp-idf/issues/4621
2020-01-30 11:49:39 +01:00
Ivan Grokhotkov
4f46828464 Merge branch 'bugfix/http_client_chunked_test_v4.1' into 'release/v4.1'
http_client: fix example test to expect -1 as content-len for chunked transfer (v4.1)

See merge request espressif/esp-idf!7456
2020-01-30 18:35:49 +08:00
Rosa Elena Veiga Otero
15011e0d16 tools: work around usbser.sys bug in idf_monitor
implemented workaround in idf_monitor for known usbser.sys bug which
causes changes in RTS signal to only be sent if DTR signal also changes.
Works by forcing a dummy change in DTR signal (re-assigning its current
value, as it has previously been done in the flashing tool)

Closes https://github.com/espressif/esp-idf/pull/4676
2020-01-29 10:23:24 +01:00
David Cermak
7261e72ef7 http_client: fix example test to expect -1 as content-len for chunked transfer 2020-01-27 10:36:32 +01:00
Angus Gratton
aedf89237f Merge branch 'bugfix/select_driver_not_installed_v4.1' into 'release/v4.1'
VFS: Check in select() if the UART driver is installed or not (v4.1)

See merge request espressif/esp-idf!7416
2020-01-22 11:55:09 +08:00
Angus Gratton
7848dd949f Merge branch 'bugfix/backport_several_ethernet_bugfix' into 'release/v4.1'
Ethenret driver bugfix and optimization (4.1)

See merge request espressif/esp-idf!7427
2020-01-22 11:54:51 +08:00
Angus Gratton
ba26fdba4c Merge branch 'fix/ci_target_test_v4.1' into 'release/v4.1'
ci: Fix target variable default value (backport v4.1)

See merge request espressif/esp-idf!7425
2020-01-22 11:48:30 +08:00
morris
1a3bb06916 ethernet: always put eth_driver handle in SRAM
Closes https://github.com/espressif/esp-idf/issues/4635
2020-01-21 21:45:24 +08:00
morris
274b0b8d8a ethernet: work with cache disabled
add ETH_MAC_FLAG_WORK_WITH_CACHE_DISABLE flag, make ethenret driver
possible to work when cache disabled

Closes https://github.com/espressif/esp-idf/issues/4406
2020-01-21 21:45:04 +08:00
Shivani Tipnis
9dcb48b86b ci: Fix target variable default value
(cherry picked from commit 3748e06108bd3067b36c3b605feb6aaf438d98eb)
2020-01-21 17:55:23 +05:30
Mahavir Jain
ee42e3d714 Merge branch 'nimble/example_update_doc_v4.1' into 'release/v4.1'
NimBLE: Update the documentation link in the examples (v4.1)

See merge request espressif/esp-idf!7367
2020-01-21 17:56:32 +08:00
Roland Dobai
c2a4dd0c68 VFS: Check in select() if the UART driver is installed or not
Closes https://github.com/espressif/esp-idf/issues/4627
2020-01-21 10:04:38 +01:00
Jiang Jiang Jian
3733c9f8e5 Merge branch 'bugfix/btdm_hci_timeout_v4.1' into 'release/v4.1'
Bugfix/btdm hci timeout v4.1

See merge request espressif/esp-idf!7339
2020-01-21 10:33:46 +08:00
baohongde
38ff669727 components/bt: Fix error EIR type in config eir event 2020-01-20 21:47:23 +08:00
baohongde
c324e7a435 components/bt: Fix connection fail and crash when receive unknown AT cmd 2020-01-20 21:43:23 +08:00
Jiang Jiang Jian
c62d5e942e Merge branch 'bugfix/enable_ipv6_address_autoconfig_v4.1' into 'release/v4.1'
lw-ip: Enable IPv6 stateless address autoconfiguration (backport v4.1)

See merge request espressif/esp-idf!7381
2020-01-20 21:09:19 +08:00
Tian Hao
3e4e538087 fix bug sleep may cause HCI timeout
When Host run different cpu and sleep enable, it may cause hci
timeout about 10s.
2020-01-20 17:41:28 +08:00
xiehang
b99a39535b lwip: Enable IPv6 stateless address autoconfiguration 2020-01-20 08:26:00 +00:00
Tian Hao
f6523748fc fix Kconfig use mistake cause some config not effect
1. Fix bluedroid task pinned_to_core un-effected
2. other minor sdkconfig bugs
2020-01-20 15:24:41 +08:00
Jiang Jiang Jian
09b4bb5eba Merge branch 'bugfix/backport_some_wifi_bugs_0120_v4.1' into 'release/v4.1'
Bugfix/backport some wifi bugs 0120 v4.1

See merge request espressif/esp-idf!7390
2020-01-20 13:56:00 +08:00
Jiang Jiang Jian
e751c59d5d Merge branch 'bugfix/backport_some_controller_bugs_0120_v4.1' into 'release/v4.1'
Bugfix/backport some controller bugs 0120 v4.1

See merge request espressif/esp-idf!7391
2020-01-20 13:55:40 +08:00
June
c0e1f83a91 esp32 5p0 new features support 2020-01-20 12:18:55 +08:00
weitianhua
fd61f75db9 hfp disconn issue for bridgera 2020-01-20 12:18:26 +08:00
xiehang
abe0225ef5 esp_wifi:Fix double recycle bar crash issue 2020-01-20 12:10:48 +08:00
Hrudaynath Dhabe
b530b26e1b esp_wifi: esp_wifi_sta_get_ap_info function returns actual values of group cipher and pairwise cipher 2020-01-20 12:10:06 +08:00
Angus Gratton
51e208533e Merge branch 'bugfix/update_kconfiglib_v4.1' into 'release/v4.1'
tools: Update kconfiglib to 13.7.1 (v4.1)

See merge request espressif/esp-idf!7340
2020-01-20 09:23:10 +08:00
Paul Abbott
c014d32193 Bugfix(LEDC): Add missing ledc_set_pin declaration in led.h 2020-01-17 10:19:15 +08:00
Hrishikesh Dhayagude
19980ace1f NimBLE: Update the documentation link in the examples 2020-01-16 18:00:18 +05:30
15161 changed files with 591139 additions and 2514726 deletions

View File

@@ -19,6 +19,14 @@ trim_trailing_whitespace = false
indent_style = tab
indent_size = 2
[*/freertos/**]
indent_style = tab
indent_size = 4
[{*/freertos/**.S,**/FreeRTOSConfig.h}]
indent_style = space
indent_size = 4
[*.pem]
insert_final_newline = false
@@ -29,9 +37,3 @@ max_line_length = 119
indent_style = space
indent_size = 4
max_line_length = 120
[{*.sh,*.yml,*.yaml}]
indent_size = 2
[*.ini]
indent_size = 2

20
.flake8
View File

@@ -141,25 +141,25 @@ exclude =
__pycache__,
# submodules
components/bootloader/subproject/components/micro-ecc/micro-ecc,
components/bt/host/nimble/nimble,
components/cmock/CMock,
components/esptool_py/esptool,
components/expat/expat,
components/json/cJSON,
components/libsodium/libsodium,
components/mbedtls/mbedtls,
components/openthread/openthread,
components/nghttp/nghttp2,
components/bt/host/nimble/nimble,
components/unity/unity,
components/spiffs/spiffs,
examples/build_system/cmake/import_lib/main/lib/tinyxml2,
# other third-party libraries
tools/kconfig_new/kconfiglib.py,
tools/kconfig_new/menuconfig.py,
# autogenerated scripts
components/protocomm/python/constants_pb2.py,
components/protocomm/python/sec0_pb2.py,
components/protocomm/python/sec1_pb2.py,
components/protocomm/python/sec2_pb2.py,
components/protocomm/python/session_pb2.py,
components/wifi_provisioning/python/wifi_ctrl_pb2.py,
components/wifi_provisioning/python/wifi_scan_pb2.py,
components/wifi_provisioning/python/wifi_config_pb2.py,
components/wifi_provisioning/python/wifi_constants_pb2.py,
components/esp_local_ctrl/python/esp_local_ctrl_pb2.py,
per-file-ignores =
# Sphinx conf.py files use star imports to setup config variables
docs/conf_common.py: F405
examples/provisioning/custom_config/components/custom_provisioning/python/custom_config_pb2.py,

View File

@@ -1,105 +0,0 @@
name: Installation or build bug report
description: Report installation or build bugs
labels: ['Type: Bug']
body:
- type: checkboxes
id: checklist
attributes:
label: Answers checklist.
description: Before submitting a new issue, please follow the checklist and try to find the answer.
options:
- label: I have read the documentation [ESP-IDF Programming Guide](https://docs.espressif.com/projects/esp-idf/en/latest/) and the issue is not addressed there.
required: true
- label: I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
required: true
- label: I have searched the issue tracker for a similar issue and not found a similar issue.
required: true
- type: input
id: idf_version
attributes:
label: IDF version.
description: On which IDF version does this issue occur on? Run `git describe --tags` to find it.
placeholder: ex. v3.2-dev-1148-g96cd3b75c
validations:
required: true
- type: dropdown
id: operating_system
attributes:
label: Operating System used.
multiple: false
options:
- Windows
- Linux
- macOS
validations:
required: true
- type: dropdown
id: build
attributes:
label: How did you build your project?
multiple: false
options:
- Command line with Make
- Command line with CMake
- Command line with idf.py
- Eclipse IDE
- CLion IDE
- VS Code IDE
- Other (please specify in More Information)
validations:
required: true
- type: dropdown
id: windows_comand_line
attributes:
label: If you are using Windows, please specify command line type.
multiple: false
options:
- PowerShell
- CMD
validations:
required: false
- type: textarea
id: expected
attributes:
label: What is the expected behavior?
description: Please provide a clear and concise description of the expected behavior.
placeholder: I expected it to...
validations:
required: true
- type: textarea
id: actual
attributes:
label: What is the actual behavior?
description: Please describe actual behavior.
placeholder: Instead it...
validations:
required: true
- type: textarea
id: steps
attributes:
label: Steps to reproduce.
description: 'How do you trigger this bug? Please walk us through it step by step. If this is build bug, please attach sdkconfig file (from your project folder). Please attach your code here.'
value: |
1. Step
2. Step
3. Step
...
validations:
required: true
- type: textarea
id: debug_logs
attributes:
label: Build or installation Logs.
description: Build or installation log goes here, should contain the backtrace, as well as the reset source if it is a crash.
placeholder: Your log goes here.
render: plain
validations:
required: false
- type: textarea
id: more-info
attributes:
label: More Information.
description: Do you have any other information from investigating this?
placeholder: ex. I tried on my friend's Windows 10 PC and the command works there.
validations:
required: false

View File

@@ -1,133 +0,0 @@
name: Runtime bug report
description: Report runtime bugs
labels: ['Type: Bug']
body:
- type: checkboxes
id: checklist
attributes:
label: Answers checklist.
description: Before submitting a new issue, please follow the checklist and try to find the answer.
options:
- label: I have read the documentation [ESP-IDF Programming Guide](https://docs.espressif.com/projects/esp-idf/en/latest/) and the issue is not addressed there.
required: true
- label: I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
required: true
- label: I have searched the issue tracker for a similar issue and not found a similar issue.
required: true
- type: input
id: idf_version
attributes:
label: IDF version.
description: On which IDF version does this issue occur on? Run `git describe --tags` to find it.
placeholder: ex. v3.2-dev-1148-g96cd3b75c
validations:
required: true
- type: input
id: chip_revision
attributes:
label: Espressif SoC revision.
description: On which Espressif SoC revision does your application run on? Run `esptool chip_id` to find it.
placeholder: ex. ESP32-C3 (QFN32) (revision v0.3)
validations:
required: true
- type: dropdown
id: operating_system
attributes:
label: Operating System used.
multiple: false
options:
- Windows
- Linux
- macOS
validations:
required: true
- type: dropdown
id: build
attributes:
label: How did you build your project?
multiple: false
options:
- Command line with Make
- Command line with CMake
- Command line with idf.py
- Eclipse IDE
- CLion IDE
- VS Code IDE
- Other (please specify in More Information)
validations:
required: true
- type: dropdown
id: windows_comand_line
attributes:
label: If you are using Windows, please specify command line type.
multiple: false
options:
- PowerShell
- CMD
validations:
required: false
- type: input
id: devkit
attributes:
label: Development Kit.
description: On which Development Kit does this issue occur on?
placeholder: ex. ESP32-Wrover-Kit v2 | Custom Board | QEMU
validations:
required: true
- type: dropdown
id: power_supply
attributes:
label: Power Supply used.
multiple: false
options:
- USB
- External 5V
- External 3.3V
- Battery
validations:
required: true
- type: textarea
id: expected
attributes:
label: What is the expected behavior?
description: Please provide a clear and concise description of the expected behavior.
placeholder: I expected it to...
validations:
required: true
- type: textarea
id: actual
attributes:
label: What is the actual behavior?
description: Please describe actual behavior.
placeholder: Instead it...
validations:
required: true
- type: textarea
id: steps
attributes:
label: Steps to reproduce.
description: 'How do you trigger this bug? Please walk us through it step by step. Please attach your code here.'
value: |
1. Step
2. Step
3. Step
...
validations:
required: true
- type: textarea
id: debug_logs
attributes:
label: Debug Logs.
description: Debug log goes here, should contain the backtrace, as well as the reset source if it is a crash.
placeholder: Your log goes here.
render: plain
validations:
required: false
- type: textarea
id: more-info
attributes:
label: More Information.
description: Do you have any other information from investigating this?
placeholder: ex. I tried on my friend's Windows 10 PC and the command works there.
validations:
required: false

View File

@@ -1,34 +0,0 @@
name: Feature request
description: Suggest an idea for this project.
labels: ['Type: Feature Request']
body:
- type: markdown
attributes:
value: |
* We welcome any ideas or feature requests! Its helpful if you can explain exactly why the feature would be useful.
* There are usually some outstanding feature requests in the [existing issues list](https://github.com/espressif/esp-idf/labels/Type%3A%20Feature%20Request), feel free to add comments to them.
* If you would like to contribute, please read the [contributions guide](https://docs.espressif.com/projects/esp-idf/en/stable/esp32/contribute/index.html).
- type: textarea
id: problem-related
attributes:
label: Is your feature request related to a problem?
description: Please provide a clear and concise description of what the problem is.
placeholder: ex. I'm always frustrated when ...
- type: textarea
id: solution
attributes:
label: Describe the solution you'd like.
description: Please provide a clear and concise description of what you want to happen.
placeholder: ex. When connecting to an Espressif chip ...
- type: textarea
id: alternatives
attributes:
label: Describe alternatives you've considered.
description: Please provide a clear and concise description of any alternative solutions or features you've considered.
placeholder: ex. Choosing other approach wouldn't work, because ...
- type: textarea
id: context
attributes:
label: Additional context.
description: Please add any other context or screenshots about the feature request here.
placeholder: ex. This would work only when ...

View File

@@ -1,23 +0,0 @@
name: General issue report
description: File an issue report
body:
- type: checkboxes
id: checklist
attributes:
label: Answers checklist.
description: Before submitting a new issue, please follow the checklist and try to find the answer.
options:
- label: I have read the documentation [ESP-IDF Programming Guide](https://docs.espressif.com/projects/esp-idf/en/latest/) and the issue is not addressed there.
required: true
- label: I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
required: true
- label: I have searched the issue tracker for a similar issue and not found a similar issue.
required: true
- type: textarea
id: issue
attributes:
label: General issue report
description: Your issue report goes here.
placeholder: ex. How do I run...
validations:
required: true

92
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,92 @@
---
name: Bug report
about: ESP-IDF crashes, produces incorrect output, or has incorrect behavior
title: ''
labels: ''
assignees: ''
---
----------------------------- Delete below -----------------------------
**Reminder: If your issue is a general question, starts similar to "How do I..", or is related to 3rd party development kits/libs, please discuss this on our community forum at https://esp32.com instead.**
INSTRUCTIONS
============
Before submitting a new issue, please follow the checklist and try to find the answer.
- [ ] I have read the documentation [ESP-IDF Programming Guide](https://docs.espressif.com/projects/esp-idf/en/latest/) and the issue is not addressed there.
- [ ] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
- [ ] I have searched the issue tracker for a similar issue and not found a similar issue.
If the issue cannot be solved after the steps before, please follow these instructions so we can get the needed information to help you in a quick and effective fashion.
1. Fill in all the fields under **Environment** marked with [ ] by picking the correct option for you in each case and deleting the others.
2. Describe your problem.
3. Include [debug logs from the "monitor" tool](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/idf-monitor.html#automatically-decoding-addresses), or [coredumps](https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/core_dump.html).
4. Providing as much information as possible under **Other items if possible** will help us locate and fix the problem.
5. Use [Markdown](https://guides.github.com/features/mastering-markdown/) (see formatting buttons above) and the Preview tab to check what the issue will look like.
6. Delete these instructions from the above to the below marker lines before submitting this issue.
**IMPORTANT: If you do not follow these instructions and provide the necessary details, your issue may not be resolved.**
----------------------------- Delete above -----------------------------
## Environment
- Development Kit: [ESP32-Wrover-Kit|ESP32-DevKitC|ESP32-PICO-Kit|ESP32-LyraT|ESP32-LyraTD-MSC|none]
- Kit version (for WroverKit/PicoKit/DevKitC): [v1|v2|v3|v4]
- Module or chip used: [ESP32-WROOM-32|ESP32-WROOM-32D|ESP32-WROOM-32U|ESP32-WROVER|ESP32-WROVER-I|ESP32-WROVER-B|ESP32-WROVER-IB|ESP32-SOLO-1|ESP32-PICO-D4|ESP32]
- IDF version (run ``git describe`` to find it):
// v3.2-dev-1148-g96cd3b75c
- Build System: [Make|CMake|idf.py]
- Compiler version (run ``xtensa-esp32-elf-gcc --version`` to find it):
// 1.22.0-80-g6c4433a
- Operating System: [Windows|Linux|macOS]
- (Windows only) environment type: [MSYS2 mingw32|ESP Command Prompt|Plain Command Prompt|PowerShell].
- Using an IDE?: [No|Yes (please give details)]
- Power Supply: [USB|external 5V|external 3.3V|Battery]
## Problem Description
//Detailed problem description goes here.
### Expected Behavior
### Actual Behavior
### Steps to reproduce
1. step1
2. ...
// If possible, attach a picture of your setup/wiring here.
### Code to reproduce this issue
```cpp
// the code should be wrapped in the ```cpp tag so that it will be displayed better.
#include "esp_log.h"
void app_main()
{
}
```
// If your code is longer than 30 lines, [GIST](https://gist.github.com) is preferred.
## Debug Logs
```
Debug log goes here, should contain the backtrace, as well as the reset source if it is a crash.
Please copy the plain text here for us to search the error log. Or attach the complete logs but leave the main part here if the log is *too* long.
```
## Other items if possible
- [ ] sdkconfig file (attach the sdkconfig file from your project folder)
- [ ] elf file in the ``build`` folder (**note this may contain all the code details and symbols of your project.**)
- [ ] coredump (This provides stacks of tasks.)

View File

@@ -1,4 +1,4 @@
blank_issues_enabled: true
blank_issues_enabled: false
contact_links:
- name: ESP-IDF Programming Guide
url: https://docs.espressif.com/projects/esp-idf/en/latest/
@@ -12,3 +12,5 @@ contact_links:
- name: Hardware-related services
url: https://www.espressif.com/en/products/hardware-services
about: Espressif service providing hardware design and certification support

View File

@@ -0,0 +1,26 @@
---
name: Feature request
about: Suggest an idea for ESP-IDF
title: ''
labels: 'Type: Feature Request'
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
Please give as many details as you can. Include suggestions for useful APIs or interfaces if relevant.
**Additional context**
Add any other context or screenshots about the feature request here.

View File

@@ -1,5 +0,0 @@
# Transpiled JavaScript (if any)
dist
# Installed dependencies
node_modules

View File

@@ -1,47 +0,0 @@
# DangerJS pull request automatic review tool - GitHub
## Implementation
The main development is done in Espressif Gitlab project.
Espressif [GitHub project espressif/esp-idf](https://github.com/espressif/esp-idf) is only a public mirror.
Therefore, all changes and updates to DangerJS files (`.github/dangerjs`) must be made via MR in the **Gitlab** repository by Espressif engineer.
When adding a new Danger rule or updating existing one, might be a good idea to test it on the developer's fork of GitHub project. This way, the new feature can be tested using a GitHub action without concern of damaging Espressif's GitHub repository.
Danger for Espressif GitHub is implemented in TypeScript. This makes the code more readable and robust than plain JavaScript.
Compilation to JavaScript code (using `tsc`) is not necessary; Danger handles TypeScript natively.
A good practice is to store each Danger rule in a separate module, and then import these modules into the main Danger file `.github/dangerjs/dangerfile.ts` (see how this is done for currently present modules when adding a new one).
If the Danger module (new check/rule) uses an external NPM module (e.g. `axios`), be sure to add this dependency to `.github/dangerjs/package.json` and also update `.github/dangerjs/package-lock.json`.
In the GitHub action, `danger` is not installed globally (nor are its dependencies) and the `npx` call is used to start the `danger` checks in CI.
## Adding new Danger rule
For local development you can use following strategy
#### Install dependencies
```sh
cd .github/dangerjs
npm install
```
(If the IDE still shows compiler/typing errors, reload the IDE window.)
#### Add new code as needed or make updates
#### Test locally
Danger rules can be tested locally (without running the GitHub action pipeline).
To do this, you have to first export the ENV variables used by Danger in the local terminal:
```sh
export GITHUB_TOKEN='**************************************'
```
Then you can call Danger by:
```sh
cd .github/dangerjs
danger pr https://github.com/espressif/esp-idf/pull/<number_of_pull_request>
```
The result will be displayed in your terminal.

View File

@@ -1,48 +0,0 @@
import { DangerResults } from "danger";
declare const results: DangerResults;
declare const message: (message: string, results?: DangerResults) => void;
declare const markdown: (message: string, results?: DangerResults) => void;
// Import modules with danger rules
// (Modules with checks are stored in ".github/dangerjs/<module_name>.ts". To import them, use path relative to "dangerfile.ts")
import prCommitsTooManyCommits from "./prCommitsTooManyCommits";
import prDescription from "./prDescription";
import prTargetBranch from "./prTargetBranch";
import prInfoContributor from "./prInfoContributor";
import prCommitMessage from "./prCommitMessage";
async function runDangerRules(): Promise<void> {
// Message to contributor about review and merge process
const prInfoContributorMessage: string = await prInfoContributor();
markdown(prInfoContributorMessage);
// Run danger checks
prCommitsTooManyCommits();
prDescription();
prTargetBranch();
prCommitMessage();
// Add success log if no issues
const dangerFails: number = results.fails.length;
const dangerWarns: number = results.warnings.length;
const dangerInfos: number = results.messages.length;
if (!dangerFails && !dangerWarns && !dangerInfos) {
return message("Good Job! All checks are passing!");
}
// Add retry link
addRetryLink();
}
runDangerRules();
function addRetryLink(): void {
const serverUrl: string | undefined = process.env.GITHUB_SERVER_URL;
const repoName: string | undefined = process.env.GITHUB_REPOSITORY;
const runId: string | undefined = process.env.GITHUB_RUN_ID;
const retryLinkUrl: string = `${serverUrl}/${repoName}/actions/runs/${runId}`;
const retryLink: string = `<sub>:repeat: You can re-run automatic PR checks by retrying the <a href="${retryLinkUrl}">DangerJS action</a></sub>`;
markdown(retryLink);
}

1999
.github/dangerjs/package-lock.json generated vendored

File diff suppressed because it is too large Load Diff

View File

@@ -1,18 +0,0 @@
{
"name": "dangerjs-github",
"description": "GitHub PR reviewing with DangerJS",
"main": "dangerfile.ts",
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"axios": "^1.3.3",
"danger": "^11.2.3",
"request": "^2.88.2",
"sync-request": "^6.1.0",
"typescript": "^5.0.3"
},
"devDependencies": {
"@types/node": "^18.15.11"
}
}

View File

@@ -1,67 +0,0 @@
import { DangerDSLType, DangerResults } from "danger";
declare const danger: DangerDSLType;
declare const warn: (message: string, results?: DangerResults) => void;
interface Commit {
message: string;
}
/**
* Check if commit messages are sufficiently descriptive (not too short).
*
* Search for commit messages that appear to be automatically generated or temporary messages and report them.
*
* @dangerjs WARN
*/
export default function (): void {
const prCommits: Commit[] = danger.git.commits;
const detectRegexes: RegExp[] = [
/^Merge pull request #\d+ from .*/i, // Automatically generated message by GitHub
/^Merged .+:.+ into .+/i, // Automatically generated message by GitHub
/^Automatic merge by GitHub Action/i, // Automatically generated message by GitHub
/^Merge branch '.*' of .+ into .+/i, // Automatically generated message by GitHub
/^Create\s[a-zA-Z0-9_.-]+(\.[a-zA-Z0-9]{1,4})?(?=\s|$)/, // Automatically generated message by GitHub using UI
/^Delete\s[a-zA-Z0-9_.-]+(\.[a-zA-Z0-9]{1,4})?(?=\s|$)/, // Automatically generated message by GitHub using UI
/^Update\s[a-zA-Z0-9_.-]+(\.[a-zA-Z0-9]{1,4})?(?=\s|$)/, // Automatically generated message by GitHub using UI
/^Initial commit/i, // Automatically generated message by GitHub
/^WIP.*/i, // Message starts with prefix "WIP"
/^Cleaned.*/i, // Message starts "Cleaned", , probably temporary
/^Test:.*/i, // Message starts with "test" prefix, probably temporary
/clean ?up/i, // Message contains "clean up", probably temporary
/^[^A-Za-z0-9\s].*/, // Message starts with special characters
];
let partMessages: string[] = [];
for (const commit of prCommits) {
const commitMessage: string = commit.message;
const commitMessageTitle: string = commit.message.split("\n")[0];
// Check if the commit message matches any regex from "detectRegexes"
if (detectRegexes.some((regex) => commitMessage.match(regex))) {
partMessages.push(
`- the commit message \`${commitMessageTitle}\` appears to be a temporary or automatically generated message`
);
continue;
}
// Check if the commit message is not too short
const shortCommitMessageThreshold: number = 20; // commit message is considered too short below this number of characters
if (commitMessage.length < shortCommitMessageThreshold) {
partMessages.push(
`- the commit message \`${commitMessageTitle}\` may not be sufficiently descriptive`
);
}
}
// Create report
if (partMessages.length) {
partMessages.sort();
let dangerMessage = `\nSome issues found for the commit messages in this MR:\n${partMessages.join(
"\n"
)}
\nPlease consider updating these commit messages.`;
warn(dangerMessage);
}
}

View File

@@ -1,19 +0,0 @@
import { DangerDSLType, DangerResults } from "danger";
declare const danger: DangerDSLType;
declare const message: (message: string, results?: DangerResults) => void;
/**
* Check if pull request has not an excessive numbers of commits (if squashed)
*
* @dangerjs INFO
*/
export default function (): void {
const tooManyCommitThreshold: number = 2; // above this number of commits, squash commits is suggested
const prCommits: number = danger.github.commits.length;
if (prCommits > tooManyCommitThreshold) {
return message(
`You might consider squashing your ${prCommits} commits (simplifying branch history).`
);
}
}

View File

@@ -1,19 +0,0 @@
import { DangerDSLType, DangerResults } from "danger";
declare const danger: DangerDSLType;
declare const warn: (message: string, results?: DangerResults) => void;
/**
* Check if pull request has has a sufficiently accurate description
*
* @dangerjs WARN
*/
export default function (): void {
const prDescription: string = danger.github.pr.body;
const shortPrDescriptionThreshold: number = 100; // Description is considered too short below this number of characters
if (prDescription.length < shortPrDescriptionThreshold) {
return warn(
"The PR description looks very brief, please check if more details can be added."
);
}
}

View File

@@ -1,58 +0,0 @@
import { DangerDSLType } from "danger";
declare const danger: DangerDSLType;
interface Contributor {
login?: string;
}
const authorLogin = danger.github.pr.user.login;
const messageKnownContributor: string = `
***
👋 **Hi ${authorLogin}**, thank you for your another contribution to \`espressif/esp-idf\` project!
If the change is approved and passes the tests in our internal git repository, it will appear in this public Github repository on the next sync.
***
`;
const messageFirstContributor: string = `
***
👋 **Welcome ${authorLogin}**, thank you for your first contribution to \`espressif/esp-idf\` project!
📘 Please check [Contributions Guide](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/contribute/index.html#contributions-guide) for the contribution checklist, information regarding code and documentation style, testing and other topics.
🖊️ Please also make sure you have **read and signed** the [Contributor License Agreement for espressif/esp-idf project](https://cla-assistant.io/espressif/esp-idf).
#### Pull request review and merge process you can expect
Espressif develops the ESP-IDF project in an internal repository (Gitlab). We do welcome contributions in the form of bug reports, feature requests and pull requests via this public GitHub repository.
1. An internal issue has been created for the PR, we assign it to the relevant engineer
2. They review the PR and either approve it or ask you for changes or clarifications
3. Once the Github PR is approved, we synchronize it into our internal git repository
4. In the internal git repository we do the final review, collect approvals from core owners and make sure all the automated tests are passing
- At this point we may do some adjustments to the proposed change, or extend it by adding tests or documentation.
5. If the change is approved and passes the tests it is merged into the \`master\` branch
6. On next sync from the internal git repository merged change will appear in this public Github repository
***
`;
/**
* Check whether the author of the pull request is known or a first-time contributor, and add a message to the PR with information about the review and merge process.
*/
export default async function (): Promise<string> {
const contributors = await danger.github.api.repos.listContributors({
owner: danger.github.thisPR.owner,
repo: danger.github.thisPR.repo,
});
const contributorsData: Contributor[] = contributors.data;
const knownContributors: (string | undefined)[] = contributorsData.map(
(contributor: Contributor) => contributor.login
);
if (knownContributors.includes(authorLogin)) {
return messageKnownContributor;
} else {
return messageFirstContributor;
}
}

View File

@@ -1,19 +0,0 @@
import { DangerDSLType, DangerResults } from "danger";
declare const danger: DangerDSLType;
declare const fail: (message: string, results?: DangerResults) => void;
/**
* Check if the target branch is "master"
*
* @dangerjs FAIL
*/
export default function (): void {
const prTargetBranch: string = danger.github?.pr?.base?.ref;
if (prTargetBranch !== "master") {
return fail(`
The target branch for this pull request should be \`master\`.\n
If you would like to add this feature to the release branch, please state this in the PR description and we will consider backporting it.
`);
}
}

View File

@@ -1,17 +0,0 @@
{
"compilerOptions": {
"module": "commonjs",
"moduleResolution": "node",
"esModuleInterop": true,
"target": "es6",
"noImplicitAny": true,
"noUnusedParameters": true,
"strictNullChecks": true,
"sourceMap": true,
"removeComments": true,
"outDir": "./dist"
},
"include": [
"./*.ts"
]
}

View File

@@ -1,15 +0,0 @@
version: 2
updates:
- package-ecosystem: "all"
directory: "/"
schedule:
interval: "weekly"
ignore:
- directory: ".gitlab/dangerjs"
patterns:
- "package-lock.json"
- directory: ".github/dangerjs"
patterns:
- "package-lock.json"
# Disable "version updates" (keep only "security updates")
open-pull-requests-limit: 0

View File

@@ -1,36 +0,0 @@
name: DangerJS Pull Request review
on:
pull_request_target:
types: [opened, edited, reopened, synchronize]
permissions:
pull-requests: write
contents: write
jobs:
danger-check:
runs-on: ubuntu-latest
defaults:
run:
working-directory: .github/dangerjs
steps:
- name: Check out PR head
uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Setup NodeJS environment
uses: actions/setup-node@v3
with:
node-version: 18
cache: npm
cache-dependency-path: .github/dangerjs/package-lock.json
- name: Install DangerJS dependencies
run: npm install
- name: Run DangerJS
run: npx danger ci --failOnErrors -v
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -13,7 +13,7 @@ on:
env:
# Platforms to build the image for
BUILD_PLATFORMS: linux/amd64,linux/arm64
BUILD_PLATFORMS: linux/amd64
DOCKERHUB_REPO: ${{ github.repository_owner }}/idf
jobs:
@@ -73,15 +73,3 @@ jobs:
build-args: |
IDF_CLONE_URL=${{ github.server_url }}/${{ github.repository }}.git
IDF_CLONE_BRANCH_OR_TAG=${{ env.CLONE_BRANCH_OR_TAG }}
- name: Update Docker Hub repository description (master branch)
if: ${{ github.ref_type == 'branch' && github.ref_name == 'master' }}
uses: peter-evans/dockerhub-description@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
# Token based authentication is not supported here:
# https://github.com/peter-evans/dockerhub-description/issues/10
# https://github.com/docker/roadmap/issues/115#issuecomment-891694974
password: ${{ secrets.DOCKERHUB_PASSWORD }}
repository: ${{ env.DOCKERHUB_REPO }}
readme-filepath: ./tools/docker/README.md

View File

@@ -3,16 +3,12 @@ name: Sync issue comments to JIRA
# This workflow will be triggered when new issue comment is created (including PR comments)
on: issue_comment
# Limit to single concurrent run for workflows which can create Jira issues.
# Same concurrency group is used in new_issues.yml
concurrency: jira_issues
jobs:
sync_issue_comments_to_jira:
name: Sync Issue Comments to Jira
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@master
- name: Sync issue comments to JIRA
uses: espressif/github-actions/sync_issues_to_jira@master
env:

View File

@@ -3,16 +3,12 @@ name: Sync issues to Jira
# This workflow will be triggered when a new issue is opened
on: issues
# Limit to single concurrent run for workflows which can create Jira issues.
# Same concurrency group is used in issue_comment.yml
concurrency: jira_issues
jobs:
sync_issues_to_jira:
name: Sync issues to Jira
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@master
- name: Sync GitHub issues to Jira project
uses: espressif/github-actions/sync_issues_to_jira@master
env:

View File

@@ -6,16 +6,12 @@ on:
schedule:
- cron: "0 * * * *"
# Limit to single concurrent run for workflows which can create Jira issues.
# Same concurrency group is used in issue_comment.yml
concurrency: jira_issues
jobs:
sync_prs_to_jira:
name: Sync PRs to Jira
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@master
- name: Sync PRs to Jira project
uses: espressif/github-actions/sync_issues_to_jira@master
with:

View File

@@ -1,23 +0,0 @@
name: Sync approved PRs to internal codebase
on:
pull_request_target:
types: [labeled]
jobs:
sync_prs_to_internal_codebase:
name: GitHub PR to Internal Codebase Sync
runs-on: ubuntu-latest
if: (github.event.label.name == 'PR-Sync-Merge') ||
(github.event.label.name == 'PR-Sync-Rebase') ||
(github.event.label.name == 'PR-Sync-Update')
steps:
- uses: actions/checkout@v2
- name: Sync approved PRs to internal codebase
uses: espressif/github-actions/github_pr_to_internal_pr@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITLAB_URL: ${{ secrets.GITLAB_URL }}
GITLAB_TOKEN: ${{ secrets.GITLAB_TOKEN }}
GIT_CONFIG_NAME: ${{ secrets.GIT_CONFIG_NAME }}
GIT_CONFIG_EMAIL: ${{ secrets.GIT_CONFIG_EMAIL }}
JIRA_PROJECT: IDFGH

View File

@@ -1,42 +0,0 @@
name: Check pre-commit rules
on:
pull_request:
types: [opened, reopened, synchronize]
permissions:
contents: read
jobs:
pre_commit_check:
runs-on: ubuntu-latest
env:
SKIP: "cleanup-ignore-lists" # Comma-separated string of ignored pre-commit check IDs
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Fetch head and base refs
# This is necessary for pre-commit to check the changes in the PR branch
run: |
git fetch origin ${{ github.base_ref }}:base_ref
git fetch origin pull/${{ github.event.pull_request.number }}/head:pr_ref
- name: Set up Python environment
uses: actions/setup-python@master
with:
python-version: v3.8
- name: Install python packages
run: |
pip install pre-commit
pre-commit install-hooks
- name: Run pre-commit and check for any changes
run: |
echo "Commits being checked:"
git log --oneline --no-decorate base_ref..pr_ref
echo ""
if ! pre-commit run --from-ref base_ref --to-ref pr_ref --show-diff-on-failure ; then
echo ""
echo "::notice::It looks like the commits in this PR have been made without having pre-commit hooks installed."
echo "::notice::Please see https://docs.espressif.com/projects/esp-idf/en/latest/esp32/contribute/install-pre-commit-hook.html for instructions."
echo ""
exit 1
fi

32
.github/workflows/python_lint.yml vendored Normal file
View File

@@ -0,0 +1,32 @@
name: Python CI
# This workflow will be triggered when a PR modifies some python relevant files
on:
pull_request:
paths:
- "**.py"
- "requirements.txt"
jobs:
python_lint:
name: python lint
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [2.7, 3.5, 3.6, 3.7]
steps:
- name: Checkout
uses: actions/checkout@master
- name: Set up Python environment
uses: actions/setup-python@master
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
pip install --upgrade pip
pip install -r requirements.txt
- name: Lint with flake8
run: |
pip install flake8
flake8 . --config=.flake8

53
.gitignore vendored
View File

@@ -21,23 +21,19 @@ GPATH
# MacOS directory files
.DS_Store
# cache dir
.cache/
# Components Unit Test Apps files
components/**/build/
components/**/build_*_*/
components/**/sdkconfig
components/**/sdkconfig.old
# Example project files
examples/**/build/
examples/**/build_esp*_*/
examples/**/sdkconfig
examples/**/sdkconfig.old
examples/**/build
# Doc build artifacts
docs/_build/
docs/*/_build/
docs/*/doxygen-warning-log.txt
docs/*/sphinx-warning-log.txt
docs/*/sphinx-warning-log-sanitized.txt
docs/*/xml/
docs/*/xml_in/
docs/*/man/
docs/doxygen_sqlite3.db
# Downloaded font files
@@ -48,18 +44,11 @@ docs/_static/NotoSansSC-Regular.otf
tools/unit-test-app/sdkconfig
tools/unit-test-app/sdkconfig.old
tools/unit-test-app/build
tools/unit-test-app/build_*_*/
tools/unit-test-app/builds
tools/unit-test-app/output
tools/unit-test-app/test_configs
# Unit Test CMake compile log folder
log_ut_cmake
# test application build files
tools/test_apps/**/build/
tools/test_apps/**/build_*_*/
tools/test_apps/**/sdkconfig
tools/test_apps/**/sdkconfig.old
# IDF monitor test
tools/test_idf_monitor/outputs
TEST_LOGS
@@ -78,10 +67,6 @@ test_multi_heap_host
*.swp
*.swo
# Sublime Text files
*.sublime-project
*.sublime-workspace
# Clion IDE CMake build & config
.idea/
cmake-build-*/
@@ -94,18 +79,4 @@ flake8_output.txt
build
# lock files for examples and components
dependencies.lock
# managed_components for examples
managed_components
# pytest log
pytest_embedded_log/
list_job_*.txt
size_info.txt
# clang config (for LSP)
.clangd
# Vale
.vale/styles/*
dependencies.lock

View File

@@ -1,31 +1,174 @@
stages:
- pre_check
- build
- assign_test
- host_test
- target_test
- post_check
- deploy
- post_check
# pipelines will not be created in such two cases:
# 1. MR push
# 2. push not on "master/release" branches, and not tagged
# This behavior could be changed after the `rules: changes` feature is implemented
workflow:
rules:
# Disable those non-protected push triggered pipelines
- if: '$CI_COMMIT_REF_NAME != "master" && $CI_COMMIT_BRANCH !~ /^release\/v/ && $CI_COMMIT_TAG !~ /^v\d+\.\d+(\.\d+)?($|-)/ && $CI_COMMIT_TAG !~ /^qa-test/ && $CI_PIPELINE_SOURCE == "push"'
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
when: never
- if: '$CI_COMMIT_REF_NAME != "master" && $CI_COMMIT_BRANCH !~ /^release\/v/ && $CI_COMMIT_TAG !~ /^v\d+\.\d+(\.\d+)?($|-)/ && $CI_PIPELINE_SOURCE == "push"'
when: never
# when running merged result pipelines, CI_COMMIT_SHA represents the temp commit it created.
# Please use PIPELINE_COMMIT_SHA at all places that require a commit sha of the original commit.
- if: $CI_OPEN_MERGE_REQUESTS != null
variables:
PIPELINE_COMMIT_SHA: $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA
IS_MR_PIPELINE: 1
- if: $CI_OPEN_MERGE_REQUESTS == null
variables:
PIPELINE_COMMIT_SHA: $CI_COMMIT_SHA
IS_MR_PIPELINE: 0
- when: always
# Place the default settings in `.gitlab/ci/common.yml` instead
variables:
# System environment
# Common parameters for the 'make' during CI tests
MAKEFLAGS: "-j5 --no-keep-going"
# GitLab-CI environment
# XXX_ATTEMPTS variables (https://docs.gitlab.com/ce/ci/yaml/README.html#job-stages-attempts) are not defined here.
# Use values from "CI / CD Settings" - "Variables".
# GIT_STRATEGY is not defined here.
# Use an option from "CI / CD Settings" - "General pipelines".
# we will download archive for each submodule instead of clone.
# we don't do "recursive" when fetch submodule as they're not used in CI now.
GIT_SUBMODULE_STRATEGY: none
SUBMODULE_FETCH_TOOL: "tools/ci/ci_fetch_submodule.py"
# by default we will fetch all submodules
# jobs can overwrite this variable to only fetch submodules they required
# set to "none" if don't need to fetch submodules
SUBMODULES_TO_FETCH: "all"
# tell build system do not check submodule update as we download archive instead of clone
IDF_SKIP_CHECK_SUBMODULES: 1
UNIT_TEST_BUILD_SYSTEM: cmake
EXAMPLE_TEST_BUILD_SYSTEM: cmake
IDF_PATH: "$CI_PROJECT_DIR"
BATCH_BUILD: "1"
V: "0"
APPLY_BOT_FILTER_SCRIPT: "$CI_PROJECT_DIR/tools/ci/apply_bot_filter.py"
CHECKOUT_REF_SCRIPT: "$CI_PROJECT_DIR/tools/ci/checkout_project_ref.py"
# Docker images
BOT_DOCKER_IMAGE_TAG: ":latest"
# target test config file, used by assign test job
CI_TARGET_TEST_CONFIG_FILE: "$CI_PROJECT_DIR/tools/ci/config/target-test.yml"
# target test repo parameters
TEST_ENV_CONFIG_REPO: "https://gitlab-ci-token:${BOT_TOKEN}@${CI_SERVER_HOST}:${CI_SERVER_PORT}/qa/ci-test-runner-configs.git"
# Versioned esp-idf-doc env image to use for all document building jobs
ESP_IDF_DOC_ENV_IMAGE: "$CI_DOCKER_REGISTRY/esp-idf-doc-env:v7"
# before each job, we need to check if this job is filtered by bot stage/job filter
.apply_bot_filter: &apply_bot_filter
python $APPLY_BOT_FILTER_SCRIPT || exit 0
.setup_tools_unless_target_test: &setup_tools_unless_target_test |
if [[ "$SETUP_TOOLS" == "1" || "$CI_JOB_STAGE" != "target_test" ]]; then
tools/idf_tools.py --non-interactive install && eval "$(tools/idf_tools.py --non-interactive export)" || exit 1
fi
.fetch_submodules: &fetch_submodules |
python $SUBMODULE_FETCH_TOOL -s $SUBMODULES_TO_FETCH
before_script:
- source tools/ci/utils.sh
- is_based_on_commits $REQUIRED_ANCESTOR_COMMITS
- source tools/ci/setup_python.sh
# apply bot filter in before script
- *apply_bot_filter
# add gitlab ssh key
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- echo -n $GITLAB_KEY > ~/.ssh/id_rsa_base64
- base64 --decode --ignore-garbage ~/.ssh/id_rsa_base64 > ~/.ssh/id_rsa
- chmod 600 ~/.ssh/id_rsa
- echo -e "Host gitlab.espressif.cn\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
# Set some options and environment for CI
- source tools/ci/configure_ci_environment.sh
- *setup_tools_unless_target_test
- *fetch_submodules
# used for check scripts which we want to run unconditionally
.before_script_lesser_nofilter:
variables:
GIT_SUBMODULE_STRATEGY: none
before_script:
- echo "Not setting up GitLab key, not fetching submodules, not applying bot filter"
- source tools/ci/utils.sh
- is_based_on_commits $REQUIRED_ANCESTOR_COMMITS
- source tools/ci/setup_python.sh
- source tools/ci/configure_ci_environment.sh
# used for everything else where we want to do no prep, except for bot filter
.before_script_lesser:
variables:
GIT_SUBMODULE_STRATEGY: none
before_script:
- echo "Not setting up GitLab key, not fetching submodules"
- source tools/ci/utils.sh
- is_based_on_commits $REQUIRED_ANCESTOR_COMMITS
- source tools/ci/setup_python.sh
# apply bot filter in before script
- *apply_bot_filter
- source tools/ci/configure_ci_environment.sh
.check_job_template:
stage: pre_check
image: $CI_DOCKER_REGISTRY/esp32-ci-env$BOT_DOCKER_IMAGE_TAG
tags:
- host_test
dependencies: []
extends: .before_script_lesser_nofilter
.check_job_template_with_filter:
stage: pre_check
image: $CI_DOCKER_REGISTRY/esp32-ci-env$BOT_DOCKER_IMAGE_TAG
tags:
- host_test
dependencies: []
extends: .before_script_lesser_nofilter
.macos_build_template:
stage: build
tags:
- macos_shell
dependencies: []
before_script:
- source tools/ci/utils.sh
- is_based_on_commits $REQUIRED_ANCESTOR_COMMITS
- *apply_bot_filter
- export IDF_TOOLS_PATH="${HOME}/.espressif_runner_${CI_RUNNER_ID}_${CI_CONCURRENT_ID}"
- $IDF_PATH/tools/idf_tools.py install-python-env
# On macOS, these tools need to be installed
- $IDF_PATH/tools/idf_tools.py --non-interactive install cmake ninja
# This adds tools (compilers) and the version-specific Python environment to PATH
- *setup_tools_unless_target_test
# Install packages required by CI scripts into IDF Python environment
- pip install -r $IDF_PATH/tools/ci/python_packages/ttfw_idf/requirements.txt
- source tools/ci/configure_ci_environment.sh
# Part of tools/ci/setup_python.sh; we don't use pyenv on macOS, so can't run the rest of the script.
- export PYTHONPATH="$IDF_PATH/tools:$IDF_PATH/tools/ci/python_packages:$PYTHONPATH"
- *fetch_submodules
default:
retry:
max: 2
# In case of a runner failure we could hop to another one, or a network error could go away.
when: runner_system_failure
include:
- '.gitlab/ci/common.yml'
- '.gitlab/ci/rules.yml'
- '.gitlab/ci/upload_cache.yml'
- '.gitlab/ci/docs.yml'
- '.gitlab/ci/static-code-analysis.yml'
- '.gitlab/ci/pre_check.yml'
- '.gitlab/ci/build.yml'
- '.gitlab/ci/integration_test.yml'
- '.gitlab/ci/host-test.yml'
- '.gitlab/ci/target-test.yml'
- '.gitlab/ci/deploy.yml'
- '/tools/ci/config/pre_check.yml'
- '/tools/ci/config/build.yml'
- '/tools/ci/config/assign-test.yml'
- '/tools/ci/config/host-test.yml'
- '/tools/ci/config/target-test.yml'
- '/tools/ci/config/post_check.yml'
- '/tools/ci/config/deploy.yml'

View File

@@ -1,325 +0,0 @@
# IDF CI
- [IDF CI](#idf-ci)
- [General Workflow](#general-workflow)
- [What if Expected Jobs ARE NOT Created?](#what-if-expected-jobs-are-not-created)
- [MR labels for additional jobs](#mr-labels-for-additional-jobs)
- [Supported MR Labels](#supported-mr-labels)
- [How to trigger a `detached` pipeline without pushing new commits?](#how-to-trigger-a-detached-pipeline-without-pushing-new-commits)
- [How to Develop With `rules.yml`?](#how-to-develop-with-rulesyml)
- [General Concepts](#general-concepts)
- [How to Add a New `Job`?](#how-to-add-a-new-job)
- [How to Add a New `Rules` Template?](#how-to-add-a-new-rules-template)
- [How to Add a New `if` Anchor?](#how-to-add-a-new-if-anchor)
- [Naming Rules](#naming-rules)
- [Common Naming Rules](#common-naming-rules)
- [`if` Anchors Naming Rules](#if-anchors-naming-rules)
- [`rules` Template Naming Rules](#rules-template-naming-rules)
- [Reusable Shell Script `tools/ci/utils.sh`](#reusable-shell-script-toolsciutilssh)
- [Functions](#functions)
- [CI Job Related](#ci-job-related)
- [Shell Script Related](#shell-script-related)
- [Manifest File to Control the Build/Test apps](#manifest-file-to-control-the-buildtest-apps)
- [Grammar](#grammar)
- [Special Rules](#special-rules)
- [Upload/Download Artifacts to Internal Minio Server](#uploaddownload-artifacts-to-internal-minio-server)
- [Users Without Access to Minio](#users-without-access-to-minio)
- [Users With Access to Minio](#users-with-access-to-minio)
- [Env Vars for Minio](#env-vars-for-minio)
- [Artifacts Types and File Patterns](#artifacts-types-and-file-patterns)
- [Upload](#upload)
- [Download](#download)
## General Workflow
1. Push to a remote branch
2. Create an MR, choose related labels (not required)
3. A `detached` pipeline will be created.
4. if you push a new commit, a new pipeline will be created automatically.
## What if Expected Jobs ARE NOT Created?
1. check the file patterns
If you found a job that is not running as expected with some file changes, a git commit to improve the `pattern` will be appreciated.
2. please add MR labels to run additional tests, currently we have to do this only for `target-test` jobs, please use it as few as possible. Our final goal is to remove all the labels and let the file changes decide everything!
## MR labels for additional jobs
### Supported MR Labels
- `build`
- `build_docs`
- `component_ut[_esp32/esp32s2/...]`
- `custom_test[_esp32/esp32s2/...]`
- `docker`
- `docs`
- `docs_full`, triggers a full docs build, regardless of files changed
- `example_test[_esp32/esp32s2/...]`
- `fuzzer_test`
- `host_test`
- `integration_test`
- `iperf_stress_test`
- `macos`
- `macos_test`
- `nvs_coverage`
- `submodule`
- `windows`
There are two general labels (not recommended since these two labels will trigger a lot of jobs)
- `target_test`: includes all target for `example_test`, `custom_test`, `component_ut`, `integration_test`
- `all_test`: includes all test labels
### How to trigger a `detached` pipeline without pushing new commits?
Go to MR web page -> `Pipelines` tab -> click `Run pipeline` button.
In very rare case, this tab will not show up because no merge_request pipeline is created before. Please use web API then.
```shell
curl -X POST --header "PRIVATE-TOKEN: [YOUR PERSONAL ACCESS TOKEN]" [GITLAB_SERVER]/api/v4/projects/103/merge_requests/[MERGE_REQUEST_IID]/pipelines
```
## How to Develop With `rules.yml`?
### General Concepts
- `pattern`: Defined in an array. A GitLab job will be created if the changed files in this MR matched one of the patterns. For example:
```yaml
.patterns-python-files: &patterns-python-files
- "**/*.py"
```
- `label`: Defined in an if clause, similar as the previous bot command. A GitLab job will be created if the pipeline variables contains variables in `BOT_LABEL_xxx` format (DEPRECATED) or included in the MR labels. For example:
```yaml
.if-label-build_docs: &if-label-build_docs
if: '$BOT_LABEL_BUILD_DOCS || $CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*build_docs(?:,[^,\n\r]+)*$/i'
```
- `rule`: A combination of various patterns, and labels. It will be used by GitLab YAML `extends` keyword to tell GitLab in what conditions will this job be created. For example:
```yaml
.rules:build:docs:
rules:
- <<: *if-protected
- <<: *if-label-build_docs
- <<: *if-label-docs
- <<: *if-dev-push
changes: *patterns-docs
```
An example for GitLab job on how to use extends:
```yaml
check_docs_lang_sync:
extends:
- .pre_check_template
- .rules:build:docs
script:
- cd docs
- ./check_lang_folder_sync.sh
```
### How to Add a New `Job`?
check if there's a suitable `.rules:<rules-you-need>` template
1. if there is, put this in the job `extends`. All done, now you can close this window. (`extends` could be array or string)
2. if there isn't
1. check [How to Add a New `Rules` Template?](#how-to-add-a-new-rules-template), create a suitable one
2. follow step 1
### How to Add a New `Rules` Template?
check if this rule is related to `labels`, `patterns`
1. if it is, please refer to [dependencies/README.md](./dependencies/README.md) and add new rules by auto-generating
2. if it isn't, please continue reading
check if there's a suitable `.if-<if-anchor-you-need>` anchor
1. if there is, create a rule following [`rules` Template Naming Rules](#rules-template-naming-rules).For detail information, please refer to [GitLab Documentation `rules-if`](https://docs.gitlab.com/ee/ci/yaml/README.html#rulesif). Here's an example.
```yaml
.rules:patterns:python-files:
rules:
- <<: *if-protected
- <<: *if-dev-push
changes: *patterns-python-files
```
2. if there isn't
1. check [How to Add a New `if` Anchor?](#how-to-add-a-new-if-anchor), create a suitable one
2. follow step 1
### How to Add a New `if` Anchor?
Create an `if` anchor following [`if` Anchors Naming Rules](#if-anchors-naming-rules). For detailed information about how to write the condition clause, please refer to [GitLab Documentation `only/except (advanced)](https://docs.gitlab.com/ee/ci/yaml/README.html#onlyexcept-advanced). Here's an example.
```yaml
.if-schedule: &if-schedule:
if: '$CI_PIPELINE_SOURCE == "schedule"'
```
### Naming Rules
#### Common Naming Rules
if a phrase has multi words, use `_` to concatenate them.
> e.g. `regular_test`
if a name has multi phrases, use `-` to concatenate them.
> e.g. `regular_test-example_test`
#### `if` Anchors Naming Rules
- if it's a label: `.if-label-<label_name>`
- if it's a ref: `.if-ref-<ref_name>`
- if it's a branch: `.if-branch-<branch_name>`
- if it's a tag: `.if-tag-<tag_name>`
- if it's multi-type combination: `.if-ref-<release_name>-branch-<branch_name>`
**Common Phrases/Abbreviations**
- `no_label`
`$BOT_TRIGGER_WITH_LABEL == null`
- `protected`
`($CI_COMMIT_REF_NAME == "master" || $CI_COMMIT_BRANCH =~ /^release\/v/ || $CI_COMMIT_TAG =~ /^v\d+\.\d+(\.\d+)?($|-)/)`
- `target_test`
a combination of `example_test`, `custom_test`, `component_ut`, `integration_test` and all targets
#### `rules` Template Naming Rules
- if it's tag related: `.rules:tag:<tag_1>-<tag_2>`
- if it's label related: `.rules:labels:<label_1>-<label_2>`
- if it's test related: `.rules:test:<test_type>`
- if it's build related: `.rules:build:<build_type>`
- if it's pattern related: `.rules:patterns:<patterns>`
## Reusable Shell Script `tools/ci/utils.sh`
It is used to put all the reusable shell scripts as small functions. If you want to set `before_script: []` for you job, now you can set `extends: .before_script_slim` instead. it will only run `source tools/ci/utils.sh`
If you're developing CI shell scripts, you can use these functions without `source` them. They're already included in all `before_script`
To run these commands in shell script locally, place `source tools/ci/utils.sh` at the very beginning.
### Functions
#### CI Job Related
- `add_gitlab_ssh_keys`
- `add_github_ssh_keys`
- `add_doc_server_ssh_keys`
- `fetch_submodules`
- `get_all_submodules`
#### Shell Script Related
- `error`: log in red color
- `warning`: log in orange color
- `info`: log in green color
- `run_cmd`: run the command with duration seconds info
- `retry_failed`: run the command with duration seconds info, retry when failed
## Manifest File to Control the Build/Test apps
`.build-test-rules.yml` file is a manifest file to control if the CI is running the build and test job or not. The Supported Targets table in `README.md` for apps would be auto-generated by `pre-commit` from the app's `.build-test-rules.yml`.
### Grammar
We're using the latest version of [idf-build-apps][idf-build-apps]. Please refer to their [documentation][manifest-doc]
[idf-build-apps]: https://github.com/espressif/idf-build-apps
[manifest-doc]: https://docs.espressif.com/projects/idf-build-apps/en/latest/manifest.html
### Special Rules
In ESP-IDF CI, there's a few more special rules are additionally supported to disable the check app dependencies feature:
- Add MR labels `BUILD_AND_TEST_ALL_APPS`
- Run in protected branches
## Upload/Download Artifacts to Internal Minio Server
### Users Without Access to Minio
If you don't have access to the internal Minio server, you can still download the artifacts from the shared link in the job log.
The log will look like this:
```shell
Pipeline ID : 587355
Job name : build_clang_test_apps_esp32
Job ID : 40272275
Created archive file: 40272275.zip, uploading as 587355/build_dir_without_map_and_elf_files/build_clang_test_apps_esp32/40272275.zip
Please download the archive file includes build_dir_without_map_and_elf_files from [INTERNAL_URL]
```
### Users With Access to Minio
#### Env Vars for Minio
Minio takes these env vars to connect to the server:
- `IDF_S3_SERVER`
- `IDF_S3_ACCESS_KEY`
- `IDF_S3_SECRET_KEY`
- `IDF_S3_BUCKET`
#### Artifacts Types and File Patterns
The artifacts types and corresponding file patterns are defined in tools/ci/artifacts_handler.py, inside `ArtifactType` and `TYPE_PATTERNS_DICT`.
#### Upload
```shell
python tools/ci/artifacts_handler.py upload
```
will upload the files that match the file patterns to minio object storage with name:
`<pipeline_id>/<artifact_type>/<job_name>/<job_id>.zip`
For example, job 39043328 will upload these four files:
- `575500/map_and_elf_files/build_pytest_examples_esp32/39043328.zip`
- `575500/build_dir_without_map_and_elf_files/build_pytest_examples_esp32/39043328.zip`
- `575500/logs/build_pytest_examples_esp32/39043328.zip`
- `575500/size_reports/build_pytest_examples_esp32/39043328.zip`
#### Download
You may run
```shell
python tools/ci/artifacts_handler.py download --pipeline_id <pipeline_id>
```
to download all files of the pipeline, or
```shell
python tools/ci/artifacts_handler.py download --pipeline_id <pipeline_id> --job_name <job_name_or_pattern>
```
to download all files with the specified job name or pattern, or
```shell
python tools/ci/artifacts_handler.py download --pipeline_id <pipeline_id> --job_name <job_name_or_pattern> --type <artifact_type> <artifact_type> ...
```
to download all files with the specified job name or pattern and artifact type(s).
You may check all detailed documentation with `python tools/ci/artifacts_handler.py download -h`

View File

@@ -1,585 +0,0 @@
.build_template:
stage: build
extends:
- .after_script:build:ccache
image: $ESP_ENV_IMAGE
tags:
- build
# build only on shiny servers since shiny storage server is at the same location
- shiny
variables:
# Enable ccache for all build jobs. See configure_ci_environment.sh for more ccache related settings.
IDF_CCACHE_ENABLE: "1"
dependencies: []
.build_cmake_template:
extends:
- .build_template
- .before_script:build
- .after_script:build:ccache
dependencies: # set dependencies to null to avoid missing artifacts issue
needs:
- job: fast_template_app
artifacts: false
- pipeline_variables
artifacts:
paths:
# The other artifacts patterns are defined under tools/ci/artifacts_handler.py
# Now we're uploading/downloading the binary files from our internal storage server
#
# keep the log file to help debug
- "**/build*/build_log.txt"
# keep the size info to help track the binary size
- size_info.txt
- "**/build*/size.json"
when: always
expire_in: 4 days
script:
# CI specific options start from "--parallel-count xxx". could ignore when running locally
- run_cmd python tools/ci/ci_build_apps.py $TEST_DIR -v
-t $IDF_TARGET
--copy-sdkconfig
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
--extra-preserve-dirs
examples/bluetooth/esp_ble_mesh/ble_mesh_console
examples/bluetooth/hci/controller_hci_uart_esp32
examples/wifi/iperf
--modified-components ${MODIFIED_COMPONENTS}
--modified-files ${MODIFIED_FILES}
# for detailed documents, please refer to .gitlab/ci/README.md#uploaddownload-artifacts-to-internal-minio-server
- python tools/ci/artifacts_handler.py upload
.build_cmake_clang_template:
extends:
- .build_cmake_template
variables:
IDF_TOOLCHAIN: clang
TEST_BUILD_OPTS_EXTRA: ""
TEST_DIR: tools/test_apps/system/cxx_pthread_bluetooth
script:
# CI specific options start from "--parallel-count xxx". could ignore when running locally
- run_cmd python tools/ci/ci_build_apps.py $TEST_DIR -v
-t $IDF_TARGET
--copy-sdkconfig
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
--modified-components ${MODIFIED_COMPONENTS}
--modified-files ${MODIFIED_FILES}
$TEST_BUILD_OPTS_EXTRA
- python tools/ci/artifacts_handler.py upload
.build_pytest_template:
extends:
- .build_cmake_template
script:
# CI specific options start from "--parallel-count xxx". could ignore when running locally
- run_cmd python tools/ci/ci_build_apps.py $TEST_DIR -v
-t $IDF_TARGET
-m \"not host_test\"
--pytest-apps
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
--collect-app-info "list_job_${CI_JOB_NAME_SLUG}.txt"
--modified-components ${MODIFIED_COMPONENTS}
--modified-files ${MODIFIED_FILES}
- python tools/ci/artifacts_handler.py upload
.build_pytest_no_jtag_template:
extends:
- .build_cmake_template
script:
# CI specific options start from "--parallel-count xxx". could ignore when running locally
- run_cmd python tools/ci/ci_build_apps.py $TEST_DIR -v
-t $IDF_TARGET
-m \"not host_test and not jtag\"
--pytest-apps
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
--collect-app-info "list_job_${CI_JOB_NAME_SLUG}.txt"
--modified-components ${MODIFIED_COMPONENTS}
--modified-files ${MODIFIED_FILES}
- python tools/ci/artifacts_handler.py upload
.build_pytest_jtag_template:
extends:
- .build_cmake_template
script:
# CI specific options start from "--parallel-count xxx". could ignore when running locally
- run_cmd python tools/ci/ci_build_apps.py $TEST_DIR -v
-t $IDF_TARGET
-m \"not host_test and jtag\"
--pytest-apps
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
--collect-app-info "list_job_${CI_JOB_NAME_SLUG}.txt"
--modified-components ${MODIFIED_COMPONENTS}
--modified-files ${MODIFIED_FILES}
- python tools/ci/artifacts_handler.py upload
build_pytest_examples_esp32:
extends:
- .build_pytest_no_jtag_template
- .rules:build:example_test-esp32
parallel: 6
variables:
IDF_TARGET: esp32
TEST_DIR: examples
build_pytest_examples_esp32s2:
extends:
- .build_pytest_no_jtag_template
- .rules:build:example_test-esp32s2
parallel: 3
variables:
IDF_TARGET: esp32s2
TEST_DIR: examples
build_pytest_examples_esp32s3:
extends:
- .build_pytest_no_jtag_template
- .rules:build:example_test-esp32s3
parallel: 4
variables:
IDF_TARGET: esp32s3
TEST_DIR: examples
build_pytest_examples_esp32c3:
extends:
- .build_pytest_no_jtag_template
- .rules:build:example_test-esp32c3
parallel: 4
variables:
IDF_TARGET: esp32c3
TEST_DIR: examples
build_pytest_examples_esp32c2:
extends:
- .build_pytest_no_jtag_template
- .rules:build:example_test-esp32c2
parallel: 2
variables:
IDF_TARGET: esp32c2
TEST_DIR: examples
build_pytest_examples_esp32c6:
extends:
- .build_pytest_no_jtag_template
- .rules:build:example_test-esp32c6
parallel: 2
variables:
IDF_TARGET: esp32c6
TEST_DIR: examples
build_pytest_examples_esp32h2:
extends:
- .build_pytest_no_jtag_template
- .rules:build:example_test-esp32h2
parallel: 2
variables:
IDF_TARGET: esp32h2
TEST_DIR: examples
build_pytest_examples_jtag: # for all targets
extends:
- .build_pytest_jtag_template
- .rules:build:example_test
variables:
IDF_TARGET: all
TEST_DIR: examples
build_pytest_components_esp32:
extends:
- .build_pytest_template
- .rules:build:component_ut-esp32
parallel: 5
variables:
IDF_TARGET: esp32
TEST_DIR: components
build_pytest_components_esp32s2:
extends:
- .build_pytest_template
- .rules:build:component_ut-esp32s2
parallel: 4
variables:
IDF_TARGET: esp32s2
TEST_DIR: components
build_pytest_components_esp32s3:
extends:
- .build_pytest_template
- .rules:build:component_ut-esp32s3
parallel: 4
variables:
IDF_TARGET: esp32s3
TEST_DIR: components
build_pytest_components_esp32c3:
extends:
- .build_pytest_template
- .rules:build:component_ut-esp32c3
parallel: 4
variables:
IDF_TARGET: esp32c3
TEST_DIR: components
build_pytest_components_esp32c2:
extends:
- .build_pytest_template
- .rules:build:component_ut-esp32c2
parallel: 3
variables:
IDF_TARGET: esp32c2
TEST_DIR: components
build_pytest_components_esp32c6:
extends:
- .build_pytest_template
- .rules:build:component_ut-esp32c6
parallel: 3
variables:
IDF_TARGET: esp32c6
TEST_DIR: components
build_pytest_components_esp32h2:
extends:
- .build_pytest_template
- .rules:build:component_ut-esp32h2
parallel: 4
variables:
IDF_TARGET: esp32h2
TEST_DIR: components
build_only_components_apps:
extends:
- .build_cmake_template
- .rules:build:component_ut
parallel: 5
script:
- set_component_ut_vars
# CI specific options start from "--parallel-count xxx". could ignore when running locally
- run_cmd python tools/ci/ci_build_apps.py $COMPONENT_UT_DIRS -v
-t all
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
--modified-components ${MODIFIED_COMPONENTS}
--modified-files ${MODIFIED_FILES}
- python tools/ci/artifacts_handler.py upload
build_pytest_test_apps_esp32:
extends:
- .build_pytest_template
- .rules:build:custom_test-esp32
variables:
IDF_TARGET: esp32
TEST_DIR: tools/test_apps
build_pytest_test_apps_esp32s2:
extends:
- .build_pytest_template
- .rules:build:custom_test-esp32s2
variables:
IDF_TARGET: esp32s2
TEST_DIR: tools/test_apps
build_pytest_test_apps_esp32s3:
extends:
- .build_pytest_template
- .rules:build:custom_test-esp32s3
parallel: 2
variables:
IDF_TARGET: esp32s3
TEST_DIR: tools/test_apps
build_pytest_test_apps_esp32c3:
extends:
- .build_pytest_template
- .rules:build:custom_test-esp32c3
variables:
IDF_TARGET: esp32c3
TEST_DIR: tools/test_apps
build_pytest_test_apps_esp32c2:
extends:
- .build_pytest_template
- .rules:build:custom_test-esp32c2
variables:
IDF_TARGET: esp32c2
TEST_DIR: tools/test_apps
build_pytest_test_apps_esp32c6:
extends:
- .build_pytest_template
- .rules:build:custom_test-esp32c6
variables:
IDF_TARGET: esp32c6
TEST_DIR: tools/test_apps
build_pytest_test_apps_esp32h2:
extends:
- .build_pytest_template
- .rules:build:custom_test-esp32h2
variables:
IDF_TARGET: esp32h2
TEST_DIR: tools/test_apps
build_only_tools_test_apps:
extends:
- .build_cmake_template
- .rules:build:custom_test
parallel: 9
script:
# CI specific options start from "--parallel-count xxx". could ignore when running locally
- run_cmd python tools/ci/ci_build_apps.py tools/test_apps -v
-t all
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
--modified-components ${MODIFIED_COMPONENTS}
--modified-files ${MODIFIED_FILES}
- python tools/ci/artifacts_handler.py upload
.build_template_app_template:
extends:
- .build_template
- .before_script:build
variables:
LOG_PATH: "${CI_PROJECT_DIR}/log_template_app"
BUILD_PATH: "${CI_PROJECT_DIR}/build_template_app"
BUILD_DIR: "${BUILD_PATH}/@t/@w"
BUILD_LOG_CMAKE: "${LOG_PATH}/cmake_@t_@w.txt"
BUILD_COMMAND_ARGS: ""
artifacts:
when: always
paths:
- log_template_app/*
- size_info.txt
- build_template_app/**/size.json
expire_in: 1 week
script:
# Set the variable for 'esp-idf-template' testing
- ESP_IDF_TEMPLATE_GIT=${ESP_IDF_TEMPLATE_GIT:-"https://github.com/espressif/esp-idf-template.git"}
- retry_failed git clone ${ESP_IDF_TEMPLATE_GIT}
# Try to use the same branch name for esp-idf-template that we're
# using on esp-idf. If it doesn't exist then just stick to the default branch
- python $CHECKOUT_REF_SCRIPT esp-idf-template esp-idf-template
- export PATH="$IDF_PATH/tools:$PATH"
# Only do the default cmake build for each target, remaining part are done in the build_template_app job
- tools/ci/build_template_app.sh ${BUILD_COMMAND_ARGS}
# build-related-pre-check-jobs ------------------------------------------------
# Build at least one project for each target at earliest stage to reduce build cost for obvious failing commits
fast_template_app:
extends:
- .build_template_app_template
- .rules:build:target_test
stage: pre_check
variables:
BUILD_COMMAND_ARGS: "-p"
#------------------------------------------------------------------------------
build_examples_cmake_esp32:
extends:
- .build_cmake_template
- .rules:build:example_test-esp32
parallel: 8
variables:
IDF_TARGET: esp32
TEST_DIR: examples
build_examples_cmake_esp32s2:
extends:
- .build_cmake_template
- .rules:build:example_test-esp32s2
parallel: 7
variables:
IDF_TARGET: esp32s2
TEST_DIR: examples
build_examples_cmake_esp32s3:
extends:
- .build_cmake_template
- .rules:build:example_test-esp32s3
parallel: 11
variables:
IDF_TARGET: esp32s3
TEST_DIR: examples
build_examples_cmake_esp32c2:
extends:
- .build_cmake_template
- .rules:build:example_test-esp32c2
parallel: 7
variables:
IDF_TARGET: esp32c2
TEST_DIR: examples
build_examples_cmake_esp32c3:
extends:
- .build_cmake_template
- .rules:build:example_test-esp32c3
parallel: 9
variables:
IDF_TARGET: esp32c3
TEST_DIR: examples
build_examples_cmake_esp32c6:
extends:
- .build_cmake_template
- .rules:build:example_test-esp32c6
parallel: 11
variables:
IDF_TARGET: esp32c6
TEST_DIR: examples
build_examples_cmake_esp32h2:
extends:
- .build_cmake_template
- .rules:build:example_test-esp32h2
parallel: 9
variables:
IDF_TARGET: esp32h2
TEST_DIR: examples
build_examples_cmake_esp32p4:
extends:
- .build_cmake_template
- .rules:build:example_test-esp32p4
parallel: 4
variables:
IDF_TARGET: esp32p4
TEST_DIR: examples
build_clang_test_apps_esp32:
extends:
- .build_cmake_clang_template
- .rules:build:custom_test-esp32
variables:
IDF_TARGET: esp32
build_clang_test_apps_esp32s2:
extends:
- .build_cmake_clang_template
- .rules:build:custom_test-esp32s2
variables:
IDF_TARGET: esp32s2
build_clang_test_apps_esp32s3:
extends:
- .build_cmake_clang_template
- .rules:build:custom_test-esp32s3
variables:
IDF_TARGET: esp32s3
.build_clang_test_apps_riscv:
extends:
- .build_cmake_clang_template
variables:
# For RISCV clang generates '.linker-options' sections of type 'llvm_linker_options' in asm files.
# See (https://llvm.org/docs/Extensions.html#linker-options-section-linker-options).
# Binutils gas ignores them with warning.
# TODO: LLVM-112, Use integrated assembler.
TEST_BUILD_OPTS_EXTRA: "--ignore-warning-str 'Warning: unrecognized section type'"
build_clang_test_apps_esp32c3:
extends:
- .build_clang_test_apps_riscv
- .rules:build:custom_test-esp32c3
variables:
IDF_TARGET: esp32c3
build_clang_test_apps_esp32c2:
extends:
- .build_clang_test_apps_riscv
- .rules:build:custom_test-esp32c2
variables:
IDF_TARGET: esp32c2
build_clang_test_apps_esp32c6:
extends:
- .build_clang_test_apps_riscv
- .rules:build:custom_test-esp32c6
# TODO: c6 builds fail in master due to missing headers
allow_failure: true
variables:
IDF_TARGET: esp32c6
.test_build_system_template:
stage: host_test
extends:
- .build_template
- .rules:build:check
needs:
- job: fast_template_app
artifacts: false
optional: true
script:
- ${IDF_PATH}/tools/ci/test_configure_ci_environment.sh
- cd ${IDF_PATH}/tools/test_build_system
- retry_failed git clone $KNOWN_FAILURE_CASES_REPO known_failure_cases
- pytest --parallel-count ${CI_NODE_TOTAL:-1} --parallel-index ${CI_NODE_INDEX:-1}
--work-dir ${CI_PROJECT_DIR}/test_build_system --junitxml=${CI_PROJECT_DIR}/XUNIT_RESULT.xml
--ignore-result-files known_failure_cases/known_failure_cases.txt
pytest_build_system:
extends: .test_build_system_template
parallel: 3
artifacts:
paths:
- XUNIT_RESULT.xml
- test_build_system
when: always
expire_in: 2 days
reports:
junit: XUNIT_RESULT.xml
pytest_build_system_macos:
extends:
- .test_build_system_template
- .before_script:build:macos
- .rules:build:macos
tags:
- macos_shell
parallel: 3
artifacts:
paths:
- XUNIT_RESULT.xml
- test_build_system
when: always
expire_in: 2 days
reports:
junit: XUNIT_RESULT.xml
build_docker:
extends:
- .before_script:minimal
- .rules:build:docker
stage: host_test
needs: []
image: espressif/docker-builder:1
tags:
- build_docker_amd64_brno
variables:
DOCKER_TMP_IMAGE_NAME: "idf_tmp_image"
script:
- export LOCAL_CI_REPOSITORY_URL=$CI_REPOSITORY_URL
- if [ -n "$LOCAL_GITLAB_HTTPS_HOST" ]; then export LOCAL_CI_REPOSITORY_URL="https://gitlab-ci-token:${CI_JOB_TOKEN}@${LOCAL_GITLAB_HTTPS_HOST}/${CI_PROJECT_PATH}"; fi
- if [ -n "$LOCAL_GIT_MIRROR" ]; then export LOCAL_CI_REPOSITORY_URL="${LOCAL_GIT_MIRROR}/${CI_PROJECT_PATH}"; fi
- echo "Using repository at $LOCAL_CI_REPOSITORY_URL"
- export DOCKER_BUILD_ARGS="--build-arg IDF_CLONE_URL=${LOCAL_CI_REPOSITORY_URL} --build-arg IDF_CLONE_BRANCH_OR_TAG=${CI_COMMIT_REF_NAME} --build-arg IDF_CHECKOUT_REF=${CI_COMMIT_TAG:-$PIPELINE_COMMIT_SHA}"
# Build
- docker build --tag ${DOCKER_TMP_IMAGE_NAME} ${DOCKER_BUILD_ARGS} tools/docker/
# We can't mount $PWD/examples/get-started/blink into the container, see https://gitlab.com/gitlab-org/gitlab-ce/issues/41227.
# The workaround mentioned there works, but leaves around directories which need to be cleaned up manually.
# Therefore, build a copy of the example located inside the container.
- docker run --rm --workdir /opt/esp/idf/examples/get-started/blink ${DOCKER_TMP_IMAGE_NAME} idf.py build
# This job builds template app with permutations of targets and optimization levels
build_template_app:
extends:
- .build_template_app_template
- .rules:build
stage: host_test
needs:
- job: fast_template_app
artifacts: false

View File

@@ -1,344 +0,0 @@
#####################
# Default Variables #
#####################
stages:
- upload_cache
- pre_check
- build
- assign_test
- target_test
- host_test
- build_doc
- test_deploy
- deploy
- post_deploy
variables:
# System environment
# Common parameters for the 'make' during CI tests
MAKEFLAGS: "-j5 --no-keep-going"
# GitLab-CI environment
# now we have pack-objects cache, so clone strategy is faster than fetch
GIT_STRATEGY: clone
# we will download archive for each submodule instead of clone.
# we don't do "recursive" when fetch submodule as they're not used in CI now.
GIT_SUBMODULE_STRATEGY: none
# since we're using merged-result pipelines, the last commit should work for most cases
GIT_DEPTH: 1
# --no-recurse-submodules: we use cache for submodules
# --prune --prune-tags: in case remote branch or tag is force pushed
GIT_FETCH_EXTRA_FLAGS: "--no-recurse-submodules --prune --prune-tags"
# we're using .cache folder for caches
GIT_CLEAN_FLAGS: -ffdx -e .cache/
LATEST_GIT_TAG: v5.2-dev
SUBMODULE_FETCH_TOOL: "tools/ci/ci_fetch_submodule.py"
# by default we will fetch all submodules
# jobs can overwrite this variable to only fetch submodules they required
# set to "none" if don't need to fetch submodules
SUBMODULES_TO_FETCH: "all"
# tell build system do not check submodule update as we download archive instead of clone
IDF_SKIP_CHECK_SUBMODULES: 1
IDF_PATH: "$CI_PROJECT_DIR"
V: "0"
CHECKOUT_REF_SCRIPT: "$CI_PROJECT_DIR/tools/ci/checkout_project_ref.py"
PYTHON_VER: 3.8.17
# Docker images
ESP_ENV_IMAGE: "${CI_DOCKER_REGISTRY}/esp-env-v5.2:2"
ESP_IDF_DOC_ENV_IMAGE: "${CI_DOCKER_REGISTRY}/esp-idf-doc-env-v5.2:2-1"
QEMU_IMAGE: "${CI_DOCKER_REGISTRY}/qemu-v5.2:2-20230522"
TARGET_TEST_ENV_IMAGE: "${CI_DOCKER_REGISTRY}/target-test-env-v5.2:2"
SONARQUBE_SCANNER_IMAGE: "${CI_DOCKER_REGISTRY}/sonarqube-scanner:5"
PRE_COMMIT_IMAGE: "${CI_DOCKER_REGISTRY}/esp-idf-pre-commit:1"
# target test repo parameters
TEST_ENV_CONFIG_REPO: "https://gitlab-ci-token:${BOT_TOKEN}@${CI_SERVER_HOST}:${CI_SERVER_PORT}/qa/ci-test-runner-configs.git"
# cache python dependencies
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
# Set this variable to the branch of idf-constraints repo in order to test a custom Python constraint file. The
# branch name must be without the remote part ("origin/"). Keep the variable empty in order to use the constraint
# file from https://dl.espressif.com/dl/esp-idf.
CI_PYTHON_CONSTRAINT_BRANCH: ""
# Update the filename for a specific ESP-IDF release. It is used only with CI_PYTHON_CONSTRAINT_BRANCH.
CI_PYTHON_CONSTRAINT_FILE: "espidf.constraints.v5.2.txt"
# Set this variable to repository name of a Python tool you wish to install and test in the context of ESP-IDF CI.
# Keep the variable empty when not used.
CI_PYTHON_TOOL_REPO: ""
# Set this variable to the branch of a Python tool repo specified in CI_PYTHON_TOOL_REPO. The
# branch name must be without the remote part ("origin/"). Keep the variable empty when not used.
# This is used only if CI_PYTHON_TOOL_REPO is not empty.
CI_PYTHON_TOOL_BRANCH: ""
IDF_CI_BUILD: 1
################################################
# `before_script` and `after_script` Templates #
################################################
.common_before_scripts: &common-before_scripts |
source tools/ci/utils.sh
is_based_on_commits $REQUIRED_ANCESTOR_COMMITS
if [[ -n "$IDF_DONT_USE_MIRRORS" ]]; then
export IDF_MIRROR_PREFIX_MAP=
fi
if echo "$CI_MERGE_REQUEST_LABELS" | egrep "(^|,)include_nightly_run(,|$)"; then
export INCLUDE_NIGHTLY_RUN="1"
export NIGHTLY_RUN="1"
fi
# configure cmake related flags
source tools/ci/configure_ci_environment.sh
# add extra python packages
export PYTHONPATH="$IDF_PATH/tools:$IDF_PATH/tools/esp_app_trace:$IDF_PATH/components/partition_table:$IDF_PATH/tools/ci/python_packages:$PYTHONPATH"
.setup_tools_and_idf_python_venv: &setup_tools_and_idf_python_venv |
# must use after setup_tools_except_target_test
# otherwise the export.sh won't work properly
# download constraint file for dev
if [[ -n "$CI_PYTHON_CONSTRAINT_BRANCH" ]]; then
wget -O /tmp/constraint.txt --header="Authorization:Bearer ${ESPCI_TOKEN}" ${GITLAB_HTTP_SERVER}/api/v4/projects/2581/repository/files/${CI_PYTHON_CONSTRAINT_FILE}/raw?ref=${CI_PYTHON_CONSTRAINT_BRANCH}
mkdir -p ~/.espressif
mv /tmp/constraint.txt ~/.espressif/${CI_PYTHON_CONSTRAINT_FILE}
fi
# Mirror
if [[ -n "$IDF_DONT_USE_MIRRORS" ]]; then
export IDF_MIRROR_PREFIX_MAP=
fi
# install latest python packages
# target test jobs
if [[ "${CI_JOB_STAGE}" == "target_test" ]]; then
run_cmd bash install.sh --enable-ci --enable-pytest
elif [[ "${CI_JOB_STAGE}" == "build_doc" ]]; then
run_cmd bash install.sh --enable-ci --enable-docs
elif [[ "${CI_JOB_STAGE}" == "build" ]]; then
run_cmd bash install.sh --enable-ci --enable-pytest
else
if ! echo "${CI_JOB_NAME}" | egrep ".*pytest.*"; then
run_cmd bash install.sh --enable-ci
else
run_cmd bash install.sh --enable-ci --enable-pytest
fi
fi
# Install esp-clang if necessary
if [[ "$IDF_TOOLCHAIN" == "clang" ]]; then
$IDF_PATH/tools/idf_tools.py --non-interactive install esp-clang
fi
source ./export.sh
# Custom clang
if [[ ! -z "$CI_CLANG_DISTRO_URL" ]]; then
echo "Using custom clang from ${CI_CLANG_DISTRO_URL}"
wget $CI_CLANG_DISTRO_URL
ARCH_NAME=$(basename $CI_CLANG_DISTRO_URL)
tar -x -f $ARCH_NAME
export PATH=$PWD/esp-clang/bin:$PATH
fi
# Custom OpenOCD
if [[ ! -z "$OOCD_DISTRO_URL" && "$CI_JOB_STAGE" == "target_test" ]]; then
echo "Using custom OpenOCD from ${OOCD_DISTRO_URL}"
wget $OOCD_DISTRO_URL
ARCH_NAME=$(basename $OOCD_DISTRO_URL)
tar -x -f $ARCH_NAME
export OPENOCD_SCRIPTS=$PWD/openocd-esp32/share/openocd/scripts
export PATH=$PWD/openocd-esp32/bin:$PATH
fi
if [[ -n "$CI_PYTHON_TOOL_REPO" ]]; then
git clone --quiet --depth=1 -b ${CI_PYTHON_TOOL_BRANCH} https://gitlab-ci-token:${ESPCI_TOKEN}@${GITLAB_HTTPS_HOST}/espressif/${CI_PYTHON_TOOL_REPO}.git
pip install ./${CI_PYTHON_TOOL_REPO}
rm -rf ${CI_PYTHON_TOOL_REPO}
fi
.show_ccache_statistics: &show_ccache_statistics |
# Show ccache statistics if enabled globally
test "$CI_CCACHE_STATS" == 1 && test -n "$(which ccache)" && ccache --show-stats || true
.upload_failed_job_log_artifacts: &upload_failed_job_log_artifacts |
if [ $CI_JOB_STATUS = "failed" ]; then
python tools/ci/artifacts_handler.py upload --type logs
fi
.before_script:minimal:
before_script:
- *common-before_scripts
.before_script:build:macos:
before_script:
- *common-before_scripts
# On macOS, these tools need to be installed
- export IDF_TOOLS_PATH="${HOME}/.espressif_runner_${CI_RUNNER_ID}_${CI_CONCURRENT_ID}"
- $IDF_PATH/tools/idf_tools.py --non-interactive install cmake ninja
# This adds tools (compilers) and the version-specific Python environment to PATH
- *setup_tools_and_idf_python_venv
- fetch_submodules
.before_script:build:
before_script:
- *common-before_scripts
- *setup_tools_and_idf_python_venv
- add_gitlab_ssh_keys
- fetch_submodules
- export EXTRA_CFLAGS=${PEDANTIC_CFLAGS}
- export EXTRA_CXXFLAGS=${PEDANTIC_CXXFLAGS}
.after_script:build:ccache:
after_script:
- *show_ccache_statistics
- *upload_failed_job_log_artifacts
##############################
# Git Strategy Job Templates #
##############################
.git_init: &git_init |
mkdir -p "${CI_PROJECT_DIR}"
cd "${CI_PROJECT_DIR}"
git init
.git_fetch_from_mirror_url_if_exists: &git_fetch_from_mirror_url_if_exists |
# check if set mirror
if [ -n "${LOCAL_GITLAB_HTTPS_HOST:-}" ] && [ -n "${ESPCI_TOKEN:-}" ]; then
MIRROR_REPO_URL="https://bot:${ESPCI_TOKEN}@${LOCAL_GITLAB_HTTPS_HOST}/${CI_PROJECT_PATH}"
elif [ -n "${LOCAL_GIT_MIRROR:-}" ]; then
MIRROR_REPO_URL="${LOCAL_GIT_MIRROR}/${CI_PROJECT_PATH}"
fi
# fetch from mirror first if set
if [ -n "${MIRROR_REPO_URL:-}" ]; then
if git remote -v | grep origin; then
git remote set-url origin "${MIRROR_REPO_URL}"
else
git remote add origin "${MIRROR_REPO_URL}"
fi
# mirror url may fail with authentication issue
git fetch origin --no-recurse-submodules || true
fi
# set remote url to CI_REPOSITORY_URL
if git remote -v | grep origin; then
git remote set-url origin "${CI_REPOSITORY_URL}"
else
git remote add origin "${CI_REPOSITORY_URL}"
fi
.git_checkout_fetch_head: &git_checkout_fetch_head |
git checkout FETCH_HEAD
git clean ${GIT_CLEAN_FLAGS}
# git diff requires two commits, with different CI env var
#
# By default, we use git strategy "clone" with depth 1 to speed up the clone process.
# But for jobs requires running `git diff`, we need to fetch more commits to get the correct diffs.
#
# Since there's no way to get the correct git_depth before the job starts,
# we can't set `GIT_DEPTH` in the job definition.
#
# Set git strategy to "none" and fetch manually instead.
.before_script:fetch:git_diff:
variables:
GIT_STRATEGY: none
before_script:
- *git_init
- *git_fetch_from_mirror_url_if_exists
- |
# merged results pipelines, by default
if [[ -n $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA ]]; then
git fetch origin $CI_MERGE_REQUEST_DIFF_BASE_SHA --depth=1 ${GIT_FETCH_EXTRA_FLAGS}
git fetch origin $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA --depth=1 ${GIT_FETCH_EXTRA_FLAGS}
export GIT_DIFF_OUTPUT=$(git diff --name-only $CI_MERGE_REQUEST_DIFF_BASE_SHA $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA)
# merge request pipelines, when the mr got conflicts
elif [[ -n $CI_MERGE_REQUEST_DIFF_BASE_SHA ]]; then
git fetch origin $CI_MERGE_REQUEST_DIFF_BASE_SHA --depth=1 ${GIT_FETCH_EXTRA_FLAGS}
git fetch origin $CI_COMMIT_SHA --depth=1 ${GIT_FETCH_EXTRA_FLAGS}
export GIT_DIFF_OUTPUT=$(git diff --name-only $CI_MERGE_REQUEST_DIFF_BASE_SHA $CI_COMMIT_SHA)
# other pipelines, like the protected branches pipelines
elif [[ "$CI_COMMIT_BEFORE_SHA" != "0000000000000000000000000000000000000000" ]]; then
git fetch origin $CI_COMMIT_BEFORE_SHA --depth=1 ${GIT_FETCH_EXTRA_FLAGS}
git fetch origin $CI_COMMIT_SHA --depth=1 ${GIT_FETCH_EXTRA_FLAGS}
export GIT_DIFF_OUTPUT=$(git diff --name-only $CI_COMMIT_BEFORE_SHA $CI_COMMIT_SHA)
else
# pipeline source could be web, scheduler, etc.
git fetch origin $CI_COMMIT_SHA --depth=2 ${GIT_FETCH_EXTRA_FLAGS}
export GIT_DIFF_OUTPUT=$(git diff --name-only $CI_COMMIT_SHA~1 $CI_COMMIT_SHA)
fi
- *git_checkout_fetch_head
- *common-before_scripts
- *setup_tools_and_idf_python_venv
- add_gitlab_ssh_keys
# git describe requires commit history until the latest tag
.before_script:fetch:git_describe:
variables:
GIT_STRAEGY: none
before_script:
- *git_init
- *git_fetch_from_mirror_url_if_exists
- |
git fetch origin refs/tags/"${LATEST_GIT_TAG}":refs/tags/"${LATEST_GIT_TAG}" --depth=1
git repack -d
git fetch origin $CI_COMMIT_SHA --shallow-since=$(git log -1 --format=%as "${LATEST_GIT_TAG}")
- *git_checkout_fetch_head
- *common-before_scripts
- *setup_tools_and_idf_python_venv
- add_gitlab_ssh_keys
# target test runners may locate in different places
# for runners set git mirror, we fetch from the mirror first, then fetch the HEAD commit
.before_script:fetch:target_test:
variables:
GIT_STRATEGY: none
before_script:
- *git_init
- *git_fetch_from_mirror_url_if_exists
- git fetch origin "${CI_COMMIT_SHA}" --depth=1 ${GIT_FETCH_EXTRA_FLAGS}
- *git_checkout_fetch_head
- *common-before_scripts
- *setup_tools_and_idf_python_venv
- add_gitlab_ssh_keys
# no submodules
#############
# `default` #
#############
default:
cache:
# pull only for most of the use cases since it's cache dir.
# Only set "push" policy for "upload_cache" stage jobs
- key: pip-cache
paths:
- .cache/pip
policy: pull
- key: submodule-cache
paths:
- .cache/submodule_archives
policy: pull
before_script:
- *common-before_scripts
- *setup_tools_and_idf_python_venv
- add_gitlab_ssh_keys
- fetch_submodules
retry:
max: 2
when:
# In case of a runner failure we could hop to another one, or a network error could go away.
- runner_system_failure
# Job execution timeout may be caused by a network issue.
- job_execution_timeout

View File

@@ -1,18 +0,0 @@
# this file support two keywords:
# - extra_default_build_targets:
# besides of the SUPPORTED_TARGETS in IDF,
# enable build for the specified targets by default as well.
# - bypass_check_test_targets:
# suppress the check_build_test_rules check-test-script warnings for the specified targets
#
# This file should ONLY be used during bringup. Should be reset to empty after the bringup process
extra_default_build_targets:
- esp32p4
bypass_check_test_targets:
- esp32p4
#
# These lines would
# - enable the README.md check for esp32c6. Don't forget to add the build jobs in .gitlab/ci/build.yml
# - disable the test script check with the manifest file.
#

View File

@@ -1,100 +0,0 @@
# How the `generate_rules.py` works
## Functionalities
This script can do only two things:
1. Auto-generate some labels/rules we need and update them in `rules.yml`
2. Generate a dependency tree graph
## Schema
This file only used basic YAML grammar and has nothing to do with the GitLab version YAML file.
It has five custom keywords:
- `matrix`: An array of sub-arrays, used to replicate rules by formatting strings. You can use the format string everywhere, it will be formatted recursively
- `labels`: An array of `labels`.
- `patterns`: An array of `patterns`. Patterns that not included
- `included_in`: An array of other `rule` names. It indicates the `labels` and `patterns` will be included in all specified `rules` as well
- `deploy`: An array of strings, used to replicate rules by adding postfix `-<item in deploy array>`. It indicates the extra `label` used in `rules`, which will explain later.
## How to use this file to generate `rules.yml`
Let's take a complicated example to help understand the process
```yaml
"test-{0}-{1}":
matrix:
- [a, b]
- [c, d]
labels:
- "{0}-{1}"
patterns:
- "{0}"
- pattern-not-exist
included_in:
- build-{0}
```
1. expand the mapping dicts defined by `matrix`
After this step, it will turn into 4 dicts:
| key | labels | patterns | included_in |
| -------- | ------ | -------- | ----------- |
| test-a-c | a-c | a | build-a |
| test-a-d | a-d | a | build-a |
| test-b-c | b-c | b | build-b |
| test-b-d | b-d | b | build-b |
**Advanced Usage: You can overwrite a mapping by declaring it again later**, For example:
If we concatenate this part to the previous example,
```yaml
# ... The same as the previous example
test-a-c:
labels:
- overwrite
```
`rule` `test-a-c` will be turned into:
| key | labels |
| -------- | --------- |
| test-a-c | overwrite |
**Mappings with the keyword `deploy` will also replicate by adding a postfix `-<item in deploy array>` to the mapping key**
2. create rules by `included_in`
After this step, it will turn into 6 mapping dicts:
| key | labels | patterns |
| -------- | -------- | -------- |
| test-a-c | a-c | a |
| test-a-d | a-d | a |
| test-b-c | b-c | b |
| test-b-d | b-d | b |
| build-a | a-c, a-d | a |
| build-b | b-c, b-d | b |
3. replace the auto-generated region in `rules.yml` with `labels`, and `rules`. Each mapping will generate a `rule` and all the required labels. `patterns` are pre-defined in `rules.yml` and could not be generated automatically. If a mapping is using a `pattern` undefined, the `pattern` will be ignored.
- If a mapping key has postfix `-preview`, no `if-protected-xxx` clause will be added
- else if a mapping key has postfix `-production`, an `if-protected-no_label` clause will be added
- else, an `if-protected` clause will be added
## Graph
All `label` nodes are in green, `pattern` nodes are in cyan, `rule` nodes are in blue
### Requirements
There are a few extra dependencies while generating the dependency tree graph, please refer to [pygraphviz](https://github.com/pygraphviz/pygraphviz/blob/master/INSTALL.txt) documentation to install both `graphviz` and `pygraphviz`
### CLI usage
`python $IDF_PATH/tools/ci/generate_rules.py --graph OUTPUT_PATH`

View File

@@ -1,183 +0,0 @@
.all_targets: &all_targets
- esp32
- esp32s2
- esp32s3
- esp32c3
- esp32c2
- esp32c6
- esp32h2
- esp32p4
.target_test: &target_test
- example_test
- custom_test
- component_ut
##############
# Build Jobs #
##############
"build":
labels:
- build
patterns:
- build_components
- build_system
- downloadable-tools
included_in:
- build:target_test
- build:check
# -------------------
# Specific Build Jobs
# -------------------
"build:docker":
labels:
- build
- docker
patterns:
- docker
- submodule
- build_system
- downloadable-tools
"build:macos":
labels:
- build
- macos
- macos_test # for backward compatibility
patterns:
- build_system
- build_macos
- downloadable-tools
# ---------------------------
# Add patterns to build rules
# ---------------------------
"patterns:template-app":
patterns:
- build_template-app
included_in:
- build:target_test
"patterns:build-check":
patterns:
- build_check
included_in:
- build:check
# ---------------
# Build Test Jobs
# ---------------
"build:{0}-{1}":
matrix:
- *target_test
- *all_targets
labels:
- build
patterns:
- build_components
- build_system
- build_target_test
- downloadable-tools
included_in:
- "build:{0}"
- build:target_test
####################
# Target Test Jobs #
####################
"test:{0}-{1}":
matrix:
- *target_test
- *all_targets
labels: # For each rule, use labels <test_type> and <test_type>-<target>
- "{0}"
- "{0}_{1}"
- target_test
patterns: # For each rule, use patterns <test_type> and build-<test_type>
- "{0}"
- "build-{0}"
included_in: # Parent rules
- "build:{0}"
- "build:{0}-{1}"
- build:target_test
# -------------
# Special Cases
# -------------
# To reduce the specific runners' usage.
# Do not create these jobs by default patterns on development branches
# Can be triggered by labels or related changes
"test:{0}-{1}-{2}":
matrix:
- *target_test
- *all_targets
- - wifi # pytest*wifi*
- ethernet # pytest*ethernet*
- sdio # pytest*sdio*
- usb # USB Device & Host tests
- adc # pytest*adc*
- i154
- flash_multi
- ecdsa
- nvs_encr_hmac
patterns:
- "{0}-{1}-{2}"
- "{0}-{2}"
- "target_test-{2}"
labels:
- "{0}_{1}"
- "{0}"
- target_test
included_in:
- "build:{0}-{1}"
- "build:{0}"
- build:target_test
# For example_test*flash_encryption_wifi_high_traffic jobs
# set `INCLUDE_NIGHTLY_RUN` variable when triggered on development branches
"test:example_test-{0}-include_nightly_run-rule":
matrix:
- - esp32
- esp32c3
specific_rules:
- "if-example_test-ota-include_nightly_run-rule"
included_in:
- "build:example_test-{0}"
- "build:example_test"
- build:target_test
# For i154 runners
"test:example_test-i154":
patterns:
- "example_test-i154"
- "target_test-i154"
labels:
- target_test
- example_test
included_in:
- "build:example_test-esp32s3"
- "build:example_test-esp32c6"
- "build:example_test-esp32h2"
- "build:example_test"
- build:target_test
"test:host_test":
labels:
- host_test
patterns:
- host_test
"test:submodule":
labels:
- submodule
patterns:
- submodule
#################################
# Triggered Only By Labels Jobs #
#################################
"labels:nvs_coverage": # host_test
labels:
- nvs_coverage

View File

@@ -1,61 +0,0 @@
.deploy_job_template:
stage: deploy
image: $ESP_ENV_IMAGE
tags: [ deploy ]
# Check this before push_to_github
check_submodule_sync:
extends:
- .deploy_job_template
- .rules:test:submodule
stage: test_deploy
tags: [ brew, github_sync ]
retry: 2
variables:
# for brew runners, we always set GIT_STRATEGY to fetch
GIT_STRATEGY: fetch
SUBMODULES_TO_FETCH: "none"
PUBLIC_IDF_URL: "https://github.com/espressif/esp-idf.git"
dependencies: []
script:
- git submodule deinit --force .
# setting the default remote URL to the public one, to resolve relative location URLs
- git config remote.origin.url ${PUBLIC_IDF_URL}
# check if all submodules are correctly synced to public repository
- git submodule init
- git config --get-regexp '^submodule\..*\.url$' || true
- git submodule update --recursive
- echo "IDF was cloned from ${PUBLIC_IDF_URL} completely"
push_to_github:
extends:
- .deploy_job_template
- .before_script:minimal
- .rules:push_to_github
needs:
- check_submodule_sync
tags: [ brew, github_sync ]
variables:
# for brew runners, we always set GIT_STRATEGY to fetch
GIT_STRATEGY: fetch
# github also need full record of commits
GIT_DEPTH: 0
script:
- add_github_ssh_keys
- git remote remove github &>/dev/null || true
- git remote add github git@github.com:espressif/esp-idf.git
- tools/ci/push_to_github.sh
deploy_update_SHA_in_esp-dockerfiles:
extends:
- .deploy_job_template
- .before_script:minimal
- .rules:protected-no_label-always
dependencies: []
variables:
GIT_DEPTH: 2
tags: [ shiny, build ]
script:
- 'curl --header "PRIVATE-TOKEN: ${ESPCI_SCRIPTS_TOKEN}" -o create_MR_in_esp_dockerfile.sh $GITLAB_HTTP_SERVER/api/v4/projects/1260/repository/files/create_MR_in_esp_dockerfile%2Fcreate_MR_in_esp_dockerfile.sh/raw\?ref\=master'
- chmod +x create_MR_in_esp_dockerfile.sh
- ./create_MR_in_esp_dockerfile.sh

View File

@@ -1,276 +0,0 @@
.patterns-docs-full: &patterns-docs-full
- ".gitlab/ci/docs.yml"
- "docs/**/*"
- "**/*.rst"
- "CONTRIBUTING.rst"
- "**/soc_caps.h"
.patterns-docs-partial: &patterns-docs-partial
- "components/**/*.h"
- "components/**/Kconfig*"
- "components/**/CMakeList.txt"
- "components/**/sdkconfig*"
- "tools/tools.json"
- "tools/idf_tools.py"
.patterns-example-readme: &patterns-example-readme
- "examples/**/*.md"
.patterns-docs-preview: &patterns-docs-preview
- "docs/**/*"
.if-protected: &if-protected
if: '($CI_COMMIT_REF_NAME == "master" || $CI_COMMIT_BRANCH =~ /^release\/v/ || $CI_COMMIT_TAG =~ /^v\d+\.\d+(\.\d+)?($|-)/)'
.if-protected-no_label: &if-protected-no_label
if: '($CI_COMMIT_REF_NAME == "master" || $CI_COMMIT_BRANCH =~ /^release\/v/ || $CI_COMMIT_TAG =~ /^v\d+\.\d+(\.\d+)?($|-)/) && $BOT_TRIGGER_WITH_LABEL == null'
.if-qa-test-tag: &if-qa-test-tag
if: '$CI_COMMIT_TAG =~ /^qa-test/'
.if-label-build_docs: &if-label-build_docs
if: '$BOT_LABEL_BUILD_DOCS || $CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*build_docs(?:,[^,\n\r]+)*$/i'
.if-label-docs_full: &if-label-docs_full
if: '$BOT_LABEL_DOCS_FULL || $CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*docs_full(?:,[^,\n\r]+)*$/i'
.if-dev-push: &if-dev-push
if: '$CI_COMMIT_REF_NAME != "master" && $CI_COMMIT_BRANCH !~ /^release\/v/ && $CI_COMMIT_TAG !~ /^v\d+\.\d+(\.\d+)?($|-)/ && $CI_COMMIT_TAG !~ /^qa-test/ && ($CI_PIPELINE_SOURCE == "push" || $CI_PIPELINE_SOURCE == "merge_request_event")'
.if-schedule: &if-schedule
if: '$CI_PIPELINE_SOURCE == "schedule"'
.doc-rules:build:docs-full:
rules:
- <<: *if-qa-test-tag
when: never
- <<: *if-schedule
- <<: *if-label-build_docs
- <<: *if-label-docs_full
- <<: *if-dev-push
changes: *patterns-docs-full
.doc-rules:build:docs-full-prod:
rules:
- <<: *if-qa-test-tag
when: never
- <<: *if-protected-no_label
.doc-rules:build:docs-partial:
rules:
- <<: *if-qa-test-tag
when: never
- <<: *if-dev-push
changes: *patterns-docs-full
when: never
- <<: *if-dev-push
changes: *patterns-docs-partial
# stage: pre_check
check_readme_links:
extends:
- .pre_check_template
tags: ["build", "amd64", "internet"]
allow_failure: true
rules:
- <<: *if-protected
- <<: *if-dev-push
changes: *patterns-example-readme
script:
- python ${IDF_PATH}/tools/ci/check_readme_links.py
check_docs_lang_sync:
extends:
- .pre_check_template
- .doc-rules:build:docs-full
script:
- cd docs
- ./check_lang_folder_sync.sh
.build_docs_template:
image: $ESP_IDF_DOC_ENV_IMAGE
stage: build_doc
tags:
- build_docs
script:
- cd docs
- build-docs -t $DOCTGT -bs $DOC_BUILDERS -l $DOCLANG build
parallel:
matrix:
- DOCLANG: ["en", "zh_CN"]
DOCTGT: ["esp32", "esp32s2", "esp32s3", "esp32c3", "esp32c2", "esp32c6", "esp32h2", "esp32p4"]
check_docs_gh_links:
image: $ESP_IDF_DOC_ENV_IMAGE
extends:
- .pre_check_template
- .doc-rules:build:docs-full
script:
- cd docs
- build-docs gh-linkcheck
# Doc jobs have a lot of special cases, we specify rules here directly instead
# in dependencies.yml to simplify things
build_docs_html_full:
extends:
- .build_docs_template
- .doc-rules:build:docs-full
needs:
- job: fast_template_app
artifacts: false
optional: true
artifacts:
when: always
paths:
- docs/_build/*/*/*.txt
- docs/_build/*/*/html/*
expire_in: 4 days
variables:
DOC_BUILDERS: "html"
build_docs_html_full_prod:
extends:
- .build_docs_template
- .doc-rules:build:docs-full-prod
dependencies: [] # Stop build_docs jobs from downloading all previous job's artifacts
artifacts:
when: always
paths:
- docs/_build/*/*/*.txt
- docs/_build/*/*/html/*
expire_in: 4 days
variables:
DOC_BUILDERS: "html"
build_docs_html_partial:
extends:
- .build_docs_template
- .doc-rules:build:docs-partial
needs:
- job: fast_template_app
artifacts: false
optional: true
artifacts:
when: always
paths:
- docs/_build/*/*/*.txt
- docs/_build/*/*/html/*
expire_in: 4 days
variables:
DOC_BUILDERS: "html"
parallel:
matrix:
- DOCLANG: "en"
DOCTGT: "esp32"
- DOCLANG: "zh_CN"
DOCTGT: "esp32p4"
build_docs_pdf:
extends:
- .build_docs_template
- .doc-rules:build:docs-full
needs:
- job: fast_template_app
artifacts: false
optional: true
artifacts:
when: always
paths:
- docs/_build/*/*/latex/*
expire_in: 4 days
variables:
DOC_BUILDERS: "latex"
build_docs_pdf_prod:
extends:
- .build_docs_template
- .doc-rules:build:docs-full-prod
dependencies: [] # Stop build_docs jobs from downloading all previous job's artifacts
artifacts:
when: always
paths:
- docs/_build/*/*/latex/*
expire_in: 4 days
variables:
DOC_BUILDERS: "latex"
.deploy_docs_template:
image: $ESP_IDF_DOC_ENV_IMAGE
variables:
DOCS_BUILD_DIR: "${IDF_PATH}/docs/_build/"
PYTHONUNBUFFERED: 1
stage: test_deploy
tags:
- deploy
- shiny
script:
- add_doc_server_ssh_keys $DOCS_DEPLOY_PRIVATEKEY $DOCS_DEPLOY_SERVER $DOCS_DEPLOY_SERVER_USER
- export GIT_VER=$(git describe --always ${PIPELINE_COMMIT_SHA} --)
- deploy-docs
# stage: test_deploy
deploy_docs_preview:
extends:
- .deploy_docs_template
rules:
- <<: *if-label-build_docs
- <<: *if-label-docs_full
- <<: *if-dev-push
changes: *patterns-docs-preview
needs:
- job: build_docs_html_partial
optional: true
- job: build_docs_html_full
optional: true
- job: build_docs_pdf
optional: true
variables:
TYPE: "preview"
# older branches use DOCS_DEPLOY_KEY, DOCS_SERVER, DOCS_SERVER_USER, DOCS_PATH for preview server so we keep these names for 'preview'
DOCS_DEPLOY_PRIVATEKEY: "$DOCS_DEPLOY_KEY"
DOCS_DEPLOY_SERVER: "$DOCS_SERVER"
DOCS_DEPLOY_SERVER_USER: "$DOCS_SERVER_USER"
DOCS_DEPLOY_PATH: "$DOCS_PATH"
DOCS_DEPLOY_URL_BASE: "https://$DOCS_PREVIEW_SERVER_URL/docs/esp-idf"
# stage: post_deploy
deploy_docs_production:
# The DOCS_PROD_* variables used by this job are "Protected" so these branches must all be marked "Protected" in Gitlab settings
extends:
- .deploy_docs_template
- .doc-rules:build:docs-full-prod
stage: post_deploy
dependencies: # set dependencies to null to avoid missing artifacts issue
needs: # ensure runs after push_to_github succeeded
- build_docs_html_full_prod
- build_docs_pdf_prod
- job: push_to_github
artifacts: false
variables:
TYPE: "preview"
DOCS_DEPLOY_PRIVATEKEY: "$DOCS_PROD_DEPLOY_KEY"
DOCS_DEPLOY_SERVER: "$DOCS_PROD_SERVER"
DOCS_DEPLOY_SERVER_USER: "$DOCS_PROD_SERVER_USER"
DOCS_DEPLOY_PATH: "$DOCS_PROD_PATH"
DOCS_DEPLOY_URL_BASE: "https://docs.espressif.com/projects/esp-idf"
DEPLOY_STABLE: 1
check_doc_links:
extends:
- .build_docs_template
- .doc-rules:build:docs-full-prod
stage: post_deploy
needs:
- job: deploy_docs_production
artifacts: false
tags: ["build", "amd64", "internet"]
artifacts:
when: always
paths:
- docs/_build/*/*/*.txt
- docs/_build/*/*/linkcheck/*.txt
expire_in: 1 week
allow_failure: true
script:
- cd docs
- build-docs -t $DOCTGT -l $DOCLANG linkcheck

View File

@@ -1,346 +0,0 @@
.host_test_template:
extends: .rules:test:host_test
stage: host_test
image: $ESP_ENV_IMAGE
tags:
- host_test
dependencies: # set dependencies to null to avoid missing artifacts issue
# run host_test jobs immediately, only after upload cache
needs:
- job: upload-pip-cache
optional: true
artifacts: false
- job: upload-submodules-cache
optional: true
artifacts: false
- pipeline_variables
test_nvs_on_host:
extends: .host_test_template
script:
- cd components/nvs_flash/test_nvs_host
- make test
test_nvs_coverage:
extends:
- .host_test_template
- .rules:labels:nvs_coverage
artifacts:
paths:
- components/nvs_flash/test_nvs_host/coverage_report
expire_in: 1 week
script:
- cd components/nvs_flash/test_nvs_host
- make coverage_report
# the 'long' host tests take approx 11 hours on our current runners. Adding some margin here for possible CPU contention
timeout: 18 hours
test_partition_table_on_host:
extends: .host_test_template
script:
- cd components/partition_table/test_gen_esp32part_host
- ./gen_esp32part_tests.py
test_ldgen_on_host:
extends: .host_test_template
script:
- cd tools/ldgen/test
- export PYTHONPATH=$PYTHONPATH:..
- python -m unittest
variables:
LC_ALL: C.UTF-8
test_reproducible_build:
extends: .host_test_template
script:
- ./tools/ci/test_reproducible_build.sh
artifacts:
when: on_failure
paths:
- "**/sdkconfig"
- "**/build*/*.bin"
- "**/build*/*.elf"
- "**/build*/*.map"
- "**/build*/flasher_args.json"
- "**/build*/*.bin"
- "**/build*/bootloader/*.bin"
- "**/build*/partition_table/*.bin"
expire_in: 1 week
test_spiffs_on_host:
extends: .host_test_template
script:
- cd components/spiffs/test_spiffsgen/
- ./test_spiffsgen.py
test_fatfsgen_on_host:
extends: .host_test_template
script:
- cd components/fatfs/test_fatfsgen/
- ./test_fatfsgen.py
- ./test_wl_fatfsgen.py
- ./test_fatfsparse.py
test_multi_heap_on_host:
extends: .host_test_template
script:
- cd components/heap/test_multi_heap_host
- ./test_all_configs.sh
test_certificate_bundle_on_host:
extends: .host_test_template
script:
- cd components/mbedtls/esp_crt_bundle/test_gen_crt_bundle/
- ./test_gen_crt_bundle.py
test_gdbstub_on_host:
extends: .host_test_template
script:
- cd components/esp_gdbstub/test_gdbstub_host
- make test
test_idf_py:
extends: .host_test_template
variables:
LC_ALL: C.UTF-8
script:
- cd ${IDF_PATH}/tools/test_idf_py
- ./test_idf_py.py
- ./test_hints.py
# Test for create virtualenv. It must be invoked from Python, not from virtualenv.
# Use docker image system python without any extra dependencies
test_idf_tools:
extends:
- .host_test_template
- .before_script:minimal
artifacts:
when: on_failure
paths:
- tools/tools.new.json
- tools/test_idf_tools/test_python_env_logs.txt
expire_in: 1 week
image:
name: $ESP_ENV_IMAGE
entrypoint: [""] # use system python3. no extra pip package installed
script:
# Tools must be downloaded for testing
- python3 ${IDF_PATH}/tools/idf_tools.py download required qemu-riscv32 qemu-xtensa
- cd ${IDF_PATH}/tools/test_idf_tools
- python3 -m pip install jsonschema
- python3 ./test_idf_tools.py -v
- python3 ./test_idf_tools_python_env.py
.test_efuse_table_on_host_template:
extends: .host_test_template
variables:
IDF_TARGET: "esp32"
artifacts:
when: on_failure
paths:
- components/efuse/${IDF_TARGET}/esp_efuse_table.c
expire_in: 1 week
script:
- cd ${IDF_PATH}/components/efuse/
- ./efuse_table_gen.py -t "${IDF_TARGET}" ${IDF_PATH}/components/efuse/${IDF_TARGET}/esp_efuse_table.csv
- git diff --exit-code -- ${IDF_TARGET}/esp_efuse_table.c || { echo 'Differences found for ${IDF_TARGET} target. Please run idf.py efuse-common-table and commit the changes.'; exit 1; }
- cd ${IDF_PATH}/components/efuse/test_efuse_host
- ./efuse_tests.py
test_efuse_table_on_host_esp32:
extends: .test_efuse_table_on_host_template
test_efuse_table_on_host_esp32s2:
extends: .test_efuse_table_on_host_template
variables:
IDF_TARGET: esp32s2
test_efuse_table_on_host_esp32s3:
extends: .test_efuse_table_on_host_template
variables:
IDF_TARGET: esp32s3
test_efuse_table_on_host_esp32c3:
extends: .test_efuse_table_on_host_template
variables:
IDF_TARGET: esp32c3
test_efuse_table_on_host_esp32h2:
extends: .test_efuse_table_on_host_template
variables:
IDF_TARGET: esp32h2
test_efuse_table_on_host_esp32c6:
extends: .test_efuse_table_on_host_template
variables:
IDF_TARGET: esp32c6
test_logtrace_proc:
extends: .host_test_template
artifacts:
when: on_failure
paths:
- tools/esp_app_trace/test/logtrace/output
- tools/esp_app_trace/test/logtrace/.coverage
expire_in: 1 week
script:
- cd ${IDF_PATH}/tools/esp_app_trace/test/logtrace
- ./test.sh
test_sysviewtrace_proc:
extends: .host_test_template
artifacts:
when: on_failure
paths:
- tools/esp_app_trace/test/sysview/output
- tools/esp_app_trace/test/sysview/.coverage
expire_in: 1 week
script:
- cd ${IDF_PATH}/tools/esp_app_trace/test/sysview
- ./test.sh
test_mkdfu:
extends: .host_test_template
variables:
LC_ALL: C.UTF-8
script:
- cd ${IDF_PATH}/tools/test_mkdfu
- ./test_mkdfu.py
test_autocomplete:
extends:
- .host_test_template
artifacts:
when: on_failure
paths:
- ${IDF_PATH}/*.out
expire_in: 1 week
script:
- ${IDF_PATH}/tools/ci/test_autocomplete.py
test_detect_python:
extends:
- .host_test_template
script:
- cd ${IDF_PATH}
- shellcheck -s sh tools/detect_python.sh
- shellcheck -s bash tools/detect_python.sh
- shellcheck -s dash tools/detect_python.sh
- "bash -c '. tools/detect_python.sh && echo Our Python: ${ESP_PYTHON?Python is not set}'"
- "dash -c '. tools/detect_python.sh && echo Our Python: ${ESP_PYTHON?Python is not set}'"
- "zsh -c '. tools/detect_python.sh && echo Our Python: ${ESP_PYTHON?Python is not set}'"
- "fish -c 'source tools/detect_python.fish && echo Our Python: $ESP_PYTHON'"
test_split_path_by_spaces:
extends: .host_test_template
script:
- cd ${IDF_PATH}/tools
- python -m unittest split_paths_by_spaces.py
test_mqtt_on_host:
extends: .host_test_template
script:
- cd ${IDF_PATH}/components/mqtt/esp-mqtt/host_test
- idf.py build
- LSAN_OPTIONS=verbosity=1:log_threads=1 build/host_mqtt_client_test.elf
test_transport_on_host:
extends: .host_test_template
script:
- cd ${IDF_PATH}/components/tcp_transport/host_test
- idf.py build
- LSAN_OPTIONS=verbosity=1:log_threads=1 build/host_tcp_transport_test.elf
test_sockets_on_host:
extends: .host_test_template
script:
# test the tcp-client example with system sockets
- cd ${IDF_PATH}/examples/protocols/sockets/tcp_client
- echo 'CONFIG_EXAMPLE_IPV4_ADDR="127.0.0.1"' >> sdkconfig.defaults
- idf.py --preview set-target linux
- idf.py build
- timeout 5 ./build/tcp_client.elf >test.log || true
- grep "Socket unable to connect" test.log
# test the udp-client example with lwip sockets
- cd ${IDF_PATH}/examples/protocols/sockets/udp_client
- idf.py --preview set-target linux
- cat sdkconfig.ci.linux > sdkconfig
- idf.py build
- timeout 5 ./build/udp_client.elf >test.log || true
- grep "Message sent" test.log
test_eh_frame_parser:
extends: .host_test_template
script:
- cd ${IDF_PATH}/components/esp_system/test_eh_frame_parser
- make
- ./eh_frame_test
test_gen_soc_caps_kconfig:
extends: .host_test_template
script:
- cd ${IDF_PATH}/tools/gen_soc_caps_kconfig/
- ./test/test_gen_soc_caps_kconfig.py
test_pytest_qemu:
extends:
- .host_test_template
- .before_script:build
image: $QEMU_IMAGE
artifacts:
when: always
paths:
- XUNIT_RESULT.xml
- pytest_embedded_log/
reports:
junit: XUNIT_RESULT.xml
expire_in: 1 week
allow_failure: true # IDFCI-1752
parallel:
matrix:
- IDF_TARGET: [esp32, esp32c3]
script:
- run_cmd python tools/ci/ci_build_apps.py . -vv
--target $IDF_TARGET
--pytest-apps
-m qemu
--collect-app-info "list_job_${CI_JOB_NAME_SLUG}.txt"
--modified-components ${MODIFIED_COMPONENTS}
--modified-files ${MODIFIED_FILES}
- retry_failed git clone $KNOWN_FAILURE_CASES_REPO known_failure_cases
- run_cmd pytest
--target $IDF_TARGET
-m qemu
--embedded-services idf,qemu
--junitxml=XUNIT_RESULT.xml
--ignore-result-files known_failure_cases/known_failure_cases.txt
--app-info-filepattern \"list_job_*.txt\"
test_pytest_linux:
extends:
- .host_test_template
- .before_script:build
artifacts:
when: always
paths:
- XUNIT_RESULT.xml
- pytest_embedded_log/
- "**/build*/build_log.txt"
reports:
junit: XUNIT_RESULT.xml
expire_in: 1 week
script:
- run_cmd python tools/ci/ci_build_apps.py components examples tools/test_apps -vv
--target linux
--pytest-apps
-m host_test
--collect-app-info "list_job_${CI_JOB_NAME_SLUG}.txt"
--modified-components ${MODIFIED_COMPONENTS}
--modified-files ${MODIFIED_FILES}
- retry_failed git clone $KNOWN_FAILURE_CASES_REPO known_failure_cases
- run_cmd pytest
--target linux
-m host_test
--junitxml=XUNIT_RESULT.xml
--ignore-result-files known_failure_cases/known_failure_cases.txt
--app-info-filepattern \"list_job_*.txt\"

View File

@@ -1,69 +0,0 @@
# generate dynamic integration pipeline by `idf-integration-ci` project
.patterns-integration_test: &patterns-integration_test
# add all possible patterns to make sure `gen_integration_pipeline` can be triggered.
# fine-grained control will be done while generating the pipeline
# find `patterns` in `idf-integration-ci` project
- "components/**/*"
- "tools/**/*"
- ".gitlab-ci.yml"
- ".gitlab/ci/common.yml"
- ".gitlab/ci/integration_test.yml"
- ".gitmodules"
- "CMakeLists.txt"
- "install.sh"
- "export.sh"
- "Kconfig"
- "sdkconfig.rename"
# Simplify the rules
.integration_test_rules:
rules:
- if: '$CI_PIPELINE_SOURCE != "merge_request_event"'
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
changes: *patterns-integration_test
# support trigger by ci labels
- if: '$CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*target_test(?:,[^,\n\r]+)*$/i'
- if: '$CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*integration_test(?:,[^,\n\r]+)*$/i'
- if: '$CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*build(?:,[^,\n\r]+)*$/i'
gen_integration_pipeline:
extends:
- .before_script:minimal
- .integration_test_rules
image: ${CI_INTEGRATION_ASSIGN_ENV}
stage: assign_test
cache: []
tags:
- assign_test
variables:
SUBMODULES_TO_FETCH: "none"
GIT_LFS_SKIP_SMUDGE: 1
needs:
- job: fast_template_app
artifacts: false
optional: true
artifacts:
paths:
- idf-integration-ci/child_pipeline/
expire_in: 2 weeks
script:
- add_gitlab_ssh_keys
- retry_failed git clone ${CI_GEN_INTEGRATION_PIPELINE_REPO} idf-integration-ci
- python $CHECKOUT_REF_SCRIPT idf-integration-ci idf-integration-ci
- cd idf-integration-ci
- python tools/generate_child_pipeline.py -o child_pipeline/
child_integration_test_pipeline:
extends:
- .integration_test_rules
stage: assign_test
needs:
- gen_integration_pipeline
trigger:
include:
- artifact: idf-integration-ci/child_pipeline/pipeline.yml
job: gen_integration_pipeline
forward:
yaml_variables: false
strategy: depend

View File

@@ -1,193 +0,0 @@
.pre_check_template:
stage: pre_check
image: $ESP_ENV_IMAGE
tags:
- host_test
dependencies: []
check_pre_commit:
extends:
- .pre_check_template
- .before_script:minimal
image: $PRE_COMMIT_IMAGE
needs:
- pipeline_variables
script:
- fetch_submodules
- pre-commit run --files $MODIFIED_FILES
check_MR_style_dangerjs:
extends:
- .pre_check_template
image: node:18.15.0-alpine3.16
variables:
DANGER_GITLAB_API_TOKEN: ${ESPCI_TOKEN}
DANGER_GITLAB_HOST: ${GITLAB_HTTP_SERVER}
DANGER_GITLAB_API_BASE_URL: ${GITLAB_HTTP_SERVER}/api/v4
DANGER_JIRA_USER: ${DANGER_JIRA_USER}
DANGER_JIRA_PASSWORD: ${DANGER_JIRA_PASSWORD}
cache:
# pull only for most of the use cases since it's cache dir.
# Only set "push" policy for "upload_cache" stage jobs
key:
files:
- .gitlab/dangerjs/package-lock.json
paths:
- .gitlab/dangerjs/node_modules/
policy: pull
before_script:
- cd .gitlab/dangerjs
- npm install --no-progress --no-update-notifier # Install danger dependencies
script:
- npx danger ci --failOnErrors -v
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
check_version:
# Don't run this for feature/bugfix branches, so that it is possible to modify
# esp_idf_version.h in a branch before tagging the next version.
extends:
- .pre_check_template
- .rules:protected
- .before_script:fetch:git_describe
script:
- export IDF_PATH=$PWD
- tools/ci/check_idf_version.sh
check_api_usage:
extends: .pre_check_template
script:
- tools/ci/check_examples_rom_header.sh
- tools/ci/check_api_violation.sh
- tools/ci/check_examples_extra_component_dirs.sh
check_blobs:
extends:
- .pre_check_template
- .rules:build:check
variables:
SUBMODULES_TO_FETCH: "components/esp_wifi/lib;components/esp_phy/lib;components/esp_coex/lib"
script:
# Check if Wi-Fi library header files match between IDF and the version used when compiling the libraries
- IDF_TARGET=esp32 $IDF_PATH/components/esp_wifi/test_md5/test_md5.sh
- IDF_TARGET=esp32s2 $IDF_PATH/components/esp_wifi/test_md5/test_md5.sh
- IDF_TARGET=esp32s3 $IDF_PATH/components/esp_wifi/test_md5/test_md5.sh
- IDF_TARGET=esp32c2 $IDF_PATH/components/esp_wifi/test_md5/test_md5.sh
- IDF_TARGET=esp32c3 $IDF_PATH/components/esp_wifi/test_md5/test_md5.sh
- IDF_TARGET=esp32c6 $IDF_PATH/components/esp_wifi/test_md5/test_md5.sh
# Check if Coexistence library header files match between IDF and the version used when compiling the libraries
- IDF_TARGET=esp32 $IDF_PATH/components/esp_coex/test_md5/test_md5.sh
- IDF_TARGET=esp32s2 $IDF_PATH/components/esp_coex/test_md5/test_md5.sh
- IDF_TARGET=esp32s3 $IDF_PATH/components/esp_coex/test_md5/test_md5.sh
- IDF_TARGET=esp32c2 $IDF_PATH/components/esp_coex/test_md5/test_md5.sh
- IDF_TARGET=esp32c3 $IDF_PATH/components/esp_coex/test_md5/test_md5.sh
- IDF_TARGET=esp32c6 $IDF_PATH/components/esp_coex/test_md5/test_md5.sh
- IDF_TARGET=esp32h2 $IDF_PATH/components/esp_coex/test_md5/test_md5.sh
# Check if Wi-Fi, PHY, BT blobs contain references to specific symbols
- bash $IDF_PATH/tools/ci/check_blobs.sh
check_public_headers:
extends:
- .pre_check_template
- .rules:build:check
script:
- IDF_TARGET=esp32 python tools/ci/check_public_headers.py --jobs 4 --prefix xtensa-esp32-elf-
- IDF_TARGET=esp32s2 python tools/ci/check_public_headers.py --jobs 4 --prefix xtensa-esp32s2-elf-
- IDF_TARGET=esp32s3 python tools/ci/check_public_headers.py --jobs 4 --prefix xtensa-esp32s3-elf-
- IDF_TARGET=esp32c3 python tools/ci/check_public_headers.py --jobs 4 --prefix riscv32-esp-elf-
- IDF_TARGET=esp32c2 python tools/ci/check_public_headers.py --jobs 4 --prefix riscv32-esp-elf-
- IDF_TARGET=esp32c6 python tools/ci/check_public_headers.py --jobs 4 --prefix riscv32-esp-elf-
- IDF_TARGET=esp32h2 python tools/ci/check_public_headers.py --jobs 4 --prefix riscv32-esp-elf-
- IDF_TARGET=esp32p4 python tools/ci/check_public_headers.py --jobs 4 --prefix riscv32-esp-elf-
check_chip_support_components:
extends:
- .pre_check_template
- .rules:build:check
artifacts:
when: on_failure
paths:
- esp_hw_support_part.h
- bootloader_support_part.h
expire_in: 1 week
script:
- python tools/ci/check_soc_headers_leak.py
- find ${IDF_PATH}/components/soc/*/include/soc/ -name "*_struct.h" -print0 | xargs -0 -n1 ./tools/ci/check_soc_struct_headers.py
- tools/ci/check_esp_memory_utils_headers.sh
check_esp_err_to_name:
extends:
- .pre_check_template
- .rules:build:check
artifacts:
when: on_failure
paths:
- components/esp_common/esp_err_to_name.c
expire_in: 1 week
script:
- cd ${IDF_PATH}/tools/
- ./gen_esp_err_to_name.py
- git diff --exit-code -- ../components/esp_common/src/esp_err_to_name.c || { echo 'Differences found. Please run gen_esp_err_to_name.py and commit the changes.'; exit 1; }
check_esp_system:
extends:
- .pre_check_template
- .rules:build
script:
- python components/esp_system/check_system_init_priorities.py
# For release tag pipelines only, make sure the tag was created with 'git tag -a' so it will update
# the version returned by 'git describe'
# Don't forget to update the env var `LATEST_GIT_TAG` in .gitlab/ci/common.yml
check_version_tag:
extends:
- .pre_check_template
- .rules:tag:release
- .before_script:fetch:git_describe
script:
- (git cat-file -t $CI_COMMIT_REF_NAME | grep tag) || (echo "ESP-IDF versions must be annotated tags." && exit 1)
check_artifacts_expire_time:
extends: .pre_check_template
script:
# check if we have set expire time for all artifacts
- python tools/ci/check_artifacts_expire_time.py
check_test_scripts_build_test_rules:
extends:
- .pre_check_template
- .before_script:build
script:
# required pytest related packages
- run_cmd bash install.sh --enable-pytest
- python tools/ci/check_build_test_rules.py check-test-scripts examples/ tools/test_apps components
check_configure_ci_environment_parsing:
extends:
- .pre_check_template
- .before_script:build
- .rules:build
script:
- cd tools/ci
- python -m unittest ci_build_apps.py
pipeline_variables:
extends:
- .pre_check_template
- .before_script:fetch:git_diff
tags:
- build
script:
- MODIFIED_FILES=$(echo "$GIT_DIFF_OUTPUT" | xargs)
- echo "MODIFIED_FILES=$MODIFIED_FILES" >> pipeline.env
- echo "MODIFIED_COMPONENTS=$(run_cmd python tools/ci/ci_get_mr_info.py components --modified-files $MODIFIED_FILES | xargs)" >> pipeline.env
- |
if echo "$CI_MERGE_REQUEST_LABELS" | egrep "(^|,)BUILD_AND_TEST_ALL_APPS(,|$)"; then
echo "BUILD_AND_TEST_ALL_APPS=1" >> pipeline.env
fi
- cat pipeline.env
- python tools/ci/artifacts_handler.py upload --type modified_files_and_components_report
artifacts:
reports:
dotenv: pipeline.env
expire_in: 4 days

File diff suppressed because it is too large Load Diff

View File

@@ -1,117 +0,0 @@
# pre_check stage
clang_tidy_check:
extends:
- .pre_check_template
- .rules:patterns:clang_tidy
artifacts:
paths:
- clang_tidy_reports/
when: always
expire_in: 1 day
variables:
IDF_TOOLCHAIN: clang
script:
- run_cmd idf_clang_tidy $(cat tools/ci/clang_tidy_dirs.txt | xargs)
--output-path clang_tidy_reports
--limit-file tools/ci/static-analysis-rules.yml
--xtensa-include-dir
check_pylint:
extends:
- .pre_check_template
- .rules:patterns:python-files
needs:
- pipeline_variables
artifacts:
when: always
reports:
codequality: pylint.json
expire_in: 1 week
script:
- |
if [ -n "$CI_MERGE_REQUEST_IID" ]; then
export files=$(echo "$GIT_DIFF_OUTPUT" | grep ".py$" | xargs);
else
export files=$(git ls-files "*.py" | xargs);
fi
- if [ -z "$files" ]; then echo "No python files found"; exit 0; fi
- run_cmd pylint --exit-zero --load-plugins=pylint_gitlab --output-format=gitlab-codeclimate:pylint.json $files
# build stage
# Sonarqube related jobs put here for this reason:
# Here we have two jobs. code_quality_check and code_quality_report.
#
# code_quality_check will analyze the code changes between your MR and
# code repo stored in sonarqube server. The analysis result is only shown in
# the comments under this MR and won't be transferred to the server.
#
# code_quality_report will analyze and transfer both of the newly added code
# and the analysis result to the server.
#
# Put in the front to ensure that the newly merged code can be stored in
# sonarqube server ASAP, in order to avoid reporting unrelated code issues
.sonar_scan_template:
stage: build
extends: .pre_check_template
image:
name: $SONARQUBE_SCANNER_IMAGE
before_script:
- source tools/ci/utils.sh
- export PYTHONPATH="$CI_PROJECT_DIR/tools:$CI_PROJECT_DIR/tools/ci/python_packages:$PYTHONPATH"
- fetch_submodules
# Exclude the submodules, all paths ends with /**
- submodules=$(get_all_submodules)
# get all exclude paths specified in tools/ci/sonar_exclude_list.txt | ignore lines start with # | xargs | replace all <space> to <comma>
- custom_excludes=$(cat $CI_PROJECT_DIR/tools/ci/sonar_exclude_list.txt | grep -v '^#' | xargs | sed -e 's/ /,/g')
# Exclude the report dir as well
- export EXCLUSIONS="$custom_excludes,$submodules"
- export SONAR_SCANNER_OPTS="-Xmx2048m"
variables:
GIT_DEPTH: 0
REPORT_PATTERN: clang_tidy_reports/*.txt
artifacts:
when: always
paths:
- $REPORT_PATTERN
expire_in: 1 week
dependencies: # Here is not a hard dependency relationship, could be skipped when only python files changed. so we do not use "needs" here.
- clang_tidy_check
code_quality_check:
extends:
- .sonar_scan_template
- .rules:patterns:static-code-analysis-preview
allow_failure: true # since now it's using exit code to indicate the code analysis result,
# we don't want to block ci when critical issues founded
script:
- export CI_MERGE_REQUEST_COMMITS=$(python ${CI_PROJECT_DIR}/tools/ci/ci_get_mr_info.py commits --src-branch ${CI_COMMIT_REF_NAME} | tr '\n' ',')
# test if this branch have merge request, if not, exit 0
- test -n "$CI_MERGE_REQUEST_IID" || exit 0
- test -n "$CI_MERGE_REQUEST_COMMITS" || exit 0
- sonar-scanner
-Dsonar.analysis.mode=preview
-Dsonar.branch.name=$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
-Dsonar.cxx.clangtidy.reportPath=$REPORT_PATTERN
-Dsonar.exclusions=$EXCLUSIONS
-Dsonar.gitlab.ci_merge_request_iid=$CI_MERGE_REQUEST_IID
-Dsonar.gitlab.commit_sha=$CI_MERGE_REQUEST_COMMITS
-Dsonar.gitlab.merge_request_discussion=true
-Dsonar.gitlab.ref_name=$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
-Dsonar.host.url=$SONAR_HOST_URL
-Dsonar.login=$SONAR_LOGIN
code_quality_report:
extends:
- .sonar_scan_template
- .rules:protected
allow_failure: true # since now it's using exit code to indicate the code analysis result,
# we don't want to block ci when critical issues founded
script:
- sonar-scanner
-Dsonar.branch.name=$CI_COMMIT_REF_NAME
-Dsonar.cxx.clangtidy.reportPath=$REPORT_PATTERN
-Dsonar.exclusions=$EXCLUSIONS
-Dsonar.gitlab.commit_sha=$PIPELINE_COMMIT_SHA
-Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME
-Dsonar.host.url=$SONAR_HOST_URL
-Dsonar.login=$SONAR_LOGIN

File diff suppressed because it is too large Load Diff

View File

@@ -1,74 +0,0 @@
# pull only for most of the use cases for cache
# only set "push" policy for the jobs under this file.
# The cache would be updated when files matched specified patterns changes.
.upload_cache_template:
stage: upload_cache
image: $ESP_ENV_IMAGE
upload-pip-cache:
extends:
- .upload_cache_template
- .before_script:minimal
- .rules:patterns:python-cache
tags:
- $GEO
- cache
cache:
key: pip-cache
paths:
- .cache/pip
policy: push
script:
- rm -rf .cache/pip # clear old packages
- bash install.sh --enable-ci --enable-pytest
parallel:
matrix:
- GEO: [ 'shiny', 'brew' ]
upload-submodules-cache:
extends:
- .upload_cache_template
- .before_script:minimal
- .rules:patterns:submodule
tags:
- $GEO
- cache
cache:
key: submodule-cache
paths:
- .cache/submodule_archives
policy: push
script:
# use the default gitlab server
- unset LOCAL_GITLAB_HTTPS_HOST
- rm -rf .cache/submodule_archives # clear old submodule archives
- add_gitlab_ssh_keys
- fetch_submodules
parallel:
matrix:
- GEO: [ 'shiny', 'brew' ]
upload-danger-npm-cache:
stage: upload_cache
image: node:18.15.0-alpine3.16
extends:
- .rules:patterns:dangerjs
tags:
- $GEO
- cache
cache:
key:
files:
- .gitlab/dangerjs/package-lock.json
paths:
- .gitlab/dangerjs/node_modules/
policy: push
before_script:
- echo "Skip before scripts ...."
script:
- cd .gitlab/dangerjs
- npm install --no-progress --no-update-notifier
parallel:
matrix:
- GEO: [ 'shiny', 'brew' ]

View File

@@ -1,172 +0,0 @@
const {
minimumSummaryChars,
maximumSummaryChars,
maximumBodyLineChars,
allowedTypes,
} = require("./mrCommitsConstants.js");
const { gptStandardModelTokens } = require("./mrCommitsConstants.js");
const { ChatPromptTemplate } = require("langchain/prompts");
const { SystemMessagePromptTemplate } = require("langchain/prompts");
const { LLMChain } = require("langchain/chains");
const { ChatOpenAI } = require("langchain/chat_models/openai");
const openAiTokenCount = require("openai-gpt-token-counter");
module.exports = async function () {
let outputDangerMessage = `\n\nPerhaps you could use an AI-generated suggestion for your commit message. Here is one `;
let mrDiff = await getMrGitDiff(danger.git.modified_files);
const mrCommitMessages = getCommitMessages(danger.gitlab.commits);
const inputPrompt = getInputPrompt();
const inputLlmTokens = getInputLlmTokens(
inputPrompt,
mrDiff,
mrCommitMessages
);
console.log(`Input tokens for LLM: ${inputLlmTokens}`);
if (inputLlmTokens >= gptStandardModelTokens) {
mrDiff = ""; // If the input mrDiff is larger than 16k model, don't use mrDiff, use only current commit messages
outputDangerMessage += `(based only on your current commit messages, git-diff of this MR is too big (${inputLlmTokens} tokens) for the AI models):\n\n`;
} else {
outputDangerMessage += `(based on your MR git-diff and your current commit messages):\n\n`;
}
// Generate AI commit message
let generatedCommitMessage = "";
try {
const rawCommitMessage = await createAiGitMessage(
inputPrompt,
mrDiff,
mrCommitMessages
);
generatedCommitMessage = postProcessCommitMessage(rawCommitMessage);
} catch (error) {
console.error("Error in generating AI commit message: ", error);
outputDangerMessage +=
"\nCould not generate commit message due to an error.\n";
}
// Append closing statements ("Closes https://github.com/espressif/esp-idf/issues/XXX") to the generated commit message
let closingStatements = extractClosingStatements(mrCommitMessages);
if (closingStatements.length > 0) {
generatedCommitMessage += "\n\n" + closingStatements;
}
// Add the generated git message, format to the markdown code block
outputDangerMessage += `\n\`\`\`\n${generatedCommitMessage}\n\`\`\`\n`;
outputDangerMessage +=
"\n**NOTE: AI-generated suggestions may not always be correct, please review the suggestion before using it.**"; // Add disclaimer
return outputDangerMessage;
};
async function getMrGitDiff(mrModifiedFiles) {
const fileDiffs = await Promise.all(
mrModifiedFiles.map((file) => danger.git.diffForFile(file))
);
return fileDiffs.map((fileDiff) => fileDiff.diff.trim()).join(" ");
}
function getCommitMessages(mrCommits) {
return mrCommits.map((commit) => commit.message);
}
function getInputPrompt() {
return `You are a helpful assistant that creates suggestions for single git commit message, that user can use to describe all the changes in their merge request.
Use git diff: {mrDiff} and users current commit messages: {mrCommitMessages} to get the changes made in the commit.
Output should be git commit message following the conventional commit format.
Output only git commit message in desired format, without comments and other text.
Do not include the closing statements ("Closes https://....") in the output.
Here are the strict rules you must follow:
- Avoid mentioning any JIRA tickets (e.g., "Closes JIRA-123").
- Be specific. Don't use vague terms (e.g., "some checks", "add new ones", "few changes").
- The commit message structure should be: <type><(scope/component)>: <summary>
- Types allowed: ${allowedTypes.join(", ")}
- If 'scope/component' is used, it must start with a lowercase letter.
- The 'summary' must NOT end with a period.
- The 'summary' must be between ${minimumSummaryChars} and ${maximumSummaryChars} characters long.
If a 'body' of commit message is used:
- Each line must be no longer than ${maximumBodyLineChars} characters.
- It must be separated from the 'summary' by a blank line.
Examples of correct commit messages:
- With scope and body:
fix(freertos): Fix startup timeout issue
This is a text of commit message body...
- adds support for wifi6
- adds validations for logging script
- Without scope and body:
ci: added target test job for ESP32-Wifi6`;
}
function getInputLlmTokens(inputPrompt, mrDiff, mrCommitMessages) {
const mrCommitMessagesTokens = openAiTokenCount(mrCommitMessages.join(" "));
const gitDiffTokens = openAiTokenCount(mrDiff);
const promptTokens = openAiTokenCount(inputPrompt);
return mrCommitMessagesTokens + gitDiffTokens + promptTokens;
}
async function createAiGitMessage(inputPrompt, mrDiff, mrCommitMessages) {
const chat = new ChatOpenAI({ engine: "gpt-3.5-turbo", temperature: 0 });
const chatPrompt = ChatPromptTemplate.fromPromptMessages([
SystemMessagePromptTemplate.fromTemplate(inputPrompt),
]);
const chain = new LLMChain({ prompt: chatPrompt, llm: chat });
const response = await chain.call({
mrDiff: mrDiff,
mrCommitMessages: mrCommitMessages,
});
return response.text;
}
function postProcessCommitMessage(rawCommitMessage) {
// Split the result into lines
let lines = rawCommitMessage.split("\n");
// Format each line
for (let i = 0; i < lines.length; i++) {
let line = lines[i].trim();
// If the line is longer than maximumBodyLineChars, split it into multiple lines
if (line.length > maximumBodyLineChars) {
let newLines = [];
while (line.length > maximumBodyLineChars) {
let lastSpaceIndex = line.lastIndexOf(
" ",
maximumBodyLineChars
);
newLines.push(line.substring(0, lastSpaceIndex));
line = line.substring(lastSpaceIndex + 1);
}
newLines.push(line);
lines[i] = newLines.join("\n");
}
}
// Join the lines back into a single string with a newline between each one
return lines.join("\n");
}
function extractClosingStatements(mrCommitMessages) {
let closingStatements = [];
mrCommitMessages.forEach((message) => {
const lines = message.split("\n");
lines.forEach((line) => {
if (line.startsWith("Closes")) {
closingStatements.push(line);
}
});
});
return closingStatements.join("\n");
}

View File

@@ -1,56 +0,0 @@
let outputStatuses = [];
/**
* Logs the status of a rule with padded formatting and stores it in the `outputStatuses` array.
* If the rule already exists in the array, its status is updated.
* @param message The name of the rule
* @param status The output (exit) status of the rule
*/
function recordRuleExitStatus(message, status) {
// Check if the rule already exists in the array
const existingRecord = outputStatuses.find(
(rule) => rule.message === message
);
if (existingRecord) {
// Update the status of the existing rule
existingRecord.status = status;
} else {
// If the rule doesn't exist, add it to the array
outputStatuses.push({ message, status });
}
}
/**
* Displays all the rule output statuses stored in the `outputStatuses` array.
* Filters out any empty lines, sorts them alphabetically, and prints the statuses
* with a header and separator.
* These statuses are later displayed in CI job tracelog.
*/
function displayAllOutputStatuses() {
const lineLength = 100;
const sortedStatuses = outputStatuses.sort((a, b) =>
a.message.localeCompare(b.message)
);
const formattedLines = sortedStatuses.map((statusObj) => {
const paddingLength =
lineLength - statusObj.message.length - statusObj.status.length;
const paddedMessage = statusObj.message.padEnd(
statusObj.message.length + paddingLength,
"."
);
return `${paddedMessage} ${statusObj.status}`;
});
console.log(
"DangerJS checks (rules) output states:\n" + "=".repeat(lineLength + 2)
);
console.log(formattedLines.join("\n"));
console.log("=".repeat(lineLength + 2));
}
module.exports = {
displayAllOutputStatuses,
recordRuleExitStatus,
};

View File

@@ -1,51 +0,0 @@
const { displayAllOutputStatuses } = require("./configParameters.js");
/*
* Modules with checks are stored in ".gitlab/dangerjs/<module_name>". To import them, use path relative to "dangerfile.js"
*/
async function runChecks() {
// Checks for merge request title
require("./mrTitleNoDraftOrWip.js")();
// Checks for merge request description
require("./mrDescriptionLongEnough.js")();
require("./mrDescriptionReleaseNotes.js")();
await require("./mrDescriptionJiraLinks.js")();
// Checks for documentation
await require("./mrDocsTranslation.js")();
// Checks for MR commits
require("./mrCommitsTooManyCommits.js")();
await require("./mrCommitsCommitMessage.js")();
require("./mrCommitsEmail.js")();
// Checks for MR code
require("./mrSizeTooLarge.js")();
// Checks for MR area labels
await require("./mrAreaLabels.js")();
// Checks for Source branch name
require("./mrSourceBranchName.js")();
// Show DangerJS individual checks statuses - visible in CI job tracelog
displayAllOutputStatuses();
// Add success log if no issues
if (
results.fails.length === 0 &&
results.warnings.length === 0 &&
results.messages.length === 0
) {
return message("🎉 Good Job! All checks are passing!");
}
}
runChecks();
// Add retry link
const retryLink = `${process.env.DANGER_GITLAB_HOST}/${process.env.CI_PROJECT_PATH}/-/jobs/${process.env.CI_JOB_ID}`;
markdown(
`***\n#### :repeat: You can enforce automatic MR checks by retrying the [DangerJS job](${retryLink})\n***`
);

View File

@@ -1,27 +0,0 @@
const { recordRuleExitStatus } = require("./configParameters.js");
/**
* Check if MR has area labels (light blue labels)
*
* @dangerjs WARN
*/
module.exports = async function () {
const ruleName = "Merge request area labels";
const projectId = 103; // ESP-IDF
const areaLabelColor = /^#d2ebfa$/i; // match color code (case-insensitive)
const projectLabels = await danger.gitlab.api.Labels.all(projectId); // Get all project labels
const areaLabels = projectLabels
.filter((label) => areaLabelColor.test(label.color))
.map((label) => label.name); // Filter only area labels
const mrLabels = danger.gitlab.mr.labels; // Get MR labels
if (!mrLabels.some((label) => areaLabels.includes(label))) {
recordRuleExitStatus(ruleName, "Failed");
return warn(
`Please add some [area labels](${process.env.DANGER_GITLAB_HOST}/espressif/esp-idf/-/labels) to this MR.`
);
}
// At this point, the rule has passed
recordRuleExitStatus(ruleName, "Passed");
};

View File

@@ -1,165 +0,0 @@
const {
minimumSummaryChars,
maximumSummaryChars,
maximumBodyLineChars,
allowedTypes,
} = require("./mrCommitsConstants.js");
const { recordRuleExitStatus } = require("./configParameters.js");
/**
* Check that commit messages are based on the Espressif ESP-IDF project's rules for git commit messages.
*
* @dangerjs WARN
*/
module.exports = async function () {
const ruleName = "Commit messages style";
const mrCommits = danger.gitlab.commits;
const lint = require("@commitlint/lint").default;
const lintingRules = {
// rule definition: [(0-1 = off/on), (always/never = must be/mustn't be), (value)]
"body-max-line-length": [1, "always", maximumBodyLineChars], // Max length of the body line
"footer-leading-blank": [1, "always"], // Always have a blank line before the footer section
"footer-max-line-length": [1, "always", maximumBodyLineChars], // Max length of the footer line
"subject-max-length": [1, "always", maximumSummaryChars], // Max length of the "Summary"
"subject-min-length": [1, "always", minimumSummaryChars], // Min length of the "Summary"
"scope-case": [1, "always", "lower-case"], // "scope/component" must start with lower-case
"subject-full-stop": [1, "never", "."], // "Summary" must not end with a full stop (period)
"subject-empty": [1, "never"], // "Summary" is mandatory
"type-case": [1, "always", "lower-case"], // "type/action" must start with lower-case
"type-empty": [1, "never"], // "type/action" is mandatory
"type-enum": [1, "always", allowedTypes], // "type/action" must be one of the allowed types
"body-leading-blank": [1, "always"], // Always have a blank line before the body section
};
// Switcher for AI suggestions (for poor messages)
let generateAISuggestion = false;
// Search for the messages in each commit
let issuesAllCommitMessages = [];
for (const commit of mrCommits) {
const commitMessage = commit.message;
const commitMessageTitle = commit.title;
let issuesSingleCommitMessage = [];
let reportSingleCommitMessage = "";
// Check if the commit message contains any Jira ticket references
const jiraTicketRegex = /[A-Z0-9]+-[0-9]+/g;
const jiraTicketMatches = commitMessage.match(jiraTicketRegex);
if (jiraTicketMatches) {
const jiraTicketNames = jiraTicketMatches.join(", ");
issuesSingleCommitMessage.push(
`- probably contains Jira ticket reference (\`${jiraTicketNames}\`). Please remove Jira tickets from commit messages.`
);
}
// Lint commit messages with @commitlint (Conventional Commits style)
const result = await lint(commit.message, lintingRules);
for (const warning of result.warnings) {
// Custom messages for each rule with terminology used by Espressif conventional commits guide
switch (warning.name) {
case "subject-max-length":
issuesSingleCommitMessage.push(
`- *summary* appears to be too long`
);
break;
case "type-empty":
issuesSingleCommitMessage.push(
`- *type/action* looks empty`
);
break;
case "type-case":
issuesSingleCommitMessage.push(
`- *type/action* should start with a lowercase letter`
);
break;
case "scope-empty":
issuesSingleCommitMessage.push(
`- *scope/component* looks empty`
);
break;
case "scope-case":
issuesSingleCommitMessage.push(
`- *scope/component* should be lowercase without whitespace, allowed special characters are \`_\` \`/\` \`.\` \`,\` \`*\` \`-\` \`.\``
);
break;
case "subject-empty":
issuesSingleCommitMessage.push(`- *summary* looks empty`);
generateAISuggestion = true;
break;
case "subject-min-length":
issuesSingleCommitMessage.push(
`- *summary* looks too short`
);
generateAISuggestion = true;
break;
case "subject-case":
issuesSingleCommitMessage.push(
`- *summary* should start with a capital letter`
);
break;
case "subject-full-stop":
issuesSingleCommitMessage.push(
`- *summary* should not end with a period (full stop)`
);
break;
case "type-enum":
issuesSingleCommitMessage.push(
`- *type/action* should be one of [${allowedTypes
.map((type) => `\`${type}\``)
.join(", ")}]`
);
break;
default:
issuesSingleCommitMessage.push(`- ${warning.message}`);
}
}
if (issuesSingleCommitMessage.length) {
reportSingleCommitMessage = `- the commit message \`"${commitMessageTitle}"\`:\n${issuesSingleCommitMessage
.map((message) => ` ${message}`) // Indent each issue by 2 spaces
.join("\n")}`;
issuesAllCommitMessages.push(reportSingleCommitMessage);
}
}
// Create report
if (issuesAllCommitMessages.length) {
issuesAllCommitMessages.sort();
const basicTips = [
`- correct format of commit message should be: \`<type/action>(<scope/component>): <summary>\`, for example \`fix(esp32): Fixed startup timeout issue\``,
`- allowed types are: \`${allowedTypes}\``,
`- sufficiently descriptive message summary should be between ${minimumSummaryChars} to ${maximumSummaryChars} characters and start with upper case letter`,
`- avoid Jira references in commit messages (unavailable/irrelevant for our customers)`,
`- follow this [commit messages guide](${process.env.DANGER_GITLAB_HOST}/espressif/esp-idf/-/wikis/dev-proc/Commit-messages)`,
];
let dangerMessage = `\n**Some issues found for the commit messages in this MR:**\n${issuesAllCommitMessages.join(
"\n"
)}
\n***
\n**Please consider updating these commit messages** - here are some basic tips:\n${basicTips.join(
"\n"
)}
\n \`TIP:\` You can install commit-msg pre-commit hook (\`pre-commit install -t pre-commit -t commit-msg\`) to run this check when committing.
\n***
`;
if (generateAISuggestion) {
// Create AI generated suggestion for git commit message based of gitDiff and current commit messages
const AImessageSuggestion =
await require("./aiGenerateGitMessage.js")();
dangerMessage += AImessageSuggestion;
}
recordRuleExitStatus(ruleName, "Failed");
return warn(dangerMessage);
}
// At this point, the rule has passed
recordRuleExitStatus(ruleName, "Passed");
};

View File

@@ -1,16 +0,0 @@
module.exports = {
gptStandardModelTokens: 4096,
minimumSummaryChars: 20,
maximumSummaryChars: 72,
maximumBodyLineChars: 100,
allowedTypes: [
"change",
"ci",
"docs",
"feat",
"fix",
"refactor",
"remove",
"revert",
],
};

View File

@@ -1,23 +0,0 @@
const { recordRuleExitStatus } = require("./configParameters.js");
/**
* Check if the author is accidentally making a commit using a personal email
*
* @dangerjs INFO
*/
module.exports = function () {
const ruleName = 'Commits from outside Espressif';
const mrCommitAuthorEmails = danger.gitlab.commits.map(commit => commit.author_email);
const mrCommitCommitterEmails = danger.gitlab.commits.map(commit => commit.committer_email);
const emailPattern = /.*@espressif\.com/;
const filteredEmails = [...mrCommitAuthorEmails, ...mrCommitCommitterEmails].filter((email) => !emailPattern.test(email));
if (filteredEmails.length) {
recordRuleExitStatus(ruleName, "Failed");
return message(
`Some of the commits were authored or committed by developers outside Espressif: ${filteredEmails.join(', ')}. Please check if this is expected.`
);
}
// At this point, the rule has passed
recordRuleExitStatus(ruleName, 'Passed');
};

View File

@@ -1,22 +0,0 @@
const { recordRuleExitStatus } = require("./configParameters.js");
/**
* Check if MR has not an excessive numbers of commits (if squashed)
*
* @dangerjs INFO
*/
module.exports = function () {
const ruleName = 'Number of commits in merge request';
const tooManyCommitThreshold = 2; // above this number of commits, squash commits is suggested
const mrCommits = danger.gitlab.commits;
if (mrCommits.length > tooManyCommitThreshold) {
recordRuleExitStatus(ruleName, "Passed (with suggestions)");
return message(
`You might consider squashing your ${mrCommits.length} commits (simplifying branch history).`
);
}
// At this point, the rule has passed
recordRuleExitStatus(ruleName, 'Passed');
};

View File

@@ -1,238 +0,0 @@
const { recordRuleExitStatus } = require("./configParameters.js");
/** Check that there are valid JIRA links in MR description.
*
* This check extracts the "Related" section from the MR description and
* searches for JIRA ticket references in the format "Closes [JIRA ticket key]".
*
* It then extracts the closing GitHub links from the corresponding JIRA tickets and
* checks if the linked GitHub issues are still in open state.
*
* Finally, it checks if the required GitHub closing links are present in the MR's commit messages.
*
*/
module.exports = async function () {
const ruleName = 'Jira ticket references';
const axios = require("axios");
const mrDescription = danger.gitlab.mr.description;
const mrCommitMessages = danger.gitlab.commits.map(
(commit) => commit.message
);
const jiraTicketRegex = /[A-Z0-9]+-[0-9]+/;
let partMessages = []; // Create a blank field for future records of individual issues
// Parse section "Related" from MR Description
const sectionRelated = extractSectionRelated(mrDescription);
if (
!sectionRelated.header || // No section Related in MR description or ...
!jiraTicketRegex.test(sectionRelated.content) // no Jira links in section Related
) {
recordRuleExitStatus(ruleName, 'Passed (with suggestions)');
return message(
"Please consider adding references to JIRA issues in the `Related` section of the MR description."
);
}
// Get closing (only) JIRA tickets
const jiraTickets = findClosingJiraTickets(sectionRelated.content);
for (const ticket of jiraTickets) {
ticket.jiraUIUrl = `https://jira.espressif.com:8443/browse/${ticket.ticketName}`;
if (!ticket.correctFormat) {
partMessages.push(
`- closing ticket \`${ticket.record}\` seems to be in the wrong format (or inaccessible to Jira DangerBot).. The correct format is for example \`- Closes JIRA-123\`.`
);
}
// Get closing GitHub issue links from JIRA tickets
const closingGithubLink = await getGitHubClosingLink(ticket.ticketName);
if (closingGithubLink) {
ticket.closingGithubLink = closingGithubLink;
} else if (closingGithubLink === null) {
partMessages.push(
`- the Jira issue number [\`${ticket.ticketName}\`](${ticket.jiraUIUrl}) seems to be invalid (please check if the ticket number is correct)`
);
continue; // Handle unreachable JIRA tickets; skip the following checks
} else {
continue; // Jira ticket have no GitHub closing link; skip the following checks
}
// Get still open GitHub issues
const githubIssueStatusOpen = await isGithubIssueOpen(
ticket.closingGithubLink
);
ticket.isOpen = githubIssueStatusOpen;
if (githubIssueStatusOpen === null) {
// Handle unreachable GitHub issues
partMessages.push(
`- the GitHub issue [\`${ticket.closingGithubLink}\`](${ticket.closingGithubLink}) does not seem to exist on GitHub (referenced from JIRA ticket [\`${ticket.ticketName}\`](${ticket.jiraUIUrl}) )`
);
continue; // skip the following checks
}
// Search in commit message if there are all GitHub closing links (from Related section) for still open GH issues
if (ticket.isOpen) {
if (
!mrCommitMessages.some((item) =>
item.includes(`Closes ${ticket.closingGithubLink}`)
)
) {
partMessages.push(
`- please add \`Closes ${ticket.closingGithubLink}\` to the commit message`
);
}
}
}
// Create report / DangerJS check feedback if issues with Jira links found
if (partMessages.length) {
createReport();
}
// At this point, the rule has passed
recordRuleExitStatus(ruleName, 'Passed');
// ---------------------------------------------------------------
/**
* This function takes in a string mrDescription which contains a Markdown-formatted text
* related to a Merge Request (MR) in a GitLab repository. It searches for a section titled "Related"
* and extracts the content of that section. If the section is not found, it returns an object
* indicating that the header and content are null. If the section is found but empty, it returns
* an object indicating that the header is present but the content is null. If the section is found
* with content, it returns an object indicating that the header is present and the content of the
* "Related" section.
*
* @param {string} mrDescription - The Markdown-formatted text related to the Merge Request.
* @returns {{
* header: string | boolean | null,
* content: string | null
* }} - An object containing the header and content of the "Related" section, if present.
*/
function extractSectionRelated(mrDescription) {
const regexSectionRelated = /## Related([\s\S]*?)(?=## |$)/;
const sectionRelated = mrDescription.match(regexSectionRelated);
if (!sectionRelated) {
return { header: null, content: null }; // Section "Related" is missing
}
const content = sectionRelated[1].replace(/(\r\n|\n|\r)/gm, ""); // Remove empty lines
if (!content.length) {
return { header: true, content: null }; // Section "Related" is present, but empty
}
return { header: true, content: sectionRelated[1] }; // Found section "Related" with content
}
/**
* Finds all JIRA tickets that are being closed in the given sectionRelatedcontent.
* The function searches for lines that start with - Closes and have the format Closes [uppercase letters]-[numbers].
* @param {string} sectionRelatedcontent - A string that contains lines with mentions of JIRA tickets
* @returns {Array} An array of objects with ticketName property that has the correct format
*/
function findClosingJiraTickets(sectionRelatedcontent) {
let closingTickets = [];
const lines = sectionRelatedcontent.split("\n");
for (const line of lines) {
if (!line.startsWith("- Closes")) {
continue; // Not closing-type ticket, skip
}
const correctJiraClosingLinkFormat = new RegExp(
`^- Closes ${jiraTicketRegex.source}$`
);
const matchedJiraTicket = line.match(jiraTicketRegex);
if (matchedJiraTicket) {
if (!correctJiraClosingLinkFormat.test(line)) {
closingTickets.push({
record: line,
ticketName: matchedJiraTicket[0],
correctFormat: false,
});
} else {
closingTickets.push({
record: line,
ticketName: matchedJiraTicket[0],
correctFormat: true,
});
}
}
}
return closingTickets;
}
/**
* This function takes a JIRA issue key and retrieves the description from JIRA's API.
* It then searches the description for a GitHub closing link in the format "Closes https://github.com/owner/repo/issues/123".
* If a GitHub closing link is found, it is returned. If no GitHub closing link is found, it returns null.
* @param {string} jiraIssueKey - The key of the JIRA issue to search for the GitHub closing link.
* @returns {Promise<string|null>} - A promise that resolves to a string containing the GitHub closing link if found,
* or null if not found.
*/
async function getGitHubClosingLink(jiraIssueKey) {
let jiraDescription = "";
// Get JIRA ticket description content
try {
const response = await axios({
url: `https://jira.espressif.com:8443/rest/api/latest/issue/${jiraIssueKey}`,
auth: {
username: process.env.DANGER_JIRA_USER,
password: process.env.DANGER_JIRA_PASSWORD,
},
});
jiraDescription = response.data.fields.description
? response.data.fields.description
: ""; // if the Jira ticket has an unfilled Description, the ".description" property is missing in API response - in that case set "jiraDescription" to an empty string
} catch (error) {
return null;
}
// Find GitHub closing link in description
const regexClosingGhLink =
/Closes\s+(https:\/\/github.com\/\S+\/\S+\/issues\/\d+)/;
const closingGithubLink = jiraDescription.match(regexClosingGhLink);
if (closingGithubLink) {
return closingGithubLink[1];
} else {
return false; // Jira issue has no GitHub closing link in description
}
}
/**
* Check if a GitHub issue linked in a merge request is still open.
*
* @param {string} link - The link to the GitHub issue.
* @returns {Promise<boolean>} A promise that resolves to a boolean indicating if the issue is open.
* @throws {Error} If the link is invalid or if there was an error fetching the issue.
*/
async function isGithubIssueOpen(link) {
const parsedUrl = new URL(link);
const [owner, repo] = parsedUrl.pathname.split("/").slice(1, 3);
const issueNumber = parsedUrl.pathname.split("/").slice(-1)[0];
try {
const response = await axios.get(
`https://api.github.com/repos/${owner}/${repo}/issues/${issueNumber}`
);
return response.data.state === "open"; // return True if GitHub issue is open
} catch (error) {
return null; // GET request to issue fails
}
}
function createReport() {
partMessages.sort();
let dangerMessage = `Some issues found for the related JIRA tickets in this MR:\n${partMessages.join(
"\n"
)}`;
recordRuleExitStatus(ruleName, "Failed");
return warn(dangerMessage);
}
};

View File

@@ -1,24 +0,0 @@
const { recordRuleExitStatus } = require("./configParameters.js");
/**
* Check if MR Description has accurate description".
*
* @dangerjs WARN
*/
module.exports = function () {
const ruleName = "Merge request sufficient description";
const mrDescription = danger.gitlab.mr.description;
const descriptionChunk = mrDescription.match(/^([^#]*)/)[1].trim(); // Extract all text before the first section header (i.e., the text before the "## Release notes")
const shortMrDescriptionThreshold = 50; // Description is considered too short below this number of characters
if (descriptionChunk.length < shortMrDescriptionThreshold) {
recordRuleExitStatus(ruleName, "Failed");
return warn(
"The MR description looks very brief, please check if more details can be added."
);
}
// At this point, the rule has passed
recordRuleExitStatus(ruleName, "Passed");
};

View File

@@ -1,103 +0,0 @@
const { recordRuleExitStatus } = require("./configParameters.js");
/**
* Check if MR Description contains mandatory section "Release notes"
*
* Extracts the content of the "Release notes" section from the GitLab merge request description.
*
* @dangerjs WARN (if section missing, is empty or wrong markdown format)
*/
module.exports = function () {
const ruleName = 'Merge request Release Notes section';
const mrDescription = danger.gitlab.mr.description;
const wiki_link = `${process.env.DANGER_GITLAB_HOST}/espressif/esp-idf/-/wikis/rfc/How-to-write-release-notes-properly`;
const regexSectionReleaseNotes = /## Release notes([\s\S]*?)(?=## |$)/;
const regexValidEntry = /^\s*[-*+]\s+.+/;
const regexNoReleaseNotes = /no release note/i;
const sectionReleaseNotes = mrDescription.match(regexSectionReleaseNotes);
if (!sectionReleaseNotes) {
recordRuleExitStatus(ruleName, "Failed");
return warn(`The \`Release Notes\` section seems to be missing. Please check if the section header in MR description is present and in the correct markdown format ("## Release Notes").\n\nSee [Release Notes Format Rules](${wiki_link}).`);
}
const releaseNotesLines = sectionReleaseNotes[1].replace(/<!--[\s\S]*?-->/g, '')
const lines = releaseNotesLines.split("\n").filter(s => s.trim().length > 0);
let valid_entries_found = 0;
let no_release_notes_found = false;
let violations = [];
lines.forEach((line) => {
if (line.match(regexValidEntry)) {
valid_entries_found++;
const error_msg = check_entry(line);
if (error_msg) {
violations.push(error_msg);
}
} else if (line.match(regexNoReleaseNotes)) {
no_release_notes_found = true;
}
});
let error_output = [];
if (violations.length > 0) {
error_output = [...error_output, 'Invalid release note entries:', violations.join('\n')];
}
if (no_release_notes_found) {
if (valid_entries_found > 0) {
error_output.push('`No release notes` comment shows up when there is valid entry. Remove bullets before comments in release notes section.');
}
} else {
if (!valid_entries_found) {
error_output.push('The `Release Notes` section seems to have no valid entries. Add bullets before valid entries, or add `No release notes` comment to suppress this error if you mean to have no release notes.');
}
}
if (error_output.length > 0) {
// Paragraphs joined by double `\n`s.
error_output = [...error_output, `See [Release Notes Format Guide](${wiki_link}).`].join('\n\n');
recordRuleExitStatus(ruleName, "Failed");
return warn(error_output);
}
// At this point, the rule has passed
recordRuleExitStatus(ruleName, 'Passed');
};
function check_entry(entry) {
const entry_str = `- \`${entry}\``;
const indent = " ";
if (entry.match(/no\s+release\s+note/i)) {
return [entry_str, `${indent}- \`No release notes\` comment shouldn't start with bullet.`].join('\n');
}
// Remove a leading escaping backslash of the special characters, https://www.markdownguide.org/basic-syntax/#characters-you-can-escape
const escapeCharRegex = /\\([\\`*_{}[\]<>()+#-.!|])/g;
entry = entry.replace(escapeCharRegex, '$1');
const regex = /^(\s*)[-*+]\s+\[([^\]]+)\]\s+(.*)$/;
const match = regex.exec(entry);
if (!match) {
return [entry_str, `${indent}- Please specify the [area] to which the change belongs (see guide). If this line is just a comment, remove the bullet.`].join('\n');
}
// area is in match[2]
const description = match[3].trim();
let violations = [];
if (match[1]) {
violations.push(`${indent}- Release note entry should start from the beginning of line. (Nested release note not allowed.)`);
}
if (!/^[A-Z0-9]/.test(description)) {
violations.push(`${indent}- Release note statement should start with a capital letter or digit.`);
}
if (violations.length > 0) {
return [entry_str, ...violations].join('\n');
}
return null;
}

View File

@@ -1,280 +0,0 @@
const { recordRuleExitStatus } = require("./configParameters.js");
/**
* Check the documentation files in this MR.
*
* Generate an object with all docs/ files found in this MR with paths to their EN/CN versions.
*
* For common files (both language versions exist in this MR), compare the lines of both files.
* Ignore if the CN file is only a single line file with an "include" reference to the EN version.
*
* For files that only have a CN version in this MR, add a message to the message that an EN file also needs to be created.
*
* For a file that only has an EN version in this MR, try loading its CN version from the target Gitlab branch.
* If its CN version doesn't exist in the repository or it does exist,
* but its contents are larger than just an "include" link to the EN version (it's a full-size file),
* add a message to the report
*
* Create a compiled report with the docs/ files issues found and set its severity (WARN/INFO).
* Severity is based on the presence of "needs translation: ??" labels in this MR
*
* @dangerjs WARN (if docs translation issues in the MR)
* @dangerjs INFO (if docs translation issues in the MR and the user has already added translation labels).
* Adding translation labels "needs translation: XX" automatically notifies the Documentation team
*
* @dangerjs WARN (if there are no docs issues in MR, but translation labels have been added anyway)
*
*/
module.exports = async function () {
const ruleName = 'Documentation translation';
let partMessages = []; // Create a blank field for future records of individual issues
const pathProject = "espressif/esp-idf";
const regexIncludeLink = /\.\.\sinclude::\s((\.\.\/)+)en\//;
const allMrFiles = [
...danger.git.modified_files,
...danger.git.created_files,
...danger.git.deleted_files,
];
const docsFilesMR = parseMrDocsFiles(allMrFiles); // Create single object of all doc files in MR with names, paths and groups
// Both versions (EN and CN) of document found changed in this MR
for (const file of docsFilesMR.bothFilesInMr) {
file.contentEn = await getContentFileInMR(file.fileEnPath); // Get content of English file
file.linesEn = file.contentEn.split("\n").length; // Get number of lines of English file
file.contentCn = await getContentFileInMR(file.fileCnPath); // Get content of Chinese file
file.linesCn = file.contentCn.split("\n").length; // Get number of lines of English file
// Compare number of lines in both versions
if (file.linesEn !== file.linesCn) {
// Check if CN file is only link to EN file
if (!regexIncludeLink.test(file.contentCn)) {
// if not just a link ...
partMessages.push(
`- please synchronize the EN and CN version of \`${file.fileName}\`. [\`${file.fileEnPath}\`](${file.fileUrlRepoEN}) has ${file.linesEn} lines; [\`${file.fileCnPath}\`](${file.fileUrlRepoCN}) has ${file.linesCn} lines.`
);
}
}
}
// Only Chinese version of document found changed in this MR
for (const file of docsFilesMR.onlyCnFilesInMr) {
partMessages.push(
`- file \`${file.fileEnPath}\` doesn't exist in this MR or in the GitLab repo. Please add \`${file.fileEnPath}\` into this MR.`
);
}
// Only English version of document found in this MR
for (const file of docsFilesMR.onlyEnFilesInMr) {
const targetBranch = danger.gitlab.mr.target_branch;
file.contentCn = await getContentFileInGitlab(
file.fileCnPath,
targetBranch
); // Try to fetch CN file from target branch of Gitlab repository and store content
if (file.contentCn) {
// File found on target branch in Gitlab repository
if (!regexIncludeLink.test(file.contentCn)) {
// File on Gitlab master is NOT just an ..include:: link to ENG version
file.fileUrlRepoMasterCN = `${process.env.DANGER_GITLAB_HOST}/${pathProject}/-/blob/${targetBranch}/${file.fileCnPath}`;
partMessages.push(
`- file \`${file.fileCnPath}\` was not updated in this MR, but found unchanged full document (not just link to EN) in target branch of Gitlab repository [\`${file.fileCnPath}\`](${file.fileUrlRepoMasterCN}). Please update \`${file.fileCnPath}\` into this MR.`
);
}
} else {
// File failed to fetch, probably does not exist in the target branch
partMessages.push(
`- file \`${file.fileCnPath}\` probably doesn't exist in this MR or in the GitLab repo. Please add \`${file.fileCnPath}\` into this MR.`
);
}
}
// Create a report with found issues with documents in MR
createReport();
// At this point, the rule has passed
recordRuleExitStatus(ruleName, 'Passed');
/**
* Generates an object that represents the relationships between files in two different languages found in this MR.
*
* @param {string[]} docsFilesEN - An array of file paths for documents in English.
* @param {string[]} docsFilesCN - An array of file paths for documents in Chinese.
* @returns {Object} An object with the following properties:
* - bothFilesInMr: An array of objects that represent files that found in MR in both languages. Each object has the following properties:
* - fileName: The name of the file.
* - fileEnPath: The path to the file in English.
* - fileCnPath: The path to the file in Chinese.
* - fileUrlRepoEN: The URL link to MR branch path to the file in English.
* - fileUrlRepoCN: The URL link to MR branch path to the file in Chinese.
* - onlyCnFilesInMr: An array of objects that represent files that only found in MR in English. Each object has the following properties:
* - fileName: The name of the file.
* - fileEnPath: The path to the file in English.
* - fileCnPath: The FUTURE path to the file in Chinese.
* - fileUrlRepoEN: The URL link to MR branch path to the file in English.
* - fileUrlRepoCN: The URL link to MR branch path to the file in Chinese.
* - onlyEnFilesInMr: An array of objects that represent files that only found in MR in Chinese. Each object has the following properties:
* - fileName: The name of the file.
* - fileEnPath: The FUTURE path to the file in English.
* - fileCnPath: The path to the file in Chinese.
* - fileUrlRepoEN: The URL link to MR branch path to the file in English.
* - fileUrlRepoCN: The URL link to MR branch path to the file in Chinese.
*/
function parseMrDocsFiles(allMrFiles) {
const path = require("path");
const mrBranch = danger.gitlab.mr.source_branch;
const docsEnFilesMrPath = allMrFiles.filter((file) =>
file.startsWith("docs/en")
); // Filter all English doc files in MR
const docsCnFilesMrPath = allMrFiles.filter((file) =>
file.startsWith("docs/zh_CN")
); // Filter all Chinese doc files in MR
const docsEnFileNames = docsEnFilesMrPath.map((filePath) =>
path.basename(filePath)
); // Get (base) file names for English docs
const docsCnFileNames = docsCnFilesMrPath.map((filePath) =>
path.basename(filePath)
); // Get (base) file names for Chinese docs
const bothFileNames = docsEnFileNames.filter((fileName) =>
docsCnFileNames.includes(fileName)
); // Get file names that are common to both English and Chinese docs
const onlyEnFileNames = docsEnFileNames.filter(
(fileName) => !docsCnFileNames.includes(fileName)
); // Get file names that are only present in English version
const onlyCnFileNames = docsCnFileNames.filter(
(fileName) => !docsEnFileNames.includes(fileName)
); // Get file names that are only present in Chinese version
return {
bothFilesInMr: bothFileNames.map((fileName) => {
const fileEnPath =
docsEnFilesMrPath[docsEnFileNames.indexOf(fileName)];
const fileCnPath =
docsCnFilesMrPath[docsCnFileNames.indexOf(fileName)];
return {
fileName,
fileEnPath,
fileCnPath,
fileUrlRepoEN: `${process.env.DANGER_GITLAB_HOST}/${pathProject}/-/blob/${mrBranch}/${fileEnPath}`,
fileUrlRepoCN: `${process.env.DANGER_GITLAB_HOST}/${pathProject}/-/blob/${mrBranch}/${fileCnPath}`,
};
}),
onlyEnFilesInMr: onlyEnFileNames.map((fileName) => {
const fileEnPath =
docsEnFilesMrPath[docsEnFileNames.indexOf(fileName)];
const fileCnPath = fileEnPath.replace("en", "zh_CN"); // Generate future CN file path
return {
fileName,
fileEnPath,
fileCnPath,
fileUrlRepoEN: `${process.env.DANGER_GITLAB_HOST}/${pathProject}/-/blob/${mrBranch}/${fileEnPath}`,
fileUrlRepoCN: `${process.env.DANGER_GITLAB_HOST}/${pathProject}/-/blob/${mrBranch}/${fileCnPath}`,
};
}),
onlyCnFilesInMr: onlyCnFileNames.map((fileName) => {
const fileCnPath =
docsCnFilesMrPath[docsCnFileNames.indexOf(fileName)];
const fileEnPath = fileCnPath.replace("zh_CN", "en"); // Generate future EN file path
return {
fileName,
fileEnPath,
fileCnPath,
fileUrlRepoEN: `${process.env.DANGER_GITLAB_HOST}/${pathProject}/-/blob/${mrBranch}/${fileEnPath}`,
fileUrlRepoCN: `${process.env.DANGER_GITLAB_HOST}/${pathProject}/-/blob/${mrBranch}/${fileCnPath}`,
};
}),
};
}
/**
* Retrieves the contents of a file from GitLab using the GitLab API.
*
* @param {string} filePath - The path of the file to retrieve.
* @param {string} branch - The branch where the file is located.
* @returns {string|null} - The contents of the file, with any trailing new lines trimmed, or null if the file cannot be retrieved.
*/
async function getContentFileInGitlab(filePath, branch) {
const axios = require("axios");
const encFilePath = encodeURIComponent(filePath);
const encBranch = encodeURIComponent(branch);
const urlApi = `${process.env.DANGER_GITLAB_API_BASE_URL}/projects/${danger.gitlab.mr.project_id}/repository/files/${encFilePath}/raw?ref=${encBranch}`;
try {
const response = await axios.get(urlApi, {
headers: {
"Private-Token": process.env.DANGER_GITLAB_API_TOKEN,
},
});
return response.data.trim(); // Trim trailing new line
} catch (error) {
return null;
}
}
/**
* Retrieves the contents of a file in a DangerJS merge request object.
*
* @param {string} filePath - The path of the file to retrieve.
* @returns {string|null} - The contents of the file, with any trailing new lines trimmed, or null if the file cannot be retrieved.
*/
async function getContentFileInMR(filePath) {
try {
const content = await danger.git.diffForFile(filePath);
const fileContentAfter = content.after.trim(); // Trim trailing new lines
return fileContentAfter;
} catch (error) {
console.error(`Error while getting file content MR: ${error}`);
return null;
}
}
/**
* Creates a compiled report for found documentation issues in the current MR and alerts the Documentation team if there are any "needs translation" labels present.
*
* Report if documentation labels have been added by mistake.
*/
function createReport() {
const mrLabels = danger.gitlab.mr.labels; // Get MR labels
const regexTranslationLabel = /needs translation:/i;
const translationLabelsPresent = mrLabels.some((label) =>
regexTranslationLabel.test(label)
); // Check if any of MR labels are "needs translation: XX"
// No docs issues found in MR, but translation labels have been added anyway
if (!partMessages.length && translationLabelsPresent) {
recordRuleExitStatus(ruleName, "Failed");
return warn(
`Please remove the \`needs translation: XX\` labels. For documents that need to translate from scratch, Doc team will translate them in the future. For the current stage, we only focus on updating exiting EN and CN translation to make them in sync.`
);
}
// Docs issues found in this MR
partMessages.sort();
let dangerMessage = `Some of the documentation files in this MR seem to have translations issues:\n${partMessages.join(
"\n"
)}\n`;
if (partMessages.length) {
if (!translationLabelsPresent) {
dangerMessage += `
\nWhen synchronizing the EN and CN versions, please follow the [Documentation Code](https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/contribute/documenting-code.html#standardize-document-format). The total number of lines of EN and CN should be same.\n
\nIf you have difficulty in providing translation, you can contact Documentation team by adding <kbd>needs translation: CN</kbd> or <kbd>needs translation: EN</kbd> labels into this MR and retrying Danger CI job. The documentation team will be automatically notified and will help you with the translations before the merge.\n`;
recordRuleExitStatus(ruleName, "Failed");
return warn(dangerMessage); // no "needs translation: XX" labels in MR; report issues as warn
} else {
dangerMessage += `\nTranslation labels <kbd>needs translation: CN</kbd> or <kbd>needs translation: EN</kbd> were added - this will automatically notify the Documentation team to help you with translation issues.`;
recordRuleExitStatus(ruleName, 'Passed (with suggestions)');
return message(dangerMessage); // "needs translation: XX" labels were found in MR and Docs team was notified; report issues as info
}
}
}
};

View File

@@ -1,22 +0,0 @@
const { recordRuleExitStatus } = require("./configParameters.js");
/**
* Check if MR is too large (more than 1000 lines of changes)
*
* @dangerjs INFO
*/
module.exports = async function () {
const ruleName = "Merge request size (number of changed lines)";
const bigMrLinesOfCodeThreshold = 1000;
const totalLines = await danger.git.linesOfCode();
if (totalLines > bigMrLinesOfCodeThreshold) {
recordRuleExitStatus(ruleName, "Passed (with suggestions)");
return message(
`This MR seems to be quite large (total lines of code: ${totalLines}), you might consider splitting it into smaller MRs`
);
}
// At this point, the rule has passed
recordRuleExitStatus(ruleName, "Passed");
};

View File

@@ -1,31 +0,0 @@
const { recordRuleExitStatus } = require("./configParameters.js");
/**
* Throw Danger WARN if branch name contains more than one slash or uppercase letters
*
* @dangerjs INFO
*/
module.exports = function () {
const ruleName = "Source branch name";
const sourceBranch = danger.gitlab.mr.source_branch;
// Check if the source branch name contains more than one slash
const slashCount = (sourceBranch.match(/\//g) || []).length;
if (slashCount > 1) {
recordRuleExitStatus(ruleName, "Failed");
return warn(
`The source branch name \`${sourceBranch}\` contains more than one slash. This can cause troubles with git sync. Please rename the branch.`
);
}
// Check if the source branch name contains any uppercase letters
if (sourceBranch !== sourceBranch.toLowerCase()) {
recordRuleExitStatus(ruleName, "Failed");
return warn(
`The source branch name \`${sourceBranch}\` contains uppercase letters. This can cause troubles on case-insensitive file systems (macOS). Please use only lowercase letters.`
);
}
// At this point, the rule has passed
recordRuleExitStatus(ruleName, "Passed");
};

View File

@@ -1,31 +0,0 @@
const { recordRuleExitStatus } = require("./configParameters.js");
/**
* Check if MR Title contains prefix "WIP: ...".
*
* @dangerjs WARN
*/
module.exports = function () {
const ruleName = 'Merge request not in Draft or WIP state';
const mrTitle = danger.gitlab.mr.title;
const regexes = [
{ prefix: "WIP", regex: /^WIP:/i },
{ prefix: "W.I.P", regex: /^W\.I\.P/i },
{ prefix: "[WIP]", regex: /^\[WIP/i },
{ prefix: "[W.I.P]", regex: /^\[W\.I\.P/i },
{ prefix: "(WIP)", regex: /^\(WIP/i },
{ prefix: "(W.I.P)", regex: /^\(W\.I\.P/i },
];
for (const item of regexes) {
if (item.regex.test(mrTitle)) {
recordRuleExitStatus(ruleName, "Failed");
return warn(
`Please remove the \`${item.prefix}\` prefix from the MR name before merging this MR.`
);
}
}
// At this point, the rule has passed
recordRuleExitStatus(ruleName, "Passed");
};

File diff suppressed because it is too large Load Diff

View File

@@ -1,12 +0,0 @@
{
"name": "dangerjs-esp-idf",
"description": "Merge request automatic linter",
"main": "dangerfile.js",
"dependencies": {
"danger": "^11.2.3",
"axios": "^1.3.3",
"langchain": "^0.0.53",
"openai-gpt-token-counter": "^1.0.3",
"@commitlint/lint": "^13.1.0"
}
}

View File

@@ -1,15 +0,0 @@
<!-- This Template states the absolute minimum for an MR.
If you want to have a more elaborate template or know why we have this structure,
please use the "Mixed Template" or consult the Wiki. -->
<!-- Add the CI labels to trigger the appropriate tests (e.g. "unit_test_esp32") --><!-- Mandatory -->
<!-- Make sure the commit message follows the Wiki about "Commit Messages" --><!-- Mandatory -->
<!-- Add description of the change here --><!-- Mandatory -->
## Related <!-- Optional -->
<!-- Related Jira issues and Github issues or write "No related issues"-->
## Release notes <!-- Mandatory -->
<!-- Either state release notes or write "No release notes" -->
<!-- ## Breaking change notes --><!-- Optional -->

View File

@@ -1,63 +0,0 @@
_All texts in italics are instructional and should be replaced by contents or removed._
## Checklist
_This entire section can be deleted if all items are checked._
* [ ] Enough information to help reviewers understand the issue, its root cause, impact, and the proposed solution
* [ ] Enough information to help reviewers understand the feature, its functional description, example, documentation, test cases, test results, feature TODO list
* [ ] The MR Title describes the change, including the component name, ie "lwip: Add support for IP over Pigeon"
* [ ] All related links, including JIRA, backport, submodule MR, are mentioned in the `Related` subsection.
* [ ] Any GitHub issues are linked inside the git commit message and corresponding release notes
* [ ] Add label for the area this MR is part of
* [ ] For documentation updates, check if label `Docs` and `needs translation:CN` or `needs translation:EN` have been added when the other language version still needs the update. Skip adding the label if the document is not yet translated.
* [ ] Check if documents requiring translation fall under get-started section. If yes, add the labels mentioned above. Then the documentation team will assign a translator for you. Please inform the translator to prepare translation once your MR is ready to merge. The translation should be included in your MR to get it merged. For more information, see documentation workflow in Wiki.
* [ ] Any necessary "needs backport" labels are added
* [ ] Check if this is a breaking change. If it is, add notes to the `Breaking change notes` subsection below
* [ ] Release note entry if this is a new public feature, or a fix for an issue introduced in the previous release.
* [ ] The commit log is clean and ready to merge.
* [ ] All relevant CI jobs have been run, i.e. jobs which cover the code changed by the MR.
---
_For issues, put enough information here to help reviewers understand the issue, its root cause, impact, and the proposed solution._
_If this issue is a regression, specify in the `Related` subsection below, in which commit or MR it was introduced. This helps reviewers to check if the backport labels are set correctly._
---
_For features, put enough information here to help reviewers understand the feature, its functional description, example, documentation, test cases, test results, feature TODO list._
---
_For other small/non-public changes, which are not expected to be in the release notes, can be mentioned here, include:_
* changes that don't apply to customers, e.g. some CI fixes, test only MR and etc
## Related
* Mention or related JIRA tasks (e.g. IDF-0000), to make sure they get updated.
* Mention submodule MR, if there is
* Mention backport(ed) MR, if there is
_Don't touch the subsection titles below, they will be parsed by scripts._
## Release notes (Mandatory)
_Changes made in this MR that should go into the **Release Notes** should be listed here. Please use **past tense** and *specify the area (see maintainers page of IDF internal wiki)*. If there is a subscope, include it and separate with slash (`/`). Minor changes can go to the descriptions above without a release notes entry._
_Write all the changes in a **list** (Start at the beginning of the line with `-` or `*`). If multiple changes are made, each of them should take a single line. If there is only one change to list, it should still be the only line of a list. If this MR does not need any release notes, write "No release notes" here without the `-` or `*`. e.g._
* [WiFi] Changed/fixed/updated xxx
* [WiFi] Added support of xxx
* [Peripheral Drivers/I2S] Fixed xxx (https://github.com/espressif/esp-idf/issues/xxxx)
## Breaking change notes
_Remove this subsection if not used._
_If there are any breaking changes, please mention it here. Talking about (1) what is not accepted any more, (2) the alternative solution and (3) the benefits/reason. e.g._
_Please strictly follow the breaking change restriction, which means, if there is a breaking change but you are merging to non-major versions, you have to separate the breaking part out to another MR for a major version. The breaking change subsection is only accepted in MRs merging to major versions._
* [VFS/UART] Now vfs_uart_set_rts_cts accept one more instance argument, to support configuration to different ports.

136
.gitmodules vendored
View File

@@ -2,64 +2,51 @@
# All the relative URL paths are intended to be GitHub ones
# For Espressif's public projects please use '../../espressif/proj', not a '../proj'
#
# Submodules SBOM information
# ---------------------------
# Submodules, which are used directly and not forked into espressif namespace should
# contain SBOM information here. Other submodules should have the SBOM manifest file
# included in the root of their project's repository.
#
# The sbom-hash entry records the submodule's checkout SHA as presented in git-tree
# commit object. For example spiffs submodule
#
# $ git ls-tree HEAD components/spiffs/spiffs
# 160000 commit 0dbb3f71c5f6fae3747a9d935372773762baf852 components/spiffs/spiffs
#
# The hash can be also obtained with git submodule command
#
# $ git submodule status components/spiffs/spiffs
# 0dbb3f71c5f6fae3747a9d935372773762baf852 components/spiffs/spiffs (0.2-255-g0dbb3f71c5f6)
#
# The submodule SHA recorded here has to match with SHA, which is presented in git-tree.
# This is checked by CI. Also please don't forget to update the submodule version
# if you are changing the sbom-hash. This is important for SBOM generation.
[submodule "components/bt/controller/lib_esp32"]
path = components/bt/controller/lib_esp32
[submodule "components/esptool_py/esptool"]
path = components/esptool_py/esptool
url = ../../espressif/esptool.git
[submodule "components/bt/controller/lib"]
path = components/bt/controller/lib
url = ../../espressif/esp32-bt-lib.git
[submodule "components/bootloader/subproject/components/micro-ecc/micro-ecc"]
path = components/bootloader/subproject/components/micro-ecc/micro-ecc
url = ../../kmackay/micro-ecc.git
sbom-version = 1.1
sbom-cpe = cpe:2.3:a:micro-ecc_project:micro-ecc:{}:*:*:*:*:*:*:*
sbom-supplier = Person: Ken MacKay
sbom-url = https://github.com/kmackay/micro-ecc
sbom-description = A small and fast ECDH and ECDSA implementation for 8-bit, 32-bit, and 64-bit processors
sbom-hash = 24c60e243580c7868f4334a1ba3123481fe1aa48
[submodule "components/coap/libcoap"]
path = components/coap/libcoap
url = ../../obgm/libcoap.git
[submodule "components/nghttp/nghttp2"]
path = components/nghttp/nghttp2
url = ../../nghttp2/nghttp2.git
[submodule "components/libsodium/libsodium"]
path = components/libsodium/libsodium
url = ../../jedisct1/libsodium.git
[submodule "components/spiffs/spiffs"]
path = components/spiffs/spiffs
url = ../../pellepl/spiffs.git
sbom-version = 0.2-255-g0dbb3f71c5f6
sbom-supplier = Person: Peter Andersson
sbom-url = https://github.com/pellepl/spiffs
sbom-description = Wear-leveled SPI flash file system for embedded devices
sbom-hash = 0dbb3f71c5f6fae3747a9d935372773762baf852
[submodule "components/json/cJSON"]
path = components/json/cJSON
url = ../../DaveGamble/cJSON.git
sbom-version = 1.7.16
sbom-cpe = cpe:2.3:a:cjson_project:cjson:{}:*:*:*:*:*:*:*
sbom-supplier = Person: Dave Gamble
sbom-url = https://github.com/DaveGamble/cJSON
sbom-description = Ultralightweight JSON parser in ANSI C
sbom-hash = cb8693b058ba302f4829ec6d03f609ac6f848546
[submodule "components/mbedtls/mbedtls"]
path = components/mbedtls/mbedtls
url = ../../espressif/mbedtls.git
[submodule "components/asio/asio"]
path = components/asio/asio
url = ../../espressif/asio.git
[submodule "components/expat/expat"]
path = components/expat/expat
url = ../../libexpat/libexpat.git
[submodule "components/lwip/lwip"]
path = components/lwip/lwip
url = ../../espressif/esp-lwip.git
@@ -71,79 +58,24 @@
[submodule "components/protobuf-c/protobuf-c"]
path = components/protobuf-c/protobuf-c
url = ../../protobuf-c/protobuf-c.git
sbom-version = 1.4.1
sbom-cpe = cpe:2.3:a:protobuf-c_project:protobuf-c:{}:*:*:*:*:*:*:*
sbom-supplier = Organization: protobuf-c community <https://groups.google.com/g/protobuf-c>
sbom-url = https://github.com/protobuf-c/protobuf-c
sbom-description = Protocol Buffers implementation in C
sbom-hash = abc67a11c6db271bedbb9f58be85d6f4e2ea8389
[submodule "components/unity/unity"]
path = components/unity/unity
url = ../../ThrowTheSwitch/Unity.git
sbom-version = v2.4.3-51-g7d2bf62b7e6a
sbom-supplier = Organization: ThrowTheSwitch community <http://www.throwtheswitch.org>
sbom-url = https://github.com/ThrowTheSwitch/Unity
sbom-description = Simple Unit Testing for C
sbom-hash = 7d2bf62b7e6afaf38153041a9d53c21aeeca9a25
[submodule "examples/build_system/cmake/import_lib/main/lib/tinyxml2"]
path = examples/build_system/cmake/import_lib/main/lib/tinyxml2
url = ../../leethomason/tinyxml2.git
[submodule "components/bt/host/nimble/nimble"]
path = components/bt/host/nimble/nimble
url = ../../espressif/esp-nimble.git
[submodule "components/cbor/tinycbor"]
path = components/cbor/tinycbor
url = ../../intel/tinycbor.git
[submodule "components/esp_wifi/lib"]
path = components/esp_wifi/lib
url = ../../espressif/esp32-wifi-lib.git
[submodule "components/cmock/CMock"]
path = components/cmock/CMock
url = ../../ThrowTheSwitch/CMock.git
sbom-version = v2.5.2-2-geeecc49ce8af
sbom-supplier = Organization: ThrowTheSwitch community <http://www.throwtheswitch.org>
sbom-url = https://github.com/ThrowTheSwitch/CMock
sbom-description = CMock - Mock/stub generator for C
sbom-hash = eeecc49ce8af123cf8ad40efdb9673e37b56230f
[submodule "components/openthread/openthread"]
path = components/openthread/openthread
url = ../../espressif/openthread.git
[submodule "components/bt/controller/lib_esp32c3_family"]
path = components/bt/controller/lib_esp32c3_family
url = ../../espressif/esp32c3-bt-lib.git
[submodule "components/esp_phy/lib"]
path = components/esp_phy/lib
url = ../../espressif/esp-phy-lib.git
[submodule "components/openthread/lib"]
path = components/openthread/lib
url = ../../espressif/esp-thread-lib.git
[submodule "components/ieee802154/lib"]
path = components/ieee802154/lib
url = ../../espressif/esp-ieee802154-lib.git
[submodule "components/bt/controller/lib_esp32h2/esp32h2-bt-lib"]
path = components/bt/controller/lib_esp32h2/esp32h2-bt-lib
url = ../../espressif/esp32h2-bt-lib.git
[submodule "components/bt/controller/lib_esp32c2/esp32c2-bt-lib"]
path = components/bt/controller/lib_esp32c2/esp32c2-bt-lib
url = ../../espressif/esp32c2-bt-lib.git
[submodule "components/bt/controller/lib_esp32c6/esp32c6-bt-lib"]
path = components/bt/controller/lib_esp32c6/esp32c6-bt-lib
url = ../../espressif/esp32c6-bt-lib.git
[submodule "components/heap/tlsf"]
path = components/heap/tlsf
url = ../../espressif/tlsf.git
[submodule "components/esp_coex/lib"]
path = components/esp_coex/lib
url = ../../espressif/esp-coex-lib.git
[submodule "components/bt/esp_ble_mesh/lib/lib"]
path = components/bt/esp_ble_mesh/lib/lib
url = ../../espressif/esp-ble-mesh-lib.git

View File

@@ -1,26 +0,0 @@
[mypy]
# Specifies the Python version used to parse and check the target program
python_version = 3.9
# Disallows defining functions without type annotations or with incomplete type annotations
# True => enforce type annotation in all function definitions
disallow_untyped_defs = True
# Shows a warning when returning a value with type Any from a function declared with a non- Any return type
warn_return_any = True
# Shows errors for missing return statements on some execution paths
warn_no_return = True
# Suppress error messages about imports that cannot be resolved
# True => ignore all import errors
ignore_missing_imports = True
# Disallows defining functions with incomplete type annotations
disallow_incomplete_defs = False
# Directs what to do with imports when the imported module is found as a .py file and not part of the files,
# modules and packages provided on the command line.
# SKIP -> mypy checks only single file, not included imports
follow_imports = skip

View File

@@ -1,221 +0,0 @@
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.0.1
hooks:
- id: trailing-whitespace
# note: whitespace exclusions use multiline regex, see https://pre-commit.com/#regular-expressions
# items are:
# 1 - some file extensions
# 2 - any file matching *test*/*expected* (for host tests, if possible use this naming pattern always)
# 3 - any directory named 'testdata'
# 4 - protobuf auto-generated files
exclude: &whitespace_excludes |
(?x)^(
.+\.(md|rst|map|bin)|
.+test.*\/.*expected.*|
.+\/testdata\/.+|
.*_pb2.py|
.*.pb-c.h|
.*.pb-c.c|
.*.yuv
)$
- id: end-of-file-fixer
exclude: *whitespace_excludes
- id: check-executables-have-shebangs
- id: mixed-line-ending
args: ['-f=lf']
- id: double-quote-string-fixer
- id: no-commit-to-branch
name: Do not use more than one slash in the branch name
args: ['--pattern', '^[^/]*/[^/]*/']
- id: no-commit-to-branch
name: Do not use uppercase letters in the branch name
args: ['--pattern', '^[^A-Z]*[A-Z]']
- repo: https://github.com/PyCQA/flake8
rev: 5.0.4
hooks:
- id: flake8
args: ['--config=.flake8', '--tee', '--benchmark']
- repo: https://github.com/pycqa/isort
rev: 5.12.0 # python 3.8 compatible
hooks:
- id: isort
name: isort (python)
exclude: >
(?x)^(
.*_pb2.py
)$
- repo: local
hooks:
- id: check-executables
name: Check File Permissions
entry: tools/ci/check_executables.py --action executables
language: python
types: [executable]
exclude: '\.pre-commit/.+'
- id: check-executable-list
name: Validate executable-list.txt
entry: tools/ci/check_executables.py --action list
language: python
pass_filenames: false
always_run: true
- id: check-kconfigs
name: Validate Kconfig files
entry: tools/ci/check_kconfigs.py
language: python
additional_dependencies:
- esp-idf-kconfig
files: '^Kconfig$|Kconfig.*$'
- id: check-deprecated-kconfigs-options
name: Check if any Kconfig Options Deprecated
entry: tools/ci/check_deprecated_kconfigs.py
language: python
files: 'sdkconfig\.ci$|sdkconfig\.rename$|sdkconfig.*$'
- id: cmake-lint
name: Check CMake Files Format
entry: cmakelint --linelength=120 --spaces=4 --filter=-whitespace/indent
language: python
additional_dependencies:
- cmakelint==1.4.1
files: 'CMakeLists.txt$|\.cmake$'
exclude: '\/third_party\/'
- id: check-codeowners
name: Validate Codeowner File
entry: tools/ci/check_codeowners.py ci-check
language: python
always_run: true
files: '\.gitlab/CODEOWNERS'
pass_filenames: false
- id: check-rules-yml
name: Check rules.yml all rules have at lease one job applied, all rules needed exist
entry: tools/ci/check_rules_yml.py
language: python
files: '\.gitlab/ci/.+\.yml|\.gitlab-ci.yml|\.gitmodules'
pass_filenames: false
additional_dependencies:
- PyYAML == 5.3.1
- id: check-generated-rules
name: Check rules are generated (based on .gitlab/ci/dependencies/dependencies.yml)
entry: tools/ci/generate_rules.py
language: python
files: '\.gitlab/ci/dependencies/.+|\.gitlab/ci/.*\.yml'
pass_filenames: false
additional_dependencies:
- PyYAML == 5.3.1
- id: mypy-check
name: Check type annotations in python files
entry: tools/ci/check_type_comments.py
additional_dependencies:
- 'mypy==0.940'
- 'mypy-extensions==0.4.3'
- 'types-setuptools==57.4.14'
- 'types-PyYAML==0.1.9'
exclude: >
(?x)^(
.*_pb2.py
)$
language: python
types: [python]
- id: check-requirement-files
name: Check requirement files
entry: tools/ci/check_requirement_files.py
additional_dependencies:
- 'jsonschema'
language: python
files: 'tools/requirements.+|tools/requirements/.+'
pass_filenames: false
- id: check-tools-files-patterns
name: Check tools dir files patterns
entry: tools/ci/check_tools_files_patterns.py
language: python
files: '^tools/.+'
additional_dependencies:
- PyYAML == 5.3.1
pass_filenames: false
- id: check-rules-components-patterns
name: check patterns-build_components in rules.yml
entry: tools/ci/check_rules_components_patterns.py
language: python
files: 'components/.+|.gitlab/ci/rules.yml'
additional_dependencies:
- PyYAML == 5.3.1
pass_filenames: false
- id: check-generated-soc-caps-kconfig
name: Check soc caps kconfig files are generated (based on components/soc/IDF_TARGET/include/soc/soc_caps.h)
entry: tools/gen_soc_caps_kconfig/gen_soc_caps_kconfig.py -d 'components/soc/*/include/soc/' 'components/esp_rom/*/' 'components/spi_flash/*/'
language: python
files: 'components/soc/.+/include/soc/.+_caps\.h|components/esp_rom/.+/.+_caps\.h|kconfig\.soc_caps.in|components/spi_flash/.+/.+_caps\.h'
pass_filenames: false
additional_dependencies:
- pyparsing
- id: check-all-apps-readmes
name: Check if all apps readme files match given .build-test-rules.yml files. Modify the supported target tables
entry: tools/ci/check_build_test_rules.py check-readmes
language: python
files: 'tools/test_apps/.+|examples/.+|components/.+|tools/idf_py_actions/constants.py|tools/ci/check_build_test_rules.py'
require_serial: true
additional_dependencies:
- PyYAML == 5.3.1
- idf_build_apps~=1.0
- id: sort-build-test-rules-ymls
name: sort .build-test-rules.yml files
entry: tools/ci/check_build_test_rules.py sort-yaml
language: python
files: '\.build-test-rules\.yml'
additional_dependencies:
- PyYAML == 5.3.1
- ruamel.yaml
- id: check-build-test-rules-path-exists
name: check path in .build-test-rules.yml exists
entry: tools/ci/check_build_test_rules.py check-exist
language: python
additional_dependencies:
- PyYAML == 5.3.1
always_run: true
pass_filenames: false
require_serial: true
- id: cleanup-ignore-lists
name: Remove non-existing patterns from ignore lists
entry: tools/ci/cleanup_ignore_lists.py
language: python
always_run: true
require_serial: true
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.0.1
hooks:
- id: file-contents-sorter
files: 'tools\/ci\/(executable-list\.txt|mypy_ignore_list\.txt|check_copyright_ignore\.txt)'
- repo: https://github.com/espressif/check-copyright/
rev: v1.0.3
hooks:
- id: check-copyright
args: ['--ignore', 'tools/ci/check_copyright_ignore.txt', '--config', 'tools/ci/check_copyright_config.yaml']
- repo: https://github.com/espressif/conventional-precommit-linter
rev: v1.2.1
hooks:
- id: conventional-precommit-linter
stages: [commit-msg]
- repo: https://github.com/espressif/astyle_py.git
rev: v1.0.5
hooks:
- id: astyle_py
# If you are modifying astyle version, update tools/format.sh as well
args: ['--astyle-version=3.4.7', '--rules=tools/ci/astyle-rules.yml']
- repo: https://github.com/shellcheck-py/shellcheck-py
rev: v0.9.0.5
hooks:
- id: shellcheck
name: shellcheck bash
args: ['--shell', 'bash', '-x']
files: 'install.sh|export.sh'
- id: shellcheck
name: shellcheck dash (export.sh)
args: ['--shell', 'dash', '-x']
files: 'export.sh'
- repo: https://github.com/espressif/esp-idf-sbom.git
rev: v0.11.0
hooks:
- id: validate-sbom-manifest

641
.pylintrc
View File

@@ -1,641 +0,0 @@
[MAIN]
# Analyse import fallback blocks. This can be used to support both Python 2 and
# 3 compatible code, which means that the block might have code that exists
# only in one or another interpreter, leading to false positives when analysed.
analyse-fallback-blocks=no
# Clear in-memory caches upon conclusion of linting. Useful if running pylint
# in a server-like mode.
clear-cache-post-run=no
# Load and enable all available extensions. Use --list-extensions to see a list
# all available extensions.
#enable-all-extensions=
# In error mode, messages with a category besides ERROR or FATAL are
# suppressed, and no reports are done by default. Error mode is compatible with
# disabling specific errors.
#errors-only=
# Always return a 0 (non-error) status code, even if lint errors are found.
# This is primarily useful in continuous integration scripts.
#exit-zero=
# A comma-separated list of package or module names from where C extensions may
# be loaded. Extensions are loading into the active Python interpreter and may
# run arbitrary code.
extension-pkg-allow-list=
# A comma-separated list of package or module names from where C extensions may
# be loaded. Extensions are loading into the active Python interpreter and may
# run arbitrary code. (This is an alternative name to extension-pkg-allow-list
# for backward compatibility.)
extension-pkg-whitelist=
# Return non-zero exit code if any of these messages/categories are detected,
# even if score is above --fail-under value. Syntax same as enable. Messages
# specified are enabled, while categories only check already-enabled messages.
fail-on=
# Specify a score threshold under which the program will exit with error.
fail-under=10
# Interpret the stdin as a python script, whose filename needs to be passed as
# the module_or_package argument.
#from-stdin=
# Files or directories to be skipped. They should be base names, not paths.
ignore=CVS
# Add files or directories matching the regular expressions patterns to the
# ignore-list. The regex matches against paths and can be in Posix or Windows
# format. Because '\\' represents the directory delimiter on Windows systems,
# it can't be used as an escape character.
ignore-paths=
# Files or directories matching the regular expression patterns are skipped.
# The regex matches against base names, not paths. The default value ignores
# Emacs file locks
ignore-patterns=^\.#
# List of module names for which member attributes should not be checked
# (useful for modules/projects where namespaces are manipulated during runtime
# and thus existing member attributes cannot be deduced by static analysis). It
# supports qualified module names, as well as Unix pattern matching.
ignored-modules=
# Python code to execute, usually for sys.path manipulation such as
# pygtk.require().
#init-hook=
# Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the
# number of processors available to use, and will cap the count on Windows to
# avoid hangs.
jobs=1
# Control the amount of potential inferred values when inferring a single
# object. This can help the performance when dealing with large functions or
# complex, nested conditions.
limit-inference-results=100
# List of plugins (as comma separated values of python module names) to load,
# usually to register additional checkers.
load-plugins=
# Pickle collected data for later comparisons.
persistent=yes
# Minimum Python version to use for version dependent checks. Will default to
# the version used to run pylint.
py-version=3.8
# Discover python modules and packages in the file system subtree.
recursive=no
# Add paths to the list of the source roots. Supports globbing patterns. The
# source root is an absolute path or a path relative to the current working
# directory used to determine a package namespace for modules located under the
# source root.
source-roots=
# When enabled, pylint would attempt to guess common misconfiguration and emit
# user-friendly hints instead of false-positive error messages.
suggestion-mode=yes
# Allow loading of arbitrary C extensions. Extensions are imported into the
# active Python interpreter and may run arbitrary code.
unsafe-load-any-extension=no
# In verbose mode, extra non-checker-related info will be displayed.
#verbose=
[BASIC]
# Naming style matching correct argument names.
argument-naming-style=snake_case
# Regular expression matching correct argument names. Overrides argument-
# naming-style. If left empty, argument names will be checked with the set
# naming style.
#argument-rgx=
# Naming style matching correct attribute names.
attr-naming-style=snake_case
# Regular expression matching correct attribute names. Overrides attr-naming-
# style. If left empty, attribute names will be checked with the set naming
# style.
#attr-rgx=
# Bad variable names which should always be refused, separated by a comma.
bad-names=foo,
bar,
baz,
toto,
tutu,
tata
# Bad variable names regexes, separated by a comma. If names match any regex,
# they will always be refused
bad-names-rgxs=
# Naming style matching correct class attribute names.
class-attribute-naming-style=any
# Regular expression matching correct class attribute names. Overrides class-
# attribute-naming-style. If left empty, class attribute names will be checked
# with the set naming style.
#class-attribute-rgx=
# Naming style matching correct class constant names.
class-const-naming-style=UPPER_CASE
# Regular expression matching correct class constant names. Overrides class-
# const-naming-style. If left empty, class constant names will be checked with
# the set naming style.
#class-const-rgx=
# Naming style matching correct class names.
class-naming-style=PascalCase
# Regular expression matching correct class names. Overrides class-naming-
# style. If left empty, class names will be checked with the set naming style.
#class-rgx=
# Naming style matching correct constant names.
const-naming-style=UPPER_CASE
# Regular expression matching correct constant names. Overrides const-naming-
# style. If left empty, constant names will be checked with the set naming
# style.
#const-rgx=
# Minimum line length for functions/classes that require docstrings, shorter
# ones are exempt.
docstring-min-length=-1
# Naming style matching correct function names.
function-naming-style=snake_case
# Regular expression matching correct function names. Overrides function-
# naming-style. If left empty, function names will be checked with the set
# naming style.
#function-rgx=
# Good variable names which should always be accepted, separated by a comma.
good-names=i,
j,
k,
ex,
Run,
_
# Good variable names regexes, separated by a comma. If names match any regex,
# they will always be accepted
good-names-rgxs=
# Include a hint for the correct naming format with invalid-name.
include-naming-hint=no
# Naming style matching correct inline iteration names.
inlinevar-naming-style=any
# Regular expression matching correct inline iteration names. Overrides
# inlinevar-naming-style. If left empty, inline iteration names will be checked
# with the set naming style.
#inlinevar-rgx=
# Naming style matching correct method names.
method-naming-style=snake_case
# Regular expression matching correct method names. Overrides method-naming-
# style. If left empty, method names will be checked with the set naming style.
#method-rgx=
# Naming style matching correct module names.
module-naming-style=snake_case
# Regular expression matching correct module names. Overrides module-naming-
# style. If left empty, module names will be checked with the set naming style.
#module-rgx=
# Colon-delimited sets of names that determine each other's naming style when
# the name regexes allow several styles.
name-group=
# Regular expression which should only match function or class names that do
# not require a docstring.
no-docstring-rgx=^_
# List of decorators that produce properties, such as abc.abstractproperty. Add
# to this list to register other decorators that produce valid properties.
# These decorators are taken in consideration only for invalid-name.
property-classes=abc.abstractproperty
# Regular expression matching correct type alias names. If left empty, type
# alias names will be checked with the set naming style.
#typealias-rgx=
# Regular expression matching correct type variable names. If left empty, type
# variable names will be checked with the set naming style.
#typevar-rgx=
# Naming style matching correct variable names.
variable-naming-style=snake_case
# Regular expression matching correct variable names. Overrides variable-
# naming-style. If left empty, variable names will be checked with the set
# naming style.
#variable-rgx=
[CLASSES]
# Warn about protected attribute access inside special methods
check-protected-access-in-special-methods=no
# List of method names used to declare (i.e. assign) instance attributes.
defining-attr-methods=__init__,
__new__,
setUp,
asyncSetUp,
__post_init__
# List of member names, which should be excluded from the protected access
# warning.
exclude-protected=_asdict,_fields,_replace,_source,_make,os._exit
# List of valid names for the first argument in a class method.
valid-classmethod-first-arg=cls
# List of valid names for the first argument in a metaclass class method.
valid-metaclass-classmethod-first-arg=mcs
[DESIGN]
# List of regular expressions of class ancestor names to ignore when counting
# public methods (see R0903)
exclude-too-few-public-methods=
# List of qualified class names to ignore when counting class parents (see
# R0901)
ignored-parents=
# Maximum number of arguments for function / method.
max-args=5
# Maximum number of attributes for a class (see R0902).
max-attributes=7
# Maximum number of boolean expressions in an if statement (see R0916).
max-bool-expr=5
# Maximum number of branch for function / method body.
max-branches=12
# Maximum number of locals for function / method body.
max-locals=15
# Maximum number of parents for a class (see R0901).
max-parents=7
# Maximum number of public methods for a class (see R0904).
max-public-methods=20
# Maximum number of return / yield for function / method body.
max-returns=6
# Maximum number of statements in function / method body.
max-statements=50
# Minimum number of public methods for a class (see R0903).
min-public-methods=2
[EXCEPTIONS]
# Exceptions that will emit a warning when caught.
overgeneral-exceptions=builtins.BaseException,builtins.Exception
[FORMAT]
# Expected format of line ending, e.g. empty (any line ending), LF or CRLF.
expected-line-ending-format=
# Regexp for a line that is allowed to be longer than the limit.
ignore-long-lines=^\s*(# )?<?https?://\S+>?$
# Number of spaces of indent required inside a hanging or continued line.
indent-after-paren=4
# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1
# tab).
indent-string=' '
# Maximum number of characters on a single line.
max-line-length=160
# Maximum number of lines in a module.
max-module-lines=1000
# Allow the body of a class to be on the same line as the declaration if body
# contains single statement.
single-line-class-stmt=no
# Allow the body of an if to be on the same line as the test if there is no
# else.
single-line-if-stmt=no
[IMPORTS]
# List of modules that can be imported at any level, not just the top level
# one.
allow-any-import-level=
# Allow explicit reexports by alias from a package __init__.
allow-reexport-from-package=no
# Allow wildcard imports from modules that define __all__.
allow-wildcard-with-all=no
# Deprecated modules which should not be used, separated by a comma.
deprecated-modules=
# Output a graph (.gv or any supported image format) of external dependencies
# to the given file (report RP0402 must not be disabled).
ext-import-graph=
# Output a graph (.gv or any supported image format) of all (i.e. internal and
# external) dependencies to the given file (report RP0402 must not be
# disabled).
import-graph=
# Output a graph (.gv or any supported image format) of internal dependencies
# to the given file (report RP0402 must not be disabled).
int-import-graph=
# Force import order to recognize a module as part of the standard
# compatibility libraries.
known-standard-library=
# Force import order to recognize a module as part of a third party library.
known-third-party=enchant
# Couples of modules and preferred modules, separated by a comma.
preferred-modules=
[LOGGING]
# The type of string formatting that logging methods do. `old` means using %
# formatting, `new` is for `{}` formatting.
logging-format-style=old
# Logging modules to check that the string format arguments are in logging
# function parameter format.
logging-modules=logging
[MESSAGES CONTROL]
# Only show warnings with the listed confidence levels. Leave empty to show
# all. Valid levels: HIGH, CONTROL_FLOW, INFERENCE, INFERENCE_FAILURE,
# UNDEFINED.
confidence=HIGH,
CONTROL_FLOW,
INFERENCE,
INFERENCE_FAILURE,
UNDEFINED
# Disable the message, report, category or checker with the given id(s). You
# can either give multiple identifiers separated by comma (,) or put this
# option multiple times (only on the command line, not in the configuration
# file where it should appear only once). You can also use "--disable=all" to
# disable everything first and then re-enable specific checks. For example, if
# you want to run only the similarities checker, you can use "--disable=all
# --enable=similarities". If you want to run only the classes checker, but have
# no Warning level messages displayed, use "--disable=all --enable=classes
# --disable=W".
disable=raw-checker-failed,
bad-inline-option,
locally-disabled,
file-ignored,
suppressed-message,
useless-suppression,
deprecated-pragma,
use-symbolic-message-instead,
missing-function-docstring, # Modified since here, include this line
missing-class-docstring,
missing-module-docstring,
wrong-import-order,
invalid-name,
too-few-public-methods,
too-many-locals,
ungrouped-imports, # since we have isort in pre-commit
no-name-in-module, # since we have flake8 to check this
too-many-instance-attributes,
# Enable the message, report, category or checker with the given id(s). You can
# either give multiple identifier separated by comma (,) or put this option
# multiple time (only on the command line, not in the configuration file where
# it should appear only once). See also the "--disable" option for examples.
enable=c-extension-no-member
[METHOD_ARGS]
# List of qualified names (i.e., library.method) which require a timeout
# parameter e.g. 'requests.api.get,requests.api.post'
timeout-methods=requests.api.delete,requests.api.get,requests.api.head,requests.api.options,requests.api.patch,requests.api.post,requests.api.put,requests.api.request
[MISCELLANEOUS]
# List of note tags to take in consideration, separated by a comma.
notes=FIXME,
XXX,
TODO
# Regular expression of note tags to take in consideration.
notes-rgx=
[REFACTORING]
# Maximum number of nested blocks for function / method body
max-nested-blocks=5
# Complete name of functions that never returns. When checking for
# inconsistent-return-statements if a never returning function is called then
# it will be considered as an explicit return statement and no message will be
# printed.
never-returning-functions=sys.exit,argparse.parse_error
[REPORTS]
# Python expression which should return a score less than or equal to 10. You
# have access to the variables 'fatal', 'error', 'warning', 'refactor',
# 'convention', and 'info' which contain the number of messages in each
# category, as well as 'statement' which is the total number of statements
# analyzed. This score is used by the global evaluation report (RP0004).
evaluation=max(0, 0 if fatal else 10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10))
# Template used to display messages. This is a python new-style format string
# used to format the message information. See doc for all details.
msg-template=
# Set the output format. Available formats are text, parseable, colorized, json
# and msvs (visual studio). You can also give a reporter class, e.g.
# mypackage.mymodule.MyReporterClass.
#output-format=
# Tells whether to display a full report or only the messages.
reports=no
# Activate the evaluation score.
score=yes
[SIMILARITIES]
# Comments are removed from the similarity computation
ignore-comments=yes
# Docstrings are removed from the similarity computation
ignore-docstrings=yes
# Imports are removed from the similarity computation
ignore-imports=yes
# Signatures are removed from the similarity computation
ignore-signatures=yes
# Minimum lines number of a similarity.
min-similarity-lines=4
[SPELLING]
# Limits count of emitted suggestions for spelling mistakes.
max-spelling-suggestions=4
# Spelling dictionary name. No available dictionaries : You need to install
# both the python package and the system dependency for enchant to work..
spelling-dict=
# List of comma separated words that should be considered directives if they
# appear at the beginning of a comment and should not be checked.
spelling-ignore-comment-directives=fmt: on,fmt: off,noqa:,noqa,nosec,isort:skip,mypy:
# List of comma separated words that should not be checked.
spelling-ignore-words=
# A path to a file that contains the private dictionary; one word per line.
spelling-private-dict-file=
# Tells whether to store unknown words to the private dictionary (see the
# --spelling-private-dict-file option) instead of raising a message.
spelling-store-unknown-words=no
[STRING]
# This flag controls whether inconsistent-quotes generates a warning when the
# character used as a quote delimiter is used inconsistently within a module.
check-quote-consistency=no
# This flag controls whether the implicit-str-concat should generate a warning
# on implicit string concatenation in sequences defined over several lines.
check-str-concat-over-line-jumps=no
[TYPECHECK]
# List of decorators that produce context managers, such as
# contextlib.contextmanager. Add to this list to register other decorators that
# produce valid context managers.
contextmanager-decorators=contextlib.contextmanager
# List of members which are set dynamically and missed by pylint inference
# system, and so shouldn't trigger E1101 when accessed. Python regular
# expressions are accepted.
generated-members=
# Tells whether to warn about missing members when the owner of the attribute
# is inferred to be None.
ignore-none=yes
# This flag controls whether pylint should warn about no-member and similar
# checks whenever an opaque object is returned when inferring. The inference
# can return multiple potential results while evaluating a Python object, but
# some branches might not be evaluated, which results in partial inference. In
# that case, it might be useful to still emit no-member and other checks for
# the rest of the inferred objects.
ignore-on-opaque-inference=yes
# List of symbolic message names to ignore for Mixin members.
ignored-checks-for-mixins=no-member,
not-async-context-manager,
not-context-manager,
attribute-defined-outside-init
# List of class names for which member attributes should not be checked (useful
# for classes with dynamically set attributes). This supports the use of
# qualified names.
ignored-classes=optparse.Values,thread._local,_thread._local,argparse.Namespace
# Show a hint with possible names when a member name was not found. The aspect
# of finding the hint is based on edit distance.
missing-member-hint=yes
# The minimum edit distance a name should have in order to be considered a
# similar match for a missing member name.
missing-member-hint-distance=1
# The total number of similar names that should be taken in consideration when
# showing a hint for a missing member.
missing-member-max-choices=1
# Regex pattern to define which classes are considered mixins.
mixin-class-rgx=.*[Mm]ixin
# List of decorators that change the signature of a decorated function.
signature-mutators=
[VARIABLES]
# List of additional names supposed to be defined in builtins. Remember that
# you should avoid defining new builtins when possible.
additional-builtins=
# Tells whether unused global variables should be treated as a violation.
allow-global-unused-variables=yes
# List of names allowed to shadow builtins
allowed-redefined-builtins=
# List of strings which can identify a callback function by name. A callback
# name must start or end with one of those strings.
callbacks=cb_,
_cb
# A regular expression matching the name of dummy variables (i.e. expected to
# not be used).
dummy-variables-rgx=_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_
# Argument names that match this expression will be ignored.
ignored-argument-names=_.*|^ignored_|^unused_
# Tells whether we should check for unused import in __init__ files.
init-import=no
# List of qualified module names which can have objects that can redefine
# builtins.
redefining-builtins-modules=six.moves,past.builtins,future.builtins,builtins,io

View File

@@ -16,6 +16,6 @@ python:
- requirements: docs/requirements.txt
# We need to list all the submodules included in documenation build by DOxygen
submodules:
submodules:
include:
- components/mqtt/esp-mqtt
- components/mqtt/esp-mqtt

View File

@@ -1,5 +0,0 @@
# This is shellcheck config file
# Files that are checked: install.sh, export.sh
# Do not complain about variables determined at runtime (IDF_PATH)
disable=SC1090

119
.vale.ini
View File

@@ -1,119 +0,0 @@
###################
### Vale Config ###
###################
# This is a Vale linter configuration file.
# - Repo: esp-idf
# - Based on Default config: v0-1-1
# It lists all necessary parameters to configure Vale for your project.
# For official documentation on all config settings, see
# https://vale.sh/docs/topics/config
##############
### Global ###
##############
# This section lists core settings applying to Vale itself.
# Specify path to external resources (e.g., styles and vocab files).
# The path value may be absolute or relative to this configuration file.
StylesPath = .vale/styles
# Specify the minimum alert severity that Vale will report.
MinAlertLevel = suggestion # "suggestion", "warning", or "error"
# Specify vocabulary for special treatment.
# Create a folder in <StylesPath>/Vocab/<name>/and add its name here
# The folder should contain two files:
# - accept.txt -- lists words with accepted case-sensitive spelling
# - reject.txt -- lists words whose occurrences throw an error
# Vocab = Espressif
# Specify the packages to import into your project.
# A package is a zip file containing a number of rules (style) written in YAML.
# For a list of official packages, see Package Hub at https://vale.sh/hub/
# For official documentation on packages, see
# https://vale.sh/docs/topics/packages/
# Before linting, navigate to your project and run `vale sync` to download
# the official packages specified below.
# Packages = Package1, Package2, \
# https://example.com/path/to/package/Package.zip
Packages = Google, Microsoft, RedHat, \
https://dl.espressif.com/dl/esp-vale-config/Espressif-latest.zip
###############
### Formats ###
###############
# This section enables association of "unknown" formats with the ones
# supported by Vale. For official documentation on supported formats, see
# https://vale.sh/docs/topics/scoping/
[formats]
# For example, treat MDX files as Markdown files.
# mdx = md
################################
### Format-specific settings ###
################################
# This section lists the settings that apply to specific file formats
# based on their glob pattern.
# Settings provided under a more specific glob pattern,
# such as [*.{md,txt}] will override those in [*].
[*.{md,rst}]
# Enable styles to activate all rules included in them.
# BasedOnStyles = Style1, Style2
BasedOnStyles = Vale, Espressif-latest
### Deactivate individual rules ###
### in enabled styles.
# Style1.Rule1 = NO
Vale.Repetition = NO
Vale.Spelling = NO
Espressif-latest.Admonitions = NO
Espressif-latest.Contractions = NO
Espressif-latest.Monospace = NO
Espressif-latest.PascalCamelCase = NO
### Change default severity level ###
### of an activated rule.
# Choose between "suggestion", "warning", or "error".
# Style1.Rule2 = error
### Activate individual rules ###
### in non-enabled styles stored in <StylesPath>.
# Style1.Rule = YES
Google.Gender = YES
Google.GenderBias = YES
Google.Slang = YES
Google.Spacing = YES
Microsoft.DateNumbers = YES
Microsoft.Ellipses = YES
Microsoft.FirstPerson = YES
Microsoft.Hyphens = YES
Microsoft.Ordinal = YES
Microsoft.OxfordComma = YES
Microsoft.Percentages = YES
Microsoft.RangeTime = YES
Microsoft.Semicolon = YES
Microsoft.SentenceLength = YES
Microsoft.Suspended = YES
Microsoft.Units = YES
Microsoft.URLFormat = YES
Microsoft.We = YES
Microsoft.Wordiness = YES
RedHat.Contractions = YES
RedHat.RepeatedWords = YES

View File

@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.16)
cmake_minimum_required(VERSION 3.5)
project(esp-idf C CXX ASM)
if(CMAKE_CURRENT_LIST_DIR STREQUAL CMAKE_SOURCE_DIR)
@@ -7,8 +7,11 @@ if(CMAKE_CURRENT_LIST_DIR STREQUAL CMAKE_SOURCE_DIR)
"again.")
endif()
# Variables compile_options, c_compile_options, cxx_compile_options, compile_definitions, link_options shall
# not be unset as they may already contain flags, set by toolchain-TARGET.cmake files.
unset(compile_options)
unset(c_compile_options)
unset(cxx_compile_options)
unset(compile_definitions)
unset(link_options)
# Add the following build specifications here, since these seem to be dependent
# on config values on the root Kconfig.
@@ -17,14 +20,9 @@ if(NOT BOOTLOADER_BUILD)
if(CONFIG_COMPILER_OPTIMIZATION_SIZE)
list(APPEND compile_options "-Os")
if(CMAKE_C_COMPILER_ID MATCHES "GNU")
list(APPEND compile_options "-freorder-blocks")
endif()
elseif(CONFIG_COMPILER_OPTIMIZATION_DEBUG)
list(APPEND compile_options "-freorder-blocks")
elseif(CONFIG_COMPILER_OPTIMIZATION_DEFAULT)
list(APPEND compile_options "-Og")
if(CMAKE_C_COMPILER_ID MATCHES "GNU" AND NOT CONFIG_IDF_TARGET_LINUX)
list(APPEND compile_options "-fno-shrink-wrap") # Disable shrink-wrapping to reduce binary size
endif()
elseif(CONFIG_COMPILER_OPTIMIZATION_NONE)
list(APPEND compile_options "-O0")
elseif(CONFIG_COMPILER_OPTIMIZATION_PERF)
@@ -35,14 +33,9 @@ else() # BOOTLOADER_BUILD
if(CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE)
list(APPEND compile_options "-Os")
if(CMAKE_C_COMPILER_ID MATCHES "GNU")
list(APPEND compile_options "-freorder-blocks")
endif()
list(APPEND compile_options "-freorder-blocks")
elseif(CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG)
list(APPEND compile_options "-Og")
if(CMAKE_C_COMPILER_ID MATCHES "GNU" AND NOT CONFIG_IDF_TARGET_LINUX)
list(APPEND compile_options "-fno-shrink-wrap") # Disable shrink-wrapping to reduce binary size
endif()
elseif(CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE)
list(APPEND compile_options "-O0")
elseif(CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF)
@@ -64,70 +57,21 @@ else()
list(APPEND link_options "-fno-rtti") # used to invoke correct multilib variant (no-rtti) during linking
endif()
if(CONFIG_COMPILER_SAVE_RESTORE_LIBCALLS)
list(APPEND compile_options "-msave-restore")
endif()
if(CONFIG_COMPILER_DISABLE_GCC8_WARNINGS)
list(APPEND compile_options "-Wno-parentheses"
"-Wno-sizeof-pointer-memaccess"
"-Wno-clobbered")
if(CMAKE_C_COMPILER_ID MATCHES "GNU")
list(APPEND c_compile_options "-Wno-old-style-declaration")
endif()
# Clang finds some warnings in IDF code which GCC doesn't.
# All these warnings should be fixed before Clang is presented
# as a toolchain choice for users.
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
# Clang checks Doxygen comments for being in sync with function prototype.
# There are some inconsistencies, especially in ROM headers.
list(APPEND compile_options "-Wno-documentation")
# GCC allows repeated typedefs when the source and target types are the same.
# Clang doesn't allow this. This occurs in many components due to forward
# declarations.
list(APPEND compile_options "-Wno-typedef-redefinition")
# This issue is seemingly related to newlib's char type functions.
# Fix is not clear yet.
list(APPEND compile_options "-Wno-char-subscripts")
# Clang seems to notice format string issues which GCC doesn't.
list(APPEND compile_options "-Wno-format-security")
# Logic bug in essl component
list(APPEND compile_options "-Wno-tautological-overlap-compare")
# Some pointer checks in mDNS component check addresses which can't be NULL
list(APPEND compile_options "-Wno-tautological-pointer-compare")
# Similar to the above, in tcp_transport
list(APPEND compile_options "-Wno-pointer-bool-conversion")
# mbedTLS md5.c triggers this warning in md5_test_buf (false positive)
list(APPEND compile_options "-Wno-string-concatenation")
# multiple cases of implict convertions between unrelated enum types
list(APPEND compile_options "-Wno-enum-conversion")
# When IRAM_ATTR is specified both in function declaration and definition,
# it produces different section names, since section names include __COUNTER__.
# Occurs in multiple places.
list(APPEND compile_options "-Wno-section")
# Multiple cases of attributes unknown to clang, for example
# __attribute__((optimize("-O3")))
list(APPEND compile_options "-Wno-unknown-attributes")
# Disable Clang warnings for atomic operations with access size
# more then 4 bytes
list(APPEND compile_options "-Wno-atomic-alignment")
# several warnings in wpa_supplicant component
list(APPEND compile_options "-Wno-unused-but-set-variable")
# Clang also produces many -Wunused-function warnings which GCC doesn't.
list(APPEND compile_options "-Wno-unused-function")
# many warnings in bluedroid code
# warning: field 'hdr' with variable sized type 'BT_HDR' not at the end of a struct or class is a GNU extension
list(APPEND compile_options "-Wno-gnu-variable-sized-type-not-at-end")
# several warnings in bluedroid code
list(APPEND compile_options "-Wno-constant-logical-operand")
# warning: '_Static_assert' with no message is a C2x extension
list(APPEND compile_options "-Wno-c2x-extensions")
# warning on xMPU_SETTINGS for esp32s2 has size 0 for C and 1 for C++
list(APPEND compile_options "-Wno-extern-c-compat")
# warning: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1
list(APPEND compile_options "-Wno-single-bit-bitfield-constant-conversion")
endif()
# More warnings may exist in unit tests and example projects.
if(CONFIG_COMPILER_WARN_WRITE_STRINGS)
list(APPEND compile_options "-Wwrite-strings")
list(APPEND compile_options "-Wno-format-overflow"
"-Wno-stringop-truncation"
"-Wno-misleading-indentation"
"-Wno-cast-function-type"
"-Wno-implicit-fallthrough"
"-Wno-unused-const-variable"
"-Wno-switch-unreachable"
"-Wno-format-truncation"
"-Wno-memset-elt-size"
"-Wno-int-in-bool-context")
endif()
if(CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE)
@@ -142,121 +86,11 @@ elseif(CONFIG_COMPILER_STACK_CHECK_MODE_ALL)
list(APPEND compile_options "-fstack-protector-all")
endif()
if(CONFIG_COMPILER_DUMP_RTL_FILES)
list(APPEND compile_options "-fdump-rtl-expand")
endif()
if(NOT ${CMAKE_C_COMPILER_VERSION} VERSION_LESS 8.0.0)
if(CONFIG_COMPILER_HIDE_PATHS_MACROS)
list(APPEND compile_options "-fmacro-prefix-map=${CMAKE_SOURCE_DIR}=.")
list(APPEND compile_options "-fmacro-prefix-map=${IDF_PATH}=/IDF")
endif()
if(CONFIG_APP_REPRODUCIBLE_BUILD)
idf_build_set_property(DEBUG_PREFIX_MAP_GDBINIT "${BUILD_DIR}/prefix_map_gdbinit")
list(APPEND compile_options "-fdebug-prefix-map=${IDF_PATH}=/IDF")
list(APPEND compile_options "-fdebug-prefix-map=${PROJECT_DIR}=/IDF_PROJECT")
list(APPEND compile_options "-fdebug-prefix-map=${BUILD_DIR}=/IDF_BUILD")
# component dirs
idf_build_get_property(python PYTHON)
idf_build_get_property(idf_path IDF_PATH)
idf_build_get_property(component_dirs BUILD_COMPONENT_DIRS)
execute_process(
COMMAND ${python}
"${idf_path}/tools/generate_debug_prefix_map.py"
"${BUILD_DIR}"
"${component_dirs}"
OUTPUT_VARIABLE result
RESULT_VARIABLE ret
)
if(NOT ret EQUAL 0)
message(FATAL_ERROR "This is a bug. Please report to https://github.com/espressif/esp-idf/issues")
endif()
spaces2list(result)
list(LENGTH component_dirs length)
math(EXPR max_index "${length} - 1")
foreach(index RANGE ${max_index})
list(GET component_dirs ${index} folder)
list(GET result ${index} after)
list(APPEND compile_options "-fdebug-prefix-map=${folder}=${after}")
endforeach()
endif()
endif()
if(CONFIG_COMPILER_DISABLE_GCC12_WARNINGS)
list(APPEND compile_options "-Wno-address"
"-Wno-use-after-free")
endif()
if(CONFIG_COMPILER_DISABLE_GCC13_WARNINGS)
list(APPEND compile_options "-Wno-xor-used-as-pow")
list(APPEND c_compile_options "-Wno-enum-int-mismatch")
list(APPEND cxx_compile_options "-Wno-self-move"
"-Wno-dangling-reference")
endif()
# GCC-specific options
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
list(APPEND compile_options "-fstrict-volatile-bitfields"
)
endif()
if(CONFIG_ESP_SYSTEM_USE_EH_FRAME)
list(APPEND compile_options "-fasynchronous-unwind-tables")
list(APPEND link_options "-Wl,--eh-frame-hdr")
endif()
list(APPEND link_options "-fno-lto")
if(CONFIG_IDF_TARGET_LINUX AND CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin")
list(APPEND link_options "-Wl,-dead_strip")
list(APPEND link_options "-Wl,-warn_commons")
else()
list(APPEND link_options "-Wl,--gc-sections")
list(APPEND link_options "-Wl,--warn-common")
endif()
# SMP FreeRTOS user provided minimal idle hook. This allows the user to provide
# their own copy of vApplicationMinimalIdleHook()
if(CONFIG_FREERTOS_USE_MINIMAL_IDLE_HOOK)
list(APPEND link_options "-Wl,--wrap=vApplicationMinimalIdleHook")
endif()
# Placing jump tables in flash would cause issues with code that required
# to be placed in IRAM
list(APPEND compile_options "-fno-jump-tables")
if(CMAKE_C_COMPILER_ID MATCHES "GNU")
# This flag is GCC-specific.
# Not clear yet if some other flag should be used for Clang.
list(APPEND compile_options "-fno-tree-switch-conversion")
endif()
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
list(APPEND compile_options "-fno-use-cxa-atexit")
endif()
if(COMPILER_RT_LIB_NAME)
list(APPEND link_options "-rtlib=${CONFIG_COMPILER_RT_LIB_NAME}")
endif()
# For the transition period from 32-bit time_t to 64-bit time_t,
# auto-detect the size of this type and set corresponding variable.
include(CheckTypeSize)
check_type_size("time_t" TIME_T_SIZE)
if(TIME_T_SIZE)
idf_build_set_property(TIME_T_SIZE ${TIME_T_SIZE})
else()
message(FATAL_ERROR "Failed to determine sizeof(time_t)")
endif()
idf_build_set_property(COMPILE_OPTIONS "${compile_options}" APPEND)
idf_build_set_property(C_COMPILE_OPTIONS "${c_compile_options}" APPEND)
idf_build_set_property(CXX_COMPILE_OPTIONS "${cxx_compile_options}" APPEND)
idf_build_set_property(ASM_COMPILE_OPTIONS "${asm_compile_options}" APPEND)
idf_build_set_property(COMPILE_DEFINITIONS "${compile_definitions}" APPEND)
idf_build_set_property(LINK_OPTIONS "${link_options}" APPEND)

View File

@@ -1,101 +0,0 @@
# Compatibility Between ESP-IDF Releases and Revisions of Espressif SoCs
* [中文版](./COMPATIBILITY_CN.md)
Espressif keeps improving the performance of its SoCs by providing new chip revisions. However, some of the improvements require special software support. Some of the software supports are even mandatory for the chip revisions to run normally.
This document describes the compatibility between ESP-IDF releases and Espressif SoC revisions.
NOTE: This document on release branches may be out-of-date. Check the [Compatibility file on master](https://github.com/espressif/esp-idf/blob/master/COMPATIBILITY.md) for the most accurate information.
See [Compatibility Advisory for Chip Revision Numbering Scheme](https://www.espressif.com.cn/sites/default/files/advisory_downloads/AR2022-005%20Compatibility%20Advisory%20for%20Chip%20Revision%20Numbering%20%20Scheme.pdf) on the versioning of Espressif SoC revisions.
You can run `esptool chip_id` to detect the series and revision of an SoC. See [SoC Errata](https://www.espressif.com.cn/en/support/documents/technical-documents?keys=errata) for more on how to distinguish between chip revisions, and the improvements provided by chip revisions. And run `idf.py --version` to know the version of current ESP-IDF.
## ESP-IDF Support for Different Chip Revisions
The sections below show the requirements to ESP-IDF version of chip revisions. Each chip revision corresponds to specific `Recommended` and `Required` versions of ESP-IDF:
- `Recommended`: shows from which version of ESP-IDF you can make use of all the improvements of the chip revision. Running binary compiled with ESP-IDF below the `Recommended` version of a chip revision, software may not benefit from the bugfix/features provided by the chip revision. The chip will have almost the same behavior as its previous revision.
- `Required`: shows the minimum version required to run the chip revision normally. Running binary compiled below the `Required` version, the binary may have unpredictable behavior.
Though the software can make use of all the features of a chip revision, if its version is higher than the `Recommended` version of the chip, it is still recommended to use the latest bugfix version of the release branch. The latest bugfix version fixes a number of issues and helps improve product stability.
For example, if we have a chip, whose `Required`/`Recommended` version of `release/v5.1` branch is `v5.1.2`/`v5.1.4`, and the latest release on that branch is `v5.1.6`. Then the chip will not boot up with ESP-IDF `v5.1`-`v5.1.1` or will have unpredictable behavior, and application may not make use of all benefits of the chip, when running with ESP-IDF `v5.1.2` or `v5.1.3`. Though `v5.1.4` well supports the chip revision, it is still recommended to upgrade ESP-IDF to `v5.1.6`.
### ESP32
#### v0.0, v1.0, v3.0
Supported since initial version of ESP-IDF.
#### v1.1
To be added.
#### v2.0
To be added.
#### v3.1
To be added.
### ESP32-S2
#### v0.0
Supported since ESP-IDF v4.2.
#### v1.0
| Release branch | Recommended | Required |
|------------------------|-------------|----------|
| release/v4.2 | v4.2.3 | v4.2.3 |
| release/v4.3 | v4.3.3 | v4.3.3 |
| release/v4.4 | v4.4.6 | v4.4.1 |
| release/v5.0 | v5.0.4 | v5.0 |
| release/v5.1 | v5.1.2 | v5.1 |
| release/v5.2 and above | v5.2 | v5.2 |
### ESP32-C3
#### v0.2, v0.3
Supported since ESP-IDF v4.3.
#### v0.4
To be added.
### ESP32-S3
#### v0.1
Supported since ESP-IDF v4.4.
#### v0.2
To be added.
### ESP32-C2 & ESP8684
#### v1.0
Supported since ESP-IDF v5.0.
#### v1.1
To be added.
#### v1.2
To be added.
## What If the ESP-IDF Version Is Lower than the `Required` Version?
Latest ESP-IDF versions can prevent from downloading to, or even execute binaries on unsupported chips. ESP-IDF of versions v4.4.5+, v5.0.1+, v5.1 and above have both esptool download check and bootloader loading check against the chip revision. While ESP-IDF v4.3.5 has only esptool downloading check.
For earlier ESP-IDF versions without such checking, which is incompatible with the given chip revision, the chips running such versions will have unpredictable behavior.

View File

@@ -1,101 +0,0 @@
# ESP-IDF 版本与乐鑫芯片版本兼容性
* [English Version](./COMPATIBILITY.md)
为不断提高芯片性能,乐鑫会为其芯片发布新版本。但新芯片版本中的某些性能提升依赖特殊的软件支持,有时候新芯片版本必须在一定的软件版本下才能正常运行。
本文档介绍了具体 ESP-IDF 版本与乐鑫芯片版本之间的兼容性情况。
注意:各分支上的兼容性文档可能不是最新版本,请参考 [master 分支上的兼容性文件](https://github.com/espressif/esp-idf/blob/master/COMPATIBILITY_CN.md) 以获取最新信息。
有关乐鑫芯片版本的编码方式,请参考 [关于芯片版本 (Chip Revision) 编码方式的兼容性公告](https://www.espressif.com/sites/default/files/advisory_downloads/AR2022-005%20%E5%85%B3%E4%BA%8E%E8%8A%AF%E7%89%87%E7%89%88%E6%9C%AC%E7%BC%96%E7%A0%81%E6%96%B9%E5%BC%8F%20%28Chip%20Revision%29%20%E7%9A%84%E5%85%BC%E5%AE%B9%E6%80%A7%E5%85%AC%E5%91%8A.pdf)。
运行 `esptool chip_id` 可查看芯片系列及其版本。有关区分芯片版本及版本改进内容的更多信息,请参考 [芯片勘误表](https://www.espressif.com.cn/zh-hans/support/documents/technical-documents?keys=%E5%8B%98%E8%AF%AF%E8%A1%A8)。运行 `idf.py --version` 可查看当前的 ESP-IDF 版本。
## ESP-IDF 对各芯片版本的支持
下文介绍了 ESP-IDF 对各芯片版本的支持情况,每个芯片版本都有对应的 ESP-IDF `推荐版本``需求版本`
- `推荐版本`:表示从该版本的 ESP-IDF 开始,软件可以利用芯片版本提升的性能。如果在该芯片版本上运行低于 `推荐版本` 的 ESP-IDF 来编译二进制文件,软件可能无法利用该芯片版本修复的错误或新增的功能,芯片行为将与其上一版本几乎相同。
- `需求版本`:表示该芯片版本正常运行所需的最低 ESP-IDF 版本。如果在该芯片版本上运行低于 `需求版本` 的 ESP-IDF 来编译二进制文件,可能会出现不可预测的芯片行为。
即便使用的软件版本已高于该芯片版本的对应 `推荐版本`,软件已经能够利用该芯片版本的所有功能,我们仍建议用户升级到该发布分支的最新 bugfix 版本。新的 bugfix 版本修复了一些问题,有助于提升产品稳定性。
例如,对于某一芯片版本,其 `release/v5.1` 分支的 `需求版本``推荐版本` 分别是 `v5.1.2``v5.1.4`,而该分支的最新版本是 `v5.1.6`。那么,在使用 ESP-IDF `v5.1` - `v5.1.1` 时,芯片将无法启动,或会出现不可预测的行为,而在使用 ESP-IDF `v5.1.2``v5.1.3` 时,应用程序可能无法使用芯片的部分性能。此外,虽然 `v5.1.4` 已支持该芯片版本,但仍建议将 ESP-IDF 升级到 `v5.1.6`
### ESP32
#### v0.0、v1.0 和 v3.0
从最初版本的 ESP-IDF 开始支持。
#### v1.1
待更新。
#### v2.0
待更新。
#### v3.1
待更新。
### ESP32-S2
#### v0.0
从 ESP-IDF v4.2 开始支持。
#### v1.0
| 发布分支 | 推荐版本 | 需求版本 |
|------------------------|-------------|----------|
| release/v4.2 | v4.2.3 | v4.2.3 |
| release/v4.3 | v4.3.3 | v4.3.3 |
| release/v4.4 | v4.4.6 | v4.4.1 |
| release/v5.0 | v5.0.4 | v5.0 |
| release/v5.1 | v5.1.2 | v5.1 |
| release/v5.2 及以上 | v5.2 | v5.2 |
### ESP32-C3
#### v0.2 和 v0.3
从 ESP-IDF v4.3 开始支持。
#### v0.4
待更新。
### ESP32-S3
#### v0.1
从 ESP-IDF v4.4 开始支持。
#### v0.2
待更新。
### ESP32-C2 & ESP8684
#### v1.0
从 ESP-IDF v5.0 开始支持。
#### v1.1
待更新。
#### v1.2
待更新。
## 如果 ESP-IDF 版本低于 `需求版本` 会出现什么情况?
使用最新的 ESP-IDF 版本时软件会阻止下载二进制文件到不支持的芯片版本上甚至可以防止二进制文件在不支持的芯片版本上被执行。v4.4.5+、v5.0.1+、v5.1 及以上版本的 ESP-IDF 都支持针对芯片版本的 esptool 下载检查和引导加载器加载检查,但 ESP-IDF v4.3.5 只支持 esptool 下载检查。
更早的 ESP-IDF 版本没有此类检查,若与芯片版本不兼容,芯片运行软件时可能会出现不可预测的行为。

View File

@@ -1,6 +0,0 @@
# Contributing to ESP-IDF
Contributions to ESP-IDF - fixing bugs, adding features, adding documentation - are welcome! We accept contributions via Github Pull Requests.
Please see the [Contributions Guide](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/contribute/index.html) for more information.

59
CONTRIBUTING.rst Normal file
View File

@@ -0,0 +1,59 @@
Contributions Guide
===================
We welcome contributions to the esp-idf project!
How to Contribute
-----------------
Contributions to esp-idf - fixing bugs, adding features, adding documentation - are welcome. We accept contributions via `Github Pull Requests <https://help.github.com/articles/about-pull-requests/>`_.
Before Contributing
-------------------
Before sending us a Pull Request, please consider this list of points:
* Is the contribution entirely your own work, or already licensed under an Apache License 2.0 compatible Open Source License? If not then we unfortunately cannot accept it.
* Does any new code conform to the esp-idf :doc:`Style Guide <style-guide>`?
* Does the code documentation follow requirements in :doc:`documenting-code`?
* Is the code adequately commented for people to understand how it is structured?
* Is there documentation or examples that go with code contributions? There are additional suggestions for writing good examples in :idf:`examples` readme.
* Are comments and documentation written in clear English, with no spelling or grammar errors?
* Example contributions are also welcome. Please check the :doc:`creating-examples` guide for these.
* If the contribution contains multiple commits, are they grouped together into logical changes (one major change per pull request)? Are any commits with names like "fixed typo" `squashed into previous commits <http://eli.thegreenplace.net/2014/02/19/squashing-github-pull-requests-into-a-single-commit/>`_?
* If you're unsure about any of these points, please open the Pull Request anyhow and then ask us for feedback.
Pull Request Process
--------------------
After you open the Pull Request, there will probably be some discussion in the comments field of the request itself.
Once the Pull Request is ready to merge, it will first be merged into our internal git system for in-house automated testing.
If this process passes, it will be merged onto the public github repository.
Legal Part
----------
Before a contribution can be accepted, you will need to sign our :doc:`contributor-agreement`. You will be prompted for this automatically as part of the Pull Request process.
Related Documents
-----------------
.. toctree::
:maxdepth: 1
style-guide
documenting-code
add-ons-reference
creating-examples
../api-reference/template
contributor-agreement

420
Kconfig
View File

@@ -1,66 +1,16 @@
#
# Please run the following command for opening a page with more information about this configuration file:
# idf.py docs -sp api-reference/kconfig.html
# For a description of the syntax of this configuration file,
# see kconfig/kconfig-language.txt.
#
mainmenu "Espressif IoT Development Framework Configuration"
orsource "./components/soc/$IDF_TARGET/include/soc/Kconfig.soc_caps.in"
config IDF_CMAKE
bool
default "y"
option env="IDF_CMAKE"
config IDF_ENV_FPGA
# This option is for internal use only
bool
option env="IDF_ENV_FPGA"
help
- This option is for internal use only.
- Enabling this option will help enable all FPGA support so as to
run ESP-IDF on an FPGA. This can help reproduce some issues that
only happens on FPGA condition, or when you have to burn some
efuses multiple times.
config IDF_ENV_BRINGUP
bool
default "y" if IDF_TARGET_ESP32P4
help
- This option is ONLY used when doing new chip bringup.
- This option will only enable necessary hw / sw settings for running
a hello_world application.
config IDF_CI_BUILD
bool
default y if "$(IDF_CI_BUILD)" = "y" || "$(IDF_CI_BUILD)" = 1
config IDF_DOC_BUILD
bool
default y if "$(IDF_DOC_BUILD)" = "y" || "$(IDF_DOC_BUILD)" = 1
config IDF_TOOLCHAIN
# This option records the IDF target when sdkconfig is generated the first time.
# It is not updated if environment variable $IDF_TOOLCHAIN changes later, and
# the build system is responsible for detecting the mismatch between
# CONFIG_IDF_TOOLCHAIN and $IDF_TOOLCHAIN.
string
default "$IDF_TOOLCHAIN"
config IDF_TOOLCHAIN_CLANG
bool
default "y" if IDF_TOOLCHAIN="clang"
config IDF_TARGET_ARCH_RISCV
bool
default "n"
config IDF_TARGET_ARCH_XTENSA
bool
default "n"
config IDF_TARGET_ARCH
string
default "riscv" if IDF_TARGET_ARCH_RISCV
default "xtensa" if IDF_TARGET_ARCH_XTENSA
config IDF_TARGET
# This option records the IDF target when sdkconfig is generated the first time.
@@ -70,77 +20,71 @@ mainmenu "Espressif IoT Development Framework Configuration"
string
default "$IDF_TARGET"
config IDF_INIT_VERSION
# This option records the IDF version when sdkconfig is generated the first time.
# It is not updated if environment variable $IDF_VERSION changes later
string
default "$IDF_INIT_VERSION"
config IDF_TARGET_LINUX
bool
default "y" if IDF_TARGET="linux"
config IDF_TARGET_ESP32
bool
default "y" if IDF_TARGET="esp32"
select IDF_TARGET_ARCH_XTENSA
config IDF_TARGET_ESP32S2
config IDF_TARGET_ESP32S2BETA
bool
default "y" if IDF_TARGET="esp32s2"
default "y" if IDF_TARGET="esp32s2beta"
select FREERTOS_UNICORE
select IDF_TARGET_ARCH_XTENSA
config IDF_TARGET_ESP32S3
bool
default "y" if IDF_TARGET="esp32s3"
select IDF_TARGET_ARCH_XTENSA
config IDF_TARGET_ESP32C3
bool
default "y" if IDF_TARGET="esp32c3"
select FREERTOS_UNICORE
select IDF_TARGET_ARCH_RISCV
config IDF_TARGET_ESP32C2
bool
default "y" if IDF_TARGET="esp32c2"
select FREERTOS_UNICORE
select IDF_TARGET_ARCH_RISCV
config IDF_TARGET_ESP32C6
bool
default "y" if IDF_TARGET="esp32c6"
select FREERTOS_UNICORE
select IDF_TARGET_ARCH_RISCV
config IDF_TARGET_ESP32P4
bool
default "y" if IDF_TARGET="esp32p4"
select IDF_TARGET_ARCH_RISCV
config IDF_TARGET_ESP32H2
bool
default "y" if IDF_TARGET="esp32h2"
select FREERTOS_UNICORE
select IDF_TARGET_ARCH_RISCV
config IDF_TARGET_LINUX
bool
default "y" if IDF_TARGET="linux"
config IDF_FIRMWARE_CHIP_ID
hex
default 0x0000 if IDF_TARGET_ESP32
default 0x0002 if IDF_TARGET_ESP32S2
default 0x0005 if IDF_TARGET_ESP32C3
default 0x0009 if IDF_TARGET_ESP32S3
default 0x000C if IDF_TARGET_ESP32C2
default 0x000D if IDF_TARGET_ESP32C6
default 0x0010 if IDF_TARGET_ESP32H2
default 0x0012 if IDF_TARGET_ESP32P4
# note: S2 beta uses Chip ID 0 still, S2 will use 0x0002
default 0x0000 if IDF_TARGET_ESP32S2BETA
default 0xFFFF
menu "SDK tool configuration"
config SDK_TOOLPREFIX
string "Compiler toolchain path/prefix"
default "xtensa-esp32-elf-" if IDF_TARGET_ESP32
default "xtensa-esp32s2-elf-" if IDF_TARGET_ESP32S2BETA
help
The prefix/path that is used to call the toolchain. The default setting assumes
a crosstool-ng gcc setup that is in your PATH.
config SDK_PYTHON
string "Python interpreter"
depends on !IDF_CMAKE
default "python"
help
The executable name/path that is used to run python.
(Note: This option is used with the legacy GNU Make build system only.)
config SDK_MAKE_WARN_UNDEFINED_VARIABLES
bool "'make' warns on undefined variables"
depends on !IDF_CMAKE
default "y"
help
Adds --warn-undefined-variables to MAKEFLAGS. This causes make to
print a warning any time an undefined variable is referenced.
This option helps find places where a variable reference is misspelled
or otherwise missing, but it can be unwanted if you have Makefiles which
depend on undefined variables expanding to an empty string.
(Note: this option is used with the legacy GNU Make build system only.)
config SDK_TOOLCHAIN_SUPPORTS_TIME_WIDE_64_BITS
bool "Toolchain supports time_t wide 64-bits"
default n
help
Enable this option in case you have a custom toolchain which supports time_t wide 64-bits.
This option checks time_t is 64-bits and disables ROM time functions
to use the time functions from the toolchain instead.
This option allows resolving the Y2K38 problem.
See "Setup Linux Toolchain from Scratch" to build
a custom toolchain which supports 64-bits time_t.
Note: ESP-IDF does not currently come with any pre-compiled toolchain
that supports 64-bit wide time_t.
This will change in a future major release,
but currently 64-bit time_t requires a custom built toolchain.
endmenu # SDK tool configuration
menu "Build type"
@@ -151,21 +95,19 @@ mainmenu "Espressif IoT Development Framework Configuration"
Select the way the application is built.
By default, the application is built as a binary file in a format compatible with
the ESP-IDF bootloader. In addition to this application, 2nd stage bootloader is
the ESP32 bootloader. In addition to this application, 2nd stage bootloader is
also built. Application and bootloader binaries can be written into flash and
loaded/executed from there.
Another option, useful for only very small and limited applications, is to only link
the .elf file of the application, such that it can be loaded directly into RAM over
JTAG or UART. Note that since IRAM and DRAM sizes are very limited, it is not possible
to build any complex application this way. However for some kinds of testing and debugging,
JTAG. Note that since IRAM and DRAM sizes are very limited, it is not possible to
build any complex application this way. However for kinds of testing and debugging,
this option may provide faster iterations, since the application does not need to be
written into flash.
Note: when APP_BUILD_TYPE_RAM is selected and loaded with JTAG, ESP-IDF does not contain
all the startup code required to initialize the CPUs and ROM memory (data/bss).
Therefore it is necessary to execute a bit of ROM code prior to executing the application.
A gdbinit file may look as follows (for ESP32):
Note that at the moment, ESP-IDF does not contain all the startup code required to
initialize the CPUs and ROM memory (data/bss). Therefore it is necessary to execute
a bit of ROM code prior to executing the application. A gdbinit file may look as follows:
# Connect to a running instance of OpenOCD
target remote :3333
@@ -185,40 +127,28 @@ mainmenu "Espressif IoT Development Framework Configuration"
xtensa-esp32-elf-gdb build/app-name.elf -x gdbinit
Example gdbinit files for other targets can be found in tools/test_apps/system/gdb_loadable_elf/
When loading the BIN with UART, the ROM will jump to ram and run the app after finishing the ROM
startup code, so there's no additional startup initialization required. You can use the
`load_ram` in esptool.py to load the generated .bin file into ram and execute.
Example:
esptool.py --chip {chip} -p {port} -b {baud} --no-stub load_ram {app.bin}
Recommended sdkconfig.defaults for building loadable ELF files is as follows.
CONFIG_APP_BUILD_TYPE_RAM is required, other options help reduce application
CONFIG_APP_BUILD_TYPE_ELF_RAM is required, other options help reduce application
memory footprint.
CONFIG_APP_BUILD_TYPE_RAM=y
CONFIG_APP_BUILD_TYPE_ELF_RAM=y
CONFIG_VFS_SUPPORT_TERMIOS=
CONFIG_NEWLIB_NANO_FORMAT=y
CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=y
CONFIG_ESP_DEBUG_STUBS_ENABLE=
CONFIG_ESP32_PANIC_PRINT_HALT=y
CONFIG_ESP32_DEBUG_STUBS_ENABLE=
CONFIG_ESP_ERR_TO_NAME_LOOKUP=
config APP_BUILD_TYPE_APP_2NDBOOT
bool
prompt "Default (binary application + 2nd stage bootloader)"
depends on !IDF_TARGET_LINUX
select APP_BUILD_GENERATE_BINARIES
select APP_BUILD_BOOTLOADER
select APP_BUILD_USE_FLASH_SECTIONS
config APP_BUILD_TYPE_RAM
config APP_BUILD_TYPE_ELF_RAM
bool
prompt "Build app runs entirely in RAM (EXPERIMENTAL)"
select APP_BUILD_GENERATE_BINARIES
prompt "ELF file, loadable into RAM (EXPERIMENTAL))"
endchoice # APP_BUILD_TYPE
# Hidden options, set according to the choice above
@@ -228,76 +158,9 @@ mainmenu "Espressif IoT Development Framework Configuration"
config APP_BUILD_BOOTLOADER
bool # Whether to build the bootloader
config APP_BUILD_TYPE_PURE_RAM_APP
bool
prompt "Build app without SPI_FLASH/PSRAM support (saves ram)"
depends on APP_BUILD_TYPE_RAM
help
If this option is enabled, external memory and related peripherals, such as Cache, MMU,
Flash and PSRAM, won't be initialized. Corresponding drivers won't be introduced either.
Components that depend on the spi_flash component will also be unavailable, such as
app_update, etc. When this option is enabled, about 26KB of RAM space can be saved.
config APP_BUILD_USE_FLASH_SECTIONS
bool # Whether to place code/data into memory-mapped flash sections
config APP_REPRODUCIBLE_BUILD
bool "Enable reproducible build"
default n
select COMPILER_HIDE_PATHS_MACROS
help
If enabled, all date, time, and path information would be eliminated. A .gdbinit file would be create
automatically. (or will be append if you have one already)
config APP_NO_BLOBS
bool "No Binary Blobs"
default n
help
If enabled, this disables the linking of binary libraries in the application build. Note
that after enabling this Wi-Fi/Bluetooth will not work.
config APP_COMPATIBLE_PRE_V2_1_BOOTLOADERS
bool "App compatible with bootloaders before ESP-IDF v2.1"
select APP_COMPATIBLE_PRE_V3_1_BOOTLOADERS
depends on IDF_TARGET_ESP32
default n
help
Bootloaders before ESP-IDF v2.1 did less initialisation of the
system clock. This setting needs to be enabled to build an app
which can be booted by these older bootloaders.
If this setting is enabled, the app can be booted by any bootloader
from IDF v1.0 up to the current version.
If this setting is disabled, the app can only be booted by bootloaders
from IDF v2.1 or newer.
Enabling this setting adds approximately 1KB to the app's IRAM usage.
config APP_COMPATIBLE_PRE_V3_1_BOOTLOADERS
bool "App compatible with bootloader and partition table before ESP-IDF v3.1"
depends on IDF_TARGET_ESP32
default n
help
Partition tables before ESP-IDF V3.1 do not contain an MD5 checksum
field, and the bootloader before ESP-IDF v3.1 cannot read a partition
table that contains an MD5 checksum field.
Enable this option only if your app needs to boot on a bootloader and/or
partition table that was generated from a version *before* ESP-IDF v3.1.
If this option and Flash Encryption are enabled at the same time, and any
data partitions in the partition table are marked Encrypted, then the
partition encrypted flag should be manually verified in the app before accessing
the partition (see CVE-2021-27926).
config APP_INIT_CLK
bool
depends on IDF_TARGET_ESP32
default y if APP_COMPATIBLE_PRE_V2_1_BOOTLOADERS
default y if APP_BUILD_TYPE_RAM
endmenu # Build type
source "$COMPONENT_KCONFIGS_PROJBUILD_SOURCE_FILE"
@@ -306,11 +169,11 @@ mainmenu "Espressif IoT Development Framework Configuration"
choice COMPILER_OPTIMIZATION
prompt "Optimization Level"
default COMPILER_OPTIMIZATION_DEBUG
default COMPILER_OPTIMIZATION_DEFAULT
help
This option sets compiler optimization level (gcc -O argument) for the app.
- The "Debug" setting will add the -0g flag to CFLAGS.
- The "Default" setting will add the -0g flag to CFLAGS.
- The "Size" setting will add the -0s flag to CFLAGS.
- The "Performance" setting will add the -O2 flag to CFLAGS.
- The "None" setting will add the -O0 flag to CFLAGS.
@@ -329,7 +192,7 @@ mainmenu "Espressif IoT Development Framework Configuration"
Compiler optimization for the IDF bootloader is set separately,
see the BOOTLOADER_COMPILER_OPTIMIZATION setting.
config COMPILER_OPTIMIZATION_DEBUG
config COMPILER_OPTIMIZATION_DEFAULT
bool "Debug (-Og)"
config COMPILER_OPTIMIZATION_SIZE
bool "Optimize for size (-Os)"
@@ -375,57 +238,6 @@ mainmenu "Espressif IoT Development Framework Configuration"
endchoice # assertions
choice COMPILER_FLOAT_LIB_FROM
prompt "Compiler float lib source"
default COMPILER_FLOAT_LIB_FROM_RVFPLIB if ESP_ROM_HAS_RVFPLIB
default COMPILER_FLOAT_LIB_FROM_GCCLIB
help
In the soft-fp part of libgcc, riscv version is written in C,
and handles all edge cases in IEEE754, which makes it larger
and performance is slow.
RVfplib is an optimized RISC-V library for FP arithmetic on 32-bit
integer processors, for single and double-precision FP.
RVfplib is "fast", but it has a few exceptions from IEEE 754 compliance.
config COMPILER_FLOAT_LIB_FROM_GCCLIB
bool "libgcc"
config COMPILER_FLOAT_LIB_FROM_RVFPLIB
depends on ESP_ROM_HAS_RVFPLIB
bool "librvfp"
endchoice # COMPILER_FLOAT_LIB_FROM
config COMPILER_OPTIMIZATION_ASSERTION_LEVEL
int
default 0 if COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE
default 1 if COMPILER_OPTIMIZATION_ASSERTIONS_SILENT
default 2 if COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE
config COMPILER_OPTIMIZATION_CHECKS_SILENT
bool "Disable messages in ESP_RETURN_ON_* and ESP_EXIT_ON_* macros"
default n
help
If enabled, the error messages will be discarded in following check macros:
- ESP_RETURN_ON_ERROR
- ESP_EXIT_ON_ERROR
- ESP_RETURN_ON_FALSE
- ESP_EXIT_ON_FALSE
menuconfig COMPILER_HIDE_PATHS_MACROS
bool "Replace ESP-IDF and project paths in binaries"
default y
help
When expanding the __FILE__ and __BASE_FILE__ macros, replace paths inside ESP-IDF
with paths relative to the placeholder string "IDF", and convert paths inside the
project directory to relative paths.
This allows building the project with assertions or other code that embeds file paths,
without the binary containing the exact path to the IDF or project directories.
This option passes -fmacro-prefix-map options to the GCC command line. To replace additional
paths in your binaries, modify the project CMakeLists.txt file to pass custom -fmacro-prefix-map or
-ffile-prefix-map arguments.
menuconfig COMPILER_CXX_EXCEPTIONS
bool "Enable C++ exceptions"
default n
@@ -478,7 +290,6 @@ mainmenu "Espressif IoT Development Framework Configuration"
- coverage: NORMAL < STRONG < OVERALL
The performance impact includes increasing the amount of stack memory required for each task.
config COMPILER_STACK_CHECK_MODE_NONE
bool "None"
@@ -510,65 +321,13 @@ mainmenu "Espressif IoT Development Framework Configuration"
For C++, this warns about the deprecated conversion from string
literals to ``char *``.
config COMPILER_SAVE_RESTORE_LIBCALLS
bool "Enable -msave-restore flag to reduce code size"
depends on IDF_TARGET_ARCH_RISCV
help
Adds -msave-restore to C/C++ compilation flags.
When this flag is enabled, compiler will call library functions to
save/restore registers in function prologues/epilogues. This results
in lower overall code size, at the expense of slightly reduced performance.
This option can be enabled for RISC-V targets only.
config COMPILER_DISABLE_GCC12_WARNINGS
bool "Disable new warnings introduced in GCC 12"
config COMPILER_DISABLE_GCC8_WARNINGS
bool "Disable new warnings introduced in GCC 6 - 8"
default "n"
help
Enable this option if use GCC 12 or newer, and want to disable warnings which don't appear with
GCC 11.
Enable this option if using GCC 6 or newer, and wanting to disable warnings which don't appear with
GCC 5.
config COMPILER_DISABLE_GCC13_WARNINGS
bool "Disable new warnings introduced in GCC 13"
default "n"
help
Enable this option if use GCC 13 or newer, and want to disable warnings which don't appear with
GCC 12.
config COMPILER_DUMP_RTL_FILES
bool "Dump RTL files during compilation"
help
If enabled, RTL files will be produced during compilation. These files
can be used by other tools, for example to calculate call graphs.
choice COMPILER_RT_LIB
prompt "Compiler runtime library"
default COMPILER_RT_LIB_CLANGRT if IDF_TOOLCHAIN_CLANG
default COMPILER_RT_LIB_HOST if IDF_TARGET_LINUX
default COMPILER_RT_LIB_GCCLIB
help
Select runtime library to be used by compiler.
- GCC toolchain supports libgcc only.
- Clang allows to choose between libgcc or libclang_rt.
- For host builds ("linux" target), uses the default library.
config COMPILER_RT_LIB_GCCLIB
depends on !IDF_TARGET_LINUX
bool "libgcc"
config COMPILER_RT_LIB_CLANGRT
depends on IDF_TOOLCHAIN_CLANG && !IDF_TARGET_LINUX
bool "libclang_rt"
config COMPILER_RT_LIB_HOST
depends on IDF_TARGET_LINUX
bool "Host"
endchoice
config COMPILER_RT_LIB_NAME
string
default "clang_rt.builtins" if COMPILER_RT_LIB_CLANGRT
default "gcc" if COMPILER_RT_LIB_GCCLIB
default "" if COMPILER_RT_LIB_HOST
endmenu # Compiler Options
@@ -576,18 +335,21 @@ mainmenu "Espressif IoT Development Framework Configuration"
source "$COMPONENT_KCONFIGS_SOURCE_FILE"
endmenu
config IDF_EXPERIMENTAL_FEATURES
bool "Make experimental features visible"
default "n"
help
By enabling this option, ESP-IDF experimental feature options will be visible.
menu "Compatibility options"
config LEGACY_INCLUDE_COMMON_HEADERS
bool "Include headers across components as before IDF v4.0"
default n
help
Soc, esp32, and driver components, the most common
components. Some header of these components are included
implicitly by headers of other components before IDF v4.0.
It's not required for high-level components, but still
included through long header chain everywhere.
Note you should still enable a certain experimental feature option to use it, and you
should read the corresponding risk warning and known issue list carefully.
This is harmful to the modularity. So it's changed in IDF
v4.0.
Current experimental feature list:
You can still include these headers in a legacy way until it
is totally deprecated by enable this option.
- CONFIG_ESPTOOLPY_FLASHFREQ_120M && CONFIG_ESPTOOLPY_FLASH_SAMPLE_MODE_DTR
- CONFIG_SPIRAM_SPEED_120M && CONFIG_SPIRAM_MODE_OCT
- CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_QUAD_FLASH
- CONFIG_MBEDTLS_USE_CRYPTO_ROM_IMPL
endmenu #Compatibility options

View File

@@ -2,50 +2,24 @@
* [中文版](./README_CN.md)
ESP-IDF is the development framework for Espressif SoCs supported on Windows, Linux and macOS.
# ESP-IDF Release Support Schedule
![Support Schedule](https://dl.espressif.com/dl/esp-idf/support-periods.svg?v=1)
- Please read [the support policy](SUPPORT_POLICY.md) and [the documentation](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/versions.html) for more information about ESP-IDF versions.
- Please see the [End-of-Life Advisories](https://www.espressif.com/en/support/documents/advisories?keys=&field_type_of_advisory_tid%5B%5D=817) for information about ESP-IDF releases with discontinued support.
# ESP-IDF Release and SoC Compatibility
The following table shows ESP-IDF support of Espressif SoCs where ![alt text][preview] and ![alt text][supported] denote preview status and support, respectively. The preview support is usually limited in time and intended for beta versions of chips. Please use an ESP-IDF release where the desired SoC is already supported.
|Chip | v4.3 | v4.4 | v5.0 | v5.1 | v5.2 | |
|:----------- | :---------------------:| :---------------------:| :---------------------:| :--------------------: | :--------------------: | :----------------------------------------------------------|
|ESP32 | ![alt text][supported] | ![alt text][supported] | ![alt text][supported] | ![alt text][supported] | ![alt text][supported] | |
|ESP32-S2 | ![alt text][supported] | ![alt text][supported] | ![alt text][supported] | ![alt text][supported] | ![alt text][supported] | |
|ESP32-C3 | ![alt text][supported] | ![alt text][supported] | ![alt text][supported] | ![alt text][supported] | ![alt text][supported] | |
|ESP32-S3 | | ![alt text][supported] | ![alt text][supported] | ![alt text][supported] | ![alt text][supported] | [Announcement](https://www.espressif.com/en/news/ESP32_S3) |
|ESP32-C2 | | | ![alt text][supported] | ![alt text][supported] | ![alt text][supported] | [Announcement](https://www.espressif.com/en/news/ESP32-C2) |
|ESP32-C6 | | | | ![alt text][supported] | ![alt text][supported] | [Announcement](https://www.espressif.com/en/news/ESP32_C6) |
|ESP32-H2 | | | | ![alt text][supported] | ![alt text][supported] | [Announcement](https://www.espressif.com/en/news/ESP32_H2) |
|ESP32-P4 | | | | | ![alt text][preview] | [Announcement](https://www.espressif.com/en/news/ESP32-P4) |
[supported]: https://img.shields.io/badge/-supported-green "supported"
[preview]: https://img.shields.io/badge/-preview-orange "preview"
There are variants of revisions for a series of chips. See [Compatibility Between ESP-IDF Releases and Revisions of Espressif SoCs](https://github.com/espressif/esp-idf/blob/master/COMPATIBILITY.md) for the details of the compatibility between ESP-IDF and chip revisions.
Espressif SoCs released before 2016 (ESP8266 and ESP8285) are supported by [RTOS SDK](https://github.com/espressif/ESP8266_RTOS_SDK) instead.
ESP-IDF is the official development framework for the [ESP32](https://espressif.com/en/products/hardware/esp32/overview) chip provided for Windows, Linux and macOS.
# Developing With ESP-IDF
## Setting Up ESP-IDF
See https://idf.espressif.com/ for links to detailed instructions on how to set up the ESP-IDF depending on chip you use.
See setup guides for detailed instructions to set up the ESP-IDF:
**Note:** Each SoC series and each ESP-IDF release has its own documentation. Please see Section [Versions](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/versions.html) on how to find documentation and how to checkout specific release of ESP-IDF.
* [Getting Started Guide for the stable ESP-IDF version](https://docs.espressif.com/projects/esp-idf/en/stable/get-started/)
* [Getting Started Guide for the latest (master branch) ESP-IDF version](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/)
### Non-GitHub forks
ESP-IDF uses relative locations as its submodules URLs ([.gitmodules](.gitmodules)). So they link to GitHub. If ESP-IDF is forked to a Git repository which is not on GitHub, you will need to run the script [tools/set-submodules-to-github.sh](tools/set-submodules-to-github.sh) after git clone.
The script sets absolute URLs for all submodules, allowing `git submodule update --init --recursive` to complete. If cloning ESP-IDF from GitHub, this step is not needed.
ESP-IDF uses relative locations as its submodules URLs ([.gitmodules](.gitmodules)). So they link to GitHub.
If ESP-IDF is forked to a Git repository which is not on GitHub, you will need to run the script
[tools/set-submodules-to-github.sh](tools/set-submodules-to-github.sh) after git clone.
The script sets absolute URLs for all submodules, allowing `git submodule update --init --recursive` to complete.
If cloning ESP-IDF from GitHub, this step is not needed.
## Finding a Project
@@ -64,13 +38,12 @@ See the Getting Started guide links above for a detailed setup guide. This is a
(See the Getting Started guide listed above for a full list of required steps with more details.)
* Install host build dependencies mentioned in the Getting Started guide.
* Run the install script to set up the build environment. The options include `install.bat` or `install.ps1` for Windows, and `install.sh` or `install.fish` for Unix shells.
* Run the install script to set up the build environment. The options include `install.bat` or `install.ps1` for Windows, and `install.sh` for Unix shells.
* Run the export script on Windows (`export.bat`) or source it on Unix (`source export.sh`) in every shell environment before using ESP-IDF.
## Configuring the Project
* `idf.py set-target <chip_name>` sets the target of the project to `<chip_name>`. Run `idf.py set-target` without any arguments to see a list of supported targets.
* `idf.py menuconfig` opens a text-based configuration menu where you can configure the project.
`idf.py menuconfig` opens a text-based configuration menu where you can configure the project.
## Compiling the Project
@@ -92,7 +65,7 @@ You don't need to run `idf.py build` before running `idf.py flash`, `idf.py flas
## Viewing Serial Output
The `idf.py monitor` target uses the [esp-idf-monitor tool](https://github.com/espressif/esp-idf-monitor) to display serial output from Espressif SoCs. esp-idf-monitor also has a range of features to decode crash output and interact with the device. [Check the documentation page for details](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/idf-monitor.html).
The `idf.py monitor` target uses the [idf_monitor tool](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/idf-monitor.html) to display serial output from the ESP32. idf_monitor also has a range of features to decode crash output and interact with the device. [Check the documentation page for details](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/idf-monitor.html).
Exit the monitor by typing Ctrl-].
@@ -113,18 +86,18 @@ After the initial flash, you may just want to build and flash just your app, not
## Erasing Flash
The `idf.py flash` target does not erase the entire flash contents. However it is sometimes useful to set the device back to a totally erased state, particularly when making partition table changes or OTA app updates. To erase the entire flash, run `idf.py erase-flash`.
The `idf.py flash` target does not erase the entire flash contents. However it is sometimes useful to set the device back to a totally erased state, particularly when making partition table changes or OTA app updates. To erase the entire flash, run `idf.py erase_flash`.
This can be combined with other targets, ie `idf.py -p PORT erase-flash flash` will erase everything and then re-flash the new app, bootloader and partition table.
This can be combined with other targets, ie `idf.py -p PORT erase_flash flash` will erase everything and then re-flash the new app, bootloader and partition table.
# Resources
* Documentation for the latest version: https://docs.espressif.com/projects/esp-idf/. This documentation is built from the [docs directory](docs) of this repository.
* [Beginner's Guide to Key Concepts and Resources of ESP-IDF](https://youtu.be/J8zc8mMNKtc?feature=shared)
* The [esp32.com forum](https://esp32.com/) is a place to ask questions and find community resources.
* [Check the Issues section on github](https://github.com/espressif/esp-idf/issues) if you find a bug or have a feature request. Please check existing Issues before opening a new one.
* If you're interested in contributing to ESP-IDF, please check the [Contributions Guide](https://docs.espressif.com/projects/esp-idf/en/latest/contribute/index.html).

View File

@@ -2,50 +2,24 @@
* [English Version](./README.md)
ESP-IDF 是乐鑫官方推出的物联网开发框架,支持 Windows、Linux 和 macOS 操作系统。
[![Documentation Status](https://readthedocs.com/projects/espressif-esp-idf/badge/?version=latest)](https://docs.espressif.com/projects/esp-idf/zh_CN/latest/?badge=latest)
# ESP-IDF 版本支持期限
![支持期限](https://dl.espressif.com/dl/esp-idf/support-periods.svg?v=1)
- 请参考 [ESP-IDF 支持政策](SUPPORT_POLICY_CN.md) 以及 [相关文档](https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/versions.html) 了解更多关于 ESP-IDF 版本的信息。
- 请参考 [ESP-IDF 版本停止维护 (EOL) 公告](https://www.espressif.com/zh-hans/support/documents/advisories?keys=&field_type_of_advisory_tid%5B%5D=817)。
# ESP-IDF 与乐鑫芯片
下表总结了乐鑫芯片在 ESP-IDF 各版本中的支持状态,其中 ![alt text][supported] 代表已支持,![alt text][preview] 代表目前处于预览支持状态。预览支持状态通常有时间限制,而且仅适用于测试版芯片。请确保使用与芯片相匹配的 ESP-IDF 版本。
|芯片 | v4.3 | v4.4 | v5.0 | v5.1 | v5.2 | |
|:----------- | :---------------------:| :---------------------:| :---------------------:| :--------------------: | :--------------------: | :-------------------------------------------------------------- |
|ESP32 | ![alt text][supported] | ![alt text][supported] | ![alt text][supported] | ![alt text][supported] | ![alt text][supported] | |
|ESP32-S2 | ![alt text][supported] | ![alt text][supported] | ![alt text][supported] | ![alt text][supported] | ![alt text][supported] | |
|ESP32-C3 | ![alt text][supported] | ![alt text][supported] | ![alt text][supported] | ![alt text][supported] | ![alt text][supported] | |
|ESP32-S3 | | ![alt text][supported] | ![alt text][supported] | ![alt text][supported] | ![alt text][supported] | [芯片发布公告](https://www.espressif.com/zh-hans/news/ESP32_S3) |
|ESP32-C2 | | | ![alt text][supported] | ![alt text][supported] | ![alt text][supported] | [芯片发布公告](https://www.espressif.com/zh-hans/news/ESP32-C2) |
|ESP32-C6 | | | | ![alt text][supported] | ![alt text][supported] | [芯片发布公告](https://www.espressif.com/zh-hans/news/ESP32_C6) |
|ESP32-H2 | | | | ![alt text][supported] | ![alt text][supported] | [芯片发布公告](https://www.espressif.com/zh-hans/news/ESP32_H2) |
|ESP32-P4 | | | | | ![alt text][preview] | [芯片发布公告](https://www.espressif.com/en/news/ESP32-P4) |
[supported]: https://img.shields.io/badge/-%E6%94%AF%E6%8C%81-green "supported"
[preview]: https://img.shields.io/badge/-%E9%A2%84%E8%A7%88-orange "preview"
每款乐鑫芯片都可能有不同版本。建议参考 [ESP-IDF 版本与乐鑫芯片版本兼容性](https://github.com/espressif/esp-idf/blob/master/COMPATIBILITY_CN.md),了解 ESP-IDF 版本与各芯片版本之间的兼容性。
对于 2016 年之前发布的乐鑫芯片(包括 ESP8266 和 ESP8285请参考 [RTOS SDK](https://github.com/espressif/ESP8266_RTOS_SDK)。
ESP-IDF 是由乐鑫官方推出的针对 [ESP32](https://espressif.com/en/products/hardware/esp32/overview) 系列芯片的开发框架。
# 使用 ESP-IDF 进行开发
## 搭建 ESP-IDF 开发环境
关于不同芯片如何搭建 ESP-IDF 的开发环境,请参考 https://idf.espressif.com/ 。
请参阅如下指南搭建 ESP-IDF 的开发环境
**注意:** 不同系列芯片和不同 ESP-IDF 版本都有其对应的文档。请参阅[版本](https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/versions.html)部分,获得关于如何查找文档以及如何检出 ESP-IDF 的特定发行版的详细信息。
* [ESP-IDF 稳定版本的入门指南](https://docs.espressif.com/projects/esp-idf/en/stable/get-started/)
* [ESP-IDF 开发版本master 分支)的入门指南](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/)
### 非 GitHub 分叉的 ESP-IDF 项目
ESP-IDF 中的子模块采用相对路径([详见 .gitmodules 文件](.gitmodules)),所以它们会指向 GitHub。 如果 ESP-IDF 被分叉到的仓库不在 GitHub 上,那么你需要在克隆结束后运行该脚本 [tools/set-submodules-to-github.sh](tools/set-submodules-to-github.sh)。
这个脚本会为所有的子模块设置绝对路径,接着可以通过 `git submodule update --init --recursive` 完成子模块的更新。如果 ESP-IDF 是从 GitHub 上克隆得到,则不需要此步骤。
ESP-IDF 中的子模块采用相对路径([详见 .gitmodules 文件](.gitmodules)),所以它们会指向 GitHub。
如果 ESP-IDF 被分叉到的仓库不在 GitHub 上,那么你需要在克隆结束后运行该[脚本](tools/set-submodules-to-github.sh)。它会为所有的子模块设置绝对路径,接着可以通过 `git submodule update --init --recursive` 完成子模块的更新。
如果 ESP-IDF 是从 GitHub 上克隆得到,则不需要此步骤。
## 寻找项目
@@ -61,16 +35,24 @@ ESP-IDF 中的子模块采用相对路径([详见 .gitmodules 文件](.gitmodu
## 设置构建环境
请参考入门指南中列出的详细步骤。
请参考入门指南中列出的详细步骤。
* 在主机中安装入门指南中提到的构建所依赖的工具。
* 运行安装脚本来设置构建环境。可为 Windows shell 选择 `install.bat``install.ps1`,为 Unix shell 选择 `install.sh``install.fish`
* 在使用 ESP-IDF 之前,需要在 shell 中运行导出脚本。Windows 下可运行 `export.bat`Unix 下可运行 `source export.sh`
* 将 ESP-IDF 中的 `tools/` 目录加入 PATH 环境变量中
* 运行 `python -m pip install -r requirements.txt` 安装 Python 依赖库
## 配置项目
* `idf.py set-target <chip_name>` 可将项目的目标芯片设置为 `<chip_name>`。运行 `idf.py set-target`,不用带任何参数,可查看所有支持的目标芯片列表。
* `idf.py menuconfig` 可打开一个基于文本的配置菜单,可以用来对项目进行配置。
`idf.py menuconfig`
* 打开项目的文本配置菜单。
* 使用上下键浏览菜单。
* 使用回车键进入子菜单,退出键返回上一级菜单或者退出配置。
* 输入 `?` 查看帮助界面,按下回车键可以退出帮助界面。
* 使用空格键或者 `Y``N` 按键来启用和禁用带复选框“`[*]`”的配置项。
* 高亮某个配置项的同时按下 `?` 键可以显示该选项的帮助文档。
* 输入 `/` 可以搜索指定的配置项。
一旦配置完成,请按下退出键多次以退出配置界面,当提示是否保存新的的配置时,选择 “Yes”。
## 编译项目
@@ -80,23 +62,23 @@ ESP-IDF 中的子模块采用相对路径([详见 .gitmodules 文件](.gitmodu
## 烧写项目
当构建结束,终端会打印出一条命令行,告知如何使用 esptool.py 工具烧写项目到芯片中。但你也可以运行下面这条命令来自动烧写:
当构建结束,终端会打印出一条命令行,告知如何使用 esptool.py 工具烧写项目到芯片中。但是你还可以运行下面这条命令来自动烧写:
`idf.py -p PORT flash`
将其中的 PORT 替换为系统中实际串口的名字(比如 Windows 下的 `COM3`Linux 下的 `/dev/ttyUSB0`,或者 macOS 下的 `/dev/cu.usbserial-X`。如果省略 `-p` 选项,`idf.py flash` 会尝试使用第一个可用的串口进行烧写。
将其中的 PORT 替换为系统中实际串口的名字(比如 Windows 下的 `COM3`Linux 下的 `/dev/ttyUSB0`,或者 MacOS 下的 `/dev/cu.usbserial-X`。如果省略 `-p` 选项,`idf.py flash` 会尝试使用第一个可用的串口进行烧写。
这会烧写整个项目(包括应用程序,引导程序和分区表)到芯片中,此外还可以使用 `idf.py menuconfig` 来调整串口烧写相关的配置。
不必先运行 `idf.py build` 再运行 `idf.py flash``idf.py flash` 会根据需要自动重新构建项目。
你也不必先运行 `idf.py build`再运行 `idf.py flash``idf.py flash` 会根据需要自动重新构建项目。
## 观察串口输入
`idf.py monitor` 会调用 [esp-idf-monitor 工具](https://github.com/espressif/esp-idf-monitor)来显示乐鑫芯片的串口输出。esp-idf-monitor 还包含一系列的功能来解析程序崩溃后的输出结果并与设备进行交互。更多详细内容,请参阅[文档](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/idf-monitor.html).
`idf.py monitor` 会调用 [idf_monitor 工具](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/idf-monitor.html)来显示 ESP32 的串口输出。`idf_monitor` 还包含一系列的功能来解析程序崩溃后的输出结果并与设备进行交互。更多详细内容,请参阅[文档](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/idf-monitor.html).
输入 `Ctrl-]` 可退出监视器。
想要一次性执行构建烧写和监视,可以运行如下命令:
想要一次性执行构建烧写和监视,可以运行如下命令:
`idf.py flash monitor`
@@ -107,24 +89,24 @@ ESP-IDF 中的子模块采用相对路径([详见 .gitmodules 文件](.gitmodu
* `idf.py app` - 仅构建应用程序。
* `idf.py app-flash` - 仅烧写应用程序。
`idf.py app-flash` 会自动判断是否有源文件发生了改变后重新构建应用程序。
`idf.py app-flash` 会自动判断是否有源文件发生了改变后重新构建应用程序。
(在正常的开发中,即使引导程序和分区表没有发生变化,每次都重新烧写它们并不会带来什么危害。)
## 擦除 Flash
`idf.py flash` 并不会擦除 flash 上所有的内容,但是有时候我们需要设备恢复到完全擦除的状态,尤其是分区表发生了变化或者 OTA 应用升级。要擦除整块 flash 请运行 `idf.py erase-flash`
`idf.py flash` 并不会擦除 Flash 上所有的内容,但是有时候我们需要设备恢复到完全擦除的状态,尤其是分区表发生了变化或者 OTA 应用升级。要擦除整块 Flash 请运行 `idf.py erase_flash`
这条命令还可以和其余命令整合在一起,`idf.py -p PORT erase-flash flash` 会擦除一切然后重新烧写新的应用程序引导程序和分区表。
这条命令还可以和其余命令整合在一起,`idf.py -p PORT erase_flash flash` 会擦除一切然后重新烧写新的应用程序引导程序和分区表。
# 其它参考资源
* 最新版的文档https://docs.espressif.com/projects/esp-idf/ ,该文档是由本仓库 [docs 目录](docs) 构建得到。
* [初学者指南:主要概念和资源](https://www.bilibili.com/video/BV1114y1r7du/)
* 可以前往 [esp32.com 论坛](https://esp32.com/) 提问,挖掘社区资源。
* 如果你在使用中发现了错误或者需要新的功能,请先[查看 GitHub Issues](https://github.com/espressif/esp-idf/issues),确保该问题没有重复提交。
* 如果你在使用中发现了错误或者需要新的功能,请先[查看 GitHub Issues](https://github.com/espressif/esp-idf/issues),确保该问题不会被重复提交。
* 如果你有兴趣为 ESP-IDF 作贡献,请先阅读[贡献指南](https://docs.espressif.com/projects/esp-idf/en/latest/contribute/index.html)。

View File

@@ -1,9 +0,0 @@
# Security Policy
## Supported Versions
Please refer to https://docs.espressif.com/projects/esp-idf/en/latest/esp32/versions.html#support-periods for more details on ESP-IDF supported versions and support period policy.
## Reporting a Vulnerability
Please refer to [Espressif Security Incident Response Process](https://www.espressif.com/sites/default/files/Espressif%20Security%20Incident%20Response%20Process%20v1.0_EN.pdf) on the guidelines to report a security vulnerability. Please do **NOT** create a public GitHub issue.

View File

@@ -5,54 +5,64 @@ Support Period Policy
* [中文版](./SUPPORT_POLICY_CN.md)
Each ESP-IDF major and minor release (V4.1, V4.2, etc) is supported for 30 months after the initial stable release date.
Each ESP-IDF major and minor release (V4.0, V4.1, etc) is supported for
18 months after the initial stable release date.
Supported means that the ESP-IDF team will continue to apply bug fixes, security fixes, etc to the release branch on GitHub, and periodically make new bugfix releases as needed.
Supported means that the ESP-IDF team will continue to apply bug fixes,
security fixes, etc to the release branch on GitHub, and periodically
make new bugfix releases as needed.
Support period is divided into "Service" and "Maintenance" period:
Users are encouraged to upgrade to a newer ESP-IDF release before the
support period finishes and the release becomes End of Life (EOL). It is
our policy to not continue fixing bugs in End of Life releases.
| Period | Duration | Recommended for new projects? |
| ------- | ------------ | ------------------------------------- |
| Service | 12 months | Yes |
| Maintenance | 18 months | No |
Pre-release versions (betas, previews, `-rc` and `-dev` versions, etc)
are not covered by any support period. Sometimes a particular feature is
marked as \"Preview\" in a release, which means it is also not covered
by the support period.
During the Service period, bugfixes releases are more frequent. In some cases, support for new features may be added during the Service period (this is reserved for features which are needed to meet particular regulatory requirements or standards for new products, and which carry a very low risk of introducing regressions.)
The ESP-IDF Programming Guide has information about the
[different versions of ESP-IDF](https://docs.espressif.com/projects/esp-idf/en/latest/versions.html)
(major, minor, bugfix, etc).
During the Maintenance period, the version is still supported but only bugfixes for high severity issues or security issues will be applied.
Long Term Support releases
--------------------------
Using an “In Service” version is recommended when starting a new project.
Some releases (starting with ESP-IDF V3.3) are designated Long Term
Support (LTS). LTS releases are supported for 30 months (2.5 years)
after the initial stable release date.
Users are encouraged to upgrade all projects to a newer ESP-IDF release before the support period finishes and the release becomes End of Life (EOL). It is our policy to not continue fixing bugs in End of Life releases.
Pre-release versions (betas, previews, `-rc` and `-dev` versions, etc) are not covered by any support period. Sometimes a particular feature is marked as "Preview" in a release, which means it is also not covered by the support period.
ESP-IDF should be used in an up-to-date software environment. The operating system and other third-party tools should be supported by their maintainers. ESP-IDF cannot keep compatibility with unsupported third-party tools.
The ESP-IDF Programming Guide has information about the [different versions of ESP-IDF](https://docs.espressif.com/projects/esp-idf/en/latest/versions.html) (major, minor, bugfix, etc).
A new LTS release will be made at least every 18 months. This means
there will always be a period of at least 12 months to upgrade from the
previous LTS release to the following LTS release.
Example
-------
ESP-IDF V3.3 was released in September 2019. It was supported for 30 months until February 2022.
ESP-IDF V3.3 was released in September 2019 and is a Long Term Support
(LTS) release, meaning it will be supported for 30 months until February
2022.
- The first V3.3 release was `v3.3` in September 2019.
- The ESP-IDF team continues to backport bug fixes, security fixes, etc to the release branch `release/v3.3`.
- Periodically stable bugfix releases are created from the release branch. For example `v3.3.1`, `v3.3.2`, etc. Users are encouraged to always update to the latest bugfix release.
- V3.3 bugfix releases continue until February 2022, when all V3.3.x releases become End of Life.
- The ESP-IDF team continues to backport bug fixes, security fixes,
etc to the release branch `release/v3.3`.
- Periodically stable bugfix releases are created from the release
branch. For example `v3.3.1`, `v3.3.2`, etc. Users are encouraged to
always update to the latest bugfix release.
- V3.3 bugfix releases continue until February 2022, when all V3.3.x
releases become End of Life.
Existing Releases
-----------------
ESP-IDF release V4.1 and all newer releases will follow this support period policy. The support period for each release will be announced when the release is made.
ESP-IDF release V3.3 and all newer releases will follow this support
period policy. The support period for each release will be announced
when the release is made.
For releases made before the current support period policy was announced, the original support periods apply:
For releases made before the support period policy was announced,
the following support periods apply:
* ESP-IDF V4.0.x will be supported until October 2021
* ESP-IDF V3.3.x will be supported until February 2022
* ESP-IDF versions before V3.3 are already End of Life.
Policy History
--------------
* September 2019. This policy splits ESP-IDF releases into Standard and Long Term Support.
* July 2020. All releases from now will have the same support period, which is equal to the previous Long Term Support period. Added “In Service” period, during which versions will receive more updates.
- ESP-IDF V3.1.x and V3.2.x will both be supported until October 2020.
- ESP-IDF V3.0.9 (planned for October 2019) will be the last V3.0
bugfix release. ESP-IDF V3.0.x is End of Life from October 2019.
- ESP-IDF versions before V3.0 are already End of Life.

View File

@@ -1,58 +1,43 @@
有关 ESP-IDF 的最新支持政策,详见 [支持期限政策](https://github.com/espressif/esp-idf/blob/master/SUPPORT_POLICY_CN.md)
有关 ESP-IDF 的最新支持政策,详见 [支持期限政策](./SUPPORT_POLICY_CN.md)
支持期限政策
=====================
=================
* [英文版](./SUPPORT_POLICY.md)
* [English Version](./SUPPORT_POLICY.md)
ESP-IDF 的每个主要版本和次要版本(如 V4.1、V4.2 等)自其首次稳定版本发布之日起将支持 30 个月。
ESP-IDF 的每个主要版本和次要版本(如 V4.0、V4.1 等)自其首次稳定版本发布之日起将维护 18 个月。
支持意味着 ESP-IDF 团队将会对 GitHub 上的发布分支继续进行 bug 修复、安全修补等,并根据需求定期发布新的 bugfix 版本。
维护意味着 ESP-IDF 团队将会对 GitHub 上的发布分支继续进行 bug 修复、安全修补等,并根据需求定期发布新的 bugfix 版本。
支持周期包括“服务周期“和“维护周期”:
在某一版本支持期限结束,停止更新维护 (EOL) 前,建议用户升级到较新的 ESP-IDF 版本。根据《支持期限政策》,我们将停止对 EOL 版本进行 bug 修复。
| 周期 | 期限 | 是否建议新项目使用? |
| ------- | ------------ | ------------------------------------- |
| 服务周期 | 12 个月 | 是 |
| 维护周期 | 18 个月 | 否 |
《支持期限政策》不适用于预发布版本(包括 beta、preview、`-rc``-dev` 版本等)。有时,在发布的版本中存在被标记为 "Preview" 的特定功能,则该功能也不在支持期限内。
在版本的服务周期内bug 修复版本会较为频繁发布。某些情况下,版本在其服务周期内可能会增加对新功能的支持(这仅适用于需要达到新产品特定规管标准或要求的功能,并且引入新问题的风险极低。)
有关 [ ESP-IDF 不同版本](https://docs.espressif.com/projects/esp-idf/zh_CN/latest/versions.html)主要版本、次要版本、bugfix 版本等信息可参阅《ESP-IDF 编程指南》。
在版本的维护周期内,版本仍然会继续支持,但仅会对严重问题或安全问题进行 bug 修复。
长期支持版本
------------
建议在开始新项目的时候使用处于服务周期的版本
有些发布版本(从 ESP-IDF V3.3 开始)属于长期支持 (LTS) 版本。LTS 版本将自其首次稳定版本发布之日起维护 30 个月2.5 年)
在某一版本支持期限结束,停止更新维护 (EOL) 前,建议用户升级所有项目至较新的 ESP-IDF 版本。根据《支持期限政策》,我们将停止对 EOL 版本进行 bug 修复
《支持期限政策》不适用于预发布版本(包括 beta、preview、-rc 和 -dev 版本等)。有时,在发布的版本中存在被标记为 "Preview" 的特定功能,则该功能也不在支持期限内。
请确保在最新的软件环境中使用 ESP-IDF。操作系统和其他第三方工具应得到其维护者的支持。ESP-IDF 无法兼容不受支持的第三方工具。
有关 [ESP-IDF 不同版本](https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/versions.html)主要版本、次要版本、bugfix 版本等信息可参阅《ESP-IDF 编程指南》。
我们将至少每 18 个月发布一个新的 LTS 版本。这意味着将至少有 12 个月的期限可更新至下一个 LTS 版本
示例
-------
-----
ESP-IDF V3.3 于 2019 年 9 月发布,将支持 30 个月至 2022 年 2 月停止。
ESP-IDF V3.3 于 2019 年 9 月发布,属于 LTS 版本,将维护 30 个月至 2022 年 2 月停止。
- V3.3 的首个发布版本为 2019 年 9 月发布的 v3.3。
- ESP-IDF 团队将持续进行 bug 修复、安全修补等更新,并 backport 至分支 release/v3.3。
- 定期从 release 分支创建稳定的 bugfix 版本比如v3.3.1v3.3.2 等,并建议用户保持使用最新的 bugfix 版本。
- V3.3 的首个发布版本为 2019 年 9 月发布的 `v3.3`
- ESP-IDF 团队将持续进行 bug 修复、安全修补等更新,并 backport 至分支 `release/v3.3`
- 定期从 release 分支创建稳定的 bugfix 版本,比如,`v3.3.1``v3.3.2` 等,并建议用户保持使用最新的 bugfix 版本。
- V3.3 的 bugfix 版本发布将持续至 2022 年 2 月,届时所有 V3.3.x 将停止更新维护。
现有版本
-----------------
--------
ESP-IDF V4.1 及所有后续更新版本都将遵守该《支持期限政策》。每一版本发布时将同时公布其支持期限。
ESP-IDF V3.3 及所有后续更新版本都将遵守该《支持期限政策》。每一版本发布时将同时公布其支持期限。
对于该政策公布之日前发布的版本,应适用下述支持期限:
* ESP-IDF V4.0.x 将支持至 2021 年 10 月。
* ESP-IDF V3.3.x 将支持至 20222 月
* ESP-IDF v3.3 之前的版本已经停止支持。
政策历史
--------------
* 2019 年 9 月。该政策将 ESP-IDF 版本发布分为标准支持版本和长期支持版本。
* 2020 年 7 月。从现在开始,所有发布的版本都将有相同的支持周期,即之前的长期支持周期。新增了”服务周期“,期间版本的更新将较为频繁。
- ESP-IDF V3.1.x 和 V3.2.x 将维护至 2020 年 10 月。
- ESP-IDF V3.0.9(计划 2019 年 10 月发布)将是 V3.0 的最后一个 bugfix 版本。ESP-IDF V3.0.x 自 201910 月起停止更新维护 (EOL)
- ESP-IDF 中 V3.0 之前的版本均已停止更新维护 (EOL)。

View File

@@ -16,3 +16,5 @@ else
export PATH="${IDF_ADD_PATHS_EXTRAS}:${PATH}"
echo "Added to PATH: ${IDF_ADD_PATHS_EXTRAS}"
fi

View File

@@ -1,164 +0,0 @@
# Core Components
## Overview
This document contains details about what the core components are, what they contain, and how they are organized.
## Organization
The core components are organized into two groups.
The first group (referred to as `G0`) includes `hal`, `arch` (where `arch` is either `riscv` or `xtensa` depending on the chip), `esp_rom`, `esp_common`, and `soc`. This group contains information about and provides low-level access to the underlying hardware. In the case of `esp_common`, it contains hardware-agnostic code and utilities. These components may have dependencies on each other within the group, but outside dependencies should be minimized. The reason for this approach is that these components are fundamental, and many other components may require them. Ideally, the dependency relationship only goes one way, making it easier for this group to be usable in other projects.
The second group (referred to as `G1`) operates at a higher level than the first group. `G1` includes the components `esp_hw_support`, `esp_system`, `newlib`, `spi_flash`, `freertos`, `log`, and `heap`. Like the first group, circular dependencies within this group are allowed, and these components can have dependencies on the first group. G1 components represent essential software mechanisms for building other components.
## Descriptions
The following is a short description of the components mentioned above.
### `G0` Components
#### `hal`
Contains the hardware abstraction layer and low-level operation implementations for the various peripherals. The low-level functions assign meaningful names to register-level manipulations; the hardware abstraction provide operations one level above this, grouping these low-level functions
into routines that achieve a meaningful action or state of the peripheral.
Example:
- `spi_flash_ll_set_address` is a low-level function part of the hardware abstraction `spi_flash_hal_read_block`
#### `arch`
Contains low-level architecture operations and definitions, including those for customizations (can be thought of on the same level as the low-level functions of `hal`).
This can also contain files provided by the architecture vendor.
Example:
- `xt_set_exception_handler`
- `rv_utils_intr_enable`
- `ERI_PERFMON_MAX`
#### `esp_common`
Contains hardware-agnostic definitions, constants, macros, utilities, 'pure' and/or algorithmic functions that is useable by all other components (that is, barring there being a more appropriate component to put them in).
Example:
- `BIT(nr)` and other bit manipulation utilities in the future
- `IDF_DEPRECATED(REASON)`
- `ESP_IDF_VERSION_MAJOR`
#### `soc`
Contains description of the underlying hardware: register structure, addresses, pins, capabilities, etc.
Example:
- `DR_REG_DPORT_BASE`
- `SOC_MCPWM_SUPPORTED`
- `uart_dev_s`
#### `esp_rom`
Contains headers, linker scripts, abstraction layer, patches, and other related files to ROM functions.
Example:
- `esp32.rom.eco3.ld`
- `rom/aes.h`
### `G1` Components
#### `spi_flash`
SPI flash device access implementation.
#### `freertos`
FreeRTOS port to targets supported by ESP-IDF.
#### `log`
Logging library.
#### `heap`
Heap implementation.
#### `newlib`
Some functions n the standard library are implemented here, especially those needing other `G1` components.
Example:
- `malloc` is implemented in terms of the component `heap`'s functions
- `gettimeofday` is implemented in terms of system time in `esp_system`
#### `esp_mm`
Memory management. Currently, this encompasses:
- Memory mapping for MMU supported memories
- Memory synchronisation via Cache
- Utils such as APIs to convert between virtual address and physical address
#### `esp_psram`
Contains implementation of PSRAM services
#### `esp_system`
Contains implementation of system services and controls system behavior. The implementations
here may take hardware resources and/or decide on a hardware state needed for support of a system service/feature/mechanism.
Currently, this encompasses the following, but not limited to:
- Startup and initialization
- Panic and debug
- Reset and reset reason
- Task and interrupt watchdogs
#### `esp_hw_support`
Contains implementations that provide hardware operations, arbitration, or resource sharing, especially those that
is used in the system. Unlike `esp_system`, implementations here do not decide on a hardware state or takes hardware resource, acting
merely as facilitator to hardware access. Currently, this encompasses the following, but not limited to:
- Interrupt allocation
- Sleep functions
- Memory functions (external SPIRAM, async memory, etc.)
- Clock and clock control
- Random generation
- CPU utilities
- MAC settings
### `esp_hw_support` vs `esp_system`
This section details list some implementations and the reason for placing it in either `esp_hw_support` or `esp_system`.
#### `task_wdt.c` (`esp_system`) vs `intr_alloc.c` (`esp_hw_support`)
The task watchdog fits the definition of taking and configuring hardware resources (wdt, interrupt) for implementation of a system service/mechanism.
This is in contrast with interrupt allocation that merely facilitates access to the underlying hardware for other implementations -
drivers, user code, and even the task watchdog mentioned previously!
#### `crosscore_int.c` (`esp_system`)
The current implementation of crosscore interrupts is tightly coupled with a number of interrupt reasons
associated with system services/mechanisms: REASON_YIELD (scheduler), REASON_FREQ_SWITCH (power management)
REASON_PRINT_BACKTRACE (panic and debug).
However, if an implementation exists that makes it possible to register an arbitrary interrupt reason - a
lower level inter-processor call if you will, then this implementation is a good candidate for `esp_hw_support`.
The current implementation in `esp_system` can then just register the interrupt reasons mentioned above.
#### `esp_mac.h`, `esp_chip_info.h`, `esp_random.h` (`esp_hw_support`)
The functions in these headers used to be in `esp_system.h`, but have been split-off.
The remaining functions in `esp_system.h` are those that deal with system behavior, such
as `esp_register_shutdown_handler`, or are proxy for other system components's APIs such as
`esp_get_free_heap_size`.
The functions split-off from `esp_system.h` are much more hardware manipulation oriented such as:
`esp_read_mac`, `esp_random` and `esp_chip_info`.

View File

@@ -1,54 +1,22 @@
idf_build_get_property(target IDF_TARGET)
if(${target} STREQUAL "linux")
return() # This component is not supported by the POSIX/Linux simulator
endif()
set(srcs
set(srcs
"app_trace.c"
"app_trace_util.c"
"host_file_io.c")
if(CONFIG_APPTRACE_GCOV_ENABLE)
if("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU")
list(APPEND srcs
"gcov/gcov_rtio.c")
else()
fail_at_build_time(app_trace "Only GNU compiler can link with Gcov library")
endif()
endif()
"host_file_io.c"
"gcov/gcov_rtio.c")
set(include_dirs "include")
set(priv_include_dirs "private_include" "port/include")
if(CONFIG_APPTRACE_MEMBUFS_APPTRACE_PROTO_ENABLE)
list(APPEND srcs
"app_trace_membufs_proto.c")
if(CONFIG_IDF_TARGET_ARCH_XTENSA)
list(APPEND srcs
"port/xtensa/port.c")
endif()
if(CONFIG_IDF_TARGET_ARCH_RISCV)
list(APPEND srcs
"port/riscv/port.c")
endif()
endif()
list(APPEND srcs
"port/port_uart.c")
if(CONFIG_APPTRACE_SV_ENABLE)
if(CONFIG_SYSVIEW_ENABLE)
list(APPEND include_dirs
sys_view/Config
sys_view/SEGGER
sys_view/Sample/FreeRTOSV10.4)
sys_view/Sample/OS)
list(APPEND srcs
list(APPEND srcs
"sys_view/SEGGER/SEGGER_SYSVIEW.c"
"sys_view/Sample/FreeRTOSV10.4/Config/esp/SEGGER_SYSVIEW_Config_FreeRTOS.c"
"sys_view/Sample/FreeRTOSV10.4/SEGGER_SYSVIEW_FreeRTOS.c"
"sys_view/esp/SEGGER_RTT_esp.c"
"sys_view/Sample/Config/SEGGER_SYSVIEW_Config_FreeRTOS.c"
"sys_view/Sample/OS/SEGGER_SYSVIEW_FreeRTOS.c"
"sys_view/esp32/SEGGER_RTT_esp32.c"
"sys_view/ext/heap_trace_module.c"
"sys_view/ext/logging.c")
endif()
@@ -62,71 +30,17 @@ endif()
idf_component_register(SRCS "${srcs}"
INCLUDE_DIRS "${include_dirs}"
PRIV_INCLUDE_DIRS "${priv_include_dirs}"
# Requires "driver" for GPTimer in "SEGGER_SYSVIEW_Config_FreeRTOS.c"
PRIV_REQUIRES soc driver
REQUIRES esp_timer
PRIV_REQUIRES soc esp_common
LDFRAGMENTS linker.lf)
# Force app_trace to also appear later than gcov in link line
idf_component_get_property(app_trace app_trace COMPONENT_LIB)
if(CONFIG_APPTRACE_GCOV_ENABLE)
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
# Coverage info is not supported when clang is used
# TODO: LLVM-214
message(FATAL_ERROR "Coverage info is not supported when building with Clang!")
endif()
# The original Gcov library from toolchain will be objcopy with symbols redefinitions (see file gcov/io_sym.map).
# This needs because ESP has no file-system onboard, and redefined functions solves this problem and transmits
# output file to host PC.
# Set a name for Gcov library
set(GCOV_LIB libgcov_rtio)
# Set include direcrory of Gcov internal headers
execute_process(COMMAND ${CMAKE_C_COMPILER} -print-file-name=plugin
OUTPUT_VARIABLE gcc_plugin_dir
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET)
set_source_files_properties(gcov/gcov_rtio.c
PROPERTIES COMPILE_FLAGS "-I${gcc_plugin_dir}/include")
# Copy libgcov.a with symbols redefinition
find_library(GCOV_LIBRARY_PATH gcov ${CMAKE_C_IMPLICIT_LINK_DIRECTORIES})
add_custom_command(OUTPUT ${GCOV_LIB}.a
COMMAND ${_CMAKE_TOOLCHAIN_PREFIX}objcopy
--redefine-syms ${CMAKE_CURRENT_LIST_DIR}/gcov/io_sym.map
${GCOV_LIBRARY_PATH} ${GCOV_LIB}.a
MAIN_DEPENDENCY ${GCOV_LIBRARY_PATH}
VERBATIM)
add_custom_target(${GCOV_LIB}_target DEPENDS ${GCOV_LIB}.a)
add_library(${GCOV_LIB} STATIC IMPORTED)
set_target_properties(${GCOV_LIB}
PROPERTIES
IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/${GCOV_LIB}.a)
add_dependencies(${GCOV_LIB} ${GCOV_LIB}_target)
add_dependencies(${COMPONENT_LIB} ${GCOV_LIB})
# disable --coverage for this component, as it is used as transport for gcov
# disable --coverage for this component, as it is used as transport
# for gcov
target_compile_options(${COMPONENT_LIB} PRIVATE "-fno-profile-arcs" "-fno-test-coverage")
target_link_options(${COMPONENT_LIB} INTERFACE "-Wl,--wrap=__gcov_init")
target_link_libraries(${COMPONENT_LIB} INTERFACE ${GCOV_LIB} $<TARGET_FILE:${app_trace}> c)
else()
target_link_libraries(${COMPONENT_LIB} INTERFACE $<TARGET_FILE:${app_trace}> c)
endif()
# This function adds a dependency on the given component if the component is included into the build.
function(maybe_add_component component_name)
idf_build_get_property(components BUILD_COMPONENTS)
if(${component_name} IN_LIST components)
idf_component_get_property(lib_name ${component_name} COMPONENT_LIB)
target_link_libraries(${COMPONENT_LIB} PUBLIC ${lib_name})
endif()
endfunction()
if(CONFIG_APPTRACE_DEST_UART0 OR CONFIG_APPTRACE_DEST_UART1 OR CONFIG_APPTRACE_DEST_UART2)
maybe_add_component(driver)
# Force app_trace to also appear later than gcov in link line
idf_component_get_property(app_trace app_trace COMPONENT_LIB)
target_link_libraries(${COMPONENT_LIB} INTERFACE
"-Wl,--undefined=gcov_rtio_atexit" $<TARGET_FILE:${app_trace}> gcov $<TARGET_FILE:${app_trace}> c)
endif()

View File

@@ -1,167 +1,32 @@
menu "Application Level Tracing"
choice APPTRACE_DESTINATION1
prompt "Data Destination 1"
choice APPTRACE_DESTINATION
prompt "Data Destination"
default APPTRACE_DEST_NONE
help
Select destination for application trace: JTAG or none (to disable).
Select destination for application trace: trace memory or none (to disable).
config APPTRACE_DEST_JTAG
bool "JTAG"
select APPTRACE_DEST_TRAX if IDF_TARGET_ARCH_XTENSA
select APPTRACE_MEMBUFS_APPTRACE_PROTO_ENABLE
config APPTRACE_DEST_TRAX
bool "Trace memory"
select APPTRACE_ENABLE
config APPTRACE_DEST_NONE
bool "None"
endchoice
config APPTRACE_DEST_UART
bool
config APPTRACE_DEST_UART_NOUSB
bool
choice APPTRACE_DESTINATION2
prompt "Data Destination 2"
default APPTRACE_DEST_UART_NONE
help
Select destination for application trace: UART(XX) or none (to disable).
config APPTRACE_DEST_UART0
bool "UART0"
select APPTRACE_ENABLE
select APPTRACE_DEST_UART
select APPTRACE_DEST_UART_NOUSB
depends on (ESP_CONSOLE_UART_NUM !=0)
config APPTRACE_DEST_UART1
bool "UART1"
select APPTRACE_ENABLE
select APPTRACE_DEST_UART
select APPTRACE_DEST_UART_NOUSB
depends on (ESP_CONSOLE_UART_NUM !=1)
config APPTRACE_DEST_UART2
bool "UART2"
select APPTRACE_ENABLE
select APPTRACE_DEST_UART
select APPTRACE_DEST_UART_NOUSB
depends on (ESP_CONSOLE_UART_NUM !=2) && (SOC_UART_NUM > 2)
config APPTRACE_DEST_USB_CDC
bool "USB_CDC"
select APPTRACE_ENABLE
select APPTRACE_DEST_UART
depends on !ESP_CONSOLE_USB_CDC && (IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3) && !USB_ENABLED
config APPTRACE_DEST_UART_NONE
bool "None"
endchoice
config APPTRACE_UART_TX_GPIO
int "UART TX on GPIO#"
depends on APPTRACE_DEST_UART_NOUSB
range 0 46
default 12 if IDF_TARGET_ESP32
default 12 if IDF_TARGET_ESP32C3
default 12
help
This GPIO is used for UART TX pin.
config APPTRACE_UART_RX_GPIO
int "UART RX on GPIO#"
depends on APPTRACE_DEST_UART_NOUSB
range 0 46
default 13 if IDF_TARGET_ESP32
default 13 if IDF_TARGET_ESP32C3
default 13
help
This GPIO is used for UART RX pin.
config APPTRACE_UART_BAUDRATE
int
prompt "UART baud rate" if APPTRACE_DEST_UART
depends on APPTRACE_DEST_UART
default 1000000
range 1200 8000000
range 1200 1000000
help
This baud rate is used for UART.
The app's maximum baud rate depends on the UART clock source. If Power Management is disabled,
the UART clock source is the APB clock and all baud rates in the available range will be sufficiently
accurate. If Power Management is enabled, REF_TICK clock source is used so the baud rate is divided
from 1MHz. Baud rates above 1Mbps are not possible and values between 500Kbps and 1Mbps may not be
accurate.
config APPTRACE_UART_RX_BUFF_SIZE
int
prompt "UART RX ring buffer size" if APPTRACE_DEST_UART
depends on APPTRACE_DEST_UART
default 128
range 64 32768
help
Size of the UART input ring buffer.
This size related to the baudrate, system tick frequency and amount of data to transfer.
The data placed to this buffer before sent out to the interface.
config APPTRACE_UART_TX_BUFF_SIZE
int
prompt "UART TX ring buffer size" if APPTRACE_DEST_UART
depends on APPTRACE_DEST_UART
default 4096
range 2048 32768
help
Size of the UART output ring buffer.
This size related to the baudrate, system tick frequency and amount of data to transfer.
config APPTRACE_UART_TX_MSG_SIZE
int
prompt "UART TX message size" if APPTRACE_DEST_UART
depends on APPTRACE_DEST_UART
default 128
range 64 32768
help
Maximum size of the single message to transfer.
config APPTRACE_UART_TASK_PRIO
int
prompt "UART Task Priority" if APPTRACE_DEST_UART
default 1
range 1 32
help
UART task priority. In case of high events rate,
this parameter could be changed up to (configMAX_PRIORITIES-1).
config APPTRACE_DEST_TRAX
bool
depends on IDF_TARGET_ARCH_XTENSA && !ESP32_TRAX && !ESP32S2_TRAX && !ESP32S3_TRAX
select ESP32_MEMMAP_TRACEMEM
select ESP32S2_MEMMAP_TRACEMEM
select ESP32S3_MEMMAP_TRACEMEM
select ESP32_MEMMAP_TRACEMEM_TWOBANKS
select ESP32S2_MEMMAP_TRACEMEM_TWOBANKS
select ESP32S3_MEMMAP_TRACEMEM_TWOBANKS
default n
help
Enables/disable TRAX tracing HW.
config APPTRACE_MEMBUFS_APPTRACE_PROTO_ENABLE
bool
default n
help
Enables/disable swapping memory buffers tracing protocol.
config APPTRACE_ENABLE
bool
depends on !ESP32_TRAX && !ESP32S2_TRAX
select ESP32_MEMMAP_TRACEMEM
select ESP32S2_MEMMAP_TRACEMEM
select ESP32_MEMMAP_TRACEMEM_TWOBANKS
select ESP32S2_MEMMAP_TRACEMEM_TWOBANKS
default n
help
Enables/disable application tracing module.
config APPTRACE_LOCK_ENABLE
bool
default !APPTRACE_SV_ENABLE
default !SYSVIEW_ENABLE
help
Enables/disable application tracing module internal sync lock.
@@ -176,23 +41,16 @@ menu "Application Level Tracing"
config APPTRACE_POSTMORTEM_FLUSH_THRESH
int "Threshold for flushing last trace data to host on panic"
depends on APPTRACE_ENABLE
depends on APPTRACE_DEST_TRAX
range 0 16384
default 0
help
Threshold for flushing last trace data to host on panic in post-mortem mode.
This is minimal amount of data needed to perform flush. In bytes.
config APPTRACE_BUF_SIZE
int "Size of the apptrace buffer"
depends on APPTRACE_MEMBUFS_APPTRACE_PROTO_ENABLE && !APPTRACE_DEST_TRAX
default 16384
help
Size of the memory buffer for trace data in bytes.
config APPTRACE_PENDING_DATA_SIZE_MAX
int "Size of the pending data buffer"
depends on APPTRACE_MEMBUFS_APPTRACE_PROTO_ENABLE
depends on APPTRACE_DEST_TRAX
default 0
help
Size of the buffer for events in bytes. It is useful for buffering events from
@@ -201,180 +59,151 @@ menu "Application Level Tracing"
menu "FreeRTOS SystemView Tracing"
depends on APPTRACE_ENABLE
config APPTRACE_SV_ENABLE
config SYSVIEW_ENABLE
bool "SystemView Tracing Enable"
depends on APPTRACE_ENABLE
default n
help
Enables supporrt for SEGGER SystemView tracing functionality.
choice APPTRACE_SV_DEST
prompt "SystemView destination"
depends on APPTRACE_SV_ENABLE
default APPTRACE_SV_DEST_JTAG
help
SystemView witt transfer data trough defined interface.
config APPTRACE_SV_DEST_JTAG
bool "Data destination JTAG"
depends on !PM_ENABLE && !APPTRACE_DEST_NONE
help
Send SEGGER SystemView events through JTAG interface.
config APPTRACE_SV_DEST_UART
bool "Data destination UART"
depends on APPTRACE_DEST_UART
help
Send SEGGER SystemView events through UART interface.
endchoice
choice APPTRACE_SV_CPU
prompt "CPU to trace"
depends on APPTRACE_SV_DEST_UART && !FREERTOS_UNICORE
default APPTRACE_SV_DEST_CPU_0
help
Define the CPU to trace by SystemView.
config APPTRACE_SV_DEST_CPU_0
bool "CPU0"
help
Send SEGGER SystemView events for Pro CPU.
config APPTRACE_SV_DEST_CPU_1
bool "CPU1"
help
Send SEGGER SystemView events for App CPU.
endchoice
choice APPTRACE_SV_TS_SOURCE
choice SYSVIEW_TS_SOURCE
prompt "Timer to use as timestamp source"
depends on APPTRACE_SV_ENABLE
default APPTRACE_SV_TS_SOURCE_CCOUNT if FREERTOS_UNICORE && !PM_ENABLE && !IDF_TARGET_ESP32C3
default APPTRACE_SV_TS_SOURCE_GPTIMER if !FREERTOS_UNICORE && !PM_ENABLE && !IDF_TARGET_ESP32C3
default APPTRACE_SV_TS_SOURCE_ESP_TIMER if PM_ENABLE || IDF_TARGET_ESP32C3
depends on SYSVIEW_ENABLE
default SYSVIEW_TS_SOURCE_CCOUNT if FREERTOS_UNICORE && !PM_ENABLE
default SYSVIEW_TS_SOURCE_TIMER_00 if !FREERTOS_UNICORE && !PM_ENABLE
default SYSVIEW_TS_SOURCE_ESP_TIMER if PM_ENABLE
help
SystemView needs to use a hardware timer as the source of timestamps
when tracing. This option selects the timer for it.
config APPTRACE_SV_TS_SOURCE_CCOUNT
config SYSVIEW_TS_SOURCE_CCOUNT
bool "CPU cycle counter (CCOUNT)"
depends on FREERTOS_UNICORE && !PM_ENABLE && !IDF_TARGET_ESP32C3
depends on FREERTOS_UNICORE && !PM_ENABLE
config APPTRACE_SV_TS_SOURCE_GPTIMER
bool "General Purpose Timer (Timer Group)"
depends on !PM_ENABLE && !IDF_TARGET_ESP32C3
config SYSVIEW_TS_SOURCE_TIMER_00
bool "Timer 0, Group 0"
depends on !PM_ENABLE
config APPTRACE_SV_TS_SOURCE_ESP_TIMER
config SYSVIEW_TS_SOURCE_TIMER_01
bool "Timer 1, Group 0"
depends on !PM_ENABLE
config SYSVIEW_TS_SOURCE_TIMER_10
bool "Timer 0, Group 1"
depends on !PM_ENABLE
config SYSVIEW_TS_SOURCE_TIMER_11
bool "Timer 1, Group 1"
depends on !PM_ENABLE
config SYSVIEW_TS_SOURCE_ESP_TIMER
bool "esp_timer high resolution timer"
endchoice
config APPTRACE_SV_MAX_TASKS
config SYSVIEW_MAX_TASKS
int "Maximum supported tasks"
depends on APPTRACE_SV_ENABLE
depends on SYSVIEW_ENABLE
range 1 64
default 16
help
Configures maximum supported tasks in sysview debug
config APPTRACE_SV_BUF_WAIT_TMO
config SYSVIEW_BUF_WAIT_TMO
int "Trace buffer wait timeout"
depends on APPTRACE_SV_ENABLE
depends on SYSVIEW_ENABLE
default 500
help
Configures timeout (in us) to wait for free space in trace buffer.
Set to -1 to wait forever and avoid lost events.
config APPTRACE_SV_EVT_OVERFLOW_ENABLE
config SYSVIEW_EVT_OVERFLOW_ENABLE
bool "Trace Buffer Overflow Event"
depends on APPTRACE_SV_ENABLE
depends on SYSVIEW_ENABLE
default y
help
Enables "Trace Buffer Overflow" event.
config APPTRACE_SV_EVT_ISR_ENTER_ENABLE
config SYSVIEW_EVT_ISR_ENTER_ENABLE
bool "ISR Enter Event"
depends on APPTRACE_SV_ENABLE
depends on SYSVIEW_ENABLE
default y
help
Enables "ISR Enter" event.
config APPTRACE_SV_EVT_ISR_EXIT_ENABLE
config SYSVIEW_EVT_ISR_EXIT_ENABLE
bool "ISR Exit Event"
depends on APPTRACE_SV_ENABLE
depends on SYSVIEW_ENABLE
default y
help
Enables "ISR Exit" event.
config APPTRACE_SV_EVT_ISR_TO_SCHED_ENABLE
config SYSVIEW_EVT_ISR_TO_SCHEDULER_ENABLE
bool "ISR Exit to Scheduler Event"
depends on APPTRACE_SV_ENABLE
depends on SYSVIEW_ENABLE
default y
help
Enables "ISR to Scheduler" event.
config APPTRACE_SV_EVT_TASK_START_EXEC_ENABLE
config SYSVIEW_EVT_TASK_START_EXEC_ENABLE
bool "Task Start Execution Event"
depends on APPTRACE_SV_ENABLE
depends on SYSVIEW_ENABLE
default y
help
Enables "Task Start Execution" event.
config APPTRACE_SV_EVT_TASK_STOP_EXEC_ENABLE
config SYSVIEW_EVT_TASK_STOP_EXEC_ENABLE
bool "Task Stop Execution Event"
depends on APPTRACE_SV_ENABLE
depends on SYSVIEW_ENABLE
default y
help
Enables "Task Stop Execution" event.
config APPTRACE_SV_EVT_TASK_START_READY_ENABLE
config SYSVIEW_EVT_TASK_START_READY_ENABLE
bool "Task Start Ready State Event"
depends on APPTRACE_SV_ENABLE
depends on SYSVIEW_ENABLE
default y
help
Enables "Task Start Ready State" event.
config APPTRACE_SV_EVT_TASK_STOP_READY_ENABLE
config SYSVIEW_EVT_TASK_STOP_READY_ENABLE
bool "Task Stop Ready State Event"
depends on APPTRACE_SV_ENABLE
depends on SYSVIEW_ENABLE
default y
help
Enables "Task Stop Ready State" event.
config APPTRACE_SV_EVT_TASK_CREATE_ENABLE
config SYSVIEW_EVT_TASK_CREATE_ENABLE
bool "Task Create Event"
depends on APPTRACE_SV_ENABLE
depends on SYSVIEW_ENABLE
default y
help
Enables "Task Create" event.
config APPTRACE_SV_EVT_TASK_TERMINATE_ENABLE
config SYSVIEW_EVT_TASK_TERMINATE_ENABLE
bool "Task Terminate Event"
depends on APPTRACE_SV_ENABLE
depends on SYSVIEW_ENABLE
default y
help
Enables "Task Terminate" event.
config APPTRACE_SV_EVT_IDLE_ENABLE
config SYSVIEW_EVT_IDLE_ENABLE
bool "System Idle Event"
depends on APPTRACE_SV_ENABLE
depends on SYSVIEW_ENABLE
default y
help
Enables "System Idle" event.
config APPTRACE_SV_EVT_TIMER_ENTER_ENABLE
config SYSVIEW_EVT_TIMER_ENTER_ENABLE
bool "Timer Enter Event"
depends on APPTRACE_SV_ENABLE
depends on SYSVIEW_ENABLE
default y
help
Enables "Timer Enter" event.
config APPTRACE_SV_EVT_TIMER_EXIT_ENABLE
config SYSVIEW_EVT_TIMER_EXIT_ENABLE
bool "Timer Exit Event"
depends on APPTRACE_SV_ENABLE
depends on SYSVIEW_ENABLE
default y
help
Enables "Timer Exit" event.
@@ -383,17 +212,10 @@ menu "Application Level Tracing"
config APPTRACE_GCOV_ENABLE
bool "GCOV to Host Enable"
depends on APPTRACE_ENABLE && !APPTRACE_SV_ENABLE
depends on APPTRACE_ENABLE && !SYSVIEW_ENABLE
select ESP_DEBUG_STUBS_ENABLE
default n
help
Enables support for GCOV data transfer to host.
config APPTRACE_GCOV_DUMP_TASK_STACK_SIZE
int "Gcov dump task stack size"
depends on APPTRACE_GCOV_ENABLE
default 2048
help
Configures stack size of Gcov dump task
endmenu

File diff suppressed because it is too large Load Diff

View File

@@ -1,372 +0,0 @@
/*
* SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <sys/param.h>
#include <string.h>
#include "sdkconfig.h"
#include "esp_log.h"
#include "esp_cpu.h"
#include "esp_app_trace_membufs_proto.h"
/** Trace data header. Every user data chunk is prepended with this header.
* User allocates block with esp_apptrace_buffer_get and then fills it with data,
* in multithreading environment it can happen that tasks gets buffer and then gets interrupted,
* so it is possible that user data are incomplete when memory block is exposed to the host.
* In this case host SW will see that wr_sz < block_sz and will report error.
*/
typedef struct {
#if CONFIG_APPTRACE_SV_ENABLE
uint8_t block_sz; // size of allocated block for user data
uint8_t wr_sz; // size of actually written data
#else
uint16_t block_sz; // size of allocated block for user data
uint16_t wr_sz; // size of actually written data
#endif
} esp_tracedata_hdr_t;
/** TODO: docs
*/
typedef struct {
uint16_t block_sz; // size of allocated block for user data
} esp_hostdata_hdr_t;
#if CONFIG_APPTRACE_SV_ENABLE
#define ESP_APPTRACE_USR_BLOCK_CORE(_cid_) (0)
#define ESP_APPTRACE_USR_BLOCK_LEN(_v_) (_v_)
#define ESP_APPTRACE_USR_DATA_LEN_MAX(_hw_data_) 255UL
#else
#define ESP_APPTRACE_USR_BLOCK_CORE(_cid_) ((_cid_) << 15)
#define ESP_APPTRACE_USR_BLOCK_LEN(_v_) (~(1 << 15) & (_v_))
#define ESP_APPTRACE_USR_DATA_LEN_MAX(_hw_data_) (ESP_APPTRACE_INBLOCK(_hw_data_)->sz - sizeof(esp_tracedata_hdr_t))
#endif
#define ESP_APPTRACE_USR_BLOCK_RAW_SZ(_s_) ((_s_) + sizeof(esp_tracedata_hdr_t))
#define ESP_APPTRACE_INBLOCK_MARKER(_hw_data_) ((_hw_data_)->state.markers[(_hw_data_)->state.in_block % 2])
#define ESP_APPTRACE_INBLOCK_MARKER_UPD(_hw_data_, _v_) do {(_hw_data_)->state.markers[(_hw_data_)->state.in_block % 2] += (_v_);}while(0)
#define ESP_APPTRACE_INBLOCK(_hw_data_) (&(_hw_data_)->blocks[(_hw_data_)->state.in_block % 2])
const static char *TAG = "esp_apptrace";
static uint32_t esp_apptrace_membufs_down_buffer_write_nolock(esp_apptrace_membufs_proto_data_t *proto, uint8_t *data, uint32_t size);
esp_err_t esp_apptrace_membufs_init(esp_apptrace_membufs_proto_data_t *proto, const esp_apptrace_mem_block_t blocks_cfg[2])
{
// disabled by default
esp_apptrace_rb_init(&proto->rb_down, NULL, 0);
// membufs proto init
for (unsigned i = 0; i < 2; i++) {
proto->blocks[i].start = blocks_cfg[i].start;
proto->blocks[i].sz = blocks_cfg[i].sz;
proto->state.markers[i] = 0;
}
proto->state.in_block = 0;
#if CONFIG_APPTRACE_PENDING_DATA_SIZE_MAX > 0
esp_apptrace_rb_init(&proto->rb_pend, proto->pending_data,
sizeof(proto->pending_data));
#endif
return ESP_OK;
}
void esp_apptrace_membufs_down_buffer_config(esp_apptrace_membufs_proto_data_t *data, uint8_t *buf, uint32_t size)
{
esp_apptrace_rb_init(&data->rb_down, buf, size);
}
// assumed to be protected by caller from multi-core/thread access
static esp_err_t esp_apptrace_membufs_swap(esp_apptrace_membufs_proto_data_t *proto)
{
int prev_block_num = proto->state.in_block % 2;
int new_block_num = prev_block_num ? (0) : (1);
esp_err_t res = ESP_OK;
res = proto->hw->swap_start(proto->state.in_block);
if (res != ESP_OK) {
return res;
}
proto->state.markers[new_block_num] = 0;
// switch to new block
proto->state.in_block++;
proto->hw->swap(new_block_num);
// handle data from host
esp_hostdata_hdr_t *hdr = (esp_hostdata_hdr_t *)proto->blocks[new_block_num].start;
// ESP_APPTRACE_LOGV("Host data %d, sz %d @ %p", proto->hw->host_data_pending(), hdr->block_sz, hdr);
if (proto->hw->host_data_pending() && hdr->block_sz > 0) {
// TODO: add support for multiple blocks from host, currently there is no need for that
uint8_t *p = proto->blocks[new_block_num].start + proto->blocks[new_block_num].sz;
ESP_APPTRACE_LOGD("Recvd %d bytes from host (@ 0x%x) [%x %x %x %x %x %x %x %x .. %x %x %x %x %x %x %x %x]",
hdr->block_sz, proto->blocks[new_block_num].start,
*(proto->blocks[new_block_num].start+0), *(proto->blocks[new_block_num].start+1),
*(proto->blocks[new_block_num].start+2), *(proto->blocks[new_block_num].start+3),
*(proto->blocks[new_block_num].start+4), *(proto->blocks[new_block_num].start+5),
*(proto->blocks[new_block_num].start+6), *(proto->blocks[new_block_num].start+7),
*(p-8), *(p-7), *(p-6), *(p-5), *(p-4), *(p-3), *(p-2), *(p-1));
uint32_t sz = esp_apptrace_membufs_down_buffer_write_nolock(proto, (uint8_t *)(hdr+1), hdr->block_sz);
if (sz != hdr->block_sz) {
ESP_APPTRACE_LOGE("Failed to write %d bytes to down buffer (%d %d)!", hdr->block_sz - sz, hdr->block_sz, sz);
}
hdr->block_sz = 0;
}
#if CONFIG_APPTRACE_PENDING_DATA_SIZE_MAX > 0
// copy pending data to block if any
while (proto->state.markers[new_block_num] < proto->blocks[new_block_num].sz) {
uint32_t read_sz = esp_apptrace_rb_read_size_get(&proto->rb_pend);
if (read_sz == 0) {
break; // no more data in pending buffer
}
if (read_sz > proto->blocks[new_block_num].sz - proto->state.markers[new_block_num]) {
read_sz = proto->blocks[new_block_num].sz - proto->state.markers[new_block_num];
}
uint8_t *ptr = esp_apptrace_rb_consume(&proto->rb_pend, read_sz);
if (!ptr) {
assert(false && "Failed to consume pended bytes!!");
break;
}
ESP_APPTRACE_LOGD("Pump %d pend bytes [%x %x %x %x : %x %x %x %x : %x %x %x %x : %x %x...%x %x]",
read_sz, *(ptr+0), *(ptr+1), *(ptr+2), *(ptr+3), *(ptr+4),
*(ptr+5), *(ptr+6), *(ptr+7), *(ptr+8), *(ptr+9), *(ptr+10), *(ptr+11), *(ptr+12), *(ptr+13), *(ptr+read_sz-2), *(ptr+read_sz-1));
memcpy(proto->blocks[new_block_num].start + proto->state.markers[new_block_num], ptr, read_sz);
proto->state.markers[new_block_num] += read_sz;
}
#endif
proto->hw->swap_end(proto->state.in_block, proto->state.markers[prev_block_num]);
return res;
}
static esp_err_t esp_apptrace_membufs_swap_waitus(esp_apptrace_membufs_proto_data_t *proto, esp_apptrace_tmo_t *tmo)
{
int res;
while ((res = esp_apptrace_membufs_swap(proto)) != ESP_OK) {
res = esp_apptrace_tmo_check(tmo);
if (res != ESP_OK) {
break;
}
}
return res;
}
uint8_t *esp_apptrace_membufs_down_buffer_get(esp_apptrace_membufs_proto_data_t *proto, uint32_t *size, esp_apptrace_tmo_t *tmo)
{
uint8_t *ptr = NULL;
while (1) {
uint32_t sz = esp_apptrace_rb_read_size_get(&proto->rb_down);
if (sz != 0) {
*size = MIN(*size, sz);
ptr = esp_apptrace_rb_consume(&proto->rb_down, *size);
if (!ptr) {
assert(false && "Failed to consume bytes from down buffer!");
}
break;
}
// may need to flush
if (proto->hw->host_data_pending()) {
ESP_APPTRACE_LOGD("force flush");
int res = esp_apptrace_membufs_swap_waitus(proto, tmo);
if (res != ESP_OK) {
ESP_APPTRACE_LOGE("Failed to switch to another block to recv data from host!");
/*do not return error because data can be in down buffer already*/
}
} else {
// check tmo only if there is no data from host
int res = esp_apptrace_tmo_check(tmo);
if (res != ESP_OK) {
return NULL;
}
}
}
return ptr;
}
esp_err_t esp_apptrace_membufs_down_buffer_put(esp_apptrace_membufs_proto_data_t *proto, uint8_t *ptr, esp_apptrace_tmo_t *tmo)
{
/* nothing todo */
return ESP_OK;
}
static uint32_t esp_apptrace_membufs_down_buffer_write_nolock(esp_apptrace_membufs_proto_data_t *proto, uint8_t *data, uint32_t size)
{
uint32_t total_sz = 0;
while (total_sz < size) {
ESP_APPTRACE_LOGD("esp_apptrace_trax_down_buffer_write_nolock WRS %d-%d-%d %d", proto->rb_down.wr, proto->rb_down.rd,
proto->rb_down.cur_size, size);
uint32_t wr_sz = esp_apptrace_rb_write_size_get(&proto->rb_down);
if (wr_sz == 0) {
break;
}
if (wr_sz > size - total_sz) {
wr_sz = size - total_sz;
}
ESP_APPTRACE_LOGD("esp_apptrace_trax_down_buffer_write_nolock wr %d", wr_sz);
uint8_t *ptr = esp_apptrace_rb_produce(&proto->rb_down, wr_sz);
if (!ptr) {
assert(false && "Failed to produce bytes to down buffer!");
}
ESP_APPTRACE_LOGD("esp_apptrace_trax_down_buffer_write_nolock wr %d to 0x%x from 0x%x", wr_sz, ptr, data + total_sz + wr_sz);
memcpy(ptr, data + total_sz, wr_sz);
total_sz += wr_sz;
ESP_APPTRACE_LOGD("esp_apptrace_trax_down_buffer_write_nolock wr %d/%d", wr_sz, total_sz);
}
return total_sz;
}
static inline uint8_t *esp_apptrace_membufs_wait4buf(esp_apptrace_membufs_proto_data_t *proto, uint16_t size, esp_apptrace_tmo_t *tmo, int *pended)
{
uint8_t *ptr = NULL;
int res = esp_apptrace_membufs_swap_waitus(proto, tmo);
if (res != ESP_OK) {
return NULL;
}
#if CONFIG_APPTRACE_PENDING_DATA_SIZE_MAX > 0
// check if we still have pending data
if (esp_apptrace_rb_read_size_get(&proto->rb_pend) > 0) {
// if after block switch we still have pending data (not all pending data have been pumped to block)
// alloc new pending buffer
*pended = 1;
ptr = esp_apptrace_rb_produce(&proto->rb_pend, size);
if (!ptr) {
ESP_APPTRACE_LOGE("Failed to alloc pend buf 1: w-r-s %d-%d-%d!", proto->rb_pend.wr, proto->rb_pend.rd, proto->rb_pend.cur_size);
}
} else
#endif
{
// update block pointers
if (ESP_APPTRACE_INBLOCK_MARKER(proto) + size > ESP_APPTRACE_INBLOCK(proto)->sz) {
#if CONFIG_APPTRACE_PENDING_DATA_SIZE_MAX > 0
*pended = 1;
ptr = esp_apptrace_rb_produce(&proto->rb_pend, size);
if (ptr == NULL) {
ESP_APPTRACE_LOGE("Failed to alloc pend buf 2: w-r-s %d-%d-%d!", proto->rb_pend.wr, proto->rb_pend.rd, proto->rb_pend.cur_size);
}
#endif
} else {
*pended = 0;
ptr = ESP_APPTRACE_INBLOCK(proto)->start + ESP_APPTRACE_INBLOCK_MARKER(proto);
}
}
return ptr;
}
static inline uint8_t *esp_apptrace_membufs_pkt_start(uint8_t *ptr, uint16_t size)
{
// it is safe to use esp_cpu_get_core_id() in macro call because arg is used only once inside it
((esp_tracedata_hdr_t *)ptr)->block_sz = ESP_APPTRACE_USR_BLOCK_CORE(esp_cpu_get_core_id()) | size;
((esp_tracedata_hdr_t *)ptr)->wr_sz = 0;
return ptr + sizeof(esp_tracedata_hdr_t);
}
static inline void esp_apptrace_membufs_pkt_end(uint8_t *ptr)
{
esp_tracedata_hdr_t *hdr = (esp_tracedata_hdr_t *)(ptr - sizeof(esp_tracedata_hdr_t));
// update written size
hdr->wr_sz = hdr->block_sz;
}
uint8_t *esp_apptrace_membufs_up_buffer_get(esp_apptrace_membufs_proto_data_t *proto, uint32_t size, esp_apptrace_tmo_t *tmo)
{
uint8_t *buf_ptr = NULL;
if (size > ESP_APPTRACE_USR_DATA_LEN_MAX(proto)) {
ESP_APPTRACE_LOGE("Too large user data size %d!", size);
return NULL;
}
// check for data in the pending buffer
#if CONFIG_APPTRACE_PENDING_DATA_SIZE_MAX > 0
if (esp_apptrace_rb_read_size_get(&proto->rb_pend) > 0) {
// if we have buffered data try to switch block
esp_apptrace_membufs_swap(proto);
// if switch was successful, part or all pended data have been copied to block
}
if (esp_apptrace_rb_read_size_get(&proto->rb_pend) > 0) {
// if we have buffered data alloc new pending buffer
ESP_APPTRACE_LOGD("Get %d bytes from PEND buffer", size);
buf_ptr = esp_apptrace_rb_produce(&proto->rb_pend, ESP_APPTRACE_USR_BLOCK_RAW_SZ(size));
if (buf_ptr == NULL) {
int pended_buf;
buf_ptr = esp_apptrace_membufs_wait4buf(proto, ESP_APPTRACE_USR_BLOCK_RAW_SZ(size), tmo, &pended_buf);
if (buf_ptr && !pended_buf) {
ESP_APPTRACE_LOGD("Get %d bytes from block", size);
// update cur block marker
ESP_APPTRACE_INBLOCK_MARKER_UPD(proto, ESP_APPTRACE_USR_BLOCK_RAW_SZ(size));
}
}
} else {
#else
if (1) {
#endif
if (ESP_APPTRACE_INBLOCK_MARKER(proto) + ESP_APPTRACE_USR_BLOCK_RAW_SZ(size) > ESP_APPTRACE_INBLOCK(proto)->sz) {
#if CONFIG_APPTRACE_PENDING_DATA_SIZE_MAX > 0
ESP_APPTRACE_LOGD("Block full. Get %d bytes from PEND buffer", size);
buf_ptr = esp_apptrace_rb_produce(&proto->rb_pend, ESP_APPTRACE_USR_BLOCK_RAW_SZ(size));
#endif
if (buf_ptr == NULL) {
int pended_buf;
ESP_APPTRACE_LOGD(" full. Get %d bytes from pend buffer", size);
buf_ptr = esp_apptrace_membufs_wait4buf(proto, ESP_APPTRACE_USR_BLOCK_RAW_SZ(size), tmo, &pended_buf);
if (buf_ptr && !pended_buf) {
ESP_APPTRACE_LOGD("Got %d bytes from block", size);
// update cur block marker
ESP_APPTRACE_INBLOCK_MARKER_UPD(proto, ESP_APPTRACE_USR_BLOCK_RAW_SZ(size));
}
}
} else {
ESP_APPTRACE_LOGD("Get %d bytes from buffer", size);
// fit to curr nlock
buf_ptr = ESP_APPTRACE_INBLOCK(proto)->start + ESP_APPTRACE_INBLOCK_MARKER(proto);
// update cur block marker
ESP_APPTRACE_INBLOCK_MARKER_UPD(proto, ESP_APPTRACE_USR_BLOCK_RAW_SZ(size));
}
}
if (buf_ptr) {
buf_ptr = esp_apptrace_membufs_pkt_start(buf_ptr, size);
}
return buf_ptr;
}
esp_err_t esp_apptrace_membufs_up_buffer_put(esp_apptrace_membufs_proto_data_t *proto, uint8_t *ptr, esp_apptrace_tmo_t *tmo)
{
esp_apptrace_membufs_pkt_end(ptr);
// TODO: mark block as busy in order not to re-use it for other tracing calls until it is completely written
// TODO: avoid potential situation when all memory is consumed by low prio tasks which can not complete writing due to
// higher prio tasks and the latter can not allocate buffers at all
// this is abnormal situation can be detected on host which will receive only uncompleted buffers
// workaround: use own memcpy which will kick-off dead tracing calls
return ESP_OK;
}
esp_err_t esp_apptrace_membufs_flush_nolock(esp_apptrace_membufs_proto_data_t *proto, uint32_t min_sz, esp_apptrace_tmo_t *tmo)
{
int res = ESP_OK;
if (ESP_APPTRACE_INBLOCK_MARKER(proto) < min_sz) {
ESP_APPTRACE_LOGI("Ignore flush request for min %d bytes. Bytes in block: %d.", min_sz, ESP_APPTRACE_INBLOCK_MARKER(proto));
return ESP_OK;
}
// switch block while size of data (including that in pending buffer) is more than min size
while (ESP_APPTRACE_INBLOCK_MARKER(proto) > min_sz) {
ESP_APPTRACE_LOGD("Try to flush %d bytes. Wait until block switch for %lld us", ESP_APPTRACE_INBLOCK_MARKER(proto), tmo->tmo);
res = esp_apptrace_membufs_swap_waitus(proto, tmo);
if (res != ESP_OK) {
if (tmo->tmo != ESP_APPTRACE_TMO_INFINITE)
ESP_APPTRACE_LOGW("Failed to switch to another block in %lld us!", tmo->tmo);
else
ESP_APPTRACE_LOGE("Failed to switch to another block in %lld us!", tmo->tmo);
return res;
}
}
return res;
}

View File

@@ -1,49 +1,44 @@
/*
* SPDX-FileCopyrightText: 2017-2021 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
// Copyright 2017 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_app_trace_util.h"
#include "sdkconfig.h"
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////// Locks /////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
#if ESP_APPTRACE_PRINT_LOCK
static esp_apptrace_lock_t s_log_lock = {.irq_stat = 0, .portmux = portMUX_INITIALIZER_UNLOCKED};
#if CONFIG_IDF_TARGET_ESP32
#include "esp32/clk.h"
#elif CONFIG_IDF_TARGET_ESP32S2BETA
#include "esp32s2beta/clk.h"
#endif
int esp_apptrace_log_lock(void)
{
#if ESP_APPTRACE_PRINT_LOCK
esp_apptrace_tmo_t tmo;
esp_apptrace_tmo_init(&tmo, ESP_APPTRACE_TMO_INFINITE);
int ret = esp_apptrace_lock_take(&s_log_lock, &tmo);
return ret;
#else
return 0;
#endif
}
void esp_apptrace_log_unlock(void)
{
#if ESP_APPTRACE_PRINT_LOCK
esp_apptrace_lock_give(&s_log_lock);
#endif
}
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////// TIMEOUT /////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
#define ESP_APPTRACE_CPUTICKS2US(_t_, _cpu_freq_) ((_t_)/(_cpu_freq_/1000000))
#define ESP_APPTRACE_US2CPUTICKS(_t_, _cpu_freq_) ((_t_)*(_cpu_freq_/1000000))
esp_err_t esp_apptrace_tmo_check(esp_apptrace_tmo_t *tmo)
{
if (tmo->tmo != (int64_t)-1) {
tmo->elapsed = esp_timer_get_time() - tmo->start;
int cpu_freq = esp_clk_cpu_freq();
if (tmo->tmo != ESP_APPTRACE_TMO_INFINITE) {
unsigned cur = portGET_RUN_TIME_COUNTER_VALUE();
if (tmo->start <= cur) {
tmo->elapsed = ESP_APPTRACE_CPUTICKS2US(cur - tmo->start, cpu_freq);
} else {
tmo->elapsed = ESP_APPTRACE_CPUTICKS2US(0xFFFFFFFF - tmo->start + cur, cpu_freq);
}
if (tmo->elapsed >= tmo->tmo) {
return ESP_ERR_TIMEOUT;
}
@@ -57,26 +52,45 @@ esp_err_t esp_apptrace_tmo_check(esp_apptrace_tmo_t *tmo)
esp_err_t esp_apptrace_lock_take(esp_apptrace_lock_t *lock, esp_apptrace_tmo_t *tmo)
{
esp_err_t ret;
int res;
while (1) {
// Try enter a critical section (i.e., take the spinlock) with 0 timeout
if (portTRY_ENTER_CRITICAL(&(lock->mux), 0) == pdTRUE) {
// do not overwrite lock->int_state before we actually acquired the mux
unsigned int_state = portENTER_CRITICAL_NESTED();
// FIXME: if mux is busy it is not good idea to loop during the whole tmo with disabled IRQs.
// So we check mux state using zero tmo, restore IRQs and let others tasks/IRQs to run on this CPU
// while we are doing our own tmo check.
#ifdef CONFIG_FREERTOS_PORTMUX_DEBUG
bool success = vPortCPUAcquireMutexTimeout(&lock->mux, 0, __FUNCTION__, __LINE__);
#else
bool success = vPortCPUAcquireMutexTimeout(&lock->mux, 0);
#endif
if (success) {
lock->int_state = int_state;
return ESP_OK;
}
// Failed to enter the critical section, so interrupts are still enabled. Check if we have timed out.
ret = esp_apptrace_tmo_check(tmo);
if (ret != ESP_OK) {
break; // Timed out, exit now
portEXIT_CRITICAL_NESTED(int_state);
// we can be preempted from this place till the next call (above) to portENTER_CRITICAL_NESTED()
res = esp_apptrace_tmo_check(tmo);
if (res != ESP_OK) {
break;
}
// Haven't timed out, try again
}
return ret;
return res;
}
esp_err_t esp_apptrace_lock_give(esp_apptrace_lock_t *lock)
{
portEXIT_CRITICAL(&(lock->mux));
// save lock's irq state value for this CPU
unsigned int_state = lock->int_state;
// after call to the following func we can not be sure that lock->int_state
// is not overwritten by other CPU who has acquired the mux just after we released it. See esp_apptrace_lock_take().
#ifdef CONFIG_FREERTOS_PORTMUX_DEBUG
vPortCPUReleaseMutex(&lock->mux, __FUNCTION__, __LINE__);
#else
vPortCPUReleaseMutex(&lock->mux);
#endif
portEXIT_CRITICAL_NESTED(int_state);
return ESP_OK;
}

View File

@@ -0,0 +1,33 @@
#
# Component Makefile
#
COMPONENT_SRCDIRS := .
COMPONENT_ADD_INCLUDEDIRS = include
COMPONENT_ADD_LDFLAGS = -lapp_trace
ifdef CONFIG_SYSVIEW_ENABLE
COMPONENT_ADD_INCLUDEDIRS += \
sys_view/Config \
sys_view/SEGGER \
sys_view/Sample/OS
COMPONENT_SRCDIRS += \
gcov \
sys_view/SEGGER \
sys_view/Sample/OS \
sys_view/Sample/Config \
sys_view/esp32 \
sys_view/ext
else
ifdef CONFIG_APPTRACE_GCOV_ENABLE
# do not produce gcov info for this module, it is used as transport for gcov
CFLAGS := $(subst --coverage,,$(CFLAGS))
COMPONENT_ADD_LDFLAGS += -Wl,--undefined=gcov_rtio_atexit
COMPONENT_SRCDIRS += gcov
endif
endif
COMPONENT_ADD_LDFRAGMENTS += linker.lf

View File

@@ -1,8 +1,16 @@
/*
* SPDX-FileCopyrightText: 2017-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
// Copyright 2017 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// This module implements runtime file I/O API for GCOV.
@@ -11,22 +19,23 @@
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/semphr.h"
#include "soc/cpu.h"
#include "soc/timer_periph.h"
#include "esp_app_trace.h"
#include "esp_freertos_hooks.h"
#include "esp_private/dbg_stubs.h"
#include "esp_ipc.h"
#include "hal/wdt_hal.h"
#if CONFIG_IDF_TARGET_ESP32
#include "esp32/rom/libc_stubs.h"
#elif CONFIG_IDF_TARGET_ESP32S2
#include "esp32s2/rom/libc_stubs.h"
#elif CONFIG_IDF_TARGET_ESP32S2BETA
#include "esp32s2beta/rom/libc_stubs.h"
#endif
#if CONFIG_APPTRACE_GCOV_ENABLE
#define ESP_GCOV_DOWN_BUF_SIZE 4200
#define LOG_LOCAL_LEVEL CONFIG_LOG_DEFAULT_LEVEL
#include "esp_log.h"
const static char *TAG = "esp_gcov_rtio";
static volatile bool s_create_gcov_task = false;
@@ -76,8 +85,7 @@ gcov_exit:
void gcov_create_task(void *arg)
{
ESP_EARLY_LOGV(TAG, "%s", __FUNCTION__);
xTaskCreatePinnedToCore(&gcov_dump_task, "gcov_dump_task", CONFIG_APPTRACE_GCOV_DUMP_TASK_STACK_SIZE,
(void *)&s_gcov_task_running, configMAX_PRIORITIES - 1, NULL, 0);
xTaskCreatePinnedToCore(&gcov_dump_task, "gcov_dump_task", 2048, (void *)&s_gcov_task_running, configMAX_PRIORITIES - 1, NULL, 0);
}
void gcov_create_task_tick_hook(void)
@@ -104,7 +112,7 @@ static int esp_dbg_stub_gcov_entry(void)
return ESP_OK;
}
void gcov_rtio_init(void)
int gcov_rtio_atexit(void (*function)(void) __attribute__ ((unused)))
{
uint32_t capabilities = 0;
ESP_EARLY_LOGV(TAG, "%s", __FUNCTION__);
@@ -113,6 +121,7 @@ void gcov_rtio_init(void)
esp_dbg_stub_entry_set(ESP_DBG_STUB_ENTRY_CAPABILITIES, capabilities | ESP_DBG_STUB_CAP_GCOV_TASK);
}
esp_register_freertos_tick_hook(gcov_create_task_tick_hook);
return ESP_OK;
}
void esp_gcov_dump(void)
@@ -134,9 +143,7 @@ void esp_gcov_dump(void)
void *gcov_rtio_fopen(const char *path, const char *mode)
{
ESP_EARLY_LOGV(TAG, "%s '%s' '%s'", __FUNCTION__, path, mode);
void *f = esp_apptrace_fopen(ESP_APPTRACE_DEST_TRAX, path, mode);
ESP_EARLY_LOGV(TAG, "%s ret %p", __FUNCTION__, f);
return f;
return esp_apptrace_fopen(ESP_APPTRACE_DEST_TRAX, path, mode);
}
int gcov_rtio_fclose(void *stream)
@@ -172,26 +179,4 @@ long gcov_rtio_ftell(void *stream)
ESP_EARLY_LOGV(TAG, "%s(%p) = %ld", __FUNCTION__, stream, ret);
return ret;
}
int gcov_rtio_feof(void *stream)
{
int ret = esp_apptrace_feof(ESP_APPTRACE_DEST_TRAX, stream);
ESP_EARLY_LOGV(TAG, "%s(%p) = %d", __FUNCTION__, stream, ret);
return ret;
}
void gcov_rtio_setbuf(void *arg1 __attribute__ ((unused)), void *arg2 __attribute__ ((unused)))
{
return;
}
/* Wrappers for Gcov functions */
extern void __real___gcov_init(void *info);
void __wrap___gcov_init(void *info)
{
__real___gcov_init(info);
gcov_rtio_init();
}
#endif

View File

@@ -1,8 +0,0 @@
fopen gcov_rtio_fopen
fclose gcov_rtio_fclose
fwrite gcov_rtio_fwrite
fread gcov_rtio_fread
fseek gcov_rtio_fseek
ftell gcov_rtio_ftell
setbuf gcov_rtio_setbuf
feof gcov_rtio_feof

View File

@@ -1,15 +1,23 @@
/*
* SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
// Copyright 2018 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include <sdkconfig.h>
#define HEAP_TRACE_SRCFILE /* don't warn on inclusion here */
#include "esp_heap_trace.h"
#undef HEAP_TRACE_SRCFILE
#include "esp_heap_caps.h"
#if CONFIG_APPTRACE_SV_ENABLE
#if CONFIG_SYSVIEW_ENABLE
#include "esp_app_trace.h"
#include "esp_sysview_trace.h"
#endif
@@ -18,7 +26,7 @@
#ifdef CONFIG_HEAP_TRACING_TOHOST
#if !CONFIG_APPTRACE_SV_ENABLE
#if !CONFIG_SYSVIEW_ENABLE
#error None of the heap tracing backends is enabled! You must enable SystemView compatible tracing to use this feature.
#endif
@@ -34,7 +42,7 @@ esp_err_t heap_trace_init_tohost(void)
esp_err_t heap_trace_start(heap_trace_mode_t mode_param)
{
#if CONFIG_APPTRACE_SV_ENABLE
#if CONFIG_SYSVIEW_ENABLE
esp_err_t ret = esp_sysview_heap_trace_start((uint32_t)-1);
if (ret != ESP_OK) {
return ret;
@@ -47,7 +55,7 @@ esp_err_t heap_trace_start(heap_trace_mode_t mode_param)
esp_err_t heap_trace_stop(void)
{
esp_err_t ret = ESP_ERR_NOT_SUPPORTED;
#if CONFIG_APPTRACE_SV_ENABLE
#if CONFIG_SYSVIEW_ENABLE
ret = esp_sysview_heap_trace_stop();
#endif
s_tracing = false;
@@ -69,28 +77,18 @@ esp_err_t heap_trace_get(size_t index, heap_trace_record_t *record)
return ESP_ERR_NOT_SUPPORTED;
}
esp_err_t heap_trace_summary(heap_trace_summary_t *summary)
{
return ESP_ERR_NOT_SUPPORTED;
}
void heap_trace_dump(void)
{
return;
}
void heap_trace_dump_caps(__attribute__((unused)) const uint32_t caps)
{
return;
}
/* Add a new allocation to the heap trace records */
static HEAP_IRAM_ATTR void record_allocation(const heap_trace_record_t *record)
static IRAM_ATTR void record_allocation(const heap_trace_record_t *record)
{
if (!s_tracing) {
return;
}
#if CONFIG_APPTRACE_SV_ENABLE
#if CONFIG_SYSVIEW_ENABLE
esp_sysview_heap_trace_alloc(record->address, record->size, record->alloced_by);
#endif
}
@@ -100,12 +98,12 @@ static HEAP_IRAM_ATTR void record_allocation(const heap_trace_record_t *record)
For HEAP_TRACE_ALL, this means filling in the freed_by pointer.
For HEAP_TRACE_LEAKS, this means removing the record from the log.
*/
static HEAP_IRAM_ATTR void record_free(void *p, void **callers)
static IRAM_ATTR void record_free(void *p, void **callers)
{
if (!s_tracing) {
return;
}
#if CONFIG_APPTRACE_SV_ENABLE
#if CONFIG_SYSVIEW_ENABLE
esp_sysview_heap_trace_free(p, callers);
#endif
}
@@ -113,3 +111,4 @@ static HEAP_IRAM_ATTR void record_free(void *p, void **callers)
#include "heap_trace.inc"
#endif /*CONFIG_HEAP_TRACING_TOHOST*/

View File

@@ -1,8 +1,16 @@
/*
* SPDX-FileCopyrightText: 2017-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
// Copyright 2017 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// Hot It Works
// ************
@@ -19,6 +27,7 @@
#if CONFIG_APPTRACE_ENABLE
#define LOG_LOCAL_LEVEL CONFIG_LOG_DEFAULT_LEVEL
#include "esp_log.h"
const static char *TAG = "esp_host_file_io";
@@ -29,7 +38,6 @@ const static char *TAG = "esp_host_file_io";
#define ESP_APPTRACE_FILE_CMD_FSEEK 0x4
#define ESP_APPTRACE_FILE_CMD_FTELL 0x5
#define ESP_APPTRACE_FILE_CMD_STOP 0x6 // indicates that there is no files to transfer
#define ESP_APPTRACE_FILE_CMD_FEOF 0x7
/** File operation header */
typedef struct {
@@ -69,11 +77,6 @@ typedef struct {
void * file;
} esp_apptrace_fseek_args_t;
/** Helper structure for feof */
typedef struct {
void *file;
} esp_apptrace_feof_args_t;
/** Helper structure for ftell */
typedef struct {
void *file;
@@ -143,7 +146,7 @@ void *esp_apptrace_fopen(esp_apptrace_dest_t dest, const char *path, const char
ESP_EARLY_LOGV(TAG, "esp_apptrace_fopen '%s' '%s'", path, mode);
if (path == NULL || mode == NULL) {
return 0;
return 0;
}
cmd_args.path = path;
@@ -214,7 +217,7 @@ size_t esp_apptrace_fwrite(esp_apptrace_dest_t dest, const void *ptr, size_t siz
ESP_EARLY_LOGV(TAG, "esp_apptrace_fwrite f %p l %d", stream, size*nmemb);
if (ptr == NULL) {
return 0;
return 0;
}
cmd_args.buf = (void *)ptr;
@@ -234,11 +237,8 @@ size_t esp_apptrace_fwrite(esp_apptrace_dest_t dest, const void *ptr, size_t siz
ESP_EARLY_LOGE(TAG, "Failed to read response (%d)!", ret);
return 0;
}
/* OpenOCD writes it like that:
* fwrite(buf, size, 1, file);
* So, if 1 was returned that means fwrite succeed
*/
return resp == 1 ? nmemb : 0;
return resp;
}
static void esp_apptrace_fread_args_prepare(uint8_t *buf, void *priv)
@@ -256,7 +256,7 @@ size_t esp_apptrace_fread(esp_apptrace_dest_t dest, void *ptr, size_t size, size
ESP_EARLY_LOGV(TAG, "esp_apptrace_fread f %p l %d", stream, size*nmemb);
if (ptr == NULL) {
return 0;
return 0;
}
cmd_args.size = size * nmemb;
@@ -275,20 +275,14 @@ size_t esp_apptrace_fread(esp_apptrace_dest_t dest, void *ptr, size_t size, size
ESP_EARLY_LOGE(TAG, "Failed to read response (%d)!", ret);
return 0;
}
if (resp == 0) {
return 0;
if (resp > 0) {
ret = esp_apptrace_file_rsp_recv(dest, ptr, resp);
if (ret != ESP_OK) {
ESP_EARLY_LOGE(TAG, "Failed to read file data (%d)!", ret);
return 0;
}
}
ret = esp_apptrace_file_rsp_recv(dest, ptr, resp);
if (ret != ESP_OK) {
ESP_EARLY_LOGE(TAG, "Failed to read file data (%d)!", ret);
return 0;
}
/* OpenOCD reads it like that:
* fread(buf, 1 ,size, file);
* So, total read bytes count returns
*/
return resp/size; // return the number of items read
return resp;
}
static void esp_apptrace_fseek_args_prepare(uint8_t *buf, void *priv)
@@ -367,34 +361,4 @@ int esp_apptrace_fstop(esp_apptrace_dest_t dest)
return ret;
}
static void esp_apptrace_feof_args_prepare(uint8_t *buf, void *priv)
{
esp_apptrace_feof_args_t *args = priv;
memcpy(buf, &args->file, sizeof(args->file));
}
int esp_apptrace_feof(esp_apptrace_dest_t dest, void *stream)
{
esp_apptrace_feof_args_t cmd_args;
cmd_args.file = stream;
esp_err_t ret = esp_apptrace_file_cmd_send(dest, ESP_APPTRACE_FILE_CMD_FEOF, esp_apptrace_feof_args_prepare,
&cmd_args, sizeof(cmd_args));
if (ret != ESP_OK) {
ESP_EARLY_LOGE(TAG, "Failed to send file cmd (%d)!", ret);
return EOF;
}
// now read the answer
int resp;
ret = esp_apptrace_file_rsp_recv(dest, (uint8_t *)&resp, sizeof(resp));
if (ret != ESP_OK) {
ESP_EARLY_LOGE(TAG, "Failed to read response (%d)!", ret);
return EOF;
}
return resp;
}
#endif

View File

@@ -1,8 +1,16 @@
/*
* SPDX-FileCopyrightText: 2017-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
// Copyright 2017 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#ifndef ESP_APP_TRACE_H_
#define ESP_APP_TRACE_H_
@@ -18,11 +26,8 @@ extern "C" {
* Application trace data destinations bits.
*/
typedef enum {
ESP_APPTRACE_DEST_JTAG = 1, ///< JTAG destination
ESP_APPTRACE_DEST_TRAX = ESP_APPTRACE_DEST_JTAG, ///< xxx_TRAX name is obsolete, use more common xxx_JTAG
ESP_APPTRACE_DEST_UART, ///< UART destination
ESP_APPTRACE_DEST_MAX = ESP_APPTRACE_DEST_UART+1,
ESP_APPTRACE_DEST_NUM
ESP_APPTRACE_DEST_TRAX = 0x1, ///< JTAG destination
ESP_APPTRACE_DEST_UART0 = 0x2, ///< UART destination
} esp_apptrace_dest_t;
/**
@@ -36,7 +41,7 @@ esp_err_t esp_apptrace_init(void);
/**
* @brief Configures down buffer.
* @note Needs to be called before attempting to receive any data using esp_apptrace_down_buffer_get and esp_apptrace_read.
* @note Needs to be called before initiating any data transfer using esp_apptrace_buffer_get and esp_apptrace_write.
* This function does not protect internal data by lock.
*
* @param buf Address of buffer to use for down channel (host to target) data.
@@ -46,7 +51,7 @@ void esp_apptrace_down_buffer_config(uint8_t *buf, uint32_t size);
/**
* @brief Allocates buffer for trace data.
* Once the data in the buffer is ready to be sent, esp_apptrace_buffer_put must be called to indicate it.
* After data in buffer are ready to be sent off esp_apptrace_buffer_put must be called to indicate it.
*
* @param dest Indicates HW interface to send data.
* @param size Size of data to write to trace buffer.
@@ -57,8 +62,8 @@ void esp_apptrace_down_buffer_config(uint8_t *buf, uint32_t size);
uint8_t *esp_apptrace_buffer_get(esp_apptrace_dest_t dest, uint32_t size, uint32_t tmo);
/**
* @brief Indicates that the data in the buffer is ready to be sent.
* This function is a counterpart of and must be preceded by esp_apptrace_buffer_get.
* @brief Indicates that the data in buffer are ready to be sent off.
* This function is a counterpart of and must be preceeded by esp_apptrace_buffer_get.
*
* @param dest Indicates HW interface to send data. Should be identical to the same parameter in call to esp_apptrace_buffer_get.
* @param ptr Address of trace buffer to release. Should be the value returned by call to esp_apptrace_buffer_get.
@@ -81,7 +86,7 @@ esp_err_t esp_apptrace_buffer_put(esp_apptrace_dest_t dest, uint8_t *ptr, uint32
esp_err_t esp_apptrace_write(esp_apptrace_dest_t dest, const void *data, uint32_t size, uint32_t tmo);
/**
* @brief vprintf-like function to send log messages to host via specified HW interface.
* @brief vprintf-like function to sent log messages to host via specified HW interface.
*
* @param dest Indicates HW interface to send data.
* @param tmo Timeout for operation (in us). Use ESP_APPTRACE_TMO_INFINITE to wait indefinitely.
@@ -93,7 +98,7 @@ esp_err_t esp_apptrace_write(esp_apptrace_dest_t dest, const void *data, uint32_
int esp_apptrace_vprintf_to(esp_apptrace_dest_t dest, uint32_t tmo, const char *fmt, va_list ap);
/**
* @brief vprintf-like function to send log messages to host.
* @brief vprintf-like function to sent log messages to host.
*
* @param fmt Address of format string.
* @param ap List of arguments.
@@ -114,7 +119,7 @@ esp_err_t esp_apptrace_flush(esp_apptrace_dest_t dest, uint32_t tmo);
/**
* @brief Flushes remaining data in trace buffer to host without locking internal data.
* This is a special version of esp_apptrace_flush which should be called from panic handler.
* This is special version of esp_apptrace_flush which should be called from panic handler.
*
* @param dest Indicates HW interface to flush data on.
* @param min_sz Threshold for flushing data. If current filling level is above this value, data will be flushed. TRAX destinations only.
@@ -138,7 +143,7 @@ esp_err_t esp_apptrace_read(esp_apptrace_dest_t dest, void *data, uint32_t *size
/**
* @brief Retrieves incoming data buffer if any.
* Once data in the buffer is processed, esp_apptrace_down_buffer_put must be called to indicate it.
* After data in buffer are processed esp_apptrace_down_buffer_put must be called to indicate it.
*
* @param dest Indicates HW interface to receive data.
* @param size Address to store size of available data in down buffer. Must be initialized with requested value.
@@ -149,8 +154,8 @@ esp_err_t esp_apptrace_read(esp_apptrace_dest_t dest, void *data, uint32_t *size
uint8_t *esp_apptrace_down_buffer_get(esp_apptrace_dest_t dest, uint32_t *size, uint32_t tmo);
/**
* @brief Indicates that the data in the down buffer is processed.
* This function is a counterpart of and must be preceded by esp_apptrace_down_buffer_get.
* @brief Indicates that the data in down buffer are processed.
* This function is a counterpart of and must be preceeded by esp_apptrace_down_buffer_get.
*
* @param dest Indicates HW interface to receive data. Should be identical to the same parameter in call to esp_apptrace_down_buffer_get.
* @param ptr Address of trace buffer to release. Should be the value returned by call to esp_apptrace_down_buffer_get.
@@ -245,7 +250,7 @@ int esp_apptrace_fseek(esp_apptrace_dest_t dest, void *stream, long offset, int
int esp_apptrace_ftell(esp_apptrace_dest_t dest, void *stream);
/**
* @brief Indicates to the host that all file operations are complete.
* @brief Indicates to the host that all file operations are completed.
* This function should be called after all file operations are finished and
* indicate to the host that it can perform cleanup operations (close open files etc.).
*
@@ -255,17 +260,6 @@ int esp_apptrace_ftell(esp_apptrace_dest_t dest, void *stream);
*/
int esp_apptrace_fstop(esp_apptrace_dest_t dest);
/**
* @brief Test end-of-file indicator on a stream.
* This function has the same semantic as 'feof' except for the first argument.
*
* @param dest Indicates HW interface to use.
* @param stream File handle returned by esp_apptrace_fopen.
*
* @return Non-Zero if end-of-file indicator is set for stream. See feof for details.
*/
int esp_apptrace_feof(esp_apptrace_dest_t dest, void *stream);
/**
* @brief Triggers gcov info dump.
* This function waits for the host to connect to target before dumping data.

View File

@@ -1,8 +1,16 @@
/*
* SPDX-FileCopyrightText: 2017-2021 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
// Copyright 2017 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#ifndef ESP_APP_TRACE_UTIL_H_
#define ESP_APP_TRACE_UTIL_H_
@@ -12,20 +20,19 @@ extern "C" {
#include "freertos/FreeRTOS.h"
#include "esp_err.h"
#include "esp_timer.h"
/** Infinite waiting timeout */
#define ESP_APPTRACE_TMO_INFINITE ((uint32_t)-1)
/** Structure which holds data necessary for measuring time intervals.
/** Structure which holds data necessary for measuring time intervals.
*
* After initialization via esp_apptrace_tmo_init() user needs to call esp_apptrace_tmo_check()
* periodically to check timeout for expiration.
*/
typedef struct {
int64_t start; ///< time interval start (in us)
int64_t tmo; ///< timeout value (in us)
int64_t elapsed; ///< elapsed time (in us)
uint32_t start; ///< time interval start (in CPU ticks)
uint32_t tmo; ///< timeout value (in us)
uint32_t elapsed; ///< elapsed time (in us)
} esp_apptrace_tmo_t;
/**
@@ -36,28 +43,28 @@ typedef struct {
*/
static inline void esp_apptrace_tmo_init(esp_apptrace_tmo_t *tmo, uint32_t user_tmo)
{
tmo->start = esp_timer_get_time();
tmo->tmo = user_tmo == ESP_APPTRACE_TMO_INFINITE ? (int64_t)-1 : (int64_t)user_tmo;
tmo->start = portGET_RUN_TIME_COUNTER_VALUE();
tmo->tmo = user_tmo;
tmo->elapsed = 0;
}
/**
* @brief Checks timeout for expiration.
*
* @param tmo Pointer to timeout structure.
* @param tmo Pointer to timeout structure to be initialized.
*
* @return number of remaining us till tmo.
* @return ESP_OK on success, otherwise \see esp_err_t
*/
esp_err_t esp_apptrace_tmo_check(esp_apptrace_tmo_t *tmo);
static inline uint32_t esp_apptrace_tmo_remaining_us(esp_apptrace_tmo_t *tmo)
{
return tmo->tmo != (int64_t)-1 ? (tmo->elapsed - tmo->tmo) : ESP_APPTRACE_TMO_INFINITE;
return tmo->tmo != ESP_APPTRACE_TMO_INFINITE ? (tmo->elapsed - tmo->tmo) : ESP_APPTRACE_TMO_INFINITE;
}
/** Tracing module synchronization lock */
typedef struct {
spinlock_t mux;
portMUX_TYPE mux;
unsigned int_state;
} esp_apptrace_lock_t;
@@ -68,7 +75,7 @@ typedef struct {
*/
static inline void esp_apptrace_lock_init(esp_apptrace_lock_t *lock)
{
portMUX_INITIALIZE(&lock->mux);
vPortCPUInitializeMutex(&lock->mux);
lock->int_state = 0;
}
@@ -93,7 +100,7 @@ esp_err_t esp_apptrace_lock_give(esp_apptrace_lock_t *lock);
/** Ring buffer control structure.
*
* @note For purposes of application tracing module if there is no enough space for user data and write pointer can be wrapped
* @note For purposes of application tracing module if there is no enough space for user data and write pointer can be wrapped
* current ring buffer size can be temporarily shrinked in order to provide buffer with requested size.
*/
typedef struct {
@@ -161,30 +168,6 @@ uint32_t esp_apptrace_rb_read_size_get(esp_apptrace_rb_t *rb);
*/
uint32_t esp_apptrace_rb_write_size_get(esp_apptrace_rb_t *rb);
int esp_apptrace_log_lock(void);
void esp_apptrace_log_unlock(void);
#define ESP_APPTRACE_LOG( format, ... ) \
do { \
esp_apptrace_log_lock(); \
esp_rom_printf(format, ##__VA_ARGS__); \
esp_apptrace_log_unlock(); \
} while(0)
#define ESP_APPTRACE_LOG_LEV( _L_, level, format, ... ) \
do { \
if (LOG_LOCAL_LEVEL >= level) { \
ESP_APPTRACE_LOG(LOG_FORMAT(_L_, format), esp_log_early_timestamp(), TAG, ##__VA_ARGS__); \
} \
} while(0)
#define ESP_APPTRACE_LOGE( format, ... ) ESP_APPTRACE_LOG_LEV(E, ESP_LOG_ERROR, format, ##__VA_ARGS__)
#define ESP_APPTRACE_LOGW( format, ... ) ESP_APPTRACE_LOG_LEV(W, ESP_LOG_WARN, format, ##__VA_ARGS__)
#define ESP_APPTRACE_LOGI( format, ... ) ESP_APPTRACE_LOG_LEV(I, ESP_LOG_INFO, format, ##__VA_ARGS__)
#define ESP_APPTRACE_LOGD( format, ... ) ESP_APPTRACE_LOG_LEV(D, ESP_LOG_DEBUG, format, ##__VA_ARGS__)
#define ESP_APPTRACE_LOGV( format, ... ) ESP_APPTRACE_LOG_LEV(V, ESP_LOG_VERBOSE, format, ##__VA_ARGS__)
#define ESP_APPTRACE_LOGO( format, ... ) ESP_APPTRACE_LOG_LEV(E, ESP_LOG_NONE, format, ##__VA_ARGS__)
#ifdef __cplusplus
}
#endif

View File

@@ -1,8 +1,16 @@
/*
* SPDX-FileCopyrightText: 2018-2021 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
// Copyright 2018 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#ifndef ESP_SYSVIEW_TRACE_H_
#define ESP_SYSVIEW_TRACE_H_
@@ -12,7 +20,7 @@ extern "C" {
#include <stdarg.h>
#include "esp_err.h"
#include "SEGGER_RTT.h" // SEGGER_RTT_ESP_Flush
#include "SEGGER_RTT.h" // SEGGER_RTT_ESP32_Flush
#include "esp_app_trace_util.h" // ESP_APPTRACE_TMO_INFINITE
/**
@@ -24,7 +32,7 @@ extern "C" {
*/
static inline esp_err_t esp_sysview_flush(uint32_t tmo)
{
SEGGER_RTT_ESP_Flush(0, tmo);
SEGGER_RTT_ESP32_Flush(0, tmo);
return ESP_OK;
}

View File

@@ -1,23 +1,19 @@
[mapping:app_trace]
archive: libapp_trace.a
entries:
entries:
app_trace (noflash)
port_uart (noflash)
app_trace_util (noflash)
if APPTRACE_MEMBUFS_APPTRACE_PROTO_ENABLE:
app_trace_membufs_proto (noflash)
if APPTRACE_DEST_JTAG = y:
port (noflash)
if APPTRACE_SV_ENABLE = y:
if SYSVIEW_ENABLE = y:
SEGGER_SYSVIEW (noflash)
SEGGER_RTT_esp (noflash)
SEGGER_RTT_esp32 (noflash)
SEGGER_SYSVIEW_Config_FreeRTOS (noflash)
SEGGER_SYSVIEW_FreeRTOS (noflash)
[mapping:app_trace_driver]
[mapping:driver]
archive: libdriver.a
entries:
if APPTRACE_SV_TS_SOURCE_GPTIMER = y:
gptimer (noflash)
if SYSVIEW_TS_SOURCE_TIMER_00 = y || SYSVIEW_TS_SOURCE_TIMER_01 = y
|| SYSVIEW_TS_SOURCE_TIMER_10 = y || SYSVIEW_TS_SOURCE_TIMER_11 = y:
timer (noflash)
else:
* (default)

View File

@@ -1,36 +0,0 @@
/*
* SPDX-FileCopyrightText: 2020-2022 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef ESP_APP_TRACE_PORT_H_
#define ESP_APP_TRACE_PORT_H_
#include "esp_app_trace_util.h"
#ifdef __cplusplus
extern "C" {
#endif
/** Apptrace HW interface. */
typedef struct {
esp_err_t (*init)(void *hw_data);
uint8_t *(*get_up_buffer)(void *hw_data, uint32_t, esp_apptrace_tmo_t *);
esp_err_t (*put_up_buffer)(void *hw_data, uint8_t *, esp_apptrace_tmo_t *);
esp_err_t (*flush_up_buffer_nolock)(void *hw_data, uint32_t, esp_apptrace_tmo_t *);
esp_err_t (*flush_up_buffer)(void *hw_data, esp_apptrace_tmo_t *);
void (*down_buffer_config)(void *hw_data, uint8_t *buf, uint32_t size);
uint8_t *(*get_down_buffer)(void *hw_data, uint32_t *, esp_apptrace_tmo_t *);
esp_err_t (*put_down_buffer)(void *hw_data, uint8_t *, esp_apptrace_tmo_t *);
bool (*host_is_connected)(void *hw_data);
} esp_apptrace_hw_t;
esp_apptrace_hw_t *esp_apptrace_jtag_hw_get(void **data);
esp_apptrace_hw_t *esp_apptrace_uart_hw_get(int num, void **data);
#ifdef __cplusplus
}
#endif
#endif

Some files were not shown because too many files have changed in this diff Show More