mirror of
https://github.com/apache/nuttx.git
synced 2026-10-07 06:15:20 +00:00
esp32: fix esp32 wifi bug caused scan failed
tools/configure.sh esp32c3-generic:wifi wapi scan wlan0 has no return result after couple times rootcause: mq_timedsend() return failed because the time valid check error. the ts_nsec is bigger than 1000000000. esp_update_time() hasn't consider of the ns > 1s after the adding calculation Signed-off-by: ligd <liguiding1@xiaomi.com>
This commit is contained in:
parent
82eca2607a
commit
b3727f67be
9 changed files with 27 additions and 72 deletions
|
|
@ -888,15 +888,10 @@ static int IRAM_ATTR semphr_give_from_isr_wrapper(void *semphr, void *hptw)
|
|||
|
||||
static void esp_update_time(struct timespec *timespec, uint32_t ticks)
|
||||
{
|
||||
uint32_t tmp;
|
||||
struct timespec ts;
|
||||
|
||||
tmp = TICK2SEC(ticks);
|
||||
timespec->tv_sec += tmp;
|
||||
|
||||
ticks -= SEC2TICK(tmp);
|
||||
tmp = TICK2NSEC(ticks);
|
||||
|
||||
timespec->tv_nsec += tmp;
|
||||
clock_ticks2time(&ts, ticks);
|
||||
clock_timespec_add(timespec, &ts, timespec);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
|
|
|
|||
|
|
@ -858,15 +858,10 @@ static void esp_thread_semphr_free(void *semphr)
|
|||
|
||||
static void esp_update_time(struct timespec *timespec, uint32_t ticks)
|
||||
{
|
||||
uint32_t tmp;
|
||||
struct timespec ts;
|
||||
|
||||
tmp = TICK2SEC(ticks);
|
||||
timespec->tv_sec += tmp;
|
||||
|
||||
ticks -= SEC2TICK(tmp);
|
||||
tmp = TICK2NSEC(ticks);
|
||||
|
||||
timespec->tv_nsec += tmp;
|
||||
clock_ticks2time(&ts, ticks);
|
||||
clock_timespec_add(timespec, &ts, timespec);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
|
|
|
|||
|
|
@ -3144,15 +3144,10 @@ static void esp_nvs_close(uint32_t handle)
|
|||
|
||||
static void esp_update_time(struct timespec *timespec, uint32_t ticks)
|
||||
{
|
||||
uint32_t tmp;
|
||||
struct timespec ts;
|
||||
|
||||
tmp = TICK2SEC(ticks);
|
||||
timespec->tv_sec += tmp;
|
||||
|
||||
ticks -= SEC2TICK(tmp);
|
||||
tmp = TICK2NSEC(ticks);
|
||||
|
||||
timespec->tv_nsec += tmp;
|
||||
clock_ticks2time(&ts, ticks);
|
||||
clock_timespec_add(timespec, &ts, timespec);
|
||||
}
|
||||
|
||||
#ifdef ESP_WLAN_HAS_STA
|
||||
|
|
|
|||
|
|
@ -3098,15 +3098,10 @@ static void esp_nvs_close(uint32_t handle)
|
|||
|
||||
static void esp_update_time(struct timespec *timespec, uint32_t ticks)
|
||||
{
|
||||
uint32_t tmp;
|
||||
struct timespec ts;
|
||||
|
||||
tmp = TICK2SEC(ticks);
|
||||
timespec->tv_sec += tmp;
|
||||
|
||||
ticks -= SEC2TICK(tmp);
|
||||
tmp = TICK2NSEC(ticks);
|
||||
|
||||
timespec->tv_nsec += tmp;
|
||||
clock_ticks2time(&ts, ticks);
|
||||
clock_timespec_add(timespec, &ts, timespec);
|
||||
}
|
||||
|
||||
#ifdef ESP_WLAN_HAS_STA
|
||||
|
|
|
|||
|
|
@ -2491,15 +2491,10 @@ static IRAM_ATTR int32_t esp_queue_send_generic(void *queue, void *item,
|
|||
|
||||
static void esp_update_time(struct timespec *timespec, uint32_t ticks)
|
||||
{
|
||||
uint32_t tmp;
|
||||
struct timespec ts;
|
||||
|
||||
tmp = TICK2SEC(ticks);
|
||||
timespec->tv_sec += tmp;
|
||||
|
||||
ticks -= SEC2TICK(tmp);
|
||||
tmp = TICK2NSEC(ticks);
|
||||
|
||||
timespec->tv_nsec += tmp;
|
||||
clock_ticks2time(&ts, ticks);
|
||||
clock_timespec_add(timespec, &ts, timespec);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
|
|
|
|||
|
|
@ -730,15 +730,10 @@ static void esp_thread_semphr_free(void *semphr)
|
|||
|
||||
static void esp_update_time(struct timespec *timespec, uint32_t ticks)
|
||||
{
|
||||
uint32_t tmp;
|
||||
struct timespec ts;
|
||||
|
||||
tmp = TICK2SEC(ticks);
|
||||
timespec->tv_sec += tmp;
|
||||
|
||||
ticks -= SEC2TICK(tmp);
|
||||
tmp = TICK2NSEC(ticks);
|
||||
|
||||
timespec->tv_nsec += tmp;
|
||||
clock_ticks2time(&ts, ticks);
|
||||
clock_timespec_add(timespec, &ts, timespec);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
|
|
|
|||
|
|
@ -679,15 +679,10 @@ static void esp_thread_semphr_free(void *semphr)
|
|||
|
||||
static void esp_update_time(struct timespec *timespec, uint32_t ticks)
|
||||
{
|
||||
uint32_t tmp;
|
||||
struct timespec ts;
|
||||
|
||||
tmp = TICK2SEC(ticks);
|
||||
timespec->tv_sec += tmp;
|
||||
|
||||
ticks -= SEC2TICK(tmp);
|
||||
tmp = TICK2NSEC(ticks);
|
||||
|
||||
timespec->tv_nsec += tmp;
|
||||
clock_ticks2time(&ts, ticks);
|
||||
clock_timespec_add(timespec, &ts, timespec);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
|
|
|
|||
|
|
@ -2311,15 +2311,10 @@ static IRAM_ATTR int32_t esp_queue_send_generic(void *queue, void *item,
|
|||
|
||||
static void esp_update_time(struct timespec *timespec, uint32_t ticks)
|
||||
{
|
||||
uint32_t tmp;
|
||||
struct timespec ts;
|
||||
|
||||
tmp = TICK2SEC(ticks);
|
||||
timespec->tv_sec += tmp;
|
||||
|
||||
ticks -= SEC2TICK(tmp);
|
||||
tmp = TICK2NSEC(ticks);
|
||||
|
||||
timespec->tv_nsec += tmp;
|
||||
clock_ticks2time(&ts, ticks);
|
||||
clock_timespec_add(timespec, &ts, timespec);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
|
|
|
|||
|
|
@ -724,15 +724,10 @@ static void esp_thread_semphr_free(void *semphr)
|
|||
|
||||
static void esp_update_time(struct timespec *timespec, uint32_t ticks)
|
||||
{
|
||||
uint32_t tmp;
|
||||
struct timespec ts;
|
||||
|
||||
tmp = TICK2SEC(ticks);
|
||||
timespec->tv_sec += tmp;
|
||||
|
||||
ticks -= SEC2TICK(tmp);
|
||||
tmp = TICK2NSEC(ticks);
|
||||
|
||||
timespec->tv_nsec += tmp;
|
||||
clock_ticks2time(&ts, ticks);
|
||||
clock_timespec_add(timespec, &ts, timespec);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue