Compare commits

..

1226 Commits
v4.2 ... v4.2.3

Author SHA1 Message Date
Ivan Grokhotkov
bb29e93ddf versions: Update version to 4.2.3 2022-03-03 14:44:57 +01:00
Jiang Jiang Jian
d503c23d7a Merge branch 'bugfix/update_stack_init_check_4.2' into 'release/v4.2'
Nimble: Updated checks of stack initialization status before executing stack command

See merge request espressif/esp-idf!17198
2022-02-22 09:12:00 +00:00
Jiang Jiang Jian
147f37d6a2 Merge branch 'bugfix/fix_ble_adv_underrun_error_v4.2' into 'release/v4.2'
components/bt: Fix ble adv_underrun issue(backport v4.2)

See merge request espressif/esp-idf!17166
2022-02-22 09:11:16 +00:00
Isha Pardikar
05f7dd1d28 Merge branch 'bugfix/update_stack_init_check_4.2' into 'release/v4.2'
Nimble: Updated checks of stack initialization status before executing stack command
2022-02-17 15:09:52 +05:30
xiewenxiang
e39a101aaa components/bt: Fix ble adv_underrun issue
components/bt: Fix LLCP collision for channel map update
2022-02-16 00:28:45 +08:00
Jiang Jiang Jian
473d39e6e6 Merge branch 'feature/refactor_phy_access_v4.2' into 'release/v4.2'
esp_wifi: refactor PHY access (Backport v4.2)

See merge request espressif/esp-idf!16975
2022-02-15 10:36:56 +00:00
zhangyanjiao
c4ae443171 esp_wifi: refactor modem sleep access phy 2022-02-15 11:48:03 +08:00
Xia Xiaotian
cf2093be03 esp_wifi: store PHY digital registers before disabling PHY and load
them after enabling PHY
2022-02-15 11:43:10 +08:00
zhangyanjiao
8920361ff3 make esp32 same to esp32s2 in esp_phy_enable() 2022-02-15 11:43:10 +08:00
Xia Xiaotian
d472641430 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-15 11:43:10 +08:00
Zim Kalinowski
e70c238be0 Merge branch 'bugfix/enterprise_certs_weak_md_v4.2' into 'release/v4.2'
esp_wifi: Fixed issue of weak md for certificates in wifi_enterprise example.(v4.2)

See merge request espressif/esp-idf!16990
2022-02-15 03:39:45 +00:00
Zim Kalinowski
15a20d8100 Merge branch 'bugfix/sdio_slave_dma_desc_int_v4.2' into 'release/v4.2'
sdio_slave: Fixed the issue that DMA descriptors allocated to non-DMA capable area (v4.2)

See merge request espressif/esp-idf!17139
2022-02-15 03:38:38 +00:00
Zim Kalinowski
6f2d77ed2c Merge branch 'bugfix/mdns_null_deref_fuzzer_v4.2' into 'release/v4.2'
mdns: Fix potential null deref reported by fuzzer test(v4.2)

See merge request espressif/esp-idf!17145
2022-02-15 03:37:55 +00:00
Jiang Jiang Jian
3055474491 Merge branch 'bugfix/usb_device_struct_cleanup_v4.2' into 'release/v4.2'
USB: Cleanup device side struct and fix incorrect DM pulldown configuration (v4.2)

See merge request espressif/esp-idf!17102
2022-02-15 03:28:01 +00:00
Jiang Jiang Jian
128f228169 Merge branch 'bugfix/rmt_s2_doesnt_support_rx_wrap_v4.2' into 'release/v4.2'
rmt: do not support rx wrap on esp32s2 (v4.2)

See merge request espressif/esp-idf!17081
2022-02-15 03:07:16 +00:00
Jiang Jiang Jian
95f7e51af0 Merge branch 'bugfix/eap_client_crash_v4.2' into 'release/v4.2'
wpa_supplicant: Fix memory corruption (v4.2)

See merge request espressif/esp-idf!17130
2022-02-15 03:06:40 +00:00
Darian Leung
3e9eec1ebf Fix incorrect D- pulldown and cleanup USB device struct
This commit fixes the incorrect setting of the D- pulldown resistor in the USB LL.
The usb_struct.h used by USB device mode has also been cleaned up.
2022-02-14 23:51:32 +08:00
David Cermak
3efd220463 mdns: Fix potential null deref reported by fuzzer test 2022-02-14 22:52:26 +08:00
Jiang Jiang Jian
7482ad5139 Merge branch 'bugfix/support_esp32s2_eco1_v4.2' into 'release/v4.2'
esp_phy: Update ESP32S2 phy lib to support eco1 chip(v4.2)

See merge request espressif/esp-idf!16722
2022-02-14 12:40:55 +00:00
Wang Meng Yang
faba034955 Merge branch 'bugfix/clear_whitelist_v4.2' into 'release/v4.2'
Nimble : Modify `ble_gap_wl_set` to support clearing complete whitelist

See merge request espressif/esp-idf!16942
2022-02-14 10:47:02 +00:00
Jiang Jiang Jian
7d376a36f0 Merge branch 'feature/pro_recv_hb_forv4.2' into 'release/v4.2'
provisioner receive heartbeat message(v4.2)

See merge request espressif/esp-idf!16640
2022-02-14 06:10:15 +00:00
Jiang Jiang Jian
9150716570 Merge branch 'bugfix/filter_repeated_packages_forv4.2' into 'release/v4.2'
filter repeated packages then send response(v4.2)

See merge request espressif/esp-idf!16820
2022-02-14 06:09:45 +00:00
Yuan Hong Hui
6f7badf942 filter repeated packages then send response(v4.2) 2022-02-14 06:09:44 +00:00
Jiang Jiang Jian
a5ce5002c0 Merge branch 'bugfix/modbus_fix_invalid_error_handling_for_duplicate_param_key_v42' into 'release/v4.2'
freemodbus: fix invalid error handling for duplicate param key (backport v4.2)

See merge request espressif/esp-idf!14787
2022-02-14 06:09:03 +00:00
Jiang Jiang Jian
a609fb0f02 Merge branch 'fix/gitlab_404_local_mirror_v4.2' into 'release/v4.2'
Handle gitlab 404 error (v4.2)

See merge request espressif/esp-idf!16960
2022-02-14 06:08:38 +00:00
Jiang Jiang Jian
893fae229c Merge branch 'bugfix/task_wdt_timeout_uint32_overflow_v4.2' into 'release/v4.2'
Task WDT: Fix overflow issue during timeout calculation (v4.2.3)

See merge request espressif/esp-idf!16983
2022-02-14 06:08:10 +00:00
Jiang Jiang Jian
82c529a773 Merge branch 'bugfix/mcpwm-deadtime-preset-config-backport_v4.2' into 'release/v4.2'
MCPWM/deadtime: fix and sync preset deadtime modes with well-known definition (backport v4.2)

See merge request espressif/esp-idf!14623
2022-02-14 06:02:37 +00:00
Li Hang Fan
54251cfada MCPWM/deadtime: fix and sync preset deadtime modes with well-known definition (backport v4.2) 2022-02-14 06:02:36 +00:00
Michael (XIAO Xufeng)
dbf33d7947 sdio_slave: fixed the issue DMA desc not capable 2022-02-14 12:57:57 +08:00
Michael (XIAO Xufeng)
4d9a68e091 Merge branch 'flash/add_th_support_v4.2' into 'release/v4.2'
spi_flash: add support for th 1M flash(backport v4.2)

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

See merge request espressif/esp-idf!16709
2022-02-13 14:45:30 +00:00
morris
c7b5d3494c rmt: do not support rx wrap on esp32s2
Closes https://github.com/espressif/esp-idf/issues/8354
2022-02-13 12:20:20 +08:00
Michael (XIAO Xufeng)
a7c053c28d Merge branch 'bugfix/add_hw_flow_ctrl_for_uart_test_v4.2' into 'release/v4.2'
driver: add diagnostic information into UART test, enable flow control (v4.2)

See merge request espressif/esp-idf!17115
2022-02-12 20:03:30 +00:00
Kapil Gupta
eec9d6db94 wpa_supplicant: Fix invalid memory dereference 2022-02-12 10:36:00 +05:30
Marius Vikhammer
9c81bceb0e Task WDT: Fix overflow issue during timeout calculation
Closes https://github.com/espressif/esp-idf/issues/8239
2022-02-11 15:57:33 +08:00
Ivan Grokhotkov
dd67f769d9 driver: add diagnostic information into UART test, enable flow control 2022-02-11 13:47:06 +08:00
Rahul Tank
3e1efffd8a Nimble : Modify ble_gap_wl_set to support clearing complete whitelist 2022-02-11 10:35:01 +05:30
Jiang Jiang Jian
9e7811b95e Merge branch 'bugfix/rd_rem_ext_feats_delayed_cs_4.2' into 'release/v4.2'
bugfix/fix cs event for rd_rem_ext_feats delayed issue (v4.2)

See merge request espressif/esp-idf!16892
2022-02-11 02:59:01 +00:00
Roland Dobai
8fed5801f7 Merge branch 'bugfix/add_dummy_to_total_size_v4.2' into 'release/v4.2'
Tools: fix bug with total size calculation issue (v4.2)

See merge request espressif/esp-idf!16862
2022-02-10 14:04:35 +00:00
Roland Dobai
d090020409 Merge branch 'bugfix/rm_copyright_ignore_list_v4.2' into 'release/v4.2'
CI: Remove unused copyright ignore list (v4.2)

See merge request espressif/esp-idf!16967
2022-02-10 14:03:58 +00:00
Roland Dobai
14038003be Merge branch 'bugfix/win_rename_delay_v4.2' into 'release/v4.2'
Tools: Use delay between rename attempts on Windows in the installer (v4.2)

See merge request espressif/esp-idf!17058
2022-02-10 14:03:42 +00:00
Michael (XIAO Xufeng)
dc50f0e828 Merge branch 'bugfix/fix_spi_cs_hold_time_issue_v4.2' into 'release/v4.2'
spi_master: fix spi cs_ena_posttrans issue (v4.2)

See merge request espressif/esp-idf!16688
2022-02-10 09:37:34 +00:00
Jiang Jiang Jian
d1ada53a7d Merge branch 'bugfix/wps_fixes_v4.2' into 'release/v4.2'
wpa_supplicant: Add WPS Fixes (backport V4.2)

See merge request espressif/esp-idf!17062
2022-02-10 08:14:23 +00:00
jincheng
17b8fbfc1b fix cs evt for rd_rem_ext_feats delayed issue 2022-02-10 15:28:26 +08:00
chenjianxing
10c604475d esp_phy: Update ESP32S2 phy lib to support eco1 chip 2022-02-10 14:00:53 +08:00
Kapil Gupta
eb90d9bf18 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:13:01 +05:30
Roland Dobai
6a2255a18b Tools: Use delay between rename attempts on Windows in the installer 2022-02-08 11:09:15 +01:00
aditi_lonkar
ef8a76c667 esp_wifi: Fixed issue of weak md for certificates in wifi_enterprise example. 2022-01-28 15:31:18 +05:30
simon.chupin
ddb8c8ddfd add test for checking memory segments with esptool.py 2022-01-27 15:07:38 +01:00
Roland Dobai
69e04fc263 CI: Remove unused copyright ignore list 2022-01-27 12:51:58 +01:00
Tomas Sebestik
7c3878b288 Handle gitlab 404 error
ci: do not retry on 404 when LOCAL_GITLAB_HTTPS_HOST not set
2022-01-27 11:44:44 +01:00
simon.chupin
d72fa4e62a tools/idf_size: Fixed bug with wrong memory calculation 2022-01-19 18:13:32 +01:00
Jiang Jiang Jian
fcce82ea53 Merge branch 'bugfix/modbus_port_fix_lgpl_licensed_files_v4.2' into 'release/v4.2'
freemodbus: fix port contains lgpl licensed files (v4.2)

See merge request espressif/esp-idf!16551
2022-01-19 08:23:42 +00:00
Jiang Jiang Jian
0e42db7ca8 Merge branch 'bugfix/fix_tbtt_and_phy_issues_v4.2' into 'release/v4.2'
esp_wifi: fix tbtt and phy issues (Backport v4.2)

See merge request espressif/esp-idf!16829
2022-01-19 05:01:12 +00:00
zhangyanjiao
2df406b6ce esp_wifi:
1. fix the issue that no tbtt is generated in station+softap mode when maximum modem sleep is enabled
2. store PHY digital registers before disabling PHY and load them after enabling PHY
3. update libphy.a to V4670 719f9f6_20210218 for esp32
4. update libphy.a to V1500 20210225_0a54a2f for esp32s2
2022-01-18 13:18:36 +08:00
Xia Xiaotian
c98745a5aa esp_wifi: store PHY digital registers before disabling PHY and load
them after enabling PHY
2022-01-18 13:18:36 +08:00
Jiang Jiang Jian
615ba73c4e Merge branch 'bugfix/fix_wifi_bugs_20220114_v4.2' into 'release/v4.2'
esp_wifi: fix some wifi bugs (Backport v4.2)

See merge request espressif/esp-idf!16795
2022-01-18 05:16:34 +00:00
aditi_lonkar
459674c444 esp_wifi: Fixed null pointer dereference 2022-01-14 15:00:52 +08:00
zhangyanjiao
c01c7acdab esp_wifi:
1. Fixed sniffer fcs error crash issue
2. Added support of SHA256 AKM without PMF enabled
3. Added station based check for auth frame formation
2022-01-14 14:57:51 +08:00
xiehang
69b8e2af84 example: Fix espnow stuck issue 2022-01-14 14:26:02 +08:00
ronghulin
f70ac4e529 fix phy init memory leak 2022-01-14 14:26:02 +08:00
28a340af37 Init phy data to default if invalid in flash partition to avoid bootloops
Signed-off-by: ronghulin <ronghulin@espressif.com>

Merges https://github.com/espressif/esp-idf/pull/6610
2022-01-14 14:26:02 +08:00
ronghulin
fa0edda538 Bugfix: Connect example to add scan mode config 2022-01-14 14:26:02 +08:00
Jiang Jiang Jian
909db7cd91 Merge branch 'mesh/bugfix_fix_layer2_node_connection_issue_v4.2' into 'release/v4.2'
esp_wifi_mesh: fix the issue that layer2 node connect to lower-layer node when FIXED-ROOT root disappeared(backport_v4.2)

See merge request espressif/esp-idf!15730
2022-01-14 05:32:46 +00:00
Jiang Jiang Jian
0336c5f525 Merge branch 'bugfix/wpa3_memory_leak_v4.2' into 'release/v4.2'
esp_wifi: Fixes memory leak in wpa3 connection.(v4.2)

See merge request espressif/esp-idf!16561
2022-01-14 04:42:53 +00:00
Jiang Jiang Jian
cf5d7befaf Merge branch 'bugfix/PRs_on_esp_hid_v4.2' into 'release/v4.2'
bugfix/handle_2_esp_hid_PRs (v4.2)

See merge request espressif/esp-idf!16710
2022-01-14 03:12:41 +00:00
Jiang Jiang Jian
9b53301b4d Merge branch 'bugfix/fix_spp_open_err_bda_v4.2' into 'release/v4.2'
Component_bt/Fix SPP acceptor open with wrong remote address[backport 4.2]

See merge request espressif/esp-idf!16615
2022-01-14 03:12:03 +00:00
Jiang Jiang Jian
85a36b86d0 Merge branch 'bugfix/touch_ll_get_sleep_time_v4.2' into 'release/v4.2'
Fixed error in "touch_ll_get_sleep_time" function for ESP32 (v4.2)

See merge request espressif/esp-idf!16249
2022-01-14 03:05:00 +00:00
Jiang Jiang Jian
9bf6cf5ed4 Merge branch 'bugfix/alarm_update_invalid_v4.2' into 'release/v4.2'
timer: stop alarm if alarm value doesn't change in ISR callback (v4.2)

See merge request espressif/esp-idf!16534
2022-01-14 03:04:36 +00:00
Jiang Jiang Jian
6683751579 Merge branch 'bugfix/gpio_uninstall_isr_service_intr_wdt_crash_v4.2' into 'release/v4.2'
gpio: Bugfix - Move esp_intr_free() out of the critical section in gpio_uninstall_isr_service() (backport v4.2)

See merge request espressif/esp-idf!16597
2022-01-14 03:04:15 +00:00
Jiang Jiang Jian
8f836882d4 Merge branch 'bugfix/fix_smartconfig_setopt_fail_v4.2' into 'release/v4.2'
smartconfig: Fix smartconfig set socket option fail (backport v4.2)

See merge request espressif/esp-idf!16773
2022-01-14 03:03:37 +00:00
Ivan Grokhotkov
7ad199d14a Merge branch 'feature/oocd_ver_upgrade_v4.2' into 'release/v4.2'
tools: Updates OpenOCD version to 'v0.11.0-esp32-20211220' (v4.2)

See merge request espressif/esp-idf!16767
2022-01-13 16:23:16 +00:00
yuanjm
1ebd52f36a smartconfig: Fix smartconfig set socket option fail 2022-01-13 11:00:13 +08:00
Roland Dobai
698efba393 Merge branch 'bugfix/fix_modbus_rs485_rts_en_fail_v42' into 'release/v4.2'
Bugfix/fix modbus rs485 rts en fail (backport v4.2)

See merge request espressif/esp-idf!11566
2022-01-12 08:44:05 +00:00
Zim Kalinowski
5f2f1c013a Merge branch 'bugfix/app_compatible_with_3_1_bootloader_v4.2' into 'release/v4.2'
esp_system: Fix RTC_WDT protection in esp_restart_noos (v4.2)

See merge request espressif/esp-idf!16742
2022-01-12 08:37:55 +00:00
Alexey Gerenkov
57c429e618 tools: Updates OpenOCD version to 'v0.11.0-esp32-20211220' 2022-01-12 09:30:24 +01:00
Krzysztof Budzynski
476a0eb26d Merge branch 'fix/remove_deprecated_macro_SPI_TRANS_SET_CD_v4.2' into 'release/v4.2'
Remove a deprecated macro: SPI_TRANS_SET_CD (v4.2)

See merge request espressif/esp-idf!16690
2022-01-12 05:50:53 +00:00
Michael (XIAO Xufeng)
aa445dceeb Merge branch 'bugfix/adc_power_issue_4.2' into 'release/v4.2'
adc: fix adc power issue (4.2)

See merge request espressif/esp-idf!14280
2022-01-12 03:38:19 +00:00
Wang Meng Yang
9b5e0fb672 Merge branch 'bugfix/a2dp_source_congest_v4.2' into 'release/v4.2'
component_bt: Fixed a2dp source audio data packet congestion causing choppy audio in a2dp sink(v4.2)

See merge request espressif/esp-idf!16708
2022-01-11 02:41:55 +00:00
Wang Meng Yang
3516d536ca Merge branch 'bugfix/config_parse_crash_after_flash_erase_v4.2' into 'release/v4.2'
component_bt: fixed config parse crash after flash_erase(v4.2)

See merge request espressif/esp-idf!16696
2022-01-11 02:39:23 +00:00
KonstantinKondrashov
18f2078c5c esp_system: Fix RTC_WDT protection in esp_restart_noos
Fixed issue - v4.3 app not compatible with 3.1 bootloader
2022-01-10 21:58:01 +08:00
Krzysztof Budzynski
ddb7d6c4a0 Merge branch 'docs/fixed_typos_in_esp32-s2-saola-1_user_guide' into 'release/v4.2'
Docs: Fixed typos in ESP32-S2-Saola-1 user guide (backport v4.2)

See merge request espressif/esp-idf!16695
2022-01-10 09:54:42 +00:00
Cao Sen Miao
e59e7e1432 spi_flash: add support for th 1M flash 2022-01-10 11:53:37 +08:00
Cao Sen Miao
dfa736b0e3 psram: add ESP32-D0WD-R2-V3 support 2022-01-10 11:06:25 +08:00
xiongweichao
f41d77cce9 btc_a2dp_control_set_datachnl_stat is only used by a2dp sink 2022-01-10 11:01:41 +08:00
xiongweichao
45b9b12c04 remove btc_a2dp_dispatch_datapath_evt and event 2022-01-10 11:00:59 +08:00
xiongweichao
cf2f2a44c7 Fixed the crash caused by calling esp_a2d_media_ctrl(ESP_A2D_MEDIA_CTRL_START) after stream started 2022-01-10 11:00:03 +08:00
xiongweichao
190bd80f3d Fixed a2dp source audio data packet congestion causing choppy audio in a2dp sink 2022-01-10 10:59:43 +08:00
aleks
239e56541c freemodbus: fix uart_wait_tx_done() reenable tx_done interrupt 2022-01-07 16:45:47 +00:00
aleks
9ac8205208 freemodbus: fix rts enable fail when transmit frame 2022-01-07 16:45:47 +00:00
aleks
4c5099d194 freemodbus: fix modbus rs485 rts enable fail v42 2022-01-07 16:45:47 +00:00
aleks
bf8bff9870 freemodbus: fix invalid error handling for duplicate param_key 2022-01-07 16:09:25 +00:00
xiongweichao
ae676e3491 fixed config parse crash after flash_erase
Closes https://github.com/espressif/esp-idf/issues/6170
2022-01-07 17:13:03 +08:00
Wang Ning
a30cfb2ef3 docs/fixed_typos_in_esp32-s2-saola-1_user_guide 2022-01-07 17:01:53 +08:00
Wang Fang
fec6e140fb fix: remove a deprecated macro: SPI_TRANS_SET_CD 2022-01-07 16:39:31 +08:00
Zim Kalinowski
9f0c9ff2f0 Merge branch 'doc/target_specifc_doxygen_header_v4.2' into 'release/v4.2'
docs: change some header path to use IDF_TARGET (v4.2)

See merge request espressif/esp-idf!15804
2022-01-07 07:49:26 +00:00
Armando
ca6636c33e spi_master: fix spi cs_ena_posttrans issue 2022-01-07 14:28:57 +08:00
Marius Vikhammer
2f02a80d31 docs: change some header path to use IDF_TARGET
Some header path were using hardcoded esp32 paths, when they should be
target dependent.
2022-01-07 11:16:30 +08:00
Jiang Jiang Jian
2b95a627be Merge branch 'bugfix/set_authmode_by_switching_number_to_string_v4.2' into 'release/v4.2'
CI: set authmode by switching number to string (backport v4.2)

See merge request espressif/esp-idf!16555
2022-01-06 10:09:30 +00:00
Armando
a129933ccd adc: apply adc power API to adc driver 2022-01-06 11:42:55 +08:00
Roland Dobai
56cfd0b86b Merge branch 'bugfix/idf_tools_test_without_versions_v4.2' into 'release/v4.2'
Tools: Load tool versions automatically for IDF Tools tests (v4.2)

See merge request espressif/esp-idf!16512
2022-01-04 09:48:09 +00:00
Yuan Hong Hui
8a47cdeb2d add cmd to publish and recv heartbeat message 2022-01-04 15:56:45 +08:00
Zim Kalinowski
dca26e3fe9 Merge branch 'bugfix/psram_fix_bootloader_v4.2' into 'release/v4.2'
bootloader: disable psram cache bug fix for bootloader (v4.2)

See merge request espressif/esp-idf!15806
2022-01-02 06:13:12 +00:00
liqigan
4b3b77e4e8 fix SPP open with wrong remote bd_addr 2021-12-31 15:46:15 +08:00
songruojing
7ef8012019 gpio: Bugfix - Move esp_intr_free() out of the critical section in gpio_uninstall_isr_service()
Closes https://github.com/espressif/esp-idf/issues/5571

Fix the bug that if the API was called from one core to free the interrupt source on the other core, it would trigger interrupt watchdog.

(cherry picked from commit 0e8286c57b)
2021-12-30 14:45:13 +08:00
Murray Fordyce
000599986f Fixed left right key confusion in comments.
"Left" and "Right" were swapped in some comments.
2021-12-30 11:02:54 +08:00
Robin Krens
e9714eaaa5 spacing styling correction 2021-12-30 11:02:54 +08:00
Robin Krens
c115194e88 minor styling changes 2021-12-30 11:02:54 +08:00
Robin Krens
77c3a113bf esp_hid: fix output report char declaration
Current issue: output reports sent by Windows not received.
The report characteristic declaration should also support write without
response as specified by HIDS profile:
See https://www.bluetooth.com/specifications/GATT/ (page 14)
2021-12-30 11:02:54 +08:00
Zim Kalinowski
5f137204b1 Merge branch 'bugfix/ringbuf_read_pointer_wrap_v4.2' into 'release/v4.2'
ringbuf: Fix bug where comparision between a signed and unsigned operand resulted in incorrect free size for no-split/allow-split buffers (v4.2)

See merge request espressif/esp-idf!15883
2021-12-30 02:22:05 +00:00
Zim Kalinowski
f94ce9f51d Merge branch 'bugfix/fix_select_timeout_v4.2' into 'release/v4.2'
VFS: `select` function's timeout is now POSIX compliant (backport v4.2)

See merge request espressif/esp-idf!16191
2021-12-30 02:20:31 +00:00
aditi_lonkar
0b98671385 esp_wifi: Fixes memory leak in wpa3 connection. 2021-12-28 11:37:23 +05:30
huchaoru
fac6a5af5b bugfix: set authmode by switching number to string (backport v4.2) 2021-12-27 20:00:33 +08:00
aleks
394c2c100f freemodbus: fix port contains lgpl licensed files
Initial version of freemodbus master port files have been added to ESP-IDF based on https://github.com/armink/FreeModbus_Slave-Master-RTT-STM32.
The overall repository license, at the time of adding these files, has been BSD 3-clause. However at that time, several port files carried LGPL license headers. As the author of these files confirmed in https://github.com/armink/FreeModbus_Slave-Master-RTT-STM32/issues/61#issuecomment-977828450, this wasn't intentional. ESP-IDF version of modbus master port has been rewritten to target FreeRTOS instead of RT-Thread, but the license headers remained from the original version. This commit corrects this, replacing the license of these files with BSD 3-clause.
2021-12-27 11:12:32 +01:00
Sudeep Mohanty
c6134337a6 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:14:17 +08:00
Sudeep Mohanty
31327caaf5 Merge branch 'bugfix/ringbuf_send_semaphore_release_order_v4.2' into 'release/v4.2'
esp_ringbuf: Fix order of semaphore release in xRingbufferSend (v4.2)

See merge request espressif/esp-idf!16231
2021-12-24 06:16:47 +00:00
morris
93c784e1c8 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:08:33 +08:00
Jiang Jiang Jian
775701d610 Merge branch 'feature/mbedtls-2.16.12-integration_v4.2' into 'release/v4.2'
mbedtls: upgrade to release v2.16.12 (v4.2)

See merge request espressif/esp-idf!16485
2021-12-24 03:20:34 +00:00
RichFalk
6df7b049a3 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-23 15:53:48 +08:00
shenjun
5ed4a3dbfb esp_wifi_mesh: fix the device can not receive IP_EVENT_STA_GOT_IP when the router restarted
1. fix the device can not receive IP_EVENT_STA_GOT_IP when the router restarted
2. fix the issue that layer2 node connect to lower-layer node when FIXED-ROOT root disappeared
2021-12-23 11:19:19 +08:00
Jiang Jiang Jian
9273f5045e Merge branch 'bugfix/fix_rx_fragment_error_issue_v4.2' into 'release/v4.2'
esp_wifi: fix fragment issue and PMF compatible for faulty APs(Backport v4.2)

See merge request espressif/esp-idf!16398
2021-12-22 17:33:54 +00:00
Roland Dobai
1699624dff Tools: Load tool versions automatically for IDF Tools tests 2021-12-22 10:37:01 +01:00
Mahavir Jain
1319034019 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:03:30 +05:30
Mahavir Jain
50df004292 mbedtls: small documentation update 2021-12-21 14:03:30 +05:30
Wang Meng Yang
e7687c7688 Merge branch 'bugfix/fix_spp_listen_err_v4.2' into 'release/v4.2'
Component_bt/Fix SPP cannot malloc slot bugs[backport v4.2]

See merge request espressif/esp-idf!16385
2021-12-21 05:28:25 +00:00
Jiang Jiang Jian
0c15051452 Merge branch 'bugfix/wpa_supplicant_logs_release_v4.2' into 'release/v4.2'
esp_wifi: Change the verbosity of wpa_supplicant logs. (Backport v4.2)

See merge request espressif/esp-idf!16347
2021-12-21 03:36:28 +00:00
Mahavir Jain
b4d4cbdd41 Merge branch 'bugfix/address_already_used_exception_in_ota_tests_v4.2' into 'release/v4.2'
Fix 'address already in use' exception in OTA tests (v4.2)

See merge request espressif/esp-idf!16418
2021-12-20 07:11:53 +00:00
Wang Meng Yang
db669217ac Merge branch 'feature/support_ble_direct_ind_low_adv_v4.2' into 'release/v4.2'
components/bt: Support low duty cycle directed advertising(backport release/v4.2)

See merge request espressif/esp-idf!16379
2021-12-20 03:11:22 +00:00
Harshit Malpani
46b58b5934 Fix for advanced_ota_redirect_url example failure in CI 2021-12-16 12:26:17 +05:30
Jiang Jiang Jian
769099dd64 Merge branch 'bugfix/lwip_config_dhcp_client_id_v4.2' into 'release/v4.2'
lw-ip: Add config for DHCP client id; Fix DNS server idx assert issue (v4.2)

See merge request espressif/esp-idf!16174
2021-12-16 06:43:41 +00:00
Harshit Malpani
a687c3413e 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:33:27 +05:30
Jiang Jiang Jian
33a6effd3e Merge branch 'feature/support_eap_fast_release_v4.2' into 'release/v4.2'
Feature/support eap fast release v4.2

See merge request espressif/esp-idf!16142
2021-12-16 03:37:49 +00:00
Jiang Jiang Jian
0204aea35b Merge branch 'bugfix/fix_blufi_encryption_fail_v4.2' into 'release/v4.2'
components/bt: fix blufi encryption fail(backport release/v4.2)

See merge request espressif/esp-idf!16316
2021-12-16 03:33:51 +00:00
David Cermak
0eb18951be 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/7912
2021-12-15 13:17:03 +01:00
Konstantin Kondrashov
0877949237 Merge branch 'bugfix/fix_esp32h2_efuse_get_ext_mac_v4.2' into 'release/v4.2'
efuse_table_gen: Fixes wrong joining fields with omitted names  (v4.2)

See merge request espressif/esp-idf!15739
2021-12-14 14:07:39 +00:00
NikLeberg
8c3b358abf 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 19:44:31 +08:00
Shang Zhou
6f8ad7eb5e docs: Update miswritten and abbreviated words and syntax errors for initialize WiFi section in esp_wifi.h header file 2021-12-14 19:43:54 +08:00
muhaidong
6baac84d4a 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 19:28:31 +08:00
Hrudaynath Dhabe
bab60d20af esp_wifi: Add an example for EAP-FAST. 2021-12-14 12:45:04 +05:30
nishanth.radja
69ca323a74 esp_wifi: Add support for EAP-FAST authentication method 2021-12-14 12:37:26 +05:30
xiewenxiang
146bbe95be components/bt: Fix high duty cycle directed advertising will not be stopped when timeout 2021-12-14 14:10:29 +08:00
xiewenxiang
b3adae9b40 components/bt: Support low duty cycle directed advertising 2021-12-14 14:10:29 +08:00
liqigan
6c2d8ea653 fix SPP server bugs when the BTC layer can not allocate a slot for the listen port 2021-12-14 11:16:42 +08:00
Vikram
c327a0016e Merge branch 'feature/local_control_sec1_v4.2' into 'release/v4.2'
Added support for security1 in local control (backport v4.2)

See merge request espressif/esp-idf!15280
2021-12-09 16:55:22 +00:00
Roland Dobai
01ebb72f0a Merge branch 'bugfix/remove_PIP_USER_v4.2' into 'release/v4.2'
tools: Add check for PIP_USER variable (backport v4.2)

See merge request espressif/esp-idf!16336
2021-12-09 08:10:10 +00:00
Vikram Dattu
f278db260e esp_local_ctrl: Added documentation to chose protocom security
Signed-off-by: Vikram Dattu <vikram.dattu@espressif.com>
2021-12-09 15:26:14 +08:00
Vikram Dattu
3af5f20da1 Added support for security1 in local control
1. Added config options to chose from protocom security.
    It can be chosen 0/1 or custom.
    Possible to set POP as well

2. Added support in `esp_local_ctrl.py` test script for sec_ver selection

Signed-off-by: Vikram Dattu <vikram.dattu@espressif.com>
2021-12-09 15:26:14 +08:00
Hrudaynath Dhabe
c3e66a4ba2 esp_wifi: Change the verbosity of wpa_supplicant logs. 2021-12-09 12:55:32 +05:30
Jiang Jiang Jian
2fa5cee80d Merge branch 'bugfix/fix_some_wifi_bugs_20211202_v4.2' into 'release/v4.2'
fix wifi bugs 20211202 (backport v4.2)

See merge request espressif/esp-idf!16256
2021-12-09 06:19:06 +00:00
Juraj Sadel
a43a21a761 tools: Add check for PIP_USER variable
Closes https://github.com/espressif/esp-idf/issues/7910
2021-12-08 16:18:39 +01:00
xiewenxiang
ab7ad4e771 components/bt: fix blufi encryption fail 2021-12-08 14:09:29 +08:00
Mahavir Jain
5cc2eb15c9 Merge branch 'bugfix/bootloader_debug_buffers_v4.2' into 'release/v4.2'
bootloader_support: Fix and re-enable bootloader_debug_buffer function (v4.2)

See merge request espressif/esp-idf!16075
2021-12-07 02:34:42 +00:00
Jiang Jiang Jian
e694ffd5af Merge branch 'bugfix/link_spi_flash_rom_func_in_bootloader_stage_v4.2' into 'release/v4.2'
esp_rom: link rom spi flash functions in bootloader stage (v4.2)

See merge request espressif/esp-idf!15258
2021-12-06 03:57:55 +00:00
Jiang Jiang Jian
6317335174 Merge branch 'feature/add_coex_hci_command_v4.2' into 'release/v4.2'
Add hci command to set coexistence status (v4.2)

See merge request espressif/esp-idf!16055
2021-12-06 03:57:11 +00:00
Jiang Jiang Jian
38714c37d1 Merge branch 'feature/adds_fault_injection_protection_for_check_anti_rollback_v4.2' into 'release/v4.2'
bootloader_support: Adds fault injection protection for check_anti_rollback (v4.2)

See merge request espressif/esp-idf!16181
2021-12-06 03:56:33 +00:00
Jiang Jiang Jian
36574af3c9 Merge branch 'reduce_bootup_time_when_using_usb-serial-jtag_v4.2' into 'release/v4.2'
rtc_clk: reduce bootup time when using usb-serial-jtag(backport v4.2)

See merge request espressif/esp-idf!16262
2021-12-06 03:55:21 +00:00
Jiang Jiang Jian
06db6f510f Merge branch 'feature/add_dhcp_option_v4.2' into 'release/v4.2'
lw-ip: Add macro to disable vendor class option(backport v4.2)

See merge request espressif/esp-idf!15982
2021-12-06 03:54:59 +00:00
jingli
417711c390 reduce bootup time when using usb-serial-jtag 2021-12-03 21:01:02 +08:00
zhangyanjiao
aa5e034c52 eps_wifi:
1. Fix airkiss and esptouch find channel crash issue
2. Fix RF singal test without 9M rate issue
3. Fix issue of setting invalid size to nvs misc log even after erasing it
4. Fix WEP connection and crash issue
2021-12-03 17:59:31 +08:00
xiehang
a249794640 esp_wifi: Add beacon timeout event 2021-12-03 15:37:06 +08:00
Axel Lin
721fe216e7 wpa_supplicant: Fix wps_free_pins to remove all pins
Current code does not correctly free all pins in wps_free_pins due to the
semicolon at the end of dl_list_for_each_safe(). Fix it.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
2021-12-03 14:35:55 +08:00
Sergey Gorban
f74b5accf3 Fixed error in "touch_ll_get_sleep_time" function for ESP32
Merges https://github.com/espressif/esp-idf/pull/6895
2021-12-03 12:41:31 +08:00
Mahavir Jain
37634f09b2 Merge branch 'fix/remove_warning_when_disabling_rom_dl_mode_v4.2' into 'release/v4.2'
secure_boot: Fix warning when UART ROM DL mode is disabled (v4.2)

See merge request espressif/esp-idf!16239
2021-12-03 04:27:14 +00:00
Jiang Jiang Jian
b656c406bf Merge branch 'bugfix/enable_gpio_20_v4.2' into 'release/v4.2'
gpio: Enable IO20 on ESP32 (backport v4.2)

See merge request espressif/esp-idf!15023
2021-12-03 03:39:47 +00:00
Jiang Jiang Jian
19643f715c Merge branch 'bugfix/fix_memory_leak_controller_deinit_v4.2' into 'release/v4.2'
ESP32: Fix memory leak in controller deinit function v4.2

See merge request espressif/esp-idf!15970
2021-12-03 03:32:18 +00:00
Roland Dobai
c3eb64ef85 Merge branch 'feature/oocd_ver_upgrade_v4.2' into 'release/v4.2'
tools: Updates OpenOCD version to 'v0.10.0-esp32-20211111' (v4.2)

See merge request espressif/esp-idf!16001
2021-12-02 17:28:37 +00:00
Alexey Gerenkov
3c3711dcc3 idf_tools: Adds 'linux-armhf' platform support 2021-12-02 16:53:28 +03:00
Alexey Gerenkov
c2ffbaf683 tools: Updates OpenOCD version to 'v0.10.0-esp32-20211111' 2021-12-02 16:53:23 +03:00
Aditya Patwardhan
bffa30785b secure_boot: Fix warning when UART ROM DL mode is disabled
*Additionally use updated calls to enable rom secure download mode
2021-12-02 21:40:49 +08:00
Mahavir Jain
adda59cc97 bootloader: add anti-FI checks around secure version in anti-rollback scheme 2021-12-02 21:17:27 +08:00
Anton Maklakov
392a126b05 Merge branch 'bugfix/ci_fix_clean_dir' into 'release/v4.2'
ci: Fix build system tests to clean the dir

See merge request espressif/esp-idf!16221
2021-12-02 12:08:49 +00:00
Sergei Silnov
b5d459ee05 ci: Fix build system tests to clean the dir 2021-12-01 18:29:42 +01:00
Gustavo Henrique Nihei
8ffd02be29 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-30 21:02:23 +08:00
Omar Chebib
53daf3dbbf 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:22:55 +08:00
Roland Dobai
a4ced2bf55 Merge branch 'bugfix/coredump_esp_panic_reason_v4.2' into 'release/v4.2'
coredump: Fixes ESP-specific panic reasons handling (v4.2)

See merge request espressif/esp-idf!16069
2021-11-26 11:00:41 +00:00
Roland Dobai
77a46fd122 Merge branch 'bugfix/doskey_v4.2' into 'release/v4.2'
tools: fix export.bat /tools/idf.py not found issue (v4.2)

See merge request espressif/esp-idf!16050
2021-11-26 10:09:04 +00:00
Mahavir Jain
d8f9e53504 Merge branch 'feature/remove_component_manager_tests_v4.2' into 'release/v4.2'
ci: Remove component manager test from build system tests (v4.2)

See merge request espressif/esp-idf!16108
2021-11-26 05:17:43 +00:00
Anton Maklakov
fccaf93a87 Merge branch 'feature/docker_build_use_git_mirror_v4.2' into 'release/v4.2'
ci: use LOCAL_GIT_MIRROR in docker build job, if set (v4.2)

See merge request espressif/esp-idf!16112
2021-11-25 05:33:45 +00:00
Ivan Grokhotkov
ccb1afa97a 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-24 15:45:02 +01:00
Sergei Silnov
eee3af33d6 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:13:14 +01:00
Roland Dobai
792bc9a587 Merge branch 'feature/json_schema_for_idf_size_v4.2' into 'release/v4.2'
tools: add json schema for idf_size (v4.2)

See merge request espressif/esp-idf!15961
2021-11-24 09:00:43 +00:00
yuanjm
3cfcf2b4fd lwip: Add macro to disable vendor class option 2021-11-23 19:37:50 +08:00
Alexey Gerenkov
6d7aa57177 coredump: Fixes core dump private header inclusion guard 2021-11-23 13:06:18 +03:00
Alexey Gerenkov
0473ddffa7 coredump: Fixes ESP-specific panic reasons handling 2021-11-23 13:06:03 +03:00
Jiang Jiang Jian
d4c247dac6 Merge branch 'bugfix/fix_static_check_error_mr_4.2' into 'release/v4.2'
Fix the high-impact issues from the code analysis report from customer.

See merge request espressif/esp-idf!16046
2021-11-23 07:27:18 +00:00
Jiang Jiang Jian
440d1aeb25 Merge branch 'bugfix/leedarson_v4.2' into 'release/v4.2'
component_bt: Fix some code logic errors (v4.2)

See merge request espressif/esp-idf!16030
2021-11-23 07:26:55 +00:00
Jiang Jiang Jian
c1f7f216e3 Merge branch 'bugfix/register_non_32bit_access_v4.2' into 'release/v4.2'
hal: avoid non-32bit access to registers (v4.2)

See merge request espressif/esp-idf!15617
2021-11-23 07:26:31 +00:00
xiongweichao
3beae7c8ef Add hci command to set coexistence status 2021-11-23 11:48:39 +08:00
Ivan Grokhotkov
999abf403e 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-22 23:08:49 +01:00
“YangZhao”
4200865dd1 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-11-22 19:55:03 +08:00
xiongweichao
6ab925eaa0 Missing break in switch 2021-11-22 11:48:21 +08:00
xiongweichao
163dfb1091 already defined in bt_target.h 2021-11-22 11:47:00 +08:00
Wang Meng Yang
028a4c93ff Merge branch 'bugfix/fix_modem_sleep_hw_error_mr_4.2' into 'release/v4.2'
fix modem sleep hw error

See merge request espressif/esp-idf!16019
2021-11-22 03:46:30 +00:00
xiongweichao
1733159b08 Dereference after null check 2021-11-22 11:46:30 +08:00
xiongweichao
a8c653b094 Dereference before null check 2021-11-22 11:43:35 +08:00
xiongweichao
0ef796bfc2 Logically dead code 2021-11-22 11:43:05 +08:00
Yang Zhao
14cdcae482 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-11-19 16:17:31 +08:00
Anton Maklakov
e74f0665fc Merge branch 'feature/ci_runner_failure_retries_v4.2' into 'release/v4.2'
ci: runner system failure retries (v4.2)

See merge request espressif/esp-idf!15724
2021-11-19 08:02:26 +00:00
Wang Meng Yang
05b1f873bd Merge branch 'bugfix/fix_custmoer_issues_v4.2' into 'release/v4.2'
bugfix/fix_3_controller_issues_v4.2

See merge request espressif/esp-idf!15978
2021-11-19 03:36:07 +00:00
Rahul Tank
c2a94ba1aa 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-11-17 20:42:29 +08:00
Roland Dobai
88e3ec6f03 Merge branch 'bugfix/create_dir_idf_env_v4.2' into 'release/v4.2'
tools: Create the ".espressif" directory on the first run on clean system (v4.2)

See merge request espressif/esp-idf!15857
2021-11-16 15:47:47 +00:00
jincheng
160afee96c - fix HCI_Read_Clock error
- fix HCI_Create_Connection_Cancel error
- fix ASSERT_WARN during epr
2021-11-16 17:10:30 +08:00
simon.chupin
3c69e6c990 tools: add json schema for idf_size 2021-11-15 18:45:08 +01:00
Mahavir Jain
a1b16acf7a Merge branch 'bugfix/efuse_stdbool_v4.2' into 'release/v4.2'
efuse: Add missing stdbool.h include file (v4.2)

See merge request espressif/esp-idf!15937
2021-11-15 15:39:03 +00:00
Jing Li
ccef7c1712 Merge branch 'bugfix/fix_ota_crash_backport_v4.2' into 'release/v4.2'
spi_flash: fix app crash when OTA because the OTA task's stack is in rtc fast memory(backport v4.2)

See merge request espressif/esp-idf!15861
2021-11-15 02:32:54 +00:00
Ondrej Kosta
f84e55bea2 Merge branch 'bugfix/LAN8720_reset_assertion_v4.2' into 'release/v4.2'
Increased LAN8720 ETH-PHY reset assertion time (v4.2)

See merge request espressif/esp-idf!15827
2021-11-14 21:49:08 +00:00
Gustavo Henrique Nihei
32d7f8e6f1 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:24 -03:00
Gustavo Henrique Nihei
d2da4598f5 efuse: Add missing stdbool.h include file
Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
2021-11-12 13:30:24 -03:00
Mahavir Jain
047a5bf2f7 Merge branch 'bugfix/aes_unaligned_access_v4.2' into 'release/v4.2'
aes: fix unaligned access (v4.2)

See merge request espressif/esp-idf!15803
2021-11-12 04:27:17 +00:00
Roland Dobai
ed6f72142f Merge branch 'bugfix/archive_details_always_run_like_diff_v4.2' into 'release/v4.2'
tools: fix bug with idf_size argument archive_details (v4.2)

See merge request espressif/esp-idf!15776
2021-11-11 12:34:14 +00:00
Frank Sautter
a8ed7f44bb Increased LAN8720 ETH-PHY reset assertion time (IDFGH-6018)
Increase reset assertion time from 100µs (as specified minimum in the datasheet) to 150µs.
Some specimen of the LAN8720 need the reset signal asserted longer than 100µs to initialise properly. Otherwise they are in a zombie state where they are establishing and loosing an Ethernet link once in a seconds interval.
2021-11-10 21:59:00 +01:00
Xie Wen Xiang
08c79908fb Merge branch 'bugfix/fix_crash_when_shutdown_bt_v4.2' into 'release/v4.2'
component/bt: fix crash when shutdown bt(backport v4.2)

See merge request espressif/esp-idf!15710
2021-11-10 06:31:40 +00:00
jingli
b6b227e6cc fix: app crash when OTA because the OTA task's stack is in rtc fast memory 2021-11-10 14:05:54 +08:00
Marius Vikhammer
a7a495f796 aes: fix potential unaligned access of buffers
https://github.com/espressif/esp-idf/issues/7236
2021-11-10 10:01:45 +08:00
simon.chupin
97873dbedc change --archive_details output 2021-11-09 14:30:11 +01:00
Roland Dobai
719207446f tools: Create the ".espressif" directory on the first run on clean system
Closes https://github.com/espressif/esp-idf/issues/7848
2021-11-09 12:03:20 +01:00
Wang Meng Yang
fab8e9d1bc Merge branch 'bugfix/hfp_demo_audio_not_sine_v4.2' into 'release/v4.2'
Bugfix/hfp demo audio not sine v4.2

See merge request espressif/esp-idf!15750
2021-11-09 03:05:25 +00:00
boarchuz
0fe219a3f3 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:39 +08:00
xiewenxiang
6ee20240ed component/bt: fix crash when shutdown bt(backport v4.2) 2021-11-08 10:37:31 +08:00
Island
125cf671e7 Merge branch 'bugfix/ble_mesh_host_init_v4.2' into 'release/v4.2'
ble_mesh: nimble: return error if init host twice (v4.2)

See merge request espressif/esp-idf!15789
2021-11-05 03:10:46 +00:00
Island
78fc16d1d3 Merge branch 'bugfix/sig_ble_mesh_errata_e16350_v4.2' into 'release/v4.2'
ble_mesh: stack: Apply the errata E16350 from Bluetooth SIG (v4.2)

See merge request espressif/esp-idf!15785
2021-11-05 03:09:15 +00:00
Chinmay Chhajed
890114733f Merge branch 'bugfix/ble_conn_latency_max_value_v4.2' into 'release/v4.2'
BLE: Set connection max latency value to 499.

See merge request espressif/esp-idf!15756
2021-11-04 08:55:15 +00:00
Marius Vikhammer
49c1dc43f1 Merge branch 'bugfix/define__DOXYGEN___v4.2' into 'release/v4.2'
docs: define __DOXYGEN__ for doxygen builds (v4.2)

See merge request espressif/esp-idf!15681
2021-11-04 05:57:07 +00:00
Marius Vikhammer
2f511cfaef 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:15 +08:00
Marius Vikhammer
86c5d3136e docs: define __DOXYGEN__ for doxygen builds
Some docs depended on __DOXYGEN__ but this was never defined anywhere.
2021-11-04 10:22:21 +08:00
lly
8106a823bd ble_mesh: nimble: return error if init host twice 2021-11-03 19:22:12 +08:00
lly
b32d6c355a ble_mesh: stack: Apply the errata E16350 from Bluetooth SIG 2021-11-03 19:06:49 +08:00
simon.chupin
fbf1df22b7 tools: fix bug with idf_size argument archive_details 2021-11-02 14:24:02 +01:00
Chinmay Chhajed
e0ea44fa46 BLE: Set connection max latency value to 499. 2021-11-01 16:37:46 +05:30
jincheng
c0fc6500cf fix hfp_ag demo audio not sine_v4.1 2021-11-01 12:26:40 +08:00
Yuan Jian Min
f370d5089f Merge branch 'bugfix/fix_cplusplus_miss_in_dhcp_v4.2' into 'release/v4.2'
dhcpserver: support cplusplus (backport v4.2)

See merge request espressif/esp-idf!15447
2021-10-30 06:21:43 +00:00
KonstantinKondrashov
939f4dfbc0 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:21 +08:00
Mahavir Jain
7097d3c2f4 Merge branch 'bugfix/sdcard_example_format_timeout_v4.2' into 'release/v4.2'
CI: [Examples/Storage] provide sufficient timeout for SD card formatting (v4.2)

See merge request espressif/esp-idf!14912
2021-10-29 09:44:04 +00:00
Yuan Jian Min
4f1b5cdb8a Merge branch 'bugfix/fix_http_head_request_v4.2' into 'release/v4.2'
esp_http_client: Fix HEAD request will affect the all next HTTP requests unless we close the HTTP request(backport v4.2)

See merge request espressif/esp-idf!15713
2021-10-29 07:53:49 +00:00
Martin Vychodil
51e00ec105 Examples/Storage: provide sufficient timeout for SD card formatting
Large SD cards (16GB+) require significant amount of time for FS formatting.
Added FS mount checkpoint in example test python, timeout set to 60 sec

Closes IDFCI-706
2021-10-29 15:44:53 +08:00
Anton Maklakov
f97fd4e04e ci: Add retries on runner system failures 2021-10-29 13:50:47 +07:00
Kapil Gupta
fe505c5d1b Merge branch 'bugfix/eap_client_iot_issues_v4.2' into 'release/v4.2'
ESP_WiFi: Fix some wpa enterprise issue (backport V4.2)

See merge request espressif/esp-idf!15573
2021-10-29 04:44:45 +00:00
yuanjm
cb343db4c9 ci: Remove public headers check exceptions for dhcp 2021-10-29 10:34:08 +08:00
yuanjm
40b28a958c dhcpserver: support cplusplus
Closes https://github.com/espressif/esp-idf/issues/7494

Merges https://github.com/espressif/esp-idf/pull/7526
2021-10-29 10:34:08 +08:00
yuanjm
f2347ff434 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:20:04 +08:00
Kapil Gupta
345fe24460 wpa_supplicant: Add missing cflag for legacy makefile 2021-10-28 17:03:06 +05:30
Kapil Gupta
7c402bd790 wpa_supplicant: Update internal tls client with sha384/sha512 support 2021-10-28 17:02:51 +05:30
Kapil Gupta
73933d50e8 esp_wifi: Fix interoperability issue with windows 2008 2021-10-28 16:07:33 +08:00
Mahavir Jain
a790d96441 Merge branch 'bugfix/select_boot_app_v4.2' into 'release/v4.2'
partition_table: Fix case when a few similar to otadata partitions in the table (v4.2)

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

See merge request espressif/esp-idf!15677
2021-10-28 02:58:36 +00:00
Jiang Jiang Jian
016b848caf Merge branch 'bugfix/remove_assert_when_inq_done_4.2' into 'release/v4.2'
component_bt: fix crash after inquiry has finished (v4.2)

See merge request espressif/esp-idf!15671
2021-10-27 11:28:02 +00:00
wangjialiang
41c0ba2ed0 ble_mesh: stack: Fix heartbeat filter with accept list 2021-10-27 16:39:24 +08:00
xiongweichao
5a4d4a01db Remove assert when inq done
Closes https://github.com/espressif/esp-idf/issues/6759
Closes https://github.com/espressif/esp-idf/issues/7551
2021-10-27 14:26:43 +08:00
Anton Maklakov
5f46abd281 Merge branch 'bugfix/support_py34-35_cffi_v4.2' into 'release/v4.2'
Tools: Constrain the cffi package for older pythons (v4.2)

See merge request espressif/esp-idf!15608
2021-10-26 13:48:03 +00:00
KonstantinKondrashov
fc0f90e8aa 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:48:25 +08:00
Sergei Silnov
7f7bc4078a Tools: Constrain the cffi package for older pythons 2021-10-25 20:14:19 +08:00
Wang Meng Yang
eaf738fae9 Merge branch 'feature/add_README_for_controller_hci_uart_demo_v4.2' into 'release/v4.2'
[document] add README.md for demo controller_hci_uart_demo for v4.2

See merge request espressif/esp-idf!15563
2021-10-25 08:13:37 +00:00
Wang Meng Yang
78e345debc Merge branch 'bugfix/fix_ble_scan_failed_issue_master_4.2' into 'release/v4.2'
[Bluetooth] Fix the ble scan failed issue

See merge request espressif/esp-idf!15589
2021-10-25 07:55:14 +00:00
morris
30355d3c0c hal: avoid non-32bit access to registers 2021-10-25 12:05:55 +08:00
Wu Zheng Hui
3a9a2bcfc3 Merge branch 'bugfix/fix_stuck_in_rtc_clk_calibration_backport_v4.2' into 'release/v4.2'
[bugfix] Fix stuck in rtc clk calibration (backport v4.2)

See merge request espressif/esp-idf!15525
2021-10-21 13:22:20 +00:00
wuzhenghui
fe1d3401d9 fix stuck in rtc_clk_cal 2021-10-21 19:15:33 +08:00
Yang Zhao
c1edb161e7 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 10:59:57 +08:00
Anton Maklakov
10c0bb1bc0 Merge branch 'bugfix/retry_download_submodule_v4.2' into 'release/v4.2'
ci: retry download from Gitlab on error 500 (v4.2)

See merge request espressif/esp-idf!15533
2021-10-20 03:35:11 +00:00
jincheng
75789bef8b add README.md for demo controller_hci_uart_demo 2021-10-19 22:00:46 +08:00
Anton Maklakov
3e9f15b12d Merge branch 'ci/fix_deploy_docs_preview_url_v4.2' into 'release/v4.2'
ci: update docs preview url (v4.2)

See merge request espressif/esp-idf!15509
2021-10-19 11:52:55 +00:00
Michael (XIAO Xufeng)
cb58226c5e Merge branch 'bugfix/fix_touch_sensor_measure_start_wait_time_backport_v4.2' into 'release/v4.2'
Bugfix(Touch): fix the touch sensor wait cycle after wakeup from sleep (backport v4.2)

See merge request espressif/esp-idf!13641
2021-10-18 16:58:30 +00:00
Roland Dobai
4498749f38 Merge branch 'backport/v4.2/dockerfile_multiarch' into 'release/v4.2'
Dockerfile working on x64/ARM (v4.2)

See merge request espressif/esp-idf!15520
2021-10-18 14:17:16 +00:00
Ivan Grokhotkov
672d112395 ci: revert type annotations in gitlab_api.py to python2 compatible 2021-10-18 14:42:35 +07:00
Ivan Grokhotkov
3b957bb67e ci: retry Gitlab operations on error 500 2021-10-18 14:42:35 +07:00
Fu Hanxi
46ef92abee ci: retry download artifacts 2021-10-18 14:42:35 +07:00
Ivan Grokhotkov
6b3f2ea744 ci: fetch submodules from mirror, if enabled 2021-10-18 14:42:35 +07:00
Fu Hanxi
1418efe7a4 ci: retry download if catched IOError/EOFError 2021-10-18 14:42:35 +07:00
Wang Meng Yang
de22cc8ca7 Merge branch 'bugfix/btdm_ble_data_length_update_fail_v4.2' into 'release/v4.2'
Fix data length update failed(release v4.2)

See merge request espressif/esp-idf!15503
2021-10-18 03:08:04 +00:00
Jiang Jiang Jian
8f8a88d5ec Merge branch 'bugfix/fix_efuse_err_address_backport4.2' into 'release/v4.2'
fix efuse err address in block0 (backport v4.2)

See merge request espressif/esp-idf!14813
2021-10-15 05:44:10 +00:00
Tomas Sebestik
7e663430ea Dockerfile working on x64/ARM 2021-10-14 13:11:25 +02:00
Marius Vikhammer
c72ab6944e ci: update docs preview url 2021-10-14 14:23:54 +08:00
Michael (XIAO Xufeng)
5cee2b34d6 Merge branch 'backport/v4.2/8_16bits_periph_access' into 'release/v4.2'
avoid generating 8/16 bits instructions for register accessing (backport v4.2)

See merge request espressif/esp-idf!15455
2021-10-13 17:55:09 +00:00
xiewenxiang
0dbd8701b5 component/bt: fix data length update failed 2021-10-13 19:43:47 +08:00
suda-morris
db956cdeca twai: update register struct file 2021-10-12 11:10:40 +08:00
SalimTerryLi
72bb572df1 hal: avoid generate 8/16 bits intruction for register access 2021-10-12 11:06:55 +08:00
Ivan Grokhotkov
5595042c16 Merge branch 'feature/windows_installer_moved_to_github_backport_4.2' into 'release/v4.2'
tools: Windows Installer project moved to github.com/espressif/idf-installer - backport v4.2

See merge request espressif/esp-idf!15475
2021-10-11 13:50:51 +00:00
Juraj Michálek
85427a8110 tools: remove dependency on Windows installer - backport 2021-10-11 12:26:55 +02:00
Roland Dobai
bf62154b18 Merge branch 'bugfix/constrain_cryptography_v4.2' into 'release/v4.2'
Tools: Constrain the cryptography package version in order to avoid breaking changes (v4.2)

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

See merge request espressif/esp-idf!15438
2021-10-11 04:00:46 +00:00
Bao Hong De
600ef45abe Merge branch 'feature/sync_bt_lib_with_hli_v4.2' into 'release/v4.2'
components/bt: Sync bt lib with the high level interrupt version

See merge request espressif/esp-idf!15328
2021-10-11 03:15:09 +00:00
Roland Dobai
0f2d385a5a 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:26:11 +02:00
Mahavir Jain
8269fb23d7 Merge branch 'feature/github-7632_v4.2' into 'release/v4.2'
esp_crt_bundle: remove EC-ACC certificate (v4.2)

See merge request espressif/esp-idf!15435
2021-10-10 11:35:08 +00:00
baohongde
4a80c40c0c components/bt: Sync bt lib with the high level interrupt version 2021-10-08 14:17:49 +08:00
Harshit Malpani
9b0132387e Update example test for esp_http_client 2021-10-07 17:58:51 +05:30
Harshit Malpani
1aac3c64b5 Updated the root certificate of https examples 2021-10-07 17:54:06 +05:30
Victor Morales
b41f432262 esp_crt_bundle: remove EC-ACC certificate
Fixes bug #7631
2021-10-07 13:14:38 +05:30
Mahavir Jain
7caff8d13c Merge branch 'feature/upgrade_nghttp2_component_v4.2' into 'release/v4.2'
nghttp2: upgrade to v1.41.0 release (v4.2)

See merge request espressif/esp-idf!15343
2021-09-30 04:08:04 +00:00
Jiang Jiang Jian
fa6a77a5dc Merge branch 'cherry-pick-e8360fe0-3' into 'release/v4.2'
wpa_supplicant: clean tls client state machine (backport v4.2)

See merge request espressif/esp-idf!15039
2021-09-29 11:47:22 +00:00
Krzysztof Budzynski
8eca11af23 Merge branch 'docs/update_esp32-s2_devkit_user_guide_backport_v4.2' into 'release/v4.2'
Docs/Update two ESP32-S2 devkit user guides (backport v4.2)

See merge request espressif/esp-idf!15306
2021-09-29 07:26:21 +00:00
Roland Dobai
6f77c529ac Merge branch 'bugfix/idf_size_nan_in_json_v4.2' into 'release/v4.2'
Tools: fix appearing NaN value when calling idf_size.py --json (v4.2)

See merge request espressif/esp-idf!15353
2021-09-27 12:37:09 +00:00
Roland Dobai
4b469fb5e4 Merge branch 'bugfix/idf_tools_virtualenv_seeder_v4.2' into 'release/v4.2'
tools/idf_tools.py: Changed default AppData seeder to seeder pip (backport v4.2)

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

See merge request espressif/esp-idf!14753
2021-09-26 01:33:52 +00:00
Michael (XIAO Xufeng)
c00e51b11a Merge branch 'bugfix/wavegen_disable_iram_isr_backport4.2' into 'release/v4.2'
Bugfix/wavegen disable iram isr (backport v4.2)

See merge request espressif/esp-idf!15335
2021-09-26 01:21:10 +00:00
simon.chupin
df016b17f0 Tools: fix appearing NaN value when calling idf_size.py --json 2021-09-24 18:28:05 +02:00
Juraj Sadel
513c558f13 tools/idf_tools.py: Changed default AppData seeder to seeder pip 2021-09-24 15:00:04 +02:00
Mahavir Jain
385a299069 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-09-24 17:47:02 +05:30
David Čermák
017b30bcee Merge branch 'bugfix/ping_iface_v4.2' into 'release/v4.2'
lw ip: Fix ICMP Ping on specific iface (GitHub PR) (v4.2)

See merge request espressif/esp-idf!15146
2021-09-24 06:54:42 +00:00
Krzysztof Budzynski
1ed132bf87 Merge branch 'docs/update_getStarted_CN_trans_V4.2' into 'release/v4.2'
docs: update CN translation for get-started V4.2

See merge request espressif/esp-idf!15308
2021-09-24 04:58:06 +00:00
SalimTerryLi
6d3bd3a48e bugfix by disabling IRAM attr on ISR 2021-09-24 11:00:26 +08:00
Zim Kalinowski
6501045d80 Merge branch 'feature/esp32c3_support_brownout_v4.2' into 'release/v4.2'
esp32c3: Adds support BROWNOUT reset (v4.2)

See merge request espressif/esp-idf!14963
2021-09-23 15:16:23 +00:00
Konstantin Kondrashov
f8e2eadc51 esp32c3: Adds support BROWNOUT reset (v4.2) 2021-09-23 23:16:16 +08:00
Jiang Jiang Jian
2453447940 Merge branch 'bugfix/stack_init_check_v4.2' into 'release/v4.2'
NimBLE: Check stack status before executing stack command

See merge request espressif/esp-idf!15026
2021-09-23 04:32:25 +00:00
Wang Meng Yang
41ff381a72 Merge branch 'feature/btdm_add_clear_white_list_API_v4.2' into 'release/v4.2'
component/bt: add clear white list API(backport v4.2)

See merge request espressif/esp-idf!15299
2021-09-23 03:21:46 +00:00
Wang Ning
d5eea66bbb docs/update_esp32-s2_devkit_user_guides 2021-09-22 19:12:28 +08:00
daiziyan
65540b991e docs: update CN translation and keep line number consistent for all documents in get-started section 2021-09-22 17:44:03 +08:00
zhiweijian
cc8ef6b8d2 component/bt: add clear white list API 2021-09-22 15:59:45 +08:00
morris
9b6d4c4015 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 12:01:04 +08:00
morris
5253a6c916 uart: format driver code by astyle 2021-09-22 12:01:04 +08:00
Mahavir Jain
61d5e5a93e Merge branch 'bugfix/http_client_eagain_v4.2' into 'release/v4.2'
esp_http_client: Fixed handling of EAGAIN return (backport v4.2)

See merge request espressif/esp-idf!15274
2021-09-21 11:50:56 +00:00
Vikram Dattu
718d2e5f19 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 17:49:11 +05:30
Mahavir Jain
295624d5a3 Merge branch 'fix/esp_mbedtls_write_api_v4.2' into 'release/v4.2'
Fix esp_mbedtls_write API (v4.2)

See merge request espressif/esp-idf!15215
2021-09-20 11:34:23 +00:00
Roland Dobai
4ccfbf5138 Merge branch 'feature/gcov_dump_in_thread_v4.2' into 'release/v4.2'
backport/gcov dump in thread to v4.2

See merge request espressif/esp-idf!15207
2021-09-20 09:37:20 +00:00
Mahavir Jain
0dea76b299 Merge branch 'docs/flash_enc_only_s2_v4.2' into 'release/v4.2'
docs: fix S2 specific flash encryption cmds in ESP32 docs

See merge request espressif/esp-idf!15139
2021-09-16 14:31:38 +00:00
wuzhenghui
1d63988db2 fix s2 efuse err address in block0 2021-09-16 20:16:52 +08:00
Marius Vikhammer
33663461c0 docs: fix S2 specific flash encryption cmds in ESP32 docs
Closes https://github.com/espressif/esp-idf/issues/7537
2021-09-16 19:39:16 +08:00
Aditya Patwardhan
a0b107fe3d Fix esp_mbedtls_write API
Fix esp_wolfssl_write API
Closes https://github.com/espressif/esp-idf/issues/7461
2021-09-16 09:02:34 +05:30
Erhan Kurubas
e4fdf07acb esp_ipc: fix race condition in ipc task 2021-09-15 22:57:02 +03:00
Erhan Kurubas
e662d90e9f gcov: enable single core tests 2021-09-15 22:57:02 +03:00
Erhan Kurubas
dc25973825 ipc: enable ipc task at single core for gcov dump 2021-09-15 22:57:02 +03:00
Erhan Kurubas
5ad1e020ce gcov: add stub table size entry 2021-09-15 22:57:02 +03:00
Erhan Kurubas
886ea8d33b gcov: add gcov callback into the ipc task 2021-09-15 22:57:02 +03:00
Erhan Kurubas
d63ff8cb7a gcov: readme update for ESP32-S2 2021-09-15 22:57:02 +03:00
Erhan Kurubas
67fc5183dc gcov: dump in a special thread 2021-09-15 22:57:02 +03:00
Erhan Kurubas
e43fedb3f4 gcov: added dbg stub capabilites and magic number entry to keep backward compatible 2021-09-15 22:57:02 +03:00
Krzysztof Budzynski
87e9a54f63 Merge branch 'docs/fix_adc_pad_typo_MOSI_typo_and_broken_link_v4.2' into 'release/v4.2'
Fix ADC pad and MOSI typo, update esp32c3 rom elf link (v4.2)

See merge request espressif/esp-idf!15188
2021-09-14 08:46:26 +00:00
Wang Fang
9814e9afd7 docs: Fix ADC pad and MOSI typo, update esp32c3 rom elf link 2021-09-14 11:28:58 +08:00
morris
78ff78c789 Merge branch 'bugfix/config_data_interface_early_v4.2' into 'release/v4.2'
initialize data interface early (v4.2)

See merge request espressif/esp-idf!15090
2021-09-09 08:45:54 +00:00
Roland Dobai
4f319f26f9 Merge branch 'feature/oocd_ver_upgrade_v4.2' into 'release/v4.2'
tools: Updates OpenOCD version to 'v0.10.0-esp32-20210902' (v4.2)

See merge request espressif/esp-idf!15133
2021-09-09 07:40:43 +00:00
ivmarkov
4b8492d46f lwip: Fix ICMP Ping on specific iface
Fix broken parentheses in setsockopt call

Merges https://github.com/espressif/esp-idf/pull/7397
2021-09-09 07:43:00 +02:00
He Yin Ling
4e6c12bf30 Merge branch 'bugfix/switch_icmp_unit_test_from_baidu_to_taobao_v4.2' into 'release/v4.2'
unit_test: increase icmp unit test timeout configuration (v4.2)

See merge request espressif/esp-idf!14937
2021-09-09 01:38:00 +00:00
Roland Dobai
ae21087d7e CI: Fix idf_tools.py tests with the updated openocd version 2021-09-08 21:01:22 +03:00
Roland Dobai
35bdf4bee8 CI: Check the number of detected cores of apptrace 2021-09-08 21:00:14 +03:00
Alexey Gerenkov
046626de9a tools: Updates OpenOCD version to 'v0.10.0-esp32-20210902' 2021-09-08 20:56:25 +03:00
Roland Dobai
6f4d973f13 Merge branch 'bugfix/idf_size_wrong_memory_calculations_v4.2' into 'release/v4.2'
Tools: Fix memory calculations of idf_size.py (v4.2)

See merge request espressif/esp-idf!14934
2021-09-08 11:51:17 +00:00
Roland Dobai
d221750223 Merge branch 'feature/installing_tools_for_IDF_TARGET_v4.2' into 'release/v4.2'
tools: Installing tools for given IDF_TARGET (v4.2)

See merge request espressif/esp-idf!14709
2021-09-08 10:31:39 +00:00
Wang Meng Yang
a5984fd939 Merge branch 'bugfix/controller_hci_uart_sdkconfig_v4.2' into 'release/v4.2'
controller_hci_uart: fixed the sdkconfig.defaults in the example(backport v4.2)

See merge request espressif/esp-idf!14808
2021-09-08 06:05:52 +00:00
Wang Meng Yang
f9632200fb Merge branch 'bugfix/hf_disc_acl_no_disc_v4.2' into 'release/v4.2'
bugfix/acl can't disconnect when hfp_client disconnect [release/v4.2]

See merge request espressif/esp-idf!15057
2021-09-07 10:13:57 +00:00
Mahavir Jain
afc74ae36a Merge branch 'bugfix/fix_ws_handle_big_messages_v4.2' into 'release/v4.2'
esp_http_server: Fix ws server handle length over 1440(MTU) messages incorrectly(backport v4.2)

See merge request espressif/esp-idf!15014
2021-09-07 08:21:40 +00:00
Mahavir Jain
3ca7a2220f Merge branch 'feature/update_expat_v4.2' into 'release/v4.2'
expat: Update library from 2.2.9 to 2.4.1(backport v4.2)

See merge request espressif/esp-idf!15068
2021-09-07 08:18:13 +00:00
Liu Han
be4b8e547a expat: Update library from 2.2.9 to 2.4.1 2021-09-06 19:59:55 +08:00
morris
2e0f907656 eth: dont warn nego timeout if link is down 2021-09-06 18:45:15 +08:00
morris
83018bf05f emac: configure data interface early 2021-09-06 18:44:37 +08:00
Wang Meng Yang
d933aba6a1 Merge branch 'bugfix/bt_spp_timer_collision_v4.2' into 'release/v4.2'
fix timer collision in role switch(v4.2)

See merge request espressif/esp-idf!14819
2021-09-06 08:23:26 +00:00
Mahavir Jain
8dcf216034 Merge branch 'feature/update_cjson_submodule_v4.2' into 'release/v4.2'
cJSON: Update submodule to v1.7.15 (v4.2)

See merge request espressif/esp-idf!15075
2021-09-06 06:37:52 +00:00
Omar Chebib
f65845ef51 Merge branch 'bugfix/add_critical_section_in_uart_driver_v4.2' into 'release/v4.2'
UART: add missing critical section wrappers around rx_buffered_len (backport v4.2)

See merge request espressif/esp-idf!14775
2021-09-06 02:26:17 +00:00
jincheng
6da584270c fix timer collision in role switch
Closes https://github.com/espressif/esp-idf/issues/7203
2021-09-06 10:15:10 +08:00
Shubham Kulkarni
87a4f82d73 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:42:32 +05:30
Omar Chebib
60ce887308 uart: cleaner way of handling error in a critical section
Some critical sections have also been added, making the code more
symetric accross the similar functions.

Closes https://github.com/espressif/esp-idf/pull/6396
2021-09-03 15:20:33 +08:00
Luca Burelli
3691fb9f48 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-09-03 15:20:33 +08:00
jincheng
1dcde9c74f fix acl can not disconnect when hf_client disconnect 2021-09-03 10:58:55 +08:00
Wang Meng Yang
b132b61181 Merge branch 'bugfix/btdm_fix_some_Document_Description_Error_v4.2' into 'release/v4.2'
component/bt: fix some ble document description error(backport v4.2)

See merge request espressif/esp-idf!14824
2021-09-03 01:40:16 +00:00
simon.chupin
8de953e7b9 Tools: Fix memory calculations of idf_size.py 2021-09-01 16:33:42 +02:00
XieWenxiang
7ea602838f component/bt: fix some ble document description error 2021-09-01 20:44:20 +08:00
Kapil Gupta
80a4d20462 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:16:31 +08:00
Rahul Tank
c7320b2d1d NimBLE: Check stack status before executing stack command 2021-08-31 18:30:06 +05:30
Alberto García Hierro
e2c35ca35b 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:33:13 +08:00
yuanjm
420aedbe3d esp_http_server: Fix ws server handle length over 1440(MTU) messages incorrectly.
Closes https://github.com/espressif/esp-idf/issues/7457
2021-08-31 14:23:10 +08:00
yuanjm
f6d2932953 Revert "Merge branch 'bugfix/fix_ws_handle_big_messages_error_v4.2' into 'release/v4.2'"
This reverts commit 5ca91eb54e, reversing
changes made to 192d42c8b8.
2021-08-31 14:12:24 +08:00
Michael (XIAO Xufeng)
cf457bce0d idf_size.py: fixed diram counted twice issue, and improve display
Currently static RAM usage are listed under corresponding physical
memory.

ld: fix linker script for C3 and S3
2021-08-27 18:32:33 +02:00
Ondrej Kosta
436517fb7f Merge branch 'docfix/eth_events_4.2' into 'release/v4.2'
Added warning when to init user Eth handlers (release/v4.2)

See merge request espressif/esp-idf!14952
2021-08-27 09:15:40 +00:00
Mahavir Jain
df213946c6 Merge branch 'fixes/secure_boot_v4.2' into 'release/v4.2'
secure_boot/esp32s2: Disable read protecting of efuses (v4.2)

See merge request espressif/esp-idf!14961
2021-08-26 10:11:26 +00:00
Sachin Parekh
527e5abae0 secure_boot/esp32s2: Disable read protecting of efuses
When secure boot is enabled, disable the ability to read protect
efuses that contain the digest.
2021-08-26 12:05:39 +05:30
Ondrej Kosta
933567d440 Added warning when to init user Eth handlers 2021-08-25 11:27:05 +02:00
morris
bfa51a9a68 unit_test: switch icmp test server to taobao 2021-08-25 08:34:14 +02:00
Zim Kalinowski
e5da87933c Merge branch 'bugfix/fix_deep_sleep_miss_bug_mr_v4.2' into 'release/v4.2'
Fix controller may miss the sleep time

See merge request espressif/esp-idf!14738
2021-08-24 08:01:10 +00:00
David Čermák
6bb35ddf85 Merge branch 'bugfix/fix_ping_sock_return_error_v4.2' into 'release/v4.2'
ping_sock: Fix esp_ping_new_session may return ESP_OK when the error occured(backport v4.2)

See merge request espressif/esp-idf!14846
2021-08-23 06:30:54 +00:00
Wang Meng Yang
94cdecde30 Merge branch 'component_bt/add_spp_faq_v4.2' into 'release/v4.2'
Component_bt/Add FAQ in SPP Demo README[backport v4.2]

See merge request espressif/esp-idf!14797
2021-08-23 05:16:29 +00:00
Wang Ning
78a08714ba Merge branch 'docs/add_ESP32-S2-DevKitC-1_user_guide_backport_v4.2' into 'release/v4.2'
Docs: Add ESP32-S2-DevKitC-1 user guide (backport v4.2)

See merge request espressif/esp-idf!14876
2021-08-20 08:27:35 +00:00
Wang Ning
d81bd941ff docs/add_esp32-s2-devkitc-1_user_guide 2021-08-20 14:16:31 +08:00
Jiang Jiang Jian
7c3acadabe Merge branch 'bugfix/spp_memory_leak_v4.2' into 'release/v4.2'
Fix spp memory leak(v4.2)

See merge request espressif/esp-idf!14861
2021-08-20 02:50:19 +00:00
xiongweichao
5abc5f6748 components/bt: fix spp memory leak
Closes https://github.com/espressif/esp-idf/issues/7238
2021-08-19 14:35:53 +08:00
Zim Kalinowski
f075275cd1 Merge branch 'feature/update_efuses_for_esp32s2_v4.2' into 'release/v4.2'
efuse(esp32s2): Added flash_ver, psram_ver, pkg_ver efuses (v4.2)

See merge request espressif/esp-idf!14771
2021-08-19 06:28:50 +00:00
Mahavir Jain
48c9f47247 Merge branch 'fix/warning_in_wifi_prov_mgr_v4.2' into 'release/v4.2'
provisioning: fix wifi warning in wifi_prov_mgr application (v4.2)

See merge request espressif/esp-idf!14764
2021-08-19 04:09:18 +00:00
David Čermák
16be7d056d Merge branch 'bugfix/cmake_compiler_warn_write_string_v4.2' into 'release/v4.2'
Build: Fix CMake to pass -Wwrite-string compiler flag if enabled (v4.2)

See merge request espressif/esp-idf!14427
2021-08-18 16:02:28 +00:00
Island
2b2c1f5e65 Merge branch 'bugfix/ble_mesh_cve_recommendation_v4.2' into 'release/v4.2'
ble_mesh: Update the SIG recommendations for CVE issues (v4.2)

See merge request espressif/esp-idf!14842
2021-08-18 12:41:17 +00:00
David Cermak
1c59050209 panic/memprot: Fix minor const string correction on panic print 2021-08-18 19:29:32 +08:00
David Cermak
9b23491339 wpa_supplicant: Temporarily disable write-string warning
Since some assignment of a string literal to `char *` variables were
added and not caught by the CI.
2021-08-18 19:29:32 +08:00
David Cermak
fcf1419626 Build: Fix CMake to pass -Wwrite-string compiler flag if enabled 2021-08-18 19:29:32 +08:00
Harshit Malpani
d96dd2c002 provisioning: fix wifi warning in wifi_prov_mgr application
Scan configuration parameters should not modify in co-existence mode.
2021-08-18 18:34:46 +08:00
Zim Kalinowski
e3df8293a9 Merge branch 'bugfix/remove_bt_get_mac_v4.2' into 'release/v4.2'
bt: Remove unused function esp_bt_get_mac. (v4.2)

See merge request espressif/esp-idf!14836
2021-08-18 05:05:07 +00:00
Mahavir Jain
e821df501e Merge branch 'bugfix/libsodium_build_with_gnu_make_v4.2' into 'release/v4.2'
libsodium: fix build issues with GNU Make (v4.2)

See merge request espressif/esp-idf!14759
2021-08-18 04:38:31 +00:00
yuanjm
04be80124c ping_sock: Fix esp_ping_new_session may return ESP_OK when the error occured
Closes https://github.com/espressif/esp-idf/issues/7363
2021-08-18 11:53:09 +08:00
lly
06196f347a ble_mesh: Update the SIG recommendations for CVE issues 2021-08-18 10:58:18 +08:00
He Yin Ling
fce11704f0 Merge branch 'test/update_ble_mesh_console_files_for4.2' into 'release/v4.2'
test: fix ble mesh send problem (v4.2)

See merge request espressif/esp-idf!14274
2021-08-18 02:20:40 +00:00
Chinmay Chhajed
afe3f26fca bt: Remove unused function esp_bt_get_mac. 2021-08-17 18:53:05 +05:30
liqigan
cda9fc98e7 add FAQ in SPP demo README 2021-08-17 15:17:31 +08:00
Mahavir Jain
1472bf8780 libsodium: fix source directory names to address build issues with Make 2021-08-17 11:10:34 +05:30
Wang Meng Yang
bb0dbab859 Merge branch 'bugfix/btdm_auto_update_PPCP_attribute_value_v4.2' into 'release/v4.2'
component/bt: fix bluedroid host auto update PPCP attribute value(backport v4.2)

See merge request espressif/esp-idf!14749
2021-08-17 02:08:01 +00:00
Kelvie Wong
ace5ba77f4 Fix install.fish
install.fish script didn't catch error exit code from idf_tools.py. Now it does.

Signed-off-by: Marek Fiala <marek.fiala@espressif.com>

Closes: https://github.com/espressif/esp-idf/pull/7325
2021-08-16 16:27:35 +02:00
Marek Fiala
8b31c7d576 tools: Installing tools for given IDF_TARGET
Allow user to select specific ESP_TARGET while setting up ESD_IDF.
Only necessary tools for given target will be downloaded and installed.

Closes https://github.com/espressif/esp-idf/issues/5113
2021-08-16 16:27:35 +02:00
wangmengyang
cbfbc705eb controller_hci_uart: fixed the sdkconfig.defaults in the example 2021-08-16 16:56:10 +08:00
Anton Maklakov
cb9391a1cc Merge branch 'ci/change_perf_key_v4.2' into 'release/v4.2'
ci: update performance test key to db compatible format (v4.2)

See merge request espressif/esp-idf!14655
2021-08-16 06:13:21 +00:00
KonstantinKondrashov
6f0ad5662a efuse(esp32s2): Added flash_ver, psram_ver, pkg_ver efuses 2021-08-12 18:45:45 +05:00
XieWenxiang
921ec124ee component/bt: fix bluedroid host auto update PPCP attribute value 2021-08-11 18:04:53 +08:00
Yang Zhao
33f2bcec4c 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:23:16 +08:00
Michael (XIAO Xufeng)
de7fd4e93e Merge branch 'bugfix/spi_master_crash_cache_disabled_v4.2' into 'release/v4.2'
spi_master: fix the crash when using interrupt mode when cache is disabled (v4.2)

See merge request espressif/esp-idf!14682
2021-08-10 02:39:39 +00:00
Zim Kalinowski
059a3fa1be Merge branch 'feature/skip_known_failure_cases_v4.2' into 'release/v4.2'
CI: Ignore Known Failure Cases Result (v4.2)

See merge request espressif/esp-idf!14649
2021-08-10 02:23:31 +00:00
Fu Hanxi
7089f62dab feat(tiny_test_fw): ignore known failure cases result
py
2021-08-10 10:23:26 +08:00
Mahavir Jain
e1d33a7fa1 Merge branch 'bugfix/xtensa_extra_info_register_values_v4.2' into 'release/v4.2'
espcoredump.py: Parse EPS and EPC register values using register index (v4.2)

See merge request espressif/esp-idf!14565
2021-08-06 05:10:33 +00:00
Michael (XIAO Xufeng)
d91d6945d7 spi_master: fix the crash when using interrupt mode when cache is disabled
Closes https://github.com/espressif/esp-idf/issues/6529
Closes https://github.com/espressif/esp-idf/issues/6781
Closes https://github.com/espressif/esp-idf/issues/7368
2021-08-06 12:22:15 +08:00
Yuan Hong Hui
e1af4a398b update ble mesh console files 2021-08-05 17:52:28 +08:00
Zim Kalinowski
45330303d6 Merge branch 'bugfix/freertos_ut_suspend_v4.2' into 'release/v4.2'
freertos: Increases delta for UT - Test suspend-resume CPU. The number of... (v4.2)

See merge request espressif/esp-idf!14631
2021-08-05 05:13:24 +00:00
Fu Hanxi
6b95f3bddd ci: update performance test key to db compatible format 2021-08-04 12:28:42 +08:00
Zim Kalinowski
57eeeef433 Merge branch 'feature/change_factory_reset_pin_range_v4.2' into 'release/v4.2'
bootloader: Change range of the factory reset pin in Kconfig for ESP32-S2 (v4.2)

See merge request espressif/esp-idf!14638
2021-08-03 14:24:14 +00:00
KonstantinKondrashov
5893641482 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:07:03 +05:00
KonstantinKondrashov
f5897efa4f bootloader: Change range of the factory reset pin in Kconfig
Closes: https://github.com/espressif/esp-idf/issues/5489
2021-08-03 14:40:29 +05:00
Zim Kalinowski
a9a917b8d7 Merge branch 'doc/fix_secure_boot_v4.2' into 'release/v4.2'
doc/secure_boot_v2: Fix the steps mentioned for enabling secure boot (v4.2)

See merge request espressif/esp-idf!14589
2021-08-03 07:47:09 +00:00
Zim Kalinowski
f9af4a66f0 Merge branch 'bugfix/uart_sw_sw_flow_error_typo_v4.2' into 'release/v4.2'
uart: fix typo in error message (v4.2)

See merge request espressif/esp-idf!14614
2021-08-03 02:42:46 +00:00
Marius Vikhammer
2f02863fff uart: fix typo in error message
Closes https://github.com/espressif/esp-idf/issues/7360
2021-08-03 09:28:39 +08:00
Jiang Jiang Jian
f4a2c5b520 Merge branch 'mesh/bugfix_fix_esp_mesh_send_block_issue_v4.2' into 'release/v4.2'
mesh/ps: esp_mesh_send is blocked in nodes(layer>=3), when a FIXED-ROOT root is duty master(backport_v4.2)

See merge request espressif/esp-idf!14086
2021-07-31 02:52:26 +00:00
Sachin Parekh
8a516aadae doc/secure_boot_v2: Fix the steps mentioned for enabling secure boot 2021-07-30 19:50:37 +05:30
David Čermák
4dc431b87b Merge branch 'bugfix/fix_eth2ap_example_crash_v4.2' into 'release/v4.2'
eth2ap: Fix eth2ap example crash issue (backport v4.2)

See merge request espressif/esp-idf!14561
2021-07-30 05:14:25 +00:00
Shubham Patil
c06d8f8521 espcoredump.py: Parse EPS and EPC register values using register index 2021-07-29 10:46:02 +05:30
yuanjm
d0d7fbf6b1 eth2ap: Fix eth2ap example crash issue
Closes https://github.com/espressif/esp-idf/issues/7260
2021-07-29 11:12:40 +08:00
Zim Kalinowski
764f0db002 Merge branch 'bugfix/freemodbus_change_max_task_prio_v42' into 'release/v4.2'
Bugfix/freemodbus change max task prio (backport v4.2)

See merge request espressif/esp-idf!13731
2021-07-27 21:19:14 +00:00
Vikram
2b42d78a3f Merge branch 'bugfix/smtp_client_attachment_newline_v4.2' into 'release/v4.2'
Add newline separator to fix wrong attachment sent (v4.2)

See merge request espressif/esp-idf!13729
2021-07-27 16:12:59 +00:00
Zim Kalinowski
87e9908506 Merge branch 'bugfix/fix_supplicant_log_v4.2' into 'release/v4.2'
wpa_supplicant: Fix compilation when debug prints are enabled

See merge request espressif/esp-idf!14227
2021-07-27 12:04:50 +00:00
Zim Kalinowski
bc8d2ebcbf Merge branch 'bugfix/wps_wfa_cert_fixes_v4.2' into 'release/v4.2'
wpa_supplicant: Add WPS strict in config option(backport v4.2)

See merge request espressif/esp-idf!14230
2021-07-27 10:44:12 +00:00
Zim Kalinowski
4a12179e0c Merge branch 'bugfix/ttfw_fix_flush_index_error_v4.2' into 'release/v4.2'
test: TTFW fix flush index error (v4.2)

See merge request espressif/esp-idf!14261
2021-07-27 10:44:00 +00:00
Anton Maklakov
def7fd7611 Merge branch 'feature/idf_tools_darwin_arm64_v4.2' into 'release/v4.2'
tools: idf_tools.py: allow macOS x86_64 tools to be installed on arm64 (v4.2)

See merge request espressif/esp-idf!14072
2021-07-27 08:16:21 +00:00
Michael (XIAO Xufeng)
b2be91d98b Merge branch 'feature/regi2c_add_lock_v4.2' into 'release/v4.2'
regi2c: add a spinlock for accessing (reg)I2C devices (backport v4.2)

See merge request espressif/esp-idf!13713
2021-07-27 07:32:35 +00:00
David Čermák
0d0d31bcf3 Merge branch 'bugfix/esp_netif_dhcps_state_v4.2' into 'release/v4.2'
esp_netif: Fix dhcps state transitions (v4.2)

See merge request espressif/esp-idf!14424
2021-07-27 07:23:45 +00:00
Krzysztof Budzynski
325eee68e4 Merge branch 'enhance/update-vscode-setup-docs-v4.2' into 'release/v4.2'
docs: Fix vscode extension setup links (backport v4.2)

See merge request espressif/esp-idf!13323
2021-07-27 03:53:42 +00:00
Brian Alberto Ignacio Reyes
728f3eab6c docs: Fix vscode extension setup links (backport v4.2) 2021-07-27 11:53:38 +08:00
Zim Kalinowski
60e4bfae90 Merge branch 'bugfix/fatfs_alloc_extram_first_v4.2' into 'release/v4.2'
fatfs: fix SPIRAM allocation not used due to Kconfig option name error (v4.2)

See merge request espressif/esp-idf!14049
2021-07-26 07:59:16 +00:00
Zim Kalinowski
5c82ebce35 Merge branch 'bugfix/fix_esp32s2_deep_sleep_timer_wake_up_fail_backport_v4.2' into 'release/v4.2'
rtc: fix esp32s2 fall into sleep forever when deep-sleep time is set to 0(backport v4.2)

See merge request espressif/esp-idf!13562
2021-07-26 07:39:16 +00:00
Zim Kalinowski
6fba03f681 Merge branch 'fix/memory_leaks_identified_by_cppcheck_v4.2' into 'release/v4.2'
Fix/memory leaks identified by cppcheck (v4.2)

See merge request espressif/esp-idf!14502
2021-07-26 06:43:27 +00:00
Aditya Patwardhan
e5b4d5f348 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-26 14:43:21 +08:00
Ivan Grokhotkov
f39dc35d92 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-26 14:35:47 +08:00
Zim Kalinowski
e9198247a0 Merge branch 'bugfix/ci_fix_test_build_system_cmake_v4.2' into 'release/v4.2'
ci: Fix concurrency issues for macOS build system tests (v4.2)

See merge request espressif/esp-idf!14400
2021-07-26 06:30:25 +00:00
shenjun
416dc98ed8 mesh/ps: esp_mesh_send is blocked in nodes(layer>=3), when a FIXED-ROOT root is duty master 2021-07-26 14:14:08 +08:00
He Yin Ling
15b8981f48 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-26 11:30:35 +08:00
Vikram Dattu
458dbaf0f1 Fixed content type of attachment
Signed-off-by: Vikram Dattu <vikram.dattu@espressif.com>
2021-07-26 10:15:47 +08:00
Vikram Dattu
81de14b505 Add newline separator to fix wrong attachment sent
Issue:

Missing newline between header and attachment

Issue seen with email clients viz., AppleMail and YahooMail. Attachment is not renderable.
Some clients like Google mail, Samsung mail tolerate the issue.

Fix:
Added newline between header and attachment.

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

Signed-off-by: Vikram Dattu <vikram.dattu@espressif.com>
2021-07-26 10:15:47 +08:00
Zim Kalinowski
0832580661 Merge branch 'bugfix/spp_connect_20_fail_v4.2' into 'release/v4.2'
component_bt: fix spp acceptor deadlock

See merge request espressif/esp-idf!14106
2021-07-26 01:43:06 +00:00
Ivan Grokhotkov
cc366cc3c7 fatfs: fix SPIRAM allocation not used due to Kconfig option name error
Closes https://github.com/espressif/esp-idf/issues/5756
2021-07-26 09:40:39 +08:00
aditi_lonkar
6f016def84 wpa_supplicant: Fix compilation when debug prints are enabled. 2021-07-26 09:38:21 +08:00
aditi_lonkar
71b9121c7d 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.
2021-07-26 09:37:28 +08:00
David Cermak
2b65b82bd6 esp_netif: Fix dhcps state transitions
When the DHCP server is stopped before starting the netif,
it should remain stopped -- as per compatibility with previous tcpip_adapter behavior
2021-07-26 09:33:32 +08:00
Sergei Silnov
d18793f695 ci: Fix concurrency issues for macos buildsystem tests 2021-07-26 09:07:17 +08:00
Zim Kalinowski
ac5443b68a Merge branch 'doc/power_management_esp32s2_v4.2' into 'release/v4.2'
docs: describe power management logic for ESP32-S2, fix translation (v4.2)

See merge request espressif/esp-idf!14048
2021-07-26 00:49:30 +00:00
aleks
ea101ecb38 freemodbus: increase max priority of modbus tasks
allows to avoid issues with modbus processing when higher priority tasks are used in user application
2021-07-26 08:46:25 +08:00
Omar Chebib
d7687ce6fa 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-26 06:46:21 +08:00
David Čermák
ec196ae74b Merge branch 'bugfix/ci_move_udp_socket_tests_to_eth_runners_v4.2' into 'release/v4.2'
CI: Adjust UDP socket tests to be more reliable (v4.2)

See merge request espressif/esp-idf!14421
2021-07-23 15:01:46 +00:00
Krzysztof Budzynski
473194039d Merge branch 'docs/fix_UART_default_pin_error_and_provide_a_link_to_ESP_PROG_v4.2' into 'release/v4.2'
docs: fix uart default pin error and provide more information about ESP-Prog board (v4.2)

See merge request espressif/esp-idf!13969
2021-07-23 11:18:55 +00:00
Wang Meng Yang
12ce70a583 Merge branch 'bugfix/a2dp_deint_crash_v4.2' into 'release/v4.2'
component_bt: fix a2dp deinit crash(v4.2)

See merge request espressif/esp-idf!14418
2021-07-23 07:26:22 +00:00
Jakob Hasse
7f2da36c33 Merge branch 'bugfix/setjmp_longjmp_4.2' into 'release/v4.2'
[system]: Made longjmp save for context switch (backport v4.2)

See merge request espressif/esp-idf!13501
2021-07-23 03:52:55 +00:00
Zim Kalinowski
9e9efc4d92 Merge branch 'bugfix/fix_idf_monitor_unicode_path_crash_v4.2' into 'release/v4.2'
tools: handle exception in case of logging Unicode characters (v4.2)

See merge request espressif/esp-idf!13042
2021-07-23 01:09:44 +00:00
Roland Dobai
ea2b6898fb Merge branch 'feature/gcov_extest_improvements_v4.2' into 'release/v4.2'
Follow-up improvements for the gcov example test (v4.2)

See merge request espressif/esp-idf!14463
2021-07-22 19:11:52 +00:00
Roland Dobai
b717a0d3e1 Follow-up improvements for the gcov example test 2021-07-22 15:23:27 +02:00
Roland Dobai
c0ad291dc4 Merge branch 'ci/rename_test_log_path_v4.2' into 'release/v4.2'
CI: rename log path of IT jobs (v4.2)

See merge request espressif/esp-idf!14453
2021-07-22 13:21:14 +00:00
Zim Kalinowski
1bd6c102a4 Merge branch 'docs/fix_readme_links_v4.2' into 'release/v4.2'
docs: fixed dead readme links (v4.2)

See merge request espressif/esp-idf!14465
2021-07-22 02:44:44 +00:00
Marius Vikhammer
bcb1086410 docs: fixed dead readme link 2021-07-21 17:35:47 +08:00
Zim Kalinowski
4722c36926 Merge branch 'feature/upgrade_mbedtls_to_v4.2' into 'release/v4.2'
mbedtls: upgrade to release v2.16.11 (v4.2)

See merge request espressif/esp-idf!14438
2021-07-21 06:55:14 +00:00
Mahavir Jain
754e742344 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-21 14:55:09 +08:00
Zim Kalinowski
39a8dc30ea Merge branch 'bugfix/esp_event_any_id_unregister_4.2' into 'release/v4.2'
ESP Event: fix unregister documentation (backport 4.2)

See merge request espressif/esp-idf!14436
2021-07-21 04:07:34 +00:00
Zim Kalinowski
9f3cf98d4e Merge branch 'bugfix/fix_scan_timeout_mr_4.2' into 'release/v4.2'
Fix the scan timeout report

See merge request espressif/esp-idf!14446
2021-07-21 04:00:40 +00:00
He Yin Ling
59d0da0b33 CI: rename log path of IT jobs 2021-07-21 10:24:52 +08:00
Jakob Hasse
aabdb2c7a1 [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-07-21 09:48:48 +08:00
Yang Zhao
0fe0bea65a 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:37:08 +08:00
Shubham Kulkarni
88b3e0d8d8 Merge branch 'bugfix/fix_truncated_headers_for_esp_http_client_v4.2' into 'release/v4.2'
esp_http_client: Fix header truncated when responded header length over buffer_size (backport v4.2)

See merge request espressif/esp-idf!14384
2021-07-20 12:17:11 +00:00
Yuan Jian Min
5ca91eb54e Merge branch 'bugfix/fix_ws_handle_big_messages_error_v4.2' into 'release/v4.2'
esp_http_server: Fix ws server handle length over 1440(MTU) messages incorrectly(backport v4.2).

See merge request espressif/esp-idf!14345
2021-07-20 11:55:08 +00:00
Hrishikesh Dhayagude
192d42c8b8 Merge branch 'feature/protocomm_mfg_data_v4.2' into 'release/v4.2'
Provisioning BLE: Add API to set manufacturer data in advertisement (scan response) packets (v4.2)

See merge request espressif/esp-idf!14367
2021-07-20 10:50:21 +00:00
Jakob Hasse
d3ffdc79fd [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:47:37 +08:00
Zim Kalinowski
1b87cfc565 Merge branch 'bugfix/esp32s2_disable_bss_extram_v4.2' into 'release/v4.2'
esp32s2: disable bss extram option, clean up spiram init code a bit (v4.2)

See merge request espressif/esp-idf!13735
2021-07-20 07:24:38 +00:00
Angus Gratton
1d64638333 esp_common: Correctly disable ".bss segment placed in external memory" for ESP32-S2 & ESP32-S3
Support for this feature is still pending.

As reported by https://github.com/espressif/esp-idf/issues/6162
2021-07-20 15:24:32 +08:00
yuanjm
fc937e257b esp_http_server: Fix ws server handle length over 1440(MTU) messages incorrectly.
Closes https://github.com/espressif/esp-idf/issues/7202
2021-07-20 14:27:10 +08:00
Krzysztof Budzynski
c106151cc6 Merge branch 'docs/update_docs_for_doc_751_v4.2' into 'release/v4.2'
docs: update the documents based on customer feedbacks (v4.2)

See merge request espressif/esp-idf!13959
2021-07-20 06:25:52 +00:00
Darian
86f808ef2b Merge branch 'bugfix/twai_low_speed_bit_rates_v4.2' into 'release/v4.2'
TWAI: Fix incorrect configuration initializers for low speed bit rates (backport v4.2)

See merge request espressif/esp-idf!14413
2021-07-20 05:12:59 +00:00
Zim Kalinowski
9896fc0aef Merge branch 'bugfix/otatool_imported_as_lib_v4.2' into 'release/v4.2'
otatool: Fix a crash when imported as external python lib (v4.2)

See merge request espressif/esp-idf!13667
2021-07-20 03:25:20 +00:00
Wang Fang
8eb2ec4fb5 docs: update the documents based on customer feedbacks 2021-07-20 11:07:50 +08:00
Jakob Hasse
2d83369184 Merge branch 'bugfix/missing_extern_c_4.2' into 'release/v4.2'
[test_utils]: added extern C decl to ccomp (backport 4.2)

See merge request espressif/esp-idf!14327
2021-07-20 02:33:26 +00:00
Zim Kalinowski
90ff580de5 Merge branch 'bugfix/read_ota_partition_required_output_arg_v4.2' into 'release/v4.2'
otatool: Fixes read_ota_partition cmd, required output arg (v4.2)

See merge request espressif/esp-idf!13673
2021-07-19 14:01:16 +00:00
David Cermak
07596559dd CI/socket examples: Add UDP operation retries, wait until server is up 2021-07-19 14:58:20 +02:00
xiongweichao
f83bacd2b5 Not initialized or in the process of de-initialization, calling API will return ERR 2021-07-19 20:13:32 +08:00
xiongweichao
3ba13749d3 fix a2dp deinit crash 2021-07-19 20:12:57 +08:00
Darian Leung
7ca2688378 TWAI: Fix incorrect configuration initializers for low speed bit rates
This commit fixes the timing configuration initializers for the
1K, 5K, and 10K bit rates.
2021-07-19 17:33:58 +08:00
Wang Meng Yang
1e2d7ea792 Merge branch 'bugfix/SCO_connect_fail_after_peer_not_accept_sniff_v4.2' into 'release/v4.2'
bugfix/unable to initiate SCO connection when peer device not accept sniff mode (v4.2)

See merge request espressif/esp-idf!14394
2021-07-19 07:24:58 +00:00
morris
a45146c87d Merge branch 'bugfix/delete_i2c_cmd_mux_semaphore_more_cleanly_v4.2' into 'release/v4.2'
dreiver/i2c: delete i2c cmd mux semaphore more cleanly (backport 4.2)

See merge request espressif/esp-idf!13401
2021-07-19 04:54:44 +00:00
KonstantinKondrashov
dd06800d7b otatool: Fix a crash when imported as external python lib
Closes: https://github.com/espressif/esp-idf/issues/6733
2021-07-19 12:41:17 +08:00
KonstantinKondrashov
12f666f303 otatool: Fixes read_ota_partition cmd, required output arg
Closes: https://github.com/espressif/esp-idf/issues/6559
2021-07-19 12:40:32 +08:00
Zim Kalinowski
469be5f7be Merge branch 'bugfix/newlib_FD_ISSET_v4.2' into 'release/v4.2'
newlib: Fix a case in FD_ISSET macro when n==-1 (v4.2)

See merge request espressif/esp-idf!13691
2021-07-19 04:32:55 +00:00
Jakob Hasse
9ba590cd47 [test_utils]: added extern C decl to ccomp
Closes https://github.com/espressif/esp-idf/issues/7121
2021-07-19 10:52:32 +08:00
wangmengyang
036a045b86 component/bt: fix some bugs in bluetooth controller(2fcbe897)
1. Fixed the crash when using scan parameter: window = 4 slots, interval = 5 slots
2. Fixed BLE ACL tx flush issue during reset
3. Added remove sniff when peer not accepted sniff mode
2021-07-19 08:12:48 +08:00
Mahavir Jain
5bb0706083 Merge branch 'bugfix/update_ota_cert_v4.2' into 'release/v4.2'
OTA examples: Update server certificate (v4.2)

See merge request espressif/esp-idf!14355
2021-07-18 14:17:50 +00:00
laokaiyao
8872c6a3ac driver/i2c: add notes to i2c deleteing function 2021-07-16 14:26:48 +08:00
Melissa LeBlanc-Williams
59d08d4467 dreiver/i2c: delete i2c cmd_mux semaphore more cleanly
Merges https://github.com/espressif/esp-idf/pull/6847
2021-07-16 14:26:48 +08:00
Zim Kalinowski
4663d3ec11 Merge branch 'docs/spi_max_transfer_sz_limit_v4.2' into 'release/v4.2'
spi_docs: Fixed the default value of max_transfer_sz_limit (backport v4.2)

See merge request espressif/esp-idf!14253
2021-07-16 06:24:15 +00:00
Zim Kalinowski
77b12f0659 Merge branch 'nimble/fix_broadcaster_role_v4.2' into 'release/v4.2'
NimBLE: Fix build error for broadcaster role and bug in peer_dev_record (v4.2)

See merge request espressif/esp-idf!14301
2021-07-16 06:18:18 +00:00
Shubham Kulkarni
e8a09a0135 OTA examples: Updated server certificate 2021-07-16 13:47:46 +08:00
yuanjm
c764c59893 esp_http_client: Optimize code structure 2021-07-15 16:26:43 +08:00
Clickau
7188eaaebf 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:26:39 +08:00
KonstantinKondrashov
1214dcea3a newlib: Fix a case in FD_ISSET macro when n==-1 2021-07-15 11:18:45 +08:00
Prasad Alatkar
bcdedf5501 Provisioning BLE: Add API to set manufacturer data in scan response
- Add `wifi_prov_scheme_ble_set_mfg_data` API to set custom manufacturer data
  in BLE advertisements.
- Run format.sh script on modified files.
- Fix few typos in `protocomm_nimble.c`.

- Incorporate suggestion to remove extra check on protocomm_ble_mfg_data_len

- Remove few unnecessary comments.
2021-07-14 18:25:20 +05:30
Chen Yi Qun
20e41d6265 fix esp32s2 fall into sleep forever when deep-sleep time is set to 0(backport v4.2) 2021-07-14 17:46:20 +08:00
Angus Gratton
21f4f460ca Merge branch 'bugfix/panic_handler_disable_wdts_early_v4.2' into 'release/v4.2'
esp_system: Reconfigure the WDTs at the start of the panic handler (v4.2)

See merge request espressif/esp-idf!14231
2021-07-14 08:47:15 +00:00
fuzhibo
0679862de2 Driver(Touch sensor): fix the touch sensor wait cycle after wakeup from sleep 2021-07-14 14:47:07 +08:00
Roland Dobai
68b6bc661b Merge branch 'bugfix/idf_tools_not_found_issue_v4.2' into 'release/v4.2'
tools: Catch OSError which is raised when the tool is not available (v4.2)

See merge request espressif/esp-idf!14134
2021-07-13 15:42:46 +00:00
Prasad Alatkar
b50711eec1 NimBLE: Fix build error for broadcaster role and bug in peer_dev_record (v4.2)
* Fix bug in nvs deletion of `ble_dev_record`.
* Update NimBLE submodule to nimble-1.2.0-idf.
2021-07-13 13:58:06 +08:00
Roland Dobai
4e0b8678e4 Merge branch 'bugfix/broken_virtualenv_v4.2' into 'release/v4.2'
tools: Reinstall virtualenv if it is broken (v4.2)

See merge request espressif/esp-idf!12952
2021-07-12 15:28:50 +00:00
Mahavir Jain
b3e2c714a7 Merge branch 'bugfix/pthread_join_debug_log_v4.2' into 'release/v4.2'
pthread: Fix possible deadlock when using pthread_join() and Debug log level (v4.2)

See merge request espressif/esp-idf!13777
2021-07-12 11:34:53 +00:00
Zim Kalinowski
96406ea6a5 Merge branch 'bugfix/prefetch_invalid_v4.2' into 'release/v4.2'
soc: add dummy bytes to ensure instr prefetch always valid (v4.2)

See merge request espressif/esp-idf!12994
2021-07-09 08:09:48 +00:00
Anton Maklakov
0f095e4732 Merge branch 'bugfix/cmake_export_ver_during_reqs_expansion_v4.2' into 'release/v4.2'
cmake: set IDF_VERSION_* variables at requirement expansion stage (v4.2)

See merge request espressif/esp-idf!14044
2021-07-09 05:41:11 +00:00
morris
49d1dc0fd3 Merge branch 'bugfix/timer_example_crashed_not_calling_timer_group_set_alarm_value_in_isr_v4.2' into 'release/v4.2'
driver/timer: fixed auto reload problem in default isr callback  (backport to 4.2)

See merge request espressif/esp-idf!13530
2021-07-06 12:44:07 +00:00
Angus Gratton
d685449314 esp_system: Reconfigure the WDTs at the start of the panic handler
This is mostly important on ESP32 ECO3 with the
ESP32_ECO3_CACHE_LOCK_FIX, because when we stall the other CPU core
before we disable the TG1 WDT then the first CPU can get stuck
in WDT ISR handle_livelock_int routine waiting for the other CPU.
2021-07-06 11:55:08 +10:00
Michael (XIAO Xufeng)
45984aceb3 spi_docs: Fixed the default value of max_transfer_sz.
(cherry picked from commit e89fabb963)
2021-07-05 14:05:04 +08:00
Michael (XIAO Xufeng)
1fe9b428f5 Merge branch 'bugfix/fix_bit_error_in_ledc_struct_backport_v4.2' into 'release/v4.2'
LEDC: fix bit error in ledc_struct.h(backport v4.2)

See merge request espressif/esp-idf!14163
2021-07-04 07:49:23 +00:00
Wang Meng Yang
884b8d319f Merge branch 'bugfix/attack_crash_for_release_v4.2' into 'release/v4.2'
bugfix/fix crash when lmp flooding

See merge request espressif/esp-idf!13825
2021-07-02 13:05:03 +00:00
Michael (XIAO Xufeng)
5684196707 Merge branch 'bugfix/i2s_apll_disable_issue_v4.2' into 'release/v4.2'
i2s: fix driver uninstall issue (backport v4.2)

See merge request espressif/esp-idf!14000
2021-07-02 10:55:47 +00:00
liaowenhao
65e19c0d1a bugfix/fix crash when lmp flooding 2021-07-01 20:07:45 +08:00
Krzysztof Budzynski
8ee8dcb3c5 Merge branch 'docs/windows_installer_2.9_backport_4.2' into 'release/v4.2'
docs: update Windows Tools 2.9 installation - backport 4.2

See merge request espressif/esp-idf!14190
2021-07-01 11:08:50 +00:00
Juraj Michálek
2bea91d089 docs: update Windows Tools 2.9 installation 2021-06-30 12:45:19 +02:00
Wang Meng Yang
f8470e8336 Merge branch 'bugfix/fix_data_length_callback_param_err_v4.2' into 'release/v4.2'
Fixed data length update callback parameters error (backport v4.2)

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

See merge request espressif/esp-idf!14053
2021-06-30 04:28:22 +00:00
Angus Gratton
fbd2b60f52 Merge branch 'test/flash_perf_thr_update_by_grafana_avg_v4.2' into 'release/v4.2'
ci: adjust spi_flash performance value according to more test data (v4.2)

See merge request espressif/esp-idf!14117
2021-06-30 02:34:20 +00:00
Michael (XIAO Xufeng)
1d19a237b4 Update components/idf_test/include/esp32/idf_performance_target.h 2021-06-29 16:42:11 +08:00
Michael (XIAO Xufeng)
f7755f4175 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-06-29 16:42:11 +08:00
zwj
a8e8eead70 - fix data length update failed
- fix no callback when the value being used is the same as the value to be set
2021-06-28 14:59:17 +08:00
Angus Gratton
bd9a6f32dd Merge branch 'bugfix/esp32s2_rom_address_range_backport_v4.2' into 'release/v4.2'
soc: Fix SOC_IROM_MASK_HIGH address (backport v4.2)

See merge request espressif/esp-idf!13662
2021-06-28 05:57:32 +00:00
Marius Vikhammer
54383f684f 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-06-26 08:54:46 +08:00
Chen Yi Qun
23c7a2c628 LEDC: fix bit error in ledc_struct.h(backport v4.2) 2021-06-25 20:51:04 +08:00
Jiang Jiang Jian
efa6eca8b8 Merge branch 'bugfix/update_esp32_phy_max_tx_power_v4.2' into 'release/v4.2'
esp_wifi: update esp32 phy max tx power(v4.2)

See merge request espressif/esp-idf!14140
2021-06-25 02:49:05 +00:00
Angus Gratton
cdb8690e63 Merge branch 'feature/ci_release_zips_v4.2' into 'release/v4.2'
ci: Use GitHub Actions to generate recursive source code zips for releases (v4.2)

See merge request espressif/esp-idf!13199
2021-06-24 23:42:56 +00:00
David Čermák
93921e042c Merge branch 'bugfix/mdns_one_shot_multicast_v4.2' into 'release/v4.2'
mdns: Support for One-Shot mDNS queries (v4.2)

See merge request espressif/esp-idf!14131
2021-06-24 18:48:23 +00:00
David Čermák
fa05924bc2 Merge branch 'bugfix/mqtt_examples_certificates_update_v4.2' into 'release/v4.2'
bugfix/mqtt examples: Updates the CA certificates used. (v4.2)

See merge request espressif/esp-idf!13126
2021-06-24 18:11:08 +00:00
David Čermák
0f5628a63d Merge branch 'bugfix/mdns_interface_del_crash_v4.2' into 'release/v4.2'
mdns: Fix of crash when wifi interface get deleted and mdns receives the packets(Backport v4.2)

See merge request espressif/esp-idf!13856
2021-06-24 16:23:53 +00:00
David Čermák
b694d36b7e Merge branch 'feature/mqtt_intro_new_modes_v4.2' into 'release/v4.2'
MQTT:  Update submodule reference to support new config modes (v4.2)

See merge request espressif/esp-idf!13708
2021-06-24 15:08:11 +00:00
Roland Dobai
54da845d7c tools: Reinstall virtualenv if it is broken
Closes https://github.com/espressif/esp-idf/issues/6656
2021-06-24 09:26:43 +02:00
Roland Dobai
68c1999df3 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:16:56 +02:00
chenjianxing
96736a1cbd esp_wifi: update esp32 phy max tx power 2021-06-24 14:41:19 +08:00
Jiang Jiang Jian
c23a132698 Merge branch 'test/wifi_connect_with_full_scan_in_examples_v4.2' into 'release/v4.2'
example: set example wifi scan method to all channel (v4.2)

See merge request espressif/esp-idf!13913
2021-06-24 06:13:44 +00:00
Jiang Jiang Jian
60ccb3fecc Merge branch 'bugfix/fix_amsdu_fragment_vulnerability_v4.2' into 'release/v4.2'
esp_wifi: fix amsdu & fragment vulnerabilities(v4.2)

See merge request espressif/esp-idf!14099
2021-06-24 06:02:48 +00:00
David Cermak
af7f75268c 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-06-24 14:01:35 +08:00
Euripedes Rocha
33416006d3 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-24 13:57:49 +08:00
Mahavir Jain
131ab4b92b Merge branch 'bugfix/http_client_test_memcorupt_v4.2' into 'release/v4.2'
ci/test: Fix esp_http_client test not to use pointer after free (v4.2)

See merge request espressif/esp-idf!13701
2021-06-24 05:52:27 +00:00
David Cermak
df752f4c46 mdns: Support for One-Shot mDNS queries 2021-06-24 06:59:11 +02:00
Jiang Jiang Jian
c6e0decf0a Merge branch 'bugfix/lwip_docs_delete_while_select_v4.2' into 'release/v4.2'
lw-IP: Add docs about not supported delete of task while blocked on select (v4.2)

See merge request espressif/esp-idf!13677
2021-06-24 04:04:07 +00:00
David Cermak
3810be0df5 ci/test: Fix esp_http_client test not to use pointer after free 2021-06-23 20:31:37 +02:00
David Cermak
b71752f41b lwip: Add docs about not supported delete of task while blocked on select 2021-06-24 02:00:39 +08:00
Anton Maklakov
f4b556fdf9 Merge branch 'bugfix/mqtt_test_publish_less_data_v4.2' into 'release/v4.2'
ci: Make the mqtt example test to send only portion of the partition (v4.2)

See merge request espressif/esp-idf!14112
2021-06-23 15:18:23 +00:00
Suren Gabrielyan
0a387f98de 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-23 22:52:26 +08:00
David Cermak
afaff3bca3 ci: Make the mqtt example test to send only portion of the partition
This makes the test faster and more robust in very a busy WiFi environment
(our CI) and still exercises the scenario of fragmenting the message on
both mqtt and ssl levels (binary size to send > mqtt buffer size)
2021-06-23 08:27:44 +02:00
Angus Gratton
b20c5e3756 Merge branch 'feature/codeowners_v4.2' into 'release/v4.2'
add simplified CODEOWNERS file for older release branches (v4.2)

See merge request espressif/esp-idf!14091
2021-06-23 05:39:11 +00:00
Angus Gratton
54ac548cd4 Merge branch 'bugfix/esp32_u4wdh_quad_io_v4.2' into 'release/v4.2'
bootloader: Fix selection of Quad I/O modes on ESP32-U4WDH chip (v4.2)

See merge request espressif/esp-idf!13877
2021-06-23 05:37:51 +00:00
Wang Meng Yang
007bb3f9ed Merge branch 'bugfix/ble_set_scan_param_error' into 'release/v4.2'
Fix the bug when ble setting scan param

See merge request espressif/esp-idf!13973
2021-06-23 05:10:08 +00:00
xiongweichao
77f880ff2b fix spp acceptor deadlock 2021-06-23 11:01:17 +08:00
He Yin Ling
de2baf098b 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:17:48 +08:00
Jiang Jiang Jian
ebbc093fd2 Merge branch 'bugfix/fix_a2dp_sink_blocked_v4.2' into 'release/v4.2'
Bugfix/Fix a2dp Sink Blocked Bugs[backport v4.2]

See merge request espressif/esp-idf!14011
2021-06-22 13:12:03 +00:00
ChenJianxing
12ed1b2ab5 esp_wifi: fix amsdu & fragment vulnerabilities 2021-06-22 20:42:09 +08:00
Angus Gratton
036356ccba Merge branch 'bugfix/override_cmake_python_v4.2' into 'release/v4.2'
cmake: Minor Python CMake build fixes (v4.2)

See merge request espressif/esp-idf!13195
2021-06-22 07:45:17 +00:00
Ivan Grokhotkov
6f382600e4 add simplified CODEOWNERS file for older release branches 2021-06-22 09:21:51 +02:00
Angus Gratton
23a0ecedbf Merge branch 'feature/prevent_unwind_code_linking_4.2' into 'release/v4.2'
[C++]: prevent unwind code linking (backport 4.2)

See merge request espressif/esp-idf!13801
2021-06-22 04:48:45 +00:00
Angus Gratton
d938ab8fd4 Merge branch 'feature/update_libsodium_submodule_v4.2' into 'release/v4.2'
libsodium: Update library to v1.0.18 (v4.2)

See merge request espressif/esp-idf!13082
2021-06-22 03:06:44 +00:00
Anton Maklakov
3c4cfdfcd6 Merge branch 'bugfix/ci_socket_tests_v4.2' into 'release/v4.2'
ci: Made socket example tests more robust (v4.2)

See merge request espressif/esp-idf!13707
2021-06-22 02:05:01 +00:00
Angus Gratton
d8b921c438 Merge branch 'bugfix/link_gcov_rtio_backport_v4.2' into 'release/v4.2'
Bugfix/link gcov rtio backport v4.2

See merge request espressif/esp-idf!13832
2021-06-22 00:43:01 +00:00
Angus Gratton
0b45e84e2a Merge branch 'bugfix/ldgen_ignore_nonexistent_archives_and_obj_v4.2' into 'release/v4.2'
ldgen: Check mappings (v4.2)

See merge request espressif/esp-idf!13994
2021-06-21 23:20:59 +00:00
David Cermak
90b6780b1e ci: Made socket tests more robust
Added common timeout
Added debug logs for both addr families
Renamed example tests to have different names
2021-06-22 01:10:42 +08:00
Michael (XIAO Xufeng)
cb1a2642b6 Merge branch 'bugfix/spi_flash_cs_setup_v4.2' into 'release/v4.2'
spi_flash: fix cs line setup to make the flash driver more stable(backport v4.2)

See merge request espressif/esp-idf!13965
2021-06-21 14:33:02 +00:00
liqigan
a4f6af013c 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:14:34 +08:00
Island
9ac6689a5d Merge branch 'feat/ble_mesh_make_unprov_beacon_interval_configurable_v4.2' into 'release/v4.2'
Feat/ble mesh make unprov beacon interval configurable (v4.2)

See merge request espressif/esp-idf!14062
2021-06-21 11:39:41 +00:00
Anton Maklakov
dcf4d1fa8c Merge branch 'bugfix/loadable_elf_test_eco3_v4.2' into 'release/v4.2'
tests: gdb_loadable_elf: adjust the breakpoint location for ESP32 ECO3 (v4.2)

See merge request espressif/esp-idf!14040
2021-06-21 04:39:04 +00:00
wangjialiang
00008a3bf5 ble_mesh: stack: Fix crash for net_key_del when subnet is NULL 2021-06-21 11:24:13 +08:00
wangjialiang
f227f0ebe6 ble_mesh: stack: Make unprovisioned beacon interval configurable.
Closes https://github.com/espressif/esp-idf/issues/6722
2021-06-21 11:24:00 +08:00
Island
ea7b487807 Merge branch 'bugfix/AuthValue_leak_v4.2' into 'release/v4.2'
ble_mesh: stack: Fix AuthValue Leak and Predictable AuthValue in Bluetooth... (v4.2)

See merge request espressif/esp-idf!14023
2021-06-21 03:08:53 +00:00
Ivan Grokhotkov
0adf0f85dd 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:02:10 +02:00
Ivan Grokhotkov
55f233b945 docs: describe power management logic for ESP32-S2, fix translation 2021-06-18 15:40:35 +02:00
Ivan Grokhotkov
19121e2f6f 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:27:33 +02:00
Ivan Grokhotkov
2a81167470 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:09:47 +02:00
Krzysztof Budzynski
d7acee288d Merge branch 'feature/link_idf_common_docs_v4.2' into 'release/v4.2'
docs: Linking to a page to help navigate to documentation for specific ESP32-x chip (v4.2)

See merge request espressif/esp-idf!13843
2021-06-18 10:06:12 +00:00
Aditya Patwardhan
1cdf60c914 libsodium: Update library to v1.0.18 2021-06-18 16:40:15 +08:00
Angus Gratton
681e71cb10 Merge branch 'bugfix/elf_sha256_first_byte_skip_v4.2' into 'release/v4.2'
app_update: fix incorrect first byte from esp_ota_get_app_elf_sha256 (v4.2)

See merge request espressif/esp-idf!13663
2021-06-18 08:00:18 +00:00
wangjialiang
3212d62b2b ble_mesh: stack: Fix AuthValue Leak and Predictable AuthValue in Bluetooth Mesh Provisioning Leads to MITM 2021-06-18 14:21:02 +08:00
Island
7166428ac0 Merge branch 'bugfix/impersonation_attacks_and_AuthValue_disclosure_v4.2' into 'release/v4.2'
ble_mesh: stack: Add check the value of Provisioning Random & Confirmation... (v4.2)

See merge request espressif/esp-idf!13923
2021-06-18 06:11:46 +00:00
He Yin Ling
333b9d7873 Merge branch 'bugfix/example_test_socket_issue_4.2' into 'release/v4.2'
CI: example test socket issue (4.2)

See merge request espressif/esp-idf!13905
2021-06-18 06:04:42 +00:00
Krzysztof Budzynski
b0a51f30bb Merge branch 'docs/add_esp32-s2-devkitm-1_user_guide_backport' into 'release/v4.2'
Add ESP32-S2-DevKitM-1 User Guide (backport master)

See merge request espressif/esp-idf!13860
2021-06-18 06:01:03 +00:00
Krzysztof Budzynski
dd27b49891 Merge branch 'doc/nvs_get_used_entry_count__clarify_4.2' into 'release/v4.2'
[doc]: NVS documentation updates (backport 4.2)

See merge request espressif/esp-idf!13824
2021-06-18 05:59:08 +00:00
Angus Gratton
9b48e5a024 Merge branch 'bugfix/ci_ble_wifi_example_test_v4.2' into 'release/v4.2'
Fix for ble and wifi example test (v4.2)

See merge request espressif/esp-idf!13803
2021-06-18 05:39:38 +00:00
Angus Gratton
cd8173bc13 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-18 13:37:31 +08:00
Angus Gratton
a637d6f3d7 Merge branch 'ci/unify_all_target_test_artifacts_paths_v4.2' into 'release/v4.2'
ci: unify target test artifacts to all .log file and $LOG_PATH (v4.2)

See merge request espressif/esp-idf!13849
2021-06-18 05:37:30 +00:00
Angus Gratton
2d72e916ac Merge branch 'update/version_4_2_2' into 'release/v4.2'
Update version to 4.2.2

See merge request espressif/esp-idf!13984
2021-06-18 05:23:04 +00:00
Itay Perl
881909ecda 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:31 +08:00
morris
813931720e i2s: fix driver uninstall issue 2021-06-17 14:18:21 +08:00
Renz Bagaporo
eed6eed909 components: fix ldgen check errors 2021-06-17 12:36:34 +10:00
laokaiyao
9a14cf083f 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:30:44 +08:00
Renz Bagaporo
ea7d9c6368 ci: exempt upstream libmbedtls mapping for sha256 2021-06-17 12:21:53 +10:00
Renz Bagaporo
711048bce0 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-17 12:21:53 +10:00
Renz Bagaporo
2c1c4999f5 ci: enabled ldgen mapping check in ci 2021-06-17 12:20:58 +10:00
Renz Bagaporo
5aa09271d8 ldgen: allow checking mappings 2021-06-17 12:18:02 +10:00
wangjialiang
34bfff424a ble_mesh: stack: Add check the value of Provisioning Random & Confirmation sent and received by provisioner 2021-06-16 21:29:02 +08:00
He Yin Ling
7ab8f793ca versions: Update version to 4.2.2 2021-06-16 14:49:39 +08:00
Yang Zhao
24578ac17b 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-06-15 16:14:23 +08:00
Wang Fang
1bb087d6af docs: Correct uart default pin names and provid more information about ESP-Prog board 2021-06-15 15:37:05 +08:00
Cao Sen Miao
8c16b4bcb3 spi_flash: fix cs line setup to make the flash driver more stable 2021-06-15 15:24:35 +08:00
Jiang Jiang Jian
1e36383909 Merge branch 'bugfix/handling_public_action_frame_v4.2' into 'release/v4.2'
esp_wifi: Fix SoftAP crash by handling public action frames.

See merge request espressif/esp-idf!13927
2021-06-11 05:19:05 +00:00
aditi_lonkar
1e8fca74f2 esp_wifi: Fix SoftAP crash by adding NULL check for handling publc action frames.
Closes https://github.com/espressif/esp-idf/issues/7109
2021-06-10 18:47:27 +05:30
Jiang Jiang Jian
32c63fca90 Merge branch 'bugfix/fix_pmf_ba_issue_v4.2' into 'release/v4.2'
fix pmf ba issue ( v4.2)

See merge request espressif/esp-idf!13901
2021-06-10 12:20:49 +00:00
Angus Gratton
f23c9d94ae bootloader: Fix selection of Quad I/O modes on ESP32-U4WDH chip
Closes https://github.com/espressif/esp-idf/issues/6191
2021-06-09 05:10:21 +00:00
Island
4921446d3d Merge branch 'bugfix/btdm_enable_gattc_cache_will_crash_v4.2' into 'release/v4.2'
component/bt: fix enable gattc nvs cache lead to crash

See merge request espressif/esp-idf!13889
2021-06-09 03:46:27 +00:00
Chen Yudong
443c9ff276 test: fix socket issue in iperf example test 2021-06-08 17:11:38 +08:00
He Yin Ling
06c7cde836 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:08:29 +08:00
Chen Yudong
c26317ac90 CI: fix connection failures in asio example tests 2021-06-08 17:05:04 +08:00
He Yin Ling
96a00e59f4 example: set PMF capable to connect to PMF required APs 2021-06-08 16:07:09 +08:00
chenjianxing
36c2ef2828 esp_wifi: fix Block Ack issue when pmf enable 2021-06-08 16:06:24 +08:00
xiewenxiang
8491705b63 component/bt: fix enable gattc nvs cache lead to crash 2021-06-07 17:34:47 +08:00
Island
2c5f35fa8a Merge branch 'bugfix/bt_impersonation_passkey_fix_v4.2' into 'release/v4.2'
Bluedroid: Check only x component of passkey to avoid passkey impersonation attack. (v4.2)

See merge request espressif/esp-idf!13759
2021-06-07 07:24:00 +00:00
Ivan Grokhotkov
e632f2b366 Merge branch 'feature/IDF-2612_human_readable_error_v4.2' into 'release/v4.2'
export.bat/install.bat: print human-readable error message if Git or Python are not in PATH (v4.2)

See merge request espressif/esp-idf!13227
2021-06-07 06:08:15 +00:00
Ivan Grokhotkov
72f4f9542c Merge branch 'feature/installed_tool_failed_v4.2' into 'release/v4.2'
tools: Warning about tool being installed but failed to run. (v4.2)

See merge request espressif/esp-idf!13231
2021-06-07 06:07:54 +00:00
Ivan Grokhotkov
cbe42f1132 Merge branch 'bugfix/gdbgui_v4.2' into 'release/v4.2'
tools: Add various fixes for idf.py gdbgui (v4.2)

See merge request espressif/esp-idf!13417
2021-06-07 06:07:13 +00:00
Ivan Grokhotkov
8aa7eaa646 Merge branch 'bugfix/idfpy_global_action_callbacks_order_v4.2' into 'release/v4.2'
idf.py: Run global_action_callbacks in predictable order (v4.2)

See merge request espressif/esp-idf!13682
2021-06-07 06:06:54 +00:00
Ivan Grokhotkov
d21e948381 Merge branch 'feature/idf_tools_github_mirror_v4.2' into 'release/v4.2'
Add GitHub mirror option for IDF tools installs (v4.2)

See merge request espressif/esp-idf!13765
2021-06-07 06:06:31 +00:00
Ivan Grokhotkov
b50a8e0878 Merge branch 'bugfix/dfu_split_large_bins_v4.2' into 'release/v4.2'
tools: Split up large binaries into smaller chunks in the DFU binary (v4.2)

See merge request espressif/esp-idf!13794
2021-06-07 06:05:46 +00:00
Wang Ning
a5ffdaa962 Add ESP32-S2-DevKitM-1 User Guide
Update 1 based on comments

Fix typo

Add annotation to UFL connector

Add UFL connector to description table
2021-06-04 11:01:29 +08:00
Fu Hanxi
95f4bba736 ci: unify target test artifacts to all .log file and $LOG_PATH 2021-06-03 17:34:03 +08:00
Krzysztof
a954243875 docs: Linking to a page that helps navigate to documentation for specific ESP32-x chip 2021-06-03 08:13:03 +02:00
Angus Gratton
fa734e6af8 Merge branch 'bugfix/partition_table_integrity_check_v4.2' into 'release/v4.2'
paritition_table: Verify the partition table md5sum when loading in the app (v4.2)

See merge request espressif/esp-idf!13583
2021-06-03 02:19:11 +00:00
Angus Gratton
ca44fb1528 Merge branch 'bugfix/rtc_retain_mem_addr_v4.2' into 'release/v4.2'
bootloader: Fix "skip validate in deep sleep" on ESP32 & ESP32-S2 (v4.2)

See merge request espressif/esp-idf!13813
2021-06-03 02:18:59 +00:00
Alexey Gerenkov
0a5fbc1b8c gcov: Fixes not linked gcov rtio functions 2021-06-02 21:48:29 +03:00
Jakob Hasse
5dbca18324 [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-06-02 15:46:13 +08:00
Angus Gratton
f8b9cb2864 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 06:35:45 +00:00
Roland Dobai
7b70154566 tools: Split up large binaries into smaller chunks in the DFU binary
ROM will erase the region a partition is in as soon as it receives the
first bit of the data that is in the partition. For large partitions it
takes more than 5 seconds to erase which is a hard-coded limit in
dfu-utils.

This splits large binaries and adds them by chunks which should avoid
timing-out during flashing.

Closes https://github.com/espressif/esp-idf/issues/6999
2021-06-01 15:11:12 +02:00
Angus Gratton
fd50bcf704 bootloader: Fix "skip validate in deep sleep" on ESP32 & ESP32-S2
Regression in 83bf2e1ac1, this memory region was shifted from fast to slow RTC
memory (no change on ESP32-C3 as no RTC fast memory on this chip.)
2021-06-01 19:07:15 +10:00
Shivani Tipnis
be960bc3dc ble-wifi-example-tests: Add fixes and cleanups to ble and wifi tests
(cherry picked from commit 2d22374460)
2021-06-01 12:43:59 +05:30
Jakob Hasse
dd08575c29 [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 15:09:46 +08:00
Chinmay Chhajed
c1e204634f Bluedroid: Check only x component of passkey to avoid passkey impersonation attack. 2021-05-31 05:10:59 +00:00
daiziyan
96d00c5fa5 add CN translation for index.rst in get started section for MR10616 2021-05-31 11:05:04 +10:00
Anton Maklakov
054d3b81a6 tools: windows installer: Modify IDF's archive mirror link 2021-05-31 11:05:04 +10:00
Ivan Grokhotkov
daeaa8092b tools: windows installer: add support for IDF_GITHUB_ASSETS
Adds a checkbox to download tools from dl.espressif.com mirror.
2021-05-31 11:05:04 +10:00
Angus Gratton
56b4596b53 tools: Use GitHub download URLs for all files that can be downloaded from GitHub 2021-05-31 11:05:04 +10:00
Angus Gratton
bebc75af48 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:04:00 +10:00
Angus Gratton
71cf821659 Merge branch 'bugfix/calc_8m_freq_test_v4.2' into 'release/v4.2'
rtc: increase CI acceptance range for calc 8M test (v4.2)

See merge request espressif/esp-idf!13086
2021-05-30 23:46:14 +00:00
Jiang Jiang Jian
652e214f55 Merge branch 'mesh/esp_mesh_send_block_time_v4.2' into 'release/v4.2'
esp_wifi_mesh: add esp_mesh_send_block_time to set blocking time of esp_mesh_send(backport v4.2)

See merge request espressif/esp-idf!13409
2021-05-27 10:50:28 +00:00
shenjun
345e6acf80 esp_wifi_mesh: add esp_mesh_send_block_time
1. Ignore dirtyBuf check when buffer size is larger than 4092
2. Add esp_mesh_send_block_time to set blocking time of esp_mesh_send
2021-05-27 08:27:39 +00:00
Jiang Jiang Jian
e8e6021ada Merge branch 'docs/add_rf_calib_docs_v4.2' into 'release/v4.2'
docs: add RF calibration docs for ESP32-S2(v4.2)

See merge request espressif/esp-idf!13723
2021-05-27 08:06:12 +00:00
Jiang Jiang Jian
df0ca79bdb Merge branch 'bugfix/btdm_set_discoverable_after_create_server_v4.2' into 'release/v4.2'
components/bt: Set discoverable after create server

See merge request espressif/esp-idf!13726
2021-05-26 08:26:30 +00:00
Jiang Jiang Jian
ca77bdddbf Merge branch 'bugfix/fix_uart_handler_call_inline_func_v42' into 'release/v4.2'
Bugfix/fix uart handler call inline func (backport v4.2)

See merge request espressif/esp-idf!13005
2021-05-26 03:45:29 +00:00
Jiang Jiang Jian
e459f7b498 Merge branch 'bugfix/cmake_ulp_reserved_size_v4.2' into 'release/v4.2'
ulp: Fix bug where ULP linker script not regenerated for new config (v4.2)

See merge request espressif/esp-idf!13629
2021-05-26 03:43:55 +00:00
Jiang Jiang Jian
841aca897c Merge branch 'feature/extmem_alloc_for_s2_v4.2' into 'release/v4.2'
External memory allocation policy support  for ESP32-S2 (GitHub PR) (v4.2)

See merge request espressif/esp-idf!13620
2021-05-26 03:43:13 +00:00
Jiang Jiang Jian
b860069c10 Merge branch 'bugfix/start_emac_after_phy_reset_v4.2' into 'release/v4.2'
esp_eth: restart negotiation in esp_eth_start (v4.2)

See merge request espressif/esp-idf!13699
2021-05-26 03:36:38 +00:00
baohongde
bb1aa0ed5e components/bt: Set discoverable after create server 2021-05-26 11:35:07 +08:00
Jiang Jiang Jian
481da3143d Merge branch 'bugfix/ds_invalidate_assert_v4.2' into 'release/v4.2'
esp32s2 ds: Fix invalidating Digital Signature key from HMAC peripheral if assertions are disabled (v4.2)

See merge request espressif/esp-idf!12906
2021-05-26 03:30:45 +00:00
Jiang Jiang Jian
536d6eea61 Merge branch 'bugfix/aes_dma_completion_v4.2' into 'release/v4.2'
mbedtls: Fix AES dma completion race condition (v4.2)

See merge request espressif/esp-idf!12904
2021-05-26 03:30:18 +00:00
He Yin Ling
176ea97dd0 Merge branch 'test/support_multiple_targets_for_iperf_example_test_v4.2' into 'release/v4.2'
test: support multiple targets for iperf example test (v4.2)

See merge request espressif/esp-idf!13618
2021-05-26 03:11:56 +00:00
He Yin Ling
ca2a15dca7 Merge branch 'ci/ttfw_fix_dut_exception_not_added_to_junit_report_v4.2' into 'release/v4.2'
ttfw: fix DUT exception not added to junit report (v4.2)

See merge request espressif/esp-idf!12142
2021-05-26 03:11:26 +00:00
chenjianxing
5d88861dba docs: add RF calibration docs for ESP32-S2 2021-05-26 10:58:38 +08:00
Jiang Jiang Jian
f8e633a352 Merge branch 'ajust_espnow_channel_config_range_v4.2' into 'release/v4.2'
adjust espnow channel range

See merge request espressif/esp-idf!13689
2021-05-25 15:41:16 +00:00
Jiang Jiang Jian
9e40c13d4e Merge branch 'bugfix/invalid_feat_page_exec_v4.2' into 'release/v4.2'
bt controller: Fixed handling for invalid feature page.

See merge request espressif/esp-idf!13572
2021-05-25 14:51:24 +00:00
Angus Gratton
6e0c046bd9 mbedtls tests: Add optional debug log output to AES stream tests 2021-05-25 14:36:47 +00:00
Angus Gratton
9e1324fbbb mbedtls aes dma: Fix bug where DMA would complete when the first output descriptor was done, not the last 2021-05-25 14:36:47 +00:00
Jiang Jiang Jian
95c118171a Merge branch 'bugfix/backport_some_lwip_bugs_0428_v4.2' into 'release/v4.2'
lw-ip:backport bugfix lwip for v4.2(backport v4.2)

See merge request espressif/esp-idf!13378
2021-05-25 14:27:42 +00:00
Angus Gratton
2af8fac1d9 esp32s2 ds: Fix invalidating Digital Signature key from HMAC peripheral if assertions are disabled 2021-05-25 14:22:55 +00:00
Jiang Jiang Jian
93c28d1fac Merge branch 'bugfix/phy_calib_data_to_nvs_for_c3_s3_v4.2' into 'release/v4.2'
esp_wifi: re-enable phy calibration data to nvs for esp32s2

See merge request espressif/esp-idf!13626
2021-05-25 14:19:54 +00:00
Jiang Jiang Jian
97ed80f415 Merge branch 'nimble/fix_ble_sm_sc_pub_key_v4.2' into 'release/v4.2'
NimBLE: Fix MITM vulnerability and free AES context (v4.2)

See merge request espressif/esp-idf!13597
2021-05-25 14:17:55 +00:00
Jiang Jiang Jian
b18f37b2e2 Merge branch 'bugfix/ag_use_dynamic_memory_error_v4.2' into 'release/v4.2'
Fix ag use dynamic memory error

See merge request espressif/esp-idf!13551
2021-05-25 14:17:18 +00:00
Prasad Alatkar
0ca5134d5f NimBLE: Fix MITM vulnerability and free AES context (v4.2) 2021-05-25 09:21:12 +00:00
xueyunfei
a7c17edc8a backport bugfix lwip for v4.2 2021-05-25 09:06:28 +00:00
Jiang Jiang Jian
bab80796ca Merge branch 'bugfix/remove_redundant_other_core_cache_disable_v4.2' into 'release/v4.2'
[system]: Remove redundant othercore cache disable (backport v4.2)

See merge request espressif/esp-idf!13357
2021-05-25 09:05:33 +00:00
Jiang Jiang Jian
c219c9dcb2 Merge branch 'bugfix/fix_set_channel_error_after_wifi_stop_v4.2' into 'release/v4.2'
esp_wifi: Fix setting channel error after WiFi stop (backport v4.2)

See merge request espressif/esp-idf!13447
2021-05-25 08:09:39 +00:00
morris
e892fed593 esp_eth: restart negotiation in esp_eth_start 2021-05-25 15:17:48 +08:00
Michael (XIAO Xufeng)
18a262a6fa Merge branch 'ci/decrease_flash_performance_thr_4.2' into 'release/v4.2'
ci: decrease the flash performance threshold (4.2)

See merge request espressif/esp-idf!13632
2021-05-25 07:11:14 +00:00
baohongde
7988705558 components/bt: Delete BLE ADV priority high 2021-05-25 15:10:49 +08:00
xiongweichao
8e7f7dfe59 Remove btc_hf_idx_by_bdaddr in both btc_hf_init and btc_hf_deinit functions 2021-05-25 07:06:22 +00:00
xiongweichao
b257ad7d9e fix ag use dynamic memory error 2021-05-25 07:06:22 +00:00
Chinmay Chhajed
4d95ffcca2 bt controller: Fixed handling for invalid feature page. 2021-05-25 10:39:25 +05:30
wangmengyang
adb20fb2f3 components/bt: fix PATH of libbtdm_app.a in build script 2021-05-25 10:39:25 +05:30
dongyou
a8227a1d13 adjust espnow channel range 2021-05-25 11:21:53 +08:00
Michael (XIAO Xufeng)
d2715324e5 Merge branch 'bugfix/fix_touch_sensor_power_source_v4.2' into 'release/v4.2'
touch_sensor: fix esp32s2 touch sensor default power source (Backport v4.2)

See merge request espressif/esp-idf!13485
2021-05-25 03:13:32 +00:00
Sergei Silnov
2deea3b1b0 Run global_action_callbacks in predictable order 2021-05-24 18:14:44 +02:00
Darian Leung
f837b298e6 soc: Fix SOC_IROM_MASK_HIGH address
The high address limit IROM on the esp32s2 is incorrect, thus
causing backtrace printing to think valid function PCs are invalid.
2021-05-24 15:22:16 +08:00
He Yin Ling
e60640ab04 ttfw: fix DUT exception not added to junit report 2021-05-21 08:37:28 +00:00
Michael (XIAO Xufeng)
899c7852a4 ci: decrease the flash performance threshold 2021-05-21 13:03:36 +08:00
Angus Gratton
be74e06e50 ulp: Fix bug where ULP linker script not regenerated for new config
ULP linker script relies on value of CONFIG_ESP32S2_ULP_COPROC_RESERVE_MEM,
when this value changes in config then it should be regenerated.
2021-05-21 10:56:05 +10:00
chenjianxing
d3e730ff57 esp_wifi: re-enable phy calibration data to nvs for esp32s2 2021-05-20 22:13:39 +08:00
Marcel Kottmann
06bf491f13 mbedtls: Allow external mem alloc for ESP32-S2
Closes https://github.com/espressif/esp-idf/pull/6998
Closes IDFGH-5226
2021-05-20 15:22:07 +05:30
He Yin Ling
54bf4dccfa test: support multiple targets for iperf example test 2021-05-20 17:09:53 +08:00
Island
d9ec7df393 Merge branch 'nimble/fix_host_flow_ctrl_v4.2' into 'release/v4.2'
NimBLE: Fix host flow control in NimBLE porting layer and host (release/v4.2)

See merge request espressif/esp-idf!13571
2021-05-19 08:52:23 +00:00
Angus Gratton
71cddbdf8f Merge branch 'bugfix/fe_example_test_args' into 'release/v4.2'
ci: fix flash encryption example test esptool args (4.2)

See merge request espressif/esp-idf!13539
2021-05-19 06:58:48 +00:00
Angus Gratton
a699475df2 Merge branch 'bugfix/fix_ppos_ci_python3' into 'release/v4.2'
CI: fix ppos test app python3 error (v4.2)

See merge request espressif/esp-idf!13592
2021-05-19 06:58:41 +00:00
Marius Vikhammer
b5976a7167 CI: fix error when running pppos test app with python3
Socket.sendall expects bytes in python3, not strings
2021-05-19 11:42:42 +08:00
Prasad Alatkar
1c7340d229 NimBLE: Update submodule to fix host flow control bugs. 2021-05-18 18:10:19 +05:30
Prasad Alatkar
b3e1829f10 NimBLE: Fix host flow control in NimBLE porting layer.
- Register `ble_hs_flow_acl_free` callback in NimBLE porting layer.
2021-05-17 14:16:19 +05:30
Kang Zuoling
2515cd72c1 touch_sensor: fix esp32s2 touch sensor default power source 2021-05-15 13:52:37 +08:00
Jiang Jiang Jian
8a841d7cdf Merge branch 'bugfix/gtk_reinstallation_fix_v4.2' into 'release/v4.2'
wpa_supplicant: Prevent reinstallation of an already in-use group key (v4.2)

See merge request espressif/esp-idf!13182
2021-05-13 04:30:53 +00:00
Hrudaynath Dhabe
31d05a5072 wpa_supplicant: Group key reinstallation fixes
This commit reverts previous commit for GTK reinstallation fix
and corrects original fix.
2021-05-13 12:30:44 +08:00
Jiang Jiang Jian
bfb7c66a9f Merge branch 'bugfix/timer_spinlock_iram_v4.2' into 'release/v4.2'
timer: add IRAM_ATTR to spinlock give/take API (v4.2)

See merge request espressif/esp-idf!13512
2021-05-13 04:30:02 +00:00
Marius Vikhammer
3bb84e7738 ci: fix flash encryption example test esptool args
Esptool submodule got updated which changed the function signature for EncryptFlashDataArgs.

Update example test script to reflect the new function signature
2021-05-13 11:05:32 +08:00
Marius Vikhammer
ff4ca61cc6 timer: add IRAM_ATTR to spinlock give/take API
Closes https://github.com/espressif/esp-idf/issues/6824
2021-05-11 15:32:37 +08:00
Angus Gratton
f195a1d8ae Merge branch 'bugfix/otatool_wrong_switch_ota_partition_slots_v4.2' into 'release/v4.2'
otatool: Fix incorrect using otadata.seq&crc in switch_ota_partition cmd (v4.2)

See merge request espressif/esp-idf!13368
2021-05-11 01:27:53 +00:00
Angus Gratton
d52331849e Merge branch 'bugfix/flash_rodata_any_alignement_v4.2' into 'release/v4.2'
build: Fix cache issue and add dedicated section for (Custom) App version info (backport v4.2)

See merge request espressif/esp-idf!13465
2021-05-11 01:03:12 +00:00
Jiang Jiang Jian
d29cce7f0a Merge branch 'bugfix/fix_some_pm_issue_v4.2' into 'release/v4.2'
esp_pm: add an interface to get pm configuration (backport to v4.2)

See merge request espressif/esp-idf!13124
2021-05-10 03:45:55 +00:00
Jiang Jiang Jian
6b47fcdbdc Merge branch 'bugfix/correct_cod_check_v4.2' into 'release/v4.2'
esp-idf: Corrected check of Class of Device for discovered devices (v4.2)

See merge request espressif/esp-idf!13020
2021-05-10 03:45:35 +00:00
Jiang Jiang Jian
9a2362b5c7 Merge branch 'nimble/add_error_prints_acl_buf_v4.2' into 'release/v4.2'
NimBLE: Add error prints for ACL buffer exhaustion in NPL (v4.2)

See merge request espressif/esp-idf!12969
2021-05-10 03:45:08 +00:00
Jiang Jiang Jian
abe7a9d020 Merge branch 'bugfix/wifi_softap_deep_sleep_current_opt_v4.2' into 'release/v4.2'
backport v4.2: optimize deep sleep current in wifi softap mode

See merge request espressif/esp-idf!13393
2021-05-10 03:44:29 +00:00
Jiang Jiang Jian
9f63baf061 Merge branch 'bugfix/generate_value_0_when_prov_auth_v4.2' into 'release/v4.2'
ble_mesh: stack: Fix provisioning input or output count number should be at least 1 (v4.2)

See merge request espressif/esp-idf!13479
2021-05-10 03:42:24 +00:00
Omar Chebib
bf4320ba68 ci: fix flasher_args.json parser (iterate over dictionary)
Closes IDFCI-347
2021-05-10 11:18:09 +08:00
Omar Chebib
5c175721e9 ci: use "encrypted" information in flasher_args.json
Take into account the new field "encrypted" that is part of the
partition entries in flasher_args.json file
Closes IDF-2231
2021-05-10 11:18:09 +08:00
Omar Chebib
78ea042e7d esptool: Update esptool to have merge adjacent sections feature 2021-05-10 11:18:09 +08:00
Ivan Grokhotkov
af7b21851e freertos: fix TLS run-time address calculation
Since dd849ffc, _rodata_start label has been moved to a different
linker output section from where the TLS templates (.tdata, .tbss)
are located. Since link-time addresses of thread-local variables are
calculated relative to the section start address, this resulted in
incorrect calculation of THREADPTR/$tp registers.

Fix by introducing new linker label, _flash_rodata_start, which points
to the .flash.rodata output section where TLS variables are located,
and use it when calculating THREADPTR/$tp.

Also remove the hardcoded rodata section alignment for Xtensa targets.
Alignment of rodata can be affected by the user application, which is
the issue dd849ffc was fixing. To accommodate any possible alignment,
save it in a linker label (_flash_rodata_align) and then use when
calculating THREADPTR. Note that this is not required on RISC-V, since
this target doesn't use TPOFF.
2021-05-10 11:18:09 +08:00
Omar Chebib
974b8dd4c4 build: (Custom) App version info is now on a dedicated section, independent of the rodata alignment
It is now possible to have any alignment restriction on rodata in the user
applicaiton. It will not affect the first section which must be aligned
on a 16-byte bound.

Closes https://github.com/espressif/esp-idf/issues/6719
Closes https://github.com/espressif/esp-idf/issues/6976
2021-05-10 11:17:58 +08:00
Jiang Jiang Jian
87da4bccd4 Merge branch 'bugfix/btdm_fix_multi-con_pair_failed_and_cancle_con_state_err_v4.2' into 'release/v4.2'
fix multi con pair failed and cancel con state err (backport v4.2)

See merge request espressif/esp-idf!13475
2021-05-08 12:53:35 +00:00
wangjialiang
c68f520389 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 11:49:25 +08:00
Krzysztof Budzynski
232786235b Merge branch 'docs/update_CN_buildsystem_v4.2' into 'release/v4.2'
update CN translation for build-system for v4.2

See merge request espressif/esp-idf!13291
2021-05-08 03:36:01 +00:00
Dai Zi Yan
61fdb62c54 update CN translation for build-system for v4.2 2021-05-08 11:35:56 +08:00
Island
c4155d4b47 Merge branch 'bugfix/endianness_in_output_or_input_oob_v4.2' into 'release/v4.2'
ble_mesh: stack: Fix endianness error in output or input oob data of number (v4.2)

See merge request espressif/esp-idf!13255
2021-05-07 13:45:15 +00:00
zwj
34e8265821 update con state when getting connection cancle complete 2021-05-07 20:47:34 +08:00
zwj
3ebcb25fb1 fix multi-connection pair failed 2021-05-07 20:46:50 +08:00
Wang Meng Yang
7223c8db5b Merge branch 'bugfix/btdm_incorrectly_spelled_v4.2' into 'release/v4.2'
component/bt: fix Spelling mistakes (release v4.2)

See merge request espressif/esp-idf!12816
2021-05-07 08:10:02 +00:00
Angus Gratton
fc7bf950f3 Merge branch 'bugfix/freertos_addition_overflow_v4.2' into 'release/v4.2'
freertos: Fix addition overflow (v4.2)

See merge request espressif/esp-idf!13423
2021-05-07 07:52:31 +00:00
wangjialiang
c37b15fa22 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:33:59 +00:00
Michael (XIAO Xufeng)
e3fd4b097b Merge branch 'bugfix/spi_fix_duplex_switch_v4.2' into 'release/v4.2'
spi_master: fix duplex mode switch issue for multi devices (4.2)

See merge request espressif/esp-idf!11233
2021-05-06 07:43:40 +00:00
xiehang
86141ad01c esp_wifi: Fix setting channel error after WiFi stop 2021-05-06 11:40:57 +08:00
He Yin Ling
223cf48c26 Merge branch 'bugfix/python3_target_test_4.2' into 'release/v4.2'
ci: run target test with python3

See merge request espressif/esp-idf!12755
2021-05-06 02:19:19 +00:00
Angus Gratton
6d9d40e888 Merge branch 'bugfix/fix_bootloader_time_too_long_bug_v4.2' into 'release/v4.2'
esp32s2: decrease boot up and cpu start up time (backport v4.2)

See merge request espressif/esp-idf!12729
2021-05-06 02:03:10 +00:00
Angus Gratton
45c90be913 Merge branch 'update/version_4_2_1' into 'release/v4.2'
Update version to 4.2.1

See merge request espressif/esp-idf!13390
2021-05-05 23:12:32 +00:00
Krzysztof Budzynski
e7dc6eb8da Merge branch 'bugfix/doxygen_input_file_bug_v4.2' into 'release/v4.2'
docs: fix doxygen compile warnings for doxygen 1.9.1 (v4.2)

See merge request espressif/esp-idf!13076
2021-05-05 10:14:19 +00:00
Marius Vikhammer
56e7cb0c70 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-05-05 18:14:19 +08:00
Krzysztof Budzynski
ad095f555b Merge branch 'docs/update_ESP32-S2-Kaluga-Kit_user_guide' into 'release/v4.2'
Update kaluga user guides for v1.3

See merge request espressif/esp-idf!12895
2021-05-05 10:11:36 +00:00
chaijie
e349f1b484 esp32s2: Decrease boot up time by delete useless slow clock calibration 2021-05-05 06:57:05 +00:00
Angus Gratton
be8295a918 Merge branch 'bugfix/ttfw_example_test_fails_port_remains_open_v4.2' into 'release/v4.2'
ci: Fix CI issue if one example test fails, and if serial port returns some noise (v4.2)

See merge request espressif/esp-idf!12381
2021-05-04 23:25:45 +00:00
Angus Gratton
c8912b79a6 freertos: Check for arithmetic overflows on queue creation
Addition overflow check is from FreeRTOS kernel commit 47338393f1f79558f6144213409f09f81d7c4837
2021-05-04 18:35:04 +10:00
Angus Gratton
5b932aa144 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-04 07:54:20 +00:00
Angus Gratton
c52417eaba cmake: Set IDFTOOL variable using the correct PYTHON interpreter variable 2021-05-04 07:54:20 +00:00
Angus Gratton
48d075f87b cmake: Fix passing PYTHON path via CMake variable if using IDF as library
Closes https://github.com/espressif/esp-idf/issues/6285
2021-05-04 07:54:20 +00:00
Mahavir Jain
ec510fdf18 Merge branch 'bugfix/deep_sleep_skip_verify_rtc_mem_heap_v4.2' into 'release/v4.2'
Fix bootloader "skip validate on exiting deep sleep" option if "use RTC memory as heap" is enabled (v4.2)

See merge request espressif/esp-idf!13097
2021-05-03 13:44:06 +00:00
Mahavir Jain
e8f5b76112 Merge branch 'bugfix/fix_mbedtls_send_alert_crash_v4.2' into 'release/v4.2'
mbedtls: fix mbedtls dynamic resource memory leaks and mbedtls_ssl_send_alert_message crash due to ssl->out_iv is NULL[backport v4.2]

See merge request espressif/esp-idf!13301
2021-05-03 13:37:36 +00:00
Mahavir Jain
0f0cfb2cbc Merge branch 'bugfix/esp_http_client_read_v4.2' into 'release/v4.2'
Fix esp_http_client_read for file size aligned to 289 bytes (v4.2)

See merge request espressif/esp-idf!13306
2021-05-03 13:36:51 +00:00
Roland Dobai
62589fa251 tools: Add various fixes for idf.py gdbgui
Closes https://github.com/espressif/esp-idf/issues/5968
2021-05-03 11:43:36 +02:00
Angus Gratton
1cffa733a5 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:49 +00:00
Li Shuai
f16e8cb48e deep sleep: optimize sleep current in wifi softap mode 2021-04-29 10:51:42 +08:00
He Yin Ling
21ecef5c56 versions: Update version to 4.2.1 2021-04-29 10:13:07 +08:00
yuanjm
532912b025 mbedtls: Fix mbedtls_ssl_send_alert_message crash due to ssl->out_iv is NULL 2021-04-28 09:11:15 +00:00
Dong Heng
176d6fa4d0 fix(mbedtls): fix mbedtls dynamic resource memory leaks and RSA cert drop earlier
RX process caches the session information in "ssl->in_ctr" not in "ssl->in_buf".
So when freeing the SSL, can't free the "ssl->in_ctr", because the "ssl->in_buf"
is empty.

Make the RX process like TX process, and cache the session information in
"ssl->in_buf", so that the cache buffer can be freed when freeing the SSL.

Closes https://github.com/espressif/esp-idf/issues/6104
2021-04-28 09:11:15 +00:00
Shubham Kulkarni
7ad3837244 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:01:11 +00:00
KonstantinKondrashov
e7f75e6559 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:39:50 +08:00
wuzhenghui
03e6d07b50 remove othercore cache disable 2021-04-27 14:39:49 +08:00
Marek Fiala
c71b1f6d4d 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:12:07 +02:00
Marek Fiala
40b7ea1f95 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:57:45 +02:00
Natasha
48d3badc0f update kaluga user guides for v1.3 2021-04-26 07:07:54 +00:00
Chen Yudong
fa270d72c7 ci: using python3 to tun target test 2021-04-26 06:35:42 +00:00
Angus Gratton
baaf4de703 ci: Fix missing sys.stdout.encoding in python2 runners
Regression in fed98cd6ad
2021-04-23 23:09:58 +00:00
Angus Gratton
34a84c829c 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-04-23 23:09:58 +00:00
Angus Gratton
340e2dff12 ci: Log failure to close any DUT 2021-04-23 23:09:58 +00:00
Angus Gratton
c8d15588e5 Merge branch 'bugfix/rtc_fast_memory_force_on_in_use_for_heap_backport_v4.2' into 'release/v4.2'
Bugfix/rtc fast memory force on in use for heap (backport v4.2)

See merge request espressif/esp-idf!12873
2021-04-23 09:06:40 +00:00
David Čermák
deaad551c4 Merge branch 'bugfix/mdns_configure_strict_mode_v4.2' into 'release/v4.2'
mdns: Fix mdns to correctly answer non-strict queries (+ additional fixes) (v4.2)

See merge request espressif/esp-idf!13122
2021-04-22 11:09:58 +00:00
David Cermak
19634e34e9 mdns: Fixed the ip header TTL to be correctly set to 255
Defined in https://tools.ietf.org/html/rfc6762#section-11: All Multicast DNS responses (including responses sent via unicast)
   SHOULD be sent with IP TTL set to 255
2021-04-22 08:32:43 +00:00
David Cermak
4f4640b1df mdns: Fix parsing answers with questions when instance name not set
mdns resolver didn't correctly resolved queries when host name wasn't
assigned. Fixed by allowing processing also if some answer present
(non-strict mode)

Closes https://github.com/espressif/esp-idf/issues/6598
2021-04-22 08:32:43 +00:00
David Cermak
92e511a5b6 mdns: Fix the resolver to correctly parse it's own non-strict answers
The resolver was able to respond correctly, but would also resolve its
own queries and cause issues with BCT 1.5.2, specifically
* MULTIPLE QUESTIONS - DUPLICATE SUPPRESSION
* MULTIPLE QUESTIONS - DISTRIBUTED DUPLICATE SUPPRESSION
tests failed.
2021-04-22 08:32:43 +00:00
suren.gabrielyan
7064eb9729 mdns: Add MDNS_STRICT_MODE config option
Strict mode was hardcoded in private header file, but it's useful for
users to enable/disable it depending on the mdns library they are using.
e.g. Avahi might not resolve the non-strict answers.
2021-04-22 08:32:43 +00:00
Jiang Jiang Jian
a7b419b652 Merge branch 'bugfix/e8192_and_assert_param_v4.2' into 'release/v4.2'
Modify E8192 ELx200 ELx40 log level to LOGD

See merge request espressif/esp-idf!13148
2021-04-21 08:48:00 +00:00
baohongde
6ed64c2a2d Synchronize multiple branch of bt lib(release/v4.1 ~ master) 2021-04-21 04:07:59 +00:00
xiongweichao
ac179dcd99 Modify E8192 ELx200 ELx40 log level to LOGD 2021-04-21 04:07:59 +00:00
Angus Gratton
82801321e8 Merge branch 'bugfix/secure_boot_v2_had_zeros_blk2_after_en' into 'release/v4.2'
secure_boot_v2: Fix case when BLOCK2 is left blank

See merge request espressif/esp-idf!13243
2021-04-21 01:15:40 +00:00
KonstantinKondrashov
4200af3e26 secure_boot_v2: Fix case when BLOCK2 is left blank
Closes: https://github.com/espressif/esp-idf/issues/6886
2021-04-20 23:23:32 +00:00
Angus Gratton
46560be284 Merge branch 'bugfix/ci/ci_fetch_submodule_fully_match_return_first_v4.2' into 'release/v4.2'
fix(ci): ci_fetch_submodule return full match name first (v4.2)

See merge request espressif/esp-idf!13211
2021-04-20 23:22:21 +00:00
Fu Hanxi
bbc05c5095 fix(ci): ci_fetch_submodule return full match name first 2021-04-19 20:21:07 +08:00
Angus Gratton
8de16142a5 bootloader: Fix "skip validate on exit deep sleep" when "Use RTC fast memory as heap" is enabled
RTC region used to store boot partition needs to remain reserved in the app.
2021-04-16 10:50:55 +10:00
ninh
e378ecd6cf esp_pm: add an interface to get pm configuration (backport to v4.2) 2021-04-13 17:15:35 +08:00
Marius Vikhammer
d20b442af2 rtc: increase CI acceptance range for calc 8M test 2021-04-09 15:06:20 +08:00
Juraj Michálek
e74fbf6608 tools: handle exception in case of logging Unicode characters 2021-04-06 19:16:39 +02:00
Rahul Tank
726ce37b14 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:31 +05:30
aleks
df079d4ca9 soc/uart: update uart low level functions used in isr with force inline attribute 2021-03-31 17:46:17 +02:00
Prasad Alatkar
2ec1b7434e NimBLE: Add error prints for ACL buffer exhaustion in NPL 2021-03-31 10:43:19 +05:30
Michael (XIAO Xufeng)
cf53feff6f Merge branch 'bugfix/touch_sensor_reading_error_in_light_sleep_process_backport_v4.2' into 'release/v4.2'
Bugfix/touch sensor reading error in light sleep process (backport v4.2)

See merge request espressif/esp-idf!12880
2021-03-26 16:01:47 +00:00
fuzhibo
2f5eba9263 driver(touch): fix touch sensor false trigger in sleep mode 2021-03-26 10:57:50 +08:00
Michael (XIAO Xufeng)
f4e11dce34 Merge branch 'bugfix/clear_interrupt_in_touch_sensor_initialization_backport_v4.2' into 'release/v4.2'
Bugfix/clear interrupt in touch sensor initialization (backport v4.2)

See merge request espressif/esp-idf!12883
2021-03-25 11:04:44 +00:00
fuzhibo
a866f0d8f6 fix: clear interrupt in touch sensor initialization 2021-03-25 11:14:24 +08:00
Michael (XIAO Xufeng)
dd56e9523b Merge branch 'bugfix/fix_driver_dac_ci_fail_backport_v4.2' into 'release/v4.2'
bugfix(dac): fix testcase fail for dac (backport v4.2)

See merge request espressif/esp-idf!12882
2021-03-25 01:21:54 +00:00
Michael (XIAO Xufeng)
e66ac8b2e5 Merge branch 'bugfix/freemodbus_fix_mbm_event_processing_v42' into 'release/v4.2'
Bugfix/freemodbus fix mbm event processing (backport v4.2)

See merge request espressif/esp-idf!12823
2021-03-25 01:18:45 +00:00
Michael (XIAO Xufeng)
a607e0651c Merge branch 'bugfix/uart_read_o2_v4.2' into 'release/v4.2'
hal: workaround for UART FIFO read on ESP32 with -O2 optimization (backport v4.2)

See merge request espressif/esp-idf!12658
2021-03-25 01:17:14 +00:00
Michael (XIAO Xufeng)
b06b8273ee Merge branch 'bugfix/fix_rtc_wdt_in_light_sleep_process_backport_v4.2' into 'release/v4.2'
bugfix: rtc: compile the regi2c_ctrl.c code to iram (backport v4.2)

See merge request espressif/esp-idf!12881
2021-03-24 16:06:50 +00:00
Michael (XIAO Xufeng)
7dbd5e1855 Merge branch 'bugfix/fix_uart_module_enable_issue_v4.2' into 'release/v4.2'
driver(uart): fix uart module reset issue (release V4.2)

See merge request espressif/esp-idf!11969
2021-03-24 11:05:00 +00:00
Jiang Jiang Jian
dbaee379ba Merge branch 'bugfix/fix_coex_reset_last_wait_lose_iram_attr_4_2' into 'release/v4.2'
bugfix/btdm:Fix IRAM_ATTR missing. Backports v4.2

See merge request espressif/esp-idf!12073
2021-03-24 10:27:24 +00:00
fuzhibo
4fb18da50b bugfix(dac): fix testcase fail for dac 2021-03-24 15:50:31 +08:00
fuzhibo
60b604ae6d rtc: compile the regi2c_ctrl.c code to iram 2021-03-24 15:43:47 +08:00
Jiang Jiang Jian
f2f42c4bfc Merge branch 'bugfix/fix_some_wifi_bugs_0323_v4.2' into 'release/v4.2'
esp_wifi: Fix some WiFi bugs (backport v4.2)

See merge request espressif/esp-idf!12859
2021-03-24 07:39:29 +00:00
Jiang Jiang Jian
74649219f4 Merge branch 'bugfix/adc_full_scale_voltages_v4.2' into 'release/v4.2'
docs: Update full-scale voltages for ESP32-S2 chip (v4.2)

See merge request espressif/esp-idf!12208
2021-03-24 04:14:44 +00:00
Ivan Grokhotkov
1c6ab10a70 hal: workaround for UART FIFO read on ESP32 with -O2 optimization 2021-03-24 04:12:42 +00:00
Hou Wen Xiang
c8ef66abad driver(uart): fix uart module reset issue (release V4.2) 2021-03-24 04:10:39 +00:00
Jiang Jiang Jian
c04489cede Merge branch 'bugfix/dport_init_min_stack_size_v4.2' into 'release/v4.2'
freertos: Increase minimum task stack size when stack smashing checker is enabled (v4.2)

See merge request espressif/esp-idf!12799
2021-03-24 04:06:45 +00:00
fuzhibo
9cb875949c fix: RTC_FAST_MEM always power on if used for heap 2021-03-24 11:52:55 +08:00
xiehang
8507f1f777 esp_wifi: Fix some WiFi bugs
1. Unlock mutex for esp_wifi_80211_tx when out of memory.
2. Fix issue that esp_wifi_80211_tx can't be used in ap mode.
3. Clear hotspot bss when auth timeout happens.
4. Fix PMK not saved in NVS for SoftAP for PSK mode.
5. Fix the bug for esptouch find hidden AP fail.
6. Fix not connect to open AP when WPA3 auth fail.
7. Fix issue with hidden AP scans after connecting AP.
8. Fix the watchdog issue when receiving action frame.
9. Fix the issue that the parameters obtained form RAM cannot be saved to NVS.
10.Modify not to store the default value in NVS.
11.Delete interface STATIONAP_IF.
12.Modify the _do_wifi_start and _do_wifi_stop parameters to mode.
13.Fixed issue of reason code change from 15 to 204 when provide wrong password.
14.Fix set config return value error.
15.Fix ampdu age timer memory leak.
2021-03-24 03:40:01 +00:00
Jiang Jiang Jian
bb067c0883 Merge branch 'bugfix/btdm_assert_without_sw_coex_enable_v4.2' into 'release/v4.2'
components/bt: Fix assert without sw coexist enabled

See merge request espressif/esp-idf!12527
2021-03-24 03:23:58 +00:00
Jiang Jiang Jian
0c1ff94823 Merge branch 'bugfix/wpa_supplicant_coverity_issue_fixes_v4.2' into 'release/v4.2'
Bugfix/wpa supplicant coverity issue fixes v4.2

See merge request espressif/esp-idf!12849
2021-03-23 16:04:03 +00:00
Jiang Jiang Jian
def9153200 Merge branch 'mesh/ps_duty_signaling_backport_v4.2' into 'release/v4.2'
mesh/ps: network duty signaling (backport v4.2)

See merge request espressif/esp-idf!12810
2021-03-23 16:02:56 +00:00
XieWenxiang
bfa07bb9d8 component/bt: Modify some ambiguous descriptions (release v4.2) 2021-03-23 23:10:51 +08:00
Jiang Jiang Jian
f8307bcd4e Merge branch 'bugfix/spp_data_send_delay_v4.2' into 'release/v4.2'
Bugfix/spp data send delay v4.2

See merge request espressif/esp-idf!11772
2021-03-23 08:42:05 +00:00
Jiang Jiang Jian
1d227bbb2e Merge branch 'bugfix/crash_on_enabling_verbose_logs_v4.2' into 'release/v4.2'
Fixes issue of crashing when verbose logs are enabled.(v4.2)

See merge request espressif/esp-idf!12845
2021-03-23 08:41:41 +00:00
gengyuchao
d7ea6266b7 Fix coex IRAM missing and Fix C2H flow control issue 2021-03-23 15:47:50 +08:00
shenjun
ad5ef10343 mesh/ps: network duty signaling 2021-03-23 14:57:17 +08:00
Jiang Jiang Jian
20256c5dfd Merge branch 'bugfix/btdm_controller_task_watchdog_in_wifi_test_v4.2' into 'release/v4.2'
Fix controller task watchdog in Wi-Fi test

See merge request espressif/esp-idf!12708
2021-03-23 06:54:00 +00:00
aditi_lonkar
c083d7278d esp_http_client: Fix some memory leak issues by coverity static analyzer. 2021-03-23 11:11:20 +05:30
aditi_lonkar
d417ba0c11 esp_local_ctrl: Fix some memory leak issues by coverity static analyzer. 2021-03-23 11:10:58 +05:30
aditi_lonkar
d734c533a5 wifi_provisioning: Fix some memory leak issues by coverity static analyzer. 2021-03-23 11:10:36 +05:30
aditi_lonkar
c9f2790474 wpa_supplicant: Fix some memory leak issues by coverity static analyzer. 2021-03-23 11:09:52 +05:30
aditi_lonkar
98d19efe6f tcp_transport: Fix some memory leak issues by coverity static analyzer. 2021-03-23 11:09:21 +05:30
aditi_lonkar
4407c9eb83 fatfs: Fix some memory leak issues by coverity static analyzer. 2021-03-23 11:08:12 +05:30
aditi_lonkar
f8c691faaf esp_wifi: Fixes issue of crashing when verbose logs are enabled. 2021-03-23 10:30:32 +05:30
Anton Maklakov
5151fb52ec Merge branch 'bugfix/test_sha_psram' into 'release/v4.2'
CI: disable performance check for PSRAM config

See merge request espressif/esp-idf!12829
2021-03-23 03:53:59 +00:00
Jiang Jiang Jian
399ab25967 Merge branch 'bugfix/fix_wifi_interface_use_v4.2' into 'release/v4.2'
esp_wifi: Modify ESP_IF_WIFI_STA to WIFI_IF_STA (backport v4.2)

See merge request espressif/esp-idf!12166
2021-03-22 14:34:24 +00:00
xiehang
f90b14175c esp_wifi: Modify ESP_IF_WIFI_AP to WIFI_IF_AP 2021-03-22 09:09:58 +00:00
xiehang
1ef10dc284 esp_wifi: Modify ESP_IF_WIFI_STA to WIFI_IF_STA 2021-03-22 09:09:58 +00:00
Jiang Jiang Jian
59d3116e41 Merge branch 'bufix/ag_deep_copy_crash_v_4_2' into 'release/v4.2'
components/bt: Fix crash in btc_hf_arg_deep_copy when name or number is NULL

See merge request espressif/esp-idf!12789
2021-03-22 08:01:23 +00:00
Jiang Jiang Jian
b58d888b77 Merge branch 'bugfix/ping_zero_interval_cause_to_assert_reset_v4.2' into 'release/v4.2'
lw-ip: Fixed ping assert reset when ping interval is 0 (v4.2)

See merge request espressif/esp-idf!12174
2021-03-22 07:59:16 +00:00
Anton Maklakov
e4c021757c Merge branch 'ci/ignore_check_link_result_v4.2' into 'release/v4.2'
CI: ignore result from check_doc_links (v4.2)

See merge request espressif/esp-idf!12783
2021-03-22 03:40:17 +00:00
Marius Vikhammer
fa62dfd5f9 CI: disable performance check for PSRAM config
The cache compensated timer performance check ocasionally
wrong result for psram_2 config. Disabled CI test for now.
2021-03-22 11:39:49 +08:00
Jiang Jiang Jian
fd032425f1 Merge branch 'mesh/support_for_chain_topology_backport_v4.2' into 'release/v4.2'
mesh: support for chain topology (backport v4.2)

See merge request espressif/esp-idf!12806
2021-03-22 03:27:49 +00:00
Chen Wu
c8f8def780 lwip: Fixed ping assert reset when ping interval is 0 2021-03-22 03:26:42 +00:00
aleks
d340fa68aa freemodbus: fix event processing after merge 2021-03-19 15:05:27 +01:00
Jiang Jiang Jian
c9cf7bcb0e Merge branch 'bugfix/fix_some_wifi_bugs_0105_v4.2' into 'release/v4.2'
Bugfix/fix some wifi bugs 0105 v4.2 (backport v4.2)

See merge request espressif/esp-idf!11921
2021-03-19 12:09:01 +00:00
Mahavir Jain
98e703340b Merge branch 'feature/update_wifi_provisioning_readme_v4.2' into 'release/v4.2'
provisioning: Update README.md to explain QR code format [backport v4.2]

See merge request espressif/esp-idf!12803
2021-03-19 10:33:56 +00:00
yuanjm
9ca4799b20 provisioning: update README.md 2021-03-19 06:08:12 +00:00
mjcross
66c533b3d5 provisioning: Update README.md to explain QR code format
Add examples of how to create a QR code that will be recognised by the iOS or Android app

Signed-off-by: yuanjm <yuanjianmin@espressif.com>

Merges https://github.com/espressif/esp-idf/pull/6629
2021-03-19 06:08:12 +00:00
Angus Gratton
9bd9e939ba 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 12:21:14 +08:00
Angus Gratton
7fc2f91841 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 12:19:58 +08:00
Jiang Jiang Jian
eedcb8c97f Merge branch 'bugfix/fix_iperf_example_exception_handling_for_no_ap_found_v4.2' into 'release/v4.2'
bugfix/fix_iperf_example_exception_handling_for_no_ap_found_v4.2

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

See merge request espressif/esp-idf!12022
2021-03-19 04:01:46 +00:00
Jiang Jiang Jian
0d5286471a Merge branch 'component_bt/optimize_spp_stop_server_v4.2' into 'release/v4.2'
component_bt/Optimize SPP Stop Server API[backport v4.2]

See merge request espressif/esp-idf!12620
2021-03-19 04:01:17 +00:00
shenjun
42fc36ef17 mesh: support for chain topology 2021-03-19 11:37:20 +08:00
xiehang
50bc7db63a 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. Fix country code last byte to space instead of NULL
8. Fix softap cannot forward A-MSDU
9. Fix max tx power to 20dBm
10. Fix the issue that the esp_wifi_sta_get_ap_info can't get country
11. Update esp32 phy lib to v4660
12. Update esp32s2 phy lib to v1300
13. Fix the bug that esp32s2 can't get CSI info
2021-03-19 03:02:26 +00:00
xiehang
07ca98b5f0 esp_wifi: ESP32 phy add [sections:phy_iram] 2021-03-19 03:02:26 +00:00
ChenJianxing
4650db0841 esp_wifi: optimize phy version log 2021-03-19 03:02:26 +00:00
ronghulin
349b0b5ec5 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-19 03:02:26 +00:00
xiongweichao
f6f644bf81 components/bt: Fix crash in btc_hf_arg_deep_copy when name or number is NULL 2021-03-18 20:20:19 +08:00
Jiang Jiang Jian
8b0ac7f81e Merge branch 'bugfix/extern_c_decl_4.2' into 'release/v4.2'
[cxx]: fixed extern "C" declarations (backport v4.2)

See merge request espressif/esp-idf!12742
2021-03-18 07:29:20 +00:00
Marius Vikhammer
7aeaf604c2 CI: ignore result from check_doc_links
check_doc_links will always fail due to:
 * No rate limitation for requests
 * Not being able to handle github links with anchors
2021-03-18 13:17:46 +08:00
Jiang Jiang Jian
747ecb27d0 Merge branch 'bugfix/idf_size_total_size_without_bss_v4.2' into 'release/v4.2'
tools: Don't count BSS into the total image size (v4.2)

See merge request espressif/esp-idf!12576
2021-03-18 04:32:42 +00:00
Jiang Jiang Jian
359784f0b6 Merge branch 'bugfix/fix_arp_buffer_error_in_smart_config_v4.2' into 'release/v4.2'
bugfix/fix_arp_buffer_error_in_smart_config_v4.2

See merge request espressif/esp-idf!12254
2021-03-18 04:17:36 +00:00
Jiang Jiang Jian
1e1fc92fc2 Merge branch 'bugfix/fatfs_v4.2' into 'release/v4.2'
spi_flash: fix the issue of ext_flash_fatfs_example(backport v4.2)

See merge request espressif/esp-idf!12667
2021-03-18 04:15:35 +00:00
Jiang Jiang Jian
8a26bc72be Merge branch 'bugfix/ip_mesh_transmit_wrap_v4.2' into 'release/v4.2'
esp_mesh: Fix internal ip mesh example to use transmit wrap function (v4.2)

See merge request espressif/esp-idf!12530
2021-03-18 04:14:33 +00:00
Jiang Jiang Jian
caa7dc187d Merge branch 'bugfix/fix_i2s_pdm_config_4.2' into 'release/v4.2'
fix PDM Fp and Fs config error (4.2)

See merge request espressif/esp-idf!10687
2021-03-18 04:13:36 +00:00
Jiang Jiang Jian
2e03275406 Merge branch 'bugfix/freemodbus_fix_event_processing_after_destroy_v4.2' into 'release/v4.2'
freemodbus: fix event processing failure after destroy (backport v4.2)

See merge request espressif/esp-idf!9327
2021-03-18 04:12:03 +00:00
Jiang Jiang Jian
b517b64a30 Merge branch 'bugfix/fix_deepsleep_x32k_wakeup_bug_v4.2' into 'release/v4.2'
Fix esp_hw_support bug (backport v4.2)

See merge request espressif/esp-idf!11835
2021-03-18 04:11:18 +00:00
Jiang Jiang Jian
c4c500e241 Merge branch 'bugfix/deep_sleep_stub_heap_rtc_fast_mem_v4.2' into 'release/v4.2'
deep sleep: Calculate RTC CRC without using any stack or other RTC heap memory (v4.2)

See merge request espressif/esp-idf!10883
2021-03-18 04:09:50 +00:00
Jiang Jiang Jian
aafcc2ca60 Merge branch 'bugfix/flash_encryption_v4.2' into 'release/v4.2'
ota: fix ota with flash encryption(backport v4.2)

See merge request espressif/esp-idf!12701
2021-03-18 04:09:45 +00:00
Jiang Jiang Jian
e027f962df Merge branch 'bugfix/bta_hf_client_sco_co_out_data_v4.2' into 'release/v4.2'
bugfix/if bta_hf_client_sco_co_out_data is called, it will crash when sco disconnected [backport v4.2]

See merge request espressif/esp-idf!12560
2021-03-18 04:04:17 +00:00
Jiang Jiang Jian
4f4cd08aad Merge branch 'bugfix/avrc_set_player_value_cmd_event_unhandle_v_4_2' into 'release/v4.2'
bugfix/fix unhandle RC vendor PDU when tg receive set_player_app_value cmd[backport v4.2]

See merge request espressif/esp-idf!12099
2021-03-18 04:03:49 +00:00
Jiang Jiang Jian
9f3750cee7 Merge branch 'bugfix/btdm_backport_ble_bugs_21_01_29_v4.2' into 'release/v4.2'
Bugfix/btdm backport ble bugs  for v4.2

See merge request espressif/esp-idf!12197
2021-03-18 03:55:04 +00:00
Krzysztof Budzynski
f4c56216e5 Merge branch 'doc/embed_example_v4.2' into 'release/v4.2'
doc: Update the link to an example that embeds a file (v4.2)

See merge request espressif/esp-idf!12656
2021-03-16 08:31:47 +00:00
William Ferguson
be3fc35533 [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-03-15 18:42:19 +08:00
Cao Sen Miao
068dfcf1ba ota: fix ota with flash encryption 2021-03-12 16:45:43 +08:00
Angus Gratton
ce2c615bb3 Merge branch 'bugfix/deepsleep_disable_brownout_s2_v4.2' into 'release/v4.2'
deep_sleep: on S2 disable the brown out detector before deep sleeping (v4.2)

See merge request espressif/esp-idf!12500
2021-03-11 10:49:30 +00:00
baohongde
6c2489682f Fix controller task watchdog in Wi-Fi test 2021-03-11 17:19:16 +08:00
Cao Sen Miao
f80f4cbf2d ci: move freerom/sdmmc repo to psram3 for saving ram 2021-03-11 13:54:15 +08:00
Cao Sen Miao
54b817a59e 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 13:52:28 +08:00
Jiang Jiang Jian
fa2c4fe622 Merge branch 'bugfix/fix_a2dp_underrun_issue_4_2' into 'release/v4.2'
Fix A2DP Underrun Issue [backport v4.2]

See merge request espressif/esp-idf!12277
2021-03-10 14:30:28 +00:00
Michael (XIAO Xufeng)
00e2f2e880 Merge branch 'feat/spi_flash_override_size_v4.2' into 'release/v4.2'
spi_flash: add config option to override flash size in bootloader header (v4.2)

See merge request espressif/esp-idf!12452
2021-03-10 10:13:39 +00:00
Cao Sen Miao
e5830907ca spi_flash: fix flash issue of ext_flash_fatfs_example 2021-03-09 18:33:30 +08:00
Angus Gratton
32b0264529 Merge branch 'doc/flash_enc_update_v4.2' into 'release/v4.2'
docs: update flash encryption docs for S2

See merge request espressif/esp-idf!12324
2021-03-09 06:41:53 +00:00
daiziyan
5b6e62d2c4 update CN translation based on reviewers' comments 2021-03-09 10:34:29 +11:00
daiziyan
fdfef114ae api-guides: update CN translation for build-system and build-system-legacy,and fix line break in the EN version 2021-03-09 10:33:44 +11:00
Angus Gratton
c8900823d8 doc: Update the link to an example that embeds a file
Since we have the CA Certificate Store feature, https_request no longer needs to
embed any certs.
2021-03-09 10:33:44 +11:00
Jiang Jiang Jian
37a8c8ce6c Merge branch 'bugfix/btdm_crash_when_esp_restart_v4.2' into 'release/v4.2'
components/bt: Fix crash in Bluetooth when esp_restart

See merge request espressif/esp-idf!12567
2021-03-05 12:27:43 +00:00
Jiang Jiang Jian
2289d4fcc0 Merge branch 'bugfix/fix_csa_channel_crash_v4.2' into 'release/v4.2'
esp_wifi: fix CSA and BAR crash issue(v4.2)

See merge request espressif/esp-idf!12549
2021-03-05 12:24:33 +00:00
Jiang Jiang Jian
e1f1d11b76 Merge branch 'feature/add_init_and_deinit_evt_for_a2dp_4_2' into 'release/v4.2'
feature/ Add A2DP Init and Deinit Complete Evt [backport v4.2]

See merge request espressif/esp-idf!12150
2021-03-05 12:19:18 +00:00
Mahavir Jain
24157cc60a Merge branch 'fix/esp_tls_prevent_freeing_global_CA_store_after_each_request_v4.2' into 'release/v4.2'
fix(esp_tls): prevent freeing global CA store after each request (v4.2)

See merge request espressif/esp-idf!12631
2021-03-05 08:52:38 +00:00
Aditya Patwardhan
a2ccb3c0ac protocomm: Fixed NULL check of allocated memory
Fixes one part of - https://github.com/espressif/esp-idf/issues/6440
2021-03-05 10:06:18 +05:30
Aditya Patwardhan
a2e6db19e6 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:06:10 +05:30
Aditya Patwardhan
d66ad18853 Fix esp_tls: Prevent freeing of global ca store after each connection
when dynamic ssl buffers are enabled
2021-03-05 09:55:10 +05:30
Michael (XIAO Xufeng)
e7435a75f5 Merge branch 'bugfix/phy_xpd_v4.2' into 'release/v4.2'
wifi: add set_xpd_sar override(backport v4.2)

See merge request espressif/esp-idf!11540
2021-03-04 08:41:17 +00:00
Mahavir Jain
10d40bd526 Merge branch 'bugfix/correct_logging_timestamp_format_v4.2' into 'release/v4.2'
log: correct timestamp formatting to unsigned integer type (v4.2)

See merge request espressif/esp-idf!12611
2021-03-04 07:39:33 +00:00
liqigan
60b6968e80 add API esp_spp_stop_srv_scn to stop a specific server 2021-03-04 15:33:47 +08:00
Mahavir Jain
a177897f4d 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:30 +05:30
ChenJianxing
1f3b6b2e6d esp_wifi: fix CSA and BAR crash issue. 2021-03-02 11:51:01 +08:00
Roland Dobai
2c85d01603 tools: Don't count BSS into the total image size 2021-03-01 14:39:42 +01:00
KonstantinKondrashov
33236c9593 doc: update S2 flash encryption & secure boot docs 2021-03-01 17:48:17 +08:00
baohongde
70de8f5158 components/bt: Fix crash in Bluetooth when esp_restart 2021-03-01 14:43:45 +08:00
Mahavir Jain
77a78a22f6 Merge branch 'bugfix/esp_wifi_deinit_v4.2' into 'release/v4.2'
esp_wifi_deinit: Return ESP_ERR_WIFI_NOT_STOPPED if wifi is not stopped (v4.2)

See merge request espressif/esp-idf!12540
2021-03-01 05:32:08 +00:00
liaowenhao
8375bb94a4 bugfix/if bta_hf_client_sco_co_out_data is called, it will crash when sco disconnected 2021-03-01 11:34:15 +08:00
Shubham Kulkarni
9689f87887 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:53:59 +05:30
David Cermak
66c89f1093 examples, esp_mesh: Fix internal ip mesh example to use transmit wrap function
Fixed regression caused by recent refactoring of WiFi Tx. If  wasn't defined all transmits end up in a crash.

Closes https://github.com/espressif/esp-idf/issues/6067
2021-02-26 07:50:00 +01:00
baohongde
76b0097103 components/bt: Fix assert without sw coexist enabled 2021-02-26 14:29:34 +08:00
Marius Vikhammer
da809e92b7 docs: update S2 flash encryption docs 2021-02-26 01:42:04 +08:00
Marius Vikhammer
cf87e114cb deep_sleep: on S2 disable the brown out detector before deep sleeping
On S2 the brown out detector would occasionally trigger erroneously during deep sleep.

Disable it before sleeping to circumvent this issue.

Closes https://github.com/espressif/esp-idf/issues/6179
2021-02-25 14:58:50 +08:00
Angus Gratton
af8bc4c436 Merge branch 'bugfix/SECURE_DISABLE_ROM_DL_MODE_does_not_work_v4.2' into 'release/v4.2'
bootloader: SECURE_ENABLE_SECURE_ROM_DL_MODE cannot be y when SECURE_DISABLE_ROM_DL_MODE=y (v4.2)

See merge request espressif/esp-idf!12341
2021-02-24 09:40:44 +00:00
liaowenhao
bfb14130ac bugfix:unhandle event when tg receive set_player_app_value cmd 2021-02-24 07:47:08 +00:00
Michael (XIAO Xufeng)
807e864d7d Merge branch 'revert-983220e2_v4.2' into 'release/v4.2'
ci: enable RS485 related tests again (v4.2)

See merge request espressif/esp-idf!12463
2021-02-24 06:45:58 +00:00
Krzysztof Budzynski
d960752cd9 Merge branch 'docs/remove_rtd_pdf_link_v4.2' into 'release/v4.2'
docs: remove rtd pdf link (v4.2)

See merge request espressif/esp-idf!12466
2021-02-23 10:45:37 +00:00
Marius Vikhammer
c0ae1f03a4 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:39:33 +08:00
Michael (XIAO Xufeng)
c4fe55d42a Revert "ci: temporarily disable RS485 related tests"
This reverts commit 983220e216
2021-02-23 11:00:37 +08:00
Michael (XIAO Xufeng)
15f406ddb7 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-22 23:18:17 +08:00
Michael (XIAO Xufeng)
e511dd58b3 Merge branch 'bugfix/freemodbus_fix_parity_propagation_issue_v42' into 'release/v4.2'
Bugfix/freemodbus fix parity propagation issue (Backport v4.2)

See merge request espressif/esp-idf!12389
2021-02-22 05:23:02 +00:00
Ivan Grokhotkov
af1ebd7e01 Merge branch 'bugfix/eclipse_make_decode_v4.2' into 'release/v4.2'
tools: Fix Eclipse build: “UnicodeDecodeError: 'ascii' codec can't decode byte” (v4.2)

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

See merge request espressif/esp-idf!12377
2021-02-19 15:52:45 +00:00
Mahavir Jain
cbe966135e Merge branch 'bugfix/fix_enable_reset_provision_cause_device_crash_v4.2' into 'release/v4.2'
provisioning: Fix enable CONFIG_EXAMPLE_RESET_PROVISIONED will cause device crash [backport v4.2]

See merge request espressif/esp-idf!12352
2021-02-19 12:57:27 +00:00
yuanjm
9240750bf4 provisioning: Fix enable CONFIG_EXAMPLE_RESET_PROVISIONED will cause device crash 2021-02-19 11:31:51 +00:00
Island
cd9237f871 Merge branch 'bugfix/ignore_null_valued_comb_key_4_2' into 'release/v4.2'
Bugfix/ignore null valued comb key 4 2

See merge request espressif/esp-idf!12346
2021-02-18 13:58:25 +00:00
zwj
1b1c917321 add connection parameter check 2021-02-18 09:39:01 +00:00
zwj
171e2c5b1e fix ble connection maximum latency is 499 2021-02-18 09:39:01 +00:00
zwj
6d8a3f0d94 disable bluedroid congest error log print 2021-02-18 09:39:01 +00:00
zhiweijian
c759dade01 fix read multi char failed(GATT_27001) 2021-02-18 09:39:01 +00:00
zhiweijian
2e949ca9ac fix add white list failed 2021-02-18 09:39:01 +00:00
zwj
5d514fdb35 fix bluedroid repair faild if the two most significant bits of public address is '01' 2021-02-18 09:39:01 +00:00
zwj
d5951d3c9e - fix congest return value
- fix system no rsp when doing disconnect
- fix no congest event when ssc do writing performance
2021-02-18 09:39:01 +00:00
zwj
70589fc49d fix ble read multi char err when the number of handles is more than 10 2021-02-18 09:39:01 +00:00
zwj
66b1f37c8b fix scan rsp length err 2021-02-18 09:39:01 +00:00
zwj
c5afe0ea2d fix vendor hci memory leak 2021-02-18 09:39:01 +00:00
Chinmay Chhajed
8455518127 component/bt: Added check for NULL valued combination key. 2021-02-18 06:12:17 +00:00
Chinmay Chhajed
24291f7a3b 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-18 06:12:17 +00:00
Chinmay Chhajed
359509ccdc 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-18 06:12:17 +00:00
Angus Gratton
ceb11fd543 Merge branch 'bugfix/cmake_example_sdkconfig_path_v4.2' into 'release/v4.2'
cmake/example: Move idf_as_lib sdkconfig path to project, document configuring project (v4.2)

See merge request espressif/esp-idf!10859
2021-02-17 22:45:21 +00:00
aleks
be68c0e8d8 freemodbus: fix mb controller parity propagation issues
Closes https://github.com/espressif/esp-idf/issues/6377
2021-02-17 12:40:34 +01:00
Roland Dobai
2c66dfc089 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:05:33 +01:00
Mahavir Jain
391b2ebcf0 Merge branch 'bugfix/softap_prov_cookies_v4.2' into 'release/v4.2'
protocomm_httpd: Use HTTP cookies to track session (v4.2)

See merge request espressif/esp-idf!12265
2021-02-11 10:42:42 +08:00
Patryk Krzywdziński
3b5b61f402 Fix eclipse build: “UnicodeDecodeError: 'ascii' codec can't decode byte”
Closes https://github.com/espressif/esp-idf/pull/6505
2021-02-10 12:49:56 +01:00
Piyush Shah
d228fc826c 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-10 15:47:29 +05:30
Piyush Shah
328254c631 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-10 15:47:28 +05:30
Angus Gratton
2dd5a87cf1 Merge branch 'bugfix/websocket_example_error_handling_v4.2' into 'release/v4.2'
ci: Fix websocket example test error handling

See merge request espressif/esp-idf!11657
2021-02-10 15:51:32 +08:00
Yann Pomarède
4abc541d6f bootloader: SECURE_ENABLE_SECURE_ROM_DL_MODE cannot be y when SECURE_DISABLE_ROM_DL_MODE=y
Closes: https://github.com/espressif/esp-idf/pull/6442
2021-02-09 16:34:30 +08:00
Island
1df0c17b98 Merge branch 'bugfix/ble_mesh_server_model_deinit_v4.2' into 'release/v4.2'
ble_mesh: stack: Fix deinit server models with no matching id (v4.2)

See merge request espressif/esp-idf!12314
2021-02-09 16:25:39 +08:00
Angus Gratton
660f41772c ci: Fix websocket example test error handling
If connection fails for websocket test, a second exception was generated in
__exit__
2021-02-09 06:59:56 +00:00
Angus Gratton
ea476f1731 Merge branch 'bugfix/SECURE_ENABLE_SECURE_ROM_DL_MODE_v4.2' into 'release/v4.2'
bootloader: Fix warnings caused by security features (v4.2)

See merge request espressif/esp-idf!12286
2021-02-09 11:06:50 +08:00
Angus Gratton
6514009b8a soc esp32: Removes parentheses from RTC_MEM_xyz macros that expand directly to single numbers
Not necessary in these cases, and prevents parens from expanding into the
assembly code added in the parent commit - a pattern which is accepted
by GCC assembler but illegal syntax for LLVM assembler.
2021-02-08 09:59:22 +11:00
Angus Gratton
7c5afa262d deep sleep: Calculate RTC CRC immediately before deep sleep, without using RAM
Fix for issues where RTC FAST memory is updated as part of going into deep
sleep. Very high risk if heaps are in RTC memory - in particular task stacks
may be in RTC memory, but also other variables.

Also fixes potential concurrency problems as RTC FAST memory is not accessible
by CPU during the CRC calculation itself.

Method:
- Disable interrupts (currently for single core only, will need update for S3)
- Load all registers before calculating CRC or going to sleep
2021-02-08 09:59:22 +11:00
Angus Gratton
bf9b9c5a97 esp_system: Add test case for using deep sleep wake stub when stack is in RTC memory
This test currently fails on ESP32 & ESP32-S2, fix will be in next commit.
2021-02-08 09:59:22 +11:00
lly
4070a6dc70 ble_mesh: stack: Fix deinit server models with no matching id 2021-02-07 11:18:31 +08:00
Jiang Jiang Jian
0ab739f72c Merge branch 'bugfix/ble_mesh_wifi_coexit_example_v4.2' into 'release/v4.2'
bugfix: Delete local variables to avoid null global variables (backport v4.2)

See merge request espressif/esp-idf!11372
2021-02-05 20:21:58 +08:00
Island
3f46cb9789 Merge branch 'bugfix/ble_mesh_mbedtls_aes_fix_v4.2' into 'release/v4.2'
Bugfix/ble mesh mbedtls aes fix (v4.2)

See merge request espressif/esp-idf!12270
2021-02-05 14:46:00 +08:00
lly
c74c7fdb5a ble_mesh: stack: Fix mbedtls aes ctx not deallocated 2021-02-05 03:26:26 +00:00
lly
02d3d358b5 ble_mesh: stack: Fix mbedtls aes ctx not initialized 2021-02-05 03:26:26 +00:00
Ivan Grokhotkov
74e1613b17 Merge branch 'bugfix/nvs_close_nukes_all_handles_v4.2' into 'release/v4.2'
NVS: fixed deinit other partition's handles (v4.2)

See merge request espressif/esp-idf!11497
2021-02-05 10:06:37 +08:00
Ivan Grokhotkov
89cab3140d Merge branch 'bugfix/idf_monitor_baudrate_arg_crash_v4.2' into 'release/v4.2'
idf monitor: fix crash when monitor baudrate argument set (Backport v4.2)

See merge request espressif/esp-idf!9758
2021-02-05 10:06:07 +08:00
Mahavir Jain
040f5c8e0a Merge branch 'bugfix/reenable_encrypted_partition_write_v4.2' into 'release/v4.2'
Re-enable encrypted flash read/writes even if flash encryption is disabled (v4.2)

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

See merge request espressif/esp-idf!12261
2021-02-04 23:09:28 +08:00
KonstantinKondrashov
a8df2af065 bootloader: Fix warnings caused by security features
Closes: https://github.com/espressif/esp-idf/issues/6198
2021-02-04 22:24:25 +08:00
weitianhua
d254804a62 Fix A2DP Underrun Issue 2021-02-04 19:33:14 +08:00
dongyou
7da388e52a add exception handling for iperf example's scan when no ap was found 2021-02-04 17:37:43 +08:00
Piyush Shah
5c6b9d0625 protocomm_httpd: Change an info print to debug print as it isn't really required in the logs 2021-02-04 15:02:52 +05:30
dongyou
024aaeb201 fix smartconfig issue when router reply arp late 2021-02-04 11:23:06 +08:00
Mahavir Jain
79aa9636b9 unit-test-app: disable encrypted flash read/write in psram config to fix build failure 2021-02-03 09:07:36 +00:00
Mahavir Jain
19b7705b8d 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-03 09:07:36 +00:00
Mahavir Jain
294fe8238c 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-03 09:07:36 +00:00
Michael (XIAO Xufeng)
0382c2e04e Merge branch 'bugfix/mcpwm_can_set_two_falut_signal_v4.2' into 'release/v4.2'
mcpwm: fix second fault line broken issue (v4.2)

See merge request espressif/esp-idf!12171
2021-02-03 14:49:16 +08:00
Anton Maklakov
81680a633f Merge branch 'bugfix/ttfw_idf_find_artifacts_inaccurate_with_same_prefix_path_v4.2' into 'release/v4.2'
CI: fix the bug returns wrong artifact path when app_name is a subset of a longer one (v4.2)

See merge request espressif/esp-idf!12228
2021-02-03 11:34:34 +08:00
David Čermák
6fd3557d99 Merge branch 'feature/support_transport_keepalive_v4.2' into 'release/v4.2'
Feature/support transport keepalive v4.2 [backport v4.2]

See merge request espressif/esp-idf!12157
2021-02-03 03:46:24 +08:00
Krzysztof Budzynski
f697f475e5 Merge branch 'doc/uart_num_fix_v4.2' into 'release/v4.2'
docs: fix uart number naming error (v4.2)

See merge request espressif/esp-idf!12068
2021-02-02 16:08:33 +08:00
Fu Hanxi
d9455d8587 CI: fix the bug returns wrong artifact path when app_name is a subset of a longer one 2021-02-02 11:14:06 +08:00
Mahavir Jain
2ea3519964 Merge branch 'bugfix/update_howsmyssl_cert_v4.2' into 'release/v4.2'
examples/protocols: update www.howsmyssl.com certificate to fix test failures (v4.2)

See merge request espressif/esp-idf!12211
2021-02-01 20:25:00 +08:00
Mahavir Jain
0dedf0e1f5 examples/protocols: update www.howsmyssl.com certificate to fix test failures 2021-02-01 11:01:35 +05:30
Krzysztof
250805d991 docs: Update full-scale voltages for ESP32-S2 chip 2021-02-01 11:22:49 +08:00
morris
48dc6e9347 mcpwm: fix second fault line broken
Closes: https://github.com/espressif/esp-idf/issues/6053
2021-01-27 14:56:33 +08:00
morris
87b051c87a mcpwm: fix wrong capture edge 2021-01-27 14:56:33 +08:00
Michael (XIAO Xufeng)
10f16c5d72 Merge branch 'bugfix/soc_caps_implicit_inc_v4.2' into 'release/v4.2'
HAL: explicitly include soc_caps.h  (v4.2)

See merge request espressif/esp-idf!11896
2021-01-27 10:33:42 +08:00
yuanjm
fd5f65a2d4 Make OTA example support keepalive 2021-01-26 14:09:13 +08:00
Shubham Kulkarni
90218b4e9b Add options for esp_http_client and esp_websocket_client to support keepalive 2021-01-26 14:09:01 +08:00
yuanjm
cbca521e28 Modify esp-tls and tcp_transport to support keep alive for tcp and ssl connection 2021-01-26 14:08:45 +08:00
weitianhua
186ebc61e7 Add init & deinit event for a2dp 2021-01-26 10:51:47 +08:00
Mahavir Jain
c4d0a384b0 Merge branch 'fix/esp_tls_fix_memory_leak_v4.2' into 'release/v4.2'
Fix/esp tls fix memory leak v4.2

See merge request espressif/esp-idf!12085
2021-01-22 21:37:58 +08:00
Mahavir Jain
be26d45d78 Merge branch 'bugfix/httpd_session_close_lru_v4.2' into 'release/v4.2'
esp_http_server: Add flag in sock_db to identify httpd_sess_close is called from httpd_session_close_lru (v4.2)

See merge request espressif/esp-idf!12112
2021-01-22 21:22:11 +08:00
Shubham Kulkarni
6b054fb4a6 Enable lru_purge_enable in simple HTTP server example 2021-01-22 15:33:57 +05:30
Mahavir Jain
ecbf436de4 Merge branch 'bugfix/http_client_buffer_overread_v4.2' into 'release/v4.2'
esp_http_client: Fix buffer overread, update https_request example to use HTTP/1.1 (v4.2)

See merge request espressif/esp-idf!12108
2021-01-22 17:45:31 +08:00
Mahavir Jain
4d1ada8ab5 Merge branch 'bugfix/misc_secure_boot_v4.2' into 'release/v4.2'
Bugfix/misc secure boot v2 (v4.2)

See merge request espressif/esp-idf!11743
2021-01-22 16:27:10 +08:00
Shubham Kulkarni
1c732d7556 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:10 +05:30
Shubham Kulkarni
29feb17636 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:23 +05:30
Angus Gratton
7ceaac64bf Merge branch 'bugfix/secure_boot_sig_failed_crash_v4.2' into 'release/v4.2'
secure boot: Fix crash if signature verification fails in app (v4.2)

See merge request espressif/esp-idf!11924
2021-01-22 07:58:24 +08:00
Aditya Patwardhan
84219fe844 esp_tls_wolfssl: Move order of crt_bundle check to match that in
esp_tls_mbedtls
2021-01-21 10:45:42 +05:30
Aditya Patwardhan
a5cf243ea0 esp-tls: Fix mem leak when global_ca_store is freed 2021-01-21 10:45:18 +05:30
Island
56de4bbc4d Merge branch 'bugfix/ble_mesh_node_set_name_status_check_v4.2' into 'release/v4.2'
ble_mesh: stack: Remove node set device name return status check (v4.2)

See merge request espressif/esp-idf!12081
2021-01-21 11:07:58 +08:00
Island
7c9be015aa Merge branch 'bugfix/ble_mesh_proxy_client_net_resend_v4.2' into 'release/v4.2'
ble_mesh: stack: Fix proxy client may fail to resend msg (v4.2)

See merge request espressif/esp-idf!12079
2021-01-21 11:07:27 +08:00
Island
54d8a1f76b Merge branch 'bugfix/ble_mesh_prov_use_diff_rand_v4.2' into 'release/v4.2'
ble_mesh: stack: Use different random for each provisioning (v4.2)

See merge request espressif/esp-idf!12077
2021-01-21 11:07:02 +08:00
lly
4510332e96 ble_mesh: stack: Remove node set device name return status check 2021-01-20 21:11:21 +08:00
lly
370e65ec8a ble_mesh: stack: Fix proxy client may fail to resend msg 2021-01-20 21:10:18 +08:00
lly
962b14d653 ble_mesh: stack: Use different random for each provisioning 2021-01-20 21:09:09 +08:00
Marius Vikhammer
d8ba0f9b0e docs: fix uart number naming error 2021-01-20 17:55:07 +08:00
Ivan Grokhotkov
967c07b6ae Merge branch 'bugfix/nvs_check_external_partition' into 'release/v4.2'
NVS: ensuring default partition

See merge request espressif/esp-idf!8934
2021-01-20 07:44:28 +08:00
David Čermák
ad47ed5ef1 Merge branch 'bugfix/mdns_txt_length_collision_v4.2' into 'release/v4.2'
mDNS: Fix of text length calculation when detecting a collision(Backport v4.2)

See merge request espressif/esp-idf!12029
2021-01-19 22:15:05 +08:00
Island
db2ddebc23 Merge branch 'bugfix/ble_mesh_log_macro_v4.2' into 'release/v4.2'
ble_mesh: stack: Add prefix for log macros (v4.2)

See merge request espressif/esp-idf!12052
2021-01-19 17:34:05 +08:00
lly
f56fe3f877 ble_mesh: stack: Fix compile warning when log is disabled 2021-01-19 14:04:45 +08:00
lly
571da869f5 ble_mesh: ci: Add disable log sdkconfig test files 2021-01-19 14:04:45 +08:00
lly
d545f1223f ble_mesh: stack: Add prefix BLE_MESH_ for log related macros 2021-01-19 14:04:44 +08:00
David Čermák
8cd16b60f5 Merge branch 'bugfix/ppp_deinit_failure_v4.2' into 'release/v4.2'
esp_modem: Fixed race condition on exiting PPP mode (v4.2)

See merge request espressif/esp-idf!11870
2021-01-19 02:42:50 +08:00
Island
a4525284bd Merge branch 'update/ble_mesh_set_hsl_states_v4.2' into 'release/v4.2'
ble_mesh: stack: Enable updating lighting hsl state (v4.2)

See merge request espressif/esp-idf!12036
2021-01-18 19:10:31 +08:00
Island
e36282787e Merge branch 'bugfix/ble_mesh_build_error_c3_merge_master_v4.2' into 'release/v4.2'
Bugfix/ble mesh build error merge master (v4.2)

See merge request espressif/esp-idf!12038
2021-01-18 19:10:21 +08:00
Jiang Jiang Jian
b24ccd8a20 Merge branch 'bugfix/fix_iperf_example_crash_issue_v4.2' into 'release/v4.2'
Bugfix/fix iperf example crash issue v4.2 (backport v4.2)

See merge request espressif/esp-idf!12024
2021-01-18 19:09:37 +08:00
lly
c44dc1f262 ble_mesh: stack: Fix compile warning with BIT macro 2021-01-18 14:07:30 +08:00
lly
de166facd7 ble_mesh: stack: Update mesh max conn macro when using bluedroid 2021-01-18 14:07:24 +08:00
lly
71f4c476cb ble_mesh: stack: Enable updating lighting hsl state 2021-01-18 14:01:39 +08:00
Island
b4735859d6 Merge branch 'bugfix/bluedroid_avoid_same_bdaddr_conn_v4.2' into 'release/v4.2'
Bluedroid: Do not connect if peer BD_ADDR is same as own BD_ADDR. (v4.2)

See merge request espressif/esp-idf!11990
2021-01-18 14:01:31 +08:00
David Čermák
28371f45a4 Merge branch 'bugfix/ppp_netif_free_v4.2' into 'release/v4.2'
esp-modem: Remove esp-netif destroy from modem network glue code (v4.2)

See merge request espressif/esp-idf!11872
2021-01-16 00:57:15 +08:00
David Cermak
84039dc77d esp_modem: Fixed race condition on exiting PPP mode
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-15 17:38:30 +01:00
David Čermák
67a3ff8a4b Merge branch 'bugfix/esp_netif_ppp_event_data_v4.2' into 'release/v4.2'
esp-netif: Fix PPP netif event posting to include esp_netif data (v4.2)

See merge request espressif/esp-idf!11868
2021-01-15 23:48:27 +08:00
suren.gabrielyan
500edd412a mDNS: Fix of text length calculation when detecting a collision 2021-01-15 17:11:14 +04:00
suren.gabrielyan
cc0ad534e9 mDNS: Fix of collision detection during txt length calculation
Closes https://github.com/espressif/esp-idf/issues/6114
2021-01-15 17:10:35 +04:00
xiehang
b78fbdab12 example: Scan failure should not cause system crash 2021-01-15 20:21:35 +08:00
xiehang
30becdfaab example: do not check the return value of esp_wifi_connect() 2021-01-15 20:20:17 +08:00
Ivan Grokhotkov
95c360fcbd 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-01-15 13:18:06 +01:00
David Čermák
7ff123562b Merge branch 'bugfix/mdns_resolve_nonstrict_answers_v4.2' into 'release/v4.2'
mdns: Allow resolve (it's own) non-strict answers (v4.2)

See merge request espressif/esp-idf!11818
2021-01-15 19:51:04 +08:00
David Cermak
53fc156adb 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-01-15 11:48:26 +00:00
Marius Vikhammer
cf7bea6dff idf monitor: fix crash when monitor baudrate argument set
Closes IDF-1902
2021-01-15 09:09:49 +00:00
Island
67fb958b8c Merge branch 'bugfix/ble_mesh_macro_OR_v4.2' into 'release/v4.2'
ble_mesh: stack: Fix using wrong | for OR between macros (v4.2)

See merge request espressif/esp-idf!11997
2021-01-15 11:04:47 +08:00
lly
cd1fbfdee1 ble_mesh: stack: Fix using wrong | for OR between macros 2021-01-14 19:03:00 +08:00
Island
8911c29122 Merge branch 'feat/ble_mesh_support_ble_scan_v4.2' into 'release/v4.2'
ble_mesh: stack: Add BLE scan callback when mesh is enabled (v4.2)

See merge request espressif/esp-idf!11963
2021-01-14 19:01:05 +08:00
lly
a3fa7dda33 ble_mesh: ci: Add ble & ble mesh coex sdkconfig test files 2021-01-14 07:30:47 +00:00
lly
c8890a40e4 ble_mesh: stack: Support reporting normal ble adv packets 2021-01-14 07:30:47 +00:00
lly
a91addb716 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-01-14 07:30:47 +00:00
lly
396c6a3bc5 ble_mesh: stack: Move ble scan funcitons to a single file 2021-01-14 07:30:47 +00:00
lly
96182bdc43 ble_mesh: stack: Optimize handling received mesh adv packets 2021-01-14 07:30:47 +00:00
Chinmay Chhajed
4cfece437d Bluedroid: Do not connect if peer BD_ADDR is same as own BD_ADDR. 2021-01-14 12:22:30 +05:30
Angus Gratton
73023f7ff7 Merge branch 'ci/increase_build_example_parallel_count' into 'release/v4.2'
ci: Add 1 parallel count for building example

See merge request espressif/esp-idf!11976
2021-01-14 14:33:26 +08:00
lly
bd0f520a95 ci: Add 1 parallel count for building example 2021-01-13 16:21:15 +08:00
Mahavir Jain
e5553b964d Merge branch 'fix/esp_tls_add_warning_if_ca_chain_has_invalid_cert_v4.2' into 'release/v4.2'
esp_tls: Add warning if the CA chain provided contains invalid cert (v4.2)

See merge request espressif/esp-idf!11939
2021-01-12 23:26:32 +08:00
Supreet Deshpande
7453507d93 Secure boot v2: Fixes the issue of passing the flash calculated digest for ota verification. 2021-01-12 11:16:23 +00:00
Supreet Deshpande
b979dacc6c Secure Boot v2: Fix the double padding of the image length during flash encryption
Fixes https://github.com/espressif/esp-idf/issues/6236
2021-01-12 11:16:23 +00:00
Island
21eac48ea0 Merge branch 'optimize/ble_mesh_miscellaneous_v4.2' into 'release/v4.2'
Optimize/ble mesh miscellaneous (v4.2)

See merge request espressif/esp-idf!11948
2021-01-12 19:13:08 +08:00
lly
fe6103c088 ble_mesh: stack: Move bt_mesh_rand to mesh_common.c 2021-01-11 19:26:49 +08:00
lly
f031dc6d29 ble_mesh: stack: Remove useless BT_DBG_ENABLED in a few files 2021-01-11 19:26:49 +08:00
lly
85de3a84e1 ble_mesh: Replace zephyr integer types with C99 types [Zephyr] 2021-01-11 19:26:46 +08:00
lly
3f361cc262 ble_mesh: stack: Update ARRAY_SIZE definition 2021-01-11 19:25:52 +08:00
Island
8f20b9dc8a Merge branch 'feat/ble_mesh_multiple_nvs_namespace_v4.2' into 'release/v4.2'
ble_mesh: stack: Provisioner supports multiple nvs namespaces (v4.2)

See merge request espressif/esp-idf!11935
2021-01-11 18:55:22 +08:00
Aditya Patwardhan
e33cfbaef9 esp_tls: Add warning if the CA chain provided contains one/more invalid
cert
2021-01-11 12:02:30 +05:30
Mahavir Jain
60a808372e Merge branch 'feature/upgrade_mbedtls_to_v4.2' into 'release/v4.2'
mbedtls: upgrade to v2.16.9 release (v4.2)

See merge request espressif/esp-idf!11899
2021-01-11 14:01:11 +08:00
lly
3a1018f603 ble_mesh: ci: Add settings sdkconfig test files 2021-01-11 10:08:00 +08:00
lly
c5d9601e69 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-01-11 10:07:55 +08:00
Island
2aafcd9b1f Merge branch 'feat/ble_mesh_provisioner_recv_hb_support_v4.2' into 'release/v4.2'
Feat/ble mesh provisioner recv hb support (v4.2)

See merge request espressif/esp-idf!11913
2021-01-08 18:30:35 +08:00
Morozov-5F
0e4f43ddde 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>
2021-01-08 18:45:49 +11:00
Anton Maklakov
0c3c09e7ef Merge branch 'bugfix/icmp_echo_test_v4.2' into 'release/v4.2'
CI: change icmp example test address to ci.espressif.cn (v4.2)

See merge request espressif/esp-idf!11903
2021-01-08 11:16:15 +08:00
lly
1efa401884 ble_mesh: ci: Add enabling hb recv sdkconfig file 2021-01-08 09:32:23 +08:00
lly
0432d11509 ble_mesh: stack: Provisioner supports receiving heartbeat 2021-01-08 09:32:23 +08:00
Marius Vikhammer
8c4839e9e6 CI: change icmp example test address
Use a server that is inside the great firewall of china for CI test.
This avoid issues due to proxies, network configs etc.
2021-01-07 14:49:29 +08:00
Mahavir Jain
ce72deea7f 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:15:42 +05:30
Armando
929632739a spi: fix duplex mode switch issue for multi devices 2021-01-07 11:56:16 +08:00
Marius Vikhammer
5e9783f4a6 hal: include pcnt_caps.h
Some HAL files depend on x_caps.h, but didnt explicitly include it

Fixes issue where only 4 PCNT (out of 8) could be used on ESP32

Closes https://github.com/espressif/esp-idf/issues/6366
2021-01-07 03:01:55 +00:00
Island
474224d668 Merge branch 'bugfix/ble_mesh_node_id_adv_v4.2' into 'release/v4.2'
ble_mesh: stack: Fix Node ID adv with wrong timeout (v4.2)

See merge request espressif/esp-idf!11877
2021-01-06 17:08:21 +08:00
lly
53935d5933 ble_mesh: stack: Fix Node ID adv with wrong timeout 2021-01-06 05:33:41 +00:00
Jiang Jiang Jian
47aa7408f5 Merge branch 'bugfix/fix_tx_issue_after_esp_restart_v4.2' into 'release/v4.2'
components/bt: Shutdown Bluetooth before esp_restart. (V4.2)

See merge request espressif/esp-idf!11755
2021-01-06 12:32:33 +08:00
Jiang Jiang Jian
70ecd0e92c Merge branch 'bugfix/btdm_blufi_send_custom_data_will_congested_after_connection_is_broken_v4.2' into 'release/v4.2'
component/bt: fix Blufi sends customer data will congested when connection is broken(backport v4.2)

See merge request espressif/esp-idf!11847
2021-01-06 12:29:44 +08:00
Jiang Jiang Jian
caddd5d9fa Merge branch 'bugfix/fix_spp_vfs_dynamic_memory_bugs_v4.2' into 'release/v4.2'
component_bt/fix spp vfs demo crash when use dynamic memory[backport v4.2]

See merge request espressif/esp-idf!11726
2021-01-06 12:20:22 +08:00
David Cermak
c5b2252e03 esp-netif: Fix PPP netif event posting to include esp_netif data
Closes https://github.com/espressif/esp-idf/issues/6009
2021-01-04 16:41:25 +01:00
baohongde
f3c9a71138 components/bt: Add API to config QoS 2021-01-04 11:53:04 +08:00
XieWenxiang
5da8c3f8de component/bt: fix Blufi sends customer data will congested when connection is broken 2020-12-31 15:38:49 +08:00
Mahavir Jain
248857bf91 Merge branch 'fix/i2c_pm_lock_v4.2' into 'release/v4.2'
i2c: Acquire PM lock after acquiring mutex (v4.2)

See merge request espressif/esp-idf!11830
2020-12-31 12:33:36 +08:00
Mahavir Jain
6216f99265 Merge branch 'fix/wolfssl_domain_name_check_v4.2' into 'release/v4.2'
esp_tls_wolfssl : Add domain name check (v4.2)

See merge request espressif/esp-idf!11816
2020-12-30 21:48:31 +08:00
chaijie
6d6fbc3860 1. Optimize 32k xtal configure param to get optimal startup time for ESP32S2;
2. Solve bug of wakeup fail when pd peripheral for ESP32S2;
3. clear rtc force pu configuration when goto deepsleep after lightsleep.
2020-12-30 16:47:41 +08:00
Sachin Parekh
14587e7e73 i2c: Acquire PM lock after acquiring mutex 2020-12-30 13:24:38 +05:30
David Cermak
9f9013c8c3 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:11 +01:00
Aditya Patwardhan
076ad543fb esp_tls_wolfssl : Add domain name check 2020-12-29 21:11:08 +05:30
Ivan Grokhotkov
24f98bf80b Merge branch 'bugfix/crt_bundle_bad_md_v4.2' into 'release/v4.2'
esp_crt_bundle: allow weak hash algorithm for trusted certificate (backport v4.2)

See merge request espressif/esp-idf!11655
2020-12-28 22:30:16 +08:00
Ivan Grokhotkov
4360410107 Merge branch 'bugfix/tools_python_subprocess_capture_output_v4.2' into 'release/v4.2'
tools: Avoid subprocess.run(capture_output) argument for Python <3.7 compatibility (v4.2)

See merge request espressif/esp-idf!11506
2020-12-28 07:45:51 +08:00
Jiang Jiang Jian
68095a65ac Merge branch 'bugfix/bt_bluedroid_same_public_key_attack_v4.2' into 'release/v4.2'
Bluedroid: Fixes for some Bluetooth vulnerabilities. (v4.2)

See merge request espressif/esp-idf!11763
2020-12-25 23:35:15 +08:00
Chinmay Chhajed
235628355f 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:11 +05:30
baohongde
567562a0fb components/bt: Add QOS for SPP, to decrease the delay from slave to master 2020-12-25 14:51:15 +08:00
baohongde
d694036789 components/bt: Shutdown Bluetooth before esp_restart. 2020-12-25 14:06:22 +08:00
Jakob Hasse
26ba5e1b51 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
* Unit tests clean up after each test case now

Closes FCS-533
2020-12-24 19:20:04 +08:00
Anton Maklakov
ecc2dd4b23 Merge branch 'bugfix/ci_retries_when_download_v4.2' into 'release/v4.2'
CI: retry shell commands when download (v4.2)

See merge request espressif/esp-idf!9888
2020-12-24 16:20:12 +08:00
Angus Gratton
774fb48f9e Merge branch 'bugfix/spiram_reserve_size_pr5373_v4.2' into 'release/v4.2'
SPIRAM reserved memory size fixes (v4.2)

See merge request espressif/esp-idf!11516
2020-12-24 13:55:35 +08:00
liqigan
40873d2026 fix spp vfs demo crash when use dynamic memory 2020-12-23 15:06:34 +08:00
Jiang Jiang Jian
ac5b7be7c2 Merge branch 'bugfix/fix_some_wifi_bugs_1222_v4.2' into 'release/v4.2'
esp_wifi: fix some wifi bugs 1222 (backport v4.2)

See merge request espressif/esp-idf!11711
2020-12-23 12:04:22 +08:00
Jiang Jiang Jian
c09a265f32 Merge branch 'bugfix/fix_crash_of_divide_zero_4_2' into 'release/v4.2'
Fix crash caused by dividing zero [backport v4.2]

See merge request espressif/esp-idf!11418
2020-12-23 11:20:48 +08:00
weitianhua
ef84e386e4 Fix divided by zero err & clear timer after remote reject when respond the parameters update 2020-12-22 16:37:31 +08:00
zhangyanjiao
44b1c3b307 esp_wifi: update wifi lib 2020-12-22 16:05:39 +08:00
zhangyanjiao
3acd9861bf wpa_supplicant: Use WPA3 flag to reduce code size
Flag ESP32_WIFI_ENABLE_WPA3_SAE from Menuconfig is used to
control the stack size required by WPA3. Use the same flag
to compile out the WPA3 code and control the code size.
With this flag disabled code footprint reduces by about 7.7kB
in libwpa_supplicant.a
Update WiFi libs with added checks to cleanly handle disabling
of WPA3 callbacks.
2020-12-22 15:50:52 +08:00
dongyou
0bd758c0b1 WIFI: Iperf example's parameter opt was uninitialized, may leads setsockoption invalide if it equal to 0 2020-12-22 15:46:36 +08:00
dongyou
12eb9d6d80 esp_wifi:
1. Add description for esp_wifi_set_inactive_time()
2. Add documentation to avoid using WiFi modem sleep for WiFi/BT coexistence
3. Remove description of unusable API esp_wifi_restart()
4. Update esp_now_fetch_peer discription
5. Update table format prblm for esp_wifi_set_max_tx_power()
6. Update description for ssid and password
2020-12-22 15:44:07 +08:00
kapil.gupta
33c296b78e wpa_supplicant: Replace internal RSA APIs by mbedtls APIs
Curretly wpa_supplicant uses internal APIs for RSA operations
which internally uses lots of big num operations.

Big num operations are CPU expensive and can take a lot of time
which can cause watchdog timer to tigger.

This can be optimize by using mbedtls APIs which uses
hardware blocks for big num operations.

To fix this, write new crypto_mbedtls-rsa.c which has APIs
similar to crypto_internal-rsa.c but uses mbedtls APIs.
2020-12-22 15:37:38 +08:00
Anton Maklakov
e6d74b2d7e Merge branch 'ci/disable_dev_push_pipelines_v4.2' into 'release/v4.2'
CI: Disable pipelines generated by push on dev branches (v4.2)

See merge request espressif/esp-idf!11592
2020-12-22 13:11:49 +08:00
Jiang Jiang Jian
866399cbf7 Merge branch 'bugfix/pmf_tx_rx_routine_v4.2' into 'release/v4.2'
esp_wifi: Always register pmf tx/rx routines (backport v4.2)

See merge request espressif/esp-idf!11447
2020-12-22 00:02:31 +08:00
Mahavir Jain
573708ea1e Merge branch 'fix/update_tls_sockfd_after_freeing_internally_v4.2' into 'release/v4.2'
esp-tls : (Fix) update tls->sockfd value after socket is freed internally (v4.2)

See merge request espressif/esp-idf!11695
2020-12-21 15:59:44 +08:00
Aditya Patwardhan
4c66d146eb 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:22 +05:30
Jiang Jiang Jian
cfd234da3a Merge branch 'bugfix/exl200_reset_and_adv_v4.2' into 'release/v4.2'
Bugfix/exl200 reset and adv v4.2

See merge request espressif/esp-idf!11671
2020-12-18 21:54:06 +08:00
Krzysztof Budzynski
fd68c06824 Merge branch 'bugfix/doxygen_warnings_v4.2' into 'release/v4.2'
Docs: fix doxygen warnings (backport v4.2)

See merge request espressif/esp-idf!11674
2020-12-18 15:59:39 +08:00
Marius Vikhammer
d9cea5dfdb Docs: fix doxygen warnings 2020-12-18 14:27:17 +08:00
wangcheng
98a536894d components/bt:fix exl200, add btdm_disable_adv_delay, fix RPA addr update error. 2020-12-18 11:34:34 +08:00
wangcheng
9ca6aee845 components/bt: Fixed the problem of early release of pointer(p_ccb) in funcion 2020-12-18 11:32:31 +08:00
David Čermák
b1b673eaa2 Merge branch 'feature/lwip_tcp_isn_hook_v4.2' into 'release/v4.2'
lw-ip: enable TCP ISN hook (v4.2)

See merge request espressif/esp-idf!11062
2020-12-18 00:18:36 +08:00
Mahavir Jain
a57576cec4 esp_netif: initialize TCP ISN hook if enabled in configuration 2020-12-17 13:42:01 +00:00
Mahavir Jain
7d226ce542 lwip: provide configuration option to enable TCP ISN hook 2020-12-17 13:42:01 +00:00
Mahavir Jain
4fb4178f06 tcp_isn: use ROM APIs for md5 calculations 2020-12-17 13:42:01 +00:00
Mahavir Jain
aa416a377b lwip: add custom TCP ISN hook implementation
Source:
https://git.savannah.nongnu.org/cgit/lwip/lwip-contrib.git/
2020-12-17 13:42:01 +00:00
Ivan Grokhotkov
2b88ed8827 Merge branch 'bugfix/idf_gdb_no_openocd_crash_v4.2' into 'release/v4.2'
idf.py: Fixed gdb target to exit cleanly when no openocd watch task (v4.2)

See merge request espressif/esp-idf!10808
2020-12-17 18:40:31 +08:00
David Čermák
0386b19d8b Merge branch 'bugfix/mdns_query_id_v4.2' into 'release/v4.2'
mdns: Responding: Fix query ID, add questions if not strict mode (v4.2)

See merge request espressif/esp-idf!10806
2020-12-17 18:37:18 +08:00
Jiang Jiang Jian
683d0f4edb Merge branch 'nimble/fix_misc_coverity_issue_v4.2' into 'release/v4.2'
Nimble: Fix misc issues in NimBLE NVS, `ble_eddystone`, recursive call and  L2CAP CoC (v4.2)

See merge request espressif/esp-idf!11390
2020-12-17 16:53:46 +08:00
Jiang Jiang Jian
4bca971865 Merge branch 'bugfix/free_acl_rx_buf_in_em_4_2' into 'release/v4.2'
Free ACL RX Buf in EM when disconnection [backport v4.2]

See merge request espressif/esp-idf!11612
2020-12-17 16:47:46 +08:00
Wei Tian Hua
c1d5ad61b5 Free ACL RX Buf in EM when disconnection [backport v4.2] 2020-12-17 16:47:43 +08:00
Artem Godlevskyi
d315bf722f 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:21:02 +00:00
Prasad Alatkar
210bd3787d 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:21:02 +00:00
Marius Vikhammer
dceb9b4a22 esp_crt_bundle: add additional unit tests
Add unit test for:
 * Trusted certificate with weak hash algorithm signature
 * Certificate with wrong signature

Merges https://github.com/espressif/esp-idf/pull/6117
2020-12-17 02:41:59 +00:00
Jeff Epler
a1d5fcfece esp_crt_bundle: Allow verify_callback to correct BADCERT_BAD_MD 2020-12-17 02:41:59 +00:00
Jiang Jiang Jian
211a2a9957 Merge branch 'fixbug/baidu_tcp_recv_assert_for_4.2' into 'release/v4.2'
lw-ip:fix bug for tcp recv assert(backport 4.2)

See merge request espressif/esp-idf!11601
2020-12-16 17:31:42 +08:00
Ivan Grokhotkov
b1b19495a1 Merge branch 'test/disable_twai_example_ci_v4.2' into 'release/v4.2'
Temporarily disable TWAI network example test (backport v4.2)

See merge request espressif/esp-idf!11561
2020-12-16 04:20:26 +08:00
David Čermák
6a723ad1e7 Merge branch 'bugfix/lwip_netdb_cpp_guards_v4.2' into 'release/v4.2'
lw-IP: Changed to C linkage in netdb.h for fixing bug when using mixed C/C++ code (v4.2)

See merge request espressif/esp-idf!11089
2020-12-16 04:13:12 +08:00
Ivan Grokhotkov
a82d0cf9f1 Merge branch 'bugfix/panic_instr_fetch_prohibited_v4.2' into 'release/v4.2'
panic: don't interrupt the backtrace for InstrFetchProhibited exceptions (v4.2)

See merge request espressif/esp-idf!10293
2020-12-16 04:09:37 +08:00
Ivan Grokhotkov
8224c75211 Merge branch 'bugfix/parttool_example_test_fail_v4.2' into 'release/v4.2'
examples/parttool: fix the test to work on parallel test runner (backport v4.2)

See merge request espressif/esp-idf!10373
2020-12-16 04:09:03 +08:00
Ivan Grokhotkov
e64934be6b Merge branch 'bugfix/docker_gdb_python_v4.2' into 'release/v4.2'
tools/docker: Add libpython2.7 in order to satisfy GDB dependencies (backport v4.2)

See merge request espressif/esp-idf!10307
2020-12-16 04:07:40 +08:00
David Cermak
e95f97d40e mdns test: Add test to resolve esp32 hostname with DiG 2020-12-15 19:01:33 +00:00
David Cermak
05211963ee 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-12-15 19:01:33 +00:00
David Cermak
e1e481f438 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-12-15 19:01:33 +00:00
David Cermak
faef936581 mdns: Fix include query ID in reponses
Closes https://github.com/espressif/esp-idf/issues/5574
2020-12-15 19:01:33 +00:00
David Čermák
26bca96029 Merge branch 'bugfix/fix_transport_ssl_blocking_v4.2' into 'release/v4.2'
transport: fix transport ssl blocking (v4.2)

See merge request espressif/esp-idf!10691
2020-12-16 02:59:03 +08:00
David Čermák
a1e1470447 Merge branch 'bugfix/fix_esp_modem_mode_switch_timeout_v4.2' into 'release/v4.2'
fix esp_modem switch mode timeout (v4.2)

See merge request espressif/esp-idf!11395
2020-12-16 02:57:44 +08:00
Anton Maklakov
9fb05897db Merge branch 'bugfix/ci_py2_warnings_fix_v4.2' into 'release/v4.2'
ci: Python 2 warnings fix (v4.2)

See merge request espressif/esp-idf!11617
2020-12-15 19:06:33 +08:00
Ivan Grokhotkov
c8d1b18a3c Merge branch 'bugfix/py2_socketio_v4.2' into 'release/v4.2'
tools: Fix requirements incompatible with Python 2 (v4.2)

See merge request espressif/esp-idf!11604
2020-12-15 18:38:43 +08:00
David Čermák
99cb0f25eb Merge branch 'bugfix/pppos_ignored_modem_start_return_v4.2' into 'release/v4.2'
pppos client: modem netif fix ignoring potential modem-start error (v4.2)

See merge request espressif/esp-idf!11394
2020-12-15 16:15:27 +08:00
David Čermák
99be1aca73 Merge branch 'bugfix/fix_netsuite_tx_wrap_v4.2' into 'release/v4.2'
CI: esp_netif tests: Fix netsuite driver layer per wifi optimization changes (v4.2)

See merge request espressif/esp-idf!11388
2020-12-15 16:14:45 +08:00
David Čermák
7fcb8ffe0a Merge branch 'feature/mqtt_submodule_update_23c8e1ec_v4.2' into 'release/v4.2'
MQTT: Update submodule reference to da850b (config, error flags, minor fixes) (v4.2)

See merge request espressif/esp-idf!11312
2020-12-15 16:13:03 +08:00
David Čermák
cbd0af7217 Merge branch 'bugfix/mdns_src_addr_cpy_v4.2' into 'release/v4.2'
mdns: Fix wrong mdns source address if lwIP IPv6 zoning disabled (v4.2)

See merge request espressif/esp-idf!11310
2020-12-15 16:10:55 +08:00
David Čermák
3b63476e31 Merge branch 'bugfix/backport_v4.2_fix_websocket_issue' into 'release/v4.2'
websocket_client: fix some issues for websocket client (backport v4.2)

See merge request espressif/esp-idf!11276
2020-12-15 16:10:12 +08:00
mathiasbredholt
440b5f6e7b lwip: Changed to C linkage for fixing bug when using mixed C/C++ code
Merges https://github.com/espressif/esp-idf/pull/5900
2020-12-15 08:09:14 +00:00
Michael (XIAO Xufeng)
97cd07007d ci: define ESP_PLATFORM macro during public header check 2020-12-15 08:09:14 +00:00
xutao
c0e3aa1ef8 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-12-15 08:07:18 +00:00
Anton Maklakov
e1d62cda5f Merge branch 'feature/ci_fix_docker_build_v4.2' into 'release/v4.2'
ci: Use git mirror for docker image (v4.2)

See merge request espressif/esp-idf!10445
2020-12-15 14:55:07 +08:00
Anton Maklakov
8c3526d91f Merge branch 'bugfix/build_docs_pdf_job_v4.2' into 'release/v4.2'
docs: seperate build_docs html and pdf CI jobs (Backport v4.2)

See merge request espressif/esp-idf!10549
2020-12-15 14:54:00 +08:00
Anton Maklakov
f5f91a4d05 tools: Redirect some warnings to stderr 2020-12-15 13:16:50 +07:00
Anton Maklakov
3a5de540f1 ci: Ignore Python 2 deprecation warning 2020-12-15 13:16:03 +07:00
Mahavir Jain
48cd4d65e6 Merge branch 'bugfix/redirection_v4.2' into 'release/v4.2'
esp_http_client: Skip check for redirection counter if status code is success, fix issue with digest auth, configurable user agent string. (v4.2)

See merge request espressif/esp-idf!11597
2020-12-14 20:03:03 +08:00
Cao Sen Miao
12a0f93f87 adc_i2s: solve the i2s_adc issue when using wifi 2020-12-14 19:33:35 +08:00
Roland Dobai
9ff5f94233 tools: Fix requirements incompatible with Python 2 2020-12-14 10:48:00 +01:00
xueyunfei
72dbf03b6c fix bug for tcp recv assert 2020-12-14 17:42:51 +08:00
Scott Shell
fad8a27cf7 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
2020-12-14 14:02:50 +05:30
Shubham Kulkarni
465d911052 http_auth.c: Fix crash when opaque field is not present in challenge string
Closes: https://github.com/espressif/esp-idf/issues/5888
2020-12-14 13:58:29 +05:30
Shubham Kulkarni
b951b5adec 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
2020-12-14 13:58:28 +05:30
kapil.gupta
9fce81f9af esp_wifi: Update WiFi lib
1. Fixes the issue when PMF packets are not sent after mode change.
2. Add support for 802.1x sha256 auth key mode
2020-12-14 14:51:52 +08:00
Fu Hanxi
4167401a00 CI: Disable pipelines generated by push on dev branches 2020-12-14 14:01:44 +08:00
Jiang Jiang Jian
18a1bc9e7f Merge branch 'bugfix/decouple_wifi_bt_with_coex_v4.2' into 'release/v4.2'
esp_wifi: decouple Wi-Fi and bluetooth with coexist to reduce binary file size(backport v4.2)

See merge request espressif/esp-idf!11542
2020-12-14 12:17:23 +08:00
Island
a23449ee23 Merge branch 'optimize/ble_mesh_provision_dev_uuid_check_v4.2' into 'release/v4.2'
ble_mesh: stack: Need uuid when adding device for provisioning (v4.2)

See merge request espressif/esp-idf!11577
2020-12-14 10:15:44 +08:00
Ivan Grokhotkov
a46d8b2831 Merge branch 'bugfix/verify-directory-exists_v4.2' into 'release/v4.2'
Bugfix: add check for existence build directory (v4.2)

See merge request espressif/esp-idf!11581
2020-12-12 01:43:15 +08:00
lly
6510fbb66d ble_mesh: ci: Add PB-ADV & PB-GATT sdkconfig test files 2020-12-11 13:15:54 +00:00
lly
5f2a5cdcab ble_mesh: stack: Need uuid when adding device for provisioning 2020-12-11 13:15:54 +00:00
Island
938b9f3098 Merge branch 'feat/ble_mesh_node_local_data_func_v4.2' into 'release/v4.2'
ble_mesh: stack: Add node local netkey/appkey func (v4.2)

See merge request espressif/esp-idf!11575
2020-12-11 21:13:57 +08:00
martin.gano
5bb0237860 Add checking if the build directory exists and move expression after docstring 2020-12-11 13:13:50 +01:00
Krzysztof Budzynski
c923c99f09 Merge branch 'feature/python2-deprecation-warn_v4.2' into 'release/v4.2'
Tools: Add Python 2 deprecation warning (v4.2)

See merge request espressif/esp-idf!11524
2020-12-11 17:26:06 +08:00
lly
7505e1458f ble_mesh: stack: Fix wrong declaration of node bind AppKey func 2020-12-11 17:19:02 +08:00
lly
d4575ccfe9 ble_mesh: stack: Add node local netkey/appkey func 2020-12-11 17:18:22 +08:00
Ivan Grokhotkov
71e7f000c4 Merge branch 'bugfix/log-error-run-esptool_v4.2' into 'release/v4.2'
parttool.py: Add file stream parameter and log stdout and stderr to same stream (v4.2)

See merge request espressif/esp-idf!10516
2020-12-11 16:51:48 +08:00
Island
58afa32a1a Merge branch 'optimize/ble_mesh_reduce_code_size_v4.2' into 'release/v4.2'
Optimize/ble mesh reduce code size (v4.2)

See merge request espressif/esp-idf!11518
2020-12-11 16:50:51 +08:00
daiziyan
81eb9f280f add CN translation for adding python2 deprecation warning(MR 11115) 2020-12-11 09:16:18 +01:00
martin.gano
d0d7c53ee1 Tools: add Python 2 deprecation warning 2020-12-11 09:14:57 +01:00
Darian Leung
19e6434f37 twai: Temporarily disable network example test
Disabling network example test due to issue with synchronizing the
start of each DUT
2020-12-10 21:27:46 +08:00
lly
6f104362c7 ble_mesh: example: Update sdkconfig test files for disabling Health Server model 2020-12-10 09:32:10 +00:00
lly
da8a577408 ble_mesh: stack: Add a Kconfig option to make Health Server model optional 2020-12-10 09:32:10 +00:00
lly
2b2abcd6f9 ble_mesh: stack: Split model Kconfig menu into foundation and others 2020-12-10 09:32:10 +00:00
lly
5fd4d53922 ble_mesh: example: Fix fast provisioning compile error 2020-12-10 09:32:10 +00:00
lly
7f1a0e1552 ble_mesh: ci: Add disabling mesh model sdkconfig test files 2020-12-10 09:32:10 +00:00
lly
e4451376f3 ble_mesh: stack: Add Kconfig options to make server models optional 2020-12-10 09:32:10 +00:00
lly
2602f26753 ble_mesh: stack: Use Kconfig option to make client models optional 2020-12-10 09:32:10 +00:00
lly
9c8c56f081 ble_mesh: stack: Make some internal static functions inline 2020-12-10 09:32:10 +00:00
lly
7e945e5fa8 ble_mesh: ci: Add disabling mesh deinit sdkconfig test files 2020-12-10 09:32:10 +00:00
lly
f27a151478 ble_mesh: stack: Add a Kconfig option to make deinit optional 2020-12-10 09:32:10 +00:00
lly
01d0843c4d ble_mesh: stack: Introduce a new header file mesh_config.h 2020-12-10 09:32:10 +00:00
Angus Gratton
1771aea076 Merge branch 'bugfix/increase_ci_build_example_parallel' into 'release/v4.2'
ci: Add 1 parallel count for building example

See merge request espressif/esp-idf!11554
2020-12-10 17:09:47 +08:00
lly
c3c0ca0aff ci: Add 1 parallel count for building example 2020-12-10 13:59:36 +08:00
Jiang Jiang Jian
22b33adb2f Merge branch 'optimization/AP_STAIPASSIGNED_passes_IP_send_through_event_data_for_4.2' into 'release/v4.2'
esp-event:AP_STAIPASSIGNED now passes the IP through 'event_data'(backport 4.2)

See merge request espressif/esp-idf!11241
2020-12-09 22:32:19 +08:00
Jiang Jiang Jian
e287e3ef9d Merge branch 'bugfix/backport_some_lwip_bugs_1120_v4.2' into 'release/v4.2'
lw-ip:backport bugfix lwip for v4.2(backport 4.2)

See merge request espressif/esp-idf!11307
2020-12-09 22:31:32 +08:00
Jiang Jiang Jian
f03d543139 Merge branch 'bugfix/blufi_config_potential_double_free_v4.2' into 'release/v4.2'
Bugfix/blufi config potential double free v4.2

See merge request espressif/esp-idf!11163
2020-12-09 22:26:19 +08:00
Xia Xiaotian
5a17387c3d esp_wifi: decouple Wi-Fi and bluetooth with coexist to reduce binary file size 2020-12-09 20:42:35 +08:00
Krzysztof Budzynski
996e270f90 Merge branch 'doc/update_CN_translation_for_relase/v4.2' into 'release/v4.2'
update CN translation for index.rst and vscode-setup.rst in get-started folder (v4.2)

See merge request espressif/esp-idf!11522
2020-12-09 19:13:25 +08:00
Dai Zi Yan
4ff9a93490 update CN translation for index.rst and add CN translation for vscode-setup.rst in get-started folder 2020-12-09 19:13:25 +08:00
Island
f5c45576cf Merge branch 'feature/btdm_support_some_ble_new_features_v4.2' into 'release/v4.2'
components/bt: backport some new features for Bluedroid BLE(release v4.2)

See merge request espressif/esp-idf!11448
2020-12-09 10:28:56 +08:00
Island
2532ddd9f4 Merge branch 'bugfix/ble_mesh_proxy_cfg_replay_v4.2' into 'release/v4.2'
Bugfix/ble mesh proxy cfg replay (v4.2)

See merge request espressif/esp-idf!11509
2020-12-08 15:00:51 +08:00
negativekelvin
d1a9f9ec74 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:42:36 +11:00
lly
e2cb5ee379 ble_mesh: stack: Store kr phase after value changed [Zephyr] 2020-12-08 11:51:28 +08:00
lly
0c8cf83131 ble_mesh: stack: Fix rpl not check by proxy cfg [Zephyr] 2020-12-08 11:51:23 +08:00
Krzysztof Budzynski
2ef417df5f Merge branch 'docs/update_rtc_clock_source_description_in_api_references_backport_v4.2' into 'release/v4.2'
docs: update the description for RTC Clock Sources for esp32 and esp32s2 (backport/v4.2)

See merge request espressif/esp-idf!11329
2020-12-08 10:47:42 +08:00
Krzysztof Budzynski
452992bcd5 Merge branch 'bugfix/remove_shortcut_to_build_instructions_v4.2' into 'release/v4.2'
doc: Getting Started Guide, remove shortcuts to 'build toolchain from scratch' instructions (v4.2)

See merge request espressif/esp-idf!10597
2020-12-08 10:46:42 +08:00
Island
c2f08b3e35 Merge branch 'bugfix/ble_mesh_node_deinit_v4.2' into 'release/v4.2'
ble_mesh: stack: Persistent storage misc fixes (v4.2)

See merge request espressif/esp-idf!11503
2020-12-08 10:28:46 +08:00
Angus Gratton
49dde3ca91 Merge branch 'bugfix/cast_int_to_size_t_in_cpu_ll_v4.2' into 'release/v4.2'
soc: cast int to size_t in cpu_ll (v4.2)

See merge request espressif/esp-idf!11135
2020-12-08 09:10:19 +08:00
Angus Gratton
cf644d4de3 Merge branch 'bugfix/check_doc_links_no_deploy_v4.2' into 'release/v4.2'
CI: Only run check_doc_links if we actually deployed (v4.2)

See merge request espressif/esp-idf!10955
2020-12-08 09:08:03 +08:00
Angus Gratton
fb81c46999 Merge branch 'bugfix/esp_idf_version_v4.2' into 'release/v4.2'
Add __ASSEMBLER__ flag in esp_idf_version.h to fix build failure with assembly files (v4.2)

See merge request espressif/esp-idf!10899
2020-12-08 09:07:51 +08:00
Angus Gratton
addabc392d Merge branch 'bugfix/ldgen_unicode_path_v4.2' into 'release/v4.2'
tools/ldgen: Parse paths with Unicode characters in archives & fix parsing of section names on Windows (v4.2)

See merge request espressif/esp-idf!10964
2020-12-08 09:07:47 +08:00
Angus Gratton
8a47006b72 Merge branch 'bugfix/backport_v4.2_fix_pthread_priority_inheritance' into 'release/v4.2'
pthread: fix the priority inheritance (backport v4.2)

See merge request espressif/esp-idf!11260
2020-12-08 09:07:23 +08:00
Angus Gratton
1591141237 Merge branch 'bugfix/err_to_name_paths_windows_v4.2' into 'release/v4.2'
tools: fix path handling errors in gen_esp_err_to_name.py for Windows (v4.2)

See merge request espressif/esp-idf!10895
2020-12-08 09:06:59 +08:00
Angus Gratton
74c7a84c4c Merge branch 'bugfix/secure_boot_v2_manual_enablement_v4.2' into 'release/v4.2'
Secure Boot V2: Fix an issue leading to manual enablement of Secure Boot v2. (v4.2)

See merge request espressif/esp-idf!11228
2020-12-08 09:06:29 +08:00
Angus Gratton
5cc8660a32 Merge branch 'bugfix/rtc_clk_cal_cycles_add_default_vals_for_all_sources_v4.2' into 'release/v4.2'
esp32xx: Fix default values for all RTC sources in RTC_CLK_CAL_CYCLES option (v4.2)

See merge request espressif/esp-idf!11412
2020-12-08 09:06:21 +08:00
Angus Gratton
82bcdcaeaf Merge branch 'bugfix/fix_partition_table_in_flash_encryption_example_v4.2' into 'release/v4.2'
example/flash_encryption: Fix partition table (v4.2)

See merge request espressif/esp-idf!10851
2020-12-08 09:06:07 +08:00
Angus Gratton
117be7a870 Merge branch 'bugfix/blecent_example_test_4.2' into 'release/v4.2'
Fix CI blecent example test (backport v4.2)

See merge request espressif/esp-idf!11271
2020-12-08 09:01:45 +08:00
Angus Gratton
244922a3e3 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:31 +11:00
lly
922abdc51b 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-12-07 12:05:56 +00:00
Island
59ad2b48ee Merge branch 'bugfix/fix_node_test_func_not_set_role_v4.2' into 'release/v4.2'
ble_mesh: test: Fix node test function not update role flag (v4.2)

See merge request espressif/esp-idf!11040
2020-12-07 19:56:55 +08:00
Island
0c75a3a8e7 Merge branch 'bugfix/ble_mesh_autorsp_description_v4.2' into 'release/v4.2'
esp_ble_mesh: api: fixed comment about autoresp (v4.2)

See merge request espressif/esp-idf!10888
2020-12-07 19:56:52 +08:00
Island
c667af2683 Merge branch 'optimize/ble_mesh_gattc_conn_param_v4.2' into 'release/v4.2'
ble_mesh: stack: Update connection parameters used by Central (v4.2)

See merge request espressif/esp-idf!11328
2020-12-07 19:55:51 +08:00
Mahavir Jain
305bc4983f Merge branch 'fix/protocomm_simple_ble_v4.2' into 'release/v4.2'
Protocomm/simple_ble: Fix gatt table map size to number of handles received (v4.2)

See merge request espressif/esp-idf!11264
2020-12-07 16:18:07 +08:00
Mahavir Jain
171eddcd01 Merge branch 'feature/esp_cryptoauthlib_sub_update_v4.2' into 'release/v4.2'
esp-cryptoauthlib: Update submodule pointer to add a new feature. (v4.2)

See merge request espressif/esp-idf!10830
2020-12-07 16:15:13 +08:00
Michael (XIAO Xufeng)
7dc03f16e7 Merge branch 'bugfix/twai_backport_accumulated_fixes_v4.2' into 'release/v4.2'
TWAI backport accumulated fixes (backport v4.2)

See merge request espressif/esp-idf!11459
2020-12-07 15:52:04 +08:00
Darian Leung
a0bb9b2f57 TWAI: ISR runs when cache is disabled
This commit adds the feature where the TWAI 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_TWAI_ISR_IN_IRAM option.
2020-12-03 19:41:59 +08:00
xiewenxiang
9dbf59af9c component/bt: support BLE Read Attribute value by UUID 2020-12-03 15:19:44 +08:00
xiewenxiang
4e8d383d01 component/bt: refactor ble random address setting 2020-12-03 15:19:35 +08:00
XieWenxiang
8533c452a1 component/bt: support BLE Application Layer Encryption key size check 2020-12-03 15:19:27 +08:00
XieWenxiang
82b65d5de0 component/bt: support BLE Authorization 2020-12-03 15:19:17 +08:00
xiewenxiang
0740090682 component/bt: fix incorrect encryption flag setting 2020-12-03 15:19:02 +08:00
Darian Leung
fa7c5fcd42 TWAI: Fix BRP field initialization onf ESP32 ECO3
This commit zero initializes the brp_div field on ESP32 ECO3
to prevent incorrect timing configuration.
2020-12-02 21:27:12 +08:00
Darian Leung
1160da7fdf TWAI: Fix ESP32-S2 register field name 2020-12-02 21:27:12 +08:00
Darian Leung
e1b7a02786 TWAI: 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.
2020-12-02 21:26:33 +08:00
Shivani Tipnis
4c533a1e53 ci: Fix blecent example test
(cherry picked from commit fc146a98e4)
2020-11-30 22:44:52 +05:30
KonstantinKondrashov
3d03264b0a 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:09:13 +08:00
morris
6270de58ad 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-27 20:11:38 +01:00
David Cermak
99cb5a7c8d 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-27 20:10:06 +01:00
David Cermak
bdc914bbf4 CI: esp_netif tests: Fix netsuite driver layer per wifi optimization changes
esp-wifi introcuded wifi tx optimization in !9147 . Update needed in netsuite to pass the tx data using  function

Closes https://github.com/espressif/esp-idf/issues/6161
2020-11-27 12:00:07 +01:00
InfiniteYuan
cd045c60d9 bugfix: Delete local variables to avoid null global variables 2020-11-25 20:52:27 +08:00
wangcheng
1be101f342 component/bt: Add a macro to control the compilation of blufi. 2020-11-24 10:44:57 +08:00
wangcheng
7097ff286c component/bt: Fix a potential double free error. 2020-11-24 10:44:56 +08:00
wangcheng
65c5a57033 blufi: fix an error caused by incorrect conn_id parameters. 2020-11-24 10:44:54 +08:00
Wang Fang
e9dae152cd docs: update the description for RTC Clock Sources for esp32 and esp32s2 2020-11-23 11:37:15 +08:00
lly
e2b6ab00dc ble_mesh: stack: Update connection interval to 15ms 2020-11-23 08:59:23 +08:00
lly
92eebb885c ble_mesh: stack: Update connection parameters used by Central 2020-11-23 08:59:22 +08:00
David Cermak
c4e4a05002 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:24:18 +01:00
David Cermak
405f2ee995 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:15:33 +01:00
xueyunfei
501fce7fdd backport bugfix lwip for v4.2 2020-11-20 14:44:13 +08:00
Armando
3c2367d158 i2s: fix i2s ll layer pdm config 2020-11-19 11:42:53 +00:00
xutao
2a4c338ac4 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-19 15:59:47 +08:00
Prasad Alatkar
6928e6b5b0 Protocomm/simple_ble: Make gatt table map size equal to number of handles received (v4.2)
- Fixes memcpy failure observed while adding 2 or more endpoints in
  wifi_provisioning.

 Closes IDF-2250
2020-11-17 14:59:46 +05:30
xutao
cc10f1943c 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:48:43 +08:00
israel
e0a02c1a7c AP_STAIPASSIGNED now passes the IP through 'event_data'
Signed-off-by: xueyunfei <xueyunfei@espressif.com>
2020-11-16 17:43:51 +08:00
Anton Maklakov
eae8933b85 ci: use the retry script to download 2020-11-16 11:30:47 +07:00
Supreet Deshpande
dd6405fcef 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:33:29 +05:30
FredrikFornstad
57571ae908 Bugfix: Casting int to size_t 2020-11-05 20:32:43 +05:30
lly
b2bd4d1cb7 ble_mesh: test: Fix node test function not update role flag 2020-10-29 15:50:00 +08:00
Roland Dobai
707dde46a8 tools/ldgen: Fix parsing of sections names on Windows 2020-10-29 08:46:03 +01:00
Roland Dobai
c09d3c6bac tools/ldgen: Parse paths with Unicode characters in archives
Closes https://github.com/espressif/esp-idf/issues/5996
2020-10-29 08:46:03 +01:00
Marius Vikhammer
e05164cb4f CI: Only run check_doc_links if we actually deployed
Update the check_doc_links job run conditions to match
github/doc deploy as a lot of the links link to github files.
2020-10-22 18:26:46 +08:00
Shubham Kulkarni
c0a9ef0e1d esp_idf_version.h: Add __ASSEMBLER__ flag to fix build failure with assembly files 2020-10-19 13:21:26 +05:30
Marius Vikhammer
978b54796f 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:17:19 +08:00
andreachiara
882e924629 esp_ble_mesh: api: fixed comment about autoresp 2020-10-19 11:00:55 +08:00
Angus Gratton
a88c479160 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:39 +11:00
Angus Gratton
2a7dfb2320 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:39 +11:00
Ivan Grokhotkov
514389681c 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-10-15 18:39:45 +08:00
KonstantinKondrashov
f5475db6e1 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-10-15 18:36:17 +08:00
Aditya Patwardhan
9316961219 esp-cryptoauthlib: Update submodule pointer to add a new feature. 2020-10-15 05:16:38 +00:00
Martin Stejskal
304ed67982 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-13 16:12:21 +00:00
David Cermak
09714a4f11 ci: add job for unit tests 2020-10-12 16:25:17 +02:00
David Cermak
f871186da3 idf.py: Fixed gdb target to exit cleanly when no openocd watch task
When idf.py gdb starts, it expects openocd was started in the background
and creates a thread to watch for openocd errors. when gdb target exits,
the debug_ext.py aims to cleanup all threads and processes, but fails
with traceback if openocd-watch thread not available, which could happen
if openocd started separately.
2020-10-12 13:30:15 +02:00
Krzysztof
fd2e2ac34f doc: Getting Started Guide, remove shortcuts to 'build toolchain from scratch' instructions 2020-09-24 18:32:50 +08:00
aleks
07bfb7cac9 freemodbus: fix event processing failure after destroy
Closes https://github.com/espressif/esp-idf/issues/5275
2020-09-23 07:04:52 +00:00
Marius Vikhammer
190f310ed1 docs: seperate build_docs html and pdf CI jobs
Due to eager_exclude, Sphinx jobs cannot use the doc cache (doctrees).

PDF and HTML building are now seperate CI jobs to avoid this issue.
PDF building will only be ran on deploy branches and when started
with build_docs tag to reduce CI load
2020-09-22 14:04:12 +08:00
Jakob Hasse
071dc73954 NVS: ensuring default partition
* Also added encryption keys to CMakeLists.txt

Closes https://github.com/espressif/esp-idf/issues/5347
Closes IDFGH-3372
2020-09-21 12:44:57 +08:00
martin.gano
278030ff3e add file stream parameter and log stdout and stderr to same stream 2020-09-18 10:38:33 +02:00
Sergei Silnov
ef0db6f034 ci: Use git mirror for docker image 2020-09-14 12:49:05 +02:00
Ivan Grokhotkov
0e191cf70e 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:35:07 +02:00
Ivan Grokhotkov
73813c6bac freertos: ensure the interrupt stack is aligned
CONFIG_FREERTOS_ISR_STACKSIZE was set to 2100 when ELF core dump was
enabled, which resulted in a non-16-byte-aligned interrupt stack
offset. This triggered "is SP corrupted" check in the backtrace,
terminating the backtrace early.

Fix the default value, and make sure that the stack is always aligned,
regardless of the value of CONFIG_FREERTOS_ISR_STACKSIZE.
2020-09-04 20:45:38 +02:00
Ivan Grokhotkov
c3d2942675 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:45:38 +02:00
1241 changed files with 49403 additions and 35686 deletions

17
.github/workflows/release_zips.yml vendored Normal file
View File

@@ -0,0 +1,17 @@
name: Create zip file with recursive source clone for release
on:
push:
tags:
- v*
jobs:
release_zips:
name: Create release zip file
runs-on: ubuntu-20.04
steps:
- name: Create a recursive clone source zip
uses: espressif/github-actions/release_zips@master
env:
RELEASE_PROJECT_NAME: ESP-IDF
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

3
.gitignore vendored
View File

@@ -83,3 +83,6 @@ build
# lock files for examples and components
dependencies.lock
# managed_components for examples
managed_components

View File

@@ -8,6 +8,18 @@ stages:
- deploy
- post_deploy
# 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:
- 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: always
variables:
# System environment
@@ -46,7 +58,7 @@ variables:
# 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"
CI_AUTO_TEST_SCRIPT_REPO_URL: "https://gitlab-ci-token:${BOT_TOKEN}@${CI_SERVER_HOST}:${CI_SERVER_PORT}/qa/auto_test_script.git"
CI_AUTO_TEST_SCRIPT_REPO_BRANCH: "ci/v3.1"
CI_AUTO_TEST_SCRIPT_REPO_BRANCH: "ci/v4.1"
# 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"
@@ -133,6 +145,7 @@ before_script:
dependencies: []
before_script:
- *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
@@ -145,6 +158,12 @@ before_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:
- '/tools/ci/config/pre_check.yml'
- '/tools/ci/config/build.yml'

6
.gitlab/CODEOWNERS Normal file
View File

@@ -0,0 +1,6 @@
# For the syntax of this file, see:
#
# https://docs.gitlab.com/ee/user/project/code_owners.html#the-syntax-of-code-owners-files
#
* @esp-idf-codeowners/all-maintainers

View File

@@ -74,6 +74,10 @@ if(CONFIG_COMPILER_DISABLE_GCC8_WARNINGS)
"-Wno-int-in-bool-context")
endif()
if(CONFIG_COMPILER_WARN_WRITE_STRINGS)
list(APPEND compile_options "-Wwrite-strings")
endif()
if(CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE)
list(APPEND compile_definitions "-DNDEBUG")
endif()

View File

@@ -114,7 +114,7 @@ mainmenu "Espressif IoT Development Framework Configuration"
mon reset halt
# Run to a specific point in ROM code,
# where most of initialization is complete.
thb *0x40007901
thb *0x40007d54
c
# Load the application into RAM
load

View File

@@ -2,20 +2,15 @@
* [中文版](./README_CN.md)
ESP-IDF is the official development framework for the **ESP32** and **ESP32-S** Series SoCs provided for Windows, Linux and macOS.
ESP-IDF is the development framework for Espressif SoCs (released after 2016<sup>[1](#fn1)</sup>) provided for Windows, Linux and macOS.
# Developing With ESP-IDF
## Setting Up ESP-IDF
See setup guides for detailed instructions to set up the 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.
| Chip | Getting Started Guides for ESP-IDF |
|:----:|:----|
| <img src="docs/_static/chip-esp32.svg" height="85" alt="ESP32"> | <ul><li>[stable](https://docs.espressif.com/projects/esp-idf/en/stable/get-started/) version</li><li>[latest (master branch)](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/) version</li></ul> |
| <img src="docs/_static/chip-esp32-s2.svg" height="100" alt="ESP32-S2"> | <ul><li>[latest (master branch)](https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/get-started/) version</li></ul> |
**Note:** Each ESP-IDF release has its own documentation. Please see Section [Versions](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/versions.html) how to find documentation and how to checkout specific release of 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.
### Non-GitHub forks
@@ -70,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 [idf_monitor tool](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/idf-monitor.html) to display serial output from ESP32 or ESP32-S Series SoCs. 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 Espressif SoCs. 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-].
@@ -106,3 +101,6 @@ This can be combined with other targets, ie `idf.py -p PORT erase_flash flash` w
* 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).
________
<a name="fn1">1</a>: ESP8266 and ESP8285 are not supported in ESP-IDF. See [RTOS SDK](https://github.com/espressif/ESP8266_RTOS_SDK) instead.

View File

@@ -2,26 +2,22 @@
* [English Version](./README.md)
ESP-IDF 是由乐鑫官方推出的针对 **ESP32****ESP32-S2** 系列芯片的开发框架
ESP-IDF 是由乐鑫官方针对乐鑫各系列芯片产品(发布于 2016 年后<sup>[1](#fn1)</sup>)推出的开发框架,支持 Windows、Linux 和 macOS 操作系统
# 使用 ESP-IDF 进行开发
## 搭建 ESP-IDF 开发环境
请参阅如下指南搭建 ESP-IDF 的开发环境
| 芯片 | ESP-IDF 入门指南 |
|:----:|:----|
| <img src="docs/_static/chip-esp32.svg" height="85" alt="ESP32"> | <ul><li>[稳定](https://docs.espressif.com/projects/esp-idf/zh_CN/stable/get-started/) 版</li><li>[最新master 分支)](https://docs.espressif.com/projects/esp-idf/zh_CN/latest/get-started/) 版本</li></ul> |
| <img src="docs/_static/chip-esp32-s2.svg" height="100" alt="ESP32-S2"> | <ul><li>[最新master 分支)](https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s2/get-started/) 版本</li></ul> |
**注意:** 每个 ESP-IDF 版本都有其对应的文档。 请参阅 [版本](https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/versions.html) 部分如何查找文档以及如何检出ESP-IDF的特定发行版。
关于不同芯片如何搭建 ESP-IDF 的开发环境,请参考 https://idf.espressif.com/。
**注意:** 不同系列芯片和不同 ESP-IDF 版本都有其对应的文档。请参阅[版本](https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/versions.html)部分,获得关于如何查找文档以及如何检出 ESP-IDF 的特定发行版的详细信息。
### 非 GitHub 分叉的 ESP-IDF 项目
ESP-IDF 中的子模块采用相对路径([详见 .gitmodules 文件](.gitmodules)),所以它们会指向 GitHub。
如果 ESP-IDF 被分叉到的仓库不在 GitHub 上,那么你需要在克隆结束后运行该[脚本](tools/set-submodules-to-github.sh)。它会为所有的子模块设置绝对路径,接着可以通过 `git submodule update --init --recursive` 完成子模块的更新
如果 ESP-IDF 被分叉到的仓库不在 GitHub 上,那么你需要在克隆结束后运行该脚本 [tools/set-submodules-to-github.sh](tools/set-submodules-to-github.sh)
这个脚本会为所有的子模块设置绝对路径,接着可以通过 `git submodule update --init --recursive` 完成子模块的更新。
如果 ESP-IDF 是从 GitHub 上克隆得到,则不需要此步骤。
## 寻找项目
@@ -38,24 +34,16 @@ ESP-IDF 中的子模块采用相对路径([详见 .gitmodules 文件](.gitmodu
## 设置构建环境
请参考入门指南中列出的详细步骤。
* 在主机中安装入门指南中提到的构建所依赖的工具。
* 将 ESP-IDF 中的 `tools/` 目录加入 PATH 环境变量中。
* 运行 `python -m pip install -r requirements.txt` 安装 Python 依赖库。
请参考入门指南中列出的详细步骤。
* 在主机中安装入门指南中提到的构建所依赖的工具。
* 运行安装脚本来设置构建环境。可为 Windows shell 选择 `install.bat``install.ps1`,为 Unix shell 选择 `install.sh``install.fish`
* 在使用 ESP-IDF 之前,需要在 shell 中运行导出脚本。Windows 下可运行 `export.bat`Unix 下可运行 `source export.sh`
## 配置项目
`idf.py menuconfig`
* 打开项目的文本配置菜单。
* 使用上下键浏览菜单。
* 使用回车键进入子菜单,退出键返回上一级菜单或者退出配置。
* 输入 `?` 查看帮助界面,按下回车键可以退出帮助界面。
* 使用空格键或者 `Y``N` 按键来启用和禁用带复选框“`[*]`”的配置项。
* 高亮某个配置项的同时按下 `?` 键可以显示该选项的帮助文档。
* 输入 `/` 可以搜索指定的配置项。
一旦配置完成,请按下退出键多次以退出配置界面,当提示是否保存新的的配置时,选择 “Yes”。
* `idf.py set-target <chip_name>` 可将项目的目标芯片设置为 `<chip_name>`。运行 `idf.py set-target`,不用带任何参数,可查看所有支持的目标芯片列表。
* `idf.py menuconfig` 可打开一个基于文本的配置菜单,可以用来对项目进行配置。
## 编译项目
@@ -65,23 +53,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` 会调用 [idf_monitor 工具](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/idf-monitor.html)来显示 ESP32 和 ESP32-S2 的串口输出。`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)来显示乐鑫芯片的串口输出。`idf_monitor` 还包含一系列的功能来解析程序崩溃后的输出结果并与设备进行交互。更多详细内容,请参阅[文档](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/idf-monitor.html).
输入 `Ctrl-]` 可退出监视器。
想要一次性执行构建烧写和监视,可以运行如下命令:
想要一次性执行构建烧写和监视,可以运行如下命令:
`idf.py flash monitor`
@@ -92,24 +80,27 @@ 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://docs.espressif.com/projects/esp-idf/,该文档是由本仓库 [docs 目录](docs) 构建得到。
* 可以前往 [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)。
__________
<a name="fn1">1</a>: ESP-IDF 不支持 ESP8266 和 ESP8285。如有需要请参考 [RTOS SDK](https://github.com/espressif/ESP8266_RTOS_SDK)。

View File

@@ -30,13 +30,17 @@ endif()
idf_component_register(SRCS "${srcs}"
INCLUDE_DIRS "${include_dirs}"
PRIV_REQUIRES soc
PRIV_REQUIRES soc esp_ipc
LDFRAGMENTS linker.lf)
# 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")
# 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 $<TARGET_FILE:${app_trace}> gcov $<TARGET_FILE:${app_trace}> c)
if(CONFIG_APPTRACE_GCOV_ENABLE)
# 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")
# 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

@@ -8,11 +8,7 @@ COMPONENT_ADD_INCLUDEDIRS = include
COMPONENT_ADD_LDFLAGS = -lapp_trace
# do not produce gcov info for this module, it is used as transport for gcov
CFLAGS := $(subst --coverage,,$(CFLAGS))
ifdef CONFIG_SYSVIEW_ENABLE
COMPONENT_ADD_INCLUDEDIRS += \
sys_view/Config \
sys_view/SEGGER \
@@ -26,7 +22,12 @@ COMPONENT_SRCDIRS += \
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

@@ -22,7 +22,9 @@
#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"
@@ -37,128 +39,113 @@
#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;
static volatile bool s_gcov_task_running = false;
extern void __gcov_dump(void);
extern void __gcov_reset(void);
static struct syscall_stub_table s_gcov_stub_table;
static int gcov_stub_lock_try_acquire_recursive(_lock_t *lock)
void gcov_dump_task(void *pvParameter)
{
if (*lock && uxSemaphoreGetCount((xSemaphoreHandle)(*lock)) == 0) {
// we can do nothing here, gcov dump is initiated with some resource locked
// which is also used by gcov functions
ESP_EARLY_LOGE(TAG, "Lock 0x%x is busy during GCOV dump! System state can be inconsistent after dump!", lock);
}
return pdTRUE;
}
int dump_result = 0;
bool *running = (bool *)pvParameter;
static void gcov_stub_lock_acquire_recursive(_lock_t *lock)
{
gcov_stub_lock_try_acquire_recursive(lock);
}
ESP_EARLY_LOGV(TAG, "%s stack use in %d", __FUNCTION__, uxTaskGetStackHighWaterMark(NULL));
static void gcov_stub_lock_release_recursive(_lock_t *lock)
{
}
static int esp_dbg_stub_gcov_dump_do(void)
{
int ret = ESP_OK;
FILE* old_stderr = stderr;
FILE* old_stdout = stdout;
static struct syscall_stub_table *old_tables[portNUM_PROCESSORS];
old_tables[0] = syscall_table_ptr_pro;
#if portNUM_PROCESSORS > 1
old_tables[1] = syscall_table_ptr_app;
#endif
ESP_EARLY_LOGV(TAG, "Alloc apptrace down buf %d bytes", ESP_GCOV_DOWN_BUF_SIZE);
void *down_buf = malloc(ESP_GCOV_DOWN_BUF_SIZE);
if (down_buf == NULL) {
ESP_EARLY_LOGE(TAG, "Could not allocate memory for the buffer");
return ESP_ERR_NO_MEM;
dump_result = ESP_ERR_NO_MEM;
goto gcov_exit;
}
ESP_EARLY_LOGV(TAG, "Config apptrace down buf");
esp_apptrace_down_buffer_config(down_buf, ESP_GCOV_DOWN_BUF_SIZE);
/* we are directing the std outputs to the fake ones in order to reduce stack usage */
FILE *old_stderr = stderr;
FILE *old_stdout = stdout;
stderr = (FILE *) &__sf_fake_stderr;
stdout = (FILE *) &__sf_fake_stdout;
ESP_EARLY_LOGV(TAG, "Dump data...");
// incase of dual-core chip APP and PRO CPUs share the same table, so it is safe to save only PRO's table
memcpy(&s_gcov_stub_table, syscall_table_ptr_pro, sizeof(s_gcov_stub_table));
s_gcov_stub_table._lock_acquire_recursive = &gcov_stub_lock_acquire_recursive;
s_gcov_stub_table._lock_release_recursive = &gcov_stub_lock_release_recursive;
s_gcov_stub_table._lock_try_acquire_recursive = &gcov_stub_lock_try_acquire_recursive,
syscall_table_ptr_pro = &s_gcov_stub_table;
#if portNUM_PROCESSORS > 1
syscall_table_ptr_app = &s_gcov_stub_table;
#endif
stderr = (FILE*) &__sf_fake_stderr;
stdout = (FILE*) &__sf_fake_stdout;
__gcov_dump();
// reset dump status to allow incremental data accumulation
__gcov_reset();
stdout = old_stdout;
stderr = old_stderr;
syscall_table_ptr_pro = old_tables[0];
#if portNUM_PROCESSORS > 1
syscall_table_ptr_app = old_tables[1];
#endif
ESP_EARLY_LOGV(TAG, "Free apptrace down buf");
free(down_buf);
stderr = old_stderr;
stdout = old_stdout;
ESP_EARLY_LOGV(TAG, "Finish file transfer session");
ret = esp_apptrace_fstop(ESP_APPTRACE_DEST_TRAX);
if (ret != ESP_OK) {
ESP_EARLY_LOGE(TAG, "Failed to send files transfer stop cmd (%d)!", ret);
dump_result = esp_apptrace_fstop(ESP_APPTRACE_DEST_TRAX);
if (dump_result != ESP_OK) {
ESP_EARLY_LOGE(TAG, "Failed to send files transfer stop cmd (%d)!", dump_result);
}
gcov_exit:
ESP_EARLY_LOGV(TAG, "dump_result %d", dump_result);
if (running) {
*running = false;
}
ESP_EARLY_LOGV(TAG, "%s stack use out %d", __FUNCTION__, uxTaskGetStackHighWaterMark(NULL));
vTaskDelete(NULL);
}
void gcov_create_task(void *arg)
{
ESP_EARLY_LOGV(TAG, "%s", __FUNCTION__);
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)
{
extern esp_err_t esp_ipc_start_gcov_from_isr(uint32_t cpu_id, esp_ipc_func_t func, void* arg);
if (s_create_gcov_task) {
if (esp_ipc_start_gcov_from_isr(xPortGetCoreID(), &gcov_create_task, NULL) == ESP_OK) {
s_create_gcov_task = false;
}
}
ESP_EARLY_LOGV(TAG, "exit %d", ret);
return ret;
}
/**
* @brief Triggers gcov info dump.
* @brief Triggers gcov info dump task
* This function is to be called by OpenOCD, not by normal user code.
* TODO: what about interrupted flash access (when cache disabled)???
* TODO: what about interrupted flash access (when cache disabled)
*
* @return ESP_OK on success, otherwise see esp_err_t
*/
static int esp_dbg_stub_gcov_entry(void)
{
return esp_dbg_stub_gcov_dump_do();
/* we are in isr context here */
s_create_gcov_task = true;
return ESP_OK;
}
int gcov_rtio_atexit(void (*function)(void) __attribute__ ((unused)))
{
uint32_t capabilities = 0;
ESP_EARLY_LOGV(TAG, "%s", __FUNCTION__);
esp_dbg_stub_entry_set(ESP_DBG_STUB_ENTRY_GCOV, (uint32_t)&esp_dbg_stub_gcov_entry);
return 0;
if (esp_dbg_stub_entry_get(ESP_DBG_STUB_ENTRY_CAPABILITIES, &capabilities) == ESP_OK) {
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)
{
// disable IRQs on this CPU, other CPU is halted by OpenOCD
unsigned irq_state = portENTER_CRITICAL_NESTED();
#if !CONFIG_FREERTOS_UNICORE
int other_core = xPortGetCoreID() ? 0 : 1;
esp_cpu_stall(other_core);
#endif
ESP_EARLY_LOGV(TAG, "%s", __FUNCTION__);
while (!esp_apptrace_host_is_connected(ESP_APPTRACE_DEST_TRAX)) {
wdt_hal_context_t twdt = {.inst = WDT_MWDT0, .mwdt_dev = &TIMERG0};
wdt_hal_context_t iwdt = {.inst = WDT_MWDT1, .mwdt_dev = &TIMERG1};
//Feed the Task Watchdog (TG0) to prevent it from timing out
wdt_hal_write_protect_disable(&twdt);
wdt_hal_feed(&twdt);
wdt_hal_write_protect_enable(&twdt);
//Likewise, feed the Interrupt Watchdog (TG1) to prevent a reboot
wdt_hal_write_protect_disable(&iwdt);
wdt_hal_feed(&iwdt);
wdt_hal_write_protect_enable(&iwdt);
vTaskDelay(pdMS_TO_TICKS(10));
}
esp_dbg_stub_gcov_dump_do();
#if !CONFIG_FREERTOS_UNICORE
esp_cpu_unstall(other_core);
#endif
portEXIT_CRITICAL_NESTED(irq_state);
/* We are not in isr context here. Waiting for the completion is safe */
s_gcov_task_running = true;
s_create_gcov_task = true;
while (s_gcov_task_running) {
vTaskDelay(pdMS_TO_TICKS(10));
}
}
void *gcov_rtio_fopen(const char *path, const char *mode)
@@ -177,7 +164,7 @@ int gcov_rtio_fclose(void *stream)
size_t gcov_rtio_fread(void *ptr, size_t size, size_t nmemb, void *stream)
{
ESP_EARLY_LOGV(TAG, "%s read %u", __FUNCTION__, size*nmemb);
ESP_EARLY_LOGV(TAG, "%s read %u", __FUNCTION__, size * nmemb);
size_t sz = esp_apptrace_fread(ESP_APPTRACE_DEST_TRAX, ptr, size, nmemb, stream);
ESP_EARLY_LOGV(TAG, "%s actually read %u", __FUNCTION__, sz);
return sz;

View File

@@ -3,10 +3,11 @@ archive: libapp_trace.a
entries:
app_trace (noflash)
app_trace_util (noflash)
SEGGER_SYSVIEW (noflash)
SEGGER_RTT_esp32 (noflash)
SEGGER_SYSVIEW_Config_FreeRTOS (noflash)
SEGGER_SYSVIEW_FreeRTOS (noflash)
if SYSVIEW_ENABLE = y:
SEGGER_SYSVIEW (noflash)
SEGGER_RTT_esp32 (noflash)
SEGGER_SYSVIEW_Config_FreeRTOS (noflash)
SEGGER_SYSVIEW_FreeRTOS (noflash)
[mapping:driver]
archive: libdriver.a

View File

@@ -89,7 +89,10 @@ int IRAM_ATTR esp_ota_get_app_elf_sha256(char* dst, size_t size)
static bool first_call = true;
if (first_call) {
first_call = false;
const uint8_t* src = esp_app_desc.app_elf_sha256;
// At -O2 optimization level, GCC optimizes out the copying of the first byte of the app_elf_sha256,
// because it is zero at compile time, and only modified afterwards by esptool.
// Casting to volatile disables the optimization.
const volatile uint8_t* src = (const volatile uint8_t*)esp_app_desc.app_elf_sha256;
for (size_t i = 0; i < sizeof(s_app_elf_sha256); ++i) {
s_app_elf_sha256[i] = src[i];
}

View File

@@ -49,7 +49,7 @@ typedef uint32_t esp_ota_handle_t;
/**
* @brief Return esp_app_desc structure. This structure includes app version.
*
*
* Return description for running app.
* @return Pointer to esp_app_desc structure.
*/
@@ -224,7 +224,7 @@ const esp_partition_t* esp_ota_get_next_update_partition(const esp_partition_t *
/**
* @brief Returns esp_app_desc structure for app partition. This structure includes app version.
*
*
* Returns a description for the requested app partition.
* @param[in] partition Pointer to app partition. (only app partition)
* @param[out] app_desc Structure of info about app.
@@ -313,9 +313,9 @@ typedef enum {
/**
* @brief Revokes the old signature digest. To be called in the application after the rollback logic.
*
* Relevant for Secure boot v2 on ESP32-S2 where upto 3 key digests can be stored (Key #N-1, Key #N, Key #N+1).
* When key #N-1 used to sign an app is invalidated, an OTA update is to be sent with an app signed with key #N-1 & Key #N.
* After successfully booting the OTA app should call this function to revoke Key #N-1.
* Relevant for Secure boot v2 on ESP32-S2 where upto 3 key digests can be stored (Key N-1, Key N, Key N+1).
* When key N-1 used to sign an app is invalidated, an OTA update is to be sent with an app signed with key N-1 & Key N.
* After successfully booting the OTA app should call this function to revoke Key N-1.
*
* @param index - The index of the signature block to be revoked
*

View File

@@ -87,9 +87,8 @@ class OtatoolTarget():
seq = bytearray(self.otadata[start:start + 4])
crc = bytearray(self.otadata[start + 28:start + 32])
seq = struct.unpack('>I', seq)
crc = struct.unpack('>I', crc)
seq = struct.unpack('I', seq)
crc = struct.unpack('I', crc)
info.append(otadata_info(seq[0], crc[0]))
return info
@@ -103,12 +102,11 @@ class OtatoolTarget():
def switch_ota_partition(self, ota_id):
self._check_otadata_partition()
sys.path.append(PARTTOOL_DIR)
import gen_esp32part as gen
def is_otadata_info_valid(status):
seq = status.seq % (1 << 32)
crc = hex(binascii.crc32(struct.pack("I", seq), 0xFFFFFFFF) % (1 << 32))
crc = binascii.crc32(struct.pack('I', seq), 0xFFFFFFFF) % (1 << 32)
return seq < (int('0xFFFFFFFF', 16) % (1 << 32)) and status.crc == crc
partition_table = self.target.partition_table
@@ -219,8 +217,8 @@ def _read_otadata(target):
otadata_info = target._get_otadata_info()
print(" {:8s} \t {:8s} | \t {:8s} \t {:8s}".format("OTA_SEQ", "CRC", "OTA_SEQ", "CRC"))
print("Firmware: 0x{:8x} \t0x{:8x} | \t0x{:8x} \t 0x{:8x}".format(otadata_info[0].seq, otadata_info[0].crc,
print(' {:8s} \t {:8s} | \t {:8s} \t {:8s}'.format('OTA_SEQ', 'CRC', 'OTA_SEQ', 'CRC'))
print('Firmware: 0x{:08x} \t0x{:08x} | \t0x{:08x} \t 0x{:08x}'.format(otadata_info[0].seq, otadata_info[0].crc,
otadata_info[1].seq, otadata_info[1].crc))
@@ -249,6 +247,10 @@ def _erase_ota_partition(target, ota_id):
def main():
if sys.version_info[0] < 3:
print("WARNING: Support for Python 2 is deprecated and will be removed in future versions.", file=sys.stderr)
elif sys.version_info[0] == 3 and sys.version_info[1] < 6:
print("WARNING: Python 3 versions older than 3.6 are not supported.", file=sys.stderr)
global quiet
parser = argparse.ArgumentParser("ESP-IDF OTA Partitions Tool")

View File

@@ -114,7 +114,8 @@ menu "Bootloader config"
config BOOTLOADER_NUM_PIN_FACTORY_RESET
int "Number of the GPIO input for factory reset"
depends on BOOTLOADER_FACTORY_RESET
range 0 39
range 0 39 if IDF_TARGET_ESP32
range 0 44 if IDF_TARGET_ESP32S2
default 4
help
The selected GPIO will be configured as an input with internal pull-up enabled.
@@ -334,6 +335,16 @@ menu "Security features"
select MBEDTLS_ECDSA_C
depends on SECURE_SIGNED_ON_BOOT || SECURE_SIGNED_ON_UPDATE
config SECURE_BOOT_SUPPORTS_RSA
bool
default y
depends on ESP32_REV_MIN_3 || IDF_TARGET_ESP32S2
config SECURE_TARGET_HAS_SECURE_ROM_DL_MODE
bool
default y
depends on IDF_TARGET_ESP32S2
config SECURE_SIGNED_APPS_NO_SECURE_BOOT
bool "Require signed app images"
@@ -369,7 +380,7 @@ menu "Security features"
config SECURE_SIGNED_APPS_RSA_SCHEME
bool "RSA"
depends on (ESP32_REV_MIN_3 || IDF_TARGET_ESP32S2) && SECURE_BOOT_V2_ENABLED
depends on SECURE_BOOT_SUPPORTS_RSA && SECURE_BOOT_V2_ENABLED
help
Appends the RSA-3072 based Signature block to the application.
Refer to <Secure Boot Version 2 documentation link> before enabling.
@@ -433,8 +444,8 @@ menu "Security features"
config SECURE_BOOT_V2_ENABLED
bool "Enable Secure Boot version 2"
depends on ESP32_REV_MIN_3 || IDF_TARGET_ESP32S2
select SECURE_ENABLE_SECURE_ROM_DL_MODE if IDF_TARGET_ESP32S2 && !SECURE_INSECURE_ALLOW_DL_MODE
depends on SECURE_BOOT_SUPPORTS_RSA
select SECURE_ENABLE_SECURE_ROM_DL_MODE if !IDF_TARGET_ESP32 && !SECURE_INSECURE_ALLOW_DL_MODE && !SECURE_DISABLE_ROM_DL_MODE # NOERROR
select SECURE_DISABLE_ROM_DL_MODE if ESP32_REV_MIN_3 && !SECURE_INSECURE_ALLOW_DL_MODE
help
Build a bootloader which enables Secure Boot version 2 on first boot.
@@ -555,6 +566,7 @@ menu "Security features"
config SECURE_FLASH_ENC_ENABLED
bool "Enable flash encryption on boot (READ DOCS FIRST)"
default N
select SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE
help
If this option is set, flash contents will be encrypted by the bootloader on first boot.
@@ -603,7 +615,8 @@ menu "Security features"
config SECURE_FLASH_ENCRYPTION_MODE_RELEASE
bool "Release"
select SECURE_ENABLE_SECURE_ROM_DL_MODE
select SECURE_ENABLE_SECURE_ROM_DL_MODE if SECURE_TARGET_HAS_SECURE_ROM_DL_MODE && !SECURE_DISABLE_ROM_DL_MODE # NOERROR
select PARTITION_TABLE_MD5 if !ESP32_COMPATIBLE_PRE_V3_1_BOOTLOADERS
endchoice
@@ -665,9 +678,17 @@ menu "Security features"
efuse when Secure Boot is enabled. This prevents any more efuses from being read protected.
If this option is set, it will remain possible to write the EFUSE_RD_DIS efuse field after Secure
Boot is enabled. This may allow an attacker to read-protect the BLK2 efuse holding the public
key digest, causing an immediate denial of service and possibly allowing an additional fault
injection attack to bypass the signature protection.
Boot is enabled. This may allow an attacker to read-protect the BLK2 efuse (for ESP32) and
BLOCK4-BLOCK10 (i.e. BLOCK_KEY0-BLOCK_KEY5)(for other chips) holding the public key digest, causing an
immediate denial of service and possibly allowing an additional fault injection attack to
bypass the signature protection.
NOTE: Once a BLOCK is read-protected, the application will read all zeros from that block
NOTE: If "UART ROM download mode (Permanently disabled (recommended))" or
"UART ROM download mode (Permanently switch to Secure mode (recommended))" is set,
then it is __NOT__ possible to read/write efuses using espefuse.py utility.
However, efuse can be read/written from the application
config SECURE_INSECURE_ALLOW_DL_MODE
bool "Don't automatically restrict UART download mode"
@@ -748,7 +769,7 @@ menu "Security features"
config SECURE_ENABLE_SECURE_ROM_DL_MODE
bool "Permanently switch to ROM UART Secure Download mode"
depends on IDF_TARGET_ESP32S2 && !SECURE_DISABLE_ROM_DL_MODE
depends on SECURE_TARGET_HAS_SECURE_ROM_DL_MODE && !SECURE_DISABLE_ROM_DL_MODE
help
If set, during startup the app will burn an eFuse bit to permanently switch the UART ROM
Download Mode into a separate Secure Download mode. This option can only work if

View File

@@ -32,4 +32,6 @@ CFLAGS += -D BOOTLOADER_BUILD=1
# include the top-level "project" include directory, for sdkconfig.h
CFLAGS += -I$(BUILD_DIR_BASE)/../include
COMPONENT_ADD_LDFLAGS += -l$(COMPONENT_NAME) -Wl,--wrap=longjmp \
include $(IDF_PATH)/make/project.mk

View File

@@ -164,6 +164,14 @@ SECTIONS
*(.fini.literal)
*(.fini)
*(.gnu.version)
/** CPU will try to prefetch up to 16 bytes of
* of instructions. This means that any configuration (e.g. MMU, PMS) must allow
* safe access to up to 16 bytes after the last real instruction, add
* dummy bytes to ensure this
*/
. += 16;
_text_end = ABSOLUTE(.);
_etext = .;
} > iram_seg

View File

@@ -150,6 +150,14 @@ SECTIONS
*(.fini.literal)
*(.fini)
*(.gnu.version)
/** CPU will try to prefetch up to 16 bytes of
* of instructions. This means that any configuration (e.g. MMU, PMS) must allow
* safe access to up to 16 bytes after the last real instruction, add
* dummy bytes to ensure this
*/
. += 16;
_text_end = ABSOLUTE(.);
_etext = .;
} > iram_seg

View File

@@ -28,6 +28,14 @@ extern "C" {
*/
void bootloader_flash_update_id(void);
/**
* @brief Update the flash size in g_rom_flashchip (global esp_rom_spiflash_chip_t structure).
*
* @param size The size to store, in bytes.
* @return None
*/
void bootloader_flash_update_size(uint32_t size);
/**
* @brief Set the flash CS setup and hold time.
*

View File

@@ -42,6 +42,9 @@ extern "C" {
#define PART_FLAG_ENCRYPTED (1<<0)
/* The md5sum value is found this many bytes after the ESP_PARTITION_MAGIC_MD5 offset */
#define ESP_PARTITION_MD5_OFFSET 16
/* Pre-partition table fixed flash offsets */
#define ESP_BOOTLOADER_DIGEST_OFFSET 0x0
#define ESP_BOOTLOADER_OFFSET 0x1000 /* Offset of bootloader image. Has matching value in bootloader KConfig.projbuild file. */

View File

@@ -169,6 +169,14 @@ esp_err_t esp_image_verify_bootloader(uint32_t *length);
*/
esp_err_t esp_image_verify_bootloader_data(esp_image_metadata_t *data);
/**
* @brief Get the flash size of the image
*
* @param app_flash_size The value configured in the image header
* @return Actual size, in bytes.
*/
int esp_image_get_flash_size(esp_image_flash_size_t app_flash_size);
typedef struct {
uint32_t drom_addr;

View File

@@ -99,9 +99,10 @@ __attribute__((noreturn)) void bootloader_reset(void);
esp_err_t bootloader_sha256_hex_to_str(char *out_str, const uint8_t *in_array_hex, size_t len);
/**
* @brief Debug log contents of a buffer as hexadecimal
* @brief Debug log contents of a buffer as hexadecimal.
*
* @note Only works if component log level is DEBUG or higher.
* @note - Only works if component log level is DEBUG or higher.
* - It will print at most 128 bytes from @c buffer.
*
* @param buffer Buffer to log
* @param length Length of buffer in bytes. Maximum length 128 bytes.

View File

@@ -34,6 +34,7 @@
#include "soc/gpio_periph.h"
#include "soc/rtc.h"
#include "soc/efuse_reg.h"
#include "soc/soc_memory_layout.h"
#include "esp_image_format.h"
#include "bootloader_sha.h"
#include "sys/param.h"
@@ -295,7 +296,18 @@ RESET_REASON bootloader_common_get_reset_reason(int cpu_no)
#if defined( CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP ) || defined( CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC )
rtc_retain_mem_t *const rtc_retain_mem = (rtc_retain_mem_t *)(SOC_RTC_DRAM_HIGH - sizeof(rtc_retain_mem_t));
#define RTC_RETAIN_MEM_ADDR (SOC_RTC_DRAM_HIGH - sizeof(rtc_retain_mem_t))
rtc_retain_mem_t *const rtc_retain_mem = (rtc_retain_mem_t *)RTC_RETAIN_MEM_ADDR;
#if !IS_BOOTLOADER_BUILD
/* The app needs to be told this memory is reserved, important if configured to use RTC memory as heap.
Note that keeping this macro here only works when other symbols in this file are referenced by the app, as
this feature is otherwise 100% part of the bootloader. However this seems to happen in all apps.
*/
SOC_RESERVE_MEMORY_REGION(RTC_RETAIN_MEM_ADDR, RTC_RETAIN_MEM_ADDR + sizeof(rtc_retain_mem_t), rtc_retain_mem);
#endif
static bool check_rtc_retain_mem(void)
{

View File

@@ -15,10 +15,10 @@
#include "sdkconfig.h"
#include "bootloader_clock.h"
#include "bootloader_common.h"
#include "soc/efuse_reg.h"
uint8_t bootloader_common_get_chip_revision(void)
{
// should return the same value as esp_efuse_get_chip_ver()
/* No other revisions for ESP32-S2 */
return 0;
return REG_GET_FIELD(EFUSE_RD_MAC_SPI_SYS_3_REG, EFUSE_WAFER_VERSION);
}

View File

@@ -33,6 +33,11 @@ void bootloader_flash_update_id(void)
g_rom_flashchip.device_id = bootloader_read_flash_id();
}
void bootloader_flash_update_size(uint32_t size)
{
g_rom_flashchip.chip_size = size;
}
void IRAM_ATTR bootloader_flash_cs_timing_config(void)
{
SET_PERI_REG_MASK(SPI_USER_REG(0), SPI_CS_HOLD_M | SPI_CS_SETUP_M);
@@ -173,9 +178,9 @@ int bootloader_flash_get_wp_pin(void)
uint8_t chip_ver;
uint32_t pkg_ver = REG_GET_FIELD(EFUSE_BLK0_RDATA3_REG, EFUSE_RD_CHIP_VER_PKG);
switch(pkg_ver) {
case EFUSE_RD_CHIP_VER_PKG_ESP32U4WDH:
case EFUSE_RD_CHIP_VER_PKG_ESP32D2WDQ5:
return ESP32_D2WD_WP_GPIO;
case EFUSE_RD_CHIP_VER_PKG_ESP32PICOD2:
case EFUSE_RD_CHIP_VER_PKG_ESP32PICOD4:
/* Same package IDs are used for ESP32-PICO-V3 and ESP32-PICO-D4, silicon version differentiates */
chip_ver = bootloader_common_get_chip_revision();

View File

@@ -39,6 +39,11 @@ void bootloader_flash_update_id()
g_rom_flashchip.device_id = bootloader_read_flash_id();
}
void bootloader_flash_update_size(uint32_t size)
{
g_rom_flashchip.chip_size = size;
}
void IRAM_ATTR bootloader_flash_cs_timing_config()
{
SET_PERI_REG_MASK(SPI_MEM_USER_REG(0), SPI_MEM_CS_HOLD_M | SPI_MEM_CS_SETUP_M);

View File

@@ -66,6 +66,7 @@
#include "bootloader_utility.h"
#include "bootloader_sha.h"
#include "esp_efuse.h"
#include "esp_fault.h"
static const char *TAG = "boot";
@@ -257,9 +258,16 @@ static esp_err_t write_otadata(esp_ota_select_entry_t *otadata, uint32_t offset,
static bool check_anti_rollback(const esp_partition_pos_t *partition)
{
#ifdef CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK
esp_app_desc_t app_desc;
esp_app_desc_t app_desc = {};
esp_err_t err = bootloader_common_get_partition_description(partition, &app_desc);
return err == ESP_OK && esp_efuse_check_secure_version(app_desc.secure_version) == true;
if (err != ESP_OK) {
ESP_LOGE(TAG, "Failed to get partition description %d", err);
return false;
}
bool sec_ver = esp_efuse_check_secure_version(app_desc.secure_version);
/* Anti FI check */
ESP_FAULT_ASSERT(sec_ver == esp_efuse_check_secure_version(app_desc.secure_version));
return sec_ver;
#else
return true;
#endif
@@ -272,6 +280,8 @@ static void update_anti_rollback(const esp_partition_pos_t *partition)
esp_err_t err = bootloader_common_get_partition_description(partition, &app_desc);
if (err == ESP_OK) {
esp_efuse_update_secure_version(app_desc.secure_version);
} else {
ESP_LOGE(TAG, "Failed to get partition description %d", err);
}
}
@@ -800,22 +810,19 @@ esp_err_t bootloader_sha256_hex_to_str(char *out_str, const uint8_t *in_array_he
void bootloader_debug_buffer(const void *buffer, size_t length, const char *label)
{
#if BOOT_LOG_LEVEL >= LOG_LEVEL_DEBUG
assert(length <= 128); // Avoid unbounded VLA size
#if CONFIG_BOOTLOADER_LOG_LEVEL >= 4
const uint8_t *bytes = (const uint8_t *)buffer;
char hexbuf[length * 2 + 1];
hexbuf[length * 2] = 0;
for (int i = 0; i < length; i++) {
for (int shift = 0; shift < 2; shift++) {
uint8_t nibble = (bytes[i] >> (shift ? 0 : 4)) & 0x0F;
if (nibble < 10) {
hexbuf[i * 2 + shift] = '0' + nibble;
} else {
hexbuf[i * 2 + shift] = 'a' + nibble - 10;
}
}
}
const size_t output_len = MIN(length, 128);
char hexbuf[128 * 2 + 1];
bootloader_sha256_hex_to_str(hexbuf, bytes, output_len);
hexbuf[output_len * 2] = '\0';
ESP_LOGD(TAG, "%s: %s", label, hexbuf);
#else
(void) buffer;
(void) length;
(void) label;
#endif
}

View File

@@ -252,9 +252,7 @@ static esp_err_t encrypt_bootloader(void)
ESP_LOGD(TAG, "bootloader is plaintext. Encrypting...");
#if CONFIG_SECURE_BOOT_V2_ENABLED
// Account for the signature sector after the bootloader
image_length = (image_length + FLASH_SECTOR_SIZE - 1) & ~(FLASH_SECTOR_SIZE - 1);
image_length += FLASH_SECTOR_SIZE;
/* The image length obtained from esp_image_verify_bootloader includes the sector boundary padding and the signature block lengths */
if (ESP_BOOTLOADER_OFFSET + image_length > ESP_PARTITION_TABLE_OFFSET) {
ESP_LOGE(TAG, "Bootloader is too large to fit Secure Boot V2 signature sector and partition table (configured offset 0x%x)", ESP_PARTITION_TABLE_OFFSET);
return ESP_ERR_INVALID_STATE;

View File

@@ -319,16 +319,26 @@ esp_err_t esp_secure_boot_v2_permanently_enable(const esp_image_metadata_t *imag
uint32_t dis_reg = REG_READ(EFUSE_BLK0_RDATA0_REG);
bool efuse_key_read_protected = dis_reg & EFUSE_RD_DIS_BLK2;
bool efuse_key_write_protected = dis_reg & EFUSE_WR_DIS_BLK2;
uint32_t efuse_blk2_r0, efuse_blk2_r1, efuse_blk2_r2, efuse_blk2_r3, efuse_blk2_r4, efuse_blk2_r5, efuse_blk2_r6, efuse_blk2_r7;
efuse_blk2_r0 = REG_READ(EFUSE_BLK2_RDATA0_REG);
efuse_blk2_r1 = REG_READ(EFUSE_BLK2_RDATA1_REG);
efuse_blk2_r2 = REG_READ(EFUSE_BLK2_RDATA2_REG);
efuse_blk2_r3 = REG_READ(EFUSE_BLK2_RDATA3_REG);
efuse_blk2_r4 = REG_READ(EFUSE_BLK2_RDATA4_REG);
efuse_blk2_r5 = REG_READ(EFUSE_BLK2_RDATA5_REG);
efuse_blk2_r6 = REG_READ(EFUSE_BLK2_RDATA6_REG);
efuse_blk2_r7 = REG_READ(EFUSE_BLK2_RDATA7_REG);
if (efuse_key_read_protected == true) {
ESP_LOGE(TAG, "Secure Boot v2 digest(BLK2) read protected, aborting....");
return ESP_FAIL;
}
if (efuse_key_write_protected == false
&& efuse_key_read_protected == false
&& REG_READ(EFUSE_BLK2_RDATA0_REG) == 0
&& REG_READ(EFUSE_BLK2_RDATA1_REG) == 0
&& REG_READ(EFUSE_BLK2_RDATA2_REG) == 0
&& REG_READ(EFUSE_BLK2_RDATA3_REG) == 0
&& REG_READ(EFUSE_BLK2_RDATA4_REG) == 0
&& REG_READ(EFUSE_BLK2_RDATA5_REG) == 0
&& REG_READ(EFUSE_BLK2_RDATA6_REG) == 0
&& REG_READ(EFUSE_BLK2_RDATA7_REG) == 0) {
&& efuse_blk2_r0 == 0 && efuse_blk2_r1 == 0
&& efuse_blk2_r2 == 0 && efuse_blk2_r3 == 0
&& efuse_blk2_r4 == 0 && efuse_blk2_r5 == 0
&& efuse_blk2_r6 == 0 && efuse_blk2_r7 == 0) {
/* Verifies the signature block appended to the image matches with the signature block of the app to be loaded */
ret = secure_boot_v2_digest_generate(bootloader_data.start_addr, bootloader_data.image_len - SIG_BLOCK_PADDING, boot_pub_key_digest);
if (ret != ESP_OK) {
@@ -343,14 +353,26 @@ esp_err_t esp_secure_boot_v2_permanently_enable(const esp_image_metadata_t *imag
ESP_LOGD(TAG, "EFUSE_BLKx_WDATA%d_REG = 0x%08x", i, boot_public_key_digest_ptr[i]);
}
ESP_LOGI(TAG, "Write protecting public key digest...");
new_wdata0 |= EFUSE_WR_DIS_BLK2;
efuse_key_write_protected = true;
efuse_key_read_protected = false;
} else {
uint32_t efuse_blk2_digest[8];
efuse_blk2_digest[0] = efuse_blk2_r0;
efuse_blk2_digest[1] = efuse_blk2_r1;
efuse_blk2_digest[2] = efuse_blk2_r2;
efuse_blk2_digest[3] = efuse_blk2_r3;
efuse_blk2_digest[4] = efuse_blk2_r4;
efuse_blk2_digest[5] = efuse_blk2_r5;
efuse_blk2_digest[6] = efuse_blk2_r6;
efuse_blk2_digest[7] = efuse_blk2_r7;
memcpy(boot_pub_key_digest, efuse_blk2_digest, DIGEST_LEN);
ESP_LOGW(TAG, "Using pre-loaded secure boot v2 public key digest in EFUSE block 2");
}
if (efuse_key_write_protected == false) {
ESP_LOGI(TAG, "Write protecting public key digest...");
new_wdata0 |= EFUSE_WR_DIS_BLK2; // delay burning until second half of this function
efuse_key_write_protected = true;
}
uint8_t app_pub_key_digest[DIGEST_LEN];
ret = secure_boot_v2_digest_generate(image_data->start_addr, image_data->image_len - SIG_BLOCK_PADDING, app_pub_key_digest);
if (ret != ESP_OK) {

View File

@@ -211,6 +211,12 @@ static esp_err_t initialise_flash_encryption(void)
esp_efuse_write_field_bit(ESP_EFUSE_DIS_BOOT_REMAP);
esp_efuse_write_field_bit(ESP_EFUSE_DIS_LEGACY_SPI_BOOT);
#if defined(CONFIG_SECURE_BOOT_V2_ENABLED) && !defined(CONFIG_SECURE_BOOT_V2_ALLOW_EFUSE_RD_DIS)
// This bit is set when enabling Secure Boot V2, but we can't enable it until this later point in the first boot
// otherwise the Flash Encryption key cannot be read protected
esp_efuse_write_field_bit(ESP_EFUSE_WR_DIS_RD_DIS);
#endif
esp_err_t err = esp_efuse_batch_write_commit();
return err;
@@ -286,9 +292,7 @@ static esp_err_t encrypt_bootloader(void)
ESP_LOGD(TAG, "bootloader is plaintext. Encrypting...");
#if CONFIG_SECURE_BOOT_V2_ENABLED
// Account for the signature sector after the bootloader
image_length = (image_length + FLASH_SECTOR_SIZE - 1) & ~(FLASH_SECTOR_SIZE - 1);
image_length += FLASH_SECTOR_SIZE;
/* The image length obtained from esp_image_verify_bootloader includes the sector boundary padding and the signature block lengths */
if (ESP_BOOTLOADER_OFFSET + image_length > ESP_PARTITION_TABLE_OFFSET) {
ESP_LOGE(TAG, "Bootloader is too large to fit Secure Boot V2 signature sector and partition table (configured offset 0x%x)", ESP_PARTITION_TABLE_OFFSET);
return ESP_ERR_INVALID_SIZE;

View File

@@ -287,11 +287,23 @@ esp_err_t esp_secure_boot_v2_permanently_enable(const esp_image_metadata_t *imag
esp_efuse_write_field_bit(ESP_EFUSE_DIS_BOOT_REMAP);
esp_efuse_write_field_bit(ESP_EFUSE_DIS_LEGACY_SPI_BOOT);
esp_err_t err = ESP_FAIL;
#ifdef CONFIG_SECURE_ENABLE_SECURE_ROM_DL_MODE
ESP_LOGI(TAG, "Enabling Security download mode...");
esp_efuse_write_field_bit(ESP_EFUSE_ENABLE_SECURITY_DOWNLOAD);
err = esp_efuse_enable_rom_secure_download_mode();
if (err != ESP_OK) {
ESP_LOGE(TAG, "Could not enable Security download mode...");
return err;
}
#elif CONFIG_SECURE_DISABLE_ROM_DL_MODE
ESP_LOGI(TAG, "Disable ROM Download mode...");
err = esp_efuse_disable_rom_download_mode();
if (err != ESP_OK) {
ESP_LOGE(TAG, "Could not disable ROM Download mode...");
return err;
}
#else
ESP_LOGW(TAG, "Not enabling Security download mode - SECURITY COMPROMISED");
ESP_LOGW(TAG, "UART ROM Download mode kept enabled - SECURITY COMPROMISED");
#endif
#ifndef CONFIG_SECURE_BOOT_ALLOW_JTAG
@@ -308,6 +320,21 @@ esp_err_t esp_secure_boot_v2_permanently_enable(const esp_image_metadata_t *imag
esp_efuse_write_field_bit(ESP_EFUSE_SECURE_BOOT_EN);
#ifndef CONFIG_SECURE_BOOT_V2_ALLOW_EFUSE_RD_DIS
bool rd_dis_now = true;
#ifdef CONFIG_SECURE_FLASH_ENC_ENABLED
/* If flash encryption is not enabled yet then don't read-disable efuses yet, do it later in the boot
when Flash Encryption is being enabled */
rd_dis_now = esp_flash_encryption_enabled();
#endif
if (rd_dis_now) {
ESP_LOGI(TAG, "Prevent read disabling of additional efuses...");
esp_efuse_write_field_bit(ESP_EFUSE_WR_DIS_RD_DIS);
}
#else
ESP_LOGW(TAG, "Allowing read disabling of additional efuses - SECURITY COMPROMISED");
#endif
err = esp_efuse_batch_write_commit();
if (err != ESP_OK) {
ESP_LOGI(TAG, "Error programming security eFuses.");

View File

@@ -229,6 +229,7 @@ static esp_err_t image_load(esp_image_load_mode_t mode, const esp_partition_pos_
if (true) {
#endif // end checking for JTAG
err = verify_secure_boot_signature(sha_handle, data, image_digest, verified_digest);
sha_handle = NULL; // verify_secure_boot_signature finishes sha_handle
}
#else // SECURE_BOOT_CHECK_SIGNATURE
// No secure boot, but SHA-256 can be appended for basic corruption detection
@@ -850,3 +851,21 @@ static esp_err_t verify_simple_hash(bootloader_sha256_handle_t sha_handle, esp_i
bootloader_munmap(hash);
return ESP_OK;
}
int esp_image_get_flash_size(esp_image_flash_size_t app_flash_size)
{
switch (app_flash_size) {
case ESP_IMAGE_FLASH_SIZE_1MB:
return 1 * 1024 * 1024;
case ESP_IMAGE_FLASH_SIZE_2MB:
return 2 * 1024 * 1024;
case ESP_IMAGE_FLASH_SIZE_4MB:
return 4 * 1024 * 1024;
case ESP_IMAGE_FLASH_SIZE_8MB:
return 8 * 1024 * 1024;
case ESP_IMAGE_FLASH_SIZE_16MB:
return 16 * 1024 * 1024;
default:
return 0;
}
}

View File

@@ -52,7 +52,7 @@ esp_err_t esp_partition_table_verify(const esp_partition_info_t *partition_table
MD5Update(&context, (unsigned char *) partition_table, num_parts * sizeof(esp_partition_info_t));
MD5Final(digest, &context);
unsigned char *md5sum = ((unsigned char *) part) + 16; // skip the 2B magic number and the 14B fillup bytes
unsigned char *md5sum = ((unsigned char *) part) + ESP_PARTITION_MD5_OFFSET;
if (memcmp(md5sum, digest, sizeof(digest)) != 0) {
if (log_errors) {

View File

@@ -104,6 +104,7 @@ const static qio_info_t chip_data[] = {
{ "WinBond", 0xEF, 0x4000, 0xFF00, read_status_16b_rdsr_rdsr2, write_status_16b_wrsr, 9 },
{ "GD", 0xC8, 0x6000, 0xFF00, read_status_16b_rdsr_rdsr2, write_status_16b_wrsr, 9 },
{ "XM25QU64A", 0x20, 0x3817, 0xFFFF, read_status_8b_xmc25qu64a, write_status_8b_xmc25qu64a, 6 },
{ "TH", 0xcd, 0x6000, 0xFF00, read_status_16b_rdsr_rdsr2, write_status_16b_wrsr, 9 },
/* Final entry is default entry, if no other IDs have matched.

View File

@@ -312,8 +312,8 @@ esp_err_t esp_secure_boot_verify_rsa_signature_block(const ets_secure_boot_signa
goto exit;
}
ret = mbedtls_rsa_rsassa_pss_verify( &pk, mbedtls_ctr_drbg_random, &ctr_drbg, MBEDTLS_RSA_PUBLIC, MBEDTLS_MD_SHA256, DIGEST_LEN,
sig_block->block[i].image_digest, sig_be);
ret = mbedtls_rsa_rsassa_pss_verify( &pk, mbedtls_ctr_drbg_random, &ctr_drbg, MBEDTLS_RSA_PUBLIC, MBEDTLS_MD_SHA256, DIGEST_LEN,
image_digest, sig_be);
if (ret != 0) {
ESP_LOGE(TAG, "Failed mbedtls_rsa_rsassa_pss_verify, err: %d", ret);
} else {

View File

@@ -96,6 +96,7 @@ if(CONFIG_BT_ENABLED)
"host/bluedroid/bta/dm/bta_dm_main.c"
"host/bluedroid/bta/dm/bta_dm_pm.c"
"host/bluedroid/bta/dm/bta_dm_sco.c"
"host/bluedroid/bta/dm/bta_dm_qos.c"
"host/bluedroid/bta/gatt/bta_gatt_common.c"
"host/bluedroid/bta/gatt/bta_gattc_act.c"
"host/bluedroid/bta/gatt/bta_gattc_api.c"
@@ -340,6 +341,7 @@ if(CONFIG_BT_ENABLED)
"esp_ble_mesh/api/models/esp_ble_mesh_lighting_model_api.c"
"esp_ble_mesh/api/models/esp_ble_mesh_sensor_model_api.c"
"esp_ble_mesh/api/models/esp_ble_mesh_time_scene_model_api.c"
"esp_ble_mesh/btc/btc_ble_mesh_ble.c"
"esp_ble_mesh/btc/btc_ble_mesh_config_model.c"
"esp_ble_mesh/btc/btc_ble_mesh_generic_model.c"
"esp_ble_mesh/btc/btc_ble_mesh_health_model.c"
@@ -389,7 +391,9 @@ if(CONFIG_BT_ENABLED)
"esp_ble_mesh/mesh_core/provisioner_prov.c"
"esp_ble_mesh/mesh_core/proxy_client.c"
"esp_ble_mesh/mesh_core/proxy_server.c"
"esp_ble_mesh/mesh_core/settings_uid.c"
"esp_ble_mesh/mesh_core/settings.c"
"esp_ble_mesh/mesh_core/scan.c"
"esp_ble_mesh/mesh_core/test.c"
"esp_ble_mesh/mesh_core/transport.c"
"esp_ble_mesh/mesh_models/common/device_property.c"
@@ -569,6 +573,6 @@ idf_component_register(SRCS "${srcs}"
if(CONFIG_BT_ENABLED)
target_compile_options(${COMPONENT_LIB} PRIVATE -Wno-implicit-fallthrough -Wno-unused-const-variable)
target_link_libraries(${COMPONENT_LIB} INTERFACE "-L${CMAKE_CURRENT_LIST_DIR}/controller/lib")
target_link_libraries(${COMPONENT_LIB} INTERFACE "-L${CMAKE_CURRENT_LIST_DIR}/controller/lib/esp32")
target_link_libraries(${COMPONENT_LIB} PUBLIC btdm_app)
endif()

View File

@@ -428,21 +428,6 @@ menu "Bluetooth"
If you set `BTDM_BLE_ADV_REPORT_DISCARD_THRSHOLD` to a small value or printf every adv lost event, it
may cause adv packets lost more.
menuconfig BTDM_COEX_BT_OPTIONS
bool "Coexistence Bluetooth Side Options"
depends on ESP32_WIFI_SW_COEXIST_ENABLE
default n
help
Options of Bluetooth Side of WiFi and bluetooth coexistence.
config BTDM_COEX_BLE_ADV_HIGH_PRIORITY
bool "Improve BLE ADV priority for WiFi & BLE coexistence"
depends on BTDM_COEX_BT_OPTIONS
default n
help
Improve BLE ADV coexistence priority to make it better performance.
For example, BLE mesh need to enable this option to improve BLE adv performance.
endmenu
choice BT_HOST

View File

@@ -57,6 +57,7 @@
#endif
#if CONFIG_BLE_MESH
#include "btc_ble_mesh_ble.h"
#include "btc_ble_mesh_prov.h"
#include "btc_ble_mesh_health_model.h"
#include "btc_ble_mesh_config_model.h"
@@ -93,9 +94,9 @@ static const btc_func_t profile_tab[BTC_PID_NUM] = {
#endif ///BLE_INCLUDED == TRUE
[BTC_PID_BLE_HID] = {NULL, NULL},
[BTC_PID_SPPLIKE] = {NULL, NULL},
#if (GATTS_INCLUDED == TRUE)
#if (BLUFI_INCLUDED == TRUE)
[BTC_PID_BLUFI] = {btc_blufi_call_handler, btc_blufi_cb_handler },
#endif ///GATTS_INCLUDED == TRUE
#endif ///BLUFI_INCLUDED == TRUE
[BTC_PID_DM_SEC] = {NULL, btc_dm_sec_cb_handler },
#endif
[BTC_PID_ALARM] = {btc_alarm_handler, NULL },
@@ -124,18 +125,43 @@ static const btc_func_t profile_tab[BTC_PID_NUM] = {
#if CONFIG_BLE_MESH
[BTC_PID_PROV] = {btc_ble_mesh_prov_call_handler, btc_ble_mesh_prov_cb_handler },
[BTC_PID_MODEL] = {btc_ble_mesh_model_call_handler, btc_ble_mesh_model_cb_handler },
#if CONFIG_BLE_MESH_HEALTH_CLI
[BTC_PID_HEALTH_CLIENT] = {btc_ble_mesh_health_client_call_handler, btc_ble_mesh_health_client_cb_handler },
#endif /* CONFIG_BLE_MESH_HEALTH_CLI */
#if CONFIG_BLE_MESH_HEALTH_SRV
[BTC_PID_HEALTH_SERVER] = {btc_ble_mesh_health_server_call_handler, btc_ble_mesh_health_server_cb_handler },
#endif /* CONFIG_BLE_MESH_HEALTH_SRV */
#if CONFIG_BLE_MESH_CFG_CLI
[BTC_PID_CONFIG_CLIENT] = {btc_ble_mesh_config_client_call_handler, btc_ble_mesh_config_client_cb_handler },
#endif /* CONFIG_BLE_MESH_CFG_CLI */
[BTC_PID_CONFIG_SERVER] = {NULL, btc_ble_mesh_config_server_cb_handler },
#if CONFIG_BLE_MESH_GENERIC_CLIENT
[BTC_PID_GENERIC_CLIENT] = {btc_ble_mesh_generic_client_call_handler, btc_ble_mesh_generic_client_cb_handler },
#endif /* CONFIG_BLE_MESH_GENERIC_CLIENT */
#if CONFIG_BLE_MESH_LIGHTING_CLIENT
[BTC_PID_LIGHTING_CLIENT] = {btc_ble_mesh_lighting_client_call_handler, btc_ble_mesh_lighting_client_cb_handler },
#endif /* CONFIG_BLE_MESH_LIGHTING_CLIENT */
#if CONFIG_BLE_MESH_SENSOR_CLI
[BTC_PID_SENSOR_CLIENT] = {btc_ble_mesh_sensor_client_call_handler, btc_ble_mesh_sensor_client_cb_handler },
#endif /* CONFIG_BLE_MESH_SENSOR_CLI */
#if CONFIG_BLE_MESH_TIME_SCENE_CLIENT
[BTC_PID_TIME_SCENE_CLIENT] = {btc_ble_mesh_time_scene_client_call_handler, btc_ble_mesh_time_scene_client_cb_handler},
#endif /* CONFIG_BLE_MESH_TIME_SCENE_CLIENT */
#if CONFIG_BLE_MESH_GENERIC_SERVER
[BTC_PID_GENERIC_SERVER] = {NULL, btc_ble_mesh_generic_server_cb_handler },
#endif /* CONFIG_BLE_MESH_GENERIC_SERVER */
#if CONFIG_BLE_MESH_LIGHTING_SERVER
[BTC_PID_LIGHTING_SERVER] = {NULL, btc_ble_mesh_lighting_server_cb_handler },
#endif /* CONFIG_BLE_MESH_LIGHTING_SERVER */
#if CONFIG_BLE_MESH_SENSOR_SERVER
[BTC_PID_SENSOR_SERVER] = {NULL, btc_ble_mesh_sensor_server_cb_handler },
#endif /* CONFIG_BLE_MESH_SENSOR_SERVER */
#if CONFIG_BLE_MESH_TIME_SCENE_SERVER
[BTC_PID_TIME_SCENE_SERVER] = {NULL, btc_ble_mesh_time_scene_server_cb_handler},
#endif /* CONFIG_BLE_MESH_TIME_SCENE_SERVER */
#if CONFIG_BLE_MESH_BLE_COEX_SUPPORT
[BTC_PID_BLE_MESH_BLE_COEX] = {btc_ble_mesh_ble_call_handler, btc_ble_mesh_ble_cb_handler },
#endif /* CONFIG_BLE_MESH_BLE_COEX_SUPPORT */
#endif /* #if CONFIG_BLE_MESH */
};
@@ -281,12 +307,13 @@ static void btc_deinit_mem(void) {
osi_free(btc_creat_tab_env_ptr);
btc_creat_tab_env_ptr = NULL;
}
#if (BLUFI_INCLUDED == TRUE)
if (blufi_env_ptr) {
osi_free(blufi_env_ptr);
blufi_env_ptr = NULL;
}
#endif
#endif
#if BTC_HF_CLIENT_INCLUDED == TRUE && HFP_DYNAMIC_MEMORY == TRUE
if (hf_client_local_param_ptr) {
@@ -335,12 +362,13 @@ static bt_status_t btc_init_mem(void) {
goto error_exit;
}
memset((void *)btc_creat_tab_env_ptr, 0, sizeof(esp_btc_creat_tab_t));
#if (BLUFI_INCLUDED == TRUE)
if ((blufi_env_ptr = (tBLUFI_ENV *)osi_malloc(sizeof(tBLUFI_ENV))) == NULL) {
goto error_exit;
}
memset((void *)blufi_env_ptr, 0, sizeof(tBLUFI_ENV));
#endif
#endif
#if BTC_HF_CLIENT_INCLUDED == TRUE && HFP_DYNAMIC_MEMORY == TRUE
if ((hf_client_local_param_ptr = (hf_client_local_param_t *)osi_malloc(sizeof(hf_client_local_param_t))) == NULL) {

View File

@@ -53,7 +53,9 @@ typedef enum {
BTC_PID_GAP_BLE,
BTC_PID_BLE_HID,
BTC_PID_SPPLIKE,
#if (BLUFI_INCLUDED == TRUE)
BTC_PID_BLUFI,
#endif ///BLUFI_INCLUDED == TRUE
BTC_PID_DM_SEC,
BTC_PID_ALARM,
#if (CLASSIC_BT_INCLUDED == TRUE)
@@ -85,6 +87,7 @@ typedef enum {
BTC_PID_LIGHTING_SERVER,
BTC_PID_SENSOR_SERVER,
BTC_PID_TIME_SCENE_SERVER,
BTC_PID_BLE_MESH_BLE_COEX,
#endif /* CONFIG_BLE_MESH */
BTC_PID_NUM,
} btc_pid_t; //btc profile id

View File

@@ -143,7 +143,7 @@ static void alarm_cb_handler(struct alarm_t *alarm)
OSI_TRACE_WARNING("%s, invalid state %d\n", __func__, alarm_state);
return;
}
btc_msg_t msg;
btc_msg_t msg = {0};
btc_alarm_args_t arg;
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_ALARM;
@@ -173,7 +173,7 @@ osi_alarm_t *osi_alarm_new(const char *alarm_name, osi_alarm_callback_t callback
goto end;
}
esp_timer_create_args_t tca;
esp_timer_create_args_t tca = {0};
tca.callback = (esp_timer_cb_t)alarm_cb_handler;
tca.arg = timer_id;
tca.dispatch_method = ESP_TIMER_TASK;
@@ -318,3 +318,16 @@ uint32_t osi_time_get_os_boottime_ms(void)
{
return (uint32_t)(esp_timer_get_time() / 1000);
}
bool osi_alarm_is_active(osi_alarm_t *alarm)
{
assert(alarm != NULL);
assert(alarm_mutex != NULL);
bool is_active = false;
osi_mutex_lock(&alarm_mutex, OSI_MUTEX_MAX_TIMEOUT);
is_active = alarm->deadline_us > 0;
osi_mutex_unlock(&alarm_mutex);
return is_active;
}

View File

@@ -550,10 +550,12 @@ static void config_parse(nvs_handle_t fp, config_t *config)
const size_t keyname_bufsz = sizeof(CONFIG_KEY) + 5 + 1; // including log10(sizeof(i))
char *keyname = osi_calloc(keyname_bufsz);
int buf_size = get_config_size_from_flash(fp);
char *buf = osi_calloc(buf_size);
char *buf = NULL;
if(buf_size == 0) { //First use nvs
goto error;
}
buf = osi_calloc(buf_size);
if (!line || !section || !buf || !keyname) {
err_code |= 0x01;
goto error;

View File

@@ -20,6 +20,7 @@
#define _ALARM_H_
#include <stdint.h>
#include <stdbool.h>
#include "esp_timer.h"
typedef struct alarm_t osi_alarm_t;
@@ -77,4 +78,8 @@ period_ms_t osi_alarm_get_remaining_ms(const osi_alarm_t *alarm);
uint32_t osi_time_get_os_boottime_ms(void);
// This function returns whether the alarm which encapsulated
// a one-shot timer is active or not
bool osi_alarm_is_active(osi_alarm_t *alarm);
#endif /*_ALARM_H_*/

View File

@@ -110,7 +110,6 @@ static void osi_thread_stop(osi_thread_t *thread)
osi_thread_t *osi_thread_create(const char *name, size_t stack_size, int priority, osi_thread_core_t core, uint8_t work_queue_num)
{
int ret;
osi_thread_t *thread;
struct osi_thread_start_arg start_arg = {0};
if (stack_size <= 0 ||
@@ -119,7 +118,7 @@ osi_thread_t *osi_thread_create(const char *name, size_t stack_size, int priorit
return NULL;
}
thread = (osi_thread_t *)osi_malloc(sizeof(osi_thread_t));
osi_thread_t *thread = (osi_thread_t *)osi_malloc(sizeof(osi_thread_t));
if (thread == NULL) {
goto _err;
}

View File

@@ -9,11 +9,11 @@ COMPONENT_ADD_INCLUDEDIRS := include
LIBS := btdm_app
COMPONENT_ADD_LDFLAGS := -lbt -L $(COMPONENT_PATH)/controller/lib \
COMPONENT_ADD_LDFLAGS := -lbt -L $(COMPONENT_PATH)/controller/lib/esp32 \
$(addprefix -l,$(LIBS))
# re-link program if BT binary libs change
COMPONENT_ADD_LINKER_DEPS := $(patsubst %,$(COMPONENT_PATH)/controller/lib/lib%.a,$(LIBS))
COMPONENT_ADD_LINKER_DEPS := $(patsubst %,$(COMPONENT_PATH)/controller/lib/esp32/lib%.a,$(LIBS))
COMPONENT_SUBMODULES += controller/lib

View File

@@ -90,7 +90,7 @@ do{\
} while(0)
#define OSI_FUNCS_TIME_BLOCKING 0xffffffff
#define OSI_VERSION 0x00010002
#define OSI_VERSION 0x00010003
#define OSI_MAGIC_VALUE 0xFADEBEAD
/* SPIRAM Configuration */
@@ -174,6 +174,18 @@ struct osi_funcs_t {
int (* _coex_register_bt_cb)(coex_func_cb_t cb);
uint32_t (* _coex_bb_reset_lock)(void);
void (* _coex_bb_reset_unlock)(uint32_t restore);
int (* _coex_schm_register_btdm_callback)(void *callback);
void (* _coex_schm_status_bit_clear)(uint32_t type, uint32_t status);
void (* _coex_schm_status_bit_set)(uint32_t type, uint32_t status);
uint32_t (* _coex_schm_interval_get)(void);
uint8_t (* _coex_schm_curr_period_get)(void);
void *(* _coex_schm_curr_phase_get)(void);
int (* _coex_wifi_channel_get)(uint8_t *primary, uint8_t *secondary);
int (* _coex_register_wifi_channel_change_callback)(void *cb);
xt_handler (*_set_isr_l3)(int n, xt_handler f, void *arg);
void (*_interrupt_l3_disable)(void);
void (*_interrupt_l3_restore)(void);
void *(* _customer_queue_create)(uint32_t queue_len, uint32_t item_size);
uint32_t _magic;
};
@@ -217,12 +229,21 @@ extern int bredr_txpwr_get(int *min_power_level, int *max_power_level);
extern void bredr_sco_datapath_set(uint8_t data_path);
extern void btdm_controller_scan_duplicate_list_clear(void);
/* Coexistence */
extern int coex_bt_request_wrapper(uint32_t event, uint32_t latency, uint32_t duration);
extern int coex_bt_release_wrapper(uint32_t event);
extern int coex_register_bt_cb_wrapper(coex_func_cb_t cb);
extern uint32_t coex_bb_reset_lock_wrapper(void);
extern void coex_bb_reset_unlock_wrapper(uint32_t restore);
extern void coex_ble_adv_priority_high_set(bool high);
extern int coex_bt_request(uint32_t event, uint32_t latency, uint32_t duration);
extern int coex_bt_release(uint32_t event);
extern int coex_register_bt_cb(coex_func_cb_t cb);
extern uint32_t coex_bb_reset_lock(void);
extern void coex_bb_reset_unlock(uint32_t restore);
extern int coex_schm_register_btdm_callback(void *callback);
extern void coex_schm_status_bit_clear(uint32_t type, uint32_t status);
extern void coex_schm_status_bit_set(uint32_t type, uint32_t status);
extern uint32_t coex_schm_interval_get(void);
extern uint8_t coex_schm_curr_period_get(void);
extern void * coex_schm_curr_phase_get(void);
extern int coex_wifi_channel_get(uint8_t *primary, uint8_t *secondary);
extern int coex_register_wifi_channel_change_callback(void *cb);
/* Shutdown */
extern void esp_bt_controller_shutdown(void);
extern char _bss_start_btdm;
extern char _bss_end_btdm;
@@ -253,6 +274,7 @@ static bool btdm_queue_generic_deregister(btdm_queue_item_t *queue);
#endif /* CONFIG_SPIRAM_USE_MALLOC */
static void IRAM_ATTR interrupt_disable(void);
static void IRAM_ATTR interrupt_restore(void);
static void IRAM_ATTR task_yield(void);
static void IRAM_ATTR task_yield_from_isr(void);
static void *semphr_create_wrapper(uint32_t max, uint32_t init);
static void semphr_delete_wrapper(void *semphr);
@@ -287,6 +309,19 @@ static void btdm_sleep_enter_phase2_wrapper(void);
static void btdm_sleep_exit_phase3_wrapper(void);
static bool coex_bt_wakeup_request(void);
static void coex_bt_wakeup_request_end(void);
static int coex_bt_request_wrapper(uint32_t event, uint32_t latency, uint32_t duration);
static int coex_bt_release_wrapper(uint32_t event);
static int coex_register_bt_cb_wrapper(coex_func_cb_t cb);
static uint32_t coex_bb_reset_lock_wrapper(void);
static void coex_bb_reset_unlock_wrapper(uint32_t restore);
static int coex_schm_register_btdm_callback_wrapper(void *callback);
static void coex_schm_status_bit_clear_wrapper(uint32_t type, uint32_t status);
static void coex_schm_status_bit_set_wrapper(uint32_t type, uint32_t status);
static uint32_t coex_schm_interval_get_wrapper(void);
static uint8_t coex_schm_curr_period_get_wrapper(void);
static void * coex_schm_curr_phase_get_wrapper(void);
static int coex_wifi_channel_get_wrapper(uint8_t *primary, uint8_t *secondary);
static int coex_register_wifi_channel_change_callback_wrapper(void *cb);
/* Local variable definition
***************************************************************************
@@ -298,7 +333,7 @@ static const struct osi_funcs_t osi_funcs_ro = {
._ints_on = xt_ints_on,
._interrupt_disable = interrupt_disable,
._interrupt_restore = interrupt_restore,
._task_yield = vPortYield,
._task_yield = task_yield,
._task_yield_from_isr = task_yield_from_isr,
._semphr_create = semphr_create_wrapper,
._semphr_delete = semphr_delete_wrapper,
@@ -341,6 +376,18 @@ static const struct osi_funcs_t osi_funcs_ro = {
._coex_register_bt_cb = coex_register_bt_cb_wrapper,
._coex_bb_reset_lock = coex_bb_reset_lock_wrapper,
._coex_bb_reset_unlock = coex_bb_reset_unlock_wrapper,
._coex_schm_register_btdm_callback = coex_schm_register_btdm_callback_wrapper,
._coex_schm_status_bit_clear = coex_schm_status_bit_clear_wrapper,
._coex_schm_status_bit_set = coex_schm_status_bit_set_wrapper,
._coex_schm_interval_get = coex_schm_interval_get_wrapper,
._coex_schm_curr_period_get = coex_schm_curr_period_get_wrapper,
._coex_schm_curr_phase_get = coex_schm_curr_phase_get_wrapper,
._coex_wifi_channel_get = coex_wifi_channel_get_wrapper,
._coex_register_wifi_channel_change_callback = coex_register_wifi_channel_change_callback_wrapper,
._set_isr_l3 = xt_set_interrupt_handler,
._interrupt_l3_disable = interrupt_disable,
._interrupt_l3_restore = interrupt_restore,
._customer_queue_create = NULL,
._magic = OSI_MAGIC_VALUE,
};
@@ -475,6 +522,11 @@ static void IRAM_ATTR interrupt_restore(void)
}
}
static void IRAM_ATTR task_yield(void)
{
vPortYield();
}
static void IRAM_ATTR task_yield_from_isr(void)
{
portYIELD_FROM_ISR();
@@ -850,8 +902,7 @@ static void btdm_sleep_enter_phase1_wrapper(uint32_t lpcycles)
static void btdm_sleep_enter_phase2_wrapper(void)
{
if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_ORIG) {
esp_modem_sleep_enter(MODEM_BLE_MODULE);
esp_modem_sleep_enter(MODEM_CLASSIC_BT_MODULE);
esp_phy_disable();
#ifdef CONFIG_PM_ENABLE
if (s_pm_lock_acquired) {
esp_pm_lock_release(s_pm_lock);
@@ -859,7 +910,7 @@ static void btdm_sleep_enter_phase2_wrapper(void)
}
#endif
} else if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_EVED) {
esp_modem_sleep_enter(MODEM_BLE_MODULE);
esp_phy_disable();
// pause bluetooth baseband
periph_module_disable(PERIPH_BT_BASEBAND_MODULE);
}
@@ -875,8 +926,7 @@ static void btdm_sleep_exit_phase3_wrapper(void)
#endif
if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_ORIG) {
esp_modem_sleep_exit(MODEM_BLE_MODULE);
esp_modem_sleep_exit(MODEM_CLASSIC_BT_MODULE);
esp_phy_enable();
btdm_check_and_init_bb();
#ifdef CONFIG_PM_ENABLE
esp_timer_stop(s_btdm_slp_tmr);
@@ -884,7 +934,7 @@ static void btdm_sleep_exit_phase3_wrapper(void)
} else if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_EVED) {
// resume bluetooth baseband
periph_module_enable(PERIPH_BT_BASEBAND_MODULE);
esp_modem_sleep_exit(MODEM_BLE_MODULE);
esp_phy_enable();
}
}
@@ -996,6 +1046,117 @@ static void coex_bt_wakeup_request_end(void)
return;
}
static int IRAM_ATTR coex_bt_request_wrapper(uint32_t event, uint32_t latency, uint32_t duration)
{
#if CONFIG_SW_COEXIST_ENABLE
return coex_bt_request(event, latency, duration);
#else
return 0;
#endif
}
static int IRAM_ATTR coex_bt_release_wrapper(uint32_t event)
{
#if CONFIG_SW_COEXIST_ENABLE
return coex_bt_release(event);
#else
return 0;
#endif
}
static int coex_register_bt_cb_wrapper(coex_func_cb_t cb)
{
#if CONFIG_SW_COEXIST_ENABLE
return coex_register_bt_cb(cb);
#else
return 0;
#endif
}
static uint32_t IRAM_ATTR coex_bb_reset_lock_wrapper(void)
{
#if CONFIG_SW_COEXIST_ENABLE
return coex_bb_reset_lock();
#else
return 0;
#endif
}
static void IRAM_ATTR coex_bb_reset_unlock_wrapper(uint32_t restore)
{
#if CONFIG_SW_COEXIST_ENABLE
coex_bb_reset_unlock(restore);
#endif
}
static int coex_schm_register_btdm_callback_wrapper(void *callback)
{
#if CONFIG_SW_COEXIST_ENABLE
return coex_schm_register_btdm_callback(callback);
#else
return 0;
#endif
}
static void coex_schm_status_bit_clear_wrapper(uint32_t type, uint32_t status)
{
#if CONFIG_SW_COEXIST_ENABLE
coex_schm_status_bit_clear(type, status);
#endif
}
static void coex_schm_status_bit_set_wrapper(uint32_t type, uint32_t status)
{
#if CONFIG_SW_COEXIST_ENABLE
coex_schm_status_bit_set(type, status);
#endif
}
static uint32_t coex_schm_interval_get_wrapper(void)
{
#if CONFIG_SW_COEXIST_ENABLE
return coex_schm_interval_get();
#else
return 0;
#endif
}
static uint8_t coex_schm_curr_period_get_wrapper(void)
{
#if CONFIG_SW_COEXIST_ENABLE
return coex_schm_curr_period_get();
#else
return 1;
#endif
}
static void * coex_schm_curr_phase_get_wrapper(void)
{
#if CONFIG_SW_COEXIST_ENABLE
return coex_schm_curr_phase_get();
#else
return NULL;
#endif
}
static int coex_wifi_channel_get_wrapper(uint8_t *primary, uint8_t *secondary)
{
#if CONFIG_SW_COEXIST_ENABLE
return coex_wifi_channel_get(primary, secondary);
#else
return -1;
#endif
}
static int coex_register_wifi_channel_change_callback_wrapper(void *cb)
{
#if CONFIG_SW_COEXIST_ENABLE
return coex_register_wifi_channel_change_callback(cb);
#else
return -1;
#endif
}
bool esp_vhci_host_check_send_available(void)
{
return API_vhci_host_check_send_available();
@@ -1180,7 +1341,7 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
if (btdm_dram_available_region[0].mode == ESP_BT_MODE_IDLE) {
return ESP_ERR_INVALID_STATE;
}
osi_funcs_p = (struct osi_funcs_t *)malloc_internal_wrapper(sizeof(struct osi_funcs_t));
if (osi_funcs_p == NULL) {
return ESP_ERR_NO_MEM;
@@ -1313,12 +1474,6 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
goto error;
}
#ifdef CONFIG_BTDM_COEX_BLE_ADV_HIGH_PRIORITY
coex_ble_adv_priority_high_set(true);
#else
coex_ble_adv_priority_high_set(false);
#endif
btdm_controller_status = ESP_BT_CONTROLLER_STATUS_INITED;
return ESP_OK;
@@ -1362,9 +1517,18 @@ esp_err_t esp_bt_controller_deinit(void)
esp_pm_lock_delete(s_light_sleep_pm_lock);
s_light_sleep_pm_lock = NULL;
}
esp_timer_stop(s_btdm_slp_tmr);
esp_timer_delete(s_btdm_slp_tmr);
s_btdm_slp_tmr = NULL;
if (s_pm_lock != NULL) {
esp_pm_lock_delete(s_pm_lock);
s_pm_lock = NULL;
}
if (s_btdm_slp_tmr != NULL) {
esp_timer_stop(s_btdm_slp_tmr);
esp_timer_delete(s_btdm_slp_tmr);
s_btdm_slp_tmr = NULL;
}
s_pm_lock_acquired = false;
#endif
semphr_delete_wrapper(s_wakeup_req_sem);
@@ -1387,6 +1551,19 @@ esp_err_t esp_bt_controller_deinit(void)
return ESP_OK;
}
static void bt_shutdown(void)
{
if (btdm_controller_status != ESP_BT_CONTROLLER_STATUS_ENABLED) {
return;
}
esp_bt_controller_shutdown();
esp_phy_disable();
return;
}
esp_err_t esp_bt_controller_enable(esp_bt_mode_t mode)
{
int ret;
@@ -1407,21 +1584,11 @@ esp_err_t esp_bt_controller_enable(esp_bt_mode_t mode)
esp_pm_lock_acquire(s_pm_lock);
#endif
esp_phy_load_cal_and_init(PHY_BT_MODULE);
esp_phy_enable();
if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_NONE) {
//Just register to sleep module, make the modem sleep modules check BT sleep status when sleep enter.
//Thus, it will prevent WIFI from disabling RF when BT is not in sleep but is using RF.
esp_modem_sleep_register(MODEM_BLE_MODULE);
esp_modem_sleep_register(MODEM_CLASSIC_BT_MODULE);
esp_modem_sleep_exit(MODEM_BLE_MODULE);
esp_modem_sleep_exit(MODEM_CLASSIC_BT_MODULE);
} else if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_ORIG) {
esp_modem_sleep_register(MODEM_BLE_MODULE);
esp_modem_sleep_register(MODEM_CLASSIC_BT_MODULE);
} else if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_EVED) {
esp_modem_sleep_register(MODEM_BLE_MODULE);
}
#if CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE
coex_init();
#endif
if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_ORIG) {
btdm_controller_enable_sleep(true);
@@ -1431,15 +1598,11 @@ esp_err_t esp_bt_controller_enable(esp_bt_mode_t mode)
btdm_check_and_init_bb();
ret = btdm_controller_enable(mode);
if (ret) {
if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_NONE
|| btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_ORIG) {
esp_modem_sleep_deregister(MODEM_BLE_MODULE);
esp_modem_sleep_deregister(MODEM_CLASSIC_BT_MODULE);
} else if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_EVED) {
esp_modem_sleep_deregister(MODEM_BLE_MODULE);
}
esp_phy_rf_deinit(PHY_BT_MODULE);
if (ret != 0) {
#if CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE
coex_deinit();
#endif
esp_phy_disable();
#ifdef CONFIG_PM_ENABLE
if (!s_btdm_allow_light_sleep) {
esp_pm_lock_release(s_light_sleep_pm_lock);
@@ -1450,6 +1613,10 @@ esp_err_t esp_bt_controller_enable(esp_bt_mode_t mode)
}
btdm_controller_status = ESP_BT_CONTROLLER_STATUS_ENABLED;
ret = esp_register_shutdown_handler(bt_shutdown);
if (ret != ESP_OK) {
ESP_LOGW(BTDM_LOG_TAG, "Register shutdown handler failed, ret = 0x%x", ret);
}
return ESP_OK;
}
@@ -1471,15 +1638,13 @@ esp_err_t esp_bt_controller_disable(void)
btdm_controller_disable();
if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_NONE
|| btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_ORIG) {
esp_modem_sleep_deregister(MODEM_BLE_MODULE);
esp_modem_sleep_deregister(MODEM_CLASSIC_BT_MODULE);
} else if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_EVED) {
esp_modem_sleep_deregister(MODEM_BLE_MODULE);
}
esp_phy_rf_deinit(PHY_BT_MODULE);
#if CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE
coex_deinit();
#endif
esp_phy_disable();
btdm_controller_status = ESP_BT_CONTROLLER_STATUS_INITED;
esp_unregister_shutdown_handler(bt_shutdown);
#ifdef CONFIG_PM_ENABLE
if (!s_btdm_allow_light_sleep) {
@@ -1496,7 +1661,6 @@ esp_bt_controller_status_t esp_bt_controller_get_status(void)
return btdm_controller_status;
}
/* extra functions */
esp_err_t esp_ble_tx_power_set(esp_ble_power_type_t power_type, esp_power_level_t power_level)
{
@@ -1545,13 +1709,8 @@ esp_err_t esp_bt_sleep_enable (void)
if (btdm_controller_status != ESP_BT_CONTROLLER_STATUS_ENABLED) {
return ESP_ERR_INVALID_STATE;
}
if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_ORIG) {
esp_modem_sleep_register(MODEM_BLE_MODULE);
esp_modem_sleep_register(MODEM_CLASSIC_BT_MODULE);
btdm_controller_enable_sleep (true);
status = ESP_OK;
} else if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_EVED) {
esp_modem_sleep_register(MODEM_BLE_MODULE);
if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_ORIG ||
btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_EVED) {
btdm_controller_enable_sleep (true);
status = ESP_OK;
} else {
@@ -1567,13 +1726,8 @@ esp_err_t esp_bt_sleep_disable (void)
if (btdm_controller_status != ESP_BT_CONTROLLER_STATUS_ENABLED) {
return ESP_ERR_INVALID_STATE;
}
if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_ORIG) {
esp_modem_sleep_deregister(MODEM_BLE_MODULE);
esp_modem_sleep_deregister(MODEM_CLASSIC_BT_MODULE);
btdm_controller_enable_sleep (false);
status = ESP_OK;
} else if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_EVED) {
esp_modem_sleep_deregister(MODEM_BLE_MODULE);
if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_ORIG ||
btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_EVED) {
btdm_controller_enable_sleep (false);
status = ESP_OK;
} else {

View File

@@ -95,6 +95,42 @@ if BLE_MESH
endchoice # BLE_MESH_FREERTOS_STATIC_ALLOC_MODE
config BLE_MESH_DEINIT
bool "Support de-initialize BLE Mesh stack"
default y
help
If enabled, users can use the function esp_ble_mesh_deinit() to de-initialize
the whole BLE Mesh stack.
menu "BLE Mesh and BLE coexistence support"
config BLE_MESH_SUPPORT_BLE_ADV
bool "Support sending normal BLE advertising packets"
default n
help
When selected, users can send normal BLE advertising packets
with specific API.
if BLE_MESH_SUPPORT_BLE_ADV
config BLE_MESH_BLE_ADV_BUF_COUNT
int "Number of advertising buffers for BLE advertising packets"
default 3
range 1 255
help
Number of advertising buffers for BLE packets available.
endif # BLE_MESH_SUPPORT_BLE_ADV
config BLE_MESH_SUPPORT_BLE_SCAN
bool "Support scanning normal BLE advertising packets"
default n
help
When selected, users can register a callback and receive normal BLE
advertising packets in the application layer.
endmenu # BLE Mesh and BLE coexistence support
config BLE_MESH_FAST_PROV
bool "Enable BLE Mesh Fast Provisioning"
select BLE_MESH_NODE
@@ -188,6 +224,28 @@ if BLE_MESH
This option specifies how many application keys the Provisioner can have.
Indeed, this value decides the number of the application keys which can be added by a Provisioner.
config BLE_MESH_PROVISIONER_RECV_HB
bool "Support receiving Heartbeat messages"
default n
help
When this option is enabled, Provisioner can call specific functions to enable
or disable receiving Heartbeat messages and notify them to the application layer.
if BLE_MESH_PROVISIONER_RECV_HB
config BLE_MESH_PROVISIONER_RECV_HB_FILTER_SIZE
int "Maximum number of filter entries for receiving Heartbeat messages"
default 3
range 1 1000
help
This option specifies how many heartbeat filter entries Provisioner supports.
The heartbeat filter (acceptlist or rejectlist) entries are used to store a
list of SRC and DST which can be used to decide if a heartbeat message will
be processed and notified to the application layer by Provisioner.
Note: The filter is an empty rejectlist by default.
endif # BLE_MESH_PROVISIONER_RECV_HB
endif # BLE_MESH_PROVISIONER
# Virtual option enabled whenever Generic Provisioning layer is needed
@@ -207,6 +265,19 @@ if BLE_MESH
advertising bearer. This option should be enabled if PB-ADV is
going to be used during provisioning procedure.
config BLE_MESH_UNPROVISIONED_BEACON_INTERVAL
int "Interval between two consecutive Unprovisioned Device Beacon"
depends on BLE_MESH_NODE && BLE_MESH_PB_ADV
default 5
default 3 if BLE_MESH_FAST_PROV
range 1 100
help
This option specifies the interval of sending two consecutive unprovisioned
device beacon, users can use this option to change the frequency of sending
unprovisioned device beacon. For example, if the value is 5, it means the
unprovisioned device beacon will send every 5 seconds. When the option of
BLE_MESH_FAST_PROV is selected, the value is better to be 3 seconds, or less.
config BLE_MESH_PB_GATT
bool "Provisioning support using GATT (PB-GATT)"
select BLE_MESH_PROXY
@@ -291,28 +362,6 @@ if BLE_MESH
if BLE_MESH_SETTINGS
config BLE_MESH_SPECIFIC_PARTITION
bool "Use a specific NVS partition for BLE Mesh"
default n
help
When selected, the mesh stack will use a specified NVS partition instead of
default NVS partition. Note that the specified partition must be registered
with NVS using nvs_flash_init_partition() API, and the partition must exists
in the csv file.
When Provisioner needs to store a large amount of nodes' information in the
flash (e.g. more than 20), this option is recommended to be enabled.
if BLE_MESH_SPECIFIC_PARTITION
config BLE_MESH_PARTITION_NAME
string "Name of the NVS partition for BLE Mesh"
default "ble_mesh"
help
This value defines the name of the specified NVS partition used by the
mesh stack.
endif # BLE_MESH_SPECIFIC_PARTITION
config BLE_MESH_STORE_TIMEOUT
int "Delay (in seconds) before storing anything persistently"
range 0 1000000
@@ -327,7 +376,7 @@ if BLE_MESH
config BLE_MESH_SEQ_STORE_RATE
int "How often the sequence number gets updated in storage"
range 0 1000000
default 6
default 0
help
This value defines how often the local sequence number gets updated in
persistent storage (i.e. flash). e.g. a value of 100 means that the
@@ -342,7 +391,7 @@ if BLE_MESH
config BLE_MESH_RPL_STORE_TIMEOUT
int "Minimum frequency that the RPL gets updated in storage"
range 0 1000000
default 5
default 0
help
This value defines in seconds how soon the RPL (Replay Protection List)
gets written to persistent storage after a change occurs. If the node
@@ -378,6 +427,50 @@ if BLE_MESH
in advance before recovering node information and make sure the node
information recovering could work as expected.
config BLE_MESH_SPECIFIC_PARTITION
bool "Use a specific NVS partition for BLE Mesh"
default n
help
When selected, the mesh stack will use a specified NVS partition instead of
default NVS partition. Note that the specified partition must be registered
with NVS using nvs_flash_init_partition() API, and the partition must exists
in the csv file.
When Provisioner needs to store a large amount of nodes' information in the
flash (e.g. more than 20), this option is recommended to be enabled.
config BLE_MESH_PARTITION_NAME
string "Name of the NVS partition for BLE Mesh"
depends on BLE_MESH_SPECIFIC_PARTITION
default "ble_mesh"
help
This value defines the name of the specified NVS partition used by the
mesh stack.
config BLE_MESH_USE_MULTIPLE_NAMESPACE
bool "Support using multiple NVS namespaces by Provisioner"
depends on BLE_MESH_PROVISIONER
default n
help
When selected, Provisioner can use different NVS namespaces to store
different instances of mesh information.
For example, if in the first room, Provisioner uses NetKey A, AppKey
A and provisions three devices, these information will be treated as
mesh information instance A. When the Provisioner moves to the second
room, it uses NetKey B, AppKey B and provisions two devices, then the
information will be treated as mesh information instance B.
Here instance A and instance B will be stored in different namespaces.
With this option enabled, Provisioner needs to use specific functions
to open the corresponding NVS namespace, restore the mesh information,
release the mesh information or erase the mesh information.
config BLE_MESH_MAX_NVS_NAMESPACE
int "Maximum number of NVS namespaces"
depends on BLE_MESH_USE_MULTIPLE_NAMESPACE
default 2
range 1 255
help
This option specifies the maximum NVS namespaces supported by Provisioner.
endif # if BLE_MESH_SETTINGS
config BLE_MESH_SUBNET_COUNT
@@ -459,24 +552,6 @@ if BLE_MESH
SDU size is 60 bytes, which leaves 56 bytes for application layer data
using a 4-byte MIC, or 52 bytes using an 8-byte MIC.
config BLE_MESH_SUPPORT_BLE_ADV
bool "Support sending normal BLE advertising packets"
default n
help
When selected, users can send normal BLE advertising packets
with specific API.
if BLE_MESH_SUPPORT_BLE_ADV
config BLE_MESH_BLE_ADV_BUF_COUNT
int "Number of advertising buffers for BLE advertising packets"
default 3
range 1 255
help
Number of advertising buffers for BLE packets available.
endif # BLE_MESH_SUPPORT_BLE_ADV
config BLE_MESH_IVU_DIVIDER
int "Divider for IV Update state refresh timer"
default 4
@@ -871,104 +946,138 @@ if BLE_MESH
uses 0 as the timeout value when sending acknowledged messages, then
the default value will be used which is four seconds.
menu "Support for BLE Mesh Client Models"
menu "Support for BLE Mesh Foundation models"
config BLE_MESH_CFG_CLI
bool "Configuration Client Model"
bool "Configuration Client model"
help
Enable support for Configuration client model.
Enable support for Configuration Client model.
config BLE_MESH_HEALTH_CLI
bool "Health Client Model"
bool "Health Client model"
help
Enable support for Health client model.
Enable support for Health Client model.
config BLE_MESH_HEALTH_SRV
bool "Health Server model"
default y
help
Enable support for Health Server model.
endmenu #Support for BLE Mesh Foundation models
menu "Support for BLE Mesh Client/Server models"
config BLE_MESH_GENERIC_ONOFF_CLI
bool "Generic OnOff Client Model"
bool "Generic OnOff Client model"
help
Enable support for Generic OnOff client model.
Enable support for Generic OnOff Client model.
config BLE_MESH_GENERIC_LEVEL_CLI
bool "Generic Level Client Model"
bool "Generic Level Client model"
help
Enable support for Generic Level client model.
Enable support for Generic Level Client model.
config BLE_MESH_GENERIC_DEF_TRANS_TIME_CLI
bool "Generic Default Transition Time Client Model"
bool "Generic Default Transition Time Client model"
help
Enable support for Generic Default Transition Time client model.
Enable support for Generic Default Transition Time Client model.
config BLE_MESH_GENERIC_POWER_ONOFF_CLI
bool "Generic Power OnOff Client Model"
bool "Generic Power OnOff Client model"
help
Enable support for Generic Power OnOff client model.
Enable support for Generic Power OnOff Client model.
config BLE_MESH_GENERIC_POWER_LEVEL_CLI
bool "Generic Power Level Client Model"
bool "Generic Power Level Client model"
help
Enable support for Generic Power Level client model.
Enable support for Generic Power Level Client model.
config BLE_MESH_GENERIC_BATTERY_CLI
bool "Generic Battery Client Model"
bool "Generic Battery Client model"
help
Enable support for Generic Battery client model.
Enable support for Generic Battery Client model.
config BLE_MESH_GENERIC_LOCATION_CLI
bool "Generic Location Client Model"
bool "Generic Location Client model"
help
Enable support for Generic Location client model.
Enable support for Generic Location Client model.
config BLE_MESH_GENERIC_PROPERTY_CLI
bool "Generic Property Client Model"
bool "Generic Property Client model"
help
Enable support for Generic Property client model.
Enable support for Generic Property Client model.
config BLE_MESH_SENSOR_CLI
bool "Sensor Client Model"
bool "Sensor Client model"
help
Enable support for Sensor client model.
Enable support for Sensor Client model.
config BLE_MESH_TIME_CLI
bool "Time Client Model"
bool "Time Client model"
help
Enable support for Time client model.
Enable support for Time Client model.
config BLE_MESH_SCENE_CLI
bool "Scene Client Model"
bool "Scene Client model"
help
Enable support for Scene client model.
Enable support for Scene Client model.
config BLE_MESH_SCHEDULER_CLI
bool "Scheduler Client Model"
bool "Scheduler Client model"
help
Enable support for Scheduler client model.
Enable support for Scheduler Client model.
config BLE_MESH_LIGHT_LIGHTNESS_CLI
bool "Light Lightness Client Model"
bool "Light Lightness Client model"
help
Enable support for Light Lightness client model.
Enable support for Light Lightness Client model.
config BLE_MESH_LIGHT_CTL_CLI
bool "Light CTL Client Model"
bool "Light CTL Client model"
help
Enable support for Light CTL client model.
Enable support for Light CTL Client model.
config BLE_MESH_LIGHT_HSL_CLI
bool "Light HSL Client Model"
bool "Light HSL Client model"
help
Enable support for Light HSL client model.
Enable support for Light HSL Client model.
config BLE_MESH_LIGHT_XYL_CLI
bool "Light XYL Client Model"
bool "Light XYL Client model"
help
Enable support for Light XYL client model.
Enable support for Light XYL Client model.
config BLE_MESH_LIGHT_LC_CLI
bool "Light LC Client Model"
bool "Light LC Client model"
help
Enable support for Light LC client model.
Enable support for Light LC Client model.
endmenu
config BLE_MESH_GENERIC_SERVER
bool "Generic server models"
default y
help
Enable support for Generic server models.
config BLE_MESH_SENSOR_SERVER
bool "Sensor server models"
default y
help
Enable support for Sensor server models.
config BLE_MESH_TIME_SCENE_SERVER
bool "Time and Scenes server models"
default y
help
Enable support for Time and Scenes server models.
config BLE_MESH_LIGHTING_SERVER
bool "Lighting server models"
default y
help
Enable support for Lighting server models.
endmenu #Support for BLE Mesh Client/Server models
config BLE_MESH_IV_UPDATE_TEST
bool "Test the IV Update Procedure"

View File

@@ -1,4 +1,4 @@
// Copyright 2017-2019 Espressif Systems (Shanghai) PTE LTD
// Copyright 2017-2020 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.
@@ -15,19 +15,25 @@
#include <stdint.h>
#include <string.h>
#include "btc/btc_manage.h"
#include "esp_err.h"
#include "btc_ble_mesh_prov.h"
#include "esp_ble_mesh_defs.h"
#include "btc_ble_mesh_ble.h"
#include "esp_ble_mesh_ble_api.h"
#if CONFIG_BLE_MESH_BLE_COEX_SUPPORT
esp_err_t esp_ble_mesh_register_ble_callback(esp_ble_mesh_ble_cb_t callback)
{
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
return (btc_profile_cb_set(BTC_PID_BLE_MESH_BLE_COEX, callback) == 0 ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_BLE_COEX_SUPPORT */
#if CONFIG_BLE_MESH_SUPPORT_BLE_ADV
esp_err_t esp_ble_mesh_start_ble_advertising(const esp_ble_mesh_ble_adv_param_t *param,
const esp_ble_mesh_ble_adv_data_t *data)
{
btc_ble_mesh_prov_args_t arg = {0};
btc_ble_mesh_ble_args_t arg = {0};
btc_msg_t msg = {0};
if (param == NULL) {
@@ -37,21 +43,21 @@ esp_err_t esp_ble_mesh_start_ble_advertising(const esp_ble_mesh_ble_adv_param_t
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_PROV;
msg.act = BTC_BLE_MESH_ACT_START_BLE_ADVERTISING;
msg.pid = BTC_PID_BLE_MESH_BLE_COEX;
msg.act = BTC_BLE_MESH_ACT_START_BLE_ADV;
memcpy(&arg.start_ble_advertising.param, param, sizeof(esp_ble_mesh_ble_adv_param_t));
memcpy(&arg.start_ble_adv.param, param, sizeof(esp_ble_mesh_ble_adv_param_t));
if (data) {
memcpy(&arg.start_ble_advertising.data, data, sizeof(esp_ble_mesh_ble_adv_data_t));
memcpy(&arg.start_ble_adv.data, data, sizeof(esp_ble_mesh_ble_adv_data_t));
}
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_ble_args_t), NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_mesh_stop_ble_advertising(uint8_t index)
{
btc_ble_mesh_prov_args_t arg = {0};
btc_ble_mesh_ble_args_t arg = {0};
btc_msg_t msg = {0};
if (index >= CONFIG_BLE_MESH_BLE_ADV_BUF_COUNT) {
@@ -61,13 +67,44 @@ esp_err_t esp_ble_mesh_stop_ble_advertising(uint8_t index)
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_PROV;
msg.act = BTC_BLE_MESH_ACT_STOP_BLE_ADVERTISING;
msg.pid = BTC_PID_BLE_MESH_BLE_COEX;
msg.act = BTC_BLE_MESH_ACT_STOP_BLE_ADV;
arg.stop_ble_advertising.index = index;
arg.stop_ble_adv.index = index;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_ble_args_t), NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_SUPPORT_BLE_ADV */
#if CONFIG_BLE_MESH_SUPPORT_BLE_SCAN
esp_err_t esp_ble_mesh_start_ble_scanning(esp_ble_mesh_ble_scan_param_t *param)
{
btc_ble_mesh_ble_args_t arg = {0};
btc_msg_t msg = {0};
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_BLE_MESH_BLE_COEX;
msg.act = BTC_BLE_MESH_ACT_START_BLE_SCAN;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_ble_args_t), NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_SUPPORT_BLE_ADV */
esp_err_t esp_ble_mesh_stop_ble_scanning(void)
{
btc_ble_mesh_ble_args_t arg = {0};
btc_msg_t msg = {0};
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_BLE_MESH_BLE_COEX;
msg.act = BTC_BLE_MESH_ACT_STOP_BLE_SCAN;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_ble_args_t), NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_SUPPORT_BLE_SCAN */

View File

@@ -69,6 +69,7 @@ esp_err_t esp_ble_mesh_init(esp_ble_mesh_prov_t *prov, esp_ble_mesh_comp_t *comp
return ESP_OK;
}
#if CONFIG_BLE_MESH_DEINIT
esp_err_t esp_ble_mesh_deinit(esp_ble_mesh_deinit_param_t *param)
{
btc_ble_mesh_prov_args_t arg = {0};
@@ -89,4 +90,4 @@ esp_err_t esp_ble_mesh_deinit(esp_ble_mesh_deinit_param_t *param)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_DEINIT */

View File

@@ -13,6 +13,7 @@
// limitations under the License.
#include <stdint.h>
#include <string.h>
#include "esp_err.h"
@@ -128,3 +129,87 @@ esp_err_t esp_ble_mesh_model_unsubscribe_group_addr(uint16_t element_addr, uint1
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#if CONFIG_BLE_MESH_NODE
const uint8_t *esp_ble_mesh_node_get_local_net_key(uint16_t net_idx)
{
return btc_ble_mesh_node_get_local_net_key(net_idx);
}
const uint8_t *esp_ble_mesh_node_get_local_app_key(uint16_t app_idx)
{
return btc_ble_mesh_node_get_local_app_key(app_idx);
}
esp_err_t esp_ble_mesh_node_add_local_net_key(const uint8_t net_key[16], uint16_t net_idx)
{
btc_ble_mesh_prov_args_t arg = {0};
btc_msg_t msg = {0};
if (net_key == NULL || net_idx > 0xFFF) {
return ESP_ERR_INVALID_ARG;
}
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_PROV;
msg.act = BTC_BLE_MESH_ACT_NODE_ADD_LOCAL_NET_KEY;
arg.node_add_local_net_key.net_idx = net_idx;
memcpy(arg.node_add_local_net_key.net_key, net_key, 16);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_mesh_node_add_local_app_key(const uint8_t app_key[16], uint16_t net_idx, uint16_t app_idx)
{
btc_ble_mesh_prov_args_t arg = {0};
btc_msg_t msg = {0};
if (app_key == NULL || net_idx > 0xFFF || app_idx > 0xFFF) {
return ESP_ERR_INVALID_ARG;
}
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_PROV;
msg.act = BTC_BLE_MESH_ACT_NODE_ADD_LOCAL_APP_KEY;
arg.node_add_local_app_key.net_idx = net_idx;
arg.node_add_local_app_key.app_idx = app_idx;
memcpy(arg.node_add_local_app_key.app_key, app_key, 16);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_mesh_node_bind_app_key_to_local_model(uint16_t element_addr, uint16_t company_id,
uint16_t model_id, uint16_t app_idx)
{
btc_ble_mesh_prov_args_t arg = {0};
btc_msg_t msg = {0};
if (!ESP_BLE_MESH_ADDR_IS_UNICAST(element_addr) || app_idx > 0xFFF) {
return ESP_ERR_INVALID_ARG;
}
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_PROV;
msg.act = BTC_BLE_MESH_ACT_NODE_BIND_APP_KEY_TO_MODEL;
arg.node_local_mod_app_bind.element_addr = element_addr;
arg.node_local_mod_app_bind.model_id = model_id;
arg.node_local_mod_app_bind.company_id = company_id;
arg.node_local_mod_app_bind.app_idx = app_idx;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_NODE */

View File

@@ -164,6 +164,7 @@ esp_err_t esp_ble_mesh_client_model_init(esp_ble_mesh_model_t *model)
return btc_ble_mesh_client_model_init(model);
}
#if CONFIG_BLE_MESH_DEINIT
esp_err_t esp_ble_mesh_client_model_deinit(esp_ble_mesh_model_t *model)
{
if (model == NULL) {
@@ -174,6 +175,7 @@ esp_err_t esp_ble_mesh_client_model_deinit(esp_ble_mesh_model_t *model)
return btc_ble_mesh_client_model_deinit(model);
}
#endif /* CONFIG_BLE_MESH_DEINIT */
esp_err_t esp_ble_mesh_server_model_send_msg(esp_ble_mesh_model_t *model,
esp_ble_mesh_msg_ctx_t *ctx,
@@ -220,6 +222,7 @@ esp_err_t esp_ble_mesh_model_publish(esp_ble_mesh_model_t *model, uint32_t opcod
length, data, 0, false, device_role);
}
#if CONFIG_BLE_MESH_SERVER_MODEL
esp_err_t esp_ble_mesh_server_model_update_state(esp_ble_mesh_model_t *model,
esp_ble_mesh_server_state_type_t type,
esp_ble_mesh_server_state_value_t *value)
@@ -244,6 +247,7 @@ esp_err_t esp_ble_mesh_server_model_update_state(esp_ble_mesh_model_t *model,
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_model_args_t), btc_ble_mesh_model_arg_deep_copy)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_SERVER_MODEL */
esp_err_t esp_ble_mesh_node_local_reset(void)
{
@@ -524,6 +528,246 @@ const uint8_t *esp_ble_mesh_provisioner_get_local_net_key(uint16_t net_idx)
{
return bt_mesh_provisioner_local_net_key_get(net_idx);
}
#if CONFIG_BLE_MESH_PROVISIONER_RECV_HB
esp_err_t esp_ble_mesh_provisioner_recv_heartbeat(bool enable)
{
btc_ble_mesh_prov_args_t arg = {0};
btc_msg_t msg = {0};
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_PROV;
msg.act = BTC_BLE_MESH_ACT_PROVISIONER_ENABLE_HEARTBEAT_RECV;
arg.enable_heartbeat_recv.enable = enable;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_mesh_provisioner_set_heartbeat_filter_type(uint8_t type)
{
btc_ble_mesh_prov_args_t arg = {0};
btc_msg_t msg = {0};
if (type > ESP_BLE_MESH_HEARTBEAT_FILTER_REJECTLIST) {
return ESP_ERR_INVALID_ARG;
}
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_PROV;
msg.act = BTC_BLE_MESH_ACT_PROVISIONER_SET_HEARTBEAT_FILTER_TYPE;
arg.set_heartbeat_filter_type.type = type;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_mesh_provisioner_set_heartbeat_filter_info(uint8_t op, esp_ble_mesh_heartbeat_filter_info_t *info)
{
btc_ble_mesh_prov_args_t arg = {0};
btc_msg_t msg = {0};
if (op > ESP_BLE_MESH_HEARTBEAT_FILTER_REMOVE || info == NULL) {
return ESP_ERR_INVALID_ARG;
}
if (!ESP_BLE_MESH_ADDR_IS_UNICAST(info->hb_src) &&
!ESP_BLE_MESH_ADDR_IS_UNICAST(info->hb_dst) &&
!ESP_BLE_MESH_ADDR_IS_GROUP(info->hb_dst)) {
return ESP_ERR_INVALID_ARG;
}
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_PROV;
msg.act = BTC_BLE_MESH_ACT_PROVISIONER_SET_HEARTBEAT_FILTER_INFO;
arg.set_heartbeat_filter_info.op = op;
arg.set_heartbeat_filter_info.hb_src = info->hb_src;
arg.set_heartbeat_filter_info.hb_dst = info->hb_dst;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_PROVISIONER_RECV_HB */
#if CONFIG_BLE_MESH_SETTINGS
esp_err_t esp_ble_mesh_provisioner_direct_erase_settings(void)
{
btc_msg_t msg = {0};
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_PROV;
msg.act = BTC_BLE_MESH_ACT_PROVISIONER_DIRECT_ERASE_SETTINGS;
return (btc_transfer_context(&msg, NULL, 0, NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_SETTINGS */
#if CONFIG_BLE_MESH_USE_MULTIPLE_NAMESPACE
esp_err_t esp_ble_mesh_provisioner_open_settings_with_index(uint8_t index)
{
btc_ble_mesh_prov_args_t arg = {0};
btc_msg_t msg = {0};
if (index >= CONFIG_BLE_MESH_MAX_NVS_NAMESPACE) {
return ESP_ERR_INVALID_ARG;
}
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_PROV;
msg.act = BTC_BLE_MESH_ACT_PROVISIONER_OPEN_SETTINGS_WITH_INDEX;
arg.open_settings_with_index.index = index;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_mesh_provisioner_open_settings_with_uid(const char *uid)
{
btc_ble_mesh_prov_args_t arg = {0};
btc_msg_t msg = {0};
if (!uid || strlen(uid) > ESP_BLE_MESH_SETTINGS_UID_SIZE) {
return ESP_ERR_INVALID_ARG;
}
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_PROV;
msg.act = BTC_BLE_MESH_ACT_PROVISIONER_OPEN_SETTINGS_WITH_UID;
strncpy(arg.open_settings_with_uid.uid, uid, ESP_BLE_MESH_SETTINGS_UID_SIZE);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_mesh_provisioner_close_settings_with_index(uint8_t index, bool erase)
{
btc_ble_mesh_prov_args_t arg = {0};
btc_msg_t msg = {0};
if (index >= CONFIG_BLE_MESH_MAX_NVS_NAMESPACE) {
return ESP_ERR_INVALID_ARG;
}
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_PROV;
msg.act = BTC_BLE_MESH_ACT_PROVISIONER_CLOSE_SETTINGS_WITH_INDEX;
arg.close_settings_with_index.index = index;
arg.close_settings_with_index.erase = erase;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_mesh_provisioner_close_settings_with_uid(const char *uid, bool erase)
{
btc_ble_mesh_prov_args_t arg = {0};
btc_msg_t msg = {0};
if (!uid || strlen(uid) > ESP_BLE_MESH_SETTINGS_UID_SIZE) {
return ESP_ERR_INVALID_ARG;
}
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_PROV;
msg.act = BTC_BLE_MESH_ACT_PROVISIONER_CLOSE_SETTINGS_WITH_UID;
strncpy(arg.close_settings_with_uid.uid, uid, ESP_BLE_MESH_SETTINGS_UID_SIZE);
arg.close_settings_with_uid.erase = erase;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_mesh_provisioner_delete_settings_with_index(uint8_t index)
{
btc_ble_mesh_prov_args_t arg = {0};
btc_msg_t msg = {0};
if (index >= CONFIG_BLE_MESH_MAX_NVS_NAMESPACE) {
return ESP_ERR_INVALID_ARG;
}
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_PROV;
msg.act = BTC_BLE_MESH_ACT_PROVISIONER_DELETE_SETTINGS_WITH_INDEX;
arg.delete_settings_with_index.index = index;
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_mesh_provisioner_delete_settings_with_uid(const char *uid)
{
btc_ble_mesh_prov_args_t arg = {0};
btc_msg_t msg = {0};
if (!uid || strlen(uid) > ESP_BLE_MESH_SETTINGS_UID_SIZE) {
return ESP_ERR_INVALID_ARG;
}
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
msg.sig = BTC_SIG_API_CALL;
msg.pid = BTC_PID_PROV;
msg.act = BTC_BLE_MESH_ACT_PROVISIONER_DELETE_SETTINGS_WITH_UID;
strncpy(arg.delete_settings_with_uid.uid, uid, ESP_BLE_MESH_SETTINGS_UID_SIZE);
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_prov_args_t), NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
const char *esp_ble_mesh_provisioner_get_settings_uid(uint8_t index)
{
if (index >= CONFIG_BLE_MESH_MAX_NVS_NAMESPACE) {
return NULL;
}
return btc_ble_mesh_provisioner_get_settings_uid(index);
}
uint8_t esp_ble_mesh_provisioner_get_settings_index(const char *uid)
{
if (!uid || strlen(uid) > ESP_BLE_MESH_SETTINGS_UID_SIZE) {
return ESP_BLE_MESH_INVALID_SETTINGS_IDX;
}
return btc_ble_mesh_provisioner_get_settings_index(uid);
}
uint8_t esp_ble_mesh_provisioner_get_free_settings_count(void)
{
return btc_ble_mesh_provisioner_get_free_settings_count();
}
#endif /* CONFIG_BLE_MESH_USE_MULTIPLE_NAMESPACE */
#endif /* CONFIG_BLE_MESH_PROVISIONER */
#if (CONFIG_BLE_MESH_FAST_PROV)

View File

@@ -1,4 +1,4 @@
// Copyright 2017-2019 Espressif Systems (Shanghai) PTE LTD
// Copyright 2017-2020 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.
@@ -21,6 +21,106 @@
extern "C" {
#endif
/** This enum value is the event of BLE operations */
typedef enum {
ESP_BLE_MESH_START_BLE_ADVERTISING_COMP_EVT, /*!< Start BLE advertising completion event */
ESP_BLE_MESH_STOP_BLE_ADVERTISING_COMP_EVT, /*!< Stop BLE advertising completion event */
ESP_BLE_MESH_START_BLE_SCANNING_COMP_EVT, /*!< Start BLE scanning completion event */
ESP_BLE_MESH_STOP_BLE_SCANNING_COMP_EVT, /*!< Stop BLE scanning completion event */
ESP_BLE_MESH_SCAN_BLE_ADVERTISING_PKT_EVT, /*!< Scanning BLE advertising packets event */
ESP_BLE_MESH_BLE_EVT_MAX,
} esp_ble_mesh_ble_cb_event_t;
/** BLE operation callback parameters */
typedef union {
/**
* @brief ESP_BLE_MESH_START_BLE_ADVERTISING_COMP_EVT
*/
struct {
int err_code; /*!< Indicate the result of starting BLE advertising */
uint8_t index; /*!< Index of the BLE advertising */
} start_ble_advertising_comp; /*!< Event parameters of ESP_BLE_MESH_START_BLE_ADVERTISING_COMP_EVT */
/**
* @brief ESP_BLE_MESH_STOP_BLE_ADVERTISING_COMP_EVT
*/
struct {
int err_code; /*!< Indicate the result of stopping BLE advertising */
uint8_t index; /*!< Index of the BLE advertising */
} stop_ble_advertising_comp; /*!< Event parameters of ESP_BLE_MESH_STOP_BLE_ADVERTISING_COMP_EVT */
/**
* @brief ESP_BLE_MESH_START_BLE_SCANNING_COMP_EVT
*/
struct {
int err_code; /*!< Indicate the result of starting BLE scanning */
} start_ble_scan_comp; /*!< Event parameters of ESP_BLE_MESH_START_BLE_SCANNING_COMP_EVT */
/**
* @brief ESP_BLE_MESH_STOP_BLE_SCANNING_COMP_EVT
*/
struct {
int err_code; /*!< Indicate the result of stopping BLE scanning */
} stop_ble_scan_comp; /*!< Event parameters of ESP_BLE_MESH_STOP_BLE_SCANNING_COMP_EVT */
/**
* @brief ESP_BLE_MESH_SCAN_BLE_ADVERTISING_PKT_EVT
*/
struct {
uint8_t addr[6]; /*!< Device address */
uint8_t addr_type; /*!< Device address type */
uint8_t adv_type; /*!< Advertising data type */
uint8_t *data; /*!< Advertising data */
uint16_t length; /*!< Advertising data length */
int8_t rssi; /*!< RSSI of the advertising packet */
} scan_ble_adv_pkt; /*!< Event parameters of ESP_BLE_MESH_SCAN_BLE_ADVERTISING_PKT_EVT */
} esp_ble_mesh_ble_cb_param_t;
/**
* @brief BLE scanning callback function type
*
* @param event: BLE scanning callback event type
* @param param: BLE scanning callback parameter
*/
typedef void (* esp_ble_mesh_ble_cb_t)(esp_ble_mesh_ble_cb_event_t event,
esp_ble_mesh_ble_cb_param_t *param);
/**
* @brief Register BLE scanning callback.
*
* @param[in] callback: Pointer to the BLE scaning callback function.
*
* @return ESP_OK on success or error code otherwise.
*
*/
esp_err_t esp_ble_mesh_register_ble_callback(esp_ble_mesh_ble_cb_t callback);
/** Count for sending BLE advertising packet infinitely */
#define ESP_BLE_MESH_BLE_ADV_INFINITE 0xFFFF
/*!< This enum value is the priority of BLE advertising packet */
typedef enum {
ESP_BLE_MESH_BLE_ADV_PRIO_LOW,
ESP_BLE_MESH_BLE_ADV_PRIO_HIGH,
} esp_ble_mesh_ble_adv_priority_t;
/** Context of BLE advertising parameters. */
typedef struct {
uint16_t interval; /*!< BLE advertising interval */
uint8_t adv_type; /*!< BLE advertising type */
uint8_t own_addr_type; /*!< Own address type */
uint8_t peer_addr_type; /*!< Peer address type */
uint8_t peer_addr[BD_ADDR_LEN]; /*!< Peer address */
uint16_t duration; /*!< Duration is milliseconds */
uint16_t period; /*!< Period in milliseconds */
uint16_t count; /*!< Number of advertising duration */
uint8_t priority:2; /*!< Priority of BLE advertising packet */
} esp_ble_mesh_ble_adv_param_t;
/** Context of BLE advertising data. */
typedef struct {
uint8_t adv_data_len; /*!< Advertising data length */
uint8_t adv_data[31]; /*!< Advertising data */
uint8_t scan_rsp_data_len; /*!< Scan response data length */
uint8_t scan_rsp_data[31]; /*!< Scan response data */
} esp_ble_mesh_ble_adv_data_t;
/**
* @brief This function is called to start BLE advertising with the corresponding data
* and parameters while BLE Mesh is working at the same time.
@@ -58,6 +158,31 @@ esp_err_t esp_ble_mesh_start_ble_advertising(const esp_ble_mesh_ble_adv_param_t
*/
esp_err_t esp_ble_mesh_stop_ble_advertising(uint8_t index);
/** Context of BLE scanning parameters. */
typedef struct {
uint32_t duration; /*!< Duration used to scan normal BLE advertising packets */
} esp_ble_mesh_ble_scan_param_t;
/**
* @brief This function is called to start scanning normal BLE advertising packets
* and notifying the packets to the application layer.
*
* @param[in] param: Pointer to the BLE scanning parameters
*
* @return ESP_OK on success or error code otherwise.
*
*/
esp_err_t esp_ble_mesh_start_ble_scanning(esp_ble_mesh_ble_scan_param_t *param);
/**
* @brief This function is called to stop notifying normal BLE advertising packets
* to the application layer.
*
* @return ESP_OK on success or error code otherwise.
*
*/
esp_err_t esp_ble_mesh_stop_ble_scanning(void);
#ifdef __cplusplus
}
#endif

View File

@@ -142,6 +142,72 @@ esp_err_t esp_ble_mesh_model_subscribe_group_addr(uint16_t element_addr, uint16_
esp_err_t esp_ble_mesh_model_unsubscribe_group_addr(uint16_t element_addr, uint16_t company_id,
uint16_t model_id, uint16_t group_addr);
/**
* @brief This function is called by Node to get the local NetKey.
*
* @param[in] net_idx: NetKey index.
*
* @return NetKey on success, or NULL on failure.
*
*/
const uint8_t *esp_ble_mesh_node_get_local_net_key(uint16_t net_idx);
/**
* @brief This function is called by Node to get the local AppKey.
*
* @param[in] app_idx: AppKey index.
*
* @return AppKey on success, or NULL on failure.
*
*/
const uint8_t *esp_ble_mesh_node_get_local_app_key(uint16_t app_idx);
/**
* @brief This function is called by Node to add a local NetKey.
*
* @param[in] net_key: NetKey to be added.
* @param[in] net_idx: NetKey Index.
*
* @note This function can only be called after the device is provisioned.
*
* @return ESP_OK on success or error code otherwise.
*
*/
esp_err_t esp_ble_mesh_node_add_local_net_key(const uint8_t net_key[16], uint16_t net_idx);
/**
* @brief This function is called by Node to add a local AppKey.
*
* @param[in] app_key: AppKey to be added.
* @param[in] net_idx: NetKey Index.
* @param[in] app_idx: AppKey Index.
*
* @note The net_idx must be an existing one.
* This function can only be called after the device is provisioned.
*
* @return ESP_OK on success or error code otherwise.
*
*/
esp_err_t esp_ble_mesh_node_add_local_app_key(const uint8_t app_key[16], uint16_t net_idx, uint16_t app_idx);
/**
* @brief This function is called by Node to bind AppKey to model locally.
*
* @param[in] element_addr: Node local element address
* @param[in] company_id: Node local company id
* @param[in] model_id: Node local model id
* @param[in] app_idx: Node local appkey index
*
* @note If going to bind app_key with local vendor model, the company_id
* shall be set to 0xFFFF.
* This function can only be called after the device is provisioned.
*
* @return ESP_OK on success or error code otherwise.
*
*/
esp_err_t esp_ble_mesh_node_bind_app_key_to_local_model(uint16_t element_addr, uint16_t company_id,
uint16_t model_id, uint16_t app_idx);
#ifdef __cplusplus
}
#endif

View File

@@ -413,6 +413,231 @@ esp_err_t esp_ble_mesh_provisioner_update_local_net_key(const uint8_t net_key[16
*/
const uint8_t *esp_ble_mesh_provisioner_get_local_net_key(uint16_t net_idx);
/**
* @brief This function is called by Provisioner to enable or disable receiving
* heartbeat messages.
*
* @note If enabling receiving heartbeat message successfully, the filter will
* be an empty rejectlist by default, which means all heartbeat messages
* received by the Provisioner will be reported to the application layer.
*
* @param[in] enable: Enable or disable receiving heartbeat messages.
*
* @return ESP_OK on success or error code otherwise.
*
*/
esp_err_t esp_ble_mesh_provisioner_recv_heartbeat(bool enable);
/**
* @brief This function is called by Provisioner to set the heartbeat filter type.
*
* @note 1. If the filter type is not the same with the current value, then all the
* filter entries will be cleaned.
* 2. If the previous type is rejectlist, and changed to acceptlist, then the
* filter will be an empty acceptlist, which means no heartbeat messages
* will be reported. Users need to add SRC or DST into the filter entry,
* then heartbeat messages from the SRC or to the DST will be reported.
*
* @param[in] type: Heartbeat filter type (acceptlist or rejectlist).
*
* @return ESP_OK on success or error code otherwise.
*
*/
esp_err_t esp_ble_mesh_provisioner_set_heartbeat_filter_type(uint8_t type);
/**
* @brief This function is called by Provisioner to add or remove a heartbeat filter entry.
*
* @note 1. If the operation is "ADD", the "hb_src" can be set to the SRC (can only be a
* unicast address) of heartbeat messages, and the "hb_dst" can be set to the
* DST (unicast address or group address), at least one of them needs to be set.
* - If only one of them is set, the filter entry will only use the configured
* SRC or DST to filter heartbeat messages.
* - If both of them are set, the SRC and DST will both be used to decide if a
* heartbeat message will be handled.
* - If SRC or DST already exists in some filter entry, then the corresponding
* entry will be cleaned firstly, then a new entry will be allocated to store
* the information.
* 2. If the operation is "REMOVE", the "hb_src" can be set to the SRC (can only be
* a unicast address) of heartbeat messages, and the "hb_dst" can be set to the
* DST (unicast address or group address), at least one of them needs to be set.
* - The filter entry with the same SRC or DST will be removed.
*
* @param[in] op: Add or REMOVE
* @param[in] info: Heartbeat filter entry information, including:
* hb_src - Heartbeat source address;
* hb_dst - Heartbeat destination address;
*
* @return ESP_OK on success or error code otherwise.
*
*/
esp_err_t esp_ble_mesh_provisioner_set_heartbeat_filter_info(uint8_t op, esp_ble_mesh_heartbeat_filter_info_t *info);
/**
* @brief This function is called by Provisioner to directly erase the mesh
* information from nvs namespace.
*
* @note This function can be invoked when the mesh stack is not initialized
* or has been de-initialized.
*
* @return ESP_OK on success or error code otherwise.
*
*/
esp_err_t esp_ble_mesh_provisioner_direct_erase_settings(void);
/**
* @brief This function is called by Provisioner to open a nvs namespace
* for storing mesh information.
*
* @note Before open another nvs namespace, the previously opened nvs
* namespace must be closed firstly.
*
* @param[in] index: Settings index.
*
* @return ESP_OK on success or error code otherwise.
*
*/
esp_err_t esp_ble_mesh_provisioner_open_settings_with_index(uint8_t index);
/**
* @brief This function is called by Provisioner to open a nvs namespace
* for storing mesh information.
*
* @note Before open another nvs namespace, the previously opened nvs
* namespace must be closed firstly.
*
* @param[in] uid: Settings user id.
*
* @return ESP_OK on success or error code otherwise.
*
*/
esp_err_t esp_ble_mesh_provisioner_open_settings_with_uid(const char *uid);
/**
* @brief This function is called by Provisioner to close a nvs namespace
* which is opened previously for storing mesh information.
*
* @note 1. Before closing the nvs namespace, it must be open.
* 2. When the function is invoked, the Provisioner functionality
* will be disabled firstly, and:
* a) If the "erase" flag is set to false, the mesh information
* will be cleaned (e.g. removing NetKey, AppKey, nodes, etc)
* from the mesh stack.
* b) If the "erase" flag is set to true, the mesh information
* stored in the nvs namespace will also be erased besides
* been cleaned from the mesh stack.
* 3. If Provisioner tries to work properly again, we can invoke the
* open function to open a new nvs namespace or a previously added
* one, and restore the mesh information from it if not erased.
* 4. The working process shall be as following:
* a) Open settings A
* b) Start to provision and control nodes
* c) Close settings A
* d) Open settings B
* e) Start to provision and control other nodes
* f) Close settings B
* g) ......
*
* @param[in] index: Settings index.
* @param[in] erase: Indicate if erasing mesh information.
*
* @return ESP_OK on success or error code otherwise.
*
*/
esp_err_t esp_ble_mesh_provisioner_close_settings_with_index(uint8_t index, bool erase);
/**
* @brief This function is called by Provisioner to close a nvs namespace
* which is opened previously for storing mesh information.
*
* @note 1. Before closing the nvs namespace, it must be open.
* 2. When the function is invoked, the Provisioner functionality
* will be disabled firstly, and:
* a) If the "erase" flag is set to false, the mesh information
* will be cleaned (e.g. removing NetKey, AppKey, nodes, etc)
* from the mesh stack.
* b) If the "erase" flag is set to true, the mesh information
* stored in the nvs namespace will also be erased besides
* been cleaned from the mesh stack.
* 3. If Provisioner tries to work properly again, we can invoke the
* open function to open a new nvs namespace or a previously added
* one, and restore the mesh information from it if not erased.
* 4. The working process shall be as following:
* a) Open settings A
* b) Start to provision and control nodes
* c) Close settings A
* d) Open settings B
* e) Start to provision and control other nodes
* f) Close settings B
* g) ......
*
* @param[in] uid: Settings user id.
* @param[in] erase: Indicate if erasing mesh information.
*
* @return ESP_OK on success or error code otherwise.
*
*/
esp_err_t esp_ble_mesh_provisioner_close_settings_with_uid(const char *uid, bool erase);
/**
* @brief This function is called by Provisioner to erase the mesh information
* and settings user id from a nvs namespace.
*
* @note When this function is called, the nvs namespace must not be open.
* This function is used to erase the mesh information and settings
* user id which are not used currently.
*
* @param[in] index: Settings index.
*
* @return ESP_OK on success or error code otherwise.
*
*/
esp_err_t esp_ble_mesh_provisioner_delete_settings_with_index(uint8_t index);
/**
* @brief This function is called by Provisioner to erase the mesh information
* and settings user id from a nvs namespace.
*
* @note When this function is called, the nvs namespace must not be open.
* This function is used to erase the mesh information and settings
* user id which are not used currently.
*
* @param[in] uid: Settings user id.
*
* @return ESP_OK on success or error code otherwise.
*
*/
esp_err_t esp_ble_mesh_provisioner_delete_settings_with_uid(const char *uid);
/**
* @brief This function is called by Provisioner to get settings user id.
*
* @param[in] index: Settings index.
*
* @return Setting user id on success or NULL on failure.
*
*/
const char *esp_ble_mesh_provisioner_get_settings_uid(uint8_t index);
/**
* @brief This function is called by Provisioner to get settings index.
*
* @param[in] uid: Settings user id.
*
* @return Settings index.
*
*/
uint8_t esp_ble_mesh_provisioner_get_settings_index(const char *uid);
/**
* @brief This function is called by Provisioner to get the number of free
* settings user id.
*
* @return Number of free settings user id.
*
*/
uint8_t esp_ble_mesh_provisioner_get_free_settings_count(void);
/**
* @brief This function is called to get fast provisioning application key.
*

View File

@@ -69,6 +69,12 @@ esp_err_t esp_ble_mesh_node_prov_disable(esp_ble_mesh_prov_bearer_t bearers);
/**
* @brief Unprovisioned device set own oob public key & private key pair.
*
* @note In order to avoid suffering brute-forcing attack (CVE-2020-26559).
* The Bluetooth SIG recommends that potentially vulnerable mesh provisioners
* use an out-of-band mechanism to exchange the public keys.
* So as an unprovisioned device, it should use this function to input
* the Public Key exchanged through the out-of-band mechanism.
*
* @param[in] pub_key_x: Unprovisioned device's Public Key X
* @param[in] pub_key_y: Unprovisioned device's Public Key Y
* @param[in] private_key: Unprovisioned device's Private Key
@@ -121,6 +127,10 @@ esp_err_t esp_ble_mesh_set_unprovisioned_device_name(const char *name);
/**
* @brief Provisioner inputs unprovisioned device's oob public key.
*
* @note In order to avoid suffering brute-forcing attack (CVE-2020-26559).
* The Bluetooth SIG recommends that potentially vulnerable mesh provisioners
* use an out-of-band mechanism to exchange the public keys.
*
* @param[in] link_idx: The provisioning link index
* @param[in] pub_key_x: Unprovisioned device's Public Key X
* @param[in] pub_key_y: Unprovisioned device's Public Key Y
@@ -324,6 +334,19 @@ esp_err_t esp_ble_mesh_provisioner_set_prov_data_info(esp_ble_mesh_prov_data_inf
/**
* @brief This function is called by Provisioner to set static oob value used for provisioning.
*
* @note The Bluetooth SIG recommends that mesh implementations enforce a randomly selected
* AuthValue using all of the available bits, where permitted by the implementation.
* A large entropy helps ensure that a brute-force of the AuthValue, even a static
* AuthValue, cannot normally be completed in a reasonable time (CVE-2020-26557).
*
* AuthValues selected using a cryptographically secure random or pseudorandom number
* generator and having the maximum permitted entropy (128-bits) will be most difficult
* to brute-force. AuthValues with reduced entropy or generated in a predictable manner
* will not grant the same level of protection against this vulnerability. Selecting a
* new AuthValue with each provisioning attempt can also make it more difficult to launch
* a brute-force attack by requiring the attacker to restart the search with each
* provisioning attempt (CVE-2020-26556).
*
* @param[in] value: Pointer to the static oob value.
* @param[in] length: Length of the static oob value.
*

View File

@@ -17,6 +17,7 @@
#include <stdint.h>
#include "mesh_config.h"
#include "mesh_common.h"
#include "proxy_server.h"
#include "provisioner_main.h"
@@ -50,6 +51,12 @@ extern "C" {
/*!< The maximum length of a BLE Mesh unprovisioned device name */
#define ESP_BLE_MESH_DEVICE_NAME_MAX_LEN DEVICE_NAME_SIZE
/*!< The maximum length of settings user id */
#define ESP_BLE_MESH_SETTINGS_UID_SIZE 20
/*!< Invalid settings index */
#define ESP_BLE_MESH_INVALID_SETTINGS_IDX 0xFF
/*!< Define the BLE Mesh octet 16 bytes size */
#define ESP_BLE_MESH_OCTET16_LEN 16
typedef uint8_t esp_ble_mesh_octet16_t[ESP_BLE_MESH_OCTET16_LEN];
@@ -468,8 +475,10 @@ typedef struct {
/** Callback used during model initialization. Initialized by the stack. */
esp_ble_mesh_cb_t init_cb;
#if CONFIG_BLE_MESH_DEINIT
/** Callback used during model deinitialization. Initialized by the stack. */
esp_ble_mesh_cb_t deinit_cb;
#endif /* CONFIG_BLE_MESH_DEINIT */
} esp_ble_mesh_model_cbs_t;
/** Abstraction that describes a Mesh Model instance.
@@ -573,6 +582,12 @@ typedef struct {
/** Out of Band information field. */
esp_ble_mesh_prov_oob_info_t oob_info;
/* NOTE: In order to avoid suffering brute-forcing attack (CVE-2020-26559).
* The Bluetooth SIG recommends that potentially vulnerable mesh provisioners
* support an out-of-band mechanism to exchange the public keys.
* So as an unprovisioned device, it should enable this flag to support
* using an out-of-band mechanism to exchange Public Key.
*/
/** Flag indicates whether unprovisioned devices support OOB public key */
bool oob_pub_key;
@@ -626,12 +641,29 @@ typedef struct {
/** Provisioning Algorithm for the Provisioner */
uint8_t prov_algorithm;
/* NOTE: In order to avoid suffering brute-forcing attack (CVE-2020-26559).
* The Bluetooth SIG recommends that potentially vulnerable mesh provisioners
* use an out-of-band mechanism to exchange the public keys.
*/
/** Provisioner public key oob */
uint8_t prov_pub_key_oob;
/** Callback used to notify to set device OOB Public Key. Initialized by the stack. */
esp_ble_mesh_cb_t provisioner_prov_read_oob_pub_key;
/* NOTE: The Bluetooth SIG recommends that mesh implementations enforce a randomly
* selected AuthValue using all of the available bits, where permitted by the
* implementation. A large entropy helps ensure that a brute-force of the AuthValue,
* even a static AuthValue, cannot normally be completed in a reasonable time (CVE-2020-26557).
*
* AuthValues selected using a cryptographically secure random or pseudorandom number
* generator and having the maximum permitted entropy (128-bits) will be most difficult
* to brute-force. AuthValues with reduced entropy or generated in a predictable manner
* will not grant the same level of protection against this vulnerability. Selecting a
* new AuthValue with each provisioning attempt can also make it more difficult to launch
* a brute-force attack by requiring the attacker to restart the search with each
* provisioning attempt (CVE-2020-26556).
*/
/** Provisioner static oob value */
uint8_t *prov_static_oob_val;
/** Provisioner static oob value length */
@@ -768,35 +800,19 @@ typedef enum {
PROXY_FILTER_BLACKLIST,
} esp_ble_mesh_proxy_filter_type_t;
/** Count for sending BLE advertising packet infinitely */
#define ESP_BLE_MESH_BLE_ADV_INFINITE 0xFFFF
/*!< Provisioner heartbeat filter type */
#define ESP_BLE_MESH_HEARTBEAT_FILTER_ACCEPTLIST 0x00
#define ESP_BLE_MESH_HEARTBEAT_FILTER_REJECTLIST 0x01
/*!< This enum value is the priority of BLE advertising packet */
typedef enum {
ESP_BLE_MESH_BLE_ADV_PRIO_LOW,
ESP_BLE_MESH_BLE_ADV_PRIO_HIGH,
} esp_ble_mesh_ble_adv_priority_t;
/*!< Provisioner heartbeat filter operation */
#define ESP_BLE_MESH_HEARTBEAT_FILTER_ADD 0x00
#define ESP_BLE_MESH_HEARTBEAT_FILTER_REMOVE 0x01
/** Context of BLE advertising parameters. */
/** Context of Provisioner heartbeat filter information to be set */
typedef struct {
uint16_t interval; /*!< BLE advertising interval */
uint8_t adv_type; /*!< BLE advertising type */
uint8_t own_addr_type; /*!< Own address type */
uint8_t peer_addr_type; /*!< Peer address type */
uint8_t peer_addr[BD_ADDR_LEN]; /*!< Peer address */
uint16_t duration; /*!< Duration is milliseconds */
uint16_t period; /*!< Period in milliseconds */
uint16_t count; /*!< Number of advertising duration */
uint8_t priority:2; /*!< Priority of BLE advertising packet */
} esp_ble_mesh_ble_adv_param_t;
/** Context of BLE advertising data. */
typedef struct {
uint8_t adv_data_len; /*!< Advertising data length */
uint8_t adv_data[31]; /*!< Advertising data */
uint8_t scan_rsp_data_len; /*!< Scan response data length */
uint8_t scan_rsp_data[31]; /*!< Scan response data */
} esp_ble_mesh_ble_adv_data_t;
uint16_t hb_src; /*!< Heartbeat source address (unicast address) */
uint16_t hb_dst; /*!< Heartbeat destination address (unicast address or group address) */
} esp_ble_mesh_heartbeat_filter_info_t;
/*!< This enum value is the event of node/provisioner/fast provisioning */
typedef enum {
@@ -818,6 +834,9 @@ typedef enum {
ESP_BLE_MESH_NODE_PROXY_IDENTITY_ENABLE_COMP_EVT, /*!< Enable BLE Mesh Proxy Identity advertising completion event */
ESP_BLE_MESH_NODE_PROXY_GATT_ENABLE_COMP_EVT, /*!< Enable BLE Mesh GATT Proxy Service completion event */
ESP_BLE_MESH_NODE_PROXY_GATT_DISABLE_COMP_EVT, /*!< Disable BLE Mesh GATT Proxy Service completion event */
ESP_BLE_MESH_NODE_ADD_LOCAL_NET_KEY_COMP_EVT, /*!< Node add NetKey locally completion event */
ESP_BLE_MESH_NODE_ADD_LOCAL_APP_KEY_COMP_EVT, /*!< Node add AppKey locally completion event */
ESP_BLE_MESH_NODE_BIND_APP_KEY_TO_MODEL_COMP_EVT, /*!< Node bind AppKey to model locally completion event */
ESP_BLE_MESH_PROVISIONER_PROV_ENABLE_COMP_EVT, /*!< Provisioner enable provisioning functionality completion event */
ESP_BLE_MESH_PROVISIONER_PROV_DISABLE_COMP_EVT, /*!< Provisioner disable provisioning functionality completion event */
ESP_BLE_MESH_PROVISIONER_RECV_UNPROV_ADV_PKT_EVT, /*!< Provisioner receives unprovisioned device beacon event */
@@ -846,6 +865,17 @@ typedef enum {
ESP_BLE_MESH_PROVISIONER_STORE_NODE_COMP_DATA_COMP_EVT, /*!< Provisioner store node composition data completion event */
ESP_BLE_MESH_PROVISIONER_DELETE_NODE_WITH_UUID_COMP_EVT, /*!< Provisioner delete node with uuid completion event */
ESP_BLE_MESH_PROVISIONER_DELETE_NODE_WITH_ADDR_COMP_EVT, /*!< Provisioner delete node with unicast address completion event */
ESP_BLE_MESH_PROVISIONER_ENABLE_HEARTBEAT_RECV_COMP_EVT, /*!< Provisioner start to receive heartbeat message completion event */
ESP_BLE_MESH_PROVISIONER_SET_HEARTBEAT_FILTER_TYPE_COMP_EVT, /*!< Provisioner set the heartbeat filter type completion event */
ESP_BLE_MESH_PROVISIONER_SET_HEARTBEAT_FILTER_INFO_COMP_EVT, /*!< Provisioner set the heartbeat filter information completion event */
ESP_BLE_MESH_PROVISIONER_RECV_HEARTBEAT_MESSAGE_EVT, /*!< Provisioner receive heartbeat message event */
ESP_BLE_MESH_PROVISIONER_DRIECT_ERASE_SETTINGS_COMP_EVT, /*!< Provisioner directly erase settings completion event */
ESP_BLE_MESH_PROVISIONER_OPEN_SETTINGS_WITH_INDEX_COMP_EVT, /*!< Provisioner open settings with index completion event */
ESP_BLE_MESH_PROVISIONER_OPEN_SETTINGS_WITH_UID_COMP_EVT, /*!< Provisioner open settings with user id completion event */
ESP_BLE_MESH_PROVISIONER_CLOSE_SETTINGS_WITH_INDEX_COMP_EVT, /*!< Provisioner close settings with index completion event */
ESP_BLE_MESH_PROVISIONER_CLOSE_SETTINGS_WITH_UID_COMP_EVT, /*!< Provisioner close settings with user id completion event */
ESP_BLE_MESH_PROVISIONER_DELETE_SETTINGS_WITH_INDEX_COMP_EVT, /*!< Provisioner delete settings with index completion event */
ESP_BLE_MESH_PROVISIONER_DELETE_SETTINGS_WITH_UID_COMP_EVT, /*!< Provisioner delete settings with user id completion event */
ESP_BLE_MESH_SET_FAST_PROV_INFO_COMP_EVT, /*!< Set fast provisioning information (e.g. unicast address range, net_idx, etc.) completion event */
ESP_BLE_MESH_SET_FAST_PROV_ACTION_COMP_EVT, /*!< Set fast provisioning action completion event */
ESP_BLE_MESH_HEARTBEAT_MESSAGE_RECV_EVT, /*!< Receive Heartbeat message event */
@@ -865,8 +895,6 @@ typedef enum {
ESP_BLE_MESH_PROXY_CLIENT_SET_FILTER_TYPE_COMP_EVT, /*!< Proxy Client set filter type completion event */
ESP_BLE_MESH_PROXY_CLIENT_ADD_FILTER_ADDR_COMP_EVT, /*!< Proxy Client add filter address completion event */
ESP_BLE_MESH_PROXY_CLIENT_REMOVE_FILTER_ADDR_COMP_EVT, /*!< Proxy Client remove filter address completion event */
ESP_BLE_MESH_START_BLE_ADVERTISING_COMP_EVT, /*!< Start BLE advertising completion event */
ESP_BLE_MESH_STOP_BLE_ADVERTISING_COMP_EVT, /*!< Stop BLE advertising completion event */
ESP_BLE_MESH_MODEL_SUBSCRIBE_GROUP_ADDR_COMP_EVT, /*!< Local model subscribes group address completion event */
ESP_BLE_MESH_MODEL_UNSUBSCRIBE_GROUP_ADDR_COMP_EVT, /*!< Local model unsubscribes group address completion event */
ESP_BLE_MESH_DEINIT_MESH_COMP_EVT, /*!< De-initialize BLE Mesh stack completion event */
@@ -985,6 +1013,31 @@ typedef union {
struct ble_mesh_proxy_gatt_disable_comp_param {
int err_code; /*!< Indicate the result of disabling Mesh Proxy Service */
} node_proxy_gatt_disable_comp; /*!< Event parameter of ESP_BLE_MESH_NODE_PROXY_GATT_DISABLE_COMP_EVT */
/**
* @brief ESP_BLE_MESH_NODE_ADD_LOCAL_NET_KEY_COMP_EVT
*/
struct ble_mesh_node_add_local_net_key_comp_param {
int err_code; /*!< Indicate the result of adding local NetKey by the node */
uint16_t net_idx; /*!< NetKey Index */
} node_add_net_key_comp; /*!< Event parameter of ESP_BLE_MESH_NODE_ADD_LOCAL_NET_KEY_COMP_EVT */
/**
* @brief ESP_BLE_MESH_NODE_ADD_LOCAL_APP_KEY_COMP_EVT
*/
struct ble_mesh_node_add_local_app_key_comp_param {
int err_code; /*!< Indicate the result of adding local AppKey by the node */
uint16_t net_idx; /*!< NetKey Index */
uint16_t app_idx; /*!< AppKey Index */
} node_add_app_key_comp; /*!< Event parameter of ESP_BLE_MESH_NODE_ADD_LOCAL_APP_KEY_COMP_EVT */
/**
* @brief ESP_BLE_MESH_NODE_BIND_APP_KEY_TO_MODEL_COMP_EVT
*/
struct ble_mesh_node_bind_local_mod_app_comp_param {
int err_code; /*!< Indicate the result of binding AppKey with model by the node */
uint16_t element_addr; /*!< Element address */
uint16_t app_idx; /*!< AppKey Index */
uint16_t company_id; /*!< Company ID */
uint16_t model_id; /*!< Model ID */
} node_bind_app_key_to_model_comp; /*!< Event parameter of ESP_BLE_MESH_NODE_BIND_APP_KEY_TO_MODEL_COMP_EVT */
/**
* @brief ESP_BLE_MESH_PROVISIONER_RECV_UNPROV_ADV_PKT_EVT
*/
@@ -1188,6 +1241,92 @@ typedef union {
int err_code; /*!< Indicate the result of deleting node with unicast address by the Provisioner */
uint16_t unicast_addr; /*!< Node unicast address */
} provisioner_delete_node_with_addr_comp; /*!< Event parameter of ESP_BLE_MESH_PROVISIONER_DELETE_NODE_WITH_ADDR_COMP_EVT */
/**
* @brief ESP_BLE_MESH_PROVISIONER_ENABLE_HEARTBEAT_RECV_COMP_EVT
*/
struct {
int err_code; /*!< Indicate the result of enabling/disabling to receive heartbeat messages by the Provisioner */
bool enable; /*!< Indicate enabling or disabling receiving heartbeat messages */
} provisioner_enable_heartbeat_recv_comp; /*!< Event parameters of ESP_BLE_MESH_PROVISIONER_ENABLE_HEARTBEAT_RECV_COMP_EVT */
/**
* @brief ESP_BLE_MESH_PROVISIONER_SET_HEARTBEAT_FILTER_TYPE_COMP_EVT
*/
struct {
int err_code; /*!< Indicate the result of setting the heartbeat filter type by the Provisioner */
uint8_t type; /*!< Type of the filter used for receiving heartbeat messages */
} provisioner_set_heartbeat_filter_type_comp; /*!< Event parameters of ESP_BLE_MESH_PROVISIONER_SET_HEARTBEAT_FILTER_TYPE_COMP_EVT */
/**
* @brief ESP_BLE_MESH_PROVISIONER_SET_HEARTBEAT_FILTER_INFO_COMP_EVT
*/
struct {
int err_code; /*!< Indicate the result of setting the heartbeat filter address by the Provisioner */
uint8_t op; /*!< Operation (add, remove, clean) */
uint16_t hb_src; /*!< Heartbeat source address */
uint16_t hb_dst; /*!< Heartbeat destination address */
} provisioner_set_heartbeat_filter_info_comp; /*!< Event parameters of ESP_BLE_MESH_PROVISIONER_SET_HEARTBEAT_FILTER_INFO_COMP_EVT */
/**
* @brief ESP_BLE_MESH_PROVISIONER_RECV_HEARTBEAT_MESSAGE_EVT
*/
struct {
uint16_t hb_src; /*!< Heartbeat source address */
uint16_t hb_dst; /*!< Heartbeat destination address */
uint8_t init_ttl; /*!< Heartbeat InitTTL */
uint8_t rx_ttl; /*!< Heartbeat RxTTL */
uint8_t hops; /*!< Heartbeat hops (InitTTL - RxTTL + 1) */
uint16_t feature; /*!< Bit field of currently active features of the node */
int8_t rssi; /*!< RSSI of the heartbeat message */
} provisioner_recv_heartbeat; /*!< Event parameters of ESP_BLE_MESH_PROVISIONER_RECV_HEARTBEAT_MESSAGE_EVT */
/**
* @brief ESP_BLE_MESH_PROVISIONER_DRIECT_ERASE_SETTINGS_COMP_EVT
*/
struct {
int err_code; /*!< Indicate the result of directly erasing settings by the Provisioner */
} provisioner_direct_erase_settings_comp; /*!< Event parameters of ESP_BLE_MESH_PROVISIONER_DRIECT_ERASE_SETTINGS_COMP_EVT */
/**
* @brief ESP_BLE_MESH_PROVISIONER_OPEN_SETTINGS_WITH_INDEX_COMP_EVT
*/
struct {
int err_code; /*!< Indicate the result of opening settings with index by the Provisioner */
uint8_t index; /*!< Index of Provisioner settings */
} provisioner_open_settings_with_index_comp; /*!< Event parameter of ESP_BLE_MESH_PROVISIONER_OPEN_SETTINGS_WITH_INDEX_COMP_EVT */
/**
* @brief ESP_BLE_MESH_PROVISIONER_OPEN_SETTINGS_WITH_UID_COMP_EVT
*/
struct {
int err_code; /*!< Indicate the result of opening settings with user id by the Provisioner */
uint8_t index; /*!< Index of Provisioner settings */
char uid[ESP_BLE_MESH_SETTINGS_UID_SIZE + 1]; /*!< Provisioner settings user id */
} provisioner_open_settings_with_uid_comp; /*!< Event parameters of ESP_BLE_MESH_PROVISIONER_OPEN_SETTINGS_WITH_UID_COMP_EVT */
/**
* @brief ESP_BLE_MESH_PROVISIONER_CLOSE_SETTINGS_WITH_INDEX_COMP_EVT
*/
struct {
int err_code; /*!< Indicate the result of closing settings with index by the Provisioner */
uint8_t index; /*!< Index of Provisioner settings */
} provisioner_close_settings_with_index_comp; /*!< Event parameter of ESP_BLE_MESH_PROVISIONER_CLOSE_SETTINGS_WITH_INDEX_COMP_EVT */
/**
* @brief ESP_BLE_MESH_PROVISIONER_CLOSE_SETTINGS_WITH_UID_COMP_EVT
*/
struct {
int err_code; /*!< Indicate the result of closing settings with user id by the Provisioner */
uint8_t index; /*!< Index of Provisioner settings */
char uid[ESP_BLE_MESH_SETTINGS_UID_SIZE + 1]; /*!< Provisioner settings user id */
} provisioner_close_settings_with_uid_comp; /*!< Event parameters of ESP_BLE_MESH_PROVISIONER_CLOSE_SETTINGS_WITH_UID_COMP_EVT */
/**
* @brief ESP_BLE_MESH_PROVISIONER_DELETE_SETTINGS_WITH_INDEX_COMP_EVT
*/
struct {
int err_code; /*!< Indicate the result of deleting settings with index by the Provisioner */
uint8_t index; /*!< Index of Provisioner settings */
} provisioner_delete_settings_with_index_comp; /*!< Event parameter of ESP_BLE_MESH_PROVISIONER_DELETE_SETTINGS_WITH_INDEX_COMP_EVT */
/**
* @brief ESP_BLE_MESH_PROVISIONER_DELETE_SETTINGS_WITH_UID_COMP_EVT
*/
struct {
int err_code; /*!< Indicate the result of deleting settings with user id by the Provisioner */
uint8_t index; /*!< Index of Provisioner settings */
char uid[ESP_BLE_MESH_SETTINGS_UID_SIZE + 1]; /*!< Provisioner settings user id */
} provisioner_delete_settings_with_uid_comp; /*!< Event parameters of ESP_BLE_MESH_PROVISIONER_DELETE_SETTINGS_WITH_UID_COMP_EVT */
/**
* @brief ESP_BLE_MESH_SET_FAST_PROV_INFO_COMP_EVT
*/
@@ -1338,20 +1477,6 @@ typedef union {
uint8_t conn_handle; /*!< Proxy connection handle */
uint16_t net_idx; /*!< Corresponding NetKey Index */
} proxy_client_remove_filter_addr_comp; /*!< Event parameter of ESP_BLE_MESH_PROXY_CLIENT_REMOVE_FILTER_ADDR_COMP_EVT */
/**
* @brief ESP_BLE_MESH_START_BLE_ADVERTISING_COMP_EVT
*/
struct ble_mesh_start_ble_advertising_comp_param {
int err_code; /*!< Indicate the result of starting BLE advertising */
uint8_t index; /*!< Index of the BLE advertising */
} start_ble_advertising_comp; /*!< Event parameter of ESP_BLE_MESH_START_BLE_ADVERTISING_COMP_EVT */
/**
* @brief ESP_BLE_MESH_STOP_BLE_ADVERTISING_COMP_EVT
*/
struct ble_mesh_stop_ble_advertising_comp_param {
int err_code; /*!< Indicate the result of stopping BLE advertising */
uint8_t index; /*!< Index of the BLE advertising */
} stop_ble_advertising_comp; /*!< Event parameter of ESP_BLE_MESH_STOP_BLE_ADVERTISING_COMP_EVT */
/**
* @brief ESP_BLE_MESH_MODEL_SUBSCRIBE_GROUP_ADDR_COMP_EVT
*/
@@ -1975,8 +2100,8 @@ typedef struct {
int64_t timestamp; /*!< Time when the last message is received */
} esp_ble_mesh_last_msg_info_t;
#define ESP_BLE_MESH_SERVER_RSP_BY_APP 0 /*!< Response will be sent internally */
#define ESP_BLE_MESH_SERVER_AUTO_RSP 1 /*!< Response need to be sent in the application */
#define ESP_BLE_MESH_SERVER_RSP_BY_APP 0 /*!< Response need to be sent in the application */
#define ESP_BLE_MESH_SERVER_AUTO_RSP 1 /*!< Response will be sent internally */
/** Parameters of the Server Model response control */
typedef struct {
@@ -2029,6 +2154,11 @@ typedef union {
uint16_t temperature; /*!< The value of the Light CTL Temperature state */
int16_t delta_uv; /*!< The value of the Light CTL Delta UV state */
} light_ctl_temp_delta_uv; /*!< The Light CTL Temperature & Delta UV states */
struct {
uint16_t lightness; /*!< The value of the Light HSL Lightness state */
uint16_t hue; /*!< The value of the Light HSL Hue state */
uint16_t saturation; /*!< The value of the Light HSL Saturation state */
} light_hsl; /*!< The Light HSL composite state */
struct {
uint16_t lightness; /*!< The value of the Light HSL Lightness state */
} light_hsl_lightness; /*!< The Light HSL Lightness state */
@@ -2056,6 +2186,7 @@ typedef enum {
ESP_BLE_MESH_LIGHT_LIGHTNESS_LINEAR_STATE,
ESP_BLE_MESH_LIGHT_CTL_LIGHTNESS_STATE,
ESP_BLE_MESH_LIGHT_CTL_TEMP_DELTA_UV_STATE,
ESP_BLE_MESH_LIGHT_HSL_STATE,
ESP_BLE_MESH_LIGHT_HSL_LIGHTNESS_STATE,
ESP_BLE_MESH_LIGHT_HSL_HUE_STATE,
ESP_BLE_MESH_LIGHT_HSL_SATURATION_STATE,

View File

@@ -19,6 +19,7 @@
#include "btc_ble_mesh_config_model.h"
#include "esp_ble_mesh_config_model_api.h"
#if CONFIG_BLE_MESH_CFG_CLI
esp_err_t esp_ble_mesh_register_config_client_callback(esp_ble_mesh_cfg_client_cb_t callback)
{
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
@@ -26,13 +27,6 @@ esp_err_t esp_ble_mesh_register_config_client_callback(esp_ble_mesh_cfg_client_c
return (btc_profile_cb_set(BTC_PID_CONFIG_CLIENT, callback) == 0 ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_mesh_register_config_server_callback(esp_ble_mesh_cfg_server_cb_t callback)
{
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
return (btc_profile_cb_set(BTC_PID_CONFIG_SERVER, callback) == 0 ? ESP_OK : ESP_FAIL);
}
static bool config_client_get_need_param(esp_ble_mesh_opcode_t opcode)
{
switch (opcode) {
@@ -101,3 +95,11 @@ esp_err_t esp_ble_mesh_config_client_set_state(esp_ble_mesh_client_common_param_
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_config_client_args_t), btc_ble_mesh_config_client_arg_deep_copy)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_CFG_CLI */
esp_err_t esp_ble_mesh_register_config_server_callback(esp_ble_mesh_cfg_server_cb_t callback)
{
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
return (btc_profile_cb_set(BTC_PID_CONFIG_SERVER, callback) == 0 ? ESP_OK : ESP_FAIL);
}

View File

@@ -19,6 +19,7 @@
#include "btc_ble_mesh_generic_model.h"
#include "esp_ble_mesh_generic_model_api.h"
#if CONFIG_BLE_MESH_GENERIC_CLIENT
esp_err_t esp_ble_mesh_register_generic_client_callback(esp_ble_mesh_generic_client_cb_t callback)
{
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
@@ -89,10 +90,13 @@ esp_err_t esp_ble_mesh_generic_client_set_state(esp_ble_mesh_client_common_param
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_generic_client_args_t), btc_ble_mesh_generic_client_arg_deep_copy)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_GENERIC_CLIENT */
#if CONFIG_BLE_MESH_GENERIC_SERVER
esp_err_t esp_ble_mesh_register_generic_server_callback(esp_ble_mesh_generic_server_cb_t callback)
{
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
return (btc_profile_cb_set(BTC_PID_GENERIC_SERVER, callback) == 0 ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_GENERIC_SERVER */

View File

@@ -19,6 +19,7 @@
#include "btc_ble_mesh_health_model.h"
#include "esp_ble_mesh_health_model_api.h"
#if CONFIG_BLE_MESH_HEALTH_CLI
esp_err_t esp_ble_mesh_register_health_client_callback(esp_ble_mesh_health_client_cb_t callback)
{
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
@@ -26,13 +27,6 @@ esp_err_t esp_ble_mesh_register_health_client_callback(esp_ble_mesh_health_clien
return (btc_profile_cb_set(BTC_PID_HEALTH_CLIENT, callback) == 0 ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_mesh_register_health_server_callback(esp_ble_mesh_health_server_cb_t callback)
{
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
return (btc_profile_cb_set(BTC_PID_HEALTH_SERVER, callback) == 0 ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_mesh_health_client_get_state(esp_ble_mesh_client_common_param_t *params,
esp_ble_mesh_health_client_get_state_t *get_state)
{
@@ -83,6 +77,15 @@ esp_err_t esp_ble_mesh_health_client_set_state(esp_ble_mesh_client_common_param_
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_health_client_args_t), btc_ble_mesh_health_client_arg_deep_copy)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_HEALTH_CLI */
#if CONFIG_BLE_MESH_HEALTH_SRV
esp_err_t esp_ble_mesh_register_health_server_callback(esp_ble_mesh_health_server_cb_t callback)
{
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
return (btc_profile_cb_set(BTC_PID_HEALTH_SERVER, callback) == 0 ? ESP_OK : ESP_FAIL);
}
esp_err_t esp_ble_mesh_health_server_fault_update(esp_ble_mesh_elem_t *element)
{
@@ -103,3 +106,4 @@ esp_err_t esp_ble_mesh_health_server_fault_update(esp_ble_mesh_elem_t *element)
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_health_server_args_t), NULL)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_HEALTH_SRV */

View File

@@ -19,6 +19,7 @@
#include "btc_ble_mesh_lighting_model.h"
#include "esp_ble_mesh_lighting_model_api.h"
#if CONFIG_BLE_MESH_LIGHTING_CLIENT
esp_err_t esp_ble_mesh_register_light_client_callback(esp_ble_mesh_light_client_cb_t callback)
{
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
@@ -76,10 +77,13 @@ esp_err_t esp_ble_mesh_light_client_set_state(esp_ble_mesh_client_common_param_t
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_lighting_client_args_t), btc_ble_mesh_lighting_client_arg_deep_copy)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_LIGHTING_CLIENT */
#if CONFIG_BLE_MESH_LIGHTING_SERVER
esp_err_t esp_ble_mesh_register_lighting_server_callback(esp_ble_mesh_lighting_server_cb_t callback)
{
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
return (btc_profile_cb_set(BTC_PID_LIGHTING_SERVER, callback) == 0 ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_LIGHTING_SERVER */

View File

@@ -19,6 +19,7 @@
#include "btc_ble_mesh_sensor_model.h"
#include "esp_ble_mesh_sensor_model_api.h"
#if CONFIG_BLE_MESH_SENSOR_CLI
esp_err_t esp_ble_mesh_register_sensor_client_callback(esp_ble_mesh_sensor_client_cb_t callback)
{
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
@@ -75,12 +76,13 @@ esp_err_t esp_ble_mesh_sensor_client_set_state(esp_ble_mesh_client_common_param_
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_sensor_client_args_t), btc_ble_mesh_sensor_client_arg_deep_copy)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_SENSOR_CLI */
#if CONFIG_BLE_MESH_SENSOR_SERVER
esp_err_t esp_ble_mesh_register_sensor_server_callback(esp_ble_mesh_sensor_server_cb_t callback)
{
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
return (btc_profile_cb_set(BTC_PID_SENSOR_SERVER, callback) == 0 ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_SENSOR_SERVER */

View File

@@ -19,6 +19,7 @@
#include "btc_ble_mesh_time_scene_model.h"
#include "esp_ble_mesh_time_scene_model_api.h"
#if CONFIG_BLE_MESH_TIME_SCENE_CLIENT
esp_err_t esp_ble_mesh_register_time_scene_client_callback(esp_ble_mesh_time_scene_client_cb_t callback)
{
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
@@ -76,11 +77,13 @@ esp_err_t esp_ble_mesh_time_scene_client_set_state(esp_ble_mesh_client_common_pa
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_mesh_time_scene_client_args_t), btc_ble_mesh_time_scene_client_arg_deep_copy)
== BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_TIME_SCENE_CLIENT */
#if CONFIG_BLE_MESH_TIME_SCENE_SERVER
esp_err_t esp_ble_mesh_register_time_scene_server_callback(esp_ble_mesh_time_scene_server_cb_t callback)
{
ESP_BLE_HOST_STATUS_CHECK(ESP_BLE_HOST_STATUS_ENABLED);
return (btc_profile_cb_set(BTC_PID_TIME_SCENE_SERVER, callback) == 0 ? ESP_OK : ESP_FAIL);
}
#endif /* CONFIG_BLE_MESH_TIME_SCENE_SERVER */

View File

@@ -367,10 +367,10 @@ typedef struct {
/** Parameters of Generic Battery Status. */
typedef struct {
u32_t battery_level : 8; /*!< Value of Generic Battery Level state */
u32_t time_to_discharge : 24; /*!< Value of Generic Battery Time to Discharge state */
u32_t time_to_charge : 24; /*!< Value of Generic Battery Time to Charge state */
u32_t flags : 8; /*!< Value of Generic Battery Flags state */
uint32_t battery_level : 8; /*!< Value of Generic Battery Level state */
uint32_t time_to_discharge : 24; /*!< Value of Generic Battery Time to Discharge state */
uint32_t time_to_charge : 24; /*!< Value of Generic Battery Time to Charge state */
uint32_t flags : 8; /*!< Value of Generic Battery Flags state */
} esp_ble_mesh_gen_battery_status_cb_t;
/** Parameters of Generic Location Global Status. */

View File

@@ -0,0 +1,203 @@
// Copyright 2020 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 <stdint.h>
#include <string.h>
#include "btc_ble_mesh_ble.h"
#include "adv.h"
#include "scan.h"
#include "mesh_bearer_adapt.h"
#include "esp_ble_mesh_ble_api.h"
#if CONFIG_BLE_MESH_BLE_COEX_SUPPORT
static void btc_ble_mesh_ble_copy_req_data(btc_msg_t *msg, void *p_dst, void *p_src)
{
#if CONFIG_BLE_MESH_SUPPORT_BLE_SCAN
esp_ble_mesh_ble_cb_param_t *p_dst_data = (esp_ble_mesh_ble_cb_param_t *)p_dst;
esp_ble_mesh_ble_cb_param_t *p_src_data = (esp_ble_mesh_ble_cb_param_t *)p_src;
if (!msg || !p_src_data || !p_dst_data) {
BT_ERR("%s, Invalid parameter", __func__);
return;
}
switch (msg->act) {
case ESP_BLE_MESH_SCAN_BLE_ADVERTISING_PKT_EVT:
if (p_src_data->scan_ble_adv_pkt.data && p_src_data->scan_ble_adv_pkt.length) {
p_dst_data->scan_ble_adv_pkt.length = p_src_data->scan_ble_adv_pkt.length;
p_dst_data->scan_ble_adv_pkt.data = bt_mesh_calloc(p_src_data->scan_ble_adv_pkt.length);
if (p_dst_data->scan_ble_adv_pkt.data) {
memcpy(p_dst_data->scan_ble_adv_pkt.data, p_src_data->scan_ble_adv_pkt.data,
p_src_data->scan_ble_adv_pkt.length);
} else {
BT_ERR("%s, Out of memory, act %d", __func__, msg->act);
}
}
break;
default:
break;
}
#endif /* CONFIG_BLE_MESH_SUPPORT_BLE_SCAN */
}
static void btc_ble_mesh_ble_free_req_data(btc_msg_t *msg)
{
#if CONFIG_BLE_MESH_SUPPORT_BLE_SCAN
esp_ble_mesh_ble_cb_param_t *arg = NULL;
if (!msg || !msg->arg) {
BT_ERR("%s, Invalid parameter", __func__);
return;
}
arg = (esp_ble_mesh_ble_cb_param_t *)msg->arg;
switch (msg->act) {
case ESP_BLE_MESH_SCAN_BLE_ADVERTISING_PKT_EVT:
if (arg->scan_ble_adv_pkt.data) {
bt_mesh_free(arg->scan_ble_adv_pkt.data);
}
break;
default:
break;
}
#endif /* CONFIG_BLE_MESH_SUPPORT_BLE_SCAN */
}
static void btc_ble_mesh_ble_callback(esp_ble_mesh_ble_cb_param_t *cb_params, uint8_t act)
{
btc_msg_t msg = {0};
/* If corresponding callback is not registered, event will not be posted. */
if (!btc_profile_cb_get(BTC_PID_BLE_MESH_BLE_COEX)) {
return;
}
msg.sig = BTC_SIG_API_CB;
msg.pid = BTC_PID_BLE_MESH_BLE_COEX;
msg.act = act;
btc_transfer_context(&msg, cb_params, sizeof(esp_ble_mesh_ble_cb_param_t),
btc_ble_mesh_ble_copy_req_data);
}
#if CONFIG_BLE_MESH_SUPPORT_BLE_SCAN
void bt_mesh_ble_scan_cb_evt_to_btc(const bt_mesh_addr_t *addr,
uint8_t adv_type, uint8_t data[],
uint16_t length, int8_t rssi)
{
esp_ble_mesh_ble_cb_param_t param = {0};
if (addr == NULL) {
BT_ERR("%s, Invalid parameter", __func__);
return;
}
memcpy(param.scan_ble_adv_pkt.addr, addr->val, sizeof(addr->val));
param.scan_ble_adv_pkt.addr_type = addr->type;
if (data && length) {
param.scan_ble_adv_pkt.data = data;
param.scan_ble_adv_pkt.length = length;
}
param.scan_ble_adv_pkt.adv_type = adv_type;
param.scan_ble_adv_pkt.rssi = rssi;
btc_ble_mesh_ble_callback(&param, ESP_BLE_MESH_SCAN_BLE_ADVERTISING_PKT_EVT);
}
#endif /* CONFIG_BLE_MESH_SUPPORT_BLE_SCAN */
void btc_ble_mesh_ble_call_handler(btc_msg_t *msg)
{
esp_ble_mesh_ble_cb_param_t param = {0};
btc_ble_mesh_ble_args_t *arg = NULL;
if (!msg || !msg->arg) {
BT_ERR("%s, Invalid parameter", __func__);
return;
}
arg = (btc_ble_mesh_ble_args_t *)msg->arg;
switch (msg->act) {
#if CONFIG_BLE_MESH_SUPPORT_BLE_ADV
case BTC_BLE_MESH_ACT_START_BLE_ADV: {
struct bt_mesh_ble_adv_param *set = (struct bt_mesh_ble_adv_param *)&arg->start_ble_adv.param;
struct bt_mesh_ble_adv_data *data = NULL;
if (arg->start_ble_adv.data.adv_data_len || arg->start_ble_adv.data.scan_rsp_data_len) {
data = (struct bt_mesh_ble_adv_data *)&arg->start_ble_adv.data;
}
param.start_ble_advertising_comp.err_code =
bt_mesh_start_ble_advertising(set, data, &param.start_ble_advertising_comp.index);
btc_ble_mesh_ble_callback(&param, ESP_BLE_MESH_START_BLE_ADVERTISING_COMP_EVT);
break;
}
case BTC_BLE_MESH_ACT_STOP_BLE_ADV:
param.stop_ble_advertising_comp.index = arg->stop_ble_adv.index;
param.stop_ble_advertising_comp.err_code =
bt_mesh_stop_ble_advertising(arg->stop_ble_adv.index);
btc_ble_mesh_ble_callback(&param, ESP_BLE_MESH_STOP_BLE_ADVERTISING_COMP_EVT);
break;
#endif /* CONFIG_BLE_MESH_SUPPORT_BLE_ADV */
#if CONFIG_BLE_MESH_SUPPORT_BLE_SCAN
case BTC_BLE_MESH_ACT_START_BLE_SCAN:
param.start_ble_scan_comp.err_code =
bt_mesh_start_ble_scan((struct bt_mesh_ble_scan_param *)&arg->start_ble_scan.param);
btc_ble_mesh_ble_callback(&param, ESP_BLE_MESH_START_BLE_SCANNING_COMP_EVT);
break;
case BTC_BLE_MESH_ACT_STOP_BLE_SCAN:
param.stop_ble_scan_comp.err_code = bt_mesh_stop_ble_scan();
btc_ble_mesh_ble_callback(&param, ESP_BLE_MESH_STOP_BLE_SCANNING_COMP_EVT);
break;
#endif /* CONFIG_BLE_MESH_SUPPORT_BLE_SCAN */
default:
return;
}
}
static inline void btc_ble_mesh_ble_cb_to_app(esp_ble_mesh_ble_cb_event_t event,
esp_ble_mesh_ble_cb_param_t *param)
{
esp_ble_mesh_ble_cb_t btc_ble_mesh_cb =
(esp_ble_mesh_ble_cb_t)btc_profile_cb_get(BTC_PID_BLE_MESH_BLE_COEX);
if (btc_ble_mesh_cb) {
btc_ble_mesh_cb(event, param);
}
}
void btc_ble_mesh_ble_cb_handler(btc_msg_t *msg)
{
esp_ble_mesh_ble_cb_param_t *param = NULL;
if (!msg) {
BT_ERR("%s, Invalid parameter", __func__);
return;
}
param = (esp_ble_mesh_ble_cb_param_t *)msg->arg;
if (msg->act < ESP_BLE_MESH_BLE_EVT_MAX) {
btc_ble_mesh_ble_cb_to_app(msg->act, param);
} else {
BT_ERR("%s, Unknown act %d", __func__, msg->act);
}
btc_ble_mesh_ble_free_req_data(msg);
}
#endif /* CONFIG_BLE_MESH_BLE_COEX_SUPPORT */

View File

@@ -17,9 +17,11 @@
#include "btc_ble_mesh_config_model.h"
#include "foundation.h"
#include "cfg_cli.h"
#include "esp_ble_mesh_config_model_api.h"
#if CONFIG_BLE_MESH_CFG_CLI
#include "cfg_cli.h"
/* Configuration Client Model related functions */
static inline void btc_ble_mesh_config_client_cb_to_app(esp_ble_mesh_cfg_client_cb_event_t event,
@@ -126,7 +128,7 @@ static void btc_ble_mesh_config_client_copy_req_data(btc_msg_t *msg, void *p_des
{
esp_ble_mesh_cfg_client_cb_param_t *p_dest_data = (esp_ble_mesh_cfg_client_cb_param_t *)p_dest;
esp_ble_mesh_cfg_client_cb_param_t *p_src_data = (esp_ble_mesh_cfg_client_cb_param_t *)p_src;
u16_t length = 0U;
uint16_t length = 0U;
if (!msg || !p_src_data || !p_dest_data) {
BT_ERR("%s, Invalid parameter", __func__);
@@ -308,10 +310,10 @@ static void btc_ble_mesh_config_client_callback(esp_ble_mesh_cfg_client_cb_param
btc_ble_mesh_config_client_copy_req_data);
}
void bt_mesh_config_client_cb_evt_to_btc(u32_t opcode, u8_t evt_type,
void bt_mesh_config_client_cb_evt_to_btc(uint32_t opcode, uint8_t evt_type,
struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
const u8_t *val, size_t len)
const uint8_t *val, size_t len)
{
esp_ble_mesh_cfg_client_cb_param_t cb_params = {0};
esp_ble_mesh_client_common_param_t params = {0};
@@ -362,7 +364,7 @@ void bt_mesh_config_client_cb_evt_to_btc(u32_t opcode, u8_t evt_type,
return;
}
void btc_ble_mesh_config_client_publish_callback(u32_t opcode, struct bt_mesh_model *model,
void btc_ble_mesh_config_client_publish_callback(uint32_t opcode, struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
struct net_buf_simple *buf)
{
@@ -679,6 +681,8 @@ void btc_ble_mesh_config_client_cb_handler(btc_msg_t *msg)
return;
}
#endif /* CONFIG_BLE_MESH_CFG_CLI */
/* Configuration Server Model related functions */
static inline void btc_ble_mesh_config_server_cb_to_app(esp_ble_mesh_cfg_server_cb_event_t event,
@@ -709,9 +713,9 @@ static void btc_ble_mesh_config_server_callback(esp_ble_mesh_cfg_server_cb_param
btc_transfer_context(&msg, cb_params, sizeof(esp_ble_mesh_cfg_server_cb_param_t), NULL);
}
void bt_mesh_config_server_cb_evt_to_btc(u8_t evt_type, struct bt_mesh_model *model,
void bt_mesh_config_server_cb_evt_to_btc(uint8_t evt_type, struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
const u8_t *val, size_t len)
const uint8_t *val, size_t len)
{
esp_ble_mesh_cfg_server_cb_param_t cb_params = {0};
uint8_t act = 0U;

View File

@@ -16,9 +16,11 @@
#include <errno.h>
#include "btc_ble_mesh_generic_model.h"
#include "generic_client.h"
#include "esp_ble_mesh_generic_model_api.h"
#if CONFIG_BLE_MESH_GENERIC_CLIENT
#include "generic_client.h"
/* Generic Client Models related functions */
static inline void btc_ble_mesh_generic_client_cb_to_app(esp_ble_mesh_generic_client_cb_event_t event,
@@ -35,7 +37,7 @@ void btc_ble_mesh_generic_client_arg_deep_copy(btc_msg_t *msg, void *p_dest, voi
{
btc_ble_mesh_generic_client_args_t *dst = (btc_ble_mesh_generic_client_args_t *)p_dest;
btc_ble_mesh_generic_client_args_t *src = (btc_ble_mesh_generic_client_args_t *)p_src;
u16_t length = 0U;
uint16_t length = 0U;
if (!msg || !dst || !src) {
BT_ERR("%s, Invalid parameter", __func__);
@@ -162,7 +164,7 @@ static void btc_ble_mesh_generic_client_copy_req_data(btc_msg_t *msg, void *p_de
{
esp_ble_mesh_generic_client_cb_param_t *p_dest_data = (esp_ble_mesh_generic_client_cb_param_t *)p_dest;
esp_ble_mesh_generic_client_cb_param_t *p_src_data = (esp_ble_mesh_generic_client_cb_param_t *)p_src;
u16_t length = 0U;
uint16_t length = 0U;
if (!msg || !p_src_data || !p_dest_data) {
BT_ERR("%s, Invalid parameter", __func__);
@@ -378,10 +380,10 @@ static void btc_ble_mesh_generic_client_callback(esp_ble_mesh_generic_client_cb_
btc_ble_mesh_generic_client_copy_req_data);
}
void bt_mesh_generic_client_cb_evt_to_btc(u32_t opcode, u8_t evt_type,
void bt_mesh_generic_client_cb_evt_to_btc(uint32_t opcode, uint8_t evt_type,
struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
const u8_t *val, size_t len)
const uint8_t *val, size_t len)
{
esp_ble_mesh_generic_client_cb_param_t cb_params = {0};
esp_ble_mesh_client_common_param_t params = {0};
@@ -432,7 +434,7 @@ void bt_mesh_generic_client_cb_evt_to_btc(u32_t opcode, u8_t evt_type,
return;
}
void btc_ble_mesh_generic_client_publish_callback(u32_t opcode, struct bt_mesh_model *model,
void btc_ble_mesh_generic_client_publish_callback(uint32_t opcode, struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
struct net_buf_simple *buf)
{
@@ -530,6 +532,10 @@ void btc_ble_mesh_generic_client_cb_handler(btc_msg_t *msg)
return;
}
#endif /* CONFIG_BLE_MESH_GENERIC_CLIENT */
#if CONFIG_BLE_MESH_GENERIC_SERVER
/* Generic Server Models related functions */
static inline void btc_ble_mesh_generic_server_cb_to_app(esp_ble_mesh_generic_server_cb_event_t event,
@@ -546,7 +552,7 @@ static void btc_ble_mesh_generic_server_copy_req_data(btc_msg_t *msg, void *p_de
{
esp_ble_mesh_generic_server_cb_param_t *p_dest_data = (esp_ble_mesh_generic_server_cb_param_t *)p_dest;
esp_ble_mesh_generic_server_cb_param_t *p_src_data = (esp_ble_mesh_generic_server_cb_param_t *)p_src;
u16_t length = 0U;
uint16_t length = 0U;
if (!msg || !p_src_data || !p_dest_data) {
BT_ERR("%s, Invalid parameter", __func__);
@@ -691,9 +697,9 @@ static void btc_ble_mesh_generic_server_callback(esp_ble_mesh_generic_server_cb_
btc_ble_mesh_generic_server_copy_req_data);
}
void bt_mesh_generic_server_cb_evt_to_btc(u8_t evt_type, struct bt_mesh_model *model,
void bt_mesh_generic_server_cb_evt_to_btc(uint8_t evt_type, struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
const u8_t *val, size_t len)
const uint8_t *val, size_t len)
{
esp_ble_mesh_generic_server_cb_param_t cb_params = {0};
uint8_t act = 0U;
@@ -756,3 +762,5 @@ void btc_ble_mesh_generic_server_cb_handler(btc_msg_t *msg)
btc_ble_mesh_generic_server_free_req_data(msg);
return;
}
#endif /* CONFIG_BLE_MESH_GENERIC_SERVER */

View File

@@ -17,10 +17,11 @@
#include "btc_ble_mesh_health_model.h"
#include "foundation.h"
#include "health_srv.h"
#include "health_cli.h"
#include "esp_ble_mesh_health_model_api.h"
#if CONFIG_BLE_MESH_HEALTH_CLI
#include "health_cli.h"
/* Health Client Model related functions */
static inline void btc_ble_mesh_health_client_cb_to_app(esp_ble_mesh_health_client_cb_event_t event,
@@ -120,7 +121,7 @@ static void btc_ble_mesh_health_client_copy_req_data(btc_msg_t *msg, void *p_des
{
esp_ble_mesh_health_client_cb_param_t *p_dest_data = (esp_ble_mesh_health_client_cb_param_t *)p_dest;
esp_ble_mesh_health_client_cb_param_t *p_src_data = (esp_ble_mesh_health_client_cb_param_t *)p_src;
u16_t length = 0U;
uint16_t length = 0U;
if (!msg || !p_src_data || !p_dest_data) {
BT_ERR("%s, Invalid parameter", __func__);
@@ -242,10 +243,10 @@ static void btc_ble_mesh_health_client_callback(esp_ble_mesh_health_client_cb_pa
btc_ble_mesh_health_client_copy_req_data);
}
void bt_mesh_health_client_cb_evt_to_btc(u32_t opcode, u8_t evt_type,
void bt_mesh_health_client_cb_evt_to_btc(uint32_t opcode, uint8_t evt_type,
struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
const u8_t *val, u16_t len)
const uint8_t *val, uint16_t len)
{
esp_ble_mesh_health_client_cb_param_t cb_params = {0};
esp_ble_mesh_client_common_param_t params = {0};
@@ -296,7 +297,7 @@ void bt_mesh_health_client_cb_evt_to_btc(u32_t opcode, u8_t evt_type,
return;
}
void btc_ble_mesh_health_publish_callback(u32_t opcode, struct bt_mesh_model *model,
void btc_ble_mesh_health_publish_callback(uint32_t opcode, struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
struct net_buf_simple *buf)
{
@@ -457,6 +458,11 @@ void btc_ble_mesh_health_client_cb_handler(btc_msg_t *msg)
return;
}
#endif /* CONFIG_BLE_MESH_HEALTH_CLI */
#if CONFIG_BLE_MESH_HEALTH_SRV
#include "health_srv.h"
/* Health Server Model related functions */
static inline void btc_ble_mesh_health_server_cb_to_app(esp_ble_mesh_health_server_cb_event_t event,
@@ -596,7 +602,7 @@ void btc_ble_mesh_health_server_cb_handler(btc_msg_t *msg)
return;
}
void btc_ble_mesh_health_server_fault_clear(struct bt_mesh_model *model, u16_t company_id)
void btc_ble_mesh_health_server_fault_clear(struct bt_mesh_model *model, uint16_t company_id)
{
esp_ble_mesh_health_server_cb_param_t param = {0};
@@ -607,7 +613,7 @@ void btc_ble_mesh_health_server_fault_clear(struct bt_mesh_model *model, u16_t c
}
void btc_ble_mesh_health_server_fault_test(struct bt_mesh_model *model,
u8_t test_id, u16_t company_id)
uint8_t test_id, uint16_t company_id)
{
esp_ble_mesh_health_server_cb_param_t param = {0};
@@ -618,7 +624,7 @@ void btc_ble_mesh_health_server_fault_test(struct bt_mesh_model *model,
btc_ble_mesh_health_server_callback(&param, ESP_BLE_MESH_HEALTH_SERVER_FAULT_TEST_EVT);
}
void btc_ble_mesh_health_server_attention_on(struct bt_mesh_model *model, u8_t time)
void btc_ble_mesh_health_server_attention_on(struct bt_mesh_model *model, uint8_t time)
{
esp_ble_mesh_health_server_cb_param_t param = {0};
@@ -636,3 +642,4 @@ void btc_ble_mesh_health_server_attention_off(struct bt_mesh_model *model)
btc_ble_mesh_health_server_callback(&param, ESP_BLE_MESH_HEALTH_SERVER_ATTENTION_OFF_EVT);
}
#endif /* CONFIG_BLE_MESH_HEALTH_SRV */

View File

@@ -16,9 +16,11 @@
#include <errno.h>
#include "btc_ble_mesh_lighting_model.h"
#include "lighting_client.h"
#include "esp_ble_mesh_lighting_model_api.h"
#if CONFIG_BLE_MESH_LIGHTING_CLIENT
#include "lighting_client.h"
/* Lighting Client Models related functions */
static inline void btc_ble_mesh_lighting_client_cb_to_app(esp_ble_mesh_light_client_cb_event_t event,
@@ -118,7 +120,7 @@ static void btc_ble_mesh_lighting_client_copy_req_data(btc_msg_t *msg, void *p_d
{
esp_ble_mesh_light_client_cb_param_t *p_dest_data = (esp_ble_mesh_light_client_cb_param_t *)p_dest;
esp_ble_mesh_light_client_cb_param_t *p_src_data = (esp_ble_mesh_light_client_cb_param_t *)p_src;
u16_t length = 0U;
uint16_t length = 0U;
if (!msg || !p_src_data || !p_dest_data) {
BT_ERR("%s, Invalid parameter", __func__);
@@ -222,10 +224,10 @@ static void btc_ble_mesh_lighting_client_callback(esp_ble_mesh_light_client_cb_p
btc_ble_mesh_lighting_client_copy_req_data);
}
void bt_mesh_lighting_client_cb_evt_to_btc(u32_t opcode, u8_t evt_type,
void bt_mesh_lighting_client_cb_evt_to_btc(uint32_t opcode, uint8_t evt_type,
struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
const u8_t *val, size_t len)
const uint8_t *val, size_t len)
{
esp_ble_mesh_light_client_cb_param_t cb_params = {0};
esp_ble_mesh_client_common_param_t params = {0};
@@ -276,7 +278,7 @@ void bt_mesh_lighting_client_cb_evt_to_btc(u32_t opcode, u8_t evt_type,
return;
}
void btc_ble_mesh_lighting_client_publish_callback(u32_t opcode, struct bt_mesh_model *model,
void btc_ble_mesh_lighting_client_publish_callback(uint32_t opcode, struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
struct net_buf_simple *buf)
{
@@ -374,6 +376,10 @@ void btc_ble_mesh_lighting_client_cb_handler(btc_msg_t *msg)
return;
}
#endif /* CONFIG_BLE_MESH_LIGHTING_CLIENT */
#if CONFIG_BLE_MESH_LIGHTING_SERVER
/* Lighting Server Models related functions */
static inline void btc_ble_mesh_lighting_server_cb_to_app(esp_ble_mesh_lighting_server_cb_event_t event,
@@ -390,7 +396,7 @@ static void btc_ble_mesh_lighting_server_copy_req_data(btc_msg_t *msg, void *p_d
{
esp_ble_mesh_lighting_server_cb_param_t *p_dest_data = (esp_ble_mesh_lighting_server_cb_param_t *)p_dest;
esp_ble_mesh_lighting_server_cb_param_t *p_src_data = (esp_ble_mesh_lighting_server_cb_param_t *)p_src;
u16_t length = 0U;
uint16_t length = 0U;
if (!msg || !p_src_data || !p_dest_data) {
BT_ERR("%s, Invalid parameter", __func__);
@@ -503,9 +509,9 @@ static void btc_ble_mesh_lighting_server_callback(esp_ble_mesh_lighting_server_c
btc_ble_mesh_lighting_server_copy_req_data);
}
void bt_mesh_lighting_server_cb_evt_to_btc(u8_t evt_type, struct bt_mesh_model *model,
void bt_mesh_lighting_server_cb_evt_to_btc(uint8_t evt_type, struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
const u8_t *val, size_t len)
const uint8_t *val, size_t len)
{
esp_ble_mesh_lighting_server_cb_param_t cb_params = {0};
uint8_t act = 0U;
@@ -570,4 +576,6 @@ void btc_ble_mesh_lighting_server_cb_handler(btc_msg_t *msg)
btc_ble_mesh_lighting_server_free_req_data(msg);
return;
}
}
#endif /* CONFIG_BLE_MESH_LIGHTING_SERVER */

View File

@@ -29,19 +29,34 @@
#include "mesh.h"
#include "access.h"
#include "prov.h"
#include "settings_uid.h"
#include "proxy_server.h"
#include "proxy_client.h"
#include "provisioner_prov.h"
#include "provisioner_main.h"
#if CONFIG_BLE_MESH_CFG_CLI
#include "cfg_cli.h"
#endif /* CONFIG_BLE_MESH_CFG_CLI */
#if CONFIG_BLE_MESH_HEALTH_CLI
#include "health_cli.h"
#endif /* CONFIG_BLE_MESH_HEALTH_CLI */
#include "cfg_srv.h"
#if CONFIG_BLE_MESH_HEALTH_SRV
#include "health_srv.h"
#endif /* CONFIG_BLE_MESH_HEALTH_SRV */
#if CONFIG_BLE_MESH_GENERIC_CLIENT
#include "generic_client.h"
#endif /* CONFIG_BLE_MESH_GENERIC_CLIENT */
#if CONFIG_BLE_MESH_LIGHTING_CLIENT
#include "lighting_client.h"
#endif /* CONFIG_BLE_MESH_LIGHTING_CLIENT */
#if CONFIG_BLE_MESH_SENSOR_CLI
#include "sensor_client.h"
#endif /* CONFIG_BLE_MESH_SENSOR_CLI */
#if CONFIG_BLE_MESH_TIME_SCENE_CLIENT
#include "time_scene_client.h"
#endif /* CONFIG_BLE_MESH_TIME_SCENE_CLIENT */
#include "client_common.h"
#include "state_binding.h"
#include "local_operation.h"
@@ -452,7 +467,7 @@ static void btc_ble_mesh_client_model_timeout_cb(struct k_work *work)
static void btc_ble_mesh_model_send_comp_cb(esp_ble_mesh_model_t *model,
esp_ble_mesh_msg_ctx_t *ctx,
u32_t opcode, int err)
uint32_t opcode, int err)
{
esp_ble_mesh_model_cb_param_t mesh_param = {0};
@@ -489,6 +504,7 @@ static int btc_ble_mesh_model_publish_update(struct bt_mesh_model *mod)
return (ret == BT_STATUS_SUCCESS) ? 0 : -1;
}
#if CONFIG_BLE_MESH_SERVER_MODEL
static void btc_ble_mesh_server_model_update_state_comp_cb(esp_ble_mesh_model_t *model,
esp_ble_mesh_server_state_type_t type,
int err)
@@ -502,6 +518,7 @@ static void btc_ble_mesh_server_model_update_state_comp_cb(esp_ble_mesh_model_t
btc_ble_mesh_model_callback(&mesh_param, ESP_BLE_MESH_SERVER_MODEL_UPDATE_STATE_COMP_EVT);
return;
}
#endif /* CONFIG_BLE_MESH_SERVER_MODEL */
static bt_status_t btc_ble_mesh_prov_callback(esp_ble_mesh_prov_cb_param_t *param, uint8_t act)
{
@@ -535,7 +552,7 @@ static void btc_ble_mesh_oob_pub_key_cb(void)
return;
}
static int btc_ble_mesh_output_number_cb(bt_mesh_output_action_t act, u32_t num)
static int btc_ble_mesh_output_number_cb(bt_mesh_output_action_t act, uint32_t num)
{
esp_ble_mesh_prov_cb_param_t mesh_param = {0};
bt_status_t ret = BT_STATUS_SUCCESS;
@@ -563,7 +580,7 @@ static int btc_ble_mesh_output_string_cb(const char *str)
return (ret == BT_STATUS_SUCCESS) ? 0 : -1;
}
static int btc_ble_mesh_input_cb(bt_mesh_input_action_t act, u8_t size)
static int btc_ble_mesh_input_cb(bt_mesh_input_action_t act, uint8_t size)
{
esp_ble_mesh_prov_cb_param_t mesh_param = {0};
bt_status_t ret = BT_STATUS_SUCCESS;
@@ -601,8 +618,8 @@ static void btc_ble_mesh_link_close_cb(bt_mesh_prov_bearer_t bearer)
return;
}
static void btc_ble_mesh_complete_cb(u16_t net_idx, const u8_t net_key[16],
u16_t addr, u8_t flags, u32_t iv_index)
static void btc_ble_mesh_complete_cb(uint16_t net_idx, const uint8_t net_key[16],
uint16_t addr, uint8_t flags, uint32_t iv_index)
{
esp_ble_mesh_prov_cb_param_t mesh_param = {0};
@@ -625,6 +642,16 @@ static void btc_ble_mesh_reset_cb(void)
btc_ble_mesh_prov_callback(NULL, ESP_BLE_MESH_NODE_PROV_RESET_EVT);
return;
}
const uint8_t *btc_ble_mesh_node_get_local_net_key(uint16_t net_idx)
{
return bt_mesh_node_get_local_net_key(net_idx);
}
const uint8_t *btc_ble_mesh_node_get_local_app_key(uint16_t app_idx)
{
return bt_mesh_node_get_local_app_key(app_idx);
}
#endif /* CONFIG_BLE_MESH_NODE */
static void btc_ble_mesh_prov_register_complete_cb(int err_code)
@@ -648,10 +675,10 @@ static void btc_ble_mesh_prov_set_complete_cb(esp_ble_mesh_prov_cb_param_t *para
}
#if CONFIG_BLE_MESH_PROVISIONER
static void btc_ble_mesh_provisioner_recv_unprov_adv_pkt_cb(const u8_t addr[6], const u8_t addr_type,
const u8_t adv_type, const u8_t dev_uuid[16],
u16_t oob_info, bt_mesh_prov_bearer_t bearer,
s8_t rssi)
static void btc_ble_mesh_provisioner_recv_unprov_adv_pkt_cb(const uint8_t addr[6], const uint8_t addr_type,
const uint8_t adv_type, const uint8_t dev_uuid[16],
uint16_t oob_info, bt_mesh_prov_bearer_t bearer,
int8_t rssi)
{
esp_ble_mesh_prov_cb_param_t mesh_param = {0};
@@ -675,7 +702,7 @@ static void btc_ble_mesh_provisioner_recv_unprov_adv_pkt_cb(const u8_t addr[6],
return;
}
static int btc_ble_mesh_provisioner_prov_read_oob_pub_key_cb(u8_t link_idx)
static int btc_ble_mesh_provisioner_prov_read_oob_pub_key_cb(uint8_t link_idx)
{
esp_ble_mesh_prov_cb_param_t mesh_param = {0};
bt_status_t ret = BT_STATUS_SUCCESS;
@@ -688,8 +715,8 @@ static int btc_ble_mesh_provisioner_prov_read_oob_pub_key_cb(u8_t link_idx)
return (ret == BT_STATUS_SUCCESS) ? 0 : -1;
}
static int btc_ble_mesh_provisioner_prov_input_cb(u8_t method, bt_mesh_output_action_t act,
u8_t size, u8_t link_idx)
static int btc_ble_mesh_provisioner_prov_input_cb(uint8_t method, bt_mesh_output_action_t act,
uint8_t size, uint8_t link_idx)
{
esp_ble_mesh_prov_cb_param_t mesh_param = {0};
bt_status_t ret = BT_STATUS_SUCCESS;
@@ -705,8 +732,8 @@ static int btc_ble_mesh_provisioner_prov_input_cb(u8_t method, bt_mesh_output_ac
return (ret == BT_STATUS_SUCCESS) ? 0 : -1;
}
static int btc_ble_mesh_provisioner_prov_output_cb(u8_t method, bt_mesh_input_action_t act,
void *data, u8_t size, u8_t link_idx)
static int btc_ble_mesh_provisioner_prov_output_cb(uint8_t method, bt_mesh_input_action_t act,
void *data, uint8_t size, uint8_t link_idx)
{
esp_ble_mesh_prov_cb_param_t mesh_param = {0};
bt_status_t ret = BT_STATUS_SUCCESS;
@@ -720,7 +747,7 @@ static int btc_ble_mesh_provisioner_prov_output_cb(u8_t method, bt_mesh_input_ac
if (act == BLE_MESH_ENTER_STRING) {
strncpy(mesh_param.provisioner_prov_output.string, (char *)data, size);
} else {
mesh_param.provisioner_prov_output.number = sys_get_le32((u8_t *)data);
mesh_param.provisioner_prov_output.number = sys_get_le32((uint8_t *)data);
}
ret = btc_ble_mesh_prov_callback(&mesh_param, ESP_BLE_MESH_PROVISIONER_PROV_OUTPUT_EVT);
@@ -739,7 +766,7 @@ static void btc_ble_mesh_provisioner_link_open_cb(bt_mesh_prov_bearer_t bearer)
return;
}
static void btc_ble_mesh_provisioner_link_close_cb(bt_mesh_prov_bearer_t bearer, u8_t reason)
static void btc_ble_mesh_provisioner_link_close_cb(bt_mesh_prov_bearer_t bearer, uint8_t reason)
{
esp_ble_mesh_prov_cb_param_t mesh_param = {0};
@@ -752,9 +779,9 @@ static void btc_ble_mesh_provisioner_link_close_cb(bt_mesh_prov_bearer_t bearer,
return;
}
static void btc_ble_mesh_provisioner_prov_complete_cb(u16_t node_idx, const u8_t device_uuid[16],
u16_t unicast_addr, u8_t element_num,
u16_t netkey_idx)
static void btc_ble_mesh_provisioner_prov_complete_cb(uint16_t node_idx, const uint8_t device_uuid[16],
uint16_t unicast_addr, uint8_t element_num,
uint16_t netkey_idx)
{
esp_ble_mesh_prov_cb_param_t mesh_param = {0};
@@ -785,7 +812,7 @@ esp_ble_mesh_node_t *btc_ble_mesh_provisioner_get_node_with_name(const char *nam
return (esp_ble_mesh_node_t *)bt_mesh_provisioner_get_node_with_name(name);
}
u16_t btc_ble_mesh_provisioner_get_prov_node_count(void)
uint16_t btc_ble_mesh_provisioner_get_prov_node_count(void)
{
return bt_mesh_provisioner_get_node_count();
}
@@ -794,9 +821,46 @@ const esp_ble_mesh_node_t **btc_ble_mesh_provisioner_get_node_table_entry(void)
{
return (const esp_ble_mesh_node_t **)bt_mesh_provisioner_get_node_table_entry();
}
#if CONFIG_BLE_MESH_PROVISIONER_RECV_HB
static void btc_ble_mesh_provisioner_recv_heartbeat_cb(uint16_t hb_src, uint16_t hb_dst,
uint8_t init_ttl, uint8_t rx_ttl,
uint8_t hops, uint16_t feat, int8_t rssi)
{
esp_ble_mesh_prov_cb_param_t mesh_param = {0};
mesh_param.provisioner_recv_heartbeat.hb_src = hb_src;
mesh_param.provisioner_recv_heartbeat.hb_dst = hb_dst;
mesh_param.provisioner_recv_heartbeat.init_ttl = init_ttl;
mesh_param.provisioner_recv_heartbeat.rx_ttl = rx_ttl;
mesh_param.provisioner_recv_heartbeat.hops = hops;
mesh_param.provisioner_recv_heartbeat.feature = feat;
mesh_param.provisioner_recv_heartbeat.rssi = rssi;
btc_ble_mesh_prov_callback(&mesh_param, ESP_BLE_MESH_PROVISIONER_RECV_HEARTBEAT_MESSAGE_EVT);
}
#endif /* CONFIG_BLE_MESH_PROVISIONER_RECV_HB */
#if CONFIG_BLE_MESH_USE_MULTIPLE_NAMESPACE
const char *btc_ble_mesh_provisioner_get_settings_uid(uint8_t index)
{
return bt_mesh_provisioner_get_settings_uid(index);
}
uint8_t btc_ble_mesh_provisioner_get_settings_index(const char *uid)
{
return bt_mesh_provisioner_get_settings_index(uid);
}
uint8_t btc_ble_mesh_provisioner_get_free_settings_count(void)
{
return bt_mesh_provisioner_get_free_settings_count();
}
#endif /* CONFIG_BLE_MESH_USE_MULTIPLE_NAMESPACE */
#endif /* CONFIG_BLE_MESH_PROVISIONER */
static void btc_ble_mesh_heartbeat_msg_recv_cb(u8_t hops, u16_t feature)
static void btc_ble_mesh_node_recv_heartbeat_cb(uint8_t hops, uint16_t feature)
{
esp_ble_mesh_prov_cb_param_t mesh_param = {0};
@@ -810,10 +874,10 @@ static void btc_ble_mesh_heartbeat_msg_recv_cb(u8_t hops, u16_t feature)
}
#if CONFIG_BLE_MESH_LOW_POWER
static void btc_ble_mesh_lpn_cb(u16_t friend_addr, bool established)
static void btc_ble_mesh_lpn_cb(uint16_t friend_addr, bool established)
{
esp_ble_mesh_prov_cb_param_t mesh_param = {0};
u8_t act = 0U;
uint8_t act = 0U;
BT_DBG("%s", __func__);
@@ -831,10 +895,10 @@ static void btc_ble_mesh_lpn_cb(u16_t friend_addr, bool established)
#endif /* CONFIG_BLE_MESH_LOW_POWER */
#if CONFIG_BLE_MESH_FRIEND
void btc_ble_mesh_friend_cb(bool establish, u16_t lpn_addr, u8_t reason)
void btc_ble_mesh_friend_cb(bool establish, uint16_t lpn_addr, uint8_t reason)
{
esp_ble_mesh_prov_cb_param_t mesh_param = {0};
u8_t act = 0U;
uint8_t act = 0U;
BT_DBG("%s", __func__);
@@ -858,8 +922,8 @@ void btc_ble_mesh_friend_cb(bool establish, u16_t lpn_addr, u8_t reason)
#endif /* CONFIG_BLE_MESH_FRIEND */
#if CONFIG_BLE_MESH_GATT_PROXY_CLIENT
static void btc_ble_mesh_proxy_client_adv_recv_cb(const bt_mesh_addr_t *addr, u8_t type,
bt_mesh_proxy_adv_ctx_t *ctx, s8_t rssi)
static void btc_ble_mesh_proxy_client_adv_recv_cb(const bt_mesh_addr_t *addr, uint8_t type,
bt_mesh_proxy_adv_ctx_t *ctx, int8_t rssi)
{
esp_ble_mesh_prov_cb_param_t mesh_param = {0};
@@ -881,7 +945,7 @@ static void btc_ble_mesh_proxy_client_adv_recv_cb(const bt_mesh_addr_t *addr, u8
}
static void btc_ble_mesh_proxy_client_connect_cb(const bt_mesh_addr_t *addr,
u8_t conn_handle, u16_t net_idx)
uint8_t conn_handle, uint16_t net_idx)
{
esp_ble_mesh_prov_cb_param_t mesh_param = {0};
@@ -901,8 +965,8 @@ static void btc_ble_mesh_proxy_client_connect_cb(const bt_mesh_addr_t *addr,
return;
}
static void btc_ble_mesh_proxy_client_disconnect_cb(const bt_mesh_addr_t *addr, u8_t conn_handle,
u16_t net_idx, u8_t reason)
static void btc_ble_mesh_proxy_client_disconnect_cb(const bt_mesh_addr_t *addr, uint8_t conn_handle,
uint16_t net_idx, uint8_t reason)
{
esp_ble_mesh_prov_cb_param_t mesh_param = {0};
@@ -923,8 +987,8 @@ static void btc_ble_mesh_proxy_client_disconnect_cb(const bt_mesh_addr_t *addr,
return;
}
static void btc_ble_mesh_proxy_client_filter_status_recv_cb(u8_t conn_handle, u16_t src, u16_t net_idx,
u8_t filter_type, u16_t list_size)
static void btc_ble_mesh_proxy_client_filter_status_recv_cb(uint8_t conn_handle, uint16_t src, uint16_t net_idx,
uint8_t filter_type, uint16_t list_size)
{
esp_ble_mesh_prov_cb_param_t mesh_param = {0};
@@ -962,10 +1026,12 @@ int btc_ble_mesh_client_model_init(esp_ble_mesh_model_t *model)
return bt_mesh_client_init((struct bt_mesh_model *)model);
}
#if CONFIG_BLE_MESH_DEINIT
int btc_ble_mesh_client_model_deinit(esp_ble_mesh_model_t *model)
{
return bt_mesh_client_deinit((struct bt_mesh_model *)model);
}
#endif /* CONFIG_BLE_MESH_DEINIT */
int32_t btc_ble_mesh_model_pub_period_get(esp_ble_mesh_model_t *mod)
{
@@ -982,7 +1048,7 @@ uint16_t *btc_ble_mesh_model_find_group(esp_ble_mesh_model_t *mod, uint16_t addr
return bt_mesh_model_find_group((struct bt_mesh_model *)mod, addr);
}
esp_ble_mesh_elem_t *btc_ble_mesh_elem_find(u16_t addr)
esp_ble_mesh_elem_t *btc_ble_mesh_elem_find(uint16_t addr)
{
return (esp_ble_mesh_elem_t *)bt_mesh_elem_find(addr);
}
@@ -1010,15 +1076,24 @@ const esp_ble_mesh_comp_t *btc_ble_mesh_comp_get(void)
/* Configuration Models */
extern const struct bt_mesh_model_op bt_mesh_cfg_srv_op[];
extern const struct bt_mesh_model_op bt_mesh_cfg_cli_op[];
extern const struct bt_mesh_model_cb bt_mesh_cfg_srv_cb;
#if CONFIG_BLE_MESH_CFG_CLI
extern const struct bt_mesh_model_op bt_mesh_cfg_cli_op[];
extern const struct bt_mesh_model_cb bt_mesh_cfg_cli_cb;
#endif /* CONFIG_BLE_MESH_CFG_CLI */
/* Health Models */
#if CONFIG_BLE_MESH_HEALTH_SRV
extern const struct bt_mesh_model_op bt_mesh_health_srv_op[];
extern const struct bt_mesh_model_op bt_mesh_health_cli_op[];
extern const struct bt_mesh_model_cb bt_mesh_health_srv_cb;
#endif /* CONFIG_BLE_MESH_HEALTH_SRV */
#if CONFIG_BLE_MESH_HEALTH_CLI
extern const struct bt_mesh_model_op bt_mesh_health_cli_op[];
extern const struct bt_mesh_model_cb bt_mesh_health_cli_cb;
#endif /* CONFIG_BLE_MESH_HEALTH_CLI */
/* Generic Client Models */
#if CONFIG_BLE_MESH_GENERIC_CLIENT
extern const struct bt_mesh_model_op bt_mesh_gen_onoff_cli_op[];
extern const struct bt_mesh_model_op bt_mesh_gen_level_cli_op[];
extern const struct bt_mesh_model_op bt_mesh_gen_def_trans_time_cli_op[];
@@ -1028,22 +1103,34 @@ extern const struct bt_mesh_model_op bt_mesh_gen_battery_cli_op[];
extern const struct bt_mesh_model_op bt_mesh_gen_location_cli_op[];
extern const struct bt_mesh_model_op bt_mesh_gen_property_cli_op[];
extern const struct bt_mesh_model_cb bt_mesh_generic_client_cb;
#endif /* CONFIG_BLE_MESH_GENERIC_CLIENT */
/* Lighting Client Models */
#if CONFIG_BLE_MESH_LIGHTING_CLIENT
extern const struct bt_mesh_model_op bt_mesh_light_lightness_cli_op[];
extern const struct bt_mesh_model_op bt_mesh_light_ctl_cli_op[];
extern const struct bt_mesh_model_op bt_mesh_light_hsl_cli_op[];
extern const struct bt_mesh_model_op bt_mesh_light_xyl_cli_op[];
extern const struct bt_mesh_model_op bt_mesh_light_lc_cli_op[];
extern const struct bt_mesh_model_cb bt_mesh_lighting_client_cb;
#endif /* CONFIG_BLE_MESH_LIGHTING_CLIENT */
/* Sensor Client Models */
#if CONFIG_BLE_MESH_SENSOR_CLI
extern const struct bt_mesh_model_op bt_mesh_sensor_cli_op[];
extern const struct bt_mesh_model_cb bt_mesh_sensor_client_cb;
#endif /* CONFIG_BLE_MESH_SENSOR_CLI */
/* Time and Scenes Client Models */
#if CONFIG_BLE_MESH_TIME_SCENE_CLIENT
extern const struct bt_mesh_model_op bt_mesh_time_cli_op[];
extern const struct bt_mesh_model_op bt_mesh_scene_cli_op[];
extern const struct bt_mesh_model_op bt_mesh_scheduler_cli_op[];
extern const struct bt_mesh_model_cb bt_mesh_time_scene_client_cb;
#endif /* CONFIG_BLE_MESH_TIME_SCENE_CLIENT */
/* Generic Server Models */
#if CONFIG_BLE_MESH_GENERIC_SERVER
extern const struct bt_mesh_model_op bt_mesh_gen_onoff_srv_op[];
extern const struct bt_mesh_model_op bt_mesh_gen_level_srv_op[];
extern const struct bt_mesh_model_op bt_mesh_gen_def_trans_time_srv_op[];
@@ -1072,7 +1159,10 @@ extern const struct bt_mesh_model_cb bt_mesh_gen_user_prop_srv_cb;
extern const struct bt_mesh_model_cb bt_mesh_gen_admin_prop_srv_cb;
extern const struct bt_mesh_model_cb bt_mesh_gen_manu_prop_srv_cb;
extern const struct bt_mesh_model_cb bt_mesh_gen_client_prop_srv_cb;
#endif /* CONFIG_BLE_MESH_GENERIC_SERVER */
/* Lighting Server Models */
#if CONFIG_BLE_MESH_LIGHTING_SERVER
extern const struct bt_mesh_model_op bt_mesh_light_lightness_srv_op[];
extern const struct bt_mesh_model_op bt_mesh_light_lightness_setup_srv_op[];
extern const struct bt_mesh_model_op bt_mesh_light_ctl_srv_op[];
@@ -1084,8 +1174,6 @@ extern const struct bt_mesh_model_op bt_mesh_light_hsl_sat_srv_op[];
extern const struct bt_mesh_model_op bt_mesh_light_hsl_setup_srv_op[];
extern const struct bt_mesh_model_op bt_mesh_light_xyl_srv_op[];
extern const struct bt_mesh_model_op bt_mesh_light_xyl_setup_srv_op[];
extern const struct bt_mesh_model_op bt_mesh_light_lc_srv_op[];
extern const struct bt_mesh_model_op bt_mesh_light_lc_setup_srv_op[];
extern const struct bt_mesh_model_cb bt_mesh_light_lightness_srv_cb;
extern const struct bt_mesh_model_cb bt_mesh_light_lightness_setup_srv_cb;
extern const struct bt_mesh_model_cb bt_mesh_light_ctl_srv_cb;
@@ -1097,9 +1185,14 @@ extern const struct bt_mesh_model_cb bt_mesh_light_hsl_sat_srv_cb;
extern const struct bt_mesh_model_cb bt_mesh_light_hsl_setup_srv_cb;
extern const struct bt_mesh_model_cb bt_mesh_light_xyl_srv_cb;
extern const struct bt_mesh_model_cb bt_mesh_light_xyl_setup_srv_cb;
extern const struct bt_mesh_model_op bt_mesh_light_lc_srv_op[];
extern const struct bt_mesh_model_op bt_mesh_light_lc_setup_srv_op[];
extern const struct bt_mesh_model_cb bt_mesh_light_lc_srv_cb;
extern const struct bt_mesh_model_cb bt_mesh_light_lc_setup_srv_cb;
#endif /* CONFIG_BLE_MESH_LIGHTING_SERVER */
/* Time and Scenes Server Models */
#if CONFIG_BLE_MESH_TIME_SCENE_SERVER
extern const struct bt_mesh_model_op bt_mesh_time_srv_op[];
extern const struct bt_mesh_model_op bt_mesh_time_setup_srv_op[];
extern const struct bt_mesh_model_op bt_mesh_scene_srv_op[];
@@ -1112,11 +1205,15 @@ extern const struct bt_mesh_model_cb bt_mesh_scene_srv_cb;
extern const struct bt_mesh_model_cb bt_mesh_scene_setup_srv_cb;
extern const struct bt_mesh_model_cb bt_mesh_scheduler_srv_cb;
extern const struct bt_mesh_model_cb bt_mesh_scheduler_setup_srv_cb;
#endif /* CONFIG_BLE_MESH_TIME_SCENE_SERVER */
/* Sensor Server Models */
#if CONFIG_BLE_MESH_SENSOR_SERVER
extern const struct bt_mesh_model_op bt_mesh_sensor_srv_op[];
extern const struct bt_mesh_model_op bt_mesh_sensor_setup_srv_op[];
extern const struct bt_mesh_model_cb bt_mesh_sensor_srv_cb;
extern const struct bt_mesh_model_cb bt_mesh_sensor_setup_srv_cb;
#endif /* CONFIG_BLE_MESH_SENSOR_SERVER */
static void btc_ble_mesh_model_op_set(esp_ble_mesh_model_t *model)
{
@@ -1138,10 +1235,11 @@ static void btc_ble_mesh_model_op_set(esp_ble_mesh_model_t *model)
model->cb = (esp_ble_mesh_model_cbs_t *)&bt_mesh_cfg_srv_cb;
struct bt_mesh_cfg_srv *srv = (struct bt_mesh_cfg_srv *)model->user_data;
if (srv) {
srv->hb_sub.func = btc_ble_mesh_heartbeat_msg_recv_cb;
srv->hb_sub.func = btc_ble_mesh_node_recv_heartbeat_cb;
}
break;
}
#if CONFIG_BLE_MESH_CFG_CLI
case BLE_MESH_MODEL_ID_CFG_CLI: {
model->op = (esp_ble_mesh_model_op_t *)bt_mesh_cfg_cli_op;
model->cb = (esp_ble_mesh_model_cbs_t *)&bt_mesh_cfg_cli_cb;
@@ -1151,6 +1249,8 @@ static void btc_ble_mesh_model_op_set(esp_ble_mesh_model_t *model)
}
break;
}
#endif /* CONFIG_BLE_MESH_CFG_CLI */
#if CONFIG_BLE_MESH_HEALTH_SRV
case BLE_MESH_MODEL_ID_HEALTH_SRV: {
model->op = (esp_ble_mesh_model_op_t *)bt_mesh_health_srv_op;
model->cb = (esp_ble_mesh_model_cbs_t *)&bt_mesh_health_srv_cb;
@@ -1163,6 +1263,8 @@ static void btc_ble_mesh_model_op_set(esp_ble_mesh_model_t *model)
}
break;
}
#endif /* CONFIG_BLE_MESH_HEALTH_SRV */
#if CONFIG_BLE_MESH_HEALTH_CLI
case BLE_MESH_MODEL_ID_HEALTH_CLI: {
model->op = (esp_ble_mesh_model_op_t *)bt_mesh_health_cli_op;
model->cb = (esp_ble_mesh_model_cbs_t *)&bt_mesh_health_cli_cb;
@@ -1172,6 +1274,8 @@ static void btc_ble_mesh_model_op_set(esp_ble_mesh_model_t *model)
}
break;
}
#endif /* CONFIG_BLE_MESH_HEALTH_CLI */
#if CONFIG_BLE_MESH_GENERIC_CLIENT
case BLE_MESH_MODEL_ID_GEN_ONOFF_CLI: {
model->op = (esp_ble_mesh_model_op_t *)bt_mesh_gen_onoff_cli_op;
model->cb = (esp_ble_mesh_model_cbs_t *)&bt_mesh_generic_client_cb;
@@ -1244,6 +1348,8 @@ static void btc_ble_mesh_model_op_set(esp_ble_mesh_model_t *model)
}
break;
}
#endif /* CONFIG_BLE_MESH_GENERIC_CLIENT */
#if CONFIG_BLE_MESH_LIGHTING_CLIENT
case BLE_MESH_MODEL_ID_LIGHT_LIGHTNESS_CLI: {
model->op = (esp_ble_mesh_model_op_t *)bt_mesh_light_lightness_cli_op;
model->cb = (esp_ble_mesh_model_cbs_t *)&bt_mesh_lighting_client_cb;
@@ -1289,6 +1395,8 @@ static void btc_ble_mesh_model_op_set(esp_ble_mesh_model_t *model)
}
break;
}
#endif /* CONFIG_BLE_MESH_LIGHTING_CLIENT */
#if CONFIG_BLE_MESH_SENSOR_CLI
case BLE_MESH_MODEL_ID_SENSOR_CLI: {
model->op = (esp_ble_mesh_model_op_t *)bt_mesh_sensor_cli_op;
model->cb = (esp_ble_mesh_model_cbs_t *)&bt_mesh_sensor_client_cb;
@@ -1298,6 +1406,8 @@ static void btc_ble_mesh_model_op_set(esp_ble_mesh_model_t *model)
}
break;
}
#endif /* CONFIG_BLE_MESH_SENSOR_CLI */
#if CONFIG_BLE_MESH_TIME_SCENE_CLIENT
case BLE_MESH_MODEL_ID_TIME_CLI: {
model->op = (esp_ble_mesh_model_op_t *)bt_mesh_time_cli_op;
model->cb = (esp_ble_mesh_model_cbs_t *)&bt_mesh_time_scene_client_cb;
@@ -1325,6 +1435,8 @@ static void btc_ble_mesh_model_op_set(esp_ble_mesh_model_t *model)
}
break;
}
#endif /* CONFIG_BLE_MESH_TIME_SCENE_CLIENT */
#if CONFIG_BLE_MESH_GENERIC_SERVER
case BLE_MESH_MODEL_ID_GEN_ONOFF_SRV:
model->op = (esp_ble_mesh_model_op_t *)bt_mesh_gen_onoff_srv_op;
model->cb = (esp_ble_mesh_model_cbs_t *)&bt_mesh_gen_onoff_srv_cb;
@@ -1423,6 +1535,8 @@ static void btc_ble_mesh_model_op_set(esp_ble_mesh_model_t *model)
model->pub->update = (esp_ble_mesh_cb_t)btc_ble_mesh_model_publish_update;
}
break;
#endif /* CONFIG_BLE_MESH_GENERIC_SERVER */
#if CONFIG_BLE_MESH_LIGHTING_SERVER
case BLE_MESH_MODEL_ID_LIGHT_LIGHTNESS_SRV:
model->op = (esp_ble_mesh_model_op_t *)bt_mesh_light_lightness_srv_op;
model->cb = (esp_ble_mesh_model_cbs_t *)&bt_mesh_light_lightness_srv_cb;
@@ -1514,6 +1628,8 @@ static void btc_ble_mesh_model_op_set(esp_ble_mesh_model_t *model)
model->pub->update = (esp_ble_mesh_cb_t)btc_ble_mesh_model_publish_update;
}
break;
#endif /* CONFIG_BLE_MESH_LIGHTING_SERVER */
#if CONFIG_BLE_MESH_TIME_SCENE_SERVER
case BLE_MESH_MODEL_ID_TIME_SRV:
model->op = (esp_ble_mesh_model_op_t *)bt_mesh_time_srv_op;
model->cb = (esp_ble_mesh_model_cbs_t *)&bt_mesh_time_srv_cb;
@@ -1558,6 +1674,8 @@ static void btc_ble_mesh_model_op_set(esp_ble_mesh_model_t *model)
model->pub->update = (esp_ble_mesh_cb_t)btc_ble_mesh_model_publish_update;
}
break;
#endif /* CONFIG_BLE_MESH_TIME_SCENE_SERVER */
#if CONFIG_BLE_MESH_SENSOR_SERVER
case BLE_MESH_MODEL_ID_SENSOR_SRV:
model->op = (esp_ble_mesh_model_op_t *)bt_mesh_sensor_srv_op;
model->cb = (esp_ble_mesh_model_cbs_t *)&bt_mesh_sensor_srv_cb;
@@ -1572,6 +1690,7 @@ static void btc_ble_mesh_model_op_set(esp_ble_mesh_model_t *model)
model->pub->update = (esp_ble_mesh_cb_t)btc_ble_mesh_model_publish_update;
}
break;
#endif /* CONFIG_BLE_MESH_SENSOR_SERVER */
default:
goto set_vnd_op;
}
@@ -1692,6 +1811,34 @@ void btc_ble_mesh_prov_call_handler(btc_msg_t *msg)
act = ESP_BLE_MESH_NODE_PROV_INPUT_STRING_COMP_EVT;
param.node_prov_input_str_comp.err_code = bt_mesh_input_string(arg->input_string.string);
break;
case BTC_BLE_MESH_ACT_NODE_ADD_LOCAL_NET_KEY:
act = ESP_BLE_MESH_NODE_ADD_LOCAL_NET_KEY_COMP_EVT;
param.node_add_net_key_comp.net_idx = arg->node_add_local_net_key.net_idx;
param.node_add_net_key_comp.err_code =
bt_mesh_node_local_net_key_add(arg->node_add_local_net_key.net_idx,
arg->node_add_local_net_key.net_key);
break;
case BTC_BLE_MESH_ACT_NODE_ADD_LOCAL_APP_KEY:
act = ESP_BLE_MESH_NODE_ADD_LOCAL_APP_KEY_COMP_EVT;
param.node_add_app_key_comp.net_idx = arg->node_add_local_app_key.net_idx;
param.node_add_app_key_comp.app_idx = arg->node_add_local_app_key.app_idx;
param.node_add_app_key_comp.err_code =
bt_mesh_node_local_app_key_add(arg->node_add_local_app_key.net_idx,
arg->node_add_local_app_key.app_idx,
arg->node_add_local_app_key.app_key);
break;
case BTC_BLE_MESH_ACT_NODE_BIND_APP_KEY_TO_MODEL:
act = ESP_BLE_MESH_NODE_BIND_APP_KEY_TO_MODEL_COMP_EVT;
param.node_bind_app_key_to_model_comp.element_addr = arg->node_local_mod_app_bind.element_addr;
param.node_bind_app_key_to_model_comp.model_id = arg->node_local_mod_app_bind.model_id;
param.node_bind_app_key_to_model_comp.company_id = arg->node_local_mod_app_bind.company_id;
param.node_bind_app_key_to_model_comp.app_idx = arg->node_local_mod_app_bind.app_idx;
param.node_bind_app_key_to_model_comp.err_code =
bt_mesh_node_bind_app_key_to_model(arg->node_local_mod_app_bind.element_addr,
arg->node_local_mod_app_bind.model_id,
arg->node_local_mod_app_bind.company_id,
arg->node_local_mod_app_bind.app_idx);
break;
#endif /* CONFIG_BLE_MESH_NODE */
#if (CONFIG_BLE_MESH_NODE && CONFIG_BLE_MESH_PB_GATT) || \
CONFIG_BLE_MESH_GATT_PROXY_SERVER
@@ -1726,13 +1873,15 @@ void btc_ble_mesh_prov_call_handler(btc_msg_t *msg)
act = ESP_BLE_MESH_PROVISIONER_PROV_INPUT_STRING_COMP_EVT;
param.provisioner_prov_input_str_comp.err_code =
bt_mesh_provisioner_set_oob_input_data(arg->provisioner_input_str.link_idx,
(const u8_t *)&arg->provisioner_input_str.string, false);
(const uint8_t *)&arg->provisioner_input_str.string,
false);
break;
case BTC_BLE_MESH_ACT_PROVISIONER_INPUT_NUM:
act = ESP_BLE_MESH_PROVISIONER_PROV_INPUT_NUMBER_COMP_EVT;
param.provisioner_prov_input_num_comp.err_code =
bt_mesh_provisioner_set_oob_input_data(arg->provisioner_input_num.link_idx,
(const u8_t *)&arg->provisioner_input_num.number, true);
(const uint8_t *)&arg->provisioner_input_num.number,
true);
break;
case BTC_BLE_MESH_ACT_PROVISIONER_ENABLE:
act = ESP_BLE_MESH_PROVISIONER_PROV_ENABLE_COMP_EVT;
@@ -1817,8 +1966,8 @@ void btc_ble_mesh_prov_call_handler(btc_msg_t *msg)
bt_mesh_provisioner_set_node_name(arg->set_node_name.index, arg->set_node_name.name);
break;
case BTC_BLE_MESH_ACT_PROVISIONER_ADD_LOCAL_APP_KEY: {
const u8_t *app_key = NULL;
const u8_t zero[16] = {0};
const uint8_t *app_key = NULL;
const uint8_t zero[16] = {0};
if (memcmp(arg->add_local_app_key.app_key, zero, 16)) {
app_key = arg->add_local_app_key.app_key;
}
@@ -1851,8 +2000,8 @@ void btc_ble_mesh_prov_call_handler(btc_msg_t *msg)
arg->local_mod_app_bind.app_idx);
break;
case BTC_BLE_MESH_ACT_PROVISIONER_ADD_LOCAL_NET_KEY: {
const u8_t *net_key = NULL;
const u8_t zero[16] = {0};
const uint8_t *net_key = NULL;
const uint8_t zero[16] = {0};
if (memcmp(arg->add_local_net_key.net_key, zero, 16)) {
net_key = arg->add_local_net_key.net_key;
}
@@ -1888,6 +2037,83 @@ void btc_ble_mesh_prov_call_handler(btc_msg_t *msg)
param.provisioner_delete_node_with_addr_comp.err_code =
bt_mesh_provisioner_delete_node_with_node_addr(arg->delete_node_with_addr.unicast_addr);
break;
#if CONFIG_BLE_MESH_PROVISIONER_RECV_HB
case BTC_BLE_MESH_ACT_PROVISIONER_ENABLE_HEARTBEAT_RECV:
act = ESP_BLE_MESH_PROVISIONER_ENABLE_HEARTBEAT_RECV_COMP_EVT;
param.provisioner_enable_heartbeat_recv_comp.enable = arg->enable_heartbeat_recv.enable;
param.provisioner_enable_heartbeat_recv_comp.err_code =
bt_mesh_provisioner_recv_heartbeat(arg->enable_heartbeat_recv.enable ?
btc_ble_mesh_provisioner_recv_heartbeat_cb : NULL);
break;
case BTC_BLE_MESH_ACT_PROVISIONER_SET_HEARTBEAT_FILTER_TYPE:
act = ESP_BLE_MESH_PROVISIONER_SET_HEARTBEAT_FILTER_TYPE_COMP_EVT;
param.provisioner_set_heartbeat_filter_type_comp.type = arg->set_heartbeat_filter_type.type;
param.provisioner_set_heartbeat_filter_type_comp.err_code =
bt_mesh_provisioner_set_heartbeat_filter_type(arg->set_heartbeat_filter_type.type);
break;
case BTC_BLE_MESH_ACT_PROVISIONER_SET_HEARTBEAT_FILTER_INFO:
act = ESP_BLE_MESH_PROVISIONER_SET_HEARTBEAT_FILTER_INFO_COMP_EVT;
param.provisioner_set_heartbeat_filter_info_comp.op = arg->set_heartbeat_filter_info.op;
param.provisioner_set_heartbeat_filter_info_comp.hb_src = arg->set_heartbeat_filter_info.hb_src;
param.provisioner_set_heartbeat_filter_info_comp.hb_dst = arg->set_heartbeat_filter_info.hb_dst;
param.provisioner_set_heartbeat_filter_info_comp.err_code =
bt_mesh_provisioner_set_heartbeat_filter_info(arg->set_heartbeat_filter_info.op,
arg->set_heartbeat_filter_info.hb_src,
arg->set_heartbeat_filter_info.hb_dst);
break;
#endif /* CONFIG_BLE_MESH_PROVISIONER_RECV_HB */
#if CONFIG_BLE_MESH_SETTINGS
case BTC_BLE_MESH_ACT_PROVISIONER_DIRECT_ERASE_SETTINGS:
act = ESP_BLE_MESH_PROVISIONER_DRIECT_ERASE_SETTINGS_COMP_EVT;
param.provisioner_direct_erase_settings_comp.err_code = bt_mesh_provisioner_direct_erase_settings();
break;
#endif /* CONFIG_BLE_MESH_SETTINGS */
#if CONFIG_BLE_MESH_USE_MULTIPLE_NAMESPACE
case BTC_BLE_MESH_ACT_PROVISIONER_OPEN_SETTINGS_WITH_INDEX:
act = ESP_BLE_MESH_PROVISIONER_OPEN_SETTINGS_WITH_INDEX_COMP_EVT;
param.provisioner_open_settings_with_index_comp.index = arg->open_settings_with_index.index;
param.provisioner_open_settings_with_index_comp.err_code =
bt_mesh_provisioner_open_settings_with_index(arg->open_settings_with_index.index);
break;
case BTC_BLE_MESH_ACT_PROVISIONER_OPEN_SETTINGS_WITH_UID:
act = ESP_BLE_MESH_PROVISIONER_OPEN_SETTINGS_WITH_UID_COMP_EVT;
strncpy(param.provisioner_open_settings_with_uid_comp.uid,
arg->open_settings_with_uid.uid, ESP_BLE_MESH_SETTINGS_UID_SIZE + 1);
param.provisioner_open_settings_with_uid_comp.err_code =
bt_mesh_provisioner_open_settings_with_uid(arg->open_settings_with_uid.uid,
&param.provisioner_open_settings_with_uid_comp.index);
break;
case BTC_BLE_MESH_ACT_PROVISIONER_CLOSE_SETTINGS_WITH_INDEX:
act = ESP_BLE_MESH_PROVISIONER_CLOSE_SETTINGS_WITH_INDEX_COMP_EVT;
param.provisioner_close_settings_with_index_comp.index = arg->close_settings_with_index.index;
param.provisioner_close_settings_with_index_comp.err_code =
bt_mesh_provisioner_close_settings_with_index(arg->close_settings_with_index.index,
arg->close_settings_with_index.erase);
break;
case BTC_BLE_MESH_ACT_PROVISIONER_CLOSE_SETTINGS_WITH_UID:
act = ESP_BLE_MESH_PROVISIONER_CLOSE_SETTINGS_WITH_UID_COMP_EVT;
strncpy(param.provisioner_close_settings_with_uid_comp.uid,
arg->close_settings_with_uid.uid, ESP_BLE_MESH_SETTINGS_UID_SIZE + 1);
param.provisioner_close_settings_with_uid_comp.err_code =
bt_mesh_provisioner_close_settings_with_uid(arg->close_settings_with_uid.uid,
arg->close_settings_with_uid.erase,
&param.provisioner_close_settings_with_uid_comp.index);
break;
case BTC_BLE_MESH_ACT_PROVISIONER_DELETE_SETTINGS_WITH_INDEX:
act = ESP_BLE_MESH_PROVISIONER_DELETE_SETTINGS_WITH_INDEX_COMP_EVT;
param.provisioner_delete_settings_with_index_comp.index = arg->delete_settings_with_index.index;
param.provisioner_delete_settings_with_index_comp.err_code =
bt_mesh_provisioner_delete_settings_with_index(arg->delete_settings_with_index.index);
break;
case BTC_BLE_MESH_ACT_PROVISIONER_DELETE_SETTINGS_WITH_UID:
act = ESP_BLE_MESH_PROVISIONER_DELETE_SETTINGS_WITH_UID_COMP_EVT;
strncpy(param.provisioner_delete_settings_with_uid_comp.uid,
arg->delete_settings_with_uid.uid, ESP_BLE_MESH_SETTINGS_UID_SIZE + 1);
param.provisioner_delete_settings_with_uid_comp.err_code =
bt_mesh_provisioner_delete_settings_with_uid(arg->delete_settings_with_uid.uid,
&param.provisioner_delete_settings_with_uid_comp.index);
break;
#endif /* CONFIG_BLE_MESH_USE_MULTIPLE_NAMESPACE */
#endif /* CONFIG_BLE_MESH_PROVISIONER */
#if CONFIG_BLE_MESH_FAST_PROV
case BTC_BLE_MESH_ACT_SET_FAST_PROV_INFO:
@@ -1983,26 +2209,6 @@ void btc_ble_mesh_prov_call_handler(btc_msg_t *msg)
break;
}
#endif /* CONFIG_BLE_MESH_GATT_PROXY_CLIENT */
#if CONFIG_BLE_MESH_SUPPORT_BLE_ADV
case BTC_BLE_MESH_ACT_START_BLE_ADVERTISING: {
struct bt_mesh_ble_adv_param *set = (struct bt_mesh_ble_adv_param *)&arg->start_ble_advertising.param;
struct bt_mesh_ble_adv_data *data = NULL;
if (arg->start_ble_advertising.data.adv_data_len ||
arg->start_ble_advertising.data.scan_rsp_data_len) {
data = (struct bt_mesh_ble_adv_data *)&arg->start_ble_advertising.data;
}
act = ESP_BLE_MESH_START_BLE_ADVERTISING_COMP_EVT;
param.start_ble_advertising_comp.err_code =
bt_mesh_start_ble_advertising(set, data, &param.start_ble_advertising_comp.index);
break;
}
case BTC_BLE_MESH_ACT_STOP_BLE_ADVERTISING:
act = ESP_BLE_MESH_STOP_BLE_ADVERTISING_COMP_EVT;
param.stop_ble_advertising_comp.index = arg->stop_ble_advertising.index;
param.stop_ble_advertising_comp.err_code =
bt_mesh_stop_ble_advertising(arg->stop_ble_advertising.index);
break;
#endif /* CONFIG_BLE_MESH_SUPPORT_BLE_ADV */
case BTC_BLE_MESH_ACT_MODEL_SUBSCRIBE_GROUP_ADDR:
act = ESP_BLE_MESH_MODEL_SUBSCRIBE_GROUP_ADDR_COMP_EVT;
param.model_sub_group_addr_comp.element_addr = arg->model_sub_group_addr.element_addr;
@@ -2027,10 +2233,12 @@ void btc_ble_mesh_prov_call_handler(btc_msg_t *msg)
arg->model_unsub_group_addr.model_id,
arg->model_unsub_group_addr.group_addr);
break;
#if CONFIG_BLE_MESH_DEINIT
case BTC_BLE_MESH_ACT_DEINIT_MESH:
act = ESP_BLE_MESH_DEINIT_MESH_COMP_EVT;
param.deinit_mesh_comp.err_code = bt_mesh_deinit((struct bt_mesh_deinit_param *)&arg->mesh_deinit.param);
break;
#endif /* CONFIG_BLE_MESH_DEINIT */
default:
BT_WARN("%s, Unknown act %d", __func__, msg->act);
return;
@@ -2142,6 +2350,7 @@ void btc_ble_mesh_model_call_handler(btc_msg_t *msg)
arg->model_send.opcode, err);
break;
}
#if CONFIG_BLE_MESH_SERVER_MODEL
case BTC_BLE_MESH_ACT_SERVER_MODEL_UPDATE_STATE:
err = bt_mesh_update_binding_state(
(struct bt_mesh_model *)arg->model_update_state.model, arg->model_update_state.type,
@@ -2149,6 +2358,7 @@ void btc_ble_mesh_model_call_handler(btc_msg_t *msg)
btc_ble_mesh_server_model_update_state_comp_cb(arg->model_update_state.model,
arg->model_update_state.type, err);
break;
#endif /* CONFIG_BLE_MESH_SERVER_MODEL */
default:
BT_WARN("%s, Unknown act %d", __func__, msg->act);
break;

View File

@@ -16,9 +16,11 @@
#include <errno.h>
#include "btc_ble_mesh_sensor_model.h"
#include "sensor_client.h"
#include "esp_ble_mesh_sensor_model_api.h"
#if CONFIG_BLE_MESH_SENSOR_CLI
#include "sensor_client.h"
/* Sensor Client Models related functions */
static inline void btc_ble_mesh_sensor_client_cb_to_app(esp_ble_mesh_sensor_client_cb_event_t event,
@@ -35,7 +37,7 @@ void btc_ble_mesh_sensor_client_arg_deep_copy(btc_msg_t *msg, void *p_dest, void
{
btc_ble_mesh_sensor_client_args_t *dst = (btc_ble_mesh_sensor_client_args_t *)p_dest;
btc_ble_mesh_sensor_client_args_t *src = (btc_ble_mesh_sensor_client_args_t *)p_src;
u16_t length = 0U;
uint16_t length = 0U;
if (!msg || !dst || !src) {
BT_ERR("%s, Invalid parameter", __func__);
@@ -246,7 +248,7 @@ static void btc_ble_mesh_sensor_client_copy_req_data(btc_msg_t *msg, void *p_des
{
esp_ble_mesh_sensor_client_cb_param_t *p_dest_data = (esp_ble_mesh_sensor_client_cb_param_t *)p_dest;
esp_ble_mesh_sensor_client_cb_param_t *p_src_data = (esp_ble_mesh_sensor_client_cb_param_t *)p_src;
u16_t length = 0U;
uint16_t length = 0U;
if (!msg || !p_src_data || !p_dest_data) {
BT_ERR("%s, Invalid parameter", __func__);
@@ -460,10 +462,10 @@ static void btc_ble_mesh_sensor_client_callback(esp_ble_mesh_sensor_client_cb_pa
btc_ble_mesh_sensor_client_copy_req_data);
}
void bt_mesh_sensor_client_cb_evt_to_btc(u32_t opcode, u8_t evt_type,
void bt_mesh_sensor_client_cb_evt_to_btc(uint32_t opcode, uint8_t evt_type,
struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
const u8_t *val, size_t len)
const uint8_t *val, size_t len)
{
esp_ble_mesh_sensor_client_cb_param_t cb_params = {0};
esp_ble_mesh_client_common_param_t params = {0};
@@ -514,7 +516,7 @@ void bt_mesh_sensor_client_cb_evt_to_btc(u32_t opcode, u8_t evt_type,
return;
}
void btc_ble_mesh_sensor_client_publish_callback(u32_t opcode, struct bt_mesh_model *model,
void btc_ble_mesh_sensor_client_publish_callback(uint32_t opcode, struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
struct net_buf_simple *buf)
{
@@ -612,6 +614,10 @@ void btc_ble_mesh_sensor_client_cb_handler(btc_msg_t *msg)
return;
}
#endif /* CONFIG_BLE_MESH_SENSOR_CLI */
#if CONFIG_BLE_MESH_SENSOR_SERVER
/* Sensor Server Models related functions */
static inline void btc_ble_mesh_sensor_server_cb_to_app(esp_ble_mesh_sensor_server_cb_event_t event,
@@ -628,7 +634,7 @@ static void btc_ble_mesh_sensor_server_copy_req_data(btc_msg_t *msg, void *p_des
{
esp_ble_mesh_sensor_server_cb_param_t *p_dest_data = (esp_ble_mesh_sensor_server_cb_param_t *)p_dest;
esp_ble_mesh_sensor_server_cb_param_t *p_src_data = (esp_ble_mesh_sensor_server_cb_param_t *)p_src;
u16_t length = 0U;
uint16_t length = 0U;
if (!msg || !p_src_data || !p_dest_data) {
BT_ERR("%s, Invalid parameter", __func__);
@@ -823,9 +829,9 @@ static void btc_ble_mesh_sensor_server_callback(esp_ble_mesh_sensor_server_cb_pa
btc_ble_mesh_sensor_server_copy_req_data);
}
void bt_mesh_sensor_server_cb_evt_to_btc(u8_t evt_type, struct bt_mesh_model *model,
void bt_mesh_sensor_server_cb_evt_to_btc(uint8_t evt_type, struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
const u8_t *val, size_t len)
const uint8_t *val, size_t len)
{
esp_ble_mesh_sensor_server_cb_param_t cb_params = {0};
uint8_t act = 0U;
@@ -888,3 +894,5 @@ void btc_ble_mesh_sensor_server_cb_handler(btc_msg_t *msg)
btc_ble_mesh_sensor_server_free_req_data(msg);
return;
}
#endif /* CONFIG_BLE_MESH_SENSOR_SERVER */

View File

@@ -16,9 +16,11 @@
#include <errno.h>
#include "btc_ble_mesh_time_scene_model.h"
#include "time_scene_client.h"
#include "esp_ble_mesh_time_scene_model_api.h"
#if CONFIG_BLE_MESH_TIME_SCENE_CLIENT
#include "time_scene_client.h"
/* Time and Scenes Client Models related functions */
static inline void btc_ble_mesh_time_scene_client_cb_to_app(esp_ble_mesh_time_scene_client_cb_event_t event,
@@ -118,7 +120,7 @@ static void btc_ble_mesh_time_scene_client_copy_req_data(btc_msg_t *msg, void *p
{
esp_ble_mesh_time_scene_client_cb_param_t *p_dest_data = (esp_ble_mesh_time_scene_client_cb_param_t *)p_dest;
esp_ble_mesh_time_scene_client_cb_param_t *p_src_data = (esp_ble_mesh_time_scene_client_cb_param_t *)p_src;
u16_t length = 0U;
uint16_t length = 0U;
if (!msg || !p_src_data || !p_dest_data) {
BT_ERR("%s, Invalid parameter", __func__);
@@ -224,10 +226,10 @@ static void btc_ble_mesh_time_scene_client_callback(esp_ble_mesh_time_scene_clie
btc_ble_mesh_time_scene_client_copy_req_data);
}
void bt_mesh_time_scene_client_cb_evt_to_btc(u32_t opcode, u8_t evt_type,
void bt_mesh_time_scene_client_cb_evt_to_btc(uint32_t opcode, uint8_t evt_type,
struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
const u8_t *val, size_t len)
const uint8_t *val, size_t len)
{
esp_ble_mesh_time_scene_client_cb_param_t cb_params = {0};
esp_ble_mesh_client_common_param_t params = {0};
@@ -278,7 +280,7 @@ void bt_mesh_time_scene_client_cb_evt_to_btc(u32_t opcode, u8_t evt_type,
return;
}
void btc_ble_mesh_time_scene_client_publish_callback(u32_t opcode, struct bt_mesh_model *model,
void btc_ble_mesh_time_scene_client_publish_callback(uint32_t opcode, struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
struct net_buf_simple *buf)
{
@@ -376,6 +378,10 @@ void btc_ble_mesh_time_scene_client_cb_handler(btc_msg_t *msg)
return;
}
#endif /* CONFIG_BLE_MESH_TIME_SCENE_CLIENT */
#if CONFIG_BLE_MESH_TIME_SCENE_SERVER
/* Time and Scenes Server Models related functions */
static inline void btc_ble_mesh_time_scene_server_cb_to_app(esp_ble_mesh_time_scene_server_cb_event_t event,
@@ -406,9 +412,9 @@ static void btc_ble_mesh_time_scene_server_callback(esp_ble_mesh_time_scene_serv
btc_transfer_context(&msg, cb_params, sizeof(esp_ble_mesh_time_scene_server_cb_param_t), NULL);
}
void bt_mesh_time_scene_server_cb_evt_to_btc(u8_t evt_type, struct bt_mesh_model *model,
void bt_mesh_time_scene_server_cb_evt_to_btc(uint8_t evt_type, struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
const u8_t *val, size_t len)
const uint8_t *val, size_t len)
{
esp_ble_mesh_time_scene_server_cb_param_t cb_params = {0};
uint8_t act = 0U;
@@ -474,3 +480,4 @@ void btc_ble_mesh_time_scene_server_cb_handler(btc_msg_t *msg)
return;
}
#endif /* CONFIG_BLE_MESH_TIME_SCENE_SERVER */

View File

@@ -0,0 +1,62 @@
// Copyright 2020 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 _BTC_BLE_MESH_BLE_H_
#define _BTC_BLE_MESH_BLE_H_
#include <stdint.h>
#include "btc/btc_manage.h"
#include "mesh_bearer_adapt.h"
#include "esp_ble_mesh_ble_api.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef union {
struct {
esp_ble_mesh_ble_adv_param_t param;
esp_ble_mesh_ble_adv_data_t data;
} start_ble_adv;
struct {
uint8_t index;
} stop_ble_adv;
struct {
esp_ble_mesh_ble_scan_param_t param;
} start_ble_scan;
struct {
/* RFU */
} stop_ble_scan;
} btc_ble_mesh_ble_args_t;
typedef enum {
BTC_BLE_MESH_ACT_START_BLE_ADV,
BTC_BLE_MESH_ACT_STOP_BLE_ADV,
BTC_BLE_MESH_ACT_START_BLE_SCAN,
BTC_BLE_MESH_ACT_STOP_BLE_SCAN,
} btc_ble_mesh_ble_act_t;
void bt_mesh_ble_scan_cb_evt_to_btc(const bt_mesh_addr_t *addr,
uint8_t adv_type, uint8_t data[],
uint16_t length, int8_t rssi);
void btc_ble_mesh_ble_call_handler(btc_msg_t *msg);
void btc_ble_mesh_ble_cb_handler(btc_msg_t *msg);
#ifdef __cplusplus
}
#endif
#endif /* _BTC_BLE_MESH_BLE_H_ */

View File

@@ -53,14 +53,14 @@ void btc_ble_mesh_config_client_cb_handler(btc_msg_t *msg);
void btc_ble_mesh_config_client_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src);
void btc_ble_mesh_config_client_publish_callback(u32_t opcode, struct bt_mesh_model *model,
void btc_ble_mesh_config_client_publish_callback(uint32_t opcode, struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
struct net_buf_simple *buf);
void bt_mesh_config_client_cb_evt_to_btc(u32_t opcode, u8_t evt_type,
void bt_mesh_config_client_cb_evt_to_btc(uint32_t opcode, uint8_t evt_type,
struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
const u8_t *val, size_t len);
const uint8_t *val, size_t len);
void btc_ble_mesh_config_server_cb_handler(btc_msg_t *msg);
@@ -69,9 +69,9 @@ typedef enum {
BTC_BLE_MESH_EVT_CONFIG_SERVER_MAX,
} btc_ble_mesh_config_server_evt_t;
void bt_mesh_config_server_cb_evt_to_btc(u8_t evt_type, struct bt_mesh_model *model,
void bt_mesh_config_server_cb_evt_to_btc(uint8_t evt_type, struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
const u8_t *val, size_t len);
const uint8_t *val, size_t len);
#ifdef __cplusplus
}

View File

@@ -53,14 +53,14 @@ void btc_ble_mesh_generic_client_cb_handler(btc_msg_t *msg);
void btc_ble_mesh_generic_client_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src);
void btc_ble_mesh_generic_client_publish_callback(u32_t opcode, struct bt_mesh_model *model,
void btc_ble_mesh_generic_client_publish_callback(uint32_t opcode, struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
struct net_buf_simple *buf);
void bt_mesh_generic_client_cb_evt_to_btc(u32_t opcode, u8_t evt_type,
void bt_mesh_generic_client_cb_evt_to_btc(uint32_t opcode, uint8_t evt_type,
struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
const u8_t *val, size_t len);
const uint8_t *val, size_t len);
typedef enum {
BTC_BLE_MESH_EVT_GENERIC_SERVER_STATE_CHANGE,
@@ -69,9 +69,9 @@ typedef enum {
BTC_BLE_MESH_EVT_GENERIC_SERVER_MAX,
} btc_ble_mesh_generic_server_evt_t;
void bt_mesh_generic_server_cb_evt_to_btc(u8_t evt_type, struct bt_mesh_model *model,
void bt_mesh_generic_server_cb_evt_to_btc(uint8_t evt_type, struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
const u8_t *val, size_t len);
const uint8_t *val, size_t len);
void btc_ble_mesh_generic_server_cb_handler(btc_msg_t *msg);

View File

@@ -53,14 +53,14 @@ void btc_ble_mesh_health_client_call_handler(btc_msg_t *msg);
void btc_ble_mesh_health_client_cb_handler(btc_msg_t *msg);
void btc_ble_mesh_health_publish_callback(u32_t opcode, struct bt_mesh_model *model,
void btc_ble_mesh_health_publish_callback(uint32_t opcode, struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
struct net_buf_simple *buf);
void bt_mesh_health_client_cb_evt_to_btc(u32_t opcode, u8_t evt_type,
void bt_mesh_health_client_cb_evt_to_btc(uint32_t opcode, uint8_t evt_type,
struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
const u8_t *val, u16_t len);
const uint8_t *val, uint16_t len);
typedef enum {
BTC_BLE_MESH_ACT_HEALTH_SERVER_FAULT_UPDATE,
@@ -79,12 +79,12 @@ void btc_ble_mesh_health_server_cb_handler(btc_msg_t *msg);
void btc_ble_mesh_health_server_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src);
void btc_ble_mesh_health_server_fault_clear(struct bt_mesh_model *model, u16_t company_id);
void btc_ble_mesh_health_server_fault_clear(struct bt_mesh_model *model, uint16_t company_id);
void btc_ble_mesh_health_server_fault_test(struct bt_mesh_model *model,
u8_t test_id, u16_t company_id);
uint8_t test_id, uint16_t company_id);
void btc_ble_mesh_health_server_attention_on(struct bt_mesh_model *model, u8_t time);
void btc_ble_mesh_health_server_attention_on(struct bt_mesh_model *model, uint8_t time);
void btc_ble_mesh_health_server_attention_off(struct bt_mesh_model *model);

View File

@@ -53,14 +53,14 @@ void btc_ble_mesh_lighting_client_cb_handler(btc_msg_t *msg);
void btc_ble_mesh_lighting_client_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src);
void btc_ble_mesh_lighting_client_publish_callback(u32_t opcode, struct bt_mesh_model *model,
void btc_ble_mesh_lighting_client_publish_callback(uint32_t opcode, struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
struct net_buf_simple *buf);
void bt_mesh_lighting_client_cb_evt_to_btc(u32_t opcode, u8_t evt_type,
void bt_mesh_lighting_client_cb_evt_to_btc(uint32_t opcode, uint8_t evt_type,
struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
const u8_t *val, size_t len);
const uint8_t *val, size_t len);
typedef enum {
BTC_BLE_MESH_EVT_LIGHTING_SERVER_STATE_CHANGE,
@@ -70,9 +70,9 @@ typedef enum {
BTC_BLE_MESH_EVT_LIGHTING_SERVER_MAX,
} btc_ble_mesh_lighting_server_evt_t;
void bt_mesh_lighting_server_cb_evt_to_btc(u8_t evt_type, struct bt_mesh_model *model,
void bt_mesh_lighting_server_cb_evt_to_btc(uint8_t evt_type, struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
const u8_t *val, size_t len);
const uint8_t *val, size_t len);
void btc_ble_mesh_lighting_server_cb_handler(btc_msg_t *msg);

View File

@@ -17,6 +17,7 @@
#include "btc/btc_manage.h"
#include "mesh_byteorder.h"
#include "mesh_config.h"
#include "mesh_main.h"
#include "fast_prov.h"
#include "provisioner_prov.h"
@@ -38,6 +39,9 @@ typedef enum {
BTC_BLE_MESH_ACT_PROXY_IDENTITY_ENABLE,
BTC_BLE_MESH_ACT_PROXY_GATT_ENABLE,
BTC_BLE_MESH_ACT_PROXY_GATT_DISABLE,
BTC_BLE_MESH_ACT_NODE_ADD_LOCAL_NET_KEY,
BTC_BLE_MESH_ACT_NODE_ADD_LOCAL_APP_KEY,
BTC_BLE_MESH_ACT_NODE_BIND_APP_KEY_TO_MODEL,
BTC_BLE_MESH_ACT_PROVISIONER_READ_OOB_PUB_KEY,
BTC_BLE_MESH_ACT_PROVISIONER_INPUT_STR,
BTC_BLE_MESH_ACT_PROVISIONER_INPUT_NUM,
@@ -59,6 +63,16 @@ typedef enum {
BTC_BLE_MESH_ACT_PROVISIONER_STORE_NODE_COMP_DATA,
BTC_BLE_MESH_ACT_PROVISIONER_DELETE_NODE_WITH_UUID,
BTC_BLE_MESH_ACT_PROVISIONER_DELETE_NODE_WITH_ADDR,
BTC_BLE_MESH_ACT_PROVISIONER_ENABLE_HEARTBEAT_RECV,
BTC_BLE_MESH_ACT_PROVISIONER_SET_HEARTBEAT_FILTER_TYPE,
BTC_BLE_MESH_ACT_PROVISIONER_SET_HEARTBEAT_FILTER_INFO,
BTC_BLE_MESH_ACT_PROVISIONER_DIRECT_ERASE_SETTINGS,
BTC_BLE_MESH_ACT_PROVISIONER_OPEN_SETTINGS_WITH_INDEX,
BTC_BLE_MESH_ACT_PROVISIONER_OPEN_SETTINGS_WITH_UID,
BTC_BLE_MESH_ACT_PROVISIONER_CLOSE_SETTINGS_WITH_INDEX,
BTC_BLE_MESH_ACT_PROVISIONER_CLOSE_SETTINGS_WITH_UID,
BTC_BLE_MESH_ACT_PROVISIONER_DELETE_SETTINGS_WITH_INDEX,
BTC_BLE_MESH_ACT_PROVISIONER_DELETE_SETTINGS_WITH_UID,
BTC_BLE_MESH_ACT_SET_FAST_PROV_INFO,
BTC_BLE_MESH_ACT_SET_FAST_PROV_ACTION,
BTC_BLE_MESH_ACT_LPN_ENABLE,
@@ -69,8 +83,6 @@ typedef enum {
BTC_BLE_MESH_ACT_PROXY_CLIENT_SET_FILTER_TYPE,
BTC_BLE_MESH_ACT_PROXY_CLIENT_ADD_FILTER_ADDR,
BTC_BLE_MESH_ACT_PROXY_CLIENT_REMOVE_FILTER_ADDR,
BTC_BLE_MESH_ACT_START_BLE_ADVERTISING,
BTC_BLE_MESH_ACT_STOP_BLE_ADVERTISING,
BTC_BLE_MESH_ACT_MODEL_SUBSCRIBE_GROUP_ADDR,
BTC_BLE_MESH_ACT_MODEL_UNSUBSCRIBE_GROUP_ADDR,
BTC_BLE_MESH_ACT_DEINIT_MESH,
@@ -109,6 +121,21 @@ typedef union {
struct ble_mesh_set_device_name_args {
char name[ESP_BLE_MESH_DEVICE_NAME_MAX_LEN + 1];
} set_device_name;
struct ble_mesh_node_add_local_net_key_args {
uint8_t net_key[16];
uint16_t net_idx;
} node_add_local_net_key;
struct ble_mesh_node_add_local_app_key_args {
uint8_t app_key[16];
uint16_t net_idx;
uint16_t app_idx;
} node_add_local_app_key;
struct ble_mesh_node_bind_local_mod_app_args {
uint16_t element_addr;
uint16_t company_id;
uint16_t model_id;
uint16_t app_idx;
} node_local_mod_app_bind;
struct ble_mesh_provisioner_read_oob_pub_key_args {
uint8_t link_idx;
uint8_t pub_key_x[32];
@@ -198,6 +225,37 @@ typedef union {
struct ble_mesh_provisioner_delete_node_with_addr_args {
uint16_t unicast_addr;
} delete_node_with_addr;
struct {
bool enable;
} enable_heartbeat_recv;
struct {
uint8_t type;
} set_heartbeat_filter_type;
struct {
uint8_t op;
uint16_t hb_src;
uint16_t hb_dst;
} set_heartbeat_filter_info;
struct {
uint8_t index;
} open_settings_with_index;
struct {
char uid[ESP_BLE_MESH_SETTINGS_UID_SIZE + 1];
} open_settings_with_uid;
struct {
uint8_t index;
bool erase;
} close_settings_with_index;
struct {
char uid[ESP_BLE_MESH_SETTINGS_UID_SIZE + 1];
bool erase;
} close_settings_with_uid;
struct {
uint8_t index;
} delete_settings_with_index;
struct {
char uid[ESP_BLE_MESH_SETTINGS_UID_SIZE + 1];
} delete_settings_with_uid;
struct ble_mesh_set_fast_prov_info_args {
uint16_t unicast_min;
uint16_t unicast_max;
@@ -245,13 +303,6 @@ typedef union {
uint16_t addr_num;
uint16_t *addr;
} proxy_client_remove_filter_addr;
struct ble_mesh_start_ble_advertising_args {
esp_ble_mesh_ble_adv_param_t param;
esp_ble_mesh_ble_adv_data_t data;
} start_ble_advertising;
struct ble_mesh_stop_ble_advertising_args {
uint8_t index;
} stop_ble_advertising;
struct ble_mesh_model_sub_group_addr_args {
uint16_t element_addr;
uint16_t company_id;
@@ -295,13 +346,17 @@ void btc_ble_mesh_prov_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src);
void btc_ble_mesh_model_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src);
const uint8_t *btc_ble_mesh_node_get_local_net_key(uint16_t net_idx);
const uint8_t *btc_ble_mesh_node_get_local_app_key(uint16_t app_idx);
esp_ble_mesh_node_t *btc_ble_mesh_provisioner_get_node_with_uuid(const uint8_t uuid[16]);
esp_ble_mesh_node_t *btc_ble_mesh_provisioner_get_node_with_addr(uint16_t unicast_addr);
esp_ble_mesh_node_t *btc_ble_mesh_provisioner_get_node_with_name(const char *name);
u16_t btc_ble_mesh_provisioner_get_prov_node_count(void);
uint16_t btc_ble_mesh_provisioner_get_prov_node_count(void);
const esp_ble_mesh_node_t **btc_ble_mesh_provisioner_get_node_table_entry(void);
@@ -315,7 +370,7 @@ uint16_t btc_ble_mesh_get_primary_addr(void);
uint16_t *btc_ble_mesh_model_find_group(esp_ble_mesh_model_t *mod, uint16_t addr);
esp_ble_mesh_elem_t *btc_ble_mesh_elem_find(u16_t addr);
esp_ble_mesh_elem_t *btc_ble_mesh_elem_find(uint16_t addr);
uint8_t btc_ble_mesh_elem_count(void);
@@ -326,6 +381,12 @@ esp_ble_mesh_model_t *btc_ble_mesh_model_find(const esp_ble_mesh_elem_t *elem, u
const esp_ble_mesh_comp_t *btc_ble_mesh_comp_get(void);
const char *btc_ble_mesh_provisioner_get_settings_uid(uint8_t index);
uint8_t btc_ble_mesh_provisioner_get_settings_index(const char *uid);
uint8_t btc_ble_mesh_provisioner_get_free_settings_count(void);
void btc_ble_mesh_model_call_handler(btc_msg_t *msg);
void btc_ble_mesh_model_cb_handler(btc_msg_t *msg);

View File

@@ -53,14 +53,14 @@ void btc_ble_mesh_sensor_client_cb_handler(btc_msg_t *msg);
void btc_ble_mesh_sensor_client_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src);
void btc_ble_mesh_sensor_client_publish_callback(u32_t opcode, struct bt_mesh_model *model,
void btc_ble_mesh_sensor_client_publish_callback(uint32_t opcode, struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
struct net_buf_simple *buf);
void bt_mesh_sensor_client_cb_evt_to_btc(u32_t opcode, u8_t evt_type,
void bt_mesh_sensor_client_cb_evt_to_btc(uint32_t opcode, uint8_t evt_type,
struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
const u8_t *val, size_t len);
const uint8_t *val, size_t len);
typedef enum {
BTC_BLE_MESH_EVT_SENSOR_SERVER_STATE_CHANGE,
@@ -69,9 +69,9 @@ typedef enum {
BTC_BLE_MESH_EVT_SENSOR_SERVER_MAX,
} btc_ble_mesh_sensor_server_evt_t;
void bt_mesh_sensor_server_cb_evt_to_btc(u8_t evt_type, struct bt_mesh_model *model,
void bt_mesh_sensor_server_cb_evt_to_btc(uint8_t evt_type, struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
const u8_t *val, size_t len);
const uint8_t *val, size_t len);
void btc_ble_mesh_sensor_server_cb_handler(btc_msg_t *msg);

View File

@@ -53,14 +53,14 @@ void btc_ble_mesh_time_scene_client_cb_handler(btc_msg_t *msg);
void btc_ble_mesh_time_scene_client_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src);
void btc_ble_mesh_time_scene_client_publish_callback(u32_t opcode, struct bt_mesh_model *model,
void btc_ble_mesh_time_scene_client_publish_callback(uint32_t opcode, struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
struct net_buf_simple *buf);
void bt_mesh_time_scene_client_cb_evt_to_btc(u32_t opcode, u8_t evt_type,
void bt_mesh_time_scene_client_cb_evt_to_btc(uint32_t opcode, uint8_t evt_type,
struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
const u8_t *val, size_t len);
const uint8_t *val, size_t len);
typedef enum {
BTC_BLE_MESH_EVT_TIME_SCENE_SERVER_STATE_CHANGE,
@@ -70,9 +70,9 @@ typedef enum {
BTC_BLE_MESH_EVT_TIME_SCENE_SERVER_MAX,
} btc_ble_mesh_time_scene_server_evt_t;
void bt_mesh_time_scene_server_cb_evt_to_btc(u8_t evt_type, struct bt_mesh_model *model,
void bt_mesh_time_scene_server_cb_evt_to_btc(uint8_t evt_type, struct bt_mesh_model *model,
struct bt_mesh_msg_ctx *ctx,
const u8_t *val, size_t len);
const uint8_t *val, size_t len);
void btc_ble_mesh_time_scene_server_cb_handler(btc_msg_t *msg);

View File

@@ -11,7 +11,8 @@
#ifndef _BLE_MESH_BUF_H_
#define _BLE_MESH_BUF_H_
#include "sdkconfig.h"
#include "mesh_config.h"
#include "mesh_types.h"
#include "mesh_slist.h"
#include "mesh_compiler.h"
@@ -51,7 +52,7 @@ __extension__ ({ \
* @param _size Maximum data storage for the buffer.
*/
#define NET_BUF_SIMPLE_DEFINE(_name, _size) \
u8_t net_buf_data_##_name[_size]; \
uint8_t net_buf_data_##_name[_size]; \
struct net_buf_simple _name = { \
.data = net_buf_data_##_name, \
.len = 0, \
@@ -70,7 +71,7 @@ __extension__ ({ \
* @param _size Maximum data storage for the buffer.
*/
#define NET_BUF_SIMPLE_DEFINE_STATIC(_name, _size) \
static u8_t net_buf_data_##_name[_size]; \
static uint8_t net_buf_data_##_name[_size]; \
static struct net_buf_simple _name = { \
.data = net_buf_data_##_name, \
.len = 0, \
@@ -93,18 +94,18 @@ __extension__ ({ \
*/
struct net_buf_simple {
/** Pointer to the start of data in the buffer. */
u8_t *data;
uint8_t *data;
/** Length of the data behind the data pointer. */
u16_t len;
uint16_t len;
/** Amount of data that this buffer can store. */
u16_t size;
uint16_t size;
/** Start of the data storage. Not to be accessed directly
* (the data pointer should be used instead).
*/
u8_t *__buf;
uint8_t *__buf;
};
/**
@@ -123,13 +124,13 @@ struct net_buf_simple {
*
* @return Pointer to stack-allocated net_buf_simple object.
*/
#define NET_BUF_SIMPLE(_size) \
((struct net_buf_simple *)(&(struct { \
struct net_buf_simple buf; \
u8_t data[_size] __net_buf_align; \
}) { \
.buf.size = _size, \
.buf.__buf = NULL, \
#define NET_BUF_SIMPLE(_size) \
((struct net_buf_simple *)(&(struct { \
struct net_buf_simple buf; \
uint8_t data[_size] __net_buf_align; \
}) { \
.buf.size = _size, \
.buf.__buf = NULL, \
}))
/**
@@ -145,7 +146,7 @@ static inline void net_buf_simple_init(struct net_buf_simple *buf,
size_t reserve_head)
{
if (!buf->__buf) {
buf->__buf = (u8_t *)buf + sizeof(*buf);
buf->__buf = (uint8_t *)buf + sizeof(*buf);
}
buf->data = buf->__buf + reserve_head;
@@ -229,7 +230,7 @@ void *net_buf_simple_add_mem(struct net_buf_simple *buf, const void *mem,
*
* @return Pointer to the value added
*/
u8_t *net_buf_simple_add_u8(struct net_buf_simple *buf, u8_t val);
uint8_t *net_buf_simple_add_u8(struct net_buf_simple *buf, uint8_t val);
/**
* @brief Add 16-bit value at the end of the buffer
@@ -241,7 +242,7 @@ u8_t *net_buf_simple_add_u8(struct net_buf_simple *buf, u8_t val);
* @param buf Buffer to update.
* @param val 16-bit value to be added.
*/
void net_buf_simple_add_le16(struct net_buf_simple *buf, u16_t val);
void net_buf_simple_add_le16(struct net_buf_simple *buf, uint16_t val);
/**
* @brief Add 16-bit value at the end of the buffer
@@ -253,7 +254,7 @@ void net_buf_simple_add_le16(struct net_buf_simple *buf, u16_t val);
* @param buf Buffer to update.
* @param val 16-bit value to be added.
*/
void net_buf_simple_add_be16(struct net_buf_simple *buf, u16_t val);
void net_buf_simple_add_be16(struct net_buf_simple *buf, uint16_t val);
/**
* @brief Add 24-bit value at the end of the buffer
@@ -265,7 +266,7 @@ void net_buf_simple_add_be16(struct net_buf_simple *buf, u16_t val);
* @param buf Buffer to update.
* @param val 24-bit value to be added.
*/
void net_buf_simple_add_le24(struct net_buf_simple *buf, u32_t val);
void net_buf_simple_add_le24(struct net_buf_simple *buf, uint32_t val);
/**
* @brief Add 24-bit value at the end of the buffer
@@ -277,7 +278,7 @@ void net_buf_simple_add_le24(struct net_buf_simple *buf, u32_t val);
* @param buf Buffer to update.
* @param val 24-bit value to be added.
*/
void net_buf_simple_add_be24(struct net_buf_simple *buf, u32_t val);
void net_buf_simple_add_be24(struct net_buf_simple *buf, uint32_t val);
/**
* @brief Add 32-bit value at the end of the buffer
@@ -289,7 +290,7 @@ void net_buf_simple_add_be24(struct net_buf_simple *buf, u32_t val);
* @param buf Buffer to update.
* @param val 32-bit value to be added.
*/
void net_buf_simple_add_le32(struct net_buf_simple *buf, u32_t val);
void net_buf_simple_add_le32(struct net_buf_simple *buf, uint32_t val);
/**
* @brief Add 32-bit value at the end of the buffer
@@ -301,7 +302,7 @@ void net_buf_simple_add_le32(struct net_buf_simple *buf, u32_t val);
* @param buf Buffer to update.
* @param val 32-bit value to be added.
*/
void net_buf_simple_add_be32(struct net_buf_simple *buf, u32_t val);
void net_buf_simple_add_be32(struct net_buf_simple *buf, uint32_t val);
/**
* @brief Add 48-bit value at the end of the buffer
@@ -313,7 +314,7 @@ void net_buf_simple_add_be32(struct net_buf_simple *buf, u32_t val);
* @param buf Buffer to update.
* @param val 48-bit value to be added.
*/
void net_buf_simple_add_le48(struct net_buf_simple *buf, u64_t val);
void net_buf_simple_add_le48(struct net_buf_simple *buf, uint64_t val);
/**
* @brief Add 48-bit value at the end of the buffer
@@ -325,7 +326,7 @@ void net_buf_simple_add_le48(struct net_buf_simple *buf, u64_t val);
* @param buf Buffer to update.
* @param val 48-bit value to be added.
*/
void net_buf_simple_add_be48(struct net_buf_simple *buf, u64_t val);
void net_buf_simple_add_be48(struct net_buf_simple *buf, uint64_t val);
/**
* @brief Add 64-bit value at the end of the buffer
@@ -337,7 +338,7 @@ void net_buf_simple_add_be48(struct net_buf_simple *buf, u64_t val);
* @param buf Buffer to update.
* @param val 64-bit value to be added.
*/
void net_buf_simple_add_le64(struct net_buf_simple *buf, u64_t val);
void net_buf_simple_add_le64(struct net_buf_simple *buf, uint64_t val);
/**
* @brief Add 64-bit value at the end of the buffer
@@ -349,7 +350,7 @@ void net_buf_simple_add_le64(struct net_buf_simple *buf, u64_t val);
* @param buf Buffer to update.
* @param val 64-bit value to be added.
*/
void net_buf_simple_add_be64(struct net_buf_simple *buf, u64_t val);
void net_buf_simple_add_be64(struct net_buf_simple *buf, uint64_t val);
/**
* @brief Push data to the beginning of the buffer.
@@ -373,7 +374,7 @@ void *net_buf_simple_push(struct net_buf_simple *buf, size_t len);
* @param buf Buffer to update.
* @param val 16-bit value to be pushed to the buffer.
*/
void net_buf_simple_push_le16(struct net_buf_simple *buf, u16_t val);
void net_buf_simple_push_le16(struct net_buf_simple *buf, uint16_t val);
/**
* @brief Push 16-bit value to the beginning of the buffer
@@ -384,7 +385,7 @@ void net_buf_simple_push_le16(struct net_buf_simple *buf, u16_t val);
* @param buf Buffer to update.
* @param val 16-bit value to be pushed to the buffer.
*/
void net_buf_simple_push_be16(struct net_buf_simple *buf, u16_t val);
void net_buf_simple_push_be16(struct net_buf_simple *buf, uint16_t val);
/**
* @brief Push 8-bit value to the beginning of the buffer
@@ -394,7 +395,7 @@ void net_buf_simple_push_be16(struct net_buf_simple *buf, u16_t val);
* @param buf Buffer to update.
* @param val 8-bit value to be pushed to the buffer.
*/
void net_buf_simple_push_u8(struct net_buf_simple *buf, u8_t val);
void net_buf_simple_push_u8(struct net_buf_simple *buf, uint8_t val);
/**
* @brief Push 24-bit value to the beginning of the buffer
@@ -405,7 +406,7 @@ void net_buf_simple_push_u8(struct net_buf_simple *buf, u8_t val);
* @param buf Buffer to update.
* @param val 24-bit value to be pushed to the buffer.
*/
void net_buf_simple_push_le24(struct net_buf_simple *buf, u32_t val);
void net_buf_simple_push_le24(struct net_buf_simple *buf, uint32_t val);
/**
* @brief Push 24-bit value to the beginning of the buffer
@@ -416,7 +417,7 @@ void net_buf_simple_push_le24(struct net_buf_simple *buf, u32_t val);
* @param buf Buffer to update.
* @param val 24-bit value to be pushed to the buffer.
*/
void net_buf_simple_push_be24(struct net_buf_simple *buf, u32_t val);
void net_buf_simple_push_be24(struct net_buf_simple *buf, uint32_t val);
/**
* @brief Push 32-bit value to the beginning of the buffer
@@ -427,7 +428,7 @@ void net_buf_simple_push_be24(struct net_buf_simple *buf, u32_t val);
* @param buf Buffer to update.
* @param val 32-bit value to be pushed to the buffer.
*/
void net_buf_simple_push_le32(struct net_buf_simple *buf, u32_t val);
void net_buf_simple_push_le32(struct net_buf_simple *buf, uint32_t val);
/**
* @brief Push 32-bit value to the beginning of the buffer
@@ -438,7 +439,7 @@ void net_buf_simple_push_le32(struct net_buf_simple *buf, u32_t val);
* @param buf Buffer to update.
* @param val 32-bit value to be pushed to the buffer.
*/
void net_buf_simple_push_be32(struct net_buf_simple *buf, u32_t val);
void net_buf_simple_push_be32(struct net_buf_simple *buf, uint32_t val);
/**
* @brief Push 48-bit value to the beginning of the buffer
@@ -449,7 +450,7 @@ void net_buf_simple_push_be32(struct net_buf_simple *buf, u32_t val);
* @param buf Buffer to update.
* @param val 48-bit value to be pushed to the buffer.
*/
void net_buf_simple_push_le48(struct net_buf_simple *buf, u64_t val);
void net_buf_simple_push_le48(struct net_buf_simple *buf, uint64_t val);
/**
* @brief Push 48-bit value to the beginning of the buffer
@@ -460,7 +461,7 @@ void net_buf_simple_push_le48(struct net_buf_simple *buf, u64_t val);
* @param buf Buffer to update.
* @param val 48-bit value to be pushed to the buffer.
*/
void net_buf_simple_push_be48(struct net_buf_simple *buf, u64_t val);
void net_buf_simple_push_be48(struct net_buf_simple *buf, uint64_t val);
/**
* @brief Push 64-bit value to the beginning of the buffer
@@ -471,7 +472,7 @@ void net_buf_simple_push_be48(struct net_buf_simple *buf, u64_t val);
* @param buf Buffer to update.
* @param val 64-bit value to be pushed to the buffer.
*/
void net_buf_simple_push_le64(struct net_buf_simple *buf, u64_t val);
void net_buf_simple_push_le64(struct net_buf_simple *buf, uint64_t val);
/**
* @brief Push 64-bit value to the beginning of the buffer
@@ -482,7 +483,7 @@ void net_buf_simple_push_le64(struct net_buf_simple *buf, u64_t val);
* @param buf Buffer to update.
* @param val 64-bit value to be pushed to the buffer.
*/
void net_buf_simple_push_be64(struct net_buf_simple *buf, u64_t val);
void net_buf_simple_push_be64(struct net_buf_simple *buf, uint64_t val);
/**
* @brief Remove data from the beginning of the buffer.
@@ -520,7 +521,7 @@ void *net_buf_simple_pull_mem(struct net_buf_simple *buf, size_t len);
*
* @return The 8-bit removed value
*/
u8_t net_buf_simple_pull_u8(struct net_buf_simple *buf);
uint8_t net_buf_simple_pull_u8(struct net_buf_simple *buf);
/**
* @brief Remove and convert 16 bits from the beginning of the buffer.
@@ -532,7 +533,7 @@ u8_t net_buf_simple_pull_u8(struct net_buf_simple *buf);
*
* @return 16-bit value converted from little endian to host endian.
*/
u16_t net_buf_simple_pull_le16(struct net_buf_simple *buf);
uint16_t net_buf_simple_pull_le16(struct net_buf_simple *buf);
/**
* @brief Remove and convert 16 bits from the beginning of the buffer.
@@ -544,7 +545,7 @@ u16_t net_buf_simple_pull_le16(struct net_buf_simple *buf);
*
* @return 16-bit value converted from big endian to host endian.
*/
u16_t net_buf_simple_pull_be16(struct net_buf_simple *buf);
uint16_t net_buf_simple_pull_be16(struct net_buf_simple *buf);
/**
* @brief Remove and convert 24 bits from the beginning of the buffer.
@@ -556,7 +557,7 @@ u16_t net_buf_simple_pull_be16(struct net_buf_simple *buf);
*
* @return 24-bit value converted from little endian to host endian.
*/
u32_t net_buf_simple_pull_le24(struct net_buf_simple *buf);
uint32_t net_buf_simple_pull_le24(struct net_buf_simple *buf);
/**
* @brief Remove and convert 24 bits from the beginning of the buffer.
@@ -568,7 +569,7 @@ u32_t net_buf_simple_pull_le24(struct net_buf_simple *buf);
*
* @return 24-bit value converted from big endian to host endian.
*/
u32_t net_buf_simple_pull_be24(struct net_buf_simple *buf);
uint32_t net_buf_simple_pull_be24(struct net_buf_simple *buf);
/**
* @brief Remove and convert 32 bits from the beginning of the buffer.
@@ -580,7 +581,7 @@ u32_t net_buf_simple_pull_be24(struct net_buf_simple *buf);
*
* @return 32-bit value converted from little endian to host endian.
*/
u32_t net_buf_simple_pull_le32(struct net_buf_simple *buf);
uint32_t net_buf_simple_pull_le32(struct net_buf_simple *buf);
/**
* @brief Remove and convert 32 bits from the beginning of the buffer.
@@ -592,7 +593,7 @@ u32_t net_buf_simple_pull_le32(struct net_buf_simple *buf);
*
* @return 32-bit value converted from big endian to host endian.
*/
u32_t net_buf_simple_pull_be32(struct net_buf_simple *buf);
uint32_t net_buf_simple_pull_be32(struct net_buf_simple *buf);
/**
* @brief Remove and convert 48 bits from the beginning of the buffer.
@@ -604,7 +605,7 @@ u32_t net_buf_simple_pull_be32(struct net_buf_simple *buf);
*
* @return 48-bit value converted from little endian to host endian.
*/
u64_t net_buf_simple_pull_le48(struct net_buf_simple *buf);
uint64_t net_buf_simple_pull_le48(struct net_buf_simple *buf);
/**
* @brief Remove and convert 48 bits from the beginning of the buffer.
@@ -616,7 +617,7 @@ u64_t net_buf_simple_pull_le48(struct net_buf_simple *buf);
*
* @return 48-bit value converted from big endian to host endian.
*/
u64_t net_buf_simple_pull_be48(struct net_buf_simple *buf);
uint64_t net_buf_simple_pull_be48(struct net_buf_simple *buf);
/**
* @brief Remove and convert 64 bits from the beginning of the buffer.
@@ -628,7 +629,7 @@ u64_t net_buf_simple_pull_be48(struct net_buf_simple *buf);
*
* @return 64-bit value converted from little endian to host endian.
*/
u64_t net_buf_simple_pull_le64(struct net_buf_simple *buf);
uint64_t net_buf_simple_pull_le64(struct net_buf_simple *buf);
/**
* @brief Remove and convert 64 bits from the beginning of the buffer.
@@ -640,7 +641,7 @@ u64_t net_buf_simple_pull_le64(struct net_buf_simple *buf);
*
* @return 64-bit value converted from big endian to host endian.
*/
u64_t net_buf_simple_pull_be64(struct net_buf_simple *buf);
uint64_t net_buf_simple_pull_be64(struct net_buf_simple *buf);
/**
* @brief Get the tail pointer for a buffer.
@@ -651,7 +652,7 @@ u64_t net_buf_simple_pull_be64(struct net_buf_simple *buf);
*
* @return Tail pointer for the buffer.
*/
static inline u8_t *net_buf_simple_tail(struct net_buf_simple *buf)
static inline uint8_t *net_buf_simple_tail(struct net_buf_simple *buf)
{
return buf->data + buf->len;
}
@@ -687,9 +688,9 @@ size_t net_buf_simple_tailroom(struct net_buf_simple *buf);
*/
struct net_buf_simple_state {
/** Offset of the data pointer from the beginning of the storage */
u16_t offset;
uint16_t offset;
/** Length of data */
u16_t len;
uint16_t len;
};
/**
@@ -717,7 +718,7 @@ static inline void net_buf_simple_save(struct net_buf_simple *buf,
* @param state Stored state.
*/
static inline void net_buf_simple_restore(struct net_buf_simple *buf,
struct net_buf_simple_state *state)
struct net_buf_simple_state *state)
{
buf->data = buf->__buf + state->offset;
buf->len = state->len;
@@ -760,10 +761,10 @@ struct net_buf {
};
/** Reference count. */
u8_t ref;
uint8_t ref;
/** Bit-field of buffer flags. */
u8_t flags;
uint8_t flags;
/** Where the buffer should go when freed up. */
struct net_buf_pool *pool;
@@ -775,32 +776,32 @@ struct net_buf {
/* The ABI of this struct must match net_buf_simple */
struct {
/** Pointer to the start of data in the buffer. */
u8_t *data;
uint8_t *data;
/** Length of the data behind the data pointer. */
u16_t len;
uint16_t len;
/** Amount of data that this buffer can store. */
u16_t size;
uint16_t size;
/** Start of the data storage. Not to be accessed
* directly (the data pointer should be used
* instead).
*/
u8_t *__buf;
uint8_t *__buf;
};
struct net_buf_simple b;
};
/** System metadata for this buffer. */
u8_t user_data[BLE_MESH_NET_BUF_USER_DATA_SIZE] __net_buf_align;
uint8_t user_data[BLE_MESH_NET_BUF_USER_DATA_SIZE] __net_buf_align;
};
struct net_buf_data_cb {
u8_t *(*alloc)(struct net_buf *buf, size_t *size, s32_t timeout);
u8_t *(*ref)(struct net_buf *buf, u8_t *data);
void (*unref)(struct net_buf *buf, u8_t *data);
uint8_t *(*alloc)(struct net_buf *buf, size_t *size, int32_t timeout);
uint8_t *(*ref)(struct net_buf *buf, uint8_t *data);
void (*unref)(struct net_buf *buf, uint8_t *data);
};
struct net_buf_data_alloc {
@@ -810,17 +811,17 @@ struct net_buf_data_alloc {
struct net_buf_pool {
/** Number of buffers in pool */
const u16_t buf_count;
const uint16_t buf_count;
/** Number of uninitialized buffers */
u16_t uninit_count;
uint16_t uninit_count;
#if defined(CONFIG_BLE_MESH_NET_BUF_POOL_USAGE)
/** Amount of available buffers in the pool. */
s16_t avail_count;
int16_t avail_count;
/** Total size of the pool. */
const u16_t pool_size;
const uint16_t pool_size;
/** Name of the pool. Used when printing pool information. */
const char *name;
@@ -860,7 +861,7 @@ struct net_buf_pool {
struct net_buf_pool_fixed {
size_t data_size;
u8_t *data_pool;
uint8_t *data_pool;
};
/** @cond INTERNAL_HIDDEN */
@@ -895,10 +896,10 @@ extern const struct net_buf_data_cb net_buf_fixed_cb;
*/
#define NET_BUF_POOL_FIXED_DEFINE(_name, _count, _data_size, _destroy) \
static struct net_buf net_buf_##_name[_count]; \
static u8_t net_buf_data_##_name[_count][_data_size]; \
static uint8_t net_buf_data_##_name[_count][_data_size]; \
static const struct net_buf_pool_fixed net_buf_fixed_##_name = { \
.data_size = _data_size, \
.data_pool = (u8_t *)net_buf_data_##_name, \
.data_pool = (uint8_t *)net_buf_data_##_name, \
}; \
static const struct net_buf_data_alloc net_buf_fixed_alloc_##_name = { \
.cb = &net_buf_fixed_cb, \
@@ -962,12 +963,12 @@ int net_buf_id(struct net_buf *buf);
* @return New buffer or NULL if out of buffers.
*/
#if defined(CONFIG_BLE_MESH_NET_BUF_LOG)
struct net_buf *net_buf_alloc_fixed_debug(struct net_buf_pool *pool, s32_t timeout,
const char *func, int line);
struct net_buf *net_buf_alloc_fixed_debug(struct net_buf_pool *pool, int32_t timeout,
const char *func, int line);
#define net_buf_alloc_fixed(_pool, _timeout) \
net_buf_alloc_fixed_debug(_pool, _timeout, __func__, __LINE__)
#else
struct net_buf *net_buf_alloc_fixed(struct net_buf_pool *pool, s32_t timeout);
struct net_buf *net_buf_alloc_fixed(struct net_buf_pool *pool, int32_t timeout);
#endif
/**
@@ -1631,8 +1632,8 @@ struct net_buf *net_buf_frag_add(struct net_buf *head, struct net_buf *frag);
*/
#if defined(CONFIG_BLE_MESH_NET_BUF_LOG)
struct net_buf *net_buf_frag_del_debug(struct net_buf *parent,
struct net_buf *frag,
const char *func, int line);
struct net_buf *frag,
const char *func, int line);
#define net_buf_frag_del(_parent, _frag) \
net_buf_frag_del_debug(_parent, _frag, __func__, __LINE__)
#else
@@ -1655,7 +1656,7 @@ struct net_buf *net_buf_frag_del(struct net_buf *parent, struct net_buf *frag);
* @return number of bytes actually copied
*/
size_t net_buf_linearize(void *dst, size_t dst_len,
struct net_buf *src, size_t offset, size_t len);
struct net_buf *src, size_t offset, size_t len);
/**
* @typedef net_buf_allocator_cb
@@ -1671,7 +1672,7 @@ size_t net_buf_linearize(void *dst, size_t dst_len,
* @param user_data The user data given in net_buf_append_bytes call.
* @return pointer to allocated net_buf or NULL on error.
*/
typedef struct net_buf *(*net_buf_allocator_cb)(s32_t timeout, void *user_data);
typedef struct net_buf *(*net_buf_allocator_cb)(int32_t timeout, void *user_data);
/**
* @brief Append data to a list of net_buf
@@ -1694,8 +1695,8 @@ typedef struct net_buf *(*net_buf_allocator_cb)(s32_t timeout, void *user_data);
* were no free fragments in a pool to accommodate all data.
*/
size_t net_buf_append_bytes(struct net_buf *buf, size_t len,
const void *value, s32_t timeout,
net_buf_allocator_cb allocate_cb, void *user_data);
const void *value, int32_t timeout,
net_buf_allocator_cb allocate_cb, void *user_data);
/**
* @brief Skip N number of bytes in a net_buf

View File

@@ -16,40 +16,40 @@ extern "C" {
/* Internal helpers only used by the sys_* APIs further below */
#ifndef __bswap_16
#define __bswap_16(x) ((u16_t) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8)))
#define __bswap_16(x) ((uint16_t) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8)))
#endif
#ifndef __bswap_24
#define __bswap_24(x) ((u32_t) ((((x) >> 16) & 0xff) | \
(((x)) & 0xff00) | \
(((x) & 0xff) << 16)))
#define __bswap_24(x) ((uint32_t) ((((x) >> 16) & 0xff) | \
(((x)) & 0xff00) | \
(((x) & 0xff) << 16)))
#endif
#ifndef __bswap_32
#define __bswap_32(x) ((u32_t) ((((x) >> 24) & 0xff) | \
(((x) >> 8) & 0xff00) | \
(((x) & 0xff00) << 8) | \
(((x) & 0xff) << 24)))
#define __bswap_32(x) ((uint32_t) ((((x) >> 24) & 0xff) | \
(((x) >> 8) & 0xff00) | \
(((x) & 0xff00) << 8) | \
(((x) & 0xff) << 24)))
#endif
#ifndef __bswap_48
#define __bswap_48(x) ((u64_t) ((((x) >> 40) & 0xff) | \
(((x) >> 24) & 0xff00) | \
(((x) >> 8) & 0xff0000) | \
(((x) & 0xff0000) << 8) | \
(((x) & 0xff00) << 24) | \
(((x) & 0xff) << 40)))
#define __bswap_48(x) ((uint64_t) ((((x) >> 40) & 0xff) | \
(((x) >> 24) & 0xff00) | \
(((x) >> 8) & 0xff0000) | \
(((x) & 0xff0000) << 8) | \
(((x) & 0xff00) << 24) | \
(((x) & 0xff) << 40)))
#endif
#ifndef __bswap_64
#define __bswap_64(x) ((u64_t) ((((x) >> 56) & 0xff) | \
(((x) >> 40) & 0xff00) | \
(((x) >> 24) & 0xff0000) | \
(((x) >> 8) & 0xff000000) | \
(((x) & 0xff000000) << 8) | \
(((x) & 0xff0000) << 24) | \
(((x) & 0xff00) << 40) | \
(((x) & 0xff) << 56)))
#define __bswap_64(x) ((uint64_t) ((((x) >> 56) & 0xff) | \
(((x) >> 40) & 0xff00) | \
(((x) >> 24) & 0xff0000) | \
(((x) >> 8) & 0xff000000) | \
(((x) & 0xff000000) << 8) | \
(((x) & 0xff0000) << 24) | \
(((x) & 0xff00) << 40) | \
(((x) & 0xff) << 56)))
#endif
/** @def sys_le16_to_cpu
@@ -250,7 +250,7 @@ extern "C" {
* @param val 16-bit integer in host endianness.
* @param dst Destination memory address to store the result.
*/
static inline void sys_put_be16(u16_t val, u8_t dst[2])
static inline void sys_put_be16(uint16_t val, uint8_t dst[2])
{
dst[0] = val >> 8;
dst[1] = val;
@@ -265,7 +265,7 @@ static inline void sys_put_be16(u16_t val, u8_t dst[2])
* @param val 24-bit integer in host endianness.
* @param dst Destination memory address to store the result.
*/
static inline void sys_put_be24(u32_t val, u8_t dst[3])
static inline void sys_put_be24(uint32_t val, uint8_t dst[3])
{
dst[0] = val >> 16;
sys_put_be16(val, &dst[1]);
@@ -280,7 +280,7 @@ static inline void sys_put_be24(u32_t val, u8_t dst[3])
* @param val 32-bit integer in host endianness.
* @param dst Destination memory address to store the result.
*/
static inline void sys_put_be32(u32_t val, u8_t dst[4])
static inline void sys_put_be32(uint32_t val, uint8_t dst[4])
{
sys_put_be16(val >> 16, dst);
sys_put_be16(val, &dst[2]);
@@ -295,7 +295,7 @@ static inline void sys_put_be32(u32_t val, u8_t dst[4])
* @param val 48-bit integer in host endianness.
* @param dst Destination memory address to store the result.
*/
static inline void sys_put_be48(u64_t val, u8_t dst[6])
static inline void sys_put_be48(uint64_t val, uint8_t dst[6])
{
sys_put_be16(val >> 32, dst);
sys_put_be32(val, &dst[2]);
@@ -310,7 +310,7 @@ static inline void sys_put_be48(u64_t val, u8_t dst[6])
* @param val 64-bit integer in host endianness.
* @param dst Destination memory address to store the result.
*/
static inline void sys_put_be64(u64_t val, u8_t dst[8])
static inline void sys_put_be64(uint64_t val, uint8_t dst[8])
{
sys_put_be32(val >> 32, dst);
sys_put_be32(val, &dst[4]);
@@ -325,7 +325,7 @@ static inline void sys_put_be64(u64_t val, u8_t dst[8])
* @param val 16-bit integer in host endianness.
* @param dst Destination memory address to store the result.
*/
static inline void sys_put_le16(u16_t val, u8_t dst[2])
static inline void sys_put_le16(uint16_t val, uint8_t dst[2])
{
dst[0] = val;
dst[1] = val >> 8;
@@ -340,7 +340,7 @@ static inline void sys_put_le16(u16_t val, u8_t dst[2])
* @param val 24-bit integer in host endianness.
* @param dst Destination memory address to store the result.
*/
static inline void sys_put_le24(u32_t val, u8_t dst[3])
static inline void sys_put_le24(uint32_t val, uint8_t dst[3])
{
sys_put_le16(val, dst);
dst[2] = val >> 16;
@@ -355,7 +355,7 @@ static inline void sys_put_le24(u32_t val, u8_t dst[3])
* @param val 32-bit integer in host endianness.
* @param dst Destination memory address to store the result.
*/
static inline void sys_put_le32(u32_t val, u8_t dst[4])
static inline void sys_put_le32(uint32_t val, uint8_t dst[4])
{
sys_put_le16(val, dst);
sys_put_le16(val >> 16, &dst[2]);
@@ -370,7 +370,7 @@ static inline void sys_put_le32(u32_t val, u8_t dst[4])
* @param val 48-bit integer in host endianness.
* @param dst Destination memory address to store the result.
*/
static inline void sys_put_le48(u64_t val, u8_t dst[6])
static inline void sys_put_le48(uint64_t val, uint8_t dst[6])
{
sys_put_le32(val, dst);
sys_put_le16(val >> 32, &dst[4]);
@@ -385,7 +385,7 @@ static inline void sys_put_le48(u64_t val, u8_t dst[6])
* @param val 64-bit integer in host endianness.
* @param dst Destination memory address to store the result.
*/
static inline void sys_put_le64(u64_t val, u8_t dst[8])
static inline void sys_put_le64(uint64_t val, uint8_t dst[8])
{
sys_put_le32(val, dst);
sys_put_le32(val >> 32, &dst[4]);
@@ -401,9 +401,9 @@ static inline void sys_put_le64(u64_t val, u8_t dst[8])
*
* @return 16-bit integer in host endianness.
*/
static inline u16_t sys_get_be16(const u8_t src[2])
static inline uint16_t sys_get_be16(const uint8_t src[2])
{
return ((u16_t)src[0] << 8) | src[1];
return ((uint16_t)src[0] << 8) | src[1];
}
/**
@@ -416,9 +416,9 @@ static inline u16_t sys_get_be16(const u8_t src[2])
*
* @return 24-bit integer in host endianness.
*/
static inline u32_t sys_get_be24(const u8_t src[3])
static inline uint32_t sys_get_be24(const uint8_t src[3])
{
return ((u32_t)src[0] << 16) | sys_get_be16(&src[1]);
return ((uint32_t)src[0] << 16) | sys_get_be16(&src[1]);
}
/**
@@ -431,9 +431,9 @@ static inline u32_t sys_get_be24(const u8_t src[3])
*
* @return 32-bit integer in host endianness.
*/
static inline u32_t sys_get_be32(const u8_t src[4])
static inline uint32_t sys_get_be32(const uint8_t src[4])
{
return ((u32_t)sys_get_be16(&src[0]) << 16) | sys_get_be16(&src[2]);
return ((uint32_t)sys_get_be16(&src[0]) << 16) | sys_get_be16(&src[2]);
}
/**
@@ -446,9 +446,9 @@ static inline u32_t sys_get_be32(const u8_t src[4])
*
* @return 48-bit integer in host endianness.
*/
static inline u64_t sys_get_be48(const u8_t src[6])
static inline uint64_t sys_get_be48(const uint8_t src[6])
{
return ((u64_t)sys_get_be32(&src[0]) << 32) | sys_get_be16(&src[4]);
return ((uint64_t)sys_get_be32(&src[0]) << 32) | sys_get_be16(&src[4]);
}
/**
@@ -461,9 +461,9 @@ static inline u64_t sys_get_be48(const u8_t src[6])
*
* @return 64-bit integer in host endianness.
*/
static inline u64_t sys_get_be64(const u8_t src[8])
static inline uint64_t sys_get_be64(const uint8_t src[8])
{
return ((u64_t)sys_get_be32(&src[0]) << 32) | sys_get_be32(&src[4]);
return ((uint64_t)sys_get_be32(&src[0]) << 32) | sys_get_be32(&src[4]);
}
/**
@@ -476,9 +476,9 @@ static inline u64_t sys_get_be64(const u8_t src[8])
*
* @return 16-bit integer in host endianness.
*/
static inline u16_t sys_get_le16(const u8_t src[2])
static inline uint16_t sys_get_le16(const uint8_t src[2])
{
return ((u16_t)src[1] << 8) | src[0];
return ((uint16_t)src[1] << 8) | src[0];
}
/**
@@ -491,9 +491,9 @@ static inline u16_t sys_get_le16(const u8_t src[2])
*
* @return 24-bit integer in host endianness.
*/
static inline u32_t sys_get_le24(const u8_t src[3])
static inline uint32_t sys_get_le24(const uint8_t src[3])
{
return ((u32_t)src[2] << 16) | sys_get_le16(&src[0]);
return ((uint32_t)src[2] << 16) | sys_get_le16(&src[0]);
}
/**
@@ -506,9 +506,9 @@ static inline u32_t sys_get_le24(const u8_t src[3])
*
* @return 32-bit integer in host endianness.
*/
static inline u32_t sys_get_le32(const u8_t src[4])
static inline uint32_t sys_get_le32(const uint8_t src[4])
{
return ((u32_t)sys_get_le16(&src[2]) << 16) | sys_get_le16(&src[0]);
return ((uint32_t)sys_get_le16(&src[2]) << 16) | sys_get_le16(&src[0]);
}
/**
@@ -521,9 +521,9 @@ static inline u32_t sys_get_le32(const u8_t src[4])
*
* @return 48-bit integer in host endianness.
*/
static inline u64_t sys_get_le48(const u8_t src[6])
static inline uint64_t sys_get_le48(const uint8_t src[6])
{
return ((u64_t)sys_get_le32(&src[2]) << 32) | sys_get_le16(&src[0]);
return ((uint64_t)sys_get_le32(&src[2]) << 32) | sys_get_le16(&src[0]);
}
/**
@@ -536,9 +536,9 @@ static inline u64_t sys_get_le48(const u8_t src[6])
*
* @return 64-bit integer in host endianness.
*/
static inline u64_t sys_get_le64(const u8_t src[8])
static inline uint64_t sys_get_le64(const uint8_t src[8])
{
return ((u64_t)sys_get_le32(&src[4]) << 32) | sys_get_le32(&src[0]);
return ((uint64_t)sys_get_le32(&src[4]) << 32) | sys_get_le32(&src[0]);
}
/**
@@ -556,8 +556,8 @@ static inline u64_t sys_get_le64(const u8_t src[8])
*/
static inline void sys_memcpy_swap(void *dst, const void *src, size_t length)
{
u8_t *pdst = (u8_t *)dst;
const u8_t *psrc = (const u8_t *)src;
uint8_t *pdst = (uint8_t *)dst;
const uint8_t *psrc = (const uint8_t *)src;
__ASSERT(((psrc < pdst && (psrc + length) <= pdst) ||
(psrc > pdst && (pdst + length) <= psrc)),
@@ -585,10 +585,10 @@ static inline void sys_mem_swap(void *buf, size_t length)
size_t i;
for (i = 0; i < (length / 2); i++) {
u8_t tmp = ((u8_t *)buf)[i];
uint8_t tmp = ((uint8_t *)buf)[i];
((u8_t *)buf)[i] = ((u8_t *)buf)[length - 1 - i];
((u8_t *)buf)[length - 1 - i] = tmp;
((uint8_t *)buf)[i] = ((uint8_t *)buf)[length - 1 - i];
((uint8_t *)buf)[length - 1 - i] = tmp;
}
}

View File

@@ -48,7 +48,7 @@ IRAM_ATTR void bt_mesh_free(void *ptr);
*
* @return NULL-fail, pointer of a net_buf_simple structure-success
*/
struct net_buf_simple *bt_mesh_alloc_buf(u16_t size);
struct net_buf_simple *bt_mesh_alloc_buf(uint16_t size);
/**
* @brief This function releases the memory allocated for the outgoing message.
@@ -71,7 +71,9 @@ void bt_mesh_free_buf(struct net_buf_simple *buf);
*
* @return 0 - Node, 1 - Provisioner
*/
u8_t bt_mesh_get_device_role(struct bt_mesh_model *model, bool srv_send);
uint8_t bt_mesh_get_device_role(struct bt_mesh_model *model, bool srv_send);
int bt_mesh_rand(void *buf, size_t len);
#ifdef __cplusplus
}

View File

@@ -0,0 +1,55 @@
// Copyright 2020-2021 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 _BLE_MESH_CONFIG_H_
#define _BLE_MESH_CONFIG_H_
#include "sdkconfig.h"
#ifdef __cplusplus
extern "C" {
#endif
#define CONFIG_BLE_MESH_GENERIC_CLIENT (CONFIG_BLE_MESH_GENERIC_ONOFF_CLI || \
CONFIG_BLE_MESH_GENERIC_LEVEL_CLI || \
CONFIG_BLE_MESH_GENERIC_DEF_TRANS_TIME_CLI || \
CONFIG_BLE_MESH_GENERIC_POWER_ONOFF_CLI || \
CONFIG_BLE_MESH_GENERIC_POWER_LEVEL_CLI || \
CONFIG_BLE_MESH_GENERIC_BATTERY_CLI || \
CONFIG_BLE_MESH_GENERIC_LOCATION_CLI || \
CONFIG_BLE_MESH_GENERIC_PROPERTY_CLI)
#define CONFIG_BLE_MESH_TIME_SCENE_CLIENT (CONFIG_BLE_MESH_TIME_CLI || \
CONFIG_BLE_MESH_SCENE_CLI || \
CONFIG_BLE_MESH_SCHEDULER_CLI)
#define CONFIG_BLE_MESH_LIGHTING_CLIENT (CONFIG_BLE_MESH_LIGHT_LIGHTNESS_CLI || \
CONFIG_BLE_MESH_LIGHT_CTL_CLI || \
CONFIG_BLE_MESH_LIGHT_HSL_CLI || \
CONFIG_BLE_MESH_LIGHT_XYL_CLI || \
CONFIG_BLE_MESH_LIGHT_LC_CLI)
#define CONFIG_BLE_MESH_SERVER_MODEL (CONFIG_BLE_MESH_GENERIC_SERVER || \
CONFIG_BLE_MESH_SENSOR_SERVER || \
CONFIG_BLE_MESH_TIME_SCENE_SERVER || \
CONFIG_BLE_MESH_LIGHTING_SERVER)
#define CONFIG_BLE_MESH_BLE_COEX_SUPPORT (CONFIG_BLE_MESH_SUPPORT_BLE_ADV || \
CONFIG_BLE_MESH_SUPPORT_BLE_SCAN)
#ifdef __cplusplus
}
#endif
#endif /* _BLE_MESH_CONFIG_H_ */

View File

@@ -291,7 +291,7 @@ static inline sys_dnode_t *sys_dlist_peek_head_not_empty(sys_dlist_t *list)
*/
static inline sys_dnode_t *sys_dlist_peek_next_no_check(sys_dlist_t *list,
sys_dnode_t *node)
sys_dnode_t *node)
{
return (node == list->tail) ? NULL : node->next;
}
@@ -307,7 +307,7 @@ static inline sys_dnode_t *sys_dlist_peek_next_no_check(sys_dlist_t *list,
*/
static inline sys_dnode_t *sys_dlist_peek_next(sys_dlist_t *list,
sys_dnode_t *node)
sys_dnode_t *node)
{
return node ? sys_dlist_peek_next_no_check(list, node) : NULL;
}
@@ -379,7 +379,8 @@ static inline void sys_dlist_prepend(sys_dlist_t *list, sys_dnode_t *node)
*/
static inline void sys_dlist_insert_after(sys_dlist_t *list,
sys_dnode_t *insert_point, sys_dnode_t *node)
sys_dnode_t *insert_point,
sys_dnode_t *node)
{
if (!insert_point) {
sys_dlist_prepend(list, node);
@@ -405,7 +406,8 @@ static inline void sys_dlist_insert_after(sys_dlist_t *list,
*/
static inline void sys_dlist_insert_before(sys_dlist_t *list,
sys_dnode_t *insert_point, sys_dnode_t *node)
sys_dnode_t *insert_point,
sys_dnode_t *node)
{
if (!insert_point) {
sys_dlist_append(list, node);

View File

@@ -27,7 +27,7 @@ extern "C" {
* @return most significant bit set, 0 if @a op is 0
*/
static ALWAYS_INLINE unsigned int find_msb_set(u32_t op)
static ALWAYS_INLINE unsigned int find_msb_set(uint32_t op)
{
if (op == 0) {
return 0;
@@ -48,7 +48,7 @@ static ALWAYS_INLINE unsigned int find_msb_set(u32_t op)
* @return least significant bit set, 0 if @a op is 0
*/
static ALWAYS_INLINE unsigned int find_lsb_set(u32_t op)
static ALWAYS_INLINE unsigned int find_lsb_set(uint32_t op)
{
return __builtin_ffs(op);
}

View File

@@ -13,7 +13,7 @@
#include "freertos/queue.h"
#include "freertos/semphr.h"
#include "sdkconfig.h"
#include "mesh_config.h"
#include "mesh_types.h"
#ifdef __cplusplus
@@ -50,7 +50,7 @@ extern "C" {
*
* @return N/A
*/
void k_sleep(s32_t duration);
void k_sleep(int32_t duration);
#ifdef __cplusplus
}

View File

@@ -312,7 +312,7 @@ static inline void sys_slist_append(sys_slist_t *list,
* @param tail A pointer to the last element of the list to append
*/
static inline void sys_slist_append_list(sys_slist_t *list,
void *head, void *tail)
void *head, void *tail)
{
if (!list->tail) {
list->head = (sys_snode_t *)head;
@@ -333,7 +333,7 @@ static inline void sys_slist_append_list(sys_slist_t *list,
* @param list_to_append A pointer to the list to append.
*/
static inline void sys_slist_merge_slist(sys_slist_t *list,
sys_slist_t *list_to_append)
sys_slist_t *list_to_append)
{
sys_slist_append_list(list, list_to_append->head,
list_to_append->tail);
@@ -443,7 +443,7 @@ static inline void sys_slist_remove(sys_slist_t *list,
* @return true if node was removed
*/
static inline bool sys_slist_find_and_remove(sys_slist_t *list,
sys_snode_t *node)
sys_snode_t *node)
{
sys_snode_t *prev = NULL;
sys_snode_t *test;

View File

@@ -142,7 +142,7 @@ struct k_work {
*
* @return Current uptime.
*/
u32_t k_uptime_get_32(void);
uint32_t k_uptime_get_32(void);
struct k_delayed_work {
struct k_work work;
@@ -180,9 +180,9 @@ struct k_delayed_work {
* @retval -EINVAL Work item is being processed or has completed its work.
* @retval -EADDRINUSE Work item is pending on a different workqueue.
*/
int k_delayed_work_submit(struct k_delayed_work *work, s32_t delay);
int k_delayed_work_submit(struct k_delayed_work *work, int32_t delay);
int k_delayed_work_submit_periodic(struct k_delayed_work *work, s32_t period);
int k_delayed_work_submit_periodic(struct k_delayed_work *work, int32_t period);
/**
* @brief Get time remaining before a delayed work gets scheduled.
@@ -195,7 +195,7 @@ int k_delayed_work_submit_periodic(struct k_delayed_work *work, s32_t period);
*
* @return Remaining time (in milliseconds).
*/
s32_t k_delayed_work_remaining_get(struct k_delayed_work *work);
int32_t k_delayed_work_remaining_get(struct k_delayed_work *work);
/**
* @brief Submit a work item to the system workqueue.
@@ -254,7 +254,7 @@ int k_delayed_work_init(struct k_delayed_work *work, k_work_handler_t handler);
*
* @return Current uptime.
*/
s64_t k_uptime_get(void);
int64_t k_uptime_get(void);
void bt_mesh_timer_init(void);
void bt_mesh_timer_deinit(void);

View File

@@ -17,39 +17,39 @@ extern "C" {
#endif
/* Define common tracing for all */
#ifndef LOG_LEVEL_ERROR
#define LOG_LEVEL_ERROR 1
#endif /* LOG_LEVEL_ERROR */
#ifndef BLE_MESH_LOG_LEVEL_ERROR
#define BLE_MESH_LOG_LEVEL_ERROR 1
#endif /* BLE_MESH_LOG_LEVEL_ERROR */
#ifndef LOG_LEVEL_WARN
#define LOG_LEVEL_WARN 2
#endif /* LOG_LEVEL_WARN */
#ifndef BLE_MESH_LOG_LEVEL_WARN
#define BLE_MESH_LOG_LEVEL_WARN 2
#endif /* BLE_MESH_LOG_LEVEL_WARN */
#ifndef LOG_LEVEL_INFO
#define LOG_LEVEL_INFO 3
#endif /* LOG_LEVEL_INFO */
#ifndef BLE_MESH_LOG_LEVEL_INFO
#define BLE_MESH_LOG_LEVEL_INFO 3
#endif /* BLE_MESH_LOG_LEVEL_INFO */
#ifndef LOG_LEVEL_DEBUG
#define LOG_LEVEL_DEBUG 4
#endif /* LOG_LEVEL_DEBUG */
#ifndef BLE_MESH_LOG_LEVEL_DEBUG
#define BLE_MESH_LOG_LEVEL_DEBUG 4
#endif /* BLE_MESH_LOG_LEVEL_DEBUG */
#ifndef LOG_LEVEL_VERBOSE
#define LOG_LEVEL_VERBOSE 5
#endif /*LOG_LEVEL_VERBOSE */
#ifndef BLE_MESH_LOG_LEVEL_VERBOSE
#define BLE_MESH_LOG_LEVEL_VERBOSE 5
#endif /*BLE_MESH_LOG_LEVEL_VERBOSE */
#ifdef CONFIG_BLE_MESH_STACK_TRACE_LEVEL
#define MESH_LOG_LEVEL CONFIG_BLE_MESH_STACK_TRACE_LEVEL
#define BLE_MESH_LOG_LEVEL CONFIG_BLE_MESH_STACK_TRACE_LEVEL
#else
#define MESH_LOG_LEVEL LOG_LEVEL_WARN
#define BLE_MESH_LOG_LEVEL BLE_MESH_LOG_LEVEL_WARN
#endif
#ifdef CONFIG_BLE_MESH_NET_BUF_TRACE_LEVEL
#define NET_BUF_LOG_LEVEL CONFIG_BLE_MESH_NET_BUF_TRACE_LEVEL
#define BLE_MESH_NET_BUF_LOG_LEVEL CONFIG_BLE_MESH_NET_BUF_TRACE_LEVEL
#else
#define NET_BUF_LOG_LEVEL LOG_LEVEL_WARN
#define BLE_MESH_NET_BUF_LOG_LEVEL BLE_MESH_LOG_LEVEL_WARN
#endif
#define MESH_TRACE_TAG "BLE_MESH"
#define BLE_MESH_TRACE_TAG "BLE_MESH"
#if (LOG_LOCAL_LEVEL >= 4)
#define BLE_MESH_LOG_LOCAL_LEVEL_MAPPING (LOG_LOCAL_LEVEL + 1)
@@ -57,13 +57,13 @@ extern "C" {
#define BLE_MESH_LOG_LOCAL_LEVEL_MAPPING LOG_LOCAL_LEVEL
#endif
#define BLE_MESH_LOG_LEVEL_CHECK(LAYER, LEVEL) (MAX(LAYER##_LOG_LEVEL, BLE_MESH_LOG_LOCAL_LEVEL_MAPPING) >= LOG_LEVEL_##LEVEL)
#define BLE_MESH_LOG_LEVEL_CHECK(LAYER, LEVEL) (MAX(LAYER##_LOG_LEVEL, BLE_MESH_LOG_LOCAL_LEVEL_MAPPING) >= BLE_MESH_LOG_LEVEL_##LEVEL)
#define BLE_MESH_PRINT_E(tag, format, ...) {esp_log_write(ESP_LOG_ERROR, tag, LOG_FORMAT(E, format), esp_log_timestamp(), tag, ##__VA_ARGS__); }
#define BLE_MESH_PRINT_W(tag, format, ...) {esp_log_write(ESP_LOG_WARN, tag, LOG_FORMAT(W, format), esp_log_timestamp(), tag, ##__VA_ARGS__); }
#define BLE_MESH_PRINT_I(tag, format, ...) {esp_log_write(ESP_LOG_INFO, tag, LOG_FORMAT(I, format), esp_log_timestamp(), tag, ##__VA_ARGS__); }
#define BLE_MESH_PRINT_D(tag, format, ...) {esp_log_write(ESP_LOG_DEBUG, tag, LOG_FORMAT(D, format), esp_log_timestamp(), tag, ##__VA_ARGS__); }
#define BLE_MESH_PRINT_V(tag, format, ...) {esp_log_write(ESP_LOG_VERBOSE, tag, LOG_FORMAT(V, format), esp_log_timestamp(), tag, ##__VA_ARGS__); }
#define BLE_MESH_PRINT_E(tag, format, ...) {esp_log_write(ESP_LOG_ERROR, tag, LOG_FORMAT(E, format), esp_log_timestamp(), tag, ##__VA_ARGS__); }
#define BLE_MESH_PRINT_W(tag, format, ...) {esp_log_write(ESP_LOG_WARN, tag, LOG_FORMAT(W, format), esp_log_timestamp(), tag, ##__VA_ARGS__); }
#define BLE_MESH_PRINT_I(tag, format, ...) {esp_log_write(ESP_LOG_INFO, tag, LOG_FORMAT(I, format), esp_log_timestamp(), tag, ##__VA_ARGS__); }
#define BLE_MESH_PRINT_D(tag, format, ...) {esp_log_write(ESP_LOG_DEBUG, tag, LOG_FORMAT(D, format), esp_log_timestamp(), tag, ##__VA_ARGS__); }
#define BLE_MESH_PRINT_V(tag, format, ...) {esp_log_write(ESP_LOG_VERBOSE, tag, LOG_FORMAT(V, format), esp_log_timestamp(), tag, ##__VA_ARGS__); }
#define printk ets_printf
@@ -85,14 +85,14 @@ extern "C" {
#endif
#ifndef __ASSERT_NO_MSG
#define __ASSERT_NO_MSG(x) do { if (!(x)) BLE_MESH_PRINT_E(MESH_TRACE_TAG, "error %s %u", __FILE__, __LINE__); } while (0)
#define __ASSERT_NO_MSG(x) do { if (!(x)) BLE_MESH_PRINT_E(BLE_MESH_TRACE_TAG, "error %s %u", __FILE__, __LINE__); } while (0)
#endif
#if !CONFIG_BLE_MESH_NO_LOG
#define BT_ERR(fmt, args...) do {if ((MESH_LOG_LEVEL >= LOG_LEVEL_ERROR) && BLE_MESH_LOG_LEVEL_CHECK(MESH, ERROR)) BLE_MESH_PRINT_E(MESH_TRACE_TAG, fmt, ## args);} while(0)
#define BT_WARN(fmt, args...) do {if ((MESH_LOG_LEVEL >= LOG_LEVEL_WARN) && BLE_MESH_LOG_LEVEL_CHECK(MESH, WARN)) BLE_MESH_PRINT_W(MESH_TRACE_TAG, fmt, ## args);} while(0)
#define BT_INFO(fmt, args...) do {if ((MESH_LOG_LEVEL >= LOG_LEVEL_INFO) && BLE_MESH_LOG_LEVEL_CHECK(MESH, INFO)) BLE_MESH_PRINT_I(MESH_TRACE_TAG, fmt, ## args);} while(0)
#define BT_DBG(fmt, args...) do {if ((MESH_LOG_LEVEL >= LOG_LEVEL_DEBUG) && BLE_MESH_LOG_LEVEL_CHECK(MESH, DEBUG)) BLE_MESH_PRINT_D(MESH_TRACE_TAG, fmt, ## args);} while(0)
#define BT_ERR(fmt, args...) do {if ((BLE_MESH_LOG_LEVEL >= BLE_MESH_LOG_LEVEL_ERROR) && BLE_MESH_LOG_LEVEL_CHECK(BLE_MESH, ERROR)) BLE_MESH_PRINT_E(BLE_MESH_TRACE_TAG, fmt, ## args);} while(0)
#define BT_WARN(fmt, args...) do {if ((BLE_MESH_LOG_LEVEL >= BLE_MESH_LOG_LEVEL_WARN) && BLE_MESH_LOG_LEVEL_CHECK(BLE_MESH, WARN)) BLE_MESH_PRINT_W(BLE_MESH_TRACE_TAG, fmt, ## args);} while(0)
#define BT_INFO(fmt, args...) do {if ((BLE_MESH_LOG_LEVEL >= BLE_MESH_LOG_LEVEL_INFO) && BLE_MESH_LOG_LEVEL_CHECK(BLE_MESH, INFO)) BLE_MESH_PRINT_I(BLE_MESH_TRACE_TAG, fmt, ## args);} while(0)
#define BT_DBG(fmt, args...) do {if ((BLE_MESH_LOG_LEVEL >= BLE_MESH_LOG_LEVEL_DEBUG) && BLE_MESH_LOG_LEVEL_CHECK(BLE_MESH, DEBUG)) BLE_MESH_PRINT_D(BLE_MESH_TRACE_TAG, fmt, ## args);} while(0)
#else
#define BT_ERR(fmt, args...)
#define BT_WARN(fmt, args...)
@@ -101,10 +101,10 @@ extern "C" {
#endif
#if defined(CONFIG_BLE_MESH_NET_BUF_LOG) && (!CONFIG_BLE_MESH_NO_LOG)
#define NET_BUF_ERR(fmt, args...) do {if ((NET_BUF_LOG_LEVEL >= LOG_LEVEL_ERROR) && BLE_MESH_LOG_LEVEL_CHECK(NET_BUF, ERROR)) BLE_MESH_PRINT_E(MESH_TRACE_TAG, fmt, ## args);} while(0)
#define NET_BUF_WARN(fmt, args...) do {if ((NET_BUF_LOG_LEVEL >= LOG_LEVEL_WARN) && BLE_MESH_LOG_LEVEL_CHECK(NET_BUF, WARN)) BLE_MESH_PRINT_W(MESH_TRACE_TAG, fmt, ## args);} while(0)
#define NET_BUF_INFO(fmt, args...) do {if ((NET_BUF_LOG_LEVEL >= LOG_LEVEL_INFO) && BLE_MESH_LOG_LEVEL_CHECK(NET_BUF, INFO)) BLE_MESH_PRINT_I(MESH_TRACE_TAG, fmt, ## args);} while(0)
#define NET_BUF_DBG(fmt, args...) do {if ((NET_BUF_LOG_LEVEL >= LOG_LEVEL_DEBUG) && BLE_MESH_LOG_LEVEL_CHECK(NET_BUF, DEBUG)) BLE_MESH_PRINT_D(MESH_TRACE_TAG, fmt, ## args);} while(0)
#define NET_BUF_ERR(fmt, args...) do {if ((BLE_MESH_NET_BUF_LOG_LEVEL >= BLE_MESH_LOG_LEVEL_ERROR) && BLE_MESH_LOG_LEVEL_CHECK(BLE_MESH_NET_BUF, ERROR)) BLE_MESH_PRINT_E(BLE_MESH_TRACE_TAG, fmt, ## args);} while(0)
#define NET_BUF_WARN(fmt, args...) do {if ((BLE_MESH_NET_BUF_LOG_LEVEL >= BLE_MESH_LOG_LEVEL_WARN) && BLE_MESH_LOG_LEVEL_CHECK(BLE_MESH_NET_BUF, WARN)) BLE_MESH_PRINT_W(BLE_MESH_TRACE_TAG, fmt, ## args);} while(0)
#define NET_BUF_INFO(fmt, args...) do {if ((BLE_MESH_NET_BUF_LOG_LEVEL >= BLE_MESH_LOG_LEVEL_INFO) && BLE_MESH_LOG_LEVEL_CHECK(BLE_MESH_NET_BUF, INFO)) BLE_MESH_PRINT_I(BLE_MESH_TRACE_TAG, fmt, ## args);} while(0)
#define NET_BUF_DBG(fmt, args...) do {if ((BLE_MESH_NET_BUF_LOG_LEVEL >= BLE_MESH_LOG_LEVEL_DEBUG) && BLE_MESH_LOG_LEVEL_CHECK(BLE_MESH_NET_BUF, DEBUG)) BLE_MESH_PRINT_D(BLE_MESH_TRACE_TAG, fmt, ## args);} while(0)
#define NET_BUF_ASSERT(cond) __ASSERT_NO_MSG(cond)
#else
#define NET_BUF_ERR(fmt, args...)
@@ -115,10 +115,10 @@ extern "C" {
#endif
#if defined(CONFIG_BLE_MESH_NET_BUF_SIMPLE_LOG) && (!CONFIG_BLE_MESH_NO_LOG)
#define NET_BUF_SIMPLE_ERR(fmt, args...) do {if ((NET_BUF_LOG_LEVEL >= LOG_LEVEL_ERROR) && BLE_MESH_LOG_LEVEL_CHECK(NET_BUF, ERROR)) BLE_MESH_PRINT_E(MESH_TRACE_TAG, fmt, ## args);} while(0)
#define NET_BUF_SIMPLE_WARN(fmt, args...) do {if ((NET_BUF_LOG_LEVEL >= LOG_LEVEL_WARN) && BLE_MESH_LOG_LEVEL_CHECK(NET_BUF, WARN)) BLE_MESH_PRINT_W(MESH_TRACE_TAG, fmt, ## args);} while(0)
#define NET_BUF_SIMPLE_INFO(fmt, args...) do {if ((NET_BUF_LOG_LEVEL >= LOG_LEVEL_INFO) && BLE_MESH_LOG_LEVEL_CHECK(NET_BUF, INFO)) BLE_MESH_PRINT_I(MESH_TRACE_TAG, fmt, ## args);} while(0)
#define NET_BUF_SIMPLE_DBG(fmt, args...) do {if ((NET_BUF_LOG_LEVEL >= LOG_LEVEL_DEBUG) && BLE_MESH_LOG_LEVEL_CHECK(NET_BUF, DEBUG)) BLE_MESH_PRINT_D(MESH_TRACE_TAG, fmt, ## args);} while(0)
#define NET_BUF_SIMPLE_ERR(fmt, args...) do {if ((BLE_MESH_NET_BUF_LOG_LEVEL >= BLE_MESH_LOG_LEVEL_ERROR) && BLE_MESH_LOG_LEVEL_CHECK(BLE_MESH_NET_BUF, ERROR)) BLE_MESH_PRINT_E(BLE_MESH_TRACE_TAG, fmt, ## args);} while(0)
#define NET_BUF_SIMPLE_WARN(fmt, args...) do {if ((BLE_MESH_NET_BUF_LOG_LEVEL >= BLE_MESH_LOG_LEVEL_WARN) && BLE_MESH_LOG_LEVEL_CHECK(BLE_MESH_NET_BUF, WARN)) BLE_MESH_PRINT_W(BLE_MESH_TRACE_TAG, fmt, ## args);} while(0)
#define NET_BUF_SIMPLE_INFO(fmt, args...) do {if ((BLE_MESH_NET_BUF_LOG_LEVEL >= BLE_MESH_LOG_LEVEL_INFO) && BLE_MESH_LOG_LEVEL_CHECK(BLE_MESH_NET_BUF, INFO)) BLE_MESH_PRINT_I(BLE_MESH_TRACE_TAG, fmt, ## args);} while(0)
#define NET_BUF_SIMPLE_DBG(fmt, args...) do {if ((BLE_MESH_NET_BUF_LOG_LEVEL >= BLE_MESH_LOG_LEVEL_DEBUG) && BLE_MESH_LOG_LEVEL_CHECK(BLE_MESH_NET_BUF, DEBUG)) BLE_MESH_PRINT_D(BLE_MESH_TRACE_TAG, fmt, ## args);} while(0)
#define NET_BUF_SIMPLE_ASSERT(cond) __ASSERT_NO_MSG(cond)
#else
#define NET_BUF_SIMPLE_ERR(fmt, args...)

View File

@@ -16,16 +16,6 @@
extern "C" {
#endif
typedef signed char s8_t;
typedef signed short s16_t;
typedef signed int s32_t;
typedef signed long long s64_t;
typedef unsigned char u8_t;
typedef unsigned short u16_t;
typedef unsigned int u32_t;
typedef unsigned long long u64_t;
typedef int bt_mesh_atomic_t;
#ifndef PRIu64

View File

@@ -15,6 +15,7 @@
#define _BLE_MESH_UTIL_H_
#include <stddef.h>
#include "esp_bit_defs.h"
#include "mesh_types.h"
#ifdef __cplusplus
@@ -25,13 +26,13 @@ extern "C" {
* Those are available for 32 bits architectures:
*/
#ifndef POINTER_TO_UINT
#define POINTER_TO_UINT(x) ((u32_t) (x))
#define POINTER_TO_UINT(x) ((uint32_t) (x))
#endif
#ifndef UINT_TO_POINTER
#define UINT_TO_POINTER(x) ((void *) (x))
#endif
#ifndef POINTER_TO_INT
#define POINTER_TO_INT(x) ((s32_t) (x))
#define POINTER_TO_INT(x) ((int32_t) (x))
#endif
#ifndef INT_TO_POINTER
#define INT_TO_POINTER(x) ((void *) (x))
@@ -56,9 +57,7 @@ extern "C" {
* an array (e.g. pointer)
*/
#ifndef ARRAY_SIZE
#define ARRAY_SIZE(array) \
((unsigned long) (IS_ARRAY(array) + \
(sizeof(array) / sizeof((array)[0]))))
#define ARRAY_SIZE(array) (sizeof(array) / sizeof((array)[0]))
#endif
/* Evaluates to 1 if ptr is part of array, 0 otherwise; compile error if
@@ -183,7 +182,7 @@ extern "C" {
const char *bt_hex(const void *buf, size_t len);
void mem_rcopy(u8_t *dst, u8_t const *src, u16_t len);
void mem_rcopy(uint8_t *dst, uint8_t const *src, uint16_t len);
#ifdef __cplusplus
}

View File

@@ -16,7 +16,7 @@ int net_buf_id(struct net_buf *buf)
}
static inline struct net_buf *pool_get_uninit(struct net_buf_pool *pool,
u16_t uninit_count)
uint16_t uninit_count)
{
struct net_buf *buf = NULL;
@@ -35,7 +35,7 @@ void net_buf_simple_clone(const struct net_buf_simple *original,
void *net_buf_simple_add(struct net_buf_simple *buf, size_t len)
{
u8_t *tail = net_buf_simple_tail(buf);
uint8_t *tail = net_buf_simple_tail(buf);
NET_BUF_SIMPLE_DBG("buf %p len %u", buf, len);
@@ -53,9 +53,9 @@ void *net_buf_simple_add_mem(struct net_buf_simple *buf, const void *mem,
return memcpy(net_buf_simple_add(buf, len), mem, len);
}
u8_t *net_buf_simple_add_u8(struct net_buf_simple *buf, u8_t val)
uint8_t *net_buf_simple_add_u8(struct net_buf_simple *buf, uint8_t val)
{
u8_t *u8 = NULL;
uint8_t *u8 = NULL;
NET_BUF_SIMPLE_DBG("buf %p val 0x%02x", buf, val);
@@ -65,70 +65,70 @@ u8_t *net_buf_simple_add_u8(struct net_buf_simple *buf, u8_t val)
return u8;
}
void net_buf_simple_add_le16(struct net_buf_simple *buf, u16_t val)
void net_buf_simple_add_le16(struct net_buf_simple *buf, uint16_t val)
{
NET_BUF_SIMPLE_DBG("buf %p val %u", buf, val);
sys_put_le16(val, net_buf_simple_add(buf, sizeof(val)));
}
void net_buf_simple_add_be16(struct net_buf_simple *buf, u16_t val)
void net_buf_simple_add_be16(struct net_buf_simple *buf, uint16_t val)
{
NET_BUF_SIMPLE_DBG("buf %p val %u", buf, val);
sys_put_be16(val, net_buf_simple_add(buf, sizeof(val)));
}
void net_buf_simple_add_le24(struct net_buf_simple *buf, u32_t val)
void net_buf_simple_add_le24(struct net_buf_simple *buf, uint32_t val)
{
NET_BUF_SIMPLE_DBG("buf %p val %u", buf, val);
sys_put_le24(val, net_buf_simple_add(buf, 3));
}
void net_buf_simple_add_be24(struct net_buf_simple *buf, u32_t val)
void net_buf_simple_add_be24(struct net_buf_simple *buf, uint32_t val)
{
NET_BUF_SIMPLE_DBG("buf %p val %u", buf, val);
sys_put_be24(val, net_buf_simple_add(buf, 3));
}
void net_buf_simple_add_le32(struct net_buf_simple *buf, u32_t val)
void net_buf_simple_add_le32(struct net_buf_simple *buf, uint32_t val)
{
NET_BUF_SIMPLE_DBG("buf %p val %u", buf, val);
sys_put_le32(val, net_buf_simple_add(buf, sizeof(val)));
}
void net_buf_simple_add_be32(struct net_buf_simple *buf, u32_t val)
void net_buf_simple_add_be32(struct net_buf_simple *buf, uint32_t val)
{
NET_BUF_SIMPLE_DBG("buf %p val %u", buf, val);
sys_put_be32(val, net_buf_simple_add(buf, sizeof(val)));
}
void net_buf_simple_add_le48(struct net_buf_simple *buf, u64_t val)
void net_buf_simple_add_le48(struct net_buf_simple *buf, uint64_t val)
{
NET_BUF_SIMPLE_DBG("buf %p val %" PRIu64, buf, val);
sys_put_le48(val, net_buf_simple_add(buf, 6));
}
void net_buf_simple_add_be48(struct net_buf_simple *buf, u64_t val)
void net_buf_simple_add_be48(struct net_buf_simple *buf, uint64_t val)
{
NET_BUF_SIMPLE_DBG("buf %p val %" PRIu64, buf, val);
sys_put_be48(val, net_buf_simple_add(buf, 6));
}
void net_buf_simple_add_le64(struct net_buf_simple *buf, u64_t val)
void net_buf_simple_add_le64(struct net_buf_simple *buf, uint64_t val)
{
NET_BUF_SIMPLE_DBG("buf %p val %" PRIu64, buf, val);
sys_put_le64(val, net_buf_simple_add(buf, sizeof(val)));
}
void net_buf_simple_add_be64(struct net_buf_simple *buf, u64_t val)
void net_buf_simple_add_be64(struct net_buf_simple *buf, uint64_t val)
{
NET_BUF_SIMPLE_DBG("buf %p val %" PRIu64, buf, val);
@@ -146,77 +146,77 @@ void *net_buf_simple_push(struct net_buf_simple *buf, size_t len)
return buf->data;
}
void net_buf_simple_push_le16(struct net_buf_simple *buf, u16_t val)
void net_buf_simple_push_le16(struct net_buf_simple *buf, uint16_t val)
{
NET_BUF_SIMPLE_DBG("buf %p val %u", buf, val);
sys_put_le16(val, net_buf_simple_push(buf, sizeof(val)));
}
void net_buf_simple_push_be16(struct net_buf_simple *buf, u16_t val)
void net_buf_simple_push_be16(struct net_buf_simple *buf, uint16_t val)
{
NET_BUF_SIMPLE_DBG("buf %p val %u", buf, val);
sys_put_be16(val, net_buf_simple_push(buf, sizeof(val)));
}
void net_buf_simple_push_u8(struct net_buf_simple *buf, u8_t val)
void net_buf_simple_push_u8(struct net_buf_simple *buf, uint8_t val)
{
u8_t *data = net_buf_simple_push(buf, 1);
uint8_t *data = net_buf_simple_push(buf, 1);
*data = val;
}
void net_buf_simple_push_le24(struct net_buf_simple *buf, u32_t val)
void net_buf_simple_push_le24(struct net_buf_simple *buf, uint32_t val)
{
NET_BUF_SIMPLE_DBG("buf %p val %u", buf, val);
sys_put_le24(val, net_buf_simple_push(buf, 3));
}
void net_buf_simple_push_be24(struct net_buf_simple *buf, u32_t val)
void net_buf_simple_push_be24(struct net_buf_simple *buf, uint32_t val)
{
NET_BUF_SIMPLE_DBG("buf %p val %u", buf, val);
sys_put_be24(val, net_buf_simple_push(buf, 3));
}
void net_buf_simple_push_le32(struct net_buf_simple *buf, u32_t val)
void net_buf_simple_push_le32(struct net_buf_simple *buf, uint32_t val)
{
NET_BUF_SIMPLE_DBG("buf %p val %u", buf, val);
sys_put_le32(val, net_buf_simple_push(buf, sizeof(val)));
}
void net_buf_simple_push_be32(struct net_buf_simple *buf, u32_t val)
void net_buf_simple_push_be32(struct net_buf_simple *buf, uint32_t val)
{
NET_BUF_SIMPLE_DBG("buf %p val %u", buf, val);
sys_put_be32(val, net_buf_simple_push(buf, sizeof(val)));
}
void net_buf_simple_push_le48(struct net_buf_simple *buf, u64_t val)
void net_buf_simple_push_le48(struct net_buf_simple *buf, uint64_t val)
{
NET_BUF_SIMPLE_DBG("buf %p val %" PRIu64, buf, val);
sys_put_le48(val, net_buf_simple_push(buf, 6));
}
void net_buf_simple_push_be48(struct net_buf_simple *buf, u64_t val)
void net_buf_simple_push_be48(struct net_buf_simple *buf, uint64_t val)
{
NET_BUF_SIMPLE_DBG("buf %p val %" PRIu64, buf, val);
sys_put_be48(val, net_buf_simple_push(buf, 6));
}
void net_buf_simple_push_le64(struct net_buf_simple *buf, u64_t val)
void net_buf_simple_push_le64(struct net_buf_simple *buf, uint64_t val)
{
NET_BUF_SIMPLE_DBG("buf %p val %" PRIu64, buf, val);
sys_put_le64(val, net_buf_simple_push(buf, sizeof(val)));
}
void net_buf_simple_push_be64(struct net_buf_simple *buf, u64_t val)
void net_buf_simple_push_be64(struct net_buf_simple *buf, uint64_t val)
{
NET_BUF_SIMPLE_DBG("buf %p val %" PRIu64, buf, val);
@@ -247,9 +247,9 @@ void *net_buf_simple_pull_mem(struct net_buf_simple *buf, size_t len)
return data;
}
u8_t net_buf_simple_pull_u8(struct net_buf_simple *buf)
uint8_t net_buf_simple_pull_u8(struct net_buf_simple *buf)
{
u8_t val = 0U;
uint8_t val = 0U;
val = buf->data[0];
net_buf_simple_pull(buf, 1);
@@ -257,30 +257,30 @@ u8_t net_buf_simple_pull_u8(struct net_buf_simple *buf)
return val;
}
u16_t net_buf_simple_pull_le16(struct net_buf_simple *buf)
uint16_t net_buf_simple_pull_le16(struct net_buf_simple *buf)
{
u16_t val = 0U;
uint16_t val = 0U;
val = UNALIGNED_GET((u16_t *)buf->data);
val = UNALIGNED_GET((uint16_t *)buf->data);
net_buf_simple_pull(buf, sizeof(val));
return sys_le16_to_cpu(val);
}
u16_t net_buf_simple_pull_be16(struct net_buf_simple *buf)
uint16_t net_buf_simple_pull_be16(struct net_buf_simple *buf)
{
u16_t val = 0U;
uint16_t val = 0U;
val = UNALIGNED_GET((u16_t *)buf->data);
val = UNALIGNED_GET((uint16_t *)buf->data);
net_buf_simple_pull(buf, sizeof(val));
return sys_be16_to_cpu(val);
}
u32_t net_buf_simple_pull_le24(struct net_buf_simple *buf)
uint32_t net_buf_simple_pull_le24(struct net_buf_simple *buf)
{
struct uint24 {
u32_t u24:24;
uint32_t u24:24;
} __packed val;
val = UNALIGNED_GET((struct uint24 *)buf->data);
@@ -289,10 +289,10 @@ u32_t net_buf_simple_pull_le24(struct net_buf_simple *buf)
return sys_le24_to_cpu(val.u24);
}
u32_t net_buf_simple_pull_be24(struct net_buf_simple *buf)
uint32_t net_buf_simple_pull_be24(struct net_buf_simple *buf)
{
struct uint24 {
u32_t u24:24;
uint32_t u24:24;
} __packed val;
val = UNALIGNED_GET((struct uint24 *)buf->data);
@@ -301,30 +301,30 @@ u32_t net_buf_simple_pull_be24(struct net_buf_simple *buf)
return sys_be24_to_cpu(val.u24);
}
u32_t net_buf_simple_pull_le32(struct net_buf_simple *buf)
uint32_t net_buf_simple_pull_le32(struct net_buf_simple *buf)
{
u32_t val = 0U;
uint32_t val = 0U;
val = UNALIGNED_GET((u32_t *)buf->data);
val = UNALIGNED_GET((uint32_t *)buf->data);
net_buf_simple_pull(buf, sizeof(val));
return sys_le32_to_cpu(val);
}
u32_t net_buf_simple_pull_be32(struct net_buf_simple *buf)
uint32_t net_buf_simple_pull_be32(struct net_buf_simple *buf)
{
u32_t val = 0U;
uint32_t val = 0U;
val = UNALIGNED_GET((u32_t *)buf->data);
val = UNALIGNED_GET((uint32_t *)buf->data);
net_buf_simple_pull(buf, sizeof(val));
return sys_be32_to_cpu(val);
}
u64_t net_buf_simple_pull_le48(struct net_buf_simple *buf)
uint64_t net_buf_simple_pull_le48(struct net_buf_simple *buf)
{
struct uint48 {
u64_t u48:48;
uint64_t u48:48;
} __packed val;
val = UNALIGNED_GET((struct uint48 *)buf->data);
@@ -333,10 +333,10 @@ u64_t net_buf_simple_pull_le48(struct net_buf_simple *buf)
return sys_le48_to_cpu(val.u48);
}
u64_t net_buf_simple_pull_be48(struct net_buf_simple *buf)
uint64_t net_buf_simple_pull_be48(struct net_buf_simple *buf)
{
struct uint48 {
u64_t u48:48;
uint64_t u48:48;
} __packed val;
val = UNALIGNED_GET((struct uint48 *)buf->data);
@@ -345,21 +345,21 @@ u64_t net_buf_simple_pull_be48(struct net_buf_simple *buf)
return sys_be48_to_cpu(val.u48);
}
u64_t net_buf_simple_pull_le64(struct net_buf_simple *buf)
uint64_t net_buf_simple_pull_le64(struct net_buf_simple *buf)
{
u64_t val;
uint64_t val;
val = UNALIGNED_GET((u64_t *)buf->data);
val = UNALIGNED_GET((uint64_t *)buf->data);
net_buf_simple_pull(buf, sizeof(val));
return sys_le64_to_cpu(val);
}
u64_t net_buf_simple_pull_be64(struct net_buf_simple *buf)
uint64_t net_buf_simple_pull_be64(struct net_buf_simple *buf)
{
u64_t val;
uint64_t val;
val = UNALIGNED_GET((u64_t *)buf->data);
val = UNALIGNED_GET((uint64_t *)buf->data);
net_buf_simple_pull(buf, sizeof(val));
return sys_be64_to_cpu(val);
@@ -506,7 +506,7 @@ void net_buf_unref(struct net_buf *buf)
}
}
static u8_t *fixed_data_alloc(struct net_buf *buf, size_t *size, s32_t timeout)
static uint8_t *fixed_data_alloc(struct net_buf *buf, size_t *size, int32_t timeout)
{
struct net_buf_pool *pool = buf->pool;
const struct net_buf_pool_fixed *fixed = pool->alloc->alloc_data;
@@ -516,7 +516,7 @@ static u8_t *fixed_data_alloc(struct net_buf *buf, size_t *size, s32_t timeout)
return fixed->data_pool + fixed->data_size * net_buf_id(buf);
}
static void fixed_data_unref(struct net_buf *buf, u8_t *data)
static void fixed_data_unref(struct net_buf *buf, uint8_t *data)
{
/* Nothing needed for fixed-size data pools */
}
@@ -526,7 +526,7 @@ const struct net_buf_data_cb net_buf_fixed_cb = {
.unref = fixed_data_unref,
};
static u8_t *data_alloc(struct net_buf *buf, size_t *size, s32_t timeout)
static uint8_t *data_alloc(struct net_buf *buf, size_t *size, int32_t timeout)
{
struct net_buf_pool *pool = buf->pool;
@@ -535,10 +535,10 @@ static u8_t *data_alloc(struct net_buf *buf, size_t *size, s32_t timeout)
#if defined(CONFIG_BLE_MESH_NET_BUF_LOG)
struct net_buf *net_buf_alloc_len_debug(struct net_buf_pool *pool, size_t size,
s32_t timeout, const char *func, int line)
int32_t timeout, const char *func, int line)
#else
struct net_buf *net_buf_alloc_len(struct net_buf_pool *pool, size_t size,
s32_t timeout)
int32_t timeout)
#endif
{
struct net_buf *buf = NULL;
@@ -604,15 +604,15 @@ success:
#if defined(CONFIG_BLE_MESH_NET_BUF_LOG)
struct net_buf *net_buf_alloc_fixed_debug(struct net_buf_pool *pool,
s32_t timeout, const char *func,
int line)
int32_t timeout, const char *func,
int line)
{
const struct net_buf_pool_fixed *fixed = pool->alloc->alloc_data;
return net_buf_alloc_len_debug(pool, fixed->data_size, timeout, func, line);
}
#else
struct net_buf *net_buf_alloc_fixed(struct net_buf_pool *pool, s32_t timeout)
struct net_buf *net_buf_alloc_fixed(struct net_buf_pool *pool, int32_t timeout)
{
const struct net_buf_pool_fixed *fixed = pool->alloc->alloc_data;
@@ -708,7 +708,7 @@ size_t net_buf_linearize(void *dst, size_t dst_len, struct net_buf *src,
copied = 0;
while (frag && len > 0) {
to_copy = MIN(len, frag->len - offset);
memcpy((u8_t *)dst + copied, frag->data + offset, to_copy);
memcpy((uint8_t *)dst + copied, frag->data + offset, to_copy);
copied += to_copy;
@@ -728,15 +728,15 @@ size_t net_buf_linearize(void *dst, size_t dst_len, struct net_buf *src,
* the buffer. It assumes that the buffer has at least one fragment.
*/
size_t net_buf_append_bytes(struct net_buf *buf, size_t len,
const void *value, s32_t timeout,
net_buf_allocator_cb allocate_cb, void *user_data)
const void *value, int32_t timeout,
net_buf_allocator_cb allocate_cb, void *user_data)
{
struct net_buf *frag = net_buf_frag_last(buf);
size_t added_len = 0U;
const u8_t *value8 = value;
const uint8_t *value8 = value;
do {
u16_t count = MIN(len, net_buf_tailroom(frag));
uint16_t count = MIN(len, net_buf_tailroom(frag));
net_buf_add_mem(frag, value8, count);
len -= count;

View File

@@ -15,6 +15,8 @@
#include <string.h>
#include <errno.h>
#include "esp_system.h"
#include "mesh_main.h"
#include "client_common.h"
#include "mesh_common.h"
@@ -50,10 +52,10 @@ IRAM_ATTR void bt_mesh_free(void *ptr)
heap_caps_free(ptr);
}
struct net_buf_simple *bt_mesh_alloc_buf(u16_t size)
struct net_buf_simple *bt_mesh_alloc_buf(uint16_t size)
{
struct net_buf_simple *buf = NULL;
u8_t *data = NULL;
uint8_t *data = NULL;
buf = (struct net_buf_simple *)bt_mesh_calloc(sizeof(struct net_buf_simple) + size);
if (!buf) {
@@ -61,7 +63,7 @@ struct net_buf_simple *bt_mesh_alloc_buf(u16_t size)
return NULL;
}
data = (u8_t *)buf + sizeof(struct net_buf_simple);
data = (uint8_t *)buf + sizeof(struct net_buf_simple);
buf->data = data;
buf->len = 0;
@@ -78,7 +80,7 @@ void bt_mesh_free_buf(struct net_buf_simple *buf)
}
}
u8_t bt_mesh_get_device_role(struct bt_mesh_model *model, bool srv_send)
uint8_t bt_mesh_get_device_role(struct bt_mesh_model *model, bool srv_send)
{
bt_mesh_client_user_data_t *client = NULL;
@@ -96,3 +98,17 @@ u8_t bt_mesh_get_device_role(struct bt_mesh_model *model, bool srv_send)
return client->msg_role;
}
int bt_mesh_rand(void *buf, size_t len)
{
if (buf == NULL || len == 0) {
BT_ERR("%s, Invalid parameter", __func__);
return -EINVAL;
}
esp_fill_random(buf, len);
BT_DBG("Random %s", bt_hex(buf, len));
return 0;
}

View File

@@ -8,7 +8,7 @@
#include "mesh_kernel.h"
void k_sleep(s32_t duration)
void k_sleep(int32_t duration)
{
vTaskDelay(duration / portTICK_PERIOD_MS);
}

View File

@@ -82,18 +82,13 @@ void bt_mesh_mutex_unlock(bt_mesh_mutex_t *mutex)
}
}
static void bt_mesh_alarm_mutex_new(void)
static inline void bt_mesh_alarm_mutex_new(void)
{
if (!alarm_lock.mutex) {
bt_mesh_mutex_create(&alarm_lock);
}
}
static void bt_mesh_alarm_mutex_free(void)
{
bt_mesh_mutex_free(&alarm_lock);
}
void bt_mesh_alarm_lock(void)
{
bt_mesh_mutex_lock(&alarm_lock);
@@ -104,18 +99,13 @@ void bt_mesh_alarm_unlock(void)
bt_mesh_mutex_unlock(&alarm_lock);
}
static void bt_mesh_list_mutex_new(void)
static inline void bt_mesh_list_mutex_new(void)
{
if (!list_lock.mutex) {
bt_mesh_mutex_create(&list_lock);
}
}
static void bt_mesh_list_mutex_free(void)
{
bt_mesh_mutex_free(&list_lock);
}
void bt_mesh_list_lock(void)
{
bt_mesh_mutex_lock(&list_lock);
@@ -126,18 +116,13 @@ void bt_mesh_list_unlock(void)
bt_mesh_mutex_unlock(&list_lock);
}
static void bt_mesh_buf_mutex_new(void)
static inline void bt_mesh_buf_mutex_new(void)
{
if (!buf_lock.mutex) {
bt_mesh_mutex_create(&buf_lock);
}
}
static void bt_mesh_buf_mutex_free(void)
{
bt_mesh_mutex_free(&buf_lock);
}
void bt_mesh_buf_lock(void)
{
bt_mesh_mutex_lock(&buf_lock);
@@ -148,18 +133,13 @@ void bt_mesh_buf_unlock(void)
bt_mesh_mutex_unlock(&buf_lock);
}
static void bt_mesh_atomic_mutex_new(void)
static inline void bt_mesh_atomic_mutex_new(void)
{
if (!atomic_lock.mutex) {
bt_mesh_mutex_create(&atomic_lock);
}
}
static void bt_mesh_atomic_mutex_free(void)
{
bt_mesh_mutex_free(&atomic_lock);
}
void bt_mesh_atomic_lock(void)
{
bt_mesh_mutex_lock(&atomic_lock);
@@ -178,6 +158,27 @@ void bt_mesh_mutex_init(void)
bt_mesh_atomic_mutex_new();
}
#if CONFIG_BLE_MESH_DEINIT
static inline void bt_mesh_alarm_mutex_free(void)
{
bt_mesh_mutex_free(&alarm_lock);
}
static inline void bt_mesh_list_mutex_free(void)
{
bt_mesh_mutex_free(&list_lock);
}
static inline void bt_mesh_buf_mutex_free(void)
{
bt_mesh_mutex_free(&buf_lock);
}
static inline void bt_mesh_atomic_mutex_free(void)
{
bt_mesh_mutex_free(&atomic_lock);
}
void bt_mesh_mutex_deinit(void)
{
bt_mesh_alarm_mutex_free();
@@ -185,3 +186,4 @@ void bt_mesh_mutex_deinit(void)
bt_mesh_buf_mutex_free();
bt_mesh_atomic_mutex_free();
}
#endif /* CONFIG_BLE_MESH_DEINIT */

View File

@@ -27,20 +27,20 @@ typedef struct alarm_t {
int64_t deadline_us;
} osi_alarm_t;
s64_t k_uptime_get(void)
int64_t k_uptime_get(void)
{
/** k_uptime_get_32 is in in milliseconds,
/* k_uptime_get_32 is in in milliseconds,
* but esp_timer_get_time is in microseconds
*/
return (esp_timer_get_time() / 1000);
}
u32_t k_uptime_get_32(void)
uint32_t k_uptime_get_32(void)
{
/** k_uptime_get_32 is in in milliseconds,
/* k_uptime_get_32 is in in milliseconds,
* but esp_timer_get_time is in microseconds
*/
return (u32_t)(esp_timer_get_time() / 1000);
return (uint32_t)(esp_timer_get_time() / 1000);
}
void bt_mesh_timer_init(void)
@@ -51,6 +51,7 @@ void bt_mesh_timer_init(void)
__ASSERT(bm_alarm_hash_map, "Failed to create hash map");
}
#if CONFIG_BLE_MESH_DEINIT
void bt_mesh_timer_deinit(void)
{
if (bm_alarm_hash_map) {
@@ -58,6 +59,7 @@ void bt_mesh_timer_deinit(void)
bm_alarm_hash_map = NULL;
}
}
#endif /* CONFIG_BLE_MESH_DEINIT */
int k_delayed_work_init(struct k_delayed_work *work, k_work_handler_t handler)
{
@@ -98,7 +100,7 @@ int k_delayed_work_init(struct k_delayed_work *work, k_work_handler_t handler)
return 0;
}
int k_delayed_work_submit(struct k_delayed_work *work, s32_t delay)
int k_delayed_work_submit(struct k_delayed_work *work, int32_t delay)
{
if (!work || !bm_alarm_hash_map) {
BT_ERR("%s, Invalid parameter", __func__);
@@ -120,7 +122,7 @@ int k_delayed_work_submit(struct k_delayed_work *work, s32_t delay)
return 0;
}
int k_delayed_work_submit_periodic(struct k_delayed_work *work, s32_t period)
int k_delayed_work_submit_periodic(struct k_delayed_work *work, int32_t period)
{
if (!work || !bm_alarm_hash_map) {
BT_ERR("%s, Invalid parameter", __func__);
@@ -184,9 +186,9 @@ int k_delayed_work_free(struct k_delayed_work *work)
return 0;
}
s32_t k_delayed_work_remaining_get(struct k_delayed_work *work)
int32_t k_delayed_work_remaining_get(struct k_delayed_work *work)
{
s32_t time = 0;
int32_t time = 0;
if (!work || !bm_alarm_hash_map) {
BT_ERR("%s, Invalid parameter", __func__);

View File

@@ -15,8 +15,8 @@ const char *bt_hex(const void *buf, size_t len)
{
static const char hex[] = "0123456789abcdef";
static char hexbufs[2][129];
static u8_t curbuf;
const u8_t *b = buf;
static uint8_t curbuf;
const uint8_t *b = buf;
char *str = NULL;
int i;
@@ -35,7 +35,7 @@ const char *bt_hex(const void *buf, size_t len)
return str;
}
void mem_rcopy(u8_t *dst, u8_t const *src, u16_t len)
void mem_rcopy(uint8_t *dst, uint8_t const *src, uint16_t len)
{
src += len;
while (len--) {

View File

@@ -10,8 +10,6 @@
#include <stdbool.h>
#include <errno.h>
#define BT_DBG_ENABLED IS_ENABLED(CONFIG_BLE_MESH_DEBUG_ACCESS)
#include "mesh.h"
#include "adv.h"
#include "transport.h"
@@ -25,7 +23,7 @@
#define BLE_MESH_SDU_MAX_LEN 384
static const struct bt_mesh_comp *dev_comp;
static u16_t dev_primary_addr;
static uint16_t dev_primary_addr;
void bt_mesh_model_foreach(void (*func)(struct bt_mesh_model *mod,
struct bt_mesh_elem *elem,
@@ -57,7 +55,7 @@ void bt_mesh_model_foreach(void (*func)(struct bt_mesh_model *mod,
}
}
s32_t bt_mesh_model_pub_period_get(struct bt_mesh_model *mod)
int32_t bt_mesh_model_pub_period_get(struct bt_mesh_model *mod)
{
int period = 0;
@@ -95,10 +93,10 @@ s32_t bt_mesh_model_pub_period_get(struct bt_mesh_model *mod)
}
}
static s32_t next_period(struct bt_mesh_model *mod)
static int32_t next_period(struct bt_mesh_model *mod)
{
struct bt_mesh_model_pub *pub = mod->pub;
u32_t elapsed = 0U, period = 0U;
uint32_t elapsed = 0U, period = 0U;
if (!pub) {
BT_ERR("Model has no publication support");
@@ -126,7 +124,7 @@ static s32_t next_period(struct bt_mesh_model *mod)
static void publish_sent(int err, void *user_data)
{
struct bt_mesh_model *mod = user_data;
s32_t delay = 0;
int32_t delay = 0;
BT_DBG("err %d", err);
@@ -147,7 +145,7 @@ static void publish_sent(int err, void *user_data)
}
}
static void publish_start(u16_t duration, int err, void *user_data)
static void publish_start(uint16_t duration, int err, void *user_data)
{
struct bt_mesh_model *mod = user_data;
struct bt_mesh_model_pub *pub = mod->pub;
@@ -236,7 +234,7 @@ static void mod_publish(struct k_work *work)
struct bt_mesh_model_pub *pub = CONTAINER_OF(work,
struct bt_mesh_model_pub,
timer.work);
s32_t period_ms = 0;
int32_t period_ms = 0;
int err = 0;
BT_DBG("%s", __func__);
@@ -287,7 +285,7 @@ struct bt_mesh_elem *bt_mesh_model_elem(struct bt_mesh_model *mod)
return &dev_comp->elem[mod->elem_idx];
}
struct bt_mesh_model *bt_mesh_model_get(bool vnd, u8_t elem_idx, u8_t mod_idx)
struct bt_mesh_model *bt_mesh_model_get(bool vnd, uint8_t elem_idx, uint8_t mod_idx)
{
struct bt_mesh_elem *elem = NULL;
@@ -364,6 +362,23 @@ static void mod_init(struct bt_mesh_model *mod, struct bt_mesh_elem *elem,
}
}
int bt_mesh_comp_register(const struct bt_mesh_comp *comp)
{
int err = 0;
/* There must be at least one element */
if (!comp->elem_count) {
return -EINVAL;
}
dev_comp = comp;
bt_mesh_model_foreach(mod_init, &err);
return err;
}
#if CONFIG_BLE_MESH_DEINIT
static void mod_deinit(struct bt_mesh_model *mod, struct bt_mesh_elem *elem,
bool vnd, bool primary, void *user_data)
{
@@ -404,22 +419,6 @@ static void mod_deinit(struct bt_mesh_model *mod, struct bt_mesh_elem *elem,
}
}
int bt_mesh_comp_register(const struct bt_mesh_comp *comp)
{
int err = 0;
/* There must be at least one element */
if (!comp->elem_count) {
return -EINVAL;
}
dev_comp = comp;
bt_mesh_model_foreach(mod_init, &err);
return err;
}
int bt_mesh_comp_deregister(void)
{
int err = 0;
@@ -434,8 +433,9 @@ int bt_mesh_comp_deregister(void)
return err;
}
#endif /* CONFIG_BLE_MESH_DEINIT */
void bt_mesh_comp_provision(u16_t addr)
void bt_mesh_comp_provision(uint16_t addr)
{
int i;
@@ -460,12 +460,12 @@ void bt_mesh_comp_unprovision(void)
dev_primary_addr = BLE_MESH_ADDR_UNASSIGNED;
}
u16_t bt_mesh_primary_addr(void)
uint16_t bt_mesh_primary_addr(void)
{
return dev_primary_addr;
}
u16_t *bt_mesh_model_find_group(struct bt_mesh_model *mod, u16_t addr)
uint16_t *bt_mesh_model_find_group(struct bt_mesh_model *mod, uint16_t addr)
{
int i;
@@ -479,10 +479,10 @@ u16_t *bt_mesh_model_find_group(struct bt_mesh_model *mod, u16_t addr)
}
static struct bt_mesh_model *bt_mesh_elem_find_group(struct bt_mesh_elem *elem,
u16_t group_addr)
uint16_t group_addr)
{
struct bt_mesh_model *model = NULL;
u16_t *match = NULL;
uint16_t *match = NULL;
int i;
for (i = 0; i < elem->model_count; i++) {
@@ -506,9 +506,9 @@ static struct bt_mesh_model *bt_mesh_elem_find_group(struct bt_mesh_elem *elem,
return NULL;
}
struct bt_mesh_elem *bt_mesh_elem_find(u16_t addr)
struct bt_mesh_elem *bt_mesh_elem_find(uint16_t addr)
{
u16_t index = 0U;
uint16_t index = 0U;
if (BLE_MESH_ADDR_IS_UNICAST(addr)) {
index = (addr - dev_comp->elem[0].addr);
@@ -530,12 +530,12 @@ struct bt_mesh_elem *bt_mesh_elem_find(u16_t addr)
return NULL;
}
u8_t bt_mesh_elem_count(void)
uint8_t bt_mesh_elem_count(void)
{
return dev_comp->elem_count;
}
static bool model_has_key(struct bt_mesh_model *mod, u16_t key)
static bool model_has_key(struct bt_mesh_model *mod, uint16_t key)
{
int i;
@@ -548,7 +548,7 @@ static bool model_has_key(struct bt_mesh_model *mod, u16_t key)
return false;
}
static bool model_has_dst(struct bt_mesh_model *model, u16_t dst)
static bool model_has_dst(struct bt_mesh_model *model, uint16_t dst)
{
if (BLE_MESH_ADDR_IS_UNICAST(dst)) {
return (dev_comp->elem[model->elem_idx].addr == dst);
@@ -560,7 +560,7 @@ static bool model_has_dst(struct bt_mesh_model *model, u16_t dst)
}
static const struct bt_mesh_model_op *find_op(struct bt_mesh_model *models,
u8_t model_count, u32_t opcode,
uint8_t model_count, uint32_t opcode,
struct bt_mesh_model **model)
{
int i;
@@ -581,7 +581,7 @@ static const struct bt_mesh_model_op *find_op(struct bt_mesh_model *models,
return NULL;
}
static int get_opcode(struct net_buf_simple *buf, u32_t *opcode)
static int get_opcode(struct net_buf_simple *buf, uint32_t *opcode)
{
switch (buf->data[0] >> 6) {
case 0x00:
@@ -619,7 +619,7 @@ static int get_opcode(struct net_buf_simple *buf, u32_t *opcode)
return -EINVAL;
}
bool bt_mesh_fixed_group_match(u16_t addr)
bool bt_mesh_fixed_group_match(uint16_t addr)
{
/* Check for fixed group addresses */
switch (addr) {
@@ -640,8 +640,8 @@ void bt_mesh_model_recv(struct bt_mesh_net_rx *rx, struct net_buf_simple *buf)
{
struct bt_mesh_model *models = NULL, *model = NULL;
const struct bt_mesh_model_op *op = NULL;
u32_t opcode = 0U;
u8_t count = 0U;
uint32_t opcode = 0U;
uint8_t count = 0U;
int i;
BT_INFO("recv, app_idx 0x%04x src 0x%04x dst 0x%04x", rx->ctx.app_idx,
@@ -712,7 +712,7 @@ void bt_mesh_model_recv(struct bt_mesh_net_rx *rx, struct net_buf_simple *buf)
}
}
void bt_mesh_model_msg_init(struct net_buf_simple *msg, u32_t opcode)
void bt_mesh_model_msg_init(struct net_buf_simple *msg, uint32_t opcode)
{
net_buf_simple_init(msg, 0);
@@ -737,7 +737,7 @@ void bt_mesh_model_msg_init(struct net_buf_simple *msg, u32_t opcode)
}
}
static bool ready_to_send(u8_t role, u16_t dst)
static bool ready_to_send(uint8_t role, uint16_t dst)
{
if (IS_ENABLED(CONFIG_BLE_MESH_NODE) && bt_mesh_is_provisioned() && role == NODE) {
return true;
@@ -759,7 +759,7 @@ static int model_send(struct bt_mesh_model *model,
struct net_buf_simple *msg,
const struct bt_mesh_send_cb *cb, void *cb_data)
{
u8_t role = 0U;
uint8_t role = 0U;
role = bt_mesh_get_device_role(model, tx->ctx->srv_send);
if (role == ROLE_NVAL) {
@@ -800,7 +800,7 @@ int bt_mesh_model_send(struct bt_mesh_model *model,
const struct bt_mesh_send_cb *cb, void *cb_data)
{
struct bt_mesh_subnet *sub = NULL;
u8_t role = 0U;
uint8_t role = 0U;
role = bt_mesh_get_device_role(model, ctx->srv_send);
if (role == ROLE_NVAL) {
@@ -909,7 +909,7 @@ int bt_mesh_model_publish(struct bt_mesh_model *model)
}
struct bt_mesh_model *bt_mesh_model_find_vnd(struct bt_mesh_elem *elem,
u16_t company, u16_t id)
uint16_t company, uint16_t id)
{
int i;
@@ -923,7 +923,7 @@ struct bt_mesh_model *bt_mesh_model_find_vnd(struct bt_mesh_elem *elem,
return NULL;
}
struct bt_mesh_model *bt_mesh_model_find(struct bt_mesh_elem *elem, u16_t id)
struct bt_mesh_model *bt_mesh_model_find(struct bt_mesh_elem *elem, uint16_t id)
{
int i;
@@ -942,7 +942,7 @@ const struct bt_mesh_comp *bt_mesh_comp_get(void)
}
/* APIs used by messages encryption in upper transport layer & network layer */
struct bt_mesh_subnet *bt_mesh_tx_netkey_get(u8_t role, u16_t net_idx)
struct bt_mesh_subnet *bt_mesh_tx_netkey_get(uint8_t role, uint16_t net_idx)
{
struct bt_mesh_subnet *sub = NULL;
@@ -957,9 +957,9 @@ struct bt_mesh_subnet *bt_mesh_tx_netkey_get(u8_t role, u16_t net_idx)
return sub;
}
const u8_t *bt_mesh_tx_devkey_get(u8_t role, u16_t dst)
const uint8_t *bt_mesh_tx_devkey_get(uint8_t role, uint16_t dst)
{
const u8_t *key = NULL;
const uint8_t *key = NULL;
if (IS_ENABLED(CONFIG_BLE_MESH_NODE) && bt_mesh_is_provisioned() && role == NODE) {
key = bt_mesh.dev_key;
@@ -972,7 +972,7 @@ const u8_t *bt_mesh_tx_devkey_get(u8_t role, u16_t dst)
return key;
}
struct bt_mesh_app_key *bt_mesh_tx_appkey_get(u8_t role, u16_t app_idx)
struct bt_mesh_app_key *bt_mesh_tx_appkey_get(uint8_t role, uint16_t app_idx)
{
struct bt_mesh_app_key *key = NULL;
@@ -1067,9 +1067,9 @@ size_t bt_mesh_rx_devkey_size(void)
return size;
}
const u8_t *bt_mesh_rx_devkey_get(size_t index, u16_t src)
const uint8_t *bt_mesh_rx_devkey_get(size_t index, uint16_t src)
{
const u8_t *key = NULL;
const uint8_t *key = NULL;
#if CONFIG_BLE_MESH_NODE && !CONFIG_BLE_MESH_PROVISIONER
if (bt_mesh_is_provisioned()) {

View File

@@ -22,16 +22,16 @@ enum {
BLE_MESH_MOD_PUB_PENDING = BIT(2),
};
void bt_mesh_elem_register(struct bt_mesh_elem *elem, u8_t count);
void bt_mesh_elem_register(struct bt_mesh_elem *elem, uint8_t count);
u8_t bt_mesh_elem_count(void);
uint8_t bt_mesh_elem_count(void);
/* Find local element based on unicast or group address */
struct bt_mesh_elem *bt_mesh_elem_find(u16_t addr);
struct bt_mesh_elem *bt_mesh_elem_find(uint16_t addr);
u16_t *bt_mesh_model_find_group(struct bt_mesh_model *mod, u16_t addr);
uint16_t *bt_mesh_model_find_group(struct bt_mesh_model *mod, uint16_t addr);
bool bt_mesh_fixed_group_match(u16_t addr);
bool bt_mesh_fixed_group_match(uint16_t addr);
void bt_mesh_model_foreach(void (*func)(struct bt_mesh_model *mod,
struct bt_mesh_elem *elem,
@@ -39,27 +39,27 @@ void bt_mesh_model_foreach(void (*func)(struct bt_mesh_model *mod,
void *user_data),
void *user_data);
s32_t bt_mesh_model_pub_period_get(struct bt_mesh_model *mod);
int32_t bt_mesh_model_pub_period_get(struct bt_mesh_model *mod);
void bt_mesh_comp_provision(u16_t addr);
void bt_mesh_comp_provision(uint16_t addr);
void bt_mesh_comp_unprovision(void);
u16_t bt_mesh_primary_addr(void);
uint16_t bt_mesh_primary_addr(void);
const struct bt_mesh_comp *bt_mesh_comp_get(void);
struct bt_mesh_model *bt_mesh_model_get(bool vnd, u8_t elem_idx, u8_t mod_idx);
struct bt_mesh_model *bt_mesh_model_get(bool vnd, uint8_t elem_idx, uint8_t mod_idx);
void bt_mesh_model_recv(struct bt_mesh_net_rx *rx, struct net_buf_simple *buf);
int bt_mesh_comp_register(const struct bt_mesh_comp *comp);
int bt_mesh_comp_deregister(void);
struct bt_mesh_subnet *bt_mesh_tx_netkey_get(u8_t role, u16_t net_idx);
struct bt_mesh_subnet *bt_mesh_tx_netkey_get(uint8_t role, uint16_t net_idx);
const u8_t *bt_mesh_tx_devkey_get(u8_t role, u16_t dst);
const uint8_t *bt_mesh_tx_devkey_get(uint8_t role, uint16_t dst);
struct bt_mesh_app_key *bt_mesh_tx_appkey_get(u8_t role, u16_t app_idx);
struct bt_mesh_app_key *bt_mesh_tx_appkey_get(uint8_t role, uint16_t app_idx);
size_t bt_mesh_rx_netkey_size(void);
@@ -67,7 +67,7 @@ struct bt_mesh_subnet *bt_mesh_rx_netkey_get(size_t index);
size_t bt_mesh_rx_devkey_size(void);
const u8_t *bt_mesh_rx_devkey_get(size_t index, u16_t src);
const uint8_t *bt_mesh_rx_devkey_get(size_t index, uint16_t src);
size_t bt_mesh_rx_appkey_size(void);

Some files were not shown because too many files have changed in this diff Show More