Commit Graph

15111 Commits

Author SHA1 Message Date
Ivan Grokhotkov
51d86081b8 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.
2020-10-13 18:09:22 +02:00
Ivan Grokhotkov
4dc1195ca5 esp_system: fix incorrect critical section usage in usb_console
spinlock_acquire does not disable interrupts, whereas
portENTER_CRITICAL does.

Closes IDF-2049
2020-10-13 17:39:31 +02:00
baohongde
3f97f1d67a components/bt: Make sleep avaliable in hli(for future use) 2020-10-13 19:45:03 +08:00
me-no-dev
d535b8c458 Fix BT HIDH write allocates 1 byte less and returns ok on failed malloc
Fixes: https://github.com/espressif/esp-idf/issues/5781
2020-10-13 14:30:12 +03:00
Angus Gratton
bc1cca2bf8 wpa_supplicant: Fix failure to link under some circumstances
Depending on CMake internals, the wpa_supplicant library may need to be repeated
multiple times in the linker command line.

Closes https://github.com/espressif/esp-idf/issues/5641
2020-10-13 18:25:29 +11:00
Jiang Jiang Jian
f10f27c01a Merge branch 'bugfix/ipv6_address_get_fail_after_wifi_disconnect' into 'master'
lw-ip:ipv6 address get fail after wifi disconnect

Closes ESPCS-442

See merge request espressif/esp-idf!9438
2020-10-13 12:14:46 +08:00
Jiang Jiang Jian
138f036b55 Merge branch 'bugfix/pmf_softap_coex_issue' into 'master'
Fix issues related to PMF and WPA2-Enterprise

Closes WIFI-2852, WIFI-2704, and WIFI-2863

See merge request espressif/esp-idf!10523
2020-10-13 11:43:41 +08:00
Angus Gratton
af57f5f520 Merge branch 'bugfix/secure_boot_v2_ota_verification' into 'master'
Secure Boot V2: Fixes the OTA regression with secure boot in ESP32-V3

Closes IDFGH-4032

See merge request espressif/esp-idf!10600
2020-10-13 07:09:44 +08:00
Angus Gratton
ff8d05466e Merge branch 'bugfix/deep_sleep_stub_heap_rtc_fast_mem' into 'master'
deep sleep: Calculate RTC CRC without using any stack or other RTC heap memory

Closes IDF-2242

See merge request espressif/esp-idf!10741
2020-10-13 06:17:50 +08:00
Mahavir Jain
0b71a0a46d Merge branch 'bugfix/esp_https_ota_error_codes' into 'master'
esp_https_ota: fix error code formatting

See merge request espressif/esp-idf!10809
2020-10-12 22:39:31 +08:00
Michael (XIAO Xufeng)
fc7433d610 Merge branch 'feature/twai_isr_runs_with_cache_disabled' into 'master'
TWAI: ISR runs when cache is disabled

See merge request espressif/esp-idf!9920
2020-10-12 20:18:36 +08:00
Ivan Grokhotkov
85f919a428 esp_https_ota: fix error code formatting 2020-10-12 13:46:15 +02:00
Michael (XIAO Xufeng)
f5e4638c54 Merge branch 'feature/tusb_cdc_without_timer' into 'master'
Update `tinyusb_cdcacm_write_flush` to using ticks counting instead of the FreeRTOS timer

See merge request espressif/esp-idf!10738
2020-10-12 19:45:57 +08:00
Andrei Gramakov
ab33f55e1b tinyusb: Fix a strncpy-related warning caused by a wrong argument
The issue was in using with `strncpy` a size of source array instead of using a size of destination array.
2020-10-12 12:30:42 +02:00
Jiang Jiang Jian
b8d26ca389 Merge branch 'bugfix/assert_no_IRAM_ATTR' into 'master'
components/bt: btdm fix cache disable crash

See merge request espressif/esp-idf!10778
2020-10-12 16:58:26 +08:00
Sachin Billore
ca194295f7 Doc: Added S2 HMAC downstream JTAG support
Closes IDF-802
2020-10-12 14:17:43 +05:30
Michael (XIAO Xufeng)
b821025312 Merge branch 'bugfix/uart_test_debug' into 'master'
driver: add diagnostic information into UART test, enable flow control

See merge request espressif/esp-idf!10627
2020-10-12 15:50:33 +08:00
fuzhibo
9cd5e6f8c9 bugfix(adc): missing ranges of ADC codes in ESP32 2020-10-12 07:41:03 +00:00
Angus Gratton
ff4d82c7d2 Merge branch 'feature/sha_hal' into 'master'
SHA: add HAL layer and refactor

See merge request espressif/esp-idf!10065
2020-10-12 15:15:28 +08:00
Supreet Deshpande
2356be7c7a Secure Boot V2: Fixes the OTA regression with secure boot in ESP32-V3
Closes https://github.com/espressif/esp-idf/issues/5905
2020-10-12 07:15:16 +00:00
Island
64fa998c0f Merge branch 'optimize/ble_mesh_make_buf_config_invisible' into 'master'
ble_mesh: stack: Make mesh buf debug option invisible

See merge request espressif/esp-idf!10777
2020-10-12 14:14:50 +08:00
Michael (XIAO Xufeng)
3c167497ad Merge branch 'bugfix/esp_flash_erase_timeout' into 'master'
esp_flash: change timeout threshold and can close timeout

Closes IDF-2023

