Compare commits

..

37 Commits

Author SHA1 Message Date
Angus Gratton
b64b375234 version: Update to v3.3.4 2020-09-18 19:42:21 +10:00
Jiang Jiang Jian
22e3c00b48 Merge branch 'bugfix/fix_udp_tx_performance_issue_v3.3' into 'release/v3.3'
lw-ip: fix udp tx packet loss issue (backport v3.3)

See merge request espressif/esp-idf!10007
2020-08-12 16:16:47 +08:00
xiehang
7952bed766 lwip: fix udp tx packet loss issue 2020-08-12 10:38:42 +08:00
Jiang Jiang Jian
8ab3cb0b12 Merge branch 'bugfix/fix_IPv6_memory_leak_issue' into 'release/v3.3'
lw-ip: fix IPv6 memory leak issue

See merge request espressif/esp-idf!9933
2020-08-11 22:09:50 +08:00
ronghulin
cb78c1083f bugfix: fix IPv6 memory leak issue 2020-08-11 14:19:06 +08:00
Jiang Jiang Jian
7e1c529b00 Merge branch 'bugfix/param_check_instant_tx_octets_adv_ubderrun_v3.3' into 'release/v3.3'
component/bt: add connect parameter, fix instant reverse, fix tx default octets, fix assert(1024,0)

See merge request espressif/esp-idf!9484
2020-08-11 14:11:03 +08:00
Jiang Jiang Jian
f538307629 Merge branch 'bugfix/ipv6_fragment_for_3.3' into 'release/v3.3'
lw-ip:fix bug for ipv6 fragment(backport 3.3)

See merge request espressif/esp-idf!9655
2020-08-11 14:09:11 +08:00
xueyunfei
68ecc44d34 fix bug for ipv6 fragment 2020-08-11 09:45:02 +08:00
Jiang Jiang Jian
b244afc208 Merge branch 'feature/make_tcp_rto_configurable_v3.3' into 'release/v3.3'
make TCP rto time configurable (backport v3.3)

See merge request espressif/esp-idf!9610
2020-08-10 21:17:45 +08:00
Wang Cheng
bfaa14bfdd component/bt: Fix buffer count deinit crash. 2020-08-10 11:43:54 +08:00
wangcheng
12d476427f components/bt: Add api to query the number of available buffers for the current connection 2020-08-10 11:43:54 +08:00
baohongde
debda4a63f Fix ble disconnect due to instant of channel map update is too small
Set AFH in time
Fix ble connecting fail in coexist
2020-08-10 11:43:54 +08:00
baohongde
b76f5b2ef2 Coexistence: Add coexist API to enable BLE connection dynamic priority 2020-08-10 11:43:54 +08:00
wangcheng
d674016d64 component/bt: add connect parameter, fix instant reverse, fix tx default octets, fix assert(1024,0), fix assert(512,0) 2020-08-10 11:43:17 +08:00
He Yin Ling
aa6730f0e2 Merge branch 'bugfix/checkout_ref_auto_test_script' into 'release/v3.3'
CI: IT jobs use incorrect auto test script branch

See merge request espressif/esp-idf!9867
2020-07-31 17:45:04 +08:00
Jiang Jiang Jian
593ca2255c Merge branch 'mesh/bugfix_set_type_v3.3' into 'release/v3.3'
Mesh/bugfix (backport v3.3)

See merge request espressif/esp-idf!9179
2020-07-30 21:17:11 +08:00
Chen Yudong
dc5eeb8e4b ci: fix auto test script uses incorrect branch 2020-07-30 20:55:37 +08:00
Jiang Jiang Jian
44791067ec Merge branch 'nimble/nrpa_support_v3.3' into 'release/v3.3'
NimBLE: Add Non-Resolvable private address support and misc fixes (Backport v3.3)

See merge request espressif/esp-idf!9735
2020-07-29 16:35:25 +08:00
Angus Gratton
4f5577446b Merge branch 'bugfix/rs485_test_temp_disable_v33' into 'release/v3.3'
Bugfix/rs485 test temp disable v33 (backport v3.3)

See merge request espressif/esp-idf!9521
2020-07-24 11:14:57 +08:00
Prasad Alatkar
7aab15f33d NimBLE: Add Non-Resolvable private address support and misc bug fixes (Backport v3.3)
- Merges https://github.com/espressif/esp-nimble/pull/12
- Fixes repeated pairing failure in RPA feature

Closes https://github.com/espressif/esp-idf/issues/5530
2020-07-23 11:28:42 +05:30
aleks
b64f4bced8 ci: temporarily disable RS485 related tests 2020-07-22 08:46:57 +00:00
Angus Gratton
bf02206096 Merge branch 'ci/workaround_multiple_ci_failures_v3.3' into 'release/v3.3'
CI: workaround multiple ci failures (v3.3)

See merge request espressif/esp-idf!9687
2020-07-22 11:54:45 +08:00
yuanjm
e5066c9969 feat(lwip): make LWIP TCP rto time configurable 2020-07-20 07:58:06 +00:00
Angus Gratton
07942e3991 Merge branch 'bugfix/cmake_bugfixes_v3.3' into 'release/v3.3'
CMake-related bugfixes (v3.3)

See merge request espressif/esp-idf!8069
2020-07-20 08:43:52 +08:00
Angus Gratton
62a187b55b Merge branch 'feature/msys2_toolchain_v3.3' into 'release/v3.3'
windows: Update the prebuilt MSYS2 environment to use new toolchain

See merge request espressif/esp-idf!9624
2020-07-20 08:23:08 +08:00
He Yin Ling
858e12a040 CI: do not run cases likely to fail 2020-07-19 15:30:15 +08:00
He Yin Ling
bfb7757feb CI: disable cases with test env SSC_T5_1 2020-07-19 15:26:29 +08:00
He Yin Ling
de82bd5d19 CI: temp allow mesh job to fail as runner is not stable 2020-07-19 15:24:55 +08:00
He Yin Ling
9a205c654d CI: remove incorrect MTU related cases 2020-07-19 15:23:21 +08:00
Angus Gratton
ff2fef7e91 windows: Update the prebuilt MSYS2 environment to use then new toolchain
No other changes in the environment contents.
2020-07-15 12:04:09 +10:00
chenyudong
83fdac780c mesh/ci: fix MESH_EST_0216 2020-07-10 17:57:36 +08:00
chenyudong
7c95474f6c mesh: backport some bugfixes
1. If the root is specified (FIXED-ROOT) by set type or set parent, change ie.mesh_type to MESH_ROOT before connect to router.
2. Release esp_mesh_recv_toDS when the root becomes non-root.
3. esp_mesh_set_type now supports MESH_IDLE and MESH_STA.
4. Fix ie.rc_rssi is not updated during scan and vote.
5. Fix ie.mesh_type do not match ie.layer caused by parent switch.
6. Fix during root switch, the original root doesn't disconnect from the router after it receives the switch request from the new voted root. (root switch happens by invoking esp_mesh_waive_root).
7. Fix the routing announce timer is not stopped immediately in a new root if the new root is transformed from non-root.
8. Choose the candidate with less ie.assoc when doing parent switch.
2020-07-10 17:57:34 +08:00
Renz Bagaporo
07830df4d3 examples: split source files for one of the ulp examples 2020-03-23 13:12:49 +08:00
Renz Christian Bagaporo
d497c4babd ldgen: fix build issue on make when build dir is a symlink
Fixes an issue where build fails if the build directory is a symlink.
The issue is caused by the rule target and the final executable dependency
not matching.

Closes https://github.com/espressif/esp-idf/issues/3626
2020-03-23 13:12:49 +08:00
Renz Christian Bagaporo
2d28fd2563 cmake: fix build failure when git repo is initialized but no first commit
Closes https://github.com/espressif/esp-idf/issues/3920
2020-03-23 13:12:49 +08:00
Renz Bagaporo
1592f338a6 ci: add test for partition_table target 2020-03-23 13:12:49 +08:00
Renz Christian Bagaporo
0ee287cd32 partition_table: output partition table info for partition_table target 2020-03-23 13:12:49 +08:00
56 changed files with 1303 additions and 233 deletions

View File

@@ -935,7 +935,6 @@ assign_test:
# clone local test env configs
- git clone $TEST_ENV_CONFIG_REPOSITORY
- python $CHECKOUT_REF_SCRIPT ci-test-runner-configs ci-test-runner-configs
- cd ci-test-runner-configs
# clone test bench
- git clone $TEST_SCRIPT_REPOSITORY
- python $CHECKOUT_REF_SCRIPT auto_test_script auto_test_script
@@ -961,7 +960,6 @@ nvs_compatible_test:
# clone local test env configs
- git clone $TEST_ENV_CONFIG_REPOSITORY
- python $CHECKOUT_REF_SCRIPT ci-test-runner-configs ci-test-runner-configs
- cd ci-test-runner-configs
# clone test bench
- git clone $TEST_SCRIPT_REPOSITORY
- python $CHECKOUT_REF_SCRIPT auto_test_script auto_test_script
@@ -1337,14 +1335,13 @@ IT_004:
IT_005:
<<: *test_template
parallel: 2
tags:
- ESP32_IDF
- SSC_T1_5
IT_006:
<<: *test_template
parallel: 8
parallel: 7
tags:
- ESP32_IDF
- SSC_T1_6
@@ -1368,13 +1365,6 @@ IT_009:
- ESP32_IDF
- SSC_T1_3
IT_010:
<<: *test_template
parallel: 4
tags:
- ESP32_IDF
- SSC_T5_1
IT_011:
<<: *test_template
tags:
@@ -1414,6 +1404,7 @@ IT_015:
IT_016:
<<: *test_template
allow_failure: true
tags:
- ESP32_IDF
- SSC_T50_MESH1
@@ -1426,7 +1417,6 @@ IT_017:
IT_018:
<<: *test_template
parallel: 2
tags:
- ESP32_IDF
- SSC_T1_9

View File

@@ -50,9 +50,33 @@ esp_err_t esp_ble_gatt_set_local_mtu (uint16_t mtu)
#if (BLE_INCLUDED == TRUE)
extern uint16_t L2CA_GetFreePktBufferNum_LE(void);
/**
* @brief This function is called to get currently sendable packets number on controller,
* the function is called only in BLE running core and single connection now.
*
* @return
* sendable packets number on controller
*
*/
uint16_t esp_ble_get_sendable_packets_num ()
uint16_t esp_ble_get_sendable_packets_num (void)
{
return L2CA_GetFreePktBufferNum_LE();
}
/**
* @brief This function is used to query the number of available buffers for the current connection.
* When you need to query the current available buffer number, it is recommended to use this API.
* @param[in] conn_id: current connection id.
*
* @return
* Number of available buffers for the current connection
*
*/
extern UINT16 L2CA_GetCurFreePktBufferNum_LE(UINT16 conn_id);
uint16_t esp_ble_get_cur_sendable_packets_num (uint16_t connid)
{
return L2CA_GetCurFreePktBufferNum_LE(connid);
}
#endif

View File

@@ -431,6 +431,9 @@ esp_err_t esp_ble_gattc_write_char(esp_gatt_if_t gattc_if,
arg.write_char.value = value;
arg.write_char.write_type = write_type;
arg.write_char.auth_req = auth_req;
if(write_type == ESP_GATT_WRITE_TYPE_NO_RSP){
l2ble_update_att_acl_pkt_num(L2CA_ADD_BTC_NUM, NULL);
}
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_gattc_args_t), btc_gattc_arg_deep_copy) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}
@@ -462,6 +465,10 @@ esp_err_t esp_ble_gattc_write_char_descr (esp_gatt_if_t gattc_if,
arg.write_descr.write_type = write_type;
arg.write_descr.auth_req = auth_req;
if(write_type == ESP_GATT_WRITE_TYPE_NO_RSP){
l2ble_update_att_acl_pkt_num(L2CA_ADD_BTC_NUM, NULL);
}
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_gattc_args_t), btc_gattc_arg_deep_copy) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}

View File

@@ -274,6 +274,9 @@ esp_err_t esp_ble_gatts_send_indicate(esp_gatt_if_t gatts_if, uint16_t conn_id,
arg.send_ind.value_len = value_len;
arg.send_ind.value = value;
if(need_confirm == false){
l2ble_update_att_acl_pkt_num(L2CA_ADD_BTC_NUM, NULL);
}
return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_gatts_args_t),
btc_gatts_arg_deep_copy) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
}

View File

@@ -46,6 +46,7 @@ extern esp_err_t esp_ble_gatt_set_local_mtu (uint16_t mtu);
#if (BLE_INCLUDED == TRUE)
extern uint16_t esp_ble_get_sendable_packets_num (void);
extern uint16_t esp_ble_get_cur_sendable_packets_num (uint16_t connid);
#endif
#ifdef __cplusplus

View File

@@ -31,7 +31,7 @@
#include "bta/bta_sys.h"
#include "bta/bta_gatt_api.h"
#include "bta_gattc_int.h"
#include "stack/l2c_api.h"
/*****************************************************************************
** Constants
*****************************************************************************/
@@ -603,6 +603,10 @@ void BTA_GATTC_WriteCharValue ( UINT16 conn_id,
memcpy(p_buf->p_value, p_value, len);
}
if(write_type == BTA_GATTC_TYPE_WRITE_NO_RSP){
l2ble_update_att_acl_pkt_num(L2CA_DECREASE_BTC_NUM, NULL);
l2ble_update_att_acl_pkt_num(L2CA_ADD_BTU_NUM, NULL);
}
bta_sys_sendmsg(p_buf);
}
return;
@@ -650,6 +654,10 @@ void BTA_GATTC_WriteCharDescr (UINT16 conn_id,
memcpy(p_buf->p_value, p_data->p_value, p_data->len);
}
if(write_type == BTA_GATTC_TYPE_WRITE_NO_RSP){
l2ble_update_att_acl_pkt_num(L2CA_DECREASE_BTC_NUM, NULL);
l2ble_update_att_acl_pkt_num(L2CA_ADD_BTU_NUM, NULL);
}
bta_sys_sendmsg(p_buf);
}
return;

View File

@@ -35,6 +35,7 @@
#include "stack/btm_ble_api.h"
#include <string.h>
#include "osi/allocator.h"
#include "stack/l2c_api.h"
static void bta_gatts_nv_save_cback(BOOLEAN is_saved, tGATTS_HNDL_RANGE *p_hndl_range);
static BOOLEAN bta_gatts_nv_srv_chg_cback(tGATTS_SRV_CHG_CMD cmd, tGATTS_SRV_CHG_REQ *p_req,
@@ -672,6 +673,7 @@ void bta_gatts_indicate_handle (tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA *p_msg)
p_msg->api_indicate.len,
p_msg->api_indicate.value);
} else {
l2ble_update_att_acl_pkt_num(L2CA_DECREASE_BTU_NUM, NULL);
status = GATTS_HandleValueNotification (p_msg->api_indicate.hdr.layer_specific,
p_msg->api_indicate.attr_id,
p_msg->api_indicate.len,

View File

@@ -31,7 +31,7 @@
#include "bta/bta_gatt_api.h"
#include "bta_gatts_int.h"
#include "osi/allocator.h"
#include "stack/l2c_api.h"
/*****************************************************************************
** Constants
*****************************************************************************/
@@ -426,6 +426,11 @@ void BTA_GATTS_HandleValueIndication (UINT16 conn_id, UINT16 attr_id, UINT16 dat
memcpy(p_buf->value, p_data, data_len);
}
if(need_confirm == false){
l2ble_update_att_acl_pkt_num(L2CA_DECREASE_BTC_NUM, NULL);
l2ble_update_att_acl_pkt_num(L2CA_ADD_BTU_NUM, NULL);
}
bta_sys_sendmsg(p_buf);
}
return;

View File

@@ -219,6 +219,7 @@ void gatt_act_write (tGATT_CLCB *p_clcb, UINT8 sec_act)
if (p_attr) {
switch (p_clcb->op_subtype) {
case GATT_WRITE_NO_RSP:
l2ble_update_att_acl_pkt_num(L2CA_DECREASE_BTU_NUM, NULL);
p_clcb->s_handle = p_attr->handle;
op_code = (sec_act == GATT_SEC_SIGN_DATA) ? GATT_SIGN_CMD_WRITE : GATT_CMD_WRITE;
rt = gatt_send_write_msg(p_tcb,

View File

@@ -29,6 +29,7 @@
#include "common/bt_target.h"
#include "stack/l2cdefs.h"
#include "stack/hcidefs.h"
#include "osi/fixed_queue.h"
/*****************************************************************************
** Constants
@@ -1227,6 +1228,21 @@ extern UINT16 L2CA_GetDisconnectReason (BD_ADDR remote_bda, tBT_TRANSPORT transp
extern BOOLEAN L2CA_CheckIsCongest(UINT16 fixed_cid, UINT16 handle);
#define L2CA_GET_ATT_NUM 0
#define L2CA_ADD_BTC_NUM 1
#define L2CA_DECREASE_BTC_NUM 2
#define L2CA_ADD_BTU_NUM 3
#define L2CA_DECREASE_BTU_NUM 4
#define L2CA_BUFF_INI 5
#define L2CA_BUFF_DEINIT 6
typedef struct {
UINT16 conn_id;
UINT16 * get_num;
} tl2c_buff_param_t;
extern void l2ble_update_att_acl_pkt_num(UINT8 type, tl2c_buff_param_t *param);
#endif /* (BLE_INCLUDED == TRUE) */

View File

@@ -73,7 +73,7 @@
#define L2CAP_DEFAULT_RETRANS_TOUT 2000 /* 2000 milliseconds */
#define L2CAP_DEFAULT_MONITOR_TOUT 12000 /* 12000 milliseconds */
#define L2CAP_FCR_ACK_TOUT 200 /* 200 milliseconds */
#define L2CAP_CACHE_ATT_ACL_NUM 10
/* Define the possible L2CAP channel states. The names of
** the states may seem a bit strange, but they are taken from
** the Bluetooth specification.
@@ -165,6 +165,10 @@ typedef enum {
#define L2CAP_MAX_FCR_CFG_TRIES 2 /* Config attempts before disconnecting */
#ifndef MIN
#define MIN(a, b) (((a) < (b)) ? (a) : (b))
#endif
typedef uint8_t tL2C_BLE_FIXED_CHNLS_MASK;
typedef struct {

View File

@@ -36,6 +36,8 @@
#include "stack/btu.h"
#include "stack/btm_api.h"
#include "osi/allocator.h"
#include "gatt_int.h"
#include "freertos/semphr.h"
#if (CLASSIC_BT_INCLUDED == TRUE)
/*******************************************************************************
@@ -1877,6 +1879,16 @@ UINT16 L2CA_GetFreePktBufferNum_LE(void)
{
return l2cb.controller_le_xmit_window;
}
UINT16 L2CA_GetCurFreePktBufferNum_LE(UINT16 conn_id)
{
uint16_t num = 0;
tl2c_buff_param_t param;
param.conn_id = conn_id;
param.get_num = &num;
l2ble_update_att_acl_pkt_num(L2CA_GET_ATT_NUM, &param);
return num;
}
#endif
/*******************************************************************************
@@ -2265,3 +2277,111 @@ UINT16 L2CA_FlushChannel (UINT16 lcid, UINT16 num_to_flush)
return (num_left);
}
/******************************************************************************
**
** Function update_acl_pkt_num
**
** Description Update the number of att acl packets to be sent in xmit_hold_q.
**
** Returns None
**
*******************************************************************************/
#if BLE_INCLUDED == TRUE
void l2ble_update_att_acl_pkt_num(UINT8 type, tl2c_buff_param_t *param)
{
static SemaphoreHandle_t buff_semaphore = NULL ;
static INT16 btc_buf;
static INT16 btu_buf;
if(buff_semaphore == NULL && type != L2CA_BUFF_INI){
L2CAP_TRACE_ERROR("%s buff_semaphore not init", __func__);
return;
}
switch (type)
{
case L2CA_ADD_BTC_NUM:{
xSemaphoreTake(buff_semaphore, portMAX_DELAY);
btc_buf ++;
xSemaphoreGive(buff_semaphore);
break;
}
case L2CA_DECREASE_BTC_NUM:{
xSemaphoreTake(buff_semaphore, portMAX_DELAY);
btc_buf --;
xSemaphoreGive(buff_semaphore);
break;
}
case L2CA_ADD_BTU_NUM:{
xSemaphoreTake(buff_semaphore, portMAX_DELAY);
btu_buf ++;
xSemaphoreGive(buff_semaphore);
break;
}
case L2CA_DECREASE_BTU_NUM:{
xSemaphoreTake(buff_semaphore, portMAX_DELAY);
btu_buf --;
xSemaphoreGive(buff_semaphore);
break;
}
case L2CA_GET_ATT_NUM:{
xSemaphoreTake(buff_semaphore, portMAX_DELAY);
INT16 att_acl_pkt_num = 0;
INT16 att_max_num = 0;
*(param->get_num) = 0;
UINT8 tcb_idx = param->conn_id;
tGATT_TCB * p_tcb = gatt_get_tcb_by_idx(tcb_idx);
if (p_tcb == NULL){
L2CAP_TRACE_ERROR("%s not found p_tcb", __func__);
xSemaphoreGive(buff_semaphore);
break;
}
tL2C_LCB * p_lcb = l2cu_find_lcb_by_bd_addr (p_tcb->peer_bda, BT_TRANSPORT_LE);
if (p_lcb == NULL){
L2CAP_TRACE_ERROR("%s not found p_lcb", __func__);
xSemaphoreGive(buff_semaphore);
break;
}
fixed_queue_t * queue = p_lcb->p_fixed_ccbs[L2CAP_ATT_CID - L2CAP_FIRST_FIXED_CHNL]->xmit_hold_q;
att_max_num = MIN(p_lcb->link_xmit_quota, L2CAP_CACHE_ATT_ACL_NUM);
if (queue == NULL){
L2CAP_TRACE_ERROR("%s not found queue", __func__);
xSemaphoreGive(buff_semaphore);
break;
}
att_acl_pkt_num = fixed_queue_length(queue);
if(att_acl_pkt_num < att_max_num){
if(btc_buf + btu_buf < att_max_num - att_acl_pkt_num){
*(param->get_num) = att_max_num - att_acl_pkt_num - (btc_buf + btu_buf);
}
}
xSemaphoreGive(buff_semaphore);
break;
}
case L2CA_BUFF_INI:{
btc_buf = 0;
btu_buf = 0;
buff_semaphore = xSemaphoreCreateBinary();
if (buff_semaphore == NULL) {
L2CAP_TRACE_ERROR("%s NO MEMORY", __func__);
break;
}
xSemaphoreGive(buff_semaphore);
break;
}
case L2CA_BUFF_DEINIT:{
xSemaphoreTake(buff_semaphore, portMAX_DELAY);
btc_buf = 0;
btu_buf = 0;
xSemaphoreGive(buff_semaphore);
vSemaphoreDelete(buff_semaphore);
buff_semaphore = NULL;
break;
}
default:
break;
}
}
#endif

View File

@@ -1127,6 +1127,12 @@ void l2c_link_check_send_pkts (tL2C_LCB *p_lcb, tL2C_CCB *p_ccb, BT_HDR *p_buf)
while ((l2cb.controller_xmit_window != 0) && (p_lcb->sent_not_acked < p_lcb->link_xmit_quota))
#endif
{
//need check flag: partial_segment_being_sent.
if ( (p_lcb->partial_segment_being_sent)
|| (p_lcb->link_state != LST_CONNECTED)
|| (L2C_LINK_CHECK_POWER_MODE (p_lcb)) ) {
break;
}
//L2CAP_TRACE_DEBUG("l2cu_get_next_buffer_to_send = %p",l2cu_get_next_buffer_to_send(p_lcb));
if ((p_buf = l2cu_get_next_buffer_to_send (p_lcb)) == NULL) {
break;

View File

@@ -880,6 +880,10 @@ void l2c_init (void)
if (l2cb.rcv_pending_q == NULL) {
L2CAP_TRACE_ERROR("%s unable to allocate memory for link layer control block", __func__);
}
#if BLE_INCLUDED == TRUE
l2ble_update_att_acl_pkt_num(L2CA_BUFF_INI, NULL);
#endif
}
void l2c_free(void)
@@ -889,6 +893,9 @@ void l2c_free(void)
#if L2C_DYNAMIC_MEMORY
FREE_AND_RESET(l2c_cb_ptr);
#endif
#if BLE_INCLUDED == TRUE
l2ble_update_att_acl_pkt_num(L2CA_BUFF_DEINIT, NULL);
#endif
}
/*******************************************************************************

View File

@@ -3657,7 +3657,7 @@ void l2cu_check_channel_congestion (tL2C_CCB *p_ccb)
} else {
tL2C_LCB *p_lcb = p_ccb->p_lcb;
/* If this channel was not congested but it is congested now, tell the app */
if ((q_count > p_ccb->buff_quota) || (p_lcb && (p_ccb->local_cid == L2CAP_ATT_CID) && (p_lcb->link_xmit_quota > 0) && (p_lcb->link_xmit_quota <= p_lcb->sent_not_acked))) {
if (q_count > p_ccb->buff_quota || (p_lcb && (p_lcb->link_xmit_data_q) && (list_length(p_lcb->link_xmit_data_q) + q_count) > p_ccb->buff_quota)) {
p_ccb->cong_sent = TRUE;
if (p_ccb->p_rcb && p_ccb->p_rcb->api.pL2CA_CongestionStatus_Cb) {
L2CAP_TRACE_DEBUG ("L2CAP - Calling CongestionStatus_Cb (TRUE),CID:0x%04x,XmitQ:%u,Quota:%u",

View File

@@ -374,5 +374,5 @@ static void rs485_master()
* correctness of RS485 interface channel communication. It requires
* RS485 bus driver hardware to be connected to boards.
*/
TEST_CASE_MULTIPLE_DEVICES("RS485 half duplex uart multiple devices test.", "[driver_RS485][test_env=UT_T2_RS485]", rs485_master, rs485_slave);
TEST_CASE_MULTIPLE_DEVICES("RS485 half duplex uart multiple devices test.", "[driver_RS485][ignore][test_env=UT_T2_RS485]", rs485_master, rs485_slave);

View File

@@ -43,7 +43,7 @@ ifneq ("$(filter esp32,$(TEST_COMPONENTS_LIST))","")
CPPFLAGS += -DESP_TIMER_DYNAMIC_OVERFLOW_VAL
endif
ESP32_LINKER_SCRIPT_TEMPLATE := $(COMPONENT_PATH)/ld/esp32.project.ld.in
ESP32_LINKER_SCRIPT_OUTPUT_DIR := $(abspath $(BUILD_DIR_BASE)/esp32)
ESP32_LINKER_SCRIPT_OUTPUT_DIR := $(realpath $(BUILD_DIR_BASE)/esp32)
# Target to generate linker script generator from fragments presented by each of
# the components

View File

@@ -442,6 +442,15 @@ static const esp_err_msg_t esp_err_msg_table[] = {
# endif
# ifdef ESP_ERR_MESH_VOTING
ERR_TBL_IT(ESP_ERR_MESH_VOTING), /* 16406 0x4016 */
# endif
# ifdef ESP_ERR_MESH_XMIT
ERR_TBL_IT(ESP_ERR_MESH_XMIT), /* 16407 0x4017 */
# endif
# ifdef ESP_ERR_MESH_QUEUE_READ
ERR_TBL_IT(ESP_ERR_MESH_QUEUE_READ), /* 16408 0x4018 */
# endif
# ifdef ESP_ERR_MESH_RECV_RELEASE
ERR_TBL_IT(ESP_ERR_MESH_RECV_RELEASE), /* 16410 0x401a */
# endif
// components/tcpip_adapter/include/tcpip_adapter.h
# ifdef ESP_ERR_TCPIP_ADAPTER_BASE

View File

@@ -84,6 +84,20 @@ esp_err_t esp_coex_status_bit_set(esp_coex_status_type_t type, uint32_t status);
*/
esp_err_t esp_coex_status_bit_clear(esp_coex_status_type_t type, uint32_t status);
/**
* @brief Enable BLE connection dynamic priority
* @attention If the parameter is true, BLE connection performance will be better but WiFi performance
* will be poorer. And vice versa.
* @param low_interval : true - Increase BLE connection priority to be higher than WiFi's when BLE
* connection interval is less or equal than 50 ms. The default value
* is false.
* false - not increace
* @param high_interval : true - Increase BLE connection priority to be higher than WiFi's when BLE
* connection interval is more than 50 ms. The default value is true.
* false - not increace
* @return : ESP_OK - success, other - failed
*/
esp_err_t esp_coex_ble_conn_dynamic_prio_enable(bool low_interval, bool high_interval);
#ifdef __cplusplus
}

View File

@@ -23,7 +23,7 @@ extern "C" {
/** Minor version number (x.X.x) */
#define ESP_IDF_VERSION_MINOR 3
/** Patch version number (x.x.X) */
#define ESP_IDF_VERSION_PATCH 3
#define ESP_IDF_VERSION_PATCH 4
/**
* Macro to convert IDF version number into an integer

View File

@@ -124,6 +124,9 @@ extern "C" {
#define ESP_ERR_MESH_DISCARD_DUPLICATE (ESP_ERR_MESH_BASE + 20) /**< discard the packet due to the duplicate sequence number */
#define ESP_ERR_MESH_DISCARD (ESP_ERR_MESH_BASE + 21) /**< discard the packet */
#define ESP_ERR_MESH_VOTING (ESP_ERR_MESH_BASE + 22) /**< vote in progress */
#define ESP_ERR_MESH_XMIT (ESP_ERR_MESH_BASE + 23) /**< XMIT */
#define ESP_ERR_MESH_QUEUE_READ (ESP_ERR_MESH_BASE + 24) /**< error in reading queue */
#define ESP_ERR_MESH_RECV_RELEASE (ESP_ERR_MESH_BASE + 26) /**< release esp_mesh_recv_toDS */
/**
* @brief Flags bitmap for esp_mesh_send() and esp_mesh_recv()
@@ -203,6 +206,7 @@ typedef enum {
MESH_ROOT, /**< the only sink of the mesh network. Has the ability to access external IP network */
MESH_NODE, /**< intermediate device. Has the ability to forward packets over the mesh network */
MESH_LEAF, /**< has no forwarding ability */
MESH_STA, /**< connect to router with a standlone Wi-Fi station mode, no network expansion capability */
} mesh_type_t;
/**
@@ -735,6 +739,7 @@ esp_err_t esp_mesh_recv(mesh_addr_t *from, mesh_data_t *data, int timeout_ms,
* - ESP_ERR_MESH_NOT_START
* - ESP_ERR_MESH_TIMEOUT
* - ESP_ERR_MESH_DISCARD
* - ESP_ERR_MESH_RECV_RELEASE
*/
esp_err_t esp_mesh_recv_toDS(mesh_addr_t *from, mesh_addr_t *to,
mesh_data_t *data, int timeout_ms, int *flag, mesh_opt_t opt[],
@@ -830,8 +835,10 @@ esp_err_t esp_mesh_get_id(mesh_addr_t *id);
/**
* @brief Designate device type over the mesh network
* - MESH_IDLE: designates a device as a self-organized node for a mesh network
* - MESH_ROOT: designates the root node for a mesh network
* - MESH_LEAF: designates a device as a standalone Wi-Fi station
* - MESH_LEAF: designates a device as a standalone Wi-Fi station that connects to a parent
* - MESH_STA: designates a device as a standalone Wi-Fi station that connects to a router
*
* @param[in] type device type
*

View File

@@ -1392,6 +1392,8 @@ PROVIDE ( g_rom_spiflash_chip = 0x3ffae270 );
PROVIDE ( hci_le_rd_rem_used_feats_cmd_handler = 0x400417b4 );
PROVIDE ( llcp_length_req_handler = 0x40043808 );
PROVIDE ( llcp_unknown_rsp_handler = 0x40043ba8 );
PROVIDE ( llcp_channel_map_req_handler = 0x4004291c );
PROVIDE ( llcp_con_up_req_handler = 0x400426f0 );
/*
These functions are xtos-related (or call xtos-related functions) and do not play well

View File

@@ -1,76 +1,6 @@
# NOT SUPPORT
# ICMP send Ping not supported
TCPIP_ICMP_0101
TCPIP_ICMP_0101_01
# Bug or not stable cases
# Wifi scan issue
WIFI_SCAN_0303
WIFI_SCAN_0303_01
WIFI_CONN_0302
WIFI_CONN_0302_01
WIFI_MODE_0102
WIFI_MODE_0103
WIFI_ADDR_0102
WIFI_ADDR_0102_01
# IGMP
TCPIP_IGMP_0201
TCPIP_IGMP_0201_01
TCPIP_IGMP_0202
TCPIP_IGMP_0202_01
TCPIP_IGMP_0204
TCPIP_IGMP_0204_01
# TCP
TCPIP_TCP_0401_01_02
# UDP
TCPIP_UDP_0103
TCPIP_UDP_0103_01
TCPIP_UDP_0103_02
TCPIP_UDP_0103_01_02
# BLE
# BT heap size issue
BTSTK_MISC_0301
# SMP
BTSTK_SMP_05001
BTSTK_SMP_05002
BTSTK_SMP_05003
BTSTK_SMP_06004
# multi connect
BTSTK_GAP_10001
BTSTK_GAP_10002
BTSTK_GAP_10003
BTSTK_GAP_10004
BTSTK_GAP_11001
BTSTK_GAP_11002
BTSTK_GAP_12001
BTSTK_GAP_12002
BTSTK_GATT_30001
BTSTK_GATT_30002
BTSTK_GATT_30003
BTSTK_GATT_31001
BTSTK_GATT_31002
BTSTK_GATT_31003
BTSTK_GATT_32001
BTSTK_GATT_32002
BTSTK_GATT_32003
BTSTK_GATT_32004
BTSTK_GATT_33001
BTSTK_GATT_33002
BTSTK_GATT_33003
BTSTK_GATT_34001
BTSTK_GATT_34002
BTSTK_GATT_34003
# GATT read multiple
BTSTK_GATT_27002
BTSTK_GATT_27003

View File

@@ -477,6 +477,7 @@ test cases:
- ['P SSC1 RE "\+BLESMP:RemoveBond,Success,%%s"%%(<dut2_bt_mac>)']
- ID: BLUEDROID_SMP_08003
<<: *SMP_CASE
CI ready: 'No'
test point 2: BLE SMP bond item management test
summary: BLE SMP get bond list and number when pairing and after reboot for BLUEDROID
steps: |

View File

@@ -1420,6 +1420,7 @@ test cases:
- 'R SSC2 C Complete'
- ID: BTSTK_GAP_10001
<<: *GAP_CASE
CI ready: 'No'
test point 2: BLE GAP master multi connection test
summary: master connect to 3 slaves with different app and master do disconnect
steps: |
@@ -1447,6 +1448,7 @@ test cases:
- ['P SSC1 C +BLECONN:GapDisconnect,OK', 'P SSC{%d} C +BLECONN:GapDisconnect,OK']
- ID: BTSTK_GAP_10002
<<: *GAP_CASE
CI ready: 'No'
test point 2: BLE GAP master multi connection test
summary: master connect to 3 slaves with different app and slave do disconnect
steps: |
@@ -1474,6 +1476,7 @@ test cases:
- ['P SSC1 C +BLECONN:GapDisconnect,OK,001[0-2]', 'P SSC{%d} C +BLECONN:GapDisconnect,OK']
- ID: BTSTK_GAP_10003
<<: *GAP_CASE
CI ready: 'No'
test point 2: BLE GAP master multi connection test
summary: master connect to 4 slaves with same app and master do disconnect
steps: |
@@ -1501,6 +1504,7 @@ test cases:
- ['P SSC1 C +BLECONN:GapDisconnect,OK', 'P SSC{%d} C +BLECONN:GapDisconnect,OK']
- ID: BTSTK_GAP_10004
<<: *GAP_CASE
CI ready: 'No'
test point 2: BLE GAP master multi connection test
summary: master connect to 4 slaves with same app and slave do disconnect
steps: |
@@ -1528,6 +1532,7 @@ test cases:
- ['P SSC1 C +BLECONN:GapDisconnect,OK', 'P SSC{%d} C +BLECONN:GapDisconnect,OK']
- ID: BTSTK_GAP_11001
<<: *GAP_CASE
CI ready: 'No'
test point 2: BLE GAP slave multi connection test
summary: slave connected by 4 master and master do disconnect
steps: |
@@ -1557,6 +1562,7 @@ test cases:
- ['P SSC{%d} C +BLECONN:GapDisconnect,OK', 'P SSC1 C +BLECONN:GapDisconnect,OK']
- ID: BTSTK_GAP_11002
<<: *GAP_CASE
CI ready: 'No'
test point 2: BLE GAP slave multi connection test
summary: slave connected by 4 master and slave do disconnect
steps: |
@@ -1587,6 +1593,7 @@ test cases:
- ['P SSC{%d} C +BLECONN:GapDisconnect,OK', 'P SSC1 C +BLECONN:GapDisconnect,OK']
- ID: BTSTK_GAP_12001
<<: *GAP_CASE
CI ready: 'No'
test point 2: BLE GAP multi connection as both master and slave role test
summary: connected by 2 masters and connect to 2 slaves and do disconnect
steps: |
@@ -1623,6 +1630,7 @@ test cases:
- ["P SSC[2-5] C Disconnect"]
- ID: BTSTK_GAP_12002
<<: *GAP_CASE
CI ready: 'No'
test point 2: BLE GAP multi connection as both master and slave role test
summary: connected by 2 masters and connect to 2 slaves and be disconnected
steps: |

View File

@@ -1118,6 +1118,7 @@ test cases:
- ["R SSC1 C +GATTC:OK","P SSC[1-2] C ConfigMTU,OK,261"]
- ID: BTSTK_GATT_30001
<<: *GATT_CASE
CI ready: 'No'
test point 2: BLE GATT multi connection service discovery test
summary: do primary service discovery when DUT1 role is master, connected with 4 slaves
steps: |
@@ -1135,6 +1136,7 @@ test cases:
- ["R SSC1 C +GATTC:Discover,OK"]
- ID: BTSTK_GATT_30002
<<: *GATT_CASE
CI ready: 'No'
test point 2: BLE GATT multi connection service discovery test
summary: do primary service discovery when DUT1 is slave, connected by 4 masters
steps: |
@@ -1150,6 +1152,7 @@ test cases:
- ["R SSC[2-5] C +GATTC:Discover,OK"]
- ID: BTSTK_GATT_30003
<<: *GATT_CASE
CI ready: 'No'
test point 2: BLE GATT multi connection service discovery test
summary: do primary service discovery when DUT1 connect to DUT[2-3] and connected by DUT[4-5]
steps: |
@@ -1171,6 +1174,7 @@ test cases:
- ["R SSC[4-5] C +GATTC:Discover,OK"]
- ID: BTSTK_GATT_31001
<<: *GATT_CASE
CI ready: 'No'
test point 2: BLE GATT multi connection read test
summary: do read when DUT1 role is master, connected with 4 slaves
steps: |
@@ -1196,6 +1200,7 @@ test cases:
- ["R SSC1 C +GATTC:ReadOnce,0010,A002,C301,256"]
- ID: BTSTK_GATT_31002
<<: *GATT_CASE
CI ready: 'No'
test point 2: BLE GATT multi connection read test
summary: do read when DUT1 is slave, connected by 4 masters
steps: |
@@ -1215,6 +1220,7 @@ test cases:
- ["R SSC[2-5] C +GATTC:ReadOnce,0010,A002,C301,256"]
- ID: BTSTK_GATT_31003
<<: *GATT_CASE
CI ready: 'No'
test point 2: BLE GATT multi connection read test
summary: do read when DUT1 connect to DUT[2-3] and connected by DUT[4-5]
steps: |
@@ -1248,6 +1254,7 @@ test cases:
- ["R SSC[4-5] C +GATTC:ReadOnce,0010,A002,C301,256"]
- ID: BTSTK_GATT_32001
<<: *GATT_CASE
CI ready: 'No'
test point 2: BLE GATT multi connection write test
summary: do write when DUT1 role is master, connected with 4 slaves
steps: |
@@ -1273,6 +1280,7 @@ test cases:
- ["R SSC1 C +GATTC:Write,OK,0010,A002,C304"]
- ID: BTSTK_GATT_32002
<<: *GATT_CASE
CI ready: 'No'
test point 2: BLE GATT multi connection write test
summary: do write when DUT1 is slave, connected by 4 masters
steps: |
@@ -1292,6 +1300,7 @@ test cases:
- ["R SSC[2-5] C +GATTC:Write,OK,0010,A002,C304"]
- ID: BTSTK_GATT_32003
<<: *GATT_CASE
CI ready: 'No'
test point 2: BLE GATT multi connection write test
summary: do write when DUT1 connect to DUT[2-3] and connected by DUT[4-5]
steps: |
@@ -1325,6 +1334,7 @@ test cases:
- ["R SSC[4-5] C +GATTC:Write,OK,0010,A002,C304"]
- ID: BTSTK_GATT_33001
<<: *GATT_CASE
CI ready: 'No'
test point 2: BLE GATT multi connection notify test
summary: do notify when DUT1 role is master, connected with 4 slaves
steps: |
@@ -1350,6 +1360,7 @@ test cases:
- ['P SSC1 RE "\+GATTC:Notification,0010,A002,C305,1,%%s"%%(<dut{%d}_bt_mac>)']
- ID: BTSTK_GATT_33002
<<: *GATT_CASE
CI ready: 'No'
test point 2: BLE GATT multi connection notify test
summary: do notify when DUT1 is slave, connected by 4 masters
steps: |
@@ -1375,6 +1386,7 @@ test cases:
- ['P SSC{%d} RE "\+GATTC:Notification,0010,A002,C305,1,%%s"%%(<dut1_bt_mac>)']
- ID: BTSTK_GATT_33003
<<: *GATT_CASE
CI ready: 'No'
test point 2: BLE GATT multi connection notify test
summary: do notify when DUT1 connect to DUT[2-3] and connected by DUT[4-5]
steps: |
@@ -1414,6 +1426,7 @@ test cases:
- ['P SSC{%d} RE "\+GATTC:Notification,0010,A002,C305,1,%%s"%%(<dut1_bt_mac>)']
- ID: BTSTK_GATT_34001
<<: *GATT_CASE
CI ready: 'No'
test point 2: BLE GATT multi connection indicate test
summary: do indicate when DUT1 role is master, connected with 4 slaves
steps: |
@@ -1439,6 +1452,7 @@ test cases:
- ['P SSC1 RE "\+GATTC:Indication,0010,A002,C306,1,%%s"%%(<dut[2-5]_bt_mac>)']
- ID: BTSTK_GATT_34002
<<: *GATT_CASE
CI ready: 'No'
test point 2: BLE GATT multi connection indicate test
summary: do indicate when DUT1 is slave, connected by 4 masters
steps: |
@@ -1464,6 +1478,7 @@ test cases:
- ['P SSC{%d} RE "\+GATTC:Indication,0010,A002,C306,1,%%s"%%(<dut1_bt_mac>)']
- ID: BTSTK_GATT_34003
<<: *GATT_CASE
CI ready: 'No'
test point 2: BLE GATT multi connection indicate test
summary: do indicate when DUT1 connect to DUT[2-3] and connected by DUT[4-5]
steps: |

View File

@@ -1651,6 +1651,7 @@ test cases:
- *check_connection
- ID: BTSTK_SMP_05003
<<: *SMP_CASE
CI ready: 'No'
test point 2: BLE SMP unsuccessful pair reply test
summary: BLE SMP unsuccessful passkey entry on both side test
steps: |
@@ -1766,6 +1767,7 @@ test cases:
- ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
- ID: BTSTK_SMP_06004
<<: *SMP_CASE
CI ready: 'No'
test point 2: BLE SMP use API in abnormal state
summary: BLE SMP master disconnect during pairing and repairing
steps: |

View File

@@ -1041,7 +1041,7 @@ test cases:
- - P SSC[1-<node_num>] C +MESHSET:MLAYER,OK
- - MSSC SSC[1-<node_num>] mesh -T
- - P SSC[1-<node_num>] C +MESH:START,OK
- - DELAY 60
- - DELAY <delay_time>
- - ''
- - VALUE <tree_node_num> <node_num>
- - R PC_COM L OK

View File

@@ -1,5 +1,5 @@
test cases:
- CI ready: 'Yes'
- CI ready: 'No'
ID: TCPIP_ICMP_0101
SDK: |-
8266_NonOS

File diff suppressed because it is too large Load Diff

View File

@@ -2167,7 +2167,7 @@ test cases:
test point 1: basic function
test point 2: socket option test
version: v1 (2016-8-15)
- CI ready: 'Yes'
- CI ready: 'No'
ID: TCPIP_TCP_0401
SDK: |-
8266_NonOS

View File

@@ -85,7 +85,7 @@ test cases:
test point 1: basic function
test point 2: use UDP SAP (socket/espconn API) with different parameter
version: v1 (2016-8-15)
- CI ready: 'Yes'
- CI ready: 'No'
ID: TCPIP_UDP_0103
SDK: |-
8266_NonOS
@@ -136,7 +136,7 @@ test cases:
test point 1: basic function
test point 2: use UDP SAP (socket/espconn API) with different parameter
version: v1 (2016-8-15)
- CI ready: 'Yes'
- CI ready: 'No'
ID: TCPIP_UDP_0103
SDK: ESP32_IDF
Test App: SSC
@@ -180,7 +180,7 @@ test cases:
test point 1: basic function
test point 2: use UDP SAP (socket/espconn API) with different parameter
version: v1 (2016-8-15)
- CI ready: 'Yes'
- CI ready: 'No'
ID: TCPIP_UDP_0104
SDK: |-
8266_NonOS
@@ -233,7 +233,7 @@ test cases:
test point 1: basic function
test point 2: use UDP SAP (socket/espconn API) with different parameter
version: v1 (2016-8-15)
- CI ready: 'Yes'
- CI ready: 'No'
ID: TCPIP_UDP_0104_02
SDK: |-
8266_NonOS
@@ -286,7 +286,7 @@ test cases:
test point 1: basic function
test point 2: use UDP SAP (socket/espconn API) with different parameter
version: v1 (2016-8-15)
- CI ready: 'Yes'
- CI ready: 'No'
ID: TCPIP_UDP_0104_01_02
SDK: |-
8266_NonOS

View File

@@ -43,7 +43,7 @@ test cases:
test point 1: basic function
test point 2: mac address function test
version: v1 (2016-8-15)
- CI ready: 'Yes'
- CI ready: 'No'
ID: WIFI_ADDR_0102
SDK: |-
8266_NonOS

View File

@@ -315,7 +315,7 @@ test cases:
test point 1: interaction
test point 2: Conn interact with other WiFi operation
version: v1 (2016-8-15)
- CI ready: 'Yes'
- CI ready: 'No'
ID: WIFI_CONN_0302
SDK: |-
ESP32_IDF

View File

@@ -47,7 +47,7 @@ test cases:
test point 1: basic function
test point 2: wifi mode fucntion
version: v1 (2016-8-15)
- CI ready: 'Yes'
- CI ready: 'No'
ID: WIFI_MODE_0102
SDK: |-
8266_NonOS
@@ -88,7 +88,7 @@ test cases:
test point 1: basic function
test point 2: wifi mode fucntion
version: v1 (2016-8-15)
- CI ready: 'Yes'
- CI ready: 'No'
ID: WIFI_MODE_0103
SDK: |-
8266_NonOS

View File

@@ -587,7 +587,7 @@ test cases:
test point 1: interaction
test point 2: Scan interact with other WiFi operation
version: v1 (2015-8-15)
- CI ready: 'Yes'
- CI ready: 'No'
ID: WIFI_SCAN_0303
SDK: ESP32_IDF
Test App: SSC

View File

@@ -106,18 +106,31 @@ menu "LWIP"
help
Enabling this option allows checking for available data on a netconn.
config LWIP_IP_FRAG
bool "Enable fragment outgoing IP packets"
config LWIP_IP4_FRAG
bool "Enable fragment outgoing IP4 packets"
default y
help
Enabling this option allows fragmenting outgoing IP packets if their size
Enabling this option allows fragmenting outgoing IP4 packets if their size
exceeds MTU.
config LWIP_IP_REASSEMBLY
bool "Enable reassembly incoming fragmented IP packets"
config LWIP_IP6_FRAG
bool "Enable fragment outgoing IP6 packets"
default y
help
Enabling this option allows fragmenting outgoing IP6 packets if their size
exceeds MTU.
config LWIP_IP4_REASSEMBLY
bool "Enable reassembly incoming fragmented IP4 packets"
default n
help
Enabling this option allows reassemblying incoming fragmented IP packets.
Enabling this option allows reassemblying incoming fragmented IP4 packets.
config LWIP_IP6_REASSEMBLY
bool "Enable reassembly incoming fragmented IP6 packets"
default n
help
Enabling this option allows reassemblying incoming fragmented IP6 packets.
config LWIP_STATS
bool "Enable LWIP statistics"
@@ -451,6 +464,13 @@ menu "LWIP"
help
Enable this feature to support TCP window scaling.
config LWIP_TCP_RTO_TIME
int "Default TCP rto time"
default 3000
help
Set default TCP rto time for a reasonable initial rto.
In bad network environment, recommend set value of rto time to 1500.
endmenu # TCP
menu "UDP"

View File

@@ -157,18 +157,32 @@
--------------------------------
*/
/**
* IP_REASSEMBLY==1: Reassemble incoming fragmented IP packets. Note that
* IP_REASSEMBLY==1: Reassemble incoming fragmented IP4 packets. Note that
* this option does not affect outgoing packet sizes, which can be controlled
* via IP_FRAG.
*/
#define IP_REASSEMBLY CONFIG_LWIP_IP_REASSEMBLY
#define IP_REASSEMBLY CONFIG_LWIP_IP4_REASSEMBLY
/**
* IP_FRAG==1: Fragment outgoing IP packets if their size exceeds MTU. Note
* LWIP_IPV6_REASS==1: reassemble incoming IP6 packets that fragmented. Note that
* this option does not affect outgoing packet sizes, which can be controlled
* via LWIP_IPV6_FRAG.
*/
#define LWIP_IPV6_REASS CONFIG_LWIP_IP6_REASSEMBLY
/**
* IP_FRAG==1: Fragment outgoing IP4 packets if their size exceeds MTU. Note
* that this option does not affect incoming packet sizes, which can be
* controlled via IP_REASSEMBLY.
*/
#define IP_FRAG CONFIG_LWIP_IP_FRAG
#define IP_FRAG CONFIG_LWIP_IP4_FRAG
/**
* LWIP_IPV6_FRAG==1: Fragment outgoing IP6 packets if their size exceeds MTU. Note
* that this option does not affect incoming packet sizes, which can be
* controlled via IP_REASSEMBLY.
*/
#define LWIP_IPV6_FRAG CONFIG_LWIP_IP6_FRAG
/**
* IP_REASS_MAXAGE: Maximum time (in multiples of IP_TMR_INTERVAL - so seconds, normally)
@@ -376,6 +390,12 @@
#define TCP_RCV_SCALE CONFIG_TCP_RCV_SCALE
#endif
/**
* LWIP_TCP_RTO_TIME: TCP rto time.
* Default is 3 second.
*/
#define LWIP_TCP_RTO_TIME CONFIG_LWIP_TCP_RTO_TIME
/*
----------------------------------
---------- Pbuf options ----------

View File

@@ -49,7 +49,14 @@ if(CONFIG_SECURE_BOOT_BUILD_SIGNED_BINARIES)
endif()
if(EXISTS ${partition_csv})
add_custom_target(partition_table ALL DEPENDS "${IDF_BUILD_ARTIFACTS_DIR}/partition_table/${final_partition_bin}")
add_custom_target(partition_table ALL DEPENDS "${IDF_BUILD_ARTIFACTS_DIR}/partition_table/${final_partition_bin}"
COMMAND ${CMAKE_COMMAND} -E echo "Partition table binary generated. Contents:"
COMMAND ${CMAKE_COMMAND} -E echo "*******************************************************************************"
COMMAND COMMAND "${PYTHON}" "${CMAKE_CURRENT_SOURCE_DIR}/gen_esp32part.py"
-q --offset ${PARTITION_TABLE_OFFSET} ${md5_opt} ${flashsize_opt}
${partition_secure_opt} "${IDF_BUILD_ARTIFACTS_DIR}/partition_table/${unsigned_partition_bin}"
COMMAND ${CMAKE_COMMAND} -E echo "*******************************************************************************"
VERBATIM)
else()
# If the partition input CSV is not found, create a phony partition_table target that
# fails the build. fail_at_build_time also touches CMakeCache.txt to cause a cmake run next time

View File

@@ -14,7 +14,7 @@ Toolchain Setup
The quick setup is to download the Windows all-in-one toolchain & MSYS2 zip file from dl.espressif.com:
https://dl.espressif.com/dl/esp32_win32_msys2_environment_and_toolchain_idf3-20200601.zip
https://dl.espressif.com/dl/esp32_win32_msys2_environment_and_toolchain_idf3-20200714.zip
Unzip the zip file to ``C:\`` (or some other location, but this guide assumes ``C:\``) and it will create an ``msys32`` directory with a pre-prepared environment.

View File

@@ -15,7 +15,7 @@ Windows 没有内置的 "make" 环境,因此如果要安装工具链,你需
快速设置的方法是从 dl.espressif.com 下载集成在一起的工具链和 MSYS2 压缩文件:
https://dl.espressif.com/dl/esp32_win32_msys2_environment_and_toolchain_idf3-20200601.zip
https://dl.espressif.com/dl/esp32_win32_msys2_environment_and_toolchain_idf3-20200714.zip
将 zip 压缩文件解压到 ``C:\`` (或其它路径,这里假设是 ``C:\``),它会使用预先准备的环境创建一个 ``msys32`` 目录。

View File

@@ -504,7 +504,7 @@ static void throughput_client_task(void *param)
assert(res == pdTRUE);
} else {
if (is_connect) {
int free_buff_num = esp_ble_get_sendable_packets_num();
int free_buff_num = esp_ble_get_cur_sendable_packets_num(gl_profile_tab[PROFILE_A_APP_ID].conn_id);
if(free_buff_num > 0) {
for( ; free_buff_num > 0; free_buff_num--) {
// the app data set to 490 just for divided into two packages to send in the low layer

View File

@@ -624,7 +624,7 @@ void throughput_server_task(void *param)
assert(res == pdTRUE);
} else {
if (is_connect) {
int free_buff_num = esp_ble_get_sendable_packets_num();
int free_buff_num = esp_ble_get_cur_sendable_packets_num(gl_profile_tab[PROFILE_A_APP_ID].conn_id);
if(free_buff_num > 0) {
for( ; free_buff_num > 0; free_buff_num--) {
esp_ble_gatts_send_indicate(gl_profile_tab[PROFILE_A_APP_ID].gatts_if, gl_profile_tab[PROFILE_A_APP_ID].conn_id,

View File

@@ -2,7 +2,7 @@
This example demonstrates how to program the ULP coprocessor to count pulses on an IO while the main CPUs are either running some other code or are in deep sleep. See the README.md file in the upper level 'examples' directory for more information about examples.
ULP program written in assembly can be found in `ulp/pulse_cnt.S`. The build system assembles and links this program, converts it into binary format, and embeds it into the .rodata section of the ESP-IDF application.
ULP program written in assembly can be found across `ulp/pulse_cnt.S` and `ulp/wake_up.S` (demonstrating multiple ULP source files). The build system assembles and links this program, converts it into binary format, and embeds it into the .rodata section of the ESP-IDF application.
At runtime, the main code running on the ESP32 (found in main.c) loads ULP program into the `RTC_SLOW_MEM` memory region using `ulp_load_binary` function. Main code configures the ULP program by setting up values of some variables and then starts it using `ulp_run`. Once the ULP program is started, it runs periodically, with the period set by the main program. The main program enables ULP wakeup source and puts the chip into deep sleep mode.

View File

@@ -15,7 +15,7 @@ set(ULP_APP_NAME ulp_${COMPONENT_NAME})
# 2. Specify all assembly source files here.
# Files should be placed into a separate directory (in this case, ulp/),
# which should not be added to COMPONENT_SRCS.
set(ULP_S_SOURCES "ulp/pulse_cnt.S")
set(ULP_S_SOURCES "ulp/pulse_cnt.S" "ulp/wake_up.S")
#
# 3. List all the component source files which include automatically
# generated ULP export file, $(ULP_APP_NAME).h:

View File

@@ -11,7 +11,7 @@ ULP_APP_NAME ?= ulp_$(COMPONENT_NAME)
# Files should be placed into a separate directory (in this case, ulp/),
# which should not be added to COMPONENT_SRCDIRS.
ULP_S_SOURCES = $(addprefix $(COMPONENT_PATH)/ulp/, \
pulse_cnt.S \
pulse_cnt.S wake_up.S\
)
#
# 3. List all the component object files which include automatically

View File

@@ -144,14 +144,3 @@ edge_detected:
jump wake_up, eq
/* Not yet. End program */
halt
.global wake_up
wake_up:
/* Check if the system can be woken up */
READ_RTC_FIELD(RTC_CNTL_LOW_POWER_ST_REG, RTC_CNTL_RDY_FOR_WAKEUP)
and r0, r0, 1
jump wake_up, eq
/* Wake up the SoC, end program */
wake
halt

View File

@@ -0,0 +1,16 @@
/* ULP assembly files are passed through C preprocessor first, so include directives
and C macros may be used in these files
*/
#include "soc/rtc_cntl_reg.h"
#include "soc/soc_ulp.h"
.global wake_up
wake_up:
/* Check if the system can be woken up */
READ_RTC_FIELD(RTC_CNTL_LOW_POWER_ST_REG, RTC_CNTL_RDY_FOR_WAKEUP)
and r0, r0, 1
jump wake_up, eq
/* Wake up the SoC, end program */
wake
halt

View File

@@ -1,3 +1,3 @@
IDF_VERSION_MAJOR := 3
IDF_VERSION_MINOR := 3
IDF_VERSION_PATCH := 3
IDF_VERSION_PATCH := 4

View File

@@ -350,6 +350,10 @@ function run_tests()
(grep '"command"' build/compile_commands.json | grep -v mfix-esp32-psram-cache-issue) && failure "All commands in compile_commands.json should use PSRAM cache workaround"
rm sdkconfig.defaults
print_status "Displays partition table when executing target partition_table"
idf.py partition_table | grep -E "# Espressif .+ Partition Table"
rm -r build
print_status "Make sure a full build never runs '/usr/bin/env python' or similar"
OLDPATH="$PATH"
PYTHON="$(which python)"

View File

@@ -24,10 +24,12 @@ if(HEAD_CONTENTS MATCHES "ref")
if(EXISTS "@GIT_DIR@/${HEAD_REF}")
configure_file("@GIT_DIR@/${HEAD_REF}" "@GIT_DATA@/head-ref" COPYONLY)
else()
configure_file("@GIT_DIR@/packed-refs" "@GIT_DATA@/packed-refs" COPYONLY)
file(READ "@GIT_DATA@/packed-refs" PACKED_REFS)
if(${PACKED_REFS} MATCHES "([0-9a-z]*) ${HEAD_REF}")
set(HEAD_HASH "${CMAKE_MATCH_1}")
if(EXISTS "@GIT_DIR@/packed-refs")
configure_file("@GIT_DIR@/packed-refs" "@GIT_DATA@/packed-refs" COPYONLY)
file(READ "@GIT_DATA@/packed-refs" PACKED_REFS)
if(${PACKED_REFS} MATCHES "([0-9a-z]*) ${HEAD_REF}")
set(HEAD_HASH "${CMAKE_MATCH_1}")
endif()
endif()
endif()
else()

View File

@@ -1,3 +1,3 @@
set(IDF_VERSION_MAJOR 3)
set(IDF_VERSION_MINOR 3)
set(IDF_VERSION_PATCH 3)
set(IDF_VERSION_PATCH 4)