See merge request espressif/esp-idf!10138
2020-10-12 12:49:36 +08:00
Fu Hanxi
31c03a95da CI: Exclude list for sonarqube 2020-10-12 12:27:42 +08:00
Cao Sen Miao
b9f6efd99a esp_flash: change timeout threshold and can close timeout 2020-10-12 10:43:25 +08:00
xueyunfei
91fd587fb7 lwip/ipv6:ipv6 address get fail after wifi disconnect 2020-10-12 10:40:22 +08:00
lly
0d3c724281 ble_mesh: stack: Make mesh buf debug option invisible 2020-10-12 02:26:47 +00:00
Island
2b374ab7b8 Merge branch 'feat/ble_mesh_device_properties_v2' into 'master'
ble_mesh: Update mesh device property to v2

See merge request espressif/esp-idf!10754
2020-10-12 10:13:27 +08:00
Michael (XIAO Xufeng)
47e5dfb120 Merge branch 'feature/test_for_ext_flash_HSPI_on_esp32s2' into 'master'
spi_flash: add unit tests for HSPI on esp32s2

See merge request espressif/esp-idf!10040
2020-10-12 10:06:49 +08:00
lly
d3aa32c2ec ble_mesh: stack: Add mesh device properties v2 definitions
Also fixes wrong characteristic value length of some device
properties.
2020-10-12 00:39:58 +00:00
lly
0b57cdf85b ble_mesh: stack: Move device property to model common part 2020-10-12 00:39:58 +00:00
Angus Gratton
562ab01046 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
2020-10-12 11:19:56 +11:00
Angus Gratton
bb480b72d0 Merge branch 'bugfix/parttool_init' into 'master'
parttool: make part_list an optional argument

See merge request espressif/esp-idf!10776
2020-10-12 06:36:48 +08:00
Anton Maklakov
c8d45f11b3 Merge branch 'ci/fast_template_app_s3' into 'master'
ci: add esp32s3 into template app build

See merge request espressif/esp-idf!10598
2020-10-11 19:00:48 +08:00
wangcheng
49a52cda6e components/bt: btdm fix cache disable crash 2020-10-11 15:14:34 +08:00
Mahavir Jain
d5929bd737 Merge branch 'bugfix/ota_tests_python3' into 'master'
ota: Fix UnicodeDecodeError in example_tests

See merge request espressif/esp-idf!10746
2020-10-11 15:07:06 +08:00
Island
cbb9aca23a Merge branch 'bugfix/ble_mesh_proxy_cfg_replay' into 'master'
Bugfix/ble mesh proxy cfg replay

See merge request espressif/esp-idf!10699
2020-10-10 21:07:42 +08:00
Nachiket Kukade
6ae4b3ef48 esp_wifi: Update wifi lib
1. Add STA checks during STA PMF operations
2. Fix WPA2-Ent issue with Open AP
3. Skip WPA-TKIP profile if PMF is required
4. Skip & clear Supplicant PMK Cache with mismatching AP config
2020-10-10 09:03:55 +00:00
Darian Leung
4c57f50fe4 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-10-10 14:19:32 +08:00
Shubham Kulkarni
76860cc939 example_test.py: In ota example_test, open file in binary mode to avoid UnicodeDecodeError 2020-10-10 06:18:30 +00:00
Marius Vikhammer
b3e7b58d04 parttool: make part_list an optional argument
Previous versions of PartitionType only required type and subtype as
arguments for the constructor. Make the new part_list argument optional to
keep backwards compatibilty
2020-10-10 09:46:51 +08:00
Cao Sen Miao
98cb2e5af3 spi_flash: add a unit test for HSPI on esp32s2 2020-10-09 20:57:00 +08:00
Ivan Grokhotkov
eb83878323 Merge branch 'bugfix/coredump_thread_info_failure' into 'master'
espcoredump: fix exception when -thread-info fails

See merge request espressif/esp-idf!10720
2020-10-09 19:36:36 +08:00
Michael (XIAO Xufeng)
953c046550 esp32s3/bootloader: extend IRAM usage to 0x6000
The bootloader cannot fit in the size of iram_loader_seg when built under -O0. Extend the IRAM size to fix this.
2020-10-09 17:50:17 +08:00
Michael (XIAO Xufeng)
72a31a62c7 ci: add esp32s3 into template app build 2020-10-09 17:50:16 +08:00
lly
68a6ccba76 ble_mesh: stack: Store kr phase after value changed [Zephyr] 2020-10-09 08:52:01 +00:00
lly
e286cd845f ble_mesh: stack: Fix rpl not check by proxy cfg [Zephyr] 2020-10-09 08:52:01 +00:00
Marius Vikhammer
949fb8e63a SHA: add HAL layer and refactor driver
Add a LL and HAL layer for SHA.
2020-10-09 08:24:08 +00:00
Ivan Grokhotkov
a587cd1774 Merge branch 'bugfix/esp32s3_build' into 'master'
esp32s3: sync memprot header from esp32s2, fixing compilation error

See merge request espressif/esp-idf!10753
2020-10-09 15:58:11 +08:00
Angus Gratton
46f735f413 Merge branch 'docs/update-images-for-ide' into 'master'
Update docs images

Closes VSC-431

See merge request espressif/esp-idf!10639
2020-10-09 15:05:06 +08:00
Soumesh Banerjee
ba901179fe Update docs images 2020-10-09 15:05:01 +08:00