Compare commits

...

5291 Commits

Author SHA1 Message Date
f44dcf4878 Merge branch 'bugfix/macros_trailing_semicolon' into 'master'
Remove trialing semicolon from function-like macros

See merge request idf/esp-idf!4397
2019-03-13 13:15:12 +08:00
e18c7cb98d Merge branch 'bugfix/mdns_incorrect_semaphore_use' into 'master'
mdns: use binary semaphore instead of mutex when searching

See merge request idf/esp-idf!4464
2019-03-13 13:11:45 +08:00
8120efc6ed Merge branch 'bugfix/modify_dhcpserver_and_tcpip_adapter' into 'master'
modify the behavior for dhcpserver and tcpip_adapter

Closes IDFGH-557 and IDFGH-563

See merge request idf/esp-idf!4453
2019-03-13 12:54:55 +08:00
76fd26c9fb Merge branch 'bugfix/build_fails_when_editor_assoc_with_py_scripts' into 'master'
Fix issues with CMake builds when python scripts are associated with an editor

See merge request idf/esp-idf!4459
2019-03-13 07:47:27 +08:00
b6ddebb861 Merge branch 'bugfix/blink-increase-task-size' into 'master'
examples: Increase task size for blink demo

See merge request idf/esp-idf!4342
2019-03-13 07:44:48 +08:00
5fb1c1ad3e ci: test full build never runs '/usr/bin/env python' or similar 2019-03-12 17:26:54 +08:00
eef0b5090a mdns: use binary semaphore instead of mutex when searching
mdns_search_once_t::lock is used to synchronize tasks (taken by one
task and given by the other) so it should not be a mutex.
Convert to semaphore, and rename to indicate its purpose.
2019-03-12 09:33:06 +01:00
d0b2d5ec95 cmake: Fix for Python files executed directly, not via PYTHON variable
A problem if the Python interpreter used for idf.py (or set via PYTHON
variable) didn't match
"/usr/bin/env python" (or the associated executable for .py files, on
Windows).

Closes https://github.com/espressif/esp-idf/issues/3160
Possibly also fix for https://github.com/espressif/esp-idf/issues/2936

Adds build system test to catch any future direct execution of Python in
the standard build process.
2019-03-12 13:31:44 +08:00
86c9b63546 Merge branch 'feature/sync_issues_to_jira' into 'master'
github: Add workflow file to sync issues to JIRA

See merge request idf/esp-idf!4443
2019-03-12 06:31:48 +08:00
2f83aea8f3 Merge branch 'bugfix/freemodbus_remove_critical_section' into 'master'
freemodbus: Fix remove critical_sections

See merge request idf/esp-idf!4289
2019-03-12 06:30:50 +08:00
fc4823c885 Merge branch 'bugfix/coredump_improvements_refactoring_delete_include' into 'master'
esp32: coredump refactoring fix bug (remove duplicated include)

See merge request idf/esp-idf!4328
2019-03-11 19:00:39 +08:00
79ca95ddf6 Merge branch 'doc/jtag_debug_zh_CN' into 'master'
zh_CN translation of JTAG debugging

See merge request idf/esp-idf!3709
2019-03-11 16:35:04 +08:00
9679be19c5 Merge branch 'bugfix/efuse_virtual_mode' into 'master'
efuse: When Virtual eFuses are enabled, seed the virtual values as part of startup code

Closes WIFI-338

See merge request idf/esp-idf!4454
2019-03-11 16:33:32 +08:00
048b405296 Merge branch 'bugfix/doc_ubuntu_packages' into 'master'
docs: Update package dependencies

Closes IDFGH-360

See merge request idf/esp-idf!4406
2019-03-11 15:53:57 +08:00
de7daa14a9 Merge branch 'bugfix/msys_cancel_idfpy' into 'master'
tools: re-run idf.py in MSYS with winpty

Closes #67

See merge request idf/esp-idf!4341
2019-03-11 12:27:36 +08:00
af1ea9b1b9 efuse: When Virtual eFuses are enabled, seed the virtual values as part of startup code 2019-03-11 15:20:40 +11:00
27cc0d1f91 modify the behavior for dhcpserver and tcpip_adapter:
1. dhcp_server: suppress send_offer debug output
2. tcpip_adapter: zero-initialize system_event_t structures
3. tcpip_adapter: pass client IP address along with SYSTEM_EVENT_AP_STAIPASSIGNED

Closes https://github.com/espressif/esp-idf/issues/2924
Closes https://github.com/espressif/esp-idf/issues/2949
2019-03-11 12:11:05 +08:00
f42ae05d1e Merge branch 'test/fix_unit_test_job_pass_even_no_test_executed' into 'master'
test: fix CI UT job pass even ut app bootup fail

See merge request idf/esp-idf!4208
2019-03-11 10:19:15 +08:00
8f3fe52b5a test: temp disable spi master slave mode test 2019-03-10 06:21:37 +00:00
1a9f019d2a unit-test-app: increase factory partition size 2019-03-10 06:21:37 +00:00
323a790f01 test: fix CI UT job pass even ut app bootup fail 2019-03-10 06:21:37 +00:00
09e72776dc Merge branch 'bugfix/autoip_memoey_leak_debug' into 'master'
fix the bug in auto Ip memory leak

See merge request idf/esp-idf!4395
2019-03-08 19:54:25 +08:00
13e1c0b32f esp32: coredump header (fix linker.lf)
remove duplicated include from components/esp32/incliude/esp_core_dump.h
espcoredump/incliude/esp_core_dump.h:
fix signature of the functions esp_core_dump_to_uart() and esp_core_dump_to_uart();
add espcoredump into COMPONENT_PRIV_REQUIRES list
fix linker.lf file
2019-03-08 09:49:37 +00:00
d0e3564603 github: Add workflow file to sync issues to JIRA 2019-03-08 18:39:30 +11:00
bba89e1514 Merge branch 'bugfix/console_join_example' into 'master'
console: fix wrong timeout settiing in join command

Closes IDF-168

See merge request idf/esp-idf!4366
2019-03-08 12:02:57 +08:00
3a410d6a3d Merge branch 'bugfix/httpd_sess_ctx' into 'master'
esp_http_server: Provide apps an option to let http_server ignore sess_ctx changes

See merge request idf/esp-idf!4417
2019-03-08 06:55:44 +08:00
ef250ced1b tools: re-run idf.py in MSYS with winpty
This is done in order to cancel subprocesses on keyboard interrupt
(CTRL+C).
2019-03-07 14:47:19 +01:00
f0194f2a5e docs: Update package dependencies
Closes https://github.com/espressif/esp-idf/issues/2384
2019-03-07 14:46:59 +01:00
aaa1cb6eec freemodbus: change critical sections to semaphore mutex
revert changes made in mbrtu.c, mbascii.c
change critical section type to semaphore mutex instead of spin lock

Closes: https://github.com/espressif/esp-idf/issues/3009
2019-03-07 09:59:40 +01:00
1ef7d093e1 freemodbus: Fix remove critical_sections
Closes: https://github.com/espressif/esp-idf/issues/3009
2019-03-07 08:00:45 +00:00
5f3bd38d3d Merge branch 'bugfix/cmakeSpaceProcessForCOMPONENT_SRCS' into 'master'
add spaces2list for COMPONENT_SRCS

See merge request idf/esp-idf!4427
2019-03-07 15:11:51 +08:00
5156645348 Merge branch 'bugfix/ci_submodule_paths' into 'master'
CI - Fix the parsing of submodule paths

See merge request idf/esp-idf!4429
2019-03-07 13:58:04 +08:00
9297b07a97 cmake: add spaces2list for COMPONENT_SRCS
According to ESP-IDF Cmake build system document, COMPONENT_SRCS should support using spaces to sperate source files.

Closes https://github.com/espressif/esp-idf/issues/3130
2019-03-06 20:55:38 +08:00
88ec05cba2 ci: Fix the parsing of submodule paths 2019-03-06 19:37:34 +08:00
378f8f72f0 console: fix wrong timeout settiing in join command
1. Fix wrong timeout setting in join command, also alter the default timeout value to 10 seconds
2. Don't clear the CONNECTED_BIT when connected to AP.
2019-03-06 18:25:10 +08:00
ea0a1c3030 Merge branch 'bugfix/docs_PROJECT_VER' into 'master'
Updated documentation concerning 'PROJECT_VER' and 'PROJECT_NAME'.

See merge request idf/esp-idf!4410
2019-03-06 17:29:10 +08:00
b88b9f4e03 fix the bug in auto Ip memory leak
Closes https://jira.espressif.com:8443/browse/WIFI-266
2019-03-06 14:44:06 +08:00
c1e50c8a27 Merge branch 'bugfix/btdm_fix_iOS_and_win10_compatibility_error_for_HID' into 'master'
Component/bt: fix iOS and win10 compatibility error  for HID

See merge request idf/esp-idf!4396
2019-03-06 14:11:38 +08:00
42c906140e Merge branch 'bugfix/level5_intr_alloc' into 'master'
esp32: esp_intr_alloc: Fixed issue with level 5 not being called

Closes IDFGH-616

See merge request idf/esp-idf!4405
2019-03-06 11:18:36 +08:00
d474018725 Merge branch 'feature/gdbstub_task_list' into 'master'
Add support for listing tasks to gdb in gdbstub

Closes IDFGH-498

See merge request idf/esp-idf!4357
2019-03-06 11:12:46 +08:00
ff020c3a18 Merge branch 'docs/correct_typos_in_interrupt_handling_docs' into 'master'
docs: fix typo and link in high level interrupt documentation

See merge request idf/esp-idf!4419
2019-03-06 11:11:43 +08:00
88b153fcf7 Fixed fancy quotes 2019-03-05 19:21:50 +01:00
e243ee972d Updated documentation concerning 'PROJECT_VER' and 'PROJECT_NAME'.
Closes https://github.com/espressif/esp-idf/issues/3115.
2019-03-05 19:21:50 +01:00
0f927791be Merge branch 'bugfix/coex_decouple_wifi_and_bt_code_with_coexist' into 'master'
Decouple WiFi and BT with coexist to reduce bin size

Closes IDF-469

See merge request idf/esp-idf!4363
2019-03-05 15:14:16 +08:00
ddd08a6e13 Merge branch 'doc/add_build_system_cmake_translation' into 'master'
zh_CN translation of build system (cmake version)

See merge request idf/esp-idf!4122
2019-03-05 15:02:48 +08:00
19939e5b60 zh_CN translation of build system (cmake version) 2019-03-05 15:02:48 +08:00
48d3a5804d Merge branch 'bugfix/simple_ota_example' into 'master'
bugfix(simple_ota_example): Compatible with V3.1 and V3.2,because the NVS format is different

See merge request idf/esp-idf!3983
2019-03-05 13:05:53 +08:00
2a9d2d5be9 docs: fix typo and link in high level interrupt documentation 2019-03-05 10:27:35 +05:30
c22e572ad0 gdbstub: minor cleanup
1. Add Kconfig options to control task listing support.
2. Convert magic values (-1, -2) to named constants.
3. Convert spaces to tabs to match the rest of the file.
4. Rename getAllTasksHandle to getTaskInfo to reflect its purpose.
5. Add some curly braces for single line statements.
2019-03-05 12:11:45 +08:00
b797f05558 Add support for listing tasks to gdb in gdbstub
…and changing the active task and fetching each task's stack

Merges https://github.com/espressif/esp-idf/pull/2828
2019-03-05 12:00:22 +08:00
e053fdafc6 Merge branch 'doc/linker_script_generation_zh_CN' into 'master'
zh_CN translation of linker script generation

See merge request idf/esp-idf!4226
2019-03-05 11:02:31 +08:00
b9b401ee39 Decouple WiFi and BT with coexist to reduce bin size
1. Do not link WiFi code when only BT or BLE is used and WiFi is not
used.

2. Do not link coexist code when CONFIG_SW_COEXIST_ENABLE is disabled.
2019-03-05 10:38:14 +08:00
bf2c46674d Merge branch 'bugfix/fix_some_wifi_bugs_0301' into 'master'
esp32: fix some WiFi bugs

See merge request idf/esp-idf!4399
2019-03-05 10:35:22 +08:00
89ae5908d6 Merge branch 'feature/upgrade_sphinx_and_breathe' into 'master'
docs: Preparation for upgrade of Sphinx and Breathe packages to versions 1.8.4 and 4.11.1. Updated check of Sphinx warnings to account for the filename instead of the whole path, that for the same errors may be different between English and Chinese docs.

See merge request idf/esp-idf!4282
2019-03-05 03:42:34 +08:00
f28f4016cb esp_http_server: Provide apps an option to let http_server ignore sess_ctx changes
By default, if a URI handler changes the http session context,
the webserver internally clears the older context after the handler
returns. However, if applications want to change this behavior and
manage the allocation/de-allocation/freeing themselves and let the
server handle only the "socket close" case, this commit provides such
an option.
2019-03-05 00:21:03 +05:30
dace2d6bc5 Merge branch 'bugfix/uart_fix_critical_section_api_from_isr' into 'master'
uart: use correct critical section API from ISR context

See merge request idf/esp-idf!4301
2019-03-04 16:24:22 +08:00
b3ee815ec1 Merge branch 'feature/esp_http_client_global_ca_store' into 'master'
esp_http_client: add support for using certs from global ca store

See merge request idf/esp-idf!4302
2019-03-04 16:24:07 +08:00
025deab4d2 esp32: esp_intr_alloc: Fixed issue with level 5 not being called
Closes https://github.com/espressif/esp-idf/issues/3039
Merges https://github.com/espressif/esp-idf/issues/3040
2019-03-01 17:11:51 +11:00
2f547ca7c8 esp32: fix some WiFi bugs
Fix following WiFi bugs:
1. Fix the bug that STA incorrectly deletes BA when receiving DelBA request
2. Add out of memory check
3. Fix the bug that STA incorrectly receives packets when scanning in connected status
2019-03-01 11:25:36 +08:00
ebdcbe8c60 Merge branch 'doc/crc_apis_usage' into 'master'
Add CRC APIs usage

See merge request idf/esp-idf!4351
2019-03-01 10:03:03 +08:00
59d1ecc78b esp32: Remove trialing semicolon from function-like macros
This commit removes trailing semicolons following a while(0) from
function-like macros in IDF. This will force those macros to be called
with a semicolon when called.
2019-02-28 21:58:47 +08:00
6c49f19247 Merge branch 'test/spi_param_wiring_doc' into 'master'
spi test: describe the wiring of param test in the comments

See merge request idf/esp-idf!4394
2019-02-28 21:00:41 +08:00
d71df18d92 Component/bt: fix iOS and win10 compatibility error for HID 2019-02-28 20:39:12 +08:00
12a6664afa spi test: describe the wiring of param test in the comments 2019-02-28 19:43:58 +08:00
d82c80a07b Merge branch 'bugfix/wifi_modify_wifi_kconfig' into 'master'
esp32: modify WiFi Kconfig in order to achieve better compatility and performance

See merge request idf/esp-idf!4164
2019-02-28 18:21:16 +08:00
2a23233ebe Merge branch 'feature/efuse_manager' into 'master'
Feature/efuse manager

See merge request idf/esp-idf!2819
2019-02-28 17:47:22 +08:00
ae69a8adc0 esp32: modify WiFi Kconfig in order to achieve better compatility
and performance
2019-02-28 16:57:56 +08:00
509e1264b9 efuse: Fix to pass CI tests 2019-02-28 07:31:29 +00:00
c9cd06c886 efuse: Reduce the size of esp_efuse_desc_t to 4 bytes 2019-02-28 07:31:29 +00:00
1d7b901aeb efuse: Add MAX_BLK_LEN define for changing len of field
Added docs, improved efuse_table_gen.py, and minor fixes

Checking the generated files for compliance with the coding scheme.
2019-02-28 07:31:29 +00:00
95b6273c7c efuse: Fix docs and script 2019-02-28 07:31:29 +00:00
cc094ba789 efuse: Fix python coding style
Set python's scripts attribute chmod
Add compatibility with Python3 for efuse_table_gen.py
2019-02-28 07:31:29 +00:00
a5fa3b6965 CI: Add host tests 2019-02-28 07:31:29 +00:00
303d17792a efuse: Add a write/read protection 2019-02-28 07:31:29 +00:00
b8141f3ad8 efuse: Fix make/cmake build systems and docs 2019-02-28 07:31:29 +00:00
9822055851 efuse: Add support coding scheme to script
Added support using BLK1 and BLK2 in custom table.
Added change size key in BLK1 and BLK2 if coding scheme was changed.
2019-02-28 07:31:29 +00:00
693a5c209b efuse: Add API efuse
Added support 3/4 coding scheme
2019-02-28 07:31:29 +00:00
91676b8620 build_system: Add support efuse 2019-02-28 07:31:29 +00:00
ba903e7618 docs: Add efuse 2019-02-28 07:31:29 +00:00
d82023bf06 soc: Add support efuse 2019-02-28 07:31:29 +00:00
ed179ade8d esp32: Add using efuse component 2019-02-28 07:31:29 +00:00
7626145e6d bootloader: Add support efuse component 2019-02-28 07:31:29 +00:00
94594af13f examples: Move blink code to main task 2019-02-28 12:12:24 +05:30
c05a39de02 Merge branch 'bugfix/fix_scan_bugs_and_alloc_eb_fail' into 'master'
wifi: fix scan bugs and alloc eb fail

See merge request idf/esp-idf!4373
2019-02-28 13:34:51 +08:00
f746b0d761 Merge branch 'bugfix/pthread_thread_size' into 'master'
pthread: Transform the units of the stack size to the FreeRTOS domain

Closes IDFGH-603

See merge request idf/esp-idf!4375
2019-02-28 10:24:34 +08:00
ea9b8c3745 Merge branch 'feature/sniffer_app_trace' into 'master'
capture WiFi packets to host via JTAG

See merge request idf/esp-idf!4203
2019-02-28 07:38:52 +08:00
19fd436e88 Merge branch 'esp_http_server/lru_counter_for_timestamp' into 'master'
esp_http_server/lru_counter_for_timestamp:Added LRU counter for timer

See merge request idf/esp-idf!4205
2019-02-28 07:04:21 +08:00
e1e8c36492 docs: Preparation for upgrade of Sphinx and Breathe packages to versions 1.8.4 and 4.11.1. Updated check of Sphinx warnings to account for the filename instead of the whole path, that for the same errors may be different between English and Chinese docs. 2019-02-27 22:11:59 +01:00
314c77609e pthread: Transform the units of the stack size to the FreeRTOS domain
Closes https://github.com/espressif/esp-idf/issues/3015
2019-02-27 12:21:23 +01:00
4ea4d4744c wifi:
1. make menuconfig can set the WiFi mgmt short buffer num
2. fix several scan bugs
2019-02-27 18:31:32 +08:00
a52ba8df7d Merge branch 'bugfix/make_get_coreid_volatile' into 'master'
freertos: Make xPortGetCoreID() volatile

See merge request idf/esp-idf!4359
2019-02-27 17:58:57 +08:00
484d8ab7ed Merge branch 'bugfix/btdm_fix_remove_bonded_device_warnning' into 'master'
Component/bt: fix remove bonded device warnning

See merge request idf/esp-idf!3704
2019-02-27 17:54:37 +08:00
9a1bbcfa1a Merge branch 'bugfix/ble_reconn_rescan_readv_crash' into 'master'
component/bt : fix bug that there's low ratio crash when BLE do re-connect/re-scan/re-adv

See merge request idf/esp-idf!4324
2019-02-27 17:37:46 +08:00
27e00cf7aa esp_http_client: add support for using certs from global ca store
Closes https://github.com/espressif/esp-idf/issues/3062
2019-02-27 14:19:06 +05:30
ebca3e27b1 Merge branch 'bugfix/lack_of_break_in_tcp_client' into 'master'
fix the bug in tcp_client

See merge request idf/esp-idf!4330
2019-02-27 16:44:00 +08:00
e9652e8ef3 uart: use correct critical section API (portENTER_CRITICAL_ISR) from ISR context 2019-02-27 08:36:47 +00:00
42f64e9a93 Merge branch 'bugfix/tw28146_make_wifi_iram_optimization_configurable' into 'master'
esp32: make WiFi IRAM optimization configurable

See merge request idf/esp-idf!4037
2019-02-27 16:33:05 +08:00
590825824d Merge branch 'feature/embed_elf_sha256' into 'master'
build system: include SHA256 hash of ELF file into app_desc structure

See merge request idf/esp-idf!4093
2019-02-27 16:31:47 +08:00
ae6d19b4fb sniffer: capture packets to host via JTAG
Based on app-trace component, it's able to send sniffer packets to host via JTAG interface.
2019-02-27 16:20:13 +08:00
37b55a5eb5 esp32: print ELF file SHA256 in panic handler 2019-02-27 13:30:25 +08:00
ea52a19c00 build system: include SHA256 hash of ELF file into app_desc structure 2019-02-27 13:30:25 +08:00
a8b2e982e1 Merge branch 'example/freertos_real_time_stats' into 'master'
freertos: Add real time stats example

See merge request idf/esp-idf!4334
2019-02-27 13:22:59 +08:00
80f02cd0ea Merge branch 'bugfix/bootloader_freq_check_runtime' into 'master'
bootloader: check previously used clock frequency at run time

See merge request idf/esp-idf!3827
2019-02-27 13:22:47 +08:00
fab11e1cec Merge branch 'bugfix/cmake_psram_fix_flag' into 'master'
cmake: Fix psram workaround compiler flag application

See merge request idf/esp-idf!4335
2019-02-27 13:20:21 +08:00
1bc831f074 Merge branch 'bugfix/esp_timer_monotonic_test' into 'master'
esp_timer: fix occasional failures in "esp_timer_get_time returns monotonic values" test

See merge request idf/esp-idf!4340
2019-02-27 11:08:53 +08:00
3576e54d79 freertos: Make xPortGetCoreID() volatile
When xPortGetCoreID() is called twice within a function,
it might only be called once after compilation. This
commit makes the inline assembly of the function volatile.

Closes #3093
2019-02-26 20:59:49 +08:00
711173b3d6 esp32: make WiFi IRAM optimization configurable
With this feature, the WiFi IRAM optimization can be disabled/enabled via menuconfig.
2019-02-26 19:55:57 +08:00
299e4ca716 Add CRC APIs usage 2019-02-26 18:12:14 +08:00
1e8b8d91a5 fix the bug in tcp_client
Closes https://github.com/espressif/esp-idf/issues/3058
2019-02-26 09:28:17 +00:00
8cc6226051 soc: define named constants for DPORT_CPUPERIOD_SEL values 2019-02-26 17:07:59 +08:00
178e5b25e6 bootloader: check previously used clock frequency at run time
In the situation when bootloader was compiled for 240MHz, and app was
compiled for 160MHz, and the chip is a revision 0 chip, the
bootloader will assume that the application has also been running at
240MHz. This will cause the chip to lock up later. Modify this to use
a run time check of DPORT_CPUPERIOD_SEL, which indicates which of the
PLL frequencies was used.

Closes https://github.com/espressif/esp-idf/issues/2731.
2019-02-26 17:02:34 +08:00
dda0208614 soc/rtc_clk: don’t clear DPORT_CPUPERIOD_SEL when switching to XTAL
This is not necessary since RTC_CNTL_SOC_CLK_SEL is set before this.
2019-02-26 17:02:34 +08:00
3e25d441a5 freertos: Add real time stats example
The following commit adds a real time stats example demonstrating how to
obtain task CPU usage statistics over a period of time, as opposed to the current
run time stats in FreeRTOS which measures task CPU usage as a percentage of
total system run time.
2019-02-26 14:34:53 +08:00
140b6e3893 Merge branch 'bugfix/nvs_hash_blocks_eager_cleanup' into 'master'
nvs: do eager cleanup of HashListBlocks

See merge request idf/esp-idf!4337
2019-02-26 12:28:10 +08:00
da390618c2 cmake: Fix psram workaround compiler flag application
Previously, this compiler flag was not being applied
regardless of CONFIG_SPIRAM_CACHE_WORKAROUND setting.

Explanation: add_compile_options() only applies to
source files added after the function is run, or in
subdirectories added after the function is run. In
this case, no new source files were being added after
this function was run.
2019-02-26 04:07:51 +00:00
3952d25a99 Merge branch 'feature/add_api_get_rmt_idle_level' into 'master'
feature(rmt):  fixed some RMT related issues.

See merge request idf/esp-idf!3864
2019-02-26 11:57:10 +08:00
ca72c3e97b Merge branch 'bugfix/fix_dig_gpio_unable_hold_bug' into 'master'
bugfix(gpio):  fixed digital gpio unable hold bug during deep-sleep.

See merge request idf/esp-idf!3877
2019-02-26 11:56:27 +08:00
280d39aedd Merge branch 'bugfix/i2s_pdm_adc_use_apll' into 'master'
bugfix(i2s): allow to use apll in pdm/adc/dac mode

See merge request idf/esp-idf!3800
2019-02-26 11:47:49 +08:00
b966ef9fcd Merge branch 'bugfix/update_ledc_register_and_fix_fade_scale' into 'master'
Bugfix (ledc):  Fixed ledc fade scale  bug

See merge request idf/esp-idf!4109
2019-02-26 11:46:28 +08:00
a4edeee51b Merge branch 'bugfix/btdm_fix_comment_error' into 'master'
Component/bt: fix comment error

See merge request idf/esp-idf!3769
2019-02-26 11:45:26 +08:00
28f5ca2371 Merge branch 'bugfix/idf_monitor_test' into 'master'
CI: Test IDF Monitor after it is ready to receive data

See merge request idf/esp-idf!4055
2019-02-26 11:12:58 +08:00
f614f5bfa9 Merge branch 'feature/http_server_err_handling' into 'master'
http_server : Add feature for invoking user configurable handlers during server errors

See merge request idf/esp-idf!4229
2019-02-26 11:12:06 +08:00
94e5fba46b doc: zh_CN translation of linker script generation
Translate linker-script-generation to zh_CN.
2019-02-26 10:22:30 +08:00
d3724dc35d esp_timer: fix occasional failures in "monotonic values" test
1. ref_clock used in unit tests occasionally produces time off by ~100
microseconds shortly after being started. Add a delay to let
ref_clock stabilise, until the cause is found.

2. Reduce roundoff error accumulation which would occasionally cause
the test to fail, by choosing an overflow value which can be divided
by APB frequency.

3. Move time sampling part of the test into an IRAM function to
reduce variations due to cache behavior.

4. Remove calculation of "standard deviation" in the test, as what was
calculated was not actually standard deviation, and it did not add any
useful information.
2019-02-26 02:01:29 +00:00
dae40f4ff1 nvs: add a blob fragmentation test case
Ref. TW12937
2019-02-26 01:58:20 +00:00
02a76abb8b nvs: do eager cleanup of HashListBlocks
Previously when HashList was removing items, HashListBlocks were
removed lazily. This resulted in empty HashListBlocks dangling around
in full pages, even when all items have been erased. These blocks
would only be deleted when NVS was re-initialized
(nvs_flash_deinit/nvs_flash_init).

This change does eager cleanup instead, based on the code from
@negativekelvin offered in
https://github.com/espressif/esp-idf/issues/1642#issuecomment-367227994.

Closes https://github.com/espressif/esp-idf/issues/1642.
2019-02-26 01:58:20 +00:00
3240f7ff11 Merge branch 'feature/poll' into 'master'
VFS: Implement poll() based on select()

See merge request idf/esp-idf!4315
2019-02-26 08:11:22 +08:00
4c8e997289 esp_http_server/lru_counter_for_timestamp:Added LRU counter for timer
Replaced the os timer in http server by LRU counter. The timestamp is
unnecessary for LRU.
2019-02-25 10:08:15 +00:00
7c959904b5 tools: Test IDF Monitor after it is ready to receive data 2019-02-25 10:35:09 +01:00
aa9d302814 VFS: Implement poll() based on select()
Closes https://github.com/espressif/esp-idf/issues/2945
2019-02-25 10:34:27 +01:00
1af5d0d87c https_server : Missing uri_match_fn paramater added to default config 2019-02-25 09:13:39 +00:00
b26f6662f1 http_server examples : Updated tests and examples to demonstrate usage of httpd_register_err_handler() and accommodate for changes in default error handler behavior 2019-02-25 09:13:39 +00:00
28412d8cb6 http_server : Added feature for invoking user configurable handlers during server errors
Added APIs :
  * httpd_resp_send_err()        : for sending HTTP error responses for error codes given by httpd_err_code_t. It uses TCP_NODELAY option to ensure that HTTP error responses reach the client before socket is closed.
  * httpd_register_err_handler() : for registering HTTP error handler functions of type httpd_err_handler_func_t.

The default behavior, on encountering errors during processing of HTTP requests, is now to send HTTP error response (if possible) and close the underlying socket. User configurable handlers can be used to override this behavior for each error individually (except for 500 Internal Server Error).

Also fixed some typos.

Closes https://github.com/espressif/esp-idf/issues/3005
2019-02-25 09:13:39 +00:00
5ec58c316d Merge branch 'bugfix/multiple_can_bugs' into 'master'
CAN: Add functions to clear queues and fix multiple bugs

See merge request idf/esp-idf!4279
2019-02-25 15:43:56 +08:00
7cdd19fb69 Merge branch 'ci/retry_submodule_sync' into 'master'
ci: Retry submodule sync 2 more times before failing

See merge request idf/esp-idf!4323
2019-02-25 14:11:51 +08:00
3ac43708e5 ci: Only use "github_sync" tagged runners to talk to GitHub 2019-02-25 02:38:27 +00:00
cced2cb147 ci: Retry submodule sync 2 more times before failing 2019-02-25 02:38:27 +00:00
1aa8e8d38e Merge branch 'bugfix/make_extra_component_dirs' into 'master'
make: fix issues related to EXTRA_COMPONENT_DIRS

See merge request idf/esp-idf!4253
2019-02-22 16:00:31 +08:00
6e88822807 Merge branch 'bugfix/kconfig_flex_arg' into 'master'
kconfig: fix compatibility with very old versions of flex

See merge request idf/esp-idf!4263
2019-02-22 15:49:11 +08:00
d877ca4438 component/bt : fix bug that there's low ratio crash when BLE do re-connect/re-scan/re-adv
fix 3 bugs:
1. do BLE connect (both of slave and master), it mgiht cause crash due to there's much interrupts happens effect ble code running, for example, wifi run on the same core as bluetooth controller and wifi run throughtput test.
2. do BLE scan stop or adv stop or connection stop, it might cause ASSERT or crash due to memory corrupted in controller memory poll.
3. minor bug fix, not really effect bluetooth.
2019-02-22 06:24:03 +00:00
6264557854 Merge branch 'bugfix/psram_move_qsort_setlocale_flash' into 'master'
psram: Move qsort and setlocale to flash

See merge request idf/esp-idf!4321
2019-02-22 12:30:04 +08:00
7f28bce42e newlib: When using psram, link setlocale() to flash not IRAM 2019-02-22 03:28:41 +00:00
bd97b139eb newlib: When using psram, link qsort to flash not IRAM 2019-02-22 03:28:41 +00:00
f4bc6be1d4 Merge branch 'bugfix/remove_lddeps_resolution' into 'master'
Remove lddeps resolution for linker script generator template

See merge request idf/esp-idf!4326
2019-02-22 11:28:10 +08:00
24284b3afd ldgen: remove resolution of template includes 2019-02-22 08:25:56 +08:00
4ae2c4c282 Merge branch 'feature/coredump_improvements_refactoring' into 'master'
coredump: improvements, refactoring (separate FLASH and UART functionality)

See merge request idf/esp-idf!4207
2019-02-21 11:04:19 +08:00
5b945cb611 Merge branch 'bugfix/mdns_service_memory_leak' into 'master'
mdns: fix memory leak when query for service plus various other fixes

See merge request idf/esp-idf!4270
2019-02-21 06:03:48 +08:00
40a55823a9 Merge branch 'feature/anti_rollback_efuse' into 'master'
Support anti-rollback

See merge request idf/esp-idf!3682
2019-02-20 16:11:00 +08:00
91f97d121f Merge branch 'revert-23a03cf6' into 'master'
Revert "Merge branch 'bugfix/external_rtc_start_fail' into 'master'"

See merge request idf/esp-idf!4292
2019-02-20 15:09:35 +08:00
52565ce1a1 Merge branch 'bugfix/btdm_fix_connection_params_update_issues' into 'master'
component/bt: fix connection params issues

See merge request idf/esp-idf!4276
2019-02-20 14:18:11 +08:00
062893c5da Merge branch 'bugfix/doc_master_branch_clone_note' into 'master'
doc: Fix invalid 'This command will clone master' note in docs

See merge request idf/esp-idf!4240
2019-02-20 08:31:05 +08:00
c960bcb5e6 Merge branch 'bugfix/coex_lc_protect' into 'master'
component/esp32 : fix coexist lc protect cause memory corrupted

See merge request idf/esp-idf!4265
2019-02-20 02:11:37 +08:00
64b7b0f94c Reduce part of IRAM consumption in wifi libnet80211.a
It might be a little effect of WIFI max TX throughput if the limitation is cache hit rate
2019-02-19 15:43:56 +08:00
5b182eefc1 Merge branch 'bugfix/spiram_linker_wildcards' into 'master'
newlib: Provide library name for ROM libc object files linked as PSRAM workarounds

See merge request idf/esp-idf!4152
2019-02-19 13:28:10 +08:00
dc133f9fc4 Revert "Merge branch 'bugfix/external_rtc_start_fail' into 'master'"
This reverts merge request !2441
2019-02-19 12:39:47 +08:00
0c44e5bfb3 doc: Fix invalid 'This command will clone master' note in docs
Was accidentally considering the extra_note text as a tuple, resulted in
corrupt ..note section.
2019-02-19 04:05:39 +00:00
2cf4c02be9 component/esp32 : fix coexist lc protect cause memory corrupted
The bug will cause memory corrupted (the largest range is from 0x3ffc0000 ~ 0x3ffc8000),
some strange error will happen, like IllegalInstruction, LoadProhibited and .etc.
2019-02-19 03:28:47 +00:00
298fa2168a Merge branch 'bugfix/freertos_unused_xSize' into 'master'
freertos: Fix unused variable warning

See merge request idf/esp-idf!4281
2019-02-19 10:48:04 +08:00
6538acc94f Merge branch 'bugfix/wdt_compability_app_with_old_bootloader' into 'master'
esp32: Fix wdt settings in esp_restart_noos

See merge request idf/esp-idf!4098
2019-02-19 10:42:33 +08:00
8cd2534213 Merge branch 'bugfix/nvs_key_part_check_err' into 'master'
nvs_flash: Detect key partition as uninitialised even if encrypted by bootloader

See merge request idf/esp-idf!4224
2019-02-19 10:22:04 +08:00
ff0bd4a13a Merge branch 'feature/docs_add-ons_and_extensions' into 'master'
docs: This is a quick reference of more than a dozen and-ons and extensions prepared over the last two years to add contents, improve look & feel and cut on maintenance of the ESP-IDF documentation.

See merge request idf/esp-idf!4244
2019-02-19 06:06:31 +08:00
0b4b5cd419 Merge branch 'feature/get_started_steps' into 'master'
Introduced installation steps to improve navigation through the installation…

See merge request idf/esp-idf!4234
2019-02-19 06:04:54 +08:00
099b83af67 CAN: Add functions to clear queues and fix multiple bugs
This commits adds the functions can_clear_transmit_queue() and
can_clear_receive_queue(). Closes #2906

The following bug are fixed:

- CAN_IO_UNUSED is now explicitly cast to enum type. Closes #2825
- Fix multiple documentation errors. Closes #2898, Closes #2794
- can_reconfigure_alerts() returns incorrect current_alerts. Closes #3028
- Add missing header file. Closes #3065
2019-02-18 21:31:33 +08:00
zwj
faf9126ed4 component/bt: fix connection params update issues 2019-02-18 19:52:16 +08:00
bcc21d2262 Merge branch 'feature/wifi_provisioning_handler_ctx' into 'master'
Provisioning : Various fixes in protocomm and wifi_provisioning components

See merge request idf/esp-idf!4188
2019-02-18 08:06:12 +08:00
ed0db52f74 docs: This is a quick reference of more than a dozen and-ons and extensions prepared over the last two years to add contents, improve look & feel and cut on maintenance of the ESP-IDF documentation. 2019-02-17 20:32:50 +01:00
43c6e77c2f Introduced installation steps to improve navigation through the installation process. Included some updates from GNU make section. 2019-02-17 20:24:17 +01:00
781acfea51 Merge branch 'fix/spi_on_readonly_pins' into 'master'
spi: fix the bug of connecting SPI peripheral to read-only pins

See merge request idf/esp-idf!4246
2019-02-17 13:03:28 +08:00
86bcd56109 spi: fix the bug of connecting SPI peripheral to read-only pins
The requirements of pin capabilites is different for spi master and
slave.  The master needs CS, SCLK, MOSI to be output-able, while slave
needs MISO to be output-able.

Previous code is for master only.

This commit allows to place other 3 pins than MISO on input-only pins
for slaves. Refactoring for spi_common is also included.

Resolves https://github.com/espressif/esp-idf/issues/2455
2019-02-16 20:03:14 +08:00
2ce401c664 Merge branch 'bugfix/btdm_crash_when_inquiry_cancel' into 'master'
Bugfix/btdm crash when inquiry cancel

See merge request idf/esp-idf!4142
2019-02-16 16:27:49 +08:00
7a174f99a3 freertos: Fix unused variable warning
This commit fixes an unused variable warning when
configASSERT is undefined.
2019-02-16 01:42:00 +08:00
8462751f95 mdns: fix memory leak in pbuf if tcpipadapter failed to get netif 2019-02-15 15:59:11 +01:00
fbef5297fc mdns example: fix print result for IPv6 addresses 2019-02-15 15:54:18 +01:00
1a027734af mdns: fix malfuctional query_txt
when running a query for a single txt, result entries were not created and attached to result structure. this issue was introduced when fixing memory leak in txt structure, which worked correctly for PTR queries, but caused trouble for TXT query.
2019-02-15 13:46:51 +01:00
206b47c03a mdns: fix possible crash when mdns_free called while action queue not empty 2019-02-15 13:23:21 +01:00
f4f3b6088a provisioning examples : typos fixed and minor change in timer callback execution
Note : Examples have been updated to prevent invocation of bluedroid/wifi APIs from inside timer callback when stopping provisioning. Workaround is to spawn new task from inside the timer callback.
2019-02-15 10:45:34 +00:00
f3a6c63920 protocomm : typos fixed and descriptions corrected 2019-02-15 10:45:34 +00:00
6b6ae224d9 protocomm unit_tests : test cases updated
Changes:
* Version endpoint test added
* Memory leak test updated to include corner case exceptions in protocomm
2019-02-15 10:45:34 +00:00
f4cba0c295 protocomm security : memory leaks fixed
List of changes:
* Corner case exceptions are properly handled to ensure release of memory occupied by security infrastructure
* fixed erroneous cleanup of security instance by protocomm_console
2019-02-15 10:45:34 +00:00
a1d37c833c protocomm : version endpoint behavior simplified
List of changes:
* Version endpoint now sends the set version string instead of verifying the incoming version string. This simplifies fetching version info from the provisioning application.
* esp_prov script updated to expect version string as response.
2019-02-15 10:45:34 +00:00
59b10709d1 wifi_provisioning : context pointer added to wifi_config_t structure and related examples/docs updated
Closes https://github.com/espressif/esp-idf/issues/2874
2019-02-15 10:45:34 +00:00
776c23da4a provisioning framework : 'extern C' directives added for C++ support 2019-02-15 10:45:34 +00:00
df71c733df Merge branch 'doc/cleanup_apptrace2host_example' into 'master'
cleanup app_trace_to_host example

See merge request idf/esp-idf!4160
2019-02-15 17:06:57 +08:00
9a4da97fb4 mdns: fix memory leak when query for service receives multiple ptr entries for one instance
fixes redmine issue 27300
2019-02-15 07:56:03 +01:00
eb4d48815f Merge branch 'feature/protocomm_httpd_changes' into 'master'
Feature/protocomm httpd changes

See merge request idf/esp-idf!4227
2019-02-15 14:21:44 +08:00
3300adde21 Merge branch 'feature/lwip_add_linker_fragment' into 'master'
add linker fragment for lwip

See merge request idf/esp-idf!4255
2019-02-15 13:55:25 +08:00
2c7f603a83 Merge branch 'bugfix/fix_some_wifi_bugs_0131' into 'master'
esp32: fix some wifi bugs

See merge request idf/esp-idf!4216
2019-02-15 12:14:41 +08:00
1867da48af Merge branch 'bugfix/cmake_unit_test_fail' into 'master'
Use flasher_args.json for flashing CMake CI unit test

See merge request idf/esp-idf!4225
2019-02-15 08:55:14 +08:00
81cde3b44f Merge branch 'test/disable_sdio_example_ci' into 'master'
sdio: temporarily disable the sdio example ci, since the runners have some power issue

See merge request idf/esp-idf!4264
2019-02-15 08:54:06 +08:00
91f5bb3850 Merge branch 'bugfix/default_event_loop_example_failure' into 'master'
Fix failures in running esp_event example test

Closes #64

See merge request idf/esp-idf!4252
2019-02-15 08:50:18 +08:00
301e3e0d55 Merge branch 'docs/translate-cmake-notes' into 'master'
Translate notes regarding CMake-based build system

See merge request idf/esp-idf!4231
2019-02-15 08:19:05 +08:00
923b5dc369 Merge branch 'bugfix/relink_on_included_linker_script_change' into 'master'
Re-link when linker script included from template file are modified

See merge request idf/esp-idf!4001
2019-02-15 08:16:04 +08:00
6b7f4bc72f make: remove unecessary inclusion of ldgen.mk 2019-02-14 18:58:48 +08:00
50e860fe8c ci: test relink on template included file change 2019-02-14 18:58:48 +08:00
acd0be8239 cmake,make: add dependencies on template included scripts 2019-02-14 18:58:48 +08:00
022a1da4e9 ldgen: create python script to find linker script includes 2019-02-14 18:58:48 +08:00
e916cf52a3 bootloader: Add support of anti-rollback
Added:
* set a secure version in app/bootloader.
* description anti-rollback to ota part
* emulate the secure_version write and read operations
* efuse_em partition.
* a description about a rollback for native_ota_example.

Closes: TW26335
2019-02-14 18:51:43 +08:00
bb552dd19c ci: use flasher_args.json for cmake ci run 2019-02-14 08:33:46 +00:00
c6b07eec54 ci: copy flasher_args.json to unit test output folder 2019-02-14 08:33:46 +00:00
c465053195 sdio: temporarily disable the sdio example ci, since the runners have
some power issue
2019-02-14 15:51:24 +08:00
86c4950d2f examples: fix specified location for event loop example test 2019-02-14 14:06:04 +08:00
a0310e35d7 example: fix expected logging output order for esp_event example 2019-02-14 14:06:04 +08:00
302ca0022f lwip: add linker fragment
Add linker fragment file for lwip component.
2019-02-14 12:42:06 +08:00
fed0f846a4 kconfig: fix compatibility with very old versions of flex
See 4e762e4918

Closes https://github.com/espressif/esp-idf/issues/2703
2019-02-14 11:17:48 +08:00
23a03cf6ad Merge branch 'bugfix/external_rtc_start_fail' into 'master'
soc/rtc: bypass touchpad8 and touchpad9 current to external 32k crystal oscillator

See merge request idf/esp-idf!2441
2019-02-14 10:40:48 +08:00
7df598a062 make: fix issues related to EXTRA_COMPONENT_DIRS
1. When one of the COMPONENT_DIRS points to a component directory
(i.e. a directory containing component.mk, not a directory of multiple
components), and there is a subdirectory in it which also contains
a component, the subdirectory was mistakenly added to the list of
components and compiled.

For example:

    main/
        component.mk
        main.c
        test/
            component.mk
            test_main.c

Would compile test_main.c and link libtest.a.

2. When one of the COMPONENT_DIRS points to a component directory, and
the parent directory contained a directory with the same name as
another component, that directory would be mistakenly added to the
COMPONENT_PATHS.

For example:

    esp/
        esp-idf/
        esp32/
            (random stuff)
        mycomponent/
            component.mk
            mycomponent.c
        myproject/
            main/
            Makefile

and Makefile sets EXTRA_COMPONENT_DIRS=$(realpath ../mycomponent),
then "esp32" directory which is at the same level as mycomponent
was added to COMPONENT_PATHS.

3. If EXTRA_COMPONENT_DIRS pointed to a directory with a list of
components, and one of the subdirectories was not a component, but
had the same name as another component, than that directory would be
mistakenly added to COMPONENT_PATHS instead of the real esp32
component directory.

For example:

    my_components/
        my_component/
            component.mk
            my_component.c
        esp32/
            (some random stuff)

and EXTRA_COMPONENT_DIRS would point to my_components/, then "esp32"
directory would be added to COMPONENT_PATHS instead of the real esp32
component directory.
2019-02-13 16:34:50 +08:00
149a5a0d49 translate cmake notes 2019-02-13 05:58:44 +00:00
3aa5a1e5a2 Merge branch 'feature/himem_readme' into 'master'
Proper README.md for himem example

See merge request idf/esp-idf!3599
2019-02-13 11:26:39 +08:00
0676941332 soc/rtc: fix RTC_TOUCH_TRIG_EN or RTC_ULP_TRIG_EN should keep RTC_PERIPH power on 2019-02-13 10:30:37 +08:00
c5b4512a27 soc/rtc: Bypass touchpad current to external 32k crystal oscillator 2019-02-13 10:15:45 +08:00
72cca0f2a3 Proper README.md for himem example 2019-02-12 19:36:06 +08:00
6ab722e478 coredump:fix test artifacts
Move existing core dump files into espcoredump component folder
Add KConfig, linker.lf, make and CMakeList.txt for new component
Existing functionality separated into core_dump_common, core_dump_flash, core_dump_uart
Update test_core_dump.c and make files to link it as unit test
Update according to review:
Move target and RTOS related functionality into separated file (core_dump_port.c).
Fix test logs and test elf files
2019-02-12 10:22:33 +00:00
10fe158f67 coredump: improvements refactoring
Move existing core dump files into espcoredump component folder
Add KConfig, linker.lf, make and CMakeList.txt for new component
Existing functionality separated into core_dump_common, core_dump_flash, core_dump_uart
Update test_core_dump.c and make files to link it as unit test
Update according to review:
Move target and RTOS related functionality into separated file (core_dump_port.c).
2019-02-12 10:22:33 +00:00
4fd418dfe7 Merge branch 'feature/sysview_max_tasks_configuration' into 'master'
sys_view: expose max tasks configuration parameter

See merge request idf/esp-idf!4239
2019-02-12 07:37:34 +08:00
e00bac2bd5 sys_view: expose max tasks configuration parameter 2019-02-05 18:18:24 +05:30
985e1c4c7f Merge branch 'bugfix/invoke_ota_operations_on_windows' into 'master'
Fix permission denied error on Windows for otatool, parttool

See merge request idf/esp-idf!4086
2019-02-05 09:15:22 +08:00
4e770aec61 Merge branch 'feature/predictable_event_dispatch_via_duplication' into 'master'
Predictable event handler dispatch

See merge request idf/esp-idf!3932
2019-02-05 08:47:03 +08:00
7922e25a04 Merge branch 'bugfix/mdns_notask_timer_crash' into 'master'
mdns: fix crash after init if no memory for task

See merge request idf/esp-idf!4171
2019-02-05 08:41:51 +08:00
3804c458c7 softap_prov: Changes in the example code as per changes to protocomm_httpd
Signed-off-by: Piyush Shah <piyush@espressif.com>
2019-02-04 18:22:43 +05:30
759b90a5e1 protocomm_httpd: Allow applications to pass HTTPD handle
This will be useful if a webserver is already running and the application
does not want protocomm to start a new instance.

Signed-off-by: Piyush Shah <piyush@espressif.com>
2019-02-04 18:22:05 +05:30
a2b47fd314 Merge branch 'bugfix/win_kconfig_backslash' into 'master'
tools: Fix Windows related Kconfig issues

See merge request idf/esp-idf!4206
2019-02-04 14:27:38 +08:00
d4d3ccf6d9 Merge branch 'bugfix/btdm_add_handle_in_gatts_conf_event_for_indication' into 'master'
Component/bt: add handle in gatts conf event for indication

See merge request idf/esp-idf!4024
2019-02-01 21:33:39 +08:00
abea9e4c02 Merge branch 'bugfix/btdm_fix_write_char_crash_after_disconnection' into 'master'
Component/bt: fix write char crash after disconnection

See merge request idf/esp-idf!4209
2019-02-01 21:27:29 +08:00
80cb4a1a18 tools: Don't use backslashes in Kconfigs and ignore long lines to avoid errors
Closes https://github.com/espressif/esp-idf/issues/3012
2019-02-01 11:33:41 +01:00
bcd584a63f tools: check for incorrect case used in Kconfig filenames 2019-02-01 11:33:41 +01:00
d1dd3ab0d3 tools: Recognize backslashes in Kconfigs with CR+LF line endings 2019-02-01 11:33:41 +01:00
d32128440d nvs_flash: Detect key partition as uninitialised even if encrypted by bootloader
Currently, only erase operation performed by the application leads
to detection of NVS key partition as uninitialised. This change
adds additional checks for detecting partition as uninitialised,
when device boots first time right after encryption by bootloader.
2019-02-01 13:28:13 +05:30
de79835251 esp32: fix some WiFi bugs
Fix following WiFi bugs:
1. Fix a crash bug which is caused by WiFi static TX buffer alloc/free.
2. Fix the bug that iphone fails to connect to ESP32 AP by enabling AP BAR receiving.
3. Fix the bug that ESP32 station fails to connect some APs, such as Xiaomi hotspot etc,
   after reset.
2019-02-01 11:51:05 +08:00
d7a7a6835b Merge branch 'mesh/malloc_routing_table' into 'master'
mesh: modify to malloc routing table

See merge request idf/esp-idf!4213
2019-02-01 10:02:14 +08:00
ed84bcee7b cleanup app_trace_to_host example
1. Cleanup the README of app_trace_to_host example based on the template.
2. Remove unused header files in the example.
3. Fix typos in public header file.
2019-01-31 21:28:52 +08:00
06a2e20b15 Component/bt: fix comment error 2019-01-31 20:47:36 +08:00
b51a0fcea5 Component/bt: fix write char crash after disconnection 2019-01-31 12:18:54 +00:00
02d3170cce mesh: modify to malloc routing table 2019-01-31 17:46:11 +08:00
2790d4a049 Merge branch 'bugfix/mdns_test_cleanup' into 'master'
mdns tests: execute test services only when running example in ci

See merge request idf/esp-idf!4174
2019-01-31 14:46:10 +08:00
83f370630e Merge branch 'feature/add_ipv6_related_change' into 'master'
modify test case to support ipv6

See merge request idf/esp-idf!2253
2019-01-31 14:31:16 +08:00
e87d05d81f components/bt: Add precautions for esp_vhci_host_send_packet 2019-01-31 11:47:58 +08:00
27235e023f components/bt: Fix crash when inquiry stop 2019-01-31 11:47:41 +08:00
131885d547 Merge branch 'bugfix/event_loop_library_memory_leak' into 'master'
Fix event loop library memory leak

See merge request idf/esp-idf!4201
2019-01-31 11:02:20 +08:00
4b2feb316a Merge branch 'feature/optionally_disable_https_from_ota_component' into 'master'
esp_https_ota: few feature enhancements

See merge request idf/esp-idf!4057
2019-01-31 09:11:35 +08:00
e9a765d0fd docs: add notes on handler dispatch order 2019-01-30 20:59:47 +08:00
a3664ad654 esp_event: test that dispath order follows regisration order 2019-01-30 20:59:47 +08:00
a10901f44b esp_event: dispatch order follows registration order 2019-01-30 20:59:47 +08:00
b912d0fa9d esp_https_ota: add support for configurable ota buffer size
Closes https://github.com/espressif/esp-idf/issues/2998
2019-01-30 18:11:09 +05:30
d894e133ad esp_https_ota: add config option to (optionally) allow http 2019-01-30 18:11:05 +05:30
2160abd3e4 esp_event: detect leaks in unit test 2019-01-30 18:49:21 +08:00
34310908cf esp_event: fix post data type inconsistency 2019-01-30 18:11:13 +08:00
280894af7f esp_event: fix memory leaks
Closes https://github.com/espressif/esp-idf/issues/2886
2019-01-30 18:11:13 +08:00
74cc7a065f mdns tests: execute test services only when running example in ci
Test services may cause confussion (and did cause some GitHub/forum issues). This update runs test services only when example executed in ci. Also host name is a simple config entry if executed outside of ci.
2019-01-30 09:55:52 +00:00
a0416e9351 Merge branch 'bugfix/tw28445_wps_thread_safe' into 'master'
Bugfix/tw28445 wps thread safe

See merge request idf/esp-idf!4175
2019-01-30 17:50:25 +08:00
58b5394266 Merge branch 'bugfix/git_describe_always_for_cmake' into 'master'
tools: Add --always option to git describe for Cmake

See merge request idf/esp-idf!4107
2019-01-30 17:48:11 +08:00
024c568c73 Merge branch 'bugfix/cmake_stack_protector' into 'master'
esp32: disable stack protector for startup code (CMake)

See merge request idf/esp-idf!4198
2019-01-30 16:28:40 +08:00
a47768dc4e mdns: fix crash after init if no memory for task
mdns init first starts timer task, then starts service task. if service task failed to be created, timer task needs to be stopped too.
fixed https://ezredmine.espressif.cn:8765/issues/28466
2019-01-30 08:17:37 +01:00
05a28ef4e7 Merge branch 'bugfix/aws_iot_examples_cmake_build' into 'master'
examples: aws_iot: fix cmake build issue which used to pick dummy certificates

See merge request idf/esp-idf!4180
2019-01-30 14:27:51 +08:00
5b938199ab doc(esp-idf) | JTAG debugging EN update 2019-01-30 11:34:04 +08:00
7ffd0f95d2 doc/jtag_debug: translation of jtag debugging
translate JTAG Debugging to zh_CN
2019-01-30 11:34:04 +08:00
aa4a5668b0 Merge branch 'bugfix/add_missing_links_to_translation' into 'master'
Included missing links between English and Chinese documentation, where…

See merge request idf/esp-idf!4176
2019-01-30 11:32:15 +08:00
35a53453f1 Merge branch 'bugfix/doc_updates_from_github' into 'master'
Documenation updates from github

See merge request idf/esp-idf!4120
2019-01-30 09:34:28 +08:00
784fc51931 Merge branch 'bugfix/mdns_crash_free_strdup' into 'master'
mdns: fixed crash on free undefined ptr if strdup is skipped

See merge request idf/esp-idf!4173
2019-01-30 09:33:12 +08:00
0a2b54d2e3 Merge branch 'bugfix/correct_kconfigs' into 'master'
Correct Kconfigs according to the coding style

See merge request idf/esp-idf!4172
2019-01-30 09:24:22 +08:00
6b80955ac7 Merge branch 'update/esptool_repo_sync' into 'master'
ci: Remove ALLOW_TO_SYNC_FROM_PUBLIC from esptool mirror repo

See merge request idf/esp-idf!4194
2019-01-30 09:21:59 +08:00
4d156fd734 tools: replace absolute URLs in Kconfig docs 2019-01-29 16:27:02 +01:00
a672e4f44b Merge branch 'bugfix/disable_kconfig_redundant_config_warnings_on_merge' into 'master'
Disable warnings on redundant config merge

See merge request idf/esp-idf!4168
2019-01-29 22:03:05 +08:00
37126d3451 Correct Kconfigs according to the coding style 2019-01-29 13:37:01 +01:00
7fb3218a33 Merge branch 'feature/eth_support_ip101g' into 'master'
support new Ethernet PHY (IP101)

See merge request idf/esp-idf!4187
2019-01-29 17:50:40 +08:00
70b14bf615 esp32: disable stack protector for startup code (CMake)
Files where stack protector is initialized should not be compiled with
stack protector enabled. This was done for Make but missing for CMake.

Fixes https://github.com/espressif/esp-idf/issues/2990.
2019-01-29 17:41:00 +08:00
fd57c4ee67 esp32: fix WPS thread-safe
Fix WPS thread-safe bug
2019-01-29 17:30:21 +08:00
bf1955aac8 Merge branch 'bugfix/coex_update_phy_to_fix_interrupt_wdt' into 'master'
esp32: update libphy.a to fix interrupt watchdog when WiFi and BT run at the same time and both enable modem sleep

See merge request idf/esp-idf!4191
2019-01-29 17:12:10 +08:00
e0a8044a16 mdns: fixed crash on free undefined ptr after skipped strdup
Shortcircuit evaluation may cause skip of _mdns_strdup_check of any further question field, which after clear_rx_packet freed undefined memory.
Fixes https://ezredmine.espressif.cn:8765/issues/28465
2019-01-29 10:10:38 +01:00
7528dc0f20 ethernet: support new PHY (IP101)
1. Add support for new PHY IP101.
2. Re-enable GPIO0 output mode.
3. Clean up some docs.
2019-01-29 14:08:35 +08:00
4725364e04 Merge branch 'feat/spi_slave_timing' into 'master'
feat(spi_slave): fine tune the timing of SPI slave

See merge request idf/esp-idf!3925
2019-01-29 14:03:55 +08:00
392e820c5e ci: Remove ALLOW_TO_SYNC_FROM_PUBLIC from esptool mirror repo 2019-01-29 15:06:11 +11:00
00e53f447a confgen: disable config override warnings 2019-01-29 11:17:02 +08:00
178bbfad43 kconfiglib: allow disabling of config override warnings
Patches ESP-IDF copy of kconfiglib.py with modifications in commit
b65baa47f69ae4c3993876a7edf0da0075aa70ff from kconfiglib repository.
2019-01-29 11:16:25 +08:00
a2cec1f636 esp32: update libphy.a to fix interrupt watchdog when WiFi and BT run at
the same time and both enable modem sleep
2019-01-29 10:55:45 +08:00
8c1c3d51a9 ci: remove IDF_CI_BUILD variable, no active users 2019-01-28 14:39:36 +05:30
44b97b7fe7 Merge branch 'bugfix/backtrace_from_interrupts' into 'master'
Make backtrace work across interrupts

See merge request idf/esp-idf!4084
2019-01-28 16:40:12 +08:00
b2a515c347 Component/bt: add handle in gatts conf event for indication 2019-01-28 07:12:22 +00:00
96af064209 freertos: Make backtrace work across interrupts
This commit adds the ability for backtracing to trace from the itnerrupt to the
task stack, and across nested interrupts. Test cases have also been added.
2019-01-28 14:34:26 +08:00
9896f45c79 Merge branch 'mesh/bugfix_0124' into 'master'
mesh: udpate libs

See merge request idf/esp-idf!4155
2019-01-28 14:06:00 +08:00
1286b93c81 examples: aws_iot: fix cmake build issue which used to pick dummy certificates
For CI build now `sdkconfig.ci` file is used which builds examples assuming certificate
stored on SDCard.
2019-01-28 10:45:34 +05:30
a97765c4b3 Merge branch 'feature/modem_pppos' into 'master'
support cellular modem && refactor PPPoS client example

See merge request idf/esp-idf!3778
2019-01-28 11:59:41 +08:00
1332d3ba9c docs: Correct priorities in the PATH string
Fixes https://github.com/espressif/esp-idf/pull/2944
2019-01-28 11:28:55 +08:00
f675334ebb Included missing links between English and Chinese documentation, where translation into Chinese is available 2019-01-27 19:01:34 +01:00
932f2707ee modify test case to support ipv6 2019-01-26 13:02:04 +00:00
41e58bc419 spi: add new test for timing and mode
New unit tests added
------------------------

**Local:** Local test uses the GPIO matrix to connect the master and the
slave on the same board. When the master needs the iomux, the master
uses the GPIOs of its own, the slave connect to the pins by GPIO matrix;
When the slave needs the iomux, the slave uses the GPIOs of its own, the
master connects to the pins by GPIO matrix.

- Provide a new unit test which performs freq scanning in mode 0. It
scans frequency of 1M, 8M, 9M and all frequency steps up to the maximum
frequency allowed.

**M & S**: Master & slave tests performs the test with two boards. The
master and slave use iomux or gpio matrix according to the config.

- Provide a new unit test which performs freq scanning in mode 0. It
scans frequency of 1M, 8M, 9M and all frequency steps up to the maximum
frequency allowed.

- Provide a new unit test which performs mode test with significant
frequencies. It tests mode 0,1,2,3 with low frequency, and the maximum
frequency allowed.
2019-01-26 00:10:41 +08:00
155006243e spi_master: fix the timing a little so that can assign delay half clock manually 2019-01-26 00:10:41 +08:00
58955a79a2 spi_slave: improve the timing configuration
SPI Slave
===========

- Correct the configuration of mode 0~3 using new config in the TRM
- Split the workaround for DMA in mode 0/2 out of normal config, to make it clear.
- Update timing and speed document for the SPI slave.

Resolves https://github.com/espressif/esp-idf/issues/1346, https://github.com/espressif/esp-idf/issues/2393
2019-01-26 00:10:41 +08:00
d9c5016e08 test: add new test framework for different configurations
Paremeterized Test Framework
-----------------------------

The SPI has a lot of parameters, which works in the same process.
This framework provides a way to easily test different parameter sets.
The framework can work in two different ways:

- local test: which requires only one board to perform the test - master
& slave test: which generates two sub test items which uses the same
config set to cooperate to perform the test.

The user defines a (pair if master/slave) set of init/deinit/loop
functions. Then the test framework will call init once, then call loop
several times with different configurations, then call deinit.

Then a unit test can be appended by add a parameter group, and pass it into
a macro.
2019-01-26 00:10:41 +08:00
5a4fe0bac8 confgen: disable redundant assignment warning 2019-01-25 18:35:58 +08:00
d6b5f43ea0 kconfiglib: allow disabling of redundant definition warnings
Patches ESP-IDF copy of kconfiglib.py with modifications in commit
94c63de77c7a3422347e59e168b05174d0b9e84d from kconfiglib repository.
2019-01-25 18:35:58 +08:00
5c88c5996d Merge branch 'bugfix/ble_active_scan_not_wait_scan_rsp' into 'master'
component/bt: add a option to make report adv data and scan response individually

See merge request idf/esp-idf!4131
2019-01-25 11:53:06 +08:00
b47fda98f3 update translation of establish-serial-connection 2019-01-24 19:50:55 +08:00
7fa8eb91dd Small updates of wording 2019-01-24 19:50:55 +08:00
aa364961d0 docs(en): dialout-linux added specific command for Arch linux the correct group is 'uucp'
Merges https://github.com/espressif/esp-idf/pull/2940
2019-01-24 19:50:55 +08:00
8c675a52a7 mesh: udpate libs
1. during parent selection, when scanning a MAP without ext-assoc IE, it will be handled as it has the same router BSSID as itself.
2. for MAP, when its client leaves, always post SYSTEM_EVENT_AP_STADISCONNECTED to mesh layer regardless of whether the client has passed the encrypted authentication or not.
2019-01-24 15:15:09 +08:00
2eabed161a Merge branch 'feature/merge_multiple_github_prs' into 'master'
Multiple Github PRs

See merge request idf/esp-idf!4146
2019-01-24 15:14:47 +08:00
6c8a8664aa component/bt: add a option to make report adv data and scan response individually
Originally, when doing BLE active scan, Bluedroid will not report adv to
application layer until receive scan response. This option is used to
disable the behavior. When enable this option, Bluedroid will report
adv data or scan response to application layer immediately.
2019-01-24 14:30:02 +08:00
66ffc9d29e Merge branch 'doc/add_esp_ble_test_case' into 'master'
add esp ble compatibility test case

See merge request idf/esp-idf!3989
2019-01-24 14:29:31 +08:00
ef07bc44ec add esp ble compatibility test case 2019-01-24 14:29:31 +08:00
386b29e5f8 Merge branch 'bugfix/reduce_nvs_init_time' into 'master'
nvs_flash: Improve nvs_flash_init_partition() speed

See merge request idf/esp-idf!4097
2019-01-24 14:17:57 +08:00
2dadc7d549 Merge branch 'bugfix/sha_ownership' into 'master'
hwcrypto sha: Allow SHA contexts to be shared between tasks

See merge request idf/esp-idf!4010
2019-01-24 14:07:23 +08:00
d96f6d6b12 Merge branch 'feature/efuse_add_voltage_level' into 'master'
feature(efuse): add support for setting core voltage in high performance cases

See merge request idf/esp-idf!4124
2019-01-24 13:03:25 +08:00
00c1a40006 app_update: Fix a handling of version as string 2019-01-24 12:13:38 +08:00
3d1e064e1a tools: Add unit tests 2019-01-24 12:13:38 +08:00
187f9945bc tools: Add --always option to git describe for Cmake
Fixed differences in getting of the project version for Make and Cmake.
2019-01-24 12:06:55 +08:00
58acac883d Merge branch 'bugfix/regenerate_sdkconfig_fails' into 'master'
Fix issues with regenerating sdkconfig on modification

Closes #58

See merge request idf/esp-idf!4115
2019-01-24 11:56:52 +08:00
7f307423c1 newlib: Provide library name for ROM libc object files linked as PSRAM workarounds
Works around bug reported on forums where any source file ending in *lock.c or *creat.c
was being linked to IRAM.

https://esp32.com/viewtopic.php?f=13&t=8909&p=37362#p37362

Also moves all related functionality to newlib component.
2019-01-24 11:30:05 +08:00
496bfe3842 Initialized some uninitialized variables in rtc_clk.c and ringbuf.c.
The following 2 compiler warnings are only reproducible when setting:
   OPTIMIZATION_FLAGS = -Ofast

esp-idf/components/soc/esp32/rtc_clk.c:
In function 'rtc_clk_cpu_freq_get':
esp-idf/components/soc/esp32/rtc_clk.c:506:12:
error: 'freq' may be used uninitialized in this function
[-Werror=maybe-uninitialized]
	return freq;

esp-idf/components/esp_ringbuf/ringbuf.c:
In function 'xRingbufferReceiveSplitFromISR':
esp-idf/components/esp_ringbuf/ringbuf.c:934:26:
error: 'pvTempTailItem' may be used uninitialized in this function
[-Werror=maybe-uninitialized]
	*ppvTailItem = pvTempTailItem;

Closes https://github.com/espressif/esp-idf/pull/2878
2019-01-23 16:47:23 +05:30
053219283d Handle esp_tls_conn_read disconnection in ssl_read. Fixes #2805
Closes https://github.com/espressif/esp-idf/pull/2967
2019-01-23 16:47:23 +05:30
41e71c2f53 fix esp_http_client_open
client->post_len was not bein set therefore content-length was 0

Closes https://github.com/espressif/esp-idf/pull/2917
2019-01-23 16:47:23 +05:30
fdd865f22d Fix typo in error message in esp_bluedroid_init
Closes https://github.com/espressif/esp-idf/pull/2835
2019-01-23 16:47:23 +05:30
02da4154a1 Add static qualifier to s_light_sleep_wakeup variable to prevent it from being global.
Closes https://github.com/espressif/esp-idf/pull/2793
2019-01-23 16:47:23 +05:30
8b72dc9fb0 esp_http_client: Add support for mutual authentication
Closes https://github.com/espressif/esp-idf/pull/2688
2019-01-23 16:47:23 +05:30
2e1f98f8f5 modem: support modem facility and PPPoS
1. add support for ESP32 DTE
2. add support for SIM800/BG96 DCE
3. add PPPoS setup procedure
4. add support for SMS
5. add mqtt example after PPP connection established
2019-01-23 18:53:32 +08:00
07645955a2 Merge branch 'bugfix/bootloader_map_size' into 'master'
bootloader: fix incorrect mapping size

See merge request idf/esp-idf!3175
2019-01-23 16:56:58 +08:00
06c3665740 Merge branch 'bugfix/wifi_fix_invalid_csi_data_index' into 'master'
esp32: fix invalid channel state information(CSI) data index

See merge request idf/esp-idf!4048
2019-01-23 14:58:49 +08:00
f2b7dd4263 Merge branch 'feature/support_global_der_ca_store' into 'master'
Add esp_tls_init_global_ca_store function to esp-tls, called from esp_tls_set_global_ca_store

See merge request idf/esp-idf!3795
2019-01-23 13:30:49 +08:00
f141b29328 hwcrypto sha: Use spinlocks instead of semaphores for small state changes
Significant performance improvement and smaller RAM footprint.
2019-01-23 04:59:44 +00:00
f3277cf2dc hwcrypto sha: Allow SHA contexts to be shared between tasks
Previously, hardware SHA engine "locks" were mutex semaphores. This meant that the task which
started a particular SHA session (in hardware) needed to finalise that session, or an invalid
FreeRTOS state was created.

Replace with binary semaphore which can be shared between tasks.

Includes a unit test, but unit test doesn't crash even without this fix
(some other unknown condition is required).
2019-01-23 04:59:44 +00:00
b4c4f8514b nvs_flash: Improve nvs_flash_init_partition() speed
Signed-off-by: Sagar Bijwe <sagar@espressif.com>
2019-01-23 04:53:36 +00:00
52b27890de Merge branch 'bugfix/examples_http_file_server_readme' into 'master'
HTTP File Server : Fix README of example

See merge request idf/esp-idf!4112
2019-01-23 09:06:46 +08:00
f3b72ef6aa esp32: fix invalid channel state information(CSI) data index
Due to a hardware limitation in ESP32, the first four bytes of some
    CSI data is invalid, not the last four bytes.

    Correct a mistake of CSI sub-carrier index in documentation.
2019-01-22 20:11:05 +08:00
b65a088791 tinyfw: update to support new esptool argument 2019-01-22 18:40:25 +08:00
78bea94d8a feature: add support for setting core voltage in high performance cases.
1. add definitions of EFUSE_RD_VOL_LEVEL_HP_INV in efuse_reg.h
2. modify the core voltage according to the record in efuse in high performance cases.
2019-01-22 12:13:58 +08:00
1ce83f4ef5 Merge branch 'bugfix/http_server_uri_template' into 'master'
esp_http_server : Remove casual use of 'template' keyword

See merge request idf/esp-idf!4123
2019-01-22 11:45:45 +08:00
87769f4433 Merge branch 'bugfix/cmake_env_var_for_kconfig' into 'master'
CMake: Make IDF_PATH available to Kconfiglib when not explicitly set.

See merge request idf/esp-idf!4100
2019-01-22 11:11:18 +08:00
05220d9cda CMake: Make IDF_PATH available to Kconfiglib when not explicitly set.
When IDF_PATH is not set by the user, cmake infers the same through
other means and sets it as an environment variable. However, some
sub-invocation of cmake may not see this variable as it is not set
in the parent. This change adds a custom command for exporting IDF_PATH
just before invoking ldgen so that IDF_PATH can be used in Kconfig
without any errors.
2019-01-21 17:02:31 +05:30
d9f0d83466 Merge branch 'bugfix/esp-http-client-incorrect-path' into 'master'
esp_http_client: Fix config member path's incorrect setting issue

See merge request idf/esp-idf!4078
2019-01-21 19:08:24 +08:00
4a667ee12c esp_http_client: Fix config member path's incorrect setting issue 2019-01-21 19:08:24 +08:00
cfebbae3ef esp_http_server : Remove casual use of 'template' keyword
Closes https://github.com/espressif/esp-idf/issues/2956
2019-01-21 16:13:01 +05:30
a9d91e00bc Update esptool.py to v2.6 2019-01-19 14:44:55 +08:00
96d0f7f5e2 bootloader: account for load address when mapping cache pages
Bootloader used to calculate the number of cache pages assuming that
load address was aligned, while in reality load address for DROM and
IROM was offset by 0x20 bytes from the start of 64kB page. This
caused the bootloader to map one less page if the size of the image
was 0x4..0x1c less than a multiple of 64kB.

Reported in https://esp32.com/viewtopic.php?f=13&t=6952.
2019-01-19 14:44:55 +08:00
182e917d78 bootloader: fix IROM and DROM swapped in log messages 2019-01-19 14:44:55 +08:00
5d7d4ba4f3 Merge branch 'bugfix/phy_rtc_cache_disabled' into 'master'
Fix PHY/RTC functions called in ISR, but stored in flash

See merge request idf/esp-idf!4108
2019-01-18 10:53:52 +08:00
423fbf0006 Fix some bugs in phy
1. fix bug PHY/RTC functions called in ISR (update phy to v4007)
2. add UnitTest to test it
3. disable/enable agc to mac deinit/init
2019-01-16 22:41:17 +08:00
83447cae90 Merge branch 'mesh/cs_root_conflict' into 'master'
detect and fix root conflicts when router BSSID is not set

See merge request idf/esp-idf!3869
2019-01-16 21:16:56 +08:00
bf925869fe tool: Add unit test for Kconfig gen 2019-01-16 08:16:09 +08:00
1177427aac docs: remove invalid arg in confgen invocation on docs generation 2019-01-16 08:16:09 +08:00
08f472ad1e cmake: only generate sdkconfig on top level project 2019-01-16 08:16:09 +08:00
61329f60c3 confgen: base config creation on output type args 2019-01-16 08:16:09 +08:00
e1ac7ed922 test: modify the reason code from 204 to 15 in WIFI_CONN_0904
1. remove the step of testing station connect using a wrong password.
2019-01-15 22:37:49 +08:00
a62cbfec9a Merge branch 'bugfix/fix_psram_eid' into 'master'
bugfix(psram): fix psram size acquisition method, support esp32-pico chips

See merge request idf/esp-idf!3750
2019-01-15 17:44:51 +08:00
c2fb45b6ef http file_server : Fix README of example 2019-01-15 12:58:55 +05:30
a05fdd9c10 mesh: update libs
1. detect and fix root conflicts when router BSSID is not set.
2. when root can not connect to the router due to NO_MORE_STAS(reason code:5), root will stop re-connection and perform MESH_NWK_LOOK_FOR_NETWORK.
3. wifi: fix the disconnection caused by receiving a deauth frame from non-parent node during scanning.
4. fix routing table redundant issue.
5. modify the max routes limitation from 300 to 1000.
6. wifi: fix ap does not deauth sta which has not completed the 4-way handshake.
2019-01-15 14:26:05 +08:00
dbca85f962 Merge branch 'bugfix/examples_http_file_server_kconfig' into 'master'
HTTP File Server : Fix kconfig of example

See merge request idf/esp-idf!4110
2019-01-15 11:59:35 +08:00
72d2d2845d http_file_server : fix kconfig of example 2019-01-15 07:27:22 +05:30
1ee729336f Merge branch 'feature/http_server_wildcard_uri' into 'master'
Wildcard URI matching for http_server

See merge request idf/esp-idf!3973
2019-01-14 19:44:54 +08:00
1ad8b96fed Merge branch 'bugfix/mqtt_tests_local_broker' into 'master'
MQTT tests: connect to local broker when running in CI to make the tests more reliable

See merge request idf/esp-idf!3926
2019-01-14 16:29:43 +08:00
a1204f8b16 Add esp_tls_init_global_ca_store function to esp-tls, called from esp_tls_set_global_ca_store
Signed-off-by: Chirag Atal <chirag.atal@espressif.com>

Merges https://github.com/espressif/esp-idf/pull/2654
2019-01-14 08:25:56 +00:00
5127aa1976 HTTP Server : File server example added
This example demonstrates the capability of wildcard URI matching
allowing for a full fledged file server to be created using esp_http_server.
2019-01-14 12:03:54 +05:30
21878d1bbf HTTP Server : Unit test added for httpd_uri_match_wildcard() function as given in https://github.com/espressif/esp-idf/pull/2581#issuecomment-430788473 2019-01-14 08:59:55 +05:30
416c55e7f0 HTTP Server : Add uri_match_fn field in config structure which accepts custom URI matching functions of type httpd_uri_match_func_t and defaults to basic string compare when set to NULL.
Move static uri_matches() function to httpd_uri_match_wildcard() under esp_http_server.h and make it optional.
2019-01-14 08:59:55 +05:30
107f52c4fc HTTP Server : Add helper APIs for sending string content
Note : In future consider deprecating usage of -1 for setting
buffer length equal to string length in APIs httpd_resp_send()
and httpd_resp_send_chunk()
2019-01-14 08:36:18 +05:30
62f1f9f87a otatool, parttool: Fix permission denied error on Windows 2019-01-14 06:05:39 +08:00
b173cf2817 Merge branch 'bugfix/wifi_fix_incorrect_tx_complete_state' into 'master'
esp32: fix the incorrect tx complete state issue

See merge request idf/esp-idf!4083
2019-01-12 19:54:51 +08:00
4b234b0805 esp32: fix the incorrect tx complete state issue 2019-01-12 09:39:59 +08:00
c22e04f5b3 Merge branch 'bugfix/fix_ba_hardware_index_deleting_issue' into 'master'
esp32: fix wrongly deleting hardware BA index bug

See merge request idf/esp-idf!4101
2019-01-12 09:37:03 +08:00
d518a19d95 driver(ledc): fix ledc fade API and update the register header file
1. fix error when fading is too fast
2. fix error when setting duty and update immediately
3. update register header file to be in accord with TRM

closes https://github.com/espressif/esp-idf/issues/2903
2019-01-12 00:56:38 +08:00
b13a536041 mqtt tests: connect to local broker when running in CI to make the tests more reliable 2019-01-11 15:30:15 +01:00
72b3c6d6b8 Merge branch 'feature/check_kconfig' into 'master'
Check the style of Kconfig files

See merge request idf/esp-idf!3971
2019-01-11 21:14:27 +08:00
1e93c4e48b Merge branch 'feature/freemodbus_mb_inst_config' into 'master'
examples: freemodbus port serial slave increase MB_INST_MAX_SIZE

See merge request idf/esp-idf!4080
2019-01-11 20:14:46 +08:00
00eefe0ef3 Check & correct Kconfig files 2019-01-11 13:05:55 +01:00
e3a786f2cf examples: change max register area size to maximum value
esp-idf/components/freemodbus/modbus_controller/modbus_controller.c: The MB_INST_MAX_SIZE is changed to max value=(65535*2);
Update support for coils read into freemodbus.c;

TW#28143
Closes https://github.com/espressif/esp-idf/issues/2884
2019-01-11 09:49:11 +01:00
85f018edbc esp32: fix wrongly deleting hardware BA index bug
Fix the bug that hardware BA index will be wrongly removed in
WiFi mode WIFI_MODE_APSTA.
2019-01-11 16:31:01 +08:00
065b99f28b Merge branch 'bugfix/unix_makefile_build_on_windows' into 'master'
CMake: Fix build error when using Windows command line and MinGW generator

See merge request idf/esp-idf!3997
2019-01-11 16:09:28 +08:00
ad5d81df04 Merge branch 'feature/mqtt_before_connect_event' into 'master'
MQTT support for fragmented and packed messages

See merge request idf/esp-idf!3743
2019-01-11 15:38:23 +08:00
1da00b3555 Merge branch 'bugfix/Cmake_support_dhcp_state' into 'master'
Added Cmake support for dhcp_state

See merge request idf/esp-idf!3804
2019-01-11 15:23:40 +08:00
a3e3d00cf0 Merge branch 'test/unit_test_multi_devices_case_pass_param_by_signals' into 'master'
unit-test-app: support passing parameter with signals

See merge request idf/esp-idf!3960
2019-01-11 15:23:19 +08:00
cdbe1d4d5b Merge branch 'bugfix/mdns_udp_send_protected' into 'master'
mdns networking udp send protected

See merge request idf/esp-idf!3969
2019-01-11 15:20:09 +08:00
aa0c82b9cf Merge branch 'bugfix/vfs_ut_performance' into 'master'
VFS: move all functions into RAM which are called in the performance test

See merge request idf/esp-idf!4047
2019-01-11 14:09:02 +08:00
da15be6dd0 Merge branch 'bugfix/fatfs_perf_test' into 'master'
fatfs: bypass newlib buffering in performance test

See merge request idf/esp-idf!4076
2019-01-11 14:05:58 +08:00
082b13eb35 Merge branch 'feature/console_nvs' into 'master'
Added support for NVS in console example

See merge request idf/esp-idf!3633
2019-01-11 09:51:50 +08:00
602d102403 Added support for NVS in console example 2019-01-11 09:51:50 +08:00
82c5e648ad esp32: Fix wdt settings in esp_restart_noos
Fixed compatibility the new apps with the old bootloaders.

Closes: https://github.com/espressif/esp-idf/issues/2927
2019-01-10 20:22:26 +08:00
431653bba8 unit-test: fix 2 issues in unit test script:
1. Gitlab will only regard failure (not error) as failed case. Use log
failure instead of log error, to display all error msg in test result
2. fix failed case not recognized by test script when failed during
reset DUT
2019-01-10 09:51:17 +00:00
7c59207351 test: add test to check wifi conneciton between sta and softap 2019-01-10 09:51:17 +00:00
783cb692e8 unit-test-app: support passing parameter with signals 2019-01-10 09:51:17 +00:00
65d01336d3 Merge branch 'bugfix/python_virtualenv_detection' into 'master'
python:  Add check if current python is inside virtual environment

See merge request idf/esp-idf!4088
2019-01-10 15:52:54 +08:00
e3428adf87 Added Cmake support for dhcp_state 2019-01-10 07:51:54 +00:00
097597b978 Merge branch 'bugfix/wifi_defragmentation_only_for_data_frame' into 'master'
esp32: do defragmentation only for data and management frame

See merge request idf/esp-idf!4072
2019-01-09 15:54:05 +08:00
bd8733f74f feature(psram): add psram support for esp32-pico chip
1. esp32-pico use standard spi driver to access psram
2. for esp32-pico, flash and psram share the clock
3. for esp32-pico, psram cs io can be overwrite via menuconfig
2019-01-09 10:49:07 +08:00
e931fe9f57 Merge branch 'bugfix/fix_mbox_thread_safe_issue' into 'master'
tcpip: fix mbox thread-safe issue

See merge request idf/esp-idf!4002
2019-01-09 10:20:50 +08:00
0f61930872 python: Add check if current python is inside virtual environment 2019-01-08 12:21:33 +01:00
456efd3d57 Merge branch 'bugfix/timer_delete_dispatch_race' into 'master'
esp_timer: fix race between deleting the timer and executing the callback

See merge request idf/esp-idf!3992
2019-01-08 14:06:46 +08:00
1a492f0715 esp32: do defragmentation only for data and management frame
Check frame type before defragmentation. Only data and management frame can do
    defragmentation.
2019-01-07 20:38:16 +08:00
ea89b8c557 Merge branch 'bugfix/esp-http-client-fixes' into 'master'
Minor Bugfixes in esp_http_client, tcp_transport and simple_ota_example

See merge request idf/esp-idf!4023
2019-01-07 16:33:41 +08:00
e2ae69f6fb Minor Bugfixes in esp_http_client, tcp_transport and simple_ota_example 2019-01-07 16:33:41 +08:00
6933c103e5 lwip: fix mbox thread-safe issue
Fix a mbox free thread-safe issue that can lead to crash in sys_arch_mbox_fetch.
2019-01-07 13:38:11 +08:00
0700cde229 Merge branch 'bugfix/tw26890_update_wifi_api_guide' into 'master'
Bugfix/tw26890 update wifi api guide

See merge request idf/esp-idf!3630
2019-01-07 13:03:20 +08:00
91d6b3b989 Implement wildcard URI matching for http_server 2019-01-06 03:07:13 +05:30
5339c56bc5 fatfs: bypass newlib buffering in performance test 2019-01-05 14:13:49 +08:00
577f8d8527 Merge branch 'bugfix/fix_the_country_code_bug' into 'master'
wifi: fix the bug that STA can scan the channel out of the country regdomain range

See merge request idf/esp-idf!4065
2019-01-04 11:57:29 +08:00
c8e8044293 VFS: move all functions into RAM which are called in the performance test 2019-01-03 19:56:19 +01:00
f7d4a4be6a mdns: fix networking running udp_sendif from lwip thread 2019-01-03 14:28:29 +01:00
2d5e9d765f wifi: fix the bug that STA can scan the channel out of the country regdomain range 2019-01-03 17:55:06 +08:00
bed26be427 tcp_transport: modification of ws to read headers first in order to read the exact payload
closes https://github.com/espressif/esp-mqtt/issues/69
2019-01-03 09:22:40 +01:00
13bf307c85 mqtt: support for BEFORE_CONNECT event in idf
Updated examples to use new event id, idf to use mqtt with fixed retained, oversized messages
2019-01-03 09:22:24 +01:00
227f8daef3 esp_timer: do not allow deleting timers while callbacks are dispatched
timer_process_alarm function of esp_timer holds a spinlock for the
entire duration of its operation, except for the time when timer
callback function is called. It is possible that when
timer_process_alarm releases the spinlock, a higher priority task may
run and delete the timer. Then the execution will return to
timer_process_alarm, and this will either cause a crash, or undesired
execution of callback after the timer has been stopped or deleted.

To solve this problem, add a mutex which will prevent deletion of timers
while callbacks are being dispatched.
2019-01-03 07:14:53 +00:00
3c94b6e10a Merge branch 'test/fix_failed_to_download_in_example_test' into 'master'
test: fix failed to download in example test

See merge request idf/esp-idf!4061
2019-01-03 15:14:22 +08:00
c1022ac22b docs: udpate wifi document
Update WiFi document
2019-01-03 13:46:16 +08:00
86cc434ff1 test: get bin path from dut.app.flash_files instead of dut.download_config 2019-01-03 09:57:47 +08:00
a9bd658225 Merge branch 'doc/wifi_disclaimer' into 'master'
doc: wifi: Remove disclaimers

See merge request idf/esp-idf!4059
2019-01-03 07:45:26 +08:00
52d33e8cbd Merge branch 'bugfix/esp_attr_sdkconfig' into 'master'
esp32: esp_attr.h should include sdkconfig.h

See merge request idf/esp-idf!4058
2019-01-03 03:07:52 +08:00
aba555b349 Merge branch 'bugfix/pthread_detach' into 'master'
Bugfix in pthread_detach() implementation

See merge request idf/esp-idf!4038
2019-01-03 03:05:16 +08:00
1c54630eaa test: fix failed to download in example test:
1. example test uses auto detect flash size. we need to call
`detect_flash_size` before write flash
2. fix incorrect baudrate used: when using WROVER-Kits, it's likely that download with baudrate 921600
will fail. If we don't reset serial setting in decorator, 921600 will
become the default baudrate. This causes all the subsequent
communication fails
3. do hw reset after used esptool function
2019-01-02 20:49:03 +08:00
a027cab718 Merge branch 'bugfix/check_dependencies_msys' into 'master'
tools: Be more helpful to MSYS32 users with package installation

See merge request idf/esp-idf!3998
2019-01-02 16:47:31 +08:00
aca6e7b66a tools: Be more helpful to MSYS32 users with package installation 2019-01-02 07:53:57 +01:00
9f09431f07 doc: wifi: Remove disclaimers 2019-01-02 17:43:11 +11:00
4a42827c4a esp32: esp_attr.h should include sdkconfig.h
Reported on forum https://esp32.com/viewtopic.php?f=13&t=8669#p36395
2019-01-02 17:04:53 +11:00
c4963fc329 Merge branch 'bugfix/btdm_miscellaneous_modifications' into 'master'
component/bt: some miscellaneous modifications for BLE

See merge request idf/esp-idf!4032
2019-01-02 14:04:44 +08:00
6578673ed4 Merge branch 'feature/esp_platform_cmake_pr2601' into 'master'
cmake: Add ESP_PLATFORM in CMake build (PR 2601)

See merge request idf/esp-idf!3823
2019-01-02 14:03:52 +08:00
1de94b7b45 Merge branch 'bugfix/btdm_debug_numeric_comparison_mode' into 'master'
component/bt: modify the BLE example to make it run with "numeric comparison" mode

See merge request idf/esp-idf!3500
2019-01-02 14:02:58 +08:00
3fdb623ac5 Merge branch 'bugfix/fix_ci_example_test_not_executed' into 'master'
ci: init submodule in assign_test job

See merge request idf/esp-idf!4046
2019-01-02 13:59:47 +08:00
25ab173799 Merge branch 'bugfix/https_server_cpp_support' into 'master'
esp_https_server : add extern C directive for C++ support

See merge request idf/esp-idf!4054
2019-01-02 13:58:37 +08:00
9874bcc8e7 Merge branch 'bugfix/remove_gatts_warning' into 'master'
components/bt: Remove warnings in btc_gatts_arg_deep_copy() that are confusing

See merge request idf/esp-idf!4008
2019-01-02 12:00:10 +08:00
264a76c52a Merge branch 'feature/coex_unforce_wifi_if_no_data_buffered_in_beacon' into 'master'
esp32: unforce wifi if receiving beacon with no data buffered in dream state and reduce force receiving broadcast data time

See merge request idf/esp-idf!3963
2019-01-02 11:56:15 +08:00
a6f18bda47 https_server : add extern C directive and other minor changes for C++ support
Closes https://github.com/espressif/esp-idf/issues/2887
2018-12-31 15:12:42 +05:30
6ae12d20ab Merge branch 'doc/btdm_modem_sleep_EVED_mode' into 'master'
doc/btdm_modem_sleep_EVED_mode

See merge request idf/esp-idf!4017
2018-12-29 10:27:28 +08:00
529ba78c8c Merge branch 'bugfix/lwip_add_hostname_option_in_dhcp_discover' into 'master'
add hostname option in dhcp discover

See merge request idf/esp-idf!3937
2018-12-28 20:26:11 +08:00
610d829ec1 ci: init submodule in assign_test job:
esptool is used by example test, we need to init submodule
2018-12-28 17:40:21 +08:00
f5e8e05282 pthread tests : test case added for detach functionality 2018-12-28 14:41:24 +05:30
36c956070b esp32: unforce wifi if receiving beacon with no data buffered in dream
state and reduce force receiving broadcast data time

    1. If receiving beacon which indicates that there is no data buffered,
    do not force to receive WiFi data.
    2. If receiving beacon which indicates that there is broadcast data
    buffered, reduce the time to force receiving broadcast data.
2018-12-28 17:09:45 +08:00
97eecfa1b2 Merge branch 'mesh/bugfix_v3.3_cont' into 'master'
mesh: bugfix

See merge request idf/esp-idf!4009
2018-12-28 14:08:18 +08:00
d816578e3a bugfix/pthread : pthread_detach implementation fixed to correctly delete pthread object when invoked after task completion 2018-12-27 18:47:46 +05:30
68626ed494 component/bt: some miscellaneous modifications for BLE 2018-12-26 20:36:33 +08:00
e3833999ea mesh: update libs
1. when no parent is found, send probe request via broadcast.
2. fix memory leak caused by the remove announcement being sent is not released when esp_mesh_stop() is called.
3. fix modify IE encrypt after mesh is started.
4. ignore esp_mesh_connect() if mesh automatic reconnection is enabled.
5. fix reason is cleared before vote is done.
2018-12-26 16:10:55 +08:00
1023ff73fb Merge branch 'bugfix/confserver_on_windows' into 'master'
Fix unable to start confserver on windows

See merge request idf/esp-idf!4022
2018-12-25 21:00:39 +08:00
50fa7c5a89 cmake: fix unable to start confserver on windows 2018-12-23 19:52:58 +08:00
74eae4b50e component/bt: add more information and description for bluetooth modem sleep
Add remark that "EVED" mode for bluetooth modem sleep is only used for internal test
2018-12-21 19:30:20 +08:00
db8bc3eea7 Merge branch 'doc/cmake_branch' into 'master'
Make CMake Getting Started guides version-aware

See merge request idf/esp-idf!3984
2018-12-21 17:36:48 +08:00
1f794cfff1 Merge branch 'mesh/bugfix_v3.3' into 'master'
wifi: fix STAs can not detect disconnection from AP when encrypt transmission is used

See merge request idf/esp-idf!3907
2018-12-21 17:27:11 +08:00
88150cb9bb docs: Make Getting Started (CMake) guides version-aware
Also clean up some changes in Chinese CMake guide which were not propagated from the English guide.
2018-12-21 19:13:20 +11:00
39dc1b4ff3 doc: cmake: Add description of ESP_PLATFORM variable
Ref: https://github.com/espressif/esp-idf/pull/2601
2018-12-21 19:00:12 +11:00
4782aafc4c cmake: Fail CMake if expand_requirements.cmake fails 2018-12-21 18:59:28 +11:00
849088d467 cmake: Add ESP_PLATFORM in idf_set_variables() as well
(Handles case where idf.py is not being used.)

Ref https://github.com/espressif/esp-idf/pull/2601
2018-12-21 18:59:28 +11:00
25333b59c2 Add ESP_PLATFORM to build environment.
Merges https://github.com/espressif/esp-idf/pull/2601
2018-12-21 18:59:28 +11:00
88dc626fd7 Merge branch 'feature/example_defconfig_ci' into 'master'
ci, examples: use sdkconfig.ci as an extra defaults file, if present

See merge request idf/esp-idf!3934
2018-12-21 12:14:57 +08:00
71c90ac456 Merge branch 'feature/freemodbus_move_rs485_mode_control' into 'master'
examples: freemodbus port serial slave move uart mode settings into example

See merge request idf/esp-idf!3870
2018-12-21 12:13:28 +08:00
1cb65b3e5f Merge branch 'bugfix/bbpll_wakeup_reset_2' into 'master'
soc/rtc: reset another BBPLL related register

See merge request idf/esp-idf!3947
2018-12-21 12:09:18 +08:00
75ef4b2242 Merge branch 'bugfix/ext_ram_bss_align' into 'master'
Fix crash if ext_ram_bss is unaligned length

See merge request idf/esp-idf!4000
2018-12-21 12:06:58 +08:00
cd29cffa20 Merge branch 'bugfix/mdns_crash_when_query' into 'master'
mdns issues when query

See merge request idf/esp-idf!3910
2018-12-21 11:57:56 +08:00
16854e1f40 Merge branch 'bugfix/cmake_list_component_config_alphabetically' into 'master'
List menuconfig component config items alphabetically via component name

See merge request idf/esp-idf!3939
2018-12-21 07:50:31 +08:00
78487123bf Merge branch 'feature/cut_len_for_header_struct' into 'master'
build: Add trimming PROJECT_VER and PROJECT_NAME vars

See merge request idf/esp-idf!3927
2018-12-21 07:45:22 +08:00
aafaf155a8 Merge branch 'bugfix/py_imp_deprecated' into 'master'
Fix Python3 deprecation warning for the imp module & run multi-device tests only under Python 2

See merge request idf/esp-idf!3972
2018-12-21 07:44:22 +08:00
7254476acb docs: list kconfig components alphabetically via component name 2018-12-20 19:57:46 +08:00
0ad452e7b7 ci: Multi-device tests cannot run under Python 3 2018-12-20 12:44:33 +01:00
4ca2b149e5 examples, tools: Fix Python3 deprecation warning for the imp module 2018-12-20 12:44:33 +01:00
16c88bf320 cmake: list items in component config via alphabetical component name 2018-12-20 19:08:00 +08:00
d3799c8682 mbedtls: fix unix makefile build on windows command line 2018-12-20 18:23:55 +08:00
11a5fb8ab6 components/bt: Remove warnings in btc_gatts_arg_deep_copy() that are confusing
Fixes: https://github.com/espressif/esp-idf/issues/2811

The warning print "NULL value" is only kept for event
BTC_GATTS_ACT_SET_ATTR_VALUE as this can be useful in case user forgets
to set attribute value

Signed-off-by: Hrishikesh Dhayagude <hrishi@espressif.com>
2018-12-20 14:20:56 +05:30
65142bc59e Merge branch 'bugfix/btdm_configure_ssp_in_menuconfig' into 'master'
components/bt: Configure SSP in menuconfig and fix two bugs

See merge request idf/esp-idf!3892
2018-12-20 15:31:08 +08:00
e2fbee9f9f Merge branch 'docs/watchpoints_config_gdbinit' into 'master'
docs: Adds watchpoints limit configuration to example gdbinit

See merge request idf/esp-idf!3502
2018-12-20 15:13:56 +08:00
f8910cecce Merge branch 'bugfix/btdm_fix_crash_adv_scan_coex' into 'master'
component/bt: fix crash when adv and scan coex and optimize duplicate scan

See merge request idf/esp-idf!3975
2018-12-20 14:59:20 +08:00
3dcc0ae908 docs: Adds watchpoints limit configuration to example gdbinit
Closes https://github.com/espressif/esp-idf/issues/2335
2018-12-20 06:09:23 +00:00
ed8c5a18cb mesh: update libs
1. fix STAs can not detect disconnection from AP when encrypt transmission is used.
2. fix can not find hidden APs.
3. for root, modify the active scan time to 120ms.
4. remove all rc when clear parent Wi-Fi configuration.
5. fix error in checking Wi-Fi commit ID.
2018-12-20 12:11:30 +08:00
d601ed8023 components/bt: Fix two bugs about pairing
1. Fix Legacy Pairing failed without remote device name
2. Fix discovery no device after disabling SSP
2018-12-20 11:10:52 +08:00
9c48528fcc components/bt: Configure SSP in menuconfig 2018-12-20 11:10:27 +08:00
7b13308549 Merge branch 'feature/pystyle_tools' into 'master'
tools: Fix the Python coding style

See merge request idf/esp-idf!3901
2018-12-20 10:36:01 +08:00
e1a1c7f17c psram: Use 8-bit type for _ext_ram_bss_start/_ext_ram_bss_end
Fixes pointer arithmetic when printing size of remaining heap
2018-12-20 01:40:05 +00:00
b1f3586f7e multi_heap: Fix bug when start of heap is unaligned
Alignment was accounted for in one place only.

TW27954
2018-12-20 01:40:05 +00:00
db243d092c linker external bss: Align end of ext bss to word boundary
TW27954
2018-12-20 01:40:05 +00:00
ee7b660163 Merge branch 'bugfix/windows_install_prerequisites_idf_path' into 'master'
windows_install_prerequisites: Fix bug if IDF_PATH is not set

See merge request idf/esp-idf!3874
2018-12-20 09:19:03 +08:00
14d7a63459 Merge branch 'bugfix/wifi_rx_fail' into 'master'
wifi: fix wifi rx fails

See merge request idf/esp-idf!3976
2018-12-19 19:12:36 +08:00
bfa9610f58 tools: Fix the Python coding style 2018-12-19 11:56:24 +01:00
5379c941b8 examples: freemodbus port serial slave move uart mode settings into example
Update freemodbus component file esp-idf/components/freemodbus/port/portserial.c to remove UART mode settings;
Move UART mode settings into esp-idf/examples/protocols/modbus_slave/main/freemodbus.c
Move UART pin settings from Component config into example Kconfig.projbuild file
Move setup of UART port pins from freemodbus component into example file

TW#27721
Closes https://github.com/espressif/esp-idf/issues/2784#issuecomment-443600157
2018-12-19 08:03:18 +00:00
d453cce1b3 Merge branch 'bugfix/individual_custom_sections' into 'master'
linker: When using section type attributes, create unique sections

See merge request idf/esp-idf!3920
2018-12-19 15:18:26 +08:00
fe71ec413d Merge branch 'feature/app_rollback_example' into 'master'
example: App rollback example

See merge request idf/esp-idf!3561
2018-12-19 14:41:54 +08:00
ad200227d2 Merge branch 'feature/add_rollback_flags' into 'master'
bootloader/app_update: Add a support of an app rollback.

See merge request idf/esp-idf!3547
2018-12-19 14:28:11 +08:00
769bd4a4af linker: When using section type attributes, create unique sections
* Prevents section type conflict errors if (say) const & non-const data
  is put into the same section (ie with DRAM_ATTR)

* Allows linker --gc-sections to remove unused custom sections
2018-12-19 04:42:04 +00:00
6dba472678 Merge branch 'bugfix/unit_test_keep_serial_port_open' into 'master'
unit test: Keep serial port open when running esptool

See merge request idf/esp-idf!3889
2018-12-19 07:06:17 +08:00
2b83460814 wifi: fix wifi rx fails
1. add MAC reset.
2. update libphy.a from 4000 to 4006.
2018-12-18 23:39:54 +08:00
919a36b6b5 driver(gpio): fixed digital gpio unable hold bug during deep-sleep. 2018-12-18 17:04:12 +08:00
51133083f6 app_update: Add EXCLUDE option
Added two options for PROJECT_NAME and PROJECT_VER variables to exclude them from the firmware image.

Closes: https://github.com/espressif/esp-idf/issues/2803
2018-12-18 15:58:47 +08:00
7b68e346fa build: Fix a warning from git describe
Fixed a fatal message when run `git describe`.
2018-12-18 15:58:22 +08:00
f58f39e2f0 Merge branch 'bugfix/clear_intr_status_when_init_hwtimer' into 'master'
bugfix(timer_group):  fixed bug that init hw_timer caused cresh after system soft reset

See merge request idf/esp-idf!3945
2018-12-18 15:21:23 +08:00
ca3641cdd5 Merge branch 'bugfix/fix_aws_iot_example_root_ca' into 'master'
examples: update default root-ca for aws_iot demos

See merge request idf/esp-idf!3929
2018-12-18 14:47:44 +08:00
0fa31d3e31 bugfix(simple_ota): Compatible with V3.1 and V3.2 2018-12-18 14:41:12 +08:00
9a9a319207 examples: update default root-ca for aws_iot demos 2018-12-18 11:05:16 +05:30
be567d3eb5 driver(rmt): Fixed some RMT related issues.
1. Add missing get function to RMT API: rmt_get_idle_level().
2. Suppress error message from rmt_wait_tx_done() if wait_time==0 (allows for polling).
3. Remove the blank lines between parameter lists.

Merges https://github.com/espressif/esp-idf/pull/2666
2018-12-18 13:32:39 +08:00
42dcdecce2 Merge branch 'doc/network' into 'master'
docs: Rearrange wifi & ethernet docs under "Networking", add tcpip_adapter docs

See merge request idf/esp-idf!3890
2018-12-18 13:15:05 +08:00
e22c0cce45 driver(timer_group): fixed bug that init hw_timer caused cresh after system soft reset
closes https://github.com/espressif/esp-idf/issues/2756
2018-12-18 13:10:15 +08:00
3d03c2b7fd doc zh_CN: Remove redundant --branch feature/cmake
Forgot to remove when updating the English version.

Closes https://github.com/espressif/esp-idf/issues/2834
2018-12-18 15:51:37 +11:00
1607812fef Merge branch 'bugfix/btdm_fix_receive_adv_pkt_when_duplicate_scan_enabled' into 'master'
Component/bt: fix receive adv pkt when enable duplicate scan

See merge request idf/esp-idf!3783
2018-12-18 11:44:38 +08:00
fd520a94d7 Merge branch 'bugfix/tw27963_fix_wifi_stop_bug' into 'master'
esp32: fix WiFi stop bug in WiFi/BT coexist mode

See merge request idf/esp-idf!3979
2018-12-18 11:40:28 +08:00
9eb2287729 Merge branch 'bugfix/btdm_prevent_light_sleep' into 'master'
bugfix/btdm_prevent_light_sleep

See merge request idf/esp-idf!3980
2018-12-18 11:34:50 +08:00
b3249d56f3 unit tests: Fix retrying with a new baud rate in IDFDUT.start_app() 2018-12-18 14:09:29 +11:00
f6e857c2b9 unit tests: Keep serial port open when running esptool
* Call esptool directly not via subprocess
* Use the same serial port instance for listener thread and esptool
* Includes some refactoring for encapsulation of App vs DUT members
2018-12-18 14:09:29 +11:00
0a27cfa850 unit_test.py: Allow importing tiny-test-fw from IDF_PATH as well as TEST_FW_PATH 2018-12-18 14:09:05 +11:00
9a08e49ca9 tcpip_adapter: Rename DHCP option types to include DHCP in the type name 2018-12-18 14:07:43 +11:00
ede47ed33a tcpip_adapter: Update header descriptions, constify some parameters 2018-12-18 14:07:43 +11:00
b240a181b7 docs: Add option to redirect documentation pages which have moved 2018-12-18 14:07:43 +11:00
d8b625a32c Merge branch 'feature/pystyle_components' into 'master'
components: Correct the Python coding style

See merge request idf/esp-idf!3882
2018-12-18 11:03:03 +08:00
15a7ad78f7 Merge branch 'feature/rename_main_instructions' into 'master'
Add instructions on how to rename main component

See merge request idf/esp-idf!3933
2018-12-18 08:08:20 +08:00
972cf1b416 Merge branch 'bugfix/ldgen_make_build_regression' into 'master'
Fix 'command not found' error when building on linux with make

See merge request idf/esp-idf!3977
2018-12-18 06:41:23 +08:00
b3380b79d1 esp32: fix WiFi stop bug in WiFi/BT coexist mode
This fix includes following changes:
1. Fix the bug that esp_restart()/esp_wifi_stop() sometimes fails in WiFi/BT coexist mode.
2. Add a timer for WiFi stop and stop WiFi forcibly once the timer expires.
2018-12-17 20:33:31 +08:00
561021e7f7 component/bt: use a pm_lock to prevent light sleep when bluetooth is enabled due to current imcompatibility 2018-12-17 19:54:57 +08:00
6bb68a5a75 mdns: fixed static memory leak 2018-12-17 12:09:23 +01:00
c8cb4cd3c8 mdns: check all mallocs for failure and add default hook to log error with free heap
solves crash about _mdns_result_txt_create when stress test
2018-12-17 12:09:11 +01:00
05e84cad1e Component/bt: fix receive adv pkt when enable duplicate scan 2018-12-17 15:49:04 +08:00
e1e6c1ae0a components: Correct the Python coding style 2018-12-17 07:52:38 +01:00
911d2352ac ci: detect command not found build errors 2018-12-17 14:04:49 +08:00
af5cff0589 cmake: fix regression with linux make builds
Closes https://github.com/espressif/esp-idf/issues/2839
2018-12-17 14:04:49 +08:00
c69907a54b Merge branch 'bugfix/ota_magic_byte_issue' into 'master'
bugfix/ota_magic_byte_issue: Fixes OTA magic byte error

See merge request idf/esp-idf!3936
2018-12-17 13:19:44 +08:00
778b7b1f5f Merge branch 'bugfix/does_my_chip_have_vref_in_efuse' into 'master'
Update information on ADC's eFuse Vref. Inspired by https://esp32.com/viewtopic.php?f=12&t=6832.

See merge request idf/esp-idf!3931
2018-12-17 13:18:32 +08:00
e53f701577 Update information on ADC's eFuse Vref. Inspired by https://esp32.com/viewtopic.php?f=12&t=6832. 2018-12-17 13:18:32 +08:00
480fb72b46 Merge branch 'bugfix/prov_example_tests' into 'master'
Fix provisioning example tests

See merge request idf/esp-idf!3667
2018-12-17 13:06:44 +08:00
1d4bb7cc4d bugfix/ota_magic_byte_issue: Fix indent and replace constant by macro
Replace 0xE9 by ESP_IMAGE_HEADER_MAGIC.
2018-12-17 09:56:18 +05:30
3f850f1888 Merge branch 'doc/translation_establish-serial-connection_wangfang' into 'master'
Doc/translation establish serial connection wangfang

See merge request idf/esp-idf!3731
2018-12-17 11:49:35 +08:00
e7bc89774d Doc/translation establish serial connection wangfang 2018-12-17 11:49:35 +08:00
zwj
90a451c181 fix crash when adv and scan coex and optimize duplicate scan 2018-12-17 11:40:50 +08:00
6a4955ef74 doc: Rearrange wifi & ethernet docs into a common "network" doc 2018-12-17 14:18:09 +11:00
5436be94b6 Merge branch 'bugfix/btdm_assert_ble_65536' into 'master'
fix bug that there's very low ratio to cause BLE assert(65536, 0) in rwble.c at line 222

See merge request idf/esp-idf!3966
2018-12-14 20:29:04 +08:00
da2116f55c Merge branch 'bugfix/build_system_test_fixes_windows' into 'master'
Various fixes for build tests on Windows

See merge request idf/esp-idf!3944
2018-12-14 20:19:51 +08:00
1a4fa06125 fix bug that there's very low ratio to cause BLE assert(65536, 0) in rwble.c at line 222 2018-12-14 17:38:52 +08:00
6cb37ecc57 Merge branch 'bugfix/btdm_modem_sleep_cowork_with_DFS' into 'master'
bugfix/btdm_modem_sleep_cowork_with_DFS

See merge request idf/esp-idf!3797
2018-12-14 14:03:56 +08:00
b4299433bd component/bt: add DRAM_ATTR attribute to global variables(bss segment) in bt.c which can be accessed in ISR 2018-12-14 11:29:00 +08:00
bc30569842 Merge branch 'bufix/btdm_fix_save_key_when_auth_mode_without_bond' into 'master'
Component/bt: fix save keys when auth mode without bond

See merge request idf/esp-idf!3782
2018-12-14 10:35:14 +08:00
d3938c8a66 ldgen: fix issue when not built in msys2
Closes https://github.com/espressif/esp-idf/issues/2812
2018-12-13 20:44:29 +08:00
72cd1ac43f mbedtls: fix issue with non idf.py build on windows 2018-12-13 20:44:29 +08:00
5d6e21795b tools: fix makefile converter windows path issue 2018-12-13 18:20:51 +08:00
5511541d20 ci: fix build test with IDF_PATH unset on Windows 2018-12-13 18:20:51 +08:00
58a200e70c Merge branch 'bugfix/btdm_fix_auth_mode_error_when_reconnection_in_smp' into 'master'
Component/bt: fix auth_mode error when reconnection in SMP

See merge request idf/esp-idf!3856
2018-12-13 17:04:12 +08:00
7c6211fe45 Component/bt: fix save keys when auth mode without bond 2018-12-13 15:43:31 +08:00
dc194b565d Merge branch 'docs/btdm_ble_ibeacon_example' into 'master'
docs: refactor BLE iBeacon demo readme

See merge request idf/esp-idf!2905
2018-12-13 15:31:30 +08:00
ded4efced1 Merge branch 'doc/add_coap_readme' into 'master'
doc: add CoAP README.md

See merge request idf/esp-idf!2643
2018-12-13 15:22:50 +08:00
c03f84cecf add hostname option in dhcp discover
Hostname option has been removed from dhcp discover since IDFv3.2.
But it remains in dhcp request due to which ESP32 can not get IPv4 address
from some APs. Re-add hostname option to dhcp discover to solve this issue.
2018-12-13 07:05:46 +00:00
d75ab3208f Merge branch 'test/add_case_to_detect_ds2ds_issue' into 'master'
test: add case to detect ds2ds issue

See merge request idf/esp-idf!3834
2018-12-13 14:49:30 +08:00
66a9762b2a esp_prov : python coding style fixed as per conventions 2018-12-13 11:03:43 +05:30
5e0d222188 esp_prov : Added config option for enabling exception throw from within APIs
Example tests updated to enable exception throwing feature of esp_prov
2018-12-13 11:01:33 +05:30
3fe8065b7f provisioning : tweak example test timeouts to reduce failures 2018-12-13 11:01:33 +05:30
647145a734 Merge branch 'bugfix/gcc8_compatibility' into 'master'
Support for GCC8 compatibility - 2

See merge request idf/esp-idf!3677
2018-12-13 12:57:00 +08:00
f88f06710e example: Avoid a fallthrough 2018-12-13 12:29:27 +08:00
240c343805 cmake: Put a variable to the cache to have access one in other cmake files 2018-12-13 12:29:27 +08:00
eb13758d1a example: Fix unused identifier warnings 2018-12-13 12:29:27 +08:00
5e6509232e example: Fix a truncation warning 2018-12-13 12:29:27 +08:00
bfd22a24da Merge branch 'bugfix/btdm_fix_accept_specified_sec_auth' into 'master'
Component/bt: fix accept specified sec auth error

See merge request idf/esp-idf!3770
2018-12-13 11:19:53 +08:00
df20a39faf Merge branch 'bugfix/idf_monitor_without_toolchain' into 'master'
tools: Print useful error message from idf_monitor when toolchain isn't available

See merge request idf/esp-idf!3862
2018-12-12 16:20:14 +08:00
b0a43f07d9 tools: Print useful error message from idf_monitor when toolchain isn't available 2018-12-12 08:22:45 +01:00
0cf8d1380e soc/rtc: reset another BBPLL related register
Follow-up to b21ffc8a: an additional register needs to be reset.

Ref. https://github.com/espressif/esp-idf/issues/2711
2018-12-12 12:24:48 +08:00
a6b2b73f03 mdns: resolve memory leak when txt record received multiple times 2018-12-11 21:59:44 +01:00
31163f02d5 mdns: skip sending search when finished, not properly locked timer task 2018-12-11 21:56:01 +01:00
59f34461d7 component/bt: bugfix of bluetooth modem sleep not being able to work with Dynamic Frequency Scaling
1. start an esp_timer on entering sleep to acquire pm_lock before wake up from modem sleep
2. decrease the clock division of XTAL fed to bluetooth low power clock from 32us to 2us period to allow to work under 240MHz Max CPU frequency
3. decrease the minimum sleep duration threshold to allow shorter bluetooth modem sleep period, especially for BLE with short connection interval
4. reconfigure bluetooth baseband(BT-BB) settings after PHY/RF init upon waking up from modem sleep to avoid packet RX/TX performance degradation
2018-12-11 16:49:01 +08:00
cf6b79581b example: Add a support of an app rollback 2018-12-11 11:58:42 +08:00
dde1fd9b94 bootloader: Add support flags for rollback app
Added
* Set actual ota_seq if both ota are init or incorrect.
* Description of rollback
* UT tests

Closes TW15459
2018-12-11 11:54:21 +08:00
c0f5e58bdc build: Add trimming PROJECT_VER and PROJECT_NAME vars 2018-12-11 11:23:53 +08:00
1e20664952 Merge branch 'bugfix/issues_from_github' into 'master'
Docs: Minor PRs from GitHub

See merge request idf/esp-idf!3930
2018-12-11 11:22:33 +08:00
19cf1bb7db Typo fix in mqtt.rst.
changed 'defalut' to 'default'

Merges https://github.com/espressif/esp-idf/pull/2780
2018-12-10 19:13:01 +01:00
bb4936b4d5 Add missing dependency.
Merges https://github.com/espressif/esp-idf/pull/2781
2018-12-10 19:12:46 +01:00
55d5ee1e79 bugfix/ota_magic_byte_issue: Fixes OTA magic byte error
On enabling flash encryption, OTA fails with magic byte error in the second chunk
if the http data is split into two or more chunks and first chunk is less than 16.
2018-12-10 17:16:38 +05:30
230147a169 Merge branch 'bugfix/nvs_test_compile_err' into 'master'
nvs_flash: Fix compilation of host testcases when g++-8.x is used.

See merge request idf/esp-idf!3699
2018-12-10 17:42:43 +08:00
7ecdb1bb27 ci, examples: use sdkconfig.ci as an extra defaults file, if present
- Allows placing CI-specific settings into sdkconfig.ci file
- Allows substituting environment variables in sdkconfig.ci
2018-12-10 16:29:24 +08:00
4d898b4655 Merge branch 'bugfix/extra_cflags' into 'master'
cmake: add EXTRA_CFLAGS and clean warnings

See merge request idf/esp-idf!3805
2018-12-10 13:28:12 +08:00
81bf07ed4d test: Fix some unused identifier warnings 2018-12-10 12:34:16 +08:00
0652a4b714 ci: Use more pedantic checking for examples and ut 2018-12-10 12:34:16 +08:00
ac18b1024a cmake: Add support for EXTRA_CFLAGS and EXTRA_CXXFLAGS 2018-12-10 12:34:16 +08:00
fd44580e52 docs: add section on renaming main component 2018-12-10 12:30:08 +08:00
26a6b3b243 Merge branch 'feature/unity_set_test_from_gdb' into 'master'
unity: add a hook to run test from gdb session

See merge request idf/esp-idf!3916
2018-12-10 12:25:39 +08:00
23b6d40c53 Merge branch 'feature/illegal_instruction_panic_info' into 'master'
panic: dump some instruction memory on IllegalInstruction exception

See merge request idf/esp-idf!3924
2018-12-10 12:24:26 +08:00
d2729840e0 Merge branch 'doc/i2s_example_doc_improve' into 'master'
doc(i2s): update README.md file of i2s related examples.

See merge request idf/esp-idf!2664
2018-12-10 11:23:11 +08:00
67d95c609b doc(i2s): update README.md file of i2s related examples. 2018-12-10 10:33:41 +08:00
fc37dc1944 nvs_flash: Fix compilation of host testcases when g++-8.x is used.
When std::bind is used, it requires inclusion of <functional> header.
This was not mandatory with earlier versions of g++ (4.x), may be because they
had experimental support for c++11.
2018-12-07 09:40:45 +00:00
04c511c9b5 panic: dump some instruction memory on IllegalInstruction exception 2018-12-07 16:50:00 +08:00
646d36c728 Merge branch 'feature/nmea-parser' into 'master'
NMEA0183 Parser

See merge request idf/esp-idf!3866
2018-12-07 14:32:04 +08:00
6c868c4bee Merge branch 'bugfix/bbpll_wakeup_reset' into 'master'
soc/rtc: reset BBPLL config when enabling it

See merge request idf/esp-idf!3911
2018-12-07 14:21:59 +08:00
8b885fb935 Merge branch 'docs/add_note_for_ulp_set_wakeup_period' into 'master'
ulp: add note regarding limitation of ulp_set_wakeup_period in deep sleep mode

See merge request idf/esp-idf!3796
2018-12-07 14:07:14 +08:00
def2a13297 Merge branch 'bugfix/app_version' into 'master'
app_update: Fix esp_app_desc unused var for Cmake

See merge request idf/esp-idf!3891
2018-12-07 14:06:17 +08:00
423d7b9a65 Merge branch 'bugfix/sysview_cache_err' into 'master'
app_trace: linker fragment fixes

See merge request idf/esp-idf!3835
2018-12-07 14:04:28 +08:00
893cb83343 Merge branch 'bugfix/vfs_unregister_nested' into 'master'
vfs: fix unregister removing top level VFS instead of nested

See merge request idf/esp-idf!3917
2018-12-07 14:03:34 +08:00
4e77efc36b Merge branch 'bugfix/clang_compatibility' into 'master'
clang compatibility fixes

See merge request idf/esp-idf!3912
2018-12-07 14:03:05 +08:00
b1630084d1 Merge branch 'bugfix/btdm_assert_ble_32768' into 'master'
fix bug that there's very low ratio to cause BLE assert(32768, 0) in rwble.c at line 222

See merge request idf/esp-idf!3915
2018-12-07 13:54:11 +08:00
d4cb14bc65 app_update: Fix esp_app_desc unused var for Cmake 2018-12-07 12:04:40 +08:00
8b7b5821c7 example: add nmea0183 parser example
Add NMEA0183 Parser example to illustrate how to use uart event driver together with esp event library to get GPS information.
2018-12-07 10:57:34 +08:00
aae955d1ae Merge branch 'docs/mesh_channel_switch' into 'master'
docs: Add documentation about ESP-MESH channel switching and self organized behavior

See merge request idf/esp-idf!3854
2018-12-07 09:24:51 +08:00
560e92b101 Merge branch 'feature/pystyle_examples' into 'master'
examples: Fix Python coding style

See merge request idf/esp-idf!3881
2018-12-07 09:12:56 +08:00
e224b8a43a Merge branch 'bugfix/ci_tag_for_cmake_linter' into 'master'
ci: A small CI stabilizing fix

See merge request idf/esp-idf!3801
2018-12-07 02:39:51 +08:00
3c8a2a099a ci: Fix the choice of runner for the CMake verification, and change .check_job_template tag to host_test 2018-12-07 00:52:20 +08:00
812a49bd0d Merge branch 'bugfix/shell_exit' into 'master'
scripts: Fix shell exit

See merge request idf/esp-idf!3908
2018-12-07 00:49:52 +08:00
61beb16225 vfs: fix unregister removing top level VFS instead of nested
Credits @neoniousTR.

Fixes https://github.com/espressif/esp-idf/pull/2770
2018-12-06 19:43:49 +08:00
a646ea7993 unity: add a hook to run test from gdb session 2018-12-06 19:37:51 +08:00
357f2264e6 fix bug that there's very low ratio to cause BLE assert(32768, 0) in rwble.c at line 222 2018-12-06 16:54:14 +08:00
57c54f96f1 examples: Fix Python coding style 2018-12-06 09:34:33 +01:00
3150920cb4 heap: __builtin_return_address argument has to be a literal value
Clang does not accept const int as an argument of __builtin_return_address.

Ref LLVM-14
2018-12-06 16:14:14 +08:00
94f2dd27d4 examples/console: don’t use raw string literals in C code
Raw string literals are a C++ feature, and GCC supports them for C as
an extension. Clang doesn’t support them.

Ref LLVM-11
2018-12-06 16:14:14 +08:00
271a2e8e97 console, ulp: don’t use nested functions
These are not supported by clang

Ref LLVM-12
2018-12-06 16:12:47 +08:00
a36d714d1a Merge branch 'doc/adc_example_doc_improve' into 'master'
doc(adc): Update README.md file of adc example.

See merge request idf/esp-idf!2665
2018-12-06 15:22:50 +08:00
cbaa4ade42 Merge branch 'doc/pcnt_example_doc_improve' into 'master'
doc(pcnt): Update pcnt example README.md file.

See merge request idf/esp-idf!2666
2018-12-06 15:20:46 +08:00
b21ffc8a0c soc/rtc: reset BBPLL configuration after enabling it
A workaround to reset BBPLL configuration after light sleep. Fixes the
issue that Wi-Fi can not receive packets after waking up from light
sleep.

Ref. https://github.com/espressif/esp-idf/issues/2711
2018-12-06 14:43:24 +08:00
8c7a6be627 Merge branch 'bugfix/ldgen_make_escaping' into 'master'
make/ldgen: Fix generation of ldgen.section_infos file when shell is bash

See merge request idf/esp-idf!3893
2018-12-06 13:27:36 +08:00
54532c6189 build example tests: Use portable "sed -i" form 2018-12-06 15:28:18 +11:00
8ab2f20c3a ldgen make: Use "sed -E" for extended POSIX regular expression syntax w/ BSD sed 2018-12-06 15:28:18 +11:00
8e9359b4fd doc(adc): Update README.md file of adc example. 2018-12-06 12:20:29 +08:00
062c64fca0 doc(pcnt): Update pcnt example README.md file. 2018-12-06 12:16:45 +08:00
ef4a4105f4 make/ldgen: Fix generation of ldgen.section_infos file when shell is bash
bash doesn't escape by default from "echo", so use "printf"

Closes https://github.com/espressif/esp-idf/pull/2797
Closes https://github.com/espressif/esp-idf/issues/2796
2018-12-06 10:20:35 +11:00
ff71ea9202 Merge branch 'bugfix/win_path_print' into 'master'
tools: correct printed path on MS Win

See merge request idf/esp-idf!3853
2018-12-06 07:18:32 +08:00
34109c4171 scripts: Fix shell exit. Really exit from current process, not from child process 2018-12-05 21:25:16 +08:00
97a3617a27 Merge branch 'bugfix/docs_pystyle' into 'master'
docs: Correct Python coding style

See merge request idf/esp-idf!3859
2018-12-05 17:43:20 +08:00
f1b4c18c2a Merge branch 'bugfix/idfpy_monitor_msys' into 'master'
tools: fix idf.py monitor for MSYS

Closes #51

See merge request idf/esp-idf!3839
2018-12-05 17:39:36 +08:00
d3b3f1e4a3 Merge branch 'bugfix/ethernet_enable_second_failure' into 'master'
fix ethernet phy init timeout

See merge request idf/esp-idf!3879
2018-12-05 16:12:19 +08:00
9f8587360c ldgen: Fix crash if --sections argument not supplied 2018-12-05 18:29:28 +11:00
b56ed1a99e docs: Correct Python coding style 2018-12-05 08:22:33 +01:00
4749b118bc tools: fix idf.py monitor for MSYS 2018-12-05 07:52:25 +01:00
eb27686416 Merge branch 'bugfix/btdm_bugs_caused_by_coex' into 'master'
component/bt and esp32:  fix two bluetooth bugs that caused by coexist module

See merge request idf/esp-idf!3860
2018-12-05 14:17:14 +08:00
e92e028679 Merge branch 'feature/sdio_example_gpio_doc' into 'master'
Enhanced readability in README.md (port from Github PR)

See merge request idf/esp-idf!3883
2018-12-05 13:46:33 +08:00
37975c186d Merge branch 'feature/pthread_name_affinity_config' into 'master'
pthread: make affinity and task name configurable

See merge request idf/esp-idf!3878
2018-12-05 13:46:05 +08:00
e04fd42176 Merge branch 'feature/refactoring_ota_part' into 'master'
bootloader/app_update: Refactoring otadata part

See merge request idf/esp-idf!3544
2018-12-05 12:59:34 +08:00
d50af8bd53 Merge branch 'bugfix/no_tests_for_unit_test_example' into 'master'
cmake: fix error in converting project variables to namespaced ones

See merge request idf/esp-idf!3887
2018-12-05 12:58:42 +08:00
36be9b36dd Merge branch 'bugfix/fix_menuconfig_for_windows' into 'master'
Fix various errors for menuconfig on Windows

Closes #50

See merge request idf/esp-idf!3848
2018-12-05 11:34:49 +08:00
f9522a0eb6 bootloader app_update: Refactoring otadata part 2018-12-05 11:20:03 +08:00
8a7b46aa90 Merge branch 'feature/anti_rollback_exp' into 'master'
esp32: Add firmware version to app

See merge request idf/esp-idf!3461
2018-12-05 11:10:04 +08:00
b11238df4d ci: add test for setting EXTRA_COMPONENT_DIRS 2018-12-05 10:51:10 +08:00
0d5660fbde cmake: fix error in converting project variables to namespaced ones
Closes https://github.com/espressif/esp-idf/issues/2764
2018-12-05 10:51:10 +08:00
794155f975 Merge branch 'doc/security_features_small_fixes' into 'master'
doc: Small secure boot & flash encryption corrections

See merge request idf/esp-idf!3876
2018-12-05 09:03:30 +08:00
a2d0fbb9ab docs: flash encryption: Fix description of behaviour when all bits of FLASH_CRYPT_CNT are set
Correct behaviour is described in section 25.3.3 Flash Decryption Block of the ESP32 TRM
2018-12-05 11:15:00 +11:00
441e2d5011 Merge branch 'bugfix/register_structs_stdint' into 'master'
soc: Add "#include <stdint.h>" to all register structs

See merge request idf/esp-idf!3875
2018-12-05 08:05:56 +08:00
deaecf164d make: fix unexpected operator warning 2018-12-05 07:54:59 +08:00
d411175e47 mbedtls, cmake: set host as unix when building in msys 2018-12-05 07:54:59 +08:00
50d7067391 cmake: fix mconf path for existing mconf
Fixes https://github.com/espressif/esp-idf/issues/2771
Fixes https://github.com/espressif/esp-idf/issues/2722
2018-12-05 07:54:59 +08:00
b12c58224d Enhanced readability in README.md
Changed text based GPIO-list to some table based version.
This should enhance the readability.

Resolves https://github.com/espressif/esp-idf/pull/2749
2018-12-04 21:20:32 +08:00
5c5799fa51 Component/bt: fix auth_mode error when reconnection in SMP 2018-12-04 18:05:25 +08:00
dc043109d7 ethernet: phy init timeout
When ethernet enable again after disable it before, phy init will report timeout.
The cause of this problem is that the enabling of emac clock is too late, and should be placed before phy init.
2018-12-04 17:13:48 +08:00
d6ee27e313 Merge branch 'feat/spi_check_length_buffer' into 'master'
spi: add checks for slave buffer valid and master length

See merge request idf/esp-idf!3744
2018-12-04 11:48:32 +08:00
2b557523ba Merge branch 'bugfix/generic_cmake_gc_sections' into 'master'
generic cmake: Always use gc-sections when linking IDF libraries

See merge request idf/esp-idf!3873
2018-12-04 11:01:51 +08:00
2946b5f384 Merge branch 'bugfix/ldgen_cmd_args_too_long' into 'master'
Fix issue with generating linker script using Windows command line

See merge request idf/esp-idf!3865
2018-12-04 10:42:58 +08:00
ac1d1aa3c8 doc: secure boot: Explain output of digest_secure_bootloader command
Mentioned on forum https://esp32.com/viewtopic.php?f=13&t=8162&start=10#p34714
2018-12-04 12:34:59 +11:00
b45b0f2348 doc: security: Use less ambiguous language about using bot flash encryption & secure boot together 2018-12-04 12:34:38 +11:00
7f32995a4c soc: Add "#include <stdint.h>" to all register structs
Closes https://github.com/espressif/esp-idf/issues/2239

TW24912
2018-12-04 11:17:38 +11:00
4c8c88af22 windows_install_prerequisites: Fix bug if IDF_PATH is not set
if IDF_PATH is empty, [ -n ] test passes needs to be [ -n "" ]

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

TW27714
2018-12-04 11:02:49 +11:00
89826e8f47 generic cmake: Always use gc-sections when linking IDF libraries
Required for some IDF binary libraries

Reported on forum: https://esp32.com/viewtopic.php?f=13&t=7535&p=34863#p34852

TW27733
2018-12-04 10:47:00 +11:00
a9429ee5da component/bt and esp32: fix two bluetooth bugs that caused by coexist module
1. Fix interrupt watchdog timeout in bluetooth "btdm_bb_isr"
    2. Fix BLE assert(512) or assert(1536)  in rwble.c at line 222
    3. Update librtc.a to fix BLE assert(512) in rwble.c at line 222

    The #1 and #2 occurs random.
    The #3 bug occurs in certain scenario:
    	1. If Wifi start softap and BLE is working
    	2. If wifi start station, but do not use normal station operation, such
    		as just use espnow, while BLE is working
    	3. Any other scenario, that wifi works without use software coexist
    		operation, while BLE is working(such as do advertising and ...)

    4. update libcoexist.a version to v1.1.2
2018-12-03 19:41:43 +08:00
3b9cb25fe1 esp32: Add firmware version to app
Added a new structure esp_app_desc_t. It has info about firmware:
version, secure_version, project_name, time/date build and IDF version.
Added the ability to add a custom structure with a description of the firmware.

The esp_app_desc_t is located in fixed place in start of ROM secotor. It is located after structures esp_image_header_t and esp_image_segment_header_t.

app_version is filed from PROJECT_VER variable (if set in custom make file) or PROJECT_PATH/version.txt or git repo (git describe).

Add API to get app_desc from partition.
2018-12-03 16:52:04 +08:00
588ecaae09 ulp: add note regarding limitation of ulp_set_wakeup_period in deep sleep mode 2018-12-03 11:41:10 +05:30
a7a1c32a8e cmake, make: fix long cmd line args for ldgen 2018-12-03 12:26:38 +08:00
3bc970c5f4 Merge branch 'bugfix/partitions_tools_style_check' into 'master'
Remove parttool exemption from style check

See merge request idf/esp-idf!3847
2018-12-03 12:25:39 +08:00
674f0b1ebd doc: Add mesh channel switching and self organized networking documentation 2018-12-03 11:57:32 +08:00
80e6def4b8 Merge branch 'ci/combine_unit_test_and_integration_test' into 'master'
ci: combine unit_test and integration_test stage

See merge request idf/esp-idf!3792
2018-12-03 11:39:26 +08:00
554cf77963 Merge branch 'bugfix/convert_to_cmake' into 'master'
Fix minor issue with convert_to_cmake script

See merge request idf/esp-idf!3666
2018-12-03 11:39:12 +08:00
fffa98647b Merge branch 'feature/docs_more_on_shared_pins_of_esp-wrover-kit' into 'master'
Extended information on using pins of ESP-WROVER-KIT that are shared among…

See merge request idf/esp-idf!3841
2018-12-03 07:02:40 +08:00
7fa98593bc Merge branch 'feature/docs_hw_reference_cn' into 'master'
Provided translation of 'Hardware Reference' into Chinese

See merge request idf/esp-idf!3555
2018-12-03 07:02:33 +08:00
340e7f3b2f Provided translation of 'Hardware Reference' into Chinese 2018-12-03 07:02:33 +08:00
6bd497f9ed Merge branch 'feature/btdm_ble_full_scan_support' into 'master'
component/bt: Added the ble full scan supported feature.

See merge request idf/esp-idf!3820
2018-11-30 21:53:21 +08:00
e07c5a22f2 Merge branch 'doc/RF_calibration' into 'master'
doc: add documentation for RF calibration

See merge request idf/esp-idf!3828
2018-11-30 21:50:29 +08:00
1cffc90e58 Merge branch 'feature/optimize_wifi_log' into 'master'
wifi: add code for setting wifi log level and module

See merge request idf/esp-idf!3710
2018-11-30 21:42:57 +08:00
f0e8c068d2 docs: Fix mesh doc line wrapping
This commit fixes mesh doc line wrapping by making every
paragraph into a single line.
2018-11-30 21:13:28 +08:00
0f3eb977cd component/bt: Added the ble full scan supported feature.
1. Add the full scan swith in the menuconfig;
2. Change the bt lib in order to support ble full scan
2018-11-30 20:48:42 +08:00
f7281c75c7 tools: correct the coding style of check_python_dependencies.py 2018-11-30 13:43:28 +01:00
98bc172f58 tools: correct printed path on MS Win 2018-11-30 13:43:28 +01:00
a3b581bd8c parttool: remove exemption from style check 2018-11-30 16:39:55 +08:00
59761b0fcb doc: add documentation for RF calibration
Add an API to erase phy namespace of NVS
2018-11-30 16:26:56 +08:00
e621e0af8b wifi: add code for setting wifi log level and module 2018-11-30 15:24:22 +08:00
7458c1c1e2 Merge branch 'feature/ulp-assembler-version-check' into 'master'
Check assembler version

See merge request idf/esp-idf!3156
2018-11-30 14:57:01 +08:00
ed21457afc Merge branch 'doc/ledc_example_doc_improve' into 'master'
doc(ledc): Update LEDC example README.md file

See merge request idf/esp-idf!2673
2018-11-30 14:48:25 +08:00
a34a27010b Merge branch 'feature/partition_tools' into 'master'
Partition level tools

See merge request idf/esp-idf!3355
2018-11-30 14:15:51 +08:00
c22512d27f Merge branch 'bugfix/ldgen_error_messages' into 'master'
ldgen: Improve error output when linker input is invalid

See merge request idf/esp-idf!3824
2018-11-30 11:15:23 +08:00
ba844caa8a app_trace: fix linker fragment not included in Make build 2018-11-30 11:05:43 +08:00
46a948dafa app_trace: require timer driver to be in IRAM
Closes https://github.com/espressif/esp-idf/issues/2760
2018-11-30 11:05:43 +08:00
f845af840f Merge branch 'bugfix/build_fail_on_idf_as_lib' into 'master'
cmake: fix error on building idf as lib when env IDF_PATH is not set

See merge request idf/esp-idf!3832
2018-11-30 10:59:18 +08:00
4027a7f2c2 Merge branch 'bugfix/i2c_master_clear_bus' into 'master'
fix i2c_master_clear_bus && add i2c_tool example test

See merge request idf/esp-idf!3509
2018-11-30 10:53:39 +08:00
afe4c76b6b Merge branch 'doc/heap_basics' into 'master'
docs: Add some more explanation about heap, memory types

See merge request idf/esp-idf!3810
2018-11-30 10:24:51 +08:00
9163e454f1 example_test: using try block to pass the python style check 2018-11-30 10:13:58 +08:00
924daf7b84 bugfix(i2c): reduce speed of I2C master bus reset routine and release SDA
closes https://github.com/espressif/esp-idf/issues/2494
closes https://github.com/espressif/esp-idf/pull/2493
closes https://github.com/espressif/esp-idf/pull/2496

1. Change bus reset to handle interrupted READ sequences.
2. Slow down I2C to 100khz during reset
3. If a SLAVE device was in a read operation when the bus was interrupted, the SLAVE device is controlling SDA.The only bit during the 9 clock cycles of a byte READ the MASTER(ESP32) is guaranteed control over, is during the ACK bit period.
If the SLAVE is sending a stream of ZERO bytes, it will only release SDA during the ACK bit period. The master(ESP32) cannot generate a STOP unless SDA is HIGH. So, this reset code synchronizes the bit stream with, Either, the ACK bit, Or a 1 bit.
2018-11-30 10:08:28 +08:00
e55f9c1e98 1. Slow down I2C to 100khz During Reset
I am stealing this delay coding from @jeremyherbert #2493 pr.

2. Change Bus Reset to handle interrupted READ sequences.

The current code does not handle interrupted READ cycles.

 If a SLAVE device was in a read operation when the bus was interrupted, the SLAVE device is controlling SDA.

The only bit during the 9 clock cycles of a byte READ the MASTER(ESP32) is guaranteed control over, is during the ACK bit period.

If the SLAVE is sending a stream of ZERO bytes, it will only release SDA during the ACK bit period. The master(ESP32) cannot generate a STOP unless SDA is HIGH.

So, this reset code synchronizes the bit stream with, Either, the ACK bit, Or a 1 bit.

3. fix typo

correct `sda_id` to `sda_io` in `i2c_master_clear_bus()` @ryan-ma found it.  This typo was generated when I manually edited this patch on GitHub, I should have done a Copy/Paste operation!
2018-11-30 10:08:28 +08:00
34c1d25c7f reduce speed of i2c master bus reset routine and release sda 2018-11-30 10:08:28 +08:00
2b165f99c4 i2c_tool: add i2c_tool example test
1. add example test for i2c-tools
2. make command line arguments number configurable
2018-11-30 10:08:28 +08:00
98f9a3c316 Merge branch 'bugfix/flake8' into 'master'
Make the flake8 configuration work regardless of installed plugins

See merge request idf/esp-idf!3838
2018-11-30 09:32:43 +08:00
8dc66d3f0f doc: translate part of build-system
Translate the make_size part in build system.
2018-11-30 12:29:38 +11:00
a3a1cc080e docs: Add some more explanation about heap, memory types 2018-11-30 12:29:38 +11:00
29b1f86f16 Extended information on using pins of ESP-WROVER-KIT that are shared among peripherals. Inspired by https://esp32.com/viewtopic.php?f=12&t=6856. 2018-11-29 16:56:49 +01:00
b0154cbf58 unit-test-app: fix the RegEx to detect test case:
tags are not correctly parsed if eol do not contain `\r`
2018-11-29 23:06:16 +08:00
5ae3a11c8d tiny-test-fw: fix exception when expect RegEx:
match.groups() could return None. We can't do decode on None object.
2018-11-29 23:06:16 +08:00
582e89eca3 test: add test case to receive ds2ds packet 2018-11-29 23:06:16 +08:00
499fdbd33d Merge branch 'feature/fatfs_alloc_extram_option' into 'master'
fatfs: add option to prefer ext. RAM for internal buffers

See merge request idf/esp-idf!3821
2018-11-29 22:59:01 +08:00
edff003e72 Merge branch 'test/driver_i2c' into 'master'
add i2c case

See merge request idf/esp-idf!1937
2018-11-29 22:53:06 +08:00
a26580d0e8 Make the flake8 configuration work regardless of installed plugins 2018-11-29 15:26:39 +01:00
bbeb62547e fatfs: add option to prefer ext. RAM for internal buffers 2018-11-29 19:26:46 +08:00
907b1a9032 mbedtls: align CMake build with corresponding component.mk 2018-11-29 16:23:06 +05:30
147447b13e test: components/driver: i2c case 2018-11-29 18:27:58 +08:00
a3785792eb tools/ci: add test case for convert_to_cmake script
Following issue was already fixed with earlier commit-id f4cfca4353
Here additional build test case is added and marking issue as closed.

Closes: https://github.com/espressif/esp-idf/issues/2660
2018-11-29 15:15:13 +05:30
56e4c6e5a3 Merge branch 'bugfix/menuconfig_fails_on_cmake' into 'master'
Fix menuconfig fail on cmake

Closes #48

See merge request idf/esp-idf!3826
2018-11-29 16:10:21 +08:00
ba6058ba58 cmake: fix error on building idf as lib when env IDF_PATH is not set 2018-11-29 15:40:16 +08:00
add7c49a26 Merge branch 'test/driver_i2s' into 'master'
component/driver:add i2s case

See merge request idf/esp-idf!2117
2018-11-29 14:41:09 +08:00
da1f3ea12a kconfig: pass env variable to menuconfig invocation 2018-11-29 13:22:10 +08:00
a2f63c09bf make, ldgen: remove uncessary passed target env variable 2018-11-29 13:21:31 +08:00
f6375952bb kconfig: specify full path of built mconf 2018-11-29 13:16:13 +08:00
62cc522f36 Merge branch 'feature/rmt_add_api_get_free_channel' into 'master'
feature(rmt):   Add API get rmt channel's status.

See merge request idf/esp-idf!2440
2018-11-29 11:59:39 +08:00
44fdca94e9 test: components/driver: i2s case 2018-11-29 11:32:40 +08:00
073dbe6d1d Merge branch 'bugfix/idf_monitor_tests' into 'master'
Adjust the timeout of the idf_monitor tests

See merge request idf/esp-idf!3802
2018-11-29 11:03:25 +08:00
759185b16c Merge branch 'bugfix/bt_ut_build_all' into 'master'
Fix unit test cmake build for BT

See merge request idf/esp-idf!3767
2018-11-29 09:52:55 +08:00
d4a5682e7d ldgen: Improve error output when linker input is invalid, don't create output file until end of process 2018-11-29 12:41:35 +11:00
21b3919369 Merge branch 'bugfix/vfs_open_write_close_perf_test' into 'master'
Fix VFS unit test failure ("Open & write & close through VFS passes performance test")

Closes #44

See merge request idf/esp-idf!3759
2018-11-29 09:40:54 +08:00
1d2673eda5 Merge branch 'bugfix/uart_select_buffer' into 'master'
VFS: select() on UART should return immediately when data is buffered

See merge request idf/esp-idf!3803
2018-11-29 09:30:19 +08:00
71f57931bd #2743 - Implemented ability to core affinity and thread name for pthreads and thus also for std::thread. 2018-11-28 20:43:09 +01:00
738c56e84a Fix VFS_OPEN_WRITE_CLOSE_TIME unit test issue
Closes idf/esp-idf#44
2018-11-28 20:36:08 +01:00
2c7fc07aae Merge branch 'bugfix/various_ldgen_fixes' into 'master'
Fix multiple ldgen issues

Closes #47

See merge request idf/esp-idf!3799
2018-11-29 01:46:02 +08:00
98884b4f6c Merge branch 'bugfix/sysview_trace_taskid' into 'master'
freertos: fix task ID sent to the trace

See merge request idf/esp-idf!3807
2018-11-29 01:45:36 +08:00
7312294648 Merge branch 'bugfix/btdm_rf_reg' into 'master'
fix bug to unsupport rf reg access from hci cmd

See merge request idf/esp-idf!3787
2018-11-28 21:21:20 +08:00
a134141320 Merge branch 'mesh/feature_channel_switch' into 'master'
mesh: add channel switch function

See merge request idf/esp-idf!3772
2018-11-28 20:11:38 +08:00
b926764385 examples: add otatool and parttool examples 2018-11-28 17:28:20 +08:00
a0beff99d2 bugfix(psram): fix psram size acquisition method
1. Use BIT[7:5] of EID to determine psram size
2. Add ID support for 16Mbit psram
3. Remove module reset on SPI1
4. Confirmed with the vendor that only the old 32Mbit psram need special clock timing. For other psram chips, we should use standard QPI mode.
2018-11-28 17:05:37 +08:00
cc5673435b Merge branch 'bugfix/fix_uart_read_bug_when_using_dual_core' into 'master'
bugfix(uart): fix uart read error bug when using dual core.

See merge request idf/esp-idf!3521
2018-11-28 16:17:13 +08:00
5e08698039 make: use otatool and parttool for build 2018-11-28 15:57:20 +08:00
bceec35d0e cmake: use otatool and parttool for build 2018-11-28 15:57:20 +08:00
8ca6904d55 ota: implement otatool functionality 2018-11-28 15:57:20 +08:00
88c81c67b7 partition_table: implement new parttool functionality 2018-11-28 15:57:20 +08:00
06eebfe15f Merge branch 'bugfix/ignore_windows_conf_tools' into 'master'
gitignore: Add mconf-idf.exe and conf-idf.exe

See merge request idf/esp-idf!3806
2018-11-28 15:46:15 +08:00
da223fad4e driver(rmt): Add API get rmt channel's status.
closes https://github.com/espressif/esp-idf/issues/1175
closes https://github.com/espressif/esp-idf/issues/2599
closes https://github.com/espressif/esp-idf/issues/2452
2018-11-28 07:20:45 +00:00
87e8757569 bt: Fix unit tests build with CMake 2018-11-28 15:19:04 +08:00
9dde91ce2b modbus: Fix a typo in the docs 2018-11-28 15:19:03 +08:00
ade39f823f doc(ledc): Update LEDC example README.md file. 2018-11-28 07:15:56 +00:00
4c83f456ab cmake: generate sections info for all static libs as in make 2018-11-28 14:24:21 +08:00
a9c784339d ldgen: fix error on parsing archive from sections info 2018-11-28 14:14:54 +08:00
22b4c95d1e ldgen: add traceback in case of exception 2018-11-28 14:14:54 +08:00
19910c8729 Merge branch 'test/driver_mcpwm' into 'master'
test/mcpwm_case

See merge request idf/esp-idf!1831
2018-11-28 13:56:05 +08:00
8eb40bea51 freertos: pass TCB rather than the array to trace functions 2018-11-28 12:26:34 +08:00
70554e8caa Merge branch 'doc/uart_lightsleep_wakeup_doc' into 'master'
doc(uart):  update the comment of uart_set_wakeup_threshold

See merge request idf/esp-idf!3556
2018-11-28 11:35:56 +08:00
6f8e2b018f Merge branch 'feature/generic_cmake_support' into 'master'
Generic CMake Support

See merge request idf/esp-idf!3543
2018-11-28 10:42:47 +08:00
11faab2c5d test: components/driver: pwm case 2018-11-28 10:42:32 +08:00
fac12d0dae Merge branch 'bugfix/windows_install_prerequisites' into 'master'
windows_install_prerequisites: Fix generation of PATH command

See merge request idf/esp-idf!3798
2018-11-28 09:11:08 +08:00
f7811671ae gitignore: Add mconf-idf.exe and conf-idf.exe
Problem since f6cd55d2ac

Closes https://github.com/espressif/esp-idf/issues/2751
2018-11-28 12:05:29 +11:00
983cdcb7f4 add_path.sh: Fix reuse the script 2018-11-28 11:08:28 +11:00
1692896e5e mesh: add channel switch function
1. add network channel switch function.
   - users can obtain the new channel through the event MESH_EVENT_CHANNEL_SWITCH.
   - the entire network will be moved to the same channel as the router without user intervention.
   - if no router is in the network, users can call esp_mesh_switch_channel() on the root side to
     move the entire network to their desired channel.
2. support not configuring the network channel.
3. support not configuring the router BSSID even if the router is hidden.
4. add allow_channel_switch to mesh configuration.
   - if the channel is not specified, this value will be ignored.
   - if the channel is specified and this value is set, when "fail" (mesh_attempts_t) times of parent selection
     or look for networks are reached, device will change to perform a full channel scan for networks that could join.
   - if the channel is specified and this value is set to 0, when a root is not elected, channel switch is not allowed.
     but when a root appears, the root performs a full channel scan during the process of connecting to the router,
     so even allow_channel_switch is set to 0, the root may still switch channel and eventually the entire network
    changes channel.
5. add allow_router_switch to mesh router configuration.
   - if the BSSID of router is not specified, this value will be ignored.
   - if the BSSID of router is specified and this value is set, when the router of this specified BSSID fails to be found
     after "fail" (mesh_attempts_t) times, the entire network is allowed to switch to another router with the same SSID.
6. modify the root to perform a full channel scan when esp_wifi_connect().
7. support handling beacon without DS Paramter Set.
2018-11-27 23:36:01 +08:00
a9c1124763 driver(uart): fixed uart read error bug when using dual core.
closes https://github.com/espressif/esp-idf/issues/2204
2018-11-27 20:53:26 +08:00
957cf0ab84 VFS: select() on UART should return immediately when data is buffered 2018-11-27 13:39:00 +01:00
7e7cc99241 docs: generic cmake support 2018-11-27 19:56:52 +08:00
f1f0bd4b1c ci: update for running cmake examples 2018-11-27 19:56:52 +08:00
bec3bb3ba4 make, cmake: display ulp assembler version 2018-11-27 19:40:50 +08:00
b35c745c4f ulp: check assembler version 2018-11-27 19:25:22 +08:00
4b34ae1258 bugfix(i2s): allow to use apll in pdm/adc/dac mode
1. Allow to use apll in pdm mode
2. Add clock frequency configuration for PDM mode
3. Allow to use apll in ADC/DAC mode
2018-11-27 18:41:20 +08:00
cedc0b6643 Adjust the timeout of the idf_monitor tests 2018-11-27 09:53:56 +01:00
90f5432f2a examples: generic cmake support examples 2018-11-27 13:59:26 +08:00
0908fba1a3 mbedtls: import mbedtls project w/o modification 2018-11-27 13:59:26 +08:00
37d30c7a6e cmake: separate app from idf lib project
mbedtls: import mbedtls using unmodified cmake file
2018-11-27 13:59:24 +08:00
81231fcc4b Merge branch 'feature/i2s_tx_descriptor_auto_clear' into 'master'
i2s: add (optional) support to clear tx descriptor in underflow case

See merge request idf/esp-idf!2397
2018-11-27 13:45:51 +08:00
c75c28faf5 Merge branch 'feature/pystyle' into 'master'
Check the Python coding style

See merge request idf/esp-idf!3748
2018-11-27 12:41:17 +08:00
f3bfdeaeec fix bug to unsupport rf reg access from hci cmd
Always return 0 when read rf register and do nothing when write rf register
2018-11-27 12:00:06 +08:00
b7f56e86ba windows_install_prerequisites: Fix generation of PATH command
Accidental regression in 7c8d5d2782 - escape
character didn't move with PATH.

Reported on forum https://esp32.com/viewtopic.php?f=13&t=8201
2018-11-27 09:36:43 +11:00
1b464d23a9 tools: Correct coding style of idf_monitor 2018-11-26 15:02:39 +01:00
9273de8b43 Check the Python coding style
Closes https://github.com/espressif/esp-idf/pull/2747
2018-11-26 15:02:27 +01:00
90a6c9aada Merge branch 'feature/add_long_range_code' into 'master'
example: add long range code

See merge request idf/esp-idf!3552
2018-11-26 17:03:09 +08:00
9890feaa37 Merge branch 'feature/btdm_add_ble_compatibility_test_demo' into 'master'
Component/bt: add BLE Compatibility Test demo

See merge request idf/esp-idf!3749
2018-11-26 17:00:55 +08:00
bf0f02112d ci: combine unit_test and integration_test stage:
The number of runners of integration test is not bottleneck to CI
pipeline performance now. Combine these 2 stages will make integration
test executed even unit test fails. This could help us to collect more
info about test history.
2018-11-26 16:40:32 +08:00
1c65f18422 Merge branch 'test/enhanced_junit_test_result' into 'master'
test: enhanced junit test result

See merge request idf/esp-idf!2766
2018-11-26 16:35:08 +08:00
03c59658cb Merge branch 'bugfix/test_idf_monitor_hangs' into 'master'
tools: Fix idf_monitor test case occasional hangup or failure

Closes #39

See merge request idf/esp-idf!3651
2018-11-26 15:29:55 +08:00
c765035b3a Merge branch 'update/nvs_part_gen' into 'master'
nvs_util: Add changes to nvs part gen util

See merge request idf/esp-idf!3531
2018-11-26 14:26:08 +08:00
cfba157fdd spi_slave: add valid check for DMA buffers
The DMA cannot receive data correctly when the buffer address is not
WORD aligned. Currently we only check whether the buffer is in the DRAM
region.

The DMA always write in WORDs, so the length arguments should also be
multiples of 32 bits.

A check is added to see whether the buffer is WORD aligned and has valid
length.
2018-11-26 03:49:26 +00:00
435adaa22a spi_master: add check for trans len
The driver decide whether use MOSI/MISO phases according to the buffer
address together with the SPI_TRANS_USE_*DATA. However someone may assue
that these phases will be skipped when the ``length``/``rxlength`` is
set to 0. In fact it is a feature that ``rxlength`` is allowed to be
set to 0 when tx and rx have the same length, and the driver fill the
``rxlength`` to ``length``.

An error check is added when the rxlength is 0 but there is data to be
sent.
2018-11-26 03:49:26 +00:00
7202aed31e ci: split build unit test job:
it takes long time to build with both make and cmake
2018-11-26 10:07:41 +08:00
ca7fa6f01a ci: use artifacts:reports feature of Gitlab CI 2018-11-26 10:07:41 +08:00
ef9eaddd88 ci: assign unit test cases in sequence of config and name 2018-11-26 10:07:41 +08:00
5b3d09d5c8 test: fix unit test script code style warnings 2018-11-26 10:07:41 +08:00
644571f78b test: generate junit test report according to executed cases 2018-11-26 10:07:41 +08:00
0ad226b375 tiny-test-fw: support capture raw data in DUT:
test cases might want to use `expect` and get raw data from DUT at the same time. New added capture method provides a way to do that.
2018-11-26 10:07:41 +08:00
fa59b1b1c9 Merge branch 'bugfix/fix_cmake_args_issue' into 'master'
Fix CMAKE_ARGS issue for ULP build

See merge request idf/esp-idf!3776
2018-11-26 07:58:09 +08:00
5aa7abb216 Merge branch 'bugfix/spiram_80m_clk_config' into 'master'
clk: fix regression in clock setting for SPIRAM with 80MHz config

See merge request idf/esp-idf!3724
2018-11-25 22:25:19 +08:00
a0468b2bd6 Merge branch 'feature/btdm_add_update_duplicate_scan_exceptional_list_apis' into 'master'
Component/bt: add update duplicate scan exceptional list APIs

See merge request idf/esp-idf!3763
2018-11-25 18:58:53 +08:00
608fc23278 tools: Fix idf_monitor test case occasional hangup or failure
Closes idf/esp-idf#39
2018-11-23 13:33:17 +01:00
18a27b88c7 Component/bt: fix accept specified sec auth error 2018-11-23 20:14:03 +08:00
1751607adf examples: enable option to auto clear I2S tx descriptor on underflow
Closes: https://github.com/espressif/esp-idf/issues/1945
2018-11-23 14:43:20 +05:30
ad22d280c6 wifi: add long range code 2018-11-23 09:09:07 +00:00
64d038c0d5 Merge branch 'bugfix/fix_some_wifi_bugs_1121' into 'master'
esp32: fix some wifi bugs

See merge request idf/esp-idf!3756
2018-11-23 17:08:25 +08:00
765bf674d0 i2s: add (optional) support to clear tx descriptor in underflow case
It has been observed that, in case of underflow (data unavailability) in
I2S transmission, previously filled up tx descriptors continue to get
transmitted on line, causing noise in case of audio use case.

This change adds optional `tx_desc_auto_clear` field during I2S driver intialization
than can zero initialize tx descriptor in case of underflow situation in
interrupt handler itself.

Closes: https://github.com/espressif/esp-idf/issues/1789
2018-11-23 14:31:09 +05:30
dd3d89db49 Component/bt: add update duplicate scan exceptional list APIs 2018-11-23 16:46:17 +08:00
3a02a12aa4 cmake: remove unecessary info passed to bootloader build 2018-11-23 16:08:47 +08:00
552f17e260 ulp: fix passing ulp srcs due to cmake_args bug 2018-11-23 16:08:41 +08:00
783ff9c455 Merge branch 'bugfix/i2c_hardware_filter_default_enable' into 'master'
driver:  Enable I2C master hardware filter by default.

See merge request idf/esp-idf!3715
2018-11-23 14:23:37 +08:00
f874b52f0a esp32: fix some wifi bugs
Fix some WiFi bugs:
1. Enable RX BAR
2. Fix the bug that ESP32 AP negotiates with iphone to 11g
3. Fix the bug that ESP32 STA has ap_loss because CMCC AP contains two SSID
2018-11-23 05:41:41 +00:00
a081e5d25e Merge branch 'bugfix/docs_what-you-need' into 'master'
Updated 'What you need' picture

See merge request idf/esp-idf!3725
2018-11-23 11:16:28 +08:00
83f6ee9912 Merge branch 'bugfix/docs_https_server' into 'master'
Docs : esp_https_server API references corrected

See merge request idf/esp-idf!3775
2018-11-23 10:44:55 +08:00
269e94f387 Merge branch 'bugfix/fix_ldgen_pyparsing_new_version' into 'master'
ldgen: fix issues when using pyparsing 2.3.0

See merge request idf/esp-idf!3739
2018-11-23 10:38:18 +08:00
33138a3dec driver(i2c): enable I2C master hardware filter by default. 2018-11-23 10:27:59 +08:00
1600c3144c docs: add pyparsing install to setup guide 2018-11-22 22:09:43 +08:00
8eeddd287c ldgen: catch exception with python3 compatible style
Closes https://github.com/espressif/esp-idf/issues/2720
2018-11-22 22:09:43 +08:00
8e70582cad tiny-test-fw: enhanced junit test report support:
1. replace xunitgen with junit_xml, which can log more info
2. allow test cases to handle junit test report by them own
3. allow test cases to log some info into report via `sysout` tag
2018-11-22 20:49:15 +08:00
e199587a11 Merge branch 'bugfix/btdm_move_func_into_iram' into 'master'
components/bt: Move function in interrupt into IRAM

See merge request idf/esp-idf!3757
2018-11-22 19:17:37 +08:00
684f0b0a32 Docs : esp_https_server API references corrected 2018-11-22 15:57:05 +05:30
7e142f9d22 components/bt: Move function in interrupt into IRAM
1. Move function in interrupt into IRAM
2. Delete unused code, saving 240B DRAM and some code size
2018-11-22 15:59:53 +08:00
09a01f68ba Merge branch 'bugfix/calloc_recursive' into 'master'
newlib: disable some optimizations for syscalls.c

See merge request idf/esp-idf!3774
2018-11-22 15:24:17 +08:00
8deb885ce3 newlib: disable some optimizations for syscalls.c
Don’t allow the compiler to convert malloc + memset into calloc,
causing a recursive call in _calloc_r. Fixes crash when building with
-O2 optimization level.
2018-11-22 12:19:49 +08:00
6252292d9c Merge branch 'mesh/bugfix_v3.2' into 'master'
mesh: bugfix

See merge request idf/esp-idf!3740
2018-11-22 10:22:06 +08:00
56ed588d4f tools: install pyparsing using pip 2018-11-22 09:55:31 +08:00
507328d4db ldgen: fix issues when using pyparsing 2.3.0 2018-11-22 09:55:31 +08:00
e9ee9384fc Component/bt: add BLE Compatibility Test demo 2018-11-21 19:36:51 +08:00
86fedc3cbb utest: increase IDF_PERFORMANCE_MAX_VFS_OPEN_WRITE_CLOSE_TIME to 50000 2018-11-21 19:14:07 +08:00
6c3b5ae5a1 mesh: bugfix
1. fix failture of mesh stop caused by block-sending.
2. fix when FIXED_ROOT is set, 2nd layer devices can not receive mesh event ESP_ERR_MESH_NO_PARENT_FOUND.
3. fix when FIXED_ROOT is set and the root turns off mesh function, 2nd layer devices do not look for new parents.
4. add APIs esp_mesh_disconnect() and esp_mesh_connect().
5. disconnect from parent/router when the DSSS channel in received beacon is different from the home channel.
6. remove nvs task to release 3k bytes memory.
2018-11-21 19:13:41 +08:00
0c72b08872 nvs_util: update test case 2018-11-21 13:40:24 +05:30
582c547191 Update README 2018-11-21 12:55:47 +05:30
c44f15441f Closes https://github.com/espressif/esp-idf/issues/2472 2018-11-21 12:55:47 +05:30
9db1987892 nvs_util: Add changes to nvs part gen util
nvs_util: Add changes to nvs part gen util

nvs_host_test: Add test case for keygen and keyfile paratmeters
2018-11-21 12:55:47 +05:30
0d7f2d77c2 Merge branch 'feature/btdm_add_set_long_adv_data_api' into 'master'
Component/bt: add set long adv data api

See merge request idf/esp-idf!3722
2018-11-21 11:31:13 +08:00
2a55e957fd ci: add unit test job 2018-11-20 18:55:04 +05:30
bd3806193d unit-test-app: keep CONFIG_SPIRAM_BANKSWITCH_ENABLE enabled only for psram_8m config 2018-11-20 18:54:12 +05:30
e7f9e3f6f6 Merge branch 'bugfix/add_connected_event_after_softap_finish_4_way' into 'master'
wifi: add connected event after softap finish 4 way

See merge request idf/esp-idf!3661
2018-11-20 20:04:12 +08:00
69c9e050b0 Merge branch 'bugfix/btdm_add_check_peer_addr_type_in_set_adv_params' into 'master'
Component/bt: add check peer addr type in set adv params

See merge request idf/esp-idf!3732
2018-11-20 20:02:13 +08:00
3970ea60de Merge branch 'bugfix/ldgen_windows_kconfig_paths' into 'master'
ldgen: Fix ENOENT errors on Windows with MSYS2 and GNU Make

See merge request idf/esp-idf!3746
2018-11-20 17:21:11 +08:00
c0298a5712 Merge branch 'bugfix/doc_builds_windows' into 'master'
doc: Fix doc builds on Windows MINGW32, add some doc build documentation

See merge request idf/esp-idf!3550
2018-11-20 17:20:40 +08:00
92f32f0060 Merge branch 'fix/spi_callback_in_iram' into 'master'
spi: fix the crash when callbacks are not in the IRAM

See merge request idf/esp-idf!3498
2018-11-20 16:25:08 +08:00
5e3d88ee64 Component/bt: fix remove bonded device warnning 2018-11-20 07:15:02 +00:00
ffda37dd16 Merge branch 'feature/btdm_BLE_Blocking_APIs' into 'master'
Component/bt: add BLE Blocking APIs

See merge request idf/esp-idf!3513
2018-11-20 14:40:50 +08:00
b422a42697 Merge branch 'bugfix/btdm_errors_in_comment' into 'master'
components/bt: Some errors in comment

See merge request idf/esp-idf!3703
2018-11-20 14:26:12 +08:00
4f4edcf676 ldgen: Fix ENOENT errors on Windows with MSYS2 and GNU Make 2018-11-20 17:25:20 +11:00
61ee1bd31f Merge branch 'feature/esp_https_server' into 'master'
Add HTTPS Server component

See merge request idf/esp-idf!3608
2018-11-20 13:58:26 +08:00
46e28d7553 Merge branch 'example/sysview_tracing' into 'master'
SystemView tracing example

See merge request idf/esp-idf!3514
2018-11-20 13:10:19 +08:00
8cddfa35b8 spi: fix the crash when callbacks are not in the IRAM
Introduced in 9c23b8e5 and 4f87a62f. To get higher speed, menuconfig
options are added to put ISR and other functions into the IRAM.  The
interrupt flag ESP_INTR_FLAG_IRAM is also mistakenly set when the ISR is
put into the IRAM. However callbacks, which are wrote by the user, are
called in the master and slave ISR. The user may not be aware of that
these callbacks are not disabled during flash operations. Any cache miss
during flash operation will cause panic.

Essentially IRAM functions and intrrupt flag ESP_INTR_FLAG_IRAM are
different, the latter means not disabling the ISR during flash
operations.  New bus_config flag intr_flags is offered to help set the
interrupt attribute, including priority level, SHARED, IRAM (not
disabled during flash operations).  It introduced a small BREAK to
IDFv3.1 (but the same as IDFv3.0) that the user has to manually set IRAM
flag now (therefore he's aware of the IRAM thing) to void the ISR being
disabled during flash operations.
2018-11-20 13:07:13 +08:00
3139b2d533 example: Adds SystemView tracing example app 2018-11-20 04:09:39 +00:00
3eaba1c8ce esp32: Fixes SystemView lock's IRQ state restore 2018-11-20 04:09:39 +00:00
775c6e5ab7 Component/bt: add set long adv data api 2018-11-20 11:19:51 +08:00
4c881708dc Merge branch 'bugfix/ut_building_test_check' into 'master'
esp32, mbedtls: check component name when enabling test flags

See merge request idf/esp-idf!3742
2018-11-20 06:13:58 +08:00
99dd08943c make/ldgen: fix line continuation 2018-11-20 01:27:25 +08:00
8027adaf81 esp32, mbedtls: check component name when enabling test flags
Otherwise flags get enabled even when building tests for other components.
2018-11-20 01:27:24 +08:00
62efef0444 test: spiram: fix and enable test cases for default configuration 2018-11-19 22:40:14 +05:30
00a13bd8d3 Merge branch 'bugfix/init_memctl' into 'master'
bootloader, esp32: add workaround for Tensilica erratum 572

See merge request idf/esp-idf!3605
2018-11-19 18:36:47 +08:00
a46b884a14 Merge branch 'feature/unit_test_example' into 'master'
Move Unity into components, add unit test example

See merge request idf/esp-idf!3562
2018-11-19 18:35:54 +08:00
3c7819eaf2 Component/bt: add check peer addr type in set adv params 2018-11-19 17:04:48 +08:00
6709d26863 Merge branch 'fix/cryptography_version' into 'master'
Update minimum version for cryptography package required

See merge request idf/esp-idf!3712
2018-11-19 15:27:45 +08:00
57273d48d4 Merge branch 'doc/translation_eclipse-setup_wangfang' into 'master'
Doc/translation eclipse setup wangfang

See merge request idf/esp-idf!3681
2018-11-19 14:04:04 +08:00
6cdfea4251 Merge branch 'fix/spi_freq_limit_check' into 'master'
spi: modify some docs about the freq limit and the ISR

See merge request idf/esp-idf!3686
2018-11-19 14:02:40 +08:00
e1774cb6f9 Update minimum version for cryptography package required 2018-11-19 11:13:37 +05:30
26a6969873 Merge branch 'doc/add_cmake_translation' into 'master'
doc/add_translation_for_cmake_documents

See merge request idf/esp-idf!3636
2018-11-19 12:53:06 +08:00
8915f48208 Merge branch 'feature/linker_script_generator' into 'master'
Linker script generator

See merge request idf/esp-idf!2286
2018-11-19 12:43:27 +08:00
964f5a91f7 bootloader, esp32: add workaround for Tensilica erratum 572
If zero-overhead loop buffer is enabled, under certain rare conditions
when executing a zero-overhead loop, the CPU may attempt to execute an invalid instruction. Work around by disabling the buffer.
2018-11-19 04:39:35 +00:00
a5adfd0169 examples: add unit testing example 2018-11-19 12:36:31 +08:00
a98674d78b unity: don't use stdio in runner, fix code style 2018-11-19 12:36:31 +08:00
6091021e83 unity: separate common and IDF specific functionality
New unity component can be used for testing other applications.
Upstream version of Unity is included as a submodule.
Utilities specific to ESP-IDF unit tests (partitions, leak checking
setup/teardown functions, etc) are kept only in unit-test-app.
Kconfig options are added to allow disabling certain Unity features.
2018-11-19 12:36:31 +08:00
d4ef2135f0 ci: support building examples with external components 2018-11-19 12:36:31 +08:00
aa692b3483 vfs: implement fsync for UART VFS 2018-11-19 12:36:31 +08:00
5fb3d59a92 esp32: fix typos in rom/uart.h 2018-11-19 12:36:31 +08:00
c9a873c034 Merge branch 'docs/fix-eclipse-windows-steps' into 'master'
Docs: Change makes Eclipse setup inline with Mac OS and Linux.

See merge request idf/esp-idf!3486
2018-11-19 12:15:53 +08:00
b1189e9645 Docs: Change makes Eclipse setup inline with Mac OS and Linux. 2018-11-19 12:15:53 +08:00
8b6436eb2a Merge branch 'doc/translation_linux-setup-scratch_wangfang' into 'master'
Doc/translation linux setup scratch wangfang

See merge request idf/esp-idf!3679
2018-11-19 12:14:45 +08:00
7d888ff6eb Doc/translation linux setup scratch wangfang 2018-11-19 12:14:45 +08:00
1d3f4074de esp_https_server : change config option secure_enable to transport_mode and some minor changes
transport_mode accepts enum httpd_ssl_transport_t instead of true/false.
This will allow for extension to dual mode (server running on both secure and insecure ports) in the future.
2018-11-19 04:00:21 +00:00
9a9d18e466 esp_http_server : APIs renamed and context get/set implementations fixed
* http_sess_set_*_override APIs are now the only ones available to set custom recv/send/pending functions
* Fixed side effects to using http_sess_set/get_context inside URI handlers
2018-11-19 04:00:21 +00:00
639502ed5d esp_http_server example tests : updated advanced_tests as per API changes 2018-11-19 04:00:21 +00:00
aa6066a197 esp_https_server : Docs and API references fixed 2018-11-19 04:00:21 +00:00
4dd0fa61e9 Add a 'esp_https_server' component allowing to use http_server with OpenSSL 2018-11-19 04:00:21 +00:00
a10fc02dd9 esp_http_server improvements to allow adding transport layer encryption
Changes:
- renamed `httpd_free_sess_ctx_fn_t` to `httpd_free_ctx_fn_t`
- added a `httpd_handle_t` argument to `httpd_send_func_t` and `httpd_recv_func_t`
- internal function `httpd_sess_get()` is no longer static, as it's used in other
  files besides httpd_sess.c

Bug fixes:
- removed a trailing semicolon from `HTTPD_DEFAULT_CONFIG()`
- fixed issue with failed `select()`, now it automatically closes invalid sockets
  instead of shutting down the entire server

New features:
- `httpd_resp_send()` and `httpd_resp_send_chunk()` now accept -1 as length to use
  `strlen()` internally
- added `httpd_sess_set_ctx()` to accompany `httpd_sess_get_ctx()`
- added a "transport context" to the session structure (next to user context)
- added `httpd_sess_{get,set}_transport_ctx()` to work with this transport context
- added "global user context" and "global transport context" stored in the server
  config (and then the handle); supports a user-provided free_fn
- added a "pending func" to e.g. check for data in the transport layer receive
  buffer
- added functions `httpd_set_sess_{send,recv,pending}_override()` that target
  a session by ID (i.e. not using a request object)
- added `httpd_set_pending_override()`
- added a "open_fn" and "close_fn" - functions called when creating and closing
  a session. These may be used to set up transport layer encryption or some other
  session-wide feature
2018-11-19 04:00:21 +00:00
5b4e3da759 wifi: add connected event after softap finish 4 way
Background

Softap will send connected event after receive assoc request as before, however, STA didn't connect to softAP if need security. As our mesh design, it will send data packet after receive connected event, so change the current behavior, softAP will send connected event if have encryption
2018-11-19 11:24:42 +08:00
26bcb7f2cf Merge branch 'bugfix/wifi_sta_sniffer_phy_config_bug' into 'master'
wifi: fix wifi sta and sniffer phy config bug

See merge request idf/esp-idf!3566
2018-11-19 10:11:23 +08:00
7ef74ee863 Updated 'What you need' picture 2018-11-16 22:18:31 +01:00
e3956787f6 clk: fix regression in clock setting for SPIRAM with 80MHz config
Support for HSPI to output clock for 4M SPIRAM introduced regression
in clock configuration affecting SPIRAM access with 80MHz clock. This
commit fixes the issue.
2018-11-17 00:08:20 +05:30
960c240578 Merge branch 'bugfix/cmake_ut_parsing' into 'master'
cmake: fix for parsing unit test config

See merge request idf/esp-idf!3696
2018-11-16 22:11:14 +08:00
8c9407f22f Merge branch 'bugfix/fat_lock_log' into 'master'
fatfs: Do not log from critical sections

See merge request idf/esp-idf!3683
2018-11-16 21:29:56 +08:00
364f98b67e cmake: fix for parsing unit test config 2018-11-16 12:00:39 +00:00
96f152341a esp_timer: improve unit test robustness
1. call esp_timer_get_time and ref_clock_get in the same order on
   start and in the loop

2. disable interrupts when calculating delta between ref_clock
   and esp_timer

3. ensure both functions are in cache before calculating the delta
2018-11-16 12:00:39 +00:00
0db8c2e618 Merge branch 'feature/ut_filter_test_groups' into 'master'
unit test: allow filtering tests using TEST_GROUPS

See merge request idf/esp-idf!3695
2018-11-16 19:31:47 +08:00
a55d350f43 Merge branch 'bugfix/adjtime_test2' into 'master'
Resolve ""test for thread safety adjtime and gettimeofday functions" fails randomly"

Closes #37

See merge request idf/esp-idf!3657
2018-11-16 19:21:45 +08:00
ad2cdeb476 fatfs: Do not log from critical sections
Logging in the critical section can result in a deadlock when the logger
is redirected to FATFS.

Closes https://github.com/espressif/esp-idf/issues/1693
2018-11-16 11:19:01 +00:00
8be8ea2488 wifi: fix the bug that if station (sleep is enabled) and sniffer are enabled at the same time,
when disable sniffer, station will never enable phy and rf again.

Closes: https://github.com/espressif/esp-idf/issues/2545
2018-11-16 11:16:37 +00:00
6fa2f388ef Merge branch 'bugfix/btdm_controller_disable' into 'master'
Fix two bugs when disable bluetooth controller

See merge request idf/esp-idf!3692
2018-11-16 17:10:37 +08:00
43936ab48a Merge branch 'bugfix/mdns_query_failed_after_init' into 'master'
Fixed: mdns query failed after init

See merge request idf/esp-idf!3480
2018-11-16 16:37:11 +08:00
6309643c1d mdns: added example test for ci runners 2018-11-16 07:22:29 +00:00
d16762a036 mdns: sending search packets also in probing and announcing state
mdns queries did not work properly when send imeadiately after set_hostname, which cuased reinit of pcb and therefore restarted probing, so search packets were blocked until probing finished
closes #2507, closes #2593
2018-11-16 07:22:29 +00:00
f2de7602e3 Merge branch 'feature/docs_wireshark_trubleshooting_guide' into 'master'
Added wireshark instruction to provide a common workflow for users submitting diagnostic data for Wi-Fi troubleshooting

See merge request idf/esp-idf!3497
2018-11-16 14:44:58 +08:00
6fbc3c4361 Added wireshark instruction to provide a common workflow for users submitting diagnostic data for Wi-Fi troubleshooting 2018-11-16 14:44:58 +08:00
63411fc556 tools: implement linker script generation 2018-11-16 12:42:02 +08:00
b00be955ee newlib: Fix UT adjtime 2018-11-16 04:11:55 +00:00
ac5a3443a4 components/bt: Some errors in comment 2018-11-16 11:27:22 +08:00
b6d7c70238 Merge branch 'doc/console_zh_CN' into 'master'
doc/console: translate console.rst into zh_CN

See merge request idf/esp-idf!3320
2018-11-16 11:21:16 +08:00
9c9aa4ea4c Fix two bugs when disable bluetooth controller
1. Fix the bug that disable controller suddenly cause crash when ble is working. (585cfba1)
2. Fix the bug that when disable controller, it will cause wifi cannot RX, TX timeout, buffer lack and etc. (f8546145)
2018-11-16 02:42:38 +00:00
7b86247428 unit-test: use TEST_GROUPS to filter tests for psram_vspi and psram_hspi 2018-11-15 12:27:05 +00:00
09e4321e97 unit test: allow filtering tests for configs using TEST_GROUPS 2018-11-15 12:27:05 +00:00
fb56ce7d5c Merge branch 'feature/core_dump_crc' into 'master'
Core Dump CRC

See merge request idf/esp-idf!1290
2018-11-15 15:05:43 +08:00
78a7a152d1 esp32: Fixes freezing core dump process when flash write address checks are enabled 2018-11-15 06:13:48 +00:00
b152c1020c esp32: Adds logging level to core dump script 2018-11-15 06:13:48 +00:00
76e02cadcc esp32: Adds support for core dump format version 2018-11-15 06:13:48 +00:00
181a40ae30 esp32: Adds menuconfig option for max tasks number in core dump 2018-11-15 06:13:48 +00:00
30e766ee6b esp32: Core dump API to retrieve current core data layout in flash 2018-11-15 06:13:48 +00:00
a55cc99f50 esp32: Replaces magic numbers with CRC for core dump in flash 2018-11-15 06:13:48 +00:00
8b5f61eb35 Merge branch 'bugfix/ethernet_fail_twice_init' into 'master'
fix bug of multi-call failure in esp_eth_init

See merge request idf/esp-idf!3673
2018-11-15 12:35:55 +08:00
bbdcff1f45 Merge branch 'bugfix/tw27096_fix_lwip_mbox_free_crash' into 'master'
fix the crash bug caused by sys_mbox_free

See merge request idf/esp-idf!3654
2018-11-15 10:31:35 +08:00
e677bdf5c9 Merge branch 'bugfix/app_template_build' into 'master'
esp-idf-template app: some fixes for the updated template app

See merge request idf/esp-idf!3698
2018-11-15 09:51:00 +08:00
79043882d9 tools: fix cmake build script for sdkconfig test 2018-11-14 22:50:12 +08:00
8e1c91ac7d cmake: fix the creation dummy main to avoid rebuilding 2018-11-14 22:39:54 +08:00
fe5b2c56a4 ci: If there is no sdkconfig, we have to generate one 2018-11-14 19:46:03 +08:00
f1949a59b6 Merge branch 'bugfix/readdir_ut_timeout' into 'master'
spiffs: increase timeout in readdir test

Closes #41

See merge request idf/esp-idf!3687
2018-11-13 22:54:21 +08:00
eec6de57ff ethernet: multi-call failure in esp_eth_init
Because of incomplete state machine, ethernet driver will broken if esp_eth_init is called twice.
Detailed information here: https://ezredmine.espressif.cn:8765/issues/27332
2018-11-13 16:38:45 +08:00
bd34ae0409 Merge branch 'bugfix/ethernet_memory_leak' into 'master'
fix potential memory leak in ethernet driver

See merge request idf/esp-idf!3646
2018-11-13 15:53:47 +08:00
26626dfbf2 spi: add documents explicitly showing the executing core of the ISR
It is an ESP specific FreeRTOS feature that the ISR is always executed
on the core which calls the interrupt register function. In the SPI
driver, the function is always called in the bus initialization
function.

Hence, the ISR will be executed on the core which initialize the driver.

If the core is starved due to higher priority ISRs, or the interrupt is
disabled on the core (spinlock called, etc.), the ISR will not get
executed and SPI transactions will not be handled.

(MINOR CHANGE)

Resolves https://github.com/espressif/esp-idf/issues/2432.
2018-11-13 11:49:31 +08:00
a52ab8ca87 spi_master: modify the error msg a little when over freq limit
The MISO signal will be delayed if the GPIO matrix is enabled.
However, delay also comes from the slave.

Previous code only considers the former case, and assume the frequency
limitations is only violated when GPIO matrix is used.

Now we are able to calculate the freq limit when extenal MISO delay is
given (feature introduced in 9c6c6ec34ab0641ace89aeb9b1a133eb6fae1a18).
The frequency limit is lower when the external MISO delay is large, and
the limit is likely to be violated even with IOMUX.

Resolves https://github.com/espressif/esp-idf/issues/2690.
2018-11-13 11:49:31 +08:00
356fe47ce1 spiffs: increase timeout in readdir test
Timeout of 15 seconds is not sufficient if SPIFFS partition needs to
be formatted, on some of the boards.
2018-11-13 11:41:19 +08:00
08ef71b386 1.Update 8 English cmake files
2.Provide Chinese translation to these 8 cmake files
2018-11-13 11:38:23 +08:00
5fccb73f86 ethernetif: fix potential memory leak
1. If L2_TO_L3_RX_BUF_MODE is not selected, we must assign l2_owner explictly before we call pbuf_free.
2. free intr resource in esp_eth_deinit

Closes https://github.com/espressif/esp-idf/issues/2670
2018-11-13 10:11:48 +08:00
beada90b06 Merge branch 'bugfix/cmake_utf_decode' into 'master'
tools: Fix Unicode decode error & indentation error

See merge request idf/esp-idf!3669
2018-11-13 09:54:28 +08:00
ef4a87d62e Merge branch 'bugfix/http_literal_caseinsensitive' into 'master'
Compare case-insensitive URI schemes

See merge request idf/esp-idf!3558
2018-11-12 17:03:06 +08:00
df8feaa5c2 Update translation based on review 2018-11-12 16:16:52 +08:00
7efb3926c5 Merge branch 'feature/build_system_multi_target' into 'master'
build system: support for multiple targets (CMake only)

See merge request idf/esp-idf!3499
2018-11-12 15:30:36 +08:00
c7fb749b84 Merge branch 'bugfix/btdm_fix_memory_leak_in_v3.2' into 'master'
Component/bt: fix memory leak in service change char

See merge request idf/esp-idf!3631
2018-11-12 11:27:00 +08:00
ccb3841a9e Merge branch 'feature/btdm_add_vendor_hci_cmd' into 'master'
component/bt: add vendor hci cmd

See merge request idf/esp-idf!3577
2018-11-12 11:26:35 +08:00
933dc75294 update translation 2018-11-12 10:15:20 +08:00
1e99e61c33 Merge branch 'bugfix/uart_examples_match_template' into 'master'
examples: Fix UART examples to match the template

See merge request idf/esp-idf!3642
2018-11-12 09:19:14 +08:00
521fb5d906 Merge branch 'feature/update_board_guides_for_headers' into 'master'
Feature/update board guides for headers

See merge request idf/esp-idf!3590
2018-11-12 09:15:29 +08:00
be0123e10e Feature/update board guides for headers 2018-11-12 09:15:29 +08:00
3685d325d8 Merge branch 'bugfix/multiple_github_pr' into 'master'
Multiple github PR's

See merge request idf/esp-idf!3665
2018-11-12 09:14:35 +08:00
a96deceb27 Merge branch 'feature/cmake_secure_boot_support' into 'master'
CMake : Secure Boot support added

See merge request idf/esp-idf!3522
2018-11-12 09:09:30 +08:00
ccfa134533 build system: support for multiple targets 2018-11-11 21:46:02 +08:00
e2ca285fae confgen.py: allow multiple defaults files 2018-11-11 21:44:35 +08:00
4fe3673f35 lwip: fix crash caused by sys_mbox_free
Fix lwip crashed bug caused by sys_mbox_free()
2018-11-11 12:15:51 +08:00
a0ab2a15d2 add translation 2018-11-09 19:54:43 +08:00
9859428606 Merge branch 'bugfix/btdm_add_scan_window_interval_check' into 'master'
Component/bt: add scan window and interval check when set scan params

See merge request idf/esp-idf!3581
2018-11-09 19:32:11 +08:00
zwj
baf57b9702 component/bt: add vendor hci cmd 2018-11-09 14:39:04 +08:00
fb3aa88565 Component/bt: add BLE Blocking APIs 2018-11-09 03:31:08 +00:00
90a4e37acd examples: Fix UART examples to match the template 2018-11-08 20:06:03 +01:00
f4cfca4353 tools: Fix UTF decode error 2018-11-08 13:02:03 +01:00
f85f64b481 docs: corrected typo event_handler
esp_http_client_config_t has member event_handler not event_handle

Merges https://github.com/espressif/esp-idf/pull/2662
2018-11-08 15:57:13 +05:30
0c9f7271a9 Add checks to for CONFIG_MBEDTLS_SSL_ALPN
Merges https://github.com/espressif/esp-idf/pull/2569
2018-11-08 15:57:13 +05:30
b5c58557fc bt: Fix bracket warning
Merges https://github.com/espressif/esp-idf/pull/2568
2018-11-08 15:57:12 +05:30
3ed0f7697d examples: Correct Content-Length in openssl_server example
Before this fix it didn't send all of the response, ending with `</h`

Merges https://github.com/espressif/esp-idf/pull/2535
2018-11-08 15:57:12 +05:30
049c9f7bea esp_http_client: Fix infinite loop on esp_http_client_fetch_headers
error must also be returned if esp_tls_conn_read return 0 because socket  was closed

Merges https://github.com/espressif/esp-idf/pull/2534
2018-11-08 15:57:11 +05:30
b358581ab8 heap: Compile heap_task_info.c conditionally on CONFIG_HEAP_TASK_TRACKING in heap CMakeLists.txt
Merges https://github.com/espressif/esp-idf/pull/2498
2018-11-08 15:57:11 +05:30
288d9b75e9 rtc_clk: bugfix: incorrect divider setting in rtc_clk_cpu_freq_to_config()
Merges https://github.com/espressif/esp-idf/pull/2404
2018-11-08 15:57:10 +05:30
17177e352b examples: Fixing possible memory leak, not freeing "run_time" prior to returning
Merges https://github.com/espressif/esp-idf/pull/2367
2018-11-08 15:57:00 +05:30
1b7a4758e3 Merge branch 'bugfix/fix_ble_examples' into 'master'
examples/bluetooth: Miscellaneous fixes in some of the examples

See merge request idf/esp-idf!3549
2018-11-08 18:09:29 +08:00
71f1a34540 Merge branch 'feature/btdm_support_oob_in_SMP' into 'master'
Component/bt: support OOB in SMP

See merge request idf/esp-idf!3496
2018-11-08 16:44:15 +08:00
c15e7b18f8 Merge branch 'doc/create_example_zh_CN' into 'master'
translation of creating-examples.rst

See merge request idf/esp-idf!3391
2018-11-08 10:23:14 +08:00
71b9720309 doc/console: translate console.rst into zh_CN 2018-11-07 17:27:15 +08:00
df9d1cc5d4 doc:update_creating_example_cn 2018-11-07 17:18:51 +08:00
5fd76d7490 doc: document of creating-examples_zh_CN
Translated the document of creating-examples into Chinese
2018-11-07 17:17:44 +08:00
05838641ff Merge branch 'bugfix/mesh_start_stop' into 'master'
mesh: update libs

See merge request idf/esp-idf!3569
2018-11-07 14:29:27 +08:00
2d34a93dc4 mesh: update libs
1. fix ap_loss that occurs when the parent turns off the mesh function and becomes a normal WiFi with a different SSID.
2. add an event MESH_EVENT_NETWORK_STATE that contains information about whether there is a root in the current network.
3. modify the mechanism of mesh IE update.
4. fix a problem in the process of re-voting to select the root, the device that does not meet the conditions of being a root votes for itself.
5. fix an issue that occurs in esp_mesh_recv_toDS() when stopping the mesh.
6. when the user specifies a parent for the device, the device will set the authmode and password of its AP mode to the same value as the specified parent.
7. add two disconnected reason codes MESH_REASON_EMPTY_PASSWORD and MESH_REASON_PARENT_UNENCRYPTED.
2018-11-06 22:55:48 +08:00
b5d7541c09 Merge branch 'bugfix/fix_bt_btc_gatts_arg_deep_copy' into 'master'
components/bt: Fix btc_gatts_arg_deep_copy() and bta_gatts_indicate_handle()

See merge request idf/esp-idf!3058
2018-11-06 21:01:54 +08:00
2c353edbc4 components/bt: Fix btc_gatts_arg_deep_copy() and bta_gatts_indicate_handle() 2018-11-06 21:01:54 +08:00
621e316725 Merge branch 'feat/psram_support_hspi' into 'master'
esp32: support to use hspi to output clock for 4M psram

See merge request idf/esp-idf!3377
2018-11-06 20:34:41 +08:00
1f6622b2d1 CMake : Secure Boot support added 2018-11-06 17:09:55 +05:30
17c70a4a32 Merge branch 'bugfix/wifi_do_not_load_phy_data_if_fail_to_open_nvs' into 'master'
esp32: do not try to load PHY data if fail to open NVS

See merge request idf/esp-idf!3538
2018-11-06 18:01:58 +08:00
888406231c Merge branch 'bugfix/btdm_fuction_in_isr_is_not_in_iram' into 'master'
components/bt: Put function in isr into iram

See merge request idf/esp-idf!3619
2018-11-06 17:13:34 +08:00
77668b3912 Component/bt: add scan window and interval check when set scan params 2018-11-06 08:45:25 +00:00
2e139c7885 Component/bt: fix memory leak in service change char 2018-11-06 08:43:59 +00:00
85d63871ab Merge branch 'feature/partition_api_example' into 'master'
Add partition API examples

See merge request idf/esp-idf!3427
2018-11-06 12:24:27 +08:00
28f1e1597b Merge branch 'bugfix/tickless_idle_single_core' into 'master'
freertos, pm: fix tickless idle not entered in single core mode

See merge request idf/esp-idf!3584
2018-11-06 12:15:03 +08:00
35d1c7b173 Merge branch 'bugfix/freertos_idle_tick_count' into 'master'
freertos: use xTaskQueueMutex to protect tick count

See merge request idf/esp-idf!3478
2018-11-06 12:14:51 +08:00
ddfd62ee66 Merge branch 'bugfix/register_map_LAN8720' into 'master'
ethernet: fix some bugs in Ethernet driver

See merge request idf/esp-idf!3490
2018-11-06 12:13:47 +08:00
ded53bd0ff Merge branch 'bugfix/btdm_allow_a2dp_codec_dynamic_alloc' into 'master'
bugfix/btdm_allow_a2dp_codec_dynamic_allocated

See merge request idf/esp-idf!3598
2018-11-06 11:56:30 +08:00
b6d7675e60 ethernet: fix some bugs in phy&mac driver
1. Original register mapping for LAN8720 has some registers that doesn't exist/support.
So just remove them, and fix the power and init function for LAN8720.
2. GPIO16 and GPIO17 is occupied by PSRAM, so only ETH_CLOCK_GPIO_IN mode is supported in that case if using PSRAM.
3. Fix bug of OTA failing with Ethernet
4. Fix bug of multicast with Ethernet

Closes https://github.com/espressif/esp-idf/issues/2564
Closes https://github.com/espressif/esp-idf/issues/2620
Closes https://github.com/espressif/esp-idf/issues/2657
2018-11-06 11:07:22 +08:00
364f033a49 Merge branch 'feature/vfs_utime' into 'master'
VFS: Implement utime() for FATFS and SPIFFS

See merge request idf/esp-idf!3610
2018-11-06 10:47:02 +08:00
10ada5d106 Merge branch 'bugfix/ut_add_job' into 'master'
ci: add unit test job

See merge request idf/esp-idf!3634
2018-11-06 10:45:24 +08:00
f43965e086 Merge branch 'doc/partition_tables_zh_CN' into 'master'
translation of partition-tables.rst

See merge request idf/esp-idf!3457
2018-11-06 10:45:11 +08:00
344cb22d41 ci: add unit test job 2018-11-05 23:19:30 +08:00
e4b68c49f2 Merge branch 'bugfix/py3_ci_enable' into 'master'
Enable Python 3 bot tests in master

See merge request idf/esp-idf!3615
2018-11-05 19:49:32 +08:00
37da77315c Merge branch 'doc/storage_example_readme' into 'master'
examples/storage: adjust readme files according to standard

See merge request idf/esp-idf!3594
2018-11-05 19:33:16 +08:00
9894d35839 (doc)update_CN/EN_partition_tables 2018-11-05 18:58:54 +08:00
d61680b211 doc/partition-tables: translation of zh_CN
1. Translated partition-tables.rst into Chinese.
2. Fixed some error in the English version.
2018-11-05 18:58:22 +08:00
761d44bd36 Merge branch 'bugfix/xts_compile_err' into 'master'
mbedtls: Fix compilation errors when CONFIG_MBEDTLS_HARDWARE_AES is disabled

See merge request idf/esp-idf!3506
2018-11-05 16:58:38 +08:00
fb334baa7c VFS: Implement utime() 2018-11-05 09:54:01 +01:00
ada3bc3fb5 Merge branch 'bugfix/aes_sha_mpi_shared_regs' into 'master'
aes/sha/mpi: Bugfix a use of shared registers.

See merge request idf/esp-idf!3580
2018-11-05 16:31:03 +08:00
e77d15042d CI: Update Python 3 ignore list 2018-11-05 08:11:02 +01:00
d4ba3bd2eb idf_ext.py: Fix Python 3 compatibility issue 2018-11-05 08:11:02 +01:00
ea963c480c driver(uart):update the comment of uart_set_wakeup_threshold
closes https://github.com/espressif/esp-idf/issues/2627
2018-11-05 13:09:12 +08:00
27ef831bcd examples/storage: adjust readme files according to standard 2018-11-05 12:42:41 +08:00
13046e7625 Merge branch 'bugfix/esp-tls-doc' into 'master'
esp-tls: Fix documentaion issue in esp_tls_conn_new_async API

See merge request idf/esp-idf!3545
2018-11-05 12:30:22 +08:00
ee0dea3d0d Merge branch 'bugfix/esp_http_client_async_crash' into 'master'
esp_http_client: Fix crash in async mode

See merge request idf/esp-idf!3551
2018-11-05 12:30:04 +08:00
8bba348528 aes/sha/mpi: Bugfix a use of shared registers.
This commit resolves a blocking in esp_aes_block function.

Introduce:
The problem was in the fact that AES is switched off at the moment when he should give out the processed data. But because of the disabled, the operation can not be completed successfully, there is an infinite hang. The reason for this behavior is that the registers for controlling the inclusion of AES, SHA, MPI have shared registers and they were not protected from sharing.

Fix some related issue with shared using of AES SHA RSA accelerators.

Closes: https://github.com/espressif/esp-idf/issues/2295#issuecomment-432898137
2018-11-05 04:22:47 +00:00
fb7ba1baa0 Merge branch 'bugfix/unit_test_adjtime' into 'master'
Resolve ""test for thread safety adjtime and gettimeofday functions" fails randomly"

Closes #37

See merge request idf/esp-idf!3613
2018-11-05 12:20:07 +08:00
0716e65955 pm: prevent entering light sleep again immediately after wakeup
When light sleep is finished on one CPU, it is possible that the other
CPU will enter light sleep again very soon, before interrupts on the
first CPU get a chance to run. To avoid such situation, set a flag
for the other CPU to skip light sleep attempt.
2018-11-05 12:18:29 +08:00
22dd3103bd pm: fix entering light sleep in single core mode
Tickless idle/light sleep procedure had a bug in single core mode.
Consider the flow of events:
1. Idle task runs and calls vApplicationIdleHook
2. This calls esp_vApplicationIdleHook, which calls esp_pm_impl_idle_hook, and pm lock for RTOS on the current core is released.
3. Then esp_vApplicationIdleHook calls esp_pm_impl_waiti, which checks that s_entered_light_sleep[core_id]==false and goes into waiti state.
4. Some interrupt happens, calls esp_pm_impl_isr_hook, which takes pm lock for RTOS. PM state goes back to CPU_FREQ_MAX.
5. Once the interrupt is over, vApplicationIdleHook returns, and Idle task continues to run, finally reaching the call to vApplicationSleep.
6. vApplicationSleep does not enter light sleep, because esp_pm_impl_isr_hook has already changed PM state from IDLE to CPU_FREQ_MAX.

This didn’t happen in dual core mode, because waiti state of one CPU was interrupted by CCOMPARE update interrupt from the other CPU, in which case PM lock for FreeRTOS was not taken.

Fix by inverting the meaning of the flag (for convenience) and only setting it to true when vApplicationSleep actually fails to enter light sleep.
2018-11-05 12:18:29 +08:00
ae08bdcc31 freertos: fix compilation warning in single core mode
When tickless idle is enabled
2018-11-05 12:18:29 +08:00
b7841ec313 freertos: use xTaskQueueMutex to protect tick count
Having two different spinlocks is problematic due to possibly
different order in which the locks will be taken. Changing the order
would require significant restructuring of kernel code which is
undesirable.

An additional place where taking xTickCountMutex was needed was in
vApplicationSleep function. Not taking xTickCountMutex resulted in
other CPU sometimes possibly advancing tick count while light sleep
entry/exit was happening. Taking xTickCountMutex in addition to
xTaskQueueMutex has shown a problem that in different code paths,
these two spinlocks could be taken in different order, leading to
(unlikely, but possible) deadlocks.
2018-11-05 03:08:26 +00:00
4f4bed5e65 Merge branch 'test/change_iperf_test_env' into 'master'
test: use simplified env to test iperf cases

See merge request idf/esp-idf!3554
2018-11-05 11:05:45 +08:00
242724bbe9 Merge branch 'test/fix_bug_of_scan_interval_and_windows' into 'master'
test: fix bug of scan interval and window

See merge request idf/esp-idf!3606
2018-11-05 11:00:58 +08:00
7c5fd9326a Merge branch 'bugfix/ci_make_html' into 'master'
ci: revert accidental change from f0eb9985b9

See merge request idf/esp-idf!3607
2018-11-02 20:38:16 +08:00
b33cdfc1f5 components/bt: Put function in isr into iram 2018-11-02 16:37:52 +08:00
930da8fd31 Merge branch 'bugfix/iperf_bt_error_when_wifi_connect' into 'master'
components/bt: Point ACL RX buffer ptr to ACL RX buffer if ACL RX buffer ptr is null

See merge request idf/esp-idf!3536
2018-11-02 16:12:31 +08:00
7d465a5487 Merge branch 'bugfix/event_perf_test_psram' into 'master'
esp_event: lower test performance threshold for PSRAM config

Closes #34

See merge request idf/esp-idf!3603
2018-11-02 14:12:17 +08:00
74d8806af0 Merge branch 'bugfix/build_example_make' into 'master'
Better detection failures in built_examples

See merge request idf/esp-idf!3604
2018-11-02 13:04:40 +08:00
3f82d21d0e Merge branch 'test/fix_unit_test_script_cant_process_test_command' into 'master'
test: fix UT script can't process cmd after reset

See merge request idf/esp-idf!3372
2018-11-02 13:02:42 +08:00
8e216e4832 Merge branch 'bugfix/example_tests_trow_readable_errors' into 'master'
MQTT Example tests cleanup, python 2 and 3 support

See merge request idf/esp-idf!3387
2018-11-01 22:28:31 +08:00
84f1eb5eac newlib: Fix UT adjtime 2018-11-01 20:34:39 +08:00
f2309f1013 components/bt: Point ACL RX buffer ptr to ACL RX buffer if ACL RX buffer ptr is null
1. When WIFI task or other high priority task blocks the Bluetooth task, ACL RX buffer will use up, ACL RX buffer ptr will point to null and will never point to a valid adress. Causing errors in Bluetooth.
2. hcimsgs.h used whether flow control is on or off
2018-11-01 17:33:44 +08:00
8ce1f55b59 mqtt: example tests refactored to provide descriptive failures, addapted to python23, removed workarround for launching without mqtt-paho package 2018-11-01 09:04:09 +01:00
12b2268ee5 Merge branch 'bugfix/btdm_sniff_anchor_point_calculation_error' into 'master'
bugfix/btdm_sniff_anchor_point_calculation_error

See merge request idf/esp-idf!3582
2018-11-01 15:58:00 +08:00
a60a71ff07 Merge branch 'bugfix/btdm_name_buffer_allocation_size_differs' into 'master'
components/bt: Fix the different size of name buffer allocation size

See merge request idf/esp-idf!3587
2018-11-01 15:56:45 +08:00
cac7b951a8 Merge branch 'bugfix/btdm_fix_get_attr_value_error' into 'master'
Component/bt: fix get attr value API error

See merge request idf/esp-idf!3583
2018-11-01 15:55:22 +08:00
b601fcfde0 Merge branch 'bugfix/btdm_fix_ble_cannt_send_or_receive_packet_sometimes' into 'master'
Component/bt: fix ble cannot send or receive packet sometimes

See merge request idf/esp-idf!3585
2018-11-01 15:55:05 +08:00
fbcc160675 mbedtls: Fix compilation errors when CONFIG_MBEDTLS_HARDWARE_AES is disabled 2018-11-01 12:08:45 +05:30
d98d1ef1c2 Merge branch 'bugfix/bootloader_iram_overlap_check' into 'master'
bootloader: verify that loaded image does not overlap bootloader code

See merge request idf/esp-idf!3409
2018-11-01 13:56:43 +08:00
d28c99d36c esp_event: lower test performance threshold for PSRAM config 2018-11-01 13:50:08 +08:00
b9366d2c64 ci: revert accidental change from f0eb9985b9 2018-11-01 12:56:07 +08:00
cd38970ef9 Merge branch 'bugfix/wl_version_update' into 'master'
Version update from V1 to V2 now done in correct way.

See merge request idf/esp-idf!3557
2018-11-01 12:50:49 +08:00
c18890875e Merge branch 'doc/issue_template_compiler_version' into 'master'
doc: include compiler version in issue template

See merge request idf/esp-idf!3357
2018-11-01 12:16:30 +08:00
d336f1513f test: fix bug of scan interval and window 2018-11-01 11:54:52 +08:00
0fb6f619c5 ci: Detect undetectable failures in build_examples 2018-11-01 11:38:41 +08:00
124919bfc6 ci: Count build_example jobs in decimal instead of octal 2018-11-01 10:52:19 +08:00
373f1c121b component/bt: bugfix of error when entering sniff mode with attempt large than 0xFF 2018-10-31 16:16:49 +00:00
159d4ac742 component/bt: bugfix for the error in calculation sniff anchor point which can result in supervision timeout after connection is brought into sniff mode 2018-10-31 16:16:49 +00:00
1716d12547 Component/bt: fix ble cannot send or receive packet sometimes 2018-10-31 16:13:51 +00:00
7bb83b0056 component/bt: allow dynamic allocation of SBC encoder/decoder buffer used in A2DP to save internal DRAM 2018-10-31 16:11:49 +00:00
a4357aed91 Merge branch 'fix/spi_test_memory_layout' into 'master'
test: fix the unit test fail issue under single_core config

See merge request idf/esp-idf!3596
2018-10-31 21:37:56 +08:00
dba29eeb2e Merge branch 'bugfix/btdm_change_default_CoD_of_BT_profile' into 'master'
components/bt: Set default Class of Device of BT profile

See merge request idf/esp-idf!3564
2018-10-31 20:51:15 +08:00
e19a352a2b components/bt: Fix the different size of name buffer allocation size
Close https://github.com/espressif/esp-idf/issues/2615
2018-10-31 17:39:31 +08:00
39c03558e8 Merge branch 'bugfix/btdm_add_attr_handle_for_ESP_GATTS_CONF_EVT' into 'master'
Component/bt: add attr_handle for ESP_GATTS_CONF_EVT

See merge request idf/esp-idf!3492
2018-10-31 17:20:47 +08:00
4132834faa test: fix the unit test fail issue under single_core config
Introduced in 97e3542947.

The previous commit frees the IRAM part when single core, but doesn't
change the memory layout functions. The unit test mallocs IRAM memory
from the heap, accidently into the new-released region, which doesn't
match the memory layout function.

This commit update the memory layout function to fix this.
2018-10-31 17:04:32 +08:00
a51d5706f6 Merge branch 'bugfix/minor_doc_fixes' into 'master'
Documentation fixes

See merge request idf/esp-idf!3529
2018-10-31 13:23:58 +08:00
e4369aaed4 Merge branch 'feature/mqtt_mutual_auth' into 'master'
MQTT: Added client cert ssl example per PR from GitHub

See merge request idf/esp-idf!3473
2018-10-31 07:06:58 +08:00
3551b84c3a esp_http_client: Fix crash in async mode
Closes https://github.com/espressif/esp-idf/issues/2624
2018-10-30 09:58:57 +00:00
97e3542947 Merge branch 'bugfix/release_some_memory_on_single_core_mode' into 'master'
release memory not used in single core mode

See merge request idf/esp-idf!2733
2018-10-30 15:53:31 +08:00
f6dd3520c4 Merge branch 'bugfix/assert_when_do_wps_with_mikrotik' into 'master'
wifi: bugfix of assert when do wps with mikrotik

See merge request idf/esp-idf!3572
2018-10-30 15:52:02 +08:00
d335bdcf71 Merge branch 'bugfix/btdm_reduce_iram_size' into 'master'
components/bt: Reduce IRAM size

See merge request idf/esp-idf!3574
2018-10-30 15:17:06 +08:00
0cdb33c9dd mqtt: ssl mutual authentication example added per PR from github, corrected cmake build, updated per idf style
Merges https://github.com/espressif/esp-idf/pull/2490
2018-10-30 08:04:09 +01:00
49df479486 mqtt: Add ssl mutual authentication example
Signed-off-by: David Cermak <cermak@espressif.com>
2018-10-30 08:04:09 +01:00
9ce8e1e5a1 transport_ssl: add support for mutual SSL authentication
Signed-off-by: David Cermak <cermak@espressif.com>
2018-10-30 08:04:09 +01:00
dec70a7601 esp-tls: add support for mutual SSL authentication
Signed-off-by: David Cermak <cermak@espressif.com>
2018-10-30 08:04:09 +01:00
950fe25120 Component/bt: fix get attr value API error 2018-10-30 15:00:23 +08:00
b650d19c6b Merge branch 'bugfix/docs_fixes_from_github' into 'master'
Documentation bugfixes from GitHub

See merge request idf/esp-idf!3570
2018-10-30 07:40:16 +08:00
b8784a1863 wifi: bugfix of assert when do wps with mikrotik
Problem Decribe

The problem happenned when do wps with a mikrotik router
1. router always want to do connect with 32 without EAP-WSC step
2. after 4 way timeour, 32 crash

Root Cause

The reason why can not start EAP-WSC step is router's check method is RSN > WPA > WPS, when it found there include RSN and WPS in assoc, it will choice do 4 way rather than WPS
The reason of second problem is 32's EAPOL start timer didn't stop and send EAPOL start to a null pointer

Soultion
1. remove RSN and WPA ie when do WPS step
2. check mac address's pointer before send EAPOL start

closes: https://github.com/espressif/esp-idf/issues/2382
2018-10-29 13:29:41 +00:00
ff346f92af psram: add test for 4M psram 2018-10-29 20:26:30 +08:00
20a666fe03 esp32: support to use hspi to output clock for 4MB PSRAM
Resolves https://github.com/espressif/esp-idf/issues/2128.
2018-10-29 20:22:44 +08:00
9b5d0f3322 spi: shown owner of spi host explicitly 2018-10-29 20:22:44 +08:00
df5839420d components/bt: Reduce IRAM size
libbtdm: 2608B
idf: 924B
2018-10-29 16:54:32 +08:00
98a80ccdab Merge branch 'bugfix/mdns_crash_on_network_change' into 'master'
Fixed mdns crashes on network changes

See merge request idf/esp-idf!3546
2018-10-29 16:31:52 +08:00
11082598d6 Merge branch 'bugfix/doc_provisioning' into 'master'
Docs : Provisioning docs and READMEs updated with links to phone apps

See merge request idf/esp-idf!3511
2018-10-29 14:56:32 +08:00
55dfb79e91 examples/bluetooth: Miscellaneous fixes in some of the examples
This closes:
https://github.com/espressif/esp-idf/issues/2617
https://github.com/espressif/esp-idf/issues/2622

Signed-off-by: Hrishikesh Dhayagude <hrishi@espressif.com>
2018-10-29 11:14:09 +05:30
901e2af793 esp32: do not try to load PHY data if fail to open NVS 2018-10-29 02:24:58 +00:00
7efbe8178b Merge branch 'feat/sdio_slave_init_doc' into 'master'
sdio_slave: add documentation for the standard init process

See merge request idf/esp-idf!3548
2018-10-29 09:07:30 +08:00
6a197d305f Fix some typos related to ethernet documentation and Kconfig. Closes https://github.com/espressif/esp-idf/pull/2642 2018-10-28 21:12:09 +01:00
618236d8ff Fixed spelling in build-system.rst. Closes https://github.com/espressif/esp-idf/pull/2641 2018-10-28 21:07:48 +01:00
67e62aa105 components/bt: Set default Class of Device of BT profile
The CoD of each profile both are 0x2c0414, now they are as follow:
A2DP sink:   0x240414
A2DP source: 0x280400
HFP:         0x200408
SPP:         0x001F00
2018-10-26 17:03:39 +08:00
7fe4f987fd sdio_slave: add documentation for the standard init process 2018-10-26 16:56:18 +08:00
eac02c2fcd test: use simplified env to test iperf cases 2018-10-26 16:53:57 +08:00
2b4e34171b test: fix UT script can't process cmd after reset:
There's still a small chance that can't process command issue still
happen on some runners. Now we change the way to detect if the runner
reset finished: input `-` to check test history for a few times until it
succeeded. If DUT can process check history command, then it should be
able to process other test commands.
2018-10-26 08:42:22 +00:00
9459526e50 examples: Add partition API examples 2018-10-26 15:46:53 +08:00
82eca97300 Version update from V1 to V2 now done in correct way.
Before this works only first time.
The source and test updated.
State length was changed to macro.
2018-10-26 09:21:30 +03:00
f55509bd3f Merge branch 'bugfix/py3_ci' into 'master'
Fix Python3 compatibility issues

See merge request idf/esp-idf!3487
2018-10-26 13:45:19 +08:00
bd90f534fb Merge branch 'feature/esp_event_loop_library' into 'master'
event: Implement event loop library

See merge request idf/esp-idf!2881
2018-10-26 13:14:19 +08:00
5a83347bec event: Implement event loop library 2018-10-26 13:14:19 +08:00
cdb10ec5ad Merge branch 'bugfix/rename_http_server' into 'master'
Rename http_server component to esp_http_server

See merge request idf/esp-idf!3553
2018-10-26 12:59:38 +08:00
76fcee55a6 Merge branch 'bugfix/idf_pyserial_error' into 'master'
idf.py: Import from pyserial after packages have been checked

See merge request idf/esp-idf!3519
2018-10-26 12:58:03 +08:00
9eeec5d7da doc: include compiler version in issue template 2018-10-26 12:47:32 +08:00
73d1b5a7a0 bootloader: verify that loaded image does not overlap bootloader code
Fixes CVE-2018-18558
2018-10-26 12:44:10 +08:00
0a2049582e bugfix: minor_doc_fixes into Chinese 2018-10-26 12:42:38 +08:00
338012b776 docs: use generated links in CMake getting started guides 2018-10-26 12:42:38 +08:00
5a3c0d8adf esp_timer: document limitations on timeout/period
Closes https://github.com/espressif/esp-idf/issues/2572
Closes https://github.com/espressif/esp-idf/issues/2350
2018-10-26 12:42:38 +08:00
c8fe9f696c docs: fix instructions for building toolchain on macOS
Closes https://github.com/espressif/esp-idf/issues/503
Closes https://github.com/espressif/esp-idf/issues/2607
2018-10-26 12:42:38 +08:00
d3f5882ed7 docs: fix git submodule update command
Closes https://github.com/espressif/esp-idf/issues/2584
2018-10-26 12:42:38 +08:00
5bcd864430 Merge branch 'fix/spi_polling_speed_test' into 'master'
spi: speed up polling performance and fix several tests

Closes #33

See merge request idf/esp-idf!3530
2018-10-26 12:41:00 +08:00
705d184af2 Merge branch 'bugfix/missing_header_file' into 'master'
esp32: Add missing header file in esp_task.h

See merge request idf/esp-idf!3353
2018-10-26 12:19:50 +08:00
b47aca1175 doc: Fix doc builds on Windows MINGW32, add some doc build documentation
Using "find" doesn't work properly in MINGW32 Python, even if a MINGW32 find.exe
is on the PATH...
2018-10-26 04:04:56 +00:00
1e0ba34177 Merge branch 'ci/only_create_required_jobs_in_pipeline' into 'master'
CI: only create required jobs when use bot to trigger test

See merge request idf/esp-idf!3404
2018-10-26 11:56:22 +08:00
c884d0a3bc Merge branch 'bugfix/fix_some_wifi_bugs_1022' into 'master'
esp32: fix some wifi bugs

See merge request idf/esp-idf!3539
2018-10-26 11:50:44 +08:00
93dbf2f3ba Merge branch 'bugfix/btdm_read_multiple_return_callback_status_ESP_GATT_STACK_RSP' into 'master'
Component/bt: fix read multiple return callback status: ESP_GATT_STACK_RSP

See merge request idf/esp-idf!3437
2018-10-26 11:41:18 +08:00
0bc364f7ea Merge branch 'bugfix/btdm_add_sniff_mode_to_spp' into 'master'
components/bt: Add sniff mode to SPP

See merge request idf/esp-idf!3472
2018-10-26 11:38:50 +08:00
762c04bd61 Merge branch 'bugfix/btdm_disconnect_ble_when_ESP_BLE_SM_ONLY_ACCEPT_SPECIFIED_SEC_AUTH_failed' into 'master'
Component/bt: add ble disconnect when ACCEPT_SPECIFIED_SEC_AUTH failed

See merge request idf/esp-idf!3465
2018-10-26 11:34:26 +08:00
6e6f07ba59 http: Compare case-insensitive URI schemes like as in other places 2018-10-25 21:03:44 +08:00
e37aba0d93 esp-tls: Fix documentaion issue in esp_tls_conn_new_async API
Closes https://github.com/espressif/esp-idf/issues/2576
2018-10-25 09:13:49 +00:00
8404b2546d esp32: fix some wifi bugs
Fix following WiFi bugs:
1. Fix the bug that MIC verification fails on soft-AP mode
2. Modify mesh root to have same behavior as normal WiFi STA in state change
3. Fix the bug that sniffer can't catch control packets
4. Fix crash bug in soft-AP mode
5. Fix ACM(Admission Control Management) bug
2018-10-25 16:47:57 +08:00
822de0d038 Merge branch 'bugfix/btdm_fix_remove_bond_list_failed' into 'master'
component/bt: fix remove bond list failed

See merge request idf/esp-idf!3475
2018-10-25 15:14:14 +08:00
4e81705ca2 Component/bt: support OOB in SMP 2018-10-25 07:09:59 +00:00
f59358dad3 idf.py: Import from pyserial after packages have been checked
Closes https://github.com/espressif/esp-idf/issues/2573
2018-10-25 08:38:00 +02:00
6b96a3c23b Component/bt: add ble disconnect when ACCEPT_SPECIFIED_SEC_AUTH failed 2018-10-25 06:03:16 +00:00
90d229eb6d spi_master: speed up polling performance by putting into IRAM 2018-10-25 12:31:45 +08:00
d0361a32d7 test: fix the IRAM type conflict issue using heap_caps_malloc 2018-10-25 12:31:44 +08:00
zwj
501ebabc4e component/bt: fix remove bond list failed 2018-10-24 23:23:50 +00:00
e2b1ae259d Protocomm : Use esp_http_server instead of http_server 2018-10-24 17:32:43 +05:30
12b60c51be HTTP Server Docs : Replace http_server with esp_http_server 2018-10-24 17:32:43 +05:30
8340ed3ddb HTTP Server Examples : Include header esp_http_server.h 2018-10-24 17:32:43 +05:30
2af9d7e0ed HTTP Server : Added esp_ prefix to http_server component files 2018-10-24 17:32:20 +05:30
097282a8e3 mdns: fixed crashes on network changes
1) two events AP_STOP, AP_START shortly after each other may cause IGMP config on already stopped netif
2) not properly locked sending packets to queue from timer task

closes #2580
2018-10-24 12:03:41 +02:00
9daf51e6be Fix Python 3 compatibility issues 2018-10-24 11:20:54 +02:00
722a7e3b53 CI: only create required jobs when use bot to trigger test:
Gitlab CI now allow us to define if a job need to be created by
varialbes. This commit add label to CI jobs, so we can make some jobs
not created in certain scenarios when we trigger pipeline with @bot.
2018-10-24 09:19:39 +00:00
7c29a39d6f Merge branch 'feature/ci_multi_python' into 'master'
CI: Support switching between various versions of Python

See merge request idf/esp-idf!3520
2018-10-24 17:00:38 +08:00
0de637cf9e Merge branch 'bugfix/tw26711_fix_wifi_memory' into 'master'
esp32: fix wifi memory leak

See merge request idf/esp-idf!3523
2018-10-22 21:20:14 +08:00
38bd836d05 Merge branch 'feature/cmake-unit-test' into 'master'
cmake: add unit tests build support

See merge request idf/esp-idf!3003
2018-10-22 16:29:15 +08:00
b964f389db Merge branch 'bugfix/gcc8_compatibility' into 'master'
gcc8 compatibility for master branch

See merge request idf/esp-idf!3481
2018-10-22 11:11:04 +08:00
44291e818e Merge branch 'feature/docs_getting_started_guides_cn' into 'master'
Added CN version of 'Getting Started' guides for 'ESP32-DevKitC' and 'ESP-WROVER-KIT'

See merge request idf/esp-idf!3408
2018-10-22 09:10:58 +08:00
46c2112400 Added CN version of 'Getting Started' guides for 'ESP32-DevKitC' and 'ESP-WROVER-KIT' 2018-10-22 09:10:58 +08:00
20217c7dfe esp32: fix wifi memory leak
Fix a WiFi memory leak bug
2018-10-21 20:37:08 +08:00
4319e234e2 tcp_transport: Remove the ignore warning because we had idf/esp-idf!3359 2018-10-21 15:11:45 +08:00
4a126e18ed docs: Correct Linux port names for more relevance 2018-10-21 15:11:45 +08:00
e3fce506b8 test_spi_slave: fix warnings about unused identifiers 2018-10-21 15:11:45 +08:00
ef84773689 intr: fix a type mismatch warning 2018-10-21 15:11:45 +08:00
92caddb501 pthread: fix a type mismatch warning 2018-10-21 15:11:45 +08:00
cc774111bf cmake: Add support for test build 2018-10-20 12:07:24 +08:00
824e5fac23 CI: Support switching between various versions of Python 2018-10-19 11:12:11 +02:00
44827bb681 Component/bt: add attr_handle for ESP_GATTS_CONF_EVT 2018-10-19 08:19:36 +00:00
129d32772e Merge branch 'feature/add_ping_packet_len_and_QoS' into 'master'
ping: add length and QoS

See merge request idf/esp-idf!3379
2018-10-19 15:29:58 +08:00
0663ab7609 Merge branch 'feature/uart_rs485_test' into 'master'
driver: rs485 test support

See merge request idf/esp-idf!2701
2018-10-19 13:05:55 +08:00
699070e3a0 Merge branch 'feature/simple_sniffer' into 'master'
wifi sniffer example

See merge request idf/esp-idf!3412
2018-10-19 12:42:32 +08:00
606acde236 Merge branch 'feature/freemodbus_slave_support_upd' into 'feature/uart_rs485_test'
examples: freemodbus port slave basic implementation

See merge request idf/esp-idf!3468
2018-10-19 12:35:00 +08:00
3e65ce3e93 Merge branch 'bugfix/unit_tests_tcpip_adapter' into 'master'
unit tests: Only initialise tcpip_adapter() when needed by the test

See merge request idf/esp-idf!3364
2018-10-19 12:33:09 +08:00
bd11965f6c Merge branch 'bugfix/ndebug_build' into 'master'
soc,sdmmc: fix build failures when NDEBUG is used

See merge request idf/esp-idf!3352
2018-10-19 11:55:37 +08:00
900b69a33e example: add console command for wifi sniffer
1. add mount/unmount command
2. add sniffer command, supporting options
3. make pcap a component
2018-10-19 11:51:56 +08:00
c02e218da1 Merge branch 'bugfix/asio_consistent_example_names' into 'master'
Renamed examples to be consistent no matter which build system used

See merge request idf/esp-idf!3257
2018-10-19 10:25:47 +08:00
c76f71cd5f Merge branch 'bugfix/move_ringbuf_lib_to_iram' into 'master'
esp_ringbuf: fix default placement from flash to IRAM

See merge request idf/esp-idf!3452
2018-10-18 22:57:46 +08:00
ebe0e2939a Merge branch 'bugfix/ci_missing_outputs' into 'master'
Tiny-test-fw: Fix string comparison which cases ignore of test cases

See merge request idf/esp-idf!3458
2018-10-18 22:41:48 +08:00
efa43df039 Merge branch 'bugfix/fix_random_failure_with_ota_updates' into 'master'
app_update: fix intermittent failure with firmware updates

See merge request idf/esp-idf!3401
2018-10-18 22:32:33 +08:00
f47ae9fc26 Merge branch 'bugfix/coex_hw_blocking_2nd' into 'master'
coexist : fix coexist bugs related to coex hw blocking

See merge request idf/esp-idf!3414
2018-10-18 21:25:24 +08:00
2bb669cfbd Docs : Provisioning docs and READMEs updated with links to GitHub repositories of Android and iOS apps 2018-10-18 18:23:03 +05:30
88d4217f07 Merge branch 'bugfix/fix_autoip_bug' into 'master'
fix the compile bug for autoip

See merge request idf/esp-idf!3450
2018-10-18 14:55:34 +08:00
edb59d0909 Merge branch 'bugfix/idf_tools_installer' into 'master'
IDF Tools Installer for Windows: Python requirements, ULP & openocd, signed installer

See merge request idf/esp-idf!3428
2018-10-18 14:22:15 +08:00
26845936b3 app_update: remove unrequired static attribute from mmap handle 2018-10-18 04:38:31 +00:00
b3aff63db4 app_update: fix intermittent failure with firmware updates
Routine `spi_flash_cache2phys` sometimes return incorrect value,
resulting in failure in getting currently running ota partition.
This in turn aborts firmware update process.This issue was more
prominent with SPIRAM enabled cases.

Fix ensures proper cache guards during `spi_flash_cache2phys`, and
also for few other similar APIs.

In addition, `esp_ota_get_running_partition` has also been optimized
to save currently running partition for subsequent invocations.

Fixes https://github.com/espressif/esp-idf/issues/2451
2018-10-18 04:38:31 +00:00
49130c6b34 esp_ringbuf: fix default placement from flash to IRAM
In earlier change this component was decoupled from freertos and hence
regression was introduced which changed default placement to flash. Some
device drivers make use of ringbuffer while flash cache is being disabled
and hence default placement should instead be internal memory.

Closes: https://github.com/espressif/esp-idf/issues/2517
2018-10-17 23:34:07 -05:00
d91b18080b unit test: split psram config into two configs to free up IRAM 2018-10-17 23:34:07 -05:00
6934a739d7 coexist : fix coexist bugs related to coex hw blocking
1. fix some bugs by previous coex hw blocking bugfix,
   such like, rwble.c (64, 0) line 222
2. fix bug that ble scan performance is very low when software coexist
   is working.
3. update libcoexist version to v1.1.0
2018-10-18 11:49:10 +08:00
18684f53ee Merge branch 'bugfix/uart_wait_idle' into 'master'
uart: fix uart_tx_wait_idle to wait for fifo empty

See merge request idf/esp-idf!3489
2018-10-18 11:25:59 +08:00
9b566a8965 Merge branch 'bugfix/wpa2_fixes' into 'master'
wpa2_enterprise fixes from Github

See merge request idf/esp-idf!3166
2018-10-18 11:10:10 +08:00
7f9dfc060c Merge branch 'mesh/bugfix_esp_ssid_ie' into 'master'
mesh: fix a bug in generating ESP-SSID IE

See merge request idf/esp-idf!3382
2018-10-18 11:06:44 +08:00
ca74afd5ca Merge branch 'feature/httpd_sock_err' into 'master'
HTTP Server : Return HTTPD_SOCK_ERR_ based on errno set during send / recv

See merge request idf/esp-idf!3445
2018-10-18 06:59:47 +08:00
dac6fd3434 cmake: Fix Windows issue running menuconfig in Command Prompt if winpty on Path
Previous version assumed having winpty on the Path meant that it would be needed,
but some tools (like Atlassian Sourcetree) permanently add winpty to the path.

Symptom is arrow keys not working in menuconfig dialog.
2018-10-18 09:56:16 +11:00
da0f9717be Sign IDF Tools installer with 'osslsigncode', update to V1.2
Uninstaller is still unsigned, as currently building and signing in 'wine'
and running Linux osslsigncode inside Inno Setup inside wine is awkward.

Closes https://github.com/espressif/esp-idf/issues/1909
TW20810
2018-10-18 09:56:16 +11:00
efd62a50b9 windows: Add License (GPL) display to IDF Tools installer 2018-10-18 09:56:16 +11:00
0798251355 windows: Add Python dependencies, openocd, and ULP to installer 2018-10-18 09:56:16 +11:00
9509c7c1c1 docs: Recommend native 'cryptography' package on Linux as well 2018-10-18 09:56:16 +11:00
159ff6e08e unit tests: Only initialise tcpip_adapter() when needed by the test
Prevents unexpected memory allocations when running tests which
don't require tcpip_adapter.
2018-10-17 22:53:46 +00:00
9784df1c3a asio: examples renamed to have consistent binary names when build in make and CMake 2018-10-17 15:00:26 +02:00
30ea8c7048 Component/bt: read multiple return callback status: ESP_GATT_STACK_RSP 2018-10-17 12:34:34 +00:00
a0961ad79c HTTP Server Docs : Updated to demonstrate handling of timeout errors 2018-10-17 17:36:50 +05:30
6a3fa5c180 HTTP Server Examples : Updated examples to manually return 408 and 500 errors 2018-10-17 17:36:50 +05:30
1437646ae0 HTTP Server : Automated 408 error response restricted to timeout in receiving packet header 2018-10-17 17:36:50 +05:30
ae5989528e HTTP Server : Added helper functions for sending HTTP error 408 and 500 2018-10-17 17:36:50 +05:30
30632c0c34 HTTP Server : Bug fixed in httpd_recv logic and updated function descriptions 2018-10-17 17:36:50 +05:30
7e04e283d5 HTTP Server : Use getsockopt instead of errno 2018-10-17 17:36:50 +05:30
47a106879a HTTP Server : Return HTTPD_SOCK_ERR_ based on errno set during send / recv
This feature allows `httpd_req_recv()` and `httpd_send()` functions to return
specific `HTTPD_SOCK_ERR_` codes in case of socket errors. This is useful
in case of errors like `EAGAIN`, `EINTR`, etc. when the user may want to
retry `httpd_req_recv()` / `httpd_send()` function call.
2018-10-17 17:36:50 +05:30
f0eb9985b9 examples: freemodbus port slave basic implementation
This example adds functionality to support basic communication in RS485 networks using Modbus protocol.
This example uses FreeModbus stack and regular UART driver API to communicate in RS485 half duplex mode.
Added initial support of modbus controller pure C api to access device parameters over Modbus transport.
Move freemodbus stack and port files into components folder
Move the modbus_controller interface into components idf folder
Source files updated after review.
Add modbus interface documentation docs/en/api-reference/protocols/modbus.rst
porttimer.c: fix bug with timer1 selected in the Kconfig
Add support of cmake system (added cmake files)

Closes https://github.com/espressif/esp-idf/issues/858
2018-10-17 12:47:12 +02:00
5b7b64b946 driver: rs485 test support (remove timeout tag)
Adds test functionality with TEST_CASE_MULTIPLE_DEVICES() macro for RS485 test support.
2018-10-17 12:47:12 +02:00
61bc733791 driver: rs485 test support
Adds test functionality with TEST_CASE_MULTIPLE_DEVICES() macro for RS485 test support.
2018-10-17 12:45:56 +02:00
71b5dcfd73 mesh: fix a bug in generating ESP-SSID IE
1. wifi: if Wi-Fi is not scanning, ignore beacons from different channels.
2018-10-17 17:52:29 +08:00
32f3972284 add ping length and QoS 2018-10-17 09:39:27 +00:00
e3322bde6f fix the compile bug for autoip 2018-10-17 09:32:08 +00:00
374f92c0a0 Tiny-test-fw: Fix string comparison which cases ignore of test cases
Example tests from examples/protocols/http_server/ were silently ignored
because of incompatible string comparisons.
2018-10-17 11:07:04 +02:00
024f27f3d5 component/bt: modify the BLE example to make it run with "numeric comparison" mode 2018-10-17 16:55:11 +08:00
222a7118a9 Merge branch 'docs/freertos_words_to_bytes' into 'master'
FreeRTOS: Update API reference from words to bytes

See merge request idf/esp-idf!3453
2018-10-17 16:41:28 +08:00
d57132b212 Merge branch 'bugfix/tw26696_fix_wifi_timer' into 'master'
esp32: fix WiFi timer inaccurate bug

See merge request idf/esp-idf!3471
2018-10-17 16:37:22 +08:00
b573812d39 Merge branch 'feature/sockets_example' into 'master'
Feature/sockets example

See merge request idf/esp-idf!3447
2018-10-17 15:24:38 +08:00
813c0748e7 Merge branch 'feature/i2c-tools' into 'master'
add i2c-tools example

See merge request idf/esp-idf!3483
2018-10-17 15:23:48 +08:00
dad3531f96 Merge branch 'update/mfg_gen' into 'master'
Update mfg utility and nvs partition utility to make Python2 and Python3 compatible

See merge request idf/esp-idf!3243
2018-10-17 15:23:27 +08:00
1afb8001dd esp32: fix WiFi timer inaccurate bug
Fix the bug that WiFi timer is not accurate when sleep is on
2018-10-17 09:47:25 +08:00
95e4bdf030 Merge branch 'bugfix/run_esptool_espport' into 'master'
cmake: Handle ESPPORT environment variable correctly

See merge request idf/esp-idf!3482
2018-10-17 08:14:20 +08:00
6d1e23796f i2c/i2c-tools: add i2c-tools example
1. add command i2cconfig
2. add command i2cdetect
3. add command i2cget
4. add command i2cset
5. add command i2cdump
6. add README.md
2018-10-16 16:13:21 +08:00
5a76f1af19 BSD Socket examples 2018-10-16 09:48:57 +02:00
66a54c7abf Merge branch 'feature/34_coding_scheme' into 'master'
bootloader: 3/4 Coding Scheme support

See merge request idf/esp-idf!3430
2018-10-16 15:07:43 +08:00
f53fef9936 Secure Boot & Flash encryption: Support 3/4 Coding Scheme
Includes esptool update to v2.6-beta1
2018-10-16 16:24:10 +11:00
7d7975d6c6 Merge branch 'bugfix/fuzzer_ci_tests_to_new_lwip' into 'master'
LWIP Fuzzer: updated fuzzer tests to be compatible with new lwip module

See merge request idf/esp-idf!3278
2018-10-16 08:01:00 +08:00
508fb79a26 uart: fix uart_tx_wait_idle to wait for fifo empty
In some cases, when data was just written into UART FIFO, transmitter
state could be still zero while the FIFO did contain some data.
This resulted in uart_tx_wait_idle occasionally returning before all
the data was sent out.
Fix by checking both UART transmitter state and TX FIFO count.
2018-10-15 20:08:16 +08:00
88625a2501 Merge branch 'bugfix/guide-download' into 'master'
Docs: Renamed download links to clearly state they are to download documentation.…

See merge request idf/esp-idf!3271
2018-10-15 16:27:44 +08:00
a78fd2b13c Merge branch 'feature/64mb_psram_support_base' into 'master'
Feature/64mb psram support base

See merge request idf/esp-idf!2887
2018-10-15 15:54:10 +08:00
a1f809fcc5 bootloader: provide implementation of abort
ROM definition of `abort` was removed in 9240bbb. The old definition
resulted in a panic due to a jump to a null pointer (abort member in
ROM stub table was zero). The new definition triggers a debug
exception if JTAG is connected, or goes into an infinite loop to be
reset by the WDT.
2018-10-15 15:02:56 +08:00
a20d9287fe soc: use _EARLY versions of ESP_LOG
Some logging done in soc component may happen before logging via
stdout is possible. Use _EARLY version of log calls to make sure that
output is visible. The downside is that application does not have a
way to silence these logs. However since the soc component doesn’t
use any LOGV/LOGD/LOGI and only logs warnings and errors, this should
not impact the application.
2018-10-15 14:59:46 +08:00
ab68b9d90d soc,sdmmc: fix build failures when NDEBUG is used
Use explicit error checking instead of asserts, use SOC_LOG to print
error/warning messages where needed.
2018-10-15 14:57:12 +08:00
81e35a142a Spiram: Add option to reserve MMU banks; add himem API to make use of those banks 2018-10-15 14:32:58 +08:00
897670b0ab cmake: Handle ESPPORT environment variable correctly
Closes https://github.com/espressif/esp-idf/issues/2553
2018-10-15 10:25:44 +11:00
1ee2bc46ed Merge branch 'doc/update_i2c_example_readme' into 'master'
cleanup readme of i2c example

See merge request idf/esp-idf!3449
2018-10-15 06:34:48 +08:00
75a4007675 Merge remote-tracking branch 'refs/remotes/origin/update/mfg_gen' into update/mfg_gen 2018-10-12 11:05:02 +05:30
7c08fcccaf util: Update docs as per review comments 2018-10-12 11:04:49 +05:30
5bee9faf49 tools: Add Python2 and Python3 compatibility support to nvs util tool and mfg tool 2018-10-12 11:04:49 +05:30
1d38d8a17f nvs_util: Add Python2 and Python3 compatible 2018-10-12 11:04:49 +05:30
0f6bcec2bc nvs_part_gen: Add changes to partition size input 2018-10-12 11:04:49 +05:30
60df21115e nvs_part_gen: Update to make python version compatible
(cherry picked from commit 3506b2d60792e5d4ed4f744b28f2da6733c6aae7)
2018-10-12 11:04:49 +05:30
302d339640 mfg_gen: Add changes to make Python2 and Python3 compatible 2018-10-12 11:04:49 +05:30
1f49e64730 Update mfg utility as per updated nvs partition util 2018-10-12 11:04:49 +05:30
1460f03065 nvs_util: Add Python2 and Python3 compatible 2018-10-12 11:04:49 +05:30
fb31788504 nvs_part_gen: Add changes to partition size input 2018-10-12 11:04:49 +05:30
4bc87a414f nvs_part_gen: Update to make python version compatible
(cherry picked from commit 3506b2d60792e5d4ed4f744b28f2da6733c6aae7)
2018-10-12 11:04:49 +05:30
807e72adce mfg_gen: Add changes to make Python2 and Python3 compatible 2018-10-12 11:04:49 +05:30
17c907b35e Update mfg utility as per updated nvs partition util 2018-10-12 11:04:49 +05:30
94f6b1a9ee util: Update docs as per review comments 2018-10-12 10:16:39 +05:30
a6d054b079 components/bt: Add sniff mode to SPP
In idle state for a while, SPP will enter sniff mode.
2018-10-12 11:22:28 +08:00
89d7f7bc89 doc/i2c-example: cleanup readme of i2c example
1. Update i2c README to add more detail according to the template.[TW#26530]
2. Move some specific configuration to KConfig
2018-10-12 10:24:39 +08:00
12bf6e599c Merge branch 'bugfix/doc_get_started_cmake' into 'master'
doc : Corrected git clone command parameters under get-started-cmake

See merge request idf/esp-idf!3466
2018-10-12 07:01:27 +08:00
64728a74f9 tools: Add Python2 and Python3 compatibility support to nvs util tool and mfg tool 2018-10-11 17:58:12 +05:30
b521f1b8ba nvs_util: Add Python2 and Python3 compatible 2018-10-11 17:58:12 +05:30
0064357a98 nvs_part_gen: Add changes to partition size input 2018-10-11 17:58:12 +05:30
226b6929e5 nvs_part_gen: Update to make python version compatible
(cherry picked from commit 3506b2d60792e5d4ed4f744b28f2da6733c6aae7)
2018-10-11 17:56:21 +05:30
24fa2342e8 mfg_gen: Add changes to make Python2 and Python3 compatible 2018-10-11 17:52:57 +05:30
dd2bc7256d Update mfg utility as per updated nvs partition util 2018-10-11 17:52:24 +05:30
dca5ac78f0 nvs_util: Add Python2 and Python3 compatible 2018-10-11 17:50:55 +05:30
cd7dcd0c85 nvs_part_gen: Add changes to partition size input 2018-10-11 17:50:55 +05:30
ff30a1fbd3 nvs_part_gen: Update to make python version compatible
(cherry picked from commit 3506b2d60792e5d4ed4f744b28f2da6733c6aae7)
2018-10-11 17:50:55 +05:30
98433d48f1 mfg_gen: Add changes to make Python2 and Python3 compatible 2018-10-11 17:50:55 +05:30
bc39e9ac75 Update mfg utility as per updated nvs partition util 2018-10-11 17:50:55 +05:30
9f1b38a4aa doc : Corrected git clone command parameters under get-started-cmake
Closes https://github.com/espressif/esp-idf/issues/2538
2018-10-11 11:38:55 +05:30
67153be14f lwip: updated fuzzer tests to be compatible with new lwip module 2018-10-11 08:05:14 +02:00
1a743ad66d Merge branch 'bugfix/several_bugfix_about_ba_session_setup' into 'master'
esp32: several fixes/optimizations about BlockAck(BA) setup

See merge request idf/esp-idf!3374
2018-10-11 11:28:20 +08:00
299704cec3 Merge branch 'feature/unified_provisioning' into 'master'
provisioning: This patch adds the unified provisioning support

See merge request idf/esp-idf!2812
2018-10-10 16:29:11 +08:00
3e0ff8e843 Merge branch 'doc/nvs_encr_doc' into 'master'
nvs_flash: Update documentation at various places to indicate NVS encryotion is supported

See merge request idf/esp-idf!3431
2018-10-10 14:58:15 +08:00
31cf117404 Merge branch 'feature/bss_seg_in_external_memory' into 'master'
memory:   support .bss segment can be in psram

See merge request idf/esp-idf!2236
2018-10-10 14:40:21 +08:00
fc2230aeda Merge branch 'feature/error_check_without_abort' into 'master'
esp32: Add macro to check a condition without abort

See merge request idf/esp-idf!3348
2018-10-10 14:31:38 +08:00
f1ccd47fdb Merge branch 'bugfix/fix_psram_eid' into 'master'
bugfix(psram): fix psram eid

See merge request idf/esp-idf!3392
2018-10-10 11:37:43 +08:00
7904da0600 Merge branch 'bugfix/httpd_default_content_type' into 'master'
HTTP Server : Default content type of response should be HTTPD_TYPE_TEXT

See merge request idf/esp-idf!3443
2018-10-10 08:21:56 +08:00
aaacd5412d Merge branch 'bugfix/httpd_chunked_content_len' into 'master'
Remove Content-Length from chunked encoding

See merge request idf/esp-idf!3442
2018-10-10 08:21:50 +08:00
0ea8a2abfd Merge branch 'feature/docs_update_mcpwm_api' into 'master'
MCPWM API doc update

See merge request idf/esp-idf!1602
2018-10-10 08:15:23 +08:00
cd5f8bcf74 MCPWM API doc update 2018-10-10 08:15:23 +08:00
6f91640690 FreeRTOS: Update API reference from words to bytes
This commit updates some of the API references in task.h so
that stack sizes are referred to in bytes rather than words as
found in the vanilla version.

Closes #2528
2018-10-09 20:49:19 +08:00
9c148f6ad6 Merge branch 'bugfix/btdm_fix_connect_interval_error_in_slave_adv_params' into 'master'
Component/bt: fix connection interval error in slave adv params

See merge request idf/esp-idf!3407
2018-10-09 17:01:44 +08:00
d4e572bdb1 esp32: Add macro to check a condition without abort
Closes https://github.com/espressif/esp-idf/issues/2325
2018-10-09 08:57:23 +02:00
660770ea97 esp32: several fixes about BA session setup
1. Fix the bug that ESP32 will reject the retry AddBA request frame
   if AddBA response frame is failed to sent by WiFi LMAC
2. Fix the bug that AddBA request retrys too frequently
3. Forbid BA session setup for VO queue related TID
2018-10-09 12:07:30 +08:00
a7bdd288f0 Merge branch 'bugfix/downgrade_future' into 'master'
Change python-future to 0.15.2 (again)

See merge request idf/esp-idf!3423
2018-10-09 11:06:45 +08:00
83d4081fba Merge branch 'bugfix/fix_close_socket_crash_bug' into 'master'
lwip: fix the crash when close socket

See merge request idf/esp-idf!3384
2018-10-08 21:23:57 +08:00
8be9e0946f HTTP Server : Default content type of response should be HTTPD_TYPE_TEXT
Closes https://github.com/espressif/esp-idf/issues/2527
2018-10-08 18:12:15 +05:30
a10b7e892c bugfix(psram): fix psram driver
1. remove use EID to distinguish psram voltage
2. 1V8 64Mbit psram and 3V3 64Mbit psram use the same psram driver(standard spi interface)
3. set cs hold time register as 1
2018-10-08 19:55:13 +08:00
f4e867a148 Remove Content-Length from chunked encoding
Content-Length header should not be included when using chunked encoding.
Some browsers will close the socket after seeing the 0 sized response instead of
reading the chunks.

Merges https://github.com/espressif/esp-idf/pull/2458
2018-10-08 15:58:41 +05:30
05c510b44e Merge branch 'test/spi_slave_psram_disable' into 'master'
test: disable the spi slave startup test when psram is enabled

See merge request idf/esp-idf!3373
2018-10-08 16:28:41 +08:00
a85a633384 Merge branch 'fix/spi_master_cmd_addr_lsbfirst' into 'master'
spi_master: fix the command and address field when LSB_FIRST enabled

See merge request idf/esp-idf!3398
2018-10-08 16:26:27 +08:00
221eced06d Merge branch 'bugfix/no_disconnect_event_report_if_no_correct_status_code_report' into 'master'
WiFi: bugfix of no disconnect event report if no correct status code report

See merge request idf/esp-idf!3370
2018-10-08 15:59:07 +08:00
1d58429bad Merge branch 'feature/global_ca_store' into 'master'
esp_tls: Support for global CA store.

See merge request idf/esp-idf!3432
2018-10-08 14:51:02 +08:00
e99035af94 Merge branch 'feature/ethernet_example_iperf' into 'master'
ethernet: add iperf example to test real bandwidth

See merge request idf/esp-idf!3332
2018-10-08 12:27:05 +08:00
7bc36d23e1 ethernet: add iperf example to test real bandwidth
1. Add command for Ethernet based on console component.
2. Make cmd_system and iperf a component that can be referenced by other examples
3. Add "version" command to cmd_system.c
4. Clean up the README.md in all ethernet examples[TW#26525]
2018-10-08 09:51:17 +08:00
a95dd4712b Merge branch 'doc/rmt_readme_typo_fix' into 'master'
doc(rmt): fixed some typos in rmt example readme file

See merge request idf/esp-idf!3283
2018-10-08 07:25:10 +08:00
b7cca3c414 Feature: Support for global CA store.
Added a new API esp_tls_set_global_ca_store(esp_tls_cfg_t *cfg) which creates a global_cacert which can be used by multiple connections by setting the use_global_ca_store variable to true in their respective structure of esp_tls_cfg_t. Also changed the cacert in the structure of esp_tls_t to a pointer.
2018-10-05 19:35:57 +05:30
454b69d2ea nvs_flash: Update documentation at different places to indicate NVS encryotion is supported 2018-10-05 14:05:21 +05:30
1b272bb77e Merge branch 'bugfix/rom_export_functions' into 'master'
esp32, bootloader: fix issues related to linking order

See merge request idf/esp-idf!3375
2018-10-05 12:40:05 +08:00
7313e39fde Merge branch 'feature_add_path_tools_pr2410' into 'master'
add_path.sh: cmake: add tools folder to the path

See merge request idf/esp-idf!3344
2018-10-05 12:34:10 +08:00
ee0ebc1e1a Merge branch 'test/enhanced_unit_test_config_dependency' into 'master'
test: enhanced config dependency support for CI

See merge request idf/esp-idf!3383
2018-10-05 09:21:30 +08:00
445567d067 Merge branch 'bugfix/windows_msys2_updates' into 'master'
Windows: Update MSYS2 environment, catch some MSYS2 Python quirks

See merge request idf/esp-idf!3417
2018-10-05 08:06:47 +08:00
6b180f70ac test: modify the command/address test a bit to test the LSBFIRST feature 2018-10-04 15:03:26 +08:00
e5ed450d95 spi: move gpio direction config to common func for coinsistence
(MINOR CHANGE)
2018-10-04 14:57:31 +08:00
2600f43822 spi_master: fix the command and address field when LSB_FIRST enabled
Resolves https://github.com/espressif/esp-idf/issues/2444.
2018-10-04 14:57:30 +08:00
3977d4b565 Merge branch 'feature/transpost_methods_renamed_no_collision' into 'master'
Renamed transport header files to esp_ prefixed

See merge request idf/esp-idf!3359
2018-10-04 13:11:49 +08:00
594dcd525b Merge branch 'bugfix/esp_error_check_silent' into 'master'
esp_err: Don't compile in error message strings in "silent assertions" mode

See merge request idf/esp-idf!3418
2018-10-03 14:33:09 +08:00
d8d85ed8e8 Merge branch 'feature/sigmadelta-example-update-readme' into 'master'
Updated sigma-delta example description to the latest template

See merge request idf/esp-idf!3388
2018-10-03 09:50:27 +08:00
2d199dc521 Docs : Added Provisioning and Protocomm related docs
Co-Authored-By: Amey Inamdar <amey@espressif.com>
Co-Authored-By: Anurag Kar <anurag.kar@espressif.com>
2018-10-02 19:07:28 +05:30
84f094453b Examples : Added provisioning examples, tests and client tool.
* BLE and softAP provisioning examples added along with tests.
* An application specific example added for demonstrating custom provisioning scheme.
* tools/esp_prov/esp_prov.py can be used as a provisioning client for SoftAP, BLE and CLI based transports.

Co-Authored-By: Amey Inamdar <amey@espressif.com>
Co-Authored-By: Anurag Kar <anurag.kar@espressif.com>
2018-10-02 19:07:28 +05:30
2b52465416 WiFi Provisioning : Added component providing framework for configuring WiFi credentials during provisioning
Co-Authored-By: Amey Inamdar <amey@espressif.com>
Co-Authored-By: Anurag Kar <anurag.kar@espressif.com>
2018-10-02 19:07:28 +05:30
9428375368 Protocomm : Added support for choice of transport - WiFi (SoftAP+HTTPD), BLE, Console (development friendly transport)
Co-Authored-By: Amey Inamdar <amey@espressif.com>
Co-Authored-By: Anurag Kar <anurag.kar@espressif.com>
2018-10-02 19:07:28 +05:30
e94dffc9c5 Protocomm : Added unit tests and protobuf-c generated files
Co-Authored-By: Amey Inamdar <amey@espressif.com>
Co-Authored-By: Anurag Kar <anurag.kar@espressif.com>
2018-10-02 19:07:28 +05:30
d0c777b2e1 Protocomm : Added component core for protocol communication
* This manages secure sessions and provides framework for multiple transports.
* The application can use protocomm layer directly to have application specific extensions for provisioning (or non-provisioning) use cases.
* Following features are available for provisioning :

  * Security - Security0 (no security), Security1 (curve25519 key exchange + AES-CTR encryption)
  * Proof-of-possession support for Security1

* Protocomm requires specific protocol buffer modules for compilation which can be generated from the `.proto` files in the `proto` directory using make.

Co-Authored-By: Amey Inamdar <amey@espressif.com>
Co-Authored-By: Anurag Kar <anurag.kar@espressif.com>
2018-10-02 19:07:28 +05:30
3ba8eed60a protobuf-c : Added Google's protocol buffer C library as sub-module
Source https://github.com/protobuf-c/protobuf-c

Co-Authored-By: Amey Inamdar <amey@espressif.com>
Co-Authored-By: Anurag Kar <anurag.kar@espressif.com>
2018-10-02 19:07:28 +05:30
0d4f5cc495 tcp_transport: transport set handle refactoring, web socket client name updated 2018-10-02 15:19:46 +02:00
e02225cc07 tcp_transport: renamed possibly generic function names to be esp_ prefixed and not to colide with user namespace 2018-10-02 14:16:48 +02:00
2c5a25a42e tcp_transport: Use getrandom() instead of rand() in the entire esp-mqtt
Signed-off-by: David Cermak <cermak@espressif.com>
2018-10-02 14:16:26 +02:00
e3c6839802 tcp_transport: Fix warning, put in order the nearest code, replace sprintf with snprintf
Signed-off-by: David Cermak <cermak@espressif.com>
2018-10-02 14:15:27 +02:00
40c6cbb3ab tcp_transport: renamed transport related header files to esp_ prefixed to avoid collisions
tcp_transport component used public header files such as 'transport.h', etc. which are too generic and might collide with user or user libraries headers
This change closes #2417
2018-10-02 14:15:00 +02:00
127693126a esp_err: Don't compile in error message strings in "silent assertions" mode
Reported on forum https://esp32.com/viewtopic.php?f=13&t=7396&p=31419#p31419
2018-10-02 17:00:57 +10:00
4faa2a8e52 Merge branch 'bugfix/bootloader_gen_secure_boot_digest' into 'master'
bootloader: Fix secure boot digest generation for image length where (len%128 < 32)

See merge request idf/esp-idf!3410
2018-10-02 14:55:21 +08:00
6a3f486bdc Change python-future to 0.15.2 (again)
Merges https://github.com/espressif/esp-idf/pull/2492
2018-10-02 08:18:13 +02:00
326d791ebb bootloader: Fix secure boot digest generation for image length where (len%128 < 32) 2018-10-02 15:17:14 +10:00
9240bbb708 esp32: remove ROM functions redefined in IDF from LD script
In some cases, linker could choose to use ROM functions instead of the
ones defined in IDF.
For functions used in ROM stub table, this would lead to infinite
recursion when the corresponding function was called from ROM.
For crypto functions, some of these were modified in IDF, and
incompatible with ROM counterparts.
2018-10-02 01:20:04 +00:00
f694d057be bootloader_support: exclude bootloader_init.c when building app
Depending on link order of libraries, bootloader implementation of
__assert_func could be linked instead of the one provided by newlib.
2018-10-02 01:20:04 +00:00
98b42a8b71 Merge branch 'bugfix/disable_coding_scheme_security_features' into 'master'
bootloader: Don't enable secure boot or flash encryption for 3/4 Coding Scheme

See merge request idf/esp-idf!3369
2018-10-02 07:54:11 +08:00
23984c8a03 Merge branch 'bugfix/rtc_fastmem_data_init' into 'master'
esp32: fixes related to CONFIG_ESP32_RTCDATA_IN_FAST_MEM

See merge request idf/esp-idf!3403
2018-10-01 18:13:43 +08:00
246a608db0 windows: Special check for some MSYS2 Python packages
MSYS2 MINGW requires some particular MSYS2-specific packages.

Closes https://github.com/espressif/esp-idf/issues/2480
Closes https://github.com/espressif/esp-idf/issues/2474
Closes https://github.com/espressif/esp-idf/issues/2486
2018-10-01 17:21:48 +10:00
319fa2264f windows: Update MSYS2 environment, add Python requirements to setup script 2018-10-01 16:16:49 +10:00
c526839453 Merge branch 'bugfix/win_toolchain_version' into 'master'
build: Fix checking the toolchain version on Windows

See merge request idf/esp-idf!3356
2018-10-01 14:03:52 +08:00
94e5ffdedc Merge branch 'bugfix/workaround_free_peripherals_isr_when_using_dual_core' into 'master'
driver(interrupt): fix the issue that interrupt might be allocated and freed on different cores.

See merge request idf/esp-idf!3152
2018-09-30 21:42:52 +08:00
fe7fd3bf4d Component/bt: fix connection interval error in slave adv params 2018-09-30 11:14:27 +00:00
fda865b002 Merge branch 'bugfix/btdm_watchdog_timeout_after_pair_with_iphone' into 'master'
component/bt: Fix BTU task watchdog timeout after pair with iphone

See merge request idf/esp-idf!3366
2018-09-30 14:39:00 +08:00
42a9f99bc8 Merge branch 'bugfix/btdm_controller_stuck_on_waking_up' into 'master'
bugfix/btdm_controller_stuck_on_waking_up

See merge request idf/esp-idf!3395
2018-09-30 14:25:58 +08:00
a662002924 Merge branch 'bugfix/btdm_add_sequential_check_when_add_include_service' into 'master'
component/bt: add sequential check when add include service

See merge request idf/esp-idf!3277
2018-09-30 14:19:54 +08:00
5d71940178 component/bt: add sequential check when add include service 2018-09-30 14:19:54 +08:00
d6bc6fad8b Merge branch 'bugfix/btdm_add_ESP_BLE_SM_ONLY_ACCEPT_SPECIFIED_SEC_AUTH_in_set_security_param_API' into 'master'
Component/bt: add only accept sepecified authentication function for SMP

See merge request idf/esp-idf!3385
2018-09-30 14:18:23 +08:00
545778c9a9 Merge branch 'docs/wifi_correct_mistake_in_csi_doc' into 'master'
esp32: correct a mistake about secondary channel of CSI in wifi.rst

See merge request idf/esp-idf!3405
2018-09-30 13:47:52 +08:00
757de2518d Merge branch 'doc/can_remove_disclaimer' into 'master'
can: remove license disclaimer

See merge request idf/esp-idf!3381
2018-09-30 12:05:08 +08:00
3050e55801 Component/bt: add only accept sepecified Authentication 2018-09-29 21:23:55 +08:00
7014c14537 Merge branch 'bugfix/btdm_add_service_source_param_for_ESP_GATTC_SEARCH_CMPL_EVT' into 'master'
Component/bt: add “service from” param for ESP_GATTC_SEARCH_CMPL_EVT

See merge request idf/esp-idf!3399
2018-09-29 20:18:26 +08:00
df1ab11a8e Merge branch 'bugfix/btdm_fix_service_change_cannot_read_write_and_no_descr' into 'master'
Component/bt: fix service change char can’t read and write and no descr

See merge request idf/esp-idf!3402
2018-09-29 20:16:07 +08:00
b557cca6b9 WiFi: bugfix of no disconnect event report if no correct status code report
Problem Description

The reporduce steps are as follows:
1. put more than one same ssid AP in the environment;
2. set the STA mac address in one of the APs blacklist, and make sure the AP is closest to STA;
3. set the scan method in station config as all channel scan;
4. try to connect the AP which set STA in blacklist

Phenmenon

STA fail to connect after send auth or assoc with a wrong status code, but no disconnect event report and can not connect the next one in the envrionment

Root Cause

Because there are some same ssid APs in the evnrionment, when do all channel scan, it will collect all the matched AP in rc list, because rc list is not empty, so it would send disconnect event, however, we didn't do other step such as connect to other one

VNC MR 570

closes https://github.com/espressif/esp-idf/issues/2323
2018-09-29 16:16:22 +08:00
5e1b05abc3 esp32: correct a mistake about secondary channel of CSI in wifi.rst 2018-09-29 15:32:09 +08:00
c4a712b0bc sleep: fix checking length of RTC data sections
_rtc_data_{start,end} can now describe data placed into RTC_FAST
segment, if CONFIG_ESP32_RTCDATA_IN_FAST_MEM is enabled.
Use new _rtc_slow_length symbol instead.
2018-09-29 14:02:16 +08:00
70412928de esp32: fix placement of .rtc_noinit
When CONFIG_ESP32_RTCDATA_IN_FAST_MEM is enabled, .rtc_noinit should
be in RTC_FAST memory, same as .rtc.data
2018-09-29 14:02:16 +08:00
3e1c065493 esp32/test: split rtc_fast test cases
Move runtime behaviour test cases into test_reset_reason.c, move
placement test cases into test_rtc_fast.c
2018-09-29 14:02:16 +08:00
22b840f3df bootloader: don’t reload RTC_FAST DRAM after deep sleep
When CONFIG_ESP32_RTCDATA_IN_FAST_MEM is enabled, RTC data is placed
into RTC_FAST memory region, viewed from the data bus. However the
bootloader was missing a check that this region should not be
overwritten after deep sleep, which caused .rtc.bss segment to loose
its contents after wakeup.
2018-09-29 14:02:16 +08:00
252b9ad5ea Merge branch 'ci/adjust_expire_time_for_artifacts' into 'master'
ci: adjust expire time for CI artifacts:

See merge request idf/esp-idf!3327
2018-09-29 13:43:01 +08:00
b4fe43912f ci: adjust expire time for CI artifacts:
set shorter time to save some space on server. For those artifacts need
to be stored for long time, we can manually press "keep" button in job page.

Also add a CI job to check if all artifacts have set expire time.
2018-09-29 03:54:14 +00:00
e6d737780a Component/bt: add “service from” param for ESP_GATTC_SEARCH_CMPL_EVT 2018-09-28 12:59:01 +00:00
54b841dc30 Component/bt: fix service change char can’t read and write and no descr 2018-09-28 19:57:25 +08:00
bce5d7ba01 Implemented the first round of review comments 2018-09-28 14:04:22 +08:00
cc52029d14 Updated sigma-delta example description to the latest template 2018-09-28 14:04:22 +08:00
334cb88256 component/bt: bugfix that hci down stream datapath is unblocked too early on waking up from sleep
This issue can cause the controller to stuck after sleep interrupt happens and clock interrupt enabled
2018-09-28 03:45:52 +00:00
0a7065195c Merge branch 'bugfix/regression_in_light_sleep_mode' into 'master'
esp32: fix regression introduced in automatic light sleep pm

See merge request idf/esp-idf!3371
2018-09-28 09:49:39 +08:00
4981c10ab3 Merge branch 'fix/sdio_slave_reset_ret_queue' into 'master'
sdio_slave: fix the ret_queue crash issue when being reset by the master

See merge request idf/esp-idf!3360
2018-09-27 18:25:57 +08:00
54b431f2a8 lwip: fix the crash when close socket 2018-09-27 17:35:40 +08:00
737f33e379 test: enhanced config dependency support for CI:
allow define complex conditions for the dependency of each tag.
2018-09-27 15:23:44 +08:00
7c8d5d2782 docs, scripts: Correct the priority of the PATH setting 2018-09-27 14:55:37 +08:00
1b3385e51e add_path.sh: cmake: add tools folder to the path
Merges https://github.com/espressif/esp-idf/pull/2410
2018-09-27 14:33:36 +08:00
71b5ce55d3 Merge branch 'feature/mbedtls_2_13_1' into 'master'
mbedtls: update to 2.13.1

See merge request idf/esp-idf!3301
2018-09-27 14:15:25 +08:00
0eff312411 can: remove license disclaimer 2018-09-27 13:25:59 +08:00
5ebf4f7022 Merge branch 'feature/move_rtc_data_rtc_rodata_to_RTC_FAST_seg' into 'master'
esp32: Add option to place .rtc_data and .rtc_rodata into the RTC_FAST segment

See merge request idf/esp-idf!2128
2018-09-27 13:05:06 +08:00
84d2f510ea Merge branch 'bugfix/ci_example_test' into 'master'
tools: Make Utility.console_log accept Unicode and byte strings as well

See merge request idf/esp-idf!3367
2018-09-27 11:26:44 +08:00
ea7e6bd8f6 Merge branch 'feature/py23_kconfig_new' into 'master'
tools: Make kconfig_new Python3-compatible and enable Python3 in idf.py

See merge request idf/esp-idf!3304
2018-09-27 11:26:32 +08:00
11b444b8f4 Merge branch 'bugfix/sysview_enable_cmake' into 'master'
cmake: add app_trace as FreeRTOS dependency

See merge request idf/esp-idf!3335
2018-09-27 11:21:54 +08:00
6baf743212 Merge branch 'bugfix/lwip_compat_headers' into 'master'
lwip: add compatibility headers for sntp.h and esp_ping.h

See merge request idf/esp-idf!3231
2018-09-27 11:21:37 +08:00
135eef767f Merge branch 'bugfix/idf_ver_out_of_tree' into 'master'
cmake: pass repository path to git when doing git describe

See merge request idf/esp-idf!3328
2018-09-27 11:21:25 +08:00
6163e1d713 Merge branch 'bugfix/btdm_coex_hw_blocking' into 'master'
component/bt : fix coexist hardware blocking bug

See merge request idf/esp-idf!3362
2018-09-27 11:17:15 +08:00
d8c84cff3a esptool: Update to v2.5.1
Release notes: https://github.com/espressif/esptool/releases/tag/v2.5.1

Needed to no longer burn keys if 3/4 Coding Scheme is enabled.
2018-09-27 10:12:32 +10:00
337960338d component/bt : fix coexist hardware blocking bug
fix the bug following:
1. after disable bluetooth controller, wifi cannot TX/RX any packets.
2. when software coexist working, there's a little ratio cause wifi task watchdog timeout
3. when software coexist working, there's a little ratio cause bluetooth cannot receive anything.

feature:
1. add libbtdm_app.a git commit local and remote checking

Known issues:
1. there's still a bug occurs with a very very low ratio cause bluetooth
   cannot receive anything. The reproduce interval may great than 3days ~ 1week via
   7x24 hours heavy testing.
2018-09-26 21:24:46 +08:00
93df37522f Merge branch 'feature/mesh_decoupling' into 'master'
mesh: decoupling

See merge request idf/esp-idf!3261
2018-09-26 20:20:27 +08:00
9ea9d111c8 tools: Make Utility.console_log accept Unicode and byte strings as well 2018-09-26 12:56:00 +02:00
fa784476ba Merge branch 'bugfix/btdm_fix_get_bond_list_error_sometimes' into 'master'
Component/bt: fix get bond list error sometimes

See merge request idf/esp-idf!3288
2018-09-26 18:06:23 +08:00
042ef68ea5 Merge branch 'feature/btdm_add_send_service_change_indication_API' into 'master'
Component/bt: add gatts send service change indication API

See merge request idf/esp-idf!3302
2018-09-26 18:05:04 +08:00
f4d4183000 test: disable the spi slave startup test when psram is enabled 2018-09-26 17:55:37 +08:00
4d99513bdb bootloader: Fix crash enabling flash encryption
Regression in 9c715d7946
2018-09-26 18:26:06 +10:00
ff33406e74 bootloader: Don't enable secure boot or flash encryption for 3/4 Coding Scheme 2018-09-26 18:26:06 +10:00
1658833470 build system: Fix checking the toolchain version on Windows 2018-09-26 14:42:01 +08:00
15fae990c1 component/bt: Fix BTU task watchdog timeout after pair with iphone
Create a new pending queue, then re-submit pending requests in old pending queue,preventing new events being inserted into it.

Closes https://github.com/espressif/esp-idf/issues/2191
2018-09-26 11:59:54 +08:00
b5c321d981 esp32: fix regression introduced in automatic light sleep pm
Closes: https://github.com/espressif/esp-idf/issues/2459

Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-09-26 08:52:15 +05:30
01308df8a6 doc: update document of external memory 2018-09-26 10:39:57 +08:00
bbca0e46ed driver(interrupt): fix the issue that interrupt might be allocated and freed on different cores
closes https://github.com/espressif/esp-idf/issues/2211
2018-09-26 10:31:09 +08:00
607d899503 Merge branch 'feature/py23_examples' into 'master'
Examples: Add Python 2&3 support

See merge request idf/esp-idf!3237
2018-09-26 08:41:42 +08:00
7e3f498d15 Merge branch 'docs/general_notes_zh_CN' into 'master'
docs: translate the general-notes document into Chinese

See merge request idf/esp-idf!2867
2018-09-26 07:23:38 +08:00
fe4dabe869 mesh: decoupling
Remove dependencies which cause mesh code to be linked even if mesh is not used.
2018-09-25 23:49:27 +08:00
d4071a7c19 sdio_slave: fix the ret_queue crash issue when being reset by the master 2018-09-25 20:30:25 +08:00
46ad2c6ad0 Merge branch 'feature/wifi_esptouch_support_both_multicast_and_broadcast_packet' into 'master'
esp32: esp-touch supports both multicast and broadcast packets

See merge request idf/esp-idf!3291
2018-09-25 19:48:33 +08:00
e1ac237169 Merge branch 'doc/fix_config_links' into 'master'
doc: Fix config links, add navigation lists to config items page

See merge request idf/esp-idf!3310
2018-09-25 18:23:24 +08:00
9fb188a1d9 Component/bt: add gatts send service change indication API 2018-09-25 08:26:55 +00:00
0139749ba6 esp32: only touch g_ticks_per_us_app in dual core mode 2018-09-25 15:13:47 +08:00
4ff262ecff ipc: initialise automatically, if called from the app 2018-09-25 15:13:47 +08:00
2efd6859ed release memory not used in single core mode
1. do not start ipc task in single core mode
2. do not use APP cpu cache memory in single core mode
3. relase data used in rom by APP cpu
2018-09-25 15:13:47 +08:00
975688b97f examples: Use flushed print to see logs on the CI server 2018-09-25 08:05:56 +02:00
17b7959de9 Examples: Add Python 2&3 support 2018-09-25 08:05:56 +02:00
0ea7723238 doc/general_notes:translate from en to zh_CN
translate the document [general-notes] into Chinese
2018-09-25 12:59:52 +08:00
3c362f4d75 esp32: Add missing header file in esp_task.h
This commit adds a missing header file in esp_task.h
required for configMAX_PRIORITIES.

Closes #2341
2018-09-25 11:21:23 +08:00
7b7964b47a esp32: esp-touch supports both multicast and broadcast packets
Previously, esp-touch only supports multicast packets which are
    transmitted from cellphone. But for most dual frequency routers
    whose SSIDs of 5G and 2.4G are the same, broadcast packets are
    forwarded from 5G interface to 2.4G interface while multicast
    packets are not. In order to make esp-touch work when cellphone
    connects to 5G interface of these routers, esp-touch is improved
    to support both multicast and broadcast packets. Meanwhile, new
    APP which is compiled with Andriod or IOS library(>= v0.3.6.2)
    must be used in this situation. Note that for some routers,
    broadcast and multicast packets are forwarded from 5G interface
    to 2.4G interface only when another WiFi device is connected to
    2.4G interface of the router. Old APP which is compiled with
    Android or IOS library(< v0.3.6.2) also works with this improvement
    when cellphone connects to 2.4G interface of the router.

    The Android and IOS library of new esp-touch APP is now available
    on Github.
    Android: https://github.com/EspressifApp/EsptouchForAndroid
    IOS: https://github.com/EspressifApp/EsptouchForIOS
2018-09-25 10:38:01 +08:00
96cd3b75cd Merge branch 'feature/mbedtls_mem_alloc_options' into 'master'
mbedtls: configurable options for controlling dynamic memory allocations

See merge request idf/esp-idf!3343
2018-09-25 08:24:29 +08:00
66fd7e9cc3 Merge branch 'bugfix/python_gen_empty_partition' into 'master'
app_update: Make gen_empty_partition.py Python 2 & 3 compatible

See merge request idf/esp-idf!3347
2018-09-25 08:23:38 +08:00
dc135ed1f6 Merge branch 'feature/async_esp_http_client' into 'master'
Non Blocking `esp_http_perform()` API in esp_http_client

See merge request idf/esp-idf!3049
2018-09-25 08:20:06 +08:00
a4aadd1926 Merge branch 'feature/nvs_encryption' into 'master'
nvs_flash: Add support for nvs encryption

See merge request idf/esp-idf!2700
2018-09-25 08:15:55 +08:00
6ed00f50be Merge branch 'bug_fix/multipage_blob_support' into 'master'
nvs_util: Fix generation of multipage blob data format

See merge request idf/esp-idf!3349
2018-09-25 08:01:57 +08:00
3665715d4d Merge branch 'mesh/bugfix' into 'master'
mesh: bugfix

See merge request idf/esp-idf!3286
2018-09-24 20:31:31 +08:00
baca21050f app_update: Make gen_empty_partition.py Python 2 & 3 compatible
Closes https://github.com/espressif/esp-idf/issues/2457
2018-09-24 12:16:16 +02:00
7c1360b10a nvs_util: Fix multipage blob data format generate 2018-09-24 15:44:31 +05:30
48fccbf5dd nvs_flash: Add support for nvs encryption 2018-09-24 11:25:21 +05:30
5585f699d1 aws_iot: optimize dynamic memory by tweaking tls out buf content length 2018-09-24 11:17:53 +05:30
54382277b6 mbedtls: configurable options for controlling dynamic memory allocations
Modifies https://github.com/espressif/esp-idf/pull/2237
2018-09-24 11:17:48 +05:30
0aec63c18e examples/protocols/esp_http_client: Add example for asynchronous HTTP request 2018-09-24 05:42:28 +00:00
5309ca04d1 esp_http_client: Add support for non-blocking feature in esp_http_client_perform() API
Four internal APIs `esp_http_client_connect()`, `http_client_prepare_first_line()`, `esp_http_client_request_send()` and
`esp_http_client_send_post_data()` API have been added for perfoming connection establishment (sync as well as async),
preparing first line, sending request and sending post data respectively.

In `transport_ssl`, `ssl_connect_async()` API has been added for establishing asynchronous connection.
2018-09-24 05:42:28 +00:00
1be97fad09 esp-tls: Add support for non blocking connect 2018-09-24 05:42:28 +00:00
4d50427e87 Merge branch 'feature/nvs_util_backport' into 'master'
nvs_util: Add changes for utility to support old and new multipage blob

See merge request idf/esp-idf!3270
2018-09-24 11:53:29 +08:00
ae5df5d6ce Merge branch 'feature/pthread_attributes' into 'master'
pthread : Add support for attributes

See merge request idf/esp-idf!2980
2018-09-24 11:19:41 +08:00
9c4cc55012 mesh: bugfix
1. suppport mesh type, mesh ID, router and IE crypt func&key at any time after mesh is initalized.
2. support modify parent at any time after mesh is configured.
3. modify manual networking example.
4. update header file.
5. fix issues in root conflicts handling.
6. add max length of beacon to menuconfig.
7. fix issue when received a beacon without DSSS.
2018-09-23 21:11:02 +08:00
623641f26c Merge branch 'bugfix/two_scenario_may_cause_no_disconnect_event_report' into 'master'
Wifi: bugfix of two sceanrio may cause no disconnect event report

See merge request idf/esp-idf!3322
2018-09-23 10:58:44 +08:00
da3c6220a5 Merge branch 'bugfix/IPv6_TCP_connection_fail' into 'master'
lwip: fix the bug that IPv6 TCP connection fail

See merge request idf/esp-idf!3331
2018-09-23 08:39:34 +08:00
f27db1f241 pthread : Add support for attributes and few APIs
This introduces the following changes :
    * Implmentation added for pthread attribute related functions :
        * pthread_attr_init
        * pthread_attr_destroy
        * pthread_attr_setdetachstate
        * pthread_attr_getdetachstate
        * pthread_attr_getstacksize
        * pthread_attr_setstacksize
    * pthread_create now supports passing attributes/configs through pthread_attr_t structure
    * pthread_mutex_timedlock added
    * pthread_exit added
    * memory for joinable thread is freed before returning from pthread_join
2018-09-22 02:35:27 +05:30
93b588a0cf Merge branch 'bugfix/wpa2_fixes_2' into 'master'
wpa_supplicant: more fixes from github

See merge request idf/esp-idf!3255
2018-09-21 20:14:56 +08:00
19a67271ef lwip:move lwip bss segment to psram 2018-09-21 16:20:31 +08:00
974112378b feature: allow .bss segment in external memory 2018-09-21 16:20:26 +08:00
b97e52210a cmake: add app_trace as FreeRTOS dependency
This is needed because FreeRTOSConfig.h includes header file provided
by app_trace when CONFIG_SYSVIEW_ENABLE=y.
2018-09-21 14:58:34 +08:00
7186475d94 Wifi: bugfix of two sceanrio may cause no disconnect event report
Problem Description
set some of routers as the same ssid in the same channel, when 32 in the fast scan connect mode, there may no disconnect event report in that two sceanrio:
1. set the correct password and connect, if target router didn't report 32's auth req before timeout, the state machine change to init but no disconnect event report
2. set a wrong password, if router send disassoc or deauth after run, rather than wait 4 way handshake timeout, the state machine change to init but no disconnect event report

Root Cause
Because the routers are in the same channel, all of them are matched the ssid, so all of them can be instore in the rc list wait for connect, when the first one want to connect fail at auth or receive
disassoc or deauth when password wrong, the rc list is not empty, it can not send disconnect event because rc is not empty

Solution
1. put the fail the router in the blacklist
2. Judge whether there is another router can be connect, if it has, try to connect with the next one

VNC MR 561
2018-09-21 06:22:20 +00:00
bf443a763f tools: Support overwrite of includes for gen_esp_err_to_name.py
gen_esp_err_to_name.py includes files like
components/lwip/include/apps/esp_ping.h as "apps/esp_ping.h" because all
subdirectories of "include" are used. If "components/lwip/include/apps"
is in the path of the compiler instead of "components/lwip/include" then
include "apps/esp_ping.h" will fail. This fix allows to process lines
like:
'// gen_esp_err_to_name.py: some text "esp_ping.h" some text'
in header files for overwriting the include.
2018-09-21 14:09:37 +08:00
f8750eb58d lwip: add compatibility headers for sntp.h and esp_ping.h
Before LwIP was moved into a submodule, sntp and esp_ping were
available as the following includes:

#include "apps/sntp/sntp.h"
#include "esp_ping.h"

This commit makes header files available at the old location, and adds
a deprecation warning for sntp.h.

Closes https://github.com/espressif/esp-idf/issues/2392
2018-09-21 14:09:37 +08:00
2e6e87816c Merge branch 'feature/crosstool_backport' into 'master'
Backport of work of gcc8 toolchain to v3

See merge request idf/esp-idf!3154
2018-09-21 14:07:41 +08:00
375c3f6cda Merge branch 'feature/spi_sync_rebase' into 'master'
spi_master: add new polling mode to decrease time cost each transaction

See merge request idf/esp-idf!3120
2018-09-21 10:57:16 +08:00
81e7689bf3 Component/bt: fix get bond list error sometimes 2018-09-21 02:44:16 +00:00
e7d6c861b5 lwip: fix the bug that IPv6 TCP connection fail
The lwip code didn't create an new mld group when netif is up,
this will lead to the server can't find the matching netif when
receiving NS(neighbor solicitation) packet
2018-09-21 10:17:20 +08:00
688807d5f6 docs: Don't show Kconfig.projbuild from MQTT submodule examples in docs 2018-09-21 11:05:16 +10:00
9421f6611f doc: Render config items "Found in:" as a set of links to menus 2018-09-21 11:05:13 +10:00
a8754ccc6a Merge branch 'feature/idf_py_print_flash_cmd' into 'master'
tiny-test-fw: Detect either 'download.config' or 'flash_project_args'

See merge request idf/esp-idf!3252
2018-09-20 20:03:21 +08:00
4af51833f3 spi_master: add new polling mode to decrease time cost each transaction 2018-09-20 19:46:46 +08:00
3004744f2c Merge branch 'bugfix/py273_gen_esp32part' into 'master'
partition_table: Fix encoding for Python 2.7.3

See merge request idf/esp-idf!3330
2018-09-20 19:06:52 +08:00
7b4054a468 espcoredump: Fix a test case of new gdb from the new toolchain 2018-09-20 18:53:15 +08:00
0d1285ebcf bluetooth: fix indentation warning 2018-09-20 18:53:15 +08:00
d6a5cd6e82 mqtt: silence a format warning 2018-09-20 18:53:15 +08:00
d4cbfd34cc cmake: silence some warnings in coap, bt, expat, libsodium, lwip and examples/bluetooth 2018-09-20 18:53:15 +08:00
90d4a1d1e9 cmake: Add a compatible old GCC flag, fix the cmake example building 2018-09-20 18:53:15 +08:00
3471d369f9 lwip: silence uninitialized and fallthrough warnings 2018-09-20 18:53:15 +08:00
ccbe517702 vfs: fix a fallthrough comment to silence the warning 2018-09-20 18:53:15 +08:00
fdb369c76f test/cxx: Test for exception from libstdc++ with -fno-exceptions 2018-09-20 18:53:15 +08:00
e0f7e196f2 cxx: don’t define stubs for __throw_* functions
If exception support is disabled in IDF, and libstdc++ tries to throw
an exception, it will call __cxa_allocate_exception which is replaced
with abort in IDF.

We have a dramatically size reduction of the RO-section in binary when using '__throw_'-stubs in GCC5
In the case of using GCC8, we are faced with 'multiple definition' errors when using '__throw_'-stubs.
Good that we don't have the size problem due to gcc8
2018-09-20 18:53:15 +08:00
43116e6e2d examples/sdio: Fix an uninitialized buffer which sometimes caused a test fail 2018-09-20 18:53:15 +08:00
f0c15e749a gcov: use GCC API to control GCOV data dumps 2018-09-20 18:53:14 +08:00
9a55557ad8 build system: Add a compatible old GCC flag 2018-09-20 18:53:14 +08:00
51c9b6b82d bt: disable implicit fall through warnings 2018-09-20 18:53:14 +08:00
dd5d01a83e bt: silence unused const variables warning 2018-09-20 18:53:14 +08:00
0b35292abe examples/bluetooth: silence unused const variables warnings 2018-09-20 18:53:14 +08:00
c2a04f6517 unity: silence unused const variables warning 2018-09-20 18:53:14 +08:00
91fa1764e5 docs: generate toolchain download links 2018-09-20 18:53:14 +08:00
10ec85f848 build system: and gcc8 warnings compatibility option 2018-09-20 18:53:14 +08:00
cce02e45f1 build system: print some information about the compiler 2018-09-20 18:53:14 +08:00
16525d3c28 ci: specify default docker image tag 2018-09-20 18:53:14 +08:00
ab21644df4 toolchain: Set the supported toolchain version in a separate file 2018-09-20 18:53:13 +08:00
d68df94d2b Merge branch 'bugfix/fix_the_bug_create_socket_fail' into 'master'
LWIP: fix the bug that failed to create socket

See merge request idf/esp-idf!3300
2018-09-20 18:43:58 +08:00
4465dc29bb partition_table: Fix encoding for Python 2.7.3
struct.pack can handle Unicode argument in latest Python 2.7 but cannot
(at least) in 2.7.3.
2018-09-20 12:01:54 +02:00
59d590ff48 cmake: pass repository path to git when doing git describe
Fixes getting IDF version in out-of-tree builds
2018-09-20 16:18:25 +08:00
130a8ea324 tiny-test-fw: Detect either 'download.config' or 'flash_project_args' 2018-09-20 06:39:04 +00:00
593abe0768 Merge branch 'test/fix_ut_cant_process_test_command' into 'master'
test: fix ut can't process test command

See merge request idf/esp-idf!3306
2018-09-20 14:38:25 +08:00
8cf0f36dcc Merge branch 'feature/ecc_crypto_wrappers' into 'master'
wpa_supplicant: Implement BIGNUM and ECC crypto wrapper apis for ESP using mbedtls

See merge request idf/esp-idf!3225
2018-09-20 13:46:08 +08:00
9188cb066a mbedtls: update to 2.13.1
See release notes:
https://github.com/ARMmbed/mbedtls/releases/tag/mbedtls-2.13.0
2018-09-20 04:35:45 +00:00
07211ffeff Merge branch 'bugfix/py23_nvs_flash_division' into 'master'
nvs_flash: fix division for Python 2 & 3

See merge request idf/esp-idf!3292
2018-09-20 12:10:18 +08:00
f5e772242d Merge branch 'feature/py23_partition_table' into 'master'
partition_table: Add Python 2 & 3 support

See merge request idf/esp-idf!3290
2018-09-20 12:09:12 +08:00
7660db290b Merge branch 'feature/roll_back_python_future' into 'master'
Downgrade python-future required version to 0.15.2

See merge request idf/esp-idf!3319
2018-09-20 12:05:50 +08:00
af453841ea Merge branch 'bugfix/ci_cmake_examples' into 'master'
CI/cmake: Fix cmake example build failures, gcov

See merge request idf/esp-idf!3296
2018-09-20 12:05:07 +08:00
7657c1c7d4 Merge branch 'bugfix/btdm_fix_crash_when_test_multi_connect' into 'master'
Component/bt: fix crash when test multi_connect

See merge request idf/esp-idf!3274
2018-09-20 12:04:18 +08:00
2e411aeccb Merge branch 'bugfix/ethernet_infinite_loop' into 'master'
ethernet: fix infinite loop when init phy or reset mac

See merge request idf/esp-idf!3307
2018-09-20 11:59:51 +08:00
c09d4787ef Merge branch 'bugfix/parttool_spaces' into 'master'
Remove trailing spaces from parttool.py output

See merge request idf/esp-idf!3317
2018-09-20 11:58:40 +08:00
ffbe5b7ae5 Merge branch 'bugfix/btdm_fix_iphoneX_error_when_get_wifi_list' into 'master'
Component/bt: fix iPhoneX error when getting wifi list

See merge request idf/esp-idf!3303
2018-09-20 10:54:43 +08:00
57573d0ed7 Merge branch 'feature/btdm_add_clear_rand_addr_API' into 'master'
component/bt: add clear rand address API

See merge request idf/esp-idf!3137
2018-09-20 10:47:37 +08:00
20b7f0ec87 ethernet: fix infinite loop when init phy or reset mac
1. fix infinite loop problem when init phy device
2. fix infinite loop problem when reset mac
3. fix little bugs in ethernetif_init
4. fix incompatible return value between lwip and esp-idf

Closes https://github.com/espressif/esp-idf/issues/2331
Closes https://github.com/espressif/esp-idf/issues/2141
2018-09-20 10:09:38 +08:00
930ddf2b2c Merge branch 'bugfix/use_component_srcs' into 'master'
List files manually for recently added components

See merge request idf/esp-idf!3315
2018-09-20 07:27:37 +08:00
ca3acef82c nvs_util: Add support for old and new multipage blob 2018-09-19 22:00:08 +05:30
9999720ed0 Downgrade python-future required version to 0.15.2
It works fine and this way python-future from Ubuntu 16.04 and 18.04 can be used.
2018-09-19 16:24:10 +03:00
f2d3efd875 lwip: fix the bug that failed to create socket
Closes: https://github.com/espressif/esp-idf/issues/2403
        https://github.com/espressif/esp-idf/issues/2414
2018-09-19 09:44:28 +00:00
4e9338e357 Merge branch 'test/fix_incorrect_connect_ap_command' into 'master'
test: fix case use depreacated sta connect command

See merge request idf/esp-idf!3309
2018-09-19 17:39:58 +08:00
e4725adc87 Merge branch 'bugfix/startup_detect_single_core' into 'master'
esp32: abort when running on single core chip in dual core mode

See merge request idf/esp-idf!3308
2018-09-19 17:32:08 +08:00
8f85fa1bfb tcp_transport: list files manually in component cmake file 2018-09-19 16:48:31 +08:00
8fdfc22e2e mqtt: list files manually in component cmake file 2018-09-19 16:48:12 +08:00
9add51bc6d doc: Re-add summaries of what children each menu item has
Slightly different to the original version of this, but same goal.
2018-09-19 17:27:48 +10:00
8721173109 doc: Replace :envvar: config links with :ref: 2018-09-19 17:27:48 +10:00
fdc352d090 Component/bt: fix iPhoneX error when getting wifi list 2018-09-19 15:17:57 +08:00
789855e71b esp32: abort when running on single core chip in dual core mode
Ref. https://esp32.com/viewtopic.php?f=2&t=7307
2018-09-19 15:05:26 +08:00
173e6aab3e tools: Make kconfig_new Python3-compatible and enable Python3 in idf.py 2018-09-19 08:38:09 +02:00
112244bac4 wpa_supplicant: Implement BIGNUM and ECC crypto wrapper apis for ESP using mbedtls 2018-09-19 11:10:28 +05:30
60f0e9b77b test: fix case use depreacated sta connect command 2018-09-19 13:31:56 +08:00
440b08c128 Merge branch 'bugfix/py23_unit_test' into 'master'
Correct Python 3 support for some test related scripts

See merge request idf/esp-idf!3236
2018-09-19 12:39:24 +08:00
c15d3c1ffc examples: Copy ca_cert.pem into both example project dirs
Keeps projects all-in-one under a single directory.
2018-09-19 14:38:19 +10:00
b38a6da74b cmake: Fix some failing example builds, fix gcov 2018-09-19 14:38:19 +10:00
44e8ec584f test: ut can't process test command:
check ut reset done condition is not correct. If bootup pattern already
exist in cache, we will return without waiting for DUT bootup.
2018-09-19 09:40:59 +08:00
4b23d70eec ci: Split build_examples jobs into make & cmake
Fix problem where failures in make were being ignored.
2018-09-19 11:06:27 +10:00
d40bfd21dc Remove trailing spaces from parttool.py output 2018-09-18 16:49:30 +03:00
9dc024bc4c partition_table: Add Python 2 & 3 support 2018-09-18 14:10:55 +02:00
72aaeb26ac Merge branch 'bugfix/btdm_fix_save_error_key_in_smp_when_reconnect' into 'master'
Component/bt: fix save error key in smp when reconnect

See merge request idf/esp-idf!3251
2018-09-18 20:06:38 +08:00
da6479e6b7 Correct Python 3 support for some test related scripts 2018-09-18 09:55:51 +00:00
91f7a9a9e7 Merge branch 'feature/lwip_task_affinity' into 'master'
lwip: allow setting LwIP tasks affinity via sdkconfig

See merge request idf/esp-idf!2913
2018-09-18 15:10:17 +08:00
3276a1316f Merge branch 'feature/cleanup_freertos_hooks' into 'master'
Cleanup freertos idle/tick hooks functionality

See merge request idf/esp-idf!3131
2018-09-18 08:07:41 +08:00
822fdd6e53 Merge branch 'feature/tasks_can_return' into 'master'
freertos: enclose task functions in wrapper function

See merge request idf/esp-idf!2935
2018-09-18 07:38:24 +08:00
e54e41fee7 Merge branch 'bugfix/rtd_docs_build' into 'master'
docs: Set a default IDF_PATH in docs build (needed for RTD)

See merge request idf/esp-idf!3272
2018-09-18 07:37:59 +08:00
3246404740 Merge branch 'bugfix/cmake_make_flash_target' into 'master'
cmake: Fix "make flash" & "ninja flash" targets

See merge request idf/esp-idf!3260
2018-09-18 07:31:57 +08:00
7183112cc4 nvs_flash: fix division for Python 2 & 3 2018-09-17 16:01:54 +02:00
zwj
fa00e6d4f7 component/bt: add clear rand address API 2018-09-17 20:09:03 +08:00
ff81dc16e0 freertos: cleanup tick/idle hook functionality
If CONFIG_FREERTOS_LEGACY_HOOKS is kept enabled then defining
idle/tick hooks will be applications responsibility as was the
case earlier.

Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-09-17 17:05:17 +05:30
152043d469 esp_ringbuf: move ringbuf to seperate component
Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-09-17 17:04:57 +05:30
b0ef95b6eb task_wdt: correct critical section API in ISR context
Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-09-17 16:11:15 +05:30
5d1ccb9501 lwip: allow setting LwIP tasks affinity via sdkconfig
In some cases applications need to ensure that WiFi/BT related tasks
run on CPU1. This option can be used to set task affinity in such case.

https://github.com/espressif/esp-idf/issues/2233#issuecomment-409220381
2018-09-17 18:17:52 +08:00
5bcb7e26d7 freertos: add Kconfig FREERTOS_NO_AFFINITY constant
Use in place of tskNO_AFFINITY in Kconfig files
2018-09-17 18:17:52 +08:00
25c8ecaaf5 Merge branch 'bugfix/tw24884_fix_ampdu_sequence_compitable_issue' into 'master'
esp32: Fix AMPDU sequence incompitable bug

See merge request idf/esp-idf!3200
2018-09-17 18:07:14 +08:00
d41ee5c628 Merge branch 'bugfix/btdm_enable_modem_sleep_by_default' into 'master'
bugfix/btdm_enable_modem_sleep_by_default

See merge request idf/esp-idf!3284
2018-09-17 16:17:34 +08:00
0828e8bd53 esp32: fix AMPDU sequence compitability issue
Fix AMPDU RX sequence compitability issue when connecting to some special APs, such as Mercury, Fast etc
2018-09-17 13:57:59 +08:00
df215d2f02 Merge branch 'bugfix/cmake_idf_version' into 'master'
cmake: prefer `version.txt` for IDF_VER if available

See merge request idf/esp-idf!3279
2018-09-17 12:28:47 +08:00
eea49d250a Merge branch 'feature/dhcp_skip_discovery' into 'master'
DHCP restore last ip and skip discovery

See merge request idf/esp-idf!3132
2018-09-17 12:27:56 +08:00
c305bd09dc Merge branch 'bugfix/ethernet_low_level_output' into 'master'
ethernet: fix some bugs and complete some optimization

See merge request idf/esp-idf!3235
2018-09-17 11:33:50 +08:00
2e79baa1db lwip: DHCP restore last IP
Closes https://github.com/espressif/esp-idf/issues/799
2018-09-17 11:11:25 +08:00
49125a87bb Merge branch 'bugfix/mdns-lwip-update' into 'master'
Update network code for mDNS to work with newest LwIP

See merge request idf/esp-idf!3268
2018-09-17 10:42:04 +08:00
bca2e110fc component/bt: enable bluetooth modem sleep as default setting 2018-09-17 10:38:13 +08:00
50a5985b06 doc(rmt): fixed some typos in rmt example readme file 2018-09-17 10:21:07 +08:00
3063a62e3e ethernet: fix some bugs in ethernet driver
1. create a new pbuf to squash linked pbuf
2. optimize emac driver by adding ESP_IRAM_ATTR
3. remove duplicated function declare in esp_eth.h
4. remove duplicated code in emac_setup_tx_desc
5. disable Promiscuous mode
2018-09-17 10:12:46 +08:00
0c6ff65b34 Merge branch 'bugfix/bootloader_set_freq' into 'master'
soc: fix CPU frequency not updated in rtc_clk_init

See merge request idf/esp-idf!3256
2018-09-17 09:49:43 +08:00
a556240e3e Docs: Renamed download links to clearly state they are to download documentation. Fixed incorrectly linked documentation build badge. 2018-09-17 01:19:45 +00:00
61af7f3903 Merge branch 'doc/error_handling_zh_CN' into 'master'
doc/error-handling: translated error-handling.rst

See merge request idf/esp-idf!3148
2018-09-17 09:08:11 +08:00
518942ec61 Merge branch 'bugfix/tw24694_dns_request_no_reply' into 'master'
lwip: add code for sending gratuitous ARP periodically

See merge request idf/esp-idf!3241
2018-09-16 15:18:32 +08:00
67160b2236 Merge branch 'bugfix/mdns_memory_leak' into 'master'
feat(mdns): fix bug when clean action memory

See merge request idf/esp-idf!3276
2018-09-16 15:04:46 +08:00
054e1ee767 Merge branch 'bugfix/optimize_scan_capability' into 'master'
Wifi: Optimize scan capability

See merge request idf/esp-idf!3242
2018-09-16 14:50:36 +08:00
427fa52276 Wifi: Optimize scan capability 2018-09-14 22:25:28 +08:00
4ec9aa9a00 cmake: prefer version.txt for IDF_VER if available 2018-09-14 17:25:17 +05:30
18a893bd35 Merge branch 'bugfix/btdm_unreserve_scn1_for_hfp' into 'master'
component/bt: Unlock reserve of SCN 1 for HFP

See merge request idf/esp-idf!3269
2018-09-14 19:49:47 +08:00
8001737d3e Merge branch 'bugfix/ble_adv_data_tx_power' into 'master'
fix TX power value in ble adv data is incorrect

See merge request idf/esp-idf!3185
2018-09-14 19:46:16 +08:00
8d537432fd Merge branch 'bugfix/wifi_fix_some_modem_sleep_bugs' into 'master'
esp32: fix some bugs of modem sleep

See merge request idf/esp-idf!3223
2018-09-14 18:24:02 +08:00
3ec0e7e2d2 Update network code for mDNS to work with newest LwIP
- Uses one PCB that listens to all interfaces
- Manages multicast groups for each interface
2018-09-14 11:02:47 +02:00
3d4deb9726 feat(mdns): fix bug when clean action memory 2018-09-14 15:36:52 +08:00
d56a400709 Merge branch 'bugfix/cmake_create_dummy_main_windows' into 'master'
cmake: use built-in file function to create dummy main

See merge request idf/esp-idf!3253
2018-09-14 15:18:36 +08:00
9121ba22e9 esp32: fix some bugs of modem sleep
1. Keep awake to receive beacon at TBTT time no matter which state
   station is on.

2. If there is any packet to send on dream or sleep state, send NULL
   data with power save bit clear first.
2018-09-14 15:12:34 +08:00
773fb42a3a Merge branch 'bugfix/mqtt_move_kconfig_to_idf' into 'master'
MQTT: Moved Kconfig from esp-mqtt submodule to esp-idf to support docs genration in RTD

See merge request idf/esp-idf!3265
2018-09-14 15:05:13 +08:00
738522f1a3 component/bt: Unlock reserve of SCN 1 for HFP 2018-09-14 06:22:58 +00:00
31c14a5ee4 Merge branch 'feature/py3_espcoredump' into 'master'
espcoredump: Add tests and Python3 support

See merge request idf/esp-idf!3212
2018-09-14 12:39:30 +08:00
61835faed1 Merge branch 'bugfix/tcpip_stack_size_default' into 'master'
Default stack size for TCPIP task increased to avoid stack overflow.

See merge request idf/esp-idf!3258
2018-09-14 12:23:35 +08:00
1f8bf057a0 MQTT: Moved Kconfig from esp-mqtt submodule to esp-idf to support docs genration in RTD 2018-09-14 04:22:13 +00:00
d0721e8f6d Component/bt: fix crash when test multi_connect 2018-09-14 11:18:44 +08:00
3ba63a520c freertos: Add task function wrapper
This commit adds an option to enclose all FreeRTOS task functions within a
wrapper function. In the case that a task function returns, the wrapper function
will log an error and abort the application immediately.

Closes #2269
Closes #2300
2018-09-14 11:07:54 +08:00
11f0c73fb0 Merge branch 'bugfix/undetermined_lang_for_target_bt' into 'master'
Fix undetermined language for target bt issue

See merge request idf/esp-idf!3264
2018-09-14 10:39:32 +08:00
454d65bbab bt: remove non-existing source file from cmakelists 2018-09-14 08:47:22 +08:00
44e4535c90 docs: Set a default IDF_PATH in docs build (needed for RTD)
RTD builds don't set IDF_PATH, mqtt component uses this variable.
2018-09-14 09:42:57 +10:00
e6e2d7ebee Merge branch 'feature/btdm_add_adv_packet_duplicate_in_scan_duplicate' into 'master'
component/bt: add adv packet duplicate in scan duplicate

See merge request idf/esp-idf!2939
2018-09-13 18:16:22 +08:00
2ff3f8b0c8 Stack size for TCPIP task increased from 2048 to 3072. 2018-09-13 12:38:56 +03:00
b774ac425d Merge branch 'feature/cmake_ulp_support' into 'master'
cmake: add ulp components build support

See merge request idf/esp-idf!3100
2018-09-13 14:54:59 +08:00
946f55db85 cmake: add ulp components build support 2018-09-13 14:54:59 +08:00
62c3218981 Merge branch 'fix/spi_slave_free_cs' into 'master'
spi_slave: fix the issue rx dma get broken by master unexpected transaction

See merge request idf/esp-idf!3207
2018-09-13 13:50:56 +08:00
30388c7e87 cmake: Fix "make flash" & "ninja flash" targets
As reported on forum.

Requires a small CMake wrapper script to pick
up environment variables at flashing time.
2018-09-13 15:08:24 +10:00
60a9462f6e Merge branch 'bugfix/optimize_BLE_memory_debug' into 'master'
component/bt: optimize bluetooth memory debug

See merge request idf/esp-idf!3047
2018-09-13 10:49:26 +08:00
4b41bd0cdd test: fix incorrect tx power value in adv 2018-09-13 09:47:23 +08:00
2a1c748834 Merge branch 'bugfix/docs_simplify_home_page' into 'master'
There are now visible links to change between English and Chinese version of…

See merge request idf/esp-idf!2983
2018-09-13 09:07:16 +08:00
7848cfdde7 Merge branch 'feature/mqtt_component' into 'master'
added tuan's mqtt library into idf

See merge request idf/esp-idf!2851
2018-09-13 09:06:09 +08:00
514487e9a1 Merge branch 'feature/light_sleep_example' into 'master'
examples: add light sleep example

See merge request idf/esp-idf!3179
2018-09-13 09:00:59 +08:00
866b880ddc Merge branch 'feature/cmake_make_component_main_again_fixes' into 'master'
cmake: fix source list issues

See merge request idf/esp-idf!3248
2018-09-13 08:56:59 +08:00
944014f9f2 cmake: fix source list issues 2018-09-13 08:56:59 +08:00
cf7ae4d898 Merge branch 'bugfix/main_component_kconfig' into 'master'
cmake: don't add main component Kconfig twice

See merge request idf/esp-idf!3250
2018-09-13 07:20:32 +08:00
171f54bd7e wpa_supplicant: more wpa2_enterprise fixes
Merges https://github.com/espressif/esp-idf/pull/2386

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

Closes https://github.com/espressif/esp-idf/issues/2381
2018-09-12 22:29:15 +08:00
91f579d714 Merge branch 'feature/wifi_update_csi_api_and_fix_phy_dport_access_issue' into 'master'
esp32: update API to set CSI channel filter and HT_LTF data generating

See merge request idf/esp-idf!3180
2018-09-12 21:29:29 +08:00
8e2856b83d soc: fix CPU frequency not updated in rtc_clk_init
Add missing call to rtc_clk_cpu_freq_set_config

Merges https://github.com/espressif/esp-idf/pull/2398
2018-09-12 21:13:42 +08:00
b9382b29fa fix TX power value in ble adv data is incorrect
refence to https://github.com/espressif/esp-idf/issues/2284
Before fixing, the tx power in adv data is always 0xeb(-21dbm).

restriction:
    If change BLE advertising TX power, please call esp_ble_gap_config_adv_data()
    after BLE adv TX power changed.

    Later, will implement set BLE advertising TX power via HCI, then the
    TX power value in adv data can be update automatically after BLE adv
    TX power changed.
2018-09-12 20:23:45 +08:00
d928465151 cmake: use built-in file function to create dummy main 2018-09-12 20:21:38 +08:00
c462a66726 Component/bt: fix save error key in smp when reconnect 2018-09-12 19:51:59 +08:00
8a38a2332a cmake: don't add main component Kconfig twice 2018-09-12 19:37:25 +08:00
c4b0f00985 Merge branch 'bugfix/mdns_service_txt_set' into 'master'
bugfix: mdns_service_txt_set() wasn't allocating memory for TXT records

See merge request idf/esp-idf!3244
2018-09-12 18:43:53 +08:00
d4eca3abf5 Merge branch 'bugfix/multi_divece_cant_detect_case' into 'master'
fix the bug of multi device framework that dut can't detect case

See merge request idf/esp-idf!3176
2018-09-12 18:29:34 +08:00
d338279c03 doc/error-handling: translated error-handling.rst
Translated error-handling.rst from en to zh_CN.
2018-09-12 17:54:33 +08:00
ff2cea0df2 Merge branch 'bugfix/cmake_lambda' into 'master'
idf.py: Make the lambda function Python 2 & 3 compatible

See merge request idf/esp-idf!3245
2018-09-12 17:36:03 +08:00
540ccf4177 Merge branch 'bugfix/enlarge_coap_server_pdu' into 'master'
fix: response failed when set a large response data

See merge request idf/esp-idf!2627
2018-09-12 16:48:12 +08:00
36337da8b2 Merge branch 'bugfix/btdm_a2dp_role_mixed_up' into 'master'
component/bt: bugfix that A2DP sink device can be connected by another A2DP sink device

See merge request idf/esp-idf!3191
2018-09-12 16:44:53 +08:00
3a19fb7e8a Merge branch 'bugfix/btdm_controller_enable_failed_in_examples' into 'master'
bugfix/btdm_controller_enable_failed_in_examples

See merge request idf/esp-idf!3224
2018-09-12 16:41:58 +08:00
ec5eb1e5c2 esp32: Add option to place.rtc_data and .rtc_rodata into the RTC_FAST segment
Changes:
KConfig: The option CONFIG_ESP32_RTCDATA_IN_FAST_MEM is added in Kconfig file for esp32 component.
esp32.common.ld: added support of RTC_DATA_ATTR, RTC_RODATA_ATTR data placement into appropriate segment according to Kconfig option.
esp32.ld: linker script is modified to set alias for memory segment selected by Kconfig option to place data. The segments for force placement are added for RTC_FAST_ATTR, RTC_SLOW_ATTR attributes.
esp_attr.h: added new attributes RTC_FAST_ATTR, RTC_SLOW_ATTR for force placement into fest/slow memory.
test_rtc_fast.c: Added unit test cases to check data placement into appropriate memory segment.
Updated documentation for RTC_DATA_ATTR, RTC_FAST_ATTR, RTC_SLOW_ATTR in deep_sleep_stub.rst file.

TW#18001
Closes https://github.com/espressif/esp-idf/issues/1553
2018-09-12 09:25:13 +02:00
73a763fecb fix the bug that multi device's dut can't detect case 2018-09-12 07:18:00 +00:00
500ee99219 Merge branch 'bugfix/fix_mcpwm_api_mismatch_bug' into 'master'
driver(mcpwm): Fix  some mcpwm related bug

See merge request idf/esp-idf!2510
2018-09-12 14:59:02 +08:00
cbcc60ae5f Merge branch 'doc/rmt_example_doc_improve' into 'master'
doc(rmt): update README.md file of rmt related example.

See merge request idf/esp-idf!2636
2018-09-12 14:58:04 +08:00
9bdb28c5c8 Merge branch 'bugfix/py23_packages' into 'master'
Improve the Python package installation procedure

See merge request idf/esp-idf!3222
2018-09-12 14:44:21 +08:00
5acf886324 Merge branch 'bugfix/set_a_real_wakeup_period' into 'master'
Corrected ULP wakeup period setup API to account for time the ULP FSM spends on…

See merge request idf/esp-idf!3228
2018-09-12 14:42:53 +08:00
23345d2021 MQTT: Integrate esp-mqtt library into idf
added docs and tests for mqtt library, small fixes (removed warnings, option for custom outbox, websocket bug fixed for longer transports). refactored to use common tcp_transport component, support for CMake build system.
Closes #2108
2018-09-12 08:00:59 +02:00
fdabd5e0b1 Merge branch 'feature/check_uniqueness_name_of_partitions' into 'master'
partition_table: Check - partition names must be unique

See merge request idf/esp-idf!3204
2018-09-12 12:55:14 +08:00
2a87f00942 partition_table: Check - partition names must be unique 2018-09-12 10:58:38 +08:00
c8b342cc40 There are now visible links to change between English and Chinese version of documentation. Therefore information on the home page how to switch between languages has been removed. Added 'Download' link to the menu to provide a more visible access to documentation in PDF format for people who prefer to read it offline. 2018-09-12 04:48:50 +02:00
dff7a2a302 idf.py: Make the lambda function Python 2 & 3 compatible 2018-09-11 13:11:04 +02:00
e5e2702ca3 bugfix: mdns_service_txt_set() wasn't allocating memory for TXT records
Allocation was happening later, causing possible use of stack variables
of caller function, which could be invalid.

Signed-off-by: Piyush Shah <piyush@espressif.com>
2018-09-11 16:23:56 +05:30
c3d99dd2e4 Encourage to install python packages without administrative rights
Using 'sudo pip install' can cause a lot of problems because usually
there are a couple of Python interpreters installed. This fix encourages
developers to use `pip install --user` instead which is safer.
2018-09-11 08:54:37 +02:00
5eb452f72e Add required Python packages
On some systems pip and setuptools are no longer installed as
dependencies of the python packages. This commit adds the requirement
for these packages.
2018-09-11 08:54:37 +02:00
b9e1869538 espcoredump: Add tests and Python3 support 2018-09-11 08:53:06 +02:00
237cc88b9f lwip: add code for sending gratuitous ARP periodically 2018-09-11 14:36:42 +08:00
17ac4bad73 Merge branch 'feature/py23_docs' into 'master'
docs: Make the Python scripts Python 2&3 compatible

See merge request idf/esp-idf!3226
2018-09-11 12:51:49 +08:00
ee7a73e5a7 component/bt: release some controller memory according to the configuration of bluetooth examples 2018-09-11 11:32:20 +08:00
37269dbbca component/bt: bugfix for mismatch of controller mode in sdkconfig.defaults and source code in some examples 2018-09-11 11:32:04 +08:00
9cce5f5a55 Merge branch 'bugfix/fix_the_bug_when_gateway_zero' into 'master'
esp32: fix the bug that SYSTEM_EVENT_STA_GOT_IP is forbidden when gateway is 0.0.0.0

See merge request idf/esp-idf!3210
2018-09-11 10:57:18 +08:00
9103a04793 component/bt: add adv packet duplicate in scan duplicate 2018-09-11 02:31:11 +00:00
94f86e2d88 Merge branch 'feature/cmake_make_main_component_again' into 'master'
cmake: make main a component again

See merge request idf/esp-idf!3202
2018-09-11 09:44:12 +08:00
d9939cedd9 cmake: make main a component again 2018-09-11 09:44:12 +08:00
469b8c7e8e component/bt: optimize bluetooth memory debug 2018-09-10 09:19:19 +00:00
82b8db196f examples: add light sleep example 2018-09-10 17:10:43 +08:00
f9bed53ea2 Merge branch 'feature/task_wdt_add_timestamp' into 'master'
esp32/task_wdt: Add timestamp to message isr_twdt

See merge request idf/esp-idf!3053
2018-09-10 16:31:20 +08:00
004c6fb7ff Docs: Remove unused kconfiglib.py 2018-09-10 10:28:14 +02:00
bd1e80b3f0 Merge branch 'bugfix/esp_ipc_call_blocking' into 'master'
ipc: fix `esp_ipc_call_blocking` to return after callback execution is completed

See merge request idf/esp-idf!3218
2018-09-10 16:27:50 +08:00
892fc4ac3f Merge branch 'feature/btdm_add_set_default_passkey_function' into 'master'
Component/bt: add set/clear static passkey function

See merge request idf/esp-idf!3128
2018-09-10 16:08:05 +08:00
229fe8e2e4 Merge branch 'feature/esp-wrover-kit-v4_1' into 'master'
Included ESP-WROVER-KIT V4.1 in documenation: Added 'Get Started' guide and updated 'HW Reference'. Closes https://github.com/espressif/esp-idf/issues/2363. Closes https://github.com/espressif/esp-idf/issues/2365.

See merge request idf/esp-idf!3161
2018-09-10 14:48:41 +08:00
c5265b12dd Merge branch 'feature/http_client_custom_method' into 'master'
esp_http_client: add support OPPTIONS/SUB/UNSUB/NOTIFY methods

See merge request idf/esp-idf!3214
2018-09-10 14:44:27 +08:00
f5a642840a docs: Make the Python scripts Python 2&3 compatible 2018-09-10 08:37:43 +02:00
c76b6d07f0 Merge branch 'fix/sdio_slave_recv_isr_load' into 'master'
sdio_slave: fix the recv crash when trans finish and load at the same time

See merge request idf/esp-idf!3217
2018-09-10 14:37:18 +08:00
f6b0b27026 Corrected number of FSM cycles and related description 2018-09-10 07:14:19 +02:00
5eee2bf37d Corrected ULP wakeup period setup API to account for time the ULP FSM spends on internal tasks before being able to execute the program. Inspired by https://esp32.com/viewtopic.php?f=2&t=7081. 2018-09-10 07:08:12 +02:00
8f88a81f30 sdio_slave: fix the recv crash when trans finish and load at the same time 2018-09-10 13:06:54 +08:00
27d1b04500 Merge branch 'bugfix/cmake_examples_check_stage' into 'master'
ci: verify example CMakeLists.txt at check stage

See merge request idf/esp-idf!3230
2018-09-10 12:43:29 +08:00
f41eeb9e03 ci: verify example CMakeLists.txt at check stage 2018-09-10 12:02:02 +08:00
36a8cd1bf5 component/bt: stop to inititate AVRC connection when A2DP connection fails to set up
AVRCP connection binds to A2DP in current implementation, despite the two profiles are\
independent according to specification. AVRCP connection is not necessary to set-up \
if A2DP connection fails to establish
2018-09-10 03:35:58 +00:00
9621904cdc component/bt: stop to initiate AVDTP connection on failure of A2DP service discovery
In opening state of AVDTP connection, if SDP client fails to get valid A2DP service record\
from peer SDP server, then do not initiate AVDTP connection request
2018-09-10 03:35:58 +00:00
e9e3bc492b component/bt: bugfix that A2DP sink device can be connected by another A2DP sink device
In pevious implementation, A2DP sink will register an A2DP source Stream End Point(SEP) although the SEP is not\
supposed to be used. Now remove the unused SEP for source so that only one role of A2DP can be supported at one
time. Service record in local SDP server only includes at most one service for A2DP sink role or source
2018-09-10 03:35:58 +00:00
9844779553 Merge branch 'bugfix/add_missing_CMakeLists' into 'master'
Added missing CMakeLists.txt file to satisfy CI checks

See merge request idf/esp-idf!3229
2018-09-10 10:54:48 +08:00
15c10b3cbe Added missing CMakeLists.txt file to satisfy CI checks 2018-09-09 21:32:57 +02:00
94c571c017 ipc: fix esp_ipc_call_blocking to return after callback execution is completed
Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-09-07 14:19:35 +05:30
6f5820814f Merge branch 'test/driver_case_review' into 'master'
Test/driver case review

See merge request idf/esp-idf!3206
2018-09-07 16:48:59 +08:00
7e514c11ca Merge branch 'bugfix/http_server_strcasecmp' into 'master'
using case-insensitive compare for getting http header

See merge request idf/esp-idf!3155
2018-09-07 16:45:52 +08:00
e7243a2cdd Merge branch 'doc/eclipse_parallel_build' into 'master'
doc: Add parallel builds to the Eclipse setup guide

See merge request idf/esp-idf!3209
2018-09-07 16:03:53 +08:00
457e8d4265 Merge branch 'bugfix/slow_mem_keep_rtc_noinit' into 'master'
sleep: keep RTC_SLOW_MEM powered on if RTC_NOINIT is used

See merge request idf/esp-idf!3213
2018-09-07 15:54:52 +08:00
1e9ce6a2e1 doc: translate parallel build in Eclipse 2018-09-07 14:39:40 +08:00
4eeed31a04 Merge branch 'feature/cmake' into 'master'
Merge experimental CMake support to master

See merge request idf/esp-idf!3024
2018-09-07 13:44:17 +08:00
2d748b5d38 spi_slave: fix the issue rx dma get broken by master unexpected transaction 2018-09-07 12:04:55 +08:00
70cacc8b4e doc: Add parallel builds to the Eclipse setup guide 2018-09-07 11:48:17 +08:00
738d49e02b esp_http_client: add support OPPTIONS/SUB/UNSUB/NOTIFY methods 2018-09-07 03:06:09 +00:00
7d56115992 esp32: update API to set CSI channel filter and HT_LTF data generating
method and apply pre-read APB register dport access method to PHY

Close: https://github.com/espressif/esp-idf/issues/2337
2018-09-07 11:05:59 +08:00
958bf62e5f http_server: using case-insensitive compare for getting http header 2018-09-07 03:04:43 +00:00
d12982dc6e Component/bt: add set default passkey function 2018-09-07 10:55:44 +08:00
aab43e6dda Merge branch 'bugfix/enlarge_ethernet_mac_stack_size' into 'master'
ethernet: enlarge ethernet task stack size

See merge request idf/esp-idf!3203
2018-09-07 10:47:30 +08:00
8893438f08 Merge branch 'feature/cpp_exceptions_example' into 'master'
examples: add C++ exception handling example

See merge request idf/esp-idf!3178
2018-09-07 10:34:18 +08:00
13107d5968 Merge branch 'feature/light_sleep_gpio_uart_wakeup' into 'master'
sleep: add support for GPIO and UART wakeup from light sleep

See merge request idf/esp-idf!3004
2018-09-07 10:33:33 +08:00
161a506f00 ethernet: enlarge ethernet task stack size
1. In original driver, the stack size for emac driver task "emacT" is only 2048 Bytes, which also can not be changed by user.
2. Each time when invoking "emac_start" function, it will reset emac registers, the driver should reconfig some important registers again.
2018-09-07 10:16:34 +08:00
8484b9cfd3 Merge branch 'feature/btdm_legacy_paring' into 'master'
component/bt: Add Legacy Pairing

See merge request idf/esp-idf!3057
2018-09-07 10:15:52 +08:00
36bc73e5a6 idf.py: Choose a default serial port for all targets if '-p' is not given 2018-09-06 20:32:49 +08:00
deb46b415f lwip: Re-add CONFIG_PPP_SUPPORT check, remove redundant CFLAGS 2018-09-06 20:23:20 +08:00
cff2ef695a Merge branch 'master' into feature/cmake 2018-09-06 20:23:04 +08:00
affe75a102 Merge branch 'bugfix/btdm_hfp_invalid_hci_sync_pkt_len' into 'master'
bugfix/btdm_hfp_invalid_hci_sync_pkt_len

See merge request idf/esp-idf!3186
2018-09-06 19:51:42 +08:00
0cfed0b79b rmt test: add the case for bug in github[#1815] 2018-09-06 19:43:30 +08:00
47fcdeaa0b rmt test: add case test test the bug of re-install problem
add pending bug case:rmt_tx_stop function cause the re-install fail when rmt_config_t.tx_config.loop_en==true
2018-09-06 19:43:30 +08:00
09dd1034de rmt test: add case to check memory block.
add RMT channel num and memory block relationship test case to check the memory block range is used in right way.
2018-09-06 19:43:30 +08:00
836d01dcea ledc test: ignore one case.
a bug caused by pcnt. it will fail randomly caused by PCNT bug. It will open when PCNT problem is resolved
2018-09-06 19:43:30 +08:00
b999d10e8c Merge branch 'feature/sync_lwip_as_submodule' into 'master'
Feature/sync lwip as submodule

See merge request idf/esp-idf!2685
2018-09-06 19:43:08 +08:00
3578fe39e0 Feature/sync lwip as submodule 2018-09-06 19:43:08 +08:00
f647ea81cc pcnt test: ignore pcnt two test cases
a bug caused by pcnt. these two cases has about 10% fail ratio. they fail randomly in CI. stress test needed. they are ignored until this bug fixed.
2018-09-06 19:42:20 +08:00
de0e9a1e05 Merge branch 'bugfix/http_server_example_tests_regex' into 'master'
HTTP Server Example Tests : Fix various issues

See merge request idf/esp-idf!3162
2018-09-06 19:37:11 +08:00
55756550dd Merge branch 'feature/pyenv_multiple_run' into 'master'
CI: Simplify running commands with several versions of Python

See merge request idf/esp-idf!3123
2018-09-06 19:29:03 +08:00
281345c53a sleep: keep RTC_SLOW_MEM powered on if RTC_NOINIT is used
Fixes a bug that if application uses RTC_NOINIT variables but doesn’t
use RTC_DATA variables, then RTC_NOINIT variables loose their values
after deep sleep.

Reported in https://esp32.com/viewtopic.php?f=2&t=7045&p=30301#p30299
2018-09-06 18:31:17 +08:00
9538059f84 CI: Simplify running commands with several versions of Python 2018-09-06 11:50:17 +02:00
22ac8cf424 ledc test: test low speed mode frequency.
remove the comment to test the scenario that ledc in low speed mode frequency can be changed, to make sure the bug has been resolved
2018-09-06 17:44:39 +08:00
98c868ff09 gpio test: add GPIO multi-level interrupt test
add case to test the bug of v3.0. If we trigger the level interrupt more than once, will cause the interrupt be triggered many times
2018-09-06 17:43:23 +08:00
f278c7c9f8 docs: refactor BLE iBeacon demo readme 2018-09-06 17:31:03 +08:00
91c7149f6e Included information about power on and diagnostics LEDs. Closes https://github.com/espressif/esp-idf/issues/2365. 2018-09-06 11:28:23 +02:00
c1b8949a1e cmake: Add CMakeLists.txt file for WiFi station example 2018-09-06 16:20:13 +08:00
599da58070 Merge branch 'feature/disable_rom_logging' into 'master'
esp32/sleep: Add a function to disable logging from ROM code

See merge request idf/esp-idf!3182
2018-09-06 16:11:23 +08:00
09d0b8d47b sleep: allow esp_sleep_get_wakeup_cause to be used for light sleep 2018-09-06 15:42:34 +08:00
6fbf585703 docs/sleep: mention new wakeup sources, use generated API reference 2018-09-06 15:42:34 +08:00
31e969aded examples/console: add light sleep command 2018-09-06 15:40:46 +08:00
cf4f2c19e4 sleep: allow disabling all wakeup sources 2018-09-06 15:40:46 +08:00
75629b7fc3 sleep: add support for GPIO and UART wakeup from light sleep 2018-09-06 15:40:46 +08:00
002d913ab6 uart: add function to set light sleep wakeup threshold 2018-09-06 15:40:46 +08:00
1c5522575e driver/gpio: support wakeup function for RTC IOs 2018-09-06 15:40:46 +08:00
770e413d4c esp32: fix the bug that SYSTEM_EVENT_STA_GOT_IP is forbidden when gateway is 0.0.0.0
Closes: https://github.com/espressif/esp-idf/issues/2344
2018-09-06 14:52:04 +08:00
5c3ca78a07 Merge branch 'bugfix/btdm_discovery_ble' into 'master'
component/bt : fix bug that set discovery mode will stop ble adv

See merge request idf/esp-idf!3183
2018-09-06 14:18:11 +08:00
e675c3cfed Merge branch 'test/split_test_env_for_integration_test' into 'master'
test: split CI test environment

See merge request idf/esp-idf!3099
2018-09-06 13:09:11 +08:00
0bc5dcc2c2 cmake: Post-merge fixups 2018-09-06 11:14:30 +08:00
1d99531328 Corrected RGB LED pin assignment. Closes https://github.com/espressif/esp-idf/issues/2363. 2018-09-05 22:10:42 +02:00
62389b6be6 Included ESP-WROVER-KIT V4.1 in documenation: Added 'Get Started' guide and updated 'HW Reference' 2018-09-05 22:10:42 +02:00
3ed5af18fd HTTP Server Example Tests : Fix various issues
* Fixed regex constraints for parsing IP and other parameters from monitor log.
* httplib connection timeouts set
* Redundent tests (commented out earlier) have been removed from advanced_tests. These tests are already run during unit testing.
2018-09-05 23:29:07 +05:30
a0d2dd0385 Merge branch 'bugfix/eclipse_compiler_command_cpp' into 'master'
docs/eclipse: update command to get compiler specs

See merge request idf/esp-idf!3167
2018-09-05 18:35:25 +08:00
b1380707e4 Merge branch 'bugfix/ci_github_deploy' into 'master'
ci: Fix spurious pipeline failure when deploying a tag to GitHub

See merge request idf/esp-idf!3021
2018-09-05 18:07:24 +08:00
d7079b6842 Merge branch 'bugfix/tw25969_esp_derive_local_mac_missing' into 'master'
defination: fix the bug that esp_derive_local_mac() defination missing

See merge request idf/esp-idf!3198
2018-09-05 17:21:02 +08:00
8d698a59f4 defination: fix the bug that esp_derive_local_mac() defination missing
Closes: https://github.com/espressif/esp-idf/issues/2352
2018-09-05 14:36:37 +08:00
312424b5ac docs: update command to get compiler specs in a few more places 2018-09-05 11:05:52 +08:00
bcd384eb87 Merge branch 'doc/get_started_override_options' into 'master'
doc: Add environent variable overriding to get started

See merge request idf/esp-idf!3160
2018-09-05 11:02:47 +08:00
b355854d4d Merge branch 'master' into feature/cmake 2018-09-05 10:35:04 +08:00
52477d77fb Merge branch 'bugfix/nvs_doc' into 'master'
nvs_flash: Minor changes to NVS documentation

See merge request idf/esp-idf!3192
2018-09-05 10:20:34 +08:00
b9f7e0a1a2 test: split CI test environment:
Currently CI test environment is complicated, usually includes NIC, AP.
These devices are not used for a lot test cases. Therefore we split the
test environment, remove unnecessary devices. Then it will be easier to
create CI runners.
2018-09-05 01:45:48 +00:00
d268677017 doc: Add environemt variable overriding to get started
This comit adds details about the overriding of environment variables such as
ESPPORT and ESPBAUD to the get started guide.
2018-09-05 02:05:31 +08:00
db7c257f33 nvs_flash: Minor changes to NVS documentation
1) Change API doc to reflect new limits on string and blob length.
2) Add "version" field to Page Header structure in README.

Fixes: https://github.com/espressif/esp-idf/issues/2321
2018-09-04 18:51:31 +05:30
bd8b9960d5 component/bt: Add Legacy Pairing 2018-09-04 21:11:03 +08:00
cb2876ff4e examples: add C++ exception handling example 2018-09-04 21:00:14 +08:00
6d865c6104 Merge branch 'feature/termios' into 'master'
Add basic support for termios.h

See merge request idf/esp-idf!3085
2018-09-04 20:42:21 +08:00
97b2281c49 Merge branch 'bugfix/can_driver_multiple_bugs' into 'master'
CAN: Add pm_lock, fix gpio bug, update docs

See merge request idf/esp-idf!3138
2018-09-04 20:34:06 +08:00
2469718481 Merge branch 'bugfix/check_python_order_only_prereq' into 'master'
Use check_python_dependencies everywhere as order-only-prerequisite

See merge request idf/esp-idf!3174
2018-09-04 20:31:49 +08:00
4197ee746a Merge branch 'bugfix/monitor_win_encoding' into 'master'
idf_monitor: Fix Unicode decoding on Windows

See merge request idf/esp-idf!3157
2018-09-04 20:31:37 +08:00
4e6b3936c0 component/bt: bugfix for incorrect length of HCI SCO packet size in HFP resulted from uninitialized data buffer length 2018-09-04 20:09:07 +08:00
f83926a6e6 Merge branch 'doc/btdm_a2dp_sink_example_improvement' into 'master'
component/bt: fix the format and add more content to A2DP sink example

See merge request idf/esp-idf!2995
2018-09-04 19:37:31 +08:00
619eadf8d3 Merge branch 'doc/btdm_a2dp_source_example_improvement' into 'master'
component/bt: fix the format and add more content to A2DP source example

See merge request idf/esp-idf!2996
2018-09-04 19:14:55 +08:00
69610acbe3 Merge branch 'feature/modify_simple_wifi' into 'master'
modify simple wifi example to getting_started example

See merge request idf/esp-idf!3143
2018-09-04 19:04:42 +08:00
2ec0fd8fd6 Merge branch 'feature/signature_verify_updates' into 'master'
secure boot: Support signed app verification without hardware secure boot

See merge request idf/esp-idf!2814
2018-09-04 18:56:47 +08:00
dbad72e6b5 examples/ulp: Add using esp_deep_sleep_disable_rom_logging 2018-09-04 18:21:34 +08:00
069f495006 component/bt : fix bug that set discovery mode will stop ble adv
As the bluedroid original implmentation of BR/EDR and BLE dual mode about discovery mode,
when set discovery mode for BR/EDR, it will stop ble advertising.

Reference to https://github.com/espressif/esp-idf/issues/2306
2018-09-04 17:07:10 +08:00
38098b713f esp32/sleep: Add a function to disable logging from ROM code 2018-09-04 16:03:18 +08:00
45d596d821 1. modify simple wifi example
2. add README file
2018-09-04 14:44:43 +08:00
b91cf5a33f Merge branch 'bugfix/esp_bt_mem_release' into 'master'
components/bt: Fix broken API esp_bt_mem_release() for parameter ESP_BT_MODE_BTDM

See merge request idf/esp-idf!3121
2018-09-04 14:17:10 +08:00
76669ca817 Merge branch 'feature/modify_espnow' into 'master'
modify espnow example

See merge request idf/esp-idf!3144
2018-09-04 13:09:43 +08:00
e54f3d9616 Merge branch 'bugfix/bootloader_random_in_app' into 'master'
esp32: Allow bootloader_random.h use in app, add esp_fill_random() function

See merge request idf/esp-idf!3124
2018-09-04 10:39:12 +08:00
49656656c3 Merge branch 'bugfix/lock_up_if_supply_is_varying' into 'master'
bootloader_support: Fix enable wdt for resolve issue with varying supply

See merge request idf/esp-idf!2769
2018-09-04 00:37:52 +08:00
6fa52ca8fe cmake: Call check_python_dependencies.py from idf.py & cmake 2018-09-03 18:37:53 +08:00
f755a0371d Use check_python_dependencies everywhere as order-only-prerequisite 2018-09-03 11:42:10 +02:00
1c452c8e98 Merge branch 'bugfix/make_mconf_deps' into 'master'
kconfig: Don't include system headers in dependency files

See merge request idf/esp-idf!3163
2018-09-03 15:43:20 +08:00
6976f5671c Merge branch 'bugfix/heap_dma_pool_fixes' into 'master'
heap: Fixes around DMA reserved pool

See merge request idf/esp-idf!3034
2018-09-03 15:43:01 +08:00
1a0b39a1b3 Merge branch 'bugfix/add_core_id_to_idle_task_name' into 'master'
freertos: Add core ID to idle task names

See merge request idf/esp-idf!3159
2018-09-03 14:40:37 +08:00
26ee0f5203 esp32/task_wdt: Add timestamp to message isr_twdt
Closes https://github.com/espressif/esp-idf/issues/2270
2018-09-03 14:31:22 +08:00
4fc84306a2 esp32/task_wdt: Add esp_task_wdt_isr_user_handler function
Added esp_task_wdt_isr_user_handler function to receive twdt events in
the user code.

Closes https://github.com/espressif/esp-idf/issues/2270
2018-09-03 14:31:20 +08:00
977619f23c freertos: Add core ID to idle task names
This commit adds the core number to the name of each idle task.
2018-09-03 13:50:05 +08:00
9c715d7946 bootloader_support: Fix enable rtc_wdt for resolve issue with varying supply
Eliminates the issue with the lock up in the bootloader due to a power drawdown during its operation.

Closes https://github.com/espressif/esp-idf/issues/1814
2018-09-03 05:43:01 +00:00
83a179abb0 esp32: Add esp_fill_random() function
Convenience function to fill a buffer with random bytes.

Add some unit tests (only sanity checks, really.)
2018-09-03 04:39:45 +00:00
767ec27350 bootloader_support: Move bootloader_random.h to public header directory 2018-09-03 04:39:45 +00:00
ae4efeb3dc mconf: Don't include system headers in dependency files
Fixes issue where build gets stuck because of .d files in the
tools/kconfig directory.

Closes https://github.com/espressif/esp-idf/issues/712
2018-09-03 03:45:15 +00:00
5f1844a0c8 Merge branch 'bugfix/heap_poison_swap_check' into 'master'
heap: When verifying & swapping a fill pattern, stop swapping if verification fails

See merge request idf/esp-idf!2890
2018-09-03 11:19:16 +08:00
084ca82f96 Merge branch 'feature/bootloader_minor_enhancements' into 'master'
Feature/bootloader minor enhancements

See merge request idf/esp-idf!3111
2018-09-03 10:56:30 +08:00
27a1758908 Merge branch 'mesh/rewrite_docs' into 'master'
docs/rewrite_mesh_docs

See merge request idf/esp-idf!2990
2018-09-03 10:52:33 +08:00
f4c3917712 docs/rewrite_mesh_docs
The following commit rewrites the ESP-MESH docs. This commit includes
new diagrams and a structure approach to the mesh docs. Some mesh api references
have also been modified.
2018-09-02 21:34:21 +08:00
1d5dc2b9ef wpa2_enterprise fixes 2018-09-01 22:19:48 -07:00
dc3fa14a26 CAN: Add pm_lock, fix gpio bug, update docs
This commit does the following

- Add power management lock to CAN driver so that APB frequency does not change
whilst CAN driver is in use
- Fix incorrect flag in can_transmit()
- Refactor can_driver_install() and can_driver_uninstall() so that critical sections
are shorter
- Fix CAN gpio configuration bug on RX pin. Closes #2302
- Add docs about multiple ID configuration and fix example links
2018-09-01 02:46:05 +08:00
4abe47437f components/bt: Fix broken API esp_bt_mem_release() for parameter ESP_BT_MODE_BTDM
Problem:
The new API esp_bt_mem_release() that was added freed BTDM data to heap from esp_bt_controller_mem_release().
Now with the BT memory optimization commit ee787085f9,
the BTDM data is optimized and reduced to only 32 bytes which is not sufficient amount to be added to heap.
So, using the API leads to assert saying that the region is too small.

Solution:
Modify heap_caps_add_region_with_caps to return ESP_ERR_INVALID_SIZE in case the range is too small to create a new heap.
Do not assert if return value is ESP_ERR_INVALID_SIZE

This also fixes using API esp_bt_controller_mem_release() with ESP_BT_MODE_BTDM

Signed-off-by: Hrishikesh Dhayagude <hrishi@espressif.com>
2018-08-31 14:28:23 +00:00
a557e8cc14 Merge branch 'bugfix/fix_bt_hdr_files' into 'master'
components/bt: Make a pass through Bluetooth header files

See merge request idf/esp-idf!3093
2018-08-31 22:04:39 +08:00
2d0124698e Merge branch 'bugfix/btdm_update_private_address' into 'master'
component/bt: Update BLE private address after it's private address interval

See merge request idf/esp-idf!2987
2018-08-31 21:33:54 +08:00
4542bf19f7 Merge branch 'bugfix/btdm_rfcomm_test_command_cause_crash' into 'master'
component/bt: Fix bug rfcomm test command cause crash

See merge request idf/esp-idf!3080
2018-08-31 21:33:39 +08:00
e3778d7bd9 Merge branch 'bugfix/btdm_find_remote_service_by_uuid_always_return_success' into 'master'
component/bt: Fix bug of SDP find services by uuid always return success

See merge request idf/esp-idf!3036
2018-08-31 21:27:21 +08:00
da1a439153 Merge branch 'feature/modify_smart_config' into 'master'
modify smart config example

See merge request idf/esp-idf!3142
2018-08-31 21:01:57 +08:00
430eeef5a2 Merge branch 'bugfix/esp_wifi_disconnect_fail' into 'master'
update wifi lib to fix two bugs

See merge request idf/esp-idf!3125
2018-08-31 21:01:12 +08:00
76413309a5 Merge branch 'bugfix/tw23350_fix_brownout_reset' into 'master'
when brownout reset occurs, set the phy TX Power to the lowest

See merge request idf/esp-idf!2854
2018-08-31 20:37:18 +08:00
6daecf73ce modify espnow example 2018-08-31 19:21:15 +08:00
276cba1103 idf_monitor: Fix Unicode decoding on Windows
Closes https://github.com/espressif/esp-idf/issues/2348
2018-08-31 12:20:55 +02:00
38c0626090 cmake app_update: Add "flash blank otadata" functionality to cmake 2018-08-31 12:30:14 +08:00
a6282e3e5e cmake idf.py: Print flasher file arguments in order of file offset
Previously, order was random
2018-08-31 12:29:38 +08:00
c921f14128 cmake: Generate list of components with dependent items first, use deterministic ordering
Guarantees that a component's project_include.cmake will be called after its dependent components'
project_include.cmake. Because of cycles in the dependency graph, this is less useful than you'd
think but it gives a strong guarantee for any component which is not part of a cycle.

Also applies deterministic ordering (ordering is initialised as COMPONENT_REQUIRES_COMMON then all
COMPONENTS in alphabetical order, but then the sorting by dependencies is applied.)
2018-08-31 12:29:13 +08:00
b952031947 fix the esp_wifi_disconnect() err when wifi is not started or inited
Closes: https://github.com/espressif/esp-idf/issues/2336
2018-08-31 10:49:52 +08:00
6de75e03ac Merge branch 'ci/add_check_stage' into 'master'
ci: Add 'check' stage, move all check-related jobs to this stage

See merge request idf/esp-idf!2986
2018-08-31 10:08:59 +08:00
d8cf8074ec Updated command to get compiler specs.
Eclipse was unable to resolve the std::mutex type eventhough the mutex header file was succesfully included. By adding this modification, the issues was resolved.
2018-08-30 22:00:47 +02:00
4cd1643006 Merge branch 'bugfix/btdm_security_vulnerability' into 'master'
fix bluetooth security vulnerability of ECDH public key checking

See merge request idf/esp-idf!3089
2018-08-31 02:02:59 +08:00
cda3eff3a2 Merge branch 'bugfix/wifi_reorder_mpdu_as_ampdu' into 'master'
esp32: reorder MPDU as AMPDU

See merge request idf/esp-idf!3108
2018-08-31 01:59:50 +08:00
cfaf6c2729 esp32: reorder MPDU as AMPDU
Some APs transmit AMPDU and MPDU by turns. Moreover, the sequence
    numbers of AMPDU and MPDU are out of order, e.g. MPDU(1253) -
    AMPDU(1251, 1252) - MPDU(1254) - AMPDU(1255, 1256). In order to
    receive both AMPDU and MPDU in order, MPDU must be reordered with
    AMPDU.
2018-08-30 17:18:48 +00:00
5395435816 Add basic support for termios.h
Closes https://github.com/espressif/esp-idf/issues/2063
2018-08-30 14:29:20 +02:00
499d06746b Merge branch 'bugfix/py3_error_code_generator_from_docs' into 'master'
Docs: Check Python packages

See merge request idf/esp-idf!3135
2018-08-30 20:25:09 +08:00
98cf74d1b7 modify static variables and README file 2018-08-30 19:52:10 +08:00
7cfef29eb8 Docs: Check Python packages 2018-08-30 13:20:42 +02:00
5fbfd20f10 Merge branch 'master' into feature/cmake 2018-08-30 18:52:31 +08:00
a9c4ed7139 Merge branch 'master' into feature/cmake 2018-08-30 18:51:01 +08:00
31cbd1b251 Merge branch 'feature/emmc_ddr' into 'master'
sdmmc: eMMC support, command layer refactoring

See merge request idf/esp-idf!3062
2018-08-30 18:14:35 +08:00
7440d5f920 Merge branch 'feature/py3_idf_size' into 'master'
tools: Support Python 3 in idf_size.py

See merge request idf/esp-idf!2849
2018-08-30 18:12:17 +08:00
5425979932 when brownout reset occurs,set the phy TX Power to the lowest 2018-08-30 14:22:03 +08:00
c4ed9d15f7 heap: Drop priority of DMA reserved memory pool
Ensures that non-reserved memory should be used up first, before allocating from this pool.
2018-08-30 06:18:18 +00:00
776c57e0ac heap: When adding a new heap, allocate its metadata block from internal memory only 2018-08-30 06:18:18 +00:00
fafe532f35 ci: Add 'check' stage, move all check-related jobs to this stage
Allows us to prevent pushing to GitHub if a check fails on master/release branch.
2018-08-30 14:14:48 +08:00
da34e3eb68 sdmmc: document eMMC support, host features 2018-08-30 13:14:26 +08:00
b7e5b28f49 sdmmc: update unit tests for ESP_eMMC_TestBoard_V1
1. New tests for SD card on slot 0. Currently frequency for 4-bit mode
has to be reduced in the test.

2. Change pin for CD/WP tests, re-enable CD tests.
2018-08-30 13:14:26 +08:00
78fab8a0f9 sdmmc: implement partial DDR support
Works for 3.3V eMMC in 4 line mode.
Not implemented:
- DDR mode for SD cards (UHS-I) also need voltage to be switched to 1.8V.
- 8-line DDR mode for eMMC to be implemented later.
2018-08-30 13:11:54 +08:00
de42d99b1d sdmmc: command layer refactoring 2018-08-30 13:11:54 +08:00
1806a69abf Merge branch 'bugfix/http_server_example_tests' into 'master'
http_server : Fix and enable example tests

See merge request idf/esp-idf!2960
2018-08-30 12:46:29 +08:00
5a8917c337 fix bluetooth security vulnerability of ECDH publick key checking 2018-08-30 11:39:19 +08:00
383464749a eMMC/MMC support for ESP32
Merges https://github.com/espressif/esp-idf/pull/1941
Previous work in https://github.com/espressif/esp-idf/pull/590
2018-08-30 11:36:28 +08:00
80e47a005d sdmmc host: minor cleanup
Code style, comments
2018-08-30 11:36:28 +08:00
100a325129 Merge branch 'fix/spi_example_wait_gpio' into 'master'
spi: fix the misleading example, letting the master wait until slave is ready

See merge request idf/esp-idf!3136
2018-08-30 11:29:38 +08:00
b01e87bbaf Merge branch 'test/bugfix_BTSTK_GATT_25007' into 'master'
test: fix bug of BTSTK_GATT_25007

See merge request idf/esp-idf!3096
2018-08-30 11:19:04 +08:00
9be09692b1 Merge branch 'bugfix/btdm_get_acl_num' into 'master'
component/bt : fix get acl number incorrect due to memory release

See merge request idf/esp-idf!3090
2018-08-30 11:12:46 +08:00
e5842f69d0 Merge branch 'doc/python_sphinx_build' into 'master'
docs: Call 'python -m sphinx' instead of sphinx-build

See merge request idf/esp-idf!3127
2018-08-30 11:02:35 +08:00
ff54bfcde1 Merge branch 'bugfix/hwcrypto_mpi_ecp' into 'master'
mbedtls: Don't unnecessarily grow the result of a hardware bignum operation

See merge request idf/esp-idf!3041
2018-08-30 10:00:07 +08:00
e2b4ad8f6e Temporary : Disable leak tests 2018-08-30 03:01:59 +05:30
e2da1d9905 http_server : Fix and enable example tests
This introduces the following changes in the example test scripts :
* Dependency on python requests library removed in favor of httplib
* Bug fixed in the logic responsible for receiving and processing http chunked responses
* Default timeouts increased Note : Due to connectivity issues (between runner host and DUT) in the runner environment, some of the advanced_tests are being ignored. These tests are intended for verifying the expected limits of the http_server capabilities, and implement sending and receiving of large HTTP packets and malformed requests, running multiple parallel sessions, etc. It is advised that all these tests be run locally, when making changes or adding new features to this component.
2018-08-30 03:01:59 +05:30
ba17648aea Merge branch 'bugfix/mesh_fix_hard_to_find_parent' into 'master'
mesh: bugfix and add two APIs

See merge request idf/esp-idf!3107
2018-08-29 23:05:32 +08:00
5689e446dc cmake: Add missing example CMakeLists.txt files, CI check all examples have both 2018-08-29 20:22:55 +08:00
49a910adfb cmake: partition_table: Use PYTHON interpreter when running parttool.py (fixes flasher args on Windows) 2018-08-29 20:22:55 +08:00
a528d3a61a kconfig: Merge Kconfig.compiler back into Kconfig
Reverts 5e0a3d99e8 (no longer needed but also not supported by
mconf-idf built from kconfig-frontends repo.)
2018-08-29 20:22:55 +08:00
cb158f1194 cmake: Account for missing partition CSV file at cmake runtime
Avoid either breaking menuconfig (if cmake fails), or producing bad build output (if cmake succeeds
but no flashing offsets, etc. were generated.)
2018-08-29 20:22:55 +08:00
071aaea66b Place embedded data on flash 2018-08-29 20:22:55 +08:00
408463d0bf cmake idf.py: Fix bug in JSON parsing when printing flash commands 2018-08-29 20:22:55 +08:00
7f06543817 cmake/partitions: Apply offset to partition table metadata correctly
Also warn if the parttool.py has an error
2018-08-29 20:22:55 +08:00
8227db4f5e spi_flash: fix erase_range for block erase check
Erase in block (64k) as much as possible, before falling back
to sector (4k) erase.

Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-08-29 12:04:32 +00:00
62746e414e bootloader: add API for erasing flash region
Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-08-29 12:04:32 +00:00
4a987dacca bootloader: keep bootloader_common code to retention region
It is possible to utilize some of the routines related to otadata
partition validation, after firmware image is downloaded to RAM. Hence
these routines should be part of app cpu cache, so that they do not
get overwritten by firmware.

Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-08-29 12:04:32 +00:00
a56b3abf84 kconfiglib: Allow CONFIG_xxx= to disable booleans
But replace all sdkconfig.defaults to use the explicit =n (more correct)
2018-08-29 19:39:17 +08:00
393c29b656 cmake: Fix bt component dependencies 2018-08-29 19:37:25 +08:00
068a3e2f6a cmake: Fix flasher argument generation 2018-08-29 19:37:19 +08:00
0c64d8e822 spi: fix the misleading example, letting the master wait until slave is ready 2018-08-29 18:40:21 +08:00
458b167f1a docs/en/security: Add documentation for signed apps without hardware secure boot feature 2018-08-29 17:05:34 +08:00
b364f23e17 secure boot: Support secure boot signatures without hardware secure boot
Allows OTA updates to be secured via signature checks, without requiring the overhead or complexity
of a full secure boot implementation.

Uses same signing mechanisms (build system and/or espsecure.py as Secure Boot).

Requires:
* [ ] More testing
* [ ] Documentation
2018-08-29 17:05:29 +08:00
27f3c3e668 Merge branch 'bugfix/gcc8_warnings' into 'master'
Fix or silence warnings found by GCC 8

See merge request idf/esp-idf!3130
2018-08-29 15:53:28 +08:00
1abd346943 docs: Call 'python -m sphinx' instead of sphinx-build
Fixes mismatches where default Python interpreter may not match the most recently
installed sphinx-build wrapper script (if sphinx 2 & 3 both installed, pip will
clobber any previous copy of /bin/sphinx-build when it installs the new one.)
2018-08-29 14:43:42 +08:00
61dc37a6c3 examples/bluetooth: add fallthrough annotations 2018-08-29 14:40:28 +08:00
8c040e749f bluetooth: fix format overflow warnings 2018-08-29 14:40:28 +08:00
779bce7681 bluetooth: fix incorrect memset size 2018-08-29 14:40:28 +08:00
e8eb8cb2a4 bluetooth: fix missing braces and indentation 2018-08-29 14:40:28 +08:00
ed546797d0 heap: test: don’t warn about oversized mallocs 2018-08-29 14:40:28 +08:00
033b694128 bt/a2dp: fix incorrect return type
res was declared as “bool” so expression

((count == 0) ? A2D_SET_ONE_BIT : A2D_SET_MULTL_BIT)

always evaluated to “true”, and was implicitly converted to
A2D_SET_ONE_BIT.
2018-08-29 14:40:28 +08:00
9fbe42c0f1 bt/bta: fix returning value from function returning void 2018-08-29 14:40:28 +08:00
536df958ad bt/btm: fix misplaced debug statement 2018-08-29 14:40:28 +08:00
6af721e8e4 examples/bluetooth: Fix incompatible cast 2018-08-29 14:40:28 +08:00
c3123b00ae examples/spi_slave: check for truncation in snprintf call
Also fix character array initializer
2018-08-29 14:40:28 +08:00
324004f7b3 spiffs: test: check for truncation in snprintf call 2018-08-29 12:49:15 +08:00
9ba5896d86 driver, ethernet: fix non-static inline functions
See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81734
2018-08-29 12:49:15 +08:00
fc0c110efd driver: test: fix memset out of bounds in spi_master test 2018-08-29 12:49:15 +08:00
946a823ccb syscalls: fix type conversion for _raise_r stub 2018-08-29 12:49:15 +08:00
7e5c235b9d app_trace: Fix tmo initialization 2018-08-29 10:55:39 +08:00
669c5ac538 Merge branch 'feature/add_deinit_to_emac_driver' into 'master'
ethernet: support esp_eth_deinit

See merge request idf/esp-idf!3059
2018-08-28 18:09:55 +08:00
961f59ff57 mbedtls: Don't unnecessarily grow the result of a hardware bignum operation
Avoids growing the result of hardware bignum operations
(particularly for multiplication)

Fixes bugs where some Elliptic Curve operations fail or corrupt memory,
as they assume length of the number is never greater than the number of
non-zero limbs.

Includes some general refactoring to standardize terminology.

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

Fixes TW12984

Adds test cases for both these issues.
2018-08-28 09:08:43 +00:00
eb3f280cd3 component/bt : fix get acl number incorrect due to memory release
1. after memory release MR merged, due to the get acl number condition is not completed, it will cause get acl number value incorrect
2. It may cause set Security Mode (BR/EDR) enable failed
2018-08-28 15:35:40 +08:00
26850880b2 Merge branch 'bugfix/btdm_fix_crash_when_BLE_do_SMP_con_discon_stress_test' into 'master'
component/bt: fix crash when BLE do SMP connect and disconnect stress test

See merge request idf/esp-idf!3077
2018-08-28 13:40:20 +08:00
ec07112f5b ethernet: support esp_eth_deinit
1. change static emac-dma memory to dynamic
2. add esp_eth_deinit
3. modify ethernet example
4. add testcase for ethernet deinit function
5. GPIO0 could not output the 50MHz clock to PHY, so remove this configuration
2018-08-28 12:18:48 +08:00
1eaf112589 Merge branch 'bugfix/rtc_wdt_interval_overflow' into 'master'
rtc_wdt: fix overflow issue with setting wdt interval

See merge request idf/esp-idf!3110
2018-08-28 12:12:21 +08:00
d04c101c96 test: fix bug of BTSTK_GATT_25007 2018-08-28 12:00:15 +08:00
cc8ad721f9 Merge branch 'bugfix/deep_sleep_stub_ptr_check' into 'master'
reset_reason: fix setting wake stub entry point to 0x80000000

See merge request idf/esp-idf!3101
2018-08-28 11:01:22 +08:00
f5b699cee7 Merge branch 'bugfix/btdm_a2dp_sink_pcm_buf_size' into 'master'
bugfix/btdm_a2dp_sink_pcm_buffer_size

See merge request idf/esp-idf!3052
2018-08-28 10:42:36 +08:00
208530a727 Merge branch 'bugfix/idf_app_assert_print' into 'master'
tiny-test-fw: Print more useful info when download.config doesn't exist

See merge request idf/esp-idf!3112
2018-08-28 10:00:44 +08:00
131ce6c441 Merge branch 'doc/custom_app_flash_map_off' into 'master'
docs: Adds description of OpenOCD command to configure custom app image location

See merge request idf/esp-idf!3030
2018-08-28 09:59:36 +08:00
6244f11384 Merge branch 'bugfix/disable_fuzzer_host_test_by_default' into 'master'
CI: disable fuzzer host test by default

See merge request idf/esp-idf!3115
2018-08-27 22:28:44 +08:00
a7d2cb138b CI: disable fuzzer host test by default:
Same key in YAML file will overwrite the key introduced by anchor
2018-08-27 21:41:52 +08:00
5cdff46370 tools: Support Python 3 in idf_size.py 2018-08-27 13:39:07 +02:00
91dd05662d mesh: bugfix and add two APIs
1. new APIs: esp_mesh_get_subnet_nodes_num() and esp_mesh_get_subnet_nodes_list().
2. fix hard to find the parent during connect.
3. disable Wi-Fi channel switch function.
4. fix a typo of MESH_EVENT_NO_PARENT_FOUND.
2018-08-27 19:12:40 +08:00
ac07c23e37 docs: Adds description of OpenOCD command to configure custom app image location 2018-08-27 14:08:36 +03:00
6dae5b206f reset_reason: fix setting wake stub entry point to 0x80000000
esp_reset_reason_init would check for reset reason hint, and
unconditionally set RTC_RESET_CAUSE_REG (which is also
RTC_ENTRY_ADDR_REG) to hint value 0, i.e. 0x80000000. However the ROM
code treats this value as valid deep sleep wake stub entry point, and
tries to jump to it.

Clear RTC_RESET_CAUSE_REG only if it contained a valid reset reason
hint, and simply set the register value to 0 when doing so. Also add
a check to esp_get_deep_sleep_wake_stub function that deep sleep wake
stub entry address must be in IRAM.

Reported in https://esp32.com/viewtopic.php?f=13&t=6919.
2018-08-27 19:01:03 +08:00
bc307c920c tiny-test-fw: Print more useful info when download.config doesn't exist 2018-08-27 12:47:08 +02:00
414b84c041 Merge branch 'feature/ci_fuzzer_tests_lwip' into 'master'
ci jobs running fuzz tests on dns, dhcp, dhcps + removed unnecessary references (libexpat)

See merge request idf/esp-idf!2866
2018-08-27 16:25:21 +08:00
147b349799 Merge branch 'bugfix/fix_several_wifi_bugs' into 'master'
esp32: update wifi lib to fix several WiFi bugs

See merge request idf/esp-idf!3095
2018-08-27 14:24:04 +08:00
6519f1833a Merge branch 'bugfix/fix_probable_mem_leak' into 'master'
components/bt: Fix a probable memory leak for BTA_GATTS_CONF_EVT event

See merge request idf/esp-idf!2962
2018-08-27 14:10:22 +08:00
3adf41a5fe Merge branch 'feature/py3_idf_monitor' into 'master'
tools: Support Python3 in idf_monitor

See merge request idf/esp-idf!2930
2018-08-27 12:29:38 +08:00
2c8c210a66 Merge branch 'feature/py3_for_gen_esp_err_to_name' into 'master'
tools: support python3 in gen_esp_err_to_name.py

See merge request idf/esp-idf!2827
2018-08-27 12:29:03 +08:00
b5e1bc1047 Merge branch 'doc/addition_translation_in_get_started' into 'master'
doc: additional translation in get_started

See merge request idf/esp-idf!3087
2018-08-27 12:21:36 +08:00
1c676300f0 Merge branch 'bugfix/btdm_fix_get_error_adv_sometimes' into 'master'
Component/bt: fix get error adv packet sometimes

See merge request idf/esp-idf!3035
2018-08-27 12:17:23 +08:00
zwj
430d3da089 component/bt: fix crash when BLE do SMP connect and disconnect stress test 2018-08-27 11:09:29 +08:00
3faee500bb component/bt: bugfix for incorrect computation of PCM data buffer size in A2DP sink 2018-08-27 02:53:59 +00:00
988dfc6546 doc: additional translation in get_stated 2018-08-27 10:44:28 +08:00
df78612896 Merge branch 'bugfix/btdm_fix_memory_leak_in_security_server' into 'master'
component/bt: fix memory leak in security server

See merge request idf/esp-idf!3014
2018-08-27 10:19:27 +08:00
588e006256 component/bt: Fix bug of SDP find services by uuid always return success 2018-08-27 02:14:45 +00:00
d91a44737f Merge branch 'doc/build_system_zh_CN' into 'master'
doc: translate build-system from en to zh_CN

See merge request idf/esp-idf!3067
2018-08-27 09:40:40 +08:00
6c95285bdb Merge branch 'bugfix/app_update_test' into 'master'
app_update: Change NUM_PIN_APP_TEST for unit test

See merge request idf/esp-idf!3050
2018-08-27 08:46:02 +08:00
51a4b4ba27 Merge branch 'bugfix/btdm_check_slave_feats_before_set_afh' into 'master'
bugfix/btdm_check_slave_feature_before_set_afh

See merge request idf/esp-idf!2972
2018-08-26 16:19:48 +08:00
6a080febbc esp32: update wifi lib to fix several WiFi bugs
Fix following WiFi bugs:
1. Shouldn't scan when connect
2. Check beacon length in modem sleep
3. Fix the bug that AP may deauth wrong station when inactivity timer expires
4. Fix the bug that WiFi assert the system when receiving empty MCS in association response frame
2018-08-26 12:47:24 +08:00
29ec0339f6 components/bt: Fix a probable memory leak for BTA_GATTS_CONF_EVT event
Multiple modules register their callback BTA_GATTS_AppRegister().

If any of the callbacks do not free the allocated pointer in
BTA_GATTS_CONF_EVT event, then this can result in memory leak.

So, free the pointer after the callback function is called and remove
the calls to free in the callback functions as it is now not required

Signed-off-by: Hrishikesh Dhayagude <hrishi@espressif.com>
2018-08-25 16:26:37 +00:00
739b4aadf7 components/bt: Make a pass through Bluetooth header files
This is just a quick glance at all the header files exposed to the
users from cleanup point of view.

Signed-off-by: Hrishikesh Dhayagude <hrishi@espressif.com>
2018-08-25 21:21:42 +05:30
f74b041288 Component/bt: fix memory leak in security server 2018-08-25 15:47:47 +00:00
b14e87a605 Merge branch 'test/fix_test_summary_duplicate' into 'master'
fix bug BTSTK_GAP_14007,BTSTK_GAP_14008,BTSTK_GAP_14009 duplicate summary

See merge request idf/esp-idf!3079
2018-08-25 10:22:40 +08:00
f0fa66a50e rtc_wdt: fix overflow issue with setting wdt interval
Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-08-24 18:06:39 +05:30
783d63488b Merge branch 'bugfix/multi_case_test' into 'master'
test: fix the multi device stop thread bug

See merge request idf/esp-idf!3039
2018-08-24 19:54:34 +08:00
6b0a1bd700 component/bt: check support of AFH in remote slave device's LM feature then determine whether to send LMP_set_AFH 2018-08-24 11:48:12 +00:00
1ca5b70803 Component/bt: fix get error adv packet sometimes 2018-08-24 09:24:49 +00:00
4e28799709 app_update: Change NUM_PIN_APP_TEST for unit test
Fixed error when `make TESTS_ALL=1`
2018-08-24 16:52:27 +08:00
9eefd8c1aa component/bt: Fix bug rfcomm test command cause crash
find when BQB
2018-08-24 14:49:33 +08:00
ef0287de7d fix bug BTSTK_GAP_14007,BTSTK_GAP_14008,BTSTK_GAP_14009 duplicate summary 2018-08-24 14:25:24 +08:00
79b9948cdf tools: support python3 in gen_esp_err_to_name.py 2018-08-24 08:13:01 +02:00
7118f4734b tools: Support Python3 in idf_monitor
Closes https://github.com/espressif/esp-idf/pull/1284
2018-08-24 08:12:19 +02:00
5e36837752 doc: translate build_system from en to zh_CN 2018-08-24 12:31:34 +08:00
c7f4fae8d0 Merge branch 'feature/python_future' into 'master'
Add python-future by using python requirements file

See merge request idf/esp-idf!2973
2018-08-24 08:04:18 +08:00
7abed5fc9e Merge branch 'fix/spi_dma_config_in_iram' into 'master'
SPI: put dma config and slave functions into IRAM

See merge request idf/esp-idf!3038
2018-08-23 22:03:28 +08:00
9699e3f926 Merge branch 'test/add_mesh_recreate_network_case_to_known_issue' into 'master'
test: add mesh recreate network case as known issue

See merge request idf/esp-idf!3066
2018-08-23 19:12:08 +08:00
32171da525 test: disable mesh recreate network test:
We have fixed a bug in test script. Before that, we didn't do strict check when generate the mesh tree, which makes the test pass.

Temp disable these cases, to let CI pass before bug fixed.
2018-08-23 17:49:59 +08:00
52d11dcfb0 docs: make the use of pip install clear 2018-08-23 11:41:56 +02:00
74fe7c82ae bootloader: Don't use check_python_dependencies in the bootloader command 2018-08-23 11:41:40 +02:00
df83323ee3 bugfix:fix the multi device stop thread bug 2018-08-23 08:51:16 +00:00
1d2bcb77af make: Don't invoke check_python_dependencies in bootloader subproject 2018-08-23 08:28:57 +02:00
31ae3fe683 make: Use order-only prereq to check python dependencies 2018-08-23 08:28:57 +02:00
1a79900970 translated some parts in get-started section to zh_CN
1. "install required python packages" in docs/zh_CN/get-started/index.rst
2. docs/zh_CN/get-started/linux-setup-scratch.rst
3. docs/zh_CN/get-started/linux-setup.rst
4. docs/zh_CN/get-started/macos-setup-scratch.rst
5. docs/zh_CN/get-started/macos-setup.rst
2018-08-23 08:28:57 +02:00
62cad3a7d7 Add python-future by using python requirements file 2018-08-23 08:28:57 +02:00
4f87a62f18 spi_slave: add new menuconfig item to decide whether spi slave should be put into IRAM 2018-08-23 05:21:49 +00:00
e3557b57be spi: fix the issue that spi cannot be used when flash is disabled
The dma configuration function called in the ISR should be put into the IRAM.

Fixes https://github.com/espressif/esp-idf/issues/2307.
2018-08-23 05:21:49 +00:00
88d40e01b4 Merge branch 'feature/rtc_slowclk_extra_options' into 'master'
Add more RTC_SLOW_CLK options

See merge request idf/esp-idf!2984
2018-08-23 11:27:14 +08:00
eb18122038 Merge branch 'bugfix/esp_bt_controller_mem_release' into 'master'
BT/BTDM memory release might fail if any of the memory regions is empty

See merge request idf/esp-idf!3031
2018-08-23 11:02:17 +08:00
33f0eadac9 Merge branch 'bugfix/timer_oneshot_timeout_twice' into 'master'
component/bt: Some timer oneshot will timeout twice

See merge request idf/esp-idf!2979
2018-08-23 10:41:53 +08:00
dda56ff55c Merge branch 'bugfix/nvs_set_blob_bug' into 'master'
nvs_flash: Fix nvs_set_blob hang when partition is near to FULL

See merge request idf/esp-idf!3051
2018-08-23 10:27:20 +08:00
7c9439dcbf Merge branch 'bugfix/wrover-kit-camera-socket-pinout' into 'master'
Corrected pinout of the Camera / J4 connector

See merge request idf/esp-idf!3054
2018-08-23 09:06:04 +08:00
8846b5fb64 Merge branch 'bugfix/freertos_task_delete' into 'master'
freertos: Expose TCB & Stack memory capabilities as macro, fix task delete test

See merge request idf/esp-idf!3040
2018-08-22 19:39:21 +08:00
882ca87442 lwip: removed ASSERT in dhcp as the error might occur in runtime if packet is altered 2018-08-22 12:13:34 +02:00
ebebda9604 lwip: supported ci jobs running fuzz tests on dns, dhcp, dhcps 2018-08-22 12:13:20 +02:00
902344c516 Merge branch 'bugfix/trace_mem_layout_pro_cpu' into 'master'
soc: fix trace memory region for single core mode

See merge request idf/esp-idf!3029
2018-08-22 16:51:43 +08:00
50ce2b7d05 Merge branch 'feature/make-otadata' into 'master'
make dump_otadata: Displays app ota_seq and crc on console

See merge request idf/esp-idf!2901
2018-08-22 16:51:36 +08:00
7a5400ce77 make dump_otadata: Displays app ota_seq and crc on console 2018-08-22 16:51:36 +08:00
9ab70d5379 Merge branch 'bugfix/http_write_data' into 'master'
esp_http_client: Fix minor bugs in `esp_http_client_write` and `esp_http_client_open` APIs

See merge request idf/esp-idf!2924
2018-08-22 16:49:29 +08:00
81d6c65379 Merge branch 'feature/esp_http_client_add_esp_tls' into 'master'
esp_http_client: Add esp-tls in esp_http_client

See merge request idf/esp-idf!2740
2018-08-22 16:48:35 +08:00
96971e3e9f esp32: add support for 8MD256 and external 32k as slow clock options 2018-08-22 11:46:24 +08:00
5bf3654637 soc/rtc: Force power on 8M clock if it is used to derive RTC slow clock 2018-08-22 11:33:20 +08:00
8365f0f5d2 soc/rtc: add support for external 32k oscillator
Compared to external 32k XTAL, when active oscillator is used as input,
some parameters need to be set differently.
2018-08-22 11:33:20 +08:00
9efc06be0f esp32/clk: remove unused code
When 32k XTAL was selected as clock source, if the first calibration
attempt failed, the code would fall back to 150kHz internal clock.
Calibration with the internal clock will always succeed.
Therefore `wait` would always be either 0 or 1. Based on this, some
code in this routine can be eliminated.
2018-08-22 11:33:20 +08:00
90f5456dba Merge branch 'feature/rtc_cpu_freq_config' into 'master'
soc/rtc: Refactoring, support CPU frequencies lower than XTAL

See merge request idf/esp-idf!2856
2018-08-22 11:32:08 +08:00
7b4626f824 ci: Fix spurious pipeline failure when deploying a tag to GitHub
Everything succeeds, but because [ -z ${CI_COMMIT_TAG} ] on the last line returns non-zero, it
fails the job.
2018-08-22 13:11:18 +10:00
1857bca871 Corrected pinout of the Camera / J4 connector 2018-08-21 22:01:28 +02:00
911f96ad21 nvs_flash: Fix nvs_set_blob hang when partition is near to FULL
Marking a page full does not skip it from page selection process and the
same page might get returned if there is no other page with more unused
entries. Added a check for the same while storing blobs.

Fixes: https://github.com/espressif/esp-idf/issues/2313
2018-08-21 17:08:46 +05:30
4d6dcb71ce esp_http_client: Add esp-tls APIs in SSL transport of esp_http_client
esp-tls APIs and SSL transport layer of esp_http_client try to
achieve similar things, so this is an effort to remove code redundancy.
2018-08-21 09:07:07 +00:00
7b56ae319d esp-tls: Add support for network timeout 2018-08-21 09:07:07 +00:00
4eb28b9ace Merge branch 'feature/spi_burst_desc' into 'master'
spi_master: change to DMA burst mode when access descriptors

See merge request idf/esp-idf!2824
2018-08-21 16:54:38 +08:00
9de884f586 Merge branch 'feat/spi_non_dma_64byte' into 'master'
spi_master: change high part config to allow transactions of 64 bytes

See merge request idf/esp-idf!3025
2018-08-21 16:53:37 +08:00
e3d76d13b4 docs: update power management section on esp_pm_configure 2018-08-21 13:02:46 +08:00
e59571eece soc/rtc_clk: reduce data size by disabling CSWTCH generation
Saves about 200 bytes of DRAM at the expense of 4 bytes in IRAM.
2018-08-21 13:02:46 +08:00
db2f0f45be soc/rtc_clk: split rtc_clk_init into separate object file
rtc_clk_init and related functions don’t need to be in IRAM/DRAM.
2018-08-21 13:02:46 +08:00
3cec686803 examples/power_save: set CPU frequencies in sdkconfig 2018-08-21 13:02:46 +08:00
bcf79e5cf2 tests: use new CPU frequency setting API 2018-08-21 13:02:46 +08:00
c722cf3e06 bootloader: use new CPU frequency setting API 2018-08-21 13:02:46 +08:00
bec70ce298 esp32: use new CPU frequency setting API 2018-08-21 13:02:46 +08:00
2e31cce390 soc/rtc: CPU frequency settings refactoring
Previous APIs used to set CPU frequency used CPU frequencies listed in
rtc_cpu_freq_t enumeration. This was problematic for two reasons.
First, supporting many possible frequency values obtained by dividing
XTAL frequency was hard, as every value would have to be listed in
the enumeration. Since different base XTAL frequencies are supported,
this further complicated things, since not all of these divided
frequencies would be valid for any given XTAL frequency. Second,
having to deal with enumeration values often involved switch
statements to convert between enumeration and MHz values, handle
PLL/XTAL frequencies separately, etc.

This change introduces rtc_cpu_freq_config_t structure, which contains
CPU frequency (in MHz) and information on how this frequency has to
be generated: clock source (XTAL/PLL), source frequency, clock
divider value. More fields can be added to this structure in the
future. This structure simplifies many parts of the code, since both
frequency value and frequency generation settings can be accessed in
any place in code without the need for conversions.

Additionally, this change adds setting of REF_TICK dividers to support
frequencies lower then XTAL with DFS.
2018-08-21 13:02:03 +08:00
05a5410033 esp_clk.h: add esp_clk_xtal_freq
This adds a user API for getting the XTAL frequency
2018-08-21 13:02:03 +08:00
a6a9484084 Merge branch 'feature/move_CONFIG_TCPIP_LWIP_to_menuconfig' into 'master'
tcpip_adapter: optimise tcpip_adapter and fix a bug in emac_dev.c

See merge request idf/esp-idf!3017
2018-08-21 11:37:15 +08:00
4dd7233b20 Merge branch 'feature/reset_reason' into 'master'
Add API to get reset reason

See merge request idf/esp-idf!2871
2018-08-21 11:34:12 +08:00
4fe04ae14d component/bt: Update BLE private address after it's private address interval 2018-08-21 11:01:44 +08:00
c5d6845c5a freertos: Expose TCB & Stack memory capabilities as macro, fix task delete test
Test was failing if task was allocating TCB & Stack memory from DMA only pool
which is not MALLOC_CAP_DEFAULT.
2018-08-21 12:19:33 +10:00
ad9db6ff1c Merge branch 'bugfix/bluetooth_demo_sdkconfig' into 'master'
Fix bluetooth example sdkconfig.defaults

See merge request idf/esp-idf!3032
2018-08-20 20:33:35 +08:00
b63f6a8a95 emac:optimise tcpip_adapter and fix emac_dev.c
1. move CONFIG_xx macros to Kconfig
2. fix a bug that make EMAC_DMAOPERATION_MODE_ERG mess
2018-08-20 19:52:48 +08:00
2122e5f83d esp_http_client: Fix minor bugs in esp_http_client_write and esp_http_client_open APIs
`esp_http_client_write` API puts a constraint on the maximum length of the data that can be
written, which is equal to client handle buffer size, but the data to be sent can be more
than that, so in this case, this API has to be called multiple times.

In `esp_http_client_open` API, the return value of `transport_write` API, used to send HTTP
request, is not checked, and in rare cases, data written will be less than expected which will
cause a problem. So there are fixes for these minor issues in this MR.
2018-08-20 10:41:42 +00:00
8403adf4e0 docs: add API reference section for esp_system.h 2018-08-20 16:49:20 +08:00
3ef650cd46 esp32/test: add tests for reset reasons 2018-08-20 16:49:20 +08:00
0aa384d40c esp32: add API to get reset reason 2018-08-20 16:49:20 +08:00
fd61c1440b tiny-test-fw: invoke expect callbacks in order of appearance
Previously the callbacks were invoked in the same order as the list of
patterns to be matched.
2018-08-20 16:49:20 +08:00
b600a908c4 unit test: fix regex for detecting abort 2018-08-20 16:49:20 +08:00
76f864511d Merge branch 'feature/docs_new_logo_typeface' into 'master'
Replaced Espressif logo with a new, consistent, modern and neutral typeface design.

See merge request idf/esp-idf!2988
2018-08-20 08:22:02 +08:00
9bc74e6815 Merge branch 'bugfix/err_variable_issue' into 'master'
Fix small parameter issue in bt_a2dp_sink example. Merges…

See merge request idf/esp-idf!3012
2018-08-20 07:59:24 +08:00
99d0624999 Fix bluetooth example sdkconfig.defaults
1. a2dp_gatts_coex
2. blufi BT_RESERVE_DRAM
2018-08-19 11:35:28 +08:00
afa091fe79 prevent heap_caps_add_region exception if region is empty
Calling `esp_bt_controller_mem_release` or `esp_bt_mem_release` might result in exception if any of the regions returned to heap are empty. This happens usually if BT/BLE is enabled, but not used/linked in the final firmware.
2018-08-17 08:49:48 +02:00
164e324fe2 Merge branch 'feature/bootloader_unit_tests' into 'master'
app_update: Add unit tests for ota, factory, test partitions

See merge request idf/esp-idf!2565
2018-08-17 14:39:50 +08:00
0465e930d5 component/bt: fix the format and add more content to A2DP source example document and source code 2018-08-16 20:08:00 +08:00
5ba0d6bde6 Merge branch 'bugfix/ut_bt_build_fix' into 'master'
bt: build unit tests only when CONFIG_BT_ENABLED=1

See merge request idf/esp-idf!3000
2018-08-16 19:49:14 +08:00
98eaa5c2ec Merge branch 'docs/security' into 'master'
docs: Added more wordings to capture secure boot and flash encryption dependency.

See merge request idf/esp-idf!2947
2018-08-16 19:31:36 +08:00
00ef8bf726 Merge branch 'feature/decrease_bt_contrller_memory_with_new_mem_reserved' into 'master'
decrease bt contrller memory with new mem reserved

See merge request idf/esp-idf!2791
2018-08-16 19:12:44 +08:00
404e99965d spi_master: change high part config to allow transactions of 64 bytes 2018-08-16 18:55:09 +08:00
3012b0f887 Merge branch 'feature/nvs_multi_page_util' into 'master'
Bugfix: multi page blob creation was failing if only one entry was left in page

See merge request idf/esp-idf!2971
2018-08-16 15:23:11 +08:00
01f855fd18 Merge branch 'feature/nvs_part_gen_util_file_size' into 'master'
Add support for input custom partition size

See merge request idf/esp-idf!2828
2018-08-16 15:22:24 +08:00
ff2404a272 Merge branch 'master' into feature/cmake 2018-08-16 17:14:17 +10:00
dfde105f25 Add support for input custom partition size 2018-08-16 11:54:46 +05:30
5ce40fce0c Add nvs part gen utility multi page blob support update 2018-08-16 11:46:25 +05:30
1da0483619 app_update: Add unit tt pests for ota, factory, test partitions 2018-08-16 09:57:32 +05:00
4f227a4ce3 Merge branch 'bugfix/spiram_malloc_reserve_internal_fragments' into 'master'
esp32: Allow SPIRAM_MALLOC_RESERVE_INTERNAL to span multiple regions of memory

See merge request idf/esp-idf!2891
2018-08-16 11:19:39 +08:00
ab73e0ff13 tools: fix ci example build report reassign warnning 2018-08-16 11:12:22 +08:00
ccd0c61ea1 Merge branch 'feature/rtc_wdt_api' into 'master'
soc/rtc_wdt: Add API functions for rtc_wdt

See merge request idf/esp-idf!2837
2018-08-16 08:19:12 +08:00
32c01de7a3 Merge branch 'feature/what_driver_for_my_board' into 'master'
Provided a table with development boards by Espressif together with USB-to-serial driver names

See merge request idf/esp-idf!2792
2018-08-16 05:24:40 +08:00
df5d3ea692 Provided a table with development boards by Espressif together with USB-to-serial driver names 2018-08-16 05:24:40 +08:00
73e18a4c96 Merge branch 'docs/simplified_rtd_theme_configuration' into 'master'
Removed redundant code to configure 'sphinx-rtd-theme' for documentation

See merge request idf/esp-idf!2921
2018-08-16 05:23:54 +08:00
0075e2f316 soc: fix trace memory region for single core mode
Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-08-15 20:52:39 +05:30
020ade652d Merge branch 'bugfix/tw24588_Android_get_IP_fail' into 'master'
fix the bug for Android phone getting IP fail when STA+AP mode

See merge request idf/esp-idf!3006
2018-08-15 11:47:13 +08:00
802fc7236d Merge branch 'doc/unit_test_zh_CN' into 'master'
doc: translate the unit-tests.rst into Chinese

See merge request idf/esp-idf!2998
2018-08-15 09:05:17 +08:00
23a510c752 Fix small parameter issue in bt_a2dp_sink example. Merges https://github.com/espressif/esp-idf/pull/2261
The wrong parameter was used to print the error if something failed during the bt init.
2018-08-14 22:13:00 +02:00
b96fa40dd1 Merge branch 'bugfix/mdns_any_type_share' into 'master'
mdns: Fix a portion of the queries are issued with the wildcard query type

See merge request idf/esp-idf!2886
2018-08-15 00:52:21 +08:00
a8e46775c6 soc/rtc_wdt: Add API functions for rtc_wdt
Added functions:
rtc_wdt_protect_off/on
rtc_wdt_set_length_of_reset_signal
rtc_wdt_set_stage
rtc_wdt_set_time
rtc_wdt_feed
rtc_wdt_disable/enable
2018-08-14 17:48:02 +05:00
90350cb82d doc/unit-tests:translate the unit-tests into zh_CN 2018-08-14 15:47:08 +08:00
f3f0445f4d mdns: Fix a portion of the queries are issued with the wildcard query type 2018-08-14 07:25:08 +00:00
89601e0b9f fix the bug for Android phone getting IP fail when STA+AP mode 2018-08-14 15:04:47 +08:00
b4b1b361da Merge branch 'bugfix/bt_fix_incorrect_handle_print' into 'master'
examples/bluetooth: Fix incorrect end handle print in the GATT client applications

See merge request idf/esp-idf!2880
2018-08-14 14:16:53 +08:00
b27773e87c docs: Added more wordings to capture secure boot and flash encryption dependency. 2018-08-14 11:27:29 +05:30
08ae7ef9dc Merge branch 'feature/ota_get_sha-256_of_partition' into 'master'
bootloader_support: Add API for getting sha256_of_partition

See merge request idf/esp-idf!2479
2018-08-14 11:32:39 +08:00
ee787085f9 component/bt : decrease memory consumption by conn number
1. BLE only with 9(max) connection will decrease 3K DRAM
2. BR/EDR only with 7(max) connection will decrease 16K DRAM
3. Any of BLE or BR/EDR connection number decrease will also decrease DRAM consumption
4. Decrease one BLE connection will save about 1KB DRAM
5. Decrease one BR/EDR ACL connection will save about 1.2KB DRAM
6. Decrease one BR/EDR SCO/eSCO will save 2KB DRAM.
7. fix some definition and kconfig
8. remove 1.2k of vhci tx cache and make .bss & .data to heap about 1.4K
9. modify BT Reserved Memory size and modify example to support new bt kconfig
2018-08-14 02:29:17 +00:00
a85a8aef62 Merge branch 'bugfix/ulp_jumps_flags' into 'master'
ULP: document JUMPS instruction flags, add tests

See merge request idf/esp-idf!2949
2018-08-14 01:14:12 +08:00
3b5875efe0 ci: only apply BOT_DOCKER_IMAGE_TAG to esp32-ci-env 2018-08-13 16:48:27 +00:00
1fbff01799 docs: update esp32ulp-binutils download link 2018-08-13 16:48:27 +00:00
1bd7d404fe ulp: add documentation for JUMPS instruction conditions
Hardware implements conditions LE, LT, GE, and conditions EQ and GT
are implemented in the assembler by emitting two JUMPS instructions
with other conditions.
2018-08-13 16:48:27 +00:00
c7fc5b1171 ulp: add tests for jumps instruction 2018-08-13 16:48:27 +00:00
7fca027355 bt: build unit tests only when CONFIG_BT_ENABLED=1 2018-08-13 17:38:37 +03:00
e60db51240 component/bt: fix the format and add more content to A2DP sink example document and source code 2018-08-13 21:17:27 +08:00
117c79eae5 app_update: Add API for getting sha256_of_partition
Added bootloader_common_get_sha256_of_partition() and esp_partition_get_sha256() - get or calculate SHA-256
digest for app and data partitions.
Added bootloader_sha256_hex_to_str() - helps to print SHA-256 digest
Added esp_partition_check_identity() - compares two partitions by SHA-256 digest

Refactoring a function esp_image_load() in bootloader space to esp_image_verify() and
bootloader_load_image(). Old name function esp_image_load is deprecated
and will remove in V4.0 version.

spi_flash/sim: Fix error test_host. Add stub for bootloader_common_get_sha256_of_partition in sim/stubs
2018-08-13 13:59:07 +05:00
810aa5427c Merge branch 'feature/cmake_separate_docs' into 'feature/cmake'
docs: Copy CMake docs to a separate set of directories

See merge request idf/esp-idf!2959
2018-08-13 15:47:07 +08:00
886bf4b88e Merge branch 'bugfix/btdm_ecdh_public_key_not_check' into 'master'
component/bt: Fixed the vulnerability released by Bluetooth org when using…

See merge request idf/esp-idf!2933
2018-08-13 15:44:13 +08:00
72eaaff9fe component/bt: Fixed the vulnerability released by Bluetooth org when using public key not check in the process of ECDH encryption.
1. Add the 100 times test when the private key is generated by the random number;
2. Add the bt components to the unit-test-app/config directory.
3. Added the bt unit test case to CI.
2018-08-13 14:08:11 +08:00
31c66af560 component/bt: Some timer oneshot will timeout twice
Find when BQB
2018-08-13 06:00:11 +00:00
638581d872 Merge branch 'bugfix/doc_generated_sections' into 'master'
docs: Move version-related includes to run in sphinx-build not make

See merge request idf/esp-idf!2985
2018-08-13 13:57:42 +08:00
48bd67524d cmake: Only rewrite componend_depends.cmake if it changes 2018-08-13 15:37:03 +10:00
70288f864e cmake: Expand components relative to PROJECT_PATH correctly 2018-08-13 15:37:03 +10:00
04238fa5e5 docs: Python 3 Sphinx compatibility 2018-08-13 15:37:03 +10:00
191557db02 docs: Copy CMake docs to a separate set of directories
Required first step before merging back to mainline.
2018-08-13 15:37:03 +10:00
4946850e82 Replaced Espressif logo with a new, consistent, modern and neutral typeface design. 2018-08-13 07:22:41 +02:00
50e7b116c1 docs: Add gen-version-specific-includes.py to executables list 2018-08-13 13:37:23 +10:00
69f73eb5ee docs: Move version-related includes to run in sphinx-build not make
Means they show up on ReadTheDocs(!)
2018-08-13 12:24:55 +10:00
30545f4ccc Merge branch 'bugfix/btdm_fix_get_bond_list_error_when_connection_with_no_bond' into 'master'
Component/bt: fix get bond list error when connection with no bond

See merge request idf/esp-idf!2957
2018-08-10 20:46:34 +08:00
8739111218 Merge branch 'bugfix/gpio_reset_bitmask' into 'master'
gpio: Bitmask overflow fix in gpio_reset_pin

See merge request idf/esp-idf!2966
2018-08-10 17:35:26 +08:00
383a3f788d Merge branch 'doc/heap_tracing' into 'master'
heap docs: Fix some bad links & errors in the heap docs

See merge request idf/esp-idf!2942
2018-08-10 16:46:52 +08:00
c9cbc6b30c heap docs: Fix some bad links & errors in the heap docs
Also add a note about printf() sometimes causing on-demand allocations.
2018-08-10 15:54:58 +10:00
f4b23d1505 Merge branch 'bugfix/http_client_null_auth_header' into 'master'
esp_http_client: Fixed exception on 401 without Www-Authenticate header

See merge request idf/esp-idf!2900
2018-08-10 13:44:55 +08:00
3486ce6898 Merge branch 'mesh/bugfix_parent_switch' into 'master'
mesh: modify parent switch mechanism

See merge request idf/esp-idf!2803
2018-08-10 11:31:50 +08:00
f341c5c944 Merge branch 'doc/versions' into 'master'
docs: Add version-specific include files, version documentation

See merge request idf/esp-idf!2858
2018-08-10 08:08:10 +08:00
f9a44968bc Merge branch 'bugfix/nvs_mem_leak' into 'master'
nvs: fix memory leak when writing a blob

See merge request idf/esp-idf!2969
2018-08-09 20:48:31 +08:00
5fc6397589 nvs: fix memory leak when writing a blob
Introduced in 5a27a63.
Clear usedPages list in all exit conditions, add test.
2018-08-09 10:35:19 +03:00
13ff99867d docs: Combine the common en/zh_CN Makefiles to one common file 2018-08-09 11:08:03 +10:00
522f9c4b4a docs: translate the version include script to Chinese 2018-08-09 11:08:03 +10:00
ed8013ccc2 README: Add version-specific links
Make it clearer how the README fits in with the docs.
2018-08-09 11:07:39 +10:00
203ceed1e7 spi_master: change to DMA burst mode when access descriptors 2018-08-08 13:56:01 +00:00
ee3f64cbad Merge branch 'feature/http_client_head' into 'master'
esp_http_client: add head method support

See merge request idf/esp-idf!2895
2018-08-08 20:58:39 +08:00
f7749e18a8 gpio: Bitmask overflow fix in gpio_reset_pin
For pins 32 and up the BIT(nr) macro used here overflowed,
causing undetermined GPIO pins to be reset.
Example: freeing SPI device/bus where CS is on pin 33
caused debug UART to cease communication, TXD0 was
disabled.

Fixed as BIT64(nr) macro, to be used elsewhere as needed.
For example in definitions like GPIO_SEL_32..GPIO_SEL_39.
2018-08-08 15:31:17 +03:00
a53a5eeabd Merge branch 'bugfix/add_mutex_for_some_touchpad_apis' into 'master'
fix(touch): add_mutex_for_some_touchpad_apis

See merge request idf/esp-idf!2714
2018-08-08 16:28:28 +08:00
80c5547b97 Merge branch 'bugfix/ulp_fixes' into 'master'
ULP fixes

See merge request idf/esp-idf!2948
2018-08-08 15:37:25 +08:00
57355d7154 Component/bt: fix get bond list error when connection with no bond 2018-08-08 14:44:22 +08:00
93c0c8da6b mesh: modify parent switch mechanism
1. modify parent switch mechanism.
2. fix non-root doesn't clear the layer value in nvs.
3. fix retransmit the remove announcement packets.
4. add API esp_mesh_flush_upstream_packets().
5. automatically adjust passsive scan time based on the change of beacon interval.
2018-08-08 13:51:05 +08:00
a1a9801f00 Merge branch 'bugfix/remove_check_for_reason_assoc_expire' into 'master'
test: remove check for REASON_ASSOC_EXPIRE:

See merge request idf/esp-idf!2904
2018-08-08 12:58:20 +08:00
cdc792d72c Merge branch 'feature/http_firmware_upgrade' into 'master'
esp_https_ota: Add esp_https_ota component

See merge request idf/esp-idf!2771
2018-08-08 12:27:05 +08:00
f1a4bc7c94 Merge branch 'feature/aws-iot-update-3.0.1' into 'master'
Feature/aws iot update 3.0.1

See merge request idf/esp-idf!2936
2018-08-08 07:14:58 +08:00
48149fa1b1 Merge branch 'bugfix/asio_test_socket_timeout' into 'master'
asio: added socket timeout for example tests

See merge request idf/esp-idf!2931
2018-08-07 21:49:09 +08:00
323caed83b ulp: fix ULP binary format documentation
Fix incorrect offset value (4+2+2+2+2=12) of arbitrary data in ULP
binary format.

Closes https://github.com/espressif/esp-idf/issues/1705.
2018-08-07 16:14:57 +03:00
22dfb92fe0 ulp: use += instead of := when setting component vars
Component which includes component_ulp_common.mk may also need to set
some of the same COMPONENT_XXX variables. Logically, we should combine
the lists of files to embed, ldflags, extra include dirs, etc.

Fixes https://github.com/espressif/esp-idf/issues/2157.
2018-08-07 16:14:57 +03:00
33153748ba ulp: fix missing include in esp32/ulp.h header
ulp.h uses some register base addresses, so needs to include soc.h
2018-08-07 16:14:57 +03:00
479af576ca ulp: fix calculation or ulp_run argument
The argument to ulp_run should be expressed in 32-bit words. Both the
address of ulp_entry and RTC_SLOW_MEM already are uint32_t*, so their
difference is the difference in addresses divided by sizeof(uint32_t).
Therefore the extra division by sizeof(uint32_t) is not needed.
2018-08-07 16:14:57 +03:00
28ab4acb7e test: update Wi-Fi test cases:
1. The test step for error code REASON_ASSOC_EXPIRE is not reliable. SoftAP
could also send error code WIFI_REASON_NOT_AUTHED
2. STA will be disconnected now if softAP restart DHCP server
2018-08-07 10:50:05 +00:00
81ac9c1fc7 Merge branch 'bugfix/wrong_connect_in_all_channel_scan' into 'master'
Wifi: bug fix of may connect to wrong AP in all channel scan

See merge request idf/esp-idf!2829
2018-08-07 18:31:31 +08:00
fe357c3617 aws-iot: Update to 3.0.1 release
- Fixes https://github.com/espressif/esp-idf/issues/2224
- Fixes https://github.com/espressif/esp-idf/issues/1808
2018-08-07 11:28:54 +05:30
5efc33ce25 aws-iot: Make thing shadow example compatible with v3 of aws iot sdk 2018-08-07 11:28:54 +05:30
5f56f2ca01 Merge branch 'feature/nvs_version_check' into 'master'
nvs_flash: Version compatibility check for nvs storage

See merge request idf/esp-idf!2855
2018-08-07 13:31:49 +08:00
c0186858ad asio: added socket timeout for example tests 2018-08-06 22:05:15 +02:00
39921c9db0 Merge branch 'bugfix/fix_crash_for_http2_request' into 'master'
fix the crash when http2_request example send/recv fail

See merge request idf/esp-idf!2916
2018-08-06 20:41:40 +08:00
65c441a891 Wifi: bug fix of may connect to wrong AP in all channel scan
1. enable threshold in all channel scan
2. bug fix of may connect to an open AP even set password in all channel scan
2018-08-06 19:54:24 +08:00
9063ce9dda fix the crash when http2_request example send/recv fail 2018-08-06 11:39:01 +00:00
c22e42d869 Merge branch 'bugfix/station_state_machine_change_and_ap_loss_happen' into 'master'
Wifi: station state machine change and fix ap loss

See merge request idf/esp-idf!2911
2018-08-06 18:49:31 +08:00
212e25760b Merge branch 'bugfix/btdm_spp_crash_on_reset' into 'master'
component/bt: Fix bug of SPP crash on reset

See merge request idf/esp-idf!2801
2018-08-06 18:39:21 +08:00
744d703dba Merge branch 'bugfix/btdm_hfp_invalid_sco_param' into 'master'
bugfix/btdm_hfp_invalid_sco_param

See merge request idf/esp-idf!2915
2018-08-06 15:35:27 +08:00
bceac5d8e7 Merge branch 'feature/component_memory_reservation' into 'master'
soc: Allow components to reserve fixed memory ranges that they need

See merge request idf/esp-idf!2596
2018-08-06 15:32:44 +08:00
d4cecc5a04 component/bt: modify the invalid retransmission setting for SCO link in HFP 2018-08-06 06:20:51 +00:00
ffaa71bcd6 docs: Add version-specific include files, version documentation
* "git clone" command and a small version header are generated
  depending on git properties.
* Add Versions page with details about each version
* Make it clear using master branch is living on the "bleeding
  edge"
2018-08-06 15:38:32 +10:00
272b95e8ce linker: Don't link all of 'soc' into IRAM
Moves any code in *_perpih.c, memory_layout_utils.c to flash
2018-08-06 01:37:55 +00:00
a5ae5ac4b3 soc: Allow components to reserve fixed memory ranges that they need
No longer necessary to keep all reserved addresses in 'soc'.

Means 'soc' does not need to know about 'bt', for example.

Also means that Bluetooth can be enabled in config without any memory being reserved for BT
controller. Only if code calling the BT controller is linked in, will this memory be reserved...
2018-08-06 01:37:55 +00:00
f2f2744b29 Merge branch 'bugfix/fix_uart_tx_bug_when_using_ringbuffer' into 'master'
driver(uart): Fixed uart tx_empty interrupt wdt timeout bug

See merge request idf/esp-idf!2823
2018-08-05 23:49:40 +08:00
b85e8e10b9 Merge branch 'bugfix/btdm_fix_sc_mitm_bond_failed_in_smp_for_iphones' into 'master'
Component/bt:  fix SC_MITM_BOND failed in smp for iphones

See merge request idf/esp-idf!2863
2018-08-05 23:48:23 +08:00
2d0af81ccf driver(uart): Fixed uart tx_empty interrupt wdt timeout bug. 2018-08-05 06:34:34 +00:00
9aec055ac2 esp_http_client: Fixed exception on 401 without Www-Authenticate header
Closes https://github.com/espressif/esp-idf/issues/2246
2018-08-05 06:24:53 +00:00
97a41f29b8 Wifi: station state machine change and fix ap loss
1. fix ap loss issue
2. change station behavior when receive disassoc and deauth after connect
3. format state machine reason code
2018-08-05 13:44:58 +08:00
2cd9eaccc7 component/bt: Fix bug of SPP crash on reset
In response to: https://github.com/espressif/esp-idf/issues/1998
2018-08-05 00:36:51 +00:00
1df85e0039 nvs_flash: Version compatibility check for nvs storage
This change adds a check for compatibility between the nvs version
found on nvs flash and the one assumed by running code during nvs
initialization. Any mismatch is reported to the user using new error
code ESP_ERR_NVS_NEW_VERSION_FOUND.
2018-08-05 00:00:56 +00:00
8ef7a49cc3 nvs_flash: Bump up nvs version 2018-08-05 00:00:56 +00:00
230d9adb8a Merge branch 'bugfix/update_libphy_to_fix_some_issues' into 'master'
esp32: update libphy.a to v3960

See merge request idf/esp-idf!2908
2018-08-05 07:36:02 +08:00
163dbc3200 Component/bt: fix SC_MITM_BOND failed in smp for iphones 2018-08-04 16:52:53 +00:00
0fa1fee8e8 esp32: update libphy.a to v3960
Update libphy.a to v3960:
1. Decrease  phy_init time from 900us to 347us in sleep wakeup
2. Fix RX STBC initialization
3. Modify set_chan function to fix interrupt watchdog issue
2018-08-04 16:21:19 +00:00
b674fa0b99 Merge branch 'bugfix/asio_test_timeout' into 'master'
tiny-test-fw: Increase default expect timeout, increase asio example test timeouts

See merge request idf/esp-idf!2925
2018-08-05 00:20:48 +08:00
2d79af3b13 esp_http_client: Add support for getting transport type 2018-08-03 16:47:08 +05:30
1fecdc3891 esp_https_ota: Add support for HTTPS based ota feature 2018-08-03 16:47:07 +05:30
ad739ee791 Merge branch 'feature/support_64mbit_psram' into 'master'
feature(psram): add support for 64MBit psram of 1.8v and 3.3v.

See merge request idf/esp-idf!2696
2018-08-03 17:59:36 +08:00
4f1e8df367 Merge branch 'bugfix/btdm_a2dp_disconnect_reason' into 'master'
bugfix/btdm_a2dp_disconnect_reason

See merge request idf/esp-idf!2914
2018-08-03 15:30:30 +08:00
4649349074 Merge branch 'bugfix/btdm_fix_ble_HIDD_demo_error' into 'master'
Component/bt: fix ble HID demo error

See merge request idf/esp-idf!2892
2018-08-03 15:26:40 +08:00
f1d516314b Merge branch 'bugfix/coex_wifi_pm' into 'master'
Bugfix/coex wifi pm

See merge request idf/esp-idf!2883
2018-08-03 15:22:13 +08:00
8b35d8ef25 asio example tests: Increase timeout for DHCP lease to 30s
Covers time to connect to WiFi and negotiate lease,
may be more than 5-10s on some busy APs
2018-08-03 16:59:23 +10:00
6bd58beac5 tiny-test-fw: Increase default expect timeout to 10 seconds
Fix CI failures due to (for example) DHCP lease taking more than 5s to be negotiated.
2018-08-03 16:55:50 +10:00
b3ff68a935 Merge branch 'bugfix/hard_error_partition_offset' into 'master'
partition_table: Hard error if CSV contains invalid/overlapping offsets

See merge request idf/esp-idf!2755
2018-08-03 14:52:43 +08:00
d9dc2985e7 fix bug that wifi sleep before receive beacon
it will resolve the problem:
        1. when bluetooth is running (For example: a2dp sink), wifi station cannot connect to AP easily
        2. improve wifi connection success ratio when coexist is working
2018-08-03 05:07:06 +00:00
5aff7fd07f Merge branch 'bugfix/btdm_fix_queue_block_when_scanning' into 'master'
Component/bt: fix queue blocking when scanning

See merge request idf/esp-idf!2706
2018-08-03 07:24:08 +08:00
df9c701864 Removed redundant code to configure 'sphinx-rtd-theme' for documentation 2018-08-02 22:10:33 +02:00
146e87fed5 Merge branch 'feature/expat_getrandom' into 'master'
expat: add source of entropy

See merge request idf/esp-idf!2912
2018-08-02 18:03:34 +08:00
ce3cb5c3aa expat: add source of entropy 2018-08-02 11:02:45 +02:00
3c5af26506 Merge branch 'test/spi_region' into 'master'
spi_master: improve some tests

See merge request idf/esp-idf!2809
2018-08-02 12:09:44 +08:00
7ab4615757 Merge branch 'bugfix/http_chunked_read' into 'master'
bugfix/esp_http_client: fixed http chunked encoding packet loss & add check data before read for ssl transport

See merge request idf/esp-idf!2631
2018-08-02 09:40:39 +08:00
b6bdde1eeb Merge branch 'bugfix/github_deploy_regression' into 'master'
ci: Fix bad push command when pushing branch to github

See merge request idf/esp-idf!2902
2018-08-02 08:26:30 +08:00
d3ae52afd2 Merge branch 'feature/add_logo_to_docs' into 'master'
Added Espressif logo to documentation

See merge request idf/esp-idf!2763
2018-08-02 08:26:14 +08:00
81c762eb86 fix(touch): add_mutex_for_some_touchpad_apis 2018-08-01 18:06:21 +08:00
20147f951c Merge branch 'bugfix/heap_caps_alloc_32bit' into 'master'
heap: heap_caps_malloc(..., MALLOC_CAP_32_BIT) should always allocate a 32-bit aligned size

See merge request idf/esp-idf!2889
2018-08-01 17:39:14 +08:00
f2a3429812 partition table: Document 'flags' properly 2018-08-01 19:23:38 +10:00
6dea5c9546 partition table: Remove hard-coded offsets from default partition tables
Makes them compatible with moving the partition table offset
2018-08-01 19:23:38 +10:00
28801449e3 partition_table: Hard error if CSV contains invalid/overlapping offsets
Based on report on forum here:
https://esp32.com/viewtopic.php?f=13&t=6382&p=27514

Previous versions were much more relaxed about what could be in the partition
table, erroring out avoids unexpected changes on upgrade like different
partition offsets.
2018-08-01 19:23:38 +10:00
7f7f8a02d0 component/bt: retrieve disconnection reason in AVDT when ACL-U link is disconnected 2018-08-01 17:16:52 +08:00
7457054c1f Merge branch 'feature/add_rom_elf' into 'master'
Support for ROM functions in core dump backtraces

See merge request idf/esp-idf!2672
2018-08-01 15:21:03 +08:00
2718a5f674 Add http_buffer description 2018-08-01 07:14:36 +00:00
5589954800 esp_http_client: fixed http chunked encoding packet loss & add check data before read for ssl transport
- A bug of the http client when it downloads a chunked encoding packet is greater than the http_client's buffer, http_parser will call the callback body more than once, and the client will only handle the last
- with ssl_read, need to check before read to avoid timeout blocked when no data for reading
2018-08-01 07:14:36 +00:00
658668b386 Component/bt: fix hci_hal_env.rx_q and xHciH4Queue blocking when scanning 2018-08-01 15:06:56 +08:00
7ea4db72de Merge branch 'bugfix/wl_encryption' into 'master'
Bugfix: WL works with encrypted flash

See merge request idf/esp-idf!2530
2018-08-01 15:05:47 +08:00
98255f4225 Merge branch 'feature/mbedtls_2_12_0' into 'master'
mbedtls: update to 2.12.0

See merge request idf/esp-idf!2879
2018-08-01 14:56:50 +08:00
1898e5fbab Merge branch 'bugfix/spi_flash_mmap_malloc_internal' into 'master'
spi_flash: allocate mmap pages array in internal memory

See merge request idf/esp-idf!2885
2018-08-01 14:56:18 +08:00
2a2f960afa Merge branch 'feature/mbedtls_platform_memory_pr2237' into 'master'
Adds a Kconfig option for mbedtls' MBEDTLS_PLATFORM_MEMORY define. This makes it…

See merge request idf/esp-idf!2903
2018-08-01 14:55:54 +08:00
fe09c1cb59 Merge branch 'bugfix/btdm_oob_included' into 'master'
Fix undefined reference error by changing BTM_OOB_INCLUDED

See merge request idf/esp-idf!2878
2018-08-01 14:53:37 +08:00
5452e7848d Merge branch 'bugfix/raise_r_signature' into 'master'
syscalls: fix arguments and return type for _raise_r

See merge request idf/esp-idf!2897
2018-08-01 14:50:59 +08:00
f048da2bf7 Merge branch 'feature/wifi_add_internal_api_to_set_fix_rate' into 'master'
esp32: add internal API to enable or disable transmitting WiFi MAC frame with fixed rate

See merge request idf/esp-idf!2835
2018-08-01 14:50:15 +08:00
a539754c2e Merge branch 'doc/wifi_update_channel_state_information_document' into 'master'
docs: update channel state information document

See merge request idf/esp-idf!2793
2018-08-01 14:49:14 +08:00
29d7382c2b Merge branch 'bugfix/btdm_lmp_trans_coll_state_uncleared' into 'master'
component/bt: btdm_lmp_transcation_collision_state_uncleared

See merge request idf/esp-idf!2731
2018-08-01 14:47:29 +08:00
b6f52a6455 Merge branch 'bugfix/fix_several_wpa2_issues' into 'master'
esp32: fix several wpa2 enterprise issues

See merge request idf/esp-idf!2825
2018-08-01 14:38:15 +08:00
6851af3c4b Merge branch 'bugfix/btdm_fix_gattc_count_invalid' into 'master'
Component/bt: fix gattc get count invalid and discover included service error

See merge request idf/esp-idf!2770
2018-08-01 14:06:38 +08:00
e6dc0c7bde Merge branch 'bugfix/remove_bt_dependency_on_lwip_header' into 'master'
Bugfix/remove bt dependency on lwip header

See merge request idf/esp-idf!2882
2018-08-01 13:57:35 +08:00
343bd32bd8 esp32: fix several wpa2 enterprise issues
Fix following issues:
1. Fix heap corrupted bug
2. Fix memory leak bug
3. Make wpa2 enterprise thread-safe
Closes https://github.com/espressif/esp-idf/issues/1569
2018-08-01 03:43:30 +00:00
149d79f9a1 esp32: add internal API to enable or disable transmitting WiFi MAC frame with
fixed rate
2018-08-01 11:19:43 +08:00
9082fef6cf Merge branch 'feature/update_libexpat' into 'master'
expat: Move libexpat into submodule and update to version 2.2.5

See merge request idf/esp-idf!2868
2018-08-01 09:44:38 +08:00
d7a17ac941 Adds a Kconfig option for mbedtls' MBEDTLS_PLATFORM_MEMORY define. This makes it possible to override the mbedtls allocator with your own.
Merges https://github.com/espressif/esp-idf/pull/2237
2018-08-01 11:28:28 +10:00
99401a16e7 ci: Fix bad push command when pushing branch to github
Fixes regression in e5f4ae63f1
2018-08-01 10:47:38 +10:00
1d1533ee8e expat: Move libexpat into submodule and update to version 2.2.5 2018-07-31 13:25:00 +02:00
79e7f02286 spi_flash: allocate mmap pages array in internal memory
* spi_flash_mmap_pages needs pages array to be in internal memory.
  Document and check this.

* Fix a bug that spi_flash_mmap did not allocate pages array in
  internal memory.

* Minor style fixes: const-ify pages argument of spi_flash_mmap, add
  spaces around operators, mark output arguments with [out].

Closes https://github.com/espressif/esp-idf/issues/2229.
2018-07-31 13:11:04 +03:00
0aa52057ed spi_master: enable 2 tests in CI
The test is previously disabled for the requirement of external
connection. Now the signals are connected by internal connections.
Also change the failure logic of the test.
2018-07-31 18:04:51 +08:00
fb15f970d2 spi_master: change test to test DMA tx/rx in regions like psram 2018-07-31 18:04:50 +08:00
ae7bf1990e component/bt: bugfix for uncleared LMP transaction collision state after rejecting sniff request from slave 2018-07-31 17:10:32 +08:00
1fdbbec13a syscalls: fix arguments and return type for _raise_r
ROM code still uses incorrect function signature.

Closes https://github.com/espressif/esp-idf/issues/2245.
2018-07-31 12:08:04 +03:00
483c3d7a7b esp_http_client: add head method support
Merges https://github.com/espressif/esp-idf/pull/2093
2018-07-31 11:08:31 +03:00
1c7a8b3b71 Merge branch 'bugfix/spinlock_perf' into 'master'
freertos: Remove either one or two assertions from "fast path" of vPortCPUReleaseMutex()

See merge request idf/esp-idf!2873
2018-07-31 15:31:55 +08:00
1261b9e40b Component/bt: fix ble HID demo error 2018-07-31 15:25:14 +08:00
6e4b0c3e2f freertos: Remove either one or two assertions from "fast path" of vPortCPUReleaseMutex()
Saves a few cycles by only testing the count validity once, and never for the common case where the
mutex was not recursively locked.
2018-07-31 06:35:25 +00:00
6a950d6a17 Build test applicatoin on host failer fixed.
Make host tests compilible.
2018-07-31 08:45:43 +03:00
2281f6318a Remove CR line ends. 2018-07-31 08:45:43 +03:00
e98a49a691 Position save included. 2018-07-31 08:45:43 +03:00
06bab70822 Usless read removed. 2018-07-31 08:45:43 +03:00
76ee450c3d Erase flash before the first use added.
Пожалуйста, введите сообщение коммита для ваших изменений. Строки,
2018-07-31 08:45:43 +03:00
c9872c649e Additional sector position should not be changed at update. 2018-07-31 08:45:43 +03:00
9d609af54c Added check for version after write. 2018-07-31 08:45:43 +03:00
f392727abf Additional info about version update included. 2018-07-31 08:45:42 +03:00
e834d6fffc CRC check improved. 2018-07-31 08:45:42 +03:00
35842d02ab Calculation for heap usage corrected with workaround.
Fixed problem with multiple mount/unmount for different devices.
Additional check for structure length included into the code.
Remove useless spaces.
Added initialization for reserved memory.
2018-07-31 08:45:42 +03:00
f05f3fbde8 Added test for version update from V1 to V2. Problems for tests on host are fixed. Random function changed to esp_random() 2018-07-31 08:45:42 +03:00
a6d6c58eca The version of WL component changed from 1 to 2.
WL version 2 mark used sectors as 16 bytes block of bytes with CRC.
This changes required because old version did not worked with encryption.
Additional unit tests are implemented.
2018-07-31 08:45:42 +03:00
304e9085eb esp32: Allow SPIRAM_MALLOC_RESERVE_INTERNAL to span multiple regions of memory
- Allocate this pool after main_task is running, so it can use startup stack RAM
- Raise the maximum allowed value in KConfig to 256KB
- Based on forum discussions https://esp32.com/viewtopic.php?f=2&t=6550&sid=76cd27bda76c6d0e83d3fcc9ec30c650&start=10#p28253
2018-07-31 15:17:07 +10:00
8cbd12b9b7 heap: When verifying & swapping a fill pattern, stop swapping if verification fails
Avoids situation where data has been overwritten during any post-mortem analysis
(core dump, gdbstub, etc).

As reported via forum https://esp32.com/viewtopic.php?f=2&t=6471&p=27790
2018-07-31 14:53:24 +10:00
ae59d7522a heap: heap_caps_malloc(..., MALLOC_CAP_32_BIT) should always align a 32-bit aligned size
Fixes crash in heap poisoning code if a non-32bit-aligned size is specified.
2018-07-31 14:29:31 +10:00
dbb82a413f Merge branch 'bugfix/fix_cmake_wps_example_build' into 'feature/cmake'
wpa_supplicant: add missing source dirs to CMake build

See merge request idf/esp-idf!2738
2018-07-31 12:15:51 +08:00
321b1e0205 Merge branch 'feature/unit_tests_command_line' into 'master'
tools: Allow running unit tests from command line

See merge request idf/esp-idf!2589
2018-07-31 11:38:22 +08:00
feef9b9387 Component/bt: fix gattc get count invalid 2018-07-31 02:36:46 +00:00
9d2f7c60d9 Merge branch 'bugfix/rmt_struct_bad_addressing' into 'master'
removed possible uint16 access to 32bit register, noted fifo use not recommended

See merge request idf/esp-idf!2821
2018-07-31 04:01:46 +08:00
43baa7f2b9 Merge branch 'feature/cermak_asio_support' into 'master'
asio component and examples in esp-idf

See merge request idf/esp-idf!2509
2018-07-31 03:59:28 +08:00
4116c5a5f9 Merge branch 'bugfix/coap_client_parse_url' into 'master'
bugfix: unexpected host item when coap client parse a URL string

See merge request idf/esp-idf!2642
2018-07-31 03:58:06 +08:00
42cf4429a9 Fixed logo width to display correctly in Chinese version of documentation 2018-07-30 21:16:27 +02:00
fd05dd206f Merge branch 'bugfix/btdm_sco_end_crash_on_supv_to' into 'master'
bugfix/btdm_sco_end_crash_on_supv_to

See merge request idf/esp-idf!2737
2018-07-30 22:14:07 +08:00
40486c8723 tools: Allow running unit tests from command line
Add argument parsing to unit_test.py to allow running unit tests from
command line.
2018-07-30 13:05:41 +02:00
eb92a06aaf examples/bluetooth: Fix incorrect end handle print in the GATT client applications
End handle is incorrectly printed as start handle

Tested that gatt_client, gatt_security_client and gattc_multi_connect compile successfully

Signed-off-by: Hrishikesh Dhayagude <hrishi@espressif.com>
2018-07-30 12:04:07 +05:30
bba047fb3e Merge branch 'bugfix/heap_metadata_tests' into 'master'
heap: Fix heap metadata test to account for background memory allocations

See merge request idf/esp-idf!2872
2018-07-30 14:30:59 +08:00
1ef13c524c asio: initial idf port of asio library without ssl 2018-07-30 06:28:43 +00:00
eee34ddd91 lwip fix for udp receivefrom 2018-07-30 06:28:43 +00:00
5b9feaa1fd mbedtls: update to 2.12.0 2018-07-30 09:11:16 +03:00
dbd429af1b Changed value of BTM_OOB_INCLUDED to TRUE
Merges https://github.com/espressif/esp-idf/pull/2206
2018-07-30 08:53:01 +03:00
97286b3107 Merge branch 'feature/cmd_flash_reset_ota_data' into 'master'
make: Add feature to cmd 'make flash' - reset ota_data partition

See merge request idf/esp-idf!2611
2018-07-30 13:52:43 +08:00
02ddb7302e wpa_supplicant: removed unrequired header dir include from component.mk
- Also fixed license header in rtc driver

Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-07-30 11:17:11 +05:30
b79fefa011 bluedroid: remove dependency on arpa/inet.h include
Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-07-30 11:16:38 +05:30
2ab04621b6 Merge branch 'bugfix/ci_github_deploy' into 'master'
ci: Simplify github deployment

See merge request idf/esp-idf!2862
2018-07-30 12:57:21 +08:00
bfc6bb97c0 heap: Fix heap metadata test to account for background memory allocations 2018-07-30 11:41:30 +10:00
561884b62f Merge branch 'test/workaround_ci_failures' into 'master'
test: workaround ci failures

See merge request idf/esp-idf!2859
2018-07-28 09:01:36 +08:00
2b7dd2ef9a ci: temp modify http server tests to get CI pass:
1. change the default value of WIFI password
2. disable simple and advanced test cases
2018-07-27 23:38:20 +08:00
2d60e24056 ci: temp disable http client tests:
connection is not stable. need to replace with local test servers.
2018-07-27 19:45:12 +08:00
85bc2d5967 tiny-test-fw: support ignore test cases in CI assign test stage 2018-07-27 19:44:15 +08:00
316d087960 tiny-test-fw: fix exception during print debug info:
DUT log is unicode, might not be able to encode
2018-07-27 19:44:15 +08:00
bffcea09df CI: erase nvs partition before test:
Latest NVS partition bin can't be parsed by old IDF revision. Need to erase before test.
2018-07-27 17:22:24 +08:00
e5f4ae63f1 ci: Simplify github deployment
CI_COMMIT_REF_NAME lets us use a single line to git push
2018-07-27 12:18:28 +10:00
1ad4ec10b2 Merge branch 'bugfix/add_compatible_to_aes_encryption' into 'master'
Wifi: add compatible to ccmp encryption

See merge request idf/esp-idf!2802
2018-07-27 10:14:33 +08:00
ee13dafde2 Merge branch 'doc/esp32_sw_breaks' into 'master'
docs: Adds ESP32 SW flash breakpoints description

See merge request idf/esp-idf!2838
2018-07-27 07:54:33 +08:00
821fe3dc5a esp32: Adds SW flash breakpoints description 2018-07-26 13:56:45 +03:00
a23f857452 component/bt: bugfix on the crash during end of sco link resulted from link supervision timeout 2018-07-26 14:41:25 +08:00
8d5ec413d5 Merge branch 'bugfix/tw23404_dhcp_NAK_issue_3' into 'master'
modify the timers

See merge request idf/esp-idf!2798
2018-07-26 14:06:12 +08:00
cf593e84d3 Merge branch 'bugfix/spiffs_readdir_recursion' into 'master'
SPIFFS: fix stack overflow in readdir_r due to recursion

See merge request idf/esp-idf!2839
2018-07-26 08:33:24 +08:00
b3dd6ff9fc Merge branch 'bugfix/btdm_controller_deinit' into 'master'
bt : fix bug that bluetooth controller init/disable/enable/disable may cause exception

See merge request idf/esp-idf!2800
2018-07-25 21:00:35 +08:00
de2b1cb02a make: Add feature to cmd 'make flash' - reset ota_data partition
Add a command `make erase_ota` - erases otadata if it there is in the
partition table otherwise error 'Partition table does not have ota_data partition'.

Closes https://github.com/espressif/esp-idf/issues/1821
2018-07-25 11:22:15 +00:00
a1709a6682 Merge branch 'bugfix/heap_test_alloc_iram' into 'master'
heap/tests: make IRAM allocation size divisible by 4

See merge request idf/esp-idf!2853
2018-07-25 16:20:16 +08:00
9a2583122c heap/tests: make IRAM allocation size divisible by 4
heap_caps_malloc will fail to poison a block in IRAM with size not
divisible by 4. The proper fix will be to make poisoning code
smarter, or to disallow allocations from IRAM with size not aligned
by 4.
2018-07-25 09:45:39 +03:00
4f2fe93bc1 Merge branch 'feature/idf-fs-profile-modifications' into 'master'
IDF fs profiling tool modifications

See merge request idf/esp-idf!2705
2018-07-25 08:56:04 +08:00
21f327060b Merge branch 'bugfix/host_tools_warnings' into 'master'
Fix host tools warnings

See merge request idf/esp-idf!2729
2018-07-25 08:55:29 +08:00
caeab09f65 Merge branch 'bugfix/src_encoding' into 'master'
Correct source code encoding

See merge request idf/esp-idf!2820
2018-07-24 22:03:46 +08:00
d50c03cc7d Merge branch 'bugfix/unit-test-build-fix' into 'master'
unit-test-app: don’t include project.mk for ut- targets

See merge request idf/esp-idf!2619
2018-07-24 20:48:12 +08:00
f3260cc30f test/uart: fix compilation warning 2018-07-24 09:56:40 +03:00
a981e73e22 heap: move get_all_caps to IRAM, used in unit test 2018-07-24 09:56:40 +03:00
964087b7c8 freertos: bump limit for spinlock performance test to 300 cycles 2018-07-24 09:56:40 +03:00
81ce7e4afa newlib: fix unit test for psram config 2018-07-24 09:56:40 +03:00
7a154d6a4e heap: fix unit test for the case when less than 10k of IRAM is available 2018-07-24 09:56:40 +03:00
253930acd1 spi_master, ulp: fix aliasing errors in unit tests 2018-07-24 09:54:55 +03:00
b0af8ad22f unit-test-app: don’t include project.mk for ut- targets
If project.mk is included twice in recursive invocation of Make, some
variables defined on the first pass will not be redefined on the
second pass. Rather than cleaning up these variables before calling
Make recursively, don’t include IDF project.mk at all, if one of the
ut- targets is requested.
2018-07-24 09:54:55 +03:00
28787ad392 Merge branch 'bugfix/bootloader_dev_zero_app_count' into 'master'
bootloader: Fix issue - bs->app_count is zero but ota_data have valid entry

See merge request idf/esp-idf!2842
2018-07-24 14:41:05 +08:00
8ce14d0406 console: Suppress unused warning asprintf result 2018-07-24 06:08:48 +00:00
4355eb1bc2 console: Ignore var cloberred warning for argtable 2018-07-24 06:08:48 +00:00
d31b31787c spiffs: Explicitly indicate unused value 2018-07-24 06:08:48 +00:00
beb3611ca3 Merge branch 'bugfix/fix_pcnt_isr_service_register_bug' into 'master'
driver(pcnt): fix the  pcnt isr service can not be re registered bug.

See merge request idf/esp-idf!2439
2018-07-24 13:49:45 +08:00
002bf37f14 Merge branch 'bugfix/unit_test_thread_local_storage' into 'master'
ci/esp32: Fix race in "TLS Test" where s_task can go out of scope before cleanup finishes

See merge request idf/esp-idf!2794
2018-07-24 13:43:41 +08:00
8c808c2d9a bootloader: Fix issue - bs->app_count is zero but ota_data have valid entry
If we have the partition table without any ota_apps but in ota_data have
valide entry, in this case we get an error(hang). This commit fix this
case. If bs->app_count is zero when selecting the factory app.

Closes https://github.com/espressif/esp-idf/issues/2218
2018-07-24 13:09:32 +08:00
466ec6d9ac Merge branch 'bugfix/ci_use_mirror_for_public' into 'master'
ci: Use local mirrors on the public branches too

See merge request idf/esp-idf!2836
2018-07-24 12:19:24 +08:00
c3069b97f9 Merge branch 'bugfix/udp_multicast_example_leak' into 'master'
udp multicast example: Fix leak, change default port (and log UDP port in use)

See merge request idf/esp-idf!2834
2018-07-24 12:12:53 +08:00
01516abe5a Add some comments in pcnt.h. 2018-07-24 10:33:58 +08:00
baa4613fc1 Merge branch 'bugfix/fix_touchpad_wakeup_status' into 'master'
fix(sleep): swap touchpad num in wakeup status

See merge request idf/esp-idf!2708
2018-07-24 04:08:43 +08:00
c7ab37143b Logo version 8, vector graphics and a new typeface 2018-07-23 19:18:50 +02:00
15b22e5aa5 spiffs: add test case for readdir_r with large number of files
Ref. https://esp32.com/viewtopic.php?f=13&t=6486
2018-07-23 15:34:18 +03:00
0905aa0103 Merge branch 'bugfix/bootloader_include_priv' into 'master'
bootloader_support: Rename include_priv directory to include_bootloader

See merge request idf/esp-idf!2686
2018-07-23 18:50:35 +08:00
b5db59ec31 Merge branch 'bugfix/http_client_enhanced' into 'master'
esp_http_client: Resolve some bugs from the github community

See merge request idf/esp-idf!2831
2018-07-23 17:55:49 +08:00
d5f666dee3 ci: Use local mirrors on the public branches (master, release-) too
Use DONT_USE_MIRROR=1 to force using the original repositories if you need
2018-07-23 17:04:38 +08:00
bf665ae62e udp_multicast example: Change port to 3333 to match README, log port from example 2018-07-23 18:25:33 +10:00
5fb665dbaf udp_multicast example: Fix memory leak from getaddrinfo() calls
Closes https://github.com/espressif/esp-idf/issues/2201
2018-07-23 18:25:33 +10:00
fbec7de7f8 bootloader_support: Rename include_priv directory to include_bootloader
Old rationale for "priv" no longer applies.

As reported here: https://esp32.com/viewtopic.php?f=13&t=6155&p=27151#p26601
2018-07-23 15:58:27 +10:00
409c91bcb9 removed possible uint16 access to 32bit register, noted fifo use not recommended 2018-07-23 07:57:18 +02:00
70e68c99d3 Modifications for fs profiling tool 2018-07-23 05:24:33 +00:00
6ef558320a esp_http_client: Resolve some bugs from the github community
- Closes https://github.com/espressif/esp-idf/issues/2135
- Closes https://github.com/espressif/esp-idf/issues/2208
- Closes https://github.com/espressif/esp-idf/issues/2213
2018-07-23 12:22:19 +07:00
5f2f84c220 Merge branch 'feature/http_server_finalize' into 'master'
Feature add HTTP Web Server component

See merge request idf/esp-idf!2606
2018-07-23 13:11:04 +08:00
57342c449d Merge branch 'feature/tools_mass_mfg' into 'master'
Add files for mass manufacturing tool

See merge request idf/esp-idf!2716
2018-07-23 13:10:17 +08:00
cf614120a5 Merge branch 'bugfix/reclaim_bt_ble_bss' into 'master'
components/bt: Reclaim BT/BTDM BSS in bluetooth memory release function

See merge request idf/esp-idf!2750
2018-07-23 12:48:13 +08:00
e75a1129e0 Merge branch 'bugfix/bootloader_noreturn_always' into 'master'
bootloader: Ensure bootloader never returns to caller

See merge request idf/esp-idf!2815
2018-07-23 11:56:14 +08:00
b6a7458e14 esp32 tests: TLS test: use same size stack for static & non-static task
Use constant instead of magic number of task priorities.
2018-07-23 03:54:44 +00:00
7313f3f925 esp32: Fix race in "TLS Test" where s_task can go out of scope before cleanup finishes
Probable cause for CI failures of "LoadStoreError" after this task finishes running.
2018-07-23 03:54:44 +00:00
ae24c13da2 Merge branch 'bugfix/secure_boot_padding' into 'master'
secure boot: Fix padding issue allowing unverified data to be mapped into the address space

See merge request idf/esp-idf!2778
2018-07-23 11:44:50 +08:00
ea1a99bcb9 Merge branch 'cermak_fuzzer_ci_job' into 'master'
added CI job for AFL fuzzer tests

See merge request idf/esp-idf!2537
2018-07-23 09:41:10 +08:00
992ead0671 Logo version 7 - gray logo background, improved contrast, simplified css overrides 2018-07-21 20:06:27 +02:00
faede72435 Wifi: add compatible to ccmp encryption 2018-07-21 14:37:27 +08:00
8892174383 Merge branch 'bugfix/coex_pause' into 'master'
fix coex pause cause bluetooth performance decrease

See merge request idf/esp-idf!2741
2018-07-21 14:22:09 +08:00
3486b51388 Fix stackoverflow due to recursion in vfs_spiffs_readdir_r 2018-07-20 10:27:53 -04:00
999c3dbf0e Merge branch 'feature/test_exclude_components' into 'master'
build: Add TEST_EXCLUDE_COMPONENTS

See merge request idf/esp-idf!2648
2018-07-20 19:43:46 +08:00
0e3694b542 Merge branch 'feature/freertos_vtasklist_xcoreid' into 'master'
freertos: Add option to display xCoreID in vTaskList

See merge request idf/esp-idf!2728
2018-07-20 18:46:41 +08:00
656bef7bb7 Http Server : Add a simple light weight HTTP Server Component.
Also add examples, docs and test apps for the HTTP Server.
2018-07-20 15:49:17 +05:30
0c147648f7 added CI job for AFL fuzzer tests 2018-07-20 10:28:12 +02:00
6e4342a877 bt : fix bug that bluetooth controller init/disable/enable/disable may cause exception
1. when one task do deinit/init/disable/enable, especially different cpu
core, it may cause controller crash in ISR handler
2. fix while BLE is scanning, bluetooth controller is disabled cause BLE
scan is not abort.
2018-07-20 14:10:55 +08:00
f610249bdd Reclaim BT/BTDM BSS and Data in bluetooth memory release function
1. Modify esp_bt_controller_mem_release() to release BTDM BSS and Data to heap if
ESP_BT_MODE_BTDM mode is passed to it
2. Add a new API esp_bt_mem_release() which internally calls
esp_bt_controller_mem_release() with the provided mode and then if mode
is ESP_BT_MODE_BTDM, releases BT BSS and Data to heap.

Background:
For Wi-Fi and BT/BLE applications, for e.g. the usecase is like when
Bluetooth is used for provisioning and once the device is connected to the Wi-Fi
AP, we can turn off Bluetooth completely. In such scenarios, it should be possible to
reclaim all the memory of Bluetooth. Although, currently this does not
happen.

Experiment:
Made the following modifications to examples/bluetooth/gatt_server :
1. Added support of simple_wifi to it
2. Moved all the bluetooth related code under CONFIG_BT_ENABLED config
option
3. Calculated the free heap in 2 similar scenarios:
   i. Disabled BT (CONFIG_BT_ENABLED undefined) and checked the free
heap after STA connected
   ii. Kept BT enabled and disabled it after STA connected and checked
the free heap
Ideally, the numbers for i., ii. above should have been similar. But
there was a delta of almost 30-31K. (i. > ii.)
4. Through make size-components checked the common BSS for libbta.a and libbtdm_app.a
and found it to be almost 30K. Data is around 1K

Solution:
1. Modified the linker script to mark the BSS and Data for these libraries and
free it when ESP_BT_MODE_BTDM mode is passed to mem release APIs.
2. Verified that the free heap is comparable for i. and ii. above.

Note: It is known that once this is done, Bluetooth can only be used
again post reboot.

Signed-off-by: Hrishikesh Dhayagude <hrishi@espressif.com>
2018-07-20 11:33:26 +05:30
35205d8513 Add files and docs for mass mfg 2018-07-20 10:41:11 +05:30
e4fb359c34 Merge branch 'bugfix/btdm_bt_remove_device_fail_when_ble_connected' into 'master'
component/bt: Fix bug of remove bond device fail when BLE and BT are connectd at the same time

See merge request idf/esp-idf!2767
2018-07-20 10:46:31 +08:00
45275ab189 Merge branch 'feature/nvs_multipage_blob' into 'master'
nvs-flash: Support for blobs larger than half of SPI Flash sector size

See merge request idf/esp-idf!2182
2018-07-20 09:13:34 +08:00
5a27a63541 nvs-flash: Support for blobs larger than half of SPI Flash sector size
This change removes the earlier limitation of 1984 bytes for storing data-blobs.
Blobs larger than the sector size are split and stored on multiple sectors.
For this purpose, two new datatypes (multi-page index and multi-page data) are
added for entries stored in the sectors. The underlying read, write, erase and find
operations are modified to support these large blobs. The change is transparent
to users of the library and no special APIs need to be used to store these large
blobs.
2018-07-20 00:13:15 +05:30
0efb4a11ec Correct source code encoding 2018-07-19 14:00:44 +02:00
fec079cd44 Merge branch 'bugfix/rtc_io_hold_regs' into 'master'
Fix errors in rtc_gpio_desc values

See merge request idf/esp-idf!2765
2018-07-19 15:04:42 +08:00
a8f39a892e Merge branch 'bugfix/ulp_example_fix' into 'master'
ulp example: fix for RTC IOs

See merge request idf/esp-idf!2768
2018-07-19 15:04:20 +08:00
f0d74b1c64 bootloader: Ensure bootloader never returns to caller
* Fixes some "noreturn" functions in bootloader utils which did return (causing fatal CPU
  exceptions).
* Marks bootloader entry as "noreturn", preventing "user code done" from stalling boot
  Partial fix for https://github.com/espressif/esp-idf/issues/1814 TW20016
  (Comprehensive fix for this issue will be enabling WDT during bootloader, coming shortly.)
2018-07-19 16:24:11 +10:00
a7d00f44ab Merge branch 'feature/esp32-pico-kit_v4.1' into 'master'
Added description of ESP32-PICO-KIT V4.1 board

See merge request idf/esp-idf!2762
2018-07-19 08:05:00 +08:00
ca15dbd05e Added description of ESP32-PICO-KIT V4.1 board 2018-07-18 20:02:43 +02:00
de907e8801 Merge branch 'bugfix/rmt_mem_num_maximum_limit_is_not_accurate' into 'master'
bugfix(rmt): Modify the rmt_mem_num maximum limit value from 15 to 8.

See merge request idf/esp-idf!2734
2018-07-18 16:15:14 +08:00
c46b8178f2 Merge branch 'bugfix/sdmmc_auto_stop_cmd' into 'master'
sdmmc: enable host auto_stop only for certain commands

See merge request idf/esp-idf!2710
2018-07-18 14:55:45 +08:00
0b78959070 Merge branch 'bugfix/deep_sleep_flush_uart' into 'master'
sleep: fix flushing UARTs when entering deep sleep

See merge request idf/esp-idf!2698
2018-07-18 14:55:13 +08:00
2506a9416e Version 2 of the logo, without a frame an with uniform color 2018-07-18 07:03:00 +02:00
2fd5ce3022 Made the logo smaller 2018-07-18 07:03:00 +02:00
da86681f21 Added Espressif logo to documentation 2018-07-18 07:03:00 +02:00
ae728d66c8 Update theme_overrides.css
Changed colors in css file, in order to make documentation website look like official website.
2018-07-18 07:03:00 +02:00
d62293165b Merge branch 'bugfix/btdm_using_osi_malloc_instead_of_malloc' into 'master'
component/bt: Using osi_malloc instead of malloc

See merge request idf/esp-idf!2748
2018-07-18 11:09:28 +08:00
aa4d77467b Merge branch 'bugfix/esp_err_ignore_dirs' into 'master'
esp32: Do not document error codes defined in examples

See merge request idf/esp-idf!2732
2018-07-18 08:29:53 +08:00
cf14826100 fix coex pause cause bluetooth performance decrease
1. it may cause BLE connection unstable
2. it may cause Classic BT connection unstable
3. it may cause BLE/BREDR scan performance decrease
2018-07-17 21:06:57 +08:00
94a599fb64 Merge branch 'bugfix/btdm_some_misspell' into 'master'
component/bt: Fix some misspell

See merge request idf/esp-idf!2783
2018-07-17 20:48:03 +08:00
603ce05376 Merge branch 'bugfix/ampdu_duplicate' into 'master'
wifi: fix ampdu duplicate issue

See merge request idf/esp-idf!2742
2018-07-17 20:45:45 +08:00
54a67d92a4 fix(sleep): swap touchpad num in wakeup status 2018-07-17 20:25:06 +08:00
5376a06d7b Merge branch 'bugfix/range_CONFIG_ESP32_RTC_CLK_CAL_CYCLES' into 'master'
soc/clk: Fix range CONFIG_ESP32_RTC_CLK_CAL_CYCLES

See merge request idf/esp-idf!2719
2018-07-17 19:43:11 +08:00
cffaa9f5b5 freertos: add configTASKLIST_INCLUDE_COREID 2018-07-17 10:57:26 +00:00
0fb1945482 Added: display xCoreID in vTaskList
Merges https://github.com/espressif/esp-idf/pull/2064
2018-07-17 10:57:26 +00:00
ea452920bb Merge branch 'bugfix/time_ut_wakeup_from_deep_sleep' into 'master'
esp32/test: Reduces a unit test execution time

See merge request idf/esp-idf!2776
2018-07-17 18:39:15 +08:00
d90f8c06c2 changes for timers 2018-07-17 16:46:53 +08:00
5480a6b6e5 Merge branch 'bugfix/clear_intr_status_when_enable_intr' into 'master'
driver(gpio): fix the gpio interrupt false triggering issue

See merge request idf/esp-idf!2498
2018-07-17 15:44:00 +08:00
e7135c53b5 Merge branch 'bugfix/fix_uart_timeout_bug_when_enable_reftick' into 'master'
driver(uart):  Fix uart time_out bug when using ref_tick

See merge request idf/esp-idf!2775
2018-07-17 15:43:47 +08:00
85ad8cfcfc docs: update channel state information document
1. Move channel to the first row of the table.

    2. Remove the condition of HT20/HT40 for they are determined by
    secondary channel.

    3. Clean up the CSI table.
2018-07-17 14:50:30 +08:00
5cbc4e976b app_update: Don't double-verify secure boot signature during OTA
esp_image_load() already verifies the signature
2018-07-17 15:33:47 +10:00
57b601ab7f secure boot: Pad to avoid data after the signature mapping into the address space
Because address space is mapped in 64KB pages, it was possible for unauthenticated data after the
app .bin to become mapped into the flash cache address space.

This problem is solved by 2 changes:

* "esptool elf2image --secure-pad" will pad the image so that the signature block ends close to the
  64KB boundary. Due to alignment constraints it will be 12 bytes too short after signing (but
  with flash encryption, these 12 bytes are still encrypted as part of the last block and can't be
  arbitrarily changed).
* By default, secure boot now requires all app partitions to be a multiple of 64KB in size.
2018-07-17 15:33:47 +10:00
cf061a01b7 component/bt: Fix some misspell
Using CONFIG_BT_SSP_ENABLE instead if BT_SPP_INCLUDED
2018-07-16 20:56:45 +08:00
6d57757840 Modify the rmt_mem_num maximum limit value from 15 to 8. 2018-07-16 19:10:42 +08:00
4df7145564 esp32/test: Reduces a unit test execution time 2018-07-16 14:14:40 +05:00
936b8e1967 wifi: fix ampdu duplicate issue
fix ampdu duplicate issue
2018-07-16 17:10:58 +08:00
70f3933db1 Merge branch 'bugfix/tw23835_add_source_ip_route_for_unicast' into 'master'
lwip: add source ip based route for unicast packet

See merge request idf/esp-idf!2757
2018-07-16 17:01:16 +08:00
e2b9b70800 driver(uart): Fix uart time_out bug when using ref_tick 2018-07-16 16:56:14 +08:00
e5d2406b1d Merge branch 'bugfix/spi_cs_setup_fulldup' into 'master'
fix(spi_master): allow to use cs_ena_pretrans in full duplex mode without…

See merge request idf/esp-idf!2576
2018-07-16 16:30:36 +08:00
fe1ffb3d1c Merge branch 'bugfix/mdns_remove' into 'master'
mdns: Minor fix for mdns_service_remove()

See merge request idf/esp-idf!2760
2018-07-16 16:29:20 +08:00
f2f925de78 Merge branch 'bugfix/sh2lib_send_bug' into 'master'
sh2lib: Fix a bug in send

See merge request idf/esp-idf!2656
2018-07-16 16:29:03 +08:00
e90a920ea8 Merge branch 'bugfix/add_queueset_critical_sections' into 'master'
freertos: Add critical sections to queue sets.

See merge request idf/esp-idf!2761
2018-07-16 15:57:35 +08:00
11ca056320 component/bt: Fix bug of remove bond device fail when BLE and BT are connectd at the same time 2018-07-16 15:46:27 +08:00
7f382f461c Merge branch 'feature/support_for_XM25QU64A' into 'master'
feature(flash): set QIO mode for XM25QU64A(1V8_64M_flash)

See merge request idf/esp-idf!2753
2018-07-16 12:16:13 +08:00
8809fabcd5 Merge branch 'bugfix/ledc_duty_and_freq' into 'master'
bugfix(ledc): fix bugs reported from unit-test and github.

See merge request idf/esp-idf!2735
2018-07-16 12:12:48 +08:00
68e01045f1 Merge branch 'bugfix/secure_boot_regression_partitions' into 'master'
Fix secure boot & flash encryption regression, don't verify partitions as part of secure boot

See merge request idf/esp-idf!2764
2018-07-16 12:07:56 +08:00
3b19269fcb Merge branch 'feature/wifi_check_wifi_lib_git_commit_id' into 'master'
check WiFi library git commit id in unit test

See merge request idf/esp-idf!2621
2018-07-16 11:45:59 +08:00
cee6d7d5a9 docs: Add more ReST-isms in secure boot & flash encryption docs
(Original version of these docs were in Markdown.)
2018-07-16 11:52:52 +10:00
6a498bfe2b docs: Add note about bootloader size for flash encryption & secure boot 2018-07-16 11:52:52 +10:00
2ae758ebcb Merge branch 'bugfix/spi_sdio_sdkconfig_include' into 'master'
sdio_example/spi: fix sdkconfig include issue

See merge request idf/esp-idf!2756
2018-07-16 08:00:15 +08:00
394eabdeec Merge branch 'docs/btdm_refactor_ble_spp_readme' into 'master'
component/bt_refactor_ble_spp_readme

See merge request idf/esp-idf!2717
2018-07-15 15:38:40 +08:00
a22d6607f8 Merge branch 'bugfix/autoip_compilation' into 'master'
LWIP AutoIP Compilation Fixed by defining IP_IS_V4_VAL()

See merge request idf/esp-idf!2758
2018-07-15 15:19:11 +08:00
733f73067c Update README.md 2018-07-15 12:56:23 +08:00
fe238af249 Update README.md 2018-07-15 12:52:55 +08:00
7cbd18ec4e doc: add CoAP README.md 2018-07-14 16:15:03 +08:00
be81d2c16d Merge branch 'test/print_debug_info_when_test_failed' into 'master'
tiny-test-fw: print debug info when test failed

See merge request idf/esp-idf!2564
2018-07-13 21:22:29 +08:00
6554bdcbb6 Merge branch 'bugfix/btdm_add_profile_descriptor_list_for_spp' into 'master'
component/bt: Add profile descriptor list for SPP

See merge request idf/esp-idf!2691
2018-07-13 19:20:03 +08:00
8571170abe Merge branch 'feature/btdm_bt_ssp' into 'master'
component/bt: Add Secure Simple Pairing

See merge request idf/esp-idf!2453
2018-07-13 19:19:53 +08:00
4b97a1edb2 ulp example: fix for RTC IOs
- call rtc_gpio_init for pins which aren't configured as RTC by default
- for RTC IOs 16 and 17, read higher part of the input register
- automatically convert GPIO number into RTC IO number
- use ulp_set_wakeup_period instead of writing to register
2018-07-13 17:48:15 +08:00
fd8a7666c8 LWIP AutoIP Compilation Fixed by defining IP_IS_V4_VAL() 2018-07-13 15:04:39 +05:30
f348076920 esp32/test: set 60s timeout for one deep sleep case 2018-07-13 07:04:05 +00:00
4f971619fa tiny-test-fw: save DUT log in different thread:
We found some SD card on Raspberry Pi could have very bad performance.
It could take seconds to save small amount of data.
If the DUT receives data and save it as log, then it stops receiving data until log is saved.
This could lead to expect timeout. As an workaround to this issue,
``BaseDUT`` class will create a thread to save logs.
Then data will be passed to ``expect`` as soon as received.
2018-07-13 07:04:05 +00:00
b452cea04e tiny-test-fw: fix incorrect wait timeout in expect 2018-07-13 07:04:05 +00:00
5f26b36f0f tiny-test-fw: filter examples with test level 2018-07-13 07:04:05 +00:00
23d98aa358 tiny-test-fw: print expect failure when test fails 2018-07-13 07:04:05 +00:00
b354770f42 Merge branch 'bugfix/fixes_from_github' into 'master'
Fixes from Github

See merge request idf/esp-idf!2730
2018-07-13 15:03:50 +08:00
8b5a2ccb8d docs: Update Flash Encryption docs to clarify reflashing options 2018-07-13 16:18:07 +10:00
8a9e3875ed Fix errors in rtc_gpio_desc values 2018-07-12 23:16:15 -07:00
21ccecc802 freertos: Add critical sections to queue sets.
Queue sets are not SMP safe. This commit adds
critical sections to queue sets. Unit tests for
queue sets have also been added.
2018-07-13 13:58:54 +08:00
6fd6e024fc bootloader: Fix warning building reflashable Secure Boot image 2018-07-13 15:45:15 +10:00
fb439e48f5 bootloader: Don't verify Partition Table as part of Secure Boot
Partition Tables are still signed for backwards compatibility, but signature is no longer checked as
part of bootloader.

Closes https://github.com/espressif/esp-idf/issues/1641
2018-07-13 15:45:15 +10:00
7b9009ca5c bootloader: Fix secure boot & flash encryption functionality
Fixes regression in 3e0ac4db79.
2018-07-13 15:26:18 +10:00
2e1427a239 lwip: add source ip based route for unicast packet
Add source IP based route for unicast packets forwarding.
2018-07-13 12:35:17 +08:00
46639bab85 Merge branch 'bugfix/crlf_auto_conversion' into 'master'
Convert CRLF (Windows line endings) to LF (Unix style), add CI check

See merge request idf/esp-idf!2119
2018-07-13 11:44:57 +08:00
6d46eed8e4 sdmmc: enable host auto_stop only for certain commands
Perviously host send_auto_stop flag would be set for every data
transfer over 1 block long. This caused stop commands to be sent
after CMD53, which shouldn't be done. Fix by adding an explicit list
of commands for which send_auto_stop should be set.
2018-07-13 03:28:10 +00:00
ffaf08e851 Merge branch 'fix/bootloader_typedef_enum' into 'master'
bootloader: fix missing typedef on enum defintion

See merge request idf/esp-idf!2718
2018-07-13 08:24:28 +08:00
5c7eb7e27b mdns: Minor fix for mdns_service_remove()
Send the Goodbye packet while removing an mDNS service as an "Authoritative" packet so
that the listeners remove the service from their records immediately.
2018-07-12 19:18:54 +05:30
5402ace528 driver(gpio) : Fixed the gpio related bug for release v3.1. 2018-07-12 20:19:02 +08:00
01efe9a300 Merge branch 'feature/ci_support_test_one_case_multiple_times' into 'master'
CI: support test one case multiple times by @bot

See merge request idf/esp-idf!2692
2018-07-12 19:57:21 +08:00
05d74d532e Merge branch 'bugfix/tiny_test_fw_filter_invalid_serial_port' into 'master'
tiny-test-fw: filter out invalid IDF ports

See merge request idf/esp-idf!2745
2018-07-12 19:56:48 +08:00
fdfe38a779 wpa_supplicant: add missing source dirs to CMake build
Closes: https://github.com/espressif/esp-idf/issues/2168

Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-07-12 17:22:47 +05:30
bb4c8b725c Tools: Correct line endings in idf_monitor tests 2018-07-12 19:10:37 +08:00
a67d5d89e0 Replace all DOS line endings with Unix
Command run was:
git ls-tree -r HEAD --name-only | xargs dos2unix
2018-07-12 19:10:37 +08:00
74245d27d3 ci: Add line endings check for CRLF in repository 2018-07-12 19:10:37 +08:00
32bc9f94c0 check WiFi library git commit id in unit test 2018-07-12 17:53:21 +08:00
24e7286693 bootloader: fix missing typedef on enum defintion
(MINOR CHANGES)
Closes https://github.com/espressif/esp-idf/pull/2140
2018-07-12 17:43:59 +08:00
dc092366bb Merge branch 'bugfix/beacon_info_do_not_update_after_user_scan' into 'master'
Wifi: bugfix of beacon info don't update after user scan

See merge request idf/esp-idf!2749
2018-07-12 17:24:54 +08:00
b0c049a6c8 Merge branch 'bugfix/fix_esp_pthread_h_compatible_with_cpp' into 'master'
pthread: fix esp_pthread.h to compatible with c++

See merge request idf/esp-idf!2739
2018-07-12 16:54:18 +08:00
95dbfbe4c0 sdio_example/spi: fix sdkconfig include issue
(MINOR CHANGES)
2018-07-12 15:59:16 +08:00
91052cd333 component/bt_refactor_ble_spp_readme 2018-07-12 09:09:01 +08:00
04caff2fb2 Merge branch 'fix/sdio_speed_4bit' into 'master'
fix(sdio): update sdio to better run in 4bit HS mode

See merge request idf/esp-idf!2704
2018-07-12 08:54:03 +08:00
cfb3759635 Merge branch 'bugfix/rtc_isr_deregister_memory_leak' into 'master'
bugfix/memory leak in rtc_isr_deregister

See merge request idf/esp-idf!2754
2018-07-12 08:25:56 +08:00
542373b6ef feature(flash): support for QIO mode of XM25QU64A 2018-07-11 22:28:01 +08:00
882b50dd8c driver: Fix memory leak in rtc_isr_deregister()
Closes #2179
2018-07-11 21:34:09 +08:00
6e42a2b4b9 Wifi: bugfix of beacon info don't update after user scan 2018-07-11 20:02:33 +08:00
1b1477d16a Merge branch 'bugfix/btdm_err_data_report' into 'master'
component/bt: bugfix for erroneous data reporting always enabled

See merge request idf/esp-idf!2709
2018-07-11 20:00:46 +08:00
47a164b3ac component/bt: Using osi_malloc instead of malloc 2018-07-11 11:15:41 +00:00
d7c4ec5235 component/bt: Add profile descriptor list for SPP 2018-07-11 11:14:41 +00:00
7937d083e6 Merge branch 'bugfix/wifi_sync_header_file_with_wifi_lib' into 'master'
esp32: synchronize header file with that in wifi library

See merge request idf/esp-idf!2747
2018-07-11 19:13:17 +08:00
5c6e1e6e67 pthread: fix esp_pthread.h to compatible with c++
esp_pthread.h is missing the necessary extern "C"{ ... } wrapper to be compatible with C++. The result is link errors when you call its functions from C++ code, because the compiler generates mangled names.

Closes https://github.com/espressif/esp-idf/issues/2121
Closes https://github.com/espressif/esp-idf/issues/2172
2018-07-11 14:21:09 +08:00
b6156105d4 Merge branch 'feature/test_idf_monitor' into 'master'
Test the IDF Monitor through sockets

See merge request idf/esp-idf!2556
2018-07-11 13:39:58 +08:00
064261cd3a Merge branch 'bugfix/adc_two_point_cal_val_update' into 'master'
Updated information in  documentation about  'Two Point Values' used to calibrate ADC readings

See merge request idf/esp-idf!2678
2018-07-11 12:53:33 +08:00
c96d80f789 esp32: synchronize header file with that in wifi library 2018-07-11 12:11:06 +08:00
15858895a4 CI: support test one case multiple times by @bot 2018-07-11 10:22:13 +08:00
5edc9f9752 tiny-test-fw: filter out invalid IDF ports 2018-07-11 00:00:40 +08:00
bec14ad8ee build: Add TEST_EXCLUDE_COMPONENTS
To exclude during the build process of unit tests some components.
2018-07-10 13:44:41 +05:00
ac3508615a soc/clk: Fix range CONFIG_ESP32_RTC_CLK_CAL_CYCLES
Fixed the error division on zero.
Also fixed range CONFIG_ESP32_RTC_CLK_CAL_CYCLES in Kconfig.
Fixed a overflow error by TIMG in the function rtc_clk_cal_internal. This error was due to a limit in values TIMG_RTC_CALI_MAX=0x7FFF (to write the slowclk_cycles) and TIMG_RTC_CALI_VALUE=0x1FFFFFF (to read xtal_cycles). Added assert finctions.

Closes https://github.com/espressif/esp-idf/issues/2147
2018-07-10 11:56:12 +05:00
6e9c59bfc3 feature(psram): add support for 64MBit psram of 1.8v and 3.3v.
1. Add reading psram EID.
2. Configure different clock mode for different EID.
3. add API to get psram size and voltage.
4. Remove unnecessary VSPI claim.

For 32MBit@1.8V and 64MBit@3.3V psram, there should be 2 extra clock cycles after CS get high level.
For 64MBit@1.8 psram, we can just use standard SPI protocol to drive the psram. We also need to increase the HOLD time for CS in this case.

EID for psram:
32MBit 1.8v: 0x20
64MBit 1.8v: 0x26
64MBit 3.3v: 0x46
2018-07-10 14:24:59 +08:00
20f80da723 esp32: Do not document error codes defined in examples 2018-07-10 07:57:54 +02:00
21af1d7339 component/bt: Add Secure Simple Pairing 2018-07-10 11:18:52 +08:00
9d830a6f7c Merge branch 'bugfix/tw23667_tcp_pcb_purge_assert' into 'master'
lwip: fix the assertion in tcp_pcb_purge()

See merge request idf/esp-idf!2657
2018-07-10 10:16:47 +08:00
ab44c6ecc2 bugfix(ledc): fix bugs reported from unit-test and github.
1. In ledc_set_duty_and_update, return if duty updated. Close https://github.com/espressif/esp-idf/issues/2082
2. fix ledc_set_freq function for low speed mode.
2018-07-10 02:22:23 +08:00
27311811e0 Merge branch 'bugfix/gcc8_complation_errors' into 'master'
Warnings and errors detected by GCC8

See merge request idf/esp-idf!2703
2018-07-09 22:55:52 +08:00
3e7a5c4f50 Merge branch 'bugfix/wifi_channel_state_information_data_type' into 'master'
esp32: Change channel state information(CSI) data type from unsigned char to signed char

See merge request idf/esp-idf!2694
2018-07-09 21:28:09 +08:00
c2dc09304c gcc8_newlib3: Compilation warnings and errors not specific to newlib v3 2018-07-09 13:22:24 +03:00
82047ff181 Merge branch 'bugfix/smartconfig_ack' into 'master'
smartconfig_ack.c : Fixed the declaration of remote_ip in sc_ack_send_task()

See merge request idf/esp-idf!2689
2018-07-09 16:20:22 +08:00
3e1633354a ssl_pm_reload_crt() - Fix verify_mode checking to match openssl documentation https://www.openssl.org/docs/manmaster/man3/SSL_CTX_set_verify.html
Merges https://github.com/espressif/esp-idf/pull/2162
2018-07-09 14:41:56 +08:00
c1ae49dda1 Test the IDF Monitor through sockets
Creates a socket by socat and sends tests to the idf_monitor through it.
2018-07-09 08:37:40 +02:00
7ccc28de6c alias 需要添加到 .bashrc 文件中
Merges https://github.com/espressif/esp-idf/pull/2097
2018-07-09 14:36:47 +08:00
fab55e3266 alias should set in .bashrc
Merges https://github.com/espressif/esp-idf/pull/2097
2018-07-09 14:36:47 +08:00
a8da9c1b96 Fixed typos on booleans.
Merges https://github.com/espressif/esp-idf/pull/2067
2018-07-09 14:36:06 +08:00
0cab3cecfd doc/wifi: small fixup
The WiFi station connect sequence diagram does not have any "successful" ending.
It looks like a copy-paste error, because there are two consequent `SYSTEM_EVENT_STA_DISCONNECTED` events firing with nothing happening in between.

I think the original meaning was that the last event should be `SYSTEM_EVENT_STA_CONNECTED` to signify that if all goes well, that is the event that will be fired.

Merges https://github.com/espressif/esp-idf/pull/2065
2018-07-09 14:35:51 +08:00
1ade9a34d2 component/bt: bugfix for erroneous data reporting always enabled 2018-07-09 13:45:55 +08:00
f22a74b85c Merge branch 'bugfix/btdm_invalid_sco_handle' into 'master'
component/bt: bugfix of invalid SCO handle in HCI number_of_completed_packets event

See merge request idf/esp-idf!2707
2018-07-09 12:10:02 +08:00
6bf435217e Merge branch 'bugfix/disable_lwip_trust_ip_by_default' into 'master'
lwip: disable ETHARP_TRUST_IP_MAC by default

See merge request idf/esp-idf!2652
2018-07-09 10:03:30 +08:00
c34672e7dc fix(sdmmc): disable all pulldowns used by sdmmc host 2018-07-06 18:17:51 +08:00
597eda5f0b fix(sdio_slave): improve sdio slave for high speed and 4 bit mode 2018-07-06 18:17:50 +08:00
823ebba0f0 fix(sdio_slave): fix minor issues like return value of send function, output arg, etc. 2018-07-06 18:17:49 +08:00
8fe2a77c46 coredump: Adds support for ROM ELF file to 'espcoredump' script 2018-07-05 22:20:20 +03:00
95e26cd461 coredump: Fixes exception stack frame structure indicator
Initializes exception stack frame EXIT field to indicate stack frame format for 'espcoredump'.
2018-07-05 22:20:20 +03:00
d92c1d02e7 Merge branch 'bugfix/bootloader_entry_addr_decoding' into 'master'
bootloader: move iram_seg 1k up to have better looking idf_monitor output

See merge request idf/esp-idf!2699
2018-07-05 16:18:33 +08:00
934df45473 Merge branch 'bugfix/xthal_get_interrupt_volatile' into 'master'
xtensa: make XTHAL_GET_INTERRUPT, XTHAL_GET_CCOUNT volatile

See merge request idf/esp-idf!2681
2018-07-05 16:18:18 +08:00
49c236d613 lwip: fix the assertion in tcp_pcb_purge()
Fix the assertion in tcp_pcb_purge().
2018-07-05 14:29:03 +08:00
0ede362f84 component/bt: bugfix of invalid SCO handle in HCI number_of_completed_packets event 2018-07-05 12:00:41 +08:00
6d46220456 Merge branch 'feature/clock_gettime' into 'master'
newlib: Add function clock_gettime()

See merge request idf/esp-idf!2610
2018-07-04 18:09:04 +08:00
c445da47de Merge branch 'feature/CAN_driver' into 'master'
CAN driver, examples, and docs

See merge request idf/esp-idf!2098
2018-07-04 17:33:24 +08:00
6ee3cf67bd Merge branch 'feature/nvs_part_gen_improvements' into 'master'
Feature/nvs part gen improvements

See merge request idf/esp-idf!2555
2018-07-04 17:33:13 +08:00
1d2727f4c8 CAN Driver
The following commit contains the first version of the ESP32 CAN Driver.

closes #544
2018-07-04 14:01:57 +08:00
5551b3f616 bootloader: move iram_seg 1k up to have better looking idf_monitor output
When 2nd stage bootloader loads the ROM bootloader, it prints a
message similar to "entry 0x40080xxx", which idf_monitor decodes
(using application ELF file) as one of the reset vectors (xxx is <
400h). This moves the iram_seg of bootloader 1k up to prevent overlap
of bootloader .text and application vectors, making the output look
nicer. There is still a chance that the entry point decodes as some
symbol in application ELF file, but at least it won't have
"Exception" in its name.
2018-07-04 12:33:11 +08:00
10c2cddddf sleep: fix flushing UARTs when entering deep sleep
Since 94250e42a0, UART output is suspended when entering sleep mode
(deep or light sleep). This makes sense for light sleep, where sleep
normally takes small amount of time, and flushing the UART would add
a lot of latency. But this breaks existing behaviour for deep sleep,
where UART output was previously sent out before entering sleep mode.

Closes https://github.com/espressif/esp-idf/issues/2145
2018-07-04 12:11:25 +08:00
eda05b6ce8 esp32: Change channel state information(CSI) data type from unsigned char to signed char 2018-07-04 11:39:14 +08:00
a3c43251b4 Merge branch 'feature/fix_rs485_test' into 'master'
driver: fix rs485 test

See merge request idf/esp-idf!2690
2018-07-04 09:13:52 +08:00
9790dafe0e Merge branch 'bugfix/host_io_fseek_args_init' into 'master'
Host file I/O: Fix uninitialized fseek args

See merge request idf/esp-idf!2693
2018-07-04 09:05:23 +08:00
13384221a7 host_file_io: Fixes uninitialized 'offset' and 'whence' fseek args 2018-07-03 19:34:13 +03:00
9ba0808228 driver: fix rs485 test 2018-07-03 13:26:28 +02:00
e5049021ed smartconfig_ack.c : Fixed the declaration of remote_ip in sc_ack_send_task()
remote_ip was declared to be a pointer to an address that was
overwritten in later stage thus changing the address pointed by remote_ip

esp_smartconfig.h : Fixed a typo. station_config to wifi_config_t

Signed-off-by: Sachin Parekh <sachin.parekh@espressif.com>
2018-07-03 16:28:24 +05:30
909eec9c3b Merge branch 'feature/uart_add_rs485_interface_support' into 'master'
driver: add rs485 half duplex interface support to uart driver

See merge request idf/esp-idf!2415
2018-07-03 14:34:33 +08:00
52f4ff6220 Merge branch 'feature/spi_little_endien' into 'master'
feature(spi): provide macro to write multi-byte data straightly

See merge request idf/esp-idf!2634
2018-07-03 14:32:41 +08:00
91e7a6e7a3 Merge branch 'bugfix/console_performance' into 'master'
idf_monitor: Fix console performance

See merge request idf/esp-idf!2570
2018-07-03 14:04:23 +08:00
e274940a46 newlib: Add some functions from _POSIX_TIMERS
clock_gettime();
clock_settime();
clock_getres();

Closes https://github.com/espressif/esp-idf/issues/1302
2018-07-03 07:28:29 +05:00
05a5c58f7a Merge branch 'bugfix/tinytestfw_espport' into 'master'
tiny-test-fw: handle case when ESPPORT is not set

See merge request idf/esp-idf!2684
2018-07-03 09:10:12 +08:00
eb85c4ec15 tiny-test-fw: handle case when ESPPORT is not set
Fix bug introduced in 8a88dd35, where .decode was called on result of
os.getenv, which was None if ESPPORT was not set.
2018-07-02 21:45:27 +08:00
a9fca0c775 driver: add rs485 half duplex interface support to uart driver (fix after review)
An existing UART driver does not support RS485 half duplex mode.
This task adds this functionality to ESP_IDF UART driver.
driver/uart.c/h: updated to add support of RS485 half duplex mode
examples/peripherals/uart_echo_rs485/main/rs485_example.c: added test example
components/driver/test/test_uart.c: added test of RS485 half duplex mode
docs/en/api-reference/peripherals/uart.rst: updated documentation
test_uart.c: suppress GCC warnings about discarded const qualifiers
uart.rst: remove sphinx warning - "Duplicate explicit target name"
simple change in uart.h file
update (test_uart.c) after rebase from master
update uart.rst, uart.c, rs485_example.c
Update example description in file Readme.md
update uart.c/h, uart.rst, test_uart.c according to review results
update uart.h (uart_set_rx_timeout() description
test_uart.c remove ignore tag
uart.c/h: fix param errors
test_uart.c: Remove GCC warning supress
uart.rst: fix the notes
rs485_example.c: fix output
uart.c: remove reset using UART_RXFIFO_RST from driver.
readme.md: Update example description

The tests are completed using RS485 adapters hardware connected to two ESP32 WROVER KITs.

TW#13812
Closes https://github.com/espressif/esp-idf/pull/667
Closes https://github.com/espressif/esp-idf/pull/1006
2018-07-02 15:24:58 +02:00
a952eb1a92 driver: add rs485 half duplex interface support to uart driver (fix indentation after review)
An existing UART driver does not support RS485 half duplex mode.
This task adds this functionality to ESP_IDF UART driver.
driver/uart.c/h: updated to add support of RS485 half duplex mode
examples/peripherals/uart_echo_rs485/main/rs485_example.c: added test example
components/driver/test/test_uart.c: added test of RS485 half duplex mode
docs/en/api-reference/peripherals/uart.rst: updated documentation
test_uart.c: suppress GCC warnings about discarded const qualifiers
uart.rst: remove sphinx warning - "Duplicate explicit target name"
simple change in uart.h file
update (test_uart.c) after rebase from master
update uart.rst, uart.c, rs485_example.c
Update example description in file Readme.md
update uart.c/h, uart.rst, test_uart.c according to review results
update uart.h (uart_set_rx_timeout() description
test_uart.c remove ignore tag
uart.c/h: fix param errors
test_uart.c: Remove GCC warning supress
uart.rst: fix the notes
rs485_example.c: fix output

The tests are completed using RS485 adapters hardware connected to two ESP32 WROVER KITs.

TW#13812
Closes https://github.com/espressif/esp-idf/pull/667
Closes https://github.com/espressif/esp-idf/pull/1006
2018-07-02 15:24:58 +02:00
ef5dc73f6f driver: add rs485 half duplex interface support to uart driver (update after review)
An existing UART driver does not support RS485 half duplex mode.
This task adds this functionality to ESP_IDF UART driver.
driver/uart.c/h: updated to add support of RS485 half duplex mode
examples/peripherals/uart_echo_rs485/main/rs485_example.c: added test example
components/driver/test/test_uart.c: added test of RS485 half duplex mode
docs/en/api-reference/peripherals/uart.rst: updated documentation
test_uart.c: suppress GCC warnings about discarded const qualifiers
uart.rst: remove sphinx warning - "Duplicate explicit target name"
simple change in uart.h file
update (test_uart.c) after rebase from master
update uart.rst, uart.c, rs485_example.c
Update example description in file Readme.md
update uart.c/h, uart.rst, test_uart.c according to review results
update uart.h (uart_set_rx_timeout() description
test_uart.c remove ignore tag
uart.c/h: fix param errors
test_uart.c: Remove GCC warning supress
uart.rst: fix the notes
rs485_example.c: fix output

The tests are completed using RS485 adapters hardware connected to two ESP32 WROVER KITs.

TW#13812
Closes https://github.com/espressif/esp-idf/pull/667
Closes https://github.com/espressif/esp-idf/pull/1006
2018-07-02 15:24:58 +02:00
0ec81181b4 driver: add rs485 half duplex interface support to uart driver (add jobs into *.yml file)
An existing UART driver does not support RS485 half duplex mode.
This task adds this functionality to ESP_IDF UART driver.
driver/uart.c/h: updated to add support of RS485 half duplex mode
examples/peripherals/uart_echo_rs485/main/rs485_example.c: added test example
components/driver/test/test_uart.c: added test of RS485 half duplex mode
docs/en/api-reference/peripherals/uart.rst: updated documentation
test_uart.c: suppress GCC warnings about discarded const qualifiers
uart.rst: remove sphinx warning - "Duplicate explicit target name"
simple change in uart.h file
update (test_uart.c) after rebase from master
update uart.rst, uart.c, rs485_example.c
Update example description in file Readme.md
update uart.c/h, uart.rst, test_uart.c according to review results
update uart.h (uart_set_rx_timeout() description
test_uart.c remove ignore tag

The tests are completed using RS485 adapters hardware connected to two ESP32 WROVER KITs.

TW#13812
Closes https://github.com/espressif/esp-idf/pull/667
Closes https://github.com/espressif/esp-idf/pull/1006
2018-07-02 15:24:58 +02:00
d096b3abb8 driver: add rs485 half duplex interface support to uart driver (remove ignore tag to check ut case)
An existing UART driver does not support RS485 half duplex mode.
This task adds this functionality to ESP_IDF UART driver.
driver/uart.c/h: updated to add support of RS485 half duplex mode
examples/peripherals/uart_echo_rs485/main/rs485_example.c: added test example
components/driver/test/test_uart.c: added test of RS485 half duplex mode
docs/en/api-reference/peripherals/uart.rst: updated documentation
test_uart.c: suppress GCC warnings about discarded const qualifiers
uart.rst: remove sphinx warning - "Duplicate explicit target name"
simple change in uart.h file
update (test_uart.c) after rebase from master
update uart.rst, uart.c, rs485_example.c
Update example description in file Readme.md
update uart.c/h, uart.rst, test_uart.c according to review results
update uart.h (uart_set_rx_timeout() description
test_uart.c remove ignore tag

The tests are completed using RS485 adapters hardware connected to two ESP32 WROVER KITs.

TW#13812
Closes https://github.com/espressif/esp-idf/pull/667
Closes https://github.com/espressif/esp-idf/pull/1006
2018-07-02 15:24:58 +02:00
b76693fe20 driver: add rs485 half duplex interface support to uart driver (update after review)
An existing UART driver does not support RS485 half duplex mode.
This task adds this functionality to ESP_IDF UART driver.
driver/uart.c/h: updated to add support of RS485 half duplex mode
examples/peripherals/uart_echo_rs485/main/rs485_example.c: added test example
components/driver/test/test_uart.c: added test of RS485 half duplex mode
docs/en/api-reference/peripherals/uart.rst: updated documentation
test_uart.c: suppress GCC warnings about discarded const qualifiers
uart.rst: remove sphinx warning - "Duplicate explicit target name"
simple change in uart.h file
update (test_uart.c) after rebase from master
update uart.rst, uart.c, rs485_example.c
Update example description in file Readme.md
update uart.c/h, uart.rst, test_uart.c according to review results
update uart.h (uart_set_rx_timeout() description

The tests are completed using RS485 adapters hardware connected to two ESP32 WROVER KITs.

TW#13812
Closes https://github.com/espressif/esp-idf/pull/667
Closes https://github.com/espressif/esp-idf/pull/1006
2018-07-02 15:24:58 +02:00
51e9cf6848 driver: add rs485 half duplex interface support to uart driver (update after review)
An existing UART driver does not support RS485 half duplex mode.
This task adds this functionality to ESP_IDF UART driver.
driver/uart.c/h: updated to add support of RS485 half duplex mode
examples/peripherals/uart_echo_rs485/main/rs485_example.c: added test example
components/driver/test/test_uart.c: added test of RS485 half duplex mode
docs/en/api-reference/peripherals/uart.rst: updated documentation
test_uart.c: suppress GCC warnings about discarded const qualifiers
uart.rst: remove sphinx warning - "Duplicate explicit target name"
simple change in uart.h file
update (test_uart.c) after rebase from master
update uart.rst, uart.c, rs485_example.c
Update example description in file Readme.md
update uart.c/h, uart.rst, test_uart.c according to review results

The tests are completed using RS485 adapters hardware connected to two ESP32 WROVER KITs.

TW#13812
Closes https://github.com/espressif/esp-idf/pull/667
Closes https://github.com/espressif/esp-idf/pull/1006
2018-07-02 15:24:58 +02:00
3d880f59b9 Merge branch 'test/tinyfw_tweaks' into 'master'
tiny-test-fw: small tweaks

See merge request idf/esp-idf!2496
2018-07-02 19:41:25 +08:00
32ff393afa Merge branch 'bugfix/bt_os_abstraction_layer' into 'master'
bt: fix OS abstraction layer for correct critical section API usage

See merge request idf/esp-idf!2676
2018-07-02 18:42:07 +08:00
0c3e34b79a tiny-test-fw: add class diagram to document 2018-07-02 10:40:23 +00:00
6a626f7984 tiny-test-fw: add requirements.txt, small docs tweaks 2018-07-02 10:40:23 +00:00
8a88dd3590 tiny-test-fw: IDFDUT: in the absence of configuration, try ESPPORT first 2018-07-02 10:40:23 +00:00
59c96ae331 Merge branch 'bugfix/spi_flash_deadlock' into 'master'
spi_flash: raise priority of the task performing spi_flash operation

See merge request idf/esp-idf!2609
2018-07-02 18:39:16 +08:00
3238531c70 Merge branch 'bugfix/rom_libgcc_functions' into 'master'
Fix linking of libgcc math functions to ROM

See merge request idf/esp-idf!2640
2018-07-02 18:38:44 +08:00
e7ddd47716 nvs_partition_generator: Add support for base64 representation of Binary data 2018-07-02 15:40:21 +05:30
8369bd244b nvs_partition_generator: Modifications to enable using the utility as a Python library
And also use directly as an executable
2018-07-02 15:39:52 +05:30
4f4182179f Merge branch 'bugfix/gcc8_compile_errors' into 'master'
Fix GCC 8 compile errors

See merge request idf/esp-idf!2466
2018-07-02 17:43:02 +08:00
1f3320ebdf wpa_supplicant: fix errors for GCC 8 support
components/wpa_supplicant/port/include/os.h:259:29: error: 'strncpy' output truncated before terminating nul copying 3 bytes from a string of the same length [-Werror=stringop-truncation]
 #define os_strncpy(d, s, n) strncpy((d), (s), (n))
                             ^~~~~~~~~~~~~~~~~~~~~~
components/wpa_supplicant/src/wpa2/eap_peer/eap.c:410:3: note: in expansion of macro 'os_strncpy'
   os_strncpy(sm->blob[0].name, CLIENT_CERT_NAME, BLOB_NAME_LEN);
   ^~~~~~~~~~
2018-07-02 09:05:00 +00:00
f42b91fe46 spi_flash: fix errors for GCC 8 support
components/spi_flash/partition.c: In function 'load_partitions':
components/spi_flash/partition.c:179:66: error: argument to 'sizeof' in 'strncpy' call is the same expression as the source; did you mean to use the size of the destination? [-Werror=sizeof-pointer-memaccess]
         strncpy(item->info.label, (const char*) it->label, sizeof(it->label));
                                                                  ^
2018-07-02 09:05:00 +00:00
714a9bda92 fatfs: fix errors for GCC 8 support and some indentation
components/fatfs/src/ff.c: In function 'f_fdisk':
components/fatfs/src/ff.c:5995:5: error: this 'for' clause does not guard... [-Werror=misleading-indentation]
     for (n = 16; n < 256 && sz_disk / n / cluster_size > 1024; n *= 2) ;
     ^~~
components/fatfs/src/ff.c:5996:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
  if (n == 256) n--;
  ^~
2018-07-02 09:05:00 +00:00
2a810a318f ipc: fix errors for GCC 8 support
components/esp32/ipc.c: In function 'esp_ipc_init':
components/esp32/ipc.c:82:31: error: '%d' directive writing between 1 and 11 bytes into a region of size 5 [-Werror=format-overflow=]
         sprintf(task_name,"ipc%d",i);
                               ^~
components/esp32/ipc.c:82:27: note: directive argument in the range [-2147483648, 1]
         sprintf(task_name,"ipc%d",i);
                           ^~~~~~~
components/esp32/ipc.c:82:9: note: 'sprintf' output between 5 and 15 bytes into a destination of size 8
         sprintf(task_name,"ipc%d",i);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
2018-07-02 09:05:00 +00:00
93f6700be7 newlib: fix errors for GCC 8 support
components/newlib/include/sys/reent.h:405:11: error: unnecessary parentheses in declaration of '_sig_func' [-Werror=parentheses]
   void (**(_sig_func))(int);
           ^
2018-07-02 09:05:00 +00:00
3d23fe9a61 feature(spi): provide macro to write multi-byte data straightly
resolves https://github.com/espressif/esp-idf/issues/2062
2018-07-02 15:34:47 +08:00
c84a2b9027 lwip: disable ETHARP_TRUST_IP_MAC by default
Disable ETHARP_TRUST_IP_MAC by default because:
1. The LAN peer may not be trustful
2. The LAN peer may has problem to update its ARP entry
2018-07-02 13:38:29 +08:00
ae006fed83 esp32: force pure math functions from libgcc to be linked from ROM 2018-07-02 12:49:57 +08:00
40b5f10611 esp32: fix addresses of some libgcc functions in ROM ld script 2018-07-02 12:49:57 +08:00
fdee0b64a0 Merge branch 'bugfix/doc_blufi' into 'master'
bugfix/doc_blufi

See merge request idf/esp-idf!2644
2018-07-02 12:12:48 +08:00
da179e0098 xtensa: make XTHAL_GET_INTERRUPT, XTHAL_GET_CCOUNT volatile
INTERRUPT and CCOUNT registers will change outside of program control.
Making the inline assembly used to read these registers volatile
indicates this fact to the compiler.

Fixes https://github.com/espressif/esp-idf/issues/2127
2018-07-02 11:31:19 +08:00
4898135c15 coap: pass null-terminated string to gethostbyname
coap client parse a string by `coap_split_uri`,fetch host should by `host.length`
otherwise, would cause `gethostbyname` failed because of inappropriate  parameter.
2018-07-02 10:05:03 +08:00
a8fa4201b9 Merge branch 'docs/eclipse_regex' into 'master'
Docs: Fix bugs in Eclipse setup in CN

See merge request idf/esp-idf!2620
2018-07-02 09:18:26 +08:00
6d1995b9d2 Merge branch 'bugfix/lwip_socket_leak_accept_enfile' into 'master'
lwip: Fix leak when accept() fails due to max socket limit

See merge request idf/esp-idf!2585
2018-07-02 09:02:21 +08:00
8a7ee46b7f Fixed link to 'TEMPLATE_EXAMPLE_README.md' 2018-07-01 19:33:37 +02:00
bd177a34c6 bt: fix OS abstraction layer for correct critical section API usage
Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-07-01 19:07:51 +05:30
f9f2937694 spi_flash: raise priority of the task performing spi_flash operation
The fix is for the situation when cache disabling mechanism causes
a deadlock with user tasks. Situation is as follows:

1. spi_flash operation is started from low-priority task on CPU0
2. It uses IPC to wake up high-priority IPC1 task on CPU1, preventing
   all other tasks on CPU1 from running. This is needed to safely
   disable the cache.
3. While the task which started spi_flash operation is waiting for IPC1
   task to acknowledge that CPU1 is not using cache anymore, it is
   preempted by a higher priority application task ("app0").
4. Task app0 busy-waits for some operation on CPU1 to complete. But
   since application tasks are blocked out by IPC1 task, this never
   happens. Since app0 is busy-waiting, the task doing spi flash
   operation never runs.

The more or less logical soltion to the problem would be to also do
cache disabling on CPU0 and the SPI flash operation itself from IPC0
task. However IPC0 task stack would need to be increased to allow doing
SPI flash operation (and IPC1 stack as well). This would waste some
memory. An alternative approach adopted in this fix is to call FreeRTOS
functions to temporary increase the priority of SPI flash operation task
to the same level as the IPC task.

Fixes https://github.com/espressif/arduino-esp32/issues/740
Fixes https://github.com/espressif/esp-idf/issues/1157
2018-07-01 20:44:42 +08:00
abbccb7acd Merge branch 'bugfix/coex_bug' into 'master'
esp32: fix coex bug

See merge request idf/esp-idf!2603
2018-06-30 22:29:18 +08:00
b1fa1ba617 Merge branch 'bugfix/btdm_fix_gattc_register_multi_srvc_chg' into 'master'
Component/bt: fix register multi service change when register multi gattc

See merge request idf/esp-idf!2625
2018-06-30 11:30:41 +08:00
f4ef7689bd The 'Two Point Values' used to calibrate ADC readings, unlike 'eFuse Vref', are not measured and burned into eFuse BLOCK3 for each individual chip during factory calibration. This operation should be done by user, if more accurate calibration is required. 2018-06-29 19:01:11 +02:00
b727113fc1 Merge branch 'bugfix/btdm_delete_deprecated_files' into 'master'
Component/bt: delete deprecated files

See merge request idf/esp-idf!2583
2018-06-29 19:37:03 +08:00
53ce5fd106 Merge branch 'bugfix/btdm_bt_remove_device_disconnect' into 'master'
component/bt: Fix bug of BT and BLE remove bond device

See merge request idf/esp-idf!2562
2018-06-29 19:29:57 +08:00
fe0dc407da Merge branch 'bugfix/btdm_bad_pointer_of_bt_gap' into 'master'
component/bt: Fix some bad point calculations of BT GAP

See merge request idf/esp-idf!2655
2018-06-29 19:25:13 +08:00
e3df7d97a7 esp32: fix coex bug
1. fix BLE connection missing in coex mode
    2. modify other parameters to make coex priority more reasonable
    3. fix modem sleep procedure trap cause Wifi disable RF when BT is
    working. Such cause that BR/EDR is difficult to be connected, BLE
    connection stability decrease and so on.
    4. modify BR/EDR coexist duration to imrove BR/EDR connect success
    ratio.
    5. Due to the hardware coexist bug, BLE scan interval/window should
    be less than 0x100(about 160ms). Therefore, it will cause BLE cannot
    scan any advertising packet while WiFi have higher priority
    behaviour(such like RX beacon, scan, TX/RX VO packets and etc.).
2018-06-29 16:28:11 +08:00
8f804d5ee7 Merge branch 'bugfix/btdm_some_ble_hid_bugs' into 'master'
component/bt: Fix some hid bugs

See merge request idf/esp-idf!2628
2018-06-29 15:36:53 +08:00
824782d6f9 Merge branch 'feature/optimize_wifi_memory' into 'master'
Optimize WiFi memory

See merge request idf/esp-idf!2650
2018-06-29 15:24:09 +08:00
0e4b28e893 Merge branch 'bugfix/btdm_fix_stop_adv_error_in_dual_core' into 'master'
component/bt: fix stop adv error in dual core

See merge request idf/esp-idf!2561
2018-06-29 15:06:49 +08:00
83f1d14162 Merge branch 'bugfix/btdm_modify_service_uuid_of_sec_gatts_demo' into 'master'
Component/bt: modify service uuid of ble_sec_gatts demo

See merge request idf/esp-idf!2612
2018-06-29 15:00:29 +08:00
1124e073d7 Merge branch 'bugfix/btdm_fix_no_adv_packet' into 'master'
component/bt: fix no adv packets

See merge request idf/esp-idf!2647
2018-06-29 14:59:01 +08:00
d1c3c8494b Component/bt: fix register multi service change when register multi gattc 2018-06-29 06:54:16 +00:00
34797d8d52 Merge branch 'bugfix/btdm_respond_error_when_receives_unsupported_request' into 'master'
component/bt: Fix bug: Respond with the Error Response when receiving a request…

See merge request idf/esp-idf!2591
2018-06-29 14:47:12 +08:00
9510f77f7a Merge branch 'bugfix/btdm_rm_assert_in_isr' into 'master'
bugfix/btdm_rm_assert_in_isr

See merge request idf/esp-idf!2633
2018-06-29 14:24:28 +08:00
a1a2a2009d Merge branch 'bugfix/prevent_btsleep_dfs_coex' into 'master'
prevent Dynamic Frequency Scaling to be used together with bluetooth modem sleep

See merge request idf/esp-idf!2645
2018-06-29 14:23:40 +08:00
be7aa884a1 Merge branch 'bugfix/btdm_singular_sleep_time_correction' into 'master'
Bugfix/btdm singular sleep time correction

See merge request idf/esp-idf!2635
2018-06-29 14:22:58 +08:00
fe1889b923 sh2lib: Fix a bug in send 2018-06-29 09:22:18 +05:30
be8ec6b8d2 component/bt: Fix some bad point calculations of BT GAP
In response to: https://github.com/espressif/esp-idf/issues/2103
2018-06-29 11:40:46 +08:00
cb8ab7c6a8 driver(rmt): update README.md file of rmt related example. 2018-06-29 11:03:09 +08:00
d3388c9a31 Optimize WiFi memory
Optimize wifi memory (b987c01d)
1. Decrease WiFi task stack size by 512 Bytes
2. Modify WiFi NVS configuration array from static to dynamic
3. Move interrupt/RX relating variables from .bss segment to .data segment
4. Modify WiFi management short buffer from static to dynamic
5. Remove some useless WiFi buffer space
2018-06-28 21:24:44 +08:00
04ea784011 prevent Dynamic Frequency Scaling when using bluetooth modem sleep
This constraint will be elimiated after the issue is fixed
2018-06-28 18:08:18 +08:00
9e3c3f267e Update eclipse-setup.rst 2018-06-28 17:58:19 +08:00
3d6d252b3e Update eclipse-setup-windows.rst 2018-06-28 17:57:55 +08:00
zwj
077380a352 component/bt: fix no adv packets 2018-06-28 17:49:41 +08:00
7fe130c171 Update eclipse-setup.rst 2018-06-28 16:28:54 +08:00
d9653e75e9 Update eclipse-setup.rst 2018-06-28 15:16:20 +08:00
084a6b54e2 Update eclipse-setup-windows.rst 2018-06-28 15:10:36 +08:00
a0928b4ce2 Update eclipse-setup-windows.rst 2018-06-28 15:00:40 +08:00
f1acb27a66 Fix the tables. 2018-06-28 14:09:14 +08:00
dd66dda11e Fix the typo and tables. 2018-06-28 14:06:26 +08:00
568da37af7 Merge branch 'ci/remove_test_report' into 'master'
CI: optimize CI stages

See merge request idf/esp-idf!2602
2018-06-28 09:28:49 +08:00
cfea04b6b3 component/bt: fix the cornered case caused by singular finetime correction value upon waking up from sleep
1. revert previous changes that adds 1-slot margin for first master Tx event, since this bugfix can handle that case
2018-06-27 20:21:39 +08:00
02a620811d component/bt: remove the call of assert in time conversion functions which can be caused in ISR 2018-06-27 17:23:23 +08:00
e75628b4d7 Merge branch 'bugfix/pcnt_event_edge_case' into 'master'
test: fix pcnt unit test fail

See merge request idf/esp-idf!2614
2018-06-27 10:00:53 +08:00
76829509b2 Merge branch 'bugfix/ci_stop_all_thread_when_one_failed' into 'master'
ci: stop main thread when one failed

See merge request idf/esp-idf!2615
2018-06-27 09:59:46 +08:00
c07ec696dc Merge branch 'bugfix/eclipse_regex' into 'master'
Docs: Fix bugs in Eclipse setup

See merge request idf/esp-idf!2617
2018-06-27 09:38:47 +08:00
cff573cbe9 Merge branch 'bugfix/conn_stress_test_test_during_sleep' into 'master'
Bugfix/btdm_le_conn_initiating_assert

See merge request idf/esp-idf!2595
2018-06-27 08:12:49 +08:00
d096cac97d Merge branch 'docs/update_resources.rst' into 'master'
docs/update_resources.rst

See merge request idf/esp-idf!2532
2018-06-27 08:09:57 +08:00
e9029fd8de Merge branch 'docs/esp32-devkitv-v4_updates' into 'master'
Renamed ESP-WROOM-32 to ESP32-WROOM-32/D/U including links to data sheets,…

See merge request idf/esp-idf!2567
2018-06-27 07:29:52 +08:00
c4eff744b3 Fixed link to documentation and updated some wording 2018-06-26 18:28:15 +02:00
b101e118f2 Renamed ESP-WROOM-32 to ESP32-WROOM-32/D/U including links to data sheets, reflected upcoming ESP32-SOLO-1 as one of options for ESP32-DevKitC, provided updated schematics and notes on C15. 2018-06-26 18:08:47 +02:00
70a2160f2c Merge branch 'docs/sdio_slave_protocol_comb' into 'master'
doc(sdio_slave): add some information of slave protocol

See merge request idf/esp-idf!2598
2018-06-26 19:36:08 +08:00
7ff84d94aa component/bt: Fix some hid bugs
1. Property of HID Information is Read
2. Property of HID Control Point is WriteWithoutResponse
2018-06-26 17:48:07 +08:00
152a060425 fix: response failed when set a large response data
set the last parameter of `coap_pdu_init`, from size to COAP_MAX_PDU_SIZE
refer to https://github.com/obgm/libcoap.git/examples/contiki/coap-observer.c settings -> COAP_DEFAULT_MTU

close https://ezredmine.espressif.cn:8765/issues/23207
2018-06-26 17:13:25 +08:00
a698035fa9 Merge branch 'mesh/bugfix' into 'master'
mesh: update libs

See merge request idf/esp-idf!2580
2018-06-26 17:06:19 +08:00
2074d36d43 doc: Clarify some Eclipse setup steps 2018-06-26 17:34:29 +10:00
1878109a7f bugfix: fix pcnt case "PCNT interrupt method test(control IO is high)" 2018-06-26 13:35:14 +08:00
c17c0a2dc5 Update eclipse-setup-windows.rst 2018-06-26 13:19:14 +08:00
6a1250cf19 Update eclipse-setup.rst 2018-06-26 13:15:13 +08:00
fe7647936a Update eclipse-setup-windows.rst 2018-06-26 13:13:08 +08:00
d57649aed1 Update eclipse-setup-windows.rst according to https://gitlab.espressif.cn:6688/idf/esp-idf/merge_requests/2617. 2018-06-26 12:55:34 +08:00
0a033b5e05 Update eclipse-setup.rst according to https://gitlab.espressif.cn:6688/idf/esp-idf/merge_requests/2617 2018-06-26 12:54:15 +08:00
75dc2f5800 doc: Fix Build Output Parser command pattern to include C++ correctly
Previously only C files had build output correctly parsed.

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

May also relate to:
https://github.com/espressif/esp-idf/issues/529
https://github.com/espressif/esp-idf/issues/17
2018-06-26 13:47:14 +10:00
e1bcd6ba0f component/bt: add 1 slot margin to program the 1st master Tx event during BLE connection
this will resolve the issue of failure of BLE connection stress test with sleep enabled
2018-06-26 11:10:47 +08:00
9223639010 stop main thread when one failed 2018-06-26 11:02:23 +08:00
68ff628927 mesh: update libs
1. add APIs to set/get announce interval values.
2. add API to enable/disable the min rate to 6Mbps for data packages.
3. add APIs to set/get RSSI threshold values.
4. fix ap_loss.
2018-06-25 21:47:53 +08:00
aaf12390eb Merge branch 'feature/btdm_controller_to_host_flow_control' into 'master'
component/bt: Add Controller to Host Flow Control

See merge request idf/esp-idf!2493
2018-06-25 20:33:21 +08:00
6dd786c74d Merge branch 'bugfix/btdm_slave_can_not_receive_long_packets_in_smp' into 'master'
Component/bt: fix slave can not receive long packets in smp

See merge request idf/esp-idf!2586
2018-06-25 20:28:27 +08:00
ee9db0c76a Component/bt: modify service uuid of ble_sec_gatts demo 2018-06-25 16:04:20 +08:00
7e47d397fa CI: add stage host_test:
1. Add `host_test` stage for test jobs running on host.
2. Rename stage `test` to `integration_test`.
2018-06-25 15:20:58 +08:00
aeaa480a85 CI: minor optimize of CI config file:
1. set shorter expire time for artifacts
2. set dependency for example test jobs, to limit the artifacts it downloads
2018-06-25 15:20:51 +08:00
fe076f5cb9 doc(sdio_slave): add some information of slave protocol 2018-06-25 06:55:19 +00:00
86d6c09387 Merge branch 'bugfix/esp_err_name_idf_path' into 'master'
docs: fix error code reference build issue

See merge request idf/esp-idf!2587
2018-06-25 13:41:17 +08:00
f525c9ef96 Merge branch 'feature/move_to_soc_rtc_gpio_desc' into 'master'
soc: Fix check_long_hold_gpio and move def to soc

See merge request idf/esp-idf!2550
2018-06-25 12:33:27 +08:00
8676830e61 fix(spi_master): allow to use cs_ena_pretrans in full duplex mode without command and address phases 2018-06-25 04:30:14 +00:00
1cd9949f2d Merge branch 'bugfix/assert' into 'master'
assert: Fix. Move useful functions from wrapped assert functions

See merge request idf/esp-idf!2599
2018-06-25 11:02:42 +08:00
3a3a12d48d Merge branch 'bugfix/app_partition_fallback' into 'master'
partition_table: Add parttool.py fallback option, some small cleanups

See merge request idf/esp-idf!2593
2018-06-25 08:43:42 +08:00
808c23af89 CI: remove test report stage:
Test report is not used as expected:

1. we rarely download and use test report
2. current test report method doesn't handle large amount data well,
   need to be replaced by other methods

Test report also make test jobs allow to fail. It breaks the
original flow of Gitlab CI and make user confused.
2018-06-24 13:58:27 +08:00
899fa2dc55 assert: Fix. Move useful functions from wrapped assert functions
Moved useful functions from wrapped assert functions, because option `CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED=y` will remove this functions.

Closes https://github.com/espressif/esp-idf/issues/2068
2018-06-22 15:17:55 +05:00
2469e90953 Component/bt: fix slave can not receive long packets in smp 2018-06-22 18:10:58 +08:00
8a7e112a72 Merge branch 'bugfix/read_rssi' into 'master'
bt : fix read rssi conflict when in dual mode

See merge request idf/esp-idf!2592
2018-06-22 17:19:23 +08:00
0a02d824fc partition_table: Warn if the partition table name doesn't match type & subtype 2018-06-22 17:51:34 +10:00
af42165b36 Merge branch 'bugfix/btdm_modify_throught_demo_default_config' into 'master'
Component/bt: modify throughput demo default config

See merge request idf/esp-idf!2590
2018-06-22 15:24:02 +08:00
10e8e22558 driver(mcpwm): Fix mcpwm api in mcpwm.c mismatch with mcpwm.h bug. 2018-06-22 12:26:43 +08:00
32da455384 soc: Fix check_long_hold_gpio and move def to soc
Fix factory_reset_pin init as input
Move definition a structure rtc_gpio_desc to soc

Closes https://github.com/espressif/esp-idf/issues/2030
2018-06-22 09:20:27 +05:00
29b7d4e916 component/bt: Fix bug of BT and BLE remove bond device
1. esp_ble_remove_bond_device will only remove BLE bond key and disconnect BLE device.
2. esp_bt_gap_remove_bond_device  will only remove BT bond key and disconnect BT device.
2018-06-22 11:54:40 +08:00
e3d3ed5a06 bt : fix read rssi conflict when in dual mode 2018-06-22 11:16:16 +08:00
6acf28db90 gen_esp32part: Fix input/output handling, regression when Python 3 was supported
Also remove misleading help about using stdin (was broken) and --display argument (doesn't exist).
2018-06-22 11:27:09 +10:00
05fe65c7d9 partition_table: Use names not numeric values in default OTA example partition 2018-06-22 11:15:41 +10:00
077469c823 partition_table: Support same fallback logic as bootloader for default boot partition
Generates correct "make flash" command even when partition table has no factory partition.

Also adds unit tests for parttool.py

Closes https://github.com/espressif/esp-idf/issues/2086
2018-06-22 11:14:22 +10:00
9d1cc00e54 Merge branch 'test/add_mesh_test_cases' into 'master'
test: add mesh basic function test cases

See merge request idf/esp-idf!2330
2018-06-21 22:55:56 +08:00
4aae691519 Component/bt: modify throughput demo default config 2018-06-21 20:48:20 +08:00
4b0087a387 Merge branch 'bugfix/mdns_service_limit' into 'master'
fix(mdns): add the maximum number of services

See merge request idf/esp-idf!2559
2018-06-21 20:32:06 +08:00
012415c9f8 component/bt: Fix bug: Respond with the Error Response when receiving a request that it does not support 2018-06-21 20:20:21 +08:00
4df08f9815 Merge branch 'bugfix/wifi_support_null_mode_again' into 'master'
support WiFi null mode again

See merge request idf/esp-idf!2577
2018-06-21 15:25:45 +08:00
858cfc2950 esp_err_to_name.py: guess IDF_PATH if not set in environement
Fixes the issue that esp_err_to_name.py would fail when called in
documentation build process, when there was no IDF_PATH set.
2018-06-21 15:22:56 +08:00
8c87df538e docs: conf.py: check return code when calling os.system
Several calls were made but results were not checked, obfuscating the
errors.
2018-06-21 15:22:56 +08:00
41b57d35c8 Component/bt: delete deprecated files 2018-06-21 06:07:21 +00:00
75d732887b Merge branch 'doc/examples_guide' into 'master'
docs: Add "Creating Examples" docs page, template example README

See merge request idf/esp-idf!2536
2018-06-21 13:59:44 +08:00
3cd22cb1ef Merge branch 'bugfix/heap_int_overflow' into 'master'
heap: Add integer overflow checks

See merge request idf/esp-idf!2568
2018-06-21 13:58:08 +08:00
99b075b28a Merge branch 'example/sdio_example' into 'master'
example(sdio): example to use sdmmc host to do SDIO communication with SDIO slave

See merge request idf/esp-idf!1946
2018-06-21 13:55:23 +08:00
df816f4940 lwip: Fix leak when accept() fails due to max socket limit
As reported https://esp32.com/viewtopic.php?f=14&t=6171

event_callback() in sockets.c calls conn->socket-- to register
activity on a netconn which may not have any socket yet,
so any socket value < 0 indicates "no controlling socket"
for the netconn.
2018-06-21 15:22:48 +10:00
de8a735a7a component/bt: Add Controller to Host Flow Control 2018-06-21 11:44:40 +08:00
b7d02f7b67 Merge branch 'bugfix/btdm_k_mem_assert_bug' into 'master'
component/bt: Fix the bug of when operating the list on interrupt function,…

See merge request idf/esp-idf!2575
2018-06-21 11:15:11 +08:00
ba458c69cf fix(mdns): add the maximum number of services 2018-06-21 10:31:09 +08:00
b47c8fcbf7 Merge branch 'bugfix/fix_http_client_header_bug' into 'master'
esp_http_client: Fix content-type header overwritten by esp_http_client_set_post_field

See merge request idf/esp-idf!2552
2018-06-21 08:10:13 +08:00
770e848c1f Merge branch 'test/driver_pcnt' into 'master'
test: add pcnt test cases

See merge request idf/esp-idf!1930
2018-06-20 18:31:24 +08:00
d61ae91fef support WiFi null mode again 2018-06-20 16:45:30 +08:00
90345050b2 example(sdio): example to use sdmmc host to do SDIO communication with SDIO slave 2018-06-20 07:00:05 +00:00
8ab87a6a87 chore(sdio_slave): format source files 2018-06-20 07:00:05 +00:00
3238c6f968 test: components/driver: pcnt case 2018-06-20 06:00:26 +00:00
baa0b8547c test: add mesh basic function test cases 2018-06-20 05:59:54 +00:00
4b91c82cc4 Merge branch 'feat/sdio_pullup' into 'master'
feature(sdio): add features to make SDIO slave compatible with more devkits

See merge request idf/esp-idf!2454
2018-06-20 13:58:56 +08:00
9ae3df7ec2 esp_http_client: Fix content-type header overwritten by esp_http_client_set_post_field
Also, references of non-existent function `esp_http_client_finalize_open` is removed
from `esp_http_client` documentation.

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

Closes https://github.com/espressif/esp-idf/issues/2040
2018-06-20 10:49:26 +05:30
c1fdd45001 Merge branch 'bugfix/fix_touch_pad_can_not_wake_up' into 'master'
bugfix(touch pad): modify deep-sleep example and add note for sleep api

See merge request idf/esp-idf!2553
2018-06-20 11:51:46 +08:00
9a0d57b90b bugfix(touch pad): modify deep-sleep example and add note for sleep api.
Closes https://github.com/espressif/esp-idf/issues/2052
2018-06-20 10:57:26 +08:00
e3a31302ef Merge branch 'doc/use_docs_espressif_com' into 'master'
docs: Switch base URL from esp-idf.readthedocs.io to docs.espressif.com

See merge request idf/esp-idf!2569
2018-06-20 07:32:11 +08:00
fd88d6d89c heap: Add integer overflow checks 2018-06-19 23:31:37 +00:00
e7faa1d851 Merge branch 'bugfix/cmake_idf_path' into 'feature/cmake'
cmake: Fix issues when IDF_PATH is not set in environment

See merge request idf/esp-idf!2557
2018-06-20 07:30:47 +08:00
225c4371c1 component/bt: Fix the bug of when operating the list on interrupt function, there is no lock protection. 2018-06-19 21:01:50 +08:00
797340f7f8 idf_monitor: Fix console performance
51e42d8e92
introduced filtering options which handles the last (unterminated) line
with a delay. This introduced poor performance for console applications
when the user interacts with the ESP32 device in the same line because
there is an artificial delay for each key-press.

bb152030a0
decreased the delay but there are still delays for each key-presses.

The current fix makes only one delay per line instead of each
key-presses. When an unterminated line is detected then no more
"delayed" print is used for the given line.

Fixes https://github.com/espressif/esp-idf/issues/2054
2018-06-19 13:29:57 +02:00
d0b8f2865f docs: Switch base URL from esp-idf.readthedocs.io to docs.espressif.com 2018-06-19 11:23:33 +00:00
7933b75416 Merge branch 'bugfix/ESP_PARTITION_TABLE_OFFSET' into 'master'
spi_flash: Fix error unit tests on host

See merge request idf/esp-idf!2573
2018-06-19 19:13:30 +08:00
17dac0d273 spi_flash: Fix error unit tests on host
IDF had two defines ESP_PARTITION_TABLE_OFFSET and ESP_PARTITION_TABLE_ADDR. They were the same and equal by 0x8000.
A define ESP_PARTITION_TABLE_ADDR was removed from IDF.
A define ESP_PARTITION_TABLE_OFFSET depends on option CONFIG_PARTITION_TABLE_OFFSET in Kconfig.

Now using only #define ESP_PARTITION_TABLE_OFFSET CONFIG_PARTITION_TABLE_OFFSET
2018-06-19 14:30:25 +05:00
8956f35be5 Merge branch 'test/driver_ledc' into 'master'
test: add ledc test cases

See merge request idf/esp-idf!1782
2018-06-19 15:14:16 +08:00
73f6fb9fe7 Merge branch 'feature/spi_functions_in_iram' into 'master'
feature(spi_master): allow to place functions into IRAM to get higher efficiency

See merge request idf/esp-idf!2538
2018-06-19 07:25:12 +08:00
339d381019 test: components/driver: ledc case 2018-06-19 02:00:42 +08:00
bf10447b82 cmake: Fix issues when IDF_PATH is not set in environment
Support cases where IDF_PATH may be passed in on the cmake command line,
or inferred from a (hardcoded absolute or relative) path to project.cmake
2018-06-18 14:48:03 +10:00
43b6c76bba Merge branch 'feature/expansion_space_for_bootloader' into 'master'
partition_table: Moving to custom offset

See merge request idf/esp-idf!2263
2018-06-18 12:34:53 +08:00
86148a740b Merge branch 'feature/fatfs_without_wl' into 'master'
FATFS support without wear levelling

See merge request idf/esp-idf!2526
2018-06-18 12:26:02 +08:00
1325dff821 Merge branch 'docs/spi_timing_wavedrom' into 'master'
docs(spi_master): fix wavedrom image and comment mistake

See merge request idf/esp-idf!2563
2018-06-18 12:13:31 +08:00
0e71cdc097 Merge branch 'mesh/bugfix_osi' into 'master'
mesh: update mesh libs

See merge request idf/esp-idf!2524
2018-06-17 18:56:52 +08:00
fd7b794e81 FATFS support without wear levelling
This change allows readonly FATFS to be mounted without wear levelling
support. This will provide the customers a simple way to mount FATFS images
generated on host and flashed onto the chip during factory provisioning.
Since NVS encryption is not supported yet and NVS entry size is limited,
the change will provide an easy alternative for securing the provisioning data
by just marking FATFS parition as encrypted.
2018-06-16 16:02:35 +08:00
zwj
c9aac643e3 component/bt: fix stop adv error in dual core 2018-06-15 20:43:10 +08:00
0dd750af1a mesh: update mesh libs
1. rename example internal_transceiver to internal_communication
2. bugfix
3. Closes https://github.com/espressif/esp-idf/issues/2014
2018-06-15 20:34:49 +08:00
9377575415 docs(spi_master): fix wavedrom image and comment mistake 2018-06-15 17:38:27 +08:00
ac8bd0d637 Merge branch 'bugfix/https_redirect_example_test' into 'master'
esp_http_client example test: Increase timeout when redirecting to HTTPS

See merge request idf/esp-idf!2558
2018-06-15 17:18:26 +08:00
4e243fb1c1 Merge branch 'doc/error_handling' into 'master'
docs: add information on error handling

See merge request idf/esp-idf!2539
2018-06-15 16:55:33 +08:00
efd16673bc docs: add pages about error handling 2018-06-15 15:53:23 +08:00
d9f8311b9d docs: add error codes reference 2018-06-15 15:49:24 +08:00
5e0a3d99e8 Kconfig: split out compiler options, add them to reference 2018-06-15 15:49:23 +08:00
2f7d327978 panic: remove extra newline 2018-06-15 15:49:23 +08:00
6f40b528fa esp32: esp_err_to_name_r: print error code as hex and decimal 2018-06-15 15:49:23 +08:00
6d6cff03fb esp_http_client example test: Increase timeout when redirecting to HTTPS 2018-06-15 16:33:37 +10:00
41095f8466 Merge branch 'bugfix/ulp_doc_insn_time' into 'master'
docs/ulp: fix instruction fetch and execution times

See merge request idf/esp-idf!1979
2018-06-15 11:50:14 +08:00
4056d1e2bf Merge branch 'bugfix/tw23325_replace_WLOGE_to_printf_when_wifi_not_init' into 'master'
WLOGE/WLOGW/WLOGI/WLOGD do anything when wifi is not initialized

See merge request idf/esp-idf!2554
2018-06-15 11:31:02 +08:00
9a55b42f08 Merge branch 'bugfix/tw22828_fix_tcp_bug_when_wifi_disconnect' into 'master'
fix the bug that TCP connections don't abort when IP changed

See merge request idf/esp-idf!2521
2018-06-15 08:03:06 +08:00
9c23b8e596 feature(spi_master): allow to place functions into IRAM to get higher efficiency 2018-06-14 20:22:40 +08:00
b1b1257476 docs/ulp: fix instruction fetch and execution times 2018-06-14 19:42:31 +08:00
bf78d3c4b1 WLOGE, WLOGW, WLOGI, WLOGD do anything when wifi is not initialized 2018-06-14 19:30:04 +08:00
589e8db4dd Merge branch 'bugfix/spi_gpio_deinit' into 'master'
fix(spi): Fix several init/deinit issues of spi pins

See merge request idf/esp-idf!2522
2018-06-14 19:21:34 +08:00
8674a34fd6 Merge branch 'bugfix/ext_wakeup_input_enable' into 'master'
sleep: make sure input enable is set for EXT0/EXT1 wakeup

See merge request idf/esp-idf!2542
2018-06-14 19:03:01 +08:00
b5f4bf922f fix the bug that TCP connections don't abort when IP changed 2018-06-14 16:56:39 +08:00
768f880b04 Merge branch 'bugfix/wifi_correct_modem_sleep_api_description' into 'master'
correct modem sleep API description

See merge request idf/esp-idf!2548
2018-06-14 15:50:08 +08:00
54d882101c Merge branch 'bugfix/fix_two_times_full_calibration' into 'master'
esp32: fix the bug that the first two reboots do full calibration

See merge request idf/esp-idf!2540
2018-06-14 15:49:03 +08:00
0b16ed644e Merge branch 'bugfix/fix_console_performance' into 'master'
idf_monitor: Fix the console performance issue

See merge request idf/esp-idf!2547
2018-06-14 15:09:20 +08:00
df4e227855 docs: Add "Creating Examples" docs page, template example README 2018-06-14 16:49:22 +10:00
c77f84e788 Merge branch 'feature/fs_truncate_support' into 'master'
FATFS truncate support

See merge request idf/esp-idf!2541
2018-06-14 13:56:39 +08:00
59ab2136e8 Merge branch 'doc/kconfig_item' into 'master'
doc: fix the level inconsistent issue in Kconfig document

See merge request idf/esp-idf!2460
2018-06-14 12:51:50 +08:00
85b08684e3 doc(sdio_slave): add descriptions about conflicts on MTDI pin 2018-06-14 12:04:23 +08:00
9b1f2df900 fix(sdio_slave): fix the intr_recv issue that trigger receiving too fast cause assertion failed.
also fix a race risk issue when recycle receiving buffers.
2018-06-14 12:04:23 +08:00
5b37a96ddc feature(sdio): allow to enable internal pullups of the SDIO host and slave as a debug feature
NOTE: the internal pullups are not totally reliable, please do add external pullups on your bus.
2018-06-14 12:04:22 +08:00
45d1c9207c bugfix(spi): resolve the glitch that happens during initialization 2018-06-14 11:29:16 +08:00
77077196fd fix(spi): reset gpios that used by spi when deinited 2018-06-14 11:29:15 +08:00
ebfda40b7c refactor(spi): move pin information into soc folder 2018-06-14 11:29:15 +08:00
ea711f2ee9 vfs, fatfs: Add file truncate for fatfs 2018-06-14 06:37:21 +08:00
e1a6e71486 Merge branch 'test/driver_rmt' into 'master'
test: add rmt test cases

See merge request idf/esp-idf!1797
2018-06-13 22:31:11 +08:00
a4581ff404 Merge branch 'test/driver_timer' into 'master'
test: add driver timer test cases

See merge request idf/esp-idf!1785
2018-06-13 22:28:17 +08:00
5c6473245f test: add driver/rmt test case 2018-06-13 18:10:09 +08:00
6e9070b6d9 correct modem sleep API description 2018-06-13 15:44:59 +08:00
17200f484e Merge branch 'test/driver_sigmadelta' into 'master'
test: add sigmadelta test

See merge request idf/esp-idf!1780
2018-06-13 15:19:35 +08:00
5a33f5150c Merge branch 'test/driver_gpio' into 'master'
test: add gpio test cases

See merge request idf/esp-idf!1778
2018-06-13 15:02:43 +08:00
bb152030a0 Fix the console performance issue
The IDF monitor waits for one second before printing the last
unterminated line. This is necessary for the correct filtering.
However, this causes poor performance, for example, in the case of the
system/console example.

This fix reduces the waiting time which improves the response time of
the console example and doesn't seem to influence the monitor filter.

Closes https://github.com/espressif/esp-idf/issues/2054
2018-06-13 08:05:31 +02:00
8e7dfb230f Merge branch 'bugfix/crosscore_handle_yield_iram' into 'master'
esp32: Move esp_crosscore_isr_handle_yield() to IRAM

See merge request idf/esp-idf!2544
2018-06-13 11:54:04 +08:00
de848a5150 test: driver/sigmadelta test case 2018-06-13 10:15:06 +08:00
0837eb4c2e test: components/driver: timer case 2018-06-13 01:39:07 +00:00
f6442abdeb esp32: Move esp_crosscore_isr_handle_yield() to IRAM
Also adds a hint to inline, as this is only called in one place
it seems like a natural candidate...

Closes https://github.com/espressif/esp-idf/issues/2055
2018-06-13 11:36:15 +10:00
0e501e5edd Merge branch 'bugfix/bt_rfcomm_pr1923' into 'master'
bt: PORT_WriteDataCO: fixed a bug, reduced heap memory allocation

See merge request idf/esp-idf!2511
2018-06-13 08:41:16 +08:00
3a71ae8595 bt: PORT_WriteDataCO: fixed a bug, reduced heap memory allocation
* a missing pointer increment caused error, if available was > 0 after the first iteration of while(available) loop.
* changed memory allocation strategy from large fixed size (RFCOMM_DATA_BUF_SIZE) to just the needed
  size, which will be below MTU

Cherry-picked from https://github.com/espressif/esp-idf/pull/1923/
2018-06-13 09:52:02 +10:00
e33ec5ccf4 Merge branch 'bugfix/btdm_tx_power_value' into 'master'
fix bluetooth(dual-mode) tx power value

See merge request idf/esp-idf!2503
2018-06-13 07:43:13 +08:00
785e9eeb36 Merge branch 'bugfix/esp_timer_set_alarm' into 'master'
esp_timer: remove busy loop in esp_timer_impl_set_alarm

See merge request idf/esp-idf!2436
2018-06-13 07:39:34 +08:00
4359d5985e sleep: make sure input enable is set for EXT0/EXT1 wakeup
Since commit 94250e4, EXT0 wakeup mechanism, when wakeup level was set
to 0, started waking up chip immediately after entering deep sleep.
This failure was triggered in that commit by a change of
RTC_CNTL_MIN_SLP_VAL (i.e. minimum time in sleep mode until wakeup
can happen) from 128 cycles to 2 cycles.

The reason for this behaviour is related to the way input enable (IE)
signal going into an RTC pad is obtained:

    PAD_IE = (SLP_SEL) ? SLP_IE & CHIP_SLEEP : IE,

where SLP_IE, SLP_SEL, and IE are bits of an RTC_IO register related
to the given pad. CHIP_SLEEP is the signal indicating that chip has
entered sleep mode.

The code in prepare_ext{0,1}_wakeup did not enable IE, but did enable
SLP_SEL and SLP_IE. This meant that until CHIP_SLEEP went high, PAD_IE
was 0, hence the input from the pad read 0 even if external signal
was 1. CHIP_SLEEP went high on the 2nd cycle of sleep. So when
RTC_CNTL_MIN_SLP_VAL was set to 2, the input signal from the pad was
latched as 0 at the moment when CHIP_SLEEP went high, causing EXT0
wakeup with level 0 to trigger.

This commit changes the way PAD_IE is enabled: SLP_SEL and SLP_IE are
no longer used, and IE is set to 1. If EXT0 wakeup is used, RTC_IO is
not powered down, so IE signal stays 1 both before CHIP_SLEEP goes
high and after. If EXT1 wakeup is used, RTC_IO may be powered down.
However prepare_ext1_wakeup enables Hold on the pad, locking states
of all the control signals, including IE.

Closes https://github.com/espressif/esp-idf/issues/1931
Closes https://github.com/espressif/esp-idf/issues/2043
2018-06-12 20:25:15 +08:00
294a4bd1f4 fix bluetootm(dual-mode) tx power value 2018-06-12 19:18:47 +08:00
e5717e365f test: add driver/gpio test case 2018-06-12 19:04:30 +08:00
7aa7b35a95 Merge branch 'bugfix/tw22485_dhcp_offer_mtu' into 'master'
modify dhcp offer MTU to 1500

See merge request idf/esp-idf!2461
2018-06-12 16:32:26 +08:00
fc72d53c71 esp32: fix the bug that the first two reboots do full calibration
If the NVS is erased, the first two reboots will do full calibration.
This commit is to fix this issue and only need to do full calibration once.
2018-06-12 15:51:51 +08:00
4eda1b7a25 Merge branch 'bugfix/fixes_for_building_with_amazon_freertos' into 'master'
Fixes for building with amazon freertos

See merge request idf/esp-idf!2523
2018-06-12 14:47:34 +08:00
4e43c920d8 freertos: make task{ENTER/EXIT} macros deprecated for external use
Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-06-12 11:19:39 +05:30
eef8d0f7ed Resolve required include header dependencies in component itself
Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-06-12 11:19:39 +05:30
636485db8e vfs: change task{ENTER/EXIT}_CRITICAL with port{ENTER/EXIT}_CRITICAL
Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-06-12 11:19:39 +05:30
f4d09506ad Merge branch 'feature/unit_test_config_components' into 'master'
unit-test-app: allow building subset of tests for a configuration

See merge request idf/esp-idf!2331
2018-06-12 10:01:42 +08:00
7cc7c8a94c Merge branch 'feature/microecc_1_0' into 'master'
micro-ecc: update to v1.0

See merge request idf/esp-idf!2534
2018-06-11 23:32:32 +08:00
7663782e8d unity: allow test task stack size to be configured 2018-06-11 23:26:56 +08:00
b2f498f7da build: allow EXCLUDE_COMPONENTS to contain quotes
'dequote' macro can’t be used at this point yet, use subst directly.
Also prevent EXCLUDE_COMPONENTS from being passed to bootloader build.
2018-06-11 23:26:56 +08:00
9b1876a458 unit-test-app: allow specifying subset of tests for configuration
For some test configurations, not all tests need to be run. This
change allows adding a comment in the configuration file of the
following form:

unit-test-app makefile will use it to determine which components to
build. If the comment is not present, all components will be built
(TESTS_ALL=1).

Also add test configuration for libsodium. It is a separate test
configuration due to the large binary size generated when building
libsodium tests.
2018-06-11 23:26:55 +08:00
3e64318364 Merge branch 'bugfix/performance_tests' into 'master'
test: Tweaks to reduce variation in CI unit tests

See merge request idf/esp-idf!2529
2018-06-11 23:20:45 +08:00
70eed4c284 Merge branch 'docs/update_eclipse-setup' into 'master'
Docs/update_eclipse-setup

See merge request idf/esp-idf!2528
2018-06-11 23:20:24 +08:00
c0ab42a62a Merge branch 'bugfix/ci_remove_stale_submodules' into 'master'
ci: remove stale submodules after checkout

See merge request idf/esp-idf!2533
2018-06-11 12:26:47 +08:00
84f78110dd Merge branch 'feature/esp_timer_example' into 'master'
examples: add esp_timer example

See merge request idf/esp-idf!2494
2018-06-11 11:44:45 +08:00
9ea947cd8a Merge branch 'bugfix/tw23171_fix_espnow_bug_when_add_node_in_AP_STA_mode' into 'master'
fix espnow bug when add node in AP+STA mode

See merge request idf/esp-idf!2518
2018-06-11 11:39:01 +08:00
b4e836eb97 esp_timer: test for monotonic values of esp_timer_get_timer in CI
Reduce test time by increasing overflow rate, make test more robust.
2018-06-11 02:37:19 +00:00
49d200aaa7 esp_timer: add test for esp_timer_impl_set_alarm
Ref https://github.com/espressif/esp-idf/issues/1891
2018-06-11 02:37:19 +00:00
141e51b468 esp_timer: reduce overflow value in unit tests
This allows testing for race conditions which occur near timer
overflow point more effectively.
2018-06-11 02:37:19 +00:00
125bbf0882 esp_timer: don’t busy loop in esp_timer_impl_set_alarm
Previously the loop in esp_timer_impl_set_alarm was necessary to catch
the case when timer count wraps around (goes from 2^32 - 1 to 0).
Since ALARM_OVERFLOW_VAL was reduced from 2^32 - 1 to 0xefffffff,
this is no longer necessary.

Fixes https://github.com/espressif/esp-idf/issues/1891
2018-06-11 02:37:19 +00:00
03c2678aa6 Merge branch 'bugfix/btdm_fix_include_service_start_handle_error' into 'master'
Component/bt: fix include service start handle error

See merge request idf/esp-idf!2525
2018-06-11 10:36:36 +08:00
7111cdb934 ci: remove stale submodules after checkout
When ‘fetch’ strategy is used, Gitlab removes untracked files before
checking out new revision. However if the new revision doesn’t
include some of the submodules which were present in the old
revision, such submodule directories would not be removed by the
checkout. This extra step ensures that these stale submodules are
removed.
2018-06-10 22:22:26 +08:00
43c779e519 micro-ecc: update to v1.0 2018-06-10 21:20:55 +08:00
3e0ac4db79 partition_table: Expanding the space under the bootloader
Allows you to move the partition table, it gives more space for the bootloader.
Added a new utility - parttool.py. This utility can search for the offset and/or size of the partitions by name and type/subtype. Use for getting APP_OFFSET and PHY_DATA_OFFSET.
The linker(esp32.bootloader.ld) made changes that allow you to write a custom bootloader code more.

TW14125
2018-06-08 18:47:29 +05:00
03d78e7afb Merge branch 'feature/Add_noinit_rtc_noinit_sections' into 'master'
esp32: Add .noinit and .rtc_noinit sections to the linker script

See merge request idf/esp-idf!1996
2018-06-08 16:01:30 +08:00
85e88cd0eb Component/bt: fix include service start handle error 2018-06-08 16:00:34 +08:00
bcd4fb9944 Merge branch 'doc/jtag_startup_command_fix' into 'master'
docs/jtag: use 'flushregs' instead of 'x $a1=0' in gdbinit

See merge request idf/esp-idf!2520
2018-06-08 15:15:29 +08:00
dc30603242 Translate the resources.rst Merges https://github.com/espressif/esp-idf/pull/1979 2018-06-08 14:58:36 +08:00
87077a5478 test: Tweaks to reduce variation in CI unit tests
spi test: Prime the flash cache before each test to minimise flash cache misses.

VFS performance test: Increase the number of runs to minimise influence of an isolated bad run.
2018-06-08 14:42:44 +10:00
f47af6185d docs/jtag: use ‘flushregs’ instead of ‘x $a1=0” in gdbinit
The old command caused was incorrect (x is “examine”, not “execute”)
and caused GDB register update only by chance. This replaces it with
“flushregs” command which purpose is exactly that — force GDB to
fetch registers from the remote.
2018-06-08 11:45:46 +08:00
40596fa55a Merge branch 'feature/host_side_storage_components' into 'master'
Runnable FS components on host

See merge request idf/esp-idf!2431
2018-06-08 11:42:37 +08:00
f5f200ee30 Update eclipse-setup.rst
Ref https://github.com/espressif/esp-idf/pull/1990
2018-06-08 11:01:25 +08:00
f9a3368f28 Update eclipse-setup.rst 2018-06-08 11:00:29 +08:00
c99a30a167 Merge branch 'bugfix/wakeup_from_deep_sleep' into 'master'
esp32: Fix not the right time spent in a deep sleep

See merge request idf/esp-idf!2501
2018-06-08 10:40:47 +08:00
c8d3c6a494 Merge branch 'feature/monitor_filter_output' into 'master'
idf_monitor: add support for filtering options

See merge request idf/esp-idf!2486
2018-06-08 08:09:40 +08:00
be829afe6e Merge branch 'feature/cmake_confserver' into 'feature/cmake'
cmake: Add JSON configuration server for external config tool integration

See merge request idf/esp-idf!2410
2018-06-08 07:32:09 +08:00
705d42dd18 Merge branch 'bugfix/get_power_down_flags' into 'master'
sleep_mode/esp32: Fix a condition to keep power domain enabled during sleep mode

See merge request idf/esp-idf!2515
2018-06-07 20:20:13 +08:00
ab538bb9f3 Merge branch 'feat/spi_master_timing' into 'master'
feature(spi_master): fine tune the timing of spi master

See merge request idf/esp-idf!2301
2018-06-07 20:19:06 +08:00
950dd8e3e5 docs: Standardise CMake vs cmake 2018-06-07 15:18:48 +10:00
330c6a50e1 ci: Use new host_test tag 2018-06-07 14:23:08 +10:00
6065d2fd08 kconfig: Add confserver.py to expose sdkconfig to clients 2018-06-07 14:23:08 +10:00
2f5cd89833 examples: add esp_timer example 2018-06-07 11:59:36 +08:00
34401afe39 Merge branch 'feature/ci_host_test_tag' into 'master'
ci: Use new common host_test tag for host-side testing

See merge request idf/esp-idf!2514
2018-06-07 11:59:25 +08:00
1bab62a6d6 modify dhcp offer MTU to 1500 2018-06-07 10:03:26 +08:00
754cd7bd56 Merge branch 'bugfix/cmake_fixes' into 'feature/cmake'
CMake: Minor fixes

See merge request idf/esp-idf!2513
2018-06-07 09:00:27 +08:00
d7d559a489 Merge branch 'doc/api-guides_blufi' into 'master'
Doc/api guides blufi

See merge request idf/esp-idf!2376
2018-06-07 08:54:27 +08:00
4b18a50f89 Merge branch 'bugfix/adjtime_attr' into 'master'
newlib: Remove RTC_DATA_ATTR for adjtime

See merge request idf/esp-idf!2504
2018-06-07 08:25:05 +08:00
70c6f8a803 Merge branch 'bugfix/few_typos_in_docs' into 'master'
Fix few typos in documentation

See merge request idf/esp-idf!2519
2018-06-07 08:24:23 +08:00
dff1a52722 Merge branch 'bugfix/docs_ascii_art_2_blockdiag' into 'master'
Replaced ASCII art drawings with blockdiag drawings

See merge request idf/esp-idf!2243
2018-06-07 08:23:01 +08:00
713141e631 Replaced ASCII art drawings with blockdiag drawings 2018-06-06 23:27:05 +02:00
8caab13faa spi_flash: Enable flash emulation down to ROM function calls 2018-06-06 17:35:30 +00:00
c409666d4e ci: Add spiffs, fatfs host runs to CI
Adds running the fatfs, spiffs sanity check to CI.
2018-06-06 17:35:30 +00:00
e542b7a920 spiffs: Make spiffs runnable on host
Makes spiffs component runnable on host. Depends on the host library build
of flash emulator. Includes a basic sanity test of
mounting a volume, opening a file, writing to the file, reading the file,
closing the file and unmounting volume.
2018-06-06 17:35:30 +00:00
af629b3547 fatfs: Make fatfs runnable on host
Makes fatfs component runnable on host. Depends on the host library build
of wear levelling and flash emulator. Includes a basic sanity test of
mounting a volume, opening a file, writing to the file, reading the file,
closing the file and unmounting volume.
2018-06-06 17:35:30 +00:00
893003357a wl, spi_flash: Make wl API runnable on host
Makes the entirety of the wl API runnable on host. Flash emulator
is separated into spi_flash component directory to be reused by
other storage components.
2018-06-06 17:35:30 +00:00
7e2a3da643 esp32: Fix not the right time spent in a deep sleep
Before entering the deep sleep, the RTC and FRC counters are synchronized. Updating the boot_time.
Added a unit test for this case.
Fixed warnings for MULTIPLE_STAGES

Closes https://github.com/espressif/esp-idf/issues/1840
2018-06-06 18:59:30 +05:00
5a9fc19f38 bt: fix typo in documentation
Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-06-06 18:22:32 +05:30
6e48e52478 docs: fix flash_encryption key generation command
Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-06-06 18:21:00 +05:30
5fec589c38 fix espnow bug when add node in AP+STA mode 2018-06-06 20:44:19 +08:00
28507920c8 sleep_mode/esp32: Fix a condition to keep power domain enabled during sleep mode 2018-06-06 17:35:21 +05:00
8955db6d29 Merge branch 'bugfix/btdm_fix_no_gatt_server_req_callback_warning' into 'master'
component/bt: fix the issue where no gatt server request callback warning caused…

See merge request idf/esp-idf!2502
2018-06-06 16:29:59 +08:00
a7d62fff18 Merge branch 'bugfix/btdm_fix_memory_leak' into 'master'
Component/bt: add config for gattc cache and fix memory leak

See merge request idf/esp-idf!2429
2018-06-06 16:28:15 +08:00
2ae5b41f56 ci: Use new common host_test tag for host-side testing 2018-06-06 17:20:44 +10:00
46b723e5ed cmake: Fix COMPONENT_SRCEXCLUDE functionality 2018-06-06 16:27:44 +10:00
4667fb2495 cmake: Compatibility fixes from Mahavir 2018-06-06 16:14:03 +10:00
939e5693a5 chore(spi): fix the terms of native to iomux 2018-06-06 06:08:39 +00:00
75cdbcefc7 test(spi): add test for SPI timing 2018-06-06 06:08:39 +00:00
208d993de1 test(spi_master): slightly modify the test 2018-06-06 06:08:39 +00:00
5cf7d3768d feat(spi_master): fine tune the timing of SPI 2018-06-06 06:08:39 +00:00
d441dd32ea Merge branch 'bugfix/tw20393_tcp_pcb_purge_assert_v3.1' into 'master'
lwip: fix tcp_pcb_purge assert

See merge request idf/esp-idf!2512
2018-06-06 14:02:35 +08:00
b889305c1b Update blufi.rst 2018-06-06 12:11:57 +08:00
4a25f18f21 Update blufi.rst 2018-06-06 12:05:27 +08:00
ad48c2689f Update blufi.rst 2018-06-06 11:58:46 +08:00
3a15efd3c3 Delete api-guides_blufi.png 2018-06-06 11:46:13 +08:00
6cc95809fb lwip: fix tcp_pcb_purge assert
Remove the assert in tcp_pcb_purge()
2018-06-06 10:25:01 +08:00
0b447f0003 test/fix bug refresh cache after connect 2018-06-06 02:17:06 +00:00
822dac5659 Component/bt: fix memory leak 2018-06-06 02:17:06 +00:00
3ba8461928 doc: fix the level inconsistent issue in Kconfig document 2018-06-05 10:36:18 +00:00
51e42d8e92 idf_monitor: add support for filtering options 2018-06-05 12:23:27 +02:00
b2ff235bd0 Merge branch 'bugfix/github_prs' into 'master'
Merge some small fixes from Github

See merge request idf/esp-idf!2500
2018-06-05 11:51:35 +08:00
8c5f1c866b Merge branch 'feature/cmake_update' into 'feature/cmake'
cmake: Update cmake branch from master

See merge request idf/esp-idf!2478
2018-06-05 11:51:19 +08:00
f30410113b component/bt: fix the issue where no gatt server request callback warning caused while acting as a GATTC 2018-06-05 02:41:34 +00:00
a8504b9628 docs: eclipse: Reword sentence, copy to Windows Eclipse guide also
Ref https://github.com/espressif/esp-idf/pull/1990
2018-06-05 09:53:59 +10:00
b1189f4f6a newlib: Remove RTC_DATA_ATTR for adjtime
Using RTC_DATA_ATTR in newlib leads to increased power consumption in sleep mode. (RTC SLOW MEM)
2018-06-04 15:59:22 +05:00
8a4c9d7dfb Merge branch 'doc/wifi_channel_state_information' into 'master'
add document of channel state information

See merge request idf/esp-idf!2468
2018-06-04 17:59:05 +08:00
d2d43cd52c Merge branch 'bugfix/btdm_close_sleep_default' into 'master'
Component/btdm: close BT sleep in default config

See merge request idf/esp-idf!2499
2018-06-04 17:51:42 +08:00
736e10749f correct eclipse build command
Merges https://github.com/espressif/esp-idf/pull/2024
2018-06-04 17:19:28 +10:00
5bc1bf4add Fix PartitionDefinition comparison in Python 3
Merges https://github.com/espressif/esp-idf/pull/2018
2018-06-04 17:18:41 +10:00
2a6c35c9af Update eclipse-setup.rst
This is workaround for eclipse indexer problems. When I disable that option, my problems with eclipse and header files are gone.

Merges https://github.com/espressif/esp-idf/pull/1990
2018-06-04 16:47:03 +10:00
18533346b8 Fix compile error using asm
In function 'xPortGetCoreID':
error: expected ')' before ':' token
         :"=r"(id));

Merges https://github.com/espressif/esp-idf/pull/1965
2018-06-04 16:44:35 +10:00
c83c3b64cd Add declarations of private nvs functions (nvs_*) in nvs_flash component to fix C++ -Wmissing-declarations warning
Merges https://github.com/espressif/esp-idf/pull/1956
2018-06-04 16:36:44 +10:00
e5ac96f49a Add declarations of private cxx_guard functions (__cxa_guard_*) in cxx component to fix C++ -Wmissing-declarations warning
Merges https://github.com/espressif/esp-idf/pull/1956
2018-06-04 16:36:44 +10:00
d3b0e0e3fd Unset COMPONENT_ADD_INCLUDEDIRS in cxx component to fix C++ -Wmissing-include-dirs warning
Merges https://github.com/espressif/esp-idf/pull/1956
2018-06-04 16:36:44 +10:00
27d1a5d51e Update index.rst 2018-06-04 14:24:40 +08:00
bf29c7ca57 Update index.rst 2018-06-04 14:24:10 +08:00
4232f69f98 Update blufi.rst 2018-06-04 14:22:04 +08:00
aff4696cc4 Update blufi.rst 2018-06-04 14:21:12 +08:00
0796099c29 test: filter duplicated ble adv events in test 2018-06-04 14:14:40 +08:00
ae6b47a60a Component/bt: close BT sleep in default config 2018-06-04 11:17:27 +08:00
5ed2d79572 Merge branch 'bugfix/mdns_remove_service' into 'master'
fix(mdns): fix the exception when remove one of multiple service

See merge request idf/esp-idf!2497
2018-06-04 08:39:38 +08:00
696d733eb0 fix(mdns): fix the exception when remove one of multiple service 2018-06-03 17:29:49 +08:00
f85be9f909 Merge branch 'bugfix/systemview_menu' into 'master'
fix the dependency of systemview config menu.

See merge request idf/esp-idf!2457
2018-06-01 21:52:16 +08:00
40da291d5d Merge branch 'bugfix/wifi_fix_a_few_bugs' into 'master'
Fix a few WiFi bugs

See merge request idf/esp-idf!2491
2018-06-01 18:37:50 +08:00
cd3ce46b8f Merge branch 'bugfix/a2dp_sink_fluent' into 'master'
component/bt : enlarge the A2DP SINK FRAME QUEUE SIZE to make A2DP more fluent

See merge request idf/esp-idf!2492
2018-06-01 18:34:20 +08:00
21cb7226a2 component/bt : enlarge the A2DP SINK FRAME QUEUE SIZE to make A2DP more fluent 2018-06-01 16:51:23 +08:00
28877e7868 Merge branch 'feature/esp_error_check_prints_error_text' into 'master'
ESP_ERROR_CHECK converts error code to text

See merge request idf/esp-idf!2488
2018-06-01 16:43:37 +08:00
cb9483e844 Merge branch 'bugfix/btdm_a2dp_assert_warn_after_connected' into 'master'
component/bt: Fix bug a2dp assert warn after connected

See merge request idf/esp-idf!2470
2018-06-01 15:54:05 +08:00
7d5ef3c765 add document of channel state information 2018-06-01 15:45:00 +08:00
5081714c53 Fix a few WiFi bugs
1. fix rx state parse if CSI is enabled.

2. make smartconfig channel timer thread safe.

3. fix sniffer filter mask to keep the same as IDF.
2018-06-01 14:25:43 +08:00
c04a4a8527 component/bt: Fix bug a2dp assert warn after connected 2018-06-01 10:57:22 +08:00
50252ca794 Merge branch 'bugfix/btdm_malloc_fail_lead_to_exception' into 'master'
component/bt: Fix malloc fail lead to crash

See merge request idf/esp-idf!2485
2018-06-01 10:36:36 +08:00
5ff8732950 Merge branch 'bugfix/tw22958_fix_some_bugs_introduced_by_wifi_os_adapter' into 'master'
esp32/wpa_supplicant: fix some bugs introduced by wifi os adapter

See merge request idf/esp-idf!2475
2018-06-01 10:34:04 +08:00
07acbb5664 ESP_ERROR_CHECK converts error code to text
If CONFIG_ESP_ERR_TO_NAME_LOOKUP is enabled, ESP_ERROR_CHECK
prints error message in addition to the error code.
2018-05-31 12:53:37 +02:00
a3a0b01c1b Merge branch 'bugfix/btdm_fix_ble_throughput_demo_fail' into 'master'
Component/bt: fix throughput_demo_fail

See merge request idf/esp-idf!2467
2018-05-31 18:53:01 +08:00
4afa5d0d29 esp32/wpa_supplicant: fix some bugs introduced by wifi os adapter
1. Fix the WiFi/BT coexist bug
2. Fix WPA2 enterprise example crash bug
3. Add size and version check for crypto type struct
4. Add MD5 check for crypto type header file
2018-05-31 17:09:40 +08:00
eeff0ca1fa Merge branch 'feature/xtensa_cleanup' into 'master'
xtensa: remove unused header files

See merge request idf/esp-idf!2471
2018-05-31 14:59:11 +08:00
4467b34da2 component/bt: Fix malloc fail lead to crash 2018-05-31 13:31:27 +08:00
8bb4c694ce cmake: Add COMPONENT_SRCEXCLUDE option 2018-05-31 14:46:39 +10:00
fdccc19485 cmake build system test: Fix path to sdkconfig.h 2018-05-31 14:46:39 +10:00
6b9784cc45 Merge branch 'master' into feature/cmake_update 2018-05-31 14:46:23 +10:00
834c056234 xtensa: remove unused header files 2018-05-31 02:21:36 +00:00
e764a3e671 Merge branch 'bugfix/btdm_add_makefile_for_coex_demo' into 'master'
Component/bt: add makefile for coex demo

See merge request idf/esp-idf!2477
2018-05-31 09:00:18 +08:00
212b786119 Component/bt: fix throughput_demo_fail 2018-05-30 19:58:31 +08:00
9eade73539 Merge branch 'bugfix/tw19630_fix_espnow_watchdog' into 'master'
fix espnow watchdog when modify it's config parameter

See merge request idf/esp-idf!2480
2018-05-30 19:53:52 +08:00
fbbf4b0c03 Merge branch 'bugfix/btdm_fix_start_adv' into 'master'
Component/bt: fix start adv complete event state error in dual core

See merge request idf/esp-idf!2432
2018-05-30 19:41:39 +08:00
26db749257 Component/bt: add makefile for coex demo 2018-05-30 19:33:52 +08:00
9bd38c0d86 fix espnow watchdog when modify 2018-05-30 17:19:46 +08:00
c8e848b0ff Component/bt: fix start adv 2018-05-30 17:10:51 +08:00
1b1a179f20 Merge branch 'bugfix/tw20805_fix_wpa2_enterprise_issue' into 'master'
wpa_supplicant: fix wpa2 enterprise PEAP connection issue

See merge request idf/esp-idf!2474
2018-05-30 15:51:48 +08:00
9d47f348ab Merge branch 'feature/adjtime_newlib' into 'master'
newlib: Add adjtime - makes a gradual adjustment the system clock

See merge request idf/esp-idf!2462
2018-05-30 15:00:13 +08:00
19d823c44d Merge branch 'bugfix/btdm_memleak_of_ble_set_security_param' into 'master'
component/bt: Fix mem leak of esp_ble_gap_set_security_param

See merge request idf/esp-idf!2458
2018-05-30 14:50:02 +08:00
6c89ab9839 wpa_supplicant: fix wpa2 enterprise PEAP connection issue
Closes https://github.com/espressif/esp-idf/issues/1887
2018-05-30 13:48:29 +08:00
ddff375bab Merge branch 'feature/ci_fail_on_executable_files' into 'master'
CI: check source files for executable flag

See merge request idf/esp-idf!2463
2018-05-30 11:41:06 +08:00
f5f966d91a Merge branch 'bugfix/cmake_fixes' into 'feature/cmake'
cmake: Various build system & docs fixes

See merge request idf/esp-idf!2438
2018-05-30 09:28:41 +08:00
4ea2cab208 Merge branch 'cermak_dhcpserver_fuzzer_test' into 'master'
LWIP_Fuzzer: Added AFL tests for lwip dhcpserver, client and dns

See merge request idf/esp-idf!2399
2018-05-29 22:28:43 +08:00
2c65313a72 Merge branch 'bugfix/vfs_select' into 'master'
VFS select: Bugfixes and debug output

See merge request idf/esp-idf!2459
2018-05-29 20:27:10 +08:00
cb649e452f remove executable permission from source files 2018-05-29 20:07:45 +08:00
74928b9bcb ci: check for executable flag on source files 2018-05-29 20:07:45 +08:00
ecaf234c39 VFS: fix possible memory leak in UART 2018-05-29 11:01:25 +02:00
634e8cd54b VFS: Use convenience function for safe FD_ISSET 2018-05-29 11:01:25 +02:00
15b26f8841 VFS: esp_vfs_select() needs to be callable from concurrent tasks
This fix is for compatibility with lwip_select(). It moves the lock to
UART which is the only VFS driver which is implemented and is not
"thread-safe".
2018-05-29 11:01:25 +02:00
bdbcc492cf VFS: Add debugging outputs for select() related functions 2018-05-29 11:01:25 +02:00
cfa8ed15c0 partition table: Set partition table offset via variable 2018-05-29 16:34:45 +10:00
c70f9db369 confgen: Don't write environment-loaded configuration items to sdkconfig 2018-05-29 16:34:45 +10:00
2909fc182b esptool: Remove tabs from KConfig.projbuild 2018-05-29 16:34:45 +10:00
e100acbb73 docs: Minor cleanup of getting started docs 2018-05-29 16:34:45 +10:00
2f433e4342 netif require vfs 2018-05-29 16:34:45 +10:00
580cfeaaae idf.py: Print flashing steps at the end of each build 2018-05-29 16:34:45 +10:00
955e84a3bc docs: Add some clarifications for Mac OS users 2018-05-29 16:34:45 +10:00
f6cd55d2ac config: Rename mconf to mconf-idf & conf to conf-idf
These versions of conf/mconf are forked from the upstream, and the CMake system allows mconf-idf to
be installed externally on the path. So the best option is to rename.

Includes changes to Windows installer for v1.1
2018-05-29 16:34:45 +10:00
11980a9ad4 docs: Add port argument to idf.py monitor 2018-05-29 16:34:45 +10:00
6cc5971516 docs: Add some clarification about ~/.profile 2018-05-29 16:34:45 +10:00
61aff5162c mconf: Don't print a recommendation to use 'make' if CMake build system is in use
Also add some cmake dependencies to rebuild mconf if its source files change.
2018-05-29 16:34:45 +10:00
8cf82be917 esp32: Component needs public dependency on tcpip_adapter
Because of esp_event.h

Closes https://github.com/espressif/esp-idf/issues/1954
2018-05-29 16:34:45 +10:00
ed1f4e50df cmakelists: move spi_flash to COMPONENT_REQUIRES
in the include file esp_ota_ops.h "esp_partition.h" is included.
This is from spi_flash so component that requires app_update also will need that

this fixes this error:

  In file included from ../components/esp32-homie/ota.c:11:0:
  /esp-idf/components/app_update/include/esp_ota_ops.h:22:27: fatal error: esp_partition.h: No such file or directory

Signed-off-by: Nicola Lunghi <25422924+nicola-lunghi@users.noreply.github.com>

Merges https://github.com/espressif/esp-idf/pull/1947
2018-05-29 16:34:45 +10:00
be4956fe7c docs: Add some tips about setting the Python interpreter, and a specific check in idf.py
Don't show the "Python 2 interpreter" option in menuconfig when using CMake.

This is a stop-gap until we support Python 2 & 3 together in ESP-IDF (soon).

Closes https://github.com/espressif/esp-idf/issues/1924
2018-05-29 16:34:45 +10:00
a1fac97f1a cmake: Fix set_default using value from environment
Fixes issue with idf.py passing through Python interpreter, as reported in
https://github.com/espressif/esp-idf/issues/1924
2018-05-29 16:34:45 +10:00
979568fa0b docs: Separate "build and flash" into building then flashing
Explains idf.py build as mentioned here: https://github.com/espressif/esp-idf/issues/1906#issuecomment-387557050
2018-05-29 16:34:45 +10:00
f07c1ca94f docs: Fix some Windows Command Prompt paths
Reported in https://github.com/espressif/esp-idf/issues/1906
2018-05-29 16:34:45 +10:00
cc104eb05b cmake: Add sdkconfig.h directory to include paths list not just compiler args
Also move into 'build/config/' subdir, remove creation of empty include/config dir.
2018-05-29 16:34:45 +10:00
2f4079ebb2 cmake: Hide serial port settings in menuconfig when using cmake 2018-05-29 16:34:45 +10:00
6f529cbe64 newlib: Add adjtime - makes a gradual adjustment the system clock
This function speeds up or slows down the system clock in order to make a gradual adjustment. This ensures
 that the calendar time reported by the system clock is always monotonically increasing, which might not happen
 if you simply set the clock.

The delta argument specifies a relative adjustment to be made to the clock time. If negative, the system clock is
 slowed down for a while until it has lost this much elapsed time. If positive, the system clock is speeded up for a
 while.

If the olddelta argument is not a null pointer, the adjtime function returns information about any previous time
 adjustment that has not yet completed.

The return value is 0 on success and -1 on failure.

To stop the adjustement, call the function settimeofday(current_time).
2018-05-28 17:36:04 +05:00
4c8d9278b5 component/bt: Fix mem leak of esp_ble_gap_set_security_param 2018-05-28 17:43:53 +08:00
ec0d4bd85f Merge branch 'docs/update_logtrace_readme' into 'master'
docs: Corrects OpenOCD command usage in logtrace readme

See merge request idf/esp-idf!2455
2018-05-28 17:05:02 +08:00
2ee00cc3a6 fix the dependency of systemview config menu. 2018-05-28 12:51:01 +08:00
9e09df25fb Merge branch 'bugfix/rtc_vddsdio_details' into 'master'
Fix minor VDDSDIO details

See merge request idf/esp-idf!2449
2018-05-28 08:51:02 +08:00
f1be9679d8 Merge branch 'feature/wifi_add_os_adapter_func' into 'master'
Feature/wifi add os adapter func

See merge request idf/esp-idf!2417
2018-05-26 22:06:25 +08:00
b32b93a607 Add OS adapter to WiFi driver
1.add os adapter to wifi driver
2.type of encrypt funcs not correct
2018-05-26 17:22:23 +08:00
64b56beff5 Merge branch 'bugfix/vfs_select_incorrect_reset' into 'master'
VFS select: Correct reseting of socket FDs

See merge request idf/esp-idf!2444
2018-05-25 23:22:01 +08:00
83d2a529e3 Merge branch 'bugfix/btdm_bt_err_8192' into 'master'
component/bt : fix bug that assert rwbt.c 265 8192 error

See merge request idf/esp-idf!2442
2018-05-25 23:15:05 +08:00
585df5cfdb docs: Corrects OpenOCD command usage in logtrace readme 2018-05-25 16:42:18 +03:00
e86738205d Fix redefinition of select() on platforms where ESP_PLATFORM is discarded
Ref: https://github.com/espressif/esp-idf/issues/1987
2018-05-25 13:37:43 +00:00
e6ae121f41 VFS select: Correct reseting of socket FDs
When using multiple sockets, some of them could be incorrectly removed
from the fd_sets before passing these fd_sets forward to the socket
select function.

Closes https://github.com/espressif/esp-idf/issues/1987
2018-05-25 13:37:43 +00:00
5b88d90a6c Merge branch 'feature/btdm_add_bt_ble_coex_demo' into 'master'
Component/bt: add a2dp_gatts_coex demo

See merge request idf/esp-idf!1945
2018-05-25 19:57:45 +08:00
7b96e70755 Merge branch 'bugfix/unit_test_partition_size' into 'master'
unit test app: Require 4MB flash

See merge request idf/esp-idf!2448
2018-05-25 19:39:44 +08:00
8b884c4deb Update blufi.rst 2018-05-25 15:09:34 +08:00
1001083b1b Update blufi.rst 2018-05-25 15:09:34 +08:00
ad3af2cfc1 Update blufi.rst 2018-05-25 15:09:34 +08:00
02d4168d68 Update blufi.rst 2018-05-25 15:09:34 +08:00
27e4bea699 Update blufi.rst 2018-05-25 15:09:34 +08:00
d0bf4a0e23 Update blufi.rst 2018-05-25 15:09:33 +08:00
5a3f351207 Update blufi.rst 2018-05-25 15:09:33 +08:00
27d22a7574 Update index.rst 2018-05-25 15:09:33 +08:00
0ea39a72b0 Update blufi.rst 2018-05-25 15:09:33 +08:00
b443075133 Update index.rst 2018-05-25 15:09:33 +08:00
7db69b4da3 Update blufi.rst 2018-05-25 15:09:33 +08:00
241048c9f9 Update blufi.rst 2018-05-25 15:09:33 +08:00
75021e376a Upload api-guides_blufi.png 2018-05-25 15:09:33 +08:00
dd0bbebd4a Upload blufi.rst 2018-05-25 15:09:33 +08:00
799771b3fa Upload blufi.rst 2018-05-25 15:09:33 +08:00
3e1a93e5a7 soc: rtc_vddsdio_get_config() In default configuration, VDD_SDIO LDO is always enabled
When using bootstrapping pin to enable VDD_SDIO, the internal LDO is always enabled at either 1.8V
or 3.3V.
2018-05-25 15:14:13 +10:00
d775cc4c4c soc: Fix description of rtc_config_t.tieh, add macros
Usage of TIEH was correct but description had 1.8V & 3.3V backwards.

Add macro definitions for TIEH values to improve readability.
2018-05-25 14:58:37 +10:00
10eab26854 unit test app: Require 4MB flash
PSRAM config unit tests had outgrown the 0x14000 byte allocated factory size.
2018-05-25 12:16:26 +10:00
c7bedc80c1 Merge branch 'feature/bootloader_factory_reset' into 'master'
bootloader: Add factory reset and start test app

See merge request idf/esp-idf!2291
2018-05-25 08:17:48 +08:00
5bb238dd17 Merge branch 'bugfix/disable_vfs_select' into 'master'
VFS: Optionally disable the VFS implementation of select()

See merge request idf/esp-idf!2434
2018-05-25 07:58:54 +08:00
ae10abff2f bootloader: Add factory reset and start test app
Added feature:
- reset firmware to Factory app.(by long pressing of the button)
- boot Test app. (by long pressing of the button)
- Added feature erase data partitions from factory reset.

TW10281
TW10280
2018-05-24 16:56:49 +05:00
1c2dcd78c8 Merge branch 'test/assign_ut_cases_according_to_sdkconfig' into 'master'
CI: assign ut cases according to sdkconfig

See merge request idf/esp-idf!2407
2018-05-24 19:28:03 +08:00
c03dff473b Merge branch 'docs/make_core_dump_doc_clear' into 'master'
docs: Makes core dump's documentation slightly clearer

See merge request idf/esp-idf!2433
2018-05-24 17:38:28 +08:00
5f39b58b83 component/bt : fix bug that assert rwbt.c 265 8192 error 2018-05-24 15:47:16 +08:00
b7c37024d5 Merge branch 'bugfix/btdm_fix_set_scan_params_cmd_complete_error' into 'master'
Component/bt: fix set scan params command completer error

See merge request idf/esp-idf!2430
2018-05-24 13:44:15 +08:00
1a1514b69c unit-test-app: udpate CI related part to README 2018-05-24 03:40:03 +00:00
eaedb2272e CI: remove unnecessary artifacts of assign_test 2018-05-24 03:40:03 +00:00
a68b93d6f3 tiny-test-fw: show descriptive error when test case assignment fails:
Will give hint when any job failed to assign:

```
Please add the following jobs to .gitlab-ci.yml with specific tags:
* Add job with: psram, ESP32_IDF, UT_T1_1
* Add job with: psram, ESP32_IDF, UT_T1_1
```
2018-05-24 03:40:03 +00:00
3b24bc42d2 CI: assign unit test cases according to sdkconfig:
We have built unit-test-app with different configs.
Currently we use the config name as tags to match runners.
It's not easy to add new configs (need to update tags to existed runners).

Now we'll parse required test runner tags from `sdkconfig` file.
For example, if config enables `CONFIG_SPIRAM_SUPPORT`, then it requires `psram` tag.
This will make adding new configs easier.

In this commit we change the one behavior of assign test: match keys of
cases should be exactly the same with job tags. This fixes cases select
jobs include their tags, and jobs requires those tags can't be assigned.
2018-05-24 03:40:03 +00:00
2e63a445d9 Component/bt: fix set scan params command completer error 2018-05-23 12:09:39 +00:00
358c822d6a Merge branch 'mesh/feature_manual_networking' into 'master'
Mesh/feature manual networking

See merge request idf/esp-idf!2426
2018-05-23 19:20:30 +08:00
feaa6e8a8f mesh: add manual networking function
1. add mesh_assoc_t to esp_mesh_internal.h file.
2. rename "node" to "device" in esp_mesh.h.
3. add MESH_EVENT_SCAN_DONE event.
4. add APIs esp_mesh_scan_get_ap_record() and esp_mesh_scan_get_ap_ie_len() to get scan results.
5. modify API esp_mesh_set_self_organized() by adding parameter "select_parent".
6. modify API esp_mesh_set_parent() by adding parameter "parent_mesh_id"
7. add manual networking example.
2018-05-23 18:09:12 +08:00
004bf84d8c VFS: Optionally disable the VFS implementation of select()
This allows to temporarily resolve issues like
https://github.com/espressif/esp-idf/issues/1987
while bugs are fixed in the VFS implementation of select().
2018-05-23 10:14:16 +02:00
21e085d235 Merge branch 'feature/xRingBufferCanRead_pr1672' into 'master'
freeRTOS/Re-factor ring buffers and add xRingbufferCanRead, xRingbufferCanWrite

See merge request idf/esp-idf!2214
2018-05-23 15:09:40 +08:00
c9f8470fdf Merge branch 'feature/rmt_translator' into 'master'
driver(rmt): Add API supports sending uint8_t type data

See merge request idf/esp-idf!1975
2018-05-23 07:27:14 +08:00
3fd199c54a docs: Makes core dump's documentation slightly clearer
Merges https://github.com/espressif/esp-idf/pull/1968
2018-05-22 20:24:29 +03:00
f453877759 Merge branch 'feature/multi_antenna_v3.1' into 'master'
esp32: add multiple antenna

See merge request idf/esp-idf!2400
2018-05-22 23:04:01 +08:00
04c74efedd esp32: add multiple antenna
1. Support multiple antenna support
2. libphy.a is updated to v3910
2018-05-22 22:28:00 +08:00
affed9a235 Merge branch 'feature/a2dp-sink-source-runtime-selection' into 'master'
bt-a2dp: BT A2DP sink and source selection is now runtime

See merge request idf/esp-idf!2229
2018-05-22 22:21:39 +08:00
b19afed31f Merge branch 'bugfix/some_changes_relating_to_phy_v3900' into 'master'
esp32: some changes relating to phy v3900

See merge request idf/esp-idf!2421
2018-05-22 21:09:05 +08:00
72c2a6f1c6 Merge branch 'feature/proto-client' into 'master'
HTTP Client

See merge request idf/esp-idf!1521
2018-05-22 21:06:46 +08:00
0b3ed36d0d Merge branch 'bugfix/cermak_mdns_fuzzer_update' into 'master'
Bugfix/cermak mdns fuzzer update

See merge request idf/esp-idf!2388
2018-05-22 20:03:02 +08:00
fffbf7b750 Fixed nullptr dereference in MDNS.c 2018-05-22 11:23:12 +02:00
e983230be9 MDNS-Fuzzer: AFL fuzzer tests for mdsn packet parser 2018-05-22 11:23:12 +02:00
97a4332ed9 Component/bt: add bt_ble_coex demo 2018-05-22 17:19:44 +08:00
d7726e8f97 Merge branch 'bugfix/docs_fix_vcp_driver_link_v2' into 'master'
docs: fix (in remaining places) link for FTDI VCP drivers

See merge request idf/esp-idf!2424
2018-05-22 16:55:59 +08:00
9da4df8f55 Merge branch 'bugfix/docs_esp-wrover-kit_and_touch-sensor' into 'master'
docs: updated esp wrover kit jumpers and touch sensor links

See merge request idf/esp-idf!2422
2018-05-22 16:22:30 +08:00
8ad8a44709 docs: fix (in remaining places) link for FTDI VCP drivers
Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-05-22 08:21:37 +00:00
67424816cc esp32: some changes relating to phy v3900
1. Store the calibration data to NVS if PHY does full calibration because of calibration data checksum failure
2. Pass the station's mac to PHY for checksum calculation
2018-05-22 14:16:09 +08:00
46d6fd1ddf Merge branch 'bugfix/parallel_multi_heap_test' into 'master'
CI fix: multi heap host test parallel race

See merge request idf/esp-idf!2428
2018-05-22 13:30:58 +08:00
64ce589f6f Remove unused macro 2018-05-22 12:04:47 +07:00
f2aea4f5b6 Add http status enum & return ESP_FAIL as error code 2018-05-22 10:55:18 +07:00
035dc66cce Merge branch 'bugfix/esp_err_to_name_windows' into 'master'
gen_esp_err_to_name.py: Use normal file I/O instead of mmap()

See merge request idf/esp-idf!2425
2018-05-22 11:31:17 +08:00
41bb1fcb48 Merge branch 'bugfix/unit_test_timeout' into 'master'
Unit tests: Add per-test timeout option, disable two SD tests

See merge request idf/esp-idf!2423
2018-05-22 11:13:16 +08:00
800c2bae38 gitignore: Add test_multi_heap_host 2018-05-22 12:09:30 +10:00
3fe862dacb test_multi_heap_host: Remove race conditions from parallel "make clean test" 2018-05-22 12:09:30 +10:00
75c27202f7 Merge branch 'feature/update_touchpad_filter_process' into 'master'
driver(touchpad): Change the measuring mode, improve the software filter.

See merge request idf/esp-idf!2358
2018-05-22 09:56:55 +08:00
5bc8ae3b3a driver(rmt):Add API supports sending uint8_t type data. 2018-05-22 01:55:44 +00:00
b8312a26c0 Merge branch 'feature/sdio_slave' into 'master'
feature(sdio_slave): add support for sdio_slave

See merge request idf/esp-idf!1829
2018-05-22 09:43:35 +08:00
67fb34fa4e Merge branch 'bugfix/dport_access_iram' into 'master'
dport: Bigfix dport_read code move to IRAM

See merge request idf/esp-idf!2427
2018-05-22 09:22:52 +08:00
42b1ec76b7 Provided links to 'Touch Sensor Application Note' and 'Guide for ESP32-Sense Development Kit' 2018-05-21 19:29:36 +02:00
6d85d159d6 Updated pictures of user configurable jumpers to reflect Version 3 of ESP-WROVER-KIT.
This includes changing the picture of JTAG jumper block by removing the jumper on S_TDI. It has been reported by a number of users that removing this jumper fixes random communication issues observed in OpenOCD.
2018-05-21 19:29:36 +02:00
e5b280f173 dport: Bigfix dport_read code move to IRAM
A new method of workaround an error with DPORT is to ensure that the APB is read and followed by the DPORT register without interruptions and pauses. This fix places this implementation in the IRAM to exclude errors associated with the cache miss.
2018-05-21 22:00:51 +05:00
1b45e1117b doc(sdio_slave): documentation for SDIO slave driver 2018-05-21 23:48:56 +08:00
f613859e29 feat(sdio_slave): add new driver for sdio_slave 2018-05-21 23:48:47 +08:00
c73575de4f feat(sdio_slave): add headers for sdio slave components: slc, host, hinf 2018-05-21 23:48:33 +08:00
156dd4841d Temporarily disable SD CD/WP mode tests
Tracked in TW22648
2018-05-21 12:27:10 +00:00
e8525396dd test: Allow per-unit-test timeouts
Work around for "(WL) write/read speed test" taking >30s in some configs
2018-05-21 12:27:10 +00:00
92c469b599 Merge branch 'bugfix/btdm_fix_scan_duplicate' into 'master'
Component/bt: fix scan duplicate

See merge request idf/esp-idf!2342
2018-05-21 20:00:49 +08:00
ae8ed8dad8 bt-a2dp: BT A2DP sink and source selection is now runtime
Earlier they have to be selected at the compile time through sdkconfig.
A2DP sink and source application tested with this change.

Signed-off-by: Amey Inamdar <amey@espressif.com>
2018-05-21 14:02:49 +05:30
b14bbd4205 gen_esp_err_to_name.py: Use normal file I/O instead of mmap()
mmap is different on Python for Windows
2018-05-21 17:34:18 +10:00
0c64ef9600 Merge branch 'bugfix/sdio_write_unaligned_len' into 'master'
SDIO: allow read/write operations for lengths not divisible by 4

See merge request idf/esp-idf!2278
2018-05-21 15:26:32 +08:00
340ad5c430 Component/bt: fix scan duplicate 2018-05-21 15:23:15 +08:00
09181b7d94 driver(touchpad): improve touchpad filter mode and update examples. 2018-05-21 14:45:31 +08:00
95c3bc39f8 Merge branch 'feature/wifi_channel_state_information' into 'master'
add Channel State Information(CSI) support

See merge request idf/esp-idf!2373
2018-05-21 14:14:51 +08:00
35d148256b Merge branch 'bugfix/fix_uart_buffer_full_flg_error_bug' into 'master'
driver(uart): Fix the bug that uart buffer_full flag is true all the time.

See merge request idf/esp-idf!2418
2018-05-21 14:09:44 +08:00
adcad91c55 Merge branch 'feature/btdm_hfp_hf' into 'master'
component/bt: implement HFP Hands Free Unit Role

See merge request idf/esp-idf!2306
2018-05-21 13:56:52 +08:00
4c4e143a2f component/bt: implement HFP Hands Free Unit Role 2018-05-21 11:33:30 +08:00
9802c3e32c Merge branch 'doc/language_link' into 'master'
docs: add language link to easily change to Chinese version.

See merge request idf/esp-idf!2051
2018-05-21 11:00:37 +08:00
6363396eba Merge branch 'feature/freertos_tickless_idle' into 'master'
freertos,esp32: automatic light sleep support

See merge request idf/esp-idf!2247
2018-05-21 10:59:00 +08:00
ff528d13c7 Add esp_http_client
Add error handling for http client

set ssid password correct with Example_WIFI test, and clear password before free

Fixed the CI failure due to HTTP errror names
2018-05-21 09:35:07 +07:00
d4deb9319a doc(global): build cross-language links for translated documents 2018-05-21 10:30:13 +08:00
2852dd37fb docs: add language link to easily change to Chinese version 2018-05-21 10:30:12 +08:00
d754b53ae2 Implemented docutils custom role that renders a link to current documentation page on Read The Docs in another language version
Provided documentation of the role.
2018-05-21 10:30:07 +08:00
9c53b599b2 Merge branch 'bugfix/i2c_add_xqueue_static_allocation' into 'master'
driver(i2c, rmt):  Add xQueue and xSemaphore static allocation support when intr_alloc_flag set to ESP_INTR_FLAG_IRAM.

See merge request idf/esp-idf!2335
2018-05-21 10:29:31 +08:00
03414b1f39 Merge branch 'bugfix/reset_some_peripherals_when_cpu_start' into 'master'
driver:   Reset  communication peripherals when cpu start up.

See merge request idf/esp-idf!2296
2018-05-21 09:53:42 +08:00
f6f9f93a9d driver(i2c, rmt):Add intr_flag setting to ESP_INTR_FLAG_IRAM support when enable psram. 2018-05-21 09:37:56 +08:00
4bfa30967f freeRTOS/Re-factor ring buffers
This fixes multiple bugs with ring buffers and re-factors the code. The public
API has not changed, however the underlying implementation have various private
functions have been changed. The following behavioral changes have been made

-   Size of ring buffers for No-Split/Allow-Split buffers will not be rounded
    up to the nearest 32-bit aligned size. This was done to simplify the
    implementation

-   Item size for No-Split/Allow-Split buffers will also be rounded up to the
    nearest 32-bit aligned size.

The following bugs have been fixed

-   In copyItemToRingbufAllowSplit(), when copying an item where the aligned
    size is smaller than the remaining length, the function does not consider
    the case where the true size of the item is less than 4 bytes.

-   The copy functions will automatically wrap around the write pointers when
    the remaining length of the buffer is not large enough to fit a header, but
    does not consider if wrapping around will cause an overlap with the read
    pointer. This will make a full buffer be mistaken for an empty buffer

closes #1711
-   xRingbufferSend() can get stuck in a infinite loop when the size of the
    free memory is larger than the needed_size, but too small to fit in the ring
    buffer due to alignment and extra overhead of wrapping around.

closes #1846
-   Fixed documentation with ring buffer queue set API

-   Adding and removing from queue set does not consider the case where the
    read/write semaphores actually hold a value.

The following functions have been deprecated
    - xRingbufferIsNextItemWrapped() due to lack of thread safety
    - xRingbufferAddToQueueSetWrite() and xRingbufferRemoveFromQueueSetWrite()
    as adding the queue sets only work under receive operations.

The following functions have been added
    - xRingbufferReceiveSplit() and xRingbufferReceiveSplitFromISR() as a thread
    safe way to receive from allow-split buffers
    - vRingbufferGetInfo()

Documentation for ring buffers has also been added.
2018-05-21 01:04:58 +00:00
32e838ddb6 Add xRingbufferCanRead, xRingbufferCanWrite
Add function xRingbufferCanRead & xRingbufferCanWrite
to be able use queue sets. Without it is not possible
to check to which ringbuffer returned semaphore belongs.
2018-05-21 01:04:58 +00:00
7a6e367cd9 Merge branch 'patch-2' into 'master'
Update idf-monitor.rst

See merge request idf/esp-idf!2149
2018-05-21 08:42:24 +08:00
6e77e68c96 Update idf-monitor.rst 2018-05-21 00:20:08 +00:00
a79116a23e Merge branch 'feature/gcov_dbg_stubs' into 'master'
Feature/gcov dbg stubs

See merge request idf/esp-idf!1494
2018-05-21 08:07:49 +08:00
7f8811ea14 add Channel State Information(CSI) support 2018-05-20 19:25:25 +08:00
4d6e600f23 Merge branch 'mesh/update_libs' into 'master'
mesh: update libs

See merge request idf/esp-idf!2416
2018-05-20 17:26:57 +08:00
bb9e73c864 mesh: update libs
1. use pbkdf2_sha1() to encrypted mesh ie key.
2. fix esp_mesh_waive_root().
3. fix esp_mesh_stop().
4. fix xon issues.
2018-05-20 15:28:38 +08:00
1f7b41e206 Merge branch 'feature/add_event_SYSTEM_EVENT_AP_STAIPASSIGNED' into 'master'
add event SYSTEM_EVENT_AP_STAIPASSIGNED

See merge request idf/esp-idf!2202
2018-05-19 17:04:24 +08:00
d51054a5eb Merge branch 'bugfix/docs_fix_vcp_driver_link' into 'master'
docs: fix link for FTDI VCP drivers

See merge request idf/esp-idf!2420
2018-05-19 17:00:17 +08:00
a7a90ffba2 Merge branch 'feature/unified_btdm_modem_sleep_with_coex' into 'master'
component/bt: implement bluetooth modem sleep

See merge request idf/esp-idf!2198
2018-05-19 16:20:49 +08:00
22e21b38f7 component/bt: implement bluetooth modem sleep mode, one mode for BLE only and another for dual mode bluetooth
1. provide options for bluetooth low power mode
2. provide two options for bluetooth low power clock: main XTAL and external 32kHz XTAL
3. provide function and callbacks to control bluetooth low power mode, including enable/disable sleep, software wakeup request, low power clock settings, check power state, etc
4. modify vhci API vhci_host_send_packet to use blocking mode
5. note that DFS and bluetooth modem sleep can not be used together currently.
2018-05-19 15:37:26 +08:00
3f031cdd9d add event SYSTEM_EVENT_AP_STAIPASSIGNED 2018-05-19 13:14:12 +08:00
7cc3b648f4 Merge branch 'doc/nvs_flash_encryption' into 'master'
nvs README: Remove section about encryption capability

See merge request idf/esp-idf!2404
2018-05-19 00:44:56 +08:00
bb25d0a348 DnsFuzzer: Added fuzzer test for exercising lwip/dns receiving DNS responses 2018-05-18 15:54:08 +02:00
c1b6a37bb1 esp32: Adds GCOV debug stubs support
Adds the following functionality
 - Debug stubs infrastructure
 - Stub for retrieveing GCOV data without user source code modification
2018-05-18 16:16:03 +03:00
b2ec58af1c docs: fix link for FTDI VCP drivers
Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-05-18 17:09:53 +05:30
041faad1c9 Merge branch 'feature/add_more_information_about_wifi_config' into 'master'
wifi: Add more information about wifi config

See merge request idf/esp-idf!2384
2018-05-18 17:29:32 +08:00
33b99caf50 driver(uart):Fix the bug that uart buffer_full flag is true all the time. 2018-05-18 16:46:10 +08:00
af2cb3ba8b Merge branch 'feature/vfs_find_free_fd' into 'master'
Add "find file descriptor" API to be used by VFS drivers

See merge request idf/esp-idf!2389
2018-05-18 15:22:20 +08:00
3c457afca5 Merge branch 'feature/vfs_select' into 'master'
Allow VFS file descriptors in select()

See merge request idf/esp-idf!2377
2018-05-18 15:04:25 +08:00
ef39c09bc1 driver: reset communication peripherals when the cpu starts. 2018-05-18 14:41:58 +08:00
18e83bcd53 Allow VFS file descriptors in select() 2018-05-18 08:06:33 +02:00
2aa9c15906 VFS: allow to find free file descriptors & register them 2018-05-18 07:57:35 +02:00
8b389419ab (wifi): Add more information about wifi config
1. Update libphy.a to v3900
2. Update librtc.a to v238
3. add scan_method, sort_method and threshold when invoke esp_wifi_get_config()
4. add rssi of each STA in softAP list
5. add country information in scan result
6. add noise floor in rx pkt

Closes https://github.com/espressif/esp-idf/issues/1095
Closes https://github.com/espressif/esp-idf/issues/1723
Closes https://github.com/espressif/esp-idf/issues/1483
2018-05-18 11:55:55 +08:00
d84add4513 Merge branch 'bugfix/performance_tests_psram' into 'master'
tests: Increase performance thresholds when running with PSRAM

See merge request idf/esp-idf!2414
2018-05-18 11:35:33 +08:00
12230b7292 examples/wifi/power_save: enable tickless idle 2018-05-18 03:14:46 +00:00
45d3b1f4b1 docs: update information about automatic light sleep 2018-05-18 03:14:46 +00:00
028fbb58e8 freertos,esp32: automatic light sleep support 2018-05-18 03:14:46 +00:00
51aceaa030 Merge branch 'bugfix/idle_task_stack_size' into 'master'
freertos: Bump default idle task stack size to 1536 bytes

See merge request idf/esp-idf!2411
2018-05-18 10:10:13 +08:00
9ac6a75b8c Merge branch 'feature/tw15298_support_create_wifi_task_on_any_core' into 'master'
esp32: support to create wifi task on any core

See merge request idf/esp-idf!2379
2018-05-18 09:55:45 +08:00
6dcf273f0d Merge branch 'bugfix/update_ota_download_valid_bin' into 'master'
bugfix(ota): update ota to download valid bin file

See merge request idf/esp-idf!2038
2018-05-18 09:52:17 +08:00
4e9ea81208 esp32: support to create wifi task on any core
Support to create WiFi task on any core.
Closes https://github.com/espressif/esp-idf/issues/968
2018-05-17 22:04:08 +08:00
cf9499479c Merge branch 'bugfix/i2s_mix_result_with_error_code_master' into 'master'
fix i2s mix result and error code

See merge request idf/esp-idf!2227
2018-05-17 21:53:06 +08:00
f64f70250d Merge branch 'feature/add_set_factory_info_customer_in_wps_v3.1' into 'master'
wifi: add set factory information feature by customer in wps

See merge request idf/esp-idf!2412
2018-05-17 21:49:40 +08:00
a2241fb4bc tests: Increase performance threshold for VFS running with PSRAM
Cache effects on microbenchmarks in cached flash can be significant, depending on linker layout in flash.
2018-05-17 21:02:47 +08:00
8c657dfee4 Merge branch 'bugfix/fix_an_error_in_comment_of_uart_driver' into 'master'
deiver(uart):revise the explanation of uart break length

See merge request idf/esp-idf!2398
2018-05-17 17:17:14 +08:00
993b8b7bf6 Merge branch 'bugfix/o3_fails' into 'master'
Fix compilation errors when -O3 is used

See merge request idf/esp-idf!2396
2018-05-17 16:48:13 +08:00
54d9a392e4 wifi: add set factory information feature by customer in wps 2018-05-17 16:45:53 +08:00
59db3cb1c2 Merge branch 'bugfix/wifi_fix_a_few_wifi_bugs' into 'master'
Fix a few WiFi bugs

See merge request idf/esp-idf!2312
2018-05-17 16:33:38 +08:00
0749e50927 Merge branch 'bugfix/fix_qio_mode' into 'master'
bootloader(flash): fix flash QIO mode configuration error.

See merge request idf/esp-idf!2403
2018-05-17 16:21:46 +08:00
c584f624b5 Merge branch 'bugfix/btdm_change_scan_mode_after_conn_or_disconn' into 'master'
component/bt: Change scan mode after connected or disconnected

See merge request idf/esp-idf!2402
2018-05-17 11:13:13 +08:00
9deb58859c fix i2s mix result and error code 2018-05-17 10:59:04 +08:00
4719bab2f3 freertos: Bump default idle task stack size to 1536 bytes
In situations where idle task runs a lot of idle hooks or cleanup code
(due to pthread local storage, etc) it can use more than 1KB of stack.

(I think the trigger is if a context switch happens at the right point
in the TLS cleanup).

Also removes an sdkconfig.default which accidentally set all config items,
including this stack size.
2018-05-17 10:37:24 +08:00
5ecf717e40 DhcpFuzzer: dhcp client addded 2018-05-16 14:52:42 +02:00
f6927ccde9 bootloader(flash): fix flash QIO mode configuration error.
reported from github: https://github.com/espressif/esp-idf/issues/1944

1. Add SPI register setup in execute_flash_command.
2. Save and recover the SPI ctrl register in execute_flash_command.
2018-05-16 12:42:29 +00:00
44b1bc0ab9 esp32: Add .noinit and .rtc_noinit sections to the linker script
Added .rtc_noinit and .noinit section definitions into linker file /esp32/ld/esp32.common.ld.
The macro __NOINIT_ATTR, RTC_NOINIT_ATTR declared in esp32/esp_attr.h file.
Added unit test file to test added behavior for noinit variables and its attributes.
Added documentation changes for new added attributes.
Make some corrections after code review:
The linker file has been corrected to place noinit section before bss_start to make it safer.
Documentation file has been modified to clarify reset behavior of allocated data .
Corrected typos in test_noinit.c and removed assertion of noinit variable to avoid possible issues with ROM boot loader memory allocation.
The linker file has been corrected to place noinit section before bss_start to make it safer.
Documentation file has been modified to clarify reset behavior of allocated data .
Corrected typos in test_noinit.c and removed assertion of noinit variable to avoid possible issues with ROM boot loader memory allocation.
Update test_noinit.c file to address RTCWDT_RTC_RESET reset reason instead of POWERON_RESET.
Test optimized to pass automated unit testing.
esp32: Add .noinit and .rtc_noinit sections to the linker script
Update of general-notes.rst documentation to fomat examples as code and attributes as identifiers.
Test test_noinit.c corrected to pass automated testing (support ofTEST_CASE_MULTIPLE_STAGES())

https://ezredmine.espressif.cn:8765/issues/15878
2018-05-16 17:33:37 +05:00
f147a8d73d Merge branch 'bugfix/docs_small_updates' into 'master'
Bugfix/docs small updates

See merge request idf/esp-idf!2392
2018-05-16 19:53:40 +08:00
f4f305bdbd Merge branch 'bugfix/mbedtls_submodule' into 'master'
mbedtls: Add submodule check at build time

See merge request idf/esp-idf!2395
2018-05-16 19:52:45 +08:00
b2e264ef52 Merge branch 'feature/ledc_add_api_set_hpoint_val' into 'master'
driver(ledc): fix duty and fade issues and add thread-safe version APIs.

See merge request idf/esp-idf!2233
2018-05-16 19:52:26 +08:00
4058ce71ce Merge branch 'feature/btdm_modify_bt_gap_structure' into 'master'
component/bt: modify BT GAP structure

See merge request idf/esp-idf!2364
2018-05-16 19:46:55 +08:00
174501ff35 component/bt: modify BT GAP structure
1. Separate the upward and the downward
2. Cancel use of msg.aid when call btc_transfer_context
2018-05-16 18:58:13 +08:00
40efc36849 Fix a few WiFi bugs
1. remove rc when ap not found

   closes issue: https://github.com/espressif/esp-idf/issues/1797

2. allocate mimo packet to internal memory

3. use FRC2 timer instead of WDEV_NOW() for modem sleep to calculate
   TBTT time.

   It fixes the bug that TBTT will be incorrect if beacon is lost.
2018-05-16 18:50:28 +08:00
50f82a1aa5 component/bt: Change scan mode after connected or disconnected 2018-05-16 10:28:03 +00:00
c54a679a41 Merge branch 'bugfix/fix_interrupt_list_insert_issue' into 'master'
esp32: fix interrupt list insert issue

See merge request idf/esp-idf!2391
2018-05-16 18:18:58 +08:00
4b4a587540 Merge branch 'bugfix/touch_change_default_enable_value' into 'master'
bugfix(touch): change the default value for sar_touch_enable register.

See merge request idf/esp-idf!1870
2018-05-16 17:40:18 +08:00
8128dd245d Merge branch 'bugfix/rmt_tx_cmd' into 'master'
example(rmt): tx cmd without negative coding

See merge request idf/esp-idf!1884
2018-05-16 17:39:04 +08:00
460c4fa486 bugfix(ota): update ota to download valid bin file 2018-05-16 09:24:47 +00:00
f502e195aa Merge branch 'bugfix/improve_bt_debug' into 'master'
components/bt: Improve the Bluetooth debug messaging scheme

See merge request idf/esp-idf!2303
2018-05-16 16:04:34 +08:00
af980ecb9f Merge branch 'feature/tw16750_full_support_esp_wifi_80211_tx' into 'master'
esp32/docs: fully support esp_wifi_80211_tx

See merge request idf/esp-idf!2007
2018-05-16 14:55:00 +08:00
846b848bfc esp32/docs: fully support esp_wifi_80211_tx
Closes https://github.com/espressif/esp-idf/issues/1256
Closes https://github.com/espressif/esp-idf/issues/1332
2018-05-16 13:37:54 +08:00
d19dbea059 Fixed git command 2018-05-15 22:36:34 +02:00
6722a78684 Fix git command. Merges https://github.com/espressif/esp-idf/pull/1943 2018-05-15 22:34:01 +02:00
7ae1e9463e Merge branch 'bugfix/rtc_xtal_tests' into 'master'
ci: Only run XTAL unit tests assuming board has an XTAL

See merge request idf/esp-idf!2401
2018-05-15 18:44:46 +08:00
3d92c6cccd nvs README: Remove section about encryption capability 2018-05-15 18:02:28 +08:00
05e09a5bac ci: Only run XTAL unit tests assuming board has an XTAL, run less repeats 2018-05-15 15:43:24 +08:00
d1066e9d7f Merge branch 'feature/dport_access' into 'master'
soc: Dport access with pre-read register APB

See merge request idf/esp-idf!2257
2018-05-15 15:32:28 +08:00
0ae6a83768 Merge branch 'test/add_iperf_example_test' into 'master'
test: add iperf example test

See merge request idf/esp-idf!1753
2018-05-15 14:58:08 +08:00
ae7cee02d2 Merge branch 'feature/vfs_access' into 'master'
Implement VFS support for access()

See merge request idf/esp-idf!2378
2018-05-15 14:33:51 +08:00
fcd5d0869d Merge branch 'bugfix/spi_native_pins' into 'master'
fix several spi issues about pin configurations

See merge request idf/esp-idf!2309
2018-05-15 14:19:20 +08:00
9e7a69be88 example test: integrate wifi throughput test to CI 2018-05-15 13:42:27 +08:00
e8dd203e47 example test: add test case for iperf example 2018-05-15 13:42:26 +08:00
662fe55996 Merge branch 'bugfix/select_rtc_slow_clk' into 'master'
esp32/clk: Fix starting rtc oscillator if it bad

See merge request idf/esp-idf!2215
2018-05-15 12:57:22 +08:00
9ad0760b9d esp32/clk:Fix starting rtc oscillator if it is bad
If the RTC crystal is bad or has no matched capacitance, then you do not need to start such the crystal. It is necessary to determine this case, output an error (about impossibility to start from the oscillator) and start from the internal RC of the chain.

Reduced the default value of the number of bootstrap cycles. Because we can oscillating the oscillator which then stops. (in Kconfig). Changed from 100 to 5.

The number of calibration cycles has been increased. It is the main criterion for estimating the launch of an oscillator. A large increase leads to an increase in the load time, as well as the stability of recognition of this case. (in Kconfig).
Changed from 1024 to 3000.
2018-05-15 08:59:15 +05:00
7e4c2cc46b iperf example: add scan command to get AP rssi 2018-05-15 03:29:31 +00:00
f7bb5c8f42 iperf example: add cmd to trace max heap usage 2018-05-15 03:29:31 +00:00
2b068f3ceb tiny-test-fw: fix misc bugs:
1. configs are not functional
    * decorator will be executed when search case, need to set default config before search case.
2. fix DUT encode/decode errors
    * python3 serial don't support write string/unicode, need to convert to bytes first.
    * python2 string could failed to encode/decode non-acsii chars
3. fix bug that log folder not created
4. fix bug that test suite name is not correctly passed:
    * the keyward arg should be `test_suite_name` not `test_name`
5. fix bug that test stopped on failed case
6. fix DUT `read` don't return all data cache
    * `_DataCache.get_data` should first copy all data from queue to data cache and then return to user.
7. fix bug that `expect_all` failed even all expected item passed
8. optimize error info for expect
    * print pattern for regular expression when match failed
9. fix bug that set default config doesn't work
2018-05-15 03:29:31 +00:00
98d1f05ab5 tiny-test-fw: add utilities:
1. Attenuator: control programmable attenuator
2. PowerControl: control APC PDU to power on/off devices
3. LineChart: use matplotlib to draw line chart
2018-05-15 03:29:31 +00:00
3b3a915552 tiny-test-fw: implement env.get_pc_nic_info:
this method is used to get mac/ipv4/ipv6 address for one NIC
2018-05-15 03:29:31 +00:00
c522f44276 Merge branch 'doc/update_licenses' into 'master'
docs: update list of third-party libraries, copyrights, and licenses

See merge request idf/esp-idf!2381
2018-05-15 11:13:20 +08:00
31d53bc059 Merge branch 'bugfix/sdspi_delayed_write_response' into 'master'
sdspi: handle delayed response to data write command

See merge request idf/esp-idf!2290
2018-05-15 10:32:21 +08:00
73d20981de Merge branch 'bugfix/rmt_tx_stop_bug' into 'master'
driver(rmt):  RMT tx stop  workaround

See merge request idf/esp-idf!1915
2018-05-15 10:04:33 +08:00
79de77107f docs: update list of third-party libraries, copyrights, and licenses 2018-05-15 10:01:20 +08:00
33b11c6f6a Merge branch 'feature/adjust_log_level_about_uart' into 'master'
feat: Adjust log level about UART

See merge request idf/esp-idf!2047
2018-05-15 09:59:21 +08:00
9379d7b9f9 sdmmc: wait for command done event even if data transfer is over
This fixes errors logged on the console: sdmmc_req:
handle_idle_state_events unhandled: 00000004 00000000

The issue happens if "data done" event occurs before "command done".
State machine code did not check *which* event occurred in
SENDING_CMD state, and went to IDLE or SENDING_DATA state on any
non-error event. In this case, we can't process "data done" event
until command has completed. This change introduces "unhandled event"
mask, which is carried over from one run of process_events to the
other. This allows waiting for the "command done" event to complete,
and then process "data done" event.

Ref TW17126.
2018-05-15 09:59:20 +08:00
cf81db40a2 sdio: allow reads/writes with lengths not divisible by 4
CMD53 in byte mode supports transfers of any number of bytes between 1
and 512. This change removes limitation that the number of bytes must
be divisible by 4. Host quirk, that such transfers must be split into
two commands (one for the aligned part and the other one for
unaligned) is taken into account.
2018-05-15 09:59:20 +08:00
d5e167fc43 Merge branch 'feature/docs_translate_home_page' into 'master'
Update index.rst. Merges https://github.com/espressif/esp-idf/pull/1747

See merge request idf/esp-idf!2368
2018-05-15 09:57:13 +08:00
97a228e6ab Merge branch 'bugfix/rename_clk_rst_bits_for_spi' into 'master'
rename clock enable and reset bits for SPI modules

See merge request idf/esp-idf!2293
2018-05-15 09:49:56 +08:00
684d211af3 Corrected link rendering and additional translations 2018-05-14 19:06:43 +02:00
6adaeb0048 Merge branch 'bugfix/btdm_fix_crash_without_smp_when_deinit_bluedroid' into 'master'
Component/bt: fix crash without SMP when deinit bluedroid

See merge request idf/esp-idf!2375
2018-05-14 21:20:44 +08:00
3a6d256d3e DhcpFuzzer: Added AFL test for dhcpserver with sample packets 2018-05-14 15:03:37 +02:00
8f80cc733d soc: Change DPORT access
When two CPUs read the area of the DPORT and the area of the APB, the result is corrupted for the CPU that read the APB area.
And another CPU has valid data.

The method of eliminating this error.
Before reading the registers of the DPORT, make a preliminary reading of the APB register.
In this case, the joint access of the two CPUs to the registers of the APB and the DPORT is successful.
2018-05-14 17:54:57 +05:00
da6cb6c741 components/bt: Improve the Bluetooth debug messaging scheme
As of now, when Bluetooth debugs are enabled, all the messages are
mapped to BT_PRINTF which is mapped to ESP_LOGE. Hence, make monitor
shows all logs in red color which might lead to missing the actual
errors

This patch maps the Bluetooth messages to appropriate ESP_LOG* messages
and improves readability.

Also, make the BT trace level be configurable in menuconfig, so that
each layer of bt trace can be enabled/disabled.

Finally, add debug log control for BTC, OSI, BLUFI and clear up
Bluetooth debug logs.

So, with this the method of enabling Bluetooth logs is as follows:
1. make menuconfig -> Component config -> Bluetooth -> Bluedroid Enable
-> BT DEBUG LOG LEVEL -> set trace level for every layer of BT

Signed-off-by: Hrishikesh Dhayagude <hrishi@espressif.com>
2018-05-14 20:45:05 +08:00
256a9a8a33 Merge branch 'feature/wifi_add_sniffer_ctrl_pkt' into 'master'
add sniffer control packet support

See merge request idf/esp-idf!1904
2018-05-14 20:42:15 +08:00
9e5318b584 Merge branch 'bugfix/btdm_reconnect_con_params_update_reject_in_smp' into 'master'
Component/bt: update con params is rejected in smp when reconnection

See merge request idf/esp-idf!2318
2018-05-14 20:19:29 +08:00
b5de860bcb revise the explain of a parameter(brk_len) in uart driver file 2018-05-14 19:47:16 +08:00
a8d26d7e4d driver(rmt):Fix rmt_tx_stop bug. 2018-05-14 19:46:30 +08:00
b888032a8c Merge branch 'bugfix/logging_docs_cleanup' into 'master'
log: clean up docs, clarify esp_log_level_set usage

See merge request idf/esp-idf!2080
2018-05-14 18:36:35 +08:00
ca08397b6b Fix compilation errors when -O3 is used
Closes https://github.com/espressif/esp-idf/issues/718
2018-05-14 12:29:57 +02:00
c384fa2492 rename clock enable and reset bits for SPI modules
1.The names of clock enable and reset bits do not match with TRM, just rename them.
2018-05-14 16:45:03 +08:00
036dbce3d0 Fix "undefined variable which git" warning when submodules not initialized 2018-05-14 16:07:27 +08:00
c94a5ecfdd mbedtls: Add mbedtls submodule check to build system 2018-05-14 16:07:18 +08:00
d4276efed7 Merge branch 'bugfix/bluedroid_const_char' into 'master'
Bluedroid: remove warnings about discarding "const" for "const char*"

See merge request idf/esp-idf!2387
2018-05-14 15:25:45 +08:00
4345e198ce Implement VFS support for access()
Closes https://github.com/espressif/esp-idf/issues/1085
2018-05-14 09:04:18 +02:00
57297cf7b7 add sniffer control packet support 2018-05-14 14:16:03 +08:00
1c81e4be60 esp32: fix interrupt list insert issue
If the allocated interrupt list is not empty and the new item will be inserted
as the header of the list, insert_vector_desc() causes crash because pre is
null. This commit fix this issue.
2018-05-14 14:13:08 +08:00
adc3315677 Merge branch 'test/add_unit_test_jobs' into 'master'
ci: increase number of unit test jobs, temporarily disable light sleep test for short durations

See merge request idf/esp-idf!2386
2018-05-14 14:06:05 +08:00
1bebec05c6 driver(ledc): fix duty and fade issues and add thread-safe version APIs.
1. Fix the duty fade check issue reported from https://github.com/espressif/esp-idf/issues/1914
2. Fix the duty overflow issue when duty_scale is set to 1.
3. Fix the duty fade error when a fade operation is under way. We must configure a new duty setting after the previous fade operation has finished due to hardware limit.
4. Add thread-safe version APIs to set duty and fade.
5. Correct the duty range in driver.
2018-05-14 12:27:21 +08:00
e23ee9fa73 Merge branch 'bugfix/ledc_error' into 'master'
ledc driver: Clarify logging of function argument errors

See merge request idf/esp-idf!2380
2018-05-14 09:16:02 +08:00
6817088ce4 Merge branch 'feature/mbedtls_2_9_0' into 'master'
Re-add mbedTLS as a submodule, update to 2.9.0

See merge request idf/esp-idf!2367
2018-05-14 09:15:44 +08:00
64c52022b9 Merge branch 'bugfix/add_comments_for_adc' into 'master'
driver(adc): Add descriptions that starting ADC can trigger interrupt of GPIO36…

See merge request idf/esp-idf!1910
2018-05-11 18:54:40 +08:00
1b7ed6455b esp32/test: temporarily disable test for light sleep duration
Until the issue in CI is debugged
2018-05-11 18:15:58 +08:00
3a53e35fe8 Merge branch 'bugfix/vfs_append' into 'master'
VFS: use O_APPEND flag of open() correctly

See merge request idf/esp-idf!2382
2018-05-11 18:12:47 +08:00
2041c08681 Bluedroid: remove warnings about discarding "const" for "const char*" 2018-05-11 11:29:10 +02:00
d53661a663 driver(adc): add descriptions for the issue that starting ADC can trigger interrupt of GPIO36 and GPIO39. 2018-05-11 17:08:58 +08:00
b840a09900 ci: increase number of unit test jobs 2018-05-11 16:42:52 +08:00
a5f36ec2d5 Merge branch 'feature/wifi_refactor_smartconfig' into 'master'
refactor smartconfig

See merge request idf/esp-idf!2205
2018-05-11 16:23:22 +08:00
5616491c50 Merge branch 'bugfix/i2s_dma_buf_alloc' into 'master'
i2s: fix issue in dma descriptor allocation if SPIRAM is enabled

See merge request idf/esp-idf!2383
2018-05-11 16:03:40 +08:00
66406e1f64 Merge branch 'bugfix/upate_ble_a2dsink_example' into 'master'
example(ble):  Update ble a2d_sink example

See merge request idf/esp-idf!2105
2018-05-11 15:59:14 +08:00
41228c83c7 Merge branch 'bugfix/dhcp_server_max_limit' into 'master'
dhcp/dhcpserver Fix max station limit check in dhcp server

See merge request idf/esp-idf!2298
2018-05-11 15:50:38 +08:00
325920046f Merge branch 'bugfix/btdm_conn_fail_after_deinit_and_init_spp' into 'master'
component/bt: Fix can't be connected if init SPP again after SPP deinit

See merge request idf/esp-idf!2369
2018-05-11 15:38:03 +08:00
41ba013bd4 Merge branch 'bugfix/btdm_fix_service_change_write_busy' into 'master'
Component/bt: fix service change write busy

See merge request idf/esp-idf!2359
2018-05-11 15:20:04 +08:00
c1e0f029d1 Merge branch 'bugfix/btdm_a2dp_disconn_state_when_connecting_with_iphone' into 'master'
component/bt: Fix bug a2dp have disconnect state when connecting with iphone 7

See merge request idf/esp-idf!2288
2018-05-11 14:59:34 +08:00
827772df69 Merge branch 'bugfix/light_sleep_wdt_fix' into 'master'
Fix occasional WDT reset in light sleep test

See merge request idf/esp-idf!2374
2018-05-11 14:55:51 +08:00
0033c3ef3a refactor smartconfig
move wifi part to wifi lib and lwip part to idf
2018-05-11 14:49:35 +08:00
733ff15719 VFS: use O_APPEND flag of open() correctly
Closes https://github.com/espressif/esp-idf/pull/1455
2018-05-11 08:28:22 +02:00
12f707932f log: clean up docs, clarify esp_log_level_set usage
Closes https://github.com/espressif/esp-idf/issues/1713
2018-05-11 13:55:16 +08:00
4903fd0951 Merge branch 'bugfix/tw18980_fix_some_potential_thread_safe_issue' into 'master'
wifi: fix some potential thread safe issue

See merge request idf/esp-idf!2366
2018-05-11 10:25:58 +08:00
b2a1a79eb4 i2s: fix issue in dma descriptor allocation if SPIRAM is enabled
It has been observed that, if external SPIRAM is enabled, then under
certain scenarios (e.g. internal memory being too much fragmented),
I2S tx/rx descriptors can land in external SPIRAM and hence resulting
in failure in DMA. Adding explicit capability to allocate in only DMA
capable memory.

Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-05-10 18:26:01 +05:30
feb64c3be6 ledc driver: Clarify logging of function argument errors
Some parameter errors did not specify which parameter was invalid.

Adds a new macro to name the invalid param.
2018-05-10 17:21:35 +08:00
be76260d81 wifi: fix some potential thread safe issue
change some API function to throw event:

esp_wifi_deauth_sta
esp_wifi_get_country
esp_wifi_ap_get_sta_list
esp_wifi_sta_get_ap_info
esp_wifi_stop
esp_wifi_get_channel
esp_wifi_get_protocol
esp_wifi_get_bandwidth
2018-05-10 16:24:43 +08:00
dfbc59f1c2 component/bt: Fix can't be connected if init SPP again after SPP deinit 2018-05-10 16:16:25 +08:00
ade14518ef Merge branch 'feature/vfs_small_fds' into 'master'
Use smaller numbers as file descriptors

See merge request idf/esp-idf!2300
2018-05-10 14:29:34 +08:00
b7a5fef871 Component/bt: fix crash without SMP when deinit bluedroid
- fix crash without SMP when bluedroid deinit
- modify default menuconfig in blufi demo
2018-05-10 11:39:34 +08:00
800d9f00a8 ci: add extra UT test job 2018-05-09 23:53:56 +08:00
7dada45d60 mbedtls: enable deprecation warnings when building unit tests 2018-05-09 23:15:28 +08:00
dbc919eff5 mbedtls: update usage of mbedtls_aes_encrypt/decrypt 2018-05-09 23:15:28 +08:00
aad51ea8a0 mbedtls/port: don’t re-declare mbedtls_shaX functions
ALT header files for sha1, sha256, sha512 are only supposed to declare
mbedtls_sha1_context data structure. Function prototypes should come
from original header files.
2018-05-09 23:15:28 +08:00
254e29aca4 mbedtls: update usage of deprecated mbedtls_shaX APIs
The following mbedTLS APIs have been deprecated and replaced with the
new ones which return error codes:

mbedtls_shaX_starts -> mbedtls_shaX_starts_ret
mbedtls_shaX_update -> mbedtls_shaX_update_ret
mbedtls_shaX_finish -> mbedtls_shaX_finish_ret
mbedtls_shaX_process -> mbedtls_shaX_internal_process

Update hardware implementations of SHA functions, and other IDF
components which used above functions, to use new versions.
2018-05-09 23:15:28 +08:00
e9cbf96bd1 mbedtls: re-add version 2.9.0 as a submodule 2018-05-09 23:15:28 +08:00
8c307a5720 sleep: fix deadlock in esp_timer_impl_advance after light sleep
When light sleep is started, the other CPU gets halted using DPORT
stall mechanism. This can happen while it is inside an esp_timer
critical section, which may lead to a deadlock. This change adds
functions to take and release esp_timer lock before entering
DPORT critical section, preventing the deadlock.
2018-05-09 22:52:50 +08:00
296b280801 esp_timer: fix esp_timer_impl_advance not triggering expired timers 2018-05-09 22:52:41 +08:00
cb59576dd0 Component/bt: fix service change write busy 2018-05-09 20:49:26 +08:00
58b2cb3e0c Component/bt: update con params is rejected in smp when reconnection 2018-05-09 20:28:13 +08:00
b9aee83d9b Merge branch 'feature/put_supplicant_source_code_from_VNC_to_IDF' into 'master'
wpa_supplicant: move part of codes to IDF

See merge request idf/esp-idf!2272
2018-05-09 15:19:37 +08:00
3b44e24db0 Update index.rst. Merges https://github.com/espressif/esp-idf/pull/1747 2018-05-09 07:30:54 +02:00
b00d256d5b wpa_supplicant:move part of codes to IDF 2018-05-09 10:44:35 +08:00
829e6c44f1 cmake docs: Specify feature/cmake branch when cloning from Github
As mentioned here https://github.com/espressif/esp-idf/issues/1906#issuecomment-387377493
2018-05-08 22:05:43 +08:00
a2556229aa Merge branch 'bugfix/uart_fix_get_baudrate_error_bug' into 'master'
driver(uart):   Fix uart_get_baudrate incorrect return value when using ref_tick

See merge request idf/esp-idf!2295
2018-05-08 20:25:13 +08:00
81e48ca31f Merge branch 'cmake/docs' into 'feature/cmake'
cmake preview: Update docs

See merge request idf/esp-idf!2348
2018-05-08 17:54:39 +08:00
197f594b06 fix(spi): fix the issue when bus flag not set, dual mode cannot be used. 2018-05-08 15:47:26 +08:00
28beafc624 fix(spi): fix the issue that native pins don't work after SPI initialized before 2018-05-08 15:47:25 +08:00
1f085b1a3b feat(gpio): add function allowing switching input source from GPIO back to IOMUX 2018-05-08 15:47:25 +08:00
bb1f3ae264 Merge branch 'feature/psram_configure_in_runtime' into 'master'
feature(psram): update psram and flash SPI frequency in runtime

See merge request idf/esp-idf!1776
2018-05-08 15:23:47 +08:00
526496ba20 ci: Allow bot to control branch used for esp-idf-template 2018-05-08 14:44:25 +08:00
139a8a2745 Merge branch 'bugfix/optimize_coexist_performance' into 'master'
component/esp32 : improve wifi and bluetooth coexistence performance

See merge request idf/esp-idf!2349
2018-05-08 11:11:03 +08:00
8cd9deed5c component/esp32 : improve wifi and bluetooth coexistence performance
1. update coexistence and wifi libraries. Coexist version update to
v0.9.2
2. Cancel the restriction of use AMPDU when SW_COEXIST_ENABLE is y.
2018-05-07 19:55:41 +08:00
6f31674b28 cmake: Add ESPORT/ESPBAUD environment variables to idf.py & docs 2018-05-07 18:45:49 +08:00
b7ddb0c3d3 Revert "docs: Temporarily allow cmake docs to be in English only"
This reverts commit d5a5897140.
2018-05-07 18:45:49 +08:00
c7f19e76d7 docs: Move main docs to cover CMake
Add "GNU Make build system" doc with "cheat sheet" for moving to new system
2018-05-07 18:45:49 +08:00
c8fbf962bc Merge branch 'bugfix/docs_nvs_example_link' into 'master'
docs: Fix broken link in nvs examples

See merge request idf/esp-idf!2360
2018-05-07 17:13:07 +08:00
db90f49758 Merge branch 'bugfix/update_emac_h' into 'master'
update emac_reg_v2.h

See merge request idf/esp-idf!2050
2018-05-07 16:16:52 +08:00
6238459dd7 docs: Fix broken link in nvs and jtag example
- Closes https://github.com/espressif/esp-idf/issues/1922
2018-05-07 12:38:20 +05:30
80ff8d55ac bluedroid: use the new socket registering API 2018-05-07 09:01:56 +02:00
5129bca67c VFS: Use smaller numbers as file descriptors 2018-05-07 09:01:56 +02:00
06082d9308 Merge branch 'doc/spi_master_thread_safety' into 'master'
driver: Add notes to SPI driver docs about thread safety

See merge request idf/esp-idf!2354
2018-05-07 14:49:41 +08:00
dc13f489ca Merge branch 'bugfix/fix_two_wifi_bugs' into 'master'
esp32: fix two wifi bugs

See merge request idf/esp-idf!2352
2018-05-07 14:00:24 +08:00
21a6d09bb9 Merge branch 'bugfix/mdns_print_results' into 'master'
mdns: fix potential NULL pointer dereference in mdns_print_results

See merge request idf/esp-idf!2353
2018-05-07 13:50:52 +08:00
73ec743a0a Merge branch 'bugfix/nvs_page_compaction' into 'master'
nvs: Fix recovery from power-off while page is being freed

See merge request idf/esp-idf!2327
2018-05-07 09:08:23 +08:00
60a0f25450 Merge branch 'bugfix/docs_conf_py3_compat' into 'master'
docs: make conf.py python3 compatible

See merge request idf/esp-idf!2344
2018-05-07 09:07:44 +08:00
b90ad81f22 driver: Add notes to SPI driver docs about thread safety 2018-05-07 09:03:48 +08:00
a9dfa06125 esp32: fix two wifi bugs
1. Fix the bug that WiFi receives duplicate MPDU
2. Deauth the station if soft-AP already has max WiFi connections
2018-05-06 17:29:06 +08:00
cbab7fec76 component/bt: Fix bug a2dp have disconnect state when connecting with iphone 7 2018-05-04 19:44:40 +08:00
b827e0e331 Merge branch 'feature/btdm_get_end_handle_when_get_include_service' into 'master'
Component/bt: get end_handle when get include services

See merge request idf/esp-idf!2319
2018-05-04 19:31:43 +08:00
ade78d3850 Merge branch 'bugfix/btdm_fix_version_excahnge_issue' into 'master'
Component/bt: fix version exchange issue

See merge request idf/esp-idf!2329
2018-05-04 19:30:03 +08:00
25440cbc23 Merge branch 'bugfix/tw12351_wifi_lock_op' into 'master'
esp32: optimize wifi lock

See merge request idf/esp-idf!2345
2018-05-04 19:27:14 +08:00
4c3451c0bf Merge branch 'bugfix/modify_default_flash_freq_to_40M_for_iperf_example' into 'master'
example: set default SPI flash mode to 40Mhz for iperf example

See merge request idf/esp-idf!1928
2018-05-04 19:25:20 +08:00
dc7280c1d9 Merge branch 'bugfix/tw20575_fix_potential_phy_calibration_bug' into 'master'
esp32: fix potential PHY calibration bug

See merge request idf/esp-idf!2339
2018-05-04 19:24:05 +08:00
8453806a8c idf.py: Fix 'idf.py monitor' build & flash targets 2018-05-04 16:05:25 +10:00
017f109f6e esp32: optimize wifi lock
Replace portENTER_CRITICAL/portEXIT_CRITICAL with semaphore lock if
the protected resource is only accessed by different tasks
2018-05-04 10:36:04 +08:00
0dca2d4c68 driver(uart): Fix uart_get_baudrate incorrect return value when using ref_tick 2018-05-04 09:41:41 +08:00
aa66a0c848 Merge branch 'bugfix/fix_typos_in_docs' into 'master'
Fix few typos in the docs

See merge request idf/esp-idf!2343
2018-05-04 08:40:44 +08:00
e3a5974651 docs: make conf.py python3 compatible 2018-05-04 02:31:57 +08:00
04384cb37a Merge branch 'feature/btdm_get_and_remove_bond_device' into 'master'
component/bt: Add APIs of get and remove bond device

See merge request idf/esp-idf!2323
2018-05-03 20:58:51 +08:00
d530036ad1 Fix few typos in the docs
Signed-off-by: Hrishikesh Dhayagude <hrishi@espressif.com>
2018-05-03 18:20:16 +05:30
c22c070e07 component/bt: Add APIs of get and remove bond device
1. Add APIs of get and remove bond device
2. Add ESP_BT_GAP_AUTH_CMPL_EVT
2018-05-03 19:05:57 +08:00
402dee17a1 esp32: fix potential PHY calibration bug
1. Add error log if failed to store calibration version/mac/data
2. Change the NVS calibration version/mac/data store sequence
3. Pass the init_data instead of NULL to esp_phy_rf_init() in esp_phy_load_cal_and_init()
2018-05-03 15:48:14 +08:00
22c1b8d4b7 Merge branch 'example/spi_ili_document' into 'master'
example(spi_master): add documentation for LCD commands

See merge request idf/esp-idf!2269
2018-05-03 12:39:34 +08:00
dd91152589 example(spi_master): add descriptions about LCD example 2018-05-03 11:48:26 +08:00
b4ca03c48b example: set default SPI flash mode to 40Mhz for iperf example
Set default SPI flash frequency to 40Mhz for iperf example to avoid random crash for ESP32-WROVER-KIT (v3).
2018-05-03 10:42:34 +08:00
444d6606e7 Merge branch 'bugfix/mark_auto_connect_api_as_obsolete' into 'master'
esp32: mark WiFi auto connect API as deprecated

See merge request idf/esp-idf!1970
2018-05-03 10:40:27 +08:00
ec536b3961 Merge branch 'bugfix/wifi_log_level' into 'master'
wifi: Set default wifi library log level based on sdkconfig

See merge request idf/esp-idf!2334
2018-05-03 10:21:19 +08:00
0d65f3b7f9 Merge branch 'bugfix/light_sleep_fixes' into 'master'
light sleep fixes

See merge request idf/esp-idf!2242
2018-05-02 20:09:36 +08:00
34816ff008 Merge branch 'bugfix/free_mem_console' into 'master'
Free allocations in command.c after error conditions

See merge request idf/esp-idf!2332
2018-05-02 15:48:31 +08:00
5cc966e5b4 Merge branch 'feature/aws_iot_mqtt_on_443' into 'master'
aws_iot: add support for MQTT TLS over port 443

See merge request idf/esp-idf!2292
2018-05-02 15:43:29 +08:00
57630bf5ec Merge branch 'bugfix/cjson_include_objs' into 'master'
cJSON : Include only source file objects

See merge request idf/esp-idf!2326
2018-05-02 15:42:59 +08:00
7ae1df1c5e nvs: Fix recovery from power-off while page is being freed
Currently when page is being freed, items are individually moved from
FREEING page to ACTIVE page and erased. If power-off happens during the
process, the remaining entries are moved to ACTIVE page during recovery.
The problem with this approach is there may not be enough space on
ACTIVE page for all items if an item was partially written before
power-off and erased during recovery. This change moves all the items
from FREEING to ACTIVE page and then erased the FREEING page, If
power-off happens during the process, then ACTIVE page is erased and the
process is restarted.
2018-05-02 12:18:02 +05:30
b9126e69bc wifi: Set default wifi library log level based on sdkconfig
Has to be set at runtime, due to precompiled wifi libraries.

Prompted by discussion on forum: https://esp32.com/viewtopic.php?f=2&t=5570&p=24216#p24216
2018-05-02 15:11:21 +10:00
5f956125c1 Merge branch 'feature/mfg_bin_create_utility' into 'master'
nvs_flash: Add external binary creation support for NVS partition.

See merge request idf/esp-idf!2031
2018-05-02 11:58:38 +08:00
c23915939d esp32: mark WiFi auto connect API as obsolete
Mark esp_wifi_set/get_auto_connect as obsolete
2018-05-02 09:54:31 +08:00
1e8ab3d18e Merge branch 'bugfix/gap_appearance_fixes' into 'master'
components/bt: Make modifications to the support of GAP appearance/icon characteristic

See merge request idf/esp-idf!2249
2018-05-01 23:00:24 +08:00
0bb551c051 Merge branch 'bugfix/btdm_prepare_write_status_correct' into 'master'
component/bt: Check the value received from the peer device when sent the data used prepare write.

See merge request idf/esp-idf!2320
2018-05-01 22:57:20 +08:00
95cbdd76dc Merge branch 'feature/btdm_read_bredr_rssi' into 'master'
component/bt : add class bt read RSSI delta (golden range)

See merge request idf/esp-idf!2325
2018-05-01 22:55:50 +08:00
48c3ad37f1 docs/cmake: Add some notes about need to set IDF_PATH and/or PATH in certain configurations 2018-05-01 17:27:39 +10:00
9ec14decce cmake: Fix idf_size.py merge errors 2018-05-01 17:27:39 +10:00
68282cf80b heap/cmake: Fix linking error when heap tracing is enabled 2018-05-01 17:27:39 +10:00
2fadf8a000 cmake docs: Fix variable expansion when adding tools dir to PATH 2018-05-01 17:27:39 +10:00
c7307de63e cmake: Automatically pull in winpty for menuconfig, monitor if needed 2018-05-01 17:27:39 +10:00
c42b791aaa cmake: Use prebuilt mconf on Windows
Closes https://github.com/espressif/esp-idf/issues/1905
2018-05-01 17:27:39 +10:00
87adbd3229 console: Fix formatting 2018-04-30 14:22:45 +05:30
b3894dba97 console: Free alloc'd memory after error conditions
Closes https://github.com/espressif/esp-idf/issues/1901
2018-04-30 14:21:03 +05:30
9356d6af3f cJSON : Include only source file objects
- test.c can cause issues if there is another main function
- Closes https://github.com/espressif/esp-idf/issues/1883
2018-04-30 13:51:54 +05:30
be707f1c6b Fix potential NULL pointer dereference crash. 2018-04-30 08:03:35 +01:00
f6db61e4f4 cmake docs: Fix Windows tools installer download URL 2018-04-30 15:44:05 +10:00
918c4b4c48 Temporarily add feature/cmake to the list of branches we auto-push to github 2018-04-30 10:18:33 +10:00
d5a5897140 docs: Temporarily allow cmake docs to be in English only 2018-04-30 10:18:33 +10:00
99e02d4e42 windows: New ESP-IDF Tools Installer
Working on 64-bit Windows only due to Ninja binary.
2018-04-30 10:18:33 +10:00
381be65472 cmake: Build all examples in CI
Includes some fixes for compile errors/warnings in examples.
2018-04-30 10:18:33 +10:00
858b95a924 cmake: Add build system tests 2018-04-30 09:59:20 +10:00
1cb5712463 cmake: Add component dependency support
Components should set the COMPONENT_REQUIRES & COMPONENT_PRIVATE_REQUIRES variables to define their
requirements.
2018-04-30 09:59:20 +10:00
4a2f1f0354 esptool: Add note that ESPTOOLPY_PORT & ESPTOOLPY_BAUD are ignored when using idf.py 2018-04-30 09:59:20 +10:00
56902f0054 cmake: Write configuration & component metadata to project_description.json 2018-04-30 09:59:20 +10:00
f1d3bfc0c7 cmake: Add new flasher_args.json file for IDE parsing, document metadata files better 2018-04-30 09:59:20 +10:00
2a3e2b8eed doc: Use confgen.py to build docs from same code path as config generation 2018-04-30 09:59:20 +10:00
b44c8b125f cmake: Style cleanup, add cmake linter to gitlab CI 2018-04-30 09:59:20 +10:00
2ea359ad0c cmake: Cleanups to work with Windows 2018-04-30 09:59:20 +10:00
6bdc49b6e4 cmake: set CCACHE_BASEDIR & CCACHE_NOHASHDIR when using ccache
Dramatically improves build performance when building multiple
projects in different directories.
2018-04-30 09:59:20 +10:00
800bffb8b0 cmake: Add CMakeLists.txt files for all examples
Generating using convert_to_cmake.py, with some minor cleanup
2018-04-30 09:59:20 +10:00
9d88d13f77 cmake: convert_to_cmake.py script for converting IDF GNU Make projects 2018-04-30 09:59:20 +10:00
2816cf1d67 cmake: Change data_file_to_c to data_file_embed_asm for objcopy compatibility
Now generates _binary_filename_start / _binary_filename_end as well as more useful naming.
2018-04-30 09:59:20 +10:00
b57843b66a cmake: Linker scripts need to account for .c.obj extension as well as .o 2018-04-30 09:59:20 +10:00
12be399762 cmake: Add link-time dependencies for linker script files
Requires some hackery around limitations in CMake's LINK_DEPENDS
2018-04-30 09:59:20 +10:00
bc1693aae3 cmake: Fix SPIRAM options 2018-04-30 09:59:20 +10:00
88df8fd293 cmake: Use cmake_lint project, tidy up all CMake source files 2018-04-30 09:59:20 +10:00
15d5e88618 cmake: Automatically include ccache if it's on the path 2018-04-30 09:59:20 +10:00
9f8cdd3572 cmake: Add "Preview release" getting start guide & build system documentation 2018-04-30 09:59:20 +10:00
95e17d6d92 cmake: Allow GetGitRevisionDescription to take arbitrary directory paths 2018-04-30 09:59:20 +10:00
7d9ba66f83 idf.py: Add reconfigure command 2018-04-30 09:59:20 +10:00
4d7bc8e8ba idf.py: Improve status output, error message output 2018-04-30 09:59:20 +10:00
abef220b13 cmake: Allow selecting toolchain file based on config
Refactor IDF "project" functionality under a wrapping of the default
"project" command, so we can tweak it a bit...

Will need more testing in other environments.
2018-04-30 09:59:20 +10:00
04a944598f cmake: Export compile_commands.json as part of build 2018-04-30 09:59:20 +10:00
e94db98e73 link bootloader to libgcc (shouldn't be necessary, is necessary...) 2018-04-30 09:59:20 +10:00
efb5928934 idf.py build & flash tool
Generate flasher args files & .json project info file as part of cmake build
2018-04-30 09:59:20 +10:00
7eaf2f4bdb kconfig: Allow out of tree building, build under cmake build directory 2018-04-30 09:59:20 +10:00
cb99531d15 cmake: Generate PHY init data partition as part of the build 2018-04-30 09:59:20 +10:00
0bdc12256e cmake: Add "size" target, update idf_size.py for different linker behaviour 2018-04-30 09:59:20 +10:00
1f8e07fd8f cmake: Add sdkconfig.defaults support 2018-04-30 09:59:20 +10:00
be962a9444 cmake: Re-run cmake if submodule commits change or a submodule is deinit-ed 2018-04-30 09:59:20 +10:00
4f1a856dbf cmake: Remove defaults for COMPONENT_SRCDIRS, COMPONENT_SRCS, COMPONENT_ADD_INCLUDEDIRS
* Philosophical: "explicit is better than implicit".
* Practical: Allows useful errors if invalid directories given in components as the defaults aren't
  always used. Also trims the -I path from a number of components that have no actual include
  directory.
* Simplifies knowing which components will be header-only and which won't
2018-04-30 09:59:20 +10:00
3fac2b2ddc cmake: Refactor bootloader_subproject into the bootloader component itself 2018-04-30 09:59:20 +10:00
674d398c93 cmake: Add partition table, and .bin file targets 2018-04-30 09:59:20 +10:00
3ae4822115 cmake: Add partition table generation 2018-04-30 09:59:20 +10:00
97e01a4c4d cmake: Remove stray tab 2018-04-30 09:59:20 +10:00
ce6748873d cmake: Add embedding files in components support
Add subscribe_publish AWS example and fixes to allow it to build.
2018-04-30 09:59:20 +10:00
134f2238bd cmake: Refactor main cmake project logic 2018-04-30 09:59:20 +10:00
7f29593a7d cmake: Bootloader subproject & "clean" cleanup 2018-04-30 09:59:20 +10:00
067a19ad88 cmake: Move global IDF-specific compiler/linker options out of the toolchain file
Should restore compatibility with cmake pre-v3.7
2018-04-30 09:59:20 +10:00
f04525095f cmake: Move third-party cmake modules to their own directory 2018-04-30 09:59:20 +10:00
68e75dd0df cmake: Detect missing or out of date submodules during cmake pass 2018-04-30 09:59:20 +10:00
35f521afb6 cmake: Add toolchain version check 2018-04-30 09:59:20 +10:00
99a2359c5c confgen: Create config file if missing 2018-04-30 09:59:20 +10:00
c671a0c3eb build system: Initial cmake support, work in progress 2018-04-30 09:59:20 +10:00
a538644560 config: Add new Python & kconfiglib-based config management tool 2018-04-30 09:59:20 +10:00
5a080ee37a Merge branch 'bugfix/btdm_genrate_hash_key_by_bluedroid' into 'master'
component/bt: Added the hash key generated directly in the bluedroid module.

See merge request idf/esp-idf!2321
2018-04-28 16:42:27 +08:00
5549ea3439 Component/bt: fix version exchange issue
- Android 7.0 version issue
- version exchange late in some phones
- can not get version in smp
2018-04-28 16:32:24 +08:00
fd7baaf4ba components/bt: Make modifications to the support of GAP appearance/icon
characateristic

1. In addition to mentioning in the documentation, use the standard appearance
   values already present and return appropriate error in case an incorrect
   value is passed
2. Add ESP_BLE_APPEARANCE* macros corresponding to BTM_BLE_APPEARANCE*
and use them from the API instead
3. Add the missing appearance parameter values from
https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.characteristic.gap.appearance.xml
4. Fix some minor typos

Signed-off-by: Hrishikesh Dhayagude <hrishi@espressif.com>
2018-04-28 13:59:36 +05:30
e236ffd91f Component/bt: get end_handle when get include services 2018-04-28 16:27:25 +08:00
6c20bc3203 component/bt: Added the hash key generated directly in the bluedroid module.
1. Change all the hash used from the coap module to generated by the bluedroid module directly.

component/bt: Added the <string.h> include file to the gattc_co module to avoid compile error.
2018-04-28 03:11:05 -04:00
ee9ab48347 Merge branch 'feature/btdm_bt_spp_vfs' into 'master'
component/bt: Add SPP profile with VFS

See merge request idf/esp-idf!1883
2018-04-28 15:10:07 +08:00
25798b0e3a Merge branch 'feature/btdm_ble_throughput_optimiz' into 'master'
Feature/btdm ble throughput optimiz

See merge request idf/esp-idf!2265
2018-04-28 15:01:39 +08:00
d95d0ececb component/bt: Add SPP profile with VFS 2018-04-28 11:36:22 +08:00
fd3162d831 component/bt: Added the server test for the bit rate test.
component/bt: optimiz the code
component/bt: optimiz the code.
component/bt: added the l2c change.
component/bt: Added the modified.
component/bt: change the indicate callback function.

component/bt: added the BLE throughput test gattc & gatts example.

component/bt: Change the sdkconfig.default CONFIG_GATTS_NOTIFY_THROUGHPUT setting.

component/bt: Change the throughput_client_task delay method.

component/bt: change the btu task size from 4096 to 5096

comonent/bt: close the print when congest.

component/bt: Added the CPU frequency set method to the readme file.

component/bt: Change the gatts_demo_char1_val to gl_profile_tab[PROFILE_A_APP_ID].char_handle to avoid make error.

example/ble_throughput: Added the Readme explanation.

component/bt: Added the bt lib change.

component/bt: Update the bt lib & Change the LOG level from ERROR to DEBUG when congest.

component/bt: Fixed the bug of timer start assign error.

component/bt: Change back the gattc & gatts demo with same as the master.

example/ble_throughput: Fixed the bug when prepare write of the ble throughput.

component/bt: Update the check_sum algorithm.

component/bt: Change Added the path when used the include file of "l2cdefs.h" & "l2c_api.h".

example/throughput_client: Added the Freertos related header files to ble throughput client demo to avoid compile error.
2018-04-27 23:02:10 -04:00
051d8d6900 Merge branch 'bugfix/tw19728_support_static_allocation_of_freertos_queue_used_by_isr_v3.1' into 'master'
esp32/bt/driver: support static allocation of FreeRTOS queues used by ISR routine (merged from v3.0)

See merge request idf/esp-idf!2317
2018-04-27 20:31:51 +08:00
8f015e3e48 component/bt: Check the value received from the peer device when sent the data used prepare write.
component/bt: Fix misspellings of "corret" in comments in bta_gattc_write_cmpl function.
2018-04-27 08:20:01 -04:00
ed46976f41 esp32/bt/driver: support static allocation of FreeRTOS queues used by ISR routine
Support static allocation of FreeRTOS queues used by ISR routine in WiFi/BT/esp_timer/driver etc
2018-04-27 15:02:30 +08:00
8646913cbf component/bt : add class bt read RSSI delta (golden range) 2018-04-27 14:33:47 +08:00
cc2d1fda96 Merge branch 'bugfix/btdm_modify_include_path' into 'master'
component/bt : modify header files to avoid conflict

See merge request idf/esp-idf!2195
2018-04-27 12:01:46 +08:00
44c3318749 Merge branch 'mesh/feature_fix_root' into 'master'
Mesh/feature fix root

See merge request idf/esp-idf!2308
2018-04-27 10:56:35 +08:00
b9855df44e example: fix ble hid device demo include 2018-04-27 10:52:55 +08:00
ebd1849e18 mesh: add fix root function 2018-04-26 21:15:35 +08:00
94250e42a0 sleep: optimize light sleep wakeup latency 2018-04-26 19:36:47 +08:00
adada3f67e component/bt : modify header files to avoid conflict
1. add the L1 include path with a prefix, such like osi/list.h, stack/a2d_api.h and etc.
2. modify component, only bluedroid/api/include/api is export to another component and application,
   other include path just for bluedroid used
3. put bluedroid/include into common/include/common, so the root directory of bluedroid have no include path.
4. modify doxygen to use esp_bt.h and redirect to
component/bt/bluedroid/api/include/api/

fix compile
2018-04-26 19:32:06 +08:00
ac623a9756 soc/rtc: restore dbg attenuation when waking from sleep
This fixes inability to enter deep sleep after waking up from light sleep
2018-04-26 18:52:46 +08:00
d38b22b11b soc/rtc, sleep: don’t lower the bias for wakeup state
This fixes watchdog resets occurring during wakeup from light sleep.
2018-04-26 18:52:45 +08:00
b0a91630fb soc/rtc: allow main XTAL to be powered on in sleep 2018-04-26 18:52:45 +08:00
3c78faa0a9 soc/rtc: don’t switch frequency in rtc_sleep_init 2018-04-26 18:52:45 +08:00
487210221b esp_timer: add internal function to adjust time 2018-04-26 18:52:45 +08:00
48379b8bbe unit-test.py: increase timeout for test app start up 2018-04-26 18:52:45 +08:00
c61c2a63d0 unity: flush test name before starting the test, use printf everywhere
Unit test runner expects to see the test name echoed after test
selection is made. If the unit test immediately goes into sleep mode,
UART output will not be complete, and test runner will not see the
test name. This flushes the stream buffer and waits for UART FIFO to
be empty before starting the test.

Additionally some parts of code used unity_printf and some used
printf. Since unity_printf was only useful during very early tests
when newlib was not available, replace all its usages with printf.
2018-04-26 18:52:45 +08:00
0236592fe5 Merge branch 'feature/esp32_sw_breaks' into 'master'
ESP32 SW Breakpoints Support

See merge request idf/esp-idf!2316
2018-04-26 18:05:38 +08:00
add969f69d Merge branch 'bugfix/partition_make3.81' into 'master'
partition table: Fix regression with make 3.81

See merge request idf/esp-idf!2314
2018-04-26 15:29:15 +08:00
439140d269 esp32: Adds support for SW breakpoints in flash
Disables app image integrity checks when running under OpenOCD control.
Allows setting breakpoints in flash before application start (just after reset).
2018-04-26 10:17:02 +03:00
4083a356a8 Merge branch 'bugfix/build_failure_with_heap_task_tracking' into 'master'
Fix build failure if CONFIG_HEAP_TASK_TRACKING enabled

See merge request idf/esp-idf!2315
2018-04-26 15:16:43 +08:00
4ba19abeb6 esp_timer: add a function to get next alarm time 2018-04-26 14:39:54 +08:00
464dbbdaa9 Merge branch 'bugfix/fix_a_minor_compile_issue' into 'master'
Bugfix/fix a minor compile issue

See merge request idf/esp-idf!2307
2018-04-26 14:31:04 +08:00
37513cd738 Merge branch 'feature/wifi_add_wifi_event_mask' into 'master'
add WiFi event mask API

See merge request idf/esp-idf!2072
2018-04-26 14:27:42 +08:00
5cdd08ef5a heap: fix build failure due to missing header
Closes https://github.com/espressif/esp-idf/issues/1881

Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-04-26 11:08:58 +05:30
9b9eb7e724 Merge branch 'bugfix/fix_some_wifi_phy_mode_bugs' into 'master'
esp32: fix some wifi phy mode bugs

See merge request idf/esp-idf!2294
2018-04-26 10:27:32 +08:00
8fbdad5b0c partition table: Fix regression with make 3.81
"undefine" was added in make 3.8.2

Namespace the global partition table option variables to minimise scope leakage.
2018-04-26 12:07:27 +10:00
5a63faa516 sdmmc: enable more test cases
Some test cases did not run automatically in CI, this change enables
them.
2018-04-26 10:04:44 +08:00
2699bb49ae sdspi: handle delayed responses for data write commands
Command response tokens can be delayed from the original command by 1
to 8 bytes. In 4a2489b9, handling for delayed tokens was added for
normal (no data) commands, and data read commands. This adds handling
for delayed commands for data write commands.
2018-04-26 10:04:44 +08:00
081c830d2f Merge branch 'feature/partition_size_check' into 'master'
partition_table: Check configured flash size fits in partition table

See merge request idf/esp-idf!2274
2018-04-26 08:48:31 +08:00
d9cbfe42f9 Merge branch 'bugfix/log_macro_statements' into 'master'
log: Make ESP_LOGx macros into single statements

See merge request idf/esp-idf!2275
2018-04-26 08:05:49 +08:00
fa3205737f partition_table: Check configured flash size fits in partition table
Check happens at build time, so flash size config may need to be changed.

Also fixes MD5_OPT undefined warning, closes https://github.com/espressif/esp-idf/issues/1867
2018-04-26 09:51:55 +10:00
e3d404bb8f Merge branch 'bugfix/ci_retry_build_example' into 'master'
ci: Try to build examples in second time in case of error

See merge request idf/esp-idf!2302
2018-04-26 07:36:52 +08:00
2f318d16fa log: Make ESP_LOGx macros into single statements
Requires a semicolon after any use (previously this was optional due to trailing } after expansion)

Closes https://github.com/espressif/esp-idf/issues/1757
2018-04-26 09:08:07 +10:00
81e4cad615 fix the bug that in mdns test code redefine esp_err_t to uint32_t, which should be int32_t 2018-04-25 21:05:21 +08:00
683270958c Merge branch 'feature/btdm_set_bredr_txpower' into 'master'
component/bt : add BR/EDR TX power set

See merge request idf/esp-idf!2267
2018-04-25 20:53:21 +08:00
f5ae421e14 esp32: fix some wifi phy mode bugs
Fix several WiFi phy mode bugs
2018-04-25 20:32:18 +08:00
364c15b9f8 add WiFi event mask API 2018-04-25 19:25:43 +08:00
e660785532 component/bt : add BR/EDR TX power set 2018-04-25 15:28:19 +08:00
d8c63160af Merge branch 'bugfix/btdm_fix_gatt_cache_error' into 'master'
Component/bt: fix gattc some errors

See merge request idf/esp-idf!2104
2018-04-25 14:57:18 +08:00
5fc130f2c0 update emac_reg_v2.h 2018-04-25 14:54:09 +08:00
14b0285a87 Merge branch 'feature/btdm_cherry-pick_ble_hid_device' into 'master'
Feature/btdm cherry pick ble hid device

See merge request idf/esp-idf!1701
2018-04-25 14:53:23 +08:00
f885e8b8de Merge branch 'doc/openocd_release_update' into 'master'
docs: update download links for OpenOCD

See merge request idf/esp-idf!2259
2018-04-25 12:22:21 +08:00
842cd7b38e CI: Try to build examples in second time in case of error
It will help to work around the weird bug during buillding a batch of examples
2018-04-25 11:06:04 +08:00
0b1bb2ab57 Merge branch 'bugfix/fatfs_readwrite_test_failure' into 'master'
fatfs/test: increase stack size in read-write unit test

See merge request idf/esp-idf!2256
2018-04-24 23:43:24 +08:00
907248b6a7 Merge branch 'feature/nvs_coverage' into 'master'
NVS: add power off recovery and coverage test into CI

See merge request idf/esp-idf!2246
2018-04-24 23:42:00 +08:00
52f9a5ca16 Merge branch 'bugfix/sdspi_wp_cd_pins' into 'master'
sdmmc, sdspi: fix handling of CD and WP

See merge request idf/esp-idf!2285
2018-04-24 20:53:47 +08:00
21584827b3 dhcp/dhcpserver Fix max station limit check in dhcp server
Currently when MAX_STATION limit in DHCP config is set to N, dhcp server
issues only N-1 IP addresses. This is problematic from customer
perspective if both SoftAP MAX_STATION and DHCP MAX_STATION limit is set
to same value. With this change DHCP server can issue N addresses that
is inline with the set limit.

Closes TW<20556>
2018-04-24 17:36:55 +05:30
e0f1524c86 sdmmc: add tests for CD and WP pins for SD and SPI mode 2018-04-24 19:08:44 +08:00
e19901c898 sdmmc: don’t print sdio_reset warning when CD is idle 2018-04-24 19:08:44 +08:00
85ab4fc83e sdmmc host: add handling of CD and WP pins
Previous version of the code only connected CD and WP to the
peripheral, in fact the hardware does not use the values of these
signals automatically. This adds code to read CD and WP values when
command is executed and return errors if card is not present, or
write command is executed when WP signal is active.
2018-04-24 19:08:44 +08:00
829c6cef39 sdmmc host: when parameter validation fails, exit cleanly
This fixes lock-up which happened when sending a command, if the
previous command has failed.
2018-04-24 19:08:44 +08:00
edcaa5f300 Merge branch 'bugfix/minor_fix_for_wifi_tx' into 'master'
esp32: minor fix for WiFi TX

See merge request idf/esp-idf!2281
2018-04-24 13:42:41 +08:00
7b50ed70a3 aws_iot: add support for MQTT TLS over port 443
Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-04-23 18:27:28 +05:30
50304d719e Merge branch 'bugfix/esp_tls_error_logging' into 'master'
esp-tls: Expand error logging

See merge request idf/esp-idf!2284
2018-04-23 20:18:30 +08:00
2461a780aa more 2018-04-23 19:09:46 +08:00
5a3b2eddd3 Merge branch 'bugfix/esp_tls_memory_leak' into 'master'
esp-tls: fix memory leak when using CA certification validation

See merge request idf/esp-idf!2283
2018-04-23 18:57:11 +08:00
cad88fb18c Merge branch 'bugfix/authmode_change_event_peg_core_in_wep_mode' into 'master'
bugfix/wrong_authmode_change_event_is_reported_in_wep_mode

See merge request idf/esp-idf!2282
2018-04-23 18:51:46 +08:00
be107320f7 Component/bt: fix gatt cache error
- fix sev == NULL error
- fix start_handle == end_handle
2018-04-23 15:43:10 +08:00
92a16ac6e6 sdspi: fix CD and WP incorrectly configured as outputs 2018-04-23 14:35:40 +08:00
2a7d85cfa4 sdmmc, sdspi: fix initializers to be C++-compatible, add test
Closes https://github.com/espressif/esp-idf/issues/1861
Closes https://github.com/espressif/arduino-esp32/issues/1312
2018-04-23 14:35:13 +08:00
aab573746e Bug fix of authmode change event peg core in wep mode
auth mode change event will report continous in wep mode due to wrong original auth record

close github issue https://github.com/espressif/esp-idf/issues/1804
2018-04-23 14:25:36 +08:00
d477d3c5bd bugfix/sdspi_host.c: wrong CD/WP pin configuration
Looks like the configuration of CP and WP pins are wrong, since the check for `gpio_cd` and `gpio_wp` in `slot_config` seems to be swapped.
2018-04-23 11:32:42 +10:00
088c73bd22 Merge branch 'feature/disable_ble_service_change_pr1673' into 'master'
Add option to ena/dis BLE service change registration

See merge request idf/esp-idf!2210
2018-04-23 09:15:02 +08:00
f4241dc796 Merge branch 'bugfix/typo_in_aws_iot_config' into 'master'
Typo in aws_iot_config.h

See merge request idf/esp-idf!2280
2018-04-23 09:02:02 +08:00
aa357a32bc nvs_flash: Add binary creation support for NVS partition.
Ideally suited for generating a binary externally, containing key-value pairs specific
to device manufacturers. Utility allows creation of a binary, compatible
with NVS structure, which can be separately flashed onto a new
partition. This helps device manufacturers set different values for
different devices, e.g. serial numbers, but using a single firmaware
image.
2018-04-23 00:27:29 +05:30
e37ceaed32 Merge branch 'bugfix/tw18453_fix_ap_eapol_retry_bug' into 'master'
esp32: fix soft-AP eapol retry issue

See merge request idf/esp-idf!2264
2018-04-22 16:37:24 +08:00
db5f927087 esp32: fix the bug that soft-AP fails to retry eapol
Fix the issue that soft-AP fails to retry eapol frame when multiple
stations connects it at the same time.

More
2018-04-22 10:19:31 +08:00
854c5260d4 esp-tls: fix memory leak when using CA certification validation 2018-04-22 01:13:09 +08:00
4e982d4b18 Merge branch 'feature/idf_size_report_symbols' into 'master'
Feature/idf-size: report per-archive symbols and their sizes

See merge request idf/esp-idf!1956
2018-04-20 23:55:19 +08:00
63ce43affc Merge branch 'feature/esp-tls' into 'master'
esp-tls: Fix HTTP2 failure

See merge request idf/esp-idf!2277
2018-04-20 22:35:40 +08:00
6807d80733 Typo in aws_iot_config.h
-breaks compilation when 'Override Shadow RX buffer size' is enabled via
menuconfig

Merges https://github.com/espressif/esp-idf/pull/1869
2018-04-20 19:32:52 +05:30
eb9d0315e5 example/hid: Added the readme file. 2018-04-20 09:20:44 -04:00
b1dcb52fec feature(psram): configure flash and psram speed during runtime
1. Bootloader reads SPI configuration from bin header, so that the burning configuration can be different with compiling configuration.
2. Psram mode init will overwrite original flash speed mode, so that users can change psram and flash speed after OTA.
3. Flash read mode(QIO/DIO…) will not be changed in app bin. It is decided by bootloader, OTA can not change this mode.
4. Add read flash ID function, and save flash ID in g_rom_flashchip
5. Set drive ability for all related GPIOs
6. Check raise VDDSDIO voltage in 80Mhz mode
7. Add check flash ID and update settings in bootloader
8. Read flash ID once and keep in global variable
9. Read flash image header once and reuse the result

Tested cases:
1. Test new and old version of bootloader
boot Flash 20M —> app Flash 80M + Psram 80M
boot Flash 40M —> app Flash 80M + Psram 80M
boot Flash 80M —> app Flash 80M + Psram 80M
boot Flash 20M —> app Flash 80M + Psram 40M
boot Flash 40M —> app Flash 80M + Psram 40M
boot Flash 80M —> app Flash 80M + Psram 40M
boot Flash 20M —> app Flash 40M + Psram 40M
boot Flash 40M —> app Flash 40M + Psram 40M
boot Flash 80M —> app Flash 40M + Psram 40M
2. Working after esp_restart reboot.
2018-04-20 20:51:44 +08:00
d57495cb1c esp-tls: Fix HTTP2 failure
Closes https://github.com/espressif/esp-idf/issues/1874
2018-04-20 16:59:36 +05:30
c32ccf7abb Merge branch 'bugfix/add_NULL_value_check_bta_gattc_get_services' into 'master'
components/bt: Add NULL value check in bta_gattc_get_service_with_uuid()

See merge request idf/esp-idf!2212
2018-04-20 18:15:45 +08:00
1c06b44f08 Merge branch 'bugfix/bt_correct_inquiry_mode_name' into 'master'
components/bt: Correct the enquiry mode name

See merge request idf/esp-idf!2217
2018-04-20 18:14:57 +08:00
102d08fd79 Merge branch 'feature/btdm_gattc_cache' into 'master'
Feature/btdm gattc cache

See merge request idf/esp-idf!1083
2018-04-20 17:49:35 +08:00
22fbcd276c Merge branch 'feature/amazon_freertos_compat_v2' into 'master'
Changes for Amazon Freertos compatibility

See merge request idf/esp-idf!2123
2018-04-20 14:55:47 +08:00
2c7182c59f component/bt: For unity, Change all the associat & associa to abbreviated form(assoc). 2018-04-20 02:16:33 -04:00
6fd25b4d0a Merge branch 'revert-88d0d6ff' into 'master'
Revert "Merge branch 'feature/vfs_select' into 'master'"

See merge request idf/esp-idf!2273
2018-04-20 14:06:32 +08:00
6185e722c3 Revert "Merge branch 'feature/vfs_select' into 'master'"
This reverts merge request !2074
2018-04-20 11:51:41 +08:00
b940abca0e component/bt: Change the cache 'associat' name for unify. 2018-04-19 22:56:33 -04:00
441b4a9742 esp32: fix few components with dependency on networking stack
* Move smartconfig to its component directory, it should be possible to override
  this as whole component
* Fix few header includes related to lwIP networking stack

Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-04-19 18:28:55 +05:30
43a12894ea driver/spi: add _ISR counterparts if invoked from interrupt for critical section
Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-04-19 18:28:55 +05:30
c65a08d2fb freertos: portCLEAN_UP_TCB should be performed before freeing tcb memory
Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-04-19 18:28:55 +05:30
24ad64bfe4 pthread: implement local storage using pvTaskGetThreadLocalStoragePointer
If static task cleanup option is enabled, then before invoking application
defined `vPortCleanUpTCB` hook, pthread specific cleanup is performed.

Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-04-19 18:28:55 +05:30
2d598d6fb7 esp_timer: use _ISR version of port{ENTER,EXIT}_CRITICAL from ISR 2018-04-19 18:28:55 +05:30
41ae0fe52b newlib: define _REENT_INIT_PTR correctly for ESP_PLATFORM 2018-04-19 18:28:55 +05:30
573ea385b4 multi_heap: use portENTER/EXIT_CRITICAL instead of taskENTER/EXIT_CRITICAL 2018-04-19 18:28:55 +05:30
f65870566a crosscore_int: use _ISR version of portENTER/EXIT_CRITICAL in ISR 2018-04-19 18:28:55 +05:30
5d3b26e8d0 Merge branch 'feature/mesh' into 'master'
mesh: update mesh libs

See merge request idf/esp-idf!2244
2018-04-19 20:24:16 +08:00
6f504deed0 nvs: run all test by default, exclude long tests by tag
Reduces the chance of new tests being skipped in CI
2018-04-19 15:08:08 +08:00
f8cb95d0b8 nvs: print progress in nvs API tests, reduce number of iterations 2018-04-19 15:08:08 +08:00
6545f8eaf3 nvs: add long ci test for power off recovery and coverage
This test can be triggered manually:
`bot test name: test_nvs_coverage`
2018-04-19 15:08:08 +08:00
9d0751e2b1 ci: support jobs which don’t run unless triggered by name
By default, any job will run unless a filter is given, in that case
the filter will determine if the job should run or not. Some jobs do
not need to be run by default, and should only be triggered using the
bot. For such jobs, BOT_NEEDS_TRIGGER_BY_NAME can added to
environment variables.
2018-04-19 15:08:08 +08:00
88d0d6ffb0 Merge branch 'feature/vfs_select' into 'master'
Allow VFS file descriptors in select()

See merge request idf/esp-idf!2074
2018-04-19 15:06:02 +08:00
b297b72abb Merge branch 'bugfix/fix_gpio_install_isr_service_check_value' into 'master'
driver(gpio): modify return value when gpio ISR service already exists.

See merge request idf/esp-idf!2125
2018-04-19 15:01:50 +08:00
fbb3610c0b Merge branch 'feature/bootloader_refactoring_common' into 'master'
bootloader: Refactoring

See merge request idf/esp-idf!2251
2018-04-19 14:58:00 +08:00
96b4a45cde Merge branch 'feature/remove_make_dependency_on_git' into 'master'
make: remove build system dependency on `git` using some hooks

See merge request idf/esp-idf!2211
2018-04-19 13:01:12 +08:00
bc4c201e20 Merge branch 'bugfix/fix_github_reported_1841_and_1845' into 'master'
Fix few minor github reported issues

See merge request idf/esp-idf!2252
2018-04-19 12:59:37 +08:00
ece6bd9b82 component/bt: Change the btc gattc callback function with the compile error.
1. Change all the gattc API && bta gattc layer.
2. Debug the code and change the btc_ble_gattc_get_db method.
3. Change the gatt read API interface.
4. Reconstruction the BTA_gattc_cache code.
5. Change back the bluedroid_get_status to marco.
6. Change the gattc docs format.
7. Change the docs format.
8. fix the read char value bug.
9. change the gattc_get_attr_count method.
10. Change back the bta_gattc write ccc code.
11. Change the gattc api docs format
12. Change the gattc API docs.
13. Change the prepare write descriptor method to avoid the exection.
14. modify gatt clinet demo with new API
15. Change the p_src_data->read.p_value to avoid exection.
16. Change the bugfix of gattc unreg for the notify.

    component/bt: Added the serch service res start_handle & end_handle to the result.

component/bt: Added the bta_gattc_cache_write when gatt discovery complete.

component/bt: Added the bta_gattc_cache_write declaration.

component/bt: Added the comments for esp_ble_gattc_cache_refresh API.

component/bt: Change the spelling errors & some comment error.

component/bt: fix bug of get gattc cache address list error.

1. Change the esp_bluedroid_get_status to macro;
2. added the malloc & free for the get_addr_list

component/bt: Added the addr_info->ass_addr == NULL Judgment to prevent crashes in the bta_gattc_co_cache_find_src_addr function.

component/bt: Fixed following gattc cache bugs

1. gattc can't refresh the gattc cache in the gatt discover state;
2. remove the nvs_get_blob in the cache address init function;
3. added the nvs_set_blob return value judgment in the cache address save function;
4. added the list_new when ass_address is NULL;
5. Change the ass_address list remove method to fix the ass address can't remove bug.
2018-04-19 12:05:13 +08:00
efb747d167 example/hid: Added the BLE hid device profile.
demo/hid: Change the license validity period & some unreasonable LOG print.

example/hid: Added the Vendor Report output support.
2018-04-19 11:44:51 +08:00
04103e96f5 esp-tls: Log errors for all "connection failed" code paths 2018-04-19 11:34:27 +10:00
507ca8196c esp-tls: Allow esp_tls_conn_delete() to be called with a NULL pointer 2018-04-19 11:34:06 +10:00
8fd4ee1b1f docs: add note regarding ESP-IDF version
Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-04-18 18:30:58 +05:30
bcc5bad7b5 docs: update download links for OpenOCD
Point to the latest release on Github, which can now be produced by CI.

Ref. https://github.com/espressif/openocd-esp32/issues/30
Ref. https://github.com/espressif/openocd-esp32/issues/18
2018-04-18 20:58:04 +08:00
cbd7431d94 fatfs/test: increase stack size in read-write unit test
2048 byte stack was not sufficient when some error was logged by SD
card driver, leading to stack overflows.
2018-04-18 14:35:21 +08:00
fe907bde60 Merge branch 'bugfix/heap_tracing_newlib_allocations' into 'master'
heap tracing: Fix tracing of newlib internal allocations

See merge request idf/esp-idf!1992
2018-04-18 12:07:15 +08:00
b76c9ef706 Merge branch 'feature/esp-tls' into 'master'
esp-tls: Fix connection failure

See merge request idf/esp-idf!2241
2018-04-18 11:11:49 +08:00
17ab60d642 Merge branch 'bugfix/nvs_failed_crc_assert' into 'master'
nvs: don’t expect items with bad CRC to be in cache

See merge request idf/esp-idf!2239
2018-04-18 11:01:21 +08:00
27a5096d62 Merge branch 'bugfix/nvs_power_off_recovery' into 'master'
nvs: Fix recovery after power-off during erase operation

See merge request idf/esp-idf!2238
2018-04-18 11:00:56 +08:00
899f2fa1ed mesh: update mesh libs
1. fix issues on sending beacon caused by too much tx retries on other packets.
2. modify not to scan if rc exists when connect.
3. modify scan dwell time to default 120ms fo root.
2018-04-17 11:49:54 +00:00
86256b3541 bootloader: Refactoring
Need to make the bootloader modular so that users can redefine its functional part.

- refactoring and moving functions to the bootloader_support component
- Changed function to `void` bootloader_utility_load_image(...);

TW19596
2018-04-17 16:36:49 +05:00
6852d653bd Allow VFS file descriptors in select() 2018-04-17 11:25:30 +02:00
9a3c4b7134 nvs: Fix recovery after power-off during erase operation
Current code for recovery after power-off do not clean-up partially
erased items for FULL pages. If the erasure was part of modification
operation, this gets luckily cleaned-up because of duplicate detection
logic. For erase-only operation, the problem still exists. This patch
adds the recovery for FULL pages also.

Closes TW<20284>
2018-04-17 12:24:21 +05:30
c1c49b635a Merge branch 'bugfix/build_v0_output' into 'master'
build: remove some debug lines printed when V=0

See merge request idf/esp-idf!2237
2018-04-17 14:24:50 +08:00
16ad81c636 Merge branch 'feature/btdm_get_and_set_cod' into 'master'
component/bt: Add API: get cod & set cod

See merge request idf/esp-idf!2127
2018-04-17 14:21:18 +08:00
a3cfbdb150 Merge branch 'bugfix/btdm_a2dp_source_cleanup_bug' into 'master'
component/bt: Fix bug of a2dp source cleanup bug when connected

See merge request idf/esp-idf!2042
2018-04-17 14:20:15 +08:00
0d55f2cb7b Merge branch 'bugfix/btdm_add_assert_when_no_device_name' into 'master'
component/bt: Fix exception when there is no device name

See merge request idf/esp-idf!2184
2018-04-17 14:19:39 +08:00
60ab582ba6 bt: fix incorrect comments for error codes
Closes https://github.com/espressif/esp-idf/issues/1845

Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-04-17 10:44:48 +05:30
959c677025 rtc_module: fix build failure if assertions are disabled
Closes https://github.com/espressif/esp-idf/issues/1841

Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-04-17 10:44:48 +05:30
790049b3dd build: remove some debug lines printed when V=0
With V=0, build process would print “including .../Makefile.projbuild" lines, causing problems for print_flash_cmd target.
The issue was due to the way macro expansion works in make. To delay evaluation of info function until the execution of expanded block, two dollar signs are required.
Test for print_flash_cmd target added.
2018-04-17 08:04:38 +08:00
a21336eaa1 Merge branch 'bugfix/nvs_unit_test_state' into 'master'
nvs: fix nvs_get_stats unit test

See merge request idf/esp-idf!2250
2018-04-16 22:07:25 +08:00
6a4033b8a7 nvs: fix nvs_get_stats unit test
Changed check for the returned parameter from ESP_ERR_NVS_PART_NOT_FOUND to ESP_ERR_NVS_NOT_INITIALIZED.
2018-04-16 13:28:45 +00:00
c36687aac6 Merge branch 'test/fix_ci_test_fail_in_jap_case' into 'master'
test: fix CI fail when join AP

See merge request idf/esp-idf!2245
2018-04-16 19:02:46 +08:00
11f7e39b18 Merge branch 'chore/issue_template' into 'master'
add github issue template for users to report issues easily.

See merge request idf/esp-idf!2148
2018-04-16 18:50:42 +08:00
2c3644a09f nvs: don’t expect items with bad CRC to be in cache
When erasing a variable length item with an incorrect CRC32, the span
value of the item can not be trusted, so the item will be erased with
span = 1. Subsequent entries represent the data of the variable
length item, and these will be treated as separate items. For each
entry CRC32 is checked, the check most likely fails (because the
entry contains arbitrary data, and not a proper NVS item), and the
entry is erased. Erase function assumed that every item should be
present in cache, but it is not the case for the entries which are
just parts of item’s payload. This change allows for the item to be
not found in the hashlist, if the CRC32 check fails.
2018-04-16 09:36:17 +00:00
bb69dbbef1 add github issue template for users to report issues easily 2018-04-16 08:16:13 +00:00
fc1e944f59 Merge branch 'bugfix/nvs_stat_test' into 'master'
NVS: fix nvs_get_stats unit test

See merge request idf/esp-idf!2248
2018-04-16 14:45:43 +08:00
d3fd00c049 Merge branch 'bugfix/spi_miso_on_input_only_pins' into 'master'
fix(spi): allow to use MISO on GPIO34-39.

See merge request idf/esp-idf!2136
2018-04-16 14:39:02 +08:00
20405fbbcc nvs: make nvs_flash_deinit useable from unit tests 2018-04-16 14:06:52 +08:00
fa3bd16d75 nvs: deinit NVS in nvs_stats unit test
This fixes the failure when this test runs after another test which
leaves NVS initialized.
2018-04-16 12:50:57 +08:00
d0d314d8f8 Merge branch 'bugfix/nvs_page_selection' into 'master'
nvs: Fix page selection algo to consider free entry counts as well

See merge request idf/esp-idf!2240
2018-04-16 10:32:01 +08:00
5029eb4b3b Merge branch 'feature/nvs_get_count_used_entries' into 'master'
NVS: add API to get used entries count

See merge request idf/esp-idf!1982
2018-04-16 10:25:01 +08:00
7cfd08deca test: fix join AP fail during AP power on 2018-04-16 09:27:46 +08:00
8b3fda99f5 Merge branch 'feature/uart_add_api_get_cmd_position' into 'master'
driver(uart): Add API to get the position of cmd_char

See merge request idf/esp-idf!2177
2018-04-16 08:03:25 +08:00
4a7ca68596 tools/ci: add test case for build without dependency on git
Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-04-13 17:15:17 +05:30
344e757a6a make: remove build system dependency on git using some hooks
Currently for checking IDF version and submodules existence,
build system uses `git` commands. But, it could be possible use-case
where `git` is not installed (assuming IDF is flattened in source format)
on system and build happens without any warnings.

Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-04-13 17:13:44 +05:30
9c7207ed3c Merge branch 'bugfix/soc_clk_out_fields' into 'master'
soc/io_mux: make CLK_OUT fields compatible with REG_SET/GET_FIELD

See merge request idf/esp-idf!2133
2018-04-13 19:42:20 +08:00
d18c284df6 Merge branch 'bugfix/docs_wrap_text_in_tables' into 'master'
Bugfix/docs wrap text in tables

See merge request idf/esp-idf!2209
2018-04-13 19:37:49 +08:00
0d0445103b esp-tls: Fix connection failure when esp-tls config is empty 2018-04-13 16:58:19 +05:30
c17b59ebe1 Merge branch 'feature/mesh' into 'master'
mesh: update mesh libs

See merge request idf/esp-idf!2218
2018-04-13 18:55:39 +08:00
370343b35e Merge branch 'bugfix/build_exclude_external_objects' into 'master'
build: fix excluding source files outside of component root

See merge request idf/esp-idf!2230
2018-04-13 18:35:10 +08:00
7e79471ece nvs: Fix page selection algo to consider free entry counts as well
Current page selection algorithm selects a page for compaction based on just erased counts
and gives up when it does not find any page with erased count greater than 0. This is
problematic since the current allocation procedure skips the active page if there is not
enough room for the item in that page leaving free chunks on the pages. This change modifies
the algorithm to consider both erased as well as free counts on the candidate pages.

Closes TW<20297>
2018-04-13 14:49:05 +05:30
c93626db3f nvs:Add functions for calculating used/free entries
Users needs functions to count the number of free and used entries.

1. `nvs_get_stats()` This function return structure of statistic about the uspace NVS.
(Struct: used_entries, free_entries, total_entries and namespace_count)
2. `nvs_get_used_entry_count()` The second function return amount of entries in the namespace (by handler)
3. Added unit tests.

Closes TW<12282>
2018-04-13 10:34:13 +05:00
6c44fc70bc Merge branch 'feature/gpio_add_hold_support' into 'master'
driver(gpio):   Add api support digital pad hold function

See merge request idf/esp-idf!2186
2018-04-13 12:18:44 +08:00
92fd4c42e1 mesh: update mesh libs
1. fix a bug in initliazing map beacon interval.
2. fix not send MESH_EVENT_ROUTING_TABLE_REMOVE when MESH_NWK_CHILD_DISCONNECTED.
3. fix a bug in returning roots ie len.
2018-04-13 11:52:31 +08:00
45f8bcf3f8 fix(spi): allow using MISO on GPIO34-39
Breaking Changes: arguments of ``spicommon_bus_initialize_io`` are changed.

Closes https://github.com/espressif/esp-idf/issues/1736.
2018-04-12 17:01:38 +08:00
77629129c0 chore(spi): update the return value of spi init functions 2018-04-12 17:01:38 +08:00
dceb3452c7 doc(spi_master): format the documentation of several fields and macros in spi_master.h 2018-04-12 17:01:37 +08:00
c876ab390b Merge branch 'bugfix/cn_windows_setup_doc_fixes' into 'master'
Update windows-setup.rst

See merge request idf/esp-idf!2232
2018-04-12 16:37:41 +08:00
bcbcdf6f99 build: fix excluding source files outside of component root
Since !2190, source files located outside of the component root
produce object files inside build directory. This change fixes
handling of COMPONENT_OBJEXCLUDE variable for such files. Tests are
added.
2018-04-12 14:28:54 +08:00
234723c061 Merge branch 'feature/pcnt_add_isr_manage_apis' into 'master'
Driver(pcnt) :  Add new feature that each unit can  has it's own interrupt handler.

See merge request idf/esp-idf!2086
2018-04-12 09:06:56 +08:00
c626a8fe74 Merge branch 'feature/build_out_of_tree_srcs' into 'master'
make: Build out of tree component srcs under component build dir

See merge request idf/esp-idf!2190
2018-04-12 08:49:56 +08:00
e2cad1a048 Merge branch 'doc/esp_idf_requires_gcc' into 'master'
doc: Add gcc to list of ESP-IDF prerequisite packages

See merge request idf/esp-idf!2221
2018-04-12 08:48:39 +08:00
12dbe4dac5 Merge branch 'feature/btdm_add_set_local_icon_api' into 'master'
Component/bt: add set gap icon API

See merge request idf/esp-idf!2129
2018-04-11 20:48:13 +08:00
6b7ad6b707 Merge branch 'bugfix/btdm_do_not_update_conn_params_when_have_key_in_slave' into 'master'
Component/bt: do not update connection params when already have keys in slave

See merge request idf/esp-idf!2176
2018-04-11 20:47:27 +08:00
2236249555 driver(pcnt): Add some APIs to support each unit can have it's own interrupt handler. 2018-04-11 16:15:09 +08:00
bdadd95dd7 Merge branch 'feature/wwrite_string_for_idf' into 'master'
Enable -Wwrite-strings when compiling IDF's own C files

See merge request idf/esp-idf!2193
2018-04-11 14:59:08 +08:00
bae9709a79 Merge branch 'feature/sdio_master' into 'master'
SDIO master driver

See merge request idf/esp-idf!2008
2018-04-11 12:38:42 +08:00
4ceefea845 Merge branch 'test/update_ci_test_cases' into 'master'
test: update ci test cases

See merge request idf/esp-idf!1959
2018-04-11 11:51:32 +08:00
c6829fa5b8 sdmmc: improve error handling during SPI mode init
- In SPI mode, the card will respond to the initial SDIO reset (done
using CMD52) with “invalid command” error. Handle this correctly.

- sdmmc_card_init had a hack where GO_IDLE_STATE (CMD0) command was
sent twice. Add explanation why this is done, and don’t expect
correct response from the card on first CMD0.

- improve logs printed at debug level by adding CMD index
2018-04-11 11:11:17 +08:00
e148c2a12c docs: update SDMMC and SDSPI documentation
- Split SDMMC page into pages about SDMMC/SDSPI hosts and a page about
   the protocol layer.
- Use autogenerated API reference instead of manually generated one.
- Add information about SDIO APIs.
2018-04-11 11:07:13 +08:00
ee600784c5 sdmmc: add SDIO support
- Add SDIO support at protocol layer (probing, data transfer, interrupts)
- Add SDIO interrupts support in SDMMC host
- Add test (communicate with ESP32 in SDIO download mode)
2018-04-11 11:07:13 +08:00
5f97e6bebb sdmmc: fill as many DMA descriptors as possible 2018-04-11 11:06:50 +08:00
20a8c3318a sdmmc: do expect CMD_DONE interrupt after response timeout
Existing code assumed that response timeout is not followed by CMD_DONE,
which was not true, in fact. Host datasheet states that CMD_DONE is sent
after an RTO.
2018-04-11 11:06:50 +08:00
01cd2fce73 sdmmc: print error status only once 2018-04-11 11:06:50 +08:00
5fc6fb58ea sdmmc: don't whitelist the opcodes when handling response timeout
All the commands which do not have a response must have their flags set
accordingly. Therefore the host will not send RTO interrupt if response
is not expected. It is a bug in the code logic if it happens otherwise.
2018-04-11 11:06:50 +08:00
f02cff13cc sdmmc: set highest possible host clock divider
SDMMC host suffers from an issue that it outputs data near the rising
edge of the card clock, which is the edge used by the card to sample
data. If sampling time constraint is not satisfied, card may read data
after the transition.

The phases of output/input data can, in fact, be adjusted. However this
adjustment happens in the clock generation block outside of the host.
So the maximum phase change which can be created this way is equal to
half of the host clock period. So if the host clock is set to the lowest
possible frequency (for the given card frequency), then the phase offset
(and hence the hold time) will be the highest. This change modifies the
logic used to determine clock dividers accordingly.

sdmmc host: set correct dout phase and print correct frequency
2018-04-11 11:06:50 +08:00
84d6793f77 sdmmc: don't set data_expected on SET_BUS_WIDTH command
SET_BUS_WIDTH is not a data transfer command. Extensive search in the
host datasheet and SD card spec did not reveal the origin of this hack
or 'feature'. Further testing showed that removing this does not lead to
regressions.
2018-04-11 11:06:50 +08:00
42de5fb76d sdmmc: send init sequence before CMD0 2018-04-11 11:06:50 +08:00
907fc1167a gpio: add special GPIO signal values 2018-04-11 11:06:50 +08:00
eb731030a4 doc: Add gcc to list of ESP-IDF prerequisite packages
Closes https://github.com/espressif/esp-idf/issues/1842#issuecomment-380274150
2018-04-11 10:19:24 +10:00
f409a33653 test: update ci test case 2018-04-10 14:08:10 +00:00
e184a2fc0b Merge branch 'feature/esp-tls' into 'master'
https_request: Fix CI failure

See merge request idf/esp-idf!2216
2018-04-10 22:07:07 +08:00
9c41c93f5f components/bt: Correct the enquiry mode name
Signed-off-by: Hrishikesh Dhayagude <hrishi@espressif.com>
2018-04-10 17:58:11 +05:30
a48e0121e0 https_request: Fix CI failure 2018-04-10 16:00:34 +05:30
9464699952 Merge branch 'bugfix/Kconfig_fix_incorrect_description' into 'master'
Fix Kconfig.projbuild in some examples, where myssid is the password

See merge request idf/esp-idf!2192
2018-04-10 18:19:34 +08:00
2522c1b2f9 Merge branch 'bugfix/rtc_clk_fixes' into 'master'
Power management and RTC fixes

See merge request idf/esp-idf!2131
2018-04-10 18:17:02 +08:00
52dbcef908 component/bt: Fix exception when there is no device name 2018-04-10 17:55:33 +08:00
744c2dcdd9 Resolve problems found by enabling -Wwrite-strings compilation flag 2018-04-10 08:53:43 +02:00
33480d1a2c Enable -Wwrite-strings when compiling IDF's own C files 2018-04-10 08:53:33 +02:00
f7b7b4ef59 Merge branch 'bugfix/mdns_fixes' into 'master'
MDNS: Fix some issues when hostname is not set or services are removed

See merge request idf/esp-idf!2179
2018-04-10 13:43:02 +08:00
2914111c8c Merge branch 'bugfix/heap_fragmentation_on_split_pr1761' into 'master'
heap: Try to merge tail with next block when splitting

See merge request idf/esp-idf!2147
2018-04-10 12:14:57 +08:00
e23cfb4038 Merge branch 'bugfix/spi_master_example_gfx' into 'master'
Spi_master: spiffier graphics

See merge request idf/esp-idf!2030
2018-04-10 12:08:01 +08:00
284f332f06 components/bt: Add NULL value check in bta_gattc_get_service_with_uuid()
Signed-off-by: Hrishikesh Dhayagude <hrishi@espressif.com>
2018-04-10 09:34:03 +05:30
ccf09c3b39 driver(gpio): Add api support digital pad hold function. 2018-04-10 11:31:59 +08:00
801632d68b bt: Add option to ena/dis BLE service change registration
Add option to enable/disable automatic registration of BLE Gattc
service change notify. Which sends in parralel
(with user message flow) commands to BLE server which
sometime leads to GATT_BUSY.
(BLE server is able to handle only one command at time)

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

Merges https://github.com/espressif/esp-idf/pull/1673
2018-04-10 12:27:33 +10:00
2bfef060ba Merge branch 'bugfix/small_fixes_from_github' into 'master'
Bugfix/small fixes from github

See merge request idf/esp-idf!2200
2018-04-10 09:19:19 +08:00
58ed6cc9af Merge branch 'bugfix/wifi_ps_modem' into 'master'
wifi: Add WIFI_PS_MODEM for backwards compatibility with V3.0 API

See merge request idf/esp-idf!2203
2018-04-10 09:18:53 +08:00
789edc0b52 component/bt: Add API: get cod & set cod
In response to: https://github.com/espressif/esp-idf/issues/1565
2018-04-09 19:25:26 +08:00
d41b8d9515 Merge branch 'bugfix/remove_pm_gpio_dbg' into 'master'
component/esp32 : remove pm gpio dbg

See merge request idf/esp-idf!2206
2018-04-09 19:14:18 +08:00
d88f2582cf Merge branch 'feature/build_exclude_components' into 'master'
make: EXCLUDE_COMPONENTS

See merge request idf/esp-idf!2204
2018-04-09 19:13:39 +08:00
97a382077f wifi: Add WIFI_PS_MODEM for backwards compatibility with V3.0 API 2018-04-09 16:55:38 +10:00
421c6f154b Fix exception when service is removed while there are pending packets that depend on it 2018-04-09 09:40:08 +03:00
1bde34c1f1 component/esp32 : remove pm gpio dbg 2018-04-09 14:33:48 +08:00
b11209b070 Merge branch 'feature/esp-tls' into 'master'
feature/add simplified TLS socket APIs

See merge request idf/esp-idf!1951
2018-04-09 14:25:21 +08:00
9a985359d6 Merge branch 'bugfix/wifi_fix_some_typos' into 'master'
Fix two WiFi and LWIP typos

See merge request idf/esp-idf!2189
2018-04-09 11:59:00 +08:00
046ff2e628 Make error codes looks like literals in the code of them (easy for searching). Minor fixes, typos 2018-04-09 13:54:18 +10:00
43fb8033ec ReadTheDocs theme has an annoying bug of text not being wrapped inside table cells. Each row is extended to fit the text as a single line. For a table with multiple columns and long sentences the table may get wide, with long scrollbar underneath and is not convenient to read. This MR makes the text wrap inside table cells. There is an open PR to fix this issue - https://github.com/rtfd/sphinx_rtd_theme/pull/432. 2018-04-09 05:47:36 +02:00
d56a44ac79 Fixed issues with tables 2018-04-09 05:46:57 +02:00
3d89c8ba74 rmt: Fix LoadProhibited on RX END
Fixes exceptions LoadProhibited, when rmt tries read variable p_rmt on RX END which can be 0.
It happens after esp_reset()  (OTA) and the rmt is not probably stopped by it.
In other words the routine rmt_driver_isr_default was called before second rx channel was registered.

scenario:
register tx channel
register rx channel
reboot
register tx channel
-> exception (because rx channel is accessed)

Merges https://github.com/espressif/esp-idf/pull/1671
2018-04-09 12:29:05 +10:00
9f39411e80 esp32: get_chip_info_esp32() return correct model number
out_info->model was zeroed by memset

Merges https://github.com/espressif/esp-idf/pull/1760
2018-04-09 12:28:23 +10:00
97c6a94a03 Bugfix GPIO_DIS_OUTPUT to work with pin 32 and up
Merges https://github.com/espressif/esp-idf/pull/1796
2018-04-09 12:28:23 +10:00
9acebb08fe doc: spelling
Merges https://github.com/espressif/esp-idf/pull/1800
2018-04-09 12:28:21 +10:00
32e0903561 doc: Spelling
Merges https://github.com/espressif/esp-idf/pull/1798
2018-04-09 12:28:15 +10:00
765824e1fd make: EXCLUDE_COMPONENTS
Add project build variable, documentation for EXCLUDE_COMPONENTS
2018-04-08 13:07:43 -04:00
4810f5d02e Update windows-setup.rst 2018-04-08 17:05:02 +08:00
9d416fe84e resolve merge conflicts 2018-04-06 18:16:40 +05:30
254212b02b changes to accomodate new Doc structure 2018-04-06 17:16:27 +05:30
b09c3e9878 mbedtls integration in esp-tls 2018-04-06 17:16:27 +05:30
9c8a5ca979 https mbedtls example 2018-04-06 17:16:27 +05:30
30b50cbfb3 esp-tls header file name change 2018-04-06 17:16:27 +05:30
e29294b49a Resolved Issues 2018-04-06 17:16:27 +05:30
8cd3c47956 esp-tls api support in https_request 2018-04-06 17:16:27 +05:30
8a1dcc0765 CA Certificate verification 2018-04-06 17:16:27 +05:30
8211a16207 Use esp-tls in the http2 example 2018-04-06 17:16:27 +05:30
070884fc2e Include error log in case of error 2018-04-06 17:13:14 +05:30
433bd8c91c Minor fixes 2018-04-06 17:13:14 +05:30
1c72c8d126 Supports TLS with HTTP2 client 2018-04-06 17:13:14 +05:30
eb051fe72f Minor fixes 2018-04-06 17:13:14 +05:30
adbcaf8938 Cast to remove warnings 2018-04-06 17:13:14 +05:30
e45024e088 Don't use 'port' number for DNS query
- In some cases where the HTTP URL contains the port number
(http://hostname:334), the DNS querier fails to resolve the hostname.
- Hence we have to populate the port number ourselves.
- This can only be done based on whether we get an IPv4 or IPv6
  address.
2018-04-06 17:13:14 +05:30
306d59d32c Make read/write function pointers
as per Ivan's feedback
2018-04-06 17:13:14 +05:30
7f35c4ff3e esp-tls: Basic structure
Purpose:
1. TLS calls can be too many, and require a user to know the expected behaviour. A simple TLS socket wrapper that can be used in any higher level protocol.
2. Uses OpenSSL compatibility layer, so applications using esp-tls can be built on the host, and it should just work on ESP
2018-04-06 17:13:14 +05:30
5b05a1f822 make: Build out of tree component srcs under component build dir
Strips leading ../ when generating object file paths, keeps these in sync with the source files
otherwise.

This prevents object files landing in other directories, including outside the build directory, if
the component_srcdirs start with ../
2018-04-06 13:10:19 +10:00
59d19d12af Fix Kconfig.projbuild in some examples, where myssid is erroneously kept as the default value for password.
Signed-off-by: Hrishikesh Dhayagude <hrishi@espressif.com>
2018-04-05 14:34:43 +05:30
e727582180 Fix two WiFi and LWIP typos
1. close github issue: https://github.com/espressif/esp-idf/issues/1792
    2. close github issue: https://github.com/espressif/esp-idf/issues/1781
2018-04-05 11:46:42 +08:00
f586f5e690 Merge branch 'feature/get-started-20180130' into 'master'
Feature/get started 20180130

See merge request idf/esp-idf!1898
2018-04-05 09:54:17 +08:00
89369b64fa Merge branch 'feature/mesh' into 'master'
add mesh feature

See merge request idf/esp-idf!1991
2018-04-04 23:30:32 +08:00
2984cdbbe3 add mesh feature 2018-04-04 22:57:45 +08:00
c842725be0 Merge branch 'bugfix/pm_coex_minor_things' into 'master'
Bugfix/pm coex minor things

See merge request idf/esp-idf!2180
2018-04-04 17:54:40 +08:00
e72f7e7ec4 Add more description for WiFi modem sleep in document and example. 2018-04-04 16:47:03 +08:00
1a302cbac1 Merge branch 'bugfix/open_uart_non_blocking' into 'master'
Make UART non-blocking when the file descriptor was opened with the O_NONBLOCK flag

See merge request idf/esp-idf!2153
2018-04-04 14:43:31 +08:00
53234ef2bc Merge branch 'refactor/rtc_split_module' into 'master'
bugfix(rtc): make sure peripherals (DAC, HALL) are turned off before conversion.

See merge request idf/esp-idf!1848
2018-04-04 09:00:58 +08:00
58e7464dc0 component/esp32 : clear some minor thingsw about PM and coexistence 2018-04-03 20:13:49 +08:00
595ddfd825 Merge branch 'feature/build_ssc_in_multiple_ci_jobs' into 'master'
CI: support build SSC in multiple jobs

See merge request idf/esp-idf!1622
2018-04-03 18:20:38 +08:00
d7c8866896 Merge branch 'test/support_multi_stage_unit_test_case' into 'master'
unit-test-app: support multi stage unit test case

See merge request idf/esp-idf!2139
2018-04-03 18:20:16 +08:00
139d49894c Merge branch 'feature/deactivate_wakeup_trigger' into 'master'
esp32: Add deactivation of wake up trigger for different sources

See merge request idf/esp-idf!2079
2018-04-03 15:19:10 +08:00
5fdc978626 Merge branch 'doc/spi_speed' into 'master'
doc(spi_master): add descriptions about the SPI master speed

See merge request idf/esp-idf!2145
2018-04-03 15:17:25 +08:00
3ccb12530b heap: Change test_multi_heap_on_host multi-config to bash script not Makefile
Hopefully fix some CI building issues with parallel builds.
2018-04-03 16:34:02 +10:00
305c788c60 driver(uart): Add API to get the position of cmd_char 2018-04-03 12:34:16 +08:00
4b7eb1792e Try to merge tail with next block when splitting
When splitting a memory block, check if the next block is free.
If it is, then just extend it upwards instead of creating a new block.
This fixes a bug where when shrinking existing allocations would result in irreversible free space fragmentation.

When testing on the host, test all the poisoning configurations.
2018-04-03 12:30:52 +10:00
393f3da37c Merge branch 'feature/btdm_add_get_local_used_addr_API' into 'master'
Component/bt: add esp_ble_gap_get_local_used_addr() API

See merge request idf/esp-idf!2137
2018-04-02 22:28:00 +08:00
7133e14eee Merge branch 'feature/wifi_bt_new_coex' into 'master'
Feature/wifi bt new coex

See merge request idf/esp-idf!2087
2018-04-02 22:20:31 +08:00
e0b05c29f1 doc(spi_master): add descriptions about the SPI master speed
Closes https://github.com/espressif/esp-idf/issues/1542, Closes https://github.com/espressif/esp-idf/issues/1008
2018-04-02 12:44:19 +00:00
a6c79cfe0f Component/bt: do not update connection params when already have keys in slave 2018-04-02 19:44:09 +08:00
3b3ad875c4 test: use SSC_BLE_WIFI to test NVS cases 2018-04-02 18:13:52 +08:00
aca0008694 Merge branch 'bugfix/sdspi_init_v1_card' into 'master'
sdspi: compatibility fixes for SD v1.0 cards

See merge request idf/esp-idf!1927
2018-04-02 13:48:46 +08:00
9b7454de0c support wifi&bt coexist (v0.9.1)
1. refactor wifi modem sleep
2. refactor wifi and bt phy enable/diable coexistence
3. support wifi&bt coexist (v0.9.1)
3. add coex pause resume
4. fix bt library interrupt reaction slowly
5. make a2dp more smooth when coex
6. add coexist preference option
7. Make CI do not check libcoexist.a printf/ets_printf
8. disable Wifi RX AMPDU when software coexistence enable && update wifi lib
9. bluetooth call modem sleep api
2018-04-02 13:44:48 +08:00
d6b1d0bb3d fatfs/test: enable tests on SD card 2018-04-02 10:57:45 +08:00
8eaae96658 Merge branch 'bugfix/flash_mapp' into 'master'
spi_flash: add api to get valid mmu table pages number

See merge request idf/esp-idf!2070
2018-03-30 19:32:35 +08:00
f46ad1fec8 Merge branch 'bugfix/btdm_fix_get_PID_key_error' into 'master'
Component/bt: fix get PID key error

See merge request idf/esp-idf!2156
2018-03-30 19:26:31 +08:00
e20e64ace9 fatfs/test: use 16k cluster size to speed up formatting 2018-03-30 18:49:42 +08:00
4a2489b99a sdspi: fix compatibility issue in multi block read
SDSPI driver optimized polling of the response tokens by requesting
two extra bytes on top of the block size (512) and CRC (2), and
checking whether these bytes contained the data response token or
not. In case the token was there, further polling would not need to
happen, thereby reducing latency between two consecutive blocks
transferred. However this caused compatibility issues when these two
extra bytes were sent after reading the final block. When
STOP_TRANSMISSION command was sent, these extra two bytes were
treated as part of the command, causing an invalid command error.

This fixes the logic by only requesting extra two bytes if the block
being read is not the final block. In addition to that, more strict
error checking is implemented for command response tokens.
2018-03-30 18:49:42 +08:00
229f67b816 sdspi: handle delayed R1 responses for data read commands 2018-03-30 18:49:42 +08:00
bbbdec24d9 sdspi: handle error flags for R3/R7 responses
Previously error flags were only handled for R1 responses. This change
moves error handling into a separate function and calls it for R1/R3/R7.
2018-03-30 18:49:42 +08:00
99872beb6a Component/bt: add set gap icon API 2018-03-30 09:21:53 +00:00
e6d6deebc7 Merge branch 'bugfix/btdm_fix_connect_fail_when_remote_addr_is_random' into 'master'
Component/bt: modify open API params

See merge request idf/esp-idf!2116
2018-03-30 17:00:19 +08:00
21099c10f4 Merge branch 'feature/support_enrollee_feature_in_APSTA_mode' into 'master'
feature/support WPS enrollee in APSTA mode

See merge request idf/esp-idf!2120
2018-03-30 16:14:43 +08:00
6ffd089c97 Merge branch 'bugfix/btdm_fix_no_set_rand_addr_event_callback' into 'master'
Component/bt: fix no set rand add callback

See merge request idf/esp-idf!2140
2018-03-30 16:05:32 +08:00
b26ab188af Merge branch 'bugfix/btdm_fix_service_change_event_param_error' into 'master'
Component/bt: fix service change event params error

See merge request idf/esp-idf!2150
2018-03-30 14:57:13 +08:00
8b9f237cb9 Merge branch 'feature/i2s_add_expand_function' into 'master'
add a new i2s feature to expand the original i2s width

See merge request idf/esp-idf!1617
2018-03-30 14:51:23 +08:00
e84df7a27d Merge branch 'bugfix/btdm_fix_strncpy_error_in_blufi' into 'master'
Component/bt: fix strncpy error in blufi

See merge request idf/esp-idf!2141
2018-03-30 14:10:09 +08:00
fc5b15173e Merge branch 'bugfix/btdm_add_some_comment' into 'master'
Component/bt: add some comments

See merge request idf/esp-idf!1949
2018-03-30 14:07:30 +08:00
713529e464 Merge branch 'bugfix/btdm_xQueueGenericSend_assertion' into 'master'
component/bt: Fix xQueueGenericSend assertion

See merge request idf/esp-idf!2130
2018-03-30 14:02:24 +08:00
52667d8291 Merge branch 'bugfix/btdm_ble_spp_client_heartbeat' into 'master'
component/bt: fix type error for ble_spp_client when SUPPORT_HEARTBEAT is enabled

See merge request idf/esp-idf!1876
2018-03-30 14:01:28 +08:00
8fb9bfef79 example(ble): Update ble a2d_sink example 2018-03-30 12:08:41 +08:00
fee844d22c unit-test-app: support multi stages test 2018-03-30 11:38:49 +08:00
109a93bf8c Component/bt: fix get PID key error 2018-03-30 11:31:15 +08:00
e6262375a3 Component/bt: fix connect fail when remote addr type is random 2018-03-29 20:55:31 +08:00
c55987a3e9 vfs: consider O_NONBLOCK flag while opening UART FD 2018-03-29 14:20:14 +02:00
aa236809ad Component/bt: fix no set rand add callback event 2018-03-29 20:17:14 +08:00
8a78860b16 Component/bt: add esp_ble_gap_get_local_used_addr() API 2018-03-29 19:47:08 +08:00
48e3e3efca test: change SSC binary path 2018-03-29 19:40:07 +08:00
493a92665d CI: support build SSC in multiple jobs 2018-03-29 19:40:07 +08:00
49a236dae0 fix CI failed when flash chip size if 2MBytes 2018-03-29 17:48:59 +08:00
f5d581421e Component/bt: fix service change event params error 2018-03-29 16:11:16 +08:00
cffab50ac3 esp32: Deactivate wakeup trigger after first wakeup
The files updated according to code review discussions.
In the sleep_modes.c removed immidiate disable of ULP  mode and leave just trigger deactivation.
The esp_sleep.h is updated to have the same defines for source as esp_sleep_wakeup_cause_t.
Updated documentation in sleep_modes.rst file to include cross references and address esp_sleep_wakeup_cause_t type.
The get_time_ms() is updated to explicitly use fabs(dt) instead of abs(dt) in  test_sleep.c.
Some other minor changes in test_sleep.c unit test.

(TW#18952)
Closes https://github.com/espressif/esp-idf/issues/1677
2018-03-29 11:24:59 +05:00
707785c306 Update idf-monitor.rst 2018-03-29 14:16:22 +08:00
8e1f930582 driver(gpio): Modified the GPIO_CHECK's return value when ISR service already installed 2018-03-29 09:58:31 +08:00
da27816314 Merge branch 'feat/add_efuse_cpu_freq_rating' into 'master'
efuse/add cpu freq rating

See merge request idf/esp-idf!1994
2018-03-29 05:59:52 +08:00
a17d12d94f Merge branch 'bugfix/make_error_codes_unique' into 'master'
Make error codes globally unique

See merge request idf/esp-idf!1935
2018-03-29 05:57:04 +08:00
6b8ca31bc9 Merge branch 'bugfix/btdm_slow_interrupt_reaction' into 'master'
component/bt : fix interrupt slow reaction cause assert(interrupt wdt)

See merge request idf/esp-idf!2143
2018-03-28 21:49:19 +08:00
e1b419fb6d component/bt: Fix xQueueGenericSend assertion 2018-03-28 20:25:57 +08:00
1a157279e0 Merge branch 'doc/adc1_channel_config' into 'master'
adc: Add doc details about configure not needed before each read

See merge request idf/esp-idf!2132
2018-03-28 19:11:44 +08:00
d316916544 Merge branch 'bugfix/build_fix_conf' into 'master'
build: Fix problems with building kconfig and generating sdkconfig

See merge request idf/esp-idf!2138
2018-03-28 19:11:12 +08:00
cef8baf424 bugfix(rtc): make sure peripherals (DAC, HALL) are turned off before conversion.
refactor structure of ``rtc_module.c`` to make it more clearly.

Closes https://github.com/espressif/esp-idf/issues/1517
2018-03-28 17:10:01 +08:00
3843bff97b component/bt : fix interrupt slow reaction cause assert(interrupt wdt)
Some application lock interrupt(portENTER_CRITICAL) too long time,
it will cause bluetooth cannot react interrupt in time, then t will
cause some assert, assert info following:
1. ld_acl.c 1900
2. ld_fm.c 340
3. other assert reference to this.
2018-03-28 12:04:16 +08:00
6a9420465c Component/bt: fix strncp error in blufi 2018-03-28 11:38:45 +08:00
391c3ff959 Merge branch 'feature/btdm_add_compile_version' into 'master'
component/bt : add bluetooth controller library compile version

See merge request idf/esp-idf!2135
2018-03-28 10:56:06 +08:00
f3d61015f7 build: Fix problems with building kconfig and generating sdkconfig
We had some problems:
    simultaneous compiling of kconfig in the same tree;
    attempt to use menuconfig in some examples and ut in batch mode (w/o interactive console)

Also increase debug abilities in CI:
    force non-interactive building;
    add variable DEBUG_SHELL to toggle verbosity of scripts
2018-03-28 10:39:20 +08:00
4507b3fde6 adc: Add doc details about configure not needed before each read 2018-03-28 11:52:41 +11:00
4b1ef083ee component/bt : add bluetooth controller library compile version 2018-03-27 16:35:00 +08:00
2935e958fc Merge branch 'bugfix/adc2_cct' into 'master'
fix(adc2): fix cct and xpd configurations to improve precision of ADCs

See merge request idf/esp-idf!2020
2018-03-27 16:23:43 +08:00
3eb43c9ece Merge branch 'bugfix/no_link_key_notify_on_repairing' into 'master'
component/bt: bugfix for no link key notification event on repairing

See merge request idf/esp-idf!2118
2018-03-27 14:51:25 +08:00
7c4b3d50f8 Make error codes globally unique 2018-03-27 08:12:54 +02:00
892f3907fa Merge branch 'bugfix/i2c_ack_error_bug' into 'master'
driver(i2c):  Fixed i2c interrupt wdt timeout bug

See merge request idf/esp-idf!2049
2018-03-27 12:29:23 +08:00
b007b89b84 soc/io_mux: make CLK_OUT fields compatible with REG_SET/GET_FIELD 2018-03-27 12:10:18 +08:00
2e7613b656 Merge branch 'feature/use_esp_err_to_name' into 'master'
Use esp_err_to_name in examples & optionally disable it in Kconfig

See merge request idf/esp-idf!2013
2018-03-27 11:50:21 +08:00
9d69d11067 Merge branch 'feature/spi_dummy_bit' into 'master'
feat(spi_master): allow output high speed data when dummy bits are not used.

See merge request idf/esp-idf!2113
2018-03-27 11:28:58 +08:00
fd8c484b33 component/bt: bugfix for no link key notification event on repairing for initiating side of simple pairing
In response to: https://github.com/espressif/esp-idf/issues/1275
2018-03-27 11:22:47 +08:00
db44a719fb pm: add unit test for configuration changes 2018-03-27 11:20:55 +08:00
94014a9a51 pm: handle the case of 2MHz frequency
It is not possible to generate 1 MHz REF_TICK from 2 MHz APB clock
(this is a limitation of REF_TICK divider circuit). Since switching
REF_TICK frequency is something we would like to avoid (to maintain
UART output even with DFS), 2 MHz frequency has been marked as
unsupported.
2018-03-27 11:20:55 +08:00
839c665c92 pm: fix initialisation only done in dual core mode
Introduced in 9377d4ac. Accidentally put the new code block under an
2018-03-27 11:20:54 +08:00
fe5d294f6c pm: handle changes to the PM_MODE_ACTIVE frequency
The issue would manifest itself in cases when switching from PM
configuration like {active=160MHz, idle=80MHz} to {active=80MHz,
idle=80Mhz}. After the configuration was changed, PM logic would
think that current frequency was 80MHz and would not do any further
switching. In fact, frequency was still 160MHz.
2018-03-27 11:20:54 +08:00
1517aeda6c pm: fix calculation of maximum of two frequencies
The old code calculated MAX() of two enum values, but CPU frequency
enum values are not ordered (2MHz goes after 240MHz). This caused
incorrect configuration to be set.
2018-03-27 11:20:53 +08:00
43b5fdd5c9 soc/rtc: fix switching between 80/160 and 240MHz
Previous code contained a check for PLL frequency to be 240MHz, while
in fact 240MHz was a CPU frequency; corresponding PLL frequency is
480MHz. Fixed the comparison and replaced integer MHz values with an
enum.
2018-03-27 10:55:59 +08:00
7563510758 feat(spi_master): allow output high speed data when dummy bits are not used. 2018-03-26 21:24:32 +08:00
28e832c37e fix(adc2): fix cct and xpd configurations to improve precision of ADCs 2018-03-26 12:02:26 +00:00
1c4ad79c00 Examples/spi_master: spiffier graphics 2018-03-26 17:07:32 +08:00
9ea38560ec Merge branch 'feature/docs_check_lang_folder_sync' into 'master'
Introduced a CI check if folders with localized documentation are in sync, i.e.…

See merge request idf/esp-idf!2073
2018-03-26 16:54:04 +08:00
37db055cff driver(i2c): Fixed ack_err interrupt can't exit bug. 2018-03-26 16:31:17 +08:00
4667d9c804 Merge branch 'bugfix/rtc_xtal_unit_test' into 'master'
Fix 32k RTC XTAL unit test failures

See merge request idf/esp-idf!2124
2018-03-26 15:41:25 +08:00
af3ffec446 Merge branch 'feat/add_FatFs_encoding_options_in_menuconfig' into 'master'
fatfs/add menuconfig options for different encodings

See merge request idf/esp-idf!2112
2018-03-26 14:14:48 +08:00
fa68774344 spi_flash:
1. add test code for new api
2. resolve some comments
2018-03-26 10:24:42 +08:00
48d55e22e7 soc/rtc: run 32k XTAL startup test only in PSRAM config
PSRAM tests run on ESP-WROVER-KIT boards, which have the 32k XTAL
installed.
2018-03-26 10:14:13 +08:00
8e7fce51a2 docs: add get-started doc Chinese translation 2018-03-23 14:42:14 +01:00
6c3bdd45cf feature/support WPS enrollee in APSTA mode
Add the feature WPS enrollee in APSTA mode

close github issue: https://github.com/espressif/esp-idf/issues/1608
2018-03-23 15:41:59 +08:00
99b8ae34c9 fatfs/add menuconfig options for different encodings
This commit adds character encoding configurations in for the fatfs component.
The FF_LFN_UNICODE definition in ffconf.h can now be changed to accept UTF-8 or
UTF-16 encoded filernames. Test cases using UTF-8 encoded file paths and names in
FatFs have also been added.

Closes #1183
2018-03-23 14:06:56 +08:00
27bf18ad6b Merge branch 'test/wifi_stop_deinit' into 'master'
test(wifi): add test for wifi stop and deinit.

See merge request idf/esp-idf!2022
2018-03-23 13:45:20 +08:00
d7e980865b Merge branch 'bugfix/http2_add_authority_field' into 'master'
http2: Include 'authority' header by default in the request

See merge request idf/esp-idf!2097
2018-03-23 13:28:55 +08:00
f48ecb8613 Add a new i2s feature to expand the original i2s width 2018-03-22 18:52:55 +08:00
0a83733d2d Merge branch 'bugfix/btdm_spp_handle_error' into 'master'
component/bt: Fix bug of SPP handle error

See merge request idf/esp-idf!2026
2018-03-22 10:08:47 +08:00
ca3e4ef5ca Merge branch 'bugfix/btdm_fix_error_when_close_SMP_for_master' into 'master'
Component/bt: fix build error when close SMP

See merge request idf/esp-idf!2110
2018-03-22 10:07:57 +08:00
887b6e2925 Merge branch 'bugfix/rtc_clk_32k_bootstrap' into 'master'
bugfix/rtc_clk_32k_bootstrap: Fix starting 32k RTC

See merge request idf/esp-idf!2085
2018-03-21 18:38:49 +08:00
f7df532ec0 bugfix/rtc_clk_32k_bootstrap: Fix starting 32k RTC
1. External 32kHz crystal is started for too long or it may not start at all. It is often observed at the first start.
2. At the first start, it is possible that the crystal did not start. And the recorded period was recorded as 0. Which led to a division error by zero during the transition to the deep sleep mode (Maybe somewhere else).
3. Added a unit test to test a new method of oscillation an external crystal.
4. Added a new method of oscillating of an external crystal. The legs of the crystal are fed with a 32 kHz frequency.

The new method eliminates these errors.

Added unit test: `\esp-idf\components\soc\esp32\test\test_rtc_clk.c`: `make TEST_COMPONENTS=soc`
- 8 Test starting external RTC crystal. Will pass.

`Bootstrap cycles for external 32kHz crystal` - is specified in the file Kconfig by default 100.

QA tested a new method of oscillation the crystal on 25 boards. The supply of square waves on the crystal showed a 100% result in contrast to the previous method of launching the crystal. After the tests, the old method was deleted.

Closes TW19143
2018-03-21 13:27:56 +05:00
064c274bd6 Component/bt: fix build error when close SMP 2018-03-21 15:21:30 +08:00
8478823039 Merge branch 'bugfix/dfs_rtc_fixes' into 'master'
DFS related fixes

See merge request idf/esp-idf!2102
2018-03-21 12:02:48 +08:00
aa3c77ec60 Merge branch 'bugfix/wifi_lwip_set_ip_post_wrong_event' into 'master'
Fix the bug that incorrect event is posted when setting static ip of softap and ethernet

See merge request idf/esp-idf!2095
2018-03-21 11:45:24 +08:00
0470f28055 Fix the bug that incorrect event is posted when setting static ip of softap and ethernet 2018-03-21 11:04:22 +08:00
5bc724d3f9 Merge branch 'feature/configure_pthread_behaviour' into 'master'
pthread: Allow configuration of priority and stacksize

See merge request idf/esp-idf!1978
2018-03-21 00:41:20 +08:00
7a0cab0a5b pthread: Allow configuration of priority and stacksize
The expected usage is:
  esp_pthread_set_cfg(cfg);
  pthread_create()

If the inherit flag is set, then all subsequent threads forked by this
thread will also inherit this configuration. This avoids having to
change/prefix this for each and every pthread_create() call.
2018-03-20 18:06:32 +05:30
cd54a35cae Merge branch 'cherry-pick-7f2a9f03' into 'master'
cherry pick 'bugfix/btdm_fix_reconnect_fail_in_smp_v30' into 'Master'

See merge request idf/esp-idf!2101
2018-03-20 20:23:43 +08:00
86eaf5d56b http2: Include 'authority' field by default in the request
Closes https://github.com/espressif/esp-idf/issues/1717
2018-03-20 17:33:05 +05:30
c45170cb66 Merge branch 'bugfix/btdm_fix_reconnect_fail_in_smp_v30' into 'release/v3.0'
Component/bt: fix reconnect fail in smp for v3.0

See merge request idf/esp-idf!2075

(cherry picked from commit 7f2a9f0359)

d0e55335 Component/bt: fix reconnect fail in smp
2018-03-20 18:49:22 +08:00
0f6f762be0 Merge branch 'bugfix/btdm_add_char_descr_uuid_error' into 'master'
component/bt: Change the char_uuid to descr_uuid in the add descriptor callback params.

See merge request idf/esp-idf!2065
2018-03-20 18:43:42 +08:00
1618dbc9a5 soc/rtc: wait for frequency switch to complete
The fast path of CPU frequency switch function, used in DFS, was not
waiting for the frequency switch to complete when switching from XTAL
to PLL. This resulted in incorrect reads from peripherals on APB,
where two consecutive reads could return the same value. For example,
in esp_timer, read of FRC_COUNT_REG would return same value as the
preceding read of FRC_ALARM_REG, causing time to jump by the value of
FRC_ALARM_REG / apb_freq_mhz.
2018-03-20 18:27:32 +08:00
8ab17d7ccf Merge branch 'bugfix/btdm_avrc_remote_bda_error_when_disconnect' into 'master'
component/bt: Fix bug: AVRC remote_bda error when disconnect

See merge request idf/esp-idf!2093
2018-03-20 18:24:01 +08:00
4cd0e83aea Merge branch 'feature/optimize_wifi_tx' into 'master'
esp32: optimize WiFi TX

See merge request idf/esp-idf!2091
2018-03-20 18:21:11 +08:00
7167ad45ab pm: improve debug output from esp_pm_dump_locks
- separate mode stats from lock stats by an extra comment line
- add CPU frequency column to the mode stats
- don’t print a row for light sleep if light sleep is not enabled
2018-03-20 18:08:19 +08:00
9377d4acd4 pm: fix incorrect configuration at startup
s_cpu_freq_by_mode array was statically initialised with 80MHz CPU
frequency in CPU_MAX and APB_MAX modes, but sdkconfig setting for the
CPU frequency could have been different. For the case of 240MHz CPU
frequency, this would cause a frequency switch between 240MHz and
80MHz to happen, even though such switch is not supported in the fast
path switching functions used by the DFS implementation.

This fixes the issue by moving initialisation into esp_pm_impl_init,
which is called at startup before the first mode switch can happen.

Fixes https://github.com/espressif/esp-idf/issues/1729.
2018-03-20 18:06:58 +08:00
d91e2703f4 esp32: Deactivate wakeup trigger after first wakeup
The files updated according to code review discussions.
In the sleep_modes.c removed immidiate disable of ULP  mode and leave just trigger deactivation.
The esp_sleep.h is updated to have the same defines for source as esp_sleep_wakeup_cause_t.
Updated documentation in sleep_modes.rst file to include cross references and address esp_sleep_wakeup_cause_t type.
Some minor changes in test_sleep.c unit test.

(TW#18952)
Closes https://github.com/espressif/esp-idf/issues/1677
2018-03-20 14:58:43 +05:00
21c0b59315 esp32: optimize WiFi TX
1. Optimize TX retry counter
2. Optimize TX timeout
2018-03-20 15:24:32 +08:00
1e9bb5bb7c esp32: Deactivate wakeup trigger after first wakeup
The files updated according to code review discussions.
In the sleep_modes.c removed immidiate disable of ULP  mode and leave just trigger deactivation.
The esp_sleep.h is updated to have the same defines for source as esp_sleep_wakeup_cause_t.
Updated documentation in sleep_modes.rst file to include cross references.
Some minor changes in test_sleep.c unit test.

(TW#18952)
Closes https://github.com/espressif/esp-idf/issues/1677
2018-03-20 12:23:32 +05:00
45eb556ddf Merge branch 'bugfix/wpa2_assert_when_use_sha256_signature' into 'master'
bugfix of wpa2 assert when use sha256 do signature

See merge request idf/esp-idf!2089
2018-03-20 15:19:55 +08:00
f2132238b2 Merge branch 'bugfix/tw19041_esp_wifi_stop_not_return' into 'master'
esp32: Fix esp_wifi_stop never returns issue

See merge request idf/esp-idf!2059
2018-03-20 15:18:09 +08:00
2531975ca0 component/bt: Fix bug: AVRC remote_bda error when disconnect 2018-03-20 15:12:36 +08:00
bc97b0f380 bugfix of wpa2 assert when use sha256 do signature
The order of wpa2_crypto_funcs_t structure mismatch between IDF and wifi libray

close github issue https://github.com/espressif/esp-idf/issues/1297
2018-03-20 11:08:20 +08:00
7e2028d598 Merge branch 'bugfix/gpio_timer_doc_fixes' into 'master'
Minor fixes of GPIO and timer group driver docs

See merge request idf/esp-idf!2081
2018-03-20 10:49:36 +08:00
e56897b7a4 Merge branch 'bugfix/docs_updates_from_github' into 'master'
Bugfix/docs updates from github

See merge request idf/esp-idf!2057
2018-03-20 09:50:43 +08:00
d3b8f1f927 heap tracing: Fix tracing of newlib internal allocations
Newlib internal allocations (from newlib ROM code) were not being included in the heap trace.

Ref https://github.com/espressif/esp-idf/issues/1652
2018-03-20 12:03:46 +11:00
b626c1b365 Merge branch 'feature/doc_common_conf' into 'master'
doc: Move non-language-specific RTD/Sphinx config to conf_common.py

See merge request idf/esp-idf!2058
2018-03-20 09:02:12 +08:00
7c777f40aa Component/bt: add some comment 2018-03-19 21:19:21 +08:00
078cd81f10 esp32: Fix wifi stop never return issue
Fix esp_wifi_stop() never return issue
2018-03-19 21:16:29 +08:00
5d4c4b19d4 Merge branch 'bugfix/tw19020_force_1.9V_when_flash_is_80M' into 'master'
bootloader: force SDIO 1.9V if flash is 80M

See merge request idf/esp-idf!2083
2018-03-19 18:50:36 +08:00
259220f33d Merge branch 'bugfix/btdm_spp_invalid_handle_path' into 'master'
component/bt: Fix bug of SPP invalid handle path

See merge request idf/esp-idf!2056
2018-03-19 18:40:47 +08:00
e784df60cc Merge branch 'bugfix/fix_param_name_comments_bt' into 'master'
components/bt: Fix parameter name and print statements

See merge request idf/esp-idf!2032
2018-03-19 16:59:09 +08:00
85c9164f50 Merge branch 'bugfix/fix_bt_typos' into 'master'
components/bt examples/bluetooth: Fix typographical errors

See merge request idf/esp-idf!1950
2018-03-19 16:58:55 +08:00
072b353b45 bootloader: force SDIO 1.9V if flash is 80M
If the SPI flash frequency is 80M, the voltage of SDIO is 1.9V,
otherwise, it can configured to 1.8V or 1.9V via menuconfig.
2018-03-19 16:39:54 +08:00
b9a8912659 Merge branch 'bugfix/spi_master_const_dev_config_t' into 'master'
spi master: use constant dev_config parameter in spi_bus_add_device

See merge request idf/esp-idf!2082
2018-03-19 16:31:19 +08:00
c2a68ae0d3 test(wifi): add test for wifi stop and deinit. 2018-03-19 08:23:52 +00:00
7594127ca3 Merge branch 'feature/add_simple_wifi_example' into 'master'
add feature of simple wifi example

See merge request idf/esp-idf!2045
2018-03-19 14:56:22 +08:00
9e8d098264 Merge branch 'bugfix/btdm_fix_eddystone_demo_error' into 'master'
Component/bt: fix eddystone demo error

See merge request idf/esp-idf!2036
2018-03-19 14:26:55 +08:00
d6946598f6 Merge branch 'bugfix/btdm_fix_gattc_open_API' into 'master'
component/bt: fix gattc open api

See merge request idf/esp-idf!2004
2018-03-19 14:26:41 +08:00
a99d4d5a7f Modified spi_bus_add_device so that it takes a constant *dev_config parameter.
Merges https://github.com/espressif/esp-idf/pull/1690
2018-03-19 12:17:45 +08:00
757c1d6739 docs: explicitly note that timer alarms are not recurring
Merges https://github.com/espressif/esp-idf/pull/1740
2018-03-19 11:56:57 +08:00
38daa1e716 docs: fix description of timer_get_alarm_value()
Replace c&p text with an actual description.

Merges https://github.com/espressif/esp-idf/pull/1740
2018-03-19 11:56:57 +08:00
86a1d579ff docs: add warning to gpio_get_level()
On most microcontrollers I have worked with one can retrieve the
current state of output GPIO pins. On ESP32 this is not the case
if the pad is not explictly configured to route this information into
the port by configuring it as input or i/o.
Thus add a warning to the API documentation of gpio_get_level().

Merges https://github.com/espressif/esp-idf/pull/1740
2018-03-19 11:56:57 +08:00
1c48b4f01e component/bt: Fix bug of SPP invalid handle path 2018-03-19 02:22:45 +00:00
b9ea6a2067 component/bt: Fix bug of a2dp source cleanup bug when connected 2018-03-19 02:21:12 +00:00
9a6fcab527 Merge branch 'test/spi_speed_fix' into 'master'
test(spi_master): test spi master speed performance by median value.

See merge request idf/esp-idf!2048
2018-03-19 06:16:38 +08:00
f32abada86 Update building-openocd-linux.rst. Merges https://github.com/espressif/esp-idf/pull/1714
replace - for -- in line 16 to make it run
2018-03-18 20:02:54 +01:00
ce09cfd99b esp32: Deactivate wakeup trigger after first wakeup
Added function esp_sleep_disable_wakeup_source() to deactivate wakeup trigger for selected source.
Updated documentation for this function in sleep_modes.rst file.
Updated unit test to check this functionality for light sleep.
The test_sleep.c unit test is updated to add reliability for unit testing.

(TW#18952)
Closes https://github.com/espressif/esp-idf/issues/1677
2018-03-16 18:49:24 +05:00
2d90da0817 esp32: Deactivate wakeup trigger after first wakeup
The timer wakeup function once activated cannot be disabled later using existing api. If user wants to use different wakeup sources after first sleep but it does not work. This change disables timer wakeup trigger in configuration that will be set into appropriate RTC registers in esp_light_sleep_start() function.

Added function esp_sleep_disable_wakeup_source() to deactivate wakeup trigger for selected source.
Updated documentation for this function in sleep_modes.rst file to pass make html.
Updated unit test to check this functionality for light sleep.
The test_sleep.c unit test is updated to add reliability for auto unit testing.

(TW#18952)
Closes https://github.com/espressif/esp-idf/issues/1677
2018-03-16 18:22:02 +05:00
09a30ddfdc Merge branch 'bugfix/adc_calibration_override_format' into 'master'
esp_adc_cal/Fix register definition and add override intsructions for eFuse

See merge request idf/esp-idf!2001
2018-03-16 20:19:01 +08:00
zwj
d1405183a5 component/bt: fix gattc open api 2018-03-16 19:17:55 +08:00
15be0829fa test(spi_master): test spi master speed performance by median value.
also increase the boundary of SPI limit by a little.
2018-03-16 16:37:19 +08:00
f4b03d553c bugfix/Fix BLK3_RESERVED_FLAG register and other minor bugs
This commit fixes an incorrect register definition for BLK3_RESERVED_FLAG.
Other bugs include a missing conditional check, and updated comments
on modifying eFuse checking behavior.
2018-03-16 15:51:36 +08:00
621076f329 Introduced a CI check if folders with localized documentation are in sync, i.e. if they contain the same list of files 2018-03-16 07:54:58 +01:00
7555031553 add api get valid mmu table pages number 2018-03-16 10:40:55 +08:00
748fef4363 doc: Move non-language-specific RTD/Sphinx config to conf_common.py 2018-03-16 12:00:01 +11:00
7e268adaf5 Merge branch 'bugfix/btdm_mem_leak_of_bt_dynamic_memory' into 'master'
component/bt: Fix bug of bt dynamic memory

See merge request idf/esp-idf!2053
2018-03-15 17:01:20 +08:00
dc66940f82 Merge branch 'bugfix/btdm_a2dp_disc_rsn_error_when_as_master' into 'master'
component/bt: Fix bug: a2dp disc_rsn error when as master

See merge request idf/esp-idf!1995
2018-03-15 15:28:11 +08:00
488268d58b Merge branch 'bugfix/btdm_a2dp_sink_cleanup_bug' into 'master'
component/bt: Fix bug of a2dp sink cleanup bug when connected

See merge request idf/esp-idf!2041
2018-03-15 15:04:39 +08:00
3ee5b49575 component/bt: Fix bug of bt dynamic memory 2018-03-15 14:36:49 +08:00
c802ea842d component/bt: Change the char_uuid to descr_uuid in the add descriptor callback params. 2018-03-15 02:29:11 -04:00
047870fd80 Merge branch 'bugfix/btdm_string_to_bdaddr_error_when_opening_nano' into 'master'
component/bt: Fix bug: string_to_bdaddr() error when opening nano

See merge request idf/esp-idf!1981
2018-03-15 14:14:47 +08:00
8f61716647 esp32: Fix esp_wifi_stop never returns issue
esp_wifi_stop may never return when run esp_wifi_start/stop repeatly.
2018-03-15 11:25:13 +08:00
d91456a348 add feature of simple wifi example
Closes: https://github.com/espressif/esp-idf/issues/1433
2018-03-15 10:35:58 +08:00
55e5f8e349 Merge branch 'bugfix/docs_small_updates' into 'master'
Bugfix/docs small updates

See merge request idf/esp-idf!1847
2018-03-15 06:36:15 +08:00
4a9b44e0c8 Included update made in MR !2012, that has been then lost when resolving merge conflicts of MR !1901 2018-03-14 22:05:36 +01:00
5a31c1e5b1 fix : cpp:type. Merges https://github.com/espressif/esp-idf/pull/1700 2018-03-14 22:04:47 +01:00
36bbfbb4bf Updated instructions to install Eclipse. Closes https://github.com/espressif/esp-idf/issues/1509. 2018-03-14 19:26:59 +01:00
852f7f8a36 Updated get started instructions for windows following https://esp32.com/viewtopic.php?f=13&t=4232 2018-03-14 19:26:59 +01:00
c0eadc514f component/bt: Fix bug of a2dp sink cleanup bug when connected 2018-03-14 06:27:26 +00:00
a58a2b6f6d Merge branch 'bugfix/wl_encryption_size' into 'master'
Bugfix/wl encryption size

See merge request idf/esp-idf!2037
2018-03-14 14:12:29 +08:00
36098f3cac Merge branch 'bugfix/make_MEMMAP_SMP_config_dependent' into 'master'
bugfix/remove MEMMAP_SMP config

See merge request idf/esp-idf!1988
2018-03-14 13:02:55 +08:00
bd09a83062 Merge branch 'feature/esptool_v23' into 'master'
Update esptool to v2.3.1

See merge request idf/esp-idf!1989
2018-03-14 08:11:59 +08:00
7fd74c5eaa Merge branch 'feature/docs_dedicated_language_folders' into 'master'
Move docs into dedicated folders for 'en' and 'zn_CN' language versions

See merge request idf/esp-idf!1901
2018-03-14 07:22:13 +08:00
b7f7ac3b28 Implemented review comments to zh_CN version of eclipse setup and PICO-KIT get started guides. Resolved issues after rebasing on master of several commits. 2018-03-13 22:31:54 +01:00
286874eca4 CI: print document preview link in deploy_docs 2018-03-13 22:07:31 +01:00
dda0e68c7c doc: two languages support for deploy_docs stage. 2018-03-13 22:07:31 +01:00
6a1b2c6ad0 Included zh_CN version of Eclipse setup and PICO-KIT get started guides 2018-03-13 22:07:31 +01:00
c63d7a4b5e Adjusted CI configuration to handle 'en' and 'zh_CN' language versions 2018-03-13 22:07:31 +01:00
56d5647d3f Adjusted Sphinx configuration to handle 'en' and 'zh_CN' language versions 2018-03-13 22:07:31 +01:00
40bc387bae Restored back original 'zh_CN' version files and updated links between versions 2018-03-13 21:57:08 +01:00
097adc3a33 Moved files into separate folders per 'en' and 'zh_CN' language version and linked 'zh_CN' files back to 'en' files if translation is not yet available 2018-03-13 21:57:08 +01:00
c8d8cdbf38 Make search / include path one level deeper to prepare for moving documentation into new dedicated folders per a language version 2018-03-13 21:57:08 +01:00
27a63c492f Examples: Demonstrate the usage of esp_err_to_name 2018-03-13 14:27:00 +01:00
f891eac827 ESP32: Optionally disable lookup-tables for esp_err_to_name 2018-03-13 14:26:54 +01:00
12b4e416e6 Merge branch 'bugfix/wpa2_assert_when_suddenly_disconnect' into 'master'
Bugfix of wpa2 task assert when suddenly disconnect

See merge request idf/esp-idf!2043
2018-03-13 20:59:39 +08:00
7a1e3265fe Merge branch 'bugfix/docs_small_corrections' into 'master'
Bugfix/docs small corrections

See merge request idf/esp-idf!2025
2018-03-13 17:43:00 +08:00
c54ce12853 Merge branch 'bugfix/docs_incremental_build' into 'master'
docs: speed up incremental builds

See merge request idf/esp-idf!2012
2018-03-13 17:41:08 +08:00
e1cfa133bd Merge branch 'bugfix/docs_from_github' into 'master'
Bugfix/docs from github

See merge request idf/esp-idf!2015
2018-03-13 17:40:26 +08:00
973913b151 feat: Adjust log level about UART
There are too many log when UART baud is around 2Mbps if not use hard flow control.
2018-03-13 16:01:37 +08:00
768d6e09ab Bugfix of wpa2 task assert when suddenly disconnect 2018-03-12 21:41:24 +08:00
5cbb1943ac Structure size alligned by compiler. 2018-03-12 15:34:16 +03:00
743969f333 Size of structure made latform independent. 2018-03-12 08:34:23 +03:00
e437c7d6ad Exposed important information regrading the flash bus signals 2018-03-12 05:56:35 +01:00
bf2a7fd2c9 fix: fatfs link 2018-03-12 05:56:35 +01:00
ef76ae3d29 Extra links in 'Resources' section 2018-03-12 05:56:35 +01:00
691b2ad8f3 Added / corrected README files for the SPI master / slave examples under peripherals 2018-03-12 05:56:35 +01:00
560753cfb1 Size updated. 2018-03-12 07:49:50 +03:00
09704fe7ca Size of structure ware updated. 2018-03-12 07:30:35 +03:00
4580a5ab4a Component/bt: fix eddystone demo error 2018-03-12 12:10:09 +08:00
9831eca4b2 components/bt: Fix parameter name and print statement
Signed-off-by: Hrishikesh Dhayagude <hrishi@espressif.com>
2018-03-09 13:53:27 +05:30
816d63211f Structure size updated to the 16 bytes * N 2018-03-09 09:17:32 +03:00
7f0b00ef9b Compiler dependency included for tests. 2018-03-09 08:40:24 +03:00
97539334a9 Remove error from tests. 2018-03-09 07:58:01 +03:00
d082316507 component/bt: Fix bug of SPP handle error 2018-03-09 11:46:30 +08:00
77eae33a7e Merge branch 'bugfix/esp_timer_overflow' into 'master'
component/esp32: fix esp_timer bug

See merge request idf/esp-idf!1877
2018-03-09 10:05:22 +08:00
1d49c0953e Merge branch 'bugfix/close_socket_when_tcp_connecting' into 'master'
Close socket request will abort tcp write/connect

See merge request idf/esp-idf!1687
2018-03-08 20:34:40 +08:00
a54b413367 Merge branch 'bugfix/btdm_clear_start_stop_adv_callback_when_complete' into 'master'
Component/bt: clear start/stop adv callback when complete

See merge request idf/esp-idf!1938
2018-03-08 20:22:10 +08:00
702b46108c Merge branch 'bugfix/btdm_fix_set_error_channel_map_in_adv_params' into 'master'
Component/bt: fix set error params and return callback when start adv

See merge request idf/esp-idf!1943
2018-03-08 20:18:30 +08:00
d3d3a6fc39 Merge branch 'feature/btdm_blufi_add_custom_data_cmd' into 'master'
Component/bt: blufi add custom data cmd

See merge request idf/esp-idf!2017
2018-03-08 20:15:27 +08:00
db690e3f85 Merge branch 'bugfix/btdm_add_param_check_in_gap_set_prefer_conn_params' into 'master'
Component/bt: add_params_check_in_prefer_conn_params()

See merge request idf/esp-idf!1944
2018-03-08 20:08:33 +08:00
bcfbb6154c Merge branch 'bugfix/btdm_fix_get_attr_value_error_after_prepare_write' into 'master'
Component/bt: fix get attr value error after prepare write

See merge request idf/esp-idf!1976
2018-03-08 20:06:47 +08:00
b1d8ea84c3 Component/bt: blufi add custom data cmd 2018-03-08 17:38:44 +08:00
53e01bfb96 Added missing link to sdkconfig 2018-03-08 10:03:32 +01:00
573876700b fix : esp_partition_find missing ` `
Signed-off-by: krzychb <krzychb@gazeta.pl>
2018-03-08 09:39:20 +01:00
2e0f8b5a70 docs: speed up incremental builds
On each documentation build (‘make html’), doxygen regenerates XML
files. In addition to that, gen-dxd.py regenerates API reference
files under _build/inc/. This results in Sphinx flagging about half
of the input files as modified, and incremental builds taking long
time.

With this change, XML files generated by Doxygen are copied into
docs/xml_in directory only when they are changed. Breathe is pointed
to docs/xml_in directory instead of docs/xml. In addition to that,
gen-dxd.py is modified to only write to the output file when contents
change.

Overall, incremental build time (with no source files changed) is
reduced from ~7 minutes to ~8 seconds (on a particular OS X
computer).

Due to the way Breathe includes Doxygen XML files, there is still
going to be a massive rebuild every time functions, enums, macros,
structures are added or removed from the header files scanned
by Doxygen, but at least individual .rst files can be edited
at a much faster pace.
2018-03-07 17:45:15 +08:00
c97b8756f7 Merge branch 'bugfix/docs_improve_flash_bus_integrity' into 'master'
Added a note how to modify ESP-WROVER-KIT V3 hardware to improve flash bus signal's integrity

See merge request idf/esp-idf!2005
2018-03-07 15:26:54 +08:00
8b1277c55f efuse/add cpu freq rating
This commit adds support for CPU max freqeuency rating
bits in CPU. Bootloader will now print an error if attempting
to 160MHz rated ESP32 at 240MHz.

EFUSE_CHIP_VER_RESERVE has been replaced by the
frequency rating bits. Dependancies on EFUSE_CHIP_VER_RESERVE
have been changed to use EFUSE_CHIP_VER_PKG
2018-03-07 12:16:51 +08:00
983e9f854d Merge branch 'bugfix/btdm_error_log' into 'master'
component/bt: remove some error logs which are not error

See merge request idf/esp-idf!1826
2018-03-06 19:37:16 +08:00
8b36a8523e Merge branch 'bugfix/btdm_spp_lock_error' into 'master'
component/bt: Fix spp lock error

See merge request idf/esp-idf!2014
2018-03-06 19:36:52 +08:00
7b287c25b1 Bugfix for write size. The write size for encryption have to be rounded to 16 bytes.
A wl_config structure size now ounded to 16.
Flash Emulator updated to work with defined minimum size.
Tests are updated.
2018-03-06 10:26:21 +03:00
3824f0eb8f component/bt: Fix spp lock error 2018-03-06 14:57:08 +08:00
f1d3f689e8 component/bt: Fix bug: a2dp disc_rsn error when as master 2018-03-06 14:11:28 +08:00
9b2bce2c17 Fix missing 'cpp:func:'. Merges https://github.com/espressif/esp-idf/pull/1680 2018-03-06 06:54:54 +01:00
bfb5c92740 Update adc.rst. Merges https://github.com/espressif/esp-idf/pull/1657 2018-03-06 06:54:20 +01:00
569b9d592e component/bt: remove some error logs which are not error 2018-03-05 19:22:21 +08:00
17e8d49f26 Merge branch 'bugfix/btdm_update_pktLen_have_no_callback' into 'master'
component/bt: Fix bug:update pktlen have no callback

See merge request idf/esp-idf!1913
2018-03-05 16:14:48 +08:00
275fa2cc36 Merge branch 'bugfix/btdm_add_lock_for_spp_without_VFS' into 'master'
component/bt: Add lock for SPP slot

See merge request idf/esp-idf!2002
2018-03-05 16:06:16 +08:00
b2ecaa64f0 Added a note how to modify ESP-WROVER-KIT V3 hardware to improve flash bus signal's integrity when using 80 MHz flash frequency. Due to length of the signal lines the flash mode QIO + 80M is not stable and may cause random exceptions on the ESP-WROVER-KIT. 2018-03-02 15:26:46 +01:00
37765d0071 Merge branch 'feature/remove_tcp_perf_example' into 'master'
example: remove performance example

See merge request idf/esp-idf!1969
2018-03-02 18:54:39 +08:00
b6fae21909 Merge branch 'bugfix/btdm_build_server_error_with_BT_BLE_DYNAMIC_ENV_MEMORY' into 'master'
Component/bt: fix build ble server error with BT_BLE_DYNAMIC_ENV_MEMORY option

See merge request idf/esp-idf!1993
2018-03-02 18:28:36 +08:00
c4cdb66947 component/bt: Add lock for SPP slot 2018-03-02 18:11:47 +08:00
1e6f52fb6f Component/bt: fix build ble server error with BT_BLE_DYNAMIC_ENV_MEMORY option 2018-02-28 16:44:05 +08:00
127d213b29 component/esp32: fix esp_timer bug
1. fix the bug that cause esp_timer_get_time is not accuracy(the max margin may be 106s).
2. fix the bug that causes esp timer come too early.
2018-02-28 10:49:45 +08:00
bd306bb519 esptool: Update to v2.3.1 2018-02-28 10:17:14 +11:00
33aee51727 bugfix/remove MEMMAP_SMP config
This commit removes the MEMMAP_SMP config option.
Dependencies on this config will now depend on !FREERTOS_UNICORE
2018-02-27 17:56:44 +08:00
6acb38af4c Merge branch 'bugfix/idf_monitor_windows10' into 'master'
idf_monitor: Fix bug with Windows 10 sometimes printing a character twice

See merge request idf/esp-idf!1964
2018-02-27 06:21:53 +08:00
d1559732b0 Merge branch 'feature/ignore_no_psram' into 'master'
Add option to continue running (with less ram) if psram is enabled but not detected

See merge request idf/esp-idf!1911
2018-02-26 20:33:28 +08:00
54320d5f7b component/bt: Fix bug: string_to_bdaddr() error when opening nano 2018-02-26 15:09:03 +08:00
dbaea72062 Merge branch 'bugfix/revisit_pthread_once' into 'master'
pthread: fix pthread_once behavior, if mux (handle) is in external PSRAM

See merge request idf/esp-idf!1972
2018-02-26 08:52:06 +08:00
aedb807a02 Merge branch 'bugfix/esp_ping_ms_pr1638' into 'master'
esp_ping - Document that timeout units are in milliseconds

See merge request idf/esp-idf!1968
2018-02-26 08:00:44 +08:00
0538daa3f4 Merge branch 'bugfix/docs_missing_reference' into 'master'
Added missing references to the current and previous ESP32-DevKitC board versions

See merge request idf/esp-idf!1920
2018-02-26 06:39:54 +08:00
04ad0f79c0 Merge branch 'adc_calibration_update' into 'master'
ADC Calibraiton - Support new new calibration methods and eFuse functionality

See merge request idf/esp-idf!1846
2018-02-26 06:15:06 +08:00
c8ba6cf156 Merge branch 'feature/rtc_gpio_isolate' into 'master'
Add rtc_gpio_isolate function, use it in deep sleep examples

See merge request idf/esp-idf!1936
2018-02-26 06:09:08 +08:00
eb935c2982 Merge branch 'bugfix/aws_iot_examples_stack_tune' into 'master'
examples: aws_iot: fine tune stack size for aws_iot task

See merge request idf/esp-idf!1962
2018-02-26 06:08:03 +08:00
a9ae4e2696 Merge branch 'bugfix/config_minor_missing_deps' into 'master'
Kconfig: esp32/freertos: add some missing dependencies

See merge request idf/esp-idf!1966
2018-02-26 05:57:27 +08:00
6a9c99a414 Component/bt: fix get attr value error after prepare write 2018-02-24 16:39:00 +08:00
165e3edd49 Merge branch 'bugfix/btdm_mem_leak_of_bt' into 'master'
component/bt: Fix mem leak of bt

See merge request idf/esp-idf!1924
2018-02-24 10:25:13 +08:00
48e8171114 pthread: fix pthread_once behavior, if mux (handle) is in external PSRAM
Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-02-23 14:51:05 +05:30
2abba13172 Merge branch 'feature/heap_task_tracking_pr1498' into 'master'
heap: Add task tracking features (PR 1498)

See merge request idf/esp-idf!1960
2018-02-23 06:12:17 +08:00
ab82ce3da4 Merge branch 'bugfix/partition_md5_backward_compatibility' into 'master'
partition_table: Optionally disable the MD5 checksum in partition tables

See merge request idf/esp-idf!1958
2018-02-23 06:11:44 +08:00
da751cc653 Merge branch 'bugfix/fd_zero' into 'master'
FD_ZERO: Fix a compilation warning

See merge request idf/esp-idf!1967
2018-02-23 06:10:40 +08:00
0c9e2c0fba esp_adc_cal/Remove lookup table
This commit removes the lookup table mode due to inferior performance when compared
to linear mode under attenuation 0, 1 and 2. However small portions of the lookup table
are kept for the higher voltages of atten 3 (above ADC reading 2880). That voltage range
in atten 3 has non linear characteristics making the LUT performan better than linear mode.
2018-02-22 20:01:41 +08:00
9fb2d45980 example: remove performance example
Remove performance example since we have iperf example
close github issue: https://github.com/espressif/esp-idf/issues/1515
2018-02-22 17:34:54 +08:00
6dbb040890 FD_ZERO: Fix a compilation warning
Definition of memset is not found if string.h is not included anywhere

Signed-off-by: Piyush Shah <piyush@espressif.com>
2018-02-22 14:10:04 +05:30
4017cf3516 partition_table: Optionally disable the MD5 checksum in partition tables 2018-02-22 07:46:41 +01:00
63ddae5087 Merge branch 'bugfix/i2s_driver' into 'master'
i2s: add support fixed_mclk configuration

See merge request idf/esp-idf!1600
2018-02-22 12:03:26 +08:00
e99b6ed79c Merge branch 'bugfix/doc_spi_flash' into 'master'
spi_flash: Update docs

See merge request idf/esp-idf!1961
2018-02-22 11:09:17 +08:00
7cda34c626 i2s: add support fixed_mclk configuration 2018-02-22 09:00:23 +07:00
672f8b057e Merge branch 'feature/idf_size_sort_archives' into 'master'
Feature/idf size sort on size

See merge request idf/esp-idf!1957
2018-02-22 07:31:56 +08:00
30637c8885 Merge branch 'bugfix/docs_esp_sleep_wakeup_cause_t' into 'master'
Fix esp_sleep_wakeup_cause_t docs. Merges https://github.com/espressif/esp-idf/pull/1634

See merge request idf/esp-idf!1965
2018-02-22 07:31:03 +08:00
b52b4ea2cc spi_flash: Update docs 2018-02-22 10:28:26 +11:00
68dc422cb5 Merge branch 'bugfix/apptrace_down_buf_handling' into 'master'
esp32: Fixes apptrace down buffer management

See merge request idf/esp-idf!1953
2018-02-22 07:27:17 +08:00
4e544f82bb esp32: Fixes apptrace down buffer management 2018-02-21 10:13:25 +03:00
bf31afd2c3 Kconfig: esp32/freertos: add some missing dependencies
Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-02-21 12:31:10 +05:30
3e83cfd77c idf_monitor: Fix bug with Windows 10 sometimes printing a character twice
Turns out when IOError is thrown by the console, the character is
also successfully displayed.

Revisits fix from https://github.com/espressif/esp-idf/issues/1136

As reported https://esp32.com/viewtopic.php?f=14&t=4766&p=20637
2018-02-21 08:35:43 +11:00
bd0b3a7d6b Fix esp_sleep_wakeup_cause_t docs. Merges https://github.com/espressif/esp-idf/pull/1634
value and description didn't match
2018-02-20 20:22:14 +01:00
3ede9f011b Merge branch 'feature/openssl_cacert' into 'master'
OpenSSL API addition

See merge request idf/esp-idf!1932
2018-02-21 02:58:00 +08:00
886b5df30b examples: aws_iot: fine tune stack size for aws_iot task
Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2018-02-20 17:04:07 +05:30
f0ebf613f4 OpenSSL API addition 2018-02-20 12:32:12 +05:30
1061170787 Create a make size-symbols target for fine grained footprint 2018-02-20 11:46:54 +05:30
f2b2d045ba Merge branch 'bugfix/eclipse_setup_guide_pr1627' into 'master'
Update eclipse-setup.rst

See merge request idf/esp-idf!1955
2018-02-20 10:00:51 +08:00
6cfc7af049 Merge branch 'bugfix/i2s_intr_alloc_flags_pr1589' into 'master'
i2s: fix type mismatch of intr_alloc_flags

See merge request idf/esp-idf!1954
2018-02-20 07:33:25 +08:00
bc2879a956 heap: Add task tracking option for heap usage monitoring
Add back a feature that was available in the old heap implementation
in release/v2.1 and earlier: keep track of which task allocates each
block from the heap. The task handle is conditionally added as
another word in the heap poisoning header under this configuration
option CONFIG_HEAP_TASK_TRACKING.

To allow custom monitoring and debugging code to be added, add helper
functions in multi_heap.c and multi_heap_poisoning.c to provide access
to information in the block headers.

Add esp_heap_debug_dump_totals() to monitor heap usage

esp_heap_debug_dump_totals() dumps into a user-provided data structure
a summary of the amound of heap memory in region type that is used by
each task.  Optionally it will also dump into another data structure
the metadata about each allocated block for a given list of tasks or
for all tasks (limited by available space).

Address change requests on PR #1498

This set of changes fixes the files in e3b702c to just add the
CONFIG_HEAP_TASK_TRACKING option without adding the new function
heap_caps_get_per_task_info() in case that is the only portion of the
PR that will be accepted.  Part of the change is to remove the new .c
and .h files containing that function and to remove the line to
compile it from components/heap/component.mk since it should not have
been included in e3b702c.  One or more additional commits to add the
new function will follow.

The other changes here:
- uint32_t get_all_caps() moves to heap_private.h
- replace "void* foo" with "void *foo"
- add braces around single-line "if" blocks
- replace tab characters with spaces

Address change requests on PR #1498, part 2

This set of changes fixes the files in cdf32aa to add the new function
heap_caps_get_per_task_info() with its new name and to add the line to
compile it in components/heap/component.mk.  This does not address all
the suggested changes because there are some needing further
discussion.

This commit does not include the suggested change to move the
declaration of the new function into esp_heap_caps.h because the new
function references TaskHandle_t so esp_heap_caps.h would have to
include freertos/FreeRTOS.h and freertos/task.h, but FreeRTOS.h
includes esp_heap_caps.h through two other header files which results
in compilation errors because not all of FreeRTOS.h has been read yet.

Change heap_caps_get_per_task_info() to take struct of params

In addition to moving the large number of function parameters into a
struct as the single parameter, the following changes were made:

- Clear out the totals for any prepopulated tasks so the app code
  doesn't have to do it.

- Rather than partitioning the per-task totals into a predetermined
  set of heap capabilities, take a list of <caps,mask> pairs to
  compare the caps to the heap capabilities as masked.  This lets the
  caller configure the desired partitioning, or none.

- Allow the totals array pointer or the blocks array pointer to be
  NULL to indicate not to collect that part of the information.

- In addition to returning the total space allocated by each task,
  return the number of blocks allocated by each task.

- Don't need to return the heap capabilities as part of the details
  for each block since the heap region (and therefore its
  capabilities) can be determined from the block address.

- Renamed heap_task_info.h to esp_heap_task_info.h to fit the naming
  convention, and renamed the structs for totals and block details to
  better fit the revised function name.

- Provide full Doxygen commenting for the function and parameter
  structs.

Add copyright header to new files

Merges https://github.com/espressif/esp-idf/pull/1498
2018-02-20 10:32:06 +11:00
cded92bd3c Merge branch 'feature/easy_lookup_of_errors' into 'master'
Make it easier to look up error messages

See merge request idf/esp-idf!1929
2018-02-20 04:29:40 +08:00
c8ef747c0a idf_size: Report per-symbol size from the map file
Report as per the relevant sections output in the 'archives' output
2018-02-19 17:13:56 +05:30
c9e6ed7d60 idf_size: Sort output on total-size instead of filename 2018-02-19 11:50:46 +05:30
86bf8798b2 esp_ping - Document that timeout units are in milliseconds
Remove 1000 multiplier from esp_ping_set_target() parameters that define time
2018-02-18 18:47:46 -05:00
a76d5a33c9 heap: Correct the sense of a comment 2018-02-19 09:42:40 +11:00
dcc466a673 i2s: fix type mismatch of intr_alloc_flags
Merges https://github.com/espressif/esp-idf/pull/1589
2018-02-16 16:20:12 +11:00
0bde61e3ca Update eclipse-setup.rst
Chapter Flash from Eclipse: Changed "Select Make Targets -> ..." to "Select Build Targets -> ..."    to match the Eclipse wording. Same with "Project -> Make Target" replace Make by build to match the Eclipse wording.
2018-02-15 21:13:01 +01:00
4322e31c98 Make it easier to look up error messages
tools/gen_esp_err_to_name.py generates
components/esp32/esp_err_to_name.c for lookup of the error codes from
all of the IDF project and easily identify all codes in one place
2018-02-15 14:19:03 +01:00
c3bec5b103 Merge branch 'example/console_task_column_name' into 'master'
example(console): print column name for tasks.

See merge request idf/esp-idf!1948
2018-02-15 10:51:12 +08:00
10ab4c085b example(console): print column name for tasks. 2018-02-14 11:56:47 +08:00
7d13e3fa6a Merge branch 'bugfix/docs_prs_from_github' into 'master'
Small documenation and API fixes from GitHub

See merge request idf/esp-idf!1952
2018-02-14 09:45:09 +08:00
22ae5adb95 Merge branch 'bugfix/ethernet_mdc_mdio_config' into 'master'
Ethernet: set direction of SMI pins MDC and MDIO correctly

See merge request idf/esp-idf!1939
2018-02-14 01:16:05 +08:00
37b98f7306 Update index-cn.rst. Closes https://github.com/espressif/esp-idf/issue/1620 2018-02-13 15:06:05 +01:00
ef080c0841 Remove the THEN keyword from IF. Closes https://github.com/espressif/esp-idf/issue/1606
Both the TinyBasicPlus and the ESP32 variant don't use the THEN keyword in a IF statement
2018-02-13 15:06:05 +01:00
475e3cc43e Fix function name typo. Closes https://github.com/espressif/esp-idf/issue/1572 2018-02-13 15:05:56 +01:00
73cdfbfe79 esp_adc_cal/Add eFuse functionality
This commit updates the esp_adc_cal ocmponent to support new calibration methods
which utilize calibratoin values stored in eFuse. This commit includes LUT mode
2018-02-13 21:22:48 +08:00
4a7d445301 components/bt examples/bluetooth: Fix typographical errors
Signed-off-by: Hrishikesh Dhayagude <hrishi@espressif.com>
2018-02-13 13:25:33 +05:30
b09d681da6 Component/bt: add_params_check_in_prefer_conn_params() 2018-02-12 17:43:38 +08:00
4056878c69 Component/bt: fix set error params and add callback in adv params 2018-02-12 16:34:30 +08:00
dc864c4108 Add option to continue running (with less ram) if psram is enabled but not detected 2018-02-12 13:44:11 +08:00
ca3faa6186 Merge branch 'bugfix/btdm_fix_example_log_missing_bug' into 'master'
component/bt: Fix BLE printf missing problem

See merge request idf/esp-idf!1912
2018-02-12 12:05:01 +08:00
363c096f2b Merge branch 'test/adc2_with_wifi_reopen' into 'master'
test(adc2): re-enable the adc2 test.

See merge request idf/esp-idf!1926
2018-02-11 22:32:18 +08:00
44c3b0a1ba Merge branch 'bugfix/console_example_stack_overflow' into 'master'
Increase event task stack size to fix console example stack overflow

See merge request idf/esp-idf!1879
2018-02-11 16:45:05 +08:00
56843281c7 Merge branch 'feature/fatfs_allocation_unit_size' into 'master'
fatfs: add option to set allocation unit size

See merge request idf/esp-idf!1760
2018-02-11 16:43:39 +08:00
cb3f09485d Set direction of SMI pins MDC and MDIO correctly.
Merges https://github.com/espressif/esp-idf/pull/1594
2018-02-11 16:11:14 +08:00
b5c2356528 Component/bt: clear start/stop adv callback when complete 2018-02-11 15:21:51 +08:00
af6cfc5552 docs, examples: use rtc_gpio_isolate to disconnect GPIO12
This is needed to reduce deep sleep current on ESP32-WROVER modules.

Ref TW18165.
2018-02-11 13:28:47 +08:00
f45622ff17 driver/rtc: add rtc_gpio_isolate helper function to disconnect RTC IO 2018-02-11 13:18:51 +08:00
206eadab5a console example: increase main task stack size
Stack size was not sufficient for logging at Verbose log level.
2018-02-11 13:14:44 +08:00
57a516389c console example: add 'tasks' command to print vTaskList output
This command prints list of tasks, their state, and stack
watermark values.
Fixes https://github.com/espressif/esp-idf/issues/1534
2018-02-11 13:06:01 +08:00
b3be1b5190 tcpip_adapter: make log output at debug level less noisy
At debug log level, tcpip_adapter would print logs for each function
call scheduled onto the tcpip task. These logs contained pointers which
idf_monitor decoded, adding even more noise and useless vertical space
in logs. This change moves these log statements to verbose level.
2018-02-11 13:06:01 +08:00
a5f9563ef7 esp32: increase default event task stack size by 256 bytes
At debug log level, default event task stack size was not sufficient,
the stack was overflown by 232 bytes when WiFi connection happened.
2018-02-11 13:06:01 +08:00
95ff76890b examples/wear_levelling: update readme file
Fixes https://github.com/espressif/esp-idf/issues/627.
2018-02-11 13:03:36 +08:00
bf53c8abb1 fatfs: check allocated workbuf pointer 2018-02-11 13:03:36 +08:00
59859fa53c fatfs: add configuration of allocation unit size
Closes https://github.com/espressif/esp-idf/issues/1382.
2018-02-11 13:03:36 +08:00
e381c6adde Merge branch 'bugfix/fix_i2s_adc_mode' into 'master'
driver(i2s): fix broken i2s adc mode

See merge request idf/esp-idf!1653
2018-02-11 12:58:58 +08:00
a5eb369126 Merge branch 'bugfix/realloc_corruption_bug' into 'master'
heap: Fix bug when realloc moves data between heaps

See merge request idf/esp-idf!1931
2018-02-09 19:19:29 +08:00
b7fc067c8c heap: Fix bug when realloc moves data between heaps
When realloc-ing to a smaller buffer size which ends up allocated in a different heap, the heap
structure is corrupted. This can only happen:

* If heap checking is Comprehensive (meaning buffers are never shrunk in place) and the heap the buffer was originally allocated in is full.
* Calling heap_caps_realloc() to deliberately move a buffer to a different capabilities type, and shrink it at the same time.

Probable fix for https://github.com/espressif/esp-idf/issues/1582
Probably the same issue:
https://www.esp32.com/viewtopic.php?f=2&t=4583
https://www.esp32.com/viewtopic.php?f=13&t=3717
2018-02-09 16:10:52 +08:00
417ef19084 Merge branch 'feature/tls_support' into 'master'
FreeRTOS TLS support

See merge request idf/esp-idf!1902
2018-02-09 12:34:20 +08:00
62f924544d Merge branch 'test/spi_performance' into 'master'
test(spi_master): add performance display for spi master.

See merge request idf/esp-idf!1923
2018-02-08 22:59:40 +08:00
0519a73334 component/bt: Fix mem leak of bt 2018-02-08 16:26:12 +08:00
687d6aa2cd test(adc2): re-enable the adc2 test. 2018-02-08 13:48:25 +08:00
16de6bff24 Merge branch 'bugfix/redirect_psram_muxes_to_single_mux' into 'master'
Fake S32C1I operation for muxes in PSRAM

See merge request idf/esp-idf!1688
2018-02-08 11:30:43 +08:00
3756e0c37f Merge branch 'bugfix/tw18291_fix_wifi_deinit_causes_assert' into 'master'
esp32: fix esp_wifi_deinit causes assert

See merge request idf/esp-idf!1916
2018-02-08 11:28:24 +08:00
f8c42369f1 freertos: Adds C11 TLS support 2018-02-07 18:46:57 +03:00
35de8d703e Merge branch 'bugfix/spi_gpio0' into 'master'
fix(spi): several fixes about maros (flags) and GPIO0.

See merge request idf/esp-idf!1666
2018-02-07 18:50:13 +08:00
a151767426 test(spi_master): add performance display for spi master. 2018-02-07 17:50:13 +08:00
451f69cc2e driver(i2s): fix broken i2s adc mode
1. Move i2s reset code from i2s_stop to i2s_start.
2. add RTC API to set sw mode for ADC
3. add description for adc_power_always_on()
4. add lock for i2s dma and RTC ADC functions.
5. add ADC read task in example

reported from bbs:  https://esp32.com/viewtopic.php?f=13&t=3490&p=17522#p17522
reported from github: https://github.com/espressif/esp-idf/issues/1333
2018-02-07 17:17:20 +08:00
7e870aefdb Merge branch 'bugfix/sdmmc_line_control' into 'master'
bugfix(sdmmc_host): fix some issue with bit width config .

See merge request idf/esp-idf!1900
2018-02-07 16:29:07 +08:00
75f564d7b5 Merge branch 'bugfix/ESP_ERR_PING_BASE_collision' into 'master'
Change ESP_ERR_PING_BASE because of collision with ESP_ERR_TCPIP_ADAPTER_BASE

See merge request idf/esp-idf!1918
2018-02-07 16:27:09 +08:00
2551a7343d test(sdmmc_host): add new test to probe over SD (1-bit). 2018-02-07 12:05:05 +08:00
e14e1508cb fix(sdmmc_host): fix the issue when slot and host flag are not compatible. 2018-02-07 12:05:05 +08:00
8abbb17401 feat(sdmmc_host): force pull-up DAT3 for SD 4-bit mode so that slave will not fall into SPI mode. 2018-02-07 12:05:05 +08:00
e2cbcd5bc7 Merge branch 'feature/aws_iot_thing_shadow_settings' into 'master'
aws iot: Expose Thing Shadow settings in menuconfig

See merge request idf/esp-idf!1765
2018-02-07 10:52:33 +08:00
ade6bd4ad8 Added missing references to the current and previous board versions 2018-02-06 18:54:58 +01:00
5497c5ed9a esp32: fix esp_wifi_deinit causes assert
Update wifi lib to fix esp_wifi_deinit causes system assert issue
2018-02-06 13:01:51 +00:00
f44cbe9033 Change ESP_ERR_PING_BASE because of collision with ESP_ERR_TCPIP_ADAPTER_BASE 2018-02-06 12:34:12 +01:00
532107c958 Merge branch 'test/ut_script' into 'master'
test: use the tiny-test-fw to run the unit test in CI

See merge request idf/esp-idf!1558
2018-02-06 18:03:22 +08:00
22dcdce949 Merge branch 'bugfix/btdm_scan_result_of_adv_type_wrong' into 'master'
component/bt: Fix bug:scan result of adv type is wrong

See merge request idf/esp-idf!1897
2018-02-06 15:50:29 +08:00
acdad3237c component/bt: Fix bug:update pktlen have no callback 2018-02-06 14:54:05 +08:00
4ee6f73a2e component/bt: Fix BLE printf missing problem 2018-02-06 14:35:39 +08:00
5214a0600c test(adc2): temporary ignore adc2 unit test (with WiFi) to pass the CI.
the issue is introduced in commit 17f01eb718.
2018-02-06 11:59:40 +08:00
7ade59db6a Merge branch 'bugfix/idf_monitor_fixes' into 'master'
idf_monitor bug fixes

See merge request idf/esp-idf!1889
2018-02-05 20:59:33 +08:00
8173d42581 Merge branch 'feature/partition_table_md5' into 'master'
Partition table md5 check

See merge request idf/esp-idf!1891
2018-02-05 20:58:52 +08:00
c1c4f331fe Merge branch 'bugfix/cjson_update_171' into 'master'
Update cJSON to v1.7.1

See merge request idf/esp-idf!1903
2018-02-05 19:57:00 +08:00
cf7a4cc650 Protect partition table by MD5 checksum 2018-02-05 11:36:03 +01:00
5b8a9478a3 CI: new CI ut framework, and can run it in local PC 2018-02-05 06:58:22 +00:00
cb3c88fb2f unit-test-app: use '-' to show test history 2018-02-05 06:58:22 +00:00
1e4508bc8d tiny-test-fw: fix dut for python2 and python3 2018-02-05 06:58:22 +00:00
eaff702df1 aws iot: Expose Thing Shadow settings in menuconfig
Closes https://github.com/espressif/esp-idf/issues/1340
Ref TW#16817
2018-02-05 14:38:23 +08:00
11bf72aace Update cJSON to v1.7.1
* Fix buffer overflow issue in cJSON 1.6.0
* Change cJSON structure to git submodule

Closes https://github.com/espressif/esp-idf/issues/1577
2018-02-05 14:15:26 +08:00
79fd3f4f10 component/bt: Fix bug:scan result of adv type is wrong 2018-02-02 19:17:39 +08:00
475ffe78e8 Merge branch 'bugfix/libphy_rodata_into_dram' into 'master'
move rodata segment of libphy.a to dram

Fixes https://github.com/espressif/esp-idf/issues/1573


See merge request idf/esp-idf!1894
2018-02-02 19:03:20 +08:00
70ab924dbb Especially when internal memory fills up, some FreeRTOS structures (queues etc) get allocated in psram. These structures also contain a spinlock, which needs an atomic-compare-swap operation to work. The psram hardware, however, does not support this operation. As a workaround, this patch detects these spinlocks and will, instead of S32C1I, use equivalent C-code to simulate the behaviour, with an (internal) mux for atomicity. 2018-02-02 17:11:06 +08:00
a31d07ba25 move rodata segment of libphy.a to dram
1. rodata segment of libphy.a(about 1200B) can be accessed by ISRs, so put it into DRAM
2018-02-02 13:00:11 +08:00
ed1dfe9009 Merge branch 'bugfix/cxx_guards_test_singlecore' into 'master'
unit tests: make static init guard test single core compatible

See merge request idf/esp-idf!1615
2018-02-02 10:38:43 +08:00
9ecd718f72 Merge branch 'bugfix/btdm_modify_set_mtu_call_handler' into 'master'
Component/bt: modify set mtu call handler

See merge request idf/esp-idf!1850
2018-02-01 20:19:52 +08:00
afe9a5d3ae Merge branch 'bugfix/btdm_fix_adv_pending_in_smp' into 'master'
Component/bt: fix stop adv failed in smp

See merge request idf/esp-idf!1881
2018-02-01 20:17:02 +08:00
dc11c88a57 Merge branch 'bugfix/btdm_ble_mutil_connect_performance_optimiz' into 'master'
component/bt: Fixed the bug of ble multi connection not stable issue.

See merge request idf/esp-idf!1868
2018-02-01 20:11:51 +08:00
4eab275a51 idf_monitor: Fix remaining case of Windows "console write fails" bug
Closes https://github.com/espressif/esp-idf/pull/1567
2018-02-01 14:05:56 +08:00
19d3d25ec2 idf_monitor: Aggressively clean up any interactive gdb session
At least on Linux, this can get stuck sometimes and cause terminal weirdness.
2018-02-01 14:05:53 +08:00
8ef7434d55 Merge branch 'feature/docs_devkitc-v4' into 'master'
Docs for ESP32 DevKitC V4

See merge request idf/esp-idf!1853
2018-02-01 12:20:17 +08:00
50892efc5c Merge branch 'bugfix/spiffs_obj_name_len_check' into 'master'
SPIFFS: fix issues with formatting and page size limit

See merge request idf/esp-idf!1866
2018-02-01 12:18:39 +08:00
f51880f8ac Merge branch 'test/enlarge_https_bin_size_threshold' into 'master'
test: enlarge https bin size threshold

See merge request idf/esp-idf!1886
2018-02-01 12:17:24 +08:00
6595d5392e Merge branch 'bugfix/btdm_alarm_free' into 'master'
component/bt: free timer resources after using them

See merge request idf/esp-idf!1863
2018-02-01 11:01:08 +08:00
0f7d9cf7d3 Merge branch 'bugfix/btdm_a2dp_task_stack_size' into 'master'
component/bt: make A2DP source and sink task size configurable through menuconfig

See merge request idf/esp-idf!1825
2018-02-01 10:58:40 +08:00
63a401057c test: enlarge https bin size threshold:
use performance matrix to tracking bin size is not convenient. bin size
do change for a lot reasons.

we'll implement a new method to track it. before that, set a large
enough threshold, so we can still keep tracking it.
2018-02-01 09:57:00 +08:00
c759ff3aab Docs for ESP32 DevKitC V4 2018-01-31 18:31:13 +01:00
a239e1359a bugfix(rmt): tx cmd without negative coding 2018-01-31 19:35:50 +08:00
e64d78dc57 Component/bt: fix stop adv failed in smp 2018-01-31 16:06:22 +08:00
17f01eb718 Merge branch 'feature/wifi_throughput_optimization' into 'master'
lwip/esp32/examples: wifi throughput optimization

See merge request idf/esp-idf!1861
2018-01-31 15:44:43 +08:00
1103e1baba spiffs: fix esp_spiffs_format not working if partition is not mounted
Fixes https://github.com/espressif/esp-idf/issues/1547.
2018-01-31 14:29:13 +08:00
d02e36f4ff component/bt: fix type error for ble_spp_client when SUPPORT_HEARTBEAT is enabled 2018-01-31 11:39:04 +08:00
b06ea40f66 Component/bt: modify set mtu call handler 2018-01-31 11:28:05 +08:00
7b32aaa151 spiffs: reformat Kconfig to 80 character wide lines
Some help strings looked odd in mconf.
2018-01-31 11:14:56 +08:00
594d5c1436 spiffs: check if OBJ_NAME_LEN + OBJ_META_LEN is within limits
The limit was mentioned in spiffs_config.h but was not checked.

Fixes https://github.com/espressif/esp-idf/issues/1546
2018-01-31 11:14:56 +08:00
507a3a6391 spiffs: add Kconfig option for logical page size 2018-01-31 11:14:56 +08:00
d8c80509bc Merge branch 'feature/io_mux_register_names' into 'master'
soc/esp32: Add IO_MUX_GPIOxx register names to match iomux names used in TRM

See merge request idf/esp-idf!1875
2018-01-31 10:50:41 +08:00
2e33dbf766 Merge branch 'bugfix/esp_log_level_set_strcmp' into 'master'
Fix esp_log_level_set string matching (github PR 1557)

See merge request idf/esp-idf!1872
2018-01-31 09:58:21 +08:00
4297c337f9 esp32: Add IO_MUX_GPIOxx register names to match iomux names used in TRM
The TRM describes IOMUX registers are IO_MUX_x_REG for x in GPIO0-39.

Until now ESP-IDF describes them as PERIPHS_IO_MUX_(pinname)_U

This commit adds additional IOMUX register names which match the ones used in the TRM.
2018-01-30 17:09:37 +08:00
2242bf9b37 lwip/esp32/examples: wifi throughput optimizations
1. Put some lwip udp rx/tx relating functions to IRAM
2. Put some wifi rx/tx relating functions to IRAMa
3. Reduce wifi dynamic malloc from 4 to 1 for each ebuf
4. Update iperf example accordingly
5. Update libphy.a to v383
2018-01-30 16:27:49 +08:00
00db39ee1b component/bt: make A2DP source and sink task size configurable through menuconfig
1. use different set of parameters for A2DP source/sink tasks
2. make the task stack size configurable through menuconfig
2018-01-30 14:26:53 +08:00
e676676541 Merge branch 'bugfix/ulp_docs_typo' into 'master'
Fix typo in ulp_instruction_set.rst. Merges https://github.com/espressif/esp-idf/pull/1540

See merge request idf/esp-idf!1874
2018-01-30 12:17:24 +08:00
75011a8611 Fix typo in ulp_instruction_set.rst. Merges https://github.com/espressif/esp-idf/pull/1540 2018-01-29 21:56:55 +01:00
be96e1db95 fix(spi): fix typo of LSBFIRST macro.
Closes https://github.com/espressif/esp-idf/issues/1480, Closes https://github.com/espressif/esp-idf/issues/1464
2018-01-29 17:44:37 +08:00
8900200147 fix(spi_master): fix the variable command and address flag issue.
Closes https://github.com/espressif/esp-idf/issues/1549
2018-01-29 17:44:36 +08:00
60469c500a fix(spi): fix pin issue with GPIO0 (other pins than CS). 2018-01-29 17:44:36 +08:00
0f22a53fc2 Merge branch 'bugfix/sysview_timer_1core' into 'master'
sysview: fix compilation in 1 core mode, refactor timer choices

See merge request idf/esp-idf!1822
2018-01-29 17:28:59 +08:00
d3d2c077f9 Merge branch 'bugfix/log_invalid_comparison' into 'master'
log: fix preprocessor comparison against an enum value

See merge request idf/esp-idf!1865
2018-01-29 17:26:43 +08:00
58f0edfd03 Merge branch 'bugfix/btdm_tutorials_compatible_with_github' into 'master'
component/bt: modify ble tutorials to make them be compatible with GitHub markdown

See merge request idf/esp-idf!1786
2018-01-29 15:47:36 +08:00
3da8f2eda1 bugfix(touch): change the default value for sar_touch_enable register.
Reported from github: https://github.com/espressif/esp-idf/issues/1236

All the touch channels are enabled by default in hardware. This would interfere other RTC function on Touch IOs.
Disable touch function in touch_pad_init().
2018-01-29 15:40:21 +08:00
06dcca0fcd component/bt: Fixed the bug of ble multi connection not stable issue. 2018-01-29 14:27:03 +08:00
00da9c1cab Merge branch 'bugfix/esp_console_header_guards' into 'master'
console: Add C++ guards to header

See merge request idf/esp-idf!1867
2018-01-29 14:15:12 +08:00
1249659931 Merge branch 'bugfix/system_restore_duplicate' into 'master'
esp32: remove duplicate definition of system_restore

See merge request idf/esp-idf!1864
2018-01-29 14:02:02 +08:00
2536d50d2e console: Add C++ guards to header
As reported on forum https://esp32.com/viewtopic.php?f=2&t=4478&p=19659
2018-01-29 09:22:04 +08:00
750c8c00c8 This is a fix for the esp_log_level_set function. The problem is when this
function is called but NOT withe the same 'c' string constant that the LOG*
calls used in each module, the cache check doesn't match, so the cached
entry won't get updated. There's no point in optimizing this function
anyway because it is only called rarely.
2018-01-28 16:47:07 -06:00
527be440f8 log: fix preprocessor comparison against an enum value
Fix `#if (LOG_LOCAL_LEVEL >= ESP_LOG_INFO)` which is always false and
produces a warning with -Wundef.

Use same pattern to compare LOG_LOCAL_LEVEL with ESP_LOG_INFO as is used
in definition of `ESP_LOG_BUFFER_HEX_LEVEL` and
`ESP_LOG_BUFFER_CHAR_LEVEL`.

Also reformat existing definitions for better readability.

Closes https://github.com/espressif/esp-idf/issues/1526
2018-01-28 19:45:25 +08:00
1979235df2 esp32: remove duplicate definition of system_restore
Fixes https://github.com/espressif/esp-idf/issues/1520.
2018-01-28 19:26:37 +08:00
90c9ffa975 component/bt: free timer resources after using them
Bluedroid use a set of timer function pairs such as btu_start_timer/btu_stop_timer, btu_sys_start_timer/btu_sys_stop_timer for use, in a lack of timer release functions. Thus the timers may be exhausted after some event sequence such as repetition of connection/reconnection with different devices. The maximum timer number used in bluedroid is given by ALARM_CBS_NUM which is 30 for now. This bugfix borrowed some update from bluedroid in Andoroid 7.0, which add timer release functions which promote the recycle of timer resources.
2018-01-27 19:03:06 +08:00
daa8cfa800 Merge branch 'bugfix/btdm_fix_stop_adv_no_callback_when_adv_has_been_stoped' into 'master'
Component/bt: fix stop adv no callback when adv has already stoped

See merge request !1838
2018-01-26 20:37:12 +08:00
4cbc0198a0 Merge branch 'bugfix/btdm_fix_BT_load_boned_in_smp' into 'master'
Component/bt: fix bt load boned in smp

See merge request !1854
2018-01-26 20:34:24 +08:00
bbfe2fc5f1 Merge branch 'bugfix/move_phy_api_to_iram' into 'master'
components/phy: add IRAM_ATTR attribute to the two APIs used in phy calibration

See merge request !1858
2018-01-26 20:31:59 +08:00
95af1c22b5 components/phy: add IRAM_ATTR attribute to the two APIs used in phy calibration
1. the two APIs used in phy calibration are called in bluetooth baseband ISR, so locate the them in IRAM
2018-01-26 17:12:59 +08:00
41f338d23c Component/bt: fix bt load boned in smp 2018-01-26 14:38:54 +08:00
5b1f869880 Merge branch 'feature/btdm_bluedroid_env_dynomic_malloc_enable' into 'master'
This MR added the bluedroid env  variable can dynamic malloc and BT variable use psram malloc supported

See merge request !1698
2018-01-26 10:06:43 +08:00
62be35c0a5 Merge branch 'feature/wifi_check_mac_when_cal_phy' into 'master'
Added two functions in PHY API for disable interrupts and add rfcal data checking to PHY

See merge request !1840
2018-01-25 20:27:55 +08:00
1bc87e972b Added two functions in PHY API for disable interrupts and add rfcal data checking to PHY 2018-01-25 17:58:14 +08:00
e22f8ad1aa component/bt: Update BLE examples tutorials and ReadMe files
- Make docs compatible with GitHub Markdown
- Add tutorials links in programming doc
- Modify ReadMe files
2018-01-25 16:59:40 +08:00
d54e188e61 Component/bt: fix stop adv no callback when adv has been stoped 2018-01-25 15:31:17 +08:00
c73ea7a804 Merge branch 'bugfix/wifi_fix_sniffer_rx_misc_data_assert' into 'master'
Fix the bug that in sniffer mode it asserts when receive misc data at first

See merge request !1837
2018-01-25 14:09:46 +08:00
b98da5da97 Merge branch 'bugfix/btdm_classicbt_pscan_assert' into 'master'
component/bt : fix the bug of pscan when interrupt react slowly

See merge request !1816
2018-01-25 13:52:00 +08:00
62fade9970 Merge branch 'bugfix/btdm_fix_bonded_device_list_error_after_reboot' into 'master'
component/bt: fix bonded device list error after reboot

See merge request !1750
2018-01-25 12:05:58 +08:00
9b38baab26 Merge branch 'feature/esptool_v221' into 'master'
esptool: Update to v2.2.1

See merge request !1841
2018-01-25 09:08:25 +08:00
cdd7a87674 Fix the bug that in sniffer mode it asserts when receive misc data at first
close github issue#1037 WiFi Promiscuous filter breaks w/
WIFI_PROMIS_FILTER_MASK_ALL and issue#1404
esp_wifi_set_promiscuous_filter set WIFI_PROMIS_FILTER_MASK_ALL error
2018-01-24 16:06:53 +08:00
63e5cbbd66 component/bt: Added the bluedroid environment variable dynomic malloc support & support to malloc the memory to the psram.
component/bt: Added the Macro for the classic BT support.
component/bt: added the bluedroid deinit method.
component/bt: allow more classic BT global variables to use dynamic allocation scheme
1. allocate memory for AVDT, AVCT control blocks when dynamic memory is used
2. allow SBC decoder buffer to use dynamic allocation scheme
component/bt: Remove the wrong changes in bt/Kconfig & Added the GATTS_INCLUDED in the gatt_free function when gatt service close.
component/bt: Shorten the abbreviation BT_ALLOCATION_FROM_SPIRAM_FIRST and BT_BLE_DYNAMIC_ENV_MEMORY two macros.
2018-01-24 15:18:02 +08:00
6736908eaf esptool: Update to v2.2.1
Fixes a bug with >230400bps flashing on macOS, possibly other platforms.

Full release notes: https://github.com/espressif/esptool/releases/tag/v2.2.1
2018-01-24 17:45:49 +11:00
2a10ffce5f Merge branch 'feature/dma_attr' into 'master'
feat(attr): add new macro `DMA_ATTR` and `STATIC_DMA_ATTR` to help dma buffer declaration.

See merge request !1550
2018-01-24 12:04:03 +08:00
fcfcab7678 feat(attr): add new macro DMA_ATTR and WORD_ALIGNED_ATTR to help dma buffer declaration. 2018-01-24 11:28:14 +08:00
d89542eb2b Merge branch 'bugfix/uart_pattern_detect' into 'master'
bugfix(uart): patten detect function

See merge request !1235
2018-01-24 06:12:48 +08:00
ce2e4cbc4f Merge branch 'bugfix/log_hex_buffer_pr1519' into 'master'
Fix hexdump comment and array size. See issue #1518.

See merge request !1832
2018-01-23 22:45:41 +08:00
90ad7b423c unit tests: make static init guard test single core compatible 2018-01-23 07:56:13 +00:00
3bc1a8318b Merge branch 'doc/debian_build_prereqs' into 'master'
docs: Add build dependencies for toolchain for Debian (Github PR)

See merge request !1830
2018-01-23 15:38:09 +08:00
ffaf145056 Merge branch 'bugfix/xtal_freq_estimation' into 'master'
soc/rtc_clk: fix loss of precision in estimation of XTAL frequency

See merge request !1763
2018-01-23 15:37:47 +08:00
02821571dd Merge branch 'bugfix/xRingbufferSend_timeout_bug' into 'master'
bugfix(ringbuffer): Fix ringbuffer_send timeout bug

See merge request !1823
2018-01-23 15:37:13 +08:00
f6cfe92533 Merge branch 'feature/support-markdown-docs' into 'master'
docs : Add support for markdown files

See merge request !1781
2018-01-23 15:36:12 +08:00
93872837d3 Add build dependencies for toolchain for Debian
Merges https://github.com/espressif/esp-idf/pull/1465
2018-01-23 11:38:28 +11:00
ffd4187883 Merge branch 'feature/esptool_v2_2' into 'master'
esptool: Update to v2.2

See merge request !1755
2018-01-23 08:36:52 +08:00
84741e85e7 Merge branch 'feature/aws-iot-sdk-v2.2.1' into 'master'
AWS IoT SDK: Update version from v2.1.1 to v2.2.1

See merge request !1732
2018-01-23 08:33:38 +08:00
f5da6d64fa Merge branch 'bugfix/mdns_txt' into 'master'
Fix issue with some mDNS parsers

See merge request !1827
2018-01-22 22:25:13 +08:00
4fa130ae4f mdns: Fix case where service is NULL and that will cause exception 2018-01-22 13:56:53 +01:00
51dde19a76 mdns: Fix issue with some mDNS parsers
Some mDNS parser have issue with zero terminated TXT lists. This fix targets to overcome this issue. Found and tested with jmdns.
2018-01-22 13:56:34 +01:00
2dadf2a854 Merge branch 'feature/docs_link_text_for_custom_link_roles' into 'master'
Custom link roles have been extended to provide an option of displaying some text where originally a bare link is rendered

See merge request !1828
2018-01-22 20:19:45 +08:00
2016478676 Merge branch 'bugfix/btdm_format_error' into 'master'
component/bt: Fix format error

See merge request !1803
2018-01-22 19:52:54 +08:00
8af04997f3 Merge branch 'bugfix/dump_other_core_when_int_wdt_happens' into 'master'
Dump the frame of the other core when interrupt watchdog happens

See merge request !1787
2018-01-22 19:52:05 +08:00
84b92a4ead Merge branch 'feature/btdm_add_get_error_enent_for_blufi' into 'master'
component/bt: add  error report event for blufi

See merge request !1702
2018-01-22 19:48:29 +08:00
a0a2422541 bugfix(ringbuffer): Fix ringbuffer_send timeout bug 2018-01-22 14:17:58 +08:00
870efdb9d4 bugfix(uart): patten detect function
requirement from github(https://github.com/espressif/esp-idf/issues/805): to provide the position in the buffer of the pattern detected.

requirement from AT application: in AT app, when no hardware flow control is enabled, in some situation the rx buffer might be full, and the terminator “+++” might be lost, we can use pattern detect interrupt to avoid missing the terminator. When pattern detect interrupt happens, it will not send a data event at the same time.

1. Add API to get position of detected pattern in rx buffer
2. Modify UART event example
3. Add comments for uart_flush, add alias API uart_flush_input to clear the rx buffer
4. Modify the way rx_buffered_len is calculated
2018-01-22 13:33:51 +08:00
19f10c4960 Fix hexdump comment and array size. See issue #1518.
Closes https://github.com/espressif/esp-idf/pull/1518

Merges https://github.com/espressif/esp-idf/pull/1519
2018-01-22 16:25:09 +11:00
b64872aaab component/bt: fix README.md format and loggings for A2DP sink example 2018-01-22 10:24:22 +08:00
624828ce83 Dump the frame of the other core when interrupt watchdog happens 2018-01-18 23:10:29 +00:00
f3ccc5da4f Custom link roles have been extended to provide an option of displaying some text where originally a bare link is rendered 2018-01-17 20:01:36 +01:00
f4009b94dc Merge branch 'bugfix/ringbuf_warnings' into 'master'
ringbuf: Fix warnings seen when CONFIG_FREERTOS_ASSERT_DISABLE=y

See merge request !1824
2018-01-17 22:27:15 +08:00
1861d6e137 Component/bt: fix bonded device list error after reboot 2018-01-17 19:54:49 +08:00
b66d80ed95 ringbuf: Fix warnings seen when CONFIG_FREERTOS_ASSERT_DISABLE=y
Signed-off-by: Piyush Shah <piyush@espressif.com>
2018-01-17 16:30:05 +08:00
c3d8215728 sysview: fix compilation in 1 core mode, refactor timer choices
Changes related to DFS have broken compilation of sysview code in 1 core
mode. This change fixes this, and moves choice of the timer used for
timestamp into Kconfig. CCOUNT timer is only available as an option if
1 core mode is used. esp_timer is added as a new option, and is the
only available option if DFS is enabled.
2018-01-17 12:23:28 +08:00
b617118df3 component/bt : fix the bug of pscan when interrupt react slowly 2018-01-17 11:48:23 +08:00
1c3dd23fe0 Merge branch 'feature/btdm_ble_spp_docs' into 'master'
component/bt: add readme for ble spp demo

See merge request !1748
2018-01-17 10:19:30 +08:00
429371c182 Merge branch 'feature/mdns_again' into 'master'
New mDNS implementation

See merge request !1683
2018-01-16 18:38:42 +08:00
f0ed404448 Merge branch 'bugfix/btdm_pair_fail_with_random_address' into 'master'
component/bt: Fix bug when pair with random address

See merge request !1784
2018-01-16 18:17:45 +08:00
e73e6bb928 Merge branch 'bugfix/console_example_nvs_init' into 'master'
console example: initialize nvs on startup

See merge request !1766
2018-01-16 18:10:32 +08:00
23992d20c6 Merge branch 'bugfix/gitignore_dsstore' into 'master'
Add MacOS .DS_Store files to .gitignore

See merge request !1806
2018-01-16 18:10:08 +08:00
cf91ad32dc Component/bt: add get error event for blufi 2018-01-16 17:29:48 +08:00
52c56e834f Merge branch 'bugfix/btdm_modify_license' into 'master'
Component/bt: BLE demo modify license

See merge request !1808
2018-01-16 17:13:56 +08:00
4bddbc031c Import mDNS changes 2018-01-16 10:58:34 +02:00
f2e51bc08a Merge branch 'bugfix/btdm_discon_when_upd_conn_params_in_smp' into 'master'
component/bt: fix disconnect after connection params update in smp

See merge request !1804
2018-01-16 16:41:18 +08:00
ee0af80843 Merge branch 'bugfix/btdm_fix_conn_params_update_failed_in_SMP' into 'master'
component/bt: fix conn params update failed in smp

See merge request !1796
2018-01-16 16:38:22 +08:00
088dc40e48 component/bt: Fix bug when pair with random address 2018-01-16 08:35:26 +00:00
0ef0db08d5 Merge branch 'feature/btdm_add_get_wifi_list_for_blufi' into 'master'
component/bt: add get wifi list cmd for blufi

See merge request !1708
2018-01-16 16:31:55 +08:00
f620a3c4f3 Merge branch 'bugfix/int_wdt_in_ocd_mode' into 'master'
panic: prevent INT WDT from re-triggering in OCD mode

See merge request !1764
2018-01-16 15:07:26 +08:00
f68a059a8c Merge branch 'test/fix_update_conn_param' into 'master'
test: fix BLE update conn param test case errors

See merge request !1814
2018-01-16 14:12:16 +08:00
c9607e9753 test: fix BLE update conn param test case errors 2018-01-16 13:39:12 +08:00
c25be19ebf Merge branch 'bugfix/multi_ping_crash' into 'master'
fix(ping): fix crash when multi-ping

See merge request !1768
2018-01-16 09:05:32 +08:00
4d2c3edc07 Component/bt: add get wifi list cmd for blufi 2018-01-15 12:16:19 +00:00
5dfbacd00e Component/bt: modify license 2018-01-15 19:47:23 +08:00
cd54a95a7f Merge branch 'feature/btdm_a2dp_src' into 'master'
Feature/btdm a2dp src

See merge request !1190
2018-01-15 18:55:01 +08:00
261fd1053b Add MacOS .DS_Store files to .gitignore 2018-01-15 11:45:14 +02:00
0891ec35c7 component/bt: fix disconnect after connection params update in smp 2018-01-15 17:03:56 +08:00
f165927272 Component/bt: fix update connection params error in smp 2018-01-15 15:38:08 +08:00
bd47f405a3 docs : Add support for markdown files 2018-01-15 13:58:31 +08:00
f482e9e54c Merge branch 'bugfix/uart_fifo_ovf_workaround' into 'master'
driver(uart): fix uart rx fifo length error after overflow.

See merge request !1735
2018-01-15 07:32:20 +08:00
595688a32a Merge branch 'feature/doc_translations' into 'master'
Feature/doc translations

See merge request !1718
2018-01-12 21:09:03 +08:00
3bdd62ec1c docs: add CN translation of Windows setup guide 2018-01-12 20:41:32 +08:00
b7e6d31d42 docs: add CN translation of Linux setup guide 2018-01-12 20:41:32 +08:00
ffc2db0a35 fix(ping): fix crash when multi-ping
1. "lwip_socket" should close by "lwip_close_r" other than "lwip_close"
2. for generally compatible, fix all lwip interface to normally socket interface
3. call vTaskDelete when new socket failed in case of task crash

close #https://github.com/espressif/esp32-at/issues/58
2018-01-12 15:54:07 +08:00
c49a07ea07 component/bt: add readme for ble spp demo 2018-01-12 14:55:57 +08:00
492db0591d Fix uart fifo overflow bug 2018-01-12 14:42:54 +08:00
2ddee72996 Merge branch 'feature/toolchain-80-g6c4433a' into 'master'
Toolchain: Update to version 1.22.0-80-g6c4433a

See merge request !1771
2018-01-11 21:44:42 +08:00
3ef69b8e6d docs: Add a temporary index page to get CN docs started 2018-01-11 18:18:55 +08:00
914ab07567 Merge branch 'feature/ulp_i2c_reg' into 'master'
soc,ulp: add register definitions of RTC_I2C peripheral

See merge request !1762
2018-01-11 12:08:25 +08:00
38e15e6241 build: Remove explict -lstdc++-psram-workaround
This is now handled internally to the toolchain.
2018-01-11 10:32:02 +11:00
16391c2748 Merge branch 'bugfix/full_calibration_will_not_use_init_data' into 'master'
Fix bug that when we do full calibration init data bin is not used

See merge request !1746
2018-01-10 17:01:53 +08:00
675844c4bb Merge branch 'bugfix/assert_in_PSRAM_WIFI' into 'master'
bug fix of assert happen in PSRAM

See merge request !1745
2018-01-10 16:47:40 +08:00
853736afe2 Toolchain: Update to version 1.22.0-80-g6c4433a
Includes updated prebuilt Windows MSYS2 environment.
2018-01-10 07:49:24 +00:00
d082bf0697 Merge branch 'test/support_specify_docker_image' into 'master'
CI: support specify docker image with bot

See merge request !1586
2018-01-10 15:41:46 +08:00
e9ca1dc9b0 Merge branch 'feature/rmt_end_transmission_callback' into 'master'
rmt: Adds a simple handler that can be called when transmission ends.

See merge request !1726
2018-01-10 04:59:26 +08:00
f360fe5b3e component/bt: implement A2DP source
1. Modified symbol names of A2DP sink APIs include:
- esp_a2d_data_cb_t --> esp_a2d_sink_data_cb_t
- esp_a2d_register_data_callback --> esp_a2d_sink_register_data_callback
2018-01-09 20:20:52 +08:00
337f790fd3 bug fix of assert happen in PSRAM 2018-01-09 20:01:06 +08:00
3452845063 Merge branch 'bugfix/btdm_avrc_connect_state_evt' into 'master'
Bugfix/btdm avrc connect state evt

See merge request !1717
2018-01-09 19:33:06 +08:00
6daa52d2ca Merge branch 'bugfix/update_bt_lib_with_updated_toolchain_for_master' into 'master'
component/bt: build libbtdm_app.a with updated toolchain

See merge request !1728
2018-01-09 16:55:45 +08:00
e07b43e924 component/bt: add AVRC event for remote features indication
1. remove the feature mask parameter from AVRC connection state event, as the AVCTP connection can be initiated by remote device before service discovery to remote device is performed. \
In this case, AVRCP connection state event may not be reported after connection initated by remote device is established.
2. remove ESP_AVRC_CT_MAX_EVT
3. add more documentations to AVRC APIs
2018-01-09 16:33:48 +08:00
11c0daef62 Fix bug that when we do full calibration init data bin is not used 2018-01-09 15:31:34 +08:00
24b07a3f45 console example: initialize nvs on startup
Fixes https://github.com/espressif/esp-idf/issues/1478
2018-01-09 12:48:02 +08:00
ff726b4c79 Merge branch 'bugfix/btdm_fix_cant_remove_boned_device_if_its_connected' into 'master'
Component/bt: fix can not remove boned device if it is connected

See merge request !1758
2018-01-09 11:42:45 +08:00
c147d7b03e Merge branch 'feature/btdm_bt_spp' into 'master'
component/bt: Add bt spp profile

See merge request !1593
2018-01-09 10:44:46 +08:00
7ea16872d4 Merge branch 'bugfix/docs-pico-kit-swapped-pins' into 'master'
Fixed swapped GPIO6 and GPIO11 in ESP-PICO-KIT 'Pin Descriptions', ref. https://esp32.com/viewtopic.php?f=2&t=3880

See merge request !1736
2018-01-09 08:53:10 +08:00
1bf456b57b Merge branch 'bugfix/ci_rare_examples_error' into 'master'
CI: Fix an occasional error in the build_examples

See merge request !1752
2018-01-09 08:52:35 +08:00
76b936e98e Merge branch 'bugfix/eclipse_cxx_include_paths' into 'master'
Eclipse: Fix bug with C++ include paths (Github PR)

See merge request !1756
2018-01-09 08:52:02 +08:00
ef5d6cf64a eclipse: Add space between -I and build directory
See https://github.com/espressif/esp-idf/pull/1474
2018-01-09 09:27:00 +11:00
8e8cb1a139 panic: prevent INT WDT from re-triggering in OCD mode
When INT WDT fires, panicHandler is invoked. In OCD mode, panicHandler
sets a breakpoint on the PC from the exception frame and returns.
However in case of INT WDT, interrupt flag is still set in TIMERG1
peripheral, which causes INT WDT to trigger again. This causes an
endless stream of "Core  0 panic'ed (Interrupt wdt timeout on CPU1)"
messages. OpenOCD also gets terribly confused at this point.

Disable watchdogs when exiting panic handler in OCD mode.
Clear TIMERG1 WDT interrupt flag to prevent re-entry into panic handler.
2018-01-09 01:46:24 +08:00
7c584e80b0 soc/rtc_clk: fix loss of precision in estimation of XTAL frequency
RTC_FAST_CLK_FREQ_APPROX is defined as 8500000, so 0.5MHz part was lost
when dividing by MHZ. Since cal_val is 64-bit the parens can be removed.

With 40MHz XTAL for a nominal ESP32 chip, this fixes estimated XTAL
frequency from 38 to 40MHz.
2018-01-08 23:31:21 +08:00
dba291416f soc,ulp: add register definitions of RTC_I2C peripheral 2018-01-08 21:28:14 +08:00
0cd97cecb2 Merge branch 'bugfix/btdm_error_when_add_device_to_whitelist_twice' into 'master'
component/bt: Fix bug when add device to whitelist twice

See merge request !1700
2018-01-08 19:16:34 +08:00
831b2c0441 Component/bt: fix can not remove boned device if it is connected 2018-01-08 17:55:00 +08:00
f61dcf4d1a Merge branch 'bugfix/freertos_eventgroup_isr_test' into 'master'
freertos/Fix Event Group ISR test case

See merge request !1733
2018-01-08 16:51:27 +08:00
ddf3d92a25 Merge branch 'bugfix/esp_log_local_level' into 'master'
Log: fix definition of LOG_LOCAL_LEVEL, fix typos

See merge request !1747
2018-01-08 16:41:42 +08:00
77adf85722 Add space between -I and path for CPPFLAGS
In order for the Eclipse CDT GCC Build Output Parser to be able to
pick up the include paths for C++/cpp files a space is required
between the compiler option (-I) and the actual path.

Merges https://github.com/espressif/esp-idf/pull/1474
2018-01-08 13:34:26 +11:00
da1bf60904 esptool: Update to v2.2 2018-01-08 11:45:09 +11:00
f9ad17eee4 Merge branch 'bugfix/BLE_SM_Security_Flags_pr1320' into 'master'
bt: Fix ble sm security flags (Github PR 1320)

See merge request !1740
2018-01-08 07:35:19 +08:00
a1b59679f9 Merge branch 'bugfix/btdm_standardize_code' into 'master'
component/bt: Standardize code

See merge request !1696
2018-01-05 18:56:08 +08:00
d2663c866e component/bt: Add SPP profile 2018-01-05 16:48:29 +08:00
4d4c055a1a Merge branch 'bugfix/recompile_with_new_psram_toolchain' into 'master'
recompile wifi lib with new toolchain 1.22.0-78-g4b87650

See merge request !1730
2018-01-05 16:40:30 +08:00
3a6962b8ec log: fix typos in header files 2018-01-05 16:10:58 +08:00
6a5c105753 log: define LOG_LOCAL_LEVEL before using it, don't use type cast
LOG_LOCAL_LEVEL is now used in a construct like:
 #if (LOG_LOCAL_LEVEL >= ESP_LOG_INFO)
Make sure that LOG_LOCAL_LEVEL is defined, and don't use a type cast in
its definition, because preprocessor can not parse that.
2018-01-05 16:10:58 +08:00
2227c44254 rmt: Add void * argument for end-of-transmission callback
Ref https://github.com/espressif/esp-idf/pull/1174
2018-01-05 17:31:59 +11:00
1066c74b74 rmt: Adds a simple handler that can be called when transmission ends.
Merges https://github.com/espressif/esp-idf/pull/1174
2018-01-05 17:14:02 +11:00
b902d00fa0 CI: Fix an occasional error caused by reordering the commands along with 'tee' in the script 2018-01-05 12:46:34 +08:00
30aacb79d5 Merge branch 'bugfix/uart_semaphore_pr1387' into 'master'
uart driver: Remove unnecessary xSemaphoreGive()

See merge request !1739
2018-01-05 11:05:05 +08:00
eb659e401d Merge branch 'feature/esp_intr_set_in_iram' into 'master'
Add esp_intr_set_in_iram (Github PR)

See merge request !1629
2018-01-04 06:04:05 +08:00
6e23ee704b Merge branch 'refactor/spi_clk_pre_cal' into 'master'
bugfix(spi_master): improve spi time cost for each transfer.

See merge request !1670
2018-01-04 06:03:12 +08:00
1837a034dd Merge branch 'bugfix/small_fixes_github' into 'master'
Some small fixes from Github

See merge request !1737
2018-01-03 13:36:03 +08:00
1e141b5198 Merge branch 'feature/btdm_add_bluetooth_examples_tutorials' into 'master'
component/bt: Add bluetooth example tutorials

See merge request !1592
2018-01-03 13:04:16 +08:00
2b24177d2b n btm_sec_save_le_key() set BTM_SEC_LE_LINK_KEY_KNOWN (and BTM_SEC_LE_LINK_KEY_AUTHED if MITM was used) when process a local Long Term Key (key type BTM_LE_KEY_LENC). This is because these flags share bits with the BTM_SEC_FLAG_LKEY_KNOWN (and BTM_SEC_FLAG_LKEY_AUTHED) flag in btm_api.h. Without this code a link that is encrypted via SM pairing where only the local device exchanges the LTK (peer does not send its LTK) will not allow GATT operations that require encryption (request will be incorrectly rejected with insufficient authentication reason, regardless of if MITM is required).
Merges https://github.com/espressif/esp-idf/pull/1320
2018-01-03 14:14:24 +11:00
5b87177831 set ble_rsp_key member of structure bte_appl_cfg in function bta_dm_co_ble_set_rsp_key_req (function incorrectly uses ble_init_key member).
Merges https://github.com/espressif/esp-idf/pull/1320
2018-01-03 14:14:24 +11:00
d950ede96d component/bt: change pictures from .pdf to .png 2018-01-03 11:13:27 +08:00
5c82ef1034 component/bt: Modify docs to be compatible with "Github Standard Markdown" 2018-01-03 11:13:27 +08:00
85efc08c27 component/bt: add link of tutorial in README.rst 2018-01-03 11:13:27 +08:00
7a0608609f component/bt: Add bluetooth example tutorials 2018-01-03 11:13:26 +08:00
25b8642835 uart driver: Remove unnecessary xSemaphoreGive()
avoid unnecessary call of xSemaphoreGive(p_uart_obj[uart_num]->tx_mux);

Merges https://github.com/espressif/esp-idf/pull/1387
2018-01-03 13:44:19 +11:00
2530e0aeb9 component/bt: Standardize code
Reported from github:
https://github.com/espressif/esp-idf/issues/1402
https://github.com/espressif/esp-idf/issues/1403
2018-01-03 10:31:30 +08:00
ecb75ba669 fix typo
Merges https://github.com/espressif/esp-idf/pull/1429
2018-01-03 10:51:34 +11:00
6746d31620 fix typo
Merges https://github.com/espressif/esp-idf/pull/1430
2018-01-03 10:50:50 +11:00
f7f52414ec Removed logging in RMT driver which skews the timing. Issue #1345
Merges https://github.com/espressif/esp-idf/pull/1450
2018-01-03 10:50:03 +11:00
e7693b8700 GPIO2 note updated
Updated note on GPIO2 with informations about possible pull-down resistor.

Merges https://github.com/espressif/esp-idf/pull/1451
2018-01-03 10:48:57 +11:00
a834c069f1 added notes on where to change XTAL freq
Merges https://github.com/espressif/esp-idf/pull/1458
2018-01-03 10:45:00 +11:00
03d5af9859 Fixed swapped GPIO6 and GPIO11 in documenation of module pinout, ref. https://esp32.com/viewtopic.php?f=2&t=3880 2018-01-02 22:30:45 +01:00
9df9e2363e freertos/Fix Event Group ISR test case
This commit fixes and reimplements the Event Group ISR test case. The test
case tests xEventGroupSetBitsFromISR() and xEventGroupClearBitsFromISR()
2018-01-02 18:57:28 +08:00
e55b5433aa component/bt: Fix bug when add device to whitelist twice 2018-01-02 17:20:34 +08:00
c401a74bfb Merge branch 'bugfix/btdm_aes_encrypt_workaround' into 'master'
component/bt: disable Secure Connections to workaround AES encryption issue

See merge request !1719
2018-01-02 16:15:39 +08:00
3fd421ab01 recompile wifi lib with new toolchain 1.22.0-78-g4b87650 2018-01-02 14:23:37 +08:00
b16e1d84d0 AWS IoT SDK: Update version from v2.1.1 to v2.2.1
Closes https://github.com/espressif/esp-idf/issues/1355
2018-01-02 13:46:58 +11:00
e798957d16 Merge branch 'bugfix/ci_log_examples' into 'master'
Fix a sporadic bug in building of the examples

See merge request !1723
2018-01-02 07:55:26 +08:00
ba06683834 component/bt: build libbtdm_app.a with updated toolchain 2017-12-29 15:31:11 +08:00
f82048018b Merge branch 'bugfix/i2c_regression' into 'master'
Bugfix/i2c regression (Github PR 1443)

See merge request !1725
2017-12-29 15:19:38 +08:00
4f44d16e88 Merge branch 'feature/docs_add_python3_support' into 'master'
docs: Add build support for python3

See merge request !1712
2017-12-29 06:11:50 +08:00
f2370b2830 Removed logging from pthread conditional variable which completely drowned out any other logging and also had negative effects on the RMT due to sharing the same log system. Related to #1345 / TW#16842 2017-12-28 15:21:00 +01:00
5fb16d9b2b Fix regression in i2c_master_read() which rejected all data lenths. 2017-12-28 14:54:15 +01:00
301751ede0 build system: Fix undefined variables
make/project.mk:315: warning: undefined variable `CC'
    make/project.mk:316: warning: undefined variable `LD'
    make/project.mk:317: warning: undefined variable `AR'
    make/project.mk:62: warning: undefined variable `MAKECMDGOALS'
    components/partition_table/Makefile.projbuild:24: warning: undefined variable `quote'
    components/bootloader/Makefile.projbuild:123: warning: undefined variable 'BOOTLOADER_DIGEST_BIN'
    components/bootloader/Makefile.projbuild:123: warning: undefined variable 'SECURE_BOOTLOADER_KEY'
2017-12-28 19:21:34 +08:00
20616fc0f5 CI: Fix a sporadic bug when building of the examples. Add logs to the artifacts 2017-12-28 19:20:48 +08:00
98dff491c8 Merge branch 'bugfix/static_mem_workaround' into 'master'
esp32: Change 192KB runtime static limit workaround to a 176KB link time workaround

See merge request !1704
2017-12-28 18:52:47 +08:00
1bbd67f7d7 component/bt: disable Secure Connections(Host Supported) of classic Bluetooth to workaround AES encryption issue in controller
1. ESP32 is found to suffer from AES encryption start/resume failure with specific device. Therefore temporarily disable BR/EDR Secure Connections for a workaround
2. BR/EDR Secure Connections is a feature for BT Classic introduced in Bluetooth 4.1. This change disables the setting of Secure Connections(Host Supported), and will result in the use of legacy authentication instead of secure authentication, and E0 encryption(legacy) instead of AES-CCM encryption. BLE security procedures are not affected.
2017-12-28 14:51:19 +08:00
2552fdccd1 chore(spi): add log to show native pins or not when configure pins. 2017-12-28 12:03:29 +08:00
f4be6ac84d fix(spi_master): fix the logic in the ISR to prevent re-config registers when device is not changed. 2017-12-28 12:03:29 +08:00
7a7b8fc182 refactor(spi_master): move the clock calculation from ISR to initialization. 2017-12-28 12:03:28 +08:00
7d0d2854d3 Merge branch 'bugfix/btdm_error_when_white_list_is_full' into 'master'
component/bt: Fix bug of adding device to white list has no callback when while list is full

See merge request !1689
2017-12-27 18:03:38 +08:00
566fab02df Merge branch 'bugfix/btdm_disconnect_fail_during_pairing' into 'master'
component/bt: Fix bug of disconnected fail during pairing

See merge request !1672
2017-12-27 18:03:13 +08:00
cbfd162ea8 Merge branch 'bugfix/idle_task_deletes_currently_running_task' into 'master'
freertos: prvCheckTasksWaitingTermination bugfix

See merge request !1686
2017-12-27 16:44:06 +08:00
8051ac469a Merge branch 'cherry-pick-4837f939-2' into 'master'
esp_timer:fix three bugs about timer get and timer alarm where overflow is not correct

See merge request !1695
2017-12-27 11:43:52 +08:00
15deab4e46 Merge branch 'refactor/btdm_spp_client_demo' into 'master'
component/bt: refactor spp client demo

See merge request !1366
2017-12-27 11:43:35 +08:00
d31b654f3f Merge branch 'bugfix/btdm_fix_memory_leak_for_SMP' into 'master'
component/bt: fix memory leak in SMP

See merge request !1690
2017-12-27 11:43:18 +08:00
ec7cac5fe8 Merge branch 'feature/docs_update_rmt_api' into 'master'
RMT API docs update, new example

See merge request !1564
2017-12-27 09:23:47 +08:00
258d0329c1 Merge branch 'bugfix/blockdiag_windows_installation' into 'master'
A workaround for MSYS2 / Windows system to be able to install 'blockdiag'

See merge request !1684
2017-12-27 09:05:12 +08:00
13a087a390 Merge branch 'bugfix/iperf_example_bugfix' into 'master'
example: some modification about iperf example

See merge request !1603
2017-12-27 09:01:21 +08:00
f8580ea98f esp32: Change 192KB runtime static limit workaround to a 176KB link time workaround
Turns out some app memory around 0x3ffdc000 is also used by APP CPU.

This is a workaround until code to remove the 176KB limit is committed.
2017-12-27 11:59:54 +11:00
eb0f2f2f04 Merge branch 'bugfix/add_iic_NACK' into 'master'
driver(i2c): to specify ack value for last I2C read in a transaction

See merge request !1580
2017-12-27 08:49:57 +08:00
d78be97154 add NACK for the last byte to read 2017-12-26 21:50:18 +08:00
59b0c50d77 docs: Add build support for python3 2017-12-26 17:48:33 +05:30
c41c02872f freertos: prvCheckTasksWaitingTermination bugfix
Bugfix to prevent a self deleting no affinity task's memory from being freed by the
idle task of the other core before the self deleting no affinity task is able to context
switch out.  prvCheckTasksWaitingTermination now checks if the task is still on
pxCurrentTCB before freeing task memory.
2017-12-26 19:03:49 +08:00
1de63e9d90 component/bt: Fix bug of disconnected fail during pairing 2017-12-25 19:24:06 +08:00
f5f8dda8a2 component/bt: Fix bug of adding device to white list has no callback when while list is full 2017-12-25 17:45:12 +08:00
5401a75bad Merge branch 'bugfix/modify_bt_h' into 'master'
component/bt : change header file name bt.h to esp_bt.h in new bluetooth example

See merge request !1703
2017-12-25 14:27:35 +08:00
6220723e7b component/bt : change header file name bt.h to esp_bt.h in new bluetooth example 2017-12-22 15:13:45 +08:00
c488235e9c Merge branch 'feature/components_can_add_to_component_make_rules' into 'master'
Support Makefile.componentbuild so components can add to global component make rules

See merge request !1667
2017-12-22 11:40:54 +08:00
5e77b98369 Merge branch 'feature/editorconfig' into 'master'
Add .editorconfig file

See merge request !1682
2017-12-22 07:37:46 +08:00
6c2562ceb4 Merge branch 'bugfix/spiram_fails_after_esp_restart' into 'master'
Make psram function after an esp_restart as well.

See merge request !1694
2017-12-21 13:40:10 +08:00
e8d1072467 component/bt: refactor spp client demo
- fix the bug that before free the db pointer, the db was set to NULL
2017-12-21 10:01:38 +08:00
a567de1576 Merge branch 'feature/btdm_classic_discovery' into 'master'
component/bt: implement Classic Bluetooth GAP APIs for device and service discovery

See merge request !1576
2017-12-20 13:30:31 +08:00
1be1e747c4 Add support for Makefile.componentbuild files 2017-12-20 10:35:27 +08:00
763406b4cc Component/bt: fix memory leak in SMP 2017-12-20 10:30:31 +08:00
5cbe950d08 Merge branch 'bugfix/btdm_modify_code_format_and_comments' into 'master'
component/bt: modify code format and comments

See merge request !1631
2017-12-19 20:19:00 +08:00
04e1195f41 Merge branch 'bugfix/btdm_send_data_length_req_after_read_feature_complete' into 'master'
component/bt: send data length request by host after read feature complete

See merge request !1639
2017-12-19 20:18:50 +08:00
0a1f81dc01 esp_timer:fix three bugs about timer get and timer alarm where overflow is not correct 2017-12-19 20:05:55 +08:00
569bfad2e3 Fix the clock subsystem so it doesn't undo the weird condition spiram_psram.c jams the enable/reset bits of SPI3 in when 80MHz mode is selected anymore 2017-12-19 19:12:58 +08:00
5adef5865d example: some modification about iperf example
Modify default sdkconfig since some WiFi menuconfig options are changed
2017-12-19 18:28:22 +08:00
709d19f99e Merge branch 'feature/eth_set_mac_addr' into 'master'
emac:add set_eth_mac api

See merge request !1604
2017-12-19 17:40:36 +08:00
9c2db2ea7a Merge branch 'bugfix/btdm_optimiz_adv_cb_func' into 'master'
Bugfix/btdm optimiz adv cb func

See merge request !1619
2017-12-19 17:35:00 +08:00
956133387d Merge branch 'bugfix/fix_some_wifi_bug' into 'master'
Fix some wifi bugs

See merge request !1680
2017-12-19 17:31:44 +08:00
9c5435c14a Merge branch 'bugfix/btdm_mem_release' into 'master'
component/bt : fix btdm mem release cause 0x3ffbbb28-0x3ffbdb28 add to region but should not.

See merge request !1660
2017-12-19 17:31:09 +08:00
32c0d74cc5 Close socket request will abort tcp write/connect
When tcp write/connect is running, close socket request will abort
    it and continue to delete netconn and close tcp. Do not immediately
    return after aborting tcp write/connect. Otherwise, tcp close
    requeset will block and tcp write/connect will crash.
2017-12-19 15:20:50 +08:00
f8bda324ec Merge branch 'bugfix/bootloader_v10_backwards_compat' into 'master'
esp32: Fix backwards compatibility for pre-v2.1 bootloaders

See merge request !1673
2017-12-18 17:20:08 +08:00
361bdcf78c Merge branch 'feature/ringbuf_improvement' into 'master'
Feature/ringbuf improvement

See merge request !1571
2017-12-18 16:52:40 +08:00
5615b9ca2b Add .editorconfig file
remove newlinet in binary file

editorconfig style guide

correct format for rst hyperlinks
2017-12-18 12:47:30 +07:00
d2da250353 A workaround for MSYS2 / Windows system to be able to install 'blockdiag' 2017-12-18 05:34:44 +01:00
c69af42b96 esp32: Fix backwards compatibility for pre-v2.1 bootloaders
Older bootloaders don't set RTC_XTAL_FREQ_REG or call rtc_clk_init(),
app needs to pick this up.

Reported at
https://esp32.com/viewtopic.php?f=2&t=3939&p=17836
2017-12-18 13:45:57 +11:00
496f6d2744 Merge branch 'bugfix/log_tag_variables_static' into 'master'
log: Remove non-static TAG variables

See merge request !1674
2017-12-18 07:06:36 +08:00
661d584ae7 Merge branch 'bugfix/i2c_fixes_pr1180' into 'master'
i2c: rx <-> tx typo's, NULLing free'd variable, consistent CRITICAL sects

See merge request !1551
2017-12-18 06:44:33 +08:00
25892f2cb7 Merge branch 'bugfix/windows_10_idf_monitor_redux' into 'master'
idf_monitor: Fix Windows 10 bug in cases where second console write also fails

See merge request !1675
2017-12-18 06:42:11 +08:00
1e1db75aaa Fix some wifi bugs
1. change first scanning channel to adjust different country code.

2. fix a bug that system crashes when station disconnects from AP.
2017-12-15 18:17:17 +08:00
967ff895e7 component/bt: Optimized broadcast callback function, send the callback function to the application after the controller confirms receipt of the broadcast start.
1. optimiz the ble stop adv callback function.
2. added the osi_mutex_unlock in the bta_gattc_wait4_service_change_ccc_cback function when the p_timer_param == NULL ||  p_conn == NULL.
2017-12-15 18:16:23 +08:00
710e69feca emac:add set_eth_mac api 2017-12-15 17:15:53 +08:00
8f874aaa0f Merge branch 'bugfix/i2c_use_queue_instead_of_eventbit' into 'master'
bugfix(i2c): use queue instead of event group for internal commands

See merge request !1616
2017-12-15 13:54:03 +08:00
b62e5a4b4e idf_monitor: Fix Windows 10 bug in cases where second console write also fails
Although in my tests the second write always passes, people have reported
different results.

Closes https://github.com/espressif/esp-idf/issues/1136 (again)
2017-12-15 16:45:44 +11:00
ea2afa83a8 log: Remove non-static TAG variables 2017-12-15 10:59:48 +11:00
8688f0ec05 Merge branch 'feature/monitor_log_toggle' into 'master'
feat(monitor): add new feature allowing disabling log display.

See merge request !1548
2017-12-15 06:27:53 +08:00
17f3230305 Merge branch 'bugfix/heap_alloc_typo' into 'master'
fix typo for heap cap free size

See merge request !1669
2017-12-15 06:26:14 +08:00
cb810ccbe1 feat(monitor): add pause feature. 2017-12-14 13:48:03 +08:00
a8f89009a4 feat(monitor): add new feature allowing disabling log display. 2017-12-14 13:48:03 +08:00
661686b840 Merge branch 'feature/doc_wroom_modules_with_ESP32-D0WD' into 'master'
The WROOM and WROVER family of modules is now extended with ESP-WROOM-32D and ESP32-WROOM-32U

See merge request !1654
2017-12-14 13:36:49 +08:00
1b619c0ec8 Merge branch 'bugfix/uart1_console' into 'master'
Fixes for console output on UART1

See merge request !1649
2017-12-14 13:36:34 +08:00
68bba96911 Merge branch 'bugfix/sdmmc_vfs_deinit' into 'master'
SDSPI bug fixes

See merge request !1647
2017-12-14 13:36:20 +08:00
ae8a0bbf56 fix typo for heap cap free size 2017-12-14 10:39:26 +05:30
af70a5eb65 Merge branch 'bugfix/eclipse_warning' into 'master'
Resolves: Warning '-s option given but default rule can be matched'. Closes http…

See merge request !1658
2017-12-14 06:15:56 +08:00
833ecfdec9 Merge branch 'master' into 'bugfix/btdm_modify_code_format_and_comments'
# Conflicts:
#   examples/bluetooth/gatt_server_service_table/main/gatts_table_creat_demo.c
2017-12-13 15:42:41 +08:00
d2bd9cccd8 Merge branch 'feature/ulp_docs_update' into 'master'
ULP docs update

See merge request !1640
2017-12-13 15:36:36 +08:00
65bdb2d7ff component/bt : fix btdm mem release cause 0x3ffbbb28-0x3ffbdb28 add to region but should not.
1. fix the bug. Modify the condition that esp_bt_controller_mem_release() shoud be only called before esp_bt_controller_init() or after esp_bt_controller_deinit()
2. modify the example to use esp_bt_controller_mem_release()
2017-12-13 11:38:39 +08:00
1c314b34fc Merge branch 'bugfix/rtc_time' into 'master'
Fix compilation issue when using RTC time only, update Kconfig help and source code

See merge request !1650
2017-12-13 11:10:45 +08:00
4839da4d98 Merge branch 'bugfix/fatfs_stat' into 'master'
Fix stat behavior for FATFS mount point

See merge request !1652
2017-12-13 11:10:27 +08:00
6b6e0410f8 Component/bt: send data length request by host after read feature complete 2017-12-12 18:28:59 +08:00
465ab0ca10 Linked ESP32 datasheet and regulatory certificates 2017-12-12 08:42:22 +01:00
ab6b7b4013 Merge branch 'feature/spiffs_mtime' into 'master'
Add optional mtime support in SPIFFS

See merge request !1579
2017-12-12 14:43:03 +08:00
78aa1ec704 Resolves: Warning '-s option given but default rule can be matched'. Closes https://github.com/espressif/esp-idf/issues/1338 2017-12-11 22:53:39 +01:00
a7a861962d Merge branch 'bugfix/note_about_main_xtal_frequency_selection' into 'master'
Getting Started docs: Updated information about setting the main XTAL frequency

See merge request !1645
2017-12-11 15:45:01 +08:00
82aeb18c3f Merge branch 'test/UT_master_slave_mode' into 'master'
unit-test-app: support multiple devices test cases

See merge request !1220
2017-12-11 15:22:51 +08:00
6584bcf62d Fixed issues identified during review 2017-12-11 08:01:37 +01:00
9b847b2903 1. Following https://esp32.com/viewtopic.php?f=14&t=3834 and https://github.com/espressif/esp-idf/issues/1351 updated information regarding selection of the main XTAL frequency. 2. Removed obsolete note about ': not a valid identifier...', as it does not show up anymore with the latests MSYS2 installation. 2017-12-11 07:52:27 +01:00
a99483a727 docs: add information about execution time of ULP instructions 2017-12-11 14:05:41 +08:00
a4ef4cc376 Merge branch 'bugfix/gpio_config_block' into 'master'
driver(GPIO): use ULL for IO bit mask

See merge request !1627
2017-12-11 12:56:39 +08:00
dcf94f2189 Merge branch 'bugfix/minor_fixes_github' into 'master'
Minor fixes from github

See merge request !1638
2017-12-11 12:51:41 +08:00
bee1afaf6d time: rename time source option from FRC to "high-resolution timer"
libc time function now rely on esp_timer_get_time as the source of
high-resolution time, rather than FRC1 timer. Internally, on the ESP32
esp_timer implementation uses FRC2 timer.

- Change help text and labels in Kconfig to use "high-resolution timer"
  instead of FRC1. Keep existing Kconfig option name to be backwards
  compatible.
- Change references to "FRC1" in the source code to "FRC".
2017-12-11 12:37:08 +08:00
ca751648fa ulp: document the need to wait for RTC to be ready for wakeup 2017-12-11 12:11:46 +08:00
b6a6973b44 ulp: mention that instructions array must be declared in local scope
Closes https://github.com/espressif/esp-idf/issues/1327
2017-12-11 12:11:46 +08:00
65fa71f565 docs: add description of ULP I2C instructions 2017-12-11 12:11:46 +08:00
5fe1b2e365 Merge branch 'bugfix/openssl_alpn' into 'master'
openssl: add feature check for MBEDTLS_SSL_ALPN

See merge request !1648
2017-12-11 12:03:11 +08:00
dfee6e825a vfs/fatfs: use structures with bit fields for FAT date/time
Replace explicit masks and shifts with bit fields when working with FATFS date and time representations. Also zero-initialize remaining members of struct tm.

Fixes https://github.com/espressif/esp-idf/issues/1369.
2017-12-11 11:11:48 +08:00
d913fff6d7 i2c: rx <-> tx typo's, NULLing free'd variable, consistent CRITICAL sects
A couple of typos referencing tx_ring_buf when rx_ring_buf, slv_tx_mux
instead of slv_rx_mux.

Also, I2C_ENTER_CRITICAL()/I2C_EXIT_CRITICAL() usage was not consistent.
Only some of the _set_ functions had them.  Most of the _get_ function
had them?  It is my understanding that they should be wrapped around
writes, not reads? (I think we still need the lock for reading pairs of consistent values)

Also, the ticks_to_wait timeout handling in i2c_master_cmd_begin() would
not handle integer rollover correctly.

Merges https://github.com/espressif/esp-idf/pull/1180
2017-12-11 11:08:39 +08:00
ed1e6e7224 fatfs: fix double free in bailout path of esp_vfs_fat_sdmmc_mount
Fixes https://github.com/espressif/esp-idf/issues/1370
2017-12-11 11:07:08 +08:00
269486ca4d sdspi: use response timeout passed from upper layer
Previously SDSPI host driver would rely on retry count when waiting for
the card to read or write data. This caused different timeout times
depending on CPU frequency and card clock frequency. In practice, card
performance does not depend on these two factors.
This change uses timeout_ms field of sdmmc_command_t introduced
previously for SDMMC host.

Fixes https://esp32.com/viewtopic.php?f=2&t=3440&p=16037 and similar
issues related to SDSPI timeouts.
2017-12-11 11:07:08 +08:00
4170904224 fatfs: fix deinit not called for SDSPI host
Closes https://github.com/espressif/esp-idf/issues/1362
2017-12-11 11:07:08 +08:00
e99c7c3b50 The WROOM and WROVER family of modules is now extended with ESP-WROOM-32D and ESP32-WROOM-32U 2017-12-08 21:03:05 +01:00
a63ace15bd vfs/fatfs: fix stat call failing when called for mount point
FATFS does not support f_stat call for drive root. When handling stat
for drive root, don't call f_stat and just return struct st with S_IFDIR
flag set.

Closes #984
2017-12-08 20:04:27 +08:00
df74211fc3 newlib/time: fix compilation error when only RTC is used as clock source
Fixes https://github.com/espressif/esp-idf/issues/1245
2017-12-08 16:17:47 +08:00
9075b507b5 driver(i2c): corrected timeout range for i2c_set_timeout.
Merges https://github.com/espressif/esp-idf/pull/1353
2017-12-08 14:26:35 +08:00
bd6ee752fc Merge branch 'feature/btdm_modify_header_file_name' into 'master'
component/btdm : change bt.h name to esp_bt.h to form the name prefix

See merge request !1644
2017-12-08 14:03:15 +08:00
5bba9664ac Merge branch 'bugfix/heap_trace_realloc' into 'master'
heap_trace: fix bug in realloc for copying trace record

See merge request !1643
2017-12-08 14:02:48 +08:00
bad8d3ce57 bootloader: don't log anything before uart_console_configure is called 2017-12-08 13:15:40 +08:00
a705221492 esp32: fix incorrect clock enable bit name for UART0
Closes https://github.com/espressif/esp-idf/issues/1301
2017-12-08 13:14:36 +08:00
022b4f3251 openssl: add feature check for MBEDTLS_SSL_ALPN
Fixes https://github.com/espressif/esp-idf/issues/1342
2017-12-08 13:00:11 +08:00
e3282a0cac Add esp_intr_set_in_iram
A function to change "in IRAM" status for an existing interrupt handle, without going through free/allocate of the interrupt.
mOS HW timer implementation requires this to make HW timers safe to re-set from an IRAM ISR.
2017-12-08 05:46:34 +03:00
583dceb69b component/btdm : change bt.h name to esp_bt.h to form the name prefix 2017-12-08 10:33:50 +08:00
18553c451a heap_trace: fix bug in realloc for copying trace record
Closes https://github.com/espressif/esp-idf/issues/1354

Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2017-12-07 18:20:23 +05:30
91968ef464 freertos/ringbuf: Added an API xRingbufferCreateNoSplit()
This is a wrapper API for creating a Ring Buffer, which ensures that
the ringbuffer can hold the given number of items, each item being of the
same given length.

Signed-off-by: Piyush Shah <piyush@espressif.com>
2017-12-07 17:04:23 +05:30
3c199b0de6 freertos/ringbuf: Add an API xRingbufferIsNextItemWrapped()
Useful to check if the next item to receive is wrapped or not.
This is valid only if the ring buffer is initialised with type
RINGBUF_TYPE_ALLOWSPLIT.

This is as per the feature request here:
https://github.com/espressif/esp-idf/issues/806

Signed-off-by: Piyush Shah <piyush@espressif.com>
2017-12-07 17:04:18 +05:30
cd5fb054c7 freertos/ringbuf: Add an API xRingbufferGetCurFreeSize() to fetch current free size available
The earlier available API (xRingbufferGetMaxItemSize())just gives
a static max entry value possible for given ring buffer.
There was a feature request for an API which could provide
a real time available buffer size. See below:

https://github.com/espressif/esp-idf/issues/806

Signed-off-by: Piyush Shah <piyush@espressif.com>
2017-12-07 17:04:12 +05:30
7a31b93fa3 unit-test-app: support multiple devices test cases:
current unit-test-app don't support test components need to communicate
with each other (like GPIO, SPI ...). Now we add multiple devices mode
to unit test app, support writing and running test with multiple DUTs.

please refer to `docs/api-guides/unit-tests.rst` for detail.
2017-12-07 13:57:26 +08:00
7e3ac34704 Merge branch 'bugfix/fix_i2s_doc' into 'master'
docs: fix i2s code snippet for interrupt flags setting

See merge request !1637
2017-12-07 13:50:49 +08:00
b46d4ab632 Merge branch 'feature/freertos_api_doc' into 'master'
Add FreeRTOS API documentation

See merge request !1634
2017-12-07 13:50:10 +08:00
d6525fb3e6 docs: link to FreeRTOS APIs from SMP changes documentation 2017-12-07 12:41:24 +08:00
cda22d9aaf docs: add FreeRTOS API docs
- Use `code` tags instead of a mix of `<pre></pre>` and
  `@verbatim .. @endverbatim`
- Remove manually added function prototypes from comment blocks
- Remove of grouping (`\defgroup`) — some extra work is needed
  to make groups compatible with the way we auto-generate API
  reference from Doxygen XML files. It's pretty easy to add the
  grouping directives back if/when we implement support for
  Doxygen groups in the later stages of documentation build
  process.
- Hide private APIs under `@cond .. @endcond`
- Convert some comments into Doxygen-compatible ones
- Fix various documentation issues: missing documentation for
  some parameters, mismatch between parameter names in comment
  block and in function prototype.
- Add doxygen comments for functions which didn't have them
  (thread local storage).
- Add [out] param tags where necessary
- Redefine `xTaskCreate` and `xTaskCreateStatic` as inline
  functions instead of macros.
2017-12-07 12:01:14 +08:00
2b92119840 Merge branch 'bugfix/freertos_check_task_waiting_termination' into 'master'
Freertos Task Deletion backport and FPU documentation

See merge request !1591
2017-12-07 11:55:10 +08:00
240f2ce7be Merge branch 'bugfix/gcc7_compilation' into 'master'
Fixes for gcc 7 compilation (Github PR)

See merge request !1628
2017-12-07 07:32:49 +08:00
8a47679d04 Add #include guards and __cplusplus guards to esp_debug.h
Merges https://github.com/espressif/esp-idf/pull/1358
2017-12-07 10:25:57 +11:00
78855211fe build system: Add *.cc files to list of file extensions compiled by default
Merges https://github.com/espressif/esp-idf/pull/1318
2017-12-07 10:17:03 +11:00
6a51a13b70 Bugfix I_DELAY macro
When compiling

> const ulp_insn_t program[] = {
> I_DELAY(1)
> };

with the xtensa-esp32-elf-g++ compiler i always got the error:

> sorry, unimplemented: non-trivial designated initializers not supported
>
>        };

This was due to the different order in the macro and the struct. The struct has another order of the fields (opcode, unused, cycles) vs (cycles, unused, opcode):
>    struct {
>        uint32_t cycles : 16;       /*!< Number of cycles to sleep */
>        uint32_t unused : 12;       /*!< Unused */
>        uint32_t opcode : 4;        /*!< Opcode (OPCODE_DELAY) */
>    } delay;                        /*!< Format of DELAY instruction */

After updating the order in the macro it is possible to compile with the g++ compiler.

Merges https://github.com/espressif/esp-idf/pull/1310
2017-12-07 10:02:45 +11:00
dceda4ab39 Merge branch 'feature/ledc_compatibility_definitions' into 'master'
Feature/ledc compatibility definitions

See merge request !1635
2017-12-06 15:48:06 +08:00
a3cacf1166 Merge branch 'feature/esp32-pico-kit_pin_description' into 'master'
Pin descriptions, overview diagram and board dimensions carried over from ESP32-…

See merge request !1630
2017-12-06 15:48:02 +08:00
2efef48e3e docs: fix i2s code snippet for interrupt flags setting
Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2017-12-06 12:05:11 +05:30
c23af0b5bb component/bt: implement Classic Bluetooth GAP APIs for device and service discovery 2017-12-06 10:52:06 +08:00
062cc89abd Pin descriptions, overview diagram and board dimensions carried over from ESP32-PICO-KIT_Datasheet_EN.pdf. The datasheet looks redundant and will not be used. 2017-12-05 22:03:38 +01:00
f32fa0c1e9 Merge branch 'bugfix/tw13918_netconn_delete_memory_leak' into 'master'
memory leak for netconn_delete()

See merge request !1633
2017-12-05 21:20:07 +08:00
38afa32cfb freertos/fix SMP bug with Idle task clean up
This commit backports vTaskDelete() behavior from FreeRTOS v9.0.0  which
allows for the immediate freeing of task memory if the task being deleted
is not currently running and not pinned to the other core. This commit also
fixes a bug in prvCheckTasksWaitingTermination which prevented the
Idle Task from cleaning up all tasks awaiting deletion. Each iteration of the Idle
Task should traverse the xTasksWaitingTermination list and clean up all tasks
not pinned to the other core. The previous implementation would cause
prvCheckTasksWaitingTermination to return when encountering a task
pinned to the other core whilst traversing the xTasksWaitingTermination list.

The test case for vTaskDelete() has been updated to test for the bugfix and
backported deletion behavior.
2017-12-05 18:13:56 +08:00
210d349fbd when netconn created directly,netconn_delete() will not call netconn_free(),
which will lead to memory leak

Closes https://github.com/espressif/esp-idf/issues/784
2017-12-05 10:42:37 +08:00
b9c6175649 Merge branch 'feature/spi_flash_write_verify' into 'master'
spi_flash: Add option to verify all writes by reading back data

See merge request !1355
2017-12-05 05:40:24 +08:00
421592a8eb LEDC Driver: Added back original definitions of 'duty_resolution' and 'clock_divider'. This update is to provide backward compatibility with ESP-IDF 2.1. 2017-12-04 21:12:56 +01:00
f60fef8136 bugfix: io setting useless when io_num > 32 2017-12-04 17:35:00 +08:00
c124851048 Component/bt: modify code format and comments 2017-12-04 14:51:42 +08:00
a3da93d834 Update cJSON to 1.6.0
* Fixes compilation errors/warnings with gcc 7.2.0

Merges https://github.com/espressif/esp-idf/pull/1163
2017-12-04 10:22:07 +11:00
519edc332d Fix compilation errors when using gcc-7.2.0 for the crosstool-ng toolchain
* Change snprintf for strlcat does not complain w/gcc7.2.0 and it is safer, thanks @projectgus
* Use proper quotes for character literals

Merges https://github.com/espressif/esp-idf/pull/1163
2017-12-04 10:18:40 +11:00
f7ac41c2da spi_flash: Add option to log warnings if (spuriously) writing zero bits to ones
Won't work for SPIFFS, maybe some other implementations?
2017-12-04 09:55:05 +11:00
892b3ff14b spi_flash: Add option to verify all writes by reading back data
Helpful when debugging SPI flash hardware related issues.

TW15203
2017-12-04 09:55:05 +11:00
579201bcdc Merge branch 'bugfix/windows_mingw32_gcc' into 'master'
windows: Allow "make menuconfig" to work if ming32 gcc is also installed

See merge request !1587
2017-12-04 06:22:33 +08:00
22489d7021 Merge branch 'bugfix/wdt_periph_enable' into 'master'
watchdogs: make sure timer group peripherals are enabled

See merge request !1623
2017-12-01 22:06:43 +08:00
c44487143d Merge branch 'bugfix/btdm_connect_stable_optimiz' into 'master'
component/bt: Optimiz the ble connection performance.

See merge request !1618
2017-12-01 21:35:17 +08:00
08048ff76a Merge branch 'feature/btdm_avrc_metadata' into 'master'
Feature/btdm avrc metadata:  implemented AVRCP metadata and notification register commands

See merge request !1624
2017-12-01 20:31:25 +08:00
f58c5b21ec watchdog: increase default INT WDT interval if SPIRAM is used
Running heap_caps_check_integrity for 4MB of PSRAM can take longer than
the default WDT interval, 300ms.
2017-12-01 20:10:26 +08:00
15b6b64c99 watchdog: enable INT WDT unit test 2017-12-01 20:10:26 +08:00
bd1d631134 watchdogs: make sure timer group peripherals are enabled 2017-12-01 20:10:26 +08:00
96f120c0d4 component/bt: Optimiz the ble connection performance. 2017-12-01 20:02:14 +08:00
85fc06e3bb Merge branch 'bugfix/flash_1v8_enable_vddsdio_reg' into 'master'
bootloader: Only apply VDDSDIO 1.8V->1.9V if regulator is enabled

See merge request !1601
2017-12-01 19:34:45 +08:00
96cd6f8626 Merge branch 'bugfix/update_libstdcxx_psram' into 'master'
libstdc++: update the library built with PSRAM workaround

See merge request !1588
2017-12-01 19:34:29 +08:00
c672fc54fd Merge branch 'feature/ledc_more_meaningful_parameter_names' into 'master'
Provided more meaningful parameter names by renaming 'bit_num' to 'duty_resoluti…

See merge request !1440
2017-12-01 19:33:53 +08:00
7702e0f45b Merge branch 'bugfix/btdm_con_discon_test_crash_#16055' into 'master'
component/bt: Fix the bug when write ccc sometimes will lead to repeatedly release the memory.

See merge request !1599
2017-12-01 19:32:39 +08:00
86fa1820b7 component/bt: Add AVRCP medadata attribute support so A2DP can show track title, album, etc.
Merges https://github.com/espressif/esp-idf/pull/1078
2017-12-01 19:28:52 +08:00
1f7e42c0b7 Merge branch 'bugfix/fix_some_wifi_bugs' into 'master'
Fix some wifi lib bugs

See merge request !1626
2017-12-01 19:22:18 +08:00
aece22f763 Merge branch 'bugfix/tw16581_dhcps_default_behaviour_changed' into 'master'
fix the dhcps default behaviour chenged by dns

See merge request !1612
2017-12-01 19:21:26 +08:00
7ec7352534 Merge branch 'bugfix/small_fixes_from_github' into 'master'
Small fixes by users from GitHub

See merge request !1620
2017-12-01 19:21:10 +08:00
58e60401a2 Merge branch 'feature/bt_a2dp_i2s' into 'master'
examples/bluetooth/a2dp_sink: add i2s audio to a2dp_sink example application

See merge request !853
2017-12-01 19:18:50 +08:00
0f2d417a74 Small typo fix
Signed-off-by: krzychb

Merges https://github.com/espressif/esp-idf/pull/1331
2017-12-01 09:06:09 +01:00
866b84b9f8 Typo fix. Closes https://github.com/espressif/esp-idf/issue/1323 2017-12-01 09:06:08 +01:00
aaa17b8740 Fix some wifi lib bugs
1. Add a hide API for station to receive and process probe request
frame.

    2. Fix an issue that wifi/bt coexistence crashes in PSRAM version.

    3. Fix an issue that the API for clearing vendor ie can not work.

    4. Fix an issue that wifi stop and reboot leads watchdog.
2017-12-01 15:00:49 +08:00
af63ca1522 Merge branch 'bugfix/pthread_local_storage_spinlock' into 'master'
pthreads: Remove potentially blocking mutex from idle task cleanup path

See merge request !1621
2017-12-01 14:42:29 +08:00
fe1e1e2f8e Review comments implemented 2017-12-01 07:29:54 +01:00
4da239e824 Merge branch 'feature/btdm_optimize_gatt_server_service_table_demo' into 'master'
component/bt: optimize gatt_server_service_table demo

See merge request !1479
2017-12-01 12:25:42 +08:00
015233d2dc Merge branch 'bugfix/btdm_mem_leak_lead_to_WDT_#16592' into 'master'
compoent/bt: Fix the bug when do the BLE pressure test will lead to memory leak will appear WDT.

See merge request !1610
2017-12-01 12:24:04 +08:00
89407a5770 pthread: Use spinlock not semaphore mutex to protect TLS key list 2017-12-01 14:28:07 +11:00
a0992ad442 component/bt: Remove the p_tle->param reset to 0 when free the p_timer_param pointer. 2017-11-30 16:15:22 +08:00
5b243b1d01 component/bt: Added the mutex lock protect the ccc free when disconnect. 2017-11-30 02:45:26 -05:00
582b731c23 Merge branch 'bugfix/active_scan' into 'master'
component/bt : fix actvie scan cannot send scan_req in a certain case

See merge request !1608
2017-11-30 15:06:20 +08:00
cc600bd517 Merge branch 'bugfix/fix_lwip_macros' into 'master'
lwip: Change socket API macros to static-inline

See merge request !1614
2017-11-30 10:28:20 +08:00
1c0543fb17 lwip: Change socket API macros to static-inline 2017-11-29 11:42:14 +05:30
bf3c41bb92 bugfix(i2c): use queue instead of event group for internal commands
Reported from github:
https://github.com/espressif/esp-idf/issues/1312
https://github.com/espressif/esp-idf/issues/1193

Issues:
1. We used to use event group in the driver, which would cause:
    a. longer operation time since the event group are based on FreeRTOS timer.
    b. Operation fails if the timer queue is not long enough.
2. There might be some issue with event group, we will still try to provide a small test code in other branch.

modification:
1. use queue instead of event-bit for internal commands
2. use queue overwrite for cmd_done event
2017-11-29 12:33:11 +08:00
6228d0c409 Merge branch 'bugfix/esp_timer_profiling' into 'master'
esp_timer: fix for deletion of timer in a callback, add docs

See merge request !1607
2017-11-29 12:32:38 +08:00
f0547d58e4 esp_timer: add documentation, expose profiling option in Kconfig 2017-11-29 11:44:46 +08:00
6e7eb3c776 esp_timer: fix for the case when timer is deleted in callback
Timer callback can delete the timer. If CONFIG_ESP_TIMER_PROFILING was
enabled, this caused an access to invalid (freed) memory.
This fix adds a pointer to track the timer while executing the callback.
This is needed so that we can check if callback deletes the timer,
in which case we won't try updating profiling counters for this timer
after the callback is done.
2017-11-29 11:44:46 +08:00
7353307ca5 component/bt: reset the p_cmd_list pointer after release the mem. 2017-11-29 10:50:03 +08:00
1d5389668b Merge branch 'feature/dhcp_server_options_menuconfig' into 'master'
dhcpserver: Option to change lease time multiplier and number of max

See merge request !1595
2017-11-29 07:07:09 +08:00
59931cd63b component/bt : fix actvie scan cannot send scan_req in a certain case 2017-11-28 20:11:40 +08:00
e315d7ca08 fix the dhcps default behaviour chenged by dns
Closes https://github.com/espressif/esp-idf/issues/1285
2017-11-28 16:39:00 +08:00
5b9131cc60 compoent/bt: Fix the bug when do the BLE pressure test will lead to memory leak will appear WDT. 2017-11-28 15:43:33 +08:00
626ad5f577 dhcpserver: Option to change lease time multiplier and number of max
stations connected to it.

Merges: https://github.com/espressif/esp-idf/pull/1206
2017-11-28 15:58:03 +11:00
0554bc59a2 Merge branch 'bugfix/tw16551_buffer_overflow' into 'master'
fix buffer overflow

See merge request !1605
2017-11-27 22:18:58 +08:00
a83fbd3364 Merge branch 'bugfix/tw16287_tcp_send_succeed_after_station_disconnect' into 'master'
In STA mode, tcp_send cannot catch err after disconnect station

See merge request !1540
2017-11-27 21:30:46 +08:00
886047fb46 Merge branch 'bugfix/TW16564_tcp_connect/disconnect_crash' into 'master'
fix tcp connect/disconnect carsh

See merge request !1598
2017-11-27 21:30:11 +08:00
7980255498 Merge branch 'bugfix/btdm_scan_lead_to_conn_error' into 'master'
component/bt: Fixed the bug when stop scan if not set back the scan params will …

See merge request !1590
2017-11-27 21:21:13 +08:00
768bbcd8aa fix buffer overflow in ipc.c 2017-11-27 18:47:40 +08:00
9e530fd063 Merge branch 'bugfix/allow_external_stack' into 'master'
freertos: fix a bug for incorrect check of allow-external-stack

See merge request !1596
2017-11-27 16:31:27 +08:00
067c0e1ffe Merge branch 'bugfix/cpp_unit_tests_not_executed_by_ci' into 'master'
CI: fix C++ unit test cases not executed by CI

See merge request !1589
2017-11-27 12:48:12 +08:00
0b644ee515 fix tcp connect/disconnect carsh 2017-11-27 10:18:58 +08:00
fccc30d2d5 bootloader: Only apply VDDSDIO 1.8V->1.9V if regulator is enabled
Fixes bug if regulator is disabled via efuse.
2017-11-27 10:33:41 +11:00
75ff6dce15 Merge branch 'docs/esp_ipc' into 'master'
docs/ipc documentation

See merge request !1584
2017-11-27 07:24:37 +08:00
5e7478a055 Merge branch 'bugfix/ledc_fade_scale' into 'master'
driver(LEDC): add scale value check in ledc_set_fade API

See merge request !1583
2017-11-27 07:23:19 +08:00
7683bdbce2 Merge branch 'bugfix/monitor_windows10_crash' into 'master'
monitor: Fix Windows 10 crash since Fall Creators Update

See merge request !1567
2017-11-27 07:22:44 +08:00
c71318ce88 component/bt: Fix the bug when write ccc sometimes will lead to repeatedly release the memory. 2017-11-25 05:06:14 -05:00
2b010d4bc9 RMT transmitter and receiver overview pictures 2017-11-24 21:33:50 +01:00
4c13b2f391 docs/ipc documentation
This commit updates doxygen comments in the IPC header files and adds an rst
docs page.
2017-11-24 15:31:28 +08:00
e7743d090d freertos: fix a bug for incorrect check of allow-external-stack 2017-11-24 09:53:47 +05:30
02304ad83e Merge branch 'feature/freertos_backported_functions' into 'master'
freertos/backport and test v9.0.0 functions

See merge request !1515
2017-11-24 08:49:59 +08:00
e5b2c1cf4c Merge branch 'bugfix/btdm_corret_bt_h_comment' into 'master'
component/bt: Correct the ESP_BLE_PWR_TYPE_CONN_HDL0-9 comment in the bt.h file t…

See merge request !1570
2017-11-24 00:14:14 +08:00
082f5716c6 Merge branch 'feature/enable_disable_ampdu_rx_tx_independently' into 'master'
Feature/enable disable ampdu rx tx independently

See merge request !1560
2017-11-23 22:22:43 +08:00
177c92f15e component/bt: Change the code format. 2017-11-23 06:42:04 -05:00
2458d15d2d component/bt: recovery the scan parameter to the controller before start scan. 2017-11-23 06:36:00 -05:00
b553c925b1 bugfix: while scale equals 0 will cause crash 2017-11-23 17:56:18 +08:00
dd371289aa CI: fix C++ unit test cases not executed by CI 2017-11-23 17:14:23 +08:00
f14699068d component/bt: Fixed the bug when stop scan if not set back the scan params will lead to connection request sent the empty packet to the peer device. 2017-11-23 03:54:29 -05:00
983ec73413 libstdc++: update the library built with PSRAM workaround 2017-11-23 15:34:23 +08:00
c1d101dd41 freertos/backport and test v9.0.0 functions
This commit backports the following features from FreeRTOS v9.0.0
- uxSemaphoreGetCount()
- vTimerSetTimerId(), xTimerGetPeriod(), xTimerGetExpiryTime()
- xTimerCreateStatic()
- xEventGroupCreateStatic()
- uxSemaphoreGetCount()

Functions backported previously
- xTaskCreateStatic()
- xQueueCreateStatic()
- xSemaphoreCreateBinaryStatic(), xSemaphoreCreateCountingStatic()
- xSemaphoreCreateMutexStatic(), xSemaphoreCreateRecursiveMutexStatic()
- pcQueueGetName()
- vTaskSetThreadLocalStoragePointer()
- pvTaskGetThreadLocalStoragePointer()

Unit tests were also written for the functions above (except for pcQueueGetName
which is tested in a separate Queue Registry MR). The original tlsp and del cb test case
was deleted and integrated into the test cases of this MR.
2017-11-23 14:18:09 +08:00
e43ac33b7c Merge branch 'bugfix/aws_iot_nvs_no_init' into 'master'
aws_iot: fix aws_iot examples without NVS initialization

See merge request !1581
2017-11-23 13:19:21 +08:00
2f62a62d28 Merge branch 'feature/toolchain_update' into 'master'
toolchain: update to 1.22.0-75-gbaf03c2

See merge request !1577
2017-11-23 13:02:57 +08:00
b669b415e6 Merge branch 'feature/cxx_exceptions_emg_pool' into 'master'
esp32: Adds C++ exceptions emergency pool size menuconfig option

See merge request !1561
2017-11-23 13:02:49 +08:00
2eac553062 Merge branch 'feature/pthread_key_and_cond_var_support' into 'master'
pthread: Added support for pthread condition variables

See merge request !1387
2017-11-23 13:02:40 +08:00
9a09292487 ci: increase number of example build jobs 2017-11-23 12:02:41 +08:00
3ad64bc099 CI: support sepcify docker image tag with bot 2017-11-23 11:31:54 +08:00
f41431022b windows: Allow "make menuconfig" to work if ming32 gcc is also installed
Closes https://github.com/espressif/esp-idf/issues/1296
2017-11-23 14:31:04 +11:00
edb2400742 pthread: Added support for pthread condition variables
This is required for std::condition_variable support

Signed-off-by: Amey Inamdar <amey.inamdar@gmail.com>
2017-11-23 11:26:51 +08:00
7df96718a2 esp32: Adds C++ exceptions emergency pool size menuconfig option 2017-11-23 06:14:11 +03:00
3f6a8f1430 esp32: add options to disable/enable TX/RX AMPDU independently
Make menuconfig can disable/enable TX/RX AMPDU independently
2017-11-23 09:42:31 +08:00
4d34251ff3 windows: Update precompiled env link & toolchain in setup script 2017-11-23 11:55:23 +11:00
cdad1e8382 Implement review comments 2017-11-22 23:33:29 +01:00
597ce3b800 Merge branch 'bugfix/ringbuf_buflen_bugfix' into 'master'
Bugfix/ringbuf buflen bugfix

See merge request !1562
2017-11-22 22:30:11 +08:00
61ead8fb96 Merge branch 'bugfix/ota_example_http_request' into 'master'
ota example: Send a valid HTTP/1.0 request

See merge request !1566
2017-11-22 22:27:10 +08:00
c237c5c966 Merge branch 'bugfix/gpio_disable_api' into 'master'
driver: GPIO can be disabled by calling  gpio_set_direction

See merge request !1575
2017-11-22 22:26:54 +08:00
cf47012111 Merge branch 'feature/prs_from_github' into 'master'
PRs from Github

See merge request !1578
2017-11-22 22:26:40 +08:00
5fe91ae7cd Merge branch 'bugfix/cpp_guards' into 'master'
Add C++ guards to freertos/ringbuf.h, heap headers

See merge request !1552
2017-11-22 22:26:26 +08:00
ada33fe3dd Add GPIO input and output disable option 2017-11-22 15:00:27 +08:00
4b3997cfbb aws_iot: fix aws_iot examples without NVS initialization
WiFi used to initialise nvs automatically, but it doesn't now.
see more info: https://github.com/espressif/esp-idf/issues/624

Closes #624
2017-11-22 13:02:55 +08:00
08be5213db Merge branch 'bugfix/uxportcompare_check_addr_range' into 'master'
portmacro: add assert to check address validity in uxPortCompareSet

See merge request !1519
2017-11-22 11:44:09 +08:00
3607b404c0 Merge branch 'feature/lwip_socket_pcb_num_config' into 'master'
lwip: Expose number of active socket limits in menuconfig

See merge request !1433
2017-11-22 11:36:55 +08:00
4ce68f6163 lwip: Expose number of active socket limits in menuconfig 2017-11-22 14:10:08 +11:00
157371effb Set GPIO-mode for MDC and MDIO pins
Merges #1127
2017-11-22 11:01:43 +08:00
08ba79cc2b return old handler from esp_log_set_vprintf()
Merges #1286
2017-11-22 11:01:43 +08:00
cf768380b1 soc: Remove redefinition of MCU_SEL_M
Signed-off-by: Vitor Massaru Iha <vitor@massaru.org>

Merges #1290
2017-11-22 11:01:42 +08:00
969911b7c2 freertos: enabled use of pxTaskGetStackStart and cleaned up it's implementation
Merges #1298
2017-11-22 11:01:42 +08:00
4332a2c4bc Merge branch 'bugfix/cxx-exceptions-missing-stubs' into 'master'
cxx_exceptions: Add missing stubs for cxx exceptions with exceptions disabled

See merge request !1574
2017-11-22 09:26:24 +08:00
a556e1c782 heap: Add C++ header guards to heap headers
Closes https://github.com/espressif/esp-idf/issues/1195
2017-11-22 10:08:50 +11:00
0b48d5978e ringbuf.h: Add anti name-mangling definition
When using CPP and C combination this particular file threw error on linking.

Merges https://github.com/espressif/esp-idf/pull/1249

(Amended to add INC_FREERTOS_H guard, comment on #endif)
2017-11-22 10:08:15 +11:00
2ec35f60ca RMT API docs update, new example 2017-11-21 22:34:23 +01:00
c03b068931 spiffs: make OBJ_META_LEN configurable, make mtime support optional
- SPIFFS_OBJ_META_LEN can be set in sdkconfig
- mtime support can be enabled in sdkconfig, if META_LENGTH is sufficient
- add test for mtime updates
2017-11-22 00:17:11 +08:00
58f046715e Unify the time file creation for SPIFFS and SD 2017-11-21 22:51:36 +08:00
4f33339c1d test_ringbuf: Add tests for arbitrary length ring buffer
This will test the ring buffer for buffer length that is not
a multiple of 4

Signed-off-by: Piyush Shah <piyush@espressif.com>
2017-11-21 17:18:54 +05:30
7dd9c4f57f ringbuf: Fixes to header files for better understanding
1. Usage of this module required applications to include additional
files. What files to include is not very intuitive. Instead, it is
better for the header file itself to include other files as required.
2. Even though it may seem logical, it is better to explicitly mention
that an item needs to be "Returned" after a Receive

Signed-off-by: Piyush Shah <piyush@espressif.com>
2017-11-21 17:16:04 +05:30
62f44e45df ringbuf: Bugfixes for managing arbitrary sizes of ring buffer
It was observed that if the ring buffer size provided by application
is not a multiple of 4, some checks were failing (as read_ptr and write_ptr
could shoot beyond the ring buffer boundary), thereby causing asserts.
Simply wrapping around the pointers for such cases fixes the issue.

Moreover, because of the logic for maintaining 4-byte boundary,
it was also possible that a wrap-around occurred for some data,
even when the actual size remaining was sufficient for it.
Eg. Buffer available: 34, data size: 34, 4-byte aligned size: 36
Since the logic compares against 36, it writes 34 bytes and does a
wraparound. But since all 34 bytes are already written, there is
nothing to write after wrapping. It is better to just re-set the
write pointer to the dtart of ring buffer in such cases.

Tested send/receive for various arbitrary sizes of data and for
arbitrary sizes of ring buffer.

Alternative Solutions:
1) Allow only sizes which are multiples of 4, and return error otherwise.
Appropriate code and documentation change would be required
2) Allow arbitrary sizes, but internally add upto 3 bytes to make
the total size a multiple of 4

Signed-off-by: Piyush Shah <piyush@espressif.com>
2017-11-21 17:15:53 +05:30
0f503dee50 toolchain: update to 1.22.0-75-gbaf03c2
- enable condition variable support in gthread
- add provisions to allow emergency exception pool size to be configured
2017-11-21 19:30:52 +08:00
6e1453e864 Merge branch 'feature/bot' into 'master'
CI: support customize test with @bot

See merge request !1502
2017-11-21 18:43:56 +08:00
78ed138453 cxx_exceptions: Add missing stubs for cxx exceptions with exceptions
disabled

The misssing stubs get pulled in from the toolchain's libstdc++ also
causing to pull in defined stubs. This results in redefinition of
symbols. Fixing it by simply adding the missing stubs when exceptions
are disabled.

Signed-off-by: Amey Inamdar <amey.inamdar@gmail.com>
2017-11-21 12:41:49 +05:30
46673bb6f1 Merge branch 'bugfix/rtc_apll_disable' into 'master'
soc/rtc: don't power down BIAS_I2C along with APLL if other PLL is used

See merge request !1568
2017-11-21 12:13:07 +08:00
d135a017f4 Merge branch 'bugfix/ut_startup_time' into 'master'
By default, don't print test menu in unit-test-app

See merge request !1565
2017-11-21 12:12:46 +08:00
dc994e9c88 ota example: Send a valid HTTP/1.0 request
Was sending an invalid HTTP/1.1 request which many web servers rejected.

Thanks @chegawara for pointing this out on IRC.

Ref:
https://github.com/espressif/esp-idf/issues/231#issuecomment-300287523
2017-11-21 09:02:58 +11:00
93c75b4978 Merge branch 'bugfix/update_BOD_voltages' into 'master'
esp32/Update brownout voltages

See merge request !1520
2017-11-21 05:37:55 +08:00
729e0c2544 component/bt: Correct the SP_BLE_PWR_TYPE_CONN_HDL0-9 comment in the bt.h file to ESP_BLE_PWR_TYPE_CONN_HDL0-8 2017-11-20 08:05:35 -05:00
2eae440646 unit-test-app: reduce startup delay, clean up 2017-11-20 17:51:27 +08:00
81f806e676 test: change initial condition of unit test:
now UT App will not print test menu by default. it will print a prompt
to indicate it's ready. we can check this prompt instead of delay.
2017-11-20 17:51:27 +08:00
5117364c13 unit-test-app: don't print the list of tests by default
This reduces unit-test-app startup time when there are a lot of tests
included, speeding up unit tests in CI.
2017-11-20 17:51:27 +08:00
024e4c4337 Merge branch 'feature/openssl_cn_hostname_verification' into 'master'
openssl: Add CN hostname verification

See merge request !1554
2017-11-20 15:59:15 +08:00
18f4696371 Merge branch 'bugfix/pthread_test_mem_leaks' into 'master'
pthread: Fixes memory leaks and stack overflow in tests

See merge request !1563
2017-11-20 15:58:53 +08:00
4b8f55aadf Merge branch 'bugfix/minor_fixes_github' into 'master'
Minor fixes from github

See merge request !1555
2017-11-20 15:58:34 +08:00
3369f15fa3 soc/rtc: don't power down BIAS_I2C along with APLL if other PLL is used
If enable == false, and SOC_CLK_SEL == PLL, the code would would
erroneously set RTC_CNTL_BIAS_I2C_FORCE_PD. This change fixes the logic.
2017-11-20 15:27:16 +08:00
9fbcc6f922 In STA mode, tcp_send cannot catch err after disconnect station 2017-11-20 15:19:19 +08:00
19598fa6d3 monitor: Fix Windows 10 crash since Fall Creators Update
Closes https://github.com/espressif/esp-idf/issues/1136
2017-11-20 17:47:43 +11:00
ae1f1e9b84 openssl wrapper: introduce X509_VERIFY_PARAM_set/clear_hostflags
This defines the OpenSSL X509_CHECK_FLAG_...s and the set/clear
accessors.  Since none of them are supported, the set / clear
accessor currently always does nothing and returns error.

This call is often part of the generic openssl user code to
set up certificate verification.  This patch allows it to
compile for ESP32 and decide at runtime what to do about
unsupported flags.

Merges https://github.com/espressif/esp-idf/pull/980
2017-11-20 16:25:57 +11:00
4395f7c94e Merge branch 'feature/spi_flash_lock_recursive' into 'master'
spi_flash: Expose recursive op_lock for atomic multi-part flash operations

See merge request !1556
2017-11-20 13:24:41 +08:00
effc6c6d0d openssl wrapper: introduce X509_VERIFY_PARAM_set1_host
This lets the user code set the mbedtls hostname using the standard OpenSSL
X509_VERIFY_PARAM_set1_host() API semantics.

The API takes an X509_VERIFY_PARAM pointer.  We use the fact that is
a composed member of the SSL struct to derive the SSL pointer.

The X509_VERIFY_PARAM_set1_host() is unusual in that it can accept a
NUL terminated C string as usual, or a nonterminated pointer + length.
This implementation converts the latter to the former if given, before
using it.

This is enough for user code to get the openssl wrapper to make
mbedtls confirm the CN on the peer cert belongs to the hostname used
to reach it, by doing, eg

	X509_VERIFY_PARAM_set1_host(SSL_get0_param(myssl), myhostname, 0);

Merges https://github.com/espressif/esp-idf/pull/980
2017-11-20 16:24:06 +11:00
0f02a38262 openssl wrapper: introduce SSL_get0_param
This adds the standard OpenSSL api to get a pointer to the SSL struct's
X509_VERIFY_PARAM.  We need this for the OpenSSL api to set the peer
hostname introduced in the next patch.

Part of https://github.com/espressif/esp-idf/pull/980
2017-11-20 16:23:18 +11:00
4b8c90bce0 doc: Unify the two sections about the "dialout" group on Linux
An addition to https://github.com/espressif/esp-idf/pull/1158
2017-11-20 16:10:38 +11:00
05dd46cd72 udp_perf/tcp_perf examples: Erase NVS if no more free pages
Follows same pattern as other examples.

Amendment to https://github.com/espressif/esp-idf/pull/1279
2017-11-20 16:07:52 +11:00
3b84c1e8fa fixed broken udp_perf example by adding nvs_flash
Merges https://github.com/espressif/esp-idf/pull/1279
2017-11-20 16:07:00 +11:00
0dea8bca46 fixed broken tcp_perf example by adding nvs_flash 2017-11-20 16:06:59 +11:00
f54e99008d spi: Add ESP_ERR_NO_MEM to spi_device_queue_trans() documentation
Ref https://github.com/espressif/esp-idf/pull/1243#issuecomment-343103414
2017-11-20 16:06:59 +11:00
7a924bd85a spi_flash: Expose an accessor the current SPI flash guard functions
Change places which uses g_flash_guard_default_ops to use this. Probably exact same data, but a bit
cleaner.
2017-11-20 15:54:31 +11:00
e72e5a9706 spi_flash: Make spi_flash op_lock/op_unlock recursive
Allows chaining of multiple flash operations as an atomic operation.
2017-11-20 15:54:31 +11:00
91ccf588d1 esp32/Update brownout voltages
This commit updates the voltages of each brownout level in Kconfig.
Note that there is some variation of brownout voltage between each chip.
2017-11-20 12:26:13 +08:00
1fbd3ffac8 Merge branch 'feature/fatfs_r013a' into 'master'
fatfs: update to R0.13a

See merge request !1524
2017-11-20 10:16:39 +08:00
148130066f Merge branch 'feature/esp32_stack_protector' into 'master'
esp32: Adds Stack Smashing Protection Feature

See merge request !1537
2017-11-20 10:16:15 +08:00
9f7d632b74 Merge branch 'bugfix/spi_master_cs' into 'master'
fix(spi_master): fix the CS pin issue with GPIO 0.

See merge request !1536
2017-11-20 10:15:44 +08:00
7ce945a9de pthread: Fixes memory leaks and stack overflow in tests
Also this commit replaces FreeRTOS list used for pthread internals
with simple one from rom/queue.h
2017-11-17 16:57:33 +03:00
692a890232 esp32: Adds Stack Smashing Protection Feature
These changes add posibility to enable GCC stack protector via menuconfig
for all source files in project.
2017-11-17 12:08:36 +03:00
02573a8dc9 fix(spi_master): release temporary memory when queue new trans timeout. 2017-11-17 12:15:19 +08:00
13d38f10ee test(spi): internal connection test master with slave for address and command field. 2017-11-17 12:15:19 +08:00
57e1d47ad7 fix(spi_master): fix the CS pin issue with GPIO 0.
Closes #909
2017-11-17 12:15:19 +08:00
842292523f fix(spi_slave): add interrupt free into bus free process. 2017-11-17 12:14:40 +08:00
31711b5ac7 SPI: Document TIMEOUT return values
`spi_device_queue_trans` and `spi_device_get_trans_result` can return `ESP_ERR_TIMEOUT` – but this had not been documented.

Merges https://github.com/espressif/esp-idf/pull/1243
2017-11-17 10:50:54 +11:00
ad8ebe5b63 Update spp_client_demo.c
Merges https://github.com/espressif/esp-idf/pull/1229
2017-11-17 10:49:51 +11:00
4da90f09e7 freertos: minor issue in documentation snippet of queue.
taskYIELD was used in ISR context, but portYIELD_FROM_ISR should instead.

Merges https://github.com/espressif/esp-idf/pull/1187
2017-11-17 10:44:19 +11:00
17b4973d47 docs: Improved documentation for /dev/ttyUSB0 issues
Improved documentation for /dev/ttyUSB0 issues.  This occurred in Ubuntu, but I'm sure is applies to most distributions.

Merges https://github.com/espressif/esp-idf/pull/1158
2017-11-17 10:43:02 +11:00
0c40b2ec9d test: collect performance for esp-timer / spinlock 2017-11-16 17:48:48 +08:00
879160de8c test: collect example https_request binary size 2017-11-16 17:48:30 +08:00
9395a702ef test: check and collect performance via CI 2017-11-16 17:48:30 +08:00
7e8c2a9c00 Merge branch 'bugfix/newlib_strptime' into 'master'
newlib: Add strptime(), qsort_r(), nanf() to libc & libc_nano

See merge request !1547
2017-11-16 17:40:27 +08:00
c03d12b9e5 Merge branch 'bugfix/btdm_delete_gattc_cache_write' into 'master'
component/bt: delete gattc cache write operation

See merge request !1543
2017-11-16 17:39:22 +08:00
af367452b0 Merge branch 'bugfix/rebind_pcb_when_ip_changed' into 'master'
lwip: rebind UDP/TCP pcb to valid ip address when ip is changed

See merge request !1535
2017-11-16 17:28:06 +08:00
88e1a374a0 Merge branch 'bugfix/fix_airkiss_macro_typo' into 'master'
Fix an airkiss macro error

See merge request !1532
2017-11-16 17:25:45 +08:00
7bd8133639 component/bt: delete api bta_gattc_cache_write 2017-11-16 16:40:18 +08:00
7d20e4e422 newlib: Remove out of date libc_discard.list 2017-11-16 17:43:05 +11:00
239ac0e17b newlib: Add strptime(), qsort_r(), nanf() to libc & libc_nano
These functions were discarded but not provided in ROM.

Generated from commit 8ad0aa7d6 in newlib script repo. Didn't rebuild most of libc/libc_nano,
only appended the missing object files to the existing archives (should save some git churn).
2017-11-16 17:35:18 +11:00
2d148cd34b Merge branch 'bugfix/heap_region_add' into 'master'
component/heap : fix heap_region_add check bug

See merge request !1523
2017-11-16 13:45:10 +08:00
5789a8a6e9 component/bt: delete gattc cache write operation 2017-11-16 11:18:17 +08:00
e7a9ddcf72 component/heap : fix heap_region_add check bug 2017-11-16 11:10:13 +08:00
eef595501c Fix an airkiss macro error 2017-11-15 21:44:12 +08:00
209280e328 Merge branch 'bugfix/scan_example_cosmetic_fixes' into 'master'
Bugfix/Wi-Fi scan example cosmetic fixes

See merge request !1539
2017-11-15 21:19:24 +08:00
affde01b4c wifi_scan_example: Comments improved for readability
Rephrased the example's description to make it easier to understand
and made other grammatical fixes.

Signed-off-by: Piyush Shah <piyush@espressif.com>
2017-11-15 15:02:31 +05:30
371c66f188 wifi_scan_example: Indentation Fixes
- Trailing white spaces removed
- Re-formatted switch-case

Basic indentation fixes were done using tools/format.sh and switch-case
formatting was done manually (to identify different levels for "switch"
and "case")

Signed-off-by: Piyush Shah <piyush@espressif.com>
2017-11-15 15:01:11 +05:30
095d163050 lwip: rebind UDP/TCP pcb to valid ip address when ip is changed
This change fix the issue UDP/TCP pcb failed to rebind to correct ip address when ip is changed
2017-11-15 16:15:24 +08:00
ee3224bed2 Component/bt: optimize gatt_server_service_table demo 2017-11-15 15:26:53 +08:00
d488bb7bac Provided more meaningful parameter names by renaming 'bit_num' to 'duty_resolution' and 'div_num' to 'clock_divider' 2017-11-15 08:08:12 +01:00
b83792f504 Merge branch 'doc/esp_wifi_types' into 'master'
docs: Add esp_wifi_types.h items to wifi API reference

See merge request !1320
2017-11-15 15:03:02 +08:00
da141a2c7e Merge branch 'bugfix/touch_pad_register_mismatch' into 'master'
Bugfix/touch pad register mismatch

See merge request !1469
2017-11-15 14:52:13 +08:00
c6d25dd9cc Merge branch 'features/http2_demo' into 'master'
HTTP2 Client Demo

See merge request !1475
2017-11-15 14:51:51 +08:00
21d95eae2d Merge branch 'bugfix/tw16355' into 'master'
fix(tw16355): examples/protocols/coap_client(server)

See merge request !1531
2017-11-15 14:51:41 +08:00
fac2e78bfe Merge branch 'bugfix/emac_rx_process' into 'master'
component/emac: fix process rx err

See merge request !1529
2017-11-15 14:51:33 +08:00
a4f9dfc6a4 Merge branch 'bugfix/queue_registry_test' into 'master'
unit tests: fix queue registry test

See merge request !1528
2017-11-15 14:51:18 +08:00
c40dc36814 docs: Remove internal header esp_wifi_crypto_types.h from documentation 2017-11-15 17:40:38 +11:00
9a96c8379e docs: Add introduction section for WiFi, replace boilerplate 2017-11-15 17:40:38 +11:00
beba74ff61 docs: Add esp_wifi_types.h descriptions 2017-11-15 17:40:38 +11:00
a4cf094fd7 Merge branch 'bugfix/component_depends' into 'master'
build system: Fix COMPONENT_DEPENDS

See merge request !1530
2017-11-15 13:53:26 +08:00
b37e5d64b8 freertos: port: add check for portMUX address validity
Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2017-11-15 11:16:45 +05:30
6a02a58347 fix(tw16355): examples/protocols/coap_client(server)
fix coap example can not work properly
2017-11-15 11:58:19 +08:00
d46dcaf9e5 component/emac: fix process rx err 2017-11-15 11:04:32 +08:00
ec9d93f4fc Merge branch 'bugfix/btdm_gattc_command_queue_fix' into 'master'
Bugfix/btdm gattc command queue fix

See merge request !1317
2017-11-15 10:54:02 +08:00
957b97720a Merge branch 'bugfix/update_wifi_lib_for_some_fixes' into 'master'
esp32: update wifi lib to fix some wifi bugs

See merge request !1525
2017-11-15 10:12:39 +08:00
8b56345e44 unit tests: fix queue registry test
In the queue registry test, start_sem is given twice to let both tasks
start the test. Each task takes start_sem, does some work, gives done_sem,
and goes on to wait for start_sem again.
It may happen that one task can grab start_sem, add queues to the
registry, give done_sem, then grab start_sem again, delete the queues
from the registry, and give done_sem again. At this point, main test
task takes done_sem twice and proceeds to verify that queues have been
added to the registry. But in fact, the first task has already deleted
its queues from the registry, and the second one might not have added
the queues yet. This causes test to fail.

This changes the test to use separate start semaphores for each task,
to avoid the race condition.
2017-11-14 23:53:08 +08:00
41272c5b94 Merge branch 'bugfix/btdm_modify_logs' into 'master'
component/bt: modify some log

See merge request !1485
2017-11-14 21:13:00 +08:00
a2194ec665 Merge branch 'bugfix/btdm_remove_redundant_open_evt_for_same_app' into 'master'
component/bt: remove redundant open evt while calling gattc_open twice in the same app_id

See merge request !1526
2017-11-14 21:12:05 +08:00
ef2c370a30 Merge branch 'bugfix/btdm_no_ind_ack_for_server_only' into 'master'
component/bt: fix not send indication confirm in case of server only

See merge request !1522
2017-11-14 21:09:26 +08:00
3554d190ff esp32: update wifi lib to fix some wifi bugs
1. Fix resend eapol cause crash issue
2. Don't asser the system when the channel is in 14
2017-11-14 20:45:33 +08:00
9e90baf5a0 Merge branch 'bugfix/tw15564_fix_socket_close_crash' into 'master'
Bugfix/tw15564 fix socket close crash

See merge request !1496
2017-11-14 20:40:39 +08:00
b07a5f03cf component/bt: Change the gattc prepare write callback params. 2017-11-14 07:00:45 -05:00
3c33807689 Merge branch 'feature/freeRTOS_make_debug_functions_configurable' into 'master'
FreeRTOS/make Queue Registry and Run Time Stats configurable

See merge request !1480
2017-11-14 19:41:50 +08:00
7200b2cc11 bugfix(touch): registers of touchpad 8 and 9 are mismatched
1. All the registers of touch sensor 8 and 9 are mismatched except the ‘dac’ field in touch register of RTC IO
2. To swap the index for sensor 8 and 9 in APIs.
2017-11-14 18:47:56 +08:00
2a4af8b83c component/bt: remove redundant open evt while calling gattc_open twice in the same app_id 2017-11-14 17:11:34 +08:00
d1853dbbc0 FreeRTOS/make Queue Registry and Run Time Stats configurable
This commit makes the configQUEUE_REGISTRY_SIZE and
configGENERATE_RUN_TIME_STATS configurable in menuconfig.

- configQUEUE_REGISTRY_SIZE can now be set in menuconfig.
- The functions vQueueAddToRegistry() and vQueueUnregisterQueue() were made
  SMP compatbile
- pcQueueGetName() was backported from FreeRTOS v9.0.0
- Added test case for Queue Registry functions

- configGENERATE_RUN_TIME_STATS can now be enabled in menuconfig. CCOUNT or
  esp_timer can be selected as the FreeRTOS run time clock in menuconfig as
  well, although CCOUNT will overflow quickly.
- Run time stats collection (in vTaskSwitchContext) and generation (in
  uxTaskGetSystemState) have been made SMP compatible. Therefore
  vTaskGetRunTimeStats() now displays the run time usage of each task as a
  percentage of total runtime of both CPUs

Squash
2017-11-14 15:50:31 +08:00
8e180f6155 fatfs: update to R0.13a
- Remove ASCII-only configuration, CP437 is used instead
- Add dynamic code page configuration

See components/fatfs/src/00history.txt for FATFS changelog.
2017-11-14 12:57:55 +08:00
1d13b58c62 component/bt: Added the queue event when the gattc command is full. 2017-11-13 22:44:27 -05:00
38b287593c component/bt: fix not send indication confirm in case of server only 2017-11-14 11:43:57 +08:00
09d2791cfd Merge branch 'feature/spi_variable_len' into 'master'
feat(spi_master): add new feature allow use variable command and address field length for the same device.

See merge request !1322
2017-11-14 00:08:50 +08:00
31d0c8eec5 Merge branch 'feature/emac_apll' into 'master'
feat(emac): add support for emac to use internal (APLL) clock outputs.

See merge request !1518
2017-11-14 00:07:35 +08:00
5404252e80 Merge branch 'bugfix/uart_fifo_bug_workaround' into 'master'
bugfix(uart): workaround for uart fifo reset issue

See merge request !1499
2017-11-13 17:46:42 +08:00
3726cd39ab Merge branch 'bugfix/examples_ulp_gpio15' into 'master'
examples/ulp: disable pullup on GPIO15 to reduce current

See merge request !1486
2017-11-13 17:34:12 +08:00
4052803e16 bugfix(uart): workaround for uart fifo reset issue
Reported from github:
https://github.com/espressif/esp-idf/issues/1219
https://github.com/espressif/esp-idf/issues/1202

After providing a simple code to digital team, they confirmed that this is a hardware bug.

Root cause:
The fifo reset signal is incorrectly connected
If we want to reset tx fifo of UART2, we have to set txfifo_rst bit of both UART1 and UART2
If we want to reset rx fifo of UART2, we have to set rxfifo_rst bit of both UART1 and UART2

Workaround:
we don't use fifo rst bit in driver.

Documentation:
Digital team would update TRM and give more explanation about this issue.
2017-11-13 15:23:00 +08:00
2be5e73090 rebase the origin to the local 2017-11-13 02:20:02 -05:00
8352eb6fa2 component/bt: Added the prepare write check. 2017-11-13 02:12:33 -05:00
f324458b6a feat(emac): add support for emac to use internal (APLL) clock outputs. 2017-11-13 14:18:58 +08:00
48ca949fd4 lwip: fix socket close crash issue
When lwip_close free the socket resource (netconn etc), any work
related to these resource (netconn etc) must be aborted.
2017-11-13 06:00:52 +00:00
e64b9ecaf4 Merge branch 'bugfix/ut_only_test_app_core_sleep_on_dual_core' into 'master'
test: only test app core sleep on dual core

See merge request !1517
2017-11-13 13:35:07 +08:00
004c391591 Merge branch 'feature/adjust_task_stack_size_according_to_nano' into 'master'
esp32/lwip: adjust task stack size according 'nano' print

See merge request !1510
2017-11-13 11:18:20 +08:00
36692dbac7 docs: Add esp_wifi_types.h items to wifi API reference
Previously only items defined esp_wifi.h in esp_wifi_crypto_types.h
were including in documentation reference.
2017-11-10 11:00:44 -08:00
bd9c5d9adc Merge branch 'feature/fatfs_kconfig_options' into 'master'
fatfs: expose some configuration values in Kconfig

See merge request !1415
2017-11-11 02:48:15 +08:00
4468825028 Merge branch 'bugfix/TW#16106_esp_heap_trace.h_C++_include_guards' into 'master'
freertos/add C++ include guards for esp_heap_caps.h

See merge request !1516
2017-11-11 02:47:10 +08:00
be405d69d8 test: ut only test app core reset on dual core 2017-11-10 17:53:59 +08:00
e24ea6207b Merge branch 'bugfix/btdm_osi_alarm' into 'master'
component/bt: use esp_timer instead of FreeRTOS timer to implement osi_alarm in bluedroid

See merge request !1506
2017-11-10 15:34:11 +08:00
b8694eeeb9 Merge branch 'bugfix/tw16339_sta_cant_connect_ap_in_channel_14' into 'master'
Bugfix/tw16339 sta cant connect ap in channel 14

See merge request !1514
2017-11-10 15:31:19 +08:00
b1d13ded1a test: only test app core sleep on dual core 2017-11-10 13:26:11 +08:00
fff482acd9 freertos/add C++ include guards for esp_heap_caps.h 2017-11-10 12:01:30 +08:00
53273172fe component/bt: modify the implementation and interface of osi_alarm module
1. use esp_timer instead of FreeRTOS timer to implement osi_alarm in bluedroid
2. Remove two APIs: osi_alarm_now() and osi_alarm_time_diff() and modify the hci layer logic that use them
3. Implement osi_alarm_get_remaining_ms()
4. Move the definition of struct alarm_t in source file "alarm.c"
5. Add definition of module error code
2017-11-10 11:53:55 +08:00
7632c6a80c Merge branch 'test/UT_reset_check' into 'master'
Test/ut reset check

See merge request !1086
2017-11-10 11:30:46 +08:00
3eedf3ed18 Merge branch 'bugfix/to_docs_from_github' into 'master'
Documentation bugfixes from the github

See merge request !1501
2017-11-10 11:13:25 +08:00
d1f6030921 Merge branch 'bugfix/from_github' into 'master'
Bug fixes from Github

See merge request !1487
2017-11-10 11:13:04 +08:00
cfe1f4724c Merge branch 'bugfix/cas_for_pthread_once' into 'master'
pthread: Fix pthread_once to use atomic compare and set

See merge request !1497
2017-11-10 11:12:46 +08:00
2041ba9add esp32: fix station can't connect esp32 softap in channel 14
Channel 14 only supports HT20 while ESP32 softap channel 14 is HT40, fix it.
2017-11-10 10:55:08 +08:00
8e04b86153 Merge branch 'bugfix/tg_wdt_reboot_uart_garbage' into 'master'
bootloader: wait for UART FIFO to be empty before switching frequency

See merge request !1511
2017-11-09 17:14:13 +08:00
772824d478 Merge branch 'bugfix/core_voltage_80m_flash' into 'master'
soc/rtc: raise core voltage when 80MHz flash frequency is used

See merge request !1508
2017-11-09 15:35:12 +08:00
ee43527108 compoent/bt: Modify bta_gattc_utils.c The value pointer copy is overwritten when a write event occurs. 2017-11-09 14:47:11 +08:00
e6b2c19eea component/bt: Fix the write value not store in the queue command bug. 2017-11-09 14:47:11 +08:00
68833fe94c component/bt: Change the bta_gattc_pop_command_to_send function to static. 2017-11-09 14:47:11 +08:00
0ae5320f50 component/bt: Added the gattc command queue support. 2017-11-09 14:47:11 +08:00
7a27e3c74d component/bt: added the queue to store the gattc commands. 2017-11-09 14:47:11 +08:00
1ceef12238 compoent/bt: Modify bta_gattc_utils.c The value pointer copy is overwritten when a write event occurs. 2017-11-09 01:44:16 -05:00
4033a4bcda Merge branch 'feature/docs_update_i2c_api' into 'master'
I2C API documenation update

See merge request !1404
2017-11-09 14:10:41 +08:00
afa9a85396 bootloader: wait for UART FIFO to be empty before switching frequency 2017-11-09 13:17:58 +08:00
bb4838314c doc: Add internal links for chapters and fix typos
Used 'git grep -i -E "see *\`[^\`]+\`[^_]"' to find the invalid links
2017-11-09 11:45:13 +08:00
710055025e esp32/lwip: adjust task stack size according 'nano' print
1. Adjust tcpip/main/event/timer task stack size according 'nano' print
2. If 'nano' print is disabled the task stack size reduces 512 bytes
2017-11-09 10:09:42 +08:00
60f954448c I2C API documenation update 2017-11-08 23:38:29 +01:00
f22c681c1c soc/rtc: raise core voltage when 80MHz flash frequency is used
To achieve reliable operation with GD flash at 80MHz, need to raise
core voltage.
This causes the following current consumption increase:

At 80MHz: from 29mA to 33mA
At 160MHz: from 41mA to 47mA

Test conditions: 2 cores running code from IRAM, remaining peripherals
clock gated.
2017-11-08 21:13:02 +08:00
37169f0f10 Merge branch 'feature/illustrations_with_blockdiag' into 'master'
Implement ‘blockdiag - simple block-diagram image generator’ to illustrate docum…

See merge request !1495
2017-11-08 18:54:28 +08:00
793ea56204 Merge branch 'bugfix/fail_to_scan_all_matched_ap' into 'master'
Wifi: bugfix/fail_to_scan_all_matched_ap

See merge request !1493
2017-11-08 17:39:29 +08:00
8ca40818eb component/bt: Fix the write value not store in the queue command bug. 2017-11-08 04:23:12 -05:00
27c1fc52ba Added .command_timeout_ms = 0 to SDSPI_HOST_DEFAULT() too 2017-11-08 12:52:50 +08:00
c6f7a38536 CI: support customize test with @bot 2017-11-08 11:36:16 +08:00
9cee2f9558 Linked API reference of 'Application Level Tracing' with description in the 'API Guides' 2017-11-07 20:27:19 +01:00
264315ab81 Fix markdown and format of GPIO example README
Fixed headers so they work (requires space between hash and text) and have a sensible structure and removed trailing spaces.

Signed-off-by: krzychb
2017-11-07 20:27:10 +01:00
05c4a76202 Fix reference to partition table documentation
… and link to it.

Signed-off-by: krzychb
2017-11-07 20:26:46 +01:00
a106dc183d Clean up documentation of esp_wifi_set_country
Signed-off-by: krzychb
2017-11-07 20:26:22 +01:00
3a1521f965 Implement ‘blockdiag - simple block-diagram image generator’ to illustrate documentation with block diagrams, sequence diagrams, activity diagrams and logical network diagrams 2017-11-07 18:17:53 +01:00
d78ba789cf Merge branch 'feature/unit-tests-psram' into 'master'
unit tests: add psram configuration

See merge request !1488
2017-11-07 20:11:54 +08:00
dfe4e68cc3 Merge branch 'bugfix/btdm_lib_update_for_psram' into 'master'
component/bt: update toolchain and add compile options to build libbtdm_app.a to support PSRAM

See merge request !1491
2017-11-07 20:01:14 +08:00
5f9ac5fadb Merge branch 'doc/freertos_port_comments' into 'master'
freertos: Update comments in "port" section (portMUX/etc)

See merge request !1431
2017-11-07 19:31:21 +08:00
744896bde2 Merge branch 'bugfix/hardware_mpi_sign' into 'master'
hwcrypto mpi: Fix losing sign when multiplying by -1 (github PR)

Contribution from github: https://github.com/espressif/esp-idf/pull/1181/

See merge request !1471
2017-11-07 19:30:31 +08:00
158ecdcfd5 pthread: Fix pthread_once to use atomic compare and set
Earlier recursive mutex was being used for this but since
SCOMPARE1 is already being saved/restored during context
switch, atomic compare and set can be used for this.

Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2017-11-07 14:28:43 +05:30
016a49f8e3 component/bt: update toolchain and add compile options to build libbtdm_app.a to support PSRAM 2017-11-07 16:08:47 +08:00
f80824a2d8 test: support test for UT cases expect to reset 2017-11-07 12:19:39 +08:00
1613044aef Merge branch 'bugfix/restart_reconfigure_flash_pins' into 'master'
esp32: reconfigure SPI flash pins in esp_restart

See merge request !1492
2017-11-07 12:08:52 +08:00
a45e9c806d Merge branch 'bugfix/new_task_watchdog_API_false_trigger' into 'master'
feat/New Task Watchdog API

See merge request !1380
2017-11-07 10:43:56 +08:00
777c90789d Merge branch 'feature/FreeRTOS_SMP_unit_tests' into 'master'
feature: Add unit tests for freertos untested functions

See merge request !1308
2017-11-07 10:39:51 +08:00
092e99c05d Wifi: bugfix/fail_to_scan_all_matched_ap
fail to scan all matched ap in fast scan mode
2017-11-06 21:31:45 +08:00
5f6be9b4ce esp32: reconfigure SPI flash pins in esp_restart 2017-11-06 16:44:26 +08:00
637ba2e8bb freertos: Test untested functions
Test cases were added for the following functions
- xTaskNotify(), xTaskNotifyGive(), xTaskNotifyFromISR(), vTaskNotifyGiveFromISR(),
- xTaskNotifyWait(), ulTaskNotifyTake()
- vTaskDelayUntil()

The following function was made smp compatible and tested as well
- eTaskGetState()
2017-11-06 15:31:01 +08:00
7a423392c3 Merge branch 'master' into 'refactor/btdm_spp_client_demo'
# Conflicts:
#   examples/bluetooth/ble_spp_client/main/spp_client_demo.c
2017-11-06 14:38:01 +08:00
3ace8416b5 [examples] Create HTTP2 example with http2.golang.org
Intention is to partition the demo into multiple files, so that the
main program is quite easy to follow.
1. connectlib.c: For any URL parsing and TCP connection related stuff
2. sh2lib.c: Convenience functions for HTTP2+TLS. The goal here is to
   expose a simpler API than nghttp2. If most usecases end up being
   served with this library, it could potentially be moved into a separate
   component
2017-11-06 09:43:03 +05:30
6b420b2452 unit tests: add psram configuration 2017-11-06 11:23:15 +08:00
0ee9d93e58 Merge branch 'bugfix/unit_tests' into 'master'
ci: add one more job for single core unit tests

See merge request !1490
2017-11-06 10:02:48 +08:00
0bc3b3205d ci: add one more job for single core unit tests 2017-11-05 21:50:43 +08:00
f34a56143d Merge branch 'bugfix/upgrade_sphinx_and_breathe' into 'master'
Upgraded Sphinx to latest release 1.6.5 that contains a fix to https://github.co…

See merge request !1476
2017-11-05 21:44:26 +08:00
2c72223a4e Merge branch 'bugfix/protect_spiflash_regions' into 'master'
spi_flash: Abort on writes to dangerous regions (bootloader, partition table, app)

See merge request !1452
2017-11-04 12:40:21 +08:00
670733df9f spi_flash: Abort on writes to dangerous regions (bootloader, partition table, app)
Can be disabled or made into a failure result in kconfig if needed.
2017-11-03 15:52:27 -07:00
abacf8d2a0 Merge branch 'bugfix/rtc_and_restart_fixes' into 'master'
rtc_clk and esp_restart fixes

See merge request !1458
2017-11-04 01:34:38 +08:00
88514f903b Merge branch 'feature/add_psram_wifi_lib' into 'master'
esp32: add wifi lib which is compiled with psram gcc

See merge request !1489
2017-11-04 01:32:18 +08:00
13621852dd esp32: add wifi lib which is compiled with psram gcc
Add psram wifi lib because it doesn't impact the WiFi throughput once the psram is not enabled in IDF menuconfig
2017-11-03 23:02:35 +08:00
20ccec1061 Disable all UART CLKs that are not console 2017-11-03 19:03:00 +08:00
dec4a868d0 examples/ulp: disable pullup on GPIO15 to reduce current
Also increase sampling frequency in ulp_adc example and update READMEs.

Fixes https://github.com/espressif/esp-idf/issues/1108
2017-11-03 18:56:31 +08:00
34f4e46fbb Merge branch 'bugfix/psram_io_settings' into 'master'
Improve psram clock signal generation, increase drive strength, raise LDO voltage

See merge request !1474
2017-11-03 17:34:32 +08:00
d72bef02e9 Added .command_timeout_ms = 0 to SDMMC_HOST_DEFAULT() in components/driver/include/driver/sdmmc_host.h 2017-11-03 17:15:44 +08:00
6e24566186 components/mdns: wrong Message compression detect
Old behavior assumes message compressed when any of 2 most significant bits are set,
But in fact Message compressed only when both those bits are set to 1.

Also maximal label length should be 63 bytes.
2017-11-03 16:52:22 +08:00
5827fd8c71 idf_monitor: Fixed a bug where pressing a key that doesn't encode into
a proper ASCII character, terminated the monitor with an exception
2017-11-03 16:47:30 +08:00
8712fd3ccf Update esp_err.h
Renamed the internal rc to __err_rc to avoid clashes with local variables.
This code would not do the expected thing with the original ESP_ERROR_CHECK macro:

esp_err_t my_func(esp_err_t x)
{
  assert(x == 23);
}

esp_err_t rc = 23; //some value that is important fo the user
ESP_ERROR_CHECK(my_func(rc));

The macro will expand to:
esp_err_t rc = (my_func(rc));

And the code will assert, as my_func will receive a random value - whatever is in the internal macro rc temp variable. This is due to the C weirdness of allowing this code:

int x = x; //x has a random value.
2017-11-03 16:45:28 +08:00
a0cedb1f44 Fix type conversion error in components/lwip/api/pppapi.c
Pointer tcpip_api_call *m  should be converted to pppapi_msg* instead of pppapi_msg_msg*
in pppapi_do_ppp_set_default(), pppapi_do_ppp_free() and so on.

It solve this issue https://github.com/espressif/esp-idf/pull/1028
so there is no need to patch ip4.c because now netif_defauilt is setted correctly.
Also it prevents memory corruption when pppapi_free() is called.
2017-11-03 16:42:56 +08:00
58b411a5fe fix makefile for multiple source files 2017-11-03 16:40:15 +08:00
cea7dfbe90 psram: improve clock signal generation, increase drive strength
Also check the chip type when initializing.
2017-11-03 16:30:10 +08:00
d034bc9ca0 bootloader: add configuration of flash pins and VDDIO boost 2017-11-03 16:29:56 +08:00
a02b30ccda efuse: add package definitions for PICOD2/D4 2017-11-03 15:49:10 +08:00
fb9c106bcb soc/rtc: add function to get/set VDDSDIO configuration
Also consider case of VDDSDIO force powered on in rtc_sleep.
2017-11-03 15:49:09 +08:00
5a294c9acd soc/gpio: fix description of GPIO_STRAP_REG 2017-11-03 15:49:09 +08:00
849ad9b37b tools/unit-test-app: fix build warning 2017-11-03 15:49:09 +08:00
b13cd4adf8 Merge branch 'feature/btdm_add_value_callback_when_send_notification_or_indicate_failed' into 'master'
component/bt: add value callback when send notification or indicate failed

See merge request !1457
2017-11-03 10:05:29 +08:00
9a96187655 Component/bt: modify some log 2017-11-02 19:45:13 +08:00
80eb3b6ddb Merge branch 'bugfix/light_sleep_current' into 'master'
soc/rtc: fix increased current consumption in light sleep

See merge request !1483
2017-11-02 18:26:23 +08:00
3b036495bf Merge branch 'bugfix/fix_some_phy_bugs' into 'master'
fix some phy bugs

See merge request !1481
2017-11-02 18:10:10 +08:00
9d63e1da4a New Task Watchdog API (Revert of Revert)
This commit reverts the revert on the new task watchdog API. It also
fixes the following bug which caused the reversion.

- sdkconfig TASK_WDT_TIMEOUT_S has been reverted from the unit of ms back to the
unit of seconds. Fixes bug where projects using the new API without rebuilding sdkconfig
would cause the old default value of 5 to be interpreted in ms.

This commit also adds the following features to the task watchdog

- Updated idle hook registration to be compatible with dual core hooks

- Updated dual core hooks to support deregistration for cpu

- Legacy mode has been removed and esp_task_wdt_feed() is now replaced by
  esp_task_wdt_reset().  esp_task_wdt_feed() is deprecated

- Idle hooks to reset are now registered/deregistered when the idle tasks are
  added/deleted from the Task Watchdog instead of at Task Watchdog init/deinit

- Updated example
2017-11-02 16:47:51 +08:00
27b52dfd18 fix some phy bugs
1. V366, fix a problem which initialize current can reach 800mA.

    2. V365, fix a problem for pll_cap tracking in Coexist (BT & WIFI)
       mode. The problem will make Coexist (BT & WIFI) WIFI AP mode TX
       Fail in high temperature(>70).

    3. V364, fix a bug of BT and Wifi coexist (hung in function of
       force_wifi_mode())
2017-11-02 15:53:17 +08:00
1de3fc4a2c Merge branch 'bugfix/btdm_master_dont_send_pair_req_#13686' into 'master'
component/bt: Fix the bug of master don't send pair request to the slave when the sec_act set to the value of ESP_BLE_SEC_ENCRYPT.

See merge request !1376
2017-11-02 15:49:27 +08:00
a77912fbdd Merge branch 'bugfix/clean_up_WIFI_CLK_EN_settings' into 'master'
refactor WIFI_CLK_EN settings

See merge request !1463
2017-11-02 15:44:37 +08:00
42cefc173f refractor WiFi clock setting
Do not set WiFi clock in PHY initializing function, move it to WiFi
   start/stop function.
2017-11-02 15:24:21 +08:00
bd6394db92 component/bt: clean up WIFI_CLK_EN_REG settings for Bluetooth
1. move settings of WIFI_CLK_EN_REG for bluetooth into controller init/deinit APIs
2. modify the bit mask used in phy_rf init/deinit to use WIFI-BT shared bits
2017-11-02 15:24:21 +08:00
da178e446d Merge branch 'feature/increase_dynamic_tx_buffer_number' into 'master'
Feature/increase dynamic tx buffer number

See merge request !1473
2017-11-02 15:09:37 +08:00
67c202f52b Merge branch 'feature/docs_small_updates' into 'master'
Small updates of documentation

See merge request !1443
2017-11-02 14:18:09 +08:00
9bfb45aa1d soc/rtc: fix increased current consumption in light sleep
This fixes a configuration issue of RTC, which caused light sleep current
to be 1.35mA instead of 0.85mA.
2017-11-02 13:57:26 +08:00
79f206be47 Merge branch 'test/ci_test_examples' into 'master'
test: test examples with CI

See merge request !1275
2017-11-01 13:59:10 +08:00
79d75950bd Merge branch 'bugfix/btdm_modify_close_disconnect_event_params' into 'master'
component/bt: modify close , connect and  disconnection event params

See merge request !1407
2017-11-01 11:01:36 +08:00
a8deadeba9 Merge branch 'bugfix/btdm_fix_memory_leak_in_blufi' into 'master'
component/bt: fix memory leak in bluefi demo

See merge request !1436
2017-11-01 11:01:14 +08:00
e7020460c6 Component/bt: add value callback when send notification or indicate failed 2017-11-01 11:00:08 +08:00
481e436587 Component/bt: modify close event and disconnection event params
- modify close event params
- modify disconnection event params
- modify connect event params
2017-11-01 10:40:03 +08:00
7cc6b3c5ec Upgraded Sphinx to latest release 1.6.5 that contains a fix to https://github.com/sphinx-doc/sphinx/issues/4041. Upgraded Breathe to latest release 4.7.3 as well. 2017-10-31 22:57:39 +01:00
b65f47c586 [openssl] Add support for SNI (sending the hostname) 2017-10-31 16:57:38 +05:30
3420baa01b [openssl] Add support for defining ALPN protocols 2017-10-31 16:57:38 +05:30
cd1223a25e CI: integrate example test to CI 2017-10-31 19:16:26 +08:00
8ed14791d0 make: add make command print_flash_cmd 2017-10-31 17:42:20 +08:00
4cb52e0a3d test: add test for https_request 2017-10-31 17:42:20 +08:00
47a9a4a614 test: add test fw for example test 2017-10-31 17:42:19 +08:00
de61c096a1 Fix COMPONENT_DEPENDS 2017-10-31 17:29:20 +09:00
50b6912bf8 Increase maximum number of WiFi dynamic transmitting buffer 2017-10-31 15:18:20 +08:00
87d3986b87 Fix the return value of esp_now_send() 2017-10-31 15:18:20 +08:00
19aa3c72e9 Merge branch 'bugfix/wrong_ap_info_in_all_channel_scan' into 'master'
Wifi: bugfix of get wrong ap information in all channel scan

See merge request !1470
2017-10-31 15:15:07 +08:00
939b46596f Merge branch 'bugfix/btdm_unable_use_esp_ble_gatts_get_attr_value_after_long_write' into 'master'
component/bt: Fix the bug cann't use esp_ble_gatts_get_attr_value to get the att…

See merge request !1381
2017-10-31 14:45:17 +08:00
d637952555 Small updates of documentation 2017-10-31 07:36:55 +01:00
07f92f0bd1 Merge branch 'bugfix/btdm_smp_decide_association_model' into 'master'
component/bt: Fix bug of function smp_decide_association_model

See merge request !1377
2017-10-31 14:34:41 +08:00
c4bb378e4c Merge branch 'bugfix/btdm_set_MAX_L2CAP_CHANNELS_error' into 'master'
component/bt: Fix bug of set MAX_L2CAP_CHANNELS error

See merge request !1448
2017-10-31 14:32:53 +08:00
ccfbecd25f Wifi: bugfix of get wrong ap information in all channel scan
fix the issue get wrong ap information in all channel scan
2017-10-31 11:35:11 +08:00
4d5c3de1e0 Merge branch 'bugfix/btdm_app_malloc_invalid_bug' into 'master'
bt/examples: The application layer does not allocate memory correctly causing the btc layer pointer to cross the border.

See merge request !1438
2017-10-31 11:34:37 +08:00
97dffbfc47 Merge branch 'bugfix/btdm_disable_role_switch' into 'master'
component/bt: disable the use of ROLE_SWITCH feature for classic BT as workaround

See merge request !1446
2017-10-31 11:31:15 +08:00
182cd1ce4d Merge branch 'bugfix/btdm_fix_crash_when_set_device_name_null' into 'master'
component/bt: fix crash when set device name NULL

See merge request !1462
2017-10-31 11:17:49 +08:00
5b19cf23fc Merge branch 'feature/reduce_default_wifi_static_buffer_number' into 'master'
esp32: reduce default wifi static tx buffer

See merge request !1465
2017-10-31 11:16:22 +08:00
696dfbcfee Merge branch 'bugfix/fix_tcp_crash' into 'master'
fix tcp crash

See merge request !1444
2017-10-31 06:18:49 +08:00
4048db35b6 Merge branch 'bugfix/unit_test_refactored_timer_api_usage' into 'master'
unit_tests/Update unit test timer divider

See merge request !1468
2017-10-30 21:35:04 +08:00
b908b3cd58 unit_tests/Update unit test timer divider
This commit updates various test cases throughout esp-idf such that
the values used for timer divider pass the assertions in the timer component.
Timer divider values must be between 2 to 65536
2017-10-30 19:42:16 +08:00
0330ec270a feat(spi_master): add new feature allow use variable command and address field length for the same device.
Closes #654
2017-10-30 19:33:41 +08:00
1195ced75c esp32: reduce default wifi static tx buffer
Modify the the default WiFi static tx buffer from 32 to 16
2017-10-28 12:15:40 +08:00
5405255928 Fix losing sign when multiplying by -1 2017-10-28 03:47:00 +03:00
7c9b24b407 Merge branch 'bugfix/fix_uart_vfs_test_error' into 'master'
bugfix(uart): Don't disable console uart peripheral

See merge request !1456
2017-10-27 19:20:13 +08:00
a9b63b796e Merge branch 'bugfix/btdm_cpu_core' into 'master'
component/bt : fix bug of sw interrupt cause to run btdm to different cpu core.

See merge request !1434
2017-10-27 18:36:59 +08:00
102eb96c8b bugfix(uart): Don't disable console UART peripheral 2017-10-27 16:46:10 +08:00
04a8d32cba component/bt: modify spp client demo for discussion
- check the characteristic properties before write
 - check the db count is equal to SPP_IDX_NB or not
 - modify some other code for discussion
2017-10-27 15:35:31 +08:00
15c75974de component/bt: fix crash when set device name NULL 2017-10-27 15:21:00 +08:00
d57901cd54 component/bt: refactor spp client demo
- because the GATTC API was modified, the spp client demo was
   refactored
2017-10-27 13:56:48 +08:00
ffeecde9e2 Merge branch 'feature/docs_update_timer_api' into 'master'
Timer API docs update, refactored example

See merge request !1316
2017-10-27 13:31:18 +08:00
9b7d5d76a7 Timer API docs update, refactored example 2017-10-27 07:13:59 +02:00
62e24370f1 Merge branch 'feature/uart_example_separate_tx_rx_tasks' into 'master'
Added an asynchronous UART example, using separate RX and TX tasks.

See merge request !1403
2017-10-27 13:13:24 +08:00
00bf160f94 Merge branch 'bugfix/pthread_once' into 'master'
[pthread] Perform init_routine execution outside of the mutex

See merge request !1453
2017-10-27 09:21:55 +08:00
3338f1074f Merge branch 'bugfix/set_cppflags' into 'master'
Ensure that C++ and C compilers get the same preprocessor setup (from github)

See merge request !1459
2017-10-26 20:21:49 +08:00
eb5752c635 esp_restart: fix possible race while stalling other CPU, enable WDT early
Previously esp_restart would stall the other CPU before enabling RTC_WDT.
If the other CPU was executing an s32c1i instruction, the lock signal
from CPU to the arbiter would still be held after CPU was stalled. If
the CPU running esp_restart would then try to access the same locked
memory pool, it would be stuck, because lock signal would never be
released.

With this change, esp_restart resets the other CPU before stalling it.
Ideally, we would want to reset the CPU and keep it in reset, but the
hardware doesn't have such feature for PRO_CPU (it is possible to hold
APP_CPU in reset using DPORT register). Given that ROM code will not use
s32c1i in the first few hundred cycles, doing reset and then stall seems
to be safe.

In addition to than, RTC_WDT initialization is moved to the beginning of
the function, to prevent possible lock-up if CPU stalling still has any
issue.
2017-10-26 19:53:53 +08:00
f11ad0c904 soc/rtc: fix spurious warnings about XTAL frequency on startup
1. Make sure that 8MD256 clock used to estimate XTAL frequency is enabled
   before trying to use rtc_clk_cal_ratio.
   This fixes "Bogus XTAL frequency: 0 MHz" warnings after software reset.

2. Don't call rtc_clk_xtal_freq_estimate if XTAL frequency is already
   known. This reduces startup time after deep sleep or software reset.

3. Compare known XTAL frequency and estimated one before printing a
   warning. This fixes "Possibly invalid CONFIG_ESP32_XTAL_FREQ setting
   (40MHz). Detected 40 MHz." warnings.
2017-10-26 19:53:53 +08:00
9317cb3434 soc/rtc: add tests for CPU frequency switching
These tests switch between PLL and XTAL frequencies for 10 seconds.
2017-10-26 19:53:53 +08:00
6d4ed4ff6c soc/rtc: wait for SLOW_CLK cycle when switching CPU clock
Previous implementation waited for 20us after setting
RTC_CNTL_SOC_CLK_SEL_XTL register, using ets_delay_us, assuming that
the CPU was running at XTAL frequency. In reality, clock switch happened
on the next RTC_SLOW_CLK cycle, and CPU could be running at the previous
frequency (for example, 240 MHz) until then.
ets_delay_us would wait for 20 us * 40 cycles per us = 800 CPU cycles
(assuming 40 MHz XTAL; even less with a 26 MHz XTAL).
But if CPU was running at 240 MHz, 800 cycles would pass in just 3.3us,
while SLOW_CLK cycle could happen as much as 1/150kHz = 6.7us after
RTC_CNTL_SOC_CLK_SEL_XTL was set. So the software would not actually wait
long enough for the clock switch to happen, and would disable the PLL
while CPU was still clocked from PLL, leading to a halt.

This implementation uses rtc_clk_wait_for_slow_cycle() function to wait
until the clock switch, removing the need to wait for a fixed number of
CPU cycles.
2017-10-26 19:53:53 +08:00
05a0fbd49b soc/rtc: add a function to wait for slow clock cycle
Some RTC features are synchronized to RTC_SLOW_CLK, so sometimes
software needs to wait for the next slow clock cycle.
This function implements waiting using Timer Group clock calibration
feature.
2017-10-26 19:53:53 +08:00
2a1906cf50 Ensure that C++ and C compilers get the same preprocessor setup
CPPFLAGS is applied for both languages while CFLAGS only for C

Signed-off-by: Andreas Pokorny <andreas.pokorny@siemens.com>
2017-10-26 13:04:41 +02:00
9159e2b807 Merge branch 'bugfix/panic_handler_debugexception' into 'master'
panic handler: Print correct PC & backtrace for debug exceptions

See merge request !1441
2017-10-26 15:49:30 +08:00
f5b3a370cd Merge branch 'feature/adc2_driver' into 'master'
feature(adc2): add support to use ADC2 when WIFI is disabled

See merge request !1237
2017-10-26 15:48:48 +08:00
baf1641c29 Merge branch 'bugfix/uart_set_default_idle_time_to_zero' into 'master'
bugfix(uart): set default tx idle num

See merge request !1419
2017-10-26 15:17:45 +08:00
5c5d5f0acb Merge branch 'bugfix/tcpip_stack_overflow_logging_printf' into 'master'
lwip: Increase minimum TCP/IP task stack size if log level is Debug or Verbose

See merge request !1396
2017-10-26 15:09:22 +08:00
87f2b27dc4 refactor(rtc): re-organize code in rtc_module.c 2017-10-26 14:35:30 +08:00
d30f3e7aa8 example(adc2): add example and test case for adc2.
closes #461
2017-10-26 14:35:30 +08:00
7c0020bfd0 feat(adc2): append adc2 support and api and the lock with WIFI module
append adc support and api
- esp_err_t adc2_config_width(adc_bits_width_t width_bit);
- esp_err_t adc2_config_channel_atten(adc2_channel_t channel, adc_atten_t atten);
- int adc2_get_voltage(adc2_channel_t channel);
2017-10-26 14:35:29 +08:00
07992b08e8 [pthread] Perform init_routine execution outside of the mutex
The mutex is common across all the threads. It needn't be held across
the init_routine() call as long as the 'once' behaviour is guaranteed

Saw a deadlock case, where init_routine of one thread was waiting for
the completion of init_routine in another thread.

t2: wait for command
t1: pthread_once:
         lock once_mux
         init_routine:
               inform thread t2
               wait for signal from t2
t2: received command
         pthread_once
             lock once_mux (already held by t1)
---- Deadlock ----
2017-10-25 13:57:39 +05:30
2765514314 Merge branch 'bugfix/btdm_fix_bonded_public_scan_issue' into 'master'
component/bt: Fix scan problem of bonded device using public address

See merge request !1305
2017-10-25 14:11:56 +08:00
303b9f60db bugfix(uart): set default tx idle num
Reported from:
https://github.com/espressif/esp-idf/issues/703
https://github.com/espressif/esp-idf/issues/917
In uart driver we didn't change the default value of tx idle num, so there would be a delay after tx FIFO is empty.

1. Add API to set tx idle interval before next data transmission. (The UART hardware can add an interval after tx FIFO is empty).
2. Set default tx idle interval to zero.
3. Add hardware disable in uart driver delete function.
2017-10-25 13:29:02 +08:00
3dab0fd340 component/bt: Fix bug of set MAX_L2CAP_CHANNELS error 2017-10-25 12:02:41 +08:00
4e7de126dc component/bt: Fix scan problem of bonded device using public address 2017-10-25 11:52:03 +08:00
85eb5d4374 component/bt : fix bug of sw interrupt cause to run btdm to different cpu core.
1. add sw interrupt cause osi to controller.
2. modify the kconfig to improve the option view.
3. add option of the cpu core which bluedroid run.
4. add option of the cpu core which bluetooth controller run.
2017-10-24 16:13:58 +08:00
837678e4f3 component/bt: disable the use of ROLE_SWITCH feature for classic BT as workaround 2017-10-24 14:44:53 +08:00
a6ac5b33c9 feat(rtc): open adc*(dac)_pad_get_io_num functions to public. 2017-10-24 12:06:14 +08:00
cff8d30c25 refactor(rtc): change register writing from macros to structures in *_struct.h 2017-10-24 12:05:52 +08:00
2c95a77cf9 Merge branch 'bugfix/ioctl_declaration' into 'master'
add missing ioctl declaration

See merge request !1442
2017-10-24 10:02:51 +08:00
18dcbfa1e2 fix tcp crash 2017-10-24 09:44:44 +08:00
552ba35da5 add missing ioctl declaration
Previously ioctl was declared as a macro in lwip/sockets.h.
Disabling LWIP_POSIX_SOCKETS_IO_NAMES removed that declaration.

This adds sys/ioctl.h file and the missing declaration.
Also adds missing includes in vfs.c.
2017-10-23 19:47:33 +08:00
a1495b0e49 Squash the two submissions of previous.
component/bt: The application layer does not allocate memory correctly causing the btc layer pointer to cross the border.

bt/examples: Change the gattc_multi_connect.c incorrect memory apply method.
2017-10-23 05:24:02 -04:00
2c2e7f6303 Merge branch 'bugfix/optmize_ipv6_event' into 'master'
bugfix: add netif info in event message when got ipv6 address

See merge request !959
2017-10-23 17:00:10 +08:00
c61060e673 panic handler: Print correct PC & backtrace for debug exceptions 2017-10-23 15:46:43 +08:00
84a55f9ee4 component/bt: Fix bug of function smp_decide_association_model 2017-10-23 15:34:02 +08:00
a9a423a025 component/bt: Added the sec_act != BTM_BLE_SEC_ENCRYPT check in the btm_ble_set_encryption function when the sec_act is BTM_BLE_SEC_ENCRYPT_NO_MITM or BTM_BLE_SEC_ENCRYPT_MITM. 2017-10-23 15:12:36 +08:00
da32fbce7a component/bt: Fix the bug of can't pair if master send pair req but slave don't send sec req. 2017-10-23 15:12:36 +08:00
9274814268 Merge branch 'feature/esp32_pico_kit_v4_getting_started_guide' into 'master'
ESP32-PICO-KIT V4 Getting Started Guide

See merge request !1418
2017-10-23 14:46:04 +08:00
9ad451dced Component/bt: fix memory leak in bluefi demo 2017-10-23 14:26:11 +08:00
55e95b04bd bugfix: add netif info in event message when got ipv6 address 2017-10-23 13:50:43 +08:00
91d9cb98d3 Merge branch 'bugfix/unit_tests_build' into 'master'
spi_flash: fix build error with profiling enabled

See merge request !1437
2017-10-23 12:14:10 +08:00
454e47385c Merge branch 'bugfix/select_fdset' into 'master'
LWIP: Fix select() FD_SET/FD_GET/etc

See merge request !1435
2017-10-23 10:55:33 +08:00
01befe4d6a Merge branch 'bugfix/i2c_hw_fsm_recover' into 'master'
bugfix(i2c): add I2C hardware reset if the hw FSM get stuck

See merge request !1272
2017-10-23 10:16:02 +08:00
fbd52dcf34 spi_flash: fix build error with profiling enabled 2017-10-22 12:57:56 +08:00
f039aac1e5 Merge branch 'bugfix/i2s_bck_polariy' into 'master'
bugfix(i2s): fix bck polarity issue when using pll clock.

See merge request !1428
2017-10-22 12:36:27 +08:00
000a4f5941 Merge branch 'bugfix/rmt_thresh_check' into 'master'
bugfix(rmt): fix event thresh check issue

See merge request !1423
2017-10-22 12:35:44 +08:00
59b7d98fec Merge branch 'feature/dfs' into 'master'
Dynamic frequency scaling

See merge request !1189
2017-10-22 12:34:11 +08:00
4d882c1fb7 ESP32-PICO-KIT V4 Getting Started Guide 2017-10-20 22:49:59 +02:00
ed1e32f583 bugfix(i2c): add I2C hardware reset if the hw FSM get stuck
Reported from different sources from github or bbs:

https://github.com/espressif/esp-idf/issues/680

https://github.com/espressif/esp-idf/issues/922

We tested reading several sensor or other I2C slave devices, if the power and SDA/SCL wires are in proper condition, everything works find with reading the slave.
If we remove the power supply for the slave during I2C is reading, or directly connect SDA or SCL to ground, this would  cause the I2C FSM get stuck in wrong state, all we can do is the reset the I2C hardware in this case.
After this commit, no matter whether the power supply of I2C slave is removed or SDA / SCL are shorted to ground, the driver can recover from wrong state.

We are not sure whether this the save issue with the reported one yet, but to make the driver more robust.

Further information:

1. For I2C master mode, we have tested different situations, e.g., to short the SDA/SCL directly to GND/VCC, to short the SDA to SCL, to un-plug the slave device, to power off the slave device. Under all of those situations, this version of driver can recover and keep working.
2. Some slave device will die by accident and keep the SDA in low level, in this case, master should send several clock to make the slave release the bus.
3. Slave mode of ESP32 might also get in wrong state that held the SDA low, in this case, master device could send a stop signal to make esp32 slave release the bus.

Modifications:

1. Disable I2C_MASTER_TRAN_COMP interrupt to void extra interrupt.
2. Disable un-used timeout interrupt for slave.
3. Add bus reset if error detected for master mode.
4. Add bus clear if SDA level is low when error detected.
5. Modify the argument type of i2c_set_pin.
6. add API to set timeout value
7. add parameter check for timing APIs
2017-10-21 02:10:59 +08:00
f76a3c45c0 newlib: Disable sys/types.h implementations of FD_SET, etc.
Temporary measure, until we have VFS-level select() support.

Closes https://github.com/espressif/esp-idf/issues/1141
2017-10-20 18:11:32 +08:00
e5ae0f5927 lwip: Make LWIP_SOCKET_OFFSET signed, remove need for underflow check
This reverts commit 541493d877.
2017-10-20 18:04:28 +08:00
22756b6c02 Merge branch 'feature/FreeRTOS_Trace_Facilities' into 'master'
feature/make freertos trace facility configurable

See merge request !1420
2017-10-20 16:42:15 +08:00
b6f37bda97 Merge branch 'feature/i2s_built_in_adc' into 'master'
feature(I2S-ADC): add ADC mode for I2S.

See merge request !1077
2017-10-20 15:52:56 +08:00
a6854b72cd freertos/make trace facility configurable
This commit makes configUSE_TRACE_FACILITY and
configUSE_STATS_FORMATTING_FUNCTIONS configurable in kconfig. Test cases fro the
functions enabled by the two configurations above have also been added.

Test cases for the following functions have been added...

- uxTaskGetSystemState()
- uxTaskGetTaskNumber()
- vTaskSetTaskNumber()

- xEventGroupClearBitsFromISR()
- xEventGroupSetBitsFromISR()
- uxEventGroupGetNumber()

- uxQueueGetQueueNumber()
- vQueueSetQueueNumber()
- ucQueueGetQueueType()

Test cases for the following functions were not required...

- prvListTaskWithinSingleList()
- prvWriteNameToBuffer()
- vTaskList()
2017-10-20 15:17:17 +08:00
477ed8ce62 Merge branch 'bugfix/touchpad_dac_mismatch_on_tp8_tp9' into 'master'
bugfix(touch): add workaround for touch pad DAC hardware source mismatch on tp8 and tp9.

See merge request !1288
2017-10-20 14:18:32 +08:00
dbebece1d2 Merge branch 'feature/unit-test-configs' into 'master'
unit-test-app: add support for testing multiple configurations

See merge request !1249
2017-10-20 14:03:53 +08:00
b30c0d1bbb Merge branch 'feature/add_dns_api' into 'master'
tcpip_adapter/lwip: add dns api

See merge request !1405
2017-10-20 11:54:20 +08:00
c65b530360 Merge branch 'feature/heap_caps_dump' into 'master'
heap: Add heap_caps_dump() / heap_caps_dump_all() functions

See merge request !1422
2017-10-20 11:52:23 +08:00
47aaf402b8 heap: Add heap_caps_dump() / heap_caps_dump_all() functions
Dump the structure of the heap for debugging purposes.
2017-10-20 11:38:24 +08:00
b10e1a92b6 freertos: Update comments in "port" section (portMUX/etc)
Some comments had fallen out of date.
2017-10-20 11:17:44 +08:00
b19fe80baf Merge branch 'bugfix/init_nvs_flash_in_iperf_example' into 'master'
example: init nvs in iperf example

See merge request !1429
2017-10-20 11:03:57 +08:00
ae1ac2ab0e example: init nvs in iperf example
Need to call nvs_flash_init in iperf example
2017-10-20 10:39:56 +08:00
61dcade807 Print out in hex format in case non printable data are received 2017-10-19 22:06:53 +02:00
479ba94ef7 Added an asynchronous UART example, using separate RX and TX tasks.
Signed-off-by: krzychb <krzychb@gazeta.pl>
2017-10-19 21:46:09 +02:00
a84db78eb1 bugfix(i2s): fix bck polarity issue when using pll clock.
reported from github: https://github.com/espressif/esp-idf/issues/1119

Digital team think it is due to the decimal divider.
We can reset the i2s tx and rx when calling i2s_stop to avoid this.
2017-10-19 23:23:01 +08:00
90bbcbcdc0 unit tests: fix warnings, build with -Werror
- libsodium: silence warnings
- unit tests: fix warnings
- spiram: fix warnings
- ringbuf test: enable by default, reduce delays
2017-10-19 21:35:23 +08:00
b52e3fae64 build system: fix warning about undefined variable 'quote' 2017-10-19 21:35:23 +08:00
ae7404972c sleep: don't power down VDD_SDIO in light sleep if SPIRAM is enabled 2017-10-19 21:35:23 +08:00
d55ddfe56d update libstdc++.a built with pSRAM workaround 2017-10-19 21:35:22 +08:00
8990549e89 spi_flash: fix spi_flash_read into buffer in external RAM, add test 2017-10-19 21:35:21 +08:00
099565635b soc: correct values of SOC_BYTE_ACCESSIBLE_LOW, SOC_MEM_INTERNAL_LOW
Internal byte accessible memory starts with Internal ROM 1 at 0x3FF90000.
Region of RTC fast memory starting at 0x3FF80000 is not used in IDF as
it is mapped to PRO CPU only.
2017-10-19 21:35:21 +08:00
ee99bdfbad spi_flash_cache_enabled: report correct result in single core mode 2017-10-19 21:35:21 +08:00
cc67500d3e unit test: adapt tests to single core configuration 2017-10-19 21:35:21 +08:00
1fc2ac8b09 unit-test: esp timer use same name as ets timer
We will use case name to select test cases in UT jobs.
Same case name is not allowed.
2017-10-19 21:35:21 +08:00
0a5b678e58 CI: support test UT with different config by CI 2017-10-19 21:35:20 +08:00
3d150be4e1 unit-test-app: new targets for building different configurations 2017-10-19 21:35:19 +08:00
6cc8099610 Merge branch 'bugfix/malloc_failure' into 'master'
heap: Fix race condition causing malloc() to fail under some conditions

See merge request !1424
2017-10-19 21:30:26 +08:00
c360f8dece Merge branch 'bugfix/heap_check_integrity' into 'master'
heap: Fix spurious heap_caps_check_integrity() errors in Comprehensive mode

See merge request !1421
2017-10-19 21:30:16 +08:00
cf7ae8135b tcpip_adapter/lwip: make dhcp domain name server option configurable
Add api to configure dhcp option: domain name server

1.closes https://github.com/espressif/esp-idf/issues/162

2.closes https://github.com/espressif/esp-idf/issues/705
2017-10-19 19:28:00 +08:00
b0c5665f15 heap: Fix race condition causing malloc() to fail under some conditions
During a call to multi_heap_malloc(), if both these conditions were true:
- That heap only has one block large enough for the allocation
  (this is always the case if the heap is unfragmented).
- Another allocation is simultaneously occurring in the same heap.

... multi_heap_malloc() could incorrectly return NULL.

This caused IDF heap_caps_malloc() and malloc() to also fail, particularly
often if only one or two heaps had space for the allocation (otherwise
heap_caps_malloc() fails over to the next heap).
2017-10-19 16:05:00 +08:00
8e01b4aef8 Merge branch 'docs/esp32_hooks' into 'master'
docs/Added documentation about esp32 hooks

See merge request !1417
2017-10-19 12:32:36 +08:00
ab1abff080 bugfix(rmt): fix event thresh check issue
reported from: https://github.com/espressif/esp-idf/issues/1011

1. Fix event thresh check issue
2. Change IO number in example in case it conflicts with GPIO16(psram cs pin).
2017-10-18 18:49:09 +08:00
54d2dc7681 Merge branch 'bugfix/fix_some_wifi_bugs' into 'master'
esp32: fix some wifi bugs

See merge request !1414
2017-10-18 16:20:09 +08:00
04188d8ec7 heap: Fix spurious heap_caps_check_integrity() errors in Comprehensive mode
Heap was not being locked before poisoning, so heap_caps_check_integrity()
would sometimes race with checking the poison bytes and print unnecessary
errors.

Details: https://esp32.com/viewtopic.php?f=2&t=3348&p=15732#p15732
2017-10-18 15:57:52 +08:00
461f8da704 docs/Added documentation about esp32 hooks
This commit adds documentation about the esp32 Idle and Tick Hooks
2017-10-18 15:19:35 +08:00
78f70d4e79 Merge branch 'bugfix/cxx_exceptions' into 'master'
Full C++ Exception Support option (& reclaim memory when exceptions disabled)

See merge request !1353
2017-10-18 15:08:10 +08:00
80b14fc77f esp32: fix some wifi bugs
1. Fix WiFi timer enable twice issue
2. Fix a softAP compatibility issue
3. Fix ebuf alloc counter issue
4. remove nvs_flash_init() in esp_wifi_init()
5. Fix scan only find few APs after set bssid
6. Fix can not connect to hidden SoftAP
7. Remove group key entry before connecting ot AP
2017-10-18 14:53:19 +08:00
f6ef536fe9 examples/power_save: enable modem sleep and DFS by default 2017-10-18 14:37:23 +08:00
062be56c3c docs: add power management API reference 2017-10-18 14:37:23 +08:00
d503b991b4 bt: lock APB frequency while BT controller is enabled 2017-10-18 14:37:22 +08:00
373d85dd9f freertos: fix error when including xtensa-timer.h from other components 2017-10-18 14:37:22 +08:00
266d2b3e4f ethernet: lock APB frequency while ethernet is enabled 2017-10-18 14:37:22 +08:00
5048d38ce7 spi slave: lock APB frequency while driver is in use 2017-10-18 14:37:21 +08:00
e4616588b7 spi master: lock APB frequency while in transaction 2017-10-18 14:19:21 +08:00
330b6bd668 sdmmc: lock APB frequency while in transaction 2017-10-18 14:19:20 +08:00
c2fff997ea sysview: always use TG as timestamp source 2017-10-18 14:19:20 +08:00
fba9678c56 uart: add support for REF_TICK 2017-10-18 14:19:20 +08:00
bfeecd2b56 freertos: deprecate XT_CLOCK_FREQ
- freertos: add deprecated definition for XT_CLOCK_FREQ
- flash_ops: don't use XT_CLOCK_FREQ
- unity: don't use XT_CLOCK_FREQ
- hw_random: don't use XT_CLOCK_FREQ
- core_dump: don't use XT_CLOCK_FREQ
- app_trace: don't use XT_CLOCK_FREQ
- xtensa_init: init xt_tick_divisor
2017-10-18 14:19:19 +08:00
df3c857a30 esp32: add power management hooks for WiFi library 2017-10-18 14:19:19 +08:00
eb0c34e5c9 esp_timer: add support for frequency scaling 2017-10-18 14:19:18 +08:00
3f818f4862 pm: support for tracing using GPIOs 2017-10-18 14:19:18 +08:00
535695f0b9 freertos: add frequency switching hooks to ISR and idle task 2017-10-18 14:19:17 +08:00
42d51a4224 esp32: initialize PM at startup, add Kconfig options 2017-10-18 14:19:17 +08:00
68e1751b78 pm: initial implementation for ESP32 2017-10-18 14:19:16 +08:00
47e3c9dd4b pm: initial version of power management APIs 2017-10-18 14:19:16 +08:00
4798b7d775 unit tests: add test to dump esp_timer stats 2017-10-18 14:19:15 +08:00
3788b35f87 unit tests: more robust esp_timer test 2017-10-18 14:19:15 +08:00
2b3325b1ab unit tests: fix ref_clock value obtained due to overflow 2017-10-18 14:19:15 +08:00
b03e08dc4e soc/rtc: add function to convert CPU frequency in MHz to rtc_cpu_freq_t 2017-10-18 14:19:15 +08:00
a242ae6d0b soc/rtc: add fast paths for switching between PLL and XTAL 2017-10-18 14:19:14 +08:00
37e9bc715c esp_clk.h: make public, add getters for RTC time, CPU/APB freq 2017-10-18 14:19:14 +08:00
f13623d97d make esp_timer.h public 2017-10-18 12:31:38 +08:00
566f018996 crosscore_int: add support for FREQ_SWITCH event 2017-10-18 12:31:38 +08:00
2e8441df9e Merge branch 'feature/fsync' into 'master'
vfs,fat: add fsync to VFS interface, implement it for fatfs

See merge request !1412
2017-10-18 07:17:56 +08:00
07c44d7f01 fatfs: expose some configuration values in Kconfig
- _FS_TINY: disables per-file caches
- _FS_TIMEOUT: locking timeout for concurrent access
- _FS_LOCK: prevents operations which are not allowed on open files

Also sets _MAX_SS based on sector size configured for wear_levelling.
This reduces memory usage of FATFS if wear_levelling is using 512 byte
sectors.
2017-10-17 18:43:46 +08:00
d0df8f2811 Merge branch 'feature/update_phy362_rtc230' into 'master'
component/esp32 : update phy & rtc

See merge request !1411
2017-10-17 18:20:25 +08:00
09862b5918 component/esp32 : update phy & rtc
RTC V230
add BT AGC saturation protection, replace RTC V229.

PHY V362
Power up print: "phy_version: 362.0, 61e8d92, Sep 8 2017, 18:48:13"
1. esp_init_data_v3.bin
modify TX target power
modify WIFI & BT RX gain table
2. modify phy_close_rf()
3. add phy_set_most_tpw()
4. 26M crystal work OK
5. noise_check_loop ok
2017-10-17 18:02:42 +08:00
6b8c8bf638 Merge branch 'bugfix/slave_dma_claim' into 'master'
fix(spi_slave): enable DMA clock when initialization.

See merge request !1385
2017-10-17 17:41:39 +08:00
7babc74fce Merge branch 'feature/reduce_min_num_of_wifi_static_tx_buffer' into 'master'
Reduce minimum number of WiFi static tx buffer

See merge request !1398
2017-10-17 17:40:14 +08:00
3f4c8f7174 pthreads local storage: add test for unique keys 2017-10-17 15:29:25 +08:00
69e92ee320 unit tests: If heap tracing is enabled in sdkconfig, leak trace each test 2017-10-17 15:29:25 +08:00
9c7477ef34 cxx: Add KConfig option for C++ exceptions, disable by default
Fixes https://github.com/espressif/esp-idf/issues/1072

(Additional 20KB is still used if C++ exception support is enabled in
menuconfig.)
2017-10-17 15:29:25 +08:00
502c3d0243 vfs,fat: add fsync to VFS interface, implement it for fatfs 2017-10-17 15:14:53 +08:00
6f07e0797d Unit tests: If a test fails due to corrupting memory, don't print a misleading source file name 2017-10-17 14:46:08 +08:00
d20fbffae1 idf_monitor: Demangle C++ names 2017-10-17 14:46:08 +08:00
a231ba22f3 cxx: Add a sanity check for C++ exception support 2017-10-17 14:46:08 +08:00
86c89ff169 pthread: Add support for pthread thread local storage
Refactors LWIP to use this for the LWIP thread local semaphore
2017-10-17 14:46:08 +08:00
3234064b6a freertos: Idle task shouldn't hold xTaskQueueMutex while calling TLS destructors
If the callbacks use any blocking call (ie printf), this can otherwise trigger a deadlock.
2017-10-17 14:31:58 +08:00
2ccc2ec5ee cxx tests: Fix race condition w/ leak checker when tearing down test tasks 2017-10-17 14:31:58 +08:00
90bf40587e Merge branch 'feature/sockets_files_shared_fd_space' into 'master'
lwip & vfs: POSIX I/O functions operate on sockets and files (first stage, no select() yet)

See merge request !1352
2017-10-17 14:17:09 +08:00
6e7dd5962b Merge branch 'bugfix/add_mutex_for_dual_core_hooks' into 'master'
freertos/Add mutex for dual core hooks

See merge request !1406
2017-10-17 14:15:09 +08:00
08d6ca4f70 Merge branch 'bugfix/ets_timer_iram' into 'master'
wifi/bt coexistence: Fix disabled cache access race when writing to flash

See merge request !1409
2017-10-17 14:12:43 +08:00
8128bb95ef fix(spi_slave): enable DMA clock when initialization.
merging in the code updates to the SPI master code done in commit b834fcf78a.

TW#15670, Closes #1027
2017-10-17 12:20:40 +08:00
88f602a0e0 fix(periph_ctrl): fix reset function in periph_ctrl.c 2017-10-17 12:20:40 +08:00
8e31a36562 feat(spi_slave): append trans_len field in trans_desc to show length actually transferred. 2017-10-17 12:01:12 +08:00
d3bb9de36a Merge branch 'feature/spiram_init_in_app' into 'master'
spiram: expose function to initialize SPI RAM cache

See merge request !1281
2017-10-17 04:56:35 +08:00
b58e19f8a2 Merge branch 'bugfix/soc_component_rodata' into 'master'
soc: place constant data from rtc_clk.c into DRAM

See merge request !1321
2017-10-17 04:54:43 +08:00
edb212986f Merge branch 'bugfix/sd_card_fixes' into 'master'
SD card fixes

See merge request !1393
2017-10-17 04:45:24 +08:00
2bba4a77c4 Merge branch 'bugfix/console_empty_command' into 'master'
console: handle empty input to esp_console_run correctly

See merge request !1390
2017-10-17 04:44:19 +08:00
468d90762a Merge branch 'bugfix/freertos_portmux_debug' into 'master'
freertos: fix compilation errors with portMUX debugging enabled

See merge request !1392
2017-10-17 04:44:04 +08:00
a638871aa5 Merge branch 'bugfix/nvs_init_partition' into 'master'
nvs: fix nvs_flash_init_partition initializing default partition

See merge request !1391
2017-10-17 04:43:54 +08:00
094cf4d79d wifi/bt coexistence: Fix disabled cache access race when writing to flash
Moves the ets_timer_arm() / ets_timer_disarm() code paths to RAM

Overhead is 740 bytes of IRAM, 0 bytes DRAM

(For comparison: If all of esp_timer.c is moved to RAM, overhead is 1068 bytes IRAM and 480 bytes DRAM.)
2017-10-16 19:47:33 +08:00
99f2996779 Merge branch 'bugfix/tw15595_eth_got_ip_log_error' into 'master'
esp32/tcpipadapter: correct eth ip got event info

See merge request !1388
2017-10-16 17:30:14 +08:00
50c993a1b2 Merge branch 'feature/some_refactor_for_esp_ping' into 'master'
lwip: refactor to socket ping

See merge request !875
2017-10-16 17:30:00 +08:00
4b1968f315 component/bt: Change the queue_data->p_attr->p_value->attr_val.attr_len += queue_data->len code to the if case. 2017-10-16 03:42:49 -04:00
14fe6e9bbb merge from master 2017-10-16 14:19:29 +07:00
7584f89278 esp32/Add mutex for dual core hooks
This commit adds critical sections for the dual core hooks
2017-10-16 11:47:38 +08:00
539262b5c2 vfs: Remove fd_offset member
This was intended for integrating LWIP, but a different approach was used.
2017-10-16 09:45:50 +08:00
4a9d4587b7 vfs: Add C++ guards to esp_vfs_dev.h
Closes https://github.com/espressif/esp-idf/issues/1069
2017-10-16 09:45:50 +08:00
541493d877 lwip: Check for underflow in FD_SET()/FD_GET()
select() only works with LWIP sockets which have a high LWIP_SOCKET_OFFSET,
so chance of accidental underflow is high.
2017-10-16 09:45:50 +08:00
3f83914f7a lwip: Fix bug with LWIP_SOCKET_OFFSET & IGMP group support 2017-10-16 09:45:50 +08:00
48d9d507aa newlib: Remove fcntl() implementation from libc
Allows fcntl() implementation in vfs to be used.

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

Note this is different to the other libc file-related syscalls, as there is no
reent structure involved.
2017-10-16 09:45:50 +08:00
3ebf7923d3 lwip: Route LWIP socket POSIX I/O functions via IDF VFS layer
No more conflicts between LWIP & newlib read(), write(), fcntl(), etc.

select() still only works if all of the fds are sockets.

Closes https://github.com/espressif/esp-idf/issues/273
2017-10-16 09:45:49 +08:00
a320fed3b5 vfs: Add ioctl() to filesystem set 2017-10-16 09:45:49 +08:00
0c50b65a34 lwip: Increase minimum TCP/IP task stack size if log level is Debug or Verbose
... unless nano formatting is enabled.

Fixes stack overflow in tcpip_adapter at the default level, as reported on forum:
https://esp32.com/viewtopic.php?f=2&t=3250&p=15538#p15447
2017-10-16 09:43:23 +08:00
b013f5d490 Merge branch 'bugfix/freertos_resume_scheduler_pending_tasks' into 'master'
freertos: Fix bug with xTaskResumeAll() not resuming all tasks

See merge request !1330
2017-10-16 09:43:04 +08:00
1da3204a7c spiram: expose function to initialize SPI RAM cache
Some frameworks based on ESP-IDF need to be able to decide whether to
initialize SPI RAM after the application has started. This change splits
out part of esp_spiram_init which manipulate cache MMU into a separate
function. Applications can disable cache, call esp_spiram_init_cache,
re-enable cache, and then call esp_spiram_init.
Disabling and re-enabling the cache can be achieved using functions
provided in esp_spi_flash.h.
2017-10-16 09:15:11 +08:00
3a271a4ae7 Merge branch 'bugfix/freertos_dual_core_hooks' into 'master'
bugfix/freertos_dual_core_hooks

See merge request !1399
2017-10-14 09:41:03 +08:00
a1d23051b4 Merge branch 'bugfix/tw15538_ipv6_socket_close_error' into 'master'
lwip: init lwip error code

See merge request !1379
2017-10-13 19:15:44 +08:00
95d63137d1 bugfix/freertos_dual_core_hooks
This commit fixes bugs with the dual core changes to freeRTOS tick and idle hooks.
Interrupt watchdog now registers tick hooks to both cores.
API for cross core tick and idle hook registration were also added
2017-10-13 18:27:53 +08:00
c730f676c3 Reduce minimum number of WiFi static tx buffer
Calibrate tx power after sending five packets
2017-10-13 17:11:31 +08:00
713dee57f0 Merge branch 'feature/add_const_for_wifi_api' into 'master'
esp32: add const for some WiFi api

See merge request !1394
2017-10-13 17:08:29 +08:00
3bcaa592ee lwip: refactor to socket ping
Do some refactor to socket ping:
1. Add ping_deinit to kill ping thread
2. Apply configuration set by esp_ping_set_target to socket ping
3. Limit only one ping thread
2017-10-13 16:37:09 +08:00
a0ad3ff008 Merge branch 'bugfix/btdm_fix_set_attr_value_crash_when_length_is_0' into 'master'
component/bt: fix crash when the length of attr value set zero

See merge request !1397
2017-10-13 16:00:15 +08:00
e2d077cea1 lwip: init lwip error code
Init the error code to ERR_OK when call tcpip_apimsg
2017-10-13 15:59:04 +08:00
90be957af1 Merge branch 'bugfix/btdm_fix_register_app_id_failed_when_more_than_3' into 'master'
component/bt: fix register more than three app_ids failed

See merge request !1389
2017-10-13 15:57:00 +08:00
e04a0d66b8 esp32/tcpipadapter: correct eth ip got event info
1. Raise SYSTEM_EVENT_ETH_GOT_IP when eth got ip
2. Add default handler for SYSTEM_EVENT_ETH_GOT_IP
3. Minor change about ethernet kconfig
2017-10-13 15:56:51 +08:00
6ff5c32ae5 Merge branch 'feature/alloc_memories_of_wifi_and_lwip_in_spiram_first' into 'master'
Allocate some memories in SPIRAM first.

See merge request !1367
2017-10-13 15:47:27 +08:00
aa7a1e5e2d Merge branch 'bugfix/btdm_controller_deinit' into 'master'
component/bt : allow init after de-init

See merge request !1371
2017-10-13 15:44:58 +08:00
0e586a4cdf esp32: add const for some WiFi api
Add const if the pointer parameter is const
2017-10-13 15:10:34 +08:00
520b3340f6 Component/bt: fix crash when set attr value 0 2017-10-13 15:06:08 +08:00
5df39cd4b6 Allocate some memories in SPIRAM first.
Try to allocate some WiFi and LWIP memories in SPIRAM first. If
    failed, try to allocate in internal RAM then.
2017-10-13 10:11:24 +08:00
0a52dbccca Merge branch 'bugfix/spi_reset_race' into 'master'
periph_ctrl: Refactor to add periph_module_reset(), avoid potential race in SPI DMA workaround

See merge request !1349
2017-10-13 08:51:36 +08:00
5d8bd1aa9e Merge branch 'bugfix/libsodium_mbedtls_sha' into 'master'
libsodium: Fix mbedTLS SHA256 & SHA512 implementation, make optional

See merge request !1329
2017-10-13 08:50:24 +08:00
63fdf998b8 Merge branch 'feature/windows_build_check_msys2' into 'master'
build system: Detect wrong Windows MSYSTEM version and warn

See merge request !1356
2017-10-13 08:50:09 +08:00
bad585b6b3 Merge branch 'bugfix/freertos_halt_on_startup' into 'master'
freertos: Remove "stop program on scheduler start when JTAG/OCD is detected" option

See merge request !1354
2017-10-13 08:40:39 +08:00
715d081341 freertos: fix compilation errors with portMUX debugging enabled
Fixes https://github.com/espressif/esp-idf/issues/1057

Ref TW15702.
2017-10-13 08:33:57 +08:00
a5f96b22d1 examples/sdmmc: enable internal pull-ups in SD mode
Some development boards do not have sufficient external pull-ups on
SD card pins. Most notably, if high level on GPIO13 is not registered
by the card when GO_IDLE_STATE command is received, the card will enter
SPI mode and further communication will not be possible, until power to
the card is toggled.

This change enables internal pull-ups on SD card pins in an attempt to
make this initialization process more reliable.
2017-10-13 08:21:06 +08:00
3cf23ff77d sdmmc: allow command timeouts to be configured
Previously the timeout was set to the same value (1000ms) for all kinds
of commands. In some cases, such as with slow cards, write commands
failed to complete in time.
This change makes command timeouts configurable via sdmmc_host_t
structure, and also makes default timeouts different for ordinary
commands and write commands.

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

Ref TW15774.
2017-10-13 08:16:07 +08:00
ca7485cc9a freertos: Remove "stop program on scheduler start when JTAG/OCD is detected" option
No longer used with new dual core target & JTAG instructions.
2017-10-13 10:54:02 +11:00
ab13db0e45 nvs: fix nvs_flash_init_partition initializing default partition
Fixes https://github.com/espressif/esp-idf/issues/1052.

Ref TW15698.
2017-10-13 07:19:16 +08:00
4d42b5ea24 console: handle empty input to esp_console_run correctly
Fixes https://github.com/espressif/esp-idf/issues/1067

Ref. TW15752
2017-10-13 07:14:53 +08:00
49ad8bf6c3 Component/bt: fix register more than 3 app_id failed 2017-10-12 21:07:40 +08:00
8e47c355fa Merge branch 'feature/i2s_apll' into 'master'
driver/i2s: add support apll clock

See merge request !1115
2017-10-12 19:06:50 +08:00
244e947beb Merge branch 'bugfix/btdm_fix_add_whitelist_failed' into 'master'
Component/bt: fix add whitelist failed

See merge request !1326
2017-10-12 19:01:01 +08:00
dbee895741 Merge branch 'bugfix/phy_init_remove_descriptions' into 'master'
phy init: remove descriptions of PHY init parameters

See merge request !1363
2017-10-12 19:00:10 +08:00
f8caa403db Merge branch 'bugfix/btdm_remove_bond_device_not_return_error' into 'master'
component/bt: Fixed the bug when remove the bonded device with not exist address…

See merge request !1370
2017-10-12 18:59:09 +08:00
73462c052e Merge branch 'bugfix/btdm_fix_set_scan_params_not_work' into 'master'
component/bt: fix scan params not work when start scan

See merge request !1307
2017-10-12 18:57:36 +08:00
e0922c9564 Merge branch 'bugfix/i2s_set_pin_valid_gpio' into 'master'
change to GPIO_IS_VALID_OUTPUT_GPIO for data out pin

See merge request !764
2017-10-12 18:21:25 +08:00
da247c2cf8 Merge branch 'bugfix/ledc_duty_type_change' into 'master'
ledc_get_duty return type changed from int to uint32_t, target_duty changed from int to uint32_t

See merge request !752
2017-10-12 18:18:33 +08:00
b78cb018a2 Merge branch 'feature/btdm_ibeacon' into 'master'
component/bt: add ibeacon demo

See merge request !1028
2017-10-12 18:11:49 +08:00
276034354e Merge branch 'feature/btdm_eddystone' into 'master'
component/bt: Add eddystone demo

See merge request !1076
2017-10-12 17:56:05 +08:00
52be20343b Merge branch 'bugfix/tw15438_mem_leak_on_wifi_start_stop_loop' into 'master'
Release DHCP structure memory when netif is down.

See merge request !1386
2017-10-12 17:51:58 +08:00
a4e4322f6c Merge branch 'bugfix/btdm_set_sec_properity_error' into 'master'
component/bt: Fix bug of set sec properity error

See merge request !1336
2017-10-12 17:45:32 +08:00
3f1198529f Merge branch 'bugfix/fail_to_connect_in_wps' into 'master'
WiFi :bug fix of fail to connect in wps

See merge request !1384
2017-10-12 17:39:29 +08:00
ad1350f0ac Release DHCP structure memory when netif is down. 2017-10-12 17:03:44 +08:00
3a4bd7f16c Merge branch 'bugfix/wifi_tx_buffer_doc' into 'master'
wifi docs: Clarify WIFI_DYNAMIC_TX_BUFFER_NUM config item limit

See merge request !1375
2017-10-12 13:20:28 +08:00
6bf280efd0 Merge branch 'feature/esp32_pico_kit_getting_started_guide' into 'master'
ESP32-PICO-KIT Getting Started Guide

See merge request !1348
2017-10-12 13:19:07 +08:00
f3681e22de wifi docs: Clarify WIFI_DYNAMIC_TX_BUFFER_NUM config item limit
Setting WIFI_DYNAMIC_TX_BUFFER_NUM to zero is not possible.

Also edit some of the related config docs a little.
2017-10-12 15:53:53 +11:00
a99c89f6af bug fix of fail to connect in wps 2017-10-12 12:01:11 +08:00
7617a3c434 component/bt: Fix the bug cann't use esp_ble_gatts_get_attr_value to get the attribute value after long write. 2017-10-11 07:47:12 -04:00
d34c59558e Merge branch 'bugfix/fail_to_reconnect_after_reboot' into 'master'
Wifi: bugfix of fail to reconnect after reboot

See merge request !1378
2017-10-11 18:44:18 +08:00
a05867f673 Wifi: bugfix of fail to reconnect after reboot
fix the issue fail to reconnect after reboot
2017-10-11 17:58:36 +08:00
3ed90a559d Merge branch 'bugfix/btdm_fix_multi_connection_failed' into 'master'
component/bt: modify some comments

See merge request !1332
2017-10-11 17:00:34 +08:00
cd3d9715bb Component/bt: fix add whitelist failed
- fix add whitelist failed
- add add whitelist callback func
2017-10-11 15:30:09 +08:00
f7daaa9ebe ESP32-PICO-KIT Getting Started Guide 2017-10-11 08:02:23 +02:00
353e81da63 freertos: Also test (& handle) the case where scheduler is disabled on other CPU...
ie CPU A has scheduler disabled and task blocked on Q. CPU B sends to Q (or gives mutex, etc.) Task on CPU A should be woken on scheduler resume.
2017-10-11 10:48:20 +11:00
3e62c2e052 freertos: When scheduler is disabled, tasks on other core should immediately resume
... if triggered by a SemaphoreGive/etc.

Previously they would resume after scheduler was resumed, on next
RTOS tick of other CPU.
2017-10-11 10:48:20 +11:00
f2f9170abc freertos: Fix bug with xTaskResumeAll() not resuming all tasks
Previously if multiple tasks had been added to xPendingReadyList for the CPU, only the first one was resumed.

Includes a test case for resuming multiple (pending) tasks on xTaskResumeAll().

Document the limitation that while scheduler is suspended on one CPU, it can't wake tasks on either CPU.
2017-10-11 10:48:20 +11:00
fc359e4491 component/bt: Change the _btc_storage_remove_ble_bonding_keys function ret default vaule from 1 to 0. 2017-10-10 04:19:11 -04:00
25e8c09b6d component/bt: Change the param.remove_bond_dev_cmpl.status value. 2017-10-10 04:02:05 -04:00
b54ef13fae component/bt : allow init after de-init 2017-10-10 15:35:17 +08:00
e02ff1ed89 component/bt: Change the bta_gattc_pop_command_to_send function to static. 2017-10-10 03:12:00 -04:00
30b40a2175 Merge branch 'bugfix/ff_ioctl_types' into 'master'
fatfs: use correct return types in ioctl calls

See merge request !1362
2017-10-10 15:01:47 +08:00
dda136eab7 Merge branch 'bugfix/heap_debugging_cleanup' into 'master'
Heap debugging docs cleanup & convenience functions

See merge request !1347
2017-10-10 14:59:54 +08:00
8e08097151 component/bt: Fixed the bug when remove the bonded device with not exist address will not return error. 2017-10-10 02:29:54 -04:00
a8131b14b0 Merge branch 'feature/docs_update_uart_api' into 'master'
Updated functional overview of UART API documentation

See merge request !1328
2017-10-10 14:06:08 +08:00
1835c3a213 Merge branch 'feature/docs_update_pcnt_api' into 'master'
Extended description of the Pulse Counter API and removed redundant comments from the example

See merge request !1312
2017-10-10 14:06:03 +08:00
bbbfa64a66 Merge branch 'feature/docs_update_ledc_api' into 'master'
Updated example and description of LED PWM Controller API

See merge request !1276
2017-10-10 14:05:57 +08:00
904d6c8f2b Merge branch 'feature/scan_optimize' into 'master'
wifi: scan optimize

See merge request !1334
2017-10-10 13:39:16 +08:00
f0d7cfdafe heap: Add new heap_caps_check_integrity_all() & heap_caps_check_integrity_addr() debugging functions
Easier to either check all heaps, or focus on checking a particular region.
2017-10-10 16:19:30 +11:00
325bd3a4dc doc: Rewrite heap debugging docs to add function/struct links & improve actionability 2017-10-10 16:19:29 +11:00
10c1dfe91d Merge branch 'bugfix/minor_fixes_github' into 'master'
More minor fixes from github

See merge request !1360
2017-10-10 13:14:18 +08:00
bb8ba76604 Merge branch 'bugfix/multi_heap_get_info_typo' into 'master'
Fix multi_heap_get_info alias (from github)

See merge request !1357
2017-10-10 13:14:09 +08:00
d515494d1b wifi: optimize scan feature
1. add the threshold of match AP in fast scan
2. add blacklist feature
3. make sure would wrong if password didn't set
4. add scan example
2017-10-10 12:27:02 +08:00
3106ca1c1e Merge branch 'bugfix/btdm_ea_overloaded' into 'master'
component/bt: increase programming delay for event arbiter to allow for heavy workload

See merge request !1338
2017-10-10 12:26:25 +08:00
19d983974f Merge branch 'feature/freertos_dual_core_hooks_github' into 'master'
freertos: Make the tick/idle hooks dual core compatible (from github)

See merge request !1361
2017-10-10 12:06:05 +08:00
104204ce56 fatfs: use correct return types in ioctl calls
GET_SECTOR_SIZE should return WORD (unsigned short) but returned
uint32_t.

Reference: http://elm-chan.org/fsw/ff/doc/dioctl.html

Closes https://github.com/espressif/esp-idf/pull/1031.
2017-10-10 12:02:32 +08:00
139b0c8396 Merge branch 'bugfix/fatfs_timezone' into 'master'
fatfs: use localtime_r instead of gmtime to get timezone

See merge request !1358
2017-10-10 12:00:24 +08:00
9107b47deb Updated UART API documentation and examples. Included a fix of #1091 from GitHub 2017-10-10 05:54:36 +02:00
fdc24eb118 phy init: remove descriptions of PHY init parameters 2017-10-09 14:40:08 +08:00
ec85f9fc3f heap: Fix documentation references to multi_get_heap_info() 2017-10-09 14:42:31 +11:00
d63acf6339 linux docs: (Arch) Add key to keyring
for me it was necessary to add the key manually to the key ring. Otherwise I could not have installed the packages

Merges https://github.com/espressif/esp-idf/pull/1029

(Amended to remove reference to exact key, references AUR links instead.)
2017-10-09 14:22:56 +11:00
880821fe9e Fix typo in ble_adv example
Merges https://github.com/espressif/esp-idf/pull/1049
2017-10-09 14:22:56 +11:00
d98934d56b doc: Fix mentions of Cygwin-style paths to Unix-style
Cygwin-style is really only /cygpath/xxx and IDF doesn't support these.

Closes https://github.com/espressif/esp-idf/pull/1033
2017-10-09 14:22:53 +11:00
1c046f30a6 freertos: Make the tick/idle hooks dual core compatible
The way these hooks are implemented at the moment, once you register a tick or idle task hook, it is run by both cores, leading to intermittent crashes that are difficult to explain (and debug). One solution is to register the hook with the core that is currently running, which is what this patch attempts to do.

Merges https://github.com/espressif/esp-idf/pull/781
2017-10-09 13:04:20 +11:00
110c71d3f1 Merge branch 'feature/ipv6_socket_options' into 'master'
IPV6 multicast socket options

See merge request !964
2017-10-09 09:03:30 +08:00
9d39881981 i2s: add support apll clock
using apll_param to setup APLL

new apll calculation method, much faster

validate freq calculation

Ensure that the i2s frequency is greater than the hardware limit

Add description of how to calculate apll clock, support apll for other 16-bits audio, check rev0 chip

correct space
2017-10-06 15:36:24 +07:00
d60722c33d Updated example and descritpion of LED PWM Controller API 2017-10-06 08:34:27 +02:00
de750e9921 Merge branch 'bugfix/pthread_join_hangup' into 'master'
Bugfix/pthread join hangup

See merge request !1346
2017-10-06 13:14:51 +08:00
fc86c71574 build system: Detect wrong Windows MSYSTEM version and warn 2017-10-06 15:57:40 +11:00
acff3c9c59 libsodium: Fix mbedTLS SHA256 & SHA512 implementation, make optional
* Only direct invocation of cypto_hash_sha256 & crypto_hash_sha512 produced correct output.
* Some remaining header file mixups, so changed approach to wrapping the state structures.
* Fixes https://github.com/espressif/esp-idf/issues/1044 (crypto_sign problems)
* Add option to disable mbedTLS implementation for SHA256 & SHA512 in libsodium
2017-10-06 11:51:55 +11:00
08b756b673 Merge branch 'bugfix/revert_wdt_changes' into 'master'
Revert "esp32: New Task Watchdog API"

See merge request !1345
2017-10-05 00:00:32 +08:00
0dd9b899b7 periph_ctrl: Refactor to add periph_module_reset(), avoid potential race in SPI DMA workaround
Also refactor use of direct clock access in unit test ref_clock (probably not a real issue)
2017-10-02 17:48:16 +11:00
530bca1813 freertos: Remove obsolete "Enable heap memory debug" option
All heap debugging is now under the Heap component.
2017-10-02 13:43:54 +11:00
3fdb1944d3 lwip: Disable IPV4 Link-Local addressing by default
Keeps existing IDF behaviour the same. Can still be enabled via menuconfig.
2017-10-02 10:50:27 +11:00
2cc8c91ad8 lwip: Remove undocumented CONFIG_MDNS macro flag
All options that were enabled via CONFIG_MDNS are now in menuconfig, with
the default values set the same as with CONFIG_MDNS enabled (meaning existing
projects that were using CONFIG_MDNS do not need to change).
2017-10-02 10:50:27 +11:00
61d2069e1c example: Add UDP multicast example 2017-10-02 10:50:27 +11:00
04a2cefb26 lwip: Enable IPV6_ONLY option for UDP sockets (BSD & netconn)
* setsockopt(s, IPV6_ONLY, &one, sizeof(int)) will disable IPV6-only
  mode. Incoming/outgoing IPV4 packets are dropped.

* Otherwise, sockets bound to IPV6_ANY_ADDR can receive unicast packets
  for IPV4 or IPV6.

* sendto() a IPV6-mapped-IPV4 address on a UDP socket works correctly
  (not supported for RAW or TCP sockets.)

* getaddrinfo() option AI_V4MAPPED is implemented.

As well as extending support to TCP & RAW, there is some potential improvement
to dropping incoming packets - the drop happens a bit late in the process and
there is no "ICMP port unreachable" response sent.
2017-10-02 10:50:27 +11:00
961180617e lwip: Add IPV6 multicast group membership socket options
As described in RFC2133: IPV6_MULTICAST_IF, IPV6_MULTICAST_HOPS,
IPV6_MULTICAST_LOOP, IPV6_MULTICAST_LOOP, IPV6_DROP_MEMBERSHIP.
2017-10-02 10:50:27 +11:00
5795ccc806 freertos: Fixes deadlock in pthread_once for init_routines calling pthread_once 2017-10-01 19:52:48 +03:00
54a529f596 freertos: Fixes hangup upon pthread_join on finished thread 2017-10-01 19:52:48 +03:00
Luc
6e0f054884 use localtime_r instead of gmtime to get timezone
on fatfs
2017-09-30 21:44:35 +08:00
2797966c47 component/bt: increase programming delay for event arbiter to allow for heavy workload 2017-09-30 18:12:45 +08:00
b6a2bd1184 Revert "esp32: New Task Watchdog API"
This reverts commit 616baa239d.
2017-09-30 18:07:19 +08:00
c75da555af Component/bt: fix set scan params and start scan action 2017-09-30 17:01:57 +08:00
4720196015 Component/bt: fix multi-connection failed
- modify some comments
2017-09-30 16:30:43 +08:00
1a07a13727 component/bt: Change the 0x04 to Macro BTA_LE_AUTH_REQ_MITM. 2017-09-30 04:05:21 -04:00
a3731902f5 Merge branch 'bugfix/btdm_hci_mode_periph_clk' into 'master'
fix example of controller_hci_uart peripheral clk init

See merge request !1295
2017-09-30 15:57:10 +08:00
91c259b105 Merge branch 'bugfix/btdm_change_pll_track_interrupt' into 'master'
component/bt : change pll track interrupt bits

See merge request !1310
2017-09-30 15:53:58 +08:00
c2a4713958 Merge branch 'bugfix/btdm_btc_ble_set_rand_addr' into 'master'
component/bt: Fix bug of function btc_ble_set_rand_addr

See merge request !1297
2017-09-30 15:49:53 +08:00
b420c62602 Merge branch 'bugfix/btdm_mem_leak_of_gattc_open_and_close' into 'master'
component/bt: Fix bug of memory leak of gatt open and close

See merge request !1325
2017-09-30 15:48:57 +08:00
a8dab7680a Merge branch 'bugfix/btdm_gattc_mutiple_read_bug' into 'master'
component/bt: Fixed the bug of mutiple read can not callback.

See merge request !1286
2017-09-30 15:45:56 +08:00
816fe6cf1f Merge branch 'bugfix/btdm_gattc_get_db_prop_bug' into 'master'
component/bt: Fiexd the bug of the gattc cannot get the db properties.

See merge request !1284
2017-09-30 15:42:45 +08:00
f619386967 Merge branch 'bugfix/btdm_fail_to_find_handle_#15534' into 'master'
component/bt: Fix the bug of total attr didn't reset when init the gattc cache.

See merge request !1331
2017-09-30 15:42:07 +08:00
3d3bcd6275 component/bt: Added the gattc command queue support. 2017-09-30 13:59:14 +08:00
fb93a59619 component/bt: added the queue to store the gattc commands. 2017-09-30 13:59:14 +08:00
1b969874b0 Merge branch 'bugfix/explicit_task_wdt_feed' into 'master'
Bugfix/New Task Watchdog API

See merge request !1187
2017-09-30 10:42:15 +08:00
616baa239d esp32: New Task Watchdog API
Legacy API of task watchdog used the same function esp_task_wdt_feed() to add
and feed a task. This caused issues of implicitly adding a task to the wdt list
if the function was used in shared code.

The new API introduces init, adding, feeding, deleting, deinit functions. Tasks
must now be explicitly added to the task watchdog using their handles. Deletion
must also be explicit using task handles. This resolves the issue of implicit
task additions to the task watchdog due to shared code calling
esp_task_wdt_feed().

Task watchdog is now fully configurable at runtime by calling the init and
deinit functions.

Also added functions to get the handles of idle tasks of the other core. This
helps when adding idle tasks to the watchdog at run time.

Configuring the task watchdog using menu config is still available, however
menu config will only result in calling the init and add functions for idle
tasks shortly after the scheduler starts.

Menu config also allows for using legacy behavior, however the legacy behavior
willcall the new API functions but with slight variations to make them legacy
compatible.

Documentation and example have also been updated

gcov_rtio.c headers updated to prevent error of freertos header files being
included in the wrong order.

Resolves issue TW#13265
2017-09-29 23:10:55 +08:00
ae9041ab71 esp32: Fix task watchdog timer triggering issues TW#14794
The two task watchdog timer bugs are as follows...
1) If only a single task existed on the wdt task list, and esp_task_wdt_feed()
was only called once, the watchdog triggers but fails to print task name
2) If a single task already exists on the task wdt list, and another task calls
esp_task_wdt_feed() once, the watchdog fails to trigger

Problem stemmed from the loop responsible for resetting the watchdog timer
having incorrect loop parameters. The loop failed to traverse the full length
of the task wdt list
2017-09-29 22:12:58 +08:00
b78da3b715 component/bt: Fix bug of set sec properity error 2017-09-29 18:46:28 +08:00
b59708ca87 component/bt: Fix bug of function btc_ble_set_rand_addr 2017-09-29 11:46:08 +08:00
e6afe28baf Merge branch 'test/unity_print' into 'master'
test: update the format of TEST_ASSERT macro series in ``unity.c``

See merge request !1327
2017-09-29 11:20:04 +08:00
ca7da78bc7 Merge branch 'feature/malloc_psram' into 'master'
Add logic to make external RAM usable with malloc()

See merge request !1278
2017-09-28 18:19:09 +08:00
740f8a79f0 Add logic to make external RAM usable with malloc() 2017-09-28 17:17:50 +08:00
27e1db508d component/bt: Fix bug of function btc_ble_set_rand_addr 2017-09-28 14:41:31 +08:00
68958a2485 component/bt: Fix bug of memory leak of gatt open and close 2017-09-28 14:34:57 +08:00
f7a2cc37b3 component/bt: Fix the bug of total attr didn't reset when init the gattc cache. 2017-09-28 02:09:02 -04:00
c65f12bb45 Merge branch 'feature/add_espnow_example' into 'master'
Feature/add espnow example

See merge request !1263
2017-09-28 07:43:29 +08:00
7370f2913d test: update the format of TEST_ASSERT macro series in `unity.c` 2017-09-27 19:56:46 +08:00
58a5d883f4 Merge branch 'test/spi_master_internal_connect' into 'master'
test(spi_master): add test case for 3 DMA issues with internal connection by gpio mux.

See merge request !1217
2017-09-27 17:00:31 +08:00
a3a4a20518 Merge branch 'bugfix/bt_sdp_server_continuation' into 'master'
bluedroid: Add continuation offset check to SDP server

See merge request !1323
2017-09-27 11:13:54 +08:00
fcd0f52e21 test(spi_master): add test case for 3 DMA issues with internal connection by gpio mux.
3 issues are:
1. RX buffer not aligned (start and end)
2. not setting rx_buffer
3. setting rx_length != length

also add spi release code here.
2017-09-27 10:44:28 +08:00
c9241b4310 bluedroid: Add continuation offset check to SDP server
Fix for CVE-2017-0785
https://android.googlesource.com/platform/system/bt/+/818cf6f%5E%21/#F0
2017-09-27 09:49:04 +10:00
e69691427c Extended description of the Pulse Counter API and removed redundant comments from the example 2017-09-26 22:44:46 +02:00
882f164e7c Fix multi_heap_get_info alias 2017-09-26 15:00:47 +01:00
73e8afc5b9 soc: place constant data from rtc_clk.c into DRAM
In release mode, switches in rtc_clk_bbpll_set would be converted to
jump tables. These tables would be placed into .rodata, which caused
rtc_clk_cpu_freq_set to be unusable while cache is disabled. This
manifested itself in crashes when exiting from light sleep:

https://esp32.com/posting.php?mode=reply&f=13&t=3089#pr14590
2017-09-26 17:08:49 +08:00
7d436c9a44 Merge branch 'bugfix/timestamp' into 'master'
fix(global, log): correct the CCOUNT register when switching CPU clock during boot 2nd and before scheduler.

See merge request !1296
2017-09-26 16:15:42 +08:00
b7a79ab67e Merge branch 'bugfix/bind_dhcp_server_udp_to_ip_of_ap' into 'master'
Fix the bug that if one device is in station+softap mode, other device can not get IP address after connecting to the softap.

See merge request !1314
2017-09-26 16:06:55 +08:00
545421be47 Merge branch 'feature/support_wifi_country_api' into 'master'
esp32: support wifi country code

See merge request !1300
2017-09-26 16:05:49 +08:00
bbab9ecf23 Merge branch 'feature/docs_update_sigmadelta_api' into 'master'
Updated sigma delta API documenation and example

See merge request !1319
2017-09-26 16:05:18 +08:00
9d9e771933 fix(global, log): fix esp_log(_early)_timestamp readings after startup by correct the CCOUNT register when switching CPU clock.
TW#13332, Closes #700
2017-09-26 15:18:17 +08:00
762f8da078 esp32: support wifi country code
1. Add completed support for WiFi country code
2. Modify esp_wifi_set_country API
2017-09-26 13:36:53 +08:00
01aad8f386 Merge branch 'feature/docs_updating_idf' into 'master'
Added a section how to update existing local esp-idf repository and load specifi…

See merge request !1273
2017-09-26 10:34:38 +08:00
fd02668d8b Merge branch 'feature/record_more_info_of_scanned_ap' into 'master'
Record more information of scanned AP

See merge request !1289
2017-09-26 10:13:48 +08:00
6875fd2339 Merge branch 'feature/tw15502_add_iperf_example' into 'master'
example: add iperf example

See merge request !1313
2017-09-26 09:38:34 +08:00
05b0d567e5 example: add iperf example
Support iperf
2017-09-26 09:19:01 +08:00
b5e4c76bfe Updated sigma delta API documenation and example 2017-09-25 21:31:09 +02:00
e1177ca9cb component/bt : change pll track interrupt bits 2017-09-25 18:35:46 +08:00
2908e8a33a Merge branch 'bugfix/scan_fail' into 'master'
component/bt : fix bug of scan fail after a long time

See merge request !1301
2017-09-25 18:28:09 +08:00
0d0c9e7172 fix example of controller_hci_uart peripheral clk init 2017-09-25 11:46:03 +08:00
1773770f44 Merge branch 'feature/multi_heap_assert' into 'master'
multi_heap: Print the problem address when aborting due to heap corruption

See merge request !1277
2017-09-25 09:51:14 +08:00
20064978ba Fix the bug that if one device is in station+softap mode, other device can not
get IP address after connecting to the softap.

    Now the default netif is station in station+softap mode. The UDP pcb of
DHCP server is binded to IP 0.0.0.0. When other device connects to softap, the
DHCP offer will be sent by softap.But because the destination IP of DHCP offer
is broadcast IP and the source IP of it is 0.0.0.0, it will be sent from default
netif, that is station interface. Other device can not receive the DHCP offer
sent from station interface. As a result, other device can not get IP address.
The resolution is that bind UDP pcb to the IP address of softap. So, the source
IP of DHCP offer is that of softap. DHCP offer can be sent from softap interface
by source IP route method.
2017-09-23 20:18:50 +08:00
845c3fba35 Merge branch 'test/update_ble_known_issues' into 'master'
test: udpate new BLE known issues

See merge request !1306
2017-09-22 22:34:18 +08:00
750f47c28b Merge branch 'bugfix/gpio26_rtc_hold' into 'master'
driver/rtc: fix copy-paste error in HOLD_FORCE field name for GPIO26

See merge request !1299
2017-09-22 22:34:04 +08:00
7bfbc5bf7c Merge branch 'bugfix/light_sleep' into 'master'
Light sleep fix

See merge request !1303
2017-09-22 16:37:59 +08:00
3a1d34a7be Add an example to show how to use ESPNOW 2017-09-22 15:52:45 +08:00
98dfb8c0b9 Record more information of scanned AP 2017-09-22 15:43:33 +08:00
d50aca62c3 Merge branch 'bugfix/dport_in_single_core' into 'master'
esp32: exclude DPORT-related code in single core mode

See merge request !1304
2017-09-22 14:48:05 +08:00
c4e65d6a95 Merge branch 'bugfix/build_kconfig_deps' into 'master'
build: make clean should remove all .d files in tools/kconfig

See merge request !1302
2017-09-22 12:42:37 +08:00
976135c3a8 Merge branch 'bugfix/build_system_regen_component_vars' into 'master'
build system: Fix bug requiring "make clean" after IDF updates or menuconfig changes

See merge request !1293
2017-09-22 12:42:00 +08:00
6b61c6d39f esp32: exclude DPORT-related code in single core mode 2017-09-22 12:07:05 +08:00
3f761e1a83 light sleep: make sure code to be placed into IRAM is not inlined 2017-09-22 11:41:30 +08:00
363a20abec test: udpate new BLE known issues:
1. some cases caused by GATTC can't get correct attribute handle
2. some cases with increased fail ratio
2017-09-22 09:49:18 +08:00
a361a00405 build: make clean should remove all .d files in tools/kconfig
Causes a problem that can't be fixed by "make clean" if the
host OS headers have moved around.

ie https://esp32.com/viewtopic.php?f=13&t=3098&p=14487
2017-09-22 10:27:32 +10:00
022d949ccf Merge branch 'doc/windows_env_updates' into 'master'
doc: Add steps to update Windows environment installations

See merge request !1298
2017-09-22 06:39:26 +08:00
602b90b892 component/bt : fix bug of scan fail after a long time 2017-09-21 17:40:30 +08:00
0a6fdc3a96 Merge branch 'bugfix/btdm_enable_limit' into 'master'
BT controller: add function to release unused memory to the heap

See merge request !1248
2017-09-21 17:33:09 +08:00
c54a9ff40a Merge branch 'docs/FreeRTOS_SMP_Changes' into 'master'
docs: Added documentation for FreeRTOS SMP changes

See merge request !1238
2017-09-21 17:10:33 +08:00
6ab552a6ea docs: Added documentation for FreeRTOS SMP changes
Added documentation about the ESP-IDF changes to FreeRTOS.
The documentation covers changes to the following FreeRTOS aspects.

    - Task Creation
    - Affects on scheduling (Task skipping, scheduler suspension, tick synchronicity)
    - Critical sections and disabling interrupts
    - Thread Local Storage Pointers and deletion callbacks
    - Configuring ESP-IDF FreeRTOS
2017-09-21 16:40:57 +08:00
c2664fbf43 Merge branch 'feature/scan_optimize' into 'master'
WiFi: optimize scan feature

See merge request !1267
2017-09-21 16:31:47 +08:00
ab531c0b48 doc: Add steps to update Windows environment installations 2017-09-21 16:57:06 +10:00
3e2ee24e4f component/bt : support bluetooth controller DRAM release dynamically
1. remove CONFIG_BT_DRAM_RELEASE from Kconfig
2. add API to release bluetooth controller DRAM to heap
2017-09-21 14:31:20 +08:00
ee25caf4b2 WiFi: optimize scan feature
1. Add all channel scan feature
2. Add sort matched SSID by authmode feature
2017-09-21 14:28:49 +08:00
8c4c5ae034 Merge branch 'bugfix/apptrace_down_buf_init' into 'master'
esp32: Fixes double initialization of apptrace down ring buffer in dual core mode

See merge request !1274
2017-09-21 12:37:40 +08:00
64d1f947ed driver/rtc: fix copy-paste error in HOLD_FORCE field name for GPIO26
This error prevented EXT1 wakeup using GPIO26 from working.
2017-09-21 12:26:03 +08:00
b5aad2fa3d Merge branch 'bugfix/spiffs_debug' into 'master'
Fix typo in spiffs config

See merge request !1287
2017-09-21 07:24:43 +08:00
728b46c578 Merge branch 'bugfix/minor_fixes_github' into 'master'
Minor fixes from github

See merge request !1292
2017-09-21 07:21:32 +08:00
5c4f918c43 Merge branch 'bugfix/eclipse_cpp_headers' into 'master'
Fix CDT GCC parser to correctly parse C++ commands (github)

See merge request !1291
2017-09-21 07:20:49 +08:00
14b12a27cf Fix typo in spiffs config and update submodule
Fixes github issues #1012 and #1013

https://github.com/espressif/esp-idf/issues/1012
https://github.com/espressif/esp-idf/issues/1013
2017-09-20 17:29:57 +08:00
f325ba3942 component/bt: Change the cmpl_evt command in the bta_gattc_read_cmpl function. 2017-09-20 04:28:52 -04:00
53d12a6212 build system tests: Don't unix2dos .git files, build directories 2017-09-20 18:21:29 +10:00
85ce07e6fd build system: Fix bad partial builds after updates, sdkconfig changes
Fixes accidental regression merging 9903ea1c11.

Add test case for this kind of rebuilding.
2017-09-20 18:11:15 +10:00
7e428433e1 Merge branch 'bugfix/lwip_tcp_oversize_assert' into 'master'
fix lwip tcp_oversize_dbgcheck assert

See merge request !1260
2017-09-20 10:16:47 +08:00
45ad0cdda2 Improved uart_flush() documentation.
Improved `uart_flush()` documentation based on this discussion: https://esp32.com/viewtopic.php?f=13&t=2804&p=13377&hilit=uart_flush#p13373

Merges https://github.com/espressif/esp-idf/pull/970
2017-09-20 12:09:44 +10:00
76db44e8ce openssl_client, openssl_server example: Fix misspelling of PRIORITY in OPENSSL_EXAMPLE_TASK_PRIORITY
Merges https://github.com/espressif/esp-idf/pull/929
2017-09-20 12:09:01 +10:00
e822b37883 Fix CDT GCC parser to correctly parse C++ commands
Previously suggested parser command pattern:

xtensa-esp32-elf-(g?cc)|([gc]\+\+)|(clang)

was incorrect for compilation of c++ files, as it is expanded by Eclipse into or between:

xtensa-esp32-elf-(g?cc)
([gc]\+\+)
(clang)

Additional grouping around existing pattern solves that issue, and helps Eclipse to correctly find ESP-IDF includes.

Merges https://github.com/espressif/esp-idf/pull/1005
2017-09-20 12:06:23 +10:00
5a98cbfc0c Merge branch 'bugfix/spi_temp_buffer_32bit_alignment' into 'master'
fix(spi master, sdspi): fix the heap corruption bug that RX DMA writes over the temporary buffer boundary.

See merge request !1285
2017-09-19 22:25:35 +08:00
b54719d00f component/bt : fix bluetooth controller enable limit && release memory when de-initialize bluetooth controller
1. fix bluetooth controller enable limit
2. release memory when de-initialize bluetooth controller
3. fix heap_caps_add_region limit
2017-09-19 21:14:28 +08:00
449f9e10a3 bugfix(touch): add workaround for touch pad DAC hardware source mismatch on tp8 and tp9. 2017-09-19 20:10:39 +08:00
1b91cb7be0 fix(sdspi): fix issues causing the sdspi driver to work low efficiently with DMA. 2017-09-19 19:00:47 +08:00
e815660824 component/bt: Fixed the bug of mutiple read can not callback. 2017-09-19 04:50:26 -04:00
074f36afff fix(spi_master): fix the heap corruption bug that RX DMA writes over the temporary buffer boundary.
TW#15434

Closes #994.
2017-09-19 16:47:14 +08:00
e32c8be6bf Merge branch 'bugfix/nvs_init_deinit' into 'master'
nvs: fix bug that NVS is not initialized after init failure, add deinit functions

See merge request !1282
2017-09-19 12:17:39 +08:00
7827bc486d component/bt: Fiexd the bug of the gattc cannot get the db properties. 2017-09-18 23:15:32 -04:00
9325f2a7a4 nvs_flash: emulator: fix issues in load function, add save function 2017-09-19 10:39:44 +08:00
01c0c4b661 unit-test-app: initialize partition table info before starting the test 2017-09-19 10:39:44 +08:00
fe30789149 nvs_flash: delete Storage if init fails
Previously, nvs_flash_init_custom would not be called if Storage for a
particular partition was already created. This caused issues if the
first call to nvs_flash_init failed due to Storage init error. This issue
exhibited itself as random failures of NVS CI test.

With this change, storage object is deleted (and not added to storage
list) if initialization fails.
2017-09-19 10:39:44 +08:00
f32b25ebe2 nvs_flash: add functions to deinitialize storage 2017-09-19 10:39:44 +08:00
d55a7cdfee Merge branch 'bugfix/minor_nvs_remove_unused_header' into 'master'
nvs: minor - removed unused header inclusion

See merge request !1279
2017-09-19 08:29:58 +08:00
3924594aed Merge branch 'feature/toolchain-update' into 'master'
make,docs: update toolchain

See merge request !1269
2017-09-18 19:32:39 +08:00
c8945bb82a nvs: minor - removed unused header inclusion
Signed-off-by: Amey Inamdar <amey.inamdar@gmail.com>
2017-09-18 17:02:32 +05:30
e9655c5d90 Merge branch 'feature/btdm_cherry_pick_ble_new_api' into 'master'
Feature/btdm cherry pick ble new api

See merge request !1113
2017-09-18 18:17:11 +08:00
388bf8d579 componnent/bt: remove the <<<<<<< HEAD in the code. 2017-09-18 05:44:50 -04:00
8925a90d40 squash again
squash the commit.
component/bt:Added the update_white_list & set_prefer_conn_params API to the bt project.

component/bt: Added the get white list size API & delete the read adv tx power API.

component/bt: Change the esp_gap_ble_api.h esp_ble_gap_set_prefer_conn_params API docs.

changed btm_find_dev to btm_find_or_alloc_dev

component/bt: Change the rssi API deep copy method.

component/bt: Change the code as comment in the gitlab.

squash the commit.
component/bt:Added the update_white_list & set_prefer_conn_params API to the bt project.

component/bt: Added the get white list size API & delete the read adv tx power API.

component/bt: Change the esp_gap_ble_api.h esp_ble_gap_set_prefer_conn_params API docs.

changed btm_find_dev to btm_find_or_alloc_dev

component/bt: Change the rssi API deep copy method.

component/bt: Change the code as comment in the gitlab.

component/bt: change the ESP_BLE_CONN_PARAM_UNDEF redefinition error.

component/bt: Change the ESP_BLE_IS_VALID_PARAM function with the compile error.
2017-09-18 05:39:26 -04:00
0db01b4a4d windows: Update windows prereq script & precompiled environment download 2017-09-18 18:26:57 +10:00
3154168eb4 Merge branch 'feature/log_buffer' into 'master'
feat(log): add new function to log buffer with level.

See merge request !1150
2017-09-18 15:02:34 +08:00
959462ffb6 multi_heap_poisoning: Use MULTI_HEAP_STDERR_PRINTF (ets_printf) to print heap errors
Needed because normal printf() can trigger a malloc() (for standard stream locks) which
then re-triggers this check.
2017-09-18 16:54:28 +10:00
76d8190444 multi_heap: Print the problem address when aborting due to heap corruption
New multi_heap code has proven effective at aborting when buffer overruns occur,
but it's currently hard to debug the stack traces from these failures.
2017-09-18 16:54:23 +10:00
8244fa95fe feat(log): add new function to log buffer with level and hex dump. 2017-09-18 11:44:54 +08:00
7551e1d310 make,docs: update toolchain to 1.22.0-72-g4d49225 2017-09-18 10:32:44 +08:00
9a1ba5985b Merge branch 'feature/partition_table_expand_line' into 'master'
partition_table: Expand vars before splitting fields (github #841)

See merge request !1174
2017-09-18 09:18:25 +08:00
fe3b557fa8 esp32: Fixes double initialization of apptrace down ring buffer in dual core mode
Additional minor fixes:
 - Host file I/O code warnings
 - Initialization of down buffer for GCOV
2017-09-15 22:45:21 +03:00
6fa62ca604 Added a section how to update existing local esp-idf repository and load specific release. Inspired by issues #990 and #997 2017-09-15 19:54:36 +02:00
3d7ec475d1 Merge branch 'feature/btdm_cherry_pick_change_gattc_api' into 'master'
component/bt: Change all the gattc API && bta gattc layer.

See merge request !1147
2017-09-15 19:39:29 +08:00
5980edaef8 Merge branch 'refactor/btdm_modify_spp_client_for_ci' into 'master'
component/bt:modify for gattc new api ci

See merge request !1271
2017-09-15 19:37:24 +08:00
18f2a29a99 Merge branch 'bugfix/btdm_smp_close_compile_error' into 'master'
component/bt: fix the bug when close the SMP module in the menuconfig will lead to compile error.

See merge request !1265
2017-09-15 19:36:30 +08:00
3fbc4ff353 component/bt:modify for gattc new api ci 2017-09-15 17:53:36 +08:00
4d62f8e5d0 Merge branch 'bugfix/apptrace_init_sequence' into 'master'
Changed initialization sequence of application tracing component on APP CPU so i…

See merge request !1256
2017-09-15 15:02:42 +08:00
aacffd1727 Merge branch 'bugfix/btdm_blufi_malloc' into 'master'
component/bt : fix a malloc bzero of blufi

See merge request !1264
2017-09-15 12:06:56 +08:00
dff95aed65 component/bt : fix a malloc bzero of blufi 2017-09-15 11:08:42 +08:00
3760d8e175 example : eddystone demo
- Separate Eddystone codes into the following 4 files:
    esp_eddystone_protocol.h
    esp_eddystone_api.h
    esp_eddystone_api.c
    edp_eddystone_demo.c
- Just store eddystone information into eddystone result
2017-09-15 11:06:46 +08:00
875ba996d5 component/bt: fix the bug when close the SMP module in the menuconfig will lead to compile error. 2017-09-15 10:32:28 +08:00
336c4b4a55 fix lwip tcp_oversize_dbgcheck assert 2017-09-15 10:28:51 +08:00
b09f4acb27 Added proper handling of apptrace and pthread initialization errors 2017-09-14 20:47:43 +02:00
a1ebeed303 Changed initialization sequence of application tracing component on APP CPU so it follows completion of initialization of the same component on PRO CPU. Previously, because of missing locking mechanism, both components were printing logs to UART at the same time. As results logs contained only corrupted characters / were not legible at all. Internal tracking: esp-idf/openocd-esp32, Issue 15 2017-09-14 20:47:43 +02:00
5e50c9d884 Merge branch 'bugfix/btdm_modify_mtu_in_spp_client_demo' into 'master'
component/bt: modify mtu api in spp client demo

See merge request !1266
2017-09-14 22:24:52 +08:00
09a3e4fd58 squesh the commit.
component/bt: Change the idf test KnownIssues file.

component/bt: Fixed the bug of gattc mutilple read.
2017-09-14 09:35:36 -04:00
31cb284967 Component/bt: modify mtu api in spp client demo 2017-09-14 21:11:10 +08:00
4c97fc04ca Merge branch 'bugfix/optimize_lwip_loopback_route' into 'master'
optimize lwip route when loopback open and in "APSTA" mode

See merge request !1252
2017-09-14 21:07:58 +08:00
5aa52709c2 Merge branch 'bugfix/fix_some_wifi_lib_bugs' into 'master'
Fix some wifi lib bugs

See merge request !1255
2017-09-14 20:39:02 +08:00
c74d944edf Merge branch 'feature/refractor_smartconfig' into 'master'
Refractor smartconfig

See merge request !1253
2017-09-14 20:38:30 +08:00
0460069582 Merge branch 'bugfix/panic_dport_no_mutex' into 'master'
Panic: stop dport access handler without trying to use a lock

See merge request !1244
2017-09-14 18:07:06 +08:00
fff90da8d6 Merge branch 'bugfix/btdm_gatt_read_by_type_bug' into 'master'
component/bt: Fix gatt read by type response bug

See merge request !1102
2017-09-14 17:24:02 +08:00
169361b38b Merge branch 'feature/btdm_ble_spp_server_demo' into 'master'
component/bt: add example for ble spp server

See merge request !1042
2017-09-14 17:15:17 +08:00
f90eb1c371 Merge branch 'feature/btdm_ble_spp_client_demo' into 'master'
component/bt: add example for ble spp client

See merge request !1043
2017-09-14 17:15:01 +08:00
164006509f optimize lwip route when loopback open and in "APSTA" mode 2017-09-14 16:19:05 +08:00
6bfbe6e4ed Fix some wifi lib bugs
1. add adc2 coexistence

2. change NOW() to WDEV_NOW()

3. call ets_timer_done() before calling ets_timer_setfn()

4. fix the bug that api lock is not unlocked when call esp_wifi_stop()
   twice

5. more hmac tx buffer limit from 32 to 64.
2017-09-14 15:19:46 +08:00
2a0e6c40d0 Merge branch 'feature/ext_ram_allocatable_using_heap_alloc_cap' into 'master'
Make external RAM allocatable using heap_alloc_cap

See merge request !1226
2017-09-14 14:28:12 +08:00
ad0d30302b Merge branch 'bugfix/ci_sphinx_warnings' into 'master'
ci: Add new check_doc_warnings.sh script, pre-process log lines

See merge request !1258
2017-09-14 13:46:18 +08:00
379320bdb2 change to GPIO_IS_VALID_OUTPUT_GPIO for data out pin 2017-09-14 13:33:39 +08:00
2fceec4d85 feature(I2S-ADC): add ADC mode for I2S.
1. Support built-in ADC for I2S.
2. Modify code of ADC, made no change to the original APIs.
3. Add APIs in I2S:
esp_err_t i2s_set_adc_mode(adc_unit_t adc_unit, adc1_channel_t adc_channel);
4. Add I2S ADC/DAC example code.
5. add old-fashion definition to make it more compatible
6. replase spi_flash_ APIs with esp_partition_ APIs
7. add example of generating audio table from wav
8. change example sound
2017-09-14 13:24:08 +08:00
4b8aa9e20d ci: Add new check_doc_warnings.sh script, pre-process log lines
* Fixes issue in !1250 when IDF_PATH changes on build runner
* Allows checking document warnings before CI run
* Will be robust to line number changes in document files
2017-09-14 13:46:35 +10:00
b2adaf2a4c Merge branch 'feature/docs_adc_api_reference' into 'master'
More details added to  description of ADC API

See merge request !1240
2017-09-14 10:49:12 +08:00
6d95934a3c Make 80MHz PSRAM work as well, add testcase for weirdness reported on esp32 forums, clean up unused define in psram code 2017-09-14 10:47:44 +08:00
875ae6a134 Add option to allocate external RAM using heap_alloc_caps 2017-09-14 10:47:44 +08:00
538e9d83fc Merge branch 'bugfix/docs_formatting' into 'master'
Resolved docs formatting issues that sneak into documentation on master with MR 1061

See merge request !1257
2017-09-14 10:42:57 +08:00
53fde7842e Resolved docs formatting issues that sneak into documentation with MR 1061 2017-09-13 21:00:48 +02:00
574daad1c4 Merge branch 'feature/btdm_update_to_bluedroid7.1_l2cap' into 'master'
component/bt: Added the new feature of the l2cap layer from the bluedroid new version 7.1.1

See merge request !1087
2017-09-13 20:39:38 +08:00
33a4a6a510 Merge branch 'feature/add_espnow' into 'master'
add ESPNOW feature

See merge request !1061
2017-09-13 20:32:53 +08:00
b70329040d Merge branch 'bugfix/btdm_gatts_notify_stress_test_crash' into 'master'
component/bt: fix bug for gatts notify stress test crash

See merge request !1245
2017-09-13 20:27:17 +08:00
dfaf166436 Merge branch 'feature/toolchain-update' into 'master'
Toolchain update

See merge request !1204
2017-09-13 18:05:09 +08:00
a91b330b49 Merge branch 'bugfix/spiffs_submodule' into 'master'
spiffs: Track spiffs submodule in component

See merge request !1251
2017-09-13 18:02:32 +08:00
82fb2768aa build system: trim crosstool-ng commit ID when checking version
Since 2.11.0, git does not default to 7 characters for short commit IDs,
instead automatically estimating the number of characters based on
repository size [1]. If the toolchain was compiled on a computer with
new version of git installed, commit ID will contain 8 characters, and
the check for the toolchain version will fail. As a workaround, trim the
commit ID to 7 characters when checking the version.

[1] e6c587c733
2017-09-13 17:27:47 +08:00
61e3a5bd16 windows: Update toolchain & MSYS package download links 2017-09-13 17:27:47 +08:00
e250dbb433 windows: Add workaround for "git submodule" stray output bug
TW10271
2017-09-13 17:27:47 +08:00
5586b4b799 Update toolchain download links 2017-09-13 17:27:47 +08:00
100889f124 build system: update the expected toolchain version 2017-09-13 17:27:47 +08:00
0205e5f2fc build system: enable C++ exceptions support by default 2017-09-13 17:27:47 +08:00
6753f6cb59 Refractor smartconfig
Move code of receiving smartconfig packets and getting password to
    wifi lib. Open source code of sending smartconfig ACK to cellphone
    in IDF.
2017-09-13 16:55:30 +08:00
b687e1a41f spiffs: Track spiffs submodule in component
Will now automatically initialise as part of "make".
2017-09-13 14:54:33 +10:00
f1e3b0df02 Merge branch 'feature/adv_scan_simultaneously' into 'master'
component/bt : support adv & scan simultaneously

See merge request !1209
2017-09-13 11:50:57 +08:00
ea7a09c3e4 Merge branch 'bugfix/btdm_sec_config' into 'master'
component/bt : fix btc security storage bug

See merge request !1161
2017-09-13 11:46:34 +08:00
8921a36828 Component/bt: fix bug for gatts notify stress test crash 2017-09-13 11:19:58 +08:00
ac7e608d92 Merge branch 'bugfix/psram_newlib_fns_in_iram' into 'master'
Psram workaround: in newlib, put functions that can be called with flash disabled in RAM.

See merge request !1243
2017-09-13 10:49:57 +08:00
9c56d9e75e Make sure functions that are in ROM in the non-external-ram-workaround version, are in RAM (and not in flash) in the ext-ram workaround version. 2017-09-13 10:36:56 +08:00
df888a4f54 Merge branch 'bugfix/openocd_top_used_priority' into 'master'
freertos: place uxTopUsedPriority into DRAM

See merge request !1246
2017-09-13 09:02:27 +08:00
c4f15a0e5d ledc_get_duty return type changed from int to uint32_t, target_duty changed from int to uint32_t 2017-09-13 01:43:42 +08:00
1759a47060 This is a combination of 4 commits.
squash again all the commit.

component/bt: Change all the gattc API && bta gattc layer.

component/bt: Debug the code and change the btc_ble_gattc_get_db method.

component/bt: Change the gatt read API interface.

component/bt: Reconstruction the BTA_gattc_cache code.

component/bt: Change back the bluedroid_get_status to marco.

component/bt: Added the serch service res start_handle & end_handle to the result.

component/bt: Change the gattc docs format.

component/bt: Change the docs format.

component/bt: fix the read char value bug.

component/bt: change the gattc_get_attr_count method.

component/bt: Change back the bta_gattc write ccc code.

component/bt: Change the gattc api docs format

component/bt: Change the gattc API docs.

component/bt: Change the prepare write descriptor method to avoid the exection.

Component/bt: modify gatt clinet demo with new API

component/bt: Change the p_src_data->read.p_value to avoid exection.

compoent/bt: Change the bugfix of gattc unreg for the notify.

Modify gattc security demo

component/bt: Change the log error.

Component/bt: modify gattc_multi_connect demo

componnet/bt: Change the bta_gattc_cache sdp include.

component/bt: Change the start_handle & end_handle not from the service.

component/bt: Change the gattc API docs.

component/bt: Change the return issues.

component/bt: Fixed the include service bug.

component/bt: Modify gattc_multi_connect demo , add scan log

component/bt: Fixed the BTA_GATTC_GetIncludeService start handle & end handle error bug.

component/bt: Fix the invalid handle of the get all char issues.

component/bt: Fix the bug with get_db_size_with_type of the start handle & end_handle not correted issue.

component/bt: Fixed the get secondly service num not correct issue.

component/bt: Fixed the last service handle not correted issue.
2017-09-12 07:36:02 -04:00
b6d82eeceb Merge branch 'feature/gcov_over_apptrace' into 'master'
esp32: Adds gcov over JTAG feature

See merge request !1117
2017-09-12 18:54:26 +08:00
00a7cdbb0b component/bt : support adv & scan simultaneously
1. Occupy conn[9] for adv. The max connection number of bluetooth controller decrease to 9. (Previously, it is 10)
2. modify the enum of setting BLE TX power corresponding to connection's.
3. fix libbtdm_app.a cwitch jump table
2017-09-12 16:10:30 +08:00
d7fb4a71a0 Merge branch 'feature/fail_build_on_sphinx_warning' into 'master'
Fail CI build on Sphinx warnings

See merge request !1228
2017-09-12 13:49:11 +08:00
59792bb2c3 Fail CI build on Sphinx warnings 2017-09-12 07:12:57 +02:00
820df6aa27 Merge branch 'bugfix/btdm_nvs_get_str_or_blob' into 'master'
fix: Fix bug of function nvs_get_str_or_blob

See merge request !1182
2017-09-12 12:20:42 +08:00
e4ba31a8b9 add ESPNOW feature
ESPNOW is a kind of WiFi communication bettween WiFi devices, no
    matter they are connected to each other or not. Once two WiFi
    devices are paired, they can send data to or receive data from
    each other. The data is transmitted in action frame which can
    be encrypted with CCMP method. ESPNOW also support mutilcast frame
    transmitting.
2017-09-12 12:12:13 +08:00
23f10e1a57 Merge branch 'feature/uart_software_flow_control' into 'master'
uart: Add api call to switch on hardware support for 'software' flow control. (github #890)

See merge request !1215
2017-09-12 12:11:11 +08:00
868b0ce228 Merge branch 'bugfix/list_node_naming' into 'master'
Fix "list_node" name conflict in bluedroid & dhcp_server

See merge request !1216
2017-09-12 12:10:54 +08:00
635bd9ac9e Merge branch 'bugfix/btdm_disable_gatts' into 'master'
component/bt: fix build error when GATTS is disabled in menuconfig

See merge request !1232
2017-09-12 12:06:41 +08:00
f4ddaa7a11 Merge branch 'bugfix/crashed_core_dump' into 'master'
esp32: Fixes crash during core dump.

See merge request !1239
2017-09-12 11:32:48 +08:00
1f9143ef07 Merge branch 'bugfix/gatts_example_param' into 'master'
BT gatts example: using param, which corresponds to handled event

See merge request !1176
2017-09-12 10:37:19 +08:00
d5301bdac6 gatts_demo example: Use add_char_descr.attr_handle everywhere 2017-09-12 10:57:45 +10:00
1922f6cd80 using param, which corresponds to handled event
In the handlers of ESP_GATTS_ADD_CHAR_DESCR_EVT was used incorrect parameter, which corresponding to ESP_GATTS_ADD_CHAR_EVT.
2017-09-12 10:41:43 +10:00
9a26296a0e Merge branch 'feature/spiffs2' into 'master'
Add SPIFFS Component to IDF

See merge request !1229
2017-09-12 08:22:31 +08:00
31eda99136 More detailed description of ADC API 2017-09-11 21:00:09 +02:00
dd87deb278 Add SPIFFS Component to IDF 2017-09-11 19:56:40 +03:00
4e0c3a0415 esp32: Fixes crash during core dump.
Removes piece of debugging code introduced by 8d43859b.
2017-09-11 17:20:42 +03:00
64bce3ce59 freertos: place uxTopUsedPriority into DRAM
When debugging crashes caused by flash cache access errors, OpenOCD may
request the value of uxTopUsedPriority when cache is disabled. Placing
it into IRAM to avoid an error in such case.
2017-09-11 20:15:27 +08:00
1f8d93f0eb Merge branch 'bugfix/make_verbose' into 'master'
build system: Fix "make V=1" for verbose builds again

See merge request !1234
2017-09-11 18:17:43 +08:00
4bd12e10e7 Merge branch 'feature/http_request_example_receiving_timeout' into 'master'
Added socket receiving timeout, ref. TW#14353 / GitHub  issue #844

See merge request !1241
2017-09-11 18:17:01 +08:00
1e7c3854d3 Merge branch 'bugfix/warn_on_invalid_xtal_freq' into 'master'
soc/rtc: warn if detected XTAL frequency does not match configured one

See merge request !1242
2017-09-11 18:15:11 +08:00
b3fd494e71 Panic: stop dport access handler without trying to use a lock 2017-09-11 17:24:22 +08:00
de038f502c Merge branch 'feature/gpio_channel_macro' into 'master'
feat(global): add macros for GPIO->channel lookup

See merge request !1170
2017-09-11 12:15:08 +08:00
5a88f90a33 soc/rtc: warn if detected XTAL frequency does not match configured one
Since 9a8c0392, XTAL frequency is set to 40MHz by default, and users
of 26MHz boards need to select 26MHz manually. Most users are not aware
of this change, and existing getting started guides do not mention that
XTAL frequency needs to be set for some boards. So users are left with
garbage output from UART without any clue what to check.

This change adds a warning in case specific XTAL frequency was set, and
it does not match automatically detected one. This should help users
fix the issue.
2017-09-11 11:42:26 +08:00
4079886704 Added socket receiving timeout, ref. TW#14353 / GitHub issue #844 2017-09-11 05:15:39 +02:00
fccb10c313 build system: Restore "make V=1" for verbose builds
Fix regression in 5f3cb9f9dc
2017-09-08 17:34:02 +10:00
050ae50e83 Merge branch 'bugfix/docs_broken_links' into 'master'
Fixed broken links in documentation

See merge request !1230
2017-09-08 12:06:43 +08:00
87031f9457 component/bt: fix nvs_get_str_or_blob length output error 2017-09-08 12:02:35 +08:00
e1bd51af80 component/bt: fix nvs_get_str_or_blob length output error 2017-09-08 12:02:35 +08:00
f3be0395d2 component/bt: fix nvs_get_str_or_blob length output error 2017-09-08 12:02:35 +08:00
e12967297d Merge branch 'feature/docs_touch_pad_api' into 'master'
Touch Pad driver overview

See merge request !1195
2017-09-08 11:55:27 +08:00
c5988403f4 Merge branch 'bugfix/cache_err_int' into 'master'
esp32: fix cache error interrupt handler

See merge request !1231
2017-09-08 11:55:01 +08:00
21586063de component/bt: fix build error when GATTS is disabled in menuconfig 2017-09-08 11:34:59 +08:00
33cb16fd2a esp32: fix cache error interrupt handler
Cache error interrupt would read DPORT registers, which caused DPORT
access protection to kick in. Disable DPORT protection before doing the
reads.
2017-09-08 09:59:09 +08:00
b69379941b Fixed broken links in documentation 2017-09-07 18:48:15 +02:00
891f0db31d esp32: Adds gcov over JTAG feature
Implements function to dump GCOV data to host via JTAG.
The following functionality was added:
 - Host file I/O
 - GCOV runtime I/O stubs
 - GCOV example
2017-09-07 18:13:16 +03:00
9e27c24e54 component/bt: add esp_ibeacon_api file 2017-09-07 20:49:11 +08:00
941001959e Component/bt: delete the useless .h files 2017-09-07 20:49:11 +08:00
2f9111c13f component/bt: Optimize iBeacon demo
- Add endian change for major and minor part
- Change measured power format
- Optimize comments in example
2017-09-07 20:49:11 +08:00
eff95f3799 component/bt: add ibeacon demo 2017-09-07 20:49:11 +08:00
38102f4148 component/bt : fix btc security storage bug
1. Remove the bond_device global variable.
2. Fix bond_device add cause memory exception
3. Modify the code location.
4. modify thread security
5. remove esp_ble_clear_bond_device_list() API
6. modify esp_ble_get_gond_device_list() to return list immediately, rather than wait event.
7. modify the gatt_security_server demo to show how to remove all the bonded devices.
8. fix some code bugs may cause something error.
2017-09-07 19:37:49 +08:00
3c470e7c43 Merge branch 'bugfix/rmt' into 'master'
RMT 2 fixes: Rename one API and specify wait_time in another API

See merge request !896
2017-09-07 18:03:08 +08:00
5425d8569c Merge branch 'feature/pthread_api' into 'master'
esp32: pthread API

See merge request !1146
2017-09-07 17:49:42 +08:00
40df6546c0 Merge branch 'feature/multi_heap_poisoning' into 'master'
Heap tracing & poisoning features

See merge request !749
2017-09-07 17:47:51 +08:00
310269bcdc Merge branch 'bugfix/tcpip_adapter_ethernet' into 'master'
tcpip_adapter: Fix bug which prevents setting a static IP address for Ethernet interface (github #657)

See merge request !1178
2017-09-07 17:47:20 +08:00
0d86db773c Merge branch 'feature/spi_lcd_autodetect' into 'master'
example(spi_master): add menuconfig to enable the auto detect of LCD type.

See merge request !1185
2017-09-07 17:47:00 +08:00
de06a0b8a7 Merge branch 'feature/mbedtls2_6_0' into 'master'
Update mbedTLS to version 2.6.0

See merge request !1224
2017-09-07 17:45:45 +08:00
b9dfb437ab Merge branch 'bugfix/intr_free' into 'master'
fix(intr): fix the logic for allocating and freeing interrupts.

See merge request !1124
2017-09-07 17:45:18 +08:00
c503a01388 mbedtls: Rename net to net_sockets (in line with 2.4.0 API change) 2017-09-07 18:02:39 +10:00
3a08ec7b3d mbedtls: Re-apply: MBEDTLS_SHA512_ALT also replaces mbedtls_sha512_process()
IDF-specific patch.
2017-09-07 18:02:26 +10:00
3142997830 mbedtls: Re-apply ECP memory leak fix
Fix not yet submitted upstream.

(Previously applied in ffefeef5ea)
2017-09-07 18:02:26 +10:00
736db688a8 mbedtls: Re-apply MBEDTLS_BIGNUM_ALT & related macros for custom bignum functions
(IDF-specific patch.)
2017-09-07 18:02:26 +10:00
ae382b3bfa mbedtls: Update to 2.6.0 release (without IDF-specific patches) 2017-09-07 18:02:26 +10:00
f8339fc1bd newlib: Avoid deprecation warning calling system_get_time() from system_relative_time() 2017-09-07 16:32:05 +10:00
73b3ae8a2d lwip: Use hardware RNG for LWIP_RAND(), use LWIP_RAND() for random port assignment 2017-09-07 16:32:05 +10:00
72995bfcec doc: Add docs for heap trace & poisoning 2017-09-07 16:32:05 +10:00
ec498ad86d libgcc: Place assembly functions (including __xtensa_libgcc_window_spill) in IRAM 2017-09-07 16:32:05 +10:00
1c7b8aa3a5 Heap tracing support 2017-09-07 16:32:05 +10:00
64bfdf56bb Unit tests: enable comprehensive heap poisoning checks 2017-09-07 16:32:05 +10:00
5c417963eb multi_heap: Add heap poisoning features 2017-09-07 16:32:05 +10:00
5222428dde unit tests: Check heap integrity after each test, check for obvious leaks 2017-09-07 16:32:05 +10:00
1cb0f30933 heap_caps: Add heap_caps_check_integrity() function 2017-09-07 16:32:05 +10:00
63e1e4e502 Merge branch 'test/modify_mtu_cases' into 'master'
test: update BLE GATT MTU cases

See merge request !1223
2017-09-07 14:27:41 +08:00
ac5e1f65b2 test:update BLE GATT MTU cases 2017-09-07 13:46:13 +08:00
5146289eea Merge branch 'feature/update_wifi_lib_for_some_feature_and_bugfix' into 'master'
esp32: update wifi lib for a bunch of small feature and bugfix

See merge request !1222
2017-09-07 13:24:24 +08:00
8f5e4bacf3 Merge branch 'bugfix/spi_cache_disable_adjustments_iram' into 'master'
Make sure cache is disabled/enabled when *both* CPUs are running inside the iram guard code

See merge request !1208
2017-09-07 11:02:21 +08:00
a568ad2c9d esp32: update wifi lib for a bunch of small feature and bugfix
1. Update RTC V229: add BT AGC saturation protection
2. Update PHY V359: (1). esp_init_data_v2.bin -- modify WIFI and BT RX gain table Setting
                    (2). modify phy_close_rf()
                    (3). noisefloor add limit and no print
3. WiFi supports modem sleep dynamic frequency switch
4. Fix disabling AMPDU cause esp_wifi_init fail issue
5. Fix sniffer mode cause WiFi can't connect issue
6. Optimize an internal rx buffer full issue
7. Rollback the internal wifi init flag when wifi init fail
2017-09-07 11:01:12 +08:00
08b9fbc242 feat(global): add macros for GPIO->channel lookup
including: macros for dac, adc, touch, rtc_gpio, uart and clk_out.

TW#13970
2017-09-07 10:40:25 +08:00
4809c70899 Merge branch 'feature/register_heaps_runtime' into 'master'
heap: Support adding new heap regions at runtime

See merge request !1159
2017-09-07 10:18:21 +08:00
dcd2f71d11 Merge branch 'bugfix/http_to_https_url_changes' into 'master'
Mass replacement of http with https urls, fixed broken urls

See merge request !1221
2017-09-07 10:16:43 +08:00
54cb386826 Merge branch 'bugfix/btdm_unloaded_memory' into 'master'
component/bt : fix unloaded memory(0x3fff0000 overwrite) bug

See merge request !1227
2017-09-07 10:12:44 +08:00
b8b2816f67 component/bt : fix unloaded memory(0x3fff0000 overwrite) bug 2017-09-06 21:45:18 +08:00
b24d2c4cf3 Make sure cache is disabled/enabled when *both* CPUs are running inside the iram guard code 2017-09-06 16:34:36 +08:00
371c55138e component/bt: Added the new feature of the l2cap layer from the bluedroid new version 7.1.1 2017-09-06 04:25:57 -04:00
73ba29e6df refactor(intr): remove useless tags in the debug log. 2017-09-06 15:20:04 +08:00
c82e51cf79 fix(intr): always assign the same intr to a same source, disable the source only when all the handlers disabled.
also document handlers sharing a same source.

TW#13454, https://github.com/nodemcu/nodemcu-firmware/issues/1874

Breaking change: handles assigned to a same source should have the same flag now.
2017-09-06 15:20:01 +08:00
672390c458 Mass replacement of http with https urls, fixed broken urls 2017-09-06 08:16:01 +02:00
c9f065fd2b example(spi_master): add menuconfig to enable the auto detect of LCD type. 2017-09-06 11:41:07 +08:00
5dea0fca15 esp_pthread_init constructor attr was removed 2017-09-06 10:30:23 +08:00
5094965e98 According to comments 2017-09-06 10:30:23 +08:00
e3b86e7bdb pthread: handle statically initialized mutexes 2017-09-06 10:30:23 +08:00
20942421c3 According to review comments 2017-09-06 10:30:23 +08:00
8859dab10c Cleanup 2017-09-06 10:30:23 +08:00
bf8ff8c98b 1) Thread detach functionality added
2) Recursive mutexes support
3) C++ test updated
2017-09-06 10:30:23 +08:00
c631c6b358 1) Mux API was added
2) C++ test for threading and mux functions
2017-09-06 10:30:23 +08:00
0b09c7006d pthread: Initial version of thread API 2017-09-06 10:30:23 +08:00
aad24cb6c7 Merge branch 'bugfix/unit_test_build' into 'master'
build system: fix building tests specified via TEST_COMPONENTS

See merge request !1219
2017-09-06 08:48:44 +08:00
73297f1aa3 Separate section on touch detection 2017-09-05 20:43:15 +02:00
3c3c5e69c6 build system: fix building tests specified via TEST_COMPONENTS 2017-09-05 18:07:00 +08:00
604308f4ab Merge branch 'bugfix/soft_reboot_psram' into 'master'
Fix rebooting when external RAM is active

See merge request !1207
2017-09-05 15:43:30 +08:00
74d5f85c53 Merge branch 'feature/build_warn_undefined_vars' into 'master'
Add --warn-undefined-variables to MAKEFLAGS (github #138)

See merge request !1214
2017-09-05 15:39:48 +08:00
9471ce9135 dhcpserver: Move DHCP option names to a separate header
Avoids naming conflicts. Resolves TW13826.
2017-09-05 17:28:40 +10:00
48333aea48 bluedroid: Move fixed_queue.h to implementation of hci_layer.c
Avoids pulling types like list_node into the public interface.

Closes https://github.com/espressif/esp-idf/issues/948
2017-09-05 17:14:40 +10:00
1be6bf6790 dhcpserver: Move list_node to implementation not public interface
Was unused in the public interface.

Closes https://github.com/espressif/esp-idf/issues/948
2017-09-05 17:14:23 +10:00
93cc3a77cb uart: Add api call to switch on hardware support for 'software' flow control.
Cherry-picks https://github.com/espressif/esp-idf/pull/890
2017-09-05 16:30:21 +10:00
7c7d29dc4a Implemented 2 of 3 review comments 2017-09-05 08:28:44 +02:00
ba42c46cb3 Touch Pad driver overview 2017-09-05 08:28:44 +02:00
95c2aed126 build system: Remove obsolete GenerateBuildDirTarget macro eval 2017-09-05 16:28:42 +10:00
1ea082a053 Expand vars before splitting fields
This allows making entire partition table line a variable.

Merges https://github.com/espressif/esp-idf/pull/841
2017-09-05 16:23:54 +10:00
f17bbff4b5 Merge branch 'feature/tcp_msl_menuconfig' into 'master'
components/lwip: Expose TCP_MSL in menuconfig. (github #783)

See merge request !1175
2017-09-05 14:18:36 +08:00
5f3cb9f9dc build system: Document --warn-undefined-variables and add a config item for it 2017-09-05 16:11:03 +10:00
8670844acf build system: Restore ifdef/ifndef in Makefiles, clean up examples build 2017-09-05 16:11:03 +10:00
9903ea1c11 Add --warn-undefined-variables to MAKEFLAGS
Fix warnings where undefined vars are used.

Make Kconfig emit "FOO=" for unset bool options
To ensure make variables are always defined, even if empty.

When writing auto.conf, include symbols disabled by dependency to make sure all make variables are always defined.

Fixes espressif/esp-idf#137

Cherry-picked from https://github.com/espressif/esp-idf/pull/138
2017-09-05 16:10:46 +10:00
167f2cf9e1 Merge branch 'bugfix/nvs_item_crc_check' into 'master'
nvs: check CRC of items on full pages

See merge request !1200
2017-09-05 12:09:40 +08:00
5361c08989 heap: Support adding new heap regions at runtime
To facilitate this, the list of registered heap regions is now a linked list
(allowing entries to be appended at runtime.)
2017-09-05 14:07:02 +10:00
8433fed7f4 Merge branch 'bugfix/core_dump_loop' into 'master'
esp32: Fixes infinite loop caused by exception during core dumping

See merge request !1210
2017-09-05 11:40:31 +08:00
74a017e1e4 Merge branch 'bugfix/mbedtls_net_failures' into 'master'
mbedtls: Don't assign ctx->fd until connect() or bind() has succeeded

See merge request !1211
2017-09-05 11:28:43 +08:00
9362d66812 Merge branch 'feature/adc_calibration' into 'master'
Bugfix/ added esp_adc_cal include guards

See merge request !1192
2017-09-05 11:23:05 +08:00
c007213fed Merge branch 'bugfix/deep_sleep_wakeup_stub' into 'master'
deep sleep: don't use protected DPORT access in wake stub

See merge request !1194
2017-09-05 11:22:52 +08:00
70cdb03ffa Merge branch 'bugfix/openssl_client_example' into 'master'
example/openssl_client: Fix http string "printf" error without end character '\0'

See merge request !1201
2017-09-05 11:15:55 +08:00
fb8b0c534a esp32: Fixes infinite loop caused by exception during core dumping 2017-09-05 11:15:27 +08:00
51e8f439b8 Merge branch 'bugfix/cpu_clk_disable_spi' into 'master'
spi_master, sdmmc: fix regressions due to peripherals being disabled by default

See merge request !1193
2017-09-05 10:41:51 +08:00
d531b56d93 Merge branch 'bugfix/spinlock_performance' into 'master'
freertos: Reduce CPU spinlock (portmux) overhead

See merge request !497
2017-09-05 09:16:10 +08:00
8ce09c2c1c mbedtls: Don't assign ctx->fd until connect() or bind() has succeeded
Avoid leaking closed file descriptors via ctx->fd

Reported: https://esp32.com/viewtopic.php?f=13&t=2910&sid=8568b1fd93a4c8d5760628a638efc48b#p13620
2017-09-05 11:08:35 +10:00
11a87ca811 Merge branch 'bugfix/bootloader_ota_sel' into 'master'
Fix bootloader OTA regression

See merge request !1205
2017-09-05 07:25:08 +08:00
e93c33050e ethernet: enable EMAC module clock on initialization 2017-09-04 22:43:52 +08:00
b38186dc43 sdmmc: use periph_ctrl to enable peripheral when initializing the host 2017-09-04 22:43:52 +08:00
956a28a95c driver: add periph_ctrl support for SDMMC, SDIO slave, CAN, EMAC 2017-09-04 22:43:51 +08:00
b834fcf78a fix(spi_master): this fix the SPI MOSI output missing bug. 2017-09-04 22:43:51 +08:00
f254555a41 Merge branch 'feature/btdm_add_set_local_MTU_API_for_gatt' into 'master'
component/bt: add set local MTU API

See merge request !1152
2017-09-04 21:32:23 +08:00
cf29dd47a9 apptrace lock acquire function was re-designed to minimize waiting time with disabled IRQs 2017-09-04 20:44:11 +08:00
b3c6748a0b ci: add extra unit test job 2017-09-04 20:39:35 +08:00
0e74ec67be Fix rebooting when PSRAM is active 2017-09-04 19:00:47 +08:00
9da1bf1a45 Merge branch 'bugfix/lwip_send_timeout' into 'master'
match sys tick with lwip_send_timeout

See merge request !1203
2017-09-04 18:19:59 +08:00
a19aaf2072 esp32: Update wifi lib to use new spinlock implementation 2017-09-04 19:11:51 +10:00
4486d4cb10 portmux: Add vPortCPUAcquireMutexTimeout() function
Refactor app_trace locking to use this function.
2017-09-04 19:11:51 +10:00
397c0bfb4b freertos scheduler test: Free timer group interrupt handle when test finishes 2017-09-04 19:11:51 +10:00
5c996a1b29 freertos: Inline vPortCPUAcquireMutex/vPortCPUReleaseMutex into implementations
Further improves performance:
No contention -> 134 cycles
Recursion -> 117 cycles
Contention -> 323 cycles
2017-09-04 19:11:51 +10:00
db58a2732b freertos: vPortCPUReleaseMutex() no longer returns a value
Unlocking a never-locked mutex is an assertion failure in debug mode.

In release mode, this further improves performance:
No-Contention ->  153 cycles
Recursion No-Contention -> 138 cycles
Contention -> 378 cycles
2017-09-04 19:11:51 +10:00
4d42b2d100 freertos spinlock/portmux: Reduce spinlocking overhead
Ref TW7117

Microbenchmarks in unit tests:

(All numbers in cycles per benchmarked operation):

Release mode
No lock contention lock/unlock -       301 -> 167 (-45%)
Recursive no contention lock/unlock -  289 -> 148 (-49%)
Lock contention two CPUs (lock/unlock) 699 -> 400 (-43%)

Debug mode
No lock contention lock/unlock -       355 -> 203 (-43%)
Recursive no contention lock/unlock -  345 -> 188 (-46%)
Lock contention two CPUs (lock/unlock) 761 -> 483 (-36%)
2017-09-04 19:11:51 +10:00
f2952de3a5 freertos spinlocks/portmux: Add combination unit tests & microbenchmarks 2017-09-04 19:11:51 +10:00
f487bb19d7 Merge branch 'bugfix/ci_build_examples_more' into 'master'
CI build_examples: Fix build flakiness

See merge request !1191
2017-09-04 16:02:12 +08:00
2806b57fc1 build system: Don't make menuconfig if "make clean" run with no sdkconfig 2017-09-04 17:40:15 +10:00
867b20837f build system: Explicitly disallow 'clean' along with non-cleaning targets
Too hard to stage the dependencies so that all clean steps complete before any build steps begin. Also, using and then
deleting and then regenerating SDKCONFIG_MAKEFILE in one pass is really hard to manage successfully.
2017-09-04 17:40:15 +10:00
97efaab27b build system tests: Run inside PWD same as build_examples.sh 2017-09-04 17:40:15 +10:00
774c9d0a61 ci: Add two more example build jobs per CI pass 2017-09-04 17:40:15 +10:00
c275ad4ca4 build system: Add dependencies to component clean steps
Build directory must exist, component_project_vars.mk must be generated if it is going to be.
2017-09-04 17:40:15 +10:00
2544355301 build_examples: Small cleanups
* Override MAKEFLAGS via make not via shell variables
* Remove build_examples in gitlab-ci
* Don't use mktemp for any logs
2017-09-04 17:40:15 +10:00
3dfcc312c8 ota_ops: Fix get_selected_boot_partition() in case there is no factory partition
get_selected_boot_partition() now follows the same basic logic as the bootloader to find the
default boot partition.
2017-09-04 17:37:28 +10:00
1cd2ce2471 bootloader: Fix regression preventing OTA updates
Regression introduced in 43e231c.

Thanks to @yanbe for pointing out issue in https://github.com/espressif/esp-idf/pull/955

This is a different fix, tries to keep the behaviour that 43e231c was aiming to correct (unnecessarily testing an
invalid slot more than once.)
2017-09-04 17:37:28 +10:00
547b7b0246 match sys tick with lwip_send_timeout 2017-09-04 14:52:16 +08:00
c0269bc1cd nvs: check CRC of items on full pages
Previously NVS did check CRC values of key-value pairs on the active
page, but the check for full pages was missing. This adds the necessary
check and a test for it.
2017-09-04 14:37:33 +08:00
c0510c4266 Merge branch 'feature/psram_in_address_space' into 'master'
Feature/psram in address space

See merge request !1069
2017-09-04 14:18:23 +08:00
d523a5181b example/openssl_client: Fix http string "printf" error without end character '\0' 2017-09-04 13:29:19 +08:00
153275b743 Merge branch 'bugfix/uart_5mbaud' into 'master'
Fix off-by-one in 5MBaud arg checking; propagate errors better

See merge request !1184
2017-09-04 12:06:33 +08:00
34372a091c Add initial SPI RAM support. This adds support for an ESP-PSRAM32 chip connected to the default flash pins and GPIO 16 and 17. The RAM is mapped to address 0x3F800000, but otherwise ignored by esp-idf as of yet. 2017-09-04 12:05:49 +08:00
f1c4eda373 Component/bt: add set local MTU API
- add esp_ble_gatt_set_local_mtu( ) API
- modify esp_ble_gattc_config_mtu(esp_gatt_if_t gattc_if, uint16_t conn_id)
- modify  gattc demo
2017-09-01 21:55:28 +08:00
3a1de7dba3 Merge branch 'bugfix/btdm_fix_connection_parameters_update' into 'master'
component/bt: fix connection parameters update

See merge request !1099
2017-09-01 20:15:30 +08:00
73473ad351 Merge branch 'bugfix/btdm_optimize_gatt_security_server_demo' into 'master'
component/bt: optimize gatt security server demo

See merge request !1047
2017-09-01 20:13:13 +08:00
b9ff771e2c deep sleep: don't use protected DPORT access in wake stub 2017-09-01 18:35:42 +08:00
518edac42f Add GD chip into qio data, so (at least my) ESP-WROVER uses QIO mode succesfully. 2017-09-01 16:53:05 +08:00
5666fc0a56 Merge branch 'feature/esp_timer_improvements' into 'master'
esp_timer improvements

See merge request !1172
2017-09-01 16:14:01 +08:00
fe140fe347 Fix off-by-one in 5MBaud arg checking; propagate errors better 2017-09-01 12:15:28 +08:00
4fbeaba77f Bugfix/ added esp_adc_cal include guards 2017-09-01 12:07:37 +08:00
98e5c475b3 Merge branch 'feature/light_sleep' into 'master'
Rename esp_deep_sleep_ APIs to esp_sleep_, introduce light sleep function

See merge request !1168
2017-09-01 11:10:52 +08:00
f31efb697c newlib: rename esp_setup_time_syscalls to esp_set_time_from_rtc
This function no longer sets up syscalls, and new name reflects its
purpose better.
2017-09-01 10:36:14 +08:00
d2acf1ce77 sleep: add light sleep, factor out APIs common for deep/light sleep 2017-09-01 10:36:14 +08:00
65b046f17f dport access: introduce pause/resume instead of deinit 2017-09-01 10:36:14 +08:00
f8b719d911 soc/rtc: add sleep flag to control powerdown of VDD_SDIO 2017-09-01 10:36:14 +08:00
06af8cd086 esp_timer: return signed timestamp (int64_t)
Since timestamps are 64-bit, loosing one bit of range due to sign does
not present an issue, however for applications doing calculations on
timestamps, signed return type is more convenient.
2017-09-01 10:34:36 +08:00
c5632d3012 esp32: use ref_clock in esp_timer and delay tests 2017-09-01 10:34:36 +08:00
9a2c62cf2b unity: add reference clock for use in unit tests 2017-09-01 10:34:36 +08:00
1af6384349 esp_timer: lock-free implementation of esp_timer_get_time
The implementation of esp_timer_get_time used a critical section, which
resulted in a call time of ~1.8us. To make esp_timer_get_time more
useable as a high-resolution time source, this change replaces the lock
with polling. Call time is reduced to ~0.7us.
2017-09-01 10:34:36 +08:00
c743bdac88 soc/rtc: round APB clock frequency to nearest MHz 2017-09-01 10:34:36 +08:00
d24e0dcc2c Merge branch 'bugfix/ci_build_examples' into 'master'
ci: fix example builds and unit tests

See merge request !1188
2017-09-01 10:33:38 +08:00
d4e950d311 Merge branch 'feature/cxx_exceptions' into 'master'
Partial support for C++ exceptions

See merge request !930
2017-09-01 00:27:41 +08:00
b76a672aed ci: disable sd card tests 2017-08-31 23:50:56 +08:00
3d8390fa8a ci: put example log files on the build volume 2017-08-31 23:00:48 +08:00
c92fba3261 Merge branch 'feature/timeradd' into 'master'
feat(time): enable the macro timeradd, timersub, timerclear, etc.

See merge request !1177
2017-08-31 13:57:19 +08:00
0a5a705ca8 Merge branch 'bugfix/log_tag_change_level' into 'master'
bugfix(log): fix the log tag to update existing rather than add new tag when calling ``esp_log_level_set``

See merge request !1153
2017-08-31 10:45:55 +08:00
1c718330a9 Merge branch 'bugfix/remove_at_build_from_ci' into 'master'
CI: remove build at

See merge request !1171
2017-08-31 10:45:40 +08:00
1cfe96b1d7 Merge branch 'bugfix/i2s_dac_channel' into 'master'
fix(i2s_dac): fix the disable function which only disables DAC_CHANNEL_1.

See merge request !1169
2017-08-31 10:45:30 +08:00
b4857fc159 Merge branch 'bugfix/memory_issues_pr838' into 'master'
vfat, i2s, mdns: Fix two memory leaks, one double free (github #838)

See merge request !1173
2017-08-31 10:45:19 +08:00
e57a664798 Merge branch 'feature/freertos_interrupt_backtrace_opt' into 'master'
freertos: introduce CONFIG_FREERTOS_INTERRUPT_BACKTRACE

See merge request !1167
2017-08-31 10:45:06 +08:00
96f9ae3e30 Merge branch 'bugfix/minor_prs_github' into 'master'
Minor bugfixes and corrections from github

See merge request !1181
2017-08-31 07:11:30 +08:00
32571dd004 Merge branch 'bugfix/uart_set_dtr_rts' into 'master'
uart: Fix spinlock bug for uart_set_rts and uart_set_dtr

See merge request !1179
2017-08-31 06:50:24 +08:00
a88f4126c6 Merge branch 'bugfix/timer_group_example' into 'master'
bugfix(timer group): remove floating-point in timer isr in example.

See merge request !1080
2017-08-31 06:49:26 +08:00
1c9e821fb4 bugfix(timer group): remove floating-point in timer isr in example. 2017-08-30 23:30:53 +08:00
e183897924 README: Converting URLs from HTTP to HTTPS
Merges https://github.com/espressif/esp-idf/pull/622
2017-08-30 17:55:00 +10:00
4f812eb29c Remove redundant code line from uart.c
Merges part of https://github.com/espressif/esp-idf/pull/650
2017-08-30 17:55:00 +10:00
c8d8fb58e7 Fixed incorrect value in comments for GPIO_NUM_33.
Merges https://github.com/espressif/esp-idf/pull/676
2017-08-30 17:55:00 +10:00
3e6c515d5b Using a 128-bit UUID is not an error
Merges https://github.com/espressif/esp-idf/pull/713
2017-08-30 17:55:00 +10:00
lf
f77020ee5f Add quotes to PATH declarations
This is necessary in case someone has a space in their PATH variable (which is within the realm of possibility)

Merges https://github.com/espressif/esp-idf/pull/800
2017-08-30 17:55:00 +10:00
eb8bd937c6 deep_sleep: RTC-GPIO pin calculation incorrect
Merges https://github.com/espressif/esp-idf/pull/822
2017-08-30 17:55:00 +10:00
c61b3e89f1 Typo fixes
Merges https://github.com/espressif/esp-idf/pull/831
2017-08-30 17:55:00 +10:00
76cb1bac2b Fix distinction between shared and non-shared interrupts in docs
Merges https://github.com/espressif/esp-idf/pull/701
2017-08-30 17:55:00 +10:00
762d5fcb4c Update documentation for esp_avrc_api
Updated documentation for esp_err_t esp_avrc_ct_send_passthrough_cmd to show both pressed and released key states

Merges https://github.com/espressif/esp-idf/pull/846
2017-08-30 17:55:00 +10:00
1e3dd2a4fa Add missing debug log message for out-of-sockets case
Merges https://github.com/espressif/esp-idf/pull/903
2017-08-30 17:55:00 +10:00
8c1acb0363 Provide a default for CONFIG_BT_RESERVE_DRAM
...when BT is not built

Merges https://github.com/espressif/esp-idf/pull/910
2017-08-30 17:55:00 +10:00
105f9f466e openssl_server: Rename openssl_client_init() to openssl_server_init() to match usage
Merges https://github.com/espressif/esp-idf/pull/928
2017-08-30 17:55:00 +10:00
92535158e7 components/lwip: Expose TCP_MSL in menuconfig.
Merges https://github.com/espressif/esp-idf/pull/783
2017-08-30 16:44:53 +10:00
8f994b9dce feat(time): enable the macro timeradd, timersub, timerclear, etc.
TW#14488

Closes https://github.com/espressif/esp-idf/issues/867
2017-08-30 14:08:14 +08:00
95fe7929c0 Fix spinlock bug for uart_set_rts and uart_set_dtr
Merges https://github.com/espressif/esp-idf/pull/649
2017-08-30 15:32:23 +10:00
ef60d73fe4 Merge branch 'bugfix/mdns_tcpip_threadsafe' into 'master'
mdns: Use LwIP IPC for low-level API calls

See merge request !925
2017-08-30 13:28:51 +08:00
58ba8a2a24 tcpip_adapter: Fix bug which prevents setting a static IP address for Ethernet interface
Merges https://github.com/espressif/esp-idf/pull/657
2017-08-30 14:50:22 +10:00
a25eb825e1 Merge branch 'bugfix/dport_protect_crypto' into 'master'
add protection for crypto registers in DPORT

See merge request !928
2017-08-30 11:45:35 +08:00
547ef83020 Merge branch 'feature/disable_some_perip_clk_when_cpu_start' into 'master'
Disable some peripheral clocks when cpu starts

See merge request !1089
2017-08-30 11:43:38 +08:00
1a9b02ccbc component/bt: fix connection parameters update
- update connection parameters timeout due to master update illegal connection parameters
- slave returns error status when slave check the connection parameters
- slave connection parameters update callback get that interval_max is equal to interval_min
2017-08-30 11:29:25 +08:00
b6b36bd9dd mdns: fix leak after _mdns_create_service if we have a malloc error. 2017-08-30 12:11:57 +10:00
88e71a680e vfs: fix double free. 2017-08-30 12:11:57 +10:00
36eccee213 i2s: fix leak in i2s_create_dma_queue if we have a malloc issue. 2017-08-30 12:11:03 +10:00
a1b5813049 Merge branch 'feature/adc_calibration' into 'master'
esp_adc_cal component

See merge request !1084
2017-08-30 10:00:19 +08:00
8bd6feedd4 Merge branch 'bugfix/docs_updates' into 'master'
Removed redundant 'Logging to Host' and docs cleaning

See merge request !1158
2017-08-30 09:43:00 +08:00
b4eda4c4f7 Merge branch 'feature/disable_rom_console' into 'master'
esp32: Add KConfig option to disable BASIC ROM Console fallback on first boot

See merge request !1134
2017-08-30 07:56:00 +08:00
8c3169b6be Removed redundant 'Logging to Host' and docs cleaning 2017-08-29 20:47:10 +02:00
9fa2a9a270 CI: remove build at from CI:
AT is a standalone application. It will not keep up with latest IDF. If
IDF changes APIs which AT used, CI will fail. Therefore remove AT job.
2017-08-29 23:09:02 +08:00
2b0893d8a8 component/bt: add example for ble spp client
- refactory spp client code for modification suggestion.
2017-08-29 22:35:33 +08:00
88b05f9391 esp_adc_cal: Added ADC calibration component
Added component containg API that is able to correct raw ADC readings
into a voltage in mV. Also provided a helper function that combines
the process of getting the raw ADC1 reading then converting it to a
voltage in mV. In doing so, the adc1_get_voltage() function of the ADC
driver has been deprecated. Instead there is now adc1_get_raw to obtain
the raw ADC1 reading, and adc1_to_voltage() that gets the raw reading
and converts all in one function. Functions using the deprecated
adc1_get_voltage() have also been updated to use adc1_get_raw().

Conversion is based on ADC characteristics. The characteristics are based
on the ADC's v_ref, herefore the appropriate structure and functions have
been provided to obtain the ADC characteristics.

The existing ADC driver has also been modified by adding a function to
route the internal ADC reference voltage to a GPIO allowing users to measure
it manually.

Relevant documentation has also been updated
2017-08-29 18:43:14 +08:00
9ec3757349 fix(i2s_dac): fix the disable function which only disables DAC_CHANNEL_1. 2017-08-29 15:31:39 +08:00
e6f0ff7209 component/bt: add example for ble spp server
- refactory spp server code for modification suggestion.
2017-08-29 13:44:58 +08:00
84dec4459b Merge branch 'bugfix/unity_error_codes_as_hex' into 'master'
unity: log error codes as hex

See merge request !1166
2017-08-29 13:32:48 +08:00
9a764f3108 Merge branch 'bugfix/freertos_xportgetcoreid_iram' into 'master'
freertos: make sure xPortGetCoreID is placed into IRAM

See merge request !1165
2017-08-29 13:32:37 +08:00
71fa25c560 Merge branch 'bugfix/vfs_uart_read_write_lock' into 'master'
vfs_uart: fix write operation blocked by a read

See merge request !1164
2017-08-29 13:32:24 +08:00
7a18575af8 flash encryption: Also always disable ROM BASIC console when enabling flash encryption 2017-08-29 14:52:00 +10:00
1e22bcdfde esp32: Add KConfig option to disable ROM Console fallback on first boot 2017-08-29 14:52:00 +10:00
881aa43b69 Merge branch 'bugfix/struct_h_extern_c' into 'master'
fix(struct_h): add extern "C" protection to *_struct.h header files.

See merge request !1162
2017-08-29 11:24:34 +08:00
edbeee8326 Merge branch 'bugfix/spi_def_typo_lsbfirst' into 'master'
bugfix(spi_master): fix the definition of ``SPI_DEVICE_BIT_LSBFIRST``.

See merge request !1154
2017-08-29 11:24:31 +08:00
4776f73ca4 Disable some peripheral clocks when cpu starts
All peripheral clocks are default enabled after chip is powered on.
    When CPU starts, if reset reason is CPU reset, disable those clocks
    that are not enabled before reset. Otherwise, disable all those
    useless clocks.
    These peripheral clocks must be enabled when the peripherals are
    initialized and disabled when they are deinitialized.
2017-08-29 11:18:42 +08:00
4da7ee1295 Merge branch 'bugfix/ringbuf_fix_assert_0byte_payload' into 'master'
Fix faulty ringbuffer assert

See merge request !1163
2017-08-29 11:15:34 +08:00
99a4b6b2db freertos: introduce CONFIG_FREERTOS_INTERRUPT_BACKTRACE
The code in xtensa_vectors.S did not handle XT_DEBUG_BACKTRACE
consistently: #if was used in one case, and #ifdef in another. This makes
the checks consistent, and also introduces a Kconfig option to enable
backtrace.
2017-08-29 08:54:26 +08:00
3c992f872f Merge branch 'bugfix/secure_boot_enable' into 'master'
Fix regression when enabling secure boot

See merge request !1120
2017-08-29 08:44:13 +08:00
80486240c6 unity: log error codes as hex
Error codes are normally defined as hex numbers in header files, so
changing the assert macro to print them as hex as well.
2017-08-29 08:35:23 +08:00
eb1b4f971b freertos: make sure xPortGetCoreID is placed into IRAM
In some cases, xPortGetCoreID was not inlined, and ended up in flash.
Since this function is used in many situations when cache is disabled,
that caused exceptions. Adding IRAM attribute to fix that.
2017-08-29 08:31:36 +08:00
13ef3938a6 vfs_uart: fix write operation blocked by a read
vfs_uart used same locks for read and write operations on a single UART.
If read operation was blocking (i.e. carried out via UART driver), the
lock was held by reading task until it received a line. During this time,
other tasks trying to write to the same UART would get blocked.

This change introduces separate read/write locks, and adds a test.

Another vfs_uart test if fixed (it was disabled since the
CONFIG_NEWLIB_STDOUT_ADDCR option was removed).
2017-08-29 08:27:36 +08:00
d0bf9e61da Fix an assert that erroneously triggered when popping a zero-byte payload from the end of the ringbuffer 2017-08-28 19:31:26 +08:00
c7173e0d08 fix(struct_h): add extern "C" protection to *_struct.h header files. 2017-08-28 18:10:46 +08:00
3161854efb Merge branch 'bugfix/spi_hd_rx' into 'master'
fix(spi_dma_rx): add check to avoid using SPI half-duplex mode DMA with both MOSI and MISO phases.

See merge request !1111
2017-08-28 17:36:58 +08:00
82763a02af Merge branch 'feature/ets_timer' into 'master'
esp_timer: add high-resolution timer api

See merge request !1090
2017-08-28 16:38:11 +08:00
cfd95b62cb feat(log): add tags only when no one exist, otherwise refresh linked list and cache. 2017-08-28 16:25:40 +08:00
940f5fcb89 refactor(log): replace the tag uncached list with standard SLIST.
NOTE: split the header modify outside.
2017-08-28 16:25:39 +08:00
28c4ba1288 doc(log): document the log macros. 2017-08-28 16:25:39 +08:00
a589411a3c Place uart_tx_wait_idle in IRAM 2017-08-28 11:35:27 +08:00
d8b66e5088 soc: release interrupts which are not reserved by timers any more 2017-08-28 11:35:27 +08:00
42e9d49bb1 newlib: implement gettimeofday using of esp_timer 2017-08-28 11:35:27 +08:00
857a29872d esp_timer: add high resolution software timer API 2017-08-28 11:35:26 +08:00
a4fe12cb6d Merge branch 'bugfix/sdmmc_test' into 'master'
sdmmc: don't use high speed mode with SD over SPI

See merge request !1149
2017-08-28 11:32:20 +08:00
ce03879300 Merge branch 'bugfix/uart_wait_idle_iram' into 'master'
Place uart_tx_wait_idle in IRAM

See merge request !1157
2017-08-28 10:55:58 +08:00
b636f81619 Merge branch 'bugfix/spi_command' into 'master'
fix(spi_master): fix the command field to make it more intuitive to use.

See merge request !1119
2017-08-28 10:29:56 +08:00
2554f61f05 doc(spi master): documents updated for several limitations. 2017-08-26 02:15:32 +08:00
0cb14f1648 fix(spi_dma_rx): add check to avoid using SPI half-duplex mode DMA with both MOSI and MISO phases. 2017-08-26 02:15:30 +08:00
dd1e6ea296 typo(spi_master): fix the definition of `SPI_DEVICE_BIT_LSBFIRST`.
also fix the documentation of spi_device_transmit.
2017-08-26 02:04:37 +08:00
3e4627479b Place uart_tx_wait_idle in IRAM 2017-08-25 17:46:28 +08:00
4654278b1b Merge branch 'bugfix/btdm_controller_hci_fc' into 'master'
component/bt: bugfix for hci acl flow control

See merge request !1151
2017-08-25 16:16:47 +08:00
e14509b1ed Component/bt: optimize gatt security server demo
- optimize gatt security server demo
- change the adv public address to a private address
2017-08-25 15:33:35 +08:00
631f552489 sdmmc: don't use high speed mode with SD over SPI
Disabling due to limitation of SPI driver (max 26MHz for full-duplex
mode over GPIO matrix)
2017-08-25 14:33:19 +08:00
703d143619 hwcrypto: Fix bug with concurrent SHA access
If two different types of SHA hashes were active in the hardware
concurrently, a race condition meant the SHA unit could be incorrectly
reset leading to all-zero results.
2017-08-25 16:08:03 +10:00
0ea4cd67dd mbedtls: Remove "unsafe" warning, enable AES by default & make SHA/MPI optional 2017-08-25 16:08:03 +10:00
afb6119504 dport access: Fix WDT bug (permanent locking) in non-pinned tasks
If scheduler switches cores in narrow window during esp_dport_access_stall_other_cpu_start(), could cause the stall
interrupt to occur on the running CPU - halting the CPU until WDT cleans up.

Related to https://github.com/espressif/esp-idf/issues/630
2017-08-25 16:08:03 +10:00
50e0a54630 esp32 hwcrypto: Use spinlock instead of lock to protect AES
More than doubles performance of mbedTLS AES self-tests.
2017-08-25 16:08:03 +10:00
2624e10055 esp32 hwcrypto: Use AES registers directly 2017-08-25 16:08:03 +10:00
e256fb6d96 hwcrypto: Use DPORT-safe accesses with AES 2017-08-25 16:08:03 +10:00
99c663a6e9 mbedtls tests: utility tests for APB corruption
Used when running mbedTLS self-tests to verify DPORT protection is working correctly.
2017-08-25 16:08:03 +10:00
d0c300c52d hwcrypto: SHA acceleration using safe DPORT reads 2017-08-25 16:08:03 +10:00
7be002ec0f hwcrypto bignum/MPI: Batch safe DPORT reads to improve performance 2017-08-25 16:08:02 +10:00
cb31222e8b dport access: Add _DPORT_REG_SET_BIT & _DPORT_REG_CLR_BIT 2017-08-25 16:08:02 +10:00
dc8c33892e dport access: Fix nested calls to DPORT_STALL_OTHER_CPU_START() 2017-08-25 16:08:02 +10:00
08287852ab esp32: add protection for DPORT registers of RSA 2017-08-25 16:08:02 +10:00
b3fa390681 component/bt: add example for ble spp client
- this demo needs to work with the spp server demo
2017-08-25 09:52:24 +08:00
d532f33bdb component/bt: bugfix for hci acl flow control
1. trigger hci data transmission upon reception of hci_host_nb_of_cmpl_pkts when hci acl flow control is in effect
2017-08-24 20:59:32 +08:00
791daea835 Merge branch 'bugfix/xtal_freq_40' into 'master'
esp32: by default, set 40MHz crystal frequency

See merge request !1140
2017-08-24 20:40:22 +08:00
a66df0826e soc: fix/update definitions related to FRC timers
1. BIT(8) of CTRL is actually read-only bit indicating interrupt status

2. BIT(0) or CTRL had inverted meaning: 1 is “level”, 0 is “edge”

3. Add definitions of prescaler values
2017-08-24 16:33:12 +08:00
0420c4ec82 Merge branch 'feature/multipart_nvs_support' into 'master'
Multiple partition support in NVS

See merge request !1129
2017-08-24 14:42:14 +08:00
b9cdbfea87 Merge branch 'test/UT_SDMMC' into 'master'
Enable SDMMC driver test cases

See merge request !1106
2017-08-24 14:41:39 +08:00
922c584de6 Merge branch 'feature/libsodium_use_mbedtls' into 'master'
libsodium: Use mbedTLS implementations for SHA256 & SHA512

See merge request !1121
2017-08-24 14:40:52 +08:00
87a0ec77b5 Merge branch 'bugfix/mbedtls_config_mismatch' into 'master'
mbedtls: Add a shim header to account for including "mbedtls/config.h" directly in program

See merge request !1125
2017-08-24 14:40:39 +08:00
d02e850785 Merge branch 'bugfix/nghttp2_v124' into 'master'
nghttp: Restore nghttp2 v1.24

See merge request !1132
2017-08-24 14:40:24 +08:00
e0e1c07bd1 Merge branch 'bugfix/console_cmd_register' into 'master'
console: initialize buf_size before calling open_memstream

See merge request !1138
2017-08-24 14:35:29 +08:00
0ead095512 Merge branch 'bugfix/dport_stall_in_esp32_component' into 'master'
Also do dport stalling in esp32 component

See merge request !1141
2017-08-24 14:35:16 +08:00
327f0b6225 Merge branch 'bugfix/menuconfig_phy' into 'master'
component/esp32 : move Phy out of Wifi section

See merge request !1145
2017-08-24 14:34:56 +08:00
1862736c3a Merge branch 'bugfix/the_esp-wrover-kit_identity' into 'master'
ESP-WROVER-KIT now integrates the ESP32-WROVER module by default.

See merge request !1096
2017-08-24 14:33:34 +08:00
e1846df542 Merge branch 'feature/app_trace_to_host_example' into 'master'
Example on using application trace and logging to host

See merge request !1082
2017-08-24 14:30:28 +08:00
cc96234bb8 Merge branch 'feature/docs_esp32-wrover_info' into 'master'
docs: Included information about ESP32-WROVER module

See merge request !1107
2017-08-24 14:30:06 +08:00
72a6b26244 Merge branch 'bugfix/tw14823_lwip_assert_err' into 'master'
assert when close a connecting socket

See merge request !1136
2017-08-24 11:29:32 +08:00
d42208ffe8 Merge branch 'bugfix/ampdu_default_wifi_settings' into 'master'
wifi: Fix compilation error in WIFI_INIT_CONFIG_DEFAULT() if AMPDU disabled

See merge request !1139
2017-08-24 11:02:54 +08:00
258480822b Merge branch 'bugfix/btdm_config_local_privacy_func' into 'master'
component/bt: bugfix config local privacy

See merge request !1137
2017-08-24 10:48:57 +08:00
8b4229fcd6 Merge branch 'bugfix/btdm_fix_set_rand_addr_func' into 'master'
component/bt: fixbug_set_rand_addr()

See merge request !1123
2017-08-24 10:48:20 +08:00
f1ecffb46c Merge branch 'bugfix/touch_pad_driver' into 'master'
driver(touch): fix bug and add more features

See merge request !1056
2017-08-23 19:12:39 +08:00
de10032717 Merge branch 'feature/btdm_remove_gki' into 'master'
component/bt : remove all GKI reference

See merge request !1122
2017-08-23 18:01:54 +08:00
08221589fc component/esp32 : move Phy outof Wifi section
1. move Phy out of Wifi section
2. lowercase the Ethernet and Phy from 2nd letter.
2017-08-23 17:51:31 +08:00
19bf8cef1f Component/bt: bugifx config local privacy 2017-08-23 17:42:38 +08:00
123966deea Also do dport stalling in esp32 component 2017-08-23 16:43:57 +08:00
9a8c0392f5 esp32: by default, set 40MHz crystal frequency 2017-08-23 16:33:26 +08:00
e4f63819a1 component/bt : remove all GKI reference
1. remove GKI(not use osi_free_and_reset)
2. modify mutex/semaphore to individual directory
3. set osi_malloc as malloc(previously use calloc)
4. change osi allocator debug osi_free
5. fix rebase of remove GKI
2017-08-23 15:29:30 +08:00
7755015f4f secure boot: Fix enabling secure boot on first bootloader boot
Bootloader would accidentally check its own image for a secure boot signature,
but bootloader is unsigned (protected by secure boot digest).
2017-08-23 11:19:42 +10:00
43e231c916 bootloader: Don't unnecessarily test OTA app slots more than once per boot
Would loop more than once through each OTA possibility, but really only
needs to try each slot once.
2017-08-23 11:19:42 +10:00
83a3241341 wifi: Fix compilation error in WIFI_INIT_CONFIG_DEFAULT() if AMPDU disabled 2017-08-23 09:33:47 +10:00
173cce2850 docs: Included information about ESP32-WROVER module 2017-08-22 20:08:04 +02:00
0ed64da963 console: initialize buf_size before calling open_memstream
POSIX open_memstream documentation [1] does not mention that it may use
the  value supplied in buf_size before the call.
newlib implementation of open_memstream does use it as a hint of the
buffer size [2]. To avoid using potential garbage in this variable,
newlib caps the size to 64kB (!).

If the allocation of this initial buffer fails, NULL file pointer is
returned. Previous code did not check returned file pointer and crashed
when it was used.

Initialize size to zero (in which case newlib allocates a 64 byte
buffer), and check the returned file pointer.

[1] http://pubs.opengroup.org/onlinepubs/9699919799/functions/open_memstream.html
[2] https://github.com/espressif/newlib-esp32/blob/23c0f21/newlib/libc/stdio/open_memstream.c#L26-L29
    https://github.com/espressif/newlib-esp32/blob/23c0f21/newlib/libc/stdio/open_memstream.c#L324-L336
2017-08-23 01:10:30 +08:00
2861f3e88e Merge branch 'bugfix/spi_dma_align' into 'master'
fix(spi_dma): fix the receive error with RX DMA start with non-aligned address.

See merge request !1112
2017-08-22 23:39:53 +08:00
842caaab21 driver(touch): fix bug and add more features
1. add sens_struct.h
2. add definition of RTCCNTL and RTCIO
3. modify touch pad examples
4. update example code.
5. add comments add option in menuconfig
6. fix issue that pad index 8 and 9 are mismatched
7. add touch_pad_read_filtered() api to get value filtered by iir filter
8. modify touch pad isr func
9. Make the items in perihperal.ld in the sequence of address
10. delete Kconfig for touch pad
11. add touchpad filter APIs to adjust the filter
12. add touch_pad into index.rst
13. add touch_pad in Doxyfile
14. add touch_pad.rst
2017-08-22 21:21:39 +08:00
cf64c7e9a6 unit test: add sd env and spi env for sdmmc 2017-08-22 21:01:34 +08:00
61f64e38d9 assert when close a connecting socket 2017-08-22 20:36:35 +08:00
6f52cf0f9d Merge branch 'bugfix/ci_fix_getting_sources' into 'master'
CI: Fix the spell for more reliable getting the sources

See merge request !1127
2017-08-22 20:03:12 +08:00
4f4808445f Merge branch 'feature/sdmmc_highspeed_mode' into 'master'
SDMMC: add support for high-speed mode

See merge request !1108
2017-08-22 19:31:10 +08:00
0532d37373 Merge branch 'feature/esptool-v2.1' into 'master'
esptool: Update to v2.1 final release

See merge request !1131
2017-08-22 19:30:48 +08:00
4781f806f4 Merge branch 'feature/kconfig_options_doc' into 'master'
Generate documentation for Kconfig options

See merge request !1128
2017-08-22 19:30:31 +08:00
593fbe6d8d updata gatt read by type response bug 2017-08-22 18:11:01 +08:00
46e7570dcd component/bt: add example for ble spp server
- the first characteristic is used to receive data from client.
 - the second characteristic is used to notify data to client.
 - the third characteristic is used to receive command from client, user
   can add code to process the command.
 - the fourth characteristic is used to notify status to client.
 - the fifth characteristic is used to keep ble connection
2017-08-22 16:56:20 +08:00
642117a37f Merge branch 'bugfix/btdm_optimize_gatt_server_demo' into 'master'
component/bt: optimize gatt server demo

See merge request !1040
2017-08-22 16:30:08 +08:00
2e7d2b3ece Merge branch 'bugfix/btdm_modify_gatt_client_demo' into 'master'
component/bt: optimize gatt_client demo

See merge request !1039
2017-08-22 16:29:48 +08:00
a2dcf7faa8 nvs: Support for handling multiple NVS partitions
This commit adds support for multiple NVS partitions. This provides application a flexibility to have multiple NVS
partitions such as separate partition with read-only manufacturing data and read-write partition with configuration.
Application can also use this to separate out application's configuration storage from system configuration.

This feature does not change any of the basic property of NVS subsystem. The same-named namespaces across partitions are
considered to be different namespaces. The original NVS API available for the applications remains unchanged. The only
difference is that instead of first NVS partition in the partition table, it now operates on the partition with label
"nvs" (which is default in the IDF provided partition table files). Additional APIs are provided to open a handle and
erase NVS with partition name as a parameter.

A test case is added in the host tests and it is made sure that all the host tests pass. nvs_rw_value app is also tested
with multiple partitions.

Signed-off-by: Amey Inamdar <amey.inamdar@gmail.com>
2017-08-22 13:48:14 +05:30
3e4e4dd07a nvs_flash: Reduced visibility of handle counter
Monotonically increasing handle counter need not be visible outside the HandleEntry class.

Signed-off-by: Amey Inamdar <amey.inamdar@gmail.com>
2017-08-22 12:58:56 +05:30
908f94c8e9 docs: wifi: use list instead of nested table
Latex backend does not support nested tables, which caused documentation
build to fail on readthedocs.
2017-08-22 15:12:35 +08:00
08e787dc4d mbedtls: remove duplicate Kconfig options 2017-08-22 15:12:35 +08:00
430cf3e9b3 docs: link to Kconfig options documentation 2017-08-22 15:12:35 +08:00
a2f4f2999d docs: generate documentation for Kconfig options
This adds a simple script which parses Kconfig files using Kconfiglib
and emits ReST document with the list of all options. For each option
a link target is generated, to make it possible to link to any Kconfig
option from the rest of the documentation.
Since Kconfiglib is not on PyPI, the latest version (45f87b9d) is
bundled into the docs directory.
2017-08-22 15:12:34 +08:00
6fa06c4646 Component/bt: optimize gatt server demo 2017-08-22 14:48:01 +08:00
2e6835e90c Component/bt: optimize gatt_client demo 2017-08-22 14:40:12 +08:00
fb43948413 Update several Kconfig files to make help texts compatible with ReST 2017-08-22 14:34:19 +08:00
974cff4773 Component/bt: fixbug_set_rand_addr()
- The two most significant bits of the address shall be equal to 1
- All bits of the random part of the address shall not be equal to 1
- All bits of the random part of the address shall not be equal to 0
2017-08-22 14:25:10 +08:00
9b18625d29 Merge branch 'bugfix/memory_leak_when_run_wpa2' into 'master'
wpa2: fix memory leak when run wpa2

See merge request !1126
2017-08-22 14:18:17 +08:00
9f24f06a65 Merge branch 'bugfix/btdm_security_section_remove_bug' into 'master'
component/bt: Change the remove section error &&  SMP_INCLUDE marco

See merge request !1133
2017-08-22 14:13:29 +08:00
43f3c59f81 Merge branch 'feature/btdm_add_multiple_connections_demo' into 'master'
component/bt : add gattc multiple connect demo

See merge request !1027
2017-08-22 14:12:33 +08:00
5c3f2bdd00 Merge branch 'feature/btdm_add_gatt_security_client_demo' into 'master'
component/bt: add gatt_security_client demo

See merge request !1049
2017-08-22 11:59:42 +08:00
b0188b3f29 Merge branch 'bugfix/btdm_add_check_value_length_for_gatts_get_attribute_value' into 'master'
component/bt: add check value and length for esp_ble_gatts_get_attr_value(uint16…

See merge request !1110
2017-08-22 11:37:56 +08:00
71d35c7770 component/bt: Change the remove section error. 2017-08-21 23:28:45 -04:00
581aa57a05 nghttp: Restore nghttp2 v1.24
We had already updated to v1.24 months ago, but the submodule commit was accidentally
reverted in 1fb85b494c.

Fixes (again) error when compiling with assertions disabled.

As reported on forum: https://esp32.com/viewtopic.php?f=13&t=2750&p=13069
2017-08-22 13:01:36 +10:00
d739e6bf05 WPA2:Fix the issue memory leak when run wifi enterprise
fix the issue memory leak when run wpa2
2017-08-22 10:49:31 +08:00
d6c3fb52c8 esptool: Update to v2.1 final release
Replaces v2.1-beta1 release.

Compared to beta, fixes issues with espefuse.py not prompting correctly on Windows (TW11139).
2017-08-22 11:49:07 +10:00
4c9754726f fix(spi_master): fix the command field to make it more intuitive to use. 2017-08-21 20:37:57 +08:00
fc85cb683d Merge branch 'feature/wifi_and_ip_event_process_refactor' into 'master'
Feature/wifi and ip event process refactor

See merge request !986
2017-08-21 19:49:30 +08:00
5c9d9ae696 Merge branch 'bugfix/btdm_smp_invalid_key_size' into 'master'
component/bt: Change the SMP key size analyzing conditions.

See merge request !958
2017-08-21 19:38:15 +08:00
44e9be5d83 Merge branch 'bugfix/btdm_cherry_pick_api_manage_pair_info_#13119' into 'master'
component/bt: cherry-pick the bugfix/btdm_api_manage_pair_info_#13119 to this branch.

See merge request !1095
2017-08-21 19:37:15 +08:00
202c5783db component/bt:squash the 2 commits.
component/bt: cherry-pick the bugfix/btdm_api_manage_pair_info_#13119 to this branch.

component/bt: Change the ble gap API code format & added the status judgment in the btc_storage_load_bonded_ble_devices function.
2017-08-21 06:17:21 -04:00
c5ea00c727 component/bt: Change the debug info. 2017-08-21 17:49:05 +08:00
eebc2e2df1 component/bt: Change the btm ble security key size range. 2017-08-21 17:49:05 +08:00
677f58577f component/bt: Change the SMP key size analyzing conditions. 2017-08-21 17:49:05 +08:00
195a5f977b Merge branch 'feature/console' into 'master'
Console component and example

See merge request !1114
2017-08-21 17:33:31 +08:00
abe9516fdc newlib: implement usleep 2017-08-21 15:58:28 +08:00
10f0543080 console: add support for terminal probing and dumb terminal mode 2017-08-21 15:58:28 +08:00
1e4587a09f vfs: implement fcntl via VFS interface 2017-08-21 15:58:28 +08:00
141b1174c6 idf_monitor: send CR when ENTER is pressed
Other terminal emulators (screen, minicom) default to sending CR when
ENTER is pressed on the keyboard. Make behavior of idf_monitor
consistent with them.
2017-08-21 15:58:28 +08:00
d7d6f1e376 idf_monitor: use cancellation and Console.getkey from pyserial 3.3.0+
Between 3.1.0 and 3.3.0, pyserial had thread cancellation implemented
using a select, which blocked on the stdin and an auxiliary pipe. When
thread had to be cancelled, a byte would be sent into the pipe,
unblocking stdin.

Unfortunately, this method suffers from a problem with using select on
a StreamReader (which represents the decoder wrapped around stdin).
In some cases, when the TTY sends an escape sequence in response to
an escape sequence received from serial, this escape sequence will not
be read from stdin until some key is pressed.

In https://github.com/pyserial/pyserial/commit/cab3dab, this method
was replaced with an TIOCSTI ioctl. This change makes sure we use the
new cancellation method even if the script is running with older
pyserial.
2017-08-21 15:58:28 +08:00
489c523870 vfs: support for blocking reads, more newline conversion options
Previously VFS driver for UART could only use simple non-blocking
functions to read from and write to the UART. UART driver provides more
complex blocking and interrupt-driven functions, which can be used
instead.
This commit adds optional support for using UART driver's functions.

Also added is a more flexible mechanism for configuring newline
conversion rules on input and output.

This commit also fixes a bug that all UARTs shared one static variable
used as a character buffer in newline conversion code. This variable is
changed to be per-UART.
2017-08-21 15:58:28 +08:00
a8075ea140 console/argtable3: expose arg_print_formatted function 2017-08-21 15:58:28 +08:00
160f842d35 console/argtable3: fix usage of char as argument to ctype functions 2017-08-21 15:58:27 +08:00
5de7c91a54 add console component and example 2017-08-21 15:58:27 +08:00
363f201603 Merge branch 'bugfix/exection_not_init_bt_use_smp_api_#13691' into 'master'
component/bt: Added the bluedorid status checkout for the BLE security API.

See merge request !1045
2017-08-21 14:51:17 +08:00
b45433110f tcpip_adapter/lwip: optimize wifi/ip event 2017-08-21 14:36:44 +08:00
618e56abf9 CI: Fix the spell for more reliable getting the sources 2017-08-21 11:52:49 +08:00
2c0ff0c1e1 mbedtls: Add a shim header to account for including "mbedtls/config.h" directly in program
Previously this resulted in a config mismatch between default config and esp_config.h

Closes https://github.com/espressif/esp-idf/issues/711
2017-08-21 12:37:53 +10:00
f44091e48a Merge branch 'feature/mbedtls_cipher_config' into 'master'
mbedtls: Add compile-time configuration, better default configuration

See merge request !1118
2017-08-21 07:19:24 +08:00
6276e71fc1 Component/bt: add check value and length for esp_ble_gatts_get_attr_value(uint16_t attr_handle, uint16_t *length, const uint8_t **value); 2017-08-20 19:12:57 +08:00
f2ce3e8678 ESP-WROVER-KIT now integrates the ESP32-WROVER module by default. But it is still compatible with both ESP-WROOM-32 and ESP32-WROVER. The latest baseboard is still V3. The original 'ESP-WROVER-KIT' that integrates ESP-WROOM-32 is unlikely to be produced any longer, while the original 'ESP-WROVER-KIT-RVB' is renamed as “ESP-WROVER-KIT” and in mass production. 2017-08-19 21:16:00 +02:00
78a0523757 Example on use application trace logging to host 2017-08-19 15:44:06 +02:00
bb7d5fc10f Merge branch 'feature/remove_ethernet_config_option' into 'master'
ethernet: remove CONFIG_ETHERNET

See merge request !1116
2017-08-18 18:45:49 +08:00
66ad84d318 mbedtls: Add more config options to disable Elliptic Curve features
Can save up to an additional 20KB when not using EC in TLS, or disable
unwanted features as needed.
2017-08-18 17:44:33 +10:00
ea171a651c https example: Use correct pattern around mbedtls_ssl_write()
mbedtls_ssl_write() will always write the request here in one go,
but it's good to have correct patterns in examples.
2017-08-18 17:15:11 +10:00
f4404ae220 https example: Clean up output, print cipher suite & request count 2017-08-18 17:15:11 +10:00
c0f65f6680 mbedtls: Expose compile-time config, disable some things by default
* Disables 3DES, Camellia, Blowfish, RC4, RIPEMD160, SSLv3, TLS-PSK modes, DTLS by default
* Saves about 40KB from the default TLS client code size
* Defaults no longer get "Bad" howsmyssl.com rating (no more vulnerable 3DES)
  (ping https://github.com/espressif/arduino-esp32/issues/575 )
* Allows up to another 20-30KB code size to be trimmed without security
  implications if using DER formatted certificates, RSA ciphersuites only,
  etc.
* Can save up to another 8KB by setting the TLS Role to Server or Client only.
2017-08-18 17:15:08 +10:00
979eabeba5 libsodium: Use mbedTLS implementations for SHA256 & SHA512
* Adds support for hardware accelerated SHA
* Saves code size (~5.5KB) for SHA256 & SHA512 where libsodium & mbedTLS both used
2017-08-18 16:29:04 +10:00
b354b75eed Merge branch 'example/lcd_type' into 'master'
example(spi_master): add menuconfig options allowing users to choose which type of LCD is used.

See merge request !1025
2017-08-18 14:21:12 +08:00
4c1c62a453 wifi: refactor code to match ethernet's init function structure 2017-08-18 08:33:02 +05:30
8348a71847 ethernet: remove CONFIG_ETHERNET
1. Hello World application shows no footprint difference before and
after this change
2. examples/ethernet/ethernet application compiles properly (can't
test with my board)
2017-08-18 08:31:43 +05:30
f6495d618f example(spi_master): add menuconfig options allowing users to choose which type of LCD is used.
also some modification in the example file, replacing "ili_*" to "lcd_*".
2017-08-18 10:26:07 +08:00
a01db5569c fix(spi_dma): fix the receive error with RX DMA start with non-aligned address. 2017-08-18 10:14:49 +08:00
bfb15c6fc9 Merge branch 'bugfix/docs_app_trace_lib' into 'master'
Update of "Application Level Tracing library" documentation to reflect "esp32" target

See merge request !1081
2017-08-16 19:12:51 +08:00
eddc07eebf Merge branch 'feature/set_static_ip_to_zero' into 'master'
Zero static IP address can also be set

See merge request !1101
2017-08-16 19:12:01 +08:00
44f5b9f78d Merge branch 'bugfix/docs_datasheet_link_fix' into 'master'
Fix the wrong link of the datasheet

See merge request !1100
2017-08-16 19:11:43 +08:00
14c96838bf sdmmc: add more comments about card initialization steps 2017-08-16 18:59:04 +08:00
6baf8195ee sdmmc: add support for high speed (HS) mode
By default SD cards are initialized in default speed (DS) mode. Enabling
HS mode requires SWITCH_FUNC command to be sent twice: first time to
query if the card supports switching to HS mode, second time to perform
the switch.

This change implements SWITCH_FUNC command and adds the procedure to
switch to HS mode.
2017-08-16 18:59:04 +08:00
9253d316e7 sdmmc: implement deselecting a card
In some cases the card needs to be returned to standby mode from data
transfer mode. This is done using CMD7 command, which does not receive
any response in this case.
2017-08-16 18:59:04 +08:00
f908425b13 sdmmc: introduce is_app_cmd flag, check it along with opcode
‘make_hw_cmd’ function checks opcodes in a few cases. Comparing opcode
does not tell the whole story, because for some SD commands there is are
APP commands with the same opcodes. This change introduces a flag which
indicates whether the next command is going to be an APP command.
The check for APP_SET_BUS_WIDTH command is updated to use this flag.
This fixes a bug with an unexpected STOP_TRANSMISSION command sent after
SWITCH_FUNC command, which has opcode 6, same as APP_SET_BUS_WIDTH.
2017-08-16 18:59:04 +08:00
e6258ac6cb sdmmc: don’t flip word order in MMC_RSP_BITS
MMC_RSP_BITS helper function had a hack that it flipped word order in
the response, assuming that response size is 4 words. This hack does not
work for responses which are not 4 words long (such as the SWITCH_FUNC
response, which is 64 words long).

This change removes the hack and the matching word order reversal code
in sdmmc driver.
2017-08-16 18:59:04 +08:00
159a2d01d1 Merge branch 'bugfix/spi_dma' into 'master'
bugfix(spi_master): fix several issues when using RX DMA

See merge request !1006
2017-08-16 18:55:25 +08:00
8a7bc34b78 Merge branch 'feature/remove_wifi_config_option' into 'master'
Remove wifi config option

Remove Wi-Fi enable/disable option from Kconfig. This can be detected by the presence of esp_wifi_init() function in the application. Minimum footprint impact after the change.

See merge request !1098
2017-08-16 18:43:56 +08:00
63c738de4c sdkconfig: Remove rest of the references to WIFI_ENABLED 2017-08-16 15:55:42 +05:30
6405d6f874 kconfig: Add an option for skipping binary blobs 2017-08-16 15:55:42 +05:30
ba8cd58b08 kconfig: Remove Wi-Fi on/off as a menuconfig option
This is no longer required since the functions automatically get
pulled in based on the usage. A quick summary of footprint
comparisions before and after these set of patches is shown below:

Hello-World: (simplified for readability)
 old Total image size:~ 104902 bytes (.bin may be padded larger)
 old Total image size:~ 105254 bytes (.bin may be padded larger)
 Per-archive contributions to ELF file:
             Archive File DRAM .data & .bss   IRAM Flash code & rodata   Total
 old              libesp32.a       1973    177   4445       3939     2267   12801
 new              libesp32.a       1973    185   4473       3939     2267   12837

 new             libnvs_flash.a          0     92      0        274        8     374
 new             libstdc++.a          0      0      0         24        0      24

For some reason, nvs_flash.a (~400bytes) gets pulled in (particularly
the nvs_flash_init() function).

Power-Save: (simplified for readability)
 old Total image size:~ 421347 bytes (.bin may be padded larger)
 old Total image size:~ 421235 bytes (.bin may be padded larger)

 old      libtcpip_adapter.a          0     81      0       1947      115       2143
 new      libtcpip_adapter.a          0     69      0       1897      115       2081

The size actually shrinks a bit, since the AP interface function
doesn't get pulled in.
2017-08-16 15:55:28 +05:30
a24130b390 tcpip_adapter: Decompose tcpip_adapter_start() into interface specification options
Since only the used interface's start function gets called, it pulls
in only the functions that are required in the current application,
thereby saving footprint.
2017-08-16 15:54:29 +05:30
159e7e81b4 esp32: Make 'restart' function independent of Wi-Fi
Restart being a lower-layer system-level function, needn't depend on
the higher level Wi-Fi libraries.

This also enables us to get rid of one more WIFI_ENABLED ifdef check
2017-08-16 15:54:28 +05:30
a41b1a9d1f esp32: Register event handlers on the esp_wifi_init() call 2017-08-16 15:54:28 +05:30
55a6aca355 wifi: Map esp_wifi_init() to esp_wifi_init_internal()
Follow-on patches will include additional functionality in
esp_wifi_init()
2017-08-16 15:54:28 +05:30
8063b93497 wifi_lib: Update to the change in the wifi_lib repository 2017-08-16 15:54:13 +05:30
1633582ac4 Merge branch 'bugfix/spi_address' into 'master'
fix(spi_master): make the address field more intuitive to use.

See merge request !1074
2017-08-16 10:25:21 +08:00
0eb59844bb bugfix(driver): fix RMT issues from github
1. Rename api from rmt_get_ringbuf_handler to rmt_get_ringbuf_handle (Github Issue #274)
2. doxygen param rename
3. change API rmt_wait_tx_done to specify maximum waiting time
4.Change return type of rmt_wait_tx_done API from bool to esp_err_t
5. update doc
2017-08-15 17:23:51 +08:00
ed1d084aea fix(spi_master): make the address field more intuitive to use.
The address field should be placed at the highest bits of address and slv_wr_status registers. Instead of breaking the address into two parts and fill in each register, move the address to the highest bits and write to the registers respectively.

Breaking change: if you fill-in the SPI address filed in a previous version in some way and it works correctly, you still have to rewrite the address, in a more intuitive way.
2017-08-15 14:49:31 +08:00
969f1bb9be Merge branch 'bugfix/ota_failsafe' into 'master'
bootloader: Fallback if OTA data is invalid

See merge request !1033
2017-08-15 08:11:38 +08:00
e9bfa9ed63 Merge branch 'bugfix/docs_get_started_introduction' into 'master'
Included 'Introduction' from original 'Get Started' PDF

See merge request !1065
2017-08-15 07:52:54 +08:00
5eef5e7a5d bootloader: Fallback if OTA data is invalid
Make bootloader more robust if either OTA data or some OTA app slots are corrupt.
2017-08-15 09:42:19 +10:00
366e4397e9 fix(spi_dma_rx): fixed the invalid argument issue in full-duplex mode.
force rxlength=length and mosi=1 and inlink.start=1 on in full-duplex mode.
set rxlength > length is forbidden in full-duplex mode.

TW#12609, TW#14240, https://www.esp32.com/viewtopic.php?f=13&t=2519
2017-08-14 17:25:30 +08:00
227b011f6a fix(spi_master): fix SPI master, now able to transfer more than 32 bytes in non-DMA-accessable area.
apply for internal space to hold these data.
use DMA when it's enabled, no matter long or short.

TW#12226, github#551
2017-08-14 17:19:57 +08:00
b0b323df37 Included 'Introduction' from original 'Get Started' PDF 2017-08-14 08:06:42 +02:00
8f44efc619 Merge branch 'bugfix/ledc_fade_divided_by_zero' into 'master'
bugfix(ledc): fix integer divided by zero in function ledc_set_fade_with_time

See merge request !1048
2017-08-14 13:52:36 +08:00
5fdde089e5 Merge branch 'bugfix/wl_ext_size_test' into 'master'
wear_levelling: fix unit test, fix sector erase in performance mode

See merge request !1093
2017-08-14 09:35:12 +08:00
d119f778fa Merge branch 'bugfix/build_output_not_consistent' into 'master'
build: Print real paths for generated build objects

See merge request !1097
2017-08-14 09:34:00 +08:00
0cc59d5f67 build: Print real paths for 'ulp' build objects as well
Signed-off-by: Kedar Sovani <kedars@gmail.com>
2017-08-11 14:26:44 +05:30
cd5cc9927b Merge branch 'feature/TW14048_optimize_tcp_perf_example' into 'master'
feature/TW14048_optimize_tcp_perf_example

See merge request !1041
2017-08-10 21:43:18 +08:00
6c892e3cca Merge branch 'feature/docs_setup_sphinx' into 'master'
Instructions how to setup tools and  build documentation locally

See merge request !1063
2017-08-10 21:39:13 +08:00
b041c042bb component/bt: Fix gatt read by type response bug 2017-08-10 20:05:10 +08:00
67b6327c4e Zero static IP address can also be set 2017-08-10 19:43:26 +08:00
e782928b50 example: optimize the robust of TCP connect 2017-08-10 18:19:50 +08:00
b73c5ddc7d build: Print real paths for generated build objects 2017-08-10 09:34:44 +05:30
fe80e1a595 Fixed Breathe release because 'latest' introduces errors 2017-08-09 19:09:59 +02:00
00a81564f0 Merge branch 'master' of https://gitlab.espressif.cn:6688/idf/esp-idf into feature/docs_setup_sphinx 2017-08-09 18:46:43 +02:00
43b81c8f11 Merge branch 'feature/fast_crypto_used_in_supplicant' into 'master'
Add the fast crypto function in supplicant, relate to the task tw13712

See merge request !1075
2017-08-09 21:55:05 +08:00
57bc38d867 Add the fast crypto function in supplicant
optimize the speed when do wifi connect
2017-08-09 21:36:13 +08:00
3a608a359d doc: Fix the wrong link 2017-08-09 18:41:02 +08:00
af414eadbd Log level changed to remove useless info. 2017-08-09 10:25:40 +03:00
8f0f9d8ab0 Fix: tests now process correct. The length of written array now fit to the defined range.
Fix: perfomance mode bugfix for big sector sizes.
2017-08-09 09:35:32 +03:00
b8b553d122 Merge branch 'feature/docs_build_openocd_windows' into 'master'
Provided instruction to build OpenOCD from sources using MSYS2

See merge request !1062
2017-08-09 13:17:35 +08:00
142f4ac071 Merge branch 'feature/docs_wrover_kit_description' into 'master'
Updated desription of ESP-WROVER-KIT features in getting started guide, changed …

See merge request !1064
2017-08-09 13:17:19 +08:00
d03ad1ad73 t # This is a combination of 2 commits.
Component/bt : add gattc multiple connect demo
2017-08-08 20:15:38 +08:00
4efc97efc1 component/bt: All esp_bluedroid_get_status check-return could be used as MACRO ESP_BLUEDROID_STATUS_CHECK(ESP_BLUEDROID_STATUS_ENABLED); 2017-08-08 05:28:19 -04:00
1c6be3ab63 Merge branch 'bugfix/wl_test_fail' into 'master'
unit test fixes

See merge request !1085
2017-08-08 16:32:11 +08:00
5539bfb83b sdmmc: mark new unit test as ignored 2017-08-08 03:51:54 +08:00
59a28ebccc wear_levelling: temporarily disable 512 byte sectors
Unit tests are failing with the new 512 byte sector option. Disabling
this option to let the tests pass.
2017-08-08 03:26:14 +08:00
097dced499 wear_levelling: clean up Kconfig 2017-08-08 03:26:14 +08:00
b260f6cb25 Merge branch 'bugfix/sdmmc_unaligned_write' into 'master'
sdmmc: fix reads/writes to/from unaligned buffers

See merge request !1071
2017-08-08 02:55:13 +08:00
a88435ccbf Merge branch 'feature/aws_iot_menuconfig' into 'master'
aws_iot: Expose common SDK compile-time configuration in menuconfig

See merge request !1030
2017-08-07 17:22:48 +08:00
dfda0fa67b Merge branch 'feature/add_gpio_drive_capability' into 'master'
feature(gpio): add APIs to set and get pad drive capability.

See merge request !1010
2017-08-07 17:21:42 +08:00
7421452ca2 Merge branch 'bugfix/nghttp_build_port' into 'master'
nghttp: build port directory

See merge request !1057
2017-08-07 17:21:15 +08:00
72ee0120cd Merge branch 'feature/wl_ext_sector_size' into 'master'
Feature/wl ext sector size

See merge request !1038
2017-08-07 17:20:34 +08:00
938085e749 Merge branch 'bugfix/windows_build' into 'master'
Disable link time optimisation for bootloader

See merge request !1044
2017-08-07 17:19:16 +08:00
ca5065c66c Trace collection command examples 2017-08-05 16:54:58 +02:00
485518cb59 Target change, clarifications and formatting updates 2017-08-04 22:17:31 +02:00
a7f8ac5ad6 Component/bt: add gatt_security_client demo
-  connect gatt_security_server demo with paring and bonding
- connet other ble devices that needs to be encrypted
2017-08-04 16:26:17 +08:00
a92806b089 Merge branch 'bugfix/tw14130_fix_buf_err' into 'master'
emac:fix rx buf err

See merge request !1073
2017-08-04 15:17:33 +08:00
01a2c31e1f change copy right 2017-08-04 14:56:58 +08:00
886ea722ec Merge branch 'bugfix/btdm_add_set_local_privacy_callback' into 'master'
component/bt: add set local privacy func callback

See merge request !1026
2017-08-04 14:52:02 +08:00
ea3b3046c2 Merge branch 'bugfix/btdm_fix_esp_ble_gatts_set_attr_value_memory_leak' into 'master'
component/bt: fix esp_ble_gatts_set_attr_value() memory leak

See merge request !1068
2017-08-04 14:40:54 +08:00
05aa09fbb9 beautify the code 2017-08-04 14:24:44 +08:00
1e6f904d38 add comments for rx list 2017-08-03 14:44:22 +08:00
e165336428 Merge branch 'bugfix/btdm_Wrong_return_code_type_for_esp_ble_gattc_register_for_notify_and_unregister_for_notify_func' into 'master'
component/bt: fix wrong return code type for notify functions

See merge request !1070
2017-08-03 10:49:47 +08:00
d286d2f647 Merge branch 'feature/apptrace_api_ext' into 'master'
esp32: Apptrace API enhancement

See merge request !1021
2017-08-02 14:34:42 +08:00
b1fcfca987 Updated desription of ESP-WROVER-KIT features in getting started guide, changed link to JTAG Debugging 2017-08-02 06:57:28 +02:00
2e94b51b9c Instructions how to setup tools and build documentation locally 2017-08-02 06:33:55 +02:00
d5119dd529 Provided instruction to build OpenOCD from sources using MSYS2 2017-08-02 06:10:44 +02:00
b7aa9374a1 Merge branch 'bugfix/btdm_remove_fixqueue' into 'master'
component/bt : remove fixed queue from btu

See merge request !1072
2017-08-02 11:02:05 +08:00
ae571ddddf fix rx buf 2017-08-01 11:59:57 +08:00
d2872cbf2e component/bt : remove fixed queue from btu 2017-08-01 11:35:22 +08:00
fedc5090d1 Merge branch 'bugfix/btdm_optimize_controller_task' into 'master'
component/bt : fix a bug and optimize controller task handler

See merge request !1066
2017-08-01 11:10:56 +08:00
512898edee sdmmc: fix reads/writes to/from unaligned buffers
SDMMC hardware treats all buffers as aligned, and ignores 2 LSBs of
addresses written into DMA descriptors. Previously SDMMC host driver
assumed that data buffers passed from SDDMC command layer would be
aligned. However alignment checks were never implemented in the command
layer, as were the checks that the buffer coming from the application
would be in DMA capable memory. Most of the time this was indeed true.
However in some cases FATFS library can pass buffers offset by 2 bytes
from word boundary. “DMA capable” restriction may be broken if pSRAM
support is used.

This change adds buffer checks to the SDMMC host driver (alignment and
DMA capability), so that the host layer will error out for incompatible
buffers. In SDMMC command layer, a check is added to read and write
functions. If an incompatible buffer is passed from the application, new
buffer (512 bytes size) is allocated, and the transfer is performed
using {READ,WRITE}_SINGLE_BLOCK commands.
2017-08-01 03:15:11 +08:00
9314bf0d37 Merge branch 'bugfix/spi_change_host' into 'master'
fix(spi_master): fix the bug that VSPI no respond when host changed from HSPI to VSPI, and vice versa.

See merge request !997
2017-07-31 18:33:36 +08:00
831cc4b42f Typos correction. 2017-07-31 13:19:41 +03:00
06805842ea Some typos corrected in readme. 2017-07-31 13:19:38 +03:00
9ebb68c2dc Added component to change standard size of the flash device. Now the sector size could be less. The configuration supports it. 2017-07-31 13:19:36 +03:00
6ff53d1967 Component/bt: wrong return code type for notify func
- fix  esp_ble_gattc_register_for_notify()  returen wrong code type
- fix  esp_ble_gattc_unregister_for_notify()  returen wrong code type
2017-07-31 18:02:15 +08:00
87d58b9ddb Component/bt: fix esp_ble_gatts_set_attr_value( ) memory leak 2017-07-31 17:24:07 +08:00
6afadc3286 component/bt : fix a bug and optimize controller task handler
1. fix controller task printf in ISR may cause exception.
2. optimize task handler process.
2017-07-31 14:48:39 +08:00
dce7fcb90d Merge branch 'bugfix/sdspi_docs' into 'master'
Fix SD SPI docs

See merge request !1058
2017-07-28 16:03:45 +08:00
5991f1d573 Merge branch 'feature/add_get_and_set_wifi_max_tx_power_api' into 'master'
add get and set wifi maximum transmit power API

See merge request !1053
2017-07-28 15:47:50 +08:00
1c4f7f2081 add get and set wifi maximum transmit power API 2017-07-28 15:06:52 +08:00
a31736990c Merge branch 'bugfix/btdm_osi' into 'master'
component/bt : add osi_is_in_isr && fix vhci delay

See merge request !1054
2017-07-28 11:35:04 +08:00
ff3aa69e76 Merge branch 'feature/tw13968_optimize_for_tcp_close' into 'master'
lwip: optimize TCP close

See merge request !1022
2017-07-28 11:34:12 +08:00
3bd6194c58 Merge branch 'feature/docs_jtag_debugging' into 'master'
Update and extension of Debugging documentation

See merge request !850
2017-07-27 22:03:45 +08:00
770b9e3b9e docs: fix warnings related to SD SPI documentation 2017-07-27 20:43:26 +08:00
d4982e0b64 docs: temporary downgrade Sphinx to 1.5.6 to work around Breathe issue 2017-07-27 20:43:26 +08:00
046b2c0aa4 docs: add OpenOCD/JTAG instructions for macOS 2017-07-27 20:25:56 +08:00
4ad1f2b272 lwip: optimize TCP close
Optimize TCP close:
1. Not remove TCP pcb when IP address is changed since the lwip netconn still need the pcb
2. If the TCP connection is in TCP_FIN_WAIT_1 for too long time, remove it
2017-07-27 12:44:39 +08:00
843159b0d7 Merge branch 'feature/add_menuconfig_option_for_ba_window' into 'master'
esp32: add menuconfig options to configure BA window

See merge request !915
2017-07-27 10:46:04 +08:00
fc05851b05 Component/bt: add set local privacy func callback 2017-07-26 17:29:10 +08:00
09c8851b8d Merge branch 'feature/esp-wrover-kit-rvb_note' into 'master'
Add a note what is different about ESP-WROVER-KIT RVB

See merge request !1008
2017-07-26 16:12:58 +08:00
f50fd070c9 Updated links to binary distributions of OpenOCD 2017-07-26 14:53:54 +08:00
7d86f167ee docs: Flashing over JTAG was added 2017-07-26 14:53:48 +08:00
1fb85b494c JTAG Debugging - revamping of Debugging documentation 2017-07-26 14:53:43 +08:00
ee6d0631f4 nghttp: build port directory
Fixes https://github.com/espressif/esp-idf/issues/843
2017-07-26 14:27:20 +08:00
002f38fa8f Merge branch 'feature/sdspi_driver' into 'master'
SD SPI mode driver

This MR adds functionality to support SD cards connected via SPI interface.
Additionally, two bugs are fixed:
- Definition of `SPI_TRANS_MODE_DIOQIO_ADDR` in spi_master driver
- SD card probing frequency was 4000kHz instead of 400kHz as required by the standard

See merge request !727
2017-07-26 13:51:37 +08:00
460ab2e33b Merge branch 'feature/make_tcp_udp_receive_mbox_configurable' into 'master'
lwip: Make UDP/TCP receive mail box configurable

See merge request !1051
2017-07-25 20:45:38 +08:00
f19b08b25a Merge branch 'bugfix/tw14130_fix_emac_rx_buf_err' into 'master'
lwip/ethernet: fix emac rx buf err

See merge request !1037
2017-07-25 20:41:22 +08:00
b500d6558a component/bt : add osi_is_in_isr && fix vhci delay 2017-07-25 19:58:39 +08:00
7b2f388abc lwip: Make UDP/TCP receive mail box configurable
Different application may require different TCP/UDP receiv mail box size,
so make them configurable.
2017-07-25 13:56:32 +08:00
c99c5d13e6 esp32: add menuconfig options to configure BA window
Make AMPDU Block Ack Window configurable in menuconfig because we need to configure it
in some special cases, such as iperf test etc
2017-07-25 13:11:38 +08:00
9ae5c6700b lwip/ethernet: fix emac rx buf err
1. Lwip not free the ethernet buf in lwip layer
2. Fix emac counter error
2017-07-25 11:19:31 +08:00
60c45ae2c4 Updated acc to comments 2017-07-24 20:07:21 +03:00
c2c9149a24 esp32: Apptrace API enhancement
- User down buffer configuration support
 - bugfix: ring buf - avalable write size undeflow
 - SysView down buf support updated
2017-07-24 19:57:44 +03:00
6fbd6a007b Merge branch 'bugfix/uart_tx_glitch' into 'master'
bugfix(uart): fix signal glitch on tx pin

See merge request !1032
2017-07-24 19:43:25 +08:00
9d9280a8ea component/bt: Added the bluedorid status checkout for the BLE security API. 2017-07-24 02:50:23 -04:00
94f1bc3e8c Merge branch 'feature/tw12244_add_more_comments_for_wifi_api' into 'master'
docs: add wifi.rst

See merge request !880
2017-07-24 14:11:24 +08:00
7b44d3c083 Merge branch 'bugfix/btdm_blufi_aes_cfb128' into 'master'
component/bt : comment out set_key_dec for res cfb128(software crypt)

See merge request !971
2017-07-24 14:08:11 +08:00
c74a2b0198 Merge branch 'bugfix/btdm_rx_losing' into 'master'
Bugfix/btdm rx losing

See merge request !1034
2017-07-24 14:05:36 +08:00
508855538e docs: add wifi.rst
Add more documents about WiFi API/Event Mechanism/State Machine etc
2017-07-24 10:20:06 +08:00
967611cfaa Revert "bootloader: Add option to build with Link Time Optimisation enabled"
This reverts commit d1b66a08c1.
2017-07-24 05:14:31 +08:00
acec9b9d35 bugfix(ledc): fix integer divided by zero in function ledc_set_fade_with_time 2017-07-21 19:06:44 +08:00
99769f0b00 fix(spi_master): fix the bug that VSPI no respond when host changed
from HSPI to VSPI, and vice versa.

fix the SPI control bits written wrong in the headers.

TW#12123, Github#477
2017-07-21 14:50:17 +08:00
d515eeac6a Merge branch 'bugfix/ci_examples_list_order' into 'master'
Make the list of examples permanent between jobs
because the results of the 'find' command are not sorted by name.

Fix the identified problem on master

See merge request !1036
2017-07-20 18:32:56 +08:00
0e54caabe3 examples: add missing nvs_flash.h include 2017-07-20 17:20:49 +08:00
341cc8221c CI: Make the list of examples permanent between jobs
Because the results of the 'find' command are not sorted by name.
2017-07-20 16:46:49 +08:00
63566f6650 component/bt : fix RX packets losing bug 2017-07-20 15:53:01 +08:00
8fd6ab9a39 Merge branch 'feature/btdm_ble_tx_power_new' into 'master'
component/bt : add ble tx power && fix controller deinit mem leak

See merge request !1018
2017-07-20 15:16:13 +08:00
9d466de235 bugfix(uart): fix signal glitch on tx pin
gpio_matrix_out function will set output enable for GPIO, seems in gpio_matrix_out there will be a short moment that the chip will output GPIO level.
So we can set GPIO as high before gpio_matrix_out function.
2017-07-20 14:34:11 +08:00
292c2abd3b Merge branch 'bugfix/init_nvs_in_bluetooth' into 'master'
bt: call nvs_flash_init in examples, show error if NVS is not initialized

See merge request !1003
2017-07-20 14:25:49 +08:00
e5bb45f381 driver: SD protocol driver for SPI peripheral 2017-07-20 13:43:07 +08:00
5f8785eaec sdmmc: add support for SPI protocol commands 2017-07-20 13:34:21 +08:00
3b96771feb sdmmc: fix probing clock frequency
Probing clock frequency should be 400kHz, not 4MHz.
2017-07-20 13:34:21 +08:00
54dc350907 spi_master: fix duplicate bit mask for SPI_TRANS_MODE_DIOQIO_ADDR 2017-07-20 13:34:21 +08:00
eeb8dc9c35 aws_iot: Expose common SDK compile-time configuration in menuconfig
Closes https://github.com/espressif/esp-idf/issues/637
2017-07-20 15:28:29 +10:00
f6193a68a5 Merge branch 'bugfix/example_adc_pin' into 'master'
Changed adc GPIO pin 32, that is not jumped to header in ESP-WROVER-KIT,
to 34

See merge request !1020
2017-07-20 12:15:43 +08:00
b9f660524c Merge branch 'bugfix/exception_lomem_heap_init' into 'master'
heap_caps: Allow for possibility a region is too small to register a heap

See merge request !1024
2017-07-20 12:13:12 +08:00
b88c8d19fd Merge branch 'bugfix/project_makefile_recompile' into 'master'
build system: Updating project Makefile should trigger a full rebuild

See merge request !990
2017-07-20 10:10:00 +08:00
e468cdee1d Merge branch 'feature/boot_time_optimisation' into 'master'
Optimise boot times, calculate SHA-256 hash of image during boot

See merge request !939
2017-07-20 10:00:19 +08:00
871ba41a09 bootloader: Remove unnecessary KEEP on data/bss sections, save static RAM 2017-07-19 18:31:59 +10:00
d1b66a08c1 bootloader: Add option to build with Link Time Optimisation enabled 2017-07-19 18:31:59 +10:00
17adb40ca8 bootloader: Calculate SHA256 hash of image on every boot
Makes app image booting more reliable (256-bit rather than 8-bit verification.)

Some measurements, time to boot a 655KB app.bin file and run to app_main() execution.

(All for rev 1 silicon, ie no 340ms spurious WDT delay.)

80MHz QIO mode:
before = 300ms
after = 140ms

40MHz DIO mode:
before = 712ms
after = 577ms

40MHz DIO mode, secure boot enabled
before = 1380ms
after = 934ms

(Secure boot involves two ECC signature verifications (partition table, app) that take approx 300ms each with 80MHz CPU.)
2017-07-19 18:31:59 +10:00
caaa29c676 esp_image_format: ESP32 additional header does not contain an encrypt flag 2017-07-19 18:25:17 +10:00
43b99edf2b bootloader: Calculate SHA-256 of image while loading/verifying 2017-07-19 18:25:17 +10:00
8f6134dd96 bootloader: Obfuscate loaded memory until verification is complete 2017-07-19 18:25:17 +10:00
0c8888d68f bootloader: Combine loading from flash & verifying to save boot time
Still needs updating to account for secure boot.
2017-07-19 18:25:17 +10:00
105c4b7386 Merge branch 'feature/esptool_image_padding' into 'master'
esptool: Optimise app image size by using RAM-loaded data for padding

See merge request !1017
2017-07-19 15:52:22 +08:00
2d9770fd00 linker script: Add some comments about significance of 0x18 byte offset 2017-07-19 17:38:05 +10:00
0feb40833a heap_caps: Allow for possibility a region is too small to register a heap
May happen due to sdkconfig, static allocation of RAM.

Closes https://github.com/espressif/esp-idf/issues/802
2017-07-19 17:24:24 +10:00
c230e4280c linker scripts: Limit DROM/IROM section lengths correctly 2017-07-19 16:33:48 +10:00
d92c541b1a esptool: Optimise generated image size by using RAM-loaded data for padding
Can save almost 128KB from some images.
2017-07-19 16:24:17 +10:00
fa7d53e700 Merge branch 'feature/flash_qio_wp_pin' into 'master'
bootloader: Flash QIO configuration feature & fix

See merge request !895
2017-07-19 13:55:05 +08:00
ec64fa3416 bootloader flash QIO mode: Restore DIO/DOUT mode if enabling quad fails
Previously, flash was degraded to single I/O mode.
2017-07-19 15:04:09 +10:00
0715d1f8c1 bootloader: When customising SPI flash pins in efuse, set WP pin in menuconfig
Allows custom configurations for QIO/QOUT mode.
2017-07-19 15:04:08 +10:00
d436331faf Merge branch 'feature/component_include_order' into 'master'
build system: Order private include directories before public ones

See merge request !955
2017-07-19 12:58:50 +08:00
c30149e4bd feature(gpio): add APIs to set and get pad drive capability. RTC pads use RTC registers to contol drive capability. 2017-07-19 11:23:41 +08:00
d998bfc7d6 Merge branch 'feature/component_discovery' into 'master'
build system: Improvements to component discovery

See merge request !902
2017-07-19 07:28:15 +08:00
8d42fe3953 build system: Don't error out if an already-build project or IDF directory has moved 2017-07-19 09:10:48 +10:00
d664e32394 build system: Use component.mk for all components, refactor bootloader build
For config-only components, component.mk should now contain "COMPONENT_CONFIG_ONLY := 1"

Also refactored some of the generation of linker paths, library list. This required cleaning up the way the bootloader
project works, it's now mostly independent from the parent.
2017-07-19 09:10:48 +10:00
5492ba759a build system docs: Add some notes about project-level variables 2017-07-19 09:07:53 +10:00
2571e66a29 build system: Make component searching more explicit, obsolete SRCDIRS
Each COMPONENT_DIRS directory can now either be a component directory, or a parent directory containing component
subdirectories.

When searching for components, skip any directory which doesn't have component.mk, Kconfig.projbuild, or
Makefile.projbuild in it. This helps with debugging, list-components output, etc.
2017-07-19 09:07:53 +10:00
2c1fe6663d build system: Add list-components target for debugging component discovery 2017-07-19 09:07:53 +10:00
c0cd79c9a9 Changed adc GPIO pin 32, that is not broken out on header in ESP-WROVER-KIT, to 34 2017-07-18 21:11:22 +02:00
006a90e075 component/bt : add ble tx power && fix controller deinit mem leak
1. add ble tx power functions
2. add more osi functions.
3. modify bluetooth controller task procedure
4. fix a memory leak when controller deinit
5. add controller disable return value.
2017-07-18 20:22:28 +08:00
aef5e90cce Merge branch 'feature/mmap_unordered_flash_pages' into 'master'
Add function to map non-contiguous flash pages to contiguous memory space.

See merge request !873
2017-07-18 10:49:12 +08:00
0ae916d555 Merge branch 'feature/high_level_interrupts' into 'master'
Break out high-level interrupts so a component can override them

See merge request !675
2017-07-18 10:42:31 +08:00
4029ed1df4 Merge branch 'bugfix/rom_gpio_typo' into 'master'
bugfix(typo): fix typo in rom/gpio.h

See merge request !1009
2017-07-18 06:53:30 +08:00
979fce0df5 bt: call nvs_flash_init in examples, show error if NVS is not initialized
NVS is used to store PHY calibration data, WiFi configuration, and BT
configuration. Previously BT examples did not call nvs_flash_init,
relying on the fact that it is called during PHY init. However PHY init
did not handle possible NVS initialization errors.

This change moves PHY init procedure into the application, and adds
diagnostic messages to BT config management routines if NVS is not
initialized.
2017-07-17 21:29:50 +08:00
bff9616e91 Merge branch 'bugfix/rom_doc_toc' into 'master'
doc: Move romconsole doc sub-headings to sub-headings

See merge request !994
2017-07-17 21:19:06 +08:00
fd2d53fca6 Merge branch 'bugfix/wl_write' into 'master'
wear_levelling: fix write and read length for single access was wrong.

See merge request !993
2017-07-17 18:31:27 +08:00
b36e580756 wear_levelling: fix write and read length for single access was wrong. 2017-07-17 12:00:40 +03:00
10340d718f bugfix(typo): fix typo in rom/gpio.h 2017-07-17 15:41:02 +08:00
c2e6e10dcc Merge branch 'bugfix/nghttp2_build_submodules' into 'master'
nghttp2: Add submodule to COMPONENT_SUBMODULES, update to v1.24

See merge request !977
2017-07-17 14:14:28 +08:00
e50870c2dc Merge branch 'bugfix/bootloader_stack_smash' into 'master'
Fix crashes when >approx 185KB of DRAM is statically allocated

See merge request !983
2017-07-17 14:11:35 +08:00
f824829a13 Merge branch 'bugfix/dont_link_unused_data_sections' into 'master'
ld: Save RAM by removing unused .data sections at link time

See merge request !985
2017-07-17 14:10:12 +08:00
d3788b0db1 Add a note what is different about ESP-WROVER-KIT RVB 2017-07-17 07:16:31 +02:00
4ec2abbf23 Merge branch 'feature/some_refactor_for_tcpip_adapter' into 'master'
tcpip_adapter: not remove netif when tcpip adapter is stopped

See merge request !943
2017-07-13 22:16:00 +08:00
5ac0503ce7 Merge branch 'bugfix/btdm_modify_BTA_GATTC_KNOWN_SR_MAX_for_Multi-connection' into 'master'
component/bt: modify BTA_GATTC_KNOWN_SR_MAX for Multi-connection bug

See merge request !992
2017-07-13 21:55:24 +08:00
d724cc23d2 tcpip_adapter: not free netif when tcpip adapter is stopped
When tcpip adapter is stop, don't free the netif
2017-07-13 18:42:45 +08:00
399ec29a68 Merge branch 'feature/silent_assertions' into 'master'
Add "silent" assertion option

See merge request !984
2017-07-13 17:21:09 +08:00
ca3bf570cd Component/bt: modify BTA_GATTC_KNOWN_SR_MAX for Multi-connection bug 2017-07-13 16:22:44 +08:00
1ed4eadfab Merge branch 'bugfix/mbedtls_ecp_failure_memory_leak' into 'master'
mbedtls: Fix memory leak in initial ECDH exchange if OOM/failure occurs

See merge request !987
2017-07-13 15:39:40 +08:00
b71f47670f doc: Move romconsole doc sub-headings to sub-headings
Removes them from the API guides ToC.
2017-07-13 14:33:29 +08:00
0c28b3bc4c Merge branch 'bugfix/btdm_update_connect_params_for_gattc' into 'master'
component/bt: bugfix update connect params for gattc

See merge request !991
2017-07-13 14:32:20 +08:00
fc4d3df890 Merge branch 'bugfix/tw13744_make_low_rate_work' into 'master'
esp32: update wifi lib to make low rate work

See merge request !965
2017-07-13 14:26:02 +08:00
7fc25f18d2 Merge branch 'feature/enable_brownout_detector' into 'master'
Enable brownout detector

See merge request !811
2017-07-13 11:40:37 +08:00
b7fc16a408 build system: Updating project Makefile should trigger a full rebuild
Project Makefile can set CFLAGS, macro defines, etc.
2017-07-13 10:51:24 +08:00
c46e2edcae Merge branch 'bugfix/make_size_windows' into 'master'
make size: Fix map file parsing error on Windows

See merge request !932
2017-07-12 17:31:49 +08:00
8cd03c84d0 Merge branch 'feature/ip_route_base_on_source_ip' into 'master'
Broadcast IP route based on source IP address.

See merge request !942
2017-07-12 17:31:24 +08:00
7b565e4b25 assertions: Add "silent" option
Reduces assertion codesize overhead by approximately 35%
2017-07-12 17:29:26 +08:00
d8d2933bde Merge branch 'bugfix/gdbstub_handler_noreturn' into 'master'
gdbstub: Mark the panic handler entry as noreturn

See merge request !975
2017-07-12 17:23:59 +08:00
ffefeef5ea mbedtls: Fix memory leak in initial ECDH exchange if OOM/failure occurs
In ecp_mul_comb(), if (!p_eq_g && grp->T == NULL) and ecp_precompute_comb() fails (which can happen due to OOM), then the new array of points T was leaked.
2017-07-12 16:34:26 +08:00
cfbb1a652b Merge branch 'doc/esp_random' into 'master'
esp_random: Add some documentation about using before RF subsystem is on

See merge request !976
2017-07-12 16:18:43 +08:00
2243bb00f6 Merge branch 'bugfix/freertos_malloc_regression' into 'master'
pvPortMalloc: Fix regression when changing to new heap implementation

See merge request !982
2017-07-12 16:18:12 +08:00
99fe61716c startup: Add assertion checks around various initialisation sequences
These may fail if close to 192KB of static RAM is allocated (remaining early heap RAM is too small.)
2017-07-12 13:06:56 +08:00
2b0f623259 bootloader/early boot: Error out if >192KB of static DRAM is allocated (temporary fix)
Currently the last 128KB of DRAM is reserved for the bootloader & early boot stacks. This means if >192KB of static DRAM
is allocated, the only available heap is this region - which is disabled until the scheduler starts. As a result, you
get either heap corruption on early boot if the static data overlaps startup heap (leading to very weird errors), or
FreeRTOS will fail to start when it can't malloc() anything.

Long term fix is to move the stacks & bootloader data to the very end of RAM, and only reserve that part for early
boot. This is a little fiddly because of also wanting to make sure this memory is not preemptively fragmented when it
gets reintroduced to the heap. This will become more important if/when we have more static allocation options in the
future.

For now, these errors make it clear why the boot has failed.

Ref TW13909
2017-07-12 13:06:56 +08:00
187b5fb888 ld: Remove unused .data sections at link time
Reduces static RAM, code size.
2017-07-12 13:05:54 +08:00
083f7d667b nghttp2: Add submodule to COMPONENT_SUBMODULES, update to release v1.24
Removes need for -DNDEBUG hack in component.mk (fixed upstream).
2017-07-12 11:16:55 +08:00
d601bedb85 pvPortMalloc: Fix regression when changing to new heap implementation 2017-07-12 11:10:11 +08:00
7ae93f271c Merge branch 'feature/multi_heap' into 'master'
Separate the heap implementation from FreeRTOS

See merge request !731
2017-07-12 10:53:37 +08:00
9487797273 Merge branch 'bugfix/minimal_stack_size' into 'master'
freertos: Bump idle stack size to 1KB, min stack to 768 bytes, make configurable

See merge request !979
2017-07-11 21:08:52 +08:00
3ad163e644 freertos: Bump idle stack size to 1KB, min stack to 768 bytes, make configurable
Reverts regression mentioned at
3fe0022efa (commitcomment-23013504)
2017-07-11 14:48:15 +08:00
3bb90bab97 esp_random: Add some documentation about using before RF subsystem is on 2017-07-11 14:27:20 +08:00
8460f1a972 Component/bt: bugfix update connect params for gattc 2017-07-11 11:27:36 +08:00
c049cd55a6 gdbstub: Mark the panic handler entry as noreturn
Fixes a warning in panic.c when this panic mode is enabled.
2017-07-11 10:18:08 +08:00
ad60c30de0 heap: Rename memory "tags" to "types" to avoid confusion w/ old tag allocator API 2017-07-10 17:46:03 +08:00
ee28fafcdf gitignore: Add gcov files 2017-07-10 17:46:03 +08:00
8d7074ed5c soc: Move esp_ptr_dma_capable() function to soc_memory_layout.h 2017-07-10 17:46:03 +08:00
71c70cb15c heap: Refactor heap regions/capabilities out of FreeRTOS
Remove tagged heap API, rename caps_xxx to heap_caps_xxx

Also includes additional heap_caps_xxx inspection functions.
2017-07-10 17:46:03 +08:00
5ee49fd311 heap: Add new multi_heap heap implementation to replace FreeRTOS-based tagged heaps 2017-07-10 17:46:03 +08:00
01b185977c brownout detector: enable by default
Because of errata related to BOD reset function, brownout is handled as follows:

- attach an ISR to brownout interrupt
- when ISR happens, print a message and do a software restart
- esp_restart_nonos enables RTC watchdog, so if restart fails,
  there will be  one more attempt to restart (using the RTC
  watchdog)
2017-07-10 17:25:55 +08:00
780569c04a esp32: fix RTC watchdog configuration in esp_restart
RTC watchdog didn’t have any actions configured for any of the stages.
This change configures it to use SW_SYSTEM_RESET at stage 0 and a
full reset at stage 1. The timeout is now calculated based on
RTC_SLOW_CLK frequency.
2017-07-10 17:21:49 +08:00
cbe23147bf driver/rtc: add support for attaching handlers to RTC_CNTL interrupts 2017-07-10 17:21:49 +08:00
f01c6eb96c component/bt : comment out set_key_dec for res cfb128(software crypt) 2017-07-10 14:29:29 +08:00
9b30f66fac Merge branch 'bugfix/reg_op' into 'master'
fix reg operation missing

See merge request !963
2017-07-08 12:59:12 +08:00
e1f13eda49 esp32: update wifi lib to make low rate work
Make low rate work
2017-07-07 22:05:54 +08:00
7a79d31db0 fix reg operation missing 2017-07-07 20:04:24 +08:00
6cf6f43ac5 Merge branch 'feature/update_wrover_v3' into 'master'
docs: layout of esp-wrover-kit updated to v3

See merge request !929
2017-07-07 14:16:36 +08:00
d3290479b2 Merge panic and dport high level interrupt code to both use int level 4 2017-07-07 12:51:33 +08:00
1d748db209 Break out high-level interrupts so a component can override them 2017-07-07 12:51:33 +08:00
e173dd400d Merge branch 'bugfix/build_fix_tests_and_warnings' into 'master'
Minor fix of some tests and warnings

Now, the build_examples have the correct diagnostics

See merge request !944
2017-07-07 11:16:44 +08:00
3d1d4fe150 build: Fix the warnings that break the tests
unused variable 'lfn'
    'isr_handler' defined but not used
    'servo_set_angle' defined but not used
    'gpio_test_signal' defined but not used
    'change_duty' defined but not used
2017-07-07 11:03:25 +08:00
3cd10899e6 CI: Work around problem with running the initial 'make clean' in parallel (#18)
Just don't pass '-j' to the 'make clean' command
2017-07-07 11:03:25 +08:00
f0b6256490 build: Fix test for the first time 'make clean' and error handling in build_examples
Now the tests do not pass

    Before we had incorrect code of the error code checking
    in build_examples.sh for that case and did nothing in test_build_system.sh.
2017-07-07 11:03:25 +08:00
4678d81c83 Merge branch 'bugfix/ci_bound_some_vars' into 'master'
Fix the unbound variables in scripts

See merge request !962
2017-07-06 19:35:10 +08:00
2a6b7794ab CI: Fix the unbound variables in scripts 2017-07-06 18:52:08 +08:00
927b5685cd Merge branch 'bugfix/partition_mmap_size' into 'master'
esp_partition_mmap size calculation fix

See merge request !947
2017-07-06 18:44:59 +08:00
1b3594ade1 Merge branch 'bugfix/ci_wrong_getting_sources' into 'master'
Fix the getting sources

See merge request !953
2017-07-06 18:43:53 +08:00
6c2b4854e1 Add test for partition mmap straddling 64K page issue 2017-07-06 18:22:43 +08:00
8939af9fe4 Merge branch 'bugfix/mbedtls_unit_tests' into 'master'
mbedtls unit tests: Allow for longer timeout using software SHA

See merge request !961
2017-07-06 18:08:53 +08:00
f194a6bdba CI: Fix the getting sources
Fix the getting sources for a case if the required commit is missed
    in the remote submodule repository.

    Also add more diagnostic.
2017-07-06 16:48:07 +08:00
fd9d889e62 mbedtls unit tests: Allow for longer timeout using software SHA
Hardware SHA runs SHA operations faster than software...
2017-07-06 15:54:01 +08:00
6d03d42d2f Merge branch 'bugfix/btdm_error_length_unit' into 'master'
Component/bt: fix bug for  error length unit

See merge request !950
2017-07-06 14:48:29 +08:00
9aa0188655 Merge branch 'bugfix/small_typos' into 'master'
Fix a few minor typos in docs

See merge request !954
2017-07-06 14:27:22 +08:00
571ee9d1cb Merge branch 'bugfix/disable_crypto_acceleration' into 'master'
mbedtls: Temporarily disable hardware acceleration in dual-core mode

See merge request !956
2017-07-06 14:26:41 +08:00
6b2e16e51b soc: fix typo in register name 2017-07-06 12:36:06 +08:00
1194f59e1a Merge branch 'bugfix/i2s_return_err_code' into 'master'
i2s driver: return error code if register isr error

See merge request !829
2017-07-06 11:25:40 +08:00
a054ced740 esp_chip_info: populate ‘model’ field 2017-07-06 11:01:40 +08:00
0087b887ae docs: update general notes section on IRAM/ISRs
- Remove outdated note that all ISRs should be in IRAM
- Replace “ISR handler” with “ISR” or “interrupt handler”
2017-07-06 10:47:18 +08:00
cd1b6abc8c docs: fix flash encryption key storage block, use same names as in TRM 2017-07-06 10:47:18 +08:00
6d6fd1deda Merge branch 'feature/split_compiler_optimisations' into 'master'
build system: Split setting of compiler optimisation level from assertions on/off

See merge request !886
2017-07-06 10:47:07 +08:00
9bb4dac3d2 Layout of esp-wrover-kit updated to v3 2017-07-05 21:21:54 +02:00
c35aa1d9a2 mbedtls: Temporarily disable hardware acceleration in dual-core mode
Temporary fix, until DPORT bugs in crypto accelerators are completely fixed.
2017-07-05 12:03:00 +08:00
0881ba83ff build system: Order private include directories before public ones
This allows the component to override a header in a public include
directory, when only its own source files are being compiled.
2017-07-05 11:56:41 +08:00
ef63811e6d phy_init: fix log level for "PHY data partition validated" message 2017-07-05 11:29:53 +08:00
3c9ea3cb8e Merge branch 'bugfix/ci_push_master_to_github_err' into 'master'
Fix error in the push_master_to_github job when using the fetch strategy

See merge request !951
2017-07-05 10:41:24 +08:00
19cd330117 CI: Fix error in the push_master_to_github job when using the fetch strategy 2017-07-04 11:53:24 +08:00
ad8cce3053 Component/bt: fix bug for error length unit 2017-07-04 10:57:36 +08:00
abdbb4292a Merge branch 'docs/romconsole_docs' into 'master'
Some documentation for the undocumented ROM console.

See merge request !936
2017-07-03 20:05:50 +08:00
55b3ea9ccc Merge branch 'bugfix/btdm_cherry-pick_ble_smp_bonding_issues' into 'master'
component/bt: Fixed the bug crash of disconnet BLE when close the SMP module in the menuconfig.

See merge request !941
2017-07-03 19:41:56 +08:00
3c082b476a Merge branch 'bugfix/bt_avdt_state_machine' into 'master'
component/bt: bugfix for AVDTP state machine function on disconnection to handle NULL pointer condition

See merge request !946
2017-07-03 19:41:46 +08:00
93b7eaf5b2 esp_partition_mmap could map a page less than needed because it did not take the region offset into account. 2017-07-03 18:02:28 +08:00
8959c7de20 component/bt: bugfix for AVDTP state machine during disconnection in failure to handle NULL parameter 2017-07-03 17:25:44 +08:00
2aad52300a Merge branch 'bugfix/update_wpa2_certificate' into 'master'
update expiration date of wpa2 enterprise certificates to 2027/06/05.

See merge request !830
2017-07-03 15:35:36 +08:00
5b9a89f04d component/bt: squech the commit
component/bt: Fixed the bug crash of disconnet BLE when close the SMP module in the menuconfig.

component/bt: Removed the Excess #endid ///SMP_INCLUDED == TRUE in the l2cu_no_dynamic_ccbs function.
2017-07-03 03:07:23 -04:00
0837b3b743 Merge branch 'doc/wifi_set_vendor_ie' into 'master'
Document the WiFi Vendor-Specific Information Element API

See merge request !933
2017-06-30 16:37:18 +08:00
15231f1cce Merge branch 'bugfix/newlib_lock_init' into 'master'
newlib locks: Fix _lock_init() & _lock_init_recursive() failing to initialise a lock

See merge request !937
2017-06-30 16:36:47 +08:00
a4ae3efcd2 Merge branch 'bugfix/ipc_task_stack_size' into 'master'
Bugfix IPC task stack size

See merge request !938
2017-06-30 16:36:18 +08:00
7a64e19ba8 Broadcast IP route based on source IP address.
If destination IP address of the packet is broadcast address, firstly compare
    source IP address with the that of each network interface. If it matches,
    packet is forwarded from the interface.
2017-06-30 16:18:29 +08:00
9297edaf60 ipc task: Allow configuration of IPC task stack size
Fixes regression in 3fe0022ef
2017-06-30 15:04:19 +10:00
016a579806 Merge branch 'bugfix/uart_tx_buffer_length' into 'master'
bugfix(uart): fix bugs reported from github

See merge request !927
2017-06-30 12:30:25 +08:00
6509947c1e Merge branch 'feature/ci_mirror_for_submodules' into 'master'
Use custom fetch strategy. Use local mirrors for submodules

See merge request !890
2017-06-30 12:23:42 +08:00
e55eeb0687 CI: Use anchors to get rid of code dublication in the 'before_script' clauses 2017-06-30 12:08:24 +08:00
8dc340d2ea CI: Add script for synchronization of the local mirrors for submodules
You should use it manually when any submodule in the esp-idf has changed

    You can mark to exclude some of them in mirror-list.txt
2017-06-30 12:07:06 +08:00
52445ee541 CI: Use local mirrors for submodules
The CI uses the mirror-submodule-update.sh for non-permanent reassignment
    of 3rdparty sub-modules to local mirrors (only for 'non-master' branches).
    List of the mirrors in mirror-list.txt

    You can use the script locally to speed up data retrieval on network problems

    check_submodule_sync job uses 'GIT_STRATEGY: clone' to check the availability of public sources
2017-06-30 12:06:02 +08:00
f52519d7a2 CI: Use custom get_full_sources.sh script instead of gitlab-ci's strategies
Work around problems caused by failed submodule clones corrupting
    the working directory on the build runner.

    Add 10 retries for cloning submodules.
2017-06-30 12:05:17 +08:00
35609de417 CI: Move the ci-related staff to a separate directory 2017-06-30 11:57:07 +08:00
6aca6f5aab ci check_commit_msg: Use CI_COMMIT_SHA to avoid ambiguity 2017-06-30 11:57:07 +08:00
2e49249a71 build system: Split setting of compiler optimisation level from assertions on/off 2017-06-30 09:01:33 +10:00
45c926f8f0 Merge branch 'bugfix/dport_access_unicore' into 'master'
dport_access: Fix spurious warning in unicore mode, refactor

See merge request !931
2017-06-30 06:59:04 +08:00
75d6fdf73c newlib locks: Fix _lock_init() & _lock_init_recursive() failing to initialise a lock
If scheduler was running, and lock was an automatic variable (ie stack-allocated) to be initialised by _lock_init*,
initialisation could be skipped if the lock variable was non-zero (and lock would be left invalid).

In other cases the lock is statically initialised to zero by __LOCK_INIT*
2017-06-30 08:54:56 +10:00
50e486f9eb Some documentation for the undocumented ROM console. 2017-06-29 19:01:50 +08:00
5c925bf96e esp_wifi.h: Document the Vendor-Specific Information Element functions 2017-06-29 17:29:23 +10:00
b3603ccf58 esp_wifi header: Fix typo 2017-06-29 17:19:17 +10:00
3fe0022efa stack sizes: Revert stack size increases added in 8d43859
Set min stack size to 2048 if AppTrace support is enabled, 512 bytes otherwise.
2017-06-29 14:57:13 +10:00
415a7d742a dport_access: Fix spurious warning in unicore mode, refactor 2017-06-29 13:57:13 +10:00
a8f08dc5da make size: Fix map file parsing error on Windows
Closes https://github.com/espressif/esp-idf/issues/739
2017-06-29 12:54:13 +10:00
9b955f4c9f Merge branch 'feature/sysview_via_apptrace' into 'master'
sysview via apptrace

See merge request !708
2017-06-29 08:40:13 +08:00
f698a1b2d3 Add missing support for C++ exceptions
Specifying -fexceptions for the compiler is not enough.

- add necessary zero padding after .eh_frame section
- link .gcc_except_table_table in a way flash script does not complain
- call __registrer_frame_info before global constructors

Kudos jcmvbkbc for the necessary help.
2017-06-28 13:53:42 +08:00
90f1d42a9b Merge branch 'feature/better_make_size' into 'master'
build system: Add idf_size.py tool for better "make size" output

See merge request !874
2017-06-28 06:11:56 +08:00
540a506d0f Merge branch 'bugfix/lwip_assert' into 'master'
lwip: Remove port-specific sys_arch_assert(), use libc __assert_func() instead

See merge request !926
2017-06-28 06:09:04 +08:00
8d43859b6a esp32: SEGGER SystemView Tracing Support
Implements support for system level traces compatible with SEGGER
SystemView tool on top of ESP32 application tracing module.
That kind of traces can help to analyse program's behaviour.
SystemView can show timeline of tasks/ISRs execution, context switches,
statistics related to the CPUs' load distribution etc.

Also this commit adds useful feature to ESP32 application tracing module:
 - Trace data buffering is implemented to handle temporary peaks of events load
2017-06-27 20:52:43 +03:00
bd09f186b6 Merge branch 'test/ci_add_ble_cases' into 'master'
CI: add ble cases to CI

See merge request !917
2017-06-27 23:49:17 +08:00
fff0a001d3 Merge branch 'bugfix/btdm_ble_smp_bonding_issues' into 'master'
component/bt: Fix bugs of the SMP security module

See merge request !923
2017-06-27 23:49:00 +08:00
40fd9db55d bugfix(uart): fix bugs reported from github
1. uart_set_line_inverse API issue, https://github.com/espressif/esp-idf/issues/673
2. tx buffer length issue, https://github.com/espressif/esp-idf/issues/710
2017-06-27 16:41:59 +08:00
857a7f186e lwip: Make LWIP_ERROR behave as if assertions were off, even if they are on 2017-06-27 18:36:54 +10:00
f5e7f2bb8f lwip: Remove port-specific sys_arch_assert(), use libc __assert_func() instead 2017-06-27 17:32:17 +10:00
37b72e8a70 Merge branch 'doc/get_started_serialports' into 'master'
docs: Add note about Windows COM ports to Getting Started guide

See merge request !922
2017-06-27 14:34:22 +08:00
f5920e8d24 Merge branch 'bugfix/nvs_err_code' into 'master'
ESP_ERR_NVS_VALUE_TOO_LONG had conflicting value.

See merge request !924
2017-06-27 14:33:12 +08:00
162d9ab77a Merge branch 'feature/test_runner_print_names' into 'master'
test runner: Print test name when starting, print filter description

See merge request !921
2017-06-27 12:58:57 +08:00
3f8f618df5 Merge branch 'feature/lwip_expose_more_config' into 'master'
lwip: Expose more config in IDF menuconfig

See merge request !909
2017-06-27 12:53:42 +08:00
aeeb6cff17 Merge branch 'test/add_dual_core_dport_access_unit_test_case' into 'master'
test: add UT case for accessing dport and apb at the same time

See merge request !910
2017-06-27 12:47:37 +08:00
19b7158a9a Merge branch 'bugfix/gpio_set_direction_sets_matrix' into 'master'
gpio driver: Clear GPIO matrix output config when setting pin as input

See merge request !919
2017-06-27 11:42:56 +08:00
f045123691 nvs: add test for ESP_ERR_NVS_INVALID_LENGTH 2017-06-27 11:28:37 +08:00
1bd9859c08 CI: add test jobs for BLE cases 2017-06-27 10:35:39 +08:00
31f7e8d7e5 CI: add BLE test cases to CI 2017-06-27 10:35:33 +08:00
906a61d9ee docs: Add some notes about Windows COM ports, serial port drivers 2017-06-27 10:06:29 +10:00
dacb053546 ESP_ERR_NVS_VALUE_TOO_LONG had conflicting value.
`ESP_ERR_NVS_VALUE_TOO_LONG` had conflicting value, its original value was `0x0c`, which is the same as `ESP_ERR_NVS_INVALID_LENGTH`
2017-06-27 11:58:49 +12:00
713964fe9e Use LwIP IPC for low-level API calls 2017-06-27 00:41:41 +03:00
b60b58a333 component/bt: Added the bta gattc write ccc judgment. 2017-06-26 05:39:14 -04:00
574d0cf846 component/bt: Fixed a very important bug of the SMP security module when use SMP to connected after bonding. 2017-06-26 05:02:57 -04:00
ff6a3b1a11 Merge branch 'bugfix/default_vfs_paths' into 'master'
Make relative paths match the default VFS, if provided

See merge request !913
2017-06-26 14:03:22 +08:00
9716447fcc Merge branch 'bugfix/esp32d2wd_gpio0' into 'master'
esptool: Update to v2.0.1, fix ESP32-D2WD GPIO0 issue

See merge request !918
2017-06-26 14:02:48 +08:00
f9abf98f46 Merge branch 'bugfix/l2cap_disconnect_timeout' into 'master'
component/bt: bugfix for L2CAP state machine to access NULL lcb during disconnection

See merge request !920
2017-06-26 14:02:36 +08:00
e033b018d4 Merge branch 'bugfix/wrong_macro_uart_base_addr' into 'master'
fix bug that uart register base address macro was wrong

See merge request !912
2017-06-26 13:55:37 +08:00
5aa5b820f9 Merge branch 'bugfix/tw13402_sniffer_fail_ratio_high' into 'master'
esp32: update wifi lib to fix a sniffer issue

See merge request !914
2017-06-26 13:52:47 +08:00
5dca92377d test runner: Print test name when starting, print filter description
Makes it easier to run tests manually.
2017-06-26 15:38:46 +10:00
17747b3358 gpio driver: Clear GPIO matrix output config when setting pin as input
Otherwise, if a non-GPIO peripheral has been routed to this pin
(as an output), output driver can remain enabled.
2017-06-26 12:47:08 +10:00
c26baeb610 esptool: Update to v2.0.1
Fixes issue with GPIO 0 being enabled as an output on ESP32D2WD (or when setting SPI pins in efuse)
and not using Quad-I/O modes.

Ref: https://esp32.com/viewtopic.php?f=2&t=2205
2017-06-26 12:16:09 +10:00
a7ef510551 esp32: update wifi lib to fix a sniffer issue
Fix sniffer only receives the first MDPU in AMPDU when the AMPDU is not for our station/soft-AP
2017-06-24 10:45:20 +08:00
ee5eba793f Make relative paths match the default VFS, if provided
https://github.com/espressif/esp-idf/issues/158
2017-06-23 13:12:28 +01:00
ab9f63aba7 fix bug that uart register base address macro was wrong 2017-06-23 19:56:12 +08:00
6da84eff76 component/bt: fix a bug for L2CAP state machine to access lcb after it is released 2017-06-23 17:26:43 +08:00
7c6208c9e0 test: add UT case for dual dport and apb access 2017-06-23 16:15:57 +08:00
113bb30218 This commit adds spi_flash_mmap_pages(), a function to map a set of unordered 64K pages in flash into a contiguous region in memory space. 2017-06-23 14:28:57 +08:00
0c301206cf lwip debug: fix typo 2017-06-23 16:28:38 +10:00
8f4fc209a1 lwip: Enable LWIP assertions unless they are disabled globally 2017-06-23 16:26:11 +10:00
1c6510ed96 lwip: Allow configuring/disabling some TCP options to save RAM
RAM savings are small, but may add up when running large numbers of sockets.
2017-06-23 16:26:11 +10:00
8aa09aea10 event handler: Add debug event handler for confirmed IPv6 LL address 2017-06-23 16:15:16 +10:00
1ea0ddb025 lwip: Expose broadcast/multicast ping enable options in menuconfig 2017-06-23 16:15:00 +10:00
5055290baf build system: Add idf_size.py tool for better "make size" output & analysis
Add new "make size_components" and "make size_files" targets for analysing makeup of the ELF file.

Plain "make size" output now looks like this:

Total sizes:
 DRAM .data size:   11156 bytes
 DRAM .bss  size:   22304 bytes
Used static DRAM:   33460 bytes ( 294220 available, 10.2% used)
Used static IRAM:   80480 bytes (  50592 available, 61.4% used)
      Flash code:  421463 bytes
    Flash rodata:  103824 bytes
Total image size:~ 616923 bytes (.bin may be padded larger)
2017-06-21 15:43:22 +10:00
f91715438a i2s: return error code if register isr error, resolve #587 (github)
set p_i2s_obj = NULL when return error
2017-06-13 14:28:47 +07:00
176107f845 update expiration date of wpa2 enterprise certificates to 2027/06/05. 2017-06-07 16:30:39 +08:00
4416 changed files with 489090 additions and 325529 deletions

39
.editorconfig Normal file
View File

@ -0,0 +1,39 @@
# EditorConfig helps developers define and maintain consistent
# coding styles between different editors and IDEs
# http://editorconfig.org
root = true
[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[{*.md,*.rst}]
trim_trailing_whitespace = false
[{Makefile,*.mk,*.bat}]
indent_style = tab
indent_size = 2
[*/freertos/**]
indent_style = tab
indent_size = 4
[{*/freertos/**.S,**/FreeRTOSConfig.h}]
indent_style = space
indent_size = 4
[*.pem]
insert_final_newline = false
[*.py]
max_line_length = 119
[{*.cmake,CMakeLists.txt}]
indent_style = space
indent_size = 4
max_line_length = 120

165
.flake8 Normal file
View File

@ -0,0 +1,165 @@
[flake8]
select =
# Full lists are given in order to suppress all errors from other plugins
# Full list of pyflakes error codes:
F401, # module imported but unused
F402, # import module from line N shadowed by loop variable
F403, # 'from module import *' used; unable to detect undefined names
F404, # future import(s) name after other statements
F405, # name may be undefined, or defined from star imports: module
F406, # 'from module import *' only allowed at module level
F407, # an undefined __future__ feature name was imported
F601, # dictionary key name repeated with different values
F602, # dictionary key variable name repeated with different values
F621, # too many expressions in an assignment with star-unpacking
F622, # two or more starred expressions in an assignment (a, *b, *c = d)
F631, # assertion test is a tuple, which are always True
F701, # a break statement outside of a while or for loop
F702, # a continue statement outside of a while or for loop
F703, # a continue statement in a finally block in a loop
F704, # a yield or yield from statement outside of a function
F705, # a return statement with arguments inside a generator
F706, # a return statement outside of a function/method
F707, # an except: block as not the last exception handler
F721, F722, # doctest syntax error syntax error in forward type annotation
F811, # redefinition of unused name from line N
F812, # list comprehension redefines name from line N
F821, # undefined name name
F822, # undefined name name in __all__
F823, # local variable name referenced before assignment
F831, # duplicate argument name in function definition
F841, # local variable name is assigned to but never used
F901, # raise NotImplemented should be raise NotImplementedError
# Full list of pycodestyle violations:
E101, # indentation contains mixed spaces and tabs
E111, # indentation is not a multiple of four
E112, # expected an indented block
E113, # unexpected indentation
E114, # indentation is not a multiple of four (comment)
E115, # expected an indented block (comment)
E116, # unexpected indentation (comment)
E121, # continuation line under-indented for hanging indent
E122, # continuation line missing indentation or outdented
E123, # closing bracket does not match indentation of opening bracket's line
E124, # closing bracket does not match visual indentation
E125, # continuation line with same indent as next logical line
E126, # continuation line over-indented for hanging indent
E127, # continuation line over-indented for visual indent
E128, # continuation line under-indented for visual indent
E129, # visually indented line with same indent as next logical line
E131, # continuation line unaligned for hanging indent
E133, # closing bracket is missing indentation
E201, # whitespace after '('
E202, # whitespace before ')'
E203, # whitespace before ':'
E211, # whitespace before '('
E221, # multiple spaces before operator
E222, # multiple spaces after operator
E223, # tab before operator
E224, # tab after operator
E225, # missing whitespace around operator
E226, # missing whitespace around arithmetic operator
E227, # missing whitespace around bitwise or shift operator
E228, # missing whitespace around modulo operator
E231, # missing whitespace after ',', ';', or ':'
E241, # multiple spaces after ','
E242, # tab after ','
E251, # unexpected spaces around keyword / parameter equals
E261, # at least two spaces before inline comment
E262, # inline comment should start with '# '
E265, # block comment should start with '# '
E266, # too many leading '#' for block comment
E271, # multiple spaces after keyword
E272, # multiple spaces before keyword
E273, # tab after keyword
E274, # tab before keyword
E275, # missing whitespace after keyword
E301, # expected 1 blank line, found 0
E302, # expected 2 blank lines, found 0
E303, # too many blank lines
E304, # blank lines found after function decorator
E305, # expected 2 blank lines after end of function or class
E306, # expected 1 blank line before a nested definition
E401, # multiple imports on one line
E402, # module level import not at top of file
E501, # line too long (82 > 79 characters)
E502, # the backslash is redundant between brackets
E701, # multiple statements on one line (colon)
E702, # multiple statements on one line (semicolon)
E703, # statement ends with a semicolon
E704, # multiple statements on one line (def)
E711, # comparison to None should be 'if cond is None:'
E712, # comparison to True should be 'if cond is True:' or 'if cond:'
E713, # test for membership should be 'not in'
E714, # test for object identity should be 'is not'
E721, # do not compare types, use 'isinstance()'
E722, # do not use bare except, specify exception instead
E731, # do not assign a lambda expression, use a def
E741, # do not use variables named 'l', 'O', or 'I'
E742, # do not define classes named 'l', 'O', or 'I'
E743, # do not define functions named 'l', 'O', or 'I'
E901, # SyntaxError or IndentationError
E902, # IOError
W191, # indentation contains tabs
W291, # trailing whitespace
W292, # no newline at end of file
W293, # blank line contains whitespace
W391, # blank line at end of file
W503, # line break before binary operator
W504, # line break after binary operator
W505, # doc line too long (82 > 79 characters)
W601, # .has_key() is deprecated, use 'in'
W602, # deprecated form of raising exception
W603, # '<>' is deprecated, use '!='
W604, # backticks are deprecated, use 'repr()'
W605, # invalid escape sequence 'x'
W606, # 'async' and 'await' are reserved keywords starting with Python 3.7
# Full list of flake8 violations
E999, # failed to compile a file into an Abstract Syntax Tree for the plugins that require it
# Full list of mccabe violations
C901 # complexity value provided by the user
ignore =
E221, # multiple spaces before operator
E231, # missing whitespace after ',', ';', or ':'
E241, # multiple spaces after ','
W503, # line break before binary operator
W504 # line break after binary operator
max-line-length = 160
show_source = True
statistics = True
exclude =
.git,
__pycache__,
# submodules
components/esptool_py/esptool,
components/micro-ecc/micro-ecc,
components/nghttp/nghttp2,
components/libsodium/libsodium,
components/json/cJSON,
components/mbedtls/mbedtls,
components/expat/expat,
components/unity/unity,
examples/build_system/cmake/import_lib/main/lib/tinyxml2
# other third-party libraries
tools/kconfig_new/kconfiglib.py,
# autogenerated scripts
components/protocomm/python/constants_pb2.py,
components/protocomm/python/sec0_pb2.py,
components/protocomm/python/sec1_pb2.py,
components/protocomm/python/session_pb2.py,
components/wifi_provisioning/python/wifi_config_pb2.py,
components/wifi_provisioning/python/wifi_constants_pb2.py,
examples/provisioning/custom_config/components/custom_provisioning/python/custom_config_pb2.py,
# temporary list (should be empty)
components/nvs_flash/nvs_partition_generator/nvs_partition_gen.py,
tools/esp_app_trace/pylibelf,
tools/mass_mfg/mfg_gen.py,

17
.github/main.workflow vendored Normal file
View File

@ -0,0 +1,17 @@
workflow "Sync issues to JIRA" {
on = "issues"
resolves = ["Sync to JIRA"]
}
workflow "Sync issue comments to JIRA" {
on = "issue_comment"
resolves = ["Sync to JIRA"]
}
action "Sync to JIRA" {
uses = "espressif/github-actions/sync_issues_to_jira@master"
secrets = ["GITHUB_TOKEN", "JIRA_URL", "JIRA_USER", "JIRA_PASS"]
env = {
JIRA_PROJECT = "IDFGH"
}
}

48
.gitignore vendored
View File

@ -18,23 +18,59 @@ GPATH
# eclipse setting
.settings
# MacOS directory files
.DS_Store
# Example project files
examples/**/sdkconfig
examples/**/sdkconfig.old
examples/**/build
#Doc build artifacts
docs/_build/
docs/doxygen-warning-log.txt
docs/sphinx-warning-log.txt
docs/xml/
docs/man/
# Doc build artifacts
docs/*/_build/
docs/*/doxygen-warning-log.txt
docs/*/sphinx-warning-log.txt
docs/*/sphinx-warning-log-sanitized.txt
docs/*/xml/
docs/*/xml_in/
docs/*/man/
docs/doxygen_sqlite3.db
# Unit test app files
tools/unit-test-app/sdkconfig
tools/unit-test-app/sdkconfig.old
tools/unit-test-app/build
tools/unit-test-app/builds
tools/unit-test-app/output
# IDF monitor test
tools/test_idf_monitor/outputs
TEST_LOGS
# AWS IoT Examples require device-specific certs/keys
examples/protocols/aws_iot/*/main/certs/*.pem.*
# gcov coverage reports
*.gcda
*.gcno
coverage.info
coverage_report/
# Windows tools installer build
tools/windows/tool_setup/.*
tools/windows/tool_setup/input
tools/windows/tool_setup/dl
tools/windows/tool_setup/keys
tools/windows/tool_setup/Output
test_multi_heap_host
# VS Code Settings
.vscode/
# Results for the checking of the Python coding style
flake8_output.txt
# ESP-IDF library
build

File diff suppressed because it is too large Load Diff

40
.gitmodules vendored
View File

@ -29,3 +29,43 @@
[submodule "components/libsodium/libsodium"]
path = components/libsodium/libsodium
url = https://github.com/jedisct1/libsodium.git
[submodule "components/spiffs/spiffs"]
path = components/spiffs/spiffs
url = https://github.com/pellepl/spiffs.git
[submodule "components/json/cJSON"]
path = components/json/cJSON
url = https://github.com/DaveGamble/cJSON.git
[submodule "components/mbedtls/mbedtls"]
path = components/mbedtls/mbedtls
url = https://github.com/espressif/mbedtls.git
[submodule "components/asio/asio"]
path = components/asio/asio
url = https://github.com/espressif/asio.git
[submodule "components/expat/expat"]
path = components/expat/expat
url = https://github.com/libexpat/libexpat.git
[submodule "components/lwip/lwip"]
path = components/lwip/lwip
url = https://github.com/espressif/esp-lwip.git
[submodule "components/mqtt/esp-mqtt"]
path = components/mqtt/esp-mqtt
url = https://github.com/espressif/esp-mqtt.git
[submodule "components/protobuf-c/protobuf-c"]
path = components/protobuf-c/protobuf-c
url = https://github.com/protobuf-c/protobuf-c
[submodule "components/unity/unity"]
path = components/unity/unity
url = https://github.com/ThrowTheSwitch/Unity
[submodule "examples/build_system/cmake/import_lib/main/lib/tinyxml2"]
path = examples/build_system/cmake/import_lib/main/lib/tinyxml2
url = https://github.com/leethomason/tinyxml2

7
.travis.yml Normal file
View File

@ -0,0 +1,7 @@
language: python
sudo: false
python:
- "3.4"
script:
- pip install flake8
- travis_wait 20 python -m flake8 --config=.flake8 .

161
CMakeLists.txt Normal file
View File

@ -0,0 +1,161 @@
cmake_minimum_required(VERSION 3.5)
project(esp-idf C CXX ASM)
if(NOT IDF_PATH)
set(IDF_PATH ${CMAKE_CURRENT_LIST_DIR})
endif()
include(tools/cmake/idf_functions.cmake)
#
# Set variables that control the build configuration and the build itself
#
idf_set_variables()
kconfig_set_variables()
#
# Generate a component dependencies file, enumerating components to be included in the build
# as well as their dependencies.
#
execute_process(COMMAND "${CMAKE_COMMAND}"
-D "COMPONENTS=${IDF_COMPONENTS}"
-D "COMPONENT_REQUIRES_COMMON=${IDF_COMPONENT_REQUIRES_COMMON}"
-D "EXCLUDE_COMPONENTS=${IDF_EXCLUDE_COMPONENTS}"
-D "TEST_COMPONENTS=${IDF_TEST_COMPONENTS}"
-D "TEST_EXCLUDE_COMPONENTS=${IDF_TEST_EXCLUDE_COMPONENTS}"
-D "BUILD_TESTS=${IDF_BUILD_TESTS}"
-D "DEPENDENCIES_FILE=${CMAKE_BINARY_DIR}/component_depends.cmake"
-D "COMPONENT_DIRS=${IDF_COMPONENT_DIRS}"
-D "BOOTLOADER_BUILD=${BOOTLOADER_BUILD}"
-D "IDF_TARGET=${IDF_TARGET}"
-D "IDF_PATH=${IDF_PATH}"
-D "DEBUG=${DEBUG}"
-P "${IDF_PATH}/tools/cmake/scripts/expand_requirements.cmake"
WORKING_DIRECTORY "${PROJECT_PATH}"
RESULT_VARIABLE expand_requirements_result)
if(expand_requirements_result)
message(FATAL_ERROR "Failed to expand component requirements")
endif()
include("${CMAKE_BINARY_DIR}/component_depends.cmake")
#
# We now have the following component-related variables:
#
# IDF_COMPONENTS is the list of initial components set by the user
# (or empty to include all components in the build).
# BUILD_COMPONENTS is the list of components to include in the build.
# BUILD_COMPONENT_PATHS is the paths to all of these components, obtained from the component dependencies file.
#
# Print the list of found components and test components
#
string(REPLACE ";" " " BUILD_COMPONENTS_SPACES "${BUILD_COMPONENTS}")
message(STATUS "Component names: ${BUILD_COMPONENTS_SPACES}")
unset(BUILD_COMPONENTS_SPACES)
message(STATUS "Component paths: ${BUILD_COMPONENT_PATHS}")
# Print list of test components
if(TESTS_ALL EQUAL 1 OR TEST_COMPONENTS)
string(REPLACE ";" " " BUILD_TEST_COMPONENTS_SPACES "${BUILD_TEST_COMPONENTS}")
message(STATUS "Test component names: ${BUILD_TEST_COMPONENTS_SPACES}")
unset(BUILD_TEST_COMPONENTS_SPACES)
message(STATUS "Test component paths: ${BUILD_TEST_COMPONENT_PATHS}")
endif()
# Generate project configuration
kconfig_process_config()
# Include sdkconfig.cmake so rest of the build knows the configuration
include(${SDKCONFIG_CMAKE})
# Verify the environment is configured correctly
idf_verify_environment()
# Check git revision (may trigger reruns of cmake)
## sets IDF_VER to IDF git revision
idf_get_git_revision()
# Check that the targets set in cache, sdkconfig, and in environment all match
idf_check_config_target()
## get PROJECT_VER
if(NOT BOOTLOADER_BUILD)
app_get_revision("${CMAKE_SOURCE_DIR}")
endif()
# Add some idf-wide definitions
idf_set_global_compile_options()
# generate compile_commands.json (needs to come after project)
set(CMAKE_EXPORT_COMPILE_COMMANDS 1)
#
# Setup variables for linker script generation
#
ldgen_set_variables()
# Include any top-level project_include.cmake files from components
foreach(component ${BUILD_COMPONENT_PATHS})
set(COMPONENT_PATH "${component}")
include_if_exists("${component}/project_include.cmake")
unset(COMPONENT_PATH)
endforeach()
#
# Add each component to the build as a library
#
foreach(COMPONENT_PATH ${BUILD_COMPONENT_PATHS})
get_filename_component(COMPONENT_NAME ${COMPONENT_PATH} NAME)
list(FIND BUILD_TEST_COMPONENT_PATHS ${COMPONENT_PATH} idx)
if(NOT idx EQUAL -1)
list(GET BUILD_TEST_COMPONENTS ${idx} test_component)
set(COMPONENT_NAME ${test_component})
endif()
component_get_target(COMPONENT_TARGET ${COMPONENT_NAME})
add_subdirectory(${COMPONENT_PATH} ${COMPONENT_NAME})
endforeach()
unset(COMPONENT_NAME)
unset(COMPONENT_PATH)
# each component should see the include directories of its requirements
#
# (we can't do this until all components are registered and targets exist in cmake, as we have
# a circular requirements graph...)
foreach(component ${BUILD_COMPONENTS})
component_get_target(component_target ${component})
if(TARGET ${component_target})
get_component_requirements(${component} deps priv_deps)
list(APPEND priv_deps ${IDF_COMPONENT_REQUIRES_COMMON})
foreach(dep ${deps})
component_get_target(dep_target ${dep})
add_component_dependencies(${component_target} ${dep_target} PUBLIC)
endforeach()
foreach(dep ${priv_deps})
component_get_target(dep_target ${dep})
add_component_dependencies(${component_target} ${dep_target} PRIVATE)
endforeach()
endif()
endforeach()
if(IDF_BUILD_ARTIFACTS)
# Write project description JSON file
make_json_list("${BUILD_COMPONENTS}" build_components_json)
make_json_list("${BUILD_COMPONENT_PATHS}" build_component_paths_json)
configure_file("${IDF_PATH}/tools/cmake/project_description.json.in"
"${IDF_BUILD_ARTIFACTS_DIR}/project_description.json")
unset(build_components_json)
unset(build_component_paths_json)
endif()
set(BUILD_COMPONENTS ${BUILD_COMPONENTS} PARENT_SCOPE)
ldgen_add_dependencies()

View File

@ -25,6 +25,8 @@ Before sending us a Pull Request, please consider this list of points:
* Are comments and documentation written in clear English, with no spelling or grammar errors?
* Example contributions are also welcome. Please check the :doc:`creating-examples` guide for these.
* If the contribution contains multiple commits, are they grouped together into logical changes (one major change per pull request)? Are any commits with names like "fixed typo" `squashed into previous commits <http://eli.thegreenplace.net/2014/02/19/squashing-github-pull-requests-into-a-single-commit/>`_?
* If you're unsure about any of these points, please open the Pull Request anyhow and then ask us for feedback.
@ -51,5 +53,7 @@ Related Documents
style-guide
documenting-code
add-ons-reference
creating-examples
../api-reference/template
contributor-agreement
contributor-agreement

240
Kconfig
View File

@ -4,48 +4,204 @@
#
mainmenu "Espressif IoT Development Framework Configuration"
menu "SDK tool configuration"
config TOOLPREFIX
string "Compiler toolchain path/prefix"
default "xtensa-esp32-elf-"
help
The prefix/path that is used to call the toolchain. The default setting assumes
a crosstool-ng gcc setup that is in your PATH.
config PYTHON
string "Python 2 interpreter"
default "python"
help
The executable name/path that is used to run python. On some systems Python 2.x
may need to be invoked as python2.
endmenu
source "$COMPONENT_KCONFIGS_PROJBUILD"
choice OPTIMIZATION_LEVEL
prompt "Optimization level"
default OPTIMIZATION_LEVEL_DEBUG
help
This option sets optimization level.
- for "Release" setting, -Os flag is added to CFLAGS,
and -DNDEBUG flag is added to CPPFLAGS.
- for "Debug" setting, -Og flag is added to CFLAGS.
To override any of these settings, set CFLAGS and/or CPPFLAGS
in project makefile, before including $(IDF_PATH)/make/project.mk.
config OPTIMIZATION_LEVEL_DEBUG
bool "Debug"
config OPTIMIZATION_LEVEL_RELEASE
bool "Release"
endchoice
menu "Component config"
source "$COMPONENT_KCONFIGS"
endmenu
config IDF_CMAKE
bool
option env="IDF_CMAKE"
config IDF_TARGET_ENV
# A proxy to get environment variable $IDF_TARGET
string
option env="IDF_TARGET"
config IDF_TARGET
# This option records the IDF target when sdkconfig is generated the first time.
# It is not updated if environment variable $IDF_TARGET changes later, and
# the build system is responsible for detecting the mismatch between
# CONFIG_IDF_TARGET and $IDF_TARGET.
string
default "IDF_TARGET_NOT_SET" if IDF_TARGET_ENV=""
default IDF_TARGET_ENV
menu "SDK tool configuration"
config TOOLPREFIX
string "Compiler toolchain path/prefix"
default "xtensa-esp32-elf-"
help
The prefix/path that is used to call the toolchain. The default setting assumes
a crosstool-ng gcc setup that is in your PATH.
config PYTHON
string "Python 2 interpreter"
depends on !IDF_CMAKE
default "python"
help
The executable name/path that is used to run python. On some systems Python 2.x
may need to be invoked as python2.
(Note: This option is used with the GNU Make build system only, not idf.py
or CMake-based builds.)
config MAKE_WARN_UNDEFINED_VARIABLES
bool "'make' warns on undefined variables"
default "y"
help
Adds --warn-undefined-variables to MAKEFLAGS. This causes make to
print a warning any time an undefined variable is referenced.
This option helps find places where a variable reference is misspelled
or otherwise missing, but it can be unwanted if you have Makefiles which
depend on undefined variables expanding to an empty string.
endmenu # SDK tool configuration
source "$COMPONENT_KCONFIGS_PROJBUILD"
menu "Compiler options"
choice OPTIMIZATION_COMPILER
prompt "Optimization Level"
default OPTIMIZATION_LEVEL_DEBUG
help
This option sets compiler optimization level (gcc -O argument).
- for "Release" setting, -Os flag is added to CFLAGS.
- for "Debug" setting, -Og flag is added to CFLAGS.
"Release" with -Os produces smaller & faster compiled code but it
may be harder to correlated code addresses to source files when debugging.
To add custom optimization settings, set CFLAGS and/or CPPFLAGS
in project makefile, before including $(IDF_PATH)/make/project.mk. Note that
custom optimization levels may be unsupported.
config OPTIMIZATION_LEVEL_DEBUG
bool "Debug (-Og)"
config OPTIMIZATION_LEVEL_RELEASE
bool "Release (-Os)"
endchoice
choice OPTIMIZATION_ASSERTION_LEVEL
prompt "Assertion level"
default OPTIMIZATION_ASSERTIONS_ENABLED
help
Assertions can be:
- Enabled. Failure will print verbose assertion details. This is the default.
- Set to "silent" to save code size (failed assertions will abort() but user
needs to use the aborting address to find the line number with the failed assertion.)
- Disabled entirely (not recommended for most configurations.) -DNDEBUG is added
to CPPFLAGS in this case.
config OPTIMIZATION_ASSERTIONS_ENABLED
prompt "Enabled"
bool
help
Enable assertions. Assertion content and line number will be printed on failure.
config OPTIMIZATION_ASSERTIONS_SILENT
prompt "Silent (saves code size)"
bool
help
Enable silent assertions. Failed assertions will abort(), user needs to
use the aborting address to find the line number with the failed assertion.
config OPTIMIZATION_ASSERTIONS_DISABLED
prompt "Disabled (sets -DNDEBUG)"
bool
help
If assertions are disabled, -DNDEBUG is added to CPPFLAGS.
endchoice # assertions
menuconfig CXX_EXCEPTIONS
bool "Enable C++ exceptions"
default n
help
Enabling this option compiles all IDF C++ files with exception support enabled.
Disabling this option disables C++ exception support in all compiled files, and any libstdc++ code
which throws an exception will abort instead.
Enabling this option currently adds an additional ~500 bytes of heap overhead
when an exception is thrown in user code for the first time.
config CXX_EXCEPTIONS_EMG_POOL_SIZE
int "Emergency Pool Size"
default 0
depends on CXX_EXCEPTIONS
help
Size (in bytes) of the emergency memory pool for C++ exceptions. This pool will be used to allocate
memory for thrown exceptions when there is not enough memory on the heap.
choice STACK_CHECK_MODE
prompt "Stack smashing protection mode"
default STACK_CHECK_NONE
help
Stack smashing protection mode. Emit extra code to check for buffer overflows, such as stack
smashing attacks. This is done by adding a guard variable to functions with vulnerable objects.
The guards are initialized when a function is entered and then checked when the function exits.
If a guard check fails, program is halted. Protection has the following modes:
- In NORMAL mode (GCC flag: -fstack-protector) only functions that call alloca, and functions with
buffers larger than 8 bytes are protected.
- STRONG mode (GCC flag: -fstack-protector-strong) is like NORMAL, but includes additional functions
to be protected -- those that have local array definitions, or have references to local frame
addresses.
- In OVERALL mode (GCC flag: -fstack-protector-all) all functions are protected.
Modes have the following impact on code performance and coverage:
- performance: NORMAL > STRONG > OVERALL
- coverage: NORMAL < STRONG < OVERALL
config STACK_CHECK_NONE
bool "None"
config STACK_CHECK_NORM
bool "Normal"
config STACK_CHECK_STRONG
bool "Strong"
config STACK_CHECK_ALL
bool "Overall"
endchoice
config STACK_CHECK
bool
default !STACK_CHECK_NONE
help
Stack smashing protection.
config WARN_WRITE_STRINGS
bool "Enable -Wwrite-strings warning flag"
default "n"
help
Adds -Wwrite-strings flag for the C/C++ compilers.
For C, this gives string constants the type ``const char[]`` so that
copying the address of one into a non-const ``char *`` pointer
produces a warning. This warning helps to find at compile time code
that tries to write into a string constant.
For C++, this warns about the deprecated conversion from string
literals to ``char *``.
config DISABLE_GCC8_WARNINGS
bool "Disable new warnings introduced in GCC 6 - 8"
default "n"
help
Enable this option if using GCC 6 or newer, and wanting to disable warnings which don't appear with
GCC 5.
endmenu # Compiler Options
menu "Component config"
source "$COMPONENT_KCONFIGS"
endmenu

View File

@ -1,25 +1,30 @@
# Espressif IoT Development Framework
[![alt text](https://readthedocs.org/projects/docs/badge/?version=latest "Documentation Status")](http://esp-idf.readthedocs.io/en/latest/?badge=latest)
[![Documentation Status](https://readthedocs.com/projects/espressif-esp-idf/badge/?version=latest)](https://docs.espressif.com/projects/esp-idf/en/latest/?badge=latest)
ESP-IDF is the official development framework for the [ESP32](https://espressif.com/en/products/hardware/esp32/overview) chip.
# Developing With the ESP-IDF
# Developing With ESP-IDF
## Setting Up ESP-IDF
See setup guides for detailed instructions to set up the ESP-IDF:
* [Windows Setup Guide](http://esp-idf.readthedocs.io/en/latest/get-started/windows-setup.html)
* [Mac OS Setup Guide](http://esp-idf.readthedocs.io/en/latest/get-started/macos-setup.html)
* [Linux Setup Guide](http://esp-idf.readthedocs.io/en/latest/get-started/linux-setup.html)
* [Getting Started Guide for the stable ESP-IDF version](https://docs.espressif.com/projects/esp-idf/en/stable/get-started/)
* [Getting Started Guide for the latest (master branch) ESP-IDF version](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/)
## Finding a Project
As well as the [esp-idf-template](https://github.com/espressif/esp-idf-template) project mentioned in the setup guide, ESP-IDF comes with some example projects in the [examples](examples) directory.
As well as the [esp-idf-template](https://github.com/espressif/esp-idf-template) project mentioned in Getting Started, ESP-IDF comes with some example projects in the [examples](examples) directory.
Once you've found the project you want to work with, change to its directory and you can configure and build it.
To start your own project based on an example, copy the example project directory outside of the ESP-IDF directory.
# Quick Reference
See the Getting Started guide links above for a detailed setup guide. This is a quick reference for common commands when working with ESP-IDF projects:
## Configuring the Project
`make menuconfig`
@ -36,15 +41,17 @@ Once done configuring, press Escape multiple times to exit and say "Yes" to save
## Compiling the Project
`make all`
`make -j4 all`
... will compile app, bootloader and generate a partition table based on the config.
NOTE: The `-j4` option causes `make` to run 4 parallel jobs. This is much faster than the default single job. The recommended number to pass to this option is `-j(number of CPUs + 1)`.
## Flashing the Project
When `make all` finishes, it will print a command line to use esptool.py to flash the chip. However you can also do this from make by running:
When the build finishes, it will print a command line to use esptool.py to flash the chip. However you can also do this automatically by running:
`make flash`
`make -j4 flash`
This will flash the entire project (app, bootloader and partition table) to a new chip. The settings for serial port flashing can be configured with `make menuconfig`.
@ -52,28 +59,28 @@ You don't need to run `make all` before running `make flash`, `make flash` will
## Viewing Serial Output
The `make monitor` target uses the [idf_monitor tool](http://esp-idf.readthedocs.io/en/latest/get-started/idf-monitor.html) to display serial output from the ESP32. idf_monitor also has a range of features to decode crash output and interact with the device. [Check the documentation page for details](http://esp-idf.readthedocs.io/en/latest/get-started/idf-monitor.html).
The `make monitor` target uses the [idf_monitor tool](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/idf-monitor.html) to display serial output from the ESP32. idf_monitor also has a range of features to decode crash output and interact with the device. [Check the documentation page for details](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/idf-monitor.html).
Exit the monitor by typing Ctrl-].
To flash and monitor output in one pass, you can run:
To build, flash and monitor output in one pass, you can run:
`make flash monitor`
`make -j4 flash monitor`
## Compiling & Flashing Just the App
## Compiling & Flashing Only the App
After the initial flash, you may just want to build and flash just your app, not the bootloader and partition table:
* `make app` - build just the app.
* `make app-flash` - flash just the app.
`make app-flash` will automatically rebuild the app if it needs it.
`make app-flash` will automatically rebuild the app if any source files have changed.
(In normal development there's no downside to reflashing the bootloader and partition table each time, if they haven't changed.)
## Parallel Builds
ESP-IDF supports compiling multiple files in parallel, so all of the above commands can be run as `make -jN` where `N` is the number of parallel make processes to run (generally N should be equal to or one more than the number of CPU cores in your system.)
ESP-IDF supports compiling multiple files in parallel, so all of the above commands can be run as `make -jN` where `N` is the number of parallel make processes to run (generally N should be equal to the number of CPU cores in your system, plus one.)
Multiple make functions can be combined into one. For example: to build the app & bootloader using 5 jobs in parallel, then flash everything, and then display serial output from the ESP32 run:
@ -81,6 +88,7 @@ Multiple make functions can be combined into one. For example: to build the app
make -j5 flash monitor
```
## The Partition Table
Once you've compiled your project, the "build" directory will contain a binary file with a name like "my_app.bin". This is an ESP32 image binary that can be loaded by the bootloader.
@ -96,7 +104,7 @@ The simplest way to use the partition table is to `make menuconfig` and choose o
In both cases the factory app is flashed at offset 0x10000. If you `make partition_table` then it will print a summary of the partition table.
For more details about partition tables and how to create custom variations, view the `docs/partition-tables.rst` file.
For more details about partition tables and how to create custom variations, view the [`docs/en/api-guides/partition-tables.rst`](docs/en/api-guides/partition-tables.rst) file.
## Erasing Flash
@ -106,11 +114,12 @@ This can be combined with other targets, ie `make erase_flash flash` will erase
# Resources
* Documentation for the latest version: http://esp-idf.readthedocs.io/. This documentation is built from the [docs directory](docs) of this repository.
* Documentation for the latest version: https://docs.espressif.com/projects/esp-idf/. This documentation is built from the [docs directory](docs) of this repository.
* The [esp32.com forum](http://esp32.com/) is a place to ask questions and find community resources.
* The [esp32.com forum](https://esp32.com/) is a place to ask questions and find community resources.
* [Check the Issues section on github](https://github.com/espressif/esp-idf/issues) if you find a bug or have a feature request. Please check existing Issues before opening a new one.
* If you're interested in contributing to ESP-IDF, please check the [Contributions Guide](http://esp-idf.readthedocs.io/en/latest/contribute/index.html).
* If you're interested in contributing to ESP-IDF, please check the [Contributions Guide](https://docs.espressif.com/projects/esp-idf/en/latest/contribute/index.html).

View File

@ -9,8 +9,12 @@
if [ -z ${IDF_PATH} ]; then
echo "IDF_PATH must be set before including this script."
else
IDF_ADD_PATHS_EXTRAS="${IDF_PATH}/components/esptool_py/esptool:${IDF_PATH}/components/espcoredump:${IDF_PATH}/components/partition_table/"
export PATH="${PATH}:${IDF_ADD_PATHS_EXTRAS}"
IDF_ADD_PATHS_EXTRAS=
IDF_ADD_PATHS_EXTRAS="${IDF_ADD_PATHS_EXTRAS}:${IDF_PATH}/components/esptool_py/esptool"
IDF_ADD_PATHS_EXTRAS="${IDF_ADD_PATHS_EXTRAS}:${IDF_PATH}/components/espcoredump"
IDF_ADD_PATHS_EXTRAS="${IDF_ADD_PATHS_EXTRAS}:${IDF_PATH}/components/partition_table/"
IDF_ADD_PATHS_EXTRAS="${IDF_ADD_PATHS_EXTRAS}:${IDF_PATH}/tools/"
export PATH="${IDF_ADD_PATHS_EXTRAS}:${PATH}"
echo "Added to PATH: ${IDF_ADD_PATHS_EXTRAS}"
fi

View File

@ -0,0 +1,29 @@
set(COMPONENT_SRCS "app_trace.c"
"app_trace_util.c"
"host_file_io.c"
"gcov/gcov_rtio.c")
set(COMPONENT_ADD_INCLUDEDIRS "include")
if(CONFIG_SYSVIEW_ENABLE)
list(APPEND COMPONENT_ADD_INCLUDEDIRS
sys_view/Config
sys_view/SEGGER
sys_view/Sample/OS)
list(APPEND COMPONENT_SRCS "sys_view/SEGGER/SEGGER_SYSVIEW.c"
"sys_view/Sample/Config/SEGGER_SYSVIEW_Config_FreeRTOS.c"
"sys_view/Sample/OS/SEGGER_SYSVIEW_FreeRTOS.c"
"sys_view/esp32/SEGGER_RTT_esp32.c")
endif()
set(COMPONENT_REQUIRES)
set(COMPONENT_PRIV_REQUIRES xtensa-debug-module)
set(COMPONENT_ADD_LDFRAGMENTS linker.lf)
register_component()
# disable --coverage for this component, as it is used as transport
# for gcov
component_compile_options("-fno-profile-arcs" "-fno-test-coverage")
target_link_libraries(${COMPONENT_TARGET} gcov)

View File

@ -0,0 +1,210 @@
menu "Application Level Tracing"
choice ESP32_APPTRACE_DESTINATION
prompt "Data Destination"
default ESP32_APPTRACE_DEST_NONE
help
Select destination for application trace: trace memory or none (to disable).
config ESP32_APPTRACE_DEST_TRAX
bool "Trace memory"
select ESP32_APPTRACE_ENABLE
config ESP32_APPTRACE_DEST_NONE
bool "None"
endchoice
config ESP32_APPTRACE_ENABLE
bool
depends on !ESP32_TRAX
select MEMMAP_TRACEMEM
select MEMMAP_TRACEMEM_TWOBANKS
default n
help
Enables/disable application tracing module.
config ESP32_APPTRACE_LOCK_ENABLE
bool
default !SYSVIEW_ENABLE
help
Enables/disable application tracing module internal sync lock.
config ESP32_APPTRACE_ONPANIC_HOST_FLUSH_TMO
int "Timeout for flushing last trace data to host on panic"
depends on ESP32_APPTRACE_ENABLE
range -1 5000
default -1
help
Timeout for flushing last trace data to host in case of panic. In ms.
Use -1 to disable timeout and wait forever.
config ESP32_APPTRACE_POSTMORTEM_FLUSH_TRAX_THRESH
int "Threshold for flushing last trace data to host on panic"
depends on ESP32_APPTRACE_DEST_TRAX
range 0 16384
default 0
help
Threshold for flushing last trace data to host on panic in post-mortem mode.
This is minimal amount of data needed to perform flush. In bytes.
config ESP32_APPTRACE_PENDING_DATA_SIZE_MAX
int "Size of the pending data buffer"
depends on ESP32_APPTRACE_DEST_TRAX
default 0
help
Size of the buffer for events in bytes. It is useful for buffering events from
the time critical code (scheduler, ISRs etc). If this parameter is 0 then
events will be discarded when main HW buffer is full.
menu "FreeRTOS SystemView Tracing"
depends on ESP32_APPTRACE_ENABLE
config SYSVIEW_ENABLE
bool "SystemView Tracing Enable"
depends on ESP32_APPTRACE_ENABLE
default n
help
Enables supporrt for SEGGER SystemView tracing functionality.
choice SYSVIEW_TS_SOURCE
prompt "Timer to use as timestamp source"
depends on SYSVIEW_ENABLE
default SYSVIEW_TS_SOURCE_CCOUNT if FREERTOS_UNICORE && !PM_ENABLE
default SYSVIEW_TS_SOURCE_TIMER_00 if !FREERTOS_UNICORE && !PM_ENABLE
default SYSVIEW_TS_SOURCE_ESP_TIMER if PM_ENABLE
help
SystemView needs to use a hardware timer as the source of timestamps
when tracing. This option selects the timer for it.
config SYSVIEW_TS_SOURCE_CCOUNT
bool "CPU cycle counter (CCOUNT)"
depends on FREERTOS_UNICORE && !PM_ENABLE
config SYSVIEW_TS_SOURCE_TIMER_00
bool "Timer 0, Group 0"
depends on !PM_ENABLE
config SYSVIEW_TS_SOURCE_TIMER_01
bool "Timer 1, Group 0"
depends on !PM_ENABLE
config SYSVIEW_TS_SOURCE_TIMER_10
bool "Timer 0, Group 1"
depends on !PM_ENABLE
config SYSVIEW_TS_SOURCE_TIMER_11
bool "Timer 1, Group 1"
depends on !PM_ENABLE
config SYSVIEW_TS_SOURCE_ESP_TIMER
bool "esp_timer high resolution timer"
endchoice
config SYSVIEW_MAX_TASKS
int "Maximum supported tasks"
depends on SYSVIEW_ENABLE
range 1 64
default 16
help
Configures maximum supported tasks in sysview debug
config SYSVIEW_EVT_OVERFLOW_ENABLE
bool "Trace Buffer Overflow Event"
depends on SYSVIEW_ENABLE
default y
help
Enables "Trace Buffer Overflow" event.
config SYSVIEW_EVT_ISR_ENTER_ENABLE
bool "ISR Enter Event"
depends on SYSVIEW_ENABLE
default y
help
Enables "ISR Enter" event.
config SYSVIEW_EVT_ISR_EXIT_ENABLE
bool "ISR Exit Event"
depends on SYSVIEW_ENABLE
default y
help
Enables "ISR Exit" event.
config SYSVIEW_EVT_ISR_TO_SCHEDULER_ENABLE
bool "ISR Exit to Scheduler Event"
depends on SYSVIEW_ENABLE
default y
help
Enables "ISR to Scheduler" event.
config SYSVIEW_EVT_TASK_START_EXEC_ENABLE
bool "Task Start Execution Event"
depends on SYSVIEW_ENABLE
default y
help
Enables "Task Start Execution" event.
config SYSVIEW_EVT_TASK_STOP_EXEC_ENABLE
bool "Task Stop Execution Event"
depends on SYSVIEW_ENABLE
default y
help
Enables "Task Stop Execution" event.
config SYSVIEW_EVT_TASK_START_READY_ENABLE
bool "Task Start Ready State Event"
depends on SYSVIEW_ENABLE
default y
help
Enables "Task Start Ready State" event.
config SYSVIEW_EVT_TASK_STOP_READY_ENABLE
bool "Task Stop Ready State Event"
depends on SYSVIEW_ENABLE
default y
help
Enables "Task Stop Ready State" event.
config SYSVIEW_EVT_TASK_CREATE_ENABLE
bool "Task Create Event"
depends on SYSVIEW_ENABLE
default y
help
Enables "Task Create" event.
config SYSVIEW_EVT_TASK_TERMINATE_ENABLE
bool "Task Terminate Event"
depends on SYSVIEW_ENABLE
default y
help
Enables "Task Terminate" event.
config SYSVIEW_EVT_IDLE_ENABLE
bool "System Idle Event"
depends on SYSVIEW_ENABLE
default y
help
Enables "System Idle" event.
config SYSVIEW_EVT_TIMER_ENTER_ENABLE
bool "Timer Enter Event"
depends on SYSVIEW_ENABLE
default y
help
Enables "Timer Enter" event.
config SYSVIEW_EVT_TIMER_EXIT_ENABLE
bool "Timer Exit Event"
depends on SYSVIEW_ENABLE
default y
help
Enables "Timer Exit" event.
endmenu
config ESP32_GCOV_ENABLE
bool "GCOV to Host Enable"
depends on ESP32_DEBUG_STUBS_ENABLE && ESP32_APPTRACE_ENABLE && !SYSVIEW_ENABLE
default y
help
Enables support for GCOV data transfer to host.
endmenu

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,191 @@
// Copyright 2017 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_app_trace_util.h"
#include "esp_clk.h"
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////// TIMEOUT /////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
#define ESP_APPTRACE_CPUTICKS2US(_t_, _cpu_freq_) ((_t_)/(_cpu_freq_/1000000))
#define ESP_APPTRACE_US2CPUTICKS(_t_, _cpu_freq_) ((_t_)*(_cpu_freq_/1000000))
esp_err_t esp_apptrace_tmo_check(esp_apptrace_tmo_t *tmo)
{
int cpu_freq = esp_clk_cpu_freq();
if (tmo->tmo != ESP_APPTRACE_TMO_INFINITE) {
unsigned cur = portGET_RUN_TIME_COUNTER_VALUE();
if (tmo->start <= cur) {
tmo->elapsed = ESP_APPTRACE_CPUTICKS2US(cur - tmo->start, cpu_freq);
} else {
tmo->elapsed = ESP_APPTRACE_CPUTICKS2US(0xFFFFFFFF - tmo->start + cur, cpu_freq);
}
if (tmo->elapsed >= tmo->tmo) {
return ESP_ERR_TIMEOUT;
}
}
return ESP_OK;
}
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////// LOCK ////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
esp_err_t esp_apptrace_lock_take(esp_apptrace_lock_t *lock, esp_apptrace_tmo_t *tmo)
{
int res;
while (1) {
// do not overwrite lock->int_state before we actually acquired the mux
unsigned int_state = portENTER_CRITICAL_NESTED();
// FIXME: if mux is busy it is not good idea to loop during the whole tmo with disabled IRQs.
// So we check mux state using zero tmo, restore IRQs and let others tasks/IRQs to run on this CPU
// while we are doing our own tmo check.
#ifdef CONFIG_FREERTOS_PORTMUX_DEBUG
bool success = vPortCPUAcquireMutexTimeout(&lock->mux, 0, __FUNCTION__, __LINE__);
#else
bool success = vPortCPUAcquireMutexTimeout(&lock->mux, 0);
#endif
if (success) {
lock->int_state = int_state;
return ESP_OK;
}
portEXIT_CRITICAL_NESTED(int_state);
// we can be preempted from this place till the next call (above) to portENTER_CRITICAL_NESTED()
res = esp_apptrace_tmo_check(tmo);
if (res != ESP_OK) {
break;
}
}
return res;
}
esp_err_t esp_apptrace_lock_give(esp_apptrace_lock_t *lock)
{
// save lock's irq state value for this CPU
unsigned int_state = lock->int_state;
// after call to the following func we can not be sure that lock->int_state
// is not overwritten by other CPU who has acquired the mux just after we released it. See esp_apptrace_lock_take().
#ifdef CONFIG_FREERTOS_PORTMUX_DEBUG
vPortCPUReleaseMutex(&lock->mux, __FUNCTION__, __LINE__);
#else
vPortCPUReleaseMutex(&lock->mux);
#endif
portEXIT_CRITICAL_NESTED(int_state);
return ESP_OK;
}
///////////////////////////////////////////////////////////////////////////////
////////////////////////////// RING BUFFER ////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
uint8_t *esp_apptrace_rb_produce(esp_apptrace_rb_t *rb, uint32_t size)
{
uint8_t *ptr = rb->data + rb->wr;
// check for avalable space
if (rb->rd <= rb->wr) {
// |?R......W??|
if (rb->wr + size >= rb->size) {
if (rb->rd == 0) {
return NULL; // cannot wrap wr
}
if (rb->wr + size == rb->size) {
rb->wr = 0;
} else {
// check if we can wrap wr earlier to get space for requested size
if (size > rb->rd - 1) {
return NULL; // cannot wrap wr
}
// shrink buffer a bit, full size will be restored at rd wrapping
rb->cur_size = rb->wr;
rb->wr = 0;
ptr = rb->data;
if (rb->rd == rb->cur_size) {
rb->rd = 0;
if (rb->cur_size < rb->size) {
rb->cur_size = rb->size;
}
}
rb->wr += size;
}
} else {
rb->wr += size;
}
} else {
// |?W......R??|
if (size > rb->rd - rb->wr - 1) {
return NULL;
}
rb->wr += size;
}
return ptr;
}
uint8_t *esp_apptrace_rb_consume(esp_apptrace_rb_t *rb, uint32_t size)
{
uint8_t *ptr = rb->data + rb->rd;
if (rb->rd <= rb->wr) {
// |?R......W??|
if (rb->rd + size > rb->wr) {
return NULL;
}
rb->rd += size;
} else {
// |?W......R??|
if (rb->rd + size > rb->cur_size) {
return NULL;
} else if (rb->rd + size == rb->cur_size) {
// restore full size usage
if (rb->cur_size < rb->size) {
rb->cur_size = rb->size;
}
rb->rd = 0;
} else {
rb->rd += size;
}
}
return ptr;
}
uint32_t esp_apptrace_rb_read_size_get(esp_apptrace_rb_t *rb)
{
uint32_t size = 0;
if (rb->rd <= rb->wr) {
// |?R......W??|
size = rb->wr - rb->rd;
} else {
// |?W......R??|
size = rb->cur_size - rb->rd;
}
return size;
}
uint32_t esp_apptrace_rb_write_size_get(esp_apptrace_rb_t *rb)
{
uint32_t size = 0;
if (rb->rd <= rb->wr) {
// |?R......W??|
size = rb->size - rb->wr;
if (size && rb->rd == 0) {
size--;
}
} else {
// |?W......R??|
size = rb->rd - rb->wr - 1;
}
return size;
}

View File

@ -0,0 +1,31 @@
#
# Component Makefile
#
COMPONENT_SRCDIRS := .
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 \
sys_view/Sample/OS
COMPONENT_SRCDIRS += \
gcov \
sys_view/SEGGER \
sys_view/Sample/OS \
sys_view/Sample/Config \
sys_view/esp32
else
COMPONENT_SRCDIRS += gcov
endif
COMPONENT_ADD_LDFRAGMENTS += linker.lf

View File

@ -0,0 +1,195 @@
// Copyright 2017 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// This module implements runtime file I/O API for GCOV.
#include "esp_task_wdt.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "soc/cpu.h"
#include "soc/timer_group_struct.h"
#include "soc/timer_group_reg.h"
#include "esp_app_trace.h"
#include "esp_dbg_stubs.h"
#if CONFIG_ESP32_GCOV_ENABLE
#define ESP_GCOV_DOWN_BUF_SIZE 4200
#define LOG_LOCAL_LEVEL CONFIG_LOG_DEFAULT_LEVEL
#include "esp_log.h"
const static char *TAG = "esp_gcov_rtio";
#if GCC_NOT_5_2_0
void __gcov_dump(void);
void __gcov_reset(void);
#else
/* The next code for old GCC */
static void (*s_gcov_exit)(void);
/* Root of a program/shared-object state */
struct gcov_root
{
void *list;
unsigned dumped : 1; /* counts have been dumped. */
unsigned run_counted : 1; /* run has been accounted for. */
struct gcov_root *next;
struct gcov_root *prev;
};
/* Per-dynamic-object gcov state. */
extern struct gcov_root __gcov_root;
static void esp_gcov_reset_status(void)
{
__gcov_root.dumped = 0;
__gcov_root.run_counted = 0;
}
#endif
static int esp_dbg_stub_gcov_dump_do(void)
{
int ret = ESP_OK;
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;
}
ESP_EARLY_LOGV(TAG, "Config apptrace down buf");
esp_apptrace_down_buffer_config(down_buf, ESP_GCOV_DOWN_BUF_SIZE);
ESP_EARLY_LOGV(TAG, "Dump data...");
#if GCC_NOT_5_2_0
__gcov_dump();
// reset dump status to allow incremental data accumulation
__gcov_reset();
#else
ESP_EARLY_LOGV(TAG, "Check for dump handler %p", s_gcov_exit);
if (s_gcov_exit) {
s_gcov_exit();
// reset dump status to allow incremental data accumulation
esp_gcov_reset_status();
}
#endif
ESP_EARLY_LOGV(TAG, "Free apptrace down buf");
free(down_buf);
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);
}
return ret;
}
/**
* @brief Triggers gcov info dump.
* This function is to be called by OpenOCD, not by normal user code.
* 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)
{
#if GCC_NOT_5_2_0
return esp_dbg_stub_gcov_dump_do();
#else
int ret = ESP_OK;
// disable IRQs on this CPU, other CPU is halted by OpenOCD
unsigned irq_state = portENTER_CRITICAL_NESTED();
ret = esp_dbg_stub_gcov_dump_do();
portEXIT_CRITICAL_NESTED(irq_state);
return ret;
#endif
}
void esp_gcov_dump()
{
// 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
while (!esp_apptrace_host_is_connected(ESP_APPTRACE_DEST_TRAX)) {
// to avoid complains that task watchdog got triggered for other tasks
TIMERG0.wdt_wprotect=TIMG_WDT_WKEY_VALUE;
TIMERG0.wdt_feed=1;
TIMERG0.wdt_wprotect=0;
// to avoid reboot on INT_WDT
TIMERG1.wdt_wprotect=TIMG_WDT_WKEY_VALUE;
TIMERG1.wdt_feed=1;
TIMERG1.wdt_wprotect=0;
}
esp_dbg_stub_gcov_dump_do();
#if !CONFIG_FREERTOS_UNICORE
esp_cpu_unstall(other_core);
#endif
portEXIT_CRITICAL_NESTED(irq_state);
}
int gcov_rtio_atexit(void (*function)(void) __attribute__ ((unused)))
{
#if GCC_NOT_5_2_0
ESP_EARLY_LOGV(TAG, "%s", __FUNCTION__);
#else
ESP_EARLY_LOGV(TAG, "%s %p", __FUNCTION__, function);
s_gcov_exit = function;
#endif
esp_dbg_stub_entry_set(ESP_DBG_STUB_ENTRY_GCOV, (uint32_t)&esp_dbg_stub_gcov_entry);
return 0;
}
void *gcov_rtio_fopen(const char *path, const char *mode)
{
ESP_EARLY_LOGV(TAG, "%s '%s' '%s'", __FUNCTION__, path, mode);
return esp_apptrace_fopen(ESP_APPTRACE_DEST_TRAX, path, mode);
}
int gcov_rtio_fclose(void *stream)
{
ESP_EARLY_LOGV(TAG, "%s", __FUNCTION__);
return esp_apptrace_fclose(ESP_APPTRACE_DEST_TRAX, 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);
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;
}
size_t gcov_rtio_fwrite(const void *ptr, size_t size, size_t nmemb, void *stream)
{
ESP_EARLY_LOGV(TAG, "%s", __FUNCTION__);
return esp_apptrace_fwrite(ESP_APPTRACE_DEST_TRAX, ptr, size, nmemb, stream);
}
int gcov_rtio_fseek(void *stream, long offset, int whence)
{
int ret = esp_apptrace_fseek(ESP_APPTRACE_DEST_TRAX, stream, offset, whence);
ESP_EARLY_LOGV(TAG, "%s(%p %ld %d) = %d", __FUNCTION__, stream, offset, whence, ret);
return ret;
}
long gcov_rtio_ftell(void *stream)
{
long ret = esp_apptrace_ftell(ESP_APPTRACE_DEST_TRAX, stream);
ESP_EARLY_LOGV(TAG, "%s(%p) = %ld", __FUNCTION__, stream, ret);
return ret;
}
#endif

View File

@ -0,0 +1,353 @@
// Copyright 2017 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// Hot It Works
// ************
//
// This module implements host file I/O protocol on top of apptrace module.
// The protocol is enough simple. It sends command with arguments to the host and receives response from it.
// Responses contains return values of respective file I/O API. This value is returned to the caller.
// Commands has the following format:
// * Header. See esp_apptrace_fcmd_hdr_t.
// * Operation arguments. See file operation helper structures below.
#include <string.h>
#include "esp_app_trace.h"
#if CONFIG_ESP32_APPTRACE_ENABLE
#define LOG_LOCAL_LEVEL CONFIG_LOG_DEFAULT_LEVEL
#include "esp_log.h"
const static char *TAG = "esp_host_file_io";
#define ESP_APPTRACE_FILE_CMD_FOPEN 0x0
#define ESP_APPTRACE_FILE_CMD_FCLOSE 0x1
#define ESP_APPTRACE_FILE_CMD_FWRITE 0x2
#define ESP_APPTRACE_FILE_CMD_FREAD 0x3
#define ESP_APPTRACE_FILE_CMD_FSEEK 0x4
#define ESP_APPTRACE_FILE_CMD_FTELL 0x5
#define ESP_APPTRACE_FILE_CMD_STOP 0x6 // indicates that there is no files to transfer
/** File operation header */
typedef struct {
uint8_t cmd; ///< Command ID
} esp_apptrace_fcmd_hdr_t;
/** Helper structure for fopen */
typedef struct {
const char *path;
uint16_t path_len;
const char *mode;
uint16_t mode_len;
} esp_apptrace_fopen_args_t;
/** Helper structure for fclose */
typedef struct {
void *file;
} esp_apptrace_fclose_args_t;
/** Helper structure for fwrite */
typedef struct {
void * buf;
size_t size;
void * file;
} esp_apptrace_fwrite_args_t;
/** Helper structure for fread */
typedef struct {
size_t size;
void * file;
} esp_apptrace_fread_args_t;
/** Helper structure for fseek */
typedef struct {
long offset;
int whence;
void * file;
} esp_apptrace_fseek_args_t;
/** Helper structure for ftell */
typedef struct {
void *file;
} esp_apptrace_ftell_args_t;
static esp_err_t esp_apptrace_file_cmd_send(esp_apptrace_dest_t dest, uint8_t cmd, void (*prep_args)(uint8_t *, void *), void *args, uint32_t args_len)
{
esp_err_t ret;
esp_apptrace_fcmd_hdr_t *hdr;
ESP_EARLY_LOGV(TAG, "%s %d", __func__, cmd);
uint8_t *ptr = esp_apptrace_buffer_get(dest, sizeof(*hdr) + args_len, ESP_APPTRACE_TMO_INFINITE); //TODO: finite tmo
if (ptr == NULL) {
return ESP_ERR_NO_MEM;
}
hdr = (esp_apptrace_fcmd_hdr_t *)ptr;
hdr->cmd = cmd;
if (prep_args) {
prep_args(ptr + sizeof(hdr->cmd), args);
}
// now indicate that this buffer is ready to be sent off to host
ret = esp_apptrace_buffer_put(dest, ptr, ESP_APPTRACE_TMO_INFINITE);//TODO: finite tmo
if (ret != ESP_OK) {
ESP_EARLY_LOGE(TAG, "Failed to put apptrace buffer (%d)!", ret);
return ret;
}
ret = esp_apptrace_flush(dest, ESP_APPTRACE_TMO_INFINITE);//TODO: finite tmo
if (ret != ESP_OK) {
ESP_EARLY_LOGE(TAG, "Failed to flush apptrace buffer (%d)!", ret);
return ret;
}
return ESP_OK;
}
static esp_err_t esp_apptrace_file_rsp_recv(esp_apptrace_dest_t dest, uint8_t *buf, uint32_t buf_len)
{
uint32_t tot_rd = 0;
while (tot_rd < buf_len) {
uint32_t rd_size = buf_len - tot_rd;
esp_err_t ret = esp_apptrace_read(dest, buf + tot_rd, &rd_size, ESP_APPTRACE_TMO_INFINITE); //TODO: finite tmo
if (ret != ESP_OK) {
ESP_EARLY_LOGE(TAG, "Failed to read (%d)!", ret);
return ret;
}
ESP_EARLY_LOGV(TAG, "%s read %d bytes", __FUNCTION__, rd_size);
tot_rd += rd_size;
}
return ESP_OK;
}
static void esp_apptrace_fopen_args_prepare(uint8_t *buf, void *priv)
{
esp_apptrace_fopen_args_t *args = priv;
memcpy(buf, args->path, args->path_len);
memcpy(buf + args->path_len, args->mode, args->mode_len);
}
void *esp_apptrace_fopen(esp_apptrace_dest_t dest, const char *path, const char *mode)
{
esp_apptrace_fopen_args_t cmd_args;
ESP_EARLY_LOGV(TAG, "esp_apptrace_fopen '%s' '%s'", path, mode);
cmd_args.path = path;
cmd_args.path_len = strlen(path) + 1;
cmd_args.mode = mode;
cmd_args.mode_len = strlen(mode) + 1;
esp_err_t ret = esp_apptrace_file_cmd_send(dest, ESP_APPTRACE_FILE_CMD_FOPEN, esp_apptrace_fopen_args_prepare,
&cmd_args, cmd_args.path_len+cmd_args.mode_len);
if (ret != ESP_OK) {
ESP_EARLY_LOGE(TAG, "Failed to send file cmd (%d)!", ret);
return NULL;
}
// now read the answer
void *resp;
ret = esp_apptrace_file_rsp_recv(dest, (uint8_t *)&resp, sizeof(resp));
if (ret != ESP_OK) {
ESP_EARLY_LOGE(TAG, "Failed to read response (%d)!", ret);
return NULL;
}
return resp;
}
static void esp_apptrace_fclose_args_prepare(uint8_t *buf, void *priv)
{
esp_apptrace_fclose_args_t *args = priv;
memcpy(buf, &args->file, sizeof(args->file));
}
int esp_apptrace_fclose(esp_apptrace_dest_t dest, void *stream)
{
esp_apptrace_fclose_args_t cmd_args;
cmd_args.file = stream;
esp_err_t ret = esp_apptrace_file_cmd_send(dest, ESP_APPTRACE_FILE_CMD_FCLOSE, esp_apptrace_fclose_args_prepare,
&cmd_args, sizeof(cmd_args));
if (ret != ESP_OK) {
ESP_EARLY_LOGE(TAG, "Failed to send file cmd (%d)!", ret);
return EOF;
}
// now read the answer
int resp;
ret = esp_apptrace_file_rsp_recv(dest, (uint8_t *)&resp, sizeof(resp));
if (ret != ESP_OK) {
ESP_EARLY_LOGE(TAG, "Failed to read response (%d)!", ret);
return EOF;
}
return resp;
}
static void esp_apptrace_fwrite_args_prepare(uint8_t *buf, void *priv)
{
esp_apptrace_fwrite_args_t *args = priv;
memcpy(buf, &args->file, sizeof(args->file));
memcpy(buf + sizeof(args->file), args->buf, args->size);
}
size_t esp_apptrace_fwrite(esp_apptrace_dest_t dest, const void *ptr, size_t size, size_t nmemb, void *stream)
{
esp_apptrace_fwrite_args_t cmd_args;
ESP_EARLY_LOGV(TAG, "esp_apptrace_fwrite f %p l %d", stream, size*nmemb);
cmd_args.buf = (void *)ptr;
cmd_args.size = size * nmemb;
cmd_args.file = stream;
esp_err_t ret = esp_apptrace_file_cmd_send(dest, ESP_APPTRACE_FILE_CMD_FWRITE, esp_apptrace_fwrite_args_prepare,
&cmd_args, sizeof(cmd_args.file)+cmd_args.size);
if (ret != ESP_OK) {
ESP_EARLY_LOGE(TAG, "Failed to send file cmd (%d)!", ret);
return 0;
}
// now read the answer
size_t resp;
ret = esp_apptrace_file_rsp_recv(dest, (uint8_t *)&resp, sizeof(resp));
if (ret != ESP_OK) {
ESP_EARLY_LOGE(TAG, "Failed to read response (%d)!", ret);
return 0;
}
return resp;
}
static void esp_apptrace_fread_args_prepare(uint8_t *buf, void *priv)
{
esp_apptrace_fread_args_t *args = priv;
memcpy(buf, &args->file, sizeof(args->file));
memcpy(buf + sizeof(args->file), &args->size, sizeof(args->size));
}
size_t esp_apptrace_fread(esp_apptrace_dest_t dest, void *ptr, size_t size, size_t nmemb, void *stream)
{
esp_apptrace_fread_args_t cmd_args;
ESP_EARLY_LOGV(TAG, "esp_apptrace_fread f %p l %d", stream, size*nmemb);
cmd_args.size = size * nmemb;
cmd_args.file = stream;
esp_err_t ret = esp_apptrace_file_cmd_send(dest, ESP_APPTRACE_FILE_CMD_FREAD, esp_apptrace_fread_args_prepare,
&cmd_args, sizeof(cmd_args));
if (ret != ESP_OK) {
ESP_EARLY_LOGE(TAG, "Failed to send file cmd (%d)!", ret);
return 0;
}
// now read the answer
size_t resp;
ret = esp_apptrace_file_rsp_recv(dest, (uint8_t *)&resp, sizeof(resp));
if (ret != ESP_OK) {
ESP_EARLY_LOGE(TAG, "Failed to read response (%d)!", ret);
return 0;
}
if (resp > 0) {
ret = esp_apptrace_file_rsp_recv(dest, ptr, resp);
if (ret != ESP_OK) {
ESP_EARLY_LOGE(TAG, "Failed to read file data (%d)!", ret);
return 0;
}
}
return resp;
}
static void esp_apptrace_fseek_args_prepare(uint8_t *buf, void *priv)
{
esp_apptrace_fseek_args_t *args = priv;
memcpy(buf, &args->file, sizeof(args->file));
memcpy(buf + sizeof(args->file), &args->offset, sizeof(args->offset));
memcpy(buf + sizeof(args->file) + sizeof(args->offset), &args->whence, sizeof(args->whence));
}
int esp_apptrace_fseek(esp_apptrace_dest_t dest, void *stream, long offset, int whence)
{
esp_apptrace_fseek_args_t cmd_args;
ESP_EARLY_LOGV(TAG, "esp_apptrace_fseek f %p o 0x%lx w %d", stream, offset, whence);
cmd_args.file = stream;
cmd_args.offset = offset;
cmd_args.whence = whence;
esp_err_t ret = esp_apptrace_file_cmd_send(dest, ESP_APPTRACE_FILE_CMD_FSEEK, esp_apptrace_fseek_args_prepare,
&cmd_args, sizeof(cmd_args));
if (ret != ESP_OK) {
ESP_EARLY_LOGE(TAG, "Failed to send file cmd (%d)!", ret);
return -1;
}
// now read the answer
int resp;
ret = esp_apptrace_file_rsp_recv(dest, (uint8_t *)&resp, sizeof(resp));
if (ret != ESP_OK) {
ESP_EARLY_LOGE(TAG, "Failed to read response (%d)!", ret);
return -1;
}
return resp;
}
static void esp_apptrace_ftell_args_prepare(uint8_t *buf, void *priv)
{
esp_apptrace_ftell_args_t *args = priv;
memcpy(buf, &args->file, sizeof(args->file));
}
int esp_apptrace_ftell(esp_apptrace_dest_t dest, void *stream)
{
esp_apptrace_ftell_args_t cmd_args;
cmd_args.file = stream;
esp_err_t ret = esp_apptrace_file_cmd_send(dest, ESP_APPTRACE_FILE_CMD_FTELL, esp_apptrace_ftell_args_prepare,
&cmd_args, sizeof(cmd_args));
if (ret != ESP_OK) {
ESP_EARLY_LOGE(TAG, "Failed to send file cmd (%d)!", ret);
return -1;
}
// now read the answer
int resp;
ret = esp_apptrace_file_rsp_recv(dest, (uint8_t *)&resp, sizeof(resp));
if (ret != ESP_OK) {
ESP_EARLY_LOGE(TAG, "Failed to read response (%d)!", ret);
return -1;
}
return resp;
}
int esp_apptrace_fstop(esp_apptrace_dest_t dest)
{
ESP_EARLY_LOGV(TAG, "%s", __func__);
esp_err_t ret = esp_apptrace_file_cmd_send(dest, ESP_APPTRACE_FILE_CMD_STOP, NULL, NULL, 0);
if (ret != ESP_OK) {
ESP_EARLY_LOGE(TAG, "Failed to send files transfer stop cmd (%d)!", ret);
}
return ret;
}
#endif

View File

@ -0,0 +1,265 @@
// Copyright 2017 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#ifndef ESP_APP_TRACE_H_
#define ESP_APP_TRACE_H_
#include <stdarg.h>
#include "esp_err.h"
#include "esp_app_trace_util.h" // ESP_APPTRACE_TMO_INFINITE
/**
* Application trace data destinations bits.
*/
typedef enum {
ESP_APPTRACE_DEST_TRAX = 0x1, ///< JTAG destination
ESP_APPTRACE_DEST_UART0 = 0x2, ///< UART destination
} esp_apptrace_dest_t;
/**
* @brief Initializes application tracing module.
*
* @note Should be called before any esp_apptrace_xxx call.
*
* @return ESP_OK on success, otherwise see esp_err_t
*/
esp_err_t esp_apptrace_init();
/**
* @brief Configures down buffer.
* @note Needs to be called before initiating any data transfer using esp_apptrace_buffer_get and esp_apptrace_write.
* This function does not protect internal data by lock.
*
* @param buf Address of buffer to use for down channel (host to target) data.
* @param size Size of the buffer.
*/
void esp_apptrace_down_buffer_config(uint8_t *buf, uint32_t size);
/**
* @brief Allocates buffer for trace data.
* After data in buffer are ready to be sent off esp_apptrace_buffer_put must be called to indicate it.
*
* @param dest Indicates HW interface to send data.
* @param size Size of data to write to trace buffer.
* @param tmo Timeout for operation (in us). Use ESP_APPTRACE_TMO_INFINITE to wait indefinitely.
*
* @return non-NULL on success, otherwise NULL.
*/
uint8_t *esp_apptrace_buffer_get(esp_apptrace_dest_t dest, uint32_t size, uint32_t tmo);
/**
* @brief Indicates that the data in buffer are ready to be sent off.
* This function is a counterpart of and must be preceeded by esp_apptrace_buffer_get.
*
* @param dest Indicates HW interface to send data. Should be identical to the same parameter in call to esp_apptrace_buffer_get.
* @param ptr Address of trace buffer to release. Should be the value returned by call to esp_apptrace_buffer_get.
* @param tmo Timeout for operation (in us). Use ESP_APPTRACE_TMO_INFINITE to wait indefinitely.
*
* @return ESP_OK on success, otherwise see esp_err_t
*/
esp_err_t esp_apptrace_buffer_put(esp_apptrace_dest_t dest, uint8_t *ptr, uint32_t tmo);
/**
* @brief Writes data to trace buffer.
*
* @param dest Indicates HW interface to send data.
* @param data Address of data to write to trace buffer.
* @param size Size of data to write to trace buffer.
* @param tmo Timeout for operation (in us). Use ESP_APPTRACE_TMO_INFINITE to wait indefinitely.
*
* @return ESP_OK on success, otherwise see esp_err_t
*/
esp_err_t esp_apptrace_write(esp_apptrace_dest_t dest, const void *data, uint32_t size, uint32_t tmo);
/**
* @brief vprintf-like function to sent log messages to host via specified HW interface.
*
* @param dest Indicates HW interface to send data.
* @param tmo Timeout for operation (in us). Use ESP_APPTRACE_TMO_INFINITE to wait indefinitely.
* @param fmt Address of format string.
* @param ap List of arguments.
*
* @return Number of bytes written.
*/
int esp_apptrace_vprintf_to(esp_apptrace_dest_t dest, uint32_t tmo, const char *fmt, va_list ap);
/**
* @brief vprintf-like function to sent log messages to host.
*
* @param fmt Address of format string.
* @param ap List of arguments.
*
* @return Number of bytes written.
*/
int esp_apptrace_vprintf(const char *fmt, va_list ap);
/**
* @brief Flushes remaining data in trace buffer to host.
*
* @param dest Indicates HW interface to flush data on.
* @param tmo Timeout for operation (in us). Use ESP_APPTRACE_TMO_INFINITE to wait indefinitely.
*
* @return ESP_OK on success, otherwise see esp_err_t
*/
esp_err_t esp_apptrace_flush(esp_apptrace_dest_t dest, uint32_t tmo);
/**
* @brief Flushes remaining data in trace buffer to host without locking internal data.
* This is special version of esp_apptrace_flush which should be called from panic handler.
*
* @param dest Indicates HW interface to flush data on.
* @param min_sz Threshold for flushing data. If current filling level is above this value, data will be flushed. TRAX destinations only.
* @param tmo Timeout for operation (in us). Use ESP_APPTRACE_TMO_INFINITE to wait indefinitely.
*
* @return ESP_OK on success, otherwise see esp_err_t
*/
esp_err_t esp_apptrace_flush_nolock(esp_apptrace_dest_t dest, uint32_t min_sz, uint32_t tmo);
/**
* @brief Reads host data from trace buffer.
*
* @param dest Indicates HW interface to read the data on.
* @param data Address of buffer to put data from trace buffer.
* @param size Pointer to store size of read data. Before call to this function pointed memory must hold requested size of data
* @param tmo Timeout for operation (in us). Use ESP_APPTRACE_TMO_INFINITE to wait indefinitely.
*
* @return ESP_OK on success, otherwise see esp_err_t
*/
esp_err_t esp_apptrace_read(esp_apptrace_dest_t dest, void *data, uint32_t *size, uint32_t tmo);
/**
* @brief Retrieves incoming data buffer if any.
* After data in buffer are processed esp_apptrace_down_buffer_put must be called to indicate it.
*
* @param dest Indicates HW interface to receive data.
* @param size Address to store size of available data in down buffer. Must be initialized with requested value.
* @param tmo Timeout for operation (in us). Use ESP_APPTRACE_TMO_INFINITE to wait indefinitely.
*
* @return non-NULL on success, otherwise NULL.
*/
uint8_t *esp_apptrace_down_buffer_get(esp_apptrace_dest_t dest, uint32_t *size, uint32_t tmo);
/**
* @brief Indicates that the data in down buffer are processed.
* This function is a counterpart of and must be preceeded by esp_apptrace_down_buffer_get.
*
* @param dest Indicates HW interface to receive data. Should be identical to the same parameter in call to esp_apptrace_down_buffer_get.
* @param ptr Address of trace buffer to release. Should be the value returned by call to esp_apptrace_down_buffer_get.
* @param tmo Timeout for operation (in us). Use ESP_APPTRACE_TMO_INFINITE to wait indefinitely.
*
* @return ESP_OK on success, otherwise see esp_err_t
*/
esp_err_t esp_apptrace_down_buffer_put(esp_apptrace_dest_t dest, uint8_t *ptr, uint32_t tmo);
/**
* @brief Checks whether host is connected.
*
* @param dest Indicates HW interface to use.
*
* @return true if host is connected, otherwise false
*/
bool esp_apptrace_host_is_connected(esp_apptrace_dest_t dest);
/**
* @brief Opens file on host.
* This function has the same semantic as 'fopen' except for the first argument.
*
* @param dest Indicates HW interface to use.
* @param path Path to file.
* @param mode Mode string. See fopen for details.
*
* @return non zero file handle on success, otherwise 0
*/
void *esp_apptrace_fopen(esp_apptrace_dest_t dest, const char *path, const char *mode);
/**
* @brief Closes file on host.
* This function has the same semantic as 'fclose' except for the first argument.
*
* @param dest Indicates HW interface to use.
* @param stream File handle returned by esp_apptrace_fopen.
*
* @return Zero on success, otherwise non-zero. See fclose for details.
*/
int esp_apptrace_fclose(esp_apptrace_dest_t dest, void *stream);
/**
* @brief Writes to file on host.
* This function has the same semantic as 'fwrite' except for the first argument.
*
* @param dest Indicates HW interface to use.
* @param ptr Address of data to write.
* @param size Size of an item.
* @param nmemb Number of items to write.
* @param stream File handle returned by esp_apptrace_fopen.
*
* @return Number of written items. See fwrite for details.
*/
size_t esp_apptrace_fwrite(esp_apptrace_dest_t dest, const void *ptr, size_t size, size_t nmemb, void *stream);
/**
* @brief Read file on host.
* This function has the same semantic as 'fread' except for the first argument.
*
* @param dest Indicates HW interface to use.
* @param ptr Address to store read data.
* @param size Size of an item.
* @param nmemb Number of items to read.
* @param stream File handle returned by esp_apptrace_fopen.
*
* @return Number of read items. See fread for details.
*/
size_t esp_apptrace_fread(esp_apptrace_dest_t dest, void *ptr, size_t size, size_t nmemb, void *stream);
/**
* @brief Set position indicator in file on host.
* This function has the same semantic as 'fseek' except for the first argument.
*
* @param dest Indicates HW interface to use.
* @param stream File handle returned by esp_apptrace_fopen.
* @param offset Offset. See fseek for details.
* @param whence Position in file. See fseek for details.
*
* @return Zero on success, otherwise non-zero. See fseek for details.
*/
int esp_apptrace_fseek(esp_apptrace_dest_t dest, void *stream, long offset, int whence);
/**
* @brief Get current position indicator for file on host.
* This function has the same semantic as 'ftell' except for the first argument.
*
* @param dest Indicates HW interface to use.
* @param stream File handle returned by esp_apptrace_fopen.
*
* @return Current position in file. See ftell for details.
*/
int esp_apptrace_ftell(esp_apptrace_dest_t dest, void *stream);
/**
* @brief Indicates to the host that all file operations are completed.
* This function should be called after all file operations are finished and
* indicate to the host that it can perform cleanup operations (close open files etc.).
*
* @param dest Indicates HW interface to use.
*
* @return ESP_OK on success, otherwise see esp_err_t
*/
int esp_apptrace_fstop(esp_apptrace_dest_t dest);
/**
* @brief Triggers gcov info dump.
* This function waits for the host to connect to target before dumping data.
*/
void esp_gcov_dump(void);
#endif

View File

@ -0,0 +1,167 @@
// Copyright 2017 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#ifndef ESP_APP_TRACE_UTIL_H_
#define ESP_APP_TRACE_UTIL_H_
#include "freertos/FreeRTOS.h"
#include "esp_err.h"
/** Infinite waiting timeout */
#define ESP_APPTRACE_TMO_INFINITE ((uint32_t)-1)
/** Structure which holds data necessary for measuring time intervals.
*
* After initialization via esp_apptrace_tmo_init() user needs to call esp_apptrace_tmo_check()
* periodically to check timeout for expiration.
*/
typedef struct {
uint32_t start; ///< time interval start (in CPU ticks)
uint32_t tmo; ///< timeout value (in us)
uint32_t elapsed; ///< elapsed time (in us)
} esp_apptrace_tmo_t;
/**
* @brief Initializes timeout structure.
*
* @param tmo Pointer to timeout structure to be initialized.
* @param user_tmo Timeout value (in us). Use ESP_APPTRACE_TMO_INFINITE to wait indefinetly.
*/
static inline void esp_apptrace_tmo_init(esp_apptrace_tmo_t *tmo, uint32_t user_tmo)
{
tmo->start = portGET_RUN_TIME_COUNTER_VALUE();
tmo->tmo = user_tmo;
tmo->elapsed = 0;
}
/**
* @brief Checks timeout for expiration.
*
* @param tmo Pointer to timeout structure to be initialized.
*
* @return ESP_OK on success, otherwise \see esp_err_t
*/
esp_err_t esp_apptrace_tmo_check(esp_apptrace_tmo_t *tmo);
static inline uint32_t esp_apptrace_tmo_remaining_us(esp_apptrace_tmo_t *tmo)
{
return tmo->tmo != ESP_APPTRACE_TMO_INFINITE ? (tmo->elapsed - tmo->tmo) : ESP_APPTRACE_TMO_INFINITE;
}
/** Tracing module synchronization lock */
typedef struct {
portMUX_TYPE mux;
unsigned int_state;
} esp_apptrace_lock_t;
/**
* @brief Initializes lock structure.
*
* @param lock Pointer to lock structure to be initialized.
*/
static inline void esp_apptrace_lock_init(esp_apptrace_lock_t *lock)
{
vPortCPUInitializeMutex(&lock->mux);
lock->int_state = 0;
}
/**
* @brief Tries to acquire lock in specified time period.
*
* @param lock Pointer to lock structure.
* @param tmo Pointer to timeout struct.
*
* @return ESP_OK on success, otherwise \see esp_err_t
*/
esp_err_t esp_apptrace_lock_take(esp_apptrace_lock_t *lock, esp_apptrace_tmo_t *tmo);
/**
* @brief Releases lock.
*
* @param lock Pointer to lock structure.
*
* @return ESP_OK on success, otherwise \see esp_err_t
*/
esp_err_t esp_apptrace_lock_give(esp_apptrace_lock_t *lock);
/** Ring buffer control structure.
*
* @note For purposes of application tracing module if there is no enough space for user data and write pointer can be wrapped
* current ring buffer size can be temporarily shrinked in order to provide buffer with requested size.
*/
typedef struct {
uint8_t *data; ///< pointer to data storage
volatile uint32_t size; ///< size of data storage
volatile uint32_t cur_size; ///< current size of data storage
volatile uint32_t rd; ///< read pointer
volatile uint32_t wr; ///< write pointer
} esp_apptrace_rb_t;
/**
* @brief Initializes ring buffer control structure.
*
* @param rb Pointer to ring buffer structure to be initialized.
* @param data Pointer to buffer to be used as ring buffer's data storage.
* @param size Size of buffer to be used as ring buffer's data storage.
*/
static inline void esp_apptrace_rb_init(esp_apptrace_rb_t *rb, uint8_t *data, uint32_t size)
{
rb->data = data;
rb->size = rb->cur_size = size;
rb->rd = 0;
rb->wr = 0;
}
/**
* @brief Allocates memory chunk in ring buffer.
*
* @param rb Pointer to ring buffer structure.
* @param size Size of the memory to allocate.
*
* @return Pointer to the allocated memory or NULL in case of failure.
*/
uint8_t *esp_apptrace_rb_produce(esp_apptrace_rb_t *rb, uint32_t size);
/**
* @brief Consumes memory chunk in ring buffer.
*
* @param rb Pointer to ring buffer structure.
* @param size Size of the memory to consume.
*
* @return Pointer to consumed memory chunk or NULL in case of failure.
*/
uint8_t *esp_apptrace_rb_consume(esp_apptrace_rb_t *rb, uint32_t size);
/**
* @brief Gets size of memory which can consumed with single call to esp_apptrace_rb_consume().
*
* @param rb Pointer to ring buffer structure.
*
* @return Size of memory which can consumed.
*
* @note Due to read pointer wrapping returned size can be less then the total size of available data.
*/
uint32_t esp_apptrace_rb_read_size_get(esp_apptrace_rb_t *rb);
/**
* @brief Gets size of memory which can produced with single call to esp_apptrace_rb_produce().
*
* @param rb Pointer to ring buffer structure.
*
* @return Size of memory which can produced.
*
* @note Due to write pointer wrapping returned size can be less then the total size of available data.
*/
uint32_t esp_apptrace_rb_write_size_get(esp_apptrace_rb_t *rb);
#endif //ESP_APP_TRACE_UTIL_H_

View File

@ -0,0 +1,12 @@
[mapping]
archive: libapp_trace.a
entries:
* (noflash)
[mapping]
archive: libdriver.a
entries:
: SYSVIEW_TS_SOURCE_TIMER_00 = y || SYSVIEW_TS_SOURCE_TIMER_01 = y
|| SYSVIEW_TS_SOURCE_TIMER_10 = y || SYSVIEW_TS_SOURCE_TIMER_11 = y
timer (noflash)

View File

@ -0,0 +1,102 @@
/*********************************************************************
* SEGGER Microcontroller GmbH & Co. KG *
* The Embedded Experts *
**********************************************************************
* *
* (c) 2015 - 2017 SEGGER Microcontroller GmbH & Co. KG *
* *
* www.segger.com Support: support@segger.com *
* *
**********************************************************************
* *
* SEGGER SystemView * Real-time application analysis *
* *
**********************************************************************
* *
* All rights reserved. *
* *
* SEGGER strongly recommends to not make any changes *
* to or modify the source code of this software in order to stay *
* compatible with the RTT protocol and J-Link. *
* *
* Redistribution and use in source and binary forms, with or *
* without modification, are permitted provided that the following *
* conditions are met: *
* *
* o Redistributions of source code must retain the above copyright *
* notice, this list of conditions and the following disclaimer. *
* *
* o Redistributions in binary form must reproduce the above *
* copyright notice, this list of conditions and the following *
* disclaimer in the documentation and/or other materials provided *
* with the distribution. *
* *
* o Neither the name of SEGGER Microcontroller GmbH & Co. KG *
* nor the names of its contributors may be used to endorse or *
* promote products derived from this software without specific *
* prior written permission. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND *
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, *
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF *
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE *
* DISCLAIMED. IN NO EVENT SHALL SEGGER Microcontroller BE LIABLE FOR *
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR *
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT *
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; *
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE *
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH *
* DAMAGE. *
* *
**********************************************************************
* *
* SystemView version: V2.42 *
* *
**********************************************************************
----------------------------------------------------------------------
File : Global.h
Purpose : Global types
In case your application already has a Global.h, you should
merge the files. In order to use Segger code, the types
U8, U16, U32, I8, I16, I32 need to be defined in Global.h;
additional definitions do not hurt.
---------------------------END-OF-HEADER------------------------------
*/
#ifndef GLOBAL_H // Guard against multiple inclusion
#define GLOBAL_H
#define U8 unsigned char
#define U16 unsigned short
#define U32 unsigned long
#define I8 signed char
#define I16 signed short
#define I32 signed long
#ifdef _WIN32
//
// Microsoft VC6 compiler related
//
#define U64 unsigned __int64
#define U128 unsigned __int128
#define I64 __int64
#define I128 __int128
#if _MSC_VER <= 1200
#define U64_C(x) x##UI64
#else
#define U64_C(x) x##ULL
#endif
#else
//
// C99 compliant compiler
//
#define U64 unsigned long long
#define I64 signed long long
#define U64_C(x) x##ULL
#endif
#endif // Avoid multiple inclusion
/*************************** End of file ****************************/

View File

@ -0,0 +1,298 @@
/*********************************************************************
* SEGGER Microcontroller GmbH & Co. KG *
* The Embedded Experts *
**********************************************************************
* *
* (c) 2015 - 2017 SEGGER Microcontroller GmbH & Co. KG *
* *
* www.segger.com Support: support@segger.com *
* *
**********************************************************************
* *
* SEGGER SystemView * Real-time application analysis *
* *
**********************************************************************
* *
* All rights reserved. *
* *
* SEGGER strongly recommends to not make any changes *
* to or modify the source code of this software in order to stay *
* compatible with the RTT protocol and J-Link. *
* *
* Redistribution and use in source and binary forms, with or *
* without modification, are permitted provided that the following *
* conditions are met: *
* *
* o Redistributions of source code must retain the above copyright *
* notice, this list of conditions and the following disclaimer. *
* *
* o Redistributions in binary form must reproduce the above *
* copyright notice, this list of conditions and the following *
* disclaimer in the documentation and/or other materials provided *
* with the distribution. *
* *
* o Neither the name of SEGGER Microcontroller GmbH & Co. KG *
* nor the names of its contributors may be used to endorse or *
* promote products derived from this software without specific *
* prior written permission. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND *
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, *
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF *
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE *
* DISCLAIMED. IN NO EVENT SHALL SEGGER Microcontroller BE LIABLE FOR *
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR *
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT *
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; *
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE *
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH *
* DAMAGE. *
* *
**********************************************************************
* *
* SystemView version: V2.42 *
* *
**********************************************************************
---------------------------END-OF-HEADER------------------------------
File : SEGGER_RTT_Conf.h
Purpose : Implementation of SEGGER real-time transfer (RTT) which
allows real-time communication on targets which support
debugger memory accesses while the CPU is running.
Revision: $Rev: 5626 $
*/
#ifndef SEGGER_RTT_CONF_H
#define SEGGER_RTT_CONF_H
#ifdef __IAR_SYSTEMS_ICC__
#include <intrinsics.h>
#endif
/*********************************************************************
*
* Defines, configurable
*
**********************************************************************
*/
#define SEGGER_RTT_MAX_NUM_UP_BUFFERS (3) // Max. number of up-buffers (T->H) available on this target (Default: 3)
#define SEGGER_RTT_MAX_NUM_DOWN_BUFFERS (3) // Max. number of down-buffers (H->T) available on this target (Default: 3)
#define BUFFER_SIZE_UP (1024) // Size of the buffer for terminal output of target, up to host (Default: 1k)
#define BUFFER_SIZE_DOWN (16) // Size of the buffer for terminal input to target from host (Usually keyboard input) (Default: 16)
#define SEGGER_RTT_PRINTF_BUFFER_SIZE (64u) // Size of buffer for RTT printf to bulk-send chars via RTT (Default: 64)
#define SEGGER_RTT_MODE_DEFAULT SEGGER_RTT_MODE_NO_BLOCK_SKIP // Mode for pre-initialized terminal channel (buffer 0)
//
// Target is not allowed to perform other RTT operations while string still has not been stored completely.
// Otherwise we would probably end up with a mixed string in the buffer.
// If using RTT from within interrupts, multiple tasks or multi processors, define the SEGGER_RTT_LOCK() and SEGGER_RTT_UNLOCK() function here.
//
// SEGGER_RTT_MAX_INTERRUPT_PRIORITY can be used in the sample lock routines on Cortex-M3/4.
// Make sure to mask all interrupts which can send RTT data, i.e. generate SystemView events, or cause task switches.
// When high-priority interrupts must not be masked while sending RTT data, SEGGER_RTT_MAX_INTERRUPT_PRIORITY needs to be adjusted accordingly.
// (Higher priority = lower priority number)
// Default value for embOS: 128u
// Default configuration in FreeRTOS: configMAX_SYSCALL_INTERRUPT_PRIORITY: ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )
// In case of doubt mask all interrupts: 1 << (8 - BASEPRI_PRIO_BITS) i.e. 1 << 5 when 3 bits are implemented in NVIC
// or define SEGGER_RTT_LOCK() to completely disable interrupts.
//
#define SEGGER_RTT_MAX_INTERRUPT_PRIORITY (0x20) // Interrupt priority to lock on SEGGER_RTT_LOCK on Cortex-M3/4 (Default: 0x20)
/*********************************************************************
*
* RTT lock configuration for SEGGER Embedded Studio,
* Rowley CrossStudio and GCC
*/
#if (defined __SES_ARM) || (defined __CROSSWORKS_ARM) || (defined __GNUC__)
#ifdef __ARM_ARCH_6M__
#define SEGGER_RTT_LOCK() { \
unsigned int LockState; \
__asm volatile ("mrs %0, primask \n\t" \
"mov r1, $1 \n\t" \
"msr primask, r1 \n\t" \
: "=r" (LockState) \
: \
: "r1" \
);
#define SEGGER_RTT_UNLOCK() __asm volatile ("msr primask, %0 \n\t" \
: \
: "r" (LockState) \
: \
); \
}
#elif (defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__))
#ifndef SEGGER_RTT_MAX_INTERRUPT_PRIORITY
#define SEGGER_RTT_MAX_INTERRUPT_PRIORITY (0x20)
#endif
#define SEGGER_RTT_LOCK() { \
unsigned int LockState; \
__asm volatile ("mrs %0, basepri \n\t" \
"mov r1, %1 \n\t" \
"msr basepri, r1 \n\t" \
: "=r" (LockState) \
: "i"(SEGGER_RTT_MAX_INTERRUPT_PRIORITY) \
: "r1" \
);
#define SEGGER_RTT_UNLOCK() __asm volatile ("msr basepri, %0 \n\t" \
: \
: "r" (LockState) \
: \
); \
}
#elif defined(__ARM_ARCH_7A__)
#define SEGGER_RTT_LOCK() { \
unsigned int LockState; \
__asm volatile ("mrs r1, CPSR \n\t" \
"mov %0, r1 \n\t" \
"orr r1, r1, #0xC0 \n\t" \
"msr CPSR_c, r1 \n\t" \
: "=r" (LockState) \
: \
: "r1" \
);
#define SEGGER_RTT_UNLOCK() __asm volatile ("mov r0, %0 \n\t" \
"mrs r1, CPSR \n\t" \
"bic r1, r1, #0xC0 \n\t" \
"and r0, r0, #0xC0 \n\t" \
"orr r1, r1, r0 \n\t" \
"msr CPSR_c, r1 \n\t" \
: \
: "r" (LockState) \
: "r0", "r1" \
); \
}
#else
#define SEGGER_RTT_LOCK()
#define SEGGER_RTT_UNLOCK()
#endif
#endif
/*********************************************************************
*
* RTT lock configuration for IAR EWARM
*/
#ifdef __ICCARM__
#if (defined (__ARM6M__) && (__CORE__ == __ARM6M__))
#define SEGGER_RTT_LOCK() { \
unsigned int LockState; \
LockState = __get_PRIMASK(); \
__set_PRIMASK(1);
#define SEGGER_RTT_UNLOCK() __set_PRIMASK(LockState); \
}
#elif ((defined (__ARM7EM__) && (__CORE__ == __ARM7EM__)) || (defined (__ARM7M__) && (__CORE__ == __ARM7M__)))
#ifndef SEGGER_RTT_MAX_INTERRUPT_PRIORITY
#define SEGGER_RTT_MAX_INTERRUPT_PRIORITY (0x20)
#endif
#define SEGGER_RTT_LOCK() { \
unsigned int LockState; \
LockState = __get_BASEPRI(); \
__set_BASEPRI(SEGGER_RTT_MAX_INTERRUPT_PRIORITY);
#define SEGGER_RTT_UNLOCK() __set_BASEPRI(LockState); \
}
#endif
#endif
/*********************************************************************
*
* RTT lock configuration for IAR RX
*/
#ifdef __ICCRX__
#define SEGGER_RTT_LOCK() { \
unsigned long LockState; \
LockState = __get_interrupt_state(); \
__disable_interrupt();
#define SEGGER_RTT_UNLOCK() __set_interrupt_state(LockState); \
}
#endif
/*********************************************************************
*
* RTT lock configuration for KEIL ARM
*/
#ifdef __CC_ARM
#if (defined __TARGET_ARCH_6S_M)
#define SEGGER_RTT_LOCK() { \
unsigned int LockState; \
register unsigned char PRIMASK __asm( "primask"); \
LockState = PRIMASK; \
PRIMASK = 1u; \
__schedule_barrier();
#define SEGGER_RTT_UNLOCK() PRIMASK = LockState; \
__schedule_barrier(); \
}
#elif (defined(__TARGET_ARCH_7_M) || defined(__TARGET_ARCH_7E_M))
#ifndef SEGGER_RTT_MAX_INTERRUPT_PRIORITY
#define SEGGER_RTT_MAX_INTERRUPT_PRIORITY (0x20)
#endif
#define SEGGER_RTT_LOCK() { \
unsigned int LockState; \
register unsigned char BASEPRI __asm( "basepri"); \
LockState = BASEPRI; \
BASEPRI = SEGGER_RTT_MAX_INTERRUPT_PRIORITY; \
__schedule_barrier();
#define SEGGER_RTT_UNLOCK() BASEPRI = LockState; \
__schedule_barrier(); \
}
#endif
#endif
/*********************************************************************
*
* RTT lock configuration for TI ARM
*/
#ifdef __TI_ARM__
#if defined (__TI_ARM_V6M0__)
#define SEGGER_RTT_LOCK() { \
unsigned int LockState; \
LockState = __get_PRIMASK(); \
__set_PRIMASK(1);
#define SEGGER_RTT_UNLOCK() __set_PRIMASK(LockState); \
}
#elif (defined (__TI_ARM_V7M3__) || defined (__TI_ARM_V7M4__))
#ifndef SEGGER_RTT_MAX_INTERRUPT_PRIORITY
#define SEGGER_RTT_MAX_INTERRUPT_PRIORITY (0x20)
#endif
#define SEGGER_RTT_LOCK() { \
unsigned int LockState; \
LockState = OS_GetBASEPRI(); \
OS_SetBASEPRI(SEGGER_RTT_MAX_INTERRUPT_PRIORITY);
#define SEGGER_RTT_UNLOCK() OS_SetBASEPRI(LockState); \
}
#endif
#endif
/*********************************************************************
*
* RTT lock configuration fallback
*/
#ifndef SEGGER_RTT_LOCK
void SEGGER_SYSVIEW_X_RTT_Lock();
#define SEGGER_RTT_LOCK() SEGGER_SYSVIEW_X_RTT_Lock() // Lock RTT (nestable) (i.e. disable interrupts)
#endif
#ifndef SEGGER_RTT_UNLOCK
void SEGGER_SYSVIEW_X_RTT_Unlock();
#define SEGGER_RTT_UNLOCK() SEGGER_SYSVIEW_X_RTT_Unlock() // Unlock RTT (nestable) (i.e. enable previous interrupt lock state)
#endif
#endif
/*************************** End of file ****************************/

View File

@ -0,0 +1,177 @@
/*********************************************************************
* SEGGER Microcontroller GmbH & Co. KG *
* The Embedded Experts *
**********************************************************************
* *
* (c) 2015 - 2017 SEGGER Microcontroller GmbH & Co. KG *
* *
* www.segger.com Support: support@segger.com *
* *
**********************************************************************
* *
* SEGGER SystemView * Real-time application analysis *
* *
**********************************************************************
* *
* All rights reserved. *
* *
* SEGGER strongly recommends to not make any changes *
* to or modify the source code of this software in order to stay *
* compatible with the RTT protocol and J-Link. *
* *
* Redistribution and use in source and binary forms, with or *
* without modification, are permitted provided that the following *
* conditions are met: *
* *
* o Redistributions of source code must retain the above copyright *
* notice, this list of conditions and the following disclaimer. *
* *
* o Redistributions in binary form must reproduce the above *
* copyright notice, this list of conditions and the following *
* disclaimer in the documentation and/or other materials provided *
* with the distribution. *
* *
* o Neither the name of SEGGER Microcontroller GmbH & Co. KG *
* nor the names of its contributors may be used to endorse or *
* promote products derived from this software without specific *
* prior written permission. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND *
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, *
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF *
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE *
* DISCLAIMED. IN NO EVENT SHALL SEGGER Microcontroller BE LIABLE FOR *
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR *
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT *
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; *
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE *
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH *
* DAMAGE. *
* *
**********************************************************************
* *
* SystemView version: V2.42 *
* *
**********************************************************************
-------------------------- END-OF-HEADER -----------------------------
File : SEGGER_SYSVIEW_Conf.h
Purpose : SEGGER SystemView configuration.
Revision: $Rev: 5927 $
*/
#ifndef SEGGER_SYSVIEW_CONF_H
#define SEGGER_SYSVIEW_CONF_H
/*********************************************************************
*
* Defines, fixed
*
**********************************************************************
*/
//
// Constants for known core configuration
//
#define SEGGER_SYSVIEW_CORE_OTHER 0
#define SEGGER_SYSVIEW_CORE_CM0 1 // Cortex-M0/M0+/M1
#define SEGGER_SYSVIEW_CORE_CM3 2 // Cortex-M3/M4/M7
#define SEGGER_SYSVIEW_CORE_RX 3 // Renesas RX
#if (defined __SES_ARM) || (defined __CROSSWORKS_ARM) || (defined __GNUC__)
#ifdef __ARM_ARCH_6M__
#define SEGGER_SYSVIEW_CORE SEGGER_SYSVIEW_CORE_CM0
#elif (defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__))
#define SEGGER_SYSVIEW_CORE SEGGER_SYSVIEW_CORE_CM3
#endif
#elif defined(__ICCARM__)
#if (defined (__ARM6M__) && (__CORE__ == __ARM6M__))
#define SEGGER_SYSVIEW_CORE SEGGER_SYSVIEW_CORE_CM0
#elif ((defined (__ARM7M__) && (__CORE__ == __ARM7M__)) || (defined (__ARM7EM__) && (__CORE__ == __ARM7EM__)))
#define SEGGER_SYSVIEW_CORE SEGGER_SYSVIEW_CORE_CM3
#endif
#elif defined(__CC_ARM)
#if (defined(__TARGET_ARCH_6S_M))
#define SEGGER_SYSVIEW_CORE SEGGER_SYSVIEW_CORE_CM0
#elif (defined(__TARGET_ARCH_7_M) || defined(__TARGET_ARCH_7E_M))
#define SEGGER_SYSVIEW_CORE SEGGER_SYSVIEW_CORE_CM3
#endif
#elif defined(__TI_ARM__)
#ifdef __TI_ARM_V6M0__
#define SEGGER_SYSVIEW_CORE SEGGER_SYSVIEW_CORE_CM0
#elif (defined(__TI_ARM_V7M3__) || defined(__TI_ARM_V7M4__))
#define SEGGER_SYSVIEW_CORE SEGGER_SYSVIEW_CORE_CM3
#endif
#elif defined(__ICCRX__)
#define SEGGER_SYSVIEW_CORE SEGGER_SYSVIEW_CORE_RX
#elif defined(__RX)
#define SEGGER_SYSVIEW_CORE SEGGER_SYSVIEW_CORE_RX
#endif
#ifndef SEGGER_SYSVIEW_CORE
#define SEGGER_SYSVIEW_CORE SEGGER_SYSVIEW_CORE_OTHER
#endif
/*********************************************************************
*
* Defines, configurable
*
**********************************************************************
*/
/*********************************************************************
*
* SystemView buffer configuration
*/
#define SEGGER_SYSVIEW_RTT_BUFFER_SIZE 1024 // Number of bytes that SystemView uses for the buffer.
#define SEGGER_SYSVIEW_RTT_CHANNEL 1 // The RTT channel that SystemView will use. 0: Auto selection
#define SEGGER_SYSVIEW_USE_STATIC_BUFFER 1 // Use a static buffer to generate events instead of a buffer on the stack
#define SEGGER_SYSVIEW_POST_MORTEM_MODE 0 // 1: Enable post mortem analysis mode
/*********************************************************************
*
* SystemView timestamp configuration
*/
#if SEGGER_SYSVIEW_CORE == SEGGER_SYSVIEW_CORE_CM3
#define SEGGER_SYSVIEW_GET_TIMESTAMP() (*(U32 *)(0xE0001004)) // Retrieve a system timestamp. Cortex-M cycle counter.
#define SEGGER_SYSVIEW_TIMESTAMP_BITS 32 // Define number of valid bits low-order delivered by clock source
#else
#define SEGGER_SYSVIEW_GET_TIMESTAMP() SEGGER_SYSVIEW_X_GetTimestamp() // Retrieve a system timestamp via user-defined function
#define SEGGER_SYSVIEW_TIMESTAMP_BITS 32 // Define number of valid bits low-order delivered by SEGGER_SYSVIEW_X_GetTimestamp()
#endif
/*********************************************************************
*
* SystemView Id configuration
*/
//TODO: optimise it
#define SEGGER_SYSVIEW_ID_BASE 0x3F400000 // Default value for the lowest Id reported by the application. Can be overridden by the application via SEGGER_SYSVIEW_SetRAMBase(). (i.e. 0x20000000 when all Ids are an address in this RAM)
#define SEGGER_SYSVIEW_ID_SHIFT 0 // Number of bits to shift the Id to save bandwidth. (i.e. 2 when Ids are 4 byte aligned)
/*********************************************************************
*
* SystemView interrupt configuration
*/
#if SEGGER_SYSVIEW_CORE == SEGGER_SYSVIEW_CORE_CM3
#define SEGGER_SYSVIEW_GET_INTERRUPT_ID() ((*(U32 *)(0xE000ED04)) & 0x1FF) // Get the currently active interrupt Id. (i.e. read Cortex-M ICSR[8:0] = active vector)
#elif SEGGER_SYSVIEW_CORE == SEGGER_SYSVIEW_CORE_CM0
#if defined(__ICCARM__)
#define SEGGER_SYSVIEW_GET_INTERRUPT_ID() (__get_IPSR()) // Workaround for IAR, which might do a byte-access to 0xE000ED04. Read IPSR instead.
#else
#define SEGGER_SYSVIEW_GET_INTERRUPT_ID() ((*(U32 *)(0xE000ED04)) & 0x3F) // Get the currently active interrupt Id. (i.e. read Cortex-M ICSR[5:0] = active vector)
#endif
#else
#define SEGGER_SYSVIEW_GET_INTERRUPT_ID() SEGGER_SYSVIEW_X_GetInterruptId() // Get the currently active interrupt Id from the user-provided function.
#endif
unsigned SEGGER_SYSVIEW_X_SysView_Lock();
void SEGGER_SYSVIEW_X_SysView_Unlock(unsigned int_state);
// to be recursive save IRQ status on the stack of the caller
#define SEGGER_SYSVIEW_LOCK() unsigned _SYSVIEW_int_state = SEGGER_SYSVIEW_X_SysView_Lock()
#define SEGGER_SYSVIEW_UNLOCK() SEGGER_SYSVIEW_X_SysView_Unlock(_SYSVIEW_int_state)
#endif // SEGGER_SYSVIEW_CONF_H
/*************************** End of file ****************************/

View File

@ -0,0 +1,155 @@
/*********************************************************************
* SEGGER Microcontroller GmbH & Co. KG *
* The Embedded Experts *
**********************************************************************
* *
* (c) 2015 - 2017 SEGGER Microcontroller GmbH & Co. KG *
* *
* www.segger.com Support: support@segger.com *
* *
**********************************************************************
* *
* SEGGER SystemView * Real-time application analysis *
* *
**********************************************************************
* *
* All rights reserved. *
* *
* SEGGER strongly recommends to not make any changes *
* to or modify the source code of this software in order to stay *
* compatible with the RTT protocol and J-Link. *
* *
* Redistribution and use in source and binary forms, with or *
* without modification, are permitted provided that the following *
* conditions are met: *
* *
* o Redistributions of source code must retain the above copyright *
* notice, this list of conditions and the following disclaimer. *
* *
* o Redistributions in binary form must reproduce the above *
* copyright notice, this list of conditions and the following *
* disclaimer in the documentation and/or other materials provided *
* with the distribution. *
* *
* o Neither the name of SEGGER Microcontroller GmbH & Co. KG *
* nor the names of its contributors may be used to endorse or *
* promote products derived from this software without specific *
* prior written permission. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND *
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, *
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF *
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE *
* DISCLAIMED. IN NO EVENT SHALL SEGGER Microcontroller BE LIABLE FOR *
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR *
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT *
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; *
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE *
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH *
* DAMAGE. *
* *
**********************************************************************
* *
* SystemView version: V2.42 *
* *
**********************************************************************
----------------------------------------------------------------------
File : SEGGER.h
Purpose : Global types etc & general purpose utility functions
---------------------------END-OF-HEADER------------------------------
*/
#ifndef SEGGER_H // Guard against multiple inclusion
#define SEGGER_H
#include "Global.h" // Type definitions: U8, U16, U32, I8, I16, I32
#if defined(__cplusplus)
extern "C" { /* Make sure we have C-declarations in C++ programs */
#endif
/*********************************************************************
*
* Keywords/specifiers
*
**********************************************************************
*/
#ifndef INLINE
#ifdef _WIN32
//
// Microsoft VC6 and newer.
// Force inlining without cost checking.
//
#define INLINE __forceinline
#else
#if (defined(__ICCARM__) || defined(__CC_ARM) || defined(__GNUC__) || defined(__RX) || defined(__ICCRX__))
//
// Other known compilers.
//
#define INLINE inline
#else
//
// Unknown compilers.
//
#define INLINE
#endif
#endif
#endif
/*********************************************************************
*
* Function-like macros
*
**********************************************************************
*/
#define SEGGER_COUNTOF(a) (sizeof((a))/sizeof((a)[0]))
#define SEGGER_MIN(a,b) (((a) < (b)) ? (a) : (b))
#define SEGGER_MAX(a,b) (((a) > (b)) ? (a) : (b))
/*********************************************************************
*
* Types
*
**********************************************************************
*/
typedef struct {
char *pBuffer;
int BufferSize;
int Cnt;
} SEGGER_BUFFER_DESC;
typedef struct {
int CacheLineSize; // 0: No Cache. Most Systems such as ARM9 use a 32 bytes cache line size.
void (*pfDMB) (void); // Optional DMB function for Data Memory Barrier to make sure all memory operations are completed.
void (*pfClean) (void *p, unsigned NumBytes); // Optional clean function for cached memory.
void (*pfInvalidate)(void *p, unsigned NumBytes); // Optional invalidate function for cached memory.
} SEGGER_CACHE_CONFIG;
/*********************************************************************
*
* Utility functions
*
**********************************************************************
*/
void SEGGER_ARM_memcpy (void *pDest, const void *pSrc, int NumBytes);
void SEGGER_memcpy (void *pDest, const void *pSrc, int NumBytes);
void SEGGER_memxor (void *pDest, const void *pSrc, unsigned NumBytes);
void SEGGER_StoreChar (SEGGER_BUFFER_DESC *p, char c);
void SEGGER_PrintUnsigned(SEGGER_BUFFER_DESC *pBufferDesc, U32 v, unsigned Base, int NumDigits);
void SEGGER_PrintInt (SEGGER_BUFFER_DESC *pBufferDesc, I32 v, unsigned Base, unsigned NumDigits);
int SEGGER_snprintf (char *pBuffer, int BufferSize, const char *sFormat, ...);
#if defined(__cplusplus)
} /* Make sure we have C-declarations in C++ programs */
#endif
#endif // Avoid multiple inclusion
/*************************** End of file ****************************/

View File

@ -0,0 +1,251 @@
/*********************************************************************
* SEGGER Microcontroller GmbH & Co. KG *
* The Embedded Experts *
**********************************************************************
* *
* (c) 2015 - 2017 SEGGER Microcontroller GmbH & Co. KG *
* *
* www.segger.com Support: support@segger.com *
* *
**********************************************************************
* *
* SEGGER SystemView * Real-time application analysis *
* *
**********************************************************************
* *
* All rights reserved. *
* *
* SEGGER strongly recommends to not make any changes *
* to or modify the source code of this software in order to stay *
* compatible with the RTT protocol and J-Link. *
* *
* Redistribution and use in source and binary forms, with or *
* without modification, are permitted provided that the following *
* conditions are met: *
* *
* o Redistributions of source code must retain the above copyright *
* notice, this list of conditions and the following disclaimer. *
* *
* o Redistributions in binary form must reproduce the above *
* copyright notice, this list of conditions and the following *
* disclaimer in the documentation and/or other materials provided *
* with the distribution. *
* *
* o Neither the name of SEGGER Microcontroller GmbH & Co. KG *
* nor the names of its contributors may be used to endorse or *
* promote products derived from this software without specific *
* prior written permission. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND *
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, *
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF *
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE *
* DISCLAIMED. IN NO EVENT SHALL SEGGER Microcontroller BE LIABLE FOR *
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR *
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT *
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; *
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE *
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH *
* DAMAGE. *
* *
**********************************************************************
* *
* SystemView version: V2.42 *
* *
**********************************************************************
---------------------------END-OF-HEADER------------------------------
File : SEGGER_RTT.h
Purpose : Implementation of SEGGER real-time transfer which allows
real-time communication on targets which support debugger
memory accesses while the CPU is running.
Revision: $Rev: 5626 $
----------------------------------------------------------------------
*/
#ifndef SEGGER_RTT_H
#define SEGGER_RTT_H
#include "SEGGER_RTT_Conf.h"
/*********************************************************************
*
* Defines, fixed
*
**********************************************************************
*/
/*********************************************************************
*
* Types
*
**********************************************************************
*/
//
// Description for a circular buffer (also called "ring buffer")
// which is used as up-buffer (T->H)
//
typedef struct {
const char* sName; // Optional name. Standard names so far are: "Terminal", "SysView", "J-Scope_t4i4"
char* pBuffer; // Pointer to start of buffer
unsigned SizeOfBuffer; // Buffer size in bytes. Note that one byte is lost, as this implementation does not fill up the buffer in order to avoid the problem of being unable to distinguish between full and empty.
unsigned WrOff; // Position of next item to be written by either target.
volatile unsigned RdOff; // Position of next item to be read by host. Must be volatile since it may be modified by host.
unsigned Flags; // Contains configuration flags
} SEGGER_RTT_BUFFER_UP;
//
// Description for a circular buffer (also called "ring buffer")
// which is used as down-buffer (H->T)
//
typedef struct {
const char* sName; // Optional name. Standard names so far are: "Terminal", "SysView", "J-Scope_t4i4"
char* pBuffer; // Pointer to start of buffer
unsigned SizeOfBuffer; // Buffer size in bytes. Note that one byte is lost, as this implementation does not fill up the buffer in order to avoid the problem of being unable to distinguish between full and empty.
volatile unsigned WrOff; // Position of next item to be written by host. Must be volatile since it may be modified by host.
unsigned RdOff; // Position of next item to be read by target (down-buffer).
unsigned Flags; // Contains configuration flags
} SEGGER_RTT_BUFFER_DOWN;
//
// RTT control block which describes the number of buffers available
// as well as the configuration for each buffer
//
//
typedef struct {
char acID[16]; // Initialized to "SEGGER RTT"
int MaxNumUpBuffers; // Initialized to SEGGER_RTT_MAX_NUM_UP_BUFFERS (type. 2)
int MaxNumDownBuffers; // Initialized to SEGGER_RTT_MAX_NUM_DOWN_BUFFERS (type. 2)
SEGGER_RTT_BUFFER_UP aUp[SEGGER_RTT_MAX_NUM_UP_BUFFERS]; // Up buffers, transferring information up from target via debug probe to host
SEGGER_RTT_BUFFER_DOWN aDown[SEGGER_RTT_MAX_NUM_DOWN_BUFFERS]; // Down buffers, transferring information down from host via debug probe to target
} SEGGER_RTT_CB;
/*********************************************************************
*
* Global data
*
**********************************************************************
*/
extern SEGGER_RTT_CB _SEGGER_RTT;
/*********************************************************************
*
* RTT API functions
*
**********************************************************************
*/
#ifdef __cplusplus
extern "C" {
#endif
int SEGGER_RTT_AllocDownBuffer (const char* sName, void* pBuffer, unsigned BufferSize, unsigned Flags);
int SEGGER_RTT_AllocUpBuffer (const char* sName, void* pBuffer, unsigned BufferSize, unsigned Flags);
int SEGGER_RTT_ConfigUpBuffer (unsigned BufferIndex, const char* sName, void* pBuffer, unsigned BufferSize, unsigned Flags);
int SEGGER_RTT_ConfigDownBuffer (unsigned BufferIndex, const char* sName, void* pBuffer, unsigned BufferSize, unsigned Flags);
int SEGGER_RTT_GetKey (void);
unsigned SEGGER_RTT_HasData (unsigned BufferIndex);
int SEGGER_RTT_HasKey (void);
void SEGGER_RTT_Init (void);
unsigned SEGGER_RTT_Read (unsigned BufferIndex, void* pBuffer, unsigned BufferSize);
unsigned SEGGER_RTT_ReadNoLock (unsigned BufferIndex, void* pData, unsigned BufferSize);
int SEGGER_RTT_SetNameDownBuffer (unsigned BufferIndex, const char* sName);
int SEGGER_RTT_SetNameUpBuffer (unsigned BufferIndex, const char* sName);
int SEGGER_RTT_SetFlagsDownBuffer (unsigned BufferIndex, unsigned Flags);
int SEGGER_RTT_SetFlagsUpBuffer (unsigned BufferIndex, unsigned Flags);
int SEGGER_RTT_WaitKey (void);
unsigned SEGGER_RTT_Write (unsigned BufferIndex, const void* pBuffer, unsigned NumBytes);
unsigned SEGGER_RTT_WriteNoLock (unsigned BufferIndex, const void* pBuffer, unsigned NumBytes);
unsigned SEGGER_RTT_WriteSkipNoLock (unsigned BufferIndex, const void* pBuffer, unsigned NumBytes);
unsigned SEGGER_RTT_WriteString (unsigned BufferIndex, const char* s);
void SEGGER_RTT_WriteWithOverwriteNoLock(unsigned BufferIndex, const void* pBuffer, unsigned NumBytes);
void SEGGER_RTT_ESP32_FlushNoLock (unsigned long min_sz, unsigned long tmo);
//
// Function macro for performance optimization
//
// @AGv: This macro is used inside SEGGER SystemView code.
// For ESP32 we use our own implementation of RTT, so this macro should not check SEGGER's RTT buffer state.
#define SEGGER_RTT_HASDATA(n) (1)
/*********************************************************************
*
* RTT "Terminal" API functions
*
**********************************************************************
*/
int SEGGER_RTT_SetTerminal (char TerminalId);
int SEGGER_RTT_TerminalOut (char TerminalId, const char* s);
/*********************************************************************
*
* RTT printf functions (require SEGGER_RTT_printf.c)
*
**********************************************************************
*/
int SEGGER_RTT_printf(unsigned BufferIndex, const char * sFormat, ...);
#ifdef __cplusplus
}
#endif
/*********************************************************************
*
* Defines
*
**********************************************************************
*/
//
// Operating modes. Define behavior if buffer is full (not enough space for entire message)
//
#define SEGGER_RTT_MODE_NO_BLOCK_SKIP (0U) // Skip. Do not block, output nothing. (Default)
#define SEGGER_RTT_MODE_NO_BLOCK_TRIM (1U) // Trim: Do not block, output as much as fits.
#define SEGGER_RTT_MODE_BLOCK_IF_FIFO_FULL (2U) // Block: Wait until there is space in the buffer.
#define SEGGER_RTT_MODE_MASK (3U)
//
// Control sequences, based on ANSI.
// Can be used to control color, and clear the screen
//
#define RTT_CTRL_RESET "" // Reset to default colors
#define RTT_CTRL_CLEAR "" // Clear screen, reposition cursor to top left
#define RTT_CTRL_TEXT_BLACK ""
#define RTT_CTRL_TEXT_RED ""
#define RTT_CTRL_TEXT_GREEN ""
#define RTT_CTRL_TEXT_YELLOW ""
#define RTT_CTRL_TEXT_BLUE ""
#define RTT_CTRL_TEXT_MAGENTA ""
#define RTT_CTRL_TEXT_CYAN ""
#define RTT_CTRL_TEXT_WHITE ""
#define RTT_CTRL_TEXT_BRIGHT_BLACK ""
#define RTT_CTRL_TEXT_BRIGHT_RED ""
#define RTT_CTRL_TEXT_BRIGHT_GREEN ""
#define RTT_CTRL_TEXT_BRIGHT_YELLOW ""
#define RTT_CTRL_TEXT_BRIGHT_BLUE ""
#define RTT_CTRL_TEXT_BRIGHT_MAGENTA ""
#define RTT_CTRL_TEXT_BRIGHT_CYAN ""
#define RTT_CTRL_TEXT_BRIGHT_WHITE ""
#define RTT_CTRL_BG_BLACK ""
#define RTT_CTRL_BG_RED ""
#define RTT_CTRL_BG_GREEN ""
#define RTT_CTRL_BG_YELLOW ""
#define RTT_CTRL_BG_BLUE ""
#define RTT_CTRL_BG_MAGENTA ""
#define RTT_CTRL_BG_CYAN ""
#define RTT_CTRL_BG_WHITE ""
#define RTT_CTRL_BG_BRIGHT_BLACK ""
#define RTT_CTRL_BG_BRIGHT_RED ""
#define RTT_CTRL_BG_BRIGHT_GREEN ""
#define RTT_CTRL_BG_BRIGHT_YELLOW ""
#define RTT_CTRL_BG_BRIGHT_BLUE ""
#define RTT_CTRL_BG_BRIGHT_MAGENTA ""
#define RTT_CTRL_BG_BRIGHT_CYAN ""
#define RTT_CTRL_BG_BRIGHT_WHITE ""
#endif
/*************************** End of file ****************************/

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,334 @@
/*********************************************************************
* SEGGER Microcontroller GmbH & Co. KG *
* The Embedded Experts *
**********************************************************************
* *
* (c) 2015 - 2017 SEGGER Microcontroller GmbH & Co. KG *
* *
* www.segger.com Support: support@segger.com *
* *
**********************************************************************
* *
* SEGGER SystemView * Real-time application analysis *
* *
**********************************************************************
* *
* All rights reserved. *
* *
* SEGGER strongly recommends to not make any changes *
* to or modify the source code of this software in order to stay *
* compatible with the RTT protocol and J-Link. *
* *
* Redistribution and use in source and binary forms, with or *
* without modification, are permitted provided that the following *
* conditions are met: *
* *
* o Redistributions of source code must retain the above copyright *
* notice, this list of conditions and the following disclaimer. *
* *
* o Redistributions in binary form must reproduce the above *
* copyright notice, this list of conditions and the following *
* disclaimer in the documentation and/or other materials provided *
* with the distribution. *
* *
* o Neither the name of SEGGER Microcontroller GmbH & Co. KG *
* nor the names of its contributors may be used to endorse or *
* promote products derived from this software without specific *
* prior written permission. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND *
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, *
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF *
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE *
* DISCLAIMED. IN NO EVENT SHALL SEGGER Microcontroller BE LIABLE FOR *
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR *
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT *
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; *
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE *
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH *
* DAMAGE. *
* *
**********************************************************************
* *
* SystemView version: V2.42 *
* *
**********************************************************************
-------------------------- END-OF-HEADER -----------------------------
File : SEGGER_SYSVIEW.h
Purpose : System visualization API.
Revision: $Rev: 5626 $
*/
#ifndef SEGGER_SYSVIEW_H
#define SEGGER_SYSVIEW_H
/*********************************************************************
*
* #include Section
*
**********************************************************************
*/
#include "SEGGER.h"
#ifdef __cplusplus
extern "C" {
#endif
/*********************************************************************
*
* Defines, fixed
*
**********************************************************************
*/
#define SEGGER_SYSVIEW_VERSION 21000
#define SEGGER_SYSVIEW_INFO_SIZE 9 // Minimum size, which has to be reserved for a packet. 1-2 byte of message type, 0-2 byte of payload length, 1-5 bytes of timestamp.
#define SEGGER_SYSVIEW_QUANTA_U32 5 // Maximum number of bytes to encode a U32, should be reserved for each 32-bit value in a packet.
#define SEGGER_SYSVIEW_LOG (0u)
#define SEGGER_SYSVIEW_WARNING (1u)
#define SEGGER_SYSVIEW_ERROR (2u)
#define SEGGER_SYSVIEW_FLAG_APPEND (1u << 6)
#define SEGGER_SYSVIEW_PREPARE_PACKET(p) (p) + 4
//
// SystemView events. First 32 IDs from 0 .. 31 are reserved for these
//
#define SYSVIEW_EVTID_NOP 0 // Dummy packet.
#define SYSVIEW_EVTID_OVERFLOW 1
#define SYSVIEW_EVTID_ISR_ENTER 2
#define SYSVIEW_EVTID_ISR_EXIT 3
#define SYSVIEW_EVTID_TASK_START_EXEC 4
#define SYSVIEW_EVTID_TASK_STOP_EXEC 5
#define SYSVIEW_EVTID_TASK_START_READY 6
#define SYSVIEW_EVTID_TASK_STOP_READY 7
#define SYSVIEW_EVTID_TASK_CREATE 8
#define SYSVIEW_EVTID_TASK_INFO 9
#define SYSVIEW_EVTID_TRACE_START 10
#define SYSVIEW_EVTID_TRACE_STOP 11
#define SYSVIEW_EVTID_SYSTIME_CYCLES 12
#define SYSVIEW_EVTID_SYSTIME_US 13
#define SYSVIEW_EVTID_SYSDESC 14
#define SYSVIEW_EVTID_USER_START 15
#define SYSVIEW_EVTID_USER_STOP 16
#define SYSVIEW_EVTID_IDLE 17
#define SYSVIEW_EVTID_ISR_TO_SCHEDULER 18
#define SYSVIEW_EVTID_TIMER_ENTER 19
#define SYSVIEW_EVTID_TIMER_EXIT 20
#define SYSVIEW_EVTID_STACK_INFO 21
#define SYSVIEW_EVTID_MODULEDESC 22
#define SYSVIEW_EVTID_INIT 24
#define SYSVIEW_EVTID_NAME_RESOURCE 25
#define SYSVIEW_EVTID_PRINT_FORMATTED 26
#define SYSVIEW_EVTID_NUMMODULES 27
#define SYSVIEW_EVTID_END_CALL 28
#define SYSVIEW_EVTID_TASK_TERMINATE 29
#define SYSVIEW_EVTID_EX 31
//
// Event masks to disable/enable events
//
#define SYSVIEW_EVTMASK_NOP (1 << SYSVIEW_EVTID_NOP)
#define SYSVIEW_EVTMASK_OVERFLOW (1 << SYSVIEW_EVTID_OVERFLOW)
#define SYSVIEW_EVTMASK_ISR_ENTER (1 << SYSVIEW_EVTID_ISR_ENTER)
#define SYSVIEW_EVTMASK_ISR_EXIT (1 << SYSVIEW_EVTID_ISR_EXIT)
#define SYSVIEW_EVTMASK_TASK_START_EXEC (1 << SYSVIEW_EVTID_TASK_START_EXEC)
#define SYSVIEW_EVTMASK_TASK_STOP_EXEC (1 << SYSVIEW_EVTID_TASK_STOP_EXEC)
#define SYSVIEW_EVTMASK_TASK_START_READY (1 << SYSVIEW_EVTID_TASK_START_READY)
#define SYSVIEW_EVTMASK_TASK_STOP_READY (1 << SYSVIEW_EVTID_TASK_STOP_READY)
#define SYSVIEW_EVTMASK_TASK_CREATE (1 << SYSVIEW_EVTID_TASK_CREATE)
#define SYSVIEW_EVTMASK_TASK_INFO (1 << SYSVIEW_EVTID_TASK_INFO)
#define SYSVIEW_EVTMASK_TRACE_START (1 << SYSVIEW_EVTID_TRACE_START)
#define SYSVIEW_EVTMASK_TRACE_STOP (1 << SYSVIEW_EVTID_TRACE_STOP)
#define SYSVIEW_EVTMASK_SYSTIME_CYCLES (1 << SYSVIEW_EVTID_SYSTIME_CYCLES)
#define SYSVIEW_EVTMASK_SYSTIME_US (1 << SYSVIEW_EVTID_SYSTIME_US)
#define SYSVIEW_EVTMASK_SYSDESC (1 << SYSVIEW_EVTID_SYSDESC)
#define SYSVIEW_EVTMASK_USER_START (1 << SYSVIEW_EVTID_USER_START)
#define SYSVIEW_EVTMASK_USER_STOP (1 << SYSVIEW_EVTID_USER_STOP)
#define SYSVIEW_EVTMASK_IDLE (1 << SYSVIEW_EVTID_IDLE)
#define SYSVIEW_EVTMASK_ISR_TO_SCHEDULER (1 << SYSVIEW_EVTID_ISR_TO_SCHEDULER)
#define SYSVIEW_EVTMASK_TIMER_ENTER (1 << SYSVIEW_EVTID_TIMER_ENTER)
#define SYSVIEW_EVTMASK_TIMER_EXIT (1 << SYSVIEW_EVTID_TIMER_EXIT)
#define SYSVIEW_EVTMASK_STACK_INFO (1 << SYSVIEW_EVTID_STACK_INFO)
#define SYSVIEW_EVTMASK_MODULEDESC (1 << SYSVIEW_EVTID_MODULEDESC)
#define SYSVIEW_EVTMASK_INIT (1 << SYSVIEW_EVTID_INIT)
#define SYSVIEW_EVTMASK_NAME_RESOURCE (1 << SYSVIEW_EVTID_NAME_RESOURCE)
#define SYSVIEW_EVTMASK_PRINT_FORMATTED (1 << SYSVIEW_EVTID_PRINT_FORMATTED)
#define SYSVIEW_EVTMASK_NUMMODULES (1 << SYSVIEW_EVTID_NUMMODULES)
#define SYSVIEW_EVTMASK_END_CALL (1 << SYSVIEW_EVTID_END_CALL)
#define SYSVIEW_EVTMASK_TASK_TERMINATE (1 << SYSVIEW_EVTID_TASK_TERMINATE)
#define SYSVIEW_EVTMASK_EX (1 << SYSVIEW_EVTID_EX)
#define SYSVIEW_EVTMASK_ALL_INTERRUPTS ( SYSVIEW_EVTMASK_ISR_ENTER \
| SYSVIEW_EVTMASK_ISR_EXIT \
| SYSVIEW_EVTMASK_ISR_TO_SCHEDULER)
#define SYSVIEW_EVTMASK_ALL_TASKS ( SYSVIEW_EVTMASK_TASK_START_EXEC \
| SYSVIEW_EVTMASK_TASK_STOP_EXEC \
| SYSVIEW_EVTMASK_TASK_START_READY \
| SYSVIEW_EVTMASK_TASK_STOP_READY \
| SYSVIEW_EVTMASK_TASK_CREATE \
| SYSVIEW_EVTMASK_TASK_INFO \
| SYSVIEW_EVTMASK_STACK_INFO \
| SYSVIEW_EVTMASK_TASK_TERMINATE)
/*********************************************************************
*
* Structures
*
**********************************************************************
*/
typedef struct {
U32 TaskID;
const char* sName;
U32 Prio;
U32 StackBase;
U32 StackSize;
} SEGGER_SYSVIEW_TASKINFO;
typedef struct SEGGER_SYSVIEW_MODULE_STRUCT SEGGER_SYSVIEW_MODULE;
struct SEGGER_SYSVIEW_MODULE_STRUCT {
const char* sModule;
U32 NumEvents;
U32 EventOffset;
void (*pfSendModuleDesc)(void);
SEGGER_SYSVIEW_MODULE* pNext;
};
typedef void (SEGGER_SYSVIEW_SEND_SYS_DESC_FUNC)(void);
/*********************************************************************
*
* API functions
*
**********************************************************************
*/
typedef struct {
U64 (*pfGetTime) (void);
void (*pfSendTaskList) (void);
} SEGGER_SYSVIEW_OS_API;
/*********************************************************************
*
* Control and initialization functions
*/
void SEGGER_SYSVIEW_Init (U32 SysFreq, U32 CPUFreq, const SEGGER_SYSVIEW_OS_API *pOSAPI, SEGGER_SYSVIEW_SEND_SYS_DESC_FUNC pfSendSysDesc);
void SEGGER_SYSVIEW_SetRAMBase (U32 RAMBaseAddress);
void SEGGER_SYSVIEW_Start (void);
void SEGGER_SYSVIEW_Stop (void);
void SEGGER_SYSVIEW_GetSysDesc (void);
void SEGGER_SYSVIEW_SendTaskList (void);
void SEGGER_SYSVIEW_SendTaskInfo (const SEGGER_SYSVIEW_TASKINFO* pInfo);
void SEGGER_SYSVIEW_SendSysDesc (const char* sSysDesc);
/*********************************************************************
*
* Event recording functions
*/
void SEGGER_SYSVIEW_RecordVoid (unsigned int EventId);
void SEGGER_SYSVIEW_RecordU32 (unsigned int EventId, U32 Para0);
void SEGGER_SYSVIEW_RecordU32x2 (unsigned int EventId, U32 Para0, U32 Para1);
void SEGGER_SYSVIEW_RecordU32x3 (unsigned int EventId, U32 Para0, U32 Para1, U32 Para2);
void SEGGER_SYSVIEW_RecordU32x4 (unsigned int EventId, U32 Para0, U32 Para1, U32 Para2, U32 Para3);
void SEGGER_SYSVIEW_RecordU32x5 (unsigned int EventId, U32 Para0, U32 Para1, U32 Para2, U32 Para3, U32 Para4);
void SEGGER_SYSVIEW_RecordU32x6 (unsigned int EventId, U32 Para0, U32 Para1, U32 Para2, U32 Para3, U32 Para4, U32 Para5);
void SEGGER_SYSVIEW_RecordU32x7 (unsigned int EventId, U32 Para0, U32 Para1, U32 Para2, U32 Para3, U32 Para4, U32 Para5, U32 Para6);
void SEGGER_SYSVIEW_RecordU32x8 (unsigned int EventId, U32 Para0, U32 Para1, U32 Para2, U32 Para3, U32 Para4, U32 Para5, U32 Para6, U32 Para7);
void SEGGER_SYSVIEW_RecordU32x9 (unsigned int EventId, U32 Para0, U32 Para1, U32 Para2, U32 Para3, U32 Para4, U32 Para5, U32 Para6, U32 Para7, U32 Para8);
void SEGGER_SYSVIEW_RecordU32x10 (unsigned int EventId, U32 Para0, U32 Para1, U32 Para2, U32 Para3, U32 Para4, U32 Para5, U32 Para6, U32 Para7, U32 Para8, U32 Para9);
void SEGGER_SYSVIEW_RecordString (unsigned int EventId, const char* pString);
void SEGGER_SYSVIEW_RecordSystime (void);
void SEGGER_SYSVIEW_RecordEnterISR (U32 IrqId);
void SEGGER_SYSVIEW_RecordExitISR (void);
void SEGGER_SYSVIEW_RecordExitISRToScheduler (void);
void SEGGER_SYSVIEW_RecordEnterTimer (U32 TimerId);
void SEGGER_SYSVIEW_RecordExitTimer (void);
void SEGGER_SYSVIEW_RecordEndCall (unsigned int EventID);
void SEGGER_SYSVIEW_RecordEndCallU32 (unsigned int EventID, U32 Para0);
void SEGGER_SYSVIEW_OnIdle (void);
void SEGGER_SYSVIEW_OnTaskCreate (U32 TaskId);
void SEGGER_SYSVIEW_OnTaskTerminate (U32 TaskId);
void SEGGER_SYSVIEW_OnTaskStartExec (U32 TaskId);
void SEGGER_SYSVIEW_OnTaskStopExec (void);
void SEGGER_SYSVIEW_OnTaskStartReady (U32 TaskId);
void SEGGER_SYSVIEW_OnTaskStopReady (U32 TaskId, unsigned int Cause);
void SEGGER_SYSVIEW_OnUserStart (unsigned int UserId); // Start of user defined event (such as a subroutine to profile)
void SEGGER_SYSVIEW_OnUserStop (unsigned int UserId); // Start of user defined event
void SEGGER_SYSVIEW_NameResource (U32 ResourceId, const char* sName);
int SEGGER_SYSVIEW_SendPacket (U8* pPacket, U8* pPayloadEnd, unsigned int EventId);
/*********************************************************************
*
* Event parameter encoding functions
*/
U8* SEGGER_SYSVIEW_EncodeU32 (U8* pPayload, U32 Value);
U8* SEGGER_SYSVIEW_EncodeData (U8* pPayload, const char* pSrc, unsigned int Len);
U8* SEGGER_SYSVIEW_EncodeString (U8* pPayload, const char* s, unsigned int MaxLen);
U8* SEGGER_SYSVIEW_EncodeId (U8* pPayload, U32 Id);
U32 SEGGER_SYSVIEW_ShrinkId (U32 Id);
/*********************************************************************
*
* Middleware module registration
*/
void SEGGER_SYSVIEW_RegisterModule (SEGGER_SYSVIEW_MODULE* pModule);
void SEGGER_SYSVIEW_RecordModuleDescription (const SEGGER_SYSVIEW_MODULE* pModule, const char* sDescription);
void SEGGER_SYSVIEW_SendModule (U8 ModuleId);
void SEGGER_SYSVIEW_SendModuleDescription (void);
void SEGGER_SYSVIEW_SendNumModules (void);
/*********************************************************************
*
* printf-Style functions
*/
#ifndef SEGGER_SYSVIEW_EXCLUDE_PRINTF // Define in project to avoid warnings about variable parameter list
void SEGGER_SYSVIEW_PrintfHostEx (const char* s, U32 Options, ...);
void SEGGER_SYSVIEW_PrintfTargetEx (const char* s, U32 Options, ...);
void SEGGER_SYSVIEW_PrintfHost (const char* s, ...);
void SEGGER_SYSVIEW_PrintfTarget (const char* s, ...);
void SEGGER_SYSVIEW_WarnfHost (const char* s, ...);
void SEGGER_SYSVIEW_WarnfTarget (const char* s, ...);
void SEGGER_SYSVIEW_ErrorfHost (const char* s, ...);
void SEGGER_SYSVIEW_ErrorfTarget (const char* s, ...);
#endif
void SEGGER_SYSVIEW_Print (const char* s);
void SEGGER_SYSVIEW_Warn (const char* s);
void SEGGER_SYSVIEW_Error (const char* s);
/*********************************************************************
*
* Run-time configuration functions
*/
void SEGGER_SYSVIEW_EnableEvents (U32 EnableMask);
void SEGGER_SYSVIEW_DisableEvents (U32 DisableMask);
/*********************************************************************
*
* Application-provided functions
*/
void SEGGER_SYSVIEW_Conf (void);
U32 SEGGER_SYSVIEW_X_GetTimestamp (void);
U32 SEGGER_SYSVIEW_X_GetInterruptId (void);
#ifdef __cplusplus
}
#endif
#endif
/*************************** End of file ****************************/

View File

@ -0,0 +1,178 @@
/*********************************************************************
* SEGGER Microcontroller GmbH & Co. KG *
* The Embedded Experts *
**********************************************************************
* *
* (c) 2015 - 2017 SEGGER Microcontroller GmbH & Co. KG *
* *
* www.segger.com Support: support@segger.com *
* *
**********************************************************************
* *
* SEGGER SystemView * Real-time application analysis *
* *
**********************************************************************
* *
* All rights reserved. *
* *
* SEGGER strongly recommends to not make any changes *
* to or modify the source code of this software in order to stay *
* compatible with the RTT protocol and J-Link. *
* *
* Redistribution and use in source and binary forms, with or *
* without modification, are permitted provided that the following *
* conditions are met: *
* *
* o Redistributions of source code must retain the above copyright *
* notice, this list of conditions and the following disclaimer. *
* *
* o Redistributions in binary form must reproduce the above *
* copyright notice, this list of conditions and the following *
* disclaimer in the documentation and/or other materials provided *
* with the distribution. *
* *
* o Neither the name of SEGGER Microcontroller GmbH & Co. KG *
* nor the names of its contributors may be used to endorse or *
* promote products derived from this software without specific *
* prior written permission. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND *
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, *
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF *
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE *
* DISCLAIMED. IN NO EVENT SHALL SEGGER Microcontroller BE LIABLE FOR *
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR *
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT *
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; *
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE *
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH *
* DAMAGE. *
* *
**********************************************************************
* *
* SystemView version: V2.42 *
* *
**********************************************************************
-------------------------- END-OF-HEADER -----------------------------
File : SEGGER_SYSVIEW_ConfDefaults.h
Purpose : Defines defaults for configurable defines used in
SEGGER SystemView.
Revision: $Rev: 3734 $
*/
#ifndef SEGGER_SYSVIEW_CONFDEFAULTS_H
#define SEGGER_SYSVIEW_CONFDEFAULTS_H
/*********************************************************************
*
* #include Section
*
**********************************************************************
*/
#include "SEGGER_SYSVIEW_Conf.h"
#include "SEGGER_RTT_Conf.h"
#ifdef __cplusplus
extern "C" {
#endif
/*********************************************************************
*
* Configuration defaults
*
**********************************************************************
*/
// Number of bytes that SystemView uses for a buffer.
#ifndef SEGGER_SYSVIEW_RTT_BUFFER_SIZE
#define SEGGER_SYSVIEW_RTT_BUFFER_SIZE 1024
#endif
// The RTT channel that SystemView will use.
#ifndef SEGGER_SYSVIEW_RTT_CHANNEL
#define SEGGER_SYSVIEW_RTT_CHANNEL 0
#endif
// Sanity check of RTT channel
#if (SEGGER_SYSVIEW_RTT_CHANNEL == 0) && (SEGGER_RTT_MAX_NUM_UP_BUFFERS < 2)
#error "SEGGER_RTT_MAX_NUM_UP_BUFFERS in SEGGER_RTT_Conf.h has to be > 1!"
#elif (SEGGER_SYSVIEW_RTT_CHANNEL >= SEGGER_RTT_MAX_NUM_UP_BUFFERS)
#error "SEGGER_RTT_MAX_NUM_UP_BUFFERS in SEGGER_RTT_Conf.h has to be > SEGGER_SYSVIEW_RTT_CHANNEL!"
#endif
// Place the SystemView buffer into its own/the RTT section
#if !(defined SEGGER_SYSVIEW_BUFFER_SECTION) && (defined SEGGER_RTT_SECTION)
#define SEGGER_SYSVIEW_BUFFER_SECTION SEGGER_RTT_SECTION
#endif
// Retrieve a system timestamp. This gets the Cortex-M cycle counter.
#ifndef SEGGER_SYSVIEW_GET_TIMESTAMP
#error "SEGGER_SYSVIEW_GET_TIMESTAMP has to be defined in SEGGER_SYSVIEW_Conf.h!"
#endif
// Define number of valid bits low-order delivered by clock source.
#ifndef SEGGER_SYSVIEW_TIMESTAMP_BITS
#define SEGGER_SYSVIEW_TIMESTAMP_BITS 32
#endif
// Lowest Id reported by the Application.
#ifndef SEGGER_SYSVIEW_ID_BASE
#define SEGGER_SYSVIEW_ID_BASE 0
#endif
// Number of bits to shift Ids to save bandwidth
#ifndef SEGGER_SYSVIEW_ID_SHIFT
#define SEGGER_SYSVIEW_ID_SHIFT 0
#endif
#ifndef SEGGER_SYSVIEW_GET_INTERRUPT_ID
#error "SEGGER_SYSVIEW_GET_INTERRUPT_ID has to be defined in SEGGER_SYSVIEW_Conf.h!"
#endif
#ifndef SEGGER_SYSVIEW_MAX_ARGUMENTS
#define SEGGER_SYSVIEW_MAX_ARGUMENTS 16
#endif
#ifndef SEGGER_SYSVIEW_MAX_STRING_LEN
#define SEGGER_SYSVIEW_MAX_STRING_LEN 128
#endif
// Use a static buffer instead of a buffer on the stack for packets
#ifndef SEGGER_SYSVIEW_USE_STATIC_BUFFER
#define SEGGER_SYSVIEW_USE_STATIC_BUFFER 1
#endif
// Maximum packet size used by SystemView for the static buffer
#ifndef SEGGER_SYSVIEW_MAX_PACKET_SIZE
#define SEGGER_SYSVIEW_MAX_PACKET_SIZE SEGGER_SYSVIEW_INFO_SIZE + SEGGER_SYSVIEW_MAX_STRING_LEN + 2 * SEGGER_SYSVIEW_QUANTA_U32 + SEGGER_SYSVIEW_MAX_ARGUMENTS * SEGGER_SYSVIEW_QUANTA_U32
#endif
// Use post-mortem analysis instead of real-time analysis
#ifndef SEGGER_SYSVIEW_POST_MORTEM_MODE
#define SEGGER_SYSVIEW_POST_MORTEM_MODE 0
#endif
// Configure how frequently syncronization is sent
#ifndef SEGGER_SYSVIEW_SYNC_PERIOD_SHIFT
#define SEGGER_SYSVIEW_SYNC_PERIOD_SHIFT 8
#endif
// Lock SystemView (nestable)
#ifndef SEGGER_SYSVIEW_LOCK
#define SEGGER_SYSVIEW_LOCK() SEGGER_RTT_LOCK()
#endif
// Unlock SystemView (nestable)
#ifndef SEGGER_SYSVIEW_UNLOCK
#define SEGGER_SYSVIEW_UNLOCK() SEGGER_RTT_UNLOCK()
#endif
#ifdef __cplusplus
}
#endif
#endif
/*************************** End of file ****************************/

View File

@ -0,0 +1,110 @@
/*********************************************************************
* SEGGER Microcontroller GmbH & Co. KG *
* The Embedded Experts *
**********************************************************************
* *
* (c) 2015 - 2017 SEGGER Microcontroller GmbH & Co. KG *
* *
* www.segger.com Support: support@segger.com *
* *
**********************************************************************
* *
* SEGGER SystemView * Real-time application analysis *
* *
**********************************************************************
* *
* All rights reserved. *
* *
* SEGGER strongly recommends to not make any changes *
* to or modify the source code of this software in order to stay *
* compatible with the RTT protocol and J-Link. *
* *
* Redistribution and use in source and binary forms, with or *
* without modification, are permitted provided that the following *
* conditions are met: *
* *
* o Redistributions of source code must retain the above copyright *
* notice, this list of conditions and the following disclaimer. *
* *
* o Redistributions in binary form must reproduce the above *
* copyright notice, this list of conditions and the following *
* disclaimer in the documentation and/or other materials provided *
* with the distribution. *
* *
* o Neither the name of SEGGER Microcontroller GmbH & Co. KG *
* nor the names of its contributors may be used to endorse or *
* promote products derived from this software without specific *
* prior written permission. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND *
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, *
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF *
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE *
* DISCLAIMED. IN NO EVENT SHALL SEGGER Microcontroller BE LIABLE FOR *
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR *
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT *
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; *
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE *
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH *
* DAMAGE. *
* *
**********************************************************************
* *
* SystemView version: V2.42 *
* *
**********************************************************************
-------------------------- END-OF-HEADER -----------------------------
File : SEGGER_SYSVIEW_Int.h
Purpose : SEGGER SystemView internal header.
Revision: $Rev: 5626 $
*/
#ifndef SEGGER_SYSVIEW_INT_H
#define SEGGER_SYSVIEW_INT_H
/*********************************************************************
*
* #include Section
*
**********************************************************************
*/
#include "SEGGER_SYSVIEW.h"
#include "SEGGER_SYSVIEW_Conf.h"
#include "SEGGER_SYSVIEW_ConfDefaults.h"
#ifdef __cplusplus
extern "C" {
#endif
/*********************************************************************
*
* Private data types
*
**********************************************************************
*/
//
// Commands that Host can send to target
//
typedef enum {
SEGGER_SYSVIEW_COMMAND_ID_START = 1,
SEGGER_SYSVIEW_COMMAND_ID_STOP,
SEGGER_SYSVIEW_COMMAND_ID_GET_SYSTIME,
SEGGER_SYSVIEW_COMMAND_ID_GET_TASKLIST,
SEGGER_SYSVIEW_COMMAND_ID_GET_SYSDESC,
SEGGER_SYSVIEW_COMMAND_ID_GET_NUMMODULES,
SEGGER_SYSVIEW_COMMAND_ID_GET_MODULEDESC,
// Extended commands: Commands >= 128 have a second parameter
SEGGER_SYSVIEW_COMMAND_ID_GET_MODULE = 128
} SEGGER_SYSVIEW_COMMAND_ID;
#ifdef __cplusplus
}
#endif
#endif
/*************************** End of file ****************************/

View File

@ -0,0 +1,355 @@
/*********************************************************************
* SEGGER Microcontroller GmbH & Co. KG *
* The Embedded Experts *
**********************************************************************
* *
* (c) 2015 - 2017 SEGGER Microcontroller GmbH & Co. KG *
* *
* www.segger.com Support: support@segger.com *
* *
**********************************************************************
* *
* SEGGER SystemView * Real-time application analysis *
* *
**********************************************************************
* *
* All rights reserved. *
* *
* SEGGER strongly recommends to not make any changes *
* to or modify the source code of this software in order to stay *
* compatible with the RTT protocol and J-Link. *
* *
* Redistribution and use in source and binary forms, with or *
* without modification, are permitted provided that the following *
* conditions are met: *
* *
* o Redistributions of source code must retain the above copyright *
* notice, this list of conditions and the following disclaimer. *
* *
* o Redistributions in binary form must reproduce the above *
* copyright notice, this list of conditions and the following *
* disclaimer in the documentation and/or other materials provided *
* with the distribution. *
* *
* o Neither the name of SEGGER Microcontroller GmbH & Co. KG *
* nor the names of its contributors may be used to endorse or *
* promote products derived from this software without specific *
* prior written permission. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND *
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, *
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF *
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE *
* DISCLAIMED. IN NO EVENT SHALL SEGGER Microcontroller BE LIABLE FOR *
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR *
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT *
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; *
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE *
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH *
* DAMAGE. *
* *
**********************************************************************
* *
* SystemView version: V2.42 *
* *
**********************************************************************
-------------------------- END-OF-HEADER -----------------------------
File : SEGGER_SYSVIEW_Config_FreeRTOS.c
Purpose : Sample setup configuration of SystemView with FreeRTOS.
Revision: $Rev: 3734 $
*/
#include "freertos/FreeRTOS.h"
#include "SEGGER_SYSVIEW.h"
#include "rom/ets_sys.h"
#include "esp_app_trace.h"
#include "esp_app_trace_util.h"
#include "esp_intr_alloc.h"
#include "esp_clk.h"
extern const SEGGER_SYSVIEW_OS_API SYSVIEW_X_OS_TraceAPI;
/*********************************************************************
*
* Defines, configurable
*
**********************************************************************
*/
// The application name to be displayed in SystemViewer
#define SYSVIEW_APP_NAME "FreeRTOS Application"
// The target device name
#define SYSVIEW_DEVICE_NAME "ESP32"
// Determine which timer to use as timestamp source
#if CONFIG_SYSVIEW_TS_SOURCE_CCOUNT
#define TS_USE_CCOUNT 1
#elif CONFIG_SYSVIEW_TS_SOURCE_ESP_TIMER
#define TS_USE_ESP_TIMER 1
#else
#define TS_USE_TIMERGROUP 1
#endif
#if TS_USE_TIMERGROUP
#include "driver/timer.h"
// Timer group timer divisor
#define SYSVIEW_TIMER_DIV 2
// Frequency of the timestamp.
#define SYSVIEW_TIMESTAMP_FREQ (esp_clk_apb_freq() / SYSVIEW_TIMER_DIV)
// Timer ID and group ID
#if defined(CONFIG_SYSVIEW_TS_SOURCE_TIMER_00) || defined(CONFIG_SYSVIEW_TS_SOURCE_TIMER_01)
#define TS_TIMER_ID 0
#else
#define TS_TIMER_ID 1
#endif // TIMER_00 || TIMER_01
#if defined(CONFIG_SYSVIEW_TS_SOURCE_TIMER_00) || defined(CONFIG_SYSVIEW_TS_SOURCE_TIMER_10)
#define TS_TIMER_GROUP 0
#else
#define TS_TIMER_GROUP 1
#endif // TIMER_00 || TIMER_10
#endif // TS_USE_TIMERGROUP
#if TS_USE_ESP_TIMER
// esp_timer provides 1us resolution
#define SYSVIEW_TIMESTAMP_FREQ (1000000)
#endif // TS_USE_ESP_TIMER
#if TS_USE_CCOUNT
// CCOUNT is incremented at CPU frequency
#define SYSVIEW_TIMESTAMP_FREQ (CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ * 1000000)
#endif // TS_USE_CCOUNT
// System Frequency.
#define SYSVIEW_CPU_FREQ (esp_clk_cpu_freq())
// The lowest RAM address used for IDs (pointers)
#define SYSVIEW_RAM_BASE (0x3F400000)
#if CONFIG_FREERTOS_CORETIMER_0
#define SYSTICK_INTR_ID (ETS_INTERNAL_TIMER0_INTR_SOURCE+ETS_INTERNAL_INTR_SOURCE_OFF)
#endif
#if CONFIG_FREERTOS_CORETIMER_1
#define SYSTICK_INTR_ID (ETS_INTERNAL_TIMER1_INTR_SOURCE+ETS_INTERNAL_INTR_SOURCE_OFF)
#endif
// SystemView is single core specific: it implies that SEGGER_SYSVIEW_LOCK()
// disables IRQs (disables rescheduling globally). So we can not use finite timeouts for locks and return error
// in case of expiration, because error will not be handled and SEGGER's code will go further implying that
// everything is fine, so for multi-core env we have to wait on underlying lock forever
#define SEGGER_LOCK_WAIT_TMO ESP_APPTRACE_TMO_INFINITE
static esp_apptrace_lock_t s_sys_view_lock = {.mux = portMUX_INITIALIZER_UNLOCKED, .int_state = 0};
static const char * const s_isr_names[] = {
[0] = "WIFI_MAC",
[1] = "WIFI_NMI",
[2] = "WIFI_BB",
[3] = "BT_MAC",
[4] = "BT_BB",
[5] = "BT_BB_NMI",
[6] = "RWBT",
[7] = "RWBLE",
[8] = "RWBT_NMI",
[9] = "RWBLE_NMI",
[10] = "SLC0",
[11] = "SLC1",
[12] = "UHCI0",
[13] = "UHCI1",
[14] = "TG0_T0_LEVEL",
[15] = "TG0_T1_LEVEL",
[16] = "TG0_WDT_LEVEL",
[17] = "TG0_LACT_LEVEL",
[18] = "TG1_T0_LEVEL",
[19] = "TG1_T1_LEVEL",
[20] = "TG1_WDT_LEVEL",
[21] = "TG1_LACT_LEVEL",
[22] = "GPIO",
[23] = "GPIO_NMI",
[24] = "FROM_CPU0",
[25] = "FROM_CPU1",
[26] = "FROM_CPU2",
[27] = "FROM_CPU3",
[28] = "SPI0",
[29] = "SPI1",
[30] = "SPI2",
[31] = "SPI3",
[32] = "I2S0",
[33] = "I2S1",
[34] = "UART0",
[35] = "UART1",
[36] = "UART2",
[37] = "SDIO_HOST",
[38] = "ETH_MAC",
[39] = "PWM0",
[40] = "PWM1",
[41] = "PWM2",
[42] = "PWM3",
[43] = "LEDC",
[44] = "EFUSE",
[45] = "CAN",
[46] = "RTC_CORE",
[47] = "RMT",
[48] = "PCNT",
[49] = "I2C_EXT0",
[50] = "I2C_EXT1",
[51] = "RSA",
[52] = "SPI1_DMA",
[53] = "SPI2_DMA",
[54] = "SPI3_DMA",
[55] = "WDT",
[56] = "TIMER1",
[57] = "TIMER2",
[58] = "TG0_T0_EDGE",
[59] = "TG0_T1_EDGE",
[60] = "TG0_WDT_EDGE",
[61] = "TG0_LACT_EDGE",
[62] = "TG1_T0_EDGE",
[63] = "TG1_T1_EDGE",
[64] = "TG1_WDT_EDGE",
[65] = "TG1_LACT_EDGE",
[66] = "MMU_IA",
[67] = "MPU_IA",
[68] = "CACHE_IA",
};
/*********************************************************************
*
* _cbSendSystemDesc()
*
* Function description
* Sends SystemView description strings.
*/
static void _cbSendSystemDesc(void) {
char irq_str[32];
SEGGER_SYSVIEW_SendSysDesc("N="SYSVIEW_APP_NAME",D="SYSVIEW_DEVICE_NAME",C=Xtensa,O=FreeRTOS");
snprintf(irq_str, sizeof(irq_str), "I#%d=SysTick", SYSTICK_INTR_ID);
SEGGER_SYSVIEW_SendSysDesc(irq_str);
size_t isr_count = sizeof(s_isr_names)/sizeof(s_isr_names[0]);
for (size_t i = 0; i < isr_count; ++i) {
snprintf(irq_str, sizeof(irq_str), "I#%d=%s", ETS_INTERNAL_INTR_SOURCE_OFF + i, s_isr_names[i]);
SEGGER_SYSVIEW_SendSysDesc(irq_str);
}
}
/*********************************************************************
*
* Global functions
*
**********************************************************************
*/
static void SEGGER_SYSVIEW_TS_Init()
{
/* We only need to initialize something if we use Timer Group.
* esp_timer and ccount can be used as is.
*/
#if TS_USE_TIMERGROUP
timer_config_t config = {
.alarm_en = 0,
.auto_reload = 0,
.counter_dir = TIMER_COUNT_UP,
.divider = SYSVIEW_TIMER_DIV,
.counter_en = 0
};
/* Configure timer */
timer_init(TS_TIMER_GROUP, TS_TIMER_ID, &config);
/* Load counter value */
timer_set_counter_value(TS_TIMER_GROUP, TS_TIMER_ID, 0x00000000ULL);
/* Start counting */
timer_start(TS_TIMER_GROUP, TS_TIMER_ID);
#endif // TS_USE_TIMERGROUP
}
void SEGGER_SYSVIEW_Conf(void) {
U32 disable_evts = 0;
SEGGER_SYSVIEW_TS_Init();
SEGGER_SYSVIEW_Init(SYSVIEW_TIMESTAMP_FREQ, SYSVIEW_CPU_FREQ,
&SYSVIEW_X_OS_TraceAPI, _cbSendSystemDesc);
SEGGER_SYSVIEW_SetRAMBase(SYSVIEW_RAM_BASE);
#if !CONFIG_SYSVIEW_EVT_OVERFLOW_ENABLE
disable_evts |= SYSVIEW_EVTMASK_OVERFLOW;
#endif
#if !CONFIG_SYSVIEW_EVT_ISR_ENTER_ENABLE
disable_evts |= SYSVIEW_EVTMASK_ISR_ENTER;
#endif
#if !CONFIG_SYSVIEW_EVT_ISR_EXIT_ENABLE
disable_evts |= SYSVIEW_EVTMASK_ISR_EXIT;
#endif
#if !CONFIG_SYSVIEW_EVT_TASK_START_EXEC_ENABLE
disable_evts |= SYSVIEW_EVTMASK_TASK_START_EXEC;
#endif
#if !CONFIG_SYSVIEW_EVT_TASK_STOP_EXEC_ENABLE
disable_evts |= SYSVIEW_EVTMASK_TASK_STOP_EXEC;
#endif
#if !CONFIG_SYSVIEW_EVT_TASK_START_READY_ENABLE
disable_evts |= SYSVIEW_EVTMASK_TASK_START_READY;
#endif
#if !CONFIG_SYSVIEW_EVT_TASK_STOP_READY_ENABLE
disable_evts |= SYSVIEW_EVTMASK_TASK_STOP_READY;
#endif
#if !CONFIG_SYSVIEW_EVT_TASK_CREATE_ENABLE
disable_evts |= SYSVIEW_EVTMASK_TASK_CREATE;
#endif
#if !CONFIG_SYSVIEW_EVT_TASK_TERMINATE_ENABLE
disable_evts |= SYSVIEW_EVTMASK_TASK_TERMINATE;
#endif
#if !CONFIG_SYSVIEW_EVT_IDLE_ENABLE
disable_evts |= SYSVIEW_EVTMASK_IDLE;
#endif
#if !CONFIG_SYSVIEW_EVT_ISR_TO_SCHEDULER_ENABLE
disable_evts |= SYSVIEW_EVTMASK_ISR_TO_SCHEDULER;
#endif
#if !CONFIG_SYSVIEW_EVT_TIMER_ENTER_ENABLE
disable_evts |= SYSVIEW_EVTMASK_TIMER_ENTER;
#endif
#if !CONFIG_SYSVIEW_EVT_TIMER_EXIT_ENABLE
disable_evts |= SYSVIEW_EVTMASK_TIMER_EXIT;
#endif
SEGGER_SYSVIEW_DisableEvents(disable_evts);
}
U32 SEGGER_SYSVIEW_X_GetTimestamp()
{
#if TS_USE_TIMERGROUP
uint64_t ts = 0;
timer_get_counter_value(TS_TIMER_GROUP, TS_TIMER_ID, &ts);
return (U32) ts; // return lower part of counter value
#elif TS_USE_CCOUNT
return portGET_RUN_TIME_COUNTER_VALUE();
#elif TS_USE_ESP_TIMER
return (U32) esp_timer_get_time(); // return lower part of counter value
#endif
}
void SEGGER_SYSVIEW_X_RTT_Lock()
{
}
void SEGGER_SYSVIEW_X_RTT_Unlock()
{
}
unsigned SEGGER_SYSVIEW_X_SysView_Lock()
{
esp_apptrace_tmo_t tmo;
esp_apptrace_tmo_init(&tmo, SEGGER_LOCK_WAIT_TMO);
esp_apptrace_lock_take(&s_sys_view_lock, &tmo);
// to be recursive save IRQ status on the stack of the caller to keep it from overwriting
return s_sys_view_lock.int_state;
}
void SEGGER_SYSVIEW_X_SysView_Unlock(unsigned int_state)
{
s_sys_view_lock.int_state = int_state;
esp_apptrace_lock_give(&s_sys_view_lock);
}
/*************************** End of file ****************************/

View File

@ -0,0 +1,290 @@
/*********************************************************************
* SEGGER Microcontroller GmbH & Co. KG *
* The Embedded Experts *
**********************************************************************
* *
* (c) 2015 - 2017 SEGGER Microcontroller GmbH & Co. KG *
* *
* www.segger.com Support: support@segger.com *
* *
**********************************************************************
* *
* SEGGER SystemView * Real-time application analysis *
* *
**********************************************************************
* *
* All rights reserved. *
* *
* SEGGER strongly recommends to not make any changes *
* to or modify the source code of this software in order to stay *
* compatible with the RTT protocol and J-Link. *
* *
* Redistribution and use in source and binary forms, with or *
* without modification, are permitted provided that the following *
* conditions are met: *
* *
* o Redistributions of source code must retain the above copyright *
* notice, this list of conditions and the following disclaimer. *
* *
* o Redistributions in binary form must reproduce the above *
* copyright notice, this list of conditions and the following *
* disclaimer in the documentation and/or other materials provided *
* with the distribution. *
* *
* o Neither the name of SEGGER Microcontroller GmbH & Co. KG *
* nor the names of its contributors may be used to endorse or *
* promote products derived from this software without specific *
* prior written permission. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND *
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, *
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF *
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE *
* DISCLAIMED. IN NO EVENT SHALL SEGGER Microcontroller BE LIABLE FOR *
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR *
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT *
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; *
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE *
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH *
* DAMAGE. *
* *
**********************************************************************
* *
* SystemView version: V2.42 *
* *
**********************************************************************
-------------------------- END-OF-HEADER -----------------------------
File : SEGGER_SYSVIEW_FreeRTOS.c
Purpose : Interface between FreeRTOS and SystemView.
Revision: $Rev: 3734 $
*/
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "SEGGER_SYSVIEW.h"
#include "SEGGER_SYSVIEW_FreeRTOS.h"
#include "string.h" // Required for memset
typedef struct SYSVIEW_FREERTOS_TASK_STATUS SYSVIEW_FREERTOS_TASK_STATUS;
struct SYSVIEW_FREERTOS_TASK_STATUS {
U32 xHandle;
const char* pcTaskName;
unsigned uxCurrentPriority;
U32 pxStack;
unsigned uStackHighWaterMark;
};
static SYSVIEW_FREERTOS_TASK_STATUS _aTasks[SYSVIEW_FREERTOS_MAX_NOF_TASKS];
/*********************************************************************
*
* _cbSendTaskList()
*
* Function description
* This function is part of the link between FreeRTOS and SYSVIEW.
* Called from SystemView when asked by the host, it uses SYSVIEW
* functions to send the entire task list to the host.
*/
static void _cbSendTaskList(void) {
unsigned n;
for (n = 0; n < SYSVIEW_FREERTOS_MAX_NOF_TASKS; n++) {
if (_aTasks[n].xHandle) {
#if INCLUDE_uxTaskGetStackHighWaterMark // Report Task Stack High Watermark
_aTasks[n].uStackHighWaterMark = uxTaskGetStackHighWaterMark((TaskHandle_t)_aTasks[n].xHandle);
#endif
SYSVIEW_SendTaskInfo((U32)_aTasks[n].xHandle, _aTasks[n].pcTaskName, (unsigned)_aTasks[n].uxCurrentPriority, (U32)_aTasks[n].pxStack, (unsigned)_aTasks[n].uStackHighWaterMark);
}
}
}
/*********************************************************************
*
* _cbGetTime()
*
* Function description
* This function is part of the link between FreeRTOS and SYSVIEW.
* Called from SystemView when asked by the host, returns the
* current system time in micro seconds.
*/
static U64 _cbGetTime(void) {
U64 Time;
Time = xTaskGetTickCountFromISR();
Time *= portTICK_PERIOD_MS;
Time *= 1000;
return Time;
}
/*********************************************************************
*
* Global functions
*
**********************************************************************
*/
/*********************************************************************
*
* SYSVIEW_AddTask()
*
* Function description
* Add a task to the internal list and record its information.
*/
void SYSVIEW_AddTask(U32 xHandle, const char* pcTaskName, unsigned uxCurrentPriority, U32 pxStack, unsigned uStackHighWaterMark) {
unsigned n;
if (memcmp(pcTaskName, "IDLE", 5) == 0) {
return;
}
for (n = 0; n < SYSVIEW_FREERTOS_MAX_NOF_TASKS; n++) {
if (_aTasks[n].xHandle == 0) {
break;
}
}
if (n == SYSVIEW_FREERTOS_MAX_NOF_TASKS) {
SEGGER_SYSVIEW_Warn("SYSTEMVIEW: Could not record task information. Maximum number of tasks reached.");
return;
}
_aTasks[n].xHandle = xHandle;
_aTasks[n].pcTaskName = pcTaskName;
_aTasks[n].uxCurrentPriority = uxCurrentPriority;
_aTasks[n].pxStack = pxStack;
_aTasks[n].uStackHighWaterMark = uStackHighWaterMark;
SYSVIEW_SendTaskInfo(xHandle, pcTaskName,uxCurrentPriority, pxStack, uStackHighWaterMark);
}
/*********************************************************************
*
* SYSVIEW_UpdateTask()
*
* Function description
* Update a task in the internal list and record its information.
*/
void SYSVIEW_UpdateTask(U32 xHandle, const char* pcTaskName, unsigned uxCurrentPriority, U32 pxStack, unsigned uStackHighWaterMark) {
unsigned n;
if (memcmp(pcTaskName, "IDLE", 5) == 0) {
return;
}
for (n = 0; n < SYSVIEW_FREERTOS_MAX_NOF_TASKS; n++) {
if (_aTasks[n].xHandle == xHandle) {
break;
}
}
if (n < SYSVIEW_FREERTOS_MAX_NOF_TASKS) {
_aTasks[n].pcTaskName = pcTaskName;
_aTasks[n].uxCurrentPriority = uxCurrentPriority;
_aTasks[n].pxStack = pxStack;
_aTasks[n].uStackHighWaterMark = uStackHighWaterMark;
SYSVIEW_SendTaskInfo(xHandle, pcTaskName, uxCurrentPriority, pxStack, uStackHighWaterMark);
} else {
SYSVIEW_AddTask(xHandle, pcTaskName, uxCurrentPriority, pxStack, uStackHighWaterMark);
}
}
/*********************************************************************
*
* SYSVIEW_DeleteTask()
*
* Function description
* Delete a task from the internal list.
*/
void SYSVIEW_DeleteTask(U32 xHandle) {
unsigned n;
for (n = 0; n < SYSVIEW_FREERTOS_MAX_NOF_TASKS; n++) {
if (_aTasks[n].xHandle == xHandle) {
break;
}
}
if (n == SYSVIEW_FREERTOS_MAX_NOF_TASKS) {
SEGGER_SYSVIEW_Warn("SYSTEMVIEW: Could not find task information. Cannot delete task.");
return;
}
_aTasks[n].xHandle = 0;
}
/*********************************************************************
*
* SYSVIEW_SendTaskInfo()
*
* Function description
* Record task information.
*/
void SYSVIEW_SendTaskInfo(U32 TaskID, const char* sName, unsigned Prio, U32 StackBase, unsigned StackSize) {
SEGGER_SYSVIEW_TASKINFO TaskInfo;
memset(&TaskInfo, 0, sizeof(TaskInfo)); // Fill all elements with 0 to allow extending the structure in future version without breaking the code
TaskInfo.TaskID = TaskID;
TaskInfo.sName = sName;
TaskInfo.Prio = Prio;
TaskInfo.StackBase = StackBase;
TaskInfo.StackSize = StackSize;
SEGGER_SYSVIEW_SendTaskInfo(&TaskInfo);
}
/*********************************************************************
*
* SYSVIEW_RecordU32x4()
*
* Function description
* Record an event with 4 parameters
*/
void SYSVIEW_RecordU32x4(unsigned Id, U32 Para0, U32 Para1, U32 Para2, U32 Para3) {
U8 aPacket[SEGGER_SYSVIEW_INFO_SIZE + 4 * SEGGER_SYSVIEW_QUANTA_U32];
U8* pPayload;
//
pPayload = SEGGER_SYSVIEW_PREPARE_PACKET(aPacket); // Prepare the packet for SystemView
pPayload = SEGGER_SYSVIEW_EncodeU32(pPayload, Para0); // Add the first parameter to the packet
pPayload = SEGGER_SYSVIEW_EncodeU32(pPayload, Para1); // Add the second parameter to the packet
pPayload = SEGGER_SYSVIEW_EncodeU32(pPayload, Para2); // Add the third parameter to the packet
pPayload = SEGGER_SYSVIEW_EncodeU32(pPayload, Para3); // Add the fourth parameter to the packet
//
SEGGER_SYSVIEW_SendPacket(&aPacket[0], pPayload, Id); // Send the packet
}
/*********************************************************************
*
* SYSVIEW_RecordU32x5()
*
* Function description
* Record an event with 5 parameters
*/
void SYSVIEW_RecordU32x5(unsigned Id, U32 Para0, U32 Para1, U32 Para2, U32 Para3, U32 Para4) {
U8 aPacket[SEGGER_SYSVIEW_INFO_SIZE + 5 * SEGGER_SYSVIEW_QUANTA_U32];
U8* pPayload;
//
pPayload = SEGGER_SYSVIEW_PREPARE_PACKET(aPacket); // Prepare the packet for SystemView
pPayload = SEGGER_SYSVIEW_EncodeU32(pPayload, Para0); // Add the first parameter to the packet
pPayload = SEGGER_SYSVIEW_EncodeU32(pPayload, Para1); // Add the second parameter to the packet
pPayload = SEGGER_SYSVIEW_EncodeU32(pPayload, Para2); // Add the third parameter to the packet
pPayload = SEGGER_SYSVIEW_EncodeU32(pPayload, Para3); // Add the fourth parameter to the packet
pPayload = SEGGER_SYSVIEW_EncodeU32(pPayload, Para4); // Add the fifth parameter to the packet
//
SEGGER_SYSVIEW_SendPacket(&aPacket[0], pPayload, Id); // Send the packet
}
/*********************************************************************
*
* Public API structures
*
**********************************************************************
*/
// Callbacks provided to SYSTEMVIEW by FreeRTOS
const SEGGER_SYSVIEW_OS_API SYSVIEW_X_OS_TraceAPI = {
_cbGetTime,
_cbSendTaskList,
};
/*************************** End of file ****************************/

View File

@ -0,0 +1,335 @@
/*********************************************************************
* SEGGER Microcontroller GmbH & Co. KG *
* The Embedded Experts *
**********************************************************************
* *
* (c) 2015 - 2017 SEGGER Microcontroller GmbH & Co. KG *
* *
* www.segger.com Support: support@segger.com *
* *
**********************************************************************
* *
* SEGGER SystemView * Real-time application analysis *
* *
**********************************************************************
* *
* All rights reserved. *
* *
* SEGGER strongly recommends to not make any changes *
* to or modify the source code of this software in order to stay *
* compatible with the RTT protocol and J-Link. *
* *
* Redistribution and use in source and binary forms, with or *
* without modification, are permitted provided that the following *
* conditions are met: *
* *
* o Redistributions of source code must retain the above copyright *
* notice, this list of conditions and the following disclaimer. *
* *
* o Redistributions in binary form must reproduce the above *
* copyright notice, this list of conditions and the following *
* disclaimer in the documentation and/or other materials provided *
* with the distribution. *
* *
* o Neither the name of SEGGER Microcontroller GmbH & Co. KG *
* nor the names of its contributors may be used to endorse or *
* promote products derived from this software without specific *
* prior written permission. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND *
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, *
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF *
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE *
* DISCLAIMED. IN NO EVENT SHALL SEGGER Microcontroller BE LIABLE FOR *
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR *
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT *
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; *
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE *
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH *
* DAMAGE. *
* *
**********************************************************************
* *
* SystemView version: V2.42 *
* *
**********************************************************************
-------------------------- END-OF-HEADER -----------------------------
File : SEGGER_SYSVIEW_FreeRTOS.h
Purpose : Interface between FreeRTOS and SystemView.
Revision: $Rev: 3734 $
Notes:
(1) Include this file at the end of FreeRTOSConfig.h
*/
#ifndef SYSVIEW_FREERTOS_H
#define SYSVIEW_FREERTOS_H
#include "SEGGER_SYSVIEW.h"
/*********************************************************************
*
* Defines, configurable
*
**********************************************************************
*/
#ifndef portSTACK_GROWTH
#define portSTACK_GROWTH ( -1 )
#endif
#define SYSVIEW_FREERTOS_MAX_NOF_TASKS CONFIG_SYSVIEW_MAX_TASKS
/*********************************************************************
*
* Defines, fixed
*
**********************************************************************
*/
// for dual-core targets we use event ID to keep core ID bit (0 or 1)
// use the highest - 1 bit of event ID to indicate core ID
// the highest bit can not be used due to event ID encoding method
// this reduces supported ID range to [0..63] (for 1 byte IDs) plus [128..16383] (for 2 bytes IDs)
// so original continuous event IDs range is split into two sub-ranges for 1-bytes IDs and 2-bytes ones
// events which use apiFastID_OFFSET will have 1 byte ID,
// so for the sake of bandwidth economy events which are generated more frequently should use this ID offset
// currently all used events fall into this range
#define apiFastID_OFFSET (32u)
#define apiID_VTASKDELETE (1u)
#define apiID_VTASKDELAY (2u)
#define apiID_VTASKDELAYUNTIL (3u)
#define apiID_VTASKSUSPEND (4u)
#define apiID_ULTASKNOTIFYTAKE (5u)
#define apiID_VTASKNOTIFYGIVEFROMISR (6u)
#define apiID_VTASKPRIORITYINHERIT (7u)
#define apiID_VTASKRESUME (8u)
#define apiID_VTASKSTEPTICK (9u)
#define apiID_XTASKPRIORITYDISINHERIT (10u)
#define apiID_XTASKRESUMEFROMISR (11u)
#define apiID_XTASKGENERICNOTIFY (12u)
#define apiID_XTASKGENERICNOTIFYFROMISR (13u)
#define apiID_XTASKNOTIFYWAIT (14u)
#define apiID_XQUEUEGENERICCREATE (15u)
#define apiID_VQUEUEDELETE (16u)
#define apiID_XQUEUEGENERICRECEIVE (17u)
#define apiID_XQUEUEPEEKFROMISR (18u)
#define apiID_XQUEUERECEIVEFROMISR (19u)
#define apiID_VQUEUEADDTOREGISTRY (20u)
#define apiID_XQUEUEGENERICSEND (21u)
#define apiID_XQUEUEGENERICSENDFROMISR (22u)
#define apiID_VTASKPRIORITYSET (23u)
#define apiID_UXTASKPRIORITYGETFROMISR (24u)
#define apiID_XTASKGETTICKCOUNTFROMISR (25u)
#define apiID_XEVENTGROUPCLEARBITSFROMISR (26u)
#define apiID_XEVENTGROUPSETBITSFROMISR (27u)
#define apiID_XEVENTGROUPGETBITSFROMISR (28u)
#define apiID_XQUEUEGIVEFROMISR (29u)
#define apiID_XQUEUEISQUEUEEMPTYFROMISR (30u)
#define apiID_XQUEUEISQUEUEFULLFROMISR (31u) // the maximum allowed apiID for the first ID range
// events which use apiSlowID_OFFSET will have 2-bytes ID
#define apiSlowID_OFFSET (127u)
#define apiID_VTASKALLOCATEMPUREGIONS (1u)
#define apiID_UXTASKPRIORITYGET (2u)
#define apiID_ETASKGETSTATE (3u)
#define apiID_VTASKSTARTSCHEDULER (4u)
#define apiID_VTASKENDSCHEDULER (5u)
#define apiID_VTASKSUSPENDALL (6u)
#define apiID_XTASKRESUMEALL (7u)
#define apiID_XTASKGETTICKCOUNT (8u)
#define apiID_UXTASKGETNUMBEROFTASKS (9u)
#define apiID_PCTASKGETTASKNAME (10u)
#define apiID_UXTASKGETSTACKHIGHWATERMARK (11u)
#define apiID_VTASKSETAPPLICATIONTASKTAG (12u)
#define apiID_XTASKGETAPPLICATIONTASKTAG (13u)
#define apiID_VTASKSETTHREADLOCALSTORAGEPOINTER (14u)
#define apiID_PVTASKGETTHREADLOCALSTORAGEPOINTER (15u)
#define apiID_XTASKCALLAPPLICATIONTASKHOOK (16u)
#define apiID_XTASKGETIDLETASKHANDLE (17u)
#define apiID_UXTASKGETSYSTEMSTATE (18u)
#define apiID_VTASKLIST (19u)
#define apiID_VTASKGETRUNTIMESTATS (20u)
#define apiID_XTASKNOTIFYSTATECLEAR (21u)
#define apiID_XTASKGETCURRENTTASKHANDLE (22u)
#define apiID_VTASKSETTIMEOUTSTATE (23u)
#define apiID_XTASKCHECKFORTIMEOUT (24u)
#define apiID_VTASKMISSEDYIELD (25u)
#define apiID_XTASKGETSCHEDULERSTATE (26u)
#define apiID_XTASKGENERICCREATE (27u)
#define apiID_UXTASKGETTASKNUMBER (28u)
#define apiID_VTASKSETTASKNUMBER (29u)
#define apiID_ETASKCONFIRMSLEEPMODESTATUS (30u)
#define apiID_XTIMERCREATE (31u)
#define apiID_PVTIMERGETTIMERID (32u)
#define apiID_VTIMERSETTIMERID (33u)
#define apiID_XTIMERISTIMERACTIVE (34u)
#define apiID_XTIMERGETTIMERDAEMONTASKHANDLE (35u)
#define apiID_XTIMERPENDFUNCTIONCALLFROMISR (36u)
#define apiID_XTIMERPENDFUNCTIONCALL (37u)
#define apiID_PCTIMERGETTIMERNAME (38u)
#define apiID_XTIMERCREATETIMERTASK (39u)
#define apiID_XTIMERGENERICCOMMAND (40u)
#define apiID_UXQUEUEMESSAGESWAITING (41u)
#define apiID_UXQUEUESPACESAVAILABLE (42u)
#define apiID_UXQUEUEMESSAGESWAITINGFROMISR (43u)
#define apiID_XQUEUEALTGENERICSEND (44u)
#define apiID_XQUEUEALTGENERICRECEIVE (45u)
#define apiID_XQUEUECRSENDFROMISR (46u)
#define apiID_XQUEUECRRECEIVEFROMISR (47u)
#define apiID_XQUEUECRSEND (48u)
#define apiID_XQUEUECRRECEIVE (49u)
#define apiID_XQUEUECREATEMUTEX (50u)
#define apiID_XQUEUECREATECOUNTINGSEMAPHORE (51u)
#define apiID_XQUEUEGETMUTEXHOLDER (52u)
#define apiID_XQUEUETAKEMUTEXRECURSIVE (53u)
#define apiID_XQUEUEGIVEMUTEXRECURSIVE (54u)
#define apiID_VQUEUEUNREGISTERQUEUE (55u)
#define apiID_XQUEUECREATESET (56u)
#define apiID_XQUEUEADDTOSET (57u)
#define apiID_XQUEUEREMOVEFROMSET (58u)
#define apiID_XQUEUESELECTFROMSET (59u)
#define apiID_XQUEUESELECTFROMSETFROMISR (60u)
#define apiID_XQUEUEGENERICRESET (61u)
#define apiID_VLISTINITIALISE (62u)
#define apiID_VLISTINITIALISEITEM (63u)
#define apiID_VLISTINSERT (64u)
#define apiID_VLISTINSERTEND (65u)
#define apiID_UXLISTREMOVE (66u)
#define apiID_XEVENTGROUPCREATE (67u)
#define apiID_XEVENTGROUPWAITBITS (68u)
#define apiID_XEVENTGROUPCLEARBITS (69u)
#define apiID_XEVENTGROUPSETBITS (70u)
#define apiID_XEVENTGROUPSYNC (71u)
#define apiID_VEVENTGROUPDELETE (72u)
#define apiID_UXEVENTGROUPGETNUMBER (73u)
#define traceTASK_NOTIFY_TAKE() SEGGER_SYSVIEW_RecordU32x2(apiFastID_OFFSET + apiID_ULTASKNOTIFYTAKE, xClearCountOnExit, xTicksToWait)
#define traceTASK_DELAY() SEGGER_SYSVIEW_RecordU32(apiFastID_OFFSET + apiID_VTASKDELAY, xTicksToDelay)
#define traceTASK_DELAY_UNTIL() SEGGER_SYSVIEW_RecordVoid(apiFastID_OFFSET + apiID_VTASKDELAYUNTIL)
#define traceTASK_DELETE( pxTCB ) if (pxTCB != NULL) { \
SEGGER_SYSVIEW_RecordU32(apiFastID_OFFSET + apiID_VTASKDELETE, \
SEGGER_SYSVIEW_ShrinkId((U32)pxTCB)); \
SYSVIEW_DeleteTask((U32)pxTCB); \
}
#define traceTASK_NOTIFY_GIVE_FROM_ISR() SEGGER_SYSVIEW_RecordU32x2(apiFastID_OFFSET + apiID_VTASKNOTIFYGIVEFROMISR, SEGGER_SYSVIEW_ShrinkId((U32)pxTCB), (U32)pxHigherPriorityTaskWoken)
#define traceTASK_PRIORITY_INHERIT( pxTCB, uxPriority ) SEGGER_SYSVIEW_RecordU32(apiFastID_OFFSET + apiID_VTASKPRIORITYINHERIT, (U32)pxMutexHolder)
#define traceTASK_RESUME( pxTCB ) SEGGER_SYSVIEW_RecordU32(apiFastID_OFFSET + apiID_VTASKRESUME, SEGGER_SYSVIEW_ShrinkId((U32)pxTCB))
#define traceINCREASE_TICK_COUNT( xTicksToJump ) SEGGER_SYSVIEW_RecordU32(apiFastID_OFFSET + apiID_VTASKSTEPTICK, xTicksToJump)
#define traceTASK_SUSPEND( pxTCB ) SEGGER_SYSVIEW_RecordU32(apiFastID_OFFSET + apiID_VTASKSUSPEND, SEGGER_SYSVIEW_ShrinkId((U32)pxTCB))
#define traceTASK_PRIORITY_DISINHERIT( pxTCB, uxBasePriority ) SEGGER_SYSVIEW_RecordU32(apiFastID_OFFSET + apiID_XTASKPRIORITYDISINHERIT, (U32)pxMutexHolder)
#define traceTASK_RESUME_FROM_ISR( pxTCB ) SEGGER_SYSVIEW_RecordU32(apiFastID_OFFSET + apiID_XTASKRESUMEFROMISR, SEGGER_SYSVIEW_ShrinkId((U32)pxTCB))
#define traceTASK_NOTIFY() SYSVIEW_RecordU32x4(apiFastID_OFFSET + apiID_XTASKGENERICNOTIFY, SEGGER_SYSVIEW_ShrinkId((U32)pxTCB), ulValue, eAction, (U32)pulPreviousNotificationValue)
#define traceTASK_NOTIFY_FROM_ISR() SYSVIEW_RecordU32x5(apiFastID_OFFSET + apiID_XTASKGENERICNOTIFYFROMISR, SEGGER_SYSVIEW_ShrinkId((U32)pxTCB), ulValue, eAction, (U32)pulPreviousNotificationValue, (U32)pxHigherPriorityTaskWoken)
#define traceTASK_NOTIFY_WAIT() SYSVIEW_RecordU32x4(apiFastID_OFFSET + apiID_XTASKNOTIFYWAIT, ulBitsToClearOnEntry, ulBitsToClearOnExit, (U32)pulNotificationValue, xTicksToWait)
#define traceQUEUE_CREATE( pxNewQueue ) SEGGER_SYSVIEW_RecordU32x3(apiFastID_OFFSET + apiID_XQUEUEGENERICCREATE, uxQueueLength, uxItemSize, ucQueueType)
#define traceQUEUE_DELETE( pxQueue ) SEGGER_SYSVIEW_RecordU32(apiFastID_OFFSET + apiID_VQUEUEDELETE, SEGGER_SYSVIEW_ShrinkId((U32)pxQueue))
#define traceQUEUE_PEEK( pxQueue ) SYSVIEW_RecordU32x4(apiFastID_OFFSET + apiID_XQUEUEGENERICRECEIVE, SEGGER_SYSVIEW_ShrinkId((U32)pxQueue), SEGGER_SYSVIEW_ShrinkId((U32)pvBuffer), xTicksToWait, xJustPeeking)
#define traceQUEUE_PEEK_FROM_ISR( pxQueue ) SEGGER_SYSVIEW_RecordU32x2(apiFastID_OFFSET + apiID_XQUEUEPEEKFROMISR, SEGGER_SYSVIEW_ShrinkId((U32)pxQueue), SEGGER_SYSVIEW_ShrinkId((U32)pvBuffer))
#define traceQUEUE_PEEK_FROM_ISR_FAILED( pxQueue ) SEGGER_SYSVIEW_RecordU32x2(apiFastID_OFFSET + apiID_XQUEUEPEEKFROMISR, SEGGER_SYSVIEW_ShrinkId((U32)pxQueue), SEGGER_SYSVIEW_ShrinkId((U32)pvBuffer))
#define traceQUEUE_RECEIVE( pxQueue ) SYSVIEW_RecordU32x4(apiFastID_OFFSET + apiID_XQUEUEGENERICRECEIVE, SEGGER_SYSVIEW_ShrinkId((U32)pxQueue), SEGGER_SYSVIEW_ShrinkId((U32)pvBuffer), xTicksToWait, xJustPeeking)
#define traceQUEUE_RECEIVE_FAILED( pxQueue ) SYSVIEW_RecordU32x4(apiFastID_OFFSET + apiID_XQUEUEGENERICRECEIVE, SEGGER_SYSVIEW_ShrinkId((U32)pxQueue), SEGGER_SYSVIEW_ShrinkId((U32)pvBuffer), xTicksToWait, xJustPeeking)
#define traceQUEUE_RECEIVE_FROM_ISR( pxQueue ) SEGGER_SYSVIEW_RecordU32x3(apiFastID_OFFSET + apiID_XQUEUERECEIVEFROMISR, SEGGER_SYSVIEW_ShrinkId((U32)pxQueue), SEGGER_SYSVIEW_ShrinkId((U32)pvBuffer), (U32)pxHigherPriorityTaskWoken)
#define traceQUEUE_RECEIVE_FROM_ISR_FAILED( pxQueue ) SEGGER_SYSVIEW_RecordU32x3(apiFastID_OFFSET + apiID_XQUEUERECEIVEFROMISR, SEGGER_SYSVIEW_ShrinkId((U32)pxQueue), SEGGER_SYSVIEW_ShrinkId((U32)pvBuffer), (U32)pxHigherPriorityTaskWoken)
#define traceQUEUE_REGISTRY_ADD( xQueue, pcQueueName ) SEGGER_SYSVIEW_RecordU32x2(apiFastID_OFFSET + apiID_VQUEUEADDTOREGISTRY, SEGGER_SYSVIEW_ShrinkId((U32)xQueue), (U32)pcQueueName)
#if ( configUSE_QUEUE_SETS != 1 )
#define traceQUEUE_SEND( pxQueue ) SYSVIEW_RecordU32x4(apiFastID_OFFSET + apiID_XQUEUEGENERICSEND, SEGGER_SYSVIEW_ShrinkId((U32)pxQueue), (U32)pvItemToQueue, xTicksToWait, xCopyPosition)
#else
#define traceQUEUE_SEND( pxQueue ) SYSVIEW_RecordU32x4(apiFastID_OFFSET + apiID_XQUEUEGENERICSEND, SEGGER_SYSVIEW_ShrinkId((U32)pxQueue), 0, 0, xCopyPosition)
#endif
#define traceQUEUE_SEND_FAILED( pxQueue ) SYSVIEW_RecordU32x4(apiFastID_OFFSET + apiID_XQUEUEGENERICSEND, SEGGER_SYSVIEW_ShrinkId((U32)pxQueue), (U32)pvItemToQueue, xTicksToWait, xCopyPosition)
#define traceQUEUE_SEND_FROM_ISR( pxQueue ) SEGGER_SYSVIEW_RecordU32x2(apiFastID_OFFSET + apiID_XQUEUEGENERICSENDFROMISR, SEGGER_SYSVIEW_ShrinkId((U32)pxQueue), (U32)pxHigherPriorityTaskWoken)
#define traceQUEUE_SEND_FROM_ISR_FAILED( pxQueue ) SEGGER_SYSVIEW_RecordU32x2(apiFastID_OFFSET + apiID_XQUEUEGENERICSENDFROMISR, SEGGER_SYSVIEW_ShrinkId((U32)pxQueue), (U32)pxHigherPriorityTaskWoken)
#if( portSTACK_GROWTH < 0 )
#define traceTASK_CREATE(pxNewTCB) if (pxNewTCB != NULL) { \
SEGGER_SYSVIEW_OnTaskCreate((U32)pxNewTCB); \
SYSVIEW_AddTask((U32)pxNewTCB, \
&(pxNewTCB->pcTaskName[0]), \
pxNewTCB->uxPriority, \
(U32)pxNewTCB->pxStack, \
((U32)pxNewTCB->pxTopOfStack - (U32)pxNewTCB->pxStack) \
); \
}
#else
#define traceTASK_CREATE(pxNewTCB) if (pxNewTCB != NULL) { \
SEGGER_SYSVIEW_OnTaskCreate((U32)pxNewTCB); \
SYSVIEW_AddTask((U32)pxNewTCB, \
&(pxNewTCB->pcTaskName[0]), \
pxNewTCB->uxPriority, \
(U32)pxNewTCB->pxStack, \
(U32)(pxNewTCB->pxStack-pxNewTCB->pxTopOfStack) \
); \
}
#endif
#define traceTASK_PRIORITY_SET(pxTask, uxNewPriority) { \
SEGGER_SYSVIEW_RecordU32x2(apiFastID_OFFSET+apiID_VTASKPRIORITYSET, \
SEGGER_SYSVIEW_ShrinkId((U32)pxTCB), \
uxNewPriority \
); \
SYSVIEW_UpdateTask((U32)pxTask, \
&(pxTask->pcTaskName[0]), \
uxNewPriority, \
(U32)pxTask->pxStack, \
0 \
); \
}
//
// Define INCLUDE_xTaskGetIdleTaskHandle as 1 in FreeRTOSConfig.h to allow identification of Idle state.
//
#if ( INCLUDE_xTaskGetIdleTaskHandle == 1 )
#define traceTASK_SWITCHED_IN() if(prvGetTCBFromHandle(NULL) == xTaskGetIdleTaskHandle()) { \
SEGGER_SYSVIEW_OnIdle(); \
} else { \
SEGGER_SYSVIEW_OnTaskStartExec((U32)pxCurrentTCB[xPortGetCoreID()]); \
}
#else
#define traceTASK_SWITCHED_IN() { \
if (memcmp(pxCurrentTCB[xPortGetCoreID()]->pcTaskName, "IDLE", 5) != 0) { \
SEGGER_SYSVIEW_OnTaskStartExec((U32)pxCurrentTCB[xPortGetCoreID()]); \
} else { \
SEGGER_SYSVIEW_OnIdle(); \
} \
}
#endif
#define traceMOVED_TASK_TO_READY_STATE(pxTCB) SEGGER_SYSVIEW_OnTaskStartReady((U32)pxTCB)
#define traceREADDED_TASK_TO_READY_STATE(pxTCB)
#define traceMOVED_TASK_TO_DELAYED_LIST() SEGGER_SYSVIEW_OnTaskStopReady((U32)pxCurrentTCB[xPortGetCoreID()], (1u << 2))
#define traceMOVED_TASK_TO_OVERFLOW_DELAYED_LIST() SEGGER_SYSVIEW_OnTaskStopReady((U32)pxCurrentTCB[xPortGetCoreID()], (1u << 2))
#define traceMOVED_TASK_TO_SUSPENDED_LIST(pxTCB) SEGGER_SYSVIEW_OnTaskStopReady((U32)pxTCB, ((3u << 3) | 3))
#define traceISR_EXIT_TO_SCHEDULER() SEGGER_SYSVIEW_RecordExitISRToScheduler()
#define traceISR_EXIT() SEGGER_SYSVIEW_RecordExitISR()
#define traceISR_ENTER(_n_) SEGGER_SYSVIEW_RecordEnterISR(_n_)
/*********************************************************************
*
* API functions
*
**********************************************************************
*/
#ifdef __cplusplus
extern "C" {
#endif
void SYSVIEW_AddTask (U32 xHandle, const char* pcTaskName, unsigned uxCurrentPriority, U32 pxStack, unsigned uStackHighWaterMark);
void SYSVIEW_UpdateTask (U32 xHandle, const char* pcTaskName, unsigned uxCurrentPriority, U32 pxStack, unsigned uStackHighWaterMark);
void SYSVIEW_DeleteTask (U32 xHandle);
void SYSVIEW_SendTaskInfo (U32 TaskID, const char* sName, unsigned Prio, U32 StackBase, unsigned StackSize);
void SYSVIEW_RecordU32x4 (unsigned Id, U32 Para0, U32 Para1, U32 Para2, U32 Para3);
void SYSVIEW_RecordU32x5 (unsigned Id, U32 Para0, U32 Para1, U32 Para2, U32 Para3, U32 Para4);
#ifdef __cplusplus
}
#endif
#endif
/*************************** End of file ****************************/

View File

@ -0,0 +1,215 @@
// Copyright 2017 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include "string.h"
#include "freertos/FreeRTOS.h"
#include "SEGGER_RTT.h"
#include "SEGGER_SYSVIEW.h"
#include "rom/ets_sys.h"
#include "esp_app_trace.h"
#include "esp_log.h"
const static char *TAG = "segger_rtt";
#define SYSVIEW_EVENTS_BUF_SZ 255U
// size of down channel data buf
#define SYSVIEW_DOWN_BUF_SIZE 32
#define SEGGER_HOST_WAIT_TMO 500 //us
#define SEGGER_STOP_WAIT_TMO 1000000 //us
static uint8_t s_events_buf[SYSVIEW_EVENTS_BUF_SZ];
static uint16_t s_events_buf_filled;
static uint8_t s_down_buf[SYSVIEW_DOWN_BUF_SIZE];
/*********************************************************************
*
* Public code
*
**********************************************************************
*/
/*********************************************************************
*
* SEGGER_RTT_ESP32_FlushNoLock()
*
* Function description
* Flushes buffered events.
*
* Parameters
* min_sz Threshold for flushing data. If current filling level is above this value, data will be flushed. TRAX destinations only.
* tmo Timeout for operation (in us). Use ESP_APPTRACE_TMO_INFINITE to wait indefinetly.
*
* Return value
* None.
*/
void SEGGER_RTT_ESP32_FlushNoLock(unsigned long min_sz, unsigned long tmo)
{
esp_err_t res = esp_apptrace_write(ESP_APPTRACE_DEST_TRAX, s_events_buf, s_events_buf_filled, tmo);
if (res != ESP_OK) {
ESP_LOGE(TAG, "Failed to flush buffered events (%d)!\n", res);
}
// flush even if we failed to write buffered events, because no new events will be sent after STOP
res = esp_apptrace_flush_nolock(ESP_APPTRACE_DEST_TRAX, min_sz, tmo);
if (res != ESP_OK) {
ESP_LOGE(TAG, "Failed to flush apptrace data (%d)!\n", res);
}
s_events_buf_filled = 0;
}
/*********************************************************************
*
* SEGGER_RTT_ReadNoLock()
*
* Function description
* Reads characters from SEGGER real-time-terminal control block
* which have been previously stored by the host.
* Do not lock against interrupts and multiple access.
*
* Parameters
* BufferIndex Index of Down-buffer to be used (e.g. 0 for "Terminal").
* pBuffer Pointer to buffer provided by target application, to copy characters from RTT-down-buffer to.
* BufferSize Size of the target application buffer.
*
* Return value
* Number of bytes that have been read.
*/
unsigned SEGGER_RTT_ReadNoLock(unsigned BufferIndex, void* pData, unsigned BufferSize) {
uint32_t size = BufferSize;
esp_err_t res = esp_apptrace_read(ESP_APPTRACE_DEST_TRAX, pData, &size, 0);
if (res != ESP_OK) {
return 0;
}
return size;
}
/*********************************************************************
*
* SEGGER_RTT_WriteSkipNoLock
*
* Function description
* Stores a specified number of characters in SEGGER RTT
* control block which is then read by the host.
* SEGGER_RTT_WriteSkipNoLock does not lock the application and
* skips all data, if the data does not fit into the buffer.
*
* Parameters
* BufferIndex Index of "Up"-buffer to be used (e.g. 0 for "Terminal").
* pBuffer Pointer to character array. Does not need to point to a \0 terminated string.
* NumBytes Number of bytes to be stored in the SEGGER RTT control block.
*
* Return value
* Number of bytes which have been stored in the "Up"-buffer.
*
* Notes
* (1) If there is not enough space in the "Up"-buffer, all data is dropped.
* (2) For performance reasons this function does not call Init()
* and may only be called after RTT has been initialized.
* Either by calling SEGGER_RTT_Init() or calling another RTT API function first.
*/
unsigned SEGGER_RTT_WriteSkipNoLock(unsigned BufferIndex, const void* pBuffer, unsigned NumBytes) {
uint8_t *pbuf = (uint8_t *)pBuffer;
uint8_t event_id = *pbuf;
if (NumBytes > SYSVIEW_EVENTS_BUF_SZ) {
ESP_LOGE(TAG, "Too large event %u bytes!", NumBytes);
return 0;
}
if (xPortGetCoreID()) { // dual core specific code
// use the highest - 1 bit of event ID to indicate core ID
// the highest bit can not be used due to event ID encoding method
// this reduces supported ID range to [0..63] (for 1 byte IDs) plus [128..16383] (for 2 bytes IDs)
if (*pbuf & 0x80) { // 2 bytes ID
*(pbuf + 1) |= (1 << 6);
} else if (NumBytes != 10 || *pbuf != 0) { // ignore sync sequence
*pbuf |= (1 << 6);
}
}
if (s_events_buf_filled + NumBytes > SYSVIEW_EVENTS_BUF_SZ) {
esp_err_t res = esp_apptrace_write(ESP_APPTRACE_DEST_TRAX, s_events_buf, s_events_buf_filled, SEGGER_HOST_WAIT_TMO);
if (res != ESP_OK) {
return 0; // skip current data buffer only, accumulated events are kept
}
s_events_buf_filled = 0;
}
memcpy(&s_events_buf[s_events_buf_filled], pBuffer, NumBytes);
s_events_buf_filled += NumBytes;
if (event_id == SYSVIEW_EVTID_TRACE_STOP) {
SEGGER_RTT_ESP32_FlushNoLock(0, SEGGER_STOP_WAIT_TMO);
}
return NumBytes;
}
/*********************************************************************
*
* SEGGER_RTT_ConfigUpBuffer
*
* Function description
* Run-time configuration of a specific up-buffer (T->H).
* Buffer to be configured is specified by index.
* This includes: Buffer address, size, name, flags, ...
*
* Parameters
* BufferIndex Index of the buffer to configure.
* sName Pointer to a constant name string.
* pBuffer Pointer to a buffer to be used.
* BufferSize Size of the buffer.
* Flags Operating modes. Define behavior if buffer is full (not enough space for entire message).
*
* Return value
* >= 0 - O.K.
* < 0 - Error
*
* Additional information
* Buffer 0 is configured on compile-time.
* May only be called once per buffer.
* Buffer name and flags can be reconfigured using the appropriate functions.
*/
int SEGGER_RTT_ConfigUpBuffer(unsigned BufferIndex, const char* sName, void* pBuffer, unsigned BufferSize, unsigned Flags) {
s_events_buf_filled = 0;
return 0;
}
/*********************************************************************
*
* SEGGER_RTT_ConfigDownBuffer
*
* Function description
* Run-time configuration of a specific down-buffer (H->T).
* Buffer to be configured is specified by index.
* This includes: Buffer address, size, name, flags, ...
*
* Parameters
* BufferIndex Index of the buffer to configure.
* sName Pointer to a constant name string.
* pBuffer Pointer to a buffer to be used.
* BufferSize Size of the buffer.
* Flags Operating modes. Define behavior if buffer is full (not enough space for entire message).
*
* Return value
* >= 0 O.K.
* < 0 Error
*
* Additional information
* Buffer 0 is configured on compile-time.
* May only be called once per buffer.
* Buffer name and flags can be reconfigured using the appropriate functions.
*/
int SEGGER_RTT_ConfigDownBuffer(unsigned BufferIndex, const char* sName, void* pBuffer, unsigned BufferSize, unsigned Flags) {
esp_apptrace_down_buffer_config(s_down_buf, sizeof(s_down_buf));
return 0;
}
/*************************** End of file ****************************/

View File

@ -0,0 +1,6 @@
set(COMPONENT_SRCDIRS ".")
set(COMPONENT_ADD_INCLUDEDIRS ".")
set(COMPONENT_REQUIRES unity)
register_component()

View File

@ -0,0 +1,5 @@
#
#Component Makefile
#
COMPONENT_ADD_LDFLAGS = -Wl,--whole-archive -l$(COMPONENT_NAME) -Wl,--no-whole-archive

View File

@ -5,11 +5,13 @@
#include <stdarg.h>
#include "unity.h"
#include "driver/timer.h"
#include "soc/cpu.h"
#include "freertos/FreeRTOS.h"
#include "freertos/semphr.h"
#include "freertos/task.h"
#if CONFIG_ESP32_APPTRACE_ENABLE == 1
#include "esp_app_trace.h"
#include "esp_app_trace_util.h"
#define ESP_APPTRACE_TEST_USE_PRINT_LOCK 0
#define ESP_APPTRACE_TEST_PRN_WRERR_MAX 5
@ -57,11 +59,33 @@ const static char *TAG = "esp_apptrace_test";
#define ESP_APPTRACE_TEST_LOGV( format, ... ) ESP_APPTRACE_TEST_LOG_LEVEL(V, ESP_LOG_VERBOSE, format, ##__VA_ARGS__)
#define ESP_APPTRACE_TEST_LOGO( format, ... ) ESP_APPTRACE_TEST_LOG_LEVEL(E, ESP_LOG_NONE, format, ##__VA_ARGS__)
#define ESP_APPTRACE_TEST_WRITE(_b_, _s_) esp_apptrace_write(ESP_APPTRACE_DEST_TRAX, _b_, _s_, ESP_APPTRACE_TMO_INFINITE)
#define ESP_APPTRACE_TEST_WRITE_FROM_ISR(_b_, _s_) esp_apptrace_write(ESP_APPTRACE_DEST_TRAX, _b_, _s_, 100UL)
#define ESP_APPTRACE_TEST_WRITE_NOWAIT(_b_, _s_) esp_apptrace_write(ESP_APPTRACE_DEST_TRAX, _b_, _s_, 0)
static void esp_apptrace_test_timer_init(int timer_group, int timer_idx, uint32_t period)
{
timer_config_t config;
uint64_t alarm_val = (period * (TIMER_BASE_CLK / 1000000UL)) / 2;
#define ESP_APPTRACE_TEST_CPUTICKS2US(_t_) ((_t_)/(XT_CLOCK_FREQ/1000000))
config.alarm_en = 1;
config.auto_reload = 1;
config.counter_dir = TIMER_COUNT_UP;
config.divider = 2; //Range is 2 to 65536
config.intr_type = TIMER_INTR_LEVEL;
config.counter_en = TIMER_PAUSE;
/*Configure timer*/
timer_init(timer_group, timer_idx, &config);
/*Stop timer counter*/
timer_pause(timer_group, timer_idx);
/*Load counter value */
timer_set_counter_value(timer_group, timer_idx, 0x00000000ULL);
/*Set alarm value*/
timer_set_alarm_value(timer_group, timer_idx, alarm_val);
/*Enable timer interrupt*/
timer_enable_intr(timer_group, timer_idx);
}
#if CONFIG_SYSVIEW_ENABLE == 0
#define ESP_APPTRACE_TEST_WRITE(_b_, _s_) esp_apptrace_write(ESP_APPTRACE_DEST_TRAX, _b_, _s_, ESP_APPTRACE_TMO_INFINITE)
#define ESP_APPTRACE_TEST_WRITE_FROM_ISR(_b_, _s_) esp_apptrace_write(ESP_APPTRACE_DEST_TRAX, _b_, _s_, 0UL)
#define ESP_APPTRACE_TEST_WRITE_NOWAIT(_b_, _s_) esp_apptrace_write(ESP_APPTRACE_DEST_TRAX, _b_, _s_, 0)
typedef struct {
uint8_t *buf;
@ -103,29 +127,6 @@ static SemaphoreHandle_t s_print_lock;
static uint64_t esp_apptrace_test_ts_get();
static void esp_apptrace_test_timer_init(int timer_group, int timer_idx, uint32_t period)
{
timer_config_t config;
uint64_t alarm_val = (period * (TIMER_BASE_CLK / 1000000UL)) / 2;
config.alarm_en = 1;
config.auto_reload = 1;
config.counter_dir = TIMER_COUNT_UP;
config.divider = 1;
config.intr_type = TIMER_INTR_LEVEL;
config.counter_en = TIMER_PAUSE;
/*Configure timer*/
timer_init(timer_group, timer_idx, &config);
/*Stop timer counter*/
timer_pause(timer_group, timer_idx);
/*Load counter value */
timer_set_counter_value(timer_group, timer_idx, 0x00000000ULL);
/*Set alarm value*/
timer_set_alarm_value(timer_group, timer_idx, alarm_val);
/*Enable timer interrupt*/
timer_enable_intr(timer_group, timer_idx);
}
static void esp_apptrace_test_timer_isr(void *arg)
{
esp_apptrace_test_timer_arg_t *tim_arg = (esp_apptrace_test_timer_arg_t *)arg;
@ -309,13 +310,14 @@ static void esp_apptrace_test_task(void *p)
uint32_t *ts = (uint32_t *)(arg->data.buf + sizeof(uint32_t));
*ts = (uint32_t)esp_apptrace_test_ts_get();
memset(arg->data.buf + 2 * sizeof(uint32_t), arg->data.wr_cnt & arg->data.mask, arg->data.buf_sz - 2 * sizeof(uint32_t));
// ESP_APPTRACE_TEST_LOGD("%x:%x: Write chunk%d %d bytes, %x", xTaskGetCurrentTaskHandle(), *ts, arg->data.wr_cnt, arg->data.buf_sz, arg->data.wr_cnt & arg->data.mask);
if (arg->nowait) {
res = ESP_APPTRACE_TEST_WRITE_NOWAIT(arg->data.buf, arg->data.buf_sz);
} else {
res = ESP_APPTRACE_TEST_WRITE(arg->data.buf, arg->data.buf_sz);
}
if (res) {
if (arg->data.wr_err++ < ESP_APPTRACE_TEST_PRN_WRERR_MAX) {
if (1){//arg->data.wr_err++ < ESP_APPTRACE_TEST_PRN_WRERR_MAX) {
ESP_APPTRACE_TEST_LOGE("%x: Failed to write trace %d %x!", xTaskGetCurrentTaskHandle(), res, arg->data.wr_cnt & arg->data.mask);
if (arg->data.wr_err == ESP_APPTRACE_TEST_PRN_WRERR_MAX) {
ESP_APPTRACE_TEST_LOGE("\n");
@ -401,7 +403,7 @@ static void esp_apptrace_test_ts_init(int timer_group, int timer_idx)
config.alarm_en = 0;
config.auto_reload = 0;
config.counter_dir = TIMER_COUNT_UP;
config.divider = 1;
config.divider = 2; //Range is 2 to 65536
config.counter_en = 0;
/*Configure timer*/
timer_init(timer_group, timer_idx, &config);
@ -418,7 +420,7 @@ static void esp_apptrace_test_ts_cleanup()
config.alarm_en = 0;
config.auto_reload = 0;
config.counter_dir = TIMER_COUNT_UP;
config.divider = 1;
config.divider = 2; //Range is 2 to 65536
config.counter_en = 0;
/*Configure timer*/
timer_init(s_ts_timer_group, s_ts_timer_idx, &config);
@ -490,8 +492,9 @@ static void esp_apptrace_test(esp_apptrace_test_cfg_t *test_cfg)
ESP_APPTRACE_TEST_LOGI("Created task %x", thnd);
}
xTaskCreatePinnedToCore(esp_apptrace_dummy_task, "dummy0", 2048, &dummy_task_arg[0], dummy_task_arg[0].prio, NULL, 0);
#if CONFIG_FREERTOS_UNICORE == 0
xTaskCreatePinnedToCore(esp_apptrace_dummy_task, "dummy1", 2048, &dummy_task_arg[0], dummy_task_arg[0].prio, NULL, 1);
#endif
for (int i = 0; i < test_cfg->tasks_num; i++) {
//arg1.stop = 1;
xSemaphoreTake(test_cfg->tasks[i].done, portMAX_DELAY);
@ -567,6 +570,7 @@ TEST_CASE("App trace test (1 crashed task)", "[trace][ignore]")
esp_apptrace_test(&test_cfg);
}
#if CONFIG_FREERTOS_UNICORE == 0
TEST_CASE("App trace test (2 tasks + 1 timer @ each core", "[trace][ignore]")
{
int ntask = 0;
@ -628,9 +632,9 @@ TEST_CASE("App trace test (2 tasks + 1 timer @ each core", "[trace][ignore]")
s_test_tasks[ntask].timers_num = 0;
s_test_tasks[ntask].timers = NULL;
ntask++;
esp_apptrace_test(&test_cfg);
}
#endif
TEST_CASE("App trace test (1 task + 1 timer @ 1 core)", "[trace][ignore]")
{
@ -661,6 +665,7 @@ TEST_CASE("App trace test (1 task + 1 timer @ 1 core)", "[trace][ignore]")
esp_apptrace_test(&test_cfg);
}
#if CONFIG_FREERTOS_UNICORE == 0
TEST_CASE("App trace test (2 tasks (nowait): 1 @ each core)", "[trace][ignore]")
{
esp_apptrace_test_cfg_t test_cfg = {
@ -722,6 +727,7 @@ TEST_CASE("App trace test (2 tasks: 1 @ each core)", "[trace][ignore]")
esp_apptrace_test(&test_cfg);
}
#endif
TEST_CASE("App trace test (1 task)", "[trace][ignore]")
{
@ -732,7 +738,7 @@ TEST_CASE("App trace test (1 task)", "[trace][ignore]")
memset(s_test_tasks, 0, sizeof(s_test_tasks));
s_test_tasks[0].core = 1;
s_test_tasks[0].core = 0;
s_test_tasks[0].prio = 3;
s_test_tasks[0].task_func = esp_apptrace_test_task;
s_test_tasks[0].data.buf = s_bufs[0];
@ -759,6 +765,7 @@ static int esp_logtrace_printf(const char *fmt, ...)
typedef struct {
SemaphoreHandle_t done;
uint32_t work_count;
} esp_logtrace_task_t;
static void esp_logtrace_task(void *p)
@ -793,7 +800,7 @@ static void esp_logtrace_task(void *p)
vTaskDelete(NULL);
}
TEST_CASE("Log trace test (1 task)", "[trace][ignore]")
TEST_CASE("Log trace test (2 tasks)", "[trace][ignore]")
{
TaskHandle_t thnd;
@ -806,7 +813,11 @@ TEST_CASE("Log trace test (1 task)", "[trace][ignore]")
xTaskCreatePinnedToCore(esp_logtrace_task, "logtrace0", 2048, &arg1, 3, &thnd, 0);
ESP_APPTRACE_TEST_LOGI("Created task %x", thnd);
#if CONFIG_FREERTOS_UNICORE == 0
xTaskCreatePinnedToCore(esp_logtrace_task, "logtrace1", 2048, &arg2, 3, &thnd, 1);
#else
xTaskCreatePinnedToCore(esp_logtrace_task, "logtrace1", 2048, &arg2, 3, &thnd, 0);
#endif
ESP_APPTRACE_TEST_LOGI("Created task %x", thnd);
xSemaphoreTake(arg1.done, portMAX_DELAY);
@ -814,4 +825,234 @@ TEST_CASE("Log trace test (1 task)", "[trace][ignore]")
xSemaphoreTake(arg2.done, portMAX_DELAY);
vSemaphoreDelete(arg2.done);
}
#else
typedef struct {
int group;
int timer;
int flags;
uint32_t id;
} esp_sysviewtrace_timer_arg_t;
typedef struct {
SemaphoreHandle_t done;
SemaphoreHandle_t *sync;
esp_sysviewtrace_timer_arg_t *timer;
uint32_t work_count;
uint32_t sleep_tmo;
uint32_t id;
} esp_sysviewtrace_task_arg_t;
static void esp_sysview_test_timer_isr(void *arg)
{
esp_sysviewtrace_timer_arg_t *tim_arg = (esp_sysviewtrace_timer_arg_t *)arg;
//ESP_APPTRACE_TEST_LOGI("tim-%d: IRQ %d/%d\n", tim_arg->id, tim_arg->group, tim_arg->timer);
if (tim_arg->group == 0) {
if (tim_arg->timer == 0) {
TIMERG0.int_clr_timers.t0 = 1;
TIMERG0.hw_timer[0].update = 1;
TIMERG0.hw_timer[0].config.alarm_en = 1;
} else {
TIMERG0.int_clr_timers.t1 = 1;
TIMERG0.hw_timer[1].update = 1;
TIMERG0.hw_timer[1].config.alarm_en = 1;
}
}
if (tim_arg->group == 1) {
if (tim_arg->timer == 0) {
TIMERG1.int_clr_timers.t0 = 1;
TIMERG1.hw_timer[0].update = 1;
TIMERG1.hw_timer[0].config.alarm_en = 1;
} else {
TIMERG1.int_clr_timers.t1 = 1;
TIMERG1.hw_timer[1].update = 1;
TIMERG1.hw_timer[1].config.alarm_en = 1;
}
}
}
static void esp_sysviewtrace_test_task(void *p)
{
esp_sysviewtrace_task_arg_t *arg = (esp_sysviewtrace_task_arg_t *) p;
volatile uint32_t tmp = 0;
timer_isr_handle_t inth;
printf("%x: run sysview task\n", (uint32_t)xTaskGetCurrentTaskHandle());
if (arg->timer) {
esp_err_t res = timer_isr_register(arg->timer->group, arg->timer->timer, esp_sysview_test_timer_isr, arg->timer, arg->timer->flags, &inth);
if (res != ESP_OK) {
printf("%x: failed to register timer ISR\n", (uint32_t)xTaskGetCurrentTaskHandle());
}
else {
res = timer_start(arg->timer->group, arg->timer->timer);
if (res != ESP_OK) {
printf("%x: failed to start timer\n", (uint32_t)xTaskGetCurrentTaskHandle());
}
}
}
int i = 0;
while (1) {
static uint32_t count;
printf("%d", arg->id);
if((++count % 80) == 0)
printf("\n");
if (arg->sync) {
xSemaphoreTake(*arg->sync, portMAX_DELAY);
}
for (uint32_t k = 0; k < arg->work_count; k++) {
tmp++;
}
vTaskDelay(arg->sleep_tmo/portTICK_PERIOD_MS);
i++;
if (arg->sync) {
xSemaphoreGive(*arg->sync);
}
}
ESP_APPTRACE_TEST_LOGI("%x: finished", xTaskGetCurrentTaskHandle());
xSemaphoreGive(arg->done);
vTaskDelay(1);
vTaskDelete(NULL);
}
TEST_CASE("SysView trace test 1", "[trace][ignore]")
{
TaskHandle_t thnd;
esp_sysviewtrace_timer_arg_t tim_arg1 = {
.group = TIMER_GROUP_1,
.timer = TIMER_1,
.flags = ESP_INTR_FLAG_SHARED,
.id = 0,
};
esp_sysviewtrace_task_arg_t arg1 = {
.done = xSemaphoreCreateBinary(),
.sync = NULL,
.work_count = 10000,
.sleep_tmo = 1,
.timer = &tim_arg1,
.id = 0,
};
esp_sysviewtrace_timer_arg_t tim_arg2 = {
.group = TIMER_GROUP_1,
.timer = TIMER_0,
.flags = 0,
.id = 1,
};
esp_sysviewtrace_task_arg_t arg2 = {
.done = xSemaphoreCreateBinary(),
.sync = NULL,
.work_count = 10000,
.sleep_tmo = 1,
.timer = &tim_arg2,
.id = 1,
};
esp_apptrace_test_timer_init(TIMER_GROUP_1, TIMER_1, 500);
esp_apptrace_test_timer_init(TIMER_GROUP_1, TIMER_0, 100);
xTaskCreatePinnedToCore(esp_sysviewtrace_test_task, "svtrace0", 2048, &arg1, 3, &thnd, 0);
ESP_APPTRACE_TEST_LOGI("Created task %x", thnd);
#if CONFIG_FREERTOS_UNICORE == 0
xTaskCreatePinnedToCore(esp_sysviewtrace_test_task, "svtrace1", 2048, &arg2, 5, &thnd, 1);
#else
xTaskCreatePinnedToCore(esp_sysviewtrace_test_task, "svtrace1", 2048, &arg2, 5, &thnd, 0);
#endif
ESP_APPTRACE_TEST_LOGI("Created task %x", thnd);
xSemaphoreTake(arg1.done, portMAX_DELAY);
vSemaphoreDelete(arg1.done);
xSemaphoreTake(arg2.done, portMAX_DELAY);
vSemaphoreDelete(arg2.done);
}
TEST_CASE("SysView trace test 2", "[trace][ignore]")
{
TaskHandle_t thnd;
esp_sysviewtrace_timer_arg_t tim_arg1 = {
.group = TIMER_GROUP_1,
.timer = TIMER_1,
.flags = ESP_INTR_FLAG_SHARED,
.id = 0,
};
esp_sysviewtrace_task_arg_t arg1 = {
.done = xSemaphoreCreateBinary(),
.sync = NULL,
.work_count = 10000,
.sleep_tmo = 1,
.timer = &tim_arg1,
.id = 0,
};
esp_sysviewtrace_timer_arg_t tim_arg2 = {
.group = TIMER_GROUP_1,
.timer = TIMER_0,
.flags = 0,
.id = 1,
};
esp_sysviewtrace_task_arg_t arg2 = {
.done = xSemaphoreCreateBinary(),
.sync = NULL,
.work_count = 10000,
.sleep_tmo = 1,
.timer = &tim_arg2,
.id = 1,
};
SemaphoreHandle_t test_sync = xSemaphoreCreateBinary();
xSemaphoreGive(test_sync);
esp_sysviewtrace_task_arg_t arg3 = {
.done = xSemaphoreCreateBinary(),
.sync = &test_sync,
.work_count = 1000,
.sleep_tmo = 1,
.timer = NULL,
.id = 2,
};
esp_sysviewtrace_task_arg_t arg4 = {
.done = xSemaphoreCreateBinary(),
.sync = &test_sync,
.work_count = 10000,
.sleep_tmo = 1,
.timer = NULL,
.id = 3,
};
esp_apptrace_test_timer_init(TIMER_GROUP_1, TIMER_1, 500);
esp_apptrace_test_timer_init(TIMER_GROUP_1, TIMER_0, 100);
xTaskCreatePinnedToCore(esp_sysviewtrace_test_task, "svtrace0", 2048, &arg1, 3, &thnd, 0);
printf("Created task %x\n", (uint32_t)thnd);
#if CONFIG_FREERTOS_UNICORE == 0
xTaskCreatePinnedToCore(esp_sysviewtrace_test_task, "svtrace1", 2048, &arg2, 4, &thnd, 1);
#else
xTaskCreatePinnedToCore(esp_sysviewtrace_test_task, "svtrace1", 2048, &arg2, 4, &thnd, 0);
#endif
printf("Created task %x\n", (uint32_t)thnd);
xTaskCreatePinnedToCore(esp_sysviewtrace_test_task, "svsync0", 2048, &arg3, 3, &thnd, 0);
printf("Created task %x\n", (uint32_t)thnd);
#if CONFIG_FREERTOS_UNICORE == 0
xTaskCreatePinnedToCore(esp_sysviewtrace_test_task, "svsync1", 2048, &arg4, 5, &thnd, 1);
#else
xTaskCreatePinnedToCore(esp_sysviewtrace_test_task, "svsync1", 2048, &arg4, 5, &thnd, 0);
#endif
printf("Created task %x\n", (uint32_t)thnd);
xSemaphoreTake(arg1.done, portMAX_DELAY);
vSemaphoreDelete(arg1.done);
xSemaphoreTake(arg2.done, portMAX_DELAY);
vSemaphoreDelete(arg2.done);
xSemaphoreTake(arg3.done, portMAX_DELAY);
vSemaphoreDelete(arg3.done);
xSemaphoreTake(arg4.done, portMAX_DELAY);
vSemaphoreDelete(arg4.done);
vSemaphoreDelete(test_sync);
}
#endif
#endif

View File

@ -0,0 +1,40 @@
set(COMPONENT_SRCS "esp_ota_ops.c"
"esp_app_desc.c")
set(COMPONENT_ADD_INCLUDEDIRS "include")
set(COMPONENT_REQUIRES spi_flash partition_table bootloader_support)
register_component()
# esp_app_desc structure is added as an undefined symbol because otherwise the
# linker will ignore this structure as it has no other files depending on it.
target_link_libraries(${COMPONENT_TARGET} "-u esp_app_desc")
# cut PROJECT_VER and PROJECT_NAME to required 32 characters.
string(SUBSTRING "${PROJECT_VER}" 0 31 PROJECT_VER_CUT)
string(SUBSTRING "${PROJECT_NAME}" 0 31 PROJECT_NAME_CUT)
set_source_files_properties(
SOURCE "esp_app_desc.c"
PROPERTIES COMPILE_DEFINITIONS
"PROJECT_VER=\"${PROJECT_VER_CUT}\"; PROJECT_NAME=\"${PROJECT_NAME_CUT}\"")
# Add custom target for generating empty otadata partition for flashing
if(OTADATA_PARTITION_OFFSET AND OTADATA_PARTITION_SIZE)
add_custom_command(OUTPUT "${IDF_BUILD_ARTIFACTS_DIR}/${BLANK_OTADATA_FILE}"
COMMAND ${PYTHON} ${IDF_PATH}/components/partition_table/parttool.py
--partition-type data --partition-subtype ota -q
--partition-table-file ${PARTITION_CSV_PATH} generate_blank_partition_file
--output "${IDF_BUILD_ARTIFACTS_DIR}/${BLANK_OTADATA_FILE}")
add_custom_target(blank_ota_data ALL DEPENDS "${IDF_BUILD_ARTIFACTS_DIR}/${BLANK_OTADATA_FILE}")
add_dependencies(flash blank_ota_data)
endif()
set(otatool_py ${PYTHON} ${COMPONENT_PATH}/otatool.py)
add_custom_target(read_otadata DEPENDS "${PARTITION_CSV_PATH}"
COMMAND ${otatool_py} --partition-table-file ${PARTITION_CSV_PATH} read_otadata)
add_custom_target(erase_otadata DEPENDS "${PARTITION_CSV_PATH}"
COMMAND ${otatool_py} --partition-table-file ${PARTITION_CSV_PATH} erase_otadata)

View File

@ -0,0 +1,25 @@
menu "Application manager"
config APP_COMPILE_TIME_DATE
bool "Use time/date stamp for app"
default y
help
If set, then the app will be built with the current time/date stamp. It is stored in the app description
structure. If not set, time/date stamp will be excluded from app image. This can be useful for getting the
same binary image files made from the same source, but at different times.
config APP_EXCLUDE_PROJECT_VER_VAR
bool "Exclude PROJECT_VER from firmware image"
default n
help
The PROJECT_VER variable from the build system will not affect the firmware image.
This value will not be contained in the esp_app_desc structure.
config APP_EXCLUDE_PROJECT_NAME_VAR
bool "Exclude PROJECT_NAME from firmware image"
default n
help
The PROJECT_NAME variable from the build system will not affect the firmware image.
This value will not be contained in the esp_app_desc structure.
endmenu # "Application manager"

View File

@ -0,0 +1,42 @@
# Generate partition binary
#
.PHONY: blank_ota_data erase_otadata read_otadata
OTATOOL_PY := $(PYTHON) $(COMPONENT_PATH)/otatool.py
PARTTOOL_PY := $(PYTHON) $(IDF_PATH)/components/partition_table/parttool.py
# Generate blank partition file
BLANK_OTA_DATA_FILE = $(BUILD_DIR_BASE)/ota_data_initial.bin
$(BLANK_OTA_DATA_FILE): partition_table_get_info $(PARTITION_TABLE_BIN) | check_python_dependencies
$(shell if [ "$(OTA_DATA_OFFSET)" != "" ] && [ "$(OTA_DATA_SIZE)" != "" ]; then \
$(PARTTOOL_PY) --partition-type data --partition-subtype ota --partition-table-file $(PARTITION_TABLE_BIN) \
-q generate_blank_partition_file --output $(BLANK_OTA_DATA_FILE); \
fi; )
$(eval BLANK_OTA_DATA_FILE = $(shell if [ "$(OTA_DATA_OFFSET)" != "" ] && [ "$(OTA_DATA_SIZE)" != "" ]; then \
echo $(BLANK_OTA_DATA_FILE); else echo " "; fi) )
blank_ota_data: $(BLANK_OTA_DATA_FILE)
# If there is no otadata partition, both OTA_DATA_OFFSET and BLANK_OTA_DATA_FILE
# expand to empty values.
ESPTOOL_ALL_FLASH_ARGS += $(OTA_DATA_OFFSET) $(BLANK_OTA_DATA_FILE)
erase_otadata: $(PARTITION_TABLE_BIN) partition_table_get_info | check_python_dependencies
$(OTATOOL_PY) --partition-table-file $(PARTITION_TABLE_BIN) erase_otadata
read_otadata: $(PARTITION_TABLE_BIN) partition_table_get_info | check_python_dependencies
$(OTATOOL_PY) --partition-table-file $(PARTITION_TABLE_BIN) read_otadata
erase_ota: erase_otadata
@echo "WARNING: erase_ota is deprecated. Use erase_otadata instead."
all: blank_ota_data
flash: blank_ota_data
TMP_DEFINES := $(BUILD_DIR_BASE)/app_update/tmp_cppflags.txt
export TMP_DEFINES
clean:
rm -f $(BLANK_OTA_DATA_FILE)
rm -f $(TMP_DEFINES)

51
components/app_update/component.mk Executable file → Normal file
View File

@ -3,3 +3,54 @@
#
# (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.)
# esp_app_desc structure is added as an undefined symbol because otherwise the
# linker will ignore this structure as it has no other files depending on it.
COMPONENT_ADD_LDFLAGS += -u esp_app_desc
ifndef IS_BOOTLOADER_BUILD
GET_PROJECT_VER ?=
ifeq ("${PROJECT_VER}", "")
ifeq ("$(wildcard ${PROJECT_PATH}/version.txt)","")
GET_PROJECT_VER := $(shell cd ${PROJECT_PATH} && git describe --always --tags --dirty 2> /dev/null)
ifeq ("${GET_PROJECT_VER}", "")
GET_PROJECT_VER := "1"
$(info Project is not inside a git repository, will not use 'git describe' to determine PROJECT_VER.)
endif
else
# read from version.txt
GET_PROJECT_VER := $(shell cat ${PROJECT_PATH}/version.txt)
endif
endif
# If ``PROJECT_VER`` variable set in project Makefile file, its value will be used.
# Else, if the ``$PROJECT_PATH/version.txt`` exists, its contents will be used as ``PROJECT_VER``.
# Else, if the project is located inside a Git repository, the output of git describe will be used.
# Otherwise, ``PROJECT_VER`` will be "1".
ifeq ("${PROJECT_VER}", "")
PROJECT_VER:= $(GET_PROJECT_VER)
else
PROJECT_VER:= $(PROJECT_VER)
endif
# cut PROJECT_VER and PROJECT_NAME to required 32 characters.
PROJECT_VER_CUT := $(shell echo "$(PROJECT_VER)" | cut -c 1-31)
PROJECT_NAME_CUT := $(shell echo "$(PROJECT_NAME)" | cut -c 1-31)
$(info App "$(PROJECT_NAME_CUT)" version: $(PROJECT_VER_CUT))
NEW_DEFINES:= "$(PROJECT_VER_CUT) $(PROJECT_NAME_CUT) $(IDF_VER)"
ifeq ("$(wildcard ${TMP_DEFINES})","")
OLD_DEFINES:= ""
else
OLD_DEFINES:= "$(shell cat $(TMP_DEFINES))"
endif
# If NEW_DEFINES (PROJECT_VER, PROJECT_NAME) were changed then rebuild only esp_app_desc.
ifneq (${NEW_DEFINES}, ${OLD_DEFINES})
$(shell echo $(NEW_DEFINES) > $(TMP_DEFINES); rm -f esp_app_desc.o;)
endif
esp_app_desc.o: CPPFLAGS += -D PROJECT_VER=\""$(PROJECT_VER_CUT)"\" -D PROJECT_NAME=\""$(PROJECT_NAME_CUT)"\"
endif

View File

@ -0,0 +1,85 @@
// Copyright 2017-2018 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include <assert.h>
#include <sys/param.h>
#include "esp_ota_ops.h"
#include "esp_attr.h"
#include "sdkconfig.h"
// Application version info
const __attribute__((section(".rodata_desc"))) esp_app_desc_t esp_app_desc = {
.magic_word = ESP_APP_DESC_MAGIC_WORD,
#ifdef CONFIG_APP_EXCLUDE_PROJECT_VER_VAR
.version = "",
#else
.version = PROJECT_VER,
#endif
#ifdef CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR
.project_name = "",
#else
.project_name = PROJECT_NAME,
#endif
.idf_ver = IDF_VER,
#ifdef CONFIG_APP_SECURE_VERSION
.secure_version = CONFIG_APP_SECURE_VERSION,
#else
.secure_version = 0,
#endif
#ifdef CONFIG_APP_COMPILE_TIME_DATE
.time = __TIME__,
.date = __DATE__,
#else
.time = "",
.date = "",
#endif
};
#ifndef CONFIG_APP_EXCLUDE_PROJECT_VER_VAR
_Static_assert(sizeof(PROJECT_VER) <= sizeof(esp_app_desc.version), "PROJECT_VER is longer than version field in structure");
#endif
_Static_assert(sizeof(IDF_VER) <= sizeof(esp_app_desc.idf_ver), "IDF_VER is longer than idf_ver field in structure");
#ifndef CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR
_Static_assert(sizeof(PROJECT_NAME) <= sizeof(esp_app_desc.project_name), "PROJECT_NAME is longer than project_name field in structure");
#endif
const esp_app_desc_t *esp_ota_get_app_description(void)
{
return &esp_app_desc;
}
/* The following two functions may be called from the panic handler
* or core dump, hence IRAM_ATTR.
*/
static inline char IRAM_ATTR to_hex_digit(unsigned val)
{
return (val < 10) ? ('0' + val) : ('a' + val - 10);
}
int IRAM_ATTR esp_ota_get_app_elf_sha256(char* dst, size_t size)
{
size_t n = MIN((size - 1) / 2, sizeof(esp_app_desc.app_elf_sha256));
const uint8_t* src = esp_app_desc.app_elf_sha256;
for (size_t i = 0; i < n; ++i) {
dst[2*i] = to_hex_digit(src[i] >> 4);
dst[2*i + 1] = to_hex_digit(src[i] & 0xf);
}
dst[2*n] = 0;
return 2*n + 1;
}

View File

@ -28,6 +28,7 @@
#include "esp_image_format.h"
#include "esp_secure_boot.h"
#include "esp_flash_encrypt.h"
#include "esp_spi_flash.h"
#include "sdkconfig.h"
#include "esp_ota_ops.h"
@ -35,10 +36,13 @@
#include "rom/crc.h"
#include "soc/dport_reg.h"
#include "esp_log.h"
#include "esp_flash_data_types.h"
#include "bootloader_common.h"
#include "sys/param.h"
#include "esp_system.h"
#include "esp_efuse.h"
#define OTA_MAX(a,b) ((a) >= (b) ? (a) : (b))
#define OTA_MIN(a,b) ((a) <= (b) ? (a) : (b))
#define SUB_TYPE_ID(i) (i & 0x0F)
typedef struct ota_ops_entry_ {
@ -51,19 +55,10 @@ typedef struct ota_ops_entry_ {
LIST_ENTRY(ota_ops_entry_) entries;
} ota_ops_entry_t;
/* OTA selection structure (two copies in the OTA data partition.)
Size of 32 bytes is friendly to flash encryption */
typedef struct {
uint32_t ota_seq;
uint8_t seq_label[24];
uint32_t crc; /* CRC32 of ota_seq field only */
} ota_select;
static LIST_HEAD(ota_ops_entries_head, ota_ops_entry_) s_ota_ops_entries_head =
LIST_HEAD_INITIALIZER(s_ota_ops_entries_head);
static uint32_t s_ota_ops_last_handle = 0;
static ota_select s_ota_select[2];
const static char *TAG = "esp_ota_ops";
@ -76,6 +71,63 @@ static bool is_ota_partition(const esp_partition_t *p)
&& p->subtype < ESP_PARTITION_SUBTYPE_APP_OTA_MAX);
}
// Read otadata partition and fill array from two otadata structures.
// Also return pointer to otadata info partition.
static const esp_partition_t *read_otadata(esp_ota_select_entry_t *two_otadata)
{
const esp_partition_t *otadata_partition = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_OTA, NULL);
if (otadata_partition == NULL) {
ESP_LOGE(TAG, "not found otadata");
return NULL;
}
spi_flash_mmap_handle_t ota_data_map;
const void *result = NULL;
esp_err_t err = esp_partition_mmap(otadata_partition, 0, otadata_partition->size, SPI_FLASH_MMAP_DATA, &result, &ota_data_map);
if (err != ESP_OK) {
ESP_LOGE(TAG, "mmap otadata filed. Err=0x%8x", err);
return NULL;
} else {
memcpy(&two_otadata[0], result, sizeof(esp_ota_select_entry_t));
memcpy(&two_otadata[1], result + SPI_FLASH_SEC_SIZE, sizeof(esp_ota_select_entry_t));
spi_flash_munmap(ota_data_map);
}
return otadata_partition;
}
static esp_err_t image_validate(const esp_partition_t *partition, esp_image_load_mode_t load_mode)
{
esp_image_metadata_t data;
const esp_partition_pos_t part_pos = {
.offset = partition->address,
.size = partition->size,
};
if (esp_image_verify(load_mode, &part_pos, &data) != ESP_OK) {
return ESP_ERR_OTA_VALIDATE_FAILED;
}
#ifdef CONFIG_SECURE_SIGNED_ON_UPDATE
esp_err_t ret = esp_secure_boot_verify_signature(partition->address, data.image_len);
if (ret != ESP_OK) {
return ESP_ERR_OTA_VALIDATE_FAILED;
}
#endif
return ESP_OK;
}
static esp_ota_img_states_t set_new_state_otadata(void)
{
#ifdef CONFIG_APP_ROLLBACK_ENABLE
ESP_LOGD(TAG, "Monitoring the first boot of the app is enabled.");
return ESP_OTA_IMG_NEW;
#else
return ESP_OTA_IMG_UNDEFINED;
#endif
}
esp_err_t esp_ota_begin(const esp_partition_t *partition, size_t image_size, esp_ota_handle_t *out_handle)
{
ota_ops_entry_t *new_entry;
@ -94,10 +146,21 @@ esp_err_t esp_ota_begin(const esp_partition_t *partition, size_t image_size, esp
return ESP_ERR_INVALID_ARG;
}
if (partition == esp_ota_get_running_partition()) {
const esp_partition_t* running_partition = esp_ota_get_running_partition();
if (partition == running_partition) {
return ESP_ERR_OTA_PARTITION_CONFLICT;
}
#ifdef CONFIG_APP_ROLLBACK_ENABLE
esp_ota_img_states_t ota_state_running_part;
if (esp_ota_get_state_partition(running_partition, &ota_state_running_part) == ESP_OK) {
if (ota_state_running_part == ESP_OTA_IMG_PENDING_VERIFY) {
ESP_LOGE(TAG, "Running app has not confirmed state (ESP_OTA_IMG_PENDING_VERIFY)");
return ESP_ERR_OTA_ROLLBACK_INVALID_STATE;
}
}
#endif
// If input image size is 0 or OTA_SIZE_UNKNOWN, erase entire partition
if ((image_size == 0) || (image_size == OTA_SIZE_UNKNOWN)) {
ret = esp_partition_erase_range(partition, 0, partition->size);
@ -144,8 +207,7 @@ esp_err_t esp_ota_write(esp_ota_handle_t handle, const void *data, size_t size)
if (it->handle == handle) {
// must erase the partition before writing to it
assert(it->erased_size > 0 && "must erase the partition before writing to it");
if(it->wrote_size == 0 && size > 0 && data_bytes[0] != 0xE9) {
if (it->wrote_size == 0 && it->partial_bytes == 0 && size > 0 && data_bytes[0] != ESP_IMAGE_HEADER_MAGIC) {
ESP_LOGE(TAG, "OTA image has invalid magic byte (expected 0xE9, saw 0x%02x", data_bytes[0]);
return ESP_ERR_OTA_VALIDATE_FAILED;
}
@ -156,7 +218,7 @@ esp_err_t esp_ota_write(esp_ota_handle_t handle, const void *data, size_t size)
/* check if we have partially written data from earlier */
if (it->partial_bytes != 0) {
copy_len = OTA_MIN(16 - it->partial_bytes, size);
copy_len = MIN(16 - it->partial_bytes, size);
memcpy(it->partial_data + it->partial_bytes, data_bytes, copy_len);
it->partial_bytes += copy_len;
if (it->partial_bytes != 16) {
@ -191,14 +253,13 @@ esp_err_t esp_ota_write(esp_ota_handle_t handle, const void *data, size_t size)
}
//if go to here ,means don't find the handle
ESP_LOGE(TAG,"not found the handle")
ESP_LOGE(TAG,"not found the handle");
return ESP_ERR_INVALID_ARG;
}
esp_err_t esp_ota_end(esp_ota_handle_t handle)
{
ota_ops_entry_t *it;
size_t image_size;
esp_err_t ret = ESP_OK;
for (it = LIST_FIRST(&s_ota_ops_entries_head); it != NULL; it = LIST_NEXT(it, entries)) {
@ -230,18 +291,16 @@ esp_err_t esp_ota_end(esp_ota_handle_t handle)
it->partial_bytes = 0;
}
if (esp_image_basic_verify(it->part->address, true, &image_size) != ESP_OK) {
ret = ESP_ERR_OTA_VALIDATE_FAILED;
goto cleanup;
}
esp_image_metadata_t data;
const esp_partition_pos_t part_pos = {
.offset = it->part->address,
.size = it->part->size,
};
#ifdef CONFIG_SECURE_BOOT_ENABLED
ret = esp_secure_boot_verify_signature(it->part->address, image_size);
if (ret != ESP_OK) {
if (esp_image_verify(ESP_IMAGE_VERIFY, &part_pos, &data) != ESP_OK) {
ret = ESP_ERR_OTA_VALIDATE_FAILED;
goto cleanup;
}
#endif
cleanup:
LIST_REMOVE(it, entries);
@ -249,32 +308,20 @@ esp_err_t esp_ota_end(esp_ota_handle_t handle)
return ret;
}
static uint32_t ota_select_crc(const ota_select *s)
static esp_err_t rewrite_ota_seq(esp_ota_select_entry_t *two_otadata, uint32_t seq, uint8_t sec_id, const esp_partition_t *ota_data_partition)
{
return crc32_le(UINT32_MAX, (uint8_t *)&s->ota_seq, 4);
}
static bool ota_select_valid(const ota_select *s)
{
return s->ota_seq != UINT32_MAX && s->crc == ota_select_crc(s);
}
static esp_err_t rewrite_ota_seq(uint32_t seq, uint8_t sec_id, const esp_partition_t *ota_data_partition)
{
esp_err_t ret;
if (sec_id == 0 || sec_id == 1) {
s_ota_select[sec_id].ota_seq = seq;
s_ota_select[sec_id].crc = ota_select_crc(&s_ota_select[sec_id]);
ret = esp_partition_erase_range(ota_data_partition, sec_id * SPI_FLASH_SEC_SIZE, SPI_FLASH_SEC_SIZE);
if (ret != ESP_OK) {
return ret;
} else {
return esp_partition_write(ota_data_partition, SPI_FLASH_SEC_SIZE * sec_id, &s_ota_select[sec_id].ota_seq, sizeof(ota_select));
}
} else {
if (two_otadata == NULL || sec_id > 1) {
return ESP_ERR_INVALID_ARG;
}
two_otadata[sec_id].ota_seq = seq;
two_otadata[sec_id].crc = bootloader_common_ota_select_crc(&two_otadata[sec_id]);
esp_err_t ret = esp_partition_erase_range(ota_data_partition, sec_id * SPI_FLASH_SEC_SIZE, SPI_FLASH_SEC_SIZE);
if (ret != ESP_OK) {
return ret;
} else {
return esp_partition_write(ota_data_partition, SPI_FLASH_SEC_SIZE * sec_id, &two_otadata[sec_id], sizeof(esp_ota_select_entry_t));
}
}
static uint8_t get_ota_partition_count(void)
@ -289,185 +336,166 @@ static uint8_t get_ota_partition_count(void)
static esp_err_t esp_rewrite_ota_data(esp_partition_subtype_t subtype)
{
esp_err_t ret;
const esp_partition_t *find_partition = NULL;
uint16_t ota_app_count = 0;
uint32_t i = 0;
uint32_t seq;
static spi_flash_mmap_memory_t ota_data_map;
const void *result = NULL;
find_partition = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_OTA, NULL);
if (find_partition != NULL) {
ota_app_count = get_ota_partition_count();
//esp32_idf use two sector for store information about which partition is running
//it defined the two sector as ota data partition,two structure ota_select is saved in the two sector
//named data in first sector as s_ota_select[0], second sector data as s_ota_select[1]
//e.g.
//if s_ota_select[0].ota_seq == s_ota_select[1].ota_seq == 0xFFFFFFFF,means ota info partition is in init status
//so it will boot factory application(if there is),if there's no factory application,it will boot ota[0] application
//if s_ota_select[0].ota_seq != 0 and s_ota_select[1].ota_seq != 0,it will choose a max seq ,and get value of max_seq%max_ota_app_number
//and boot a subtype (mask 0x0F) value is (max_seq - 1)%max_ota_app_number,so if want switch to run ota[x],can use next formulas.
//for example, if s_ota_select[0].ota_seq = 4, s_ota_select[1].ota_seq = 5, and there are 8 ota application,
//current running is (5-1)%8 = 4,running ota[4],so if we want to switch to run ota[7],
//we should add s_ota_select[0].ota_seq (is 4) to 4 ,(8-1)%8=7,then it will boot ota[7]
//if A=(B - C)%D
//then B=(A + C)%D + D*n ,n= (0,1,2...)
//so current ota app sub type id is x , dest bin subtype is y,total ota app count is n
//seq will add (x + n*1 + 1 - seq)%n
if (SUB_TYPE_ID(subtype) >= ota_app_count) {
return ESP_ERR_INVALID_ARG;
}
ret = esp_partition_mmap(find_partition, 0, find_partition->size, SPI_FLASH_MMAP_DATA, &result, &ota_data_map);
if (ret != ESP_OK) {
result = NULL;
return ret;
} else {
memcpy(&s_ota_select[0], result, sizeof(ota_select));
memcpy(&s_ota_select[1], result + SPI_FLASH_SEC_SIZE, sizeof(ota_select));
spi_flash_munmap(ota_data_map);
}
if (ota_select_valid(&s_ota_select[0]) && ota_select_valid(&s_ota_select[1])) {
seq = OTA_MAX(s_ota_select[0].ota_seq, s_ota_select[1].ota_seq);
while (seq > (SUB_TYPE_ID(subtype) + 1) % ota_app_count + i * ota_app_count) {
i++;
}
if (s_ota_select[0].ota_seq >= s_ota_select[1].ota_seq) {
return rewrite_ota_seq((SUB_TYPE_ID(subtype) + 1) % ota_app_count + i * ota_app_count, 1, find_partition);
} else {
return rewrite_ota_seq((SUB_TYPE_ID(subtype) + 1) % ota_app_count + i * ota_app_count, 0, find_partition);
}
} else if (ota_select_valid(&s_ota_select[0])) {
while (s_ota_select[0].ota_seq > (SUB_TYPE_ID(subtype) + 1) % ota_app_count + i * ota_app_count) {
i++;
}
return rewrite_ota_seq((SUB_TYPE_ID(subtype) + 1) % ota_app_count + i * ota_app_count, 1, find_partition);
} else if (ota_select_valid(&s_ota_select[1])) {
while (s_ota_select[1].ota_seq > (SUB_TYPE_ID(subtype) + 1) % ota_app_count + i * ota_app_count) {
i++;
}
return rewrite_ota_seq((SUB_TYPE_ID(subtype) + 1) % ota_app_count + i * ota_app_count, 0, find_partition);
} else {
/* Both OTA slots are invalid, probably because unformatted... */
return rewrite_ota_seq(SUB_TYPE_ID(subtype) + 1, 0, find_partition);
}
} else {
esp_ota_select_entry_t otadata[2];
const esp_partition_t *otadata_partition = read_otadata(otadata);
if (otadata_partition == NULL) {
return ESP_ERR_NOT_FOUND;
}
int ota_app_count = get_ota_partition_count();
if (SUB_TYPE_ID(subtype) >= ota_app_count) {
return ESP_ERR_INVALID_ARG;
}
//esp32_idf use two sector for store information about which partition is running
//it defined the two sector as ota data partition,two structure esp_ota_select_entry_t is saved in the two sector
//named data in first sector as otadata[0], second sector data as otadata[1]
//e.g.
//if otadata[0].ota_seq == otadata[1].ota_seq == 0xFFFFFFFF,means ota info partition is in init status
//so it will boot factory application(if there is),if there's no factory application,it will boot ota[0] application
//if otadata[0].ota_seq != 0 and otadata[1].ota_seq != 0,it will choose a max seq ,and get value of max_seq%max_ota_app_number
//and boot a subtype (mask 0x0F) value is (max_seq - 1)%max_ota_app_number,so if want switch to run ota[x],can use next formulas.
//for example, if otadata[0].ota_seq = 4, otadata[1].ota_seq = 5, and there are 8 ota application,
//current running is (5-1)%8 = 4,running ota[4],so if we want to switch to run ota[7],
//we should add otadata[0].ota_seq (is 4) to 4 ,(8-1)%8=7,then it will boot ota[7]
//if A=(B - C)%D
//then B=(A + C)%D + D*n ,n= (0,1,2...)
//so current ota app sub type id is x , dest bin subtype is y,total ota app count is n
//seq will add (x + n*1 + 1 - seq)%n
int active_otadata = bootloader_common_get_active_otadata(otadata);
if (active_otadata != -1) {
uint32_t seq = otadata[active_otadata].ota_seq;
uint32_t i = 0;
while (seq > (SUB_TYPE_ID(subtype) + 1) % ota_app_count + i * ota_app_count) {
i++;
}
int next_otadata = (~active_otadata)&1; // if 0 -> will be next 1. and if 1 -> will be next 0.
otadata[next_otadata].ota_state = set_new_state_otadata();
return rewrite_ota_seq(otadata, (SUB_TYPE_ID(subtype) + 1) % ota_app_count + i * ota_app_count, next_otadata, otadata_partition);
} else {
/* Both OTA slots are invalid, probably because unformatted... */
int next_otadata = 0;
otadata[next_otadata].ota_state = set_new_state_otadata();
return rewrite_ota_seq(otadata, SUB_TYPE_ID(subtype) + 1, next_otadata, otadata_partition);
}
}
esp_err_t esp_ota_set_boot_partition(const esp_partition_t *partition)
{
size_t image_size;
const esp_partition_t *find_partition = NULL;
if (partition == NULL) {
return ESP_ERR_INVALID_ARG;
}
if (esp_image_basic_verify(partition->address, true, &image_size) != ESP_OK) {
if (image_validate(partition, ESP_IMAGE_VERIFY) != ESP_OK) {
return ESP_ERR_OTA_VALIDATE_FAILED;
}
#ifdef CONFIG_SECURE_BOOT_ENABLED
esp_err_t ret = esp_secure_boot_verify_signature(partition->address, image_size);
if (ret != ESP_OK) {
return ESP_ERR_OTA_VALIDATE_FAILED;
}
#endif
// if set boot partition to factory bin ,just format ota info partition
if (partition->type == ESP_PARTITION_TYPE_APP) {
if (partition->subtype == ESP_PARTITION_SUBTYPE_APP_FACTORY) {
find_partition = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_OTA, NULL);
const esp_partition_t *find_partition = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_OTA, NULL);
if (find_partition != NULL) {
return esp_partition_erase_range(find_partition, 0, find_partition->size);
} else {
return ESP_ERR_NOT_FOUND;
}
} else {
// try to find this partition in flash,if not find it ,return error
find_partition = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_OTA, NULL);
if (find_partition != NULL) {
return esp_rewrite_ota_data(partition->subtype);
} else {
return ESP_ERR_NOT_FOUND;
#ifdef CONFIG_APP_ANTI_ROLLBACK
esp_app_desc_t partition_app_desc;
esp_err_t err = esp_ota_get_partition_description(partition, &partition_app_desc);
if (err != ESP_OK) {
return err;
}
if (esp_efuse_check_secure_version(partition_app_desc.secure_version) == false) {
ESP_LOGE(TAG, "This a new partition can not be booted due to a secure version is lower than stored in efuse. Partition will be erased.");
esp_err_t err = esp_partition_erase_range(partition, 0, partition->size);
if (err != ESP_OK) {
return err;
}
return ESP_ERR_OTA_SMALL_SEC_VER;
}
#endif
return esp_rewrite_ota_data(partition->subtype);
}
} else {
return ESP_ERR_INVALID_ARG;
}
}
static const esp_partition_t *find_default_boot_partition(void)
{
// This logic matches the logic of bootloader get_selected_boot_partition() & load_boot_image().
// Default to factory if present
const esp_partition_t *result = esp_partition_find_first(ESP_PARTITION_TYPE_APP, ESP_PARTITION_SUBTYPE_APP_FACTORY, NULL);
if (result != NULL) {
return result;
}
// Try first OTA slot if no factory partition
for (esp_partition_subtype_t s = ESP_PARTITION_SUBTYPE_APP_OTA_MIN; s != ESP_PARTITION_SUBTYPE_APP_OTA_MAX; s++) {
result = esp_partition_find_first(ESP_PARTITION_TYPE_APP, s, NULL);
if (result != NULL) {
return result;
}
}
// Test app slot if present
result = esp_partition_find_first(ESP_PARTITION_TYPE_APP, ESP_PARTITION_SUBTYPE_APP_TEST, NULL);
if (result != NULL) {
return result;
}
ESP_LOGE(TAG, "invalid partition table, no app partitions");
return NULL;
}
const esp_partition_t *esp_ota_get_boot_partition(void)
{
esp_err_t ret;
const esp_partition_t *find_partition = NULL;
static spi_flash_mmap_memory_t ota_data_map;
const void *result = NULL;
uint16_t ota_app_count = 0;
find_partition = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_OTA, NULL);
if (find_partition == NULL) {
ESP_LOGE(TAG, "not found ota data");
esp_ota_select_entry_t otadata[2];
const esp_partition_t *otadata_partition = read_otadata(otadata);
if (otadata_partition == NULL) {
return NULL;
}
ret = esp_partition_mmap(find_partition, 0, find_partition->size, SPI_FLASH_MMAP_DATA, &result, &ota_data_map);
if (ret != ESP_OK) {
spi_flash_munmap(ota_data_map);
ESP_LOGE(TAG, "mmap ota data filed");
return NULL;
} else {
memcpy(&s_ota_select[0], result, sizeof(ota_select));
memcpy(&s_ota_select[1], result + 0x1000, sizeof(ota_select));
spi_flash_munmap(ota_data_map);
}
ota_app_count = get_ota_partition_count();
int ota_app_count = get_ota_partition_count();
ESP_LOGD(TAG, "found ota app max = %d", ota_app_count);
if (s_ota_select[0].ota_seq == 0xFFFFFFFF && s_ota_select[1].ota_seq == 0xFFFFFFFF) {
ESP_LOGD(TAG, "finding factory app......");
return esp_partition_find_first(ESP_PARTITION_TYPE_APP, ESP_PARTITION_SUBTYPE_APP_FACTORY, NULL);
} else if (ota_select_valid(&s_ota_select[0]) && ota_select_valid(&s_ota_select[1])) {
ESP_LOGD(TAG, "finding ota_%d app......", \
ESP_PARTITION_SUBTYPE_APP_OTA_MIN + ((OTA_MAX(s_ota_select[0].ota_seq, s_ota_select[1].ota_seq) - 1) % ota_app_count));
return esp_partition_find_first(ESP_PARTITION_TYPE_APP, \
ESP_PARTITION_SUBTYPE_APP_OTA_MIN + ((OTA_MAX(s_ota_select[0].ota_seq, s_ota_select[1].ota_seq) - 1) % ota_app_count), NULL);
} else if (ota_select_valid(&s_ota_select[0])) {
ESP_LOGD(TAG, "finding ota_%d app......", \
ESP_PARTITION_SUBTYPE_APP_OTA_MIN + (s_ota_select[0].ota_seq - 1) % ota_app_count);
return esp_partition_find_first(ESP_PARTITION_TYPE_APP, \
ESP_PARTITION_SUBTYPE_APP_OTA_MIN + (s_ota_select[0].ota_seq - 1) % ota_app_count, NULL);
} else if (ota_select_valid(&s_ota_select[1])) {
ESP_LOGD(TAG, "finding ota_%d app......", \
ESP_PARTITION_SUBTYPE_APP_OTA_MIN + (s_ota_select[1].ota_seq - 1) % ota_app_count);
return esp_partition_find_first(ESP_PARTITION_TYPE_APP, \
ESP_PARTITION_SUBTYPE_APP_OTA_MIN + (s_ota_select[1].ota_seq - 1) % ota_app_count, NULL);
if ((bootloader_common_ota_select_invalid(&otadata[0]) &&
bootloader_common_ota_select_invalid(&otadata[1])) ||
ota_app_count == 0) {
ESP_LOGD(TAG, "finding factory app...");
return find_default_boot_partition();
} else {
ESP_LOGE(TAG, "ota data invalid, no current app. Assuming factory");
return esp_partition_find_first(ESP_PARTITION_TYPE_APP, ESP_PARTITION_SUBTYPE_APP_FACTORY, NULL);
int active_otadata = bootloader_common_get_active_otadata(otadata);
if (active_otadata != -1) {
int ota_slot = (otadata[active_otadata].ota_seq - 1) % ota_app_count; // Actual OTA partition selection
ESP_LOGD(TAG, "finding ota_%d app...", ESP_PARTITION_SUBTYPE_APP_OTA_MIN + ota_slot);
return esp_partition_find_first(ESP_PARTITION_TYPE_APP, ESP_PARTITION_SUBTYPE_APP_OTA_MIN + ota_slot, NULL);
} else {
ESP_LOGE(TAG, "ota data invalid, no current app. Assuming factory");
return find_default_boot_partition();
}
}
}
const esp_partition_t* esp_ota_get_running_partition(void)
{
static const esp_partition_t *curr_partition = NULL;
/*
* Currently running partition is unlikely to change across reset cycle,
* so it can be cached here, and avoid lookup on every flash write operation.
*/
if (curr_partition != NULL) {
return curr_partition;
}
/* Find the flash address of this exact function. By definition that is part
of the currently running firmware. Then find the enclosing partition. */
size_t phys_offs = spi_flash_cache2phys(esp_ota_get_running_partition);
assert (phys_offs != SPI_FLASH_CACHE2PHYS_FAIL); /* indicates cache2phys lookup is buggy */
@ -481,6 +509,7 @@ const esp_partition_t* esp_ota_get_running_partition(void)
const esp_partition_t *p = esp_partition_get(it);
if (p->address <= phys_offs && p->address + p->size > phys_offs) {
esp_partition_iterator_release(it);
curr_partition = p;
return p;
}
it = esp_partition_next(it);
@ -537,3 +566,265 @@ const esp_partition_t* esp_ota_get_next_update_partition(const esp_partition_t *
return default_ota;
}
esp_err_t esp_ota_get_partition_description(const esp_partition_t *partition, esp_app_desc_t *app_desc)
{
if (partition == NULL || app_desc == NULL) {
return ESP_ERR_INVALID_ARG;
}
if(partition->type != ESP_PARTITION_TYPE_APP) {
return ESP_ERR_NOT_SUPPORTED;
}
esp_err_t err = esp_partition_read(partition, sizeof(esp_image_header_t) + sizeof(esp_image_segment_header_t), app_desc, sizeof(esp_app_desc_t));
if (err != ESP_OK) {
return err;
}
if (app_desc->magic_word != ESP_APP_DESC_MAGIC_WORD) {
return ESP_ERR_NOT_FOUND;
}
return ESP_OK;
}
#ifdef CONFIG_APP_ANTI_ROLLBACK
static esp_err_t esp_ota_set_anti_rollback(void) {
const esp_app_desc_t *app_desc = esp_ota_get_app_description();
return esp_efuse_update_secure_version(app_desc->secure_version);
}
#endif
// Checks applications on the slots which can be booted in case of rollback.
// Returns true if the slots have at least one app (except the running app).
bool esp_ota_check_rollback_is_possible(void)
{
esp_ota_select_entry_t otadata[2];
if (read_otadata(otadata) == NULL) {
return false;
}
int ota_app_count = get_ota_partition_count();
if (ota_app_count == 0) {
return false;
}
bool valid_otadata[2];
valid_otadata[0] = bootloader_common_ota_select_valid(&otadata[0]);
valid_otadata[1] = bootloader_common_ota_select_valid(&otadata[1]);
int active_ota = bootloader_common_select_otadata(otadata, valid_otadata, true);
if (active_ota == -1) {
return false;
}
int last_active_ota = (~active_ota)&1;
const esp_partition_t *partition = NULL;
#ifndef CONFIG_APP_ANTI_ROLLBACK
if (valid_otadata[last_active_ota] == false) {
partition = esp_partition_find_first(ESP_PARTITION_TYPE_APP, ESP_PARTITION_SUBTYPE_APP_FACTORY, NULL);
if (partition != NULL) {
if(image_validate(partition, ESP_IMAGE_VERIFY_SILENT) == ESP_OK) {
return true;
}
}
}
#endif
if (valid_otadata[last_active_ota] == true) {
int slot = (otadata[last_active_ota].ota_seq - 1) % ota_app_count;
partition = esp_partition_find_first(ESP_PARTITION_TYPE_APP, ESP_PARTITION_SUBTYPE_APP_OTA_MIN + slot, NULL);
if (partition != NULL) {
if(image_validate(partition, ESP_IMAGE_VERIFY_SILENT) == ESP_OK) {
#ifdef CONFIG_APP_ANTI_ROLLBACK
esp_app_desc_t app_desc;
if (esp_ota_get_partition_description(partition, &app_desc) == ESP_OK &&
esp_efuse_check_secure_version(app_desc.secure_version) == true) {
return true;
}
#else
return true;
#endif
}
}
}
return false;
}
// if valid == false - will done rollback with reboot. After reboot will boot previous OTA[x] or Factory partition.
// if valid == true - it confirm that current OTA[x] is workable. Reboot will not happen.
static esp_err_t esp_ota_current_ota_is_workable(bool valid)
{
esp_ota_select_entry_t otadata[2];
const esp_partition_t *otadata_partition = read_otadata(otadata);
if (otadata_partition == NULL) {
return ESP_ERR_NOT_FOUND;
}
int active_otadata = bootloader_common_get_active_otadata(otadata);
if (active_otadata != -1 && get_ota_partition_count() != 0) {
if (valid == true && otadata[active_otadata].ota_state != ESP_OTA_IMG_VALID) {
otadata[active_otadata].ota_state = ESP_OTA_IMG_VALID;
ESP_LOGD(TAG, "OTA[current] partition is marked as VALID");
esp_err_t err = rewrite_ota_seq(otadata, otadata[active_otadata].ota_seq, active_otadata, otadata_partition);
#ifdef CONFIG_APP_ANTI_ROLLBACK
if (err == ESP_OK) {
return esp_ota_set_anti_rollback();
}
#endif
return err;
} else if (valid == false) {
if (esp_ota_check_rollback_is_possible() == false) {
ESP_LOGE(TAG, "Rollback is not possible, do not have any suitable apps in slots");
return ESP_ERR_OTA_ROLLBACK_FAILED;
}
ESP_LOGD(TAG, "OTA[current] partition is marked as INVALID");
otadata[active_otadata].ota_state = ESP_OTA_IMG_INVALID;
esp_err_t err = rewrite_ota_seq(otadata, otadata[active_otadata].ota_seq, active_otadata, otadata_partition);
if (err != ESP_OK) {
return err;
}
ESP_LOGI(TAG, "Rollback to previously worked partition. Restart.");
esp_restart();
}
} else {
ESP_LOGE(TAG, "Running firmware is factory");
return ESP_FAIL;
}
return ESP_OK;
}
esp_err_t esp_ota_mark_app_valid_cancel_rollback()
{
return esp_ota_current_ota_is_workable(true);
}
esp_err_t esp_ota_mark_app_invalid_rollback_and_reboot()
{
return esp_ota_current_ota_is_workable(false);
}
static bool check_invalid_otadata (const esp_ota_select_entry_t *s) {
return s->ota_seq != UINT32_MAX &&
s->crc == bootloader_common_ota_select_crc(s) &&
(s->ota_state == ESP_OTA_IMG_INVALID ||
s->ota_state == ESP_OTA_IMG_ABORTED);
}
static int get_last_invalid_otadata(const esp_ota_select_entry_t *two_otadata)
{
bool invalid_otadata[2];
invalid_otadata[0] = check_invalid_otadata(&two_otadata[0]);
invalid_otadata[1] = check_invalid_otadata(&two_otadata[1]);
int num_invalid_otadata = bootloader_common_select_otadata(two_otadata, invalid_otadata, false);
ESP_LOGD(TAG, "Invalid otadata[%d]", num_invalid_otadata);
return num_invalid_otadata;
}
const esp_partition_t* esp_ota_get_last_invalid_partition()
{
esp_ota_select_entry_t otadata[2];
if (read_otadata(otadata) == NULL) {
return NULL;
}
int invalid_otadata = get_last_invalid_otadata(otadata);
int ota_app_count = get_ota_partition_count();
if (invalid_otadata != -1 && ota_app_count != 0) {
int ota_slot = (otadata[invalid_otadata].ota_seq - 1) % ota_app_count;
ESP_LOGD(TAG, "Find invalid ota_%d app", ESP_PARTITION_SUBTYPE_APP_OTA_MIN + ota_slot);
const esp_partition_t* invalid_partition = esp_partition_find_first(ESP_PARTITION_TYPE_APP, ESP_PARTITION_SUBTYPE_APP_OTA_MIN + ota_slot, NULL);
if (invalid_partition != NULL) {
if (image_validate(invalid_partition, ESP_IMAGE_VERIFY_SILENT) != ESP_OK) {
ESP_LOGD(TAG, "Last invalid partition has corrupted app");
return NULL;
}
}
return invalid_partition;
}
return NULL;
}
esp_err_t esp_ota_get_state_partition(const esp_partition_t *partition, esp_ota_img_states_t *ota_state)
{
if (partition == NULL || ota_state == NULL) {
return ESP_ERR_INVALID_ARG;
}
if (!is_ota_partition(partition)) {
return ESP_ERR_NOT_SUPPORTED;
}
esp_ota_select_entry_t otadata[2];
int ota_app_count = get_ota_partition_count();
if (read_otadata(otadata) == NULL || ota_app_count == 0) {
return ESP_ERR_NOT_FOUND;
}
int req_ota_slot = partition->subtype - ESP_PARTITION_SUBTYPE_APP_OTA_MIN;
bool not_found = true;
for (int i = 0; i < 2; ++i) {
int ota_slot = (otadata[i].ota_seq - 1) % ota_app_count;
if (ota_slot == req_ota_slot && otadata[i].crc == bootloader_common_ota_select_crc(&otadata[i])) {
*ota_state = otadata[i].ota_state;
not_found = false;
break;
}
}
if (not_found) {
return ESP_ERR_NOT_FOUND;
}
return ESP_OK;
}
esp_err_t esp_ota_erase_last_boot_app_partition(void)
{
esp_ota_select_entry_t otadata[2];
const esp_partition_t* ota_data_partition = read_otadata(otadata);
if (ota_data_partition == NULL) {
return ESP_FAIL;
}
int active_otadata = bootloader_common_get_active_otadata(otadata);
int ota_app_count = get_ota_partition_count();
if (active_otadata == -1 || ota_app_count == 0) {
return ESP_FAIL;
}
int inactive_otadata = (~active_otadata)&1;
if (otadata[inactive_otadata].ota_seq == UINT32_MAX || otadata[inactive_otadata].crc != bootloader_common_ota_select_crc(&otadata[inactive_otadata])) {
return ESP_FAIL;
}
int ota_slot = (otadata[inactive_otadata].ota_seq - 1) % ota_app_count; // Actual OTA partition selection
ESP_LOGD(TAG, "finding last_boot_app_partition ota_%d app...", ESP_PARTITION_SUBTYPE_APP_OTA_MIN + ota_slot);
const esp_partition_t* last_boot_app_partition_from_otadata = esp_partition_find_first(ESP_PARTITION_TYPE_APP, ESP_PARTITION_SUBTYPE_APP_OTA_MIN + ota_slot, NULL);
if (last_boot_app_partition_from_otadata == NULL) {
return ESP_FAIL;
}
const esp_partition_t* running_partition = esp_ota_get_running_partition();
if (running_partition == NULL || last_boot_app_partition_from_otadata == running_partition) {
return ESP_FAIL;
}
esp_err_t err = esp_partition_erase_range(last_boot_app_partition_from_otadata, 0, last_boot_app_partition_from_otadata->size);
if (err != ESP_OK) {
return err;
}
int sec_id = inactive_otadata;
err = esp_partition_erase_range(ota_data_partition, sec_id * SPI_FLASH_SEC_SIZE, SPI_FLASH_SEC_SIZE);
if (err != ESP_OK) {
return err;
}
return ESP_OK;
}

123
components/app_update/include/esp_ota_ops.h Executable file → Normal file
View File

@ -20,7 +20,8 @@
#include <stddef.h>
#include "esp_err.h"
#include "esp_partition.h"
#include "esp_spi_flash.h"
#include "esp_image_format.h"
#include "esp_flash_data_types.h"
#ifdef __cplusplus
extern "C"
@ -33,6 +34,10 @@ extern "C"
#define ESP_ERR_OTA_PARTITION_CONFLICT (ESP_ERR_OTA_BASE + 0x01) /*!< Error if request was to write or erase the current running partition */
#define ESP_ERR_OTA_SELECT_INFO_INVALID (ESP_ERR_OTA_BASE + 0x02) /*!< Error if OTA data partition contains invalid content */
#define ESP_ERR_OTA_VALIDATE_FAILED (ESP_ERR_OTA_BASE + 0x03) /*!< Error if OTA app image is invalid */
#define ESP_ERR_OTA_SMALL_SEC_VER (ESP_ERR_OTA_BASE + 0x04) /*!< Error if the firmware has a secure version less than the running firmware. */
#define ESP_ERR_OTA_ROLLBACK_FAILED (ESP_ERR_OTA_BASE + 0x05) /*!< Error if flash does not have valid firmware in passive partition and hence rollback is not possible */
#define ESP_ERR_OTA_ROLLBACK_INVALID_STATE (ESP_ERR_OTA_BASE + 0x06) /*!< Error if current active firmware is still marked in pending validation state (ESP_OTA_IMG_PENDING_VERIFY), essentially first boot of firmware image post upgrade and hence firmware upgrade is not possible */
/**
* @brief Opaque handle for an application OTA update
@ -42,6 +47,24 @@ extern "C"
*/
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.
*/
const esp_app_desc_t *esp_ota_get_app_description(void);
/**
* @brief Fill the provided buffer with SHA256 of the ELF file, formatted as hexadecimal, null-terminated.
* If the buffer size is not sufficient to fit the entire SHA256 in hex plus a null terminator,
* the largest possible number of bytes will be written followed by a null.
* @param dst Destination buffer
* @param size Size of the buffer
* @return Number of bytes written to dst (including null terminator)
*/
int esp_ota_get_app_elf_sha256(char* dst, size_t size);
/**
* @brief Commence an OTA update writing to the specified partition.
@ -53,6 +76,10 @@ typedef uint32_t esp_ota_handle_t;
* On success, this function allocates memory that remains in use
* until esp_ota_end() is called with the returned handle.
*
* Note: If the rollback option is enabled and the running application has the ESP_OTA_IMG_PENDING_VERIFY state then
* it will lead to the ESP_ERR_OTA_ROLLBACK_INVALID_STATE error. Confirm the running app before to run download a new app,
* use esp_ota_mark_app_valid_cancel_rollback() function for it (this should be done as early as possible when you first download a new application).
*
* @param partition Pointer to info for partition which will receive the OTA update. Required.
* @param image_size Size of new OTA app image. Partition will be erased in order to receive this size of image. If 0 or OTA_SIZE_UNKNOWN, the entire partition is erased.
* @param out_handle On success, returns a handle which should be used for subsequent esp_ota_write() and esp_ota_end() calls.
@ -66,6 +93,7 @@ typedef uint32_t esp_ota_handle_t;
* - ESP_ERR_OTA_SELECT_INFO_INVALID: The OTA data partition contains invalid data.
* - ESP_ERR_INVALID_SIZE: Partition doesn't fit in configured flash size.
* - ESP_ERR_FLASH_OP_TIMEOUT or ESP_ERR_FLASH_OP_FAIL: Flash write failed.
* - ESP_ERR_OTA_ROLLBACK_INVALID_STATE: If the running app has not confirmed state. Before performing an update, the application must be valid.
*/
esp_err_t esp_ota_begin(const esp_partition_t* partition, size_t image_size, esp_ota_handle_t* out_handle);
@ -126,10 +154,17 @@ esp_err_t esp_ota_set_boot_partition(const esp_partition_t* partition);
*
* If esp_ota_set_boot_partition() has been called, the partition which was set by that function will be returned.
*
* If esp_ota_set_boot_partition() has not been called, the result is
* equivalent to esp_ota_get_running_partition().
* If esp_ota_set_boot_partition() has not been called, the result is usually the same as esp_ota_get_running_partition().
* The two results are not equal if the configured boot partition does not contain a valid app (meaning that the running partition
* will be an app that the bootloader chose via fallback).
*
* @return Pointer to info for partition structure, or NULL if no partition is found or flash read operation failed. Returned pointer is valid for the lifetime of the application.
* If the OTA data partition is not present or not valid then the result is the first app partition found in the
* partition table. In priority order, this means: the factory app, the first OTA app slot, or the test app partition.
*
* Note that there is no guarantee the returned partition is a valid app. Use esp_image_verify(ESP_IMAGE_VERIFY, ...) to verify if the
* returned partition contains a bootable image.
*
* @return Pointer to info for partition structure, or NULL if partition table is invalid or a flash read operation failed. Any returned pointer is valid for the lifetime of the application.
*/
const esp_partition_t* esp_ota_get_boot_partition(void);
@ -142,6 +177,9 @@ const esp_partition_t* esp_ota_get_boot_partition(void);
* esp_ota_set_boot_partition(). Only the app whose code is currently
* running will have its partition information returned.
*
* The partition returned by this function may also differ from esp_ota_get_boot_partition() if the configured boot
* partition is somehow invalid, and the bootloader fell back to a different app partition at boot.
*
* @return Pointer to info for partition structure, or NULL if no partition is found or flash read operation failed. Returned pointer is valid for the lifetime of the application.
*/
const esp_partition_t* esp_ota_get_running_partition(void);
@ -161,6 +199,83 @@ const esp_partition_t* esp_ota_get_running_partition(void);
*/
const esp_partition_t* esp_ota_get_next_update_partition(const esp_partition_t *start_from);
/**
* @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.
* @return
* - ESP_OK Successful.
* - ESP_ERR_NOT_FOUND app_desc structure is not found. Magic word is incorrect.
* - ESP_ERR_NOT_SUPPORTED Partition is not application.
* - ESP_ERR_INVALID_ARG Arguments is NULL or if partition's offset exceeds partition size.
* - ESP_ERR_INVALID_SIZE Read would go out of bounds of the partition.
* - or one of error codes from lower-level flash driver.
*/
esp_err_t esp_ota_get_partition_description(const esp_partition_t *partition, esp_app_desc_t *app_desc);
/**
* @brief This function is called to indicate that the running app is working well.
*
* @return
* - ESP_OK: if successful.
*/
esp_err_t esp_ota_mark_app_valid_cancel_rollback();
/**
* @brief This function is called to roll back to the previously workable app with reboot.
*
* If rollback is successful then device will reset else API will return with error code.
* Checks applications on a flash drive that can be booted in case of rollback.
* If the flash does not have at least one app (except the running app) then rollback is not possible.
* @return
* - ESP_FAIL: if not successful.
* - ESP_ERR_OTA_ROLLBACK_FAILED: The rollback is not possible due to flash does not have any apps.
*/
esp_err_t esp_ota_mark_app_invalid_rollback_and_reboot();
/**
* @brief Returns last partition with invalid state (ESP_OTA_IMG_INVALID or ESP_OTA_IMG_ABORTED).
*
* @return partition.
*/
const esp_partition_t* esp_ota_get_last_invalid_partition();
/**
* @brief Returns state for given partition.
*
* @param[in] partition Pointer to partition.
* @param[out] ota_state state of partition (if this partition has a record in otadata).
* @return
* - ESP_OK: Successful.
* - ESP_ERR_INVALID_ARG: partition or ota_state arguments were NULL.
* - ESP_ERR_NOT_SUPPORTED: partition is not ota.
* - ESP_ERR_NOT_FOUND: Partition table does not have otadata or state was not found for given partition.
*/
esp_err_t esp_ota_get_state_partition(const esp_partition_t *partition, esp_ota_img_states_t *ota_state);
/**
* @brief Erase previous boot app partition and corresponding otadata select for this partition.
*
* When current app is marked to as valid then you can erase previous app partition.
* @return
* - ESP_OK: Successful, otherwise ESP_ERR.
*/
esp_err_t esp_ota_erase_last_boot_app_partition(void);
/**
* @brief Checks applications on the slots which can be booted in case of rollback.
*
* These applications should be valid (marked in otadata as not UNDEFINED, INVALID or ABORTED and crc is good) and be able booted,
* and secure_version of app >= secure_version of efuse (if anti-rollback is enabled).
*
* @return
* - True: Returns true if the slots have at least one app (except the running app).
* - False: The rollback is not possible.
*/
bool esp_ota_check_rollback_is_possible(void);
#ifdef __cplusplus
}
#endif

339
components/app_update/otatool.py Executable file
View File

@ -0,0 +1,339 @@
#!/usr/bin/env python
#
# otatool is used to perform ota-level operations - flashing ota partition
# erasing ota partition and switching ota partition
#
# Copyright 2018 Espressif Systems (Shanghai) PTE LTD
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http:#www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from __future__ import print_function, division
import argparse
import os
import sys
import binascii
import subprocess
import tempfile
import collections
import struct
__version__ = '1.0'
IDF_COMPONENTS_PATH = os.path.expandvars(os.path.join("$IDF_PATH", "components"))
PARTTOOL_PY = os.path.join(IDF_COMPONENTS_PATH, "partition_table", "parttool.py")
SPI_FLASH_SEC_SIZE = 0x2000
quiet = False
def status(msg):
if not quiet:
print(msg)
def _invoke_parttool(parttool_args, args, output=False, partition=None):
invoke_args = []
if partition:
invoke_args += [sys.executable, PARTTOOL_PY] + partition
else:
invoke_args += [sys.executable, PARTTOOL_PY, "--partition-type", "data", "--partition-subtype", "ota"]
if quiet:
invoke_args += ["-q"]
if args.port != "":
invoke_args += ["--port", args.port]
if args.partition_table_file:
invoke_args += ["--partition-table-file", args.partition_table_file]
if args.partition_table_offset:
invoke_args += ["--partition-table-offset", args.partition_table_offset]
invoke_args += parttool_args
if output:
return subprocess.check_output(invoke_args)
else:
return subprocess.check_call(invoke_args)
def _get_otadata_contents(args, check=True):
global quiet
if check:
check_args = ["get_partition_info", "--info", "offset", "size"]
quiet = True
output = _invoke_parttool(check_args, args, True).split(b" ")
quiet = args.quiet
if not output:
raise RuntimeError("No ota_data partition found")
with tempfile.NamedTemporaryFile(delete=False) as f:
f_name = f.name
try:
invoke_args = ["read_partition", "--output", f_name]
_invoke_parttool(invoke_args, args)
with open(f_name, "rb") as f:
contents = f.read()
finally:
os.unlink(f_name)
return contents
def _get_otadata_status(otadata_contents):
status = []
otadata_status = collections.namedtuple("otadata_status", "seq crc")
for i in range(2):
start = i * (SPI_FLASH_SEC_SIZE >> 1)
seq = bytearray(otadata_contents[start:start + 4])
crc = bytearray(otadata_contents[start + 28:start + 32])
seq = struct.unpack('>I', seq)
crc = struct.unpack('>I', crc)
status.append(otadata_status(seq[0], crc[0]))
return status
def read_otadata(args):
status("Reading ota_data partition contents...")
otadata_info = _get_otadata_contents(args)
otadata_info = _get_otadata_status(otadata_info)
print(otadata_info)
print("\t\t{:11}\t{:8s}|\t{:8s}\t{:8s}".format("OTA_SEQ", "CRC", "OTA_SEQ", "CRC"))
print("Firmware: 0x{:8x} \t 0x{:8x} |\t0x{:8x} \t 0x{:8x}".format(otadata_info[0].seq, otadata_info[0].crc,
otadata_info[1].seq, otadata_info[1].crc))
def erase_otadata(args):
status("Erasing ota_data partition contents...")
_invoke_parttool(["erase_partition"], args)
status("Erased ota_data partition contents")
def switch_otadata(args):
sys.path.append(os.path.join(IDF_COMPONENTS_PATH, "partition_table"))
import gen_esp32part as gen
with tempfile.NamedTemporaryFile(delete=False) as f:
f_name = f.name
try:
def is_otadata_status_valid(status):
seq = status.seq % (1 << 32)
crc = hex(binascii.crc32(struct.pack("I", seq), 0xFFFFFFFF) % (1 << 32))
return seq < (int('0xFFFFFFFF', 16) % (1 << 32)) and status.crc == crc
status("Looking for ota app partitions...")
# In order to get the number of ota app partitions, we need the partition table
partition_table = None
invoke_args = ["get_partition_info", "--table", f_name]
_invoke_parttool(invoke_args, args)
partition_table = open(f_name, "rb").read()
partition_table = gen.PartitionTable.from_binary(partition_table)
ota_partitions = list()
for i in range(gen.NUM_PARTITION_SUBTYPE_APP_OTA):
ota_partition = filter(lambda p: p.subtype == (gen.MIN_PARTITION_SUBTYPE_APP_OTA + i), partition_table)
try:
ota_partitions.append(list(ota_partition)[0])
except IndexError:
break
ota_partitions = sorted(ota_partitions, key=lambda p: p.subtype)
if not ota_partitions:
raise RuntimeError("No ota app partitions found")
status("Verifying partition to switch to exists...")
# Look for the app partition to switch to
ota_partition_next = None
try:
if args.name:
ota_partition_next = filter(lambda p: p.name == args.name, ota_partitions)
else:
ota_partition_next = filter(lambda p: p.subtype - gen.MIN_PARTITION_SUBTYPE_APP_OTA == args.slot, ota_partitions)
ota_partition_next = list(ota_partition_next)[0]
except IndexError:
raise RuntimeError("Partition to switch to not found")
otadata_contents = _get_otadata_contents(args)
otadata_status = _get_otadata_status(otadata_contents)
# Find the copy to base the computation for ota sequence number on
otadata_compute_base = -1
# Both are valid, take the max as computation base
if is_otadata_status_valid(otadata_status[0]) and is_otadata_status_valid(otadata_status[1]):
if otadata_status[0].seq >= otadata_status[1].seq:
otadata_compute_base = 0
else:
otadata_compute_base = 1
# Only one copy is valid, use that
elif is_otadata_status_valid(otadata_status[0]):
otadata_compute_base = 0
elif is_otadata_status_valid(otadata_status[1]):
otadata_compute_base = 1
# Both are invalid (could be initial state - all 0xFF's)
else:
pass
ota_seq_next = 0
ota_partitions_num = len(ota_partitions)
target_seq = (ota_partition_next.subtype & 0x0F) + 1
# Find the next ota sequence number
if otadata_compute_base == 0 or otadata_compute_base == 1:
base_seq = otadata_status[otadata_compute_base].seq % (1 << 32)
i = 0
while base_seq > target_seq % ota_partitions_num + i * ota_partitions_num:
i += 1
ota_seq_next = target_seq % ota_partitions_num + i * ota_partitions_num
else:
ota_seq_next = target_seq
# Create binary data from computed values
ota_seq_next = struct.pack("I", ota_seq_next)
ota_seq_crc_next = binascii.crc32(ota_seq_next, 0xFFFFFFFF) % (1 << 32)
ota_seq_crc_next = struct.pack("I", ota_seq_crc_next)
with open(f_name, "wb") as otadata_next_file:
start = (1 if otadata_compute_base == 0 else 0) * (SPI_FLASH_SEC_SIZE >> 1)
otadata_next_file.write(otadata_contents)
otadata_next_file.seek(start)
otadata_next_file.write(ota_seq_next)
otadata_next_file.seek(start + 28)
otadata_next_file.write(ota_seq_crc_next)
otadata_next_file.flush()
_invoke_parttool(["write_partition", "--input", f_name], args)
status("Updated ota_data partition")
finally:
os.unlink(f_name)
def _get_partition_specifier(args):
if args.name:
return ["--partition-name", args.name]
else:
return ["--partition-type", "app", "--partition-subtype", "ota_" + str(args.slot)]
def read_ota_partition(args):
invoke_args = ["read_partition", "--output", args.output]
_invoke_parttool(invoke_args, args, partition=_get_partition_specifier(args))
status("Read ota partition contents to file {}".format(args.output))
def write_ota_partition(args):
invoke_args = ["write_partition", "--input", args.input]
_invoke_parttool(invoke_args, args, partition=_get_partition_specifier(args))
status("Written contents of file {} to ota partition".format(args.input))
def erase_ota_partition(args):
invoke_args = ["erase_partition"]
_invoke_parttool(invoke_args, args, partition=_get_partition_specifier(args))
status("Erased contents of ota partition")
def main():
global quiet
parser = argparse.ArgumentParser("ESP-IDF OTA Partitions Tool")
parser.add_argument("--quiet", "-q", help="suppress stderr messages", action="store_true")
# There are two possible sources for the partition table: a device attached to the host
# or a partition table CSV/binary file. These sources are mutually exclusive.
partition_table_info_source_args = parser.add_mutually_exclusive_group()
partition_table_info_source_args.add_argument("--port", "-p", help="port where the device to read the partition table from is attached", default="")
partition_table_info_source_args.add_argument("--partition-table-file", "-f", help="file (CSV/binary) to read the partition table from", default="")
parser.add_argument("--partition-table-offset", "-o", help="offset to read the partition table from", default="0x8000")
subparsers = parser.add_subparsers(dest="operation", help="run otatool -h for additional help")
# Specify the supported operations
subparsers.add_parser("read_otadata", help="read otadata partition")
subparsers.add_parser("erase_otadata", help="erase otadata partition")
slot_or_name_parser = argparse.ArgumentParser(add_help=False)
slot_or_name_parser_args = slot_or_name_parser.add_mutually_exclusive_group()
slot_or_name_parser_args.add_argument("--slot", help="slot number of the ota partition", type=int)
slot_or_name_parser_args.add_argument("--name", help="name of the ota partition")
subparsers.add_parser("switch_otadata", help="switch otadata partition", parents=[slot_or_name_parser])
read_ota_partition_subparser = subparsers.add_parser("read_ota_partition", help="read contents of an ota partition", parents=[slot_or_name_parser])
read_ota_partition_subparser.add_argument("--output", help="file to write the contents of the ota partition to")
write_ota_partition_subparser = subparsers.add_parser("write_ota_partition", help="write contents to an ota partition", parents=[slot_or_name_parser])
write_ota_partition_subparser.add_argument("--input", help="file whose contents to write to the ota partition")
subparsers.add_parser("erase_ota_partition", help="erase contents of an ota partition", parents=[slot_or_name_parser])
args = parser.parse_args()
quiet = args.quiet
# No operation specified, display help and exit
if args.operation is None:
if not quiet:
parser.print_help()
sys.exit(1)
# Else execute the operation
operation_func = globals()[args.operation]
if quiet:
# If exceptions occur, suppress and exit quietly
try:
operation_func(args)
except Exception:
sys.exit(2)
else:
operation_func(args)
if __name__ == '__main__':
main()

View File

@ -0,0 +1,9 @@
# Set empty otadata partition file for flashing, if OTA data partition in
# partition table
# (NB: because of component dependency, we know partition_table
# project_include.cmake has already been included.)
if(OTADATA_PARTITION_OFFSET AND OTADATA_PARTITION_SIZE AND IDF_BUILD_ARTIFACTS)
set(BLANK_OTADATA_FILE "ota_data_initial.bin")
endif()

View File

@ -0,0 +1,6 @@
set(COMPONENT_SRCDIRS ".")
set(COMPONENT_ADD_INCLUDEDIRS ".")
set(COMPONENT_REQUIRES unity test_utils app_update bootloader_support nvs_flash)
register_component()

View File

@ -0,0 +1,50 @@
#include <string.h>
#include "esp_ota_ops.h"
#include "unity.h"
TEST_CASE("esp_ota_get_app_elf_sha256 test", "[esp_app_desc]")
{
const int sha256_hex_len = 64;
char dst[sha256_hex_len + 2];
const char fill = 0xcc;
int res;
size_t len;
char ref_sha256[sha256_hex_len + 1];
const esp_app_desc_t* desc = esp_ota_get_app_description();
for (int i = 0; i < sizeof(ref_sha256) / 2; ++i) {
snprintf(ref_sha256 + 2*i, 3, "%02x", desc->app_elf_sha256[i]);
}
ref_sha256[sha256_hex_len] = 0;
printf("Ref: %s\n", ref_sha256);
memset(dst, fill, sizeof(dst));
len = sizeof(dst);
res = esp_ota_get_app_elf_sha256(dst, len);
printf("%d: %s (%d)\n", len, dst, res);
TEST_ASSERT_EQUAL(sha256_hex_len + 1, res);
TEST_ASSERT_EQUAL(0, memcmp(dst, ref_sha256, res - 1));
TEST_ASSERT_EQUAL_HEX(0, dst[sha256_hex_len]);
TEST_ASSERT_EQUAL_HEX(fill, dst[sha256_hex_len + 1]);
memset(dst, fill, sizeof(dst));
len = 9;
res = esp_ota_get_app_elf_sha256(dst, len);
printf("%d: %s (%d)\n", len, dst, res);
TEST_ASSERT_EQUAL(9, res);
TEST_ASSERT_EQUAL(0, memcmp(dst, ref_sha256, res - 1));
TEST_ASSERT_EQUAL_HEX(0, dst[8]);
TEST_ASSERT_EQUAL_HEX(fill, dst[9]);
memset(dst, fill, sizeof(dst));
len = 8;
res = esp_ota_get_app_elf_sha256(dst, len);
printf("%d: %s (%d)\n", len, dst, res);
// should output even number of characters plus '\0'
TEST_ASSERT_EQUAL(7, res);
TEST_ASSERT_EQUAL(0, memcmp(dst, ref_sha256, res - 1));
TEST_ASSERT_EQUAL_HEX(0, dst[6]);
TEST_ASSERT_EQUAL_HEX(fill, dst[7]);
TEST_ASSERT_EQUAL_HEX(fill, dst[8]);
}

View File

@ -8,7 +8,7 @@
#include <unity.h>
#include <test_utils.h>
#include <esp_ota_ops.h>
#include "bootloader_common.h"
/* These OTA tests currently don't assume an OTA partition exists
on the device, so they're a bit limited
@ -84,3 +84,26 @@ TEST_CASE("esp_ota_get_next_update_partition logic", "[ota]")
TEST_ASSERT_EQUAL_PTR(ota_0, p);
}
TEST_CASE("esp_ota_get_partition_description ", "[ota]")
{
const esp_partition_t *running = esp_ota_get_running_partition();
TEST_ASSERT_NOT_NULL(running);
esp_app_desc_t app_desc1, app_desc2;
TEST_ESP_OK(esp_ota_get_partition_description(running, &app_desc1));
const esp_partition_pos_t running_pos = {
.offset = running->address,
.size = running->size
};
TEST_ESP_OK(bootloader_common_get_partition_description(&running_pos, &app_desc2));
TEST_ASSERT_EQUAL_MEMORY_MESSAGE((uint8_t *)&app_desc1, (uint8_t *)&app_desc2, sizeof(app_desc1), "must be the same");
const esp_partition_t *not_app = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_OTA, NULL);
TEST_ASSERT_NOT_NULL(not_app);
TEST_ESP_ERR(ESP_ERR_NOT_SUPPORTED, esp_ota_get_partition_description(not_app, &app_desc1));
const esp_partition_pos_t not_app_pos = {
.offset = not_app->address,
.size = not_app->size
};
TEST_ESP_ERR(ESP_ERR_NOT_FOUND, bootloader_common_get_partition_description(&not_app_pos, &app_desc1));
}

View File

@ -0,0 +1,732 @@
/*
* Tests for switching between partitions: factory, OTAx, test.
*/
#include <esp_types.h>
#include <stdio.h>
#include "string.h"
#include "rom/spi_flash.h"
#include "rom/rtc.h"
#include "rom/ets_sys.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/semphr.h"
#include "freertos/queue.h"
#include "freertos/xtensa_api.h"
#include "unity.h"
#include "bootloader_common.h"
#include "../include_bootloader/bootloader_flash.h"
#include "esp_log.h"
#include "esp_ota_ops.h"
#include "esp_partition.h"
#include "esp_flash_partitions.h"
#include "esp_image_format.h"
#include "nvs_flash.h"
#include "driver/gpio.h"
#include "sdkconfig.h"
RTC_DATA_ATTR static int boot_count = 0;
static const char *TAG = "ota_test";
/* @brief Copies a current app to next partition using handle.
*
* @param[in] update_handle - Handle of API ota.
* @param[in] cur_app - Current app.
*/
static void copy_app_partition(esp_ota_handle_t update_handle, const esp_partition_t *curr_app)
{
const void *partition_bin = NULL;
spi_flash_mmap_handle_t data_map;
TEST_ESP_OK(esp_partition_mmap(curr_app, 0, curr_app->size, SPI_FLASH_MMAP_DATA, &partition_bin, &data_map));
TEST_ESP_OK(esp_ota_write(update_handle, (const void *)partition_bin, curr_app->size));
spi_flash_munmap(data_map);
}
#if defined(CONFIG_BOOTLOADER_FACTORY_RESET) || defined(CONFIG_BOOTLOADER_APP_TEST)
/* @brief Copies partition from source partition to destination partition.
*
* Partitions can be of any types and subtypes.
* @param[in] dst_partition - Destination partition
* @param[in] src_partition - Source partition
*/
static void copy_partition(const esp_partition_t *dst_partition, const esp_partition_t *src_partition)
{
const void *partition_bin = NULL;
spi_flash_mmap_handle_t data_map;
TEST_ESP_OK(esp_partition_mmap(src_partition, 0, src_partition->size, SPI_FLASH_MMAP_DATA, &partition_bin, &data_map));
TEST_ESP_OK(esp_partition_erase_range(dst_partition, 0, dst_partition->size));
TEST_ESP_OK(esp_partition_write(dst_partition, 0, (const void *)partition_bin, dst_partition->size));
spi_flash_munmap(data_map);
}
#endif
/* @brief Get the next partition of OTA for the update.
*
* @return The next partition of OTA(OTA0-15).
*/
static const esp_partition_t * get_next_update_partition(void)
{
const esp_partition_t *update_partition = esp_ota_get_next_update_partition(NULL);
TEST_ASSERT_NOT_EQUAL(NULL, update_partition);
ESP_LOGI(TAG, "Writing to partition subtype %d at offset 0x%x", update_partition->subtype, update_partition->address);
return update_partition;
}
/* @brief Copies a current app to next partition (OTA0-15) and then configure OTA data for a new boot partition.
*
* @param[in] cur_app_partition - Current app.
* @param[in] next_app_partition - Next app for boot.
*/
static void copy_current_app_to_next_part(const esp_partition_t *cur_app_partition, const esp_partition_t *next_app_partition)
{
esp_ota_get_next_update_partition(NULL);
TEST_ASSERT_NOT_EQUAL(NULL, next_app_partition);
ESP_LOGI(TAG, "Writing to partition subtype %d at offset 0x%x", next_app_partition->subtype, next_app_partition->address);
esp_ota_handle_t update_handle = 0;
TEST_ESP_OK(esp_ota_begin(next_app_partition, OTA_SIZE_UNKNOWN, &update_handle));
copy_app_partition(update_handle, cur_app_partition);
TEST_ESP_OK(esp_ota_end(update_handle));
TEST_ESP_OK(esp_ota_set_boot_partition(next_app_partition));
}
/* @brief Erase otadata partition
*/
static void erase_ota_data(void)
{
const esp_partition_t *data_partition = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_OTA, NULL);
TEST_ASSERT_NOT_EQUAL(NULL, data_partition);
TEST_ESP_OK(esp_partition_erase_range(data_partition, 0, 2 * SPI_FLASH_SEC_SIZE));
}
/* @brief Reboots ESP using mode deep sleep. This mode guaranty that RTC_DATA_ATTR variables is not reset.
*/
static void reboot_as_deep_sleep(void)
{
esp_sleep_enable_timer_wakeup(2000);
esp_deep_sleep_start();
}
/* @brief Copies a current app to next partition (OTA0-15), after that ESP is rebooting and run this (the next) OTAx.
*/
static void copy_current_app_to_next_part_and_reboot()
{
const esp_partition_t *cur_app = esp_ota_get_running_partition();
copy_current_app_to_next_part(cur_app, get_next_update_partition());
reboot_as_deep_sleep();
}
/* @brief Get running app.
*
* @return The next partition of OTA(OTA0-15).
*/
static const esp_partition_t* get_running_firmware(void)
{
const esp_partition_t *configured = esp_ota_get_boot_partition();
const esp_partition_t *running = esp_ota_get_running_partition();
ESP_LOGI(TAG, "Running partition type %d subtype %d (offset 0x%08x)",
running->type, running->subtype, running->address);
ESP_LOGI(TAG, "Configured partition type %d subtype %d (offset 0x%08x)",
configured->type, configured->subtype, configured->address);
TEST_ASSERT_NOT_EQUAL(NULL, configured);
TEST_ASSERT_NOT_EQUAL(NULL, running);
if (running->subtype != ESP_PARTITION_SUBTYPE_APP_TEST) {
TEST_ASSERT_EQUAL_PTR(running, configured);
}
return running;
}
// type of a corrupt ota_data
typedef enum {
CORR_CRC_1_SECTOR_OTA_DATA = (1 << 0), /*!< Corrupt CRC only 1 sector of ota_data */
CORR_CRC_2_SECTOR_OTA_DATA = (1 << 1), /*!< Corrupt CRC only 2 sector of ota_data */
} corrupt_ota_data_t;
/* @brief Get two copies ota_data from otadata partition.
*
* @param[in] otadata_partition - otadata partition.
* @param[out] ota_data_0 - First copy from otadata_partition.
* @param[out] ota_data_1 - Second copy from otadata_partition.
*/
static void get_ota_data(const esp_partition_t *otadata_partition, esp_ota_select_entry_t *ota_data_0, esp_ota_select_entry_t *ota_data_1)
{
uint32_t offset = otadata_partition->address;
uint32_t size = otadata_partition->size;
if (offset != 0) {
const esp_ota_select_entry_t *ota_select_map;
ota_select_map = bootloader_mmap(offset, size);
TEST_ASSERT_NOT_EQUAL(NULL, ota_select_map);
memcpy(ota_data_0, ota_select_map, sizeof(esp_ota_select_entry_t));
memcpy(ota_data_1, (uint8_t *)ota_select_map + SPI_FLASH_SEC_SIZE, sizeof(esp_ota_select_entry_t));
bootloader_munmap(ota_select_map);
}
}
/* @brief Writes a ota_data into required sector of otadata_partition.
*
* @param[in] otadata_partition - Partition information otadata.
* @param[in] ota_data - otadata structure.
* @param[in] sec_id - Sector number 0 or 1.
*/
static void write_ota_data(const esp_partition_t *otadata_partition, esp_ota_select_entry_t *ota_data, int sec_id)
{
esp_partition_write(otadata_partition, SPI_FLASH_SEC_SIZE * sec_id, &ota_data[sec_id], sizeof(esp_ota_select_entry_t));
}
/* @brief Makes a corrupt of ota_data.
* @param[in] err - type error
*/
static void corrupt_ota_data(corrupt_ota_data_t err)
{
esp_ota_select_entry_t ota_data[2];
const esp_partition_t *otadata_partition = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_OTA, NULL);
TEST_ASSERT_NOT_EQUAL(NULL, otadata_partition);
get_ota_data(otadata_partition, &ota_data[0], &ota_data[1]);
if (err & CORR_CRC_1_SECTOR_OTA_DATA) {
ota_data[0].crc = 0;
}
if (err & CORR_CRC_2_SECTOR_OTA_DATA) {
ota_data[1].crc = 0;
}
TEST_ESP_OK(esp_partition_erase_range(otadata_partition, 0, otadata_partition->size));
write_ota_data(otadata_partition, &ota_data[0], 0);
write_ota_data(otadata_partition, &ota_data[1], 1);
}
#if defined(CONFIG_BOOTLOADER_FACTORY_RESET) || defined(CONFIG_BOOTLOADER_APP_TEST)
/* @brief Sets the pin number to output and sets output level as low. After reboot (deep sleep) this pin keep the same level.
*
* The output level of the pad will be force locked and can not be changed.
* Power down or call gpio_hold_dis will disable this function.
*
* @param[in] num_pin - Pin number
*/
static void set_output_pin(uint32_t num_pin)
{
TEST_ESP_OK(gpio_hold_dis(num_pin));
gpio_config_t io_conf;
io_conf.intr_type = GPIO_PIN_INTR_DISABLE;
io_conf.mode = GPIO_MODE_OUTPUT;
io_conf.pin_bit_mask = (1ULL << num_pin);
io_conf.pull_down_en = 0;
io_conf.pull_up_en = 0;
TEST_ESP_OK(gpio_config(&io_conf));
TEST_ESP_OK(gpio_set_level(num_pin, 0));
TEST_ESP_OK(gpio_hold_en(num_pin));
}
/* @brief Unset the pin number hold function.
*/
static void reset_output_pin(uint32_t num_pin)
{
TEST_ESP_OK(gpio_hold_dis(num_pin));
TEST_ESP_OK(gpio_reset_pin(num_pin));
}
#endif
static void mark_app_valid(void)
{
#ifdef CONFIG_APP_ROLLBACK_ENABLE
TEST_ESP_OK(esp_ota_mark_app_valid_cancel_rollback());
#endif
}
/* @brief Checks and prepares the partition so that the factory app is launched after that.
*/
static void start_test(void)
{
ESP_LOGI(TAG, "boot count 1 - reset");
boot_count = 1;
erase_ota_data();
reboot_as_deep_sleep();
}
static void test_flow1(void)
{
boot_count++;
ESP_LOGI(TAG, "boot count %d", boot_count);
const esp_partition_t *cur_app = get_running_firmware();
switch (boot_count) {
case 2:
ESP_LOGI(TAG, "Factory");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_FACTORY, cur_app->subtype);
copy_current_app_to_next_part_and_reboot(cur_app);
break;
case 3:
ESP_LOGI(TAG, "OTA0");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_OTA_0, cur_app->subtype);
mark_app_valid();
copy_current_app_to_next_part_and_reboot(cur_app);
break;
case 4:
ESP_LOGI(TAG, "OTA1");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_OTA_1, cur_app->subtype);
mark_app_valid();
copy_current_app_to_next_part_and_reboot(cur_app);
break;
case 5:
ESP_LOGI(TAG, "OTA0");
mark_app_valid();
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_OTA_0, cur_app->subtype);
erase_ota_data();
break;
default:
erase_ota_data();
TEST_FAIL_MESSAGE("Unexpected stage");
break;
}
}
// 1 Stage: After POWER_RESET erase OTA_DATA for this test -> reboot through deep sleep.
// 2 Stage: run factory -> check it -> copy factory to OTA0 -> reboot --//--
// 3 Stage: run OTA0 -> check it -> copy OTA0 to OTA1 -> reboot --//--
// 4 Stage: run OTA1 -> check it -> copy OTA1 to OTA0 -> reboot --//--
// 5 Stage: run OTA0 -> check it -> erase OTA_DATA for next tests -> PASS
TEST_CASE_MULTIPLE_STAGES("Switching between factory, OTA0, OTA1, OTA0", "[app_update][reset=DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET]", start_test, test_flow1, test_flow1, test_flow1, test_flow1);
static void test_flow2(void)
{
boot_count++;
ESP_LOGI(TAG, "boot count %d", boot_count);
const esp_partition_t *cur_app = get_running_firmware();
switch (boot_count) {
case 2:
ESP_LOGI(TAG, "Factory");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_FACTORY, cur_app->subtype);
copy_current_app_to_next_part_and_reboot(cur_app);
break;
case 3:
ESP_LOGI(TAG, "OTA0");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_OTA_0, cur_app->subtype);
mark_app_valid();
copy_current_app_to_next_part(cur_app, get_next_update_partition());
corrupt_ota_data(CORR_CRC_1_SECTOR_OTA_DATA);
reboot_as_deep_sleep();
break;
case 4:
ESP_LOGI(TAG, "Factory");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_FACTORY, cur_app->subtype);
erase_ota_data();
break;
default:
erase_ota_data();
TEST_FAIL_MESSAGE("Unexpected stage");
break;
}
}
// 1 Stage: After POWER_RESET erase OTA_DATA for this test -> reboot through deep sleep.
// 2 Stage: run factory -> check it -> copy factory to OTA0 -> reboot --//--
// 3 Stage: run OTA0 -> check it -> corrupt ota data -> reboot --//--
// 4 Stage: run factory -> check it -> erase OTA_DATA for next tests -> PASS
TEST_CASE_MULTIPLE_STAGES("Switching between factory, OTA0, corrupt ota_sec1, factory", "[app_update][reset=DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET]", start_test, test_flow2, test_flow2, test_flow2);
static void test_flow3(void)
{
boot_count++;
ESP_LOGI(TAG, "boot count %d", boot_count);
const esp_partition_t *cur_app = get_running_firmware();
switch (boot_count) {
case 2:
ESP_LOGI(TAG, "Factory");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_FACTORY, cur_app->subtype);
copy_current_app_to_next_part_and_reboot(cur_app);
break;
case 3:
ESP_LOGI(TAG, "OTA0");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_OTA_0, cur_app->subtype);
mark_app_valid();
copy_current_app_to_next_part_and_reboot(cur_app);
break;
case 4:
ESP_LOGI(TAG, "OTA1");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_OTA_1, cur_app->subtype);
mark_app_valid();
copy_current_app_to_next_part(cur_app, get_next_update_partition());
corrupt_ota_data(CORR_CRC_2_SECTOR_OTA_DATA);
reboot_as_deep_sleep();
break;
case 5:
ESP_LOGI(TAG, "OTA0");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_OTA_0, cur_app->subtype);
erase_ota_data();
break;
default:
erase_ota_data();
TEST_FAIL_MESSAGE("Unexpected stage");
break;
}
}
// 1 Stage: After POWER_RESET erase OTA_DATA for this test -> reboot through deep sleep.
// 2 Stage: run factory -> check it -> copy factory to OTA0 -> reboot --//--
// 3 Stage: run OTA0 -> check it -> copy OTA0 to OTA1 -> reboot --//--
// 3 Stage: run OTA1 -> check it -> corrupt ota sector2 -> reboot --//--
// 4 Stage: run OTA0 -> check it -> erase OTA_DATA for next tests -> PASS
TEST_CASE_MULTIPLE_STAGES("Switching between factory, OTA0, OTA1, currupt ota_sec2, OTA0", "[app_update][reset=DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET]", start_test, test_flow3, test_flow3, test_flow3, test_flow3);
#ifdef CONFIG_BOOTLOADER_FACTORY_RESET
#define STORAGE_NAMESPACE "update_ota"
static void test_flow4(void)
{
boot_count++;
ESP_LOGI(TAG, "boot count %d", boot_count);
const esp_partition_t *cur_app = get_running_firmware();
nvs_handle handle = 0;
int boot_count_nvs = 0;
switch (boot_count) {
case 2:
ESP_LOGI(TAG, "Factory");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_FACTORY, cur_app->subtype);
TEST_ESP_OK(nvs_flash_erase());
TEST_ESP_OK(nvs_flash_init());
TEST_ESP_OK(nvs_open(STORAGE_NAMESPACE, NVS_READWRITE, &handle));
TEST_ESP_OK(nvs_set_i32(handle, "boot_count", boot_count));
TEST_ESP_OK(nvs_commit(handle));
nvs_close(handle);
nvs_flash_deinit();
copy_current_app_to_next_part_and_reboot(cur_app);
break;
case 3:
ESP_LOGI(TAG, "OTA0");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_OTA_0, cur_app->subtype);
mark_app_valid();
TEST_ESP_OK(nvs_flash_init());
TEST_ESP_OK(nvs_open(STORAGE_NAMESPACE, NVS_READWRITE, &handle));
TEST_ESP_OK(nvs_get_i32(handle, "boot_count", &boot_count_nvs));
TEST_ASSERT_EQUAL(boot_count_nvs + 1, boot_count);
nvs_close(handle);
nvs_flash_deinit();
set_output_pin(CONFIG_BOOTLOADER_NUM_PIN_FACTORY_RESET);
reboot_as_deep_sleep();
break;
case 4:
reset_output_pin(CONFIG_BOOTLOADER_NUM_PIN_FACTORY_RESET);
ESP_LOGI(TAG, "Factory");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_FACTORY, cur_app->subtype);
int boot_count_nvs;
TEST_ESP_OK(nvs_flash_init());
TEST_ESP_OK(nvs_open(STORAGE_NAMESPACE, NVS_READWRITE, &handle));
TEST_ESP_ERR(ESP_ERR_NVS_NOT_FOUND, nvs_get_i32(handle, "boot_count", &boot_count_nvs));
nvs_close(handle);
nvs_flash_deinit();
erase_ota_data();
break;
default:
reset_output_pin(CONFIG_BOOTLOADER_NUM_PIN_FACTORY_RESET);
erase_ota_data();
TEST_FAIL_MESSAGE("Unexpected stage");
break;
}
}
// 1 Stage: After POWER_RESET erase OTA_DATA for this test -> reboot through deep sleep.
// 2 Stage: run factory -> check it -> copy factory to OTA0 -> reboot --//--
// 3 Stage: run OTA0 -> check it -> set_pin_factory_reset -> reboot --//--
// 4 Stage: run factory -> check it -> erase OTA_DATA for next tests -> PASS
TEST_CASE_MULTIPLE_STAGES("Switching between factory, OTA0, sets pin_factory_reset, factory", "[app_update][reset=DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET]", start_test, test_flow4, test_flow4, test_flow4);
#endif
#ifdef CONFIG_BOOTLOADER_APP_TEST
static void test_flow5(void)
{
boot_count++;
ESP_LOGI(TAG, "boot count %d", boot_count);
const esp_partition_t *cur_app = get_running_firmware();
switch (boot_count) {
case 2:
ESP_LOGI(TAG, "Factory");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_FACTORY, cur_app->subtype);
set_output_pin(CONFIG_BOOTLOADER_NUM_PIN_APP_TEST);
copy_partition(esp_partition_find_first(ESP_PARTITION_TYPE_APP, ESP_PARTITION_SUBTYPE_APP_TEST, NULL), cur_app);
esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_OTA, NULL);
reboot_as_deep_sleep();
break;
case 3:
reset_output_pin(CONFIG_BOOTLOADER_NUM_PIN_APP_TEST);
ESP_LOGI(TAG, "Test");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_TEST, cur_app->subtype);
reboot_as_deep_sleep();
break;
case 4:
ESP_LOGI(TAG, "Factory");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_FACTORY, cur_app->subtype);
erase_ota_data();
break;
default:
reset_output_pin(CONFIG_BOOTLOADER_NUM_PIN_APP_TEST);
erase_ota_data();
TEST_FAIL_MESSAGE("Unexpected stage");
break;
}
}
// 1 Stage: After POWER_RESET erase OTA_DATA for this test -> reboot through deep sleep.
// 2 Stage: run factory -> check it -> copy factory to Test and set pin_test_app -> reboot --//--
// 3 Stage: run test -> check it -> reset pin_test_app -> reboot --//--
// 4 Stage: run factory -> check it -> erase OTA_DATA for next tests -> PASS
TEST_CASE_MULTIPLE_STAGES("Switching between factory, test, factory", "[app_update][reset=DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET]", start_test, test_flow5, test_flow5, test_flow5);
#endif
static const esp_partition_t* app_update(void)
{
const esp_partition_t *cur_app = get_running_firmware();
const esp_partition_t* update_partition = esp_ota_get_next_update_partition(NULL);
TEST_ASSERT_NOT_NULL(update_partition);
esp_ota_handle_t update_handle = 0;
TEST_ESP_OK(esp_ota_begin(update_partition, OTA_SIZE_UNKNOWN, &update_handle));
copy_app_partition(update_handle, cur_app);
TEST_ESP_OK(esp_ota_end(update_handle));
TEST_ESP_OK(esp_ota_set_boot_partition(update_partition));
return update_partition;
}
static void test_rollback1(void)
{
boot_count++;
ESP_LOGI(TAG, "boot count %d", boot_count);
const esp_partition_t *cur_app = get_running_firmware();
esp_ota_img_states_t ota_state = 0x5555AAAA;
const esp_partition_t* update_partition = NULL;
switch (boot_count) {
case 2:
ESP_LOGI(TAG, "Factory");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_FACTORY, cur_app->subtype);
TEST_ASSERT_NULL(esp_ota_get_last_invalid_partition());
TEST_ESP_ERR(ESP_ERR_NOT_SUPPORTED, esp_ota_get_state_partition(cur_app, &ota_state));
update_partition = app_update();
TEST_ESP_OK(esp_ota_get_state_partition(update_partition, &ota_state));
#ifndef CONFIG_APP_ROLLBACK_ENABLE
TEST_ASSERT_EQUAL(ESP_OTA_IMG_UNDEFINED, ota_state);
#else
TEST_ASSERT_EQUAL(ESP_OTA_IMG_NEW, ota_state);
#endif
reboot_as_deep_sleep();
break;
case 3:
ESP_LOGI(TAG, "OTA0");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_OTA_0, cur_app->subtype);
TEST_ASSERT_NULL(esp_ota_get_last_invalid_partition());
TEST_ESP_OK(esp_ota_get_state_partition(cur_app, &ota_state));
#ifndef CONFIG_APP_ROLLBACK_ENABLE
TEST_ASSERT_EQUAL(ESP_OTA_IMG_UNDEFINED, ota_state);
#else
TEST_ASSERT_EQUAL(ESP_OTA_IMG_PENDING_VERIFY, ota_state);
#endif
TEST_ESP_OK(esp_ota_mark_app_valid_cancel_rollback());
TEST_ESP_OK(esp_ota_get_state_partition(cur_app, &ota_state));
TEST_ASSERT_EQUAL(ESP_OTA_IMG_VALID, ota_state);
reboot_as_deep_sleep();
break;
case 4:
ESP_LOGI(TAG, "OTA0");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_OTA_0, cur_app->subtype);
TEST_ESP_OK(esp_ota_get_state_partition(cur_app, &ota_state));
TEST_ASSERT_EQUAL(ESP_OTA_IMG_VALID, ota_state);
TEST_ESP_OK(esp_ota_mark_app_invalid_rollback_and_reboot());
break;
default:
erase_ota_data();
TEST_FAIL_MESSAGE("Unexpected stage");
break;
}
}
static void test_rollback1_1(void)
{
boot_count = 5;
esp_ota_img_states_t ota_state = 0x5555AAAA;
ESP_LOGI(TAG, "boot count %d", boot_count);
const esp_partition_t *cur_app = get_running_firmware();
ESP_LOGI(TAG, "Factory");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_FACTORY, cur_app->subtype);
const esp_partition_t *invalid_partition = esp_ota_get_last_invalid_partition();
const esp_partition_t* next_update_partition = esp_ota_get_next_update_partition(NULL);
TEST_ASSERT_NOT_NULL(invalid_partition);
TEST_ASSERT_NOT_NULL(next_update_partition);
TEST_ASSERT_EQUAL_PTR(invalid_partition, next_update_partition);
TEST_ESP_ERR(ESP_ERR_NOT_SUPPORTED, esp_ota_get_state_partition(cur_app, &ota_state));
TEST_ESP_OK(esp_ota_get_state_partition(invalid_partition, &ota_state));
TEST_ASSERT_EQUAL(ESP_OTA_IMG_INVALID, ota_state);
erase_ota_data();
}
// 1 Stage: After POWER_RESET erase OTA_DATA for this test -> reboot through deep sleep.
// 2 Stage: run factory -> check it -> copy factory to next app slot -> reboot --//--
// 3 Stage: run OTA0 -> check it -> esp_ota_mark_app_valid_cancel_rollback() -> reboot --//--
// 4 Stage: run OTA0 -> check it -> esp_ota_mark_app_invalid_rollback_and_reboot() -> reboot
// 5 Stage: run factory -> check it -> erase OTA_DATA for next tests -> PASS
TEST_CASE_MULTIPLE_STAGES("Test rollback. factory, OTA0, OTA0, rollback -> factory", "[app_update][reset=DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET, SW_CPU_RESET]", start_test, test_rollback1, test_rollback1, test_rollback1, test_rollback1_1);
static void test_rollback2(void)
{
boot_count++;
ESP_LOGI(TAG, "boot count %d", boot_count);
const esp_partition_t *cur_app = get_running_firmware();
esp_ota_img_states_t ota_state = 0x5555AAAA;
const esp_partition_t* update_partition = NULL;
switch (boot_count) {
case 2:
ESP_LOGI(TAG, "Factory");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_FACTORY, cur_app->subtype);
TEST_ASSERT_NULL(esp_ota_get_last_invalid_partition());
TEST_ESP_ERR(ESP_ERR_NOT_SUPPORTED, esp_ota_get_state_partition(cur_app, &ota_state));
update_partition = app_update();
TEST_ESP_OK(esp_ota_get_state_partition(update_partition, &ota_state));
#ifndef CONFIG_APP_ROLLBACK_ENABLE
TEST_ASSERT_EQUAL(ESP_OTA_IMG_UNDEFINED, ota_state);
#else
TEST_ASSERT_EQUAL(ESP_OTA_IMG_NEW, ota_state);
#endif
reboot_as_deep_sleep();
break;
case 3:
ESP_LOGI(TAG, "OTA0");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_OTA_0, cur_app->subtype);
TEST_ASSERT_NULL(esp_ota_get_last_invalid_partition());
TEST_ESP_OK(esp_ota_get_state_partition(cur_app, &ota_state));
#ifndef CONFIG_APP_ROLLBACK_ENABLE
TEST_ASSERT_EQUAL(ESP_OTA_IMG_UNDEFINED, ota_state);
#else
TEST_ASSERT_EQUAL(ESP_OTA_IMG_PENDING_VERIFY, ota_state);
#endif
TEST_ESP_OK(esp_ota_mark_app_valid_cancel_rollback());
TEST_ASSERT_NULL(esp_ota_get_last_invalid_partition());
TEST_ESP_OK(esp_ota_get_state_partition(cur_app, &ota_state));
TEST_ASSERT_EQUAL(ESP_OTA_IMG_VALID, ota_state);
update_partition = app_update();
TEST_ESP_OK(esp_ota_get_state_partition(update_partition, &ota_state));
#ifndef CONFIG_APP_ROLLBACK_ENABLE
TEST_ASSERT_EQUAL(ESP_OTA_IMG_UNDEFINED, ota_state);
#else
TEST_ASSERT_EQUAL(ESP_OTA_IMG_NEW, ota_state);
#endif
reboot_as_deep_sleep();
break;
case 4:
ESP_LOGI(TAG, "OTA1");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_OTA_1, cur_app->subtype);
TEST_ASSERT_NULL(esp_ota_get_last_invalid_partition());
TEST_ESP_OK(esp_ota_get_state_partition(cur_app, &ota_state));
#ifndef CONFIG_APP_ROLLBACK_ENABLE
TEST_ASSERT_EQUAL(ESP_OTA_IMG_UNDEFINED, ota_state);
TEST_ESP_OK(esp_ota_mark_app_invalid_rollback_and_reboot());
#else
TEST_ASSERT_EQUAL(ESP_OTA_IMG_PENDING_VERIFY, ota_state);
reboot_as_deep_sleep();
#endif
break;
default:
erase_ota_data();
TEST_FAIL_MESSAGE("Unexpected stage");
break;
}
}
static void test_rollback2_1(void)
{
boot_count = 5;
esp_ota_img_states_t ota_state = 0x5555AAAA;
ESP_LOGI(TAG, "boot count %d", boot_count);
const esp_partition_t *cur_app = get_running_firmware();
ESP_LOGI(TAG, "OTA0");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_OTA_0, cur_app->subtype);
const esp_partition_t *invalid_partition = esp_ota_get_last_invalid_partition();
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_OTA_1, invalid_partition->subtype);
const esp_partition_t* next_update_partition = esp_ota_get_next_update_partition(NULL);
TEST_ASSERT_NOT_NULL(invalid_partition);
TEST_ASSERT_NOT_NULL(next_update_partition);
TEST_ASSERT_EQUAL_PTR(invalid_partition, next_update_partition);
TEST_ESP_OK(esp_ota_get_state_partition(cur_app, &ota_state));
TEST_ASSERT_EQUAL(ESP_OTA_IMG_VALID, ota_state);
TEST_ESP_OK(esp_ota_get_state_partition(invalid_partition, &ota_state));
#ifndef CONFIG_APP_ROLLBACK_ENABLE
TEST_ASSERT_EQUAL(ESP_OTA_IMG_INVALID, ota_state);
#else
TEST_ASSERT_EQUAL(ESP_OTA_IMG_ABORTED, ota_state);
#endif
erase_ota_data();
}
// 1 Stage: After POWER_RESET erase OTA_DATA for this test -> reboot through deep sleep.
// 2 Stage: run factory -> check it -> copy factory to next app slot -> reboot --//--
// 3 Stage: run OTA0 -> check it -> esp_ota_mark_app_valid_cancel_rollback(), copy to next app slot -> reboot --//--
// 4 Stage: run OTA1 -> check it -> PENDING_VERIFY/esp_ota_mark_app_invalid_rollback_and_reboot() -> reboot
// 5 Stage: run OTA0(rollback) -> check it -> erase OTA_DATA for next tests -> PASS
TEST_CASE_MULTIPLE_STAGES("Test rollback. factory, OTA0, OTA1, rollback -> OTA0", "[app_update][reset=DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET, SW_CPU_RESET]", start_test, test_rollback2, test_rollback2, test_rollback2, test_rollback2_1);
static void test_erase_last_app_flow(void)
{
boot_count++;
ESP_LOGI(TAG, "boot count %d", boot_count);
const esp_partition_t *cur_app = get_running_firmware();
switch (boot_count) {
case 2:
ESP_LOGI(TAG, "Factory");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_FACTORY, cur_app->subtype);
app_update();
reboot_as_deep_sleep();
break;
case 3:
ESP_LOGI(TAG, "OTA0");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_OTA_0, cur_app->subtype);
mark_app_valid();
app_update();
reboot_as_deep_sleep();
break;
case 4:
ESP_LOGI(TAG, "OTA1");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_OTA_1, cur_app->subtype);
TEST_ESP_OK(esp_ota_erase_last_boot_app_partition());
TEST_ESP_OK(esp_ota_mark_app_invalid_rollback_and_reboot());
reboot_as_deep_sleep();
break;
default:
erase_ota_data();
TEST_FAIL_MESSAGE("Unexpected stage");
break;
}
}
static void test_erase_last_app_rollback(void)
{
boot_count = 5;
ESP_LOGI(TAG, "boot count %d", boot_count);
const esp_partition_t *cur_app = get_running_firmware();
ESP_LOGI(TAG, "erase_last_app");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_FACTORY, cur_app->subtype);
TEST_ESP_ERR(ESP_FAIL, esp_ota_erase_last_boot_app_partition());
erase_ota_data();
}
// 1 Stage: After POWER_RESET erase OTA_DATA for this test -> reboot through deep sleep.
// 2 Stage: run factory -> check it -> copy factory to OTA0 -> reboot --//--
// 3 Stage: run OTA0 -> check it -> copy factory to OTA1 -> reboot --//--
// 4 Stage: run OTA1 -> check it -> erase OTA0 and rollback -> reboot
// 5 Stage: run factory -> check it -> erase OTA_DATA for next tests -> PASS
TEST_CASE_MULTIPLE_STAGES("Test erase_last_boot_app_partition. factory, OTA1, OTA0, factory", "[app_update][reset=DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET, SW_CPU_RESET]", start_test, test_erase_last_app_flow, test_erase_last_app_flow, test_erase_last_app_flow, test_erase_last_app_rollback);

View File

@ -0,0 +1,6 @@
set(COMPONENT_ADD_INCLUDEDIRS asio/asio/include port/include)
set(COMPONENT_SRCS "asio/asio/src/asio.cpp")
set(COMPONENT_REQUIRES lwip)
register_component()

1
components/asio/asio Submodule

Submodule components/asio/asio added at 55efc179b7

View File

@ -0,0 +1,6 @@
COMPONENT_ADD_INCLUDEDIRS := asio/asio/include port/include
COMPONENT_PRIV_INCLUDEDIRS := private_include
COMPONENT_SRCDIRS := asio/asio/src
COMPONENT_OBJEXCLUDE := asio/asio/src/asio_ssl.o
COMPONENT_SUBMODULES += asio

View File

@ -0,0 +1,45 @@
// Copyright 2018 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#ifndef _ESP_ASIO_CONFIG_H_
#define _ESP_ASIO_CONFIG_H_
//
// Enabling exceptions only when they are enabled in menuconfig
//
# include <sdkconfig.h>
# ifndef CONFIG_CXX_EXCEPTIONS
# define ASIO_NO_EXCEPTIONS
# endif // CONFIG_CXX_EXCEPTIONS
//
// LWIP compatifility inet and address macros/functions
//
# define LWIP_COMPAT_SOCKET_INET 1
# define LWIP_COMPAT_SOCKET_ADDR 1
//
// Specific ASIO feature flags
//
# define ASIO_DISABLE_SERIAL_PORT
# define ASIO_SEPARATE_COMPILATION
# define ASIO_STANDALONE
# define ASIO_NO_TYPEID
# define ASIO_DISABLE_SIGNAL
# define ASIO_HAS_PTHREADS
# define ASIO_DISABLE_EPOLL
# define ASIO_DISABLE_EVENTFD
# define ASIO_DISABLE_SIGNAL
# define ASIO_DISABLE_SIGACTION
#endif // _ESP_ASIO_CONFIG_H_

View File

@ -0,0 +1,39 @@
// Copyright 2018 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#ifndef _ESP_EXCEPTION_H_
#define _ESP_EXCEPTION_H_
//
// This exception stub is enabled only if exceptions are disabled in menuconfig
//
#if !defined(CONFIG_CXX_EXCEPTIONS) && defined (ASIO_NO_EXCEPTIONS)
#include "esp_log.h"
//
// asio exception stub
//
namespace asio {
namespace detail {
template <typename Exception>
void throw_exception(const Exception& e)
{
ESP_LOGE("esp32_asio_exception", "Caught exception: %s!", e.what());
abort();
}
}}
#endif // CONFIG_CXX_EXCEPTIONS==1 && defined (ASIO_NO_EXCEPTIONS)
#endif // _ESP_EXCEPTION_H_

View File

@ -0,0 +1,30 @@
if(CONFIG_AWS_IOT_SDK)
set(COMPONENT_ADD_INCLUDEDIRS "include aws-iot-device-sdk-embedded-C/include")
set(aws_sdk_dir aws-iot-device-sdk-embedded-C/src)
set(COMPONENT_SRCS "${aws_sdk_dir}/aws_iot_jobs_interface.c"
"${aws_sdk_dir}/aws_iot_jobs_json.c"
"${aws_sdk_dir}/aws_iot_jobs_topics.c"
"${aws_sdk_dir}/aws_iot_jobs_types.c"
"${aws_sdk_dir}/aws_iot_json_utils.c"
"${aws_sdk_dir}/aws_iot_mqtt_client.c"
"${aws_sdk_dir}/aws_iot_mqtt_client_common_internal.c"
"${aws_sdk_dir}/aws_iot_mqtt_client_connect.c"
"${aws_sdk_dir}/aws_iot_mqtt_client_publish.c"
"${aws_sdk_dir}/aws_iot_mqtt_client_subscribe.c"
"${aws_sdk_dir}/aws_iot_mqtt_client_unsubscribe.c"
"${aws_sdk_dir}/aws_iot_mqtt_client_yield.c"
"${aws_sdk_dir}/aws_iot_shadow.c"
"${aws_sdk_dir}/aws_iot_shadow_actions.c"
"${aws_sdk_dir}/aws_iot_shadow_json.c"
"${aws_sdk_dir}/aws_iot_shadow_records.c"
"port/network_mbedtls_wrapper.c"
"port/threads_freertos.c"
"port/timer.c")
else()
message(STATUS "Building empty aws_iot component due to configuration")
endif()
set(COMPONENT_REQUIRES "mbedtls")
set(COMPONENT_PRIV_REQUIRES "jsmn")
register_component()

View File

@ -1,8 +1,8 @@
menuconfig AWS_IOT_SDK
bool "Amazon Web Services IoT Platform"
help
Select this option to enable support for the AWS IoT platform,
via the esp-idf component for the AWS IoT Device C SDK.
Select this option to enable support for the AWS IoT platform,
via the esp-idf component for the AWS IoT Device C SDK.
config AWS_IOT_MQTT_HOST
string "AWS IoT Endpoint Hostname"
@ -30,3 +30,135 @@ config AWS_IOT_MQTT_PORT
If you need per-device port numbers for different regions, you can
override the default port number in your app.
config AWS_IOT_MQTT_TX_BUF_LEN
int "MQTT TX Buffer Length"
depends on AWS_IOT_SDK
default 512
range 32 65536
help
Maximum MQTT transmit buffer size. This is the maximum MQTT
message length (including protocol overhead) which can be sent.
Sending longer messages will fail.
config AWS_IOT_MQTT_RX_BUF_LEN
int "MQTT RX Buffer Length"
depends on AWS_IOT_SDK
default 512
range 32 65536
help
Maximum MQTT receive buffer size. This is the maximum MQTT
message length (including protocol overhead) which can be
received.
Longer messages are dropped.
config AWS_IOT_MQTT_NUM_SUBSCRIBE_HANDLERS
int "Maximum MQTT Topic Filters"
depends on AWS_IOT_SDK
default 5
range 1 100
help
Maximum number of concurrent MQTT topic filters.
config AWS_IOT_MQTT_MIN_RECONNECT_WAIT_INTERVAL
int "Auto reconnect initial interval (ms)"
depends on AWS_IOT_SDK
default 1000
range 10 3600000
help
Initial delay before making first reconnect attempt, if the AWS IoT connection fails.
Client will perform exponential backoff, starting from this value.
config AWS_IOT_MQTT_MAX_RECONNECT_WAIT_INTERVAL
int "Auto reconnect maximum interval (ms)"
depends on AWS_IOT_SDK
default 128000
range 10 3600000
help
Maximum delay between reconnection attempts. If the exponentially increased delay
interval reaches this value, the client will stop automatically attempting to reconnect.
menu "Thing Shadow"
depends on AWS_IOT_SDK
config AWS_IOT_OVERRIDE_THING_SHADOW_RX_BUFFER
bool "Override Shadow RX buffer size"
depends on AWS_IOT_SDK
default n
help
Allows setting a different Thing Shadow RX buffer
size. This is the maximum size of a Thing Shadow
message in bytes, plus one.
If not overridden, the default value is the MQTT RX Buffer length plus one. If overriden, do not set
higher than the default value.
config AWS_IOT_SHADOW_MAX_SIZE_OF_RX_BUFFER
int "Maximum RX Buffer (bytes)"
depends on AWS_IOT_OVERRIDE_THING_SHADOW_RX_BUFFER
default 513
range 32 65536
help
Allows setting a different Thing Shadow RX buffer size.
This is the maximum size of a Thing Shadow message in bytes,
plus one.
config AWS_IOT_SHADOW_MAX_SIZE_OF_UNIQUE_CLIENT_ID_BYTES
int "Maximum unique client ID size (bytes)"
depends on AWS_IOT_SDK
default 80
range 4 1000
help
Maximum size of the Unique Client Id.
config AWS_IOT_SHADOW_MAX_SIMULTANEOUS_ACKS
int "Maximum simultaneous responses"
depends on AWS_IOT_SDK
default 10
range 1 100
help
At any given time we will wait for this many responses. This will correlate to the rate at which the
shadow actions are requested
config AWS_IOT_SHADOW_MAX_SIMULTANEOUS_THINGNAMES
int "Maximum simultaneous Thing Name operations"
depends on AWS_IOT_SDK
default 10
range 1 100
help
We could perform shadow action on any thing Name and this is maximum Thing Names we can act on at any
given time
config AWS_IOT_SHADOW_MAX_JSON_TOKEN_EXPECTED
int "Maximum expected JSON tokens"
depends on AWS_IOT_SDK
default 120
help
These are the max tokens that is expected to be in the Shadow JSON document. Includes the metadata which
is published
config AWS_IOT_SHADOW_MAX_SHADOW_TOPIC_LENGTH_WITHOUT_THINGNAME
int "Maximum topic length (not including Thing Name)"
depends on AWS_IOT_SDK
default 60
range 10 1000
help
All shadow actions have to be published or subscribed to a topic which is of the format
$aws/things/{thingName}/shadow/update/accepted. This refers to the size of the topic without the Thing
Name
config AWS_IOT_SHADOW_MAX_SIZE_OF_THING_NAME
int "Maximum Thing Name length"
depends on AWS_IOT_SDK
default 20
range 4 1000
help
Maximum length of a Thing Name.
endmenu # Thing Shadow

View File

@ -37,24 +37,29 @@
#define AWS_IOT_MY_THING_NAME "ESP32" ///< Thing Name of the Shadow this device is associated with
// MQTT PubSub
#define AWS_IOT_MQTT_TX_BUF_LEN 512 ///< Any time a message is sent out through the MQTT layer. The message is copied into this buffer anytime a publish is done. This will also be used in the case of Thing Shadow
#define AWS_IOT_MQTT_RX_BUF_LEN 512 ///< Any message that comes into the device should be less than this buffer size. If a received message is bigger than this buffer size the message will be dropped.
#define AWS_IOT_MQTT_NUM_SUBSCRIBE_HANDLERS 5 ///< Maximum number of topic filters the MQTT client can handle at any given time. This should be increased appropriately when using Thing Shadow
#define AWS_IOT_MQTT_TX_BUF_LEN CONFIG_AWS_IOT_MQTT_TX_BUF_LEN ///< Any time a message is sent out through the MQTT layer. The message is copied into this buffer anytime a publish is done. This will also be used in the case of Thing Shadow
#define AWS_IOT_MQTT_RX_BUF_LEN CONFIG_AWS_IOT_MQTT_RX_BUF_LEN ///< Any message that comes into the device should be less than this buffer size. If a received message is bigger than this buffer size the message will be dropped.
#define AWS_IOT_MQTT_NUM_SUBSCRIBE_HANDLERS CONFIG_AWS_IOT_MQTT_NUM_SUBSCRIBE_HANDLERS ///< Maximum number of topic filters the MQTT client can handle at any given time. This should be increased appropriately when using Thing Shadow
// Thing Shadow specific configs
#define SHADOW_MAX_SIZE_OF_RX_BUFFER (AWS_IOT_MQTT_RX_BUF_LEN + 1) ///< Maximum size of the SHADOW buffer to store the received Shadow message
#ifdef CONFIG_AWS_IOT_OVERRIDE_THING_SHADOW_RX_BUFFER
#define SHADOW_MAX_SIZE_OF_RX_BUFFER CONFIG_AWS_IOT_SHADOW_MAX_SIZE_OF_RX_BUFFER ///< Maximum size of the SHADOW buffer to store the received Shadow message, including NULL terminating byte
#else
#define SHADOW_MAX_SIZE_OF_RX_BUFFER (AWS_IOT_MQTT_RX_BUF_LEN + 1)
#endif
#define MAX_SIZE_OF_UNIQUE_CLIENT_ID_BYTES 80 ///< Maximum size of the Unique Client Id. For More info on the Client Id refer \ref response "Acknowledgments"
#define MAX_SIZE_CLIENT_ID_WITH_SEQUENCE (MAX_SIZE_OF_UNIQUE_CLIENT_ID_BYTES + 10) ///< This is size of the extra sequence number that will be appended to the Unique client Id
#define MAX_SIZE_CLIENT_TOKEN_CLIENT_SEQUENCE (MAX_SIZE_CLIENT_ID_WITH_SEQUENCE + 20) ///< This is size of the the total clientToken key and value pair in the JSON
#define MAX_ACKS_TO_COMEIN_AT_ANY_GIVEN_TIME 10 ///< At Any given time we will wait for this many responses. This will correlate to the rate at which the shadow actions are requested
#define MAX_THINGNAME_HANDLED_AT_ANY_GIVEN_TIME 10 ///< We could perform shadow action on any thing Name and this is maximum Thing Names we can act on at any given time
#define MAX_JSON_TOKEN_EXPECTED 120 ///< These are the max tokens that is expected to be in the Shadow JSON document. Include the metadata that gets published
#define MAX_SHADOW_TOPIC_LENGTH_WITHOUT_THINGNAME 60 ///< All shadow actions have to be published or subscribed to a topic which is of the formablogt $aws/things/{thingName}/shadow/update/accepted. This refers to the size of the topic without the Thing Name
#define MAX_SIZE_OF_THING_NAME 20 ///< The Thing Name should not be bigger than this value. Modify this if the Thing Name needs to be bigger
#define MAX_ACKS_TO_COMEIN_AT_ANY_GIVEN_TIME CONFIG_AWS_IOT_SHADOW_MAX_SIMULTANEOUS_ACKS ///< At Any given time we will wait for this many responses. This will correlate to the rate at which the shadow actions are requested
#define MAX_THINGNAME_HANDLED_AT_ANY_GIVEN_TIME CONFIG_AWS_IOT_SHADOW_MAX_SIMULTANEOUS_THINGNAMES ///< We could perform shadow action on any thing Name and this is maximum Thing Names we can act on at any given time
#define MAX_JSON_TOKEN_EXPECTED CONFIG_AWS_IOT_SHADOW_MAX_JSON_TOKEN_EXPECTED ///< These are the max tokens that is expected to be in the Shadow JSON document. Include the metadata that gets published
#define MAX_SHADOW_TOPIC_LENGTH_WITHOUT_THINGNAME CONFIG_AWS_IOT_SHADOW_MAX_SHADOW_TOPIC_LENGTH_WITHOUT_THINGNAME ///< All shadow actions have to be published or subscribed to a topic which is of the formablogt $aws/things/{thingName}/shadow/update/accepted. This refers to the size of the topic without the Thing Name
#define MAX_SIZE_OF_THING_NAME CONFIG_AWS_IOT_SHADOW_MAX_SIZE_OF_THING_NAME ///< The Thing Name should not be bigger than this value. Modify this if the Thing Name needs to be bigger
#define MAX_SHADOW_TOPIC_LENGTH_BYTES (MAX_SHADOW_TOPIC_LENGTH_WITHOUT_THINGNAME + MAX_SIZE_OF_THING_NAME) ///< This size includes the length of topic with Thing Name
// Auto Reconnect specific config
#define AWS_IOT_MQTT_MIN_RECONNECT_WAIT_INTERVAL 1000 ///< Minimum time before the First reconnect attempt is made as part of the exponential back-off algorithm
#define AWS_IOT_MQTT_MAX_RECONNECT_WAIT_INTERVAL 128000 ///< Maximum time interval after which exponential back-off will stop attempting to reconnect.
#define AWS_IOT_MQTT_MIN_RECONNECT_WAIT_INTERVAL CONFIG_AWS_IOT_MQTT_MIN_RECONNECT_WAIT_INTERVAL ///< Minimum time before the First reconnect attempt is made as part of the exponential back-off algorithm
#define AWS_IOT_MQTT_MAX_RECONNECT_WAIT_INTERVAL CONFIG_AWS_IOT_MQTT_MAX_RECONNECT_WAIT_INTERVAL ///< Maximum time interval after which exponential back-off will stop attempting to reconnect.
#endif /* _AWS_IOT_CONFIG_H_ */

View File

@ -23,7 +23,7 @@
#endif
#include "mbedtls/platform.h"
#include "mbedtls/net.h"
#include "mbedtls/net_sockets.h"
#include "mbedtls/ssl.h"
#include "mbedtls/entropy.h"
#include "mbedtls/ctr_drbg.h"

View File

@ -236,6 +236,17 @@ IoT_Error_t iot_tls_connect(Network *pNetwork, TLSConnectParams *params) {
mbedtls_ssl_conf_read_timeout(&(tlsDataParams->conf), pNetwork->tlsConnectParams.timeout_ms);
#ifdef CONFIG_MBEDTLS_SSL_ALPN
/* Use the AWS IoT ALPN extension for MQTT, if port 443 is requested */
if (pNetwork->tlsConnectParams.DestinationPort == 443) {
const char *alpnProtocols[] = { "x-amzn-mqtt-ca", NULL };
if ((ret = mbedtls_ssl_conf_alpn_protocols(&(tlsDataParams->conf), alpnProtocols)) != 0) {
ESP_LOGE(TAG, "failed! mbedtls_ssl_conf_alpn_protocols returned -0x%x", -ret);
return SSL_CONNECTION_ERROR;
}
}
#endif
if((ret = mbedtls_ssl_setup(&(tlsDataParams->ssl), &(tlsDataParams->conf))) != 0) {
ESP_LOGE(TAG, "failed! mbedtls_ssl_setup returned -0x%x", -ret);
return SSL_CONNECTION_ERROR;

View File

@ -0,0 +1,7 @@
# bootloader component logic is all in project_include.cmake,
# and subproject/CMakeLists.txt.
#
# This file is only included so the build system finds the
# component

View File

@ -1,217 +1,519 @@
menu "Bootloader config"
choice LOG_BOOTLOADER_LEVEL
bool "Bootloader log verbosity"
default LOG_BOOTLOADER_LEVEL_INFO
help
Specify how much output to see in bootloader logs.
choice LOG_BOOTLOADER_LEVEL
bool "Bootloader log verbosity"
default LOG_BOOTLOADER_LEVEL_INFO
help
Specify how much output to see in bootloader logs.
config LOG_BOOTLOADER_LEVEL_NONE
bool "No output"
config LOG_BOOTLOADER_LEVEL_ERROR
bool "Error"
config LOG_BOOTLOADER_LEVEL_WARN
bool "Warning"
config LOG_BOOTLOADER_LEVEL_INFO
bool "Info"
config LOG_BOOTLOADER_LEVEL_DEBUG
bool "Debug"
config LOG_BOOTLOADER_LEVEL_VERBOSE
bool "Verbose"
endchoice
config LOG_BOOTLOADER_LEVEL_NONE
bool "No output"
config LOG_BOOTLOADER_LEVEL_ERROR
bool "Error"
config LOG_BOOTLOADER_LEVEL_WARN
bool "Warning"
config LOG_BOOTLOADER_LEVEL_INFO
bool "Info"
config LOG_BOOTLOADER_LEVEL_DEBUG
bool "Debug"
config LOG_BOOTLOADER_LEVEL_VERBOSE
bool "Verbose"
endchoice
config LOG_BOOTLOADER_LEVEL
int
default 0 if LOG_BOOTLOADER_LEVEL_NONE
default 1 if LOG_BOOTLOADER_LEVEL_ERROR
default 2 if LOG_BOOTLOADER_LEVEL_WARN
default 3 if LOG_BOOTLOADER_LEVEL_INFO
default 4 if LOG_BOOTLOADER_LEVEL_DEBUG
default 5 if LOG_BOOTLOADER_LEVEL_VERBOSE
config LOG_BOOTLOADER_LEVEL
int
default 0 if LOG_BOOTLOADER_LEVEL_NONE
default 1 if LOG_BOOTLOADER_LEVEL_ERROR
default 2 if LOG_BOOTLOADER_LEVEL_WARN
default 3 if LOG_BOOTLOADER_LEVEL_INFO
default 4 if LOG_BOOTLOADER_LEVEL_DEBUG
default 5 if LOG_BOOTLOADER_LEVEL_VERBOSE
endmenu
config BOOTLOADER_SPI_WP_PIN
int "SPI Flash WP Pin when customising pins via eFuse (read help)"
range 0 33
default 7
depends on FLASHMODE_QIO || FLASHMODE_QOUT
help
This value is ignored unless flash mode is set to QIO or QOUT *and* the SPI flash pins have been
overriden by setting the eFuses SPI_PAD_CONFIG_xxx.
When this is the case, the eFuse config only defines 3 of the 4 Quad I/O data pins. The WP pin (aka ESP32
pin "SD_DATA_3" or SPI flash pin "IO2") is not specified in eFuse. That pin number is compiled into the
bootloader instead.
The default value (GPIO 7) is correct for WP pin on ESP32-D2WD integrated flash.
choice BOOTLOADER_VDDSDIO_BOOST
bool "VDDSDIO LDO voltage"
default BOOTLOADER_VDDSDIO_BOOST_1_9V
help
If this option is enabled, and VDDSDIO LDO is set to 1.8V (using eFuse
or MTDI bootstrapping pin), bootloader will change LDO settings to
output 1.9V instead. This helps prevent flash chip from browning out
during flash programming operations.
This option has no effect if VDDSDIO is set to 3.3V, or if the internal
VDDSDIO regulator is disabled via eFuse.
config BOOTLOADER_VDDSDIO_BOOST_1_8V
bool "1.8V"
depends on !ESPTOOLPY_FLASHFREQ_80M
config BOOTLOADER_VDDSDIO_BOOST_1_9V
bool "1.9V"
endchoice
config BOOTLOADER_FACTORY_RESET
bool "GPIO triggers factory reset"
default N
help
Allows to reset the device to factory settings:
- clear one or more data partitions;
- boot from "factory" partition.
The factory reset will occur if there is a GPIO input pulled low while device starts up.
See settings below.
config BOOTLOADER_NUM_PIN_FACTORY_RESET
int "Number of the GPIO input for factory reset"
depends on BOOTLOADER_FACTORY_RESET
range 0 39
default 4
help
The selected GPIO will be configured as an input with internal pull-up enabled.
To trigger a factory reset, this GPIO must be pulled low on reset.
Note that GPIO34-39 do not have an internal pullup and an external one must be provided.
config BOOTLOADER_OTA_DATA_ERASE
bool "Clear OTA data on factory reset (select factory partition)"
depends on BOOTLOADER_FACTORY_RESET
help
The device will boot from "factory" partition (or OTA slot 0 if no factory partition is present) after a
factory reset.
config BOOTLOADER_DATA_FACTORY_RESET
string "Comma-separated names of partitions to clear on factory reset"
depends on BOOTLOADER_FACTORY_RESET
default "nvs"
help
Allows customers to select which data partitions will be erased while factory reset.
Specify the names of partitions as a comma-delimited with optional spaces for readability. (Like this:
"nvs, phy_init, ...")
Make sure that the name specified in the partition table and here are the same.
Partitions of type "app" cannot be specified here.
config BOOTLOADER_APP_TEST
bool "GPIO triggers boot from test app partition"
default N
help
Allows to run the test app from "TEST" partition.
A boot from "test" partition will occur if there is a GPIO input pulled low while device starts up.
See settings below.
config BOOTLOADER_NUM_PIN_APP_TEST
int "Number of the GPIO input to boot TEST partition"
depends on BOOTLOADER_APP_TEST
range 0 39
default 18
help
The selected GPIO will be configured as an input with internal pull-up enabled.
To trigger a test app, this GPIO must be pulled low on reset.
After the GPIO input is deactivated and the device reboots, the old application will boot.
(factory or OTA[x]).
Note that GPIO34-39 do not have an internal pullup and an external one must be provided.
config BOOTLOADER_HOLD_TIME_GPIO
int "Hold time of GPIO for reset/test mode (seconds)"
depends on BOOTLOADER_FACTORY_RESET || BOOTLOADER_APP_TEST
default 5
help
The GPIO must be held low continuously for this period of time after reset
before a factory reset or test partition boot (as applicable) is performed.
config BOOTLOADER_WDT_ENABLE
bool "Use RTC watchdog in start code"
default y
help
Tracks the execution time of startup code.
If the execution time is exceeded, the RTC_WDT will restart system.
It is also useful to prevent a lock up in start code caused by an unstable power source.
NOTE: Tracks the execution time starts from the bootloader code - re-set timeout, while selecting the
source for slow_clk - and ends calling app_main.
Re-set timeout is needed due to WDT uses a SLOW_CLK clock source. After changing a frequency slow_clk a
time of WDT needs to re-set for new frequency.
slow_clk depends on ESP32_RTC_CLOCK_SOURCE (INTERNAL_RC or EXTERNAL_CRYSTAL).
config BOOTLOADER_WDT_DISABLE_IN_USER_CODE
bool "Allows RTC watchdog disable in user code"
depends on BOOTLOADER_WDT_ENABLE
default n
help
If it is set, the client must itself reset or disable rtc_wdt in their code (app_main()).
Otherwise rtc_wdt will be disabled before calling app_main function.
Use function rtc_wdt_feed() for resetting counter of rtc_wdt.
Use function rtc_wdt_disable() for disabling rtc_wdt.
config BOOTLOADER_WDT_TIME_MS
int "Timeout for RTC watchdog (ms)"
depends on BOOTLOADER_WDT_ENABLE
default 9000
range 0 120000
help
Verify that this parameter is correct and more then the execution time.
Pay attention to options such as reset to factory, trigger test partition and encryption on boot
- these options can increase the execution time.
Note: RTC_WDT will reset while encryption operations will be performed.
config APP_ROLLBACK_ENABLE
bool "Enable app rollback support"
default n
help
After updating the app, the bootloader runs a new app with the "ESP_OTA_IMG_PENDING_VERIFY" state set.
This state prevents the re-run of this app. After the first boot of the new app in the user code, the
function should be called to confirm the operability of the app or vice versa about its non-operability.
If the app is working, then it is marked as valid. Otherwise, it is marked as not valid and rolls back to
the previous working app. A reboot is performed, and the app is booted before the software update.
Note: If during the first boot a new app the power goes out or the WDT works, then roll back will happen.
Rollback is possible only between the apps with the same security versions.
config APP_ANTI_ROLLBACK
bool "Enable app anti-rollback support"
depends on APP_ROLLBACK_ENABLE
default n
help
This option prevents rollback to previous firmware/application image with lower security version.
config APP_SECURE_VERSION
int "eFuse secure version of app"
depends on APP_ANTI_ROLLBACK
default 0
help
The secure version is the sequence number stored in the header of each firmware.
The security version is set in the bootloader, version is recorded in the eFuse field
as the number of set ones. The allocated number of bits in the efuse field
for storing the security version is limited (see APP_SECURE_VERSION_SIZE_EFUSE_FIELD option).
Bootloader: When bootloader selects an app to boot, an app is selected that has
a security version greater or equal that recorded in eFuse field.
The app is booted with a higher (or equal) secure version.
The security version is worth increasing if in previous versions there is
a significant vulnerability and their use is not acceptable.
Your partition table should has a scheme with ota_0 + ota_1 (without factory).
config APP_SECURE_VERSION_SIZE_EFUSE_FIELD
int "Size of the efuse secure version field"
depends on APP_ANTI_ROLLBACK
range 1 32
default 32
help
The size of the efuse secure version field. Its length is limited to 32 bits.
This determines how many times the security version can be increased.
config EFUSE_SECURE_VERSION_EMULATE
bool "Emulate operations with efuse secure version(only test)"
default n
depends on APP_ANTI_ROLLBACK
help
This option allow emulate read/write operations with efuse secure version.
It allow to test anti-rollback implemention without permanent write eFuse bits.
In partition table should be exist this partition `emul_efuse, data, 5, , 0x2000`.
endmenu # Bootloader
menu "Security features"
config SECURE_BOOT_ENABLED
bool "Enable secure boot in bootloader (READ DOCS FIRST)"
default N
help
Build a bootloader which enables secure boot on first boot.
# These three are the actual options to check in code,
# selected by the displayed options
config SECURE_SIGNED_ON_BOOT
bool
default y
depends on SECURE_BOOT_ENABLED || SECURE_SIGNED_ON_BOOT_NO_SECURE_BOOT
Once enabled, secure boot will not boot a modified bootloader. The bootloader will only load a partition table or boot an app if the data has a verified digital signature. There are implications for reflashing updated apps once secure boot is enabled.
config SECURE_SIGNED_ON_UPDATE
bool
default y
depends on SECURE_BOOT_ENABLED || SECURE_SIGNED_ON_UPDATE_NO_SECURE_BOOT
When enabling secure boot, JTAG and ROM BASIC Interpreter are permanently disabled by default.
Refer to http://esp-idf.readthedocs.io/en/latest/security/secure-boot.html before enabling.
choice SECURE_BOOTLOADER_MODE
bool "Secure bootloader mode"
depends on SECURE_BOOT_ENABLED
default SECURE_BOOTLOADER_ONE_TIME_FLASH
config SECURE_BOOTLOADER_ONE_TIME_FLASH
bool "One-time flash"
help
On first boot, the bootloader will generate a key which is not readable externally or by software. A digest is generated from the bootloader image itself. This digest will be verified on each subsequent boot.
Enabling this option means that the bootloader cannot be changed after the first time it is booted.
config SECURE_BOOTLOADER_REFLASHABLE
bool "Reflashable"
help
Generate a reusable secure bootloader key, derived (via SHA-256) from the secure boot signing key.
This allows the secure bootloader to be re-flashed by anyone with access to the secure boot signing key.
This option is less secure than one-time flash, because a leak of the digest key from one device allows reflashing of any device that uses it.
endchoice
config SECURE_BOOT_BUILD_SIGNED_BINARIES
bool "Sign binaries during build"
depends on SECURE_BOOT_ENABLED
default y
help
Once secure boot is enabled, bootloader will only boot if partition table and app image are signed.
If enabled, these binary files are signed as part of the build process. The file named in "Secure boot private signing key" will be used to sign the image.
If disabled, unsigned app/partition data will be built. They must be signed manually using espsecure.py (for example, on a remote signing server.)
config SECURE_BOOT_SIGNING_KEY
string "Secure boot private signing key"
depends on SECURE_BOOT_BUILD_SIGNED_BINARIES
default secure_boot_signing_key.pem
help
Path to the key file used to sign partition tables and app images for secure boot. Once secure boot is enabled, bootloader will only boot if partition table and app image are signed.
Key file is an ECDSA private key (NIST256p curve) in PEM format.
Path is evaluated relative to the project directory.
You can generate a new signing key by running the following command:
espsecure.py generate_signing_key secure_boot_signing_key.pem
See docs/security/secure-boot.rst for details.
config SECURE_BOOT_VERIFICATION_KEY
string "Secure boot public signature verification key"
depends on SECURE_BOOT_ENABLED && !SECURE_BOOT_BUILD_SIGNED_BINARIES
default signature_verification_key.bin
help
Path to a public key file used to verify signed images. This key is compiled into the bootloader,
and may also be used to verify signatures on OTA images after download.
Key file is in raw binary format, and can be extracted from a
PEM formatted private key using the espsecure.py
extract_public_key command.
Refer to http://esp-idf.readthedocs.io/en/latest/security/secure-boot.html before enabling.
config SECURE_BOOT_INSECURE
bool "Allow potentially insecure options"
depends on SECURE_BOOT_ENABLED
default N
help
You can disable some of the default protections offered by secure boot, in order to enable testing or a custom combination of security features.
Only enable these options if you are very sure.
Refer to http://esp-idf.readthedocs.io/en/latest/security/secure-boot.html before enabling.
config FLASH_ENCRYPTION_ENABLED
bool "Enable flash encryption on boot (READ DOCS FIRST)"
default N
help
If this option is set, flash contents will be encrypted by the bootloader on first boot.
Note: After first boot, the system will be permanently encrypted. Re-flashing an encrypted
system is complicated and not always possible.
Read http://esp-idf.readthedocs.io/en/latest/security/flash-encryption.html before enabling.
config FLASH_ENCRYPTION_INSECURE
bool "Allow potentially insecure options"
depends on FLASH_ENCRYPTION_ENABLED
default N
help
You can disable some of the default protections offered by flash encryption, in order to enable testing or a custom combination of security features.
Only enable these options if you are very sure.
Refer to docs/security/secure-boot.rst and docs/security/flash-encryption.rst for details.
menu "Potentially insecure options"
visible if FLASH_ENCRYPTION_INSECURE || SECURE_BOOT_INSECURE
# NOTE: Options in this menu NEED to have SECURE_BOOT_INSECURE
# and/or FLASH_ENCRYPTION_INSECURE in "depends on", as the menu
# itself doesn't enable/disable its children (if it's not set,
# it's possible for the insecure menu to be disabled but the insecure option
# to remain on which is very bad.)
config SECURE_BOOT_ALLOW_ROM_BASIC
bool "Leave ROM BASIC Interpreter available on reset"
depends on SECURE_BOOT_INSECURE
default N
help
If not set (default), bootloader permanently disables ROM BASIC (on UART console) as a fallback if the bootloader image becomes invalid. This happens on first boot.
Only set this option in testing environments.
config SECURE_BOOT_ALLOW_JTAG
bool "Allow JTAG Debugging"
depends on SECURE_BOOT_INSECURE || FLASH_ENCRYPTION_INSECURE
default N
help
If not set (default), the bootloader will permanently disable JTAG (across entire chip) on first boot when either secure boot or flash encryption is enabled.
Setting this option leaves JTAG on for debugging, which negates all protections of flash encryption and some of the protections of secure boot.
Only set this option in testing environments.
config SECURE_SIGNED_APPS
bool
default y
depends on SECURE_SIGNED_ON_BOOT || SECURE_SIGNED_ON_UPDATE
config FLASH_ENCRYPTION_UART_BOOTLOADER_ALLOW_ENCRYPT
bool "Leave UART bootloader encryption enabled"
depends on FLASH_ENCRYPTION_INSECURE
default N
help
If not set (default), the bootloader will permanently disable UART bootloader encryption access on first boot. If set, the UART bootloader will still be able to access hardware encryption.
config SECURE_SIGNED_APPS_NO_SECURE_BOOT
bool "Require signed app images"
default n
depends on !SECURE_BOOT_ENABLED
help
Require apps to be signed to verify their integrity.
It is recommended to only set this option in testing environments.
This option uses the same app signature scheme as hardware secure boot, but unlike hardware secure boot it
does not prevent the bootloader from being physically updated. This means that the device can be secured
against remote network access, but not physical access. Compared to using hardware Secure Boot this option
is much simpler to implement.
config FLASH_ENCRYPTION_UART_BOOTLOADER_ALLOW_DECRYPT
bool "Leave UART bootloader decryption enabled"
depends on FLASH_ENCRYPTION_INSECURE
default N
help
If not set (default), the bootloader will permanently disable UART bootloader decryption access on first boot. If set, the UART bootloader will still be able to access hardware decryption.
config SECURE_SIGNED_ON_BOOT_NO_SECURE_BOOT
bool "Bootloader verifies app signatures"
default n
depends on SECURE_SIGNED_APPS_NO_SECURE_BOOT
help
If this option is set, the bootloader will be compiled with code to verify that an app is signed before
booting it.
Only set this option in testing environments. Setting this option allows complete bypass of flash encryption.
If hardware secure boot is enabled, this option is always enabled and cannot be disabled.
If hardware secure boot is not enabled, this option doesn't add significant security by itself so most
users will want to leave it disabled.
config FLASH_ENCRYPTION_UART_BOOTLOADER_ALLOW_CACHE
bool "Leave UART bootloader flash cache enabled"
depends on FLASH_ENCRYPTION_INSECURE
default N
help
If not set (default), the bootloader will permanently disable UART bootloader flash cache access on first boot. If set, the UART bootloader will still be able to access the flash cache.
config SECURE_SIGNED_ON_UPDATE_NO_SECURE_BOOT
bool "Verify app signature on update"
default y
depends on SECURE_SIGNED_APPS_NO_SECURE_BOOT
help
If this option is set, any OTA updated apps will have the signature verified before being considered valid.
Only set this option in testing environments.
When enabled, the signature is automatically checked whenever the esp_ota_ops.h APIs are used for OTA
updates, or esp_image_format.h APIs are used to verify apps.
config SECURE_BOOT_TEST_MODE
bool "Secure boot test mode: don't permanently set any efuses"
depends on SECURE_BOOT_INSECURE
default N
help
If this option is set, all permanent secure boot changes (via Efuse) are disabled.
If hardware secure boot is enabled, this option is always enabled and cannot be disabled.
If hardware secure boot is not enabled, this option still adds significant security against network-based
attackers by preventing spoofing of OTA updates.
Log output will state changes which would be applied, but they will not be.
config SECURE_BOOT_ENABLED
bool "Enable hardware secure boot in bootloader (READ DOCS FIRST)"
default n
help
Build a bootloader which enables secure boot on first boot.
This option is for testing purposes only - it completely disables secure boot protection.
Once enabled, secure boot will not boot a modified bootloader. The bootloader will only load a partition
table or boot an app if the data has a verified digital signature. There are implications for reflashing
updated apps once secure boot is enabled.
When enabling secure boot, JTAG and ROM BASIC Interpreter are permanently disabled by default.
endmenu # potentially insecure
Refer to https://docs.espressif.com/projects/esp-idf/en/latest/security/secure-boot.html before enabling.
endmenu
choice SECURE_BOOTLOADER_MODE
bool "Secure bootloader mode"
depends on SECURE_BOOT_ENABLED
default SECURE_BOOTLOADER_ONE_TIME_FLASH
config SECURE_BOOTLOADER_ONE_TIME_FLASH
bool "One-time flash"
help
On first boot, the bootloader will generate a key which is not readable externally or by software. A
digest is generated from the bootloader image itself. This digest will be verified on each subsequent
boot.
Enabling this option means that the bootloader cannot be changed after the first time it is booted.
config SECURE_BOOTLOADER_REFLASHABLE
bool "Reflashable"
help
Generate a reusable secure bootloader key, derived (via SHA-256) from the secure boot signing key.
This allows the secure bootloader to be re-flashed by anyone with access to the secure boot signing
key.
This option is less secure than one-time flash, because a leak of the digest key from one device
allows reflashing of any device that uses it.
endchoice
config SECURE_BOOT_BUILD_SIGNED_BINARIES
bool "Sign binaries during build"
depends on SECURE_SIGNED_APPS
default y
help
Once secure boot or signed app requirement is enabled, app images are required to be signed.
If enabled (default), these binary files are signed as part of the build process. The file named in
"Secure boot private signing key" will be used to sign the image.
If disabled, unsigned app/partition data will be built. They must be signed manually using espsecure.py
(for example, on a remote signing server.)
config SECURE_BOOT_SIGNING_KEY
string "Secure boot private signing key"
depends on SECURE_BOOT_BUILD_SIGNED_BINARIES
default secure_boot_signing_key.pem
help
Path to the key file used to sign app images.
Key file is an ECDSA private key (NIST256p curve) in PEM format.
Path is evaluated relative to the project directory.
You can generate a new signing key by running the following command:
espsecure.py generate_signing_key secure_boot_signing_key.pem
See https://docs.espressif.com/projects/esp-idf/en/latest/security/secure-boot.html for details.
config SECURE_BOOT_VERIFICATION_KEY
string "Secure boot public signature verification key"
depends on SECURE_SIGNED_APPS && !SECURE_BOOT_BUILD_SIGNED_BINARIES
default signature_verification_key.bin
help
Path to a public key file used to verify signed images. This key is compiled into the bootloader and/or
app, to verify app images.
Key file is in raw binary format, and can be extracted from a
PEM formatted private key using the espsecure.py
extract_public_key command.
Refer to https://docs.espressif.com/projects/esp-idf/en/latest/security/secure-boot.html before enabling.
choice SECURE_BOOTLOADER_KEY_ENCODING
bool "Hardware Key Encoding"
depends on SECURE_BOOTLOADER_REFLASHABLE
default SECURE_BOOTLOADER_NO_ENCODING
help
In reflashable secure bootloader mode, a hardware key is derived from the signing key (with SHA-256) and
can be written to eFuse with espefuse.py.
Normally this is a 256-bit key, but if 3/4 Coding Scheme is used on the device then the eFuse key is
truncated to 192 bits.
This configuration item doesn't change any firmware code, it only changes the size of key binary which is
generated at build time.
config SECURE_BOOTLOADER_KEY_ENCODING_256BIT
bool "No encoding (256 bit key)"
config SECURE_BOOTLOADER_KEY_ENCODING_192BIT
bool "3/4 encoding (192 bit key)"
endchoice
config SECURE_BOOT_INSECURE
bool "Allow potentially insecure options"
depends on SECURE_BOOT_ENABLED
default N
help
You can disable some of the default protections offered by secure boot, in order to enable testing or a
custom combination of security features.
Only enable these options if you are very sure.
Refer to https://docs.espressif.com/projects/esp-idf/en/latest/security/secure-boot.html before enabling.
config FLASH_ENCRYPTION_ENABLED
bool "Enable flash encryption on boot (READ DOCS FIRST)"
default N
help
If this option is set, flash contents will be encrypted by the bootloader on first boot.
Note: After first boot, the system will be permanently encrypted. Re-flashing an encrypted
system is complicated and not always possible.
Read https://docs.espressif.com/projects/esp-idf/en/latest/security/flash-encryption.html before enabling.
config FLASH_ENCRYPTION_INSECURE
bool "Allow potentially insecure options"
depends on FLASH_ENCRYPTION_ENABLED
default N
help
You can disable some of the default protections offered by flash encryption, in order to enable testing or
a custom combination of security features.
Only enable these options if you are very sure.
Refer to https://docs.espressif.com/projects/esp-idf/en/latest/security/secure-boot.html and
https://docs.espressif.com/projects/esp-idf/en/latest/security/flash-encryption.html for details.
menu "Potentially insecure options"
visible if FLASH_ENCRYPTION_INSECURE || SECURE_BOOT_INSECURE
# NOTE: Options in this menu NEED to have SECURE_BOOT_INSECURE
# and/or FLASH_ENCRYPTION_INSECURE in "depends on", as the menu
# itself doesn't enable/disable its children (if it's not set,
# it's possible for the insecure menu to be disabled but the insecure option
# to remain on which is very bad.)
config SECURE_BOOT_ALLOW_ROM_BASIC
bool "Leave ROM BASIC Interpreter available on reset"
depends on SECURE_BOOT_INSECURE || FLASH_ENCRYPTION_INSECURE
default N
help
By default, the BASIC ROM Console starts on reset if no valid bootloader is
read from the flash.
When either flash encryption or secure boot are enabled, the default is to
disable this BASIC fallback mode permanently via eFuse.
If this option is set, this eFuse is not burned and the BASIC ROM Console may
remain accessible. Only set this option in testing environments.
config SECURE_BOOT_ALLOW_JTAG
bool "Allow JTAG Debugging"
depends on SECURE_BOOT_INSECURE || FLASH_ENCRYPTION_INSECURE
default N
help
If not set (default), the bootloader will permanently disable JTAG (across entire chip) on first boot
when either secure boot or flash encryption is enabled.
Setting this option leaves JTAG on for debugging, which negates all protections of flash encryption
and some of the protections of secure boot.
Only set this option in testing environments.
config SECURE_BOOT_ALLOW_SHORT_APP_PARTITION
bool "Allow app partition length not 64KB aligned"
depends on SECURE_BOOT_INSECURE
help
If not set (default), app partition size must be a multiple of 64KB. App images are padded to 64KB
length, and the bootloader checks any trailing bytes after the signature (before the next 64KB
boundary) have not been written. This is because flash cache maps entire 64KB pages into the address
space. This prevents an attacker from appending unverified data after the app image in the flash,
causing it to be mapped into the address space.
Setting this option allows the app partition length to be unaligned, and disables padding of the app
image to this length. It is generally not recommended to set this option, unless you have a legacy
partitioning scheme which doesn't support 64KB aligned partition lengths.
config FLASH_ENCRYPTION_UART_BOOTLOADER_ALLOW_ENCRYPT
bool "Leave UART bootloader encryption enabled"
depends on FLASH_ENCRYPTION_INSECURE
default N
help
If not set (default), the bootloader will permanently disable UART bootloader encryption access on
first boot. If set, the UART bootloader will still be able to access hardware encryption.
It is recommended to only set this option in testing environments.
config FLASH_ENCRYPTION_UART_BOOTLOADER_ALLOW_DECRYPT
bool "Leave UART bootloader decryption enabled"
depends on FLASH_ENCRYPTION_INSECURE
default N
help
If not set (default), the bootloader will permanently disable UART bootloader decryption access on
first boot. If set, the UART bootloader will still be able to access hardware decryption.
Only set this option in testing environments. Setting this option allows complete bypass of flash
encryption.
config FLASH_ENCRYPTION_UART_BOOTLOADER_ALLOW_CACHE
bool "Leave UART bootloader flash cache enabled"
depends on FLASH_ENCRYPTION_INSECURE
default N
help
If not set (default), the bootloader will permanently disable UART bootloader flash cache access on
first boot. If set, the UART bootloader will still be able to access the flash cache.
Only set this option in testing environments.
config SECURE_BOOT_TEST_MODE
bool "Secure boot test mode: don't permanently set any eFuses"
depends on SECURE_BOOT_INSECURE
default N
help
If this option is set, all permanent secure boot changes (via eFuse) are disabled.
Log output will state changes which would be applied, but they will not be.
This option is for testing purposes only - it completely disables secure boot protection.
endmenu # Potentially Insecure
endmenu # Security features

View File

@ -1,20 +1,19 @@
#
# Bootloader component
# Bootloader component (top-level project parts)
#
# The bootloader is not a real component that gets linked into the project.
# Instead it is an entire standalone project ( in src/) that gets built in
# the upper projects build directory. This Makefile.projbuild provides the
# glue to build the bootloader project from the original project. It
# basically runs Make in the src/ directory but it needs to zero some variables
# the ESP-IDF project.mk makefile exports first, to not let them interfere.
# Instead it is an entire standalone project (in subproject/) that gets
# built in the upper project's build directory. This Makefile.projbuild provides
# the glue to build the bootloader project from the original project. It
# basically runs Make in the subproject/ directory but it needs to
# zero some variables the ESP-IDF project.mk makefile exports first, to not
# let them interfere.
#
ifndef IS_BOOTLOADER_BUILD
BOOTLOADER_COMPONENT_PATH := $(COMPONENT_PATH)
BOOTLOADER_BUILD_DIR=$(abspath $(BUILD_DIR_BASE)/bootloader)
BOOTLOADER_BIN=$(BOOTLOADER_BUILD_DIR)/bootloader.bin
# signing key path is resolved relative to the project directory
CONFIG_SECURE_BOOT_SIGNING_KEY ?=
SECURE_BOOT_SIGNING_KEY=$(abspath $(call dequote,$(CONFIG_SECURE_BOOT_SIGNING_KEY)))
export SECURE_BOOT_SIGNING_KEY # used by bootloader_support component
@ -22,28 +21,42 @@ export SECURE_BOOT_SIGNING_KEY # used by bootloader_support component
BOOTLOADER_OFFSET := 0x1000
# Custom recursive make for bootloader sub-project
BOOTLOADER_MAKE=+$(MAKE) -C $(BOOTLOADER_COMPONENT_PATH)/src \
V=$(V) BUILD_DIR_BASE=$(BOOTLOADER_BUILD_DIR) TEST_COMPONENTS= TESTS_ALL=
#
# NB: Some variables are cleared in the environment, not
# overriden, because they need to be re-defined in the child
# project.
BOOTLOADER_MAKE= +\
PROJECT_PATH= \
COMPONENT_DIRS= \
$(MAKE) -C $(BOOTLOADER_COMPONENT_PATH)/subproject \
V=$(V) \
BUILD_DIR_BASE=$(BOOTLOADER_BUILD_DIR) \
TEST_COMPONENTS= \
TESTS_ALL= \
EXCLUDE_COMPONENTS=
.PHONY: bootloader-clean bootloader-flash bootloader $(BOOTLOADER_BIN)
.PHONY: bootloader-clean bootloader-flash bootloader-list-components bootloader $(BOOTLOADER_BIN)
$(BOOTLOADER_BIN): $(SDKCONFIG_MAKEFILE)
$(BOOTLOADER_MAKE) $@
clean: bootloader-clean
bootloader-list-components:
$(BOOTLOADER_MAKE) list-components
ifndef CONFIG_SECURE_BOOT_ENABLED
# If secure boot disabled, bootloader flashing is integrated
# with 'make flash' and no warnings are printed.
bootloader: $(BOOTLOADER_BIN)
bootloader: $(BOOTLOADER_BIN) | check_python_dependencies
@echo $(SEPARATOR)
@echo "Bootloader built. Default flash command is:"
@echo "$(ESPTOOLPY_WRITE_FLASH) $(BOOTLOADER_OFFSET) $^"
ESPTOOL_ALL_FLASH_ARGS += $(BOOTLOADER_OFFSET) $(BOOTLOADER_BIN)
bootloader-flash: $(BOOTLOADER_BIN) $(call prereq_if_explicit,erase_flash)
bootloader-flash: $(BOOTLOADER_BIN) $(call prereq_if_explicit,erase_flash) | check_python_dependencies
$(ESPTOOLPY_WRITE_FLASH) 0x1000 $^
else ifdef CONFIG_SECURE_BOOTLOADER_ONE_TIME_FLASH
@ -54,7 +67,7 @@ else ifdef CONFIG_SECURE_BOOTLOADER_ONE_TIME_FLASH
# The flashing command is deliberately printed without an auto-reset
# step, so the device doesn't immediately reset to flash itself.
bootloader: $(BOOTLOADER_BIN)
bootloader: $(BOOTLOADER_BIN) | check_python_dependencies
@echo $(SEPARATOR)
@echo "Bootloader built. One-time flash command is:"
@echo "$(subst hard_reset,no_reset,$(ESPTOOLPY_WRITE_FLASH)) $(BOOTLOADER_OFFSET) $(BOOTLOADER_BIN)"
@ -65,12 +78,18 @@ else ifdef CONFIG_SECURE_BOOTLOADER_REFLASHABLE
# Reflashable secure bootloader
# generates a digest binary (bootloader + digest)
ifdef CONFIG_SECURE_BOOTLOADER_KEY_ENCODING_192BIT
KEY_DIGEST_LEN=192
else
KEY_DIGEST_LEN=256
endif
BOOTLOADER_DIGEST_BIN := $(BOOTLOADER_BUILD_DIR)/bootloader-reflash-digest.bin
SECURE_BOOTLOADER_KEY := $(BOOTLOADER_BUILD_DIR)/secure-bootloader-key.bin
SECURE_BOOTLOADER_KEY := $(BOOTLOADER_BUILD_DIR)/secure-bootloader-key-$(KEY_DIGEST_LEN).bin
ifdef CONFIG_SECURE_BOOT_BUILD_SIGNED_BINARIES
$(SECURE_BOOTLOADER_KEY): $(SECURE_BOOT_SIGNING_KEY)
$(ESPSECUREPY) digest_private_key -k $< $@
$(SECURE_BOOTLOADER_KEY): $(SECURE_BOOT_SIGNING_KEY) | check_python_dependencies
$(ESPSECUREPY) digest_private_key --keylen $(KEY_DIGEST_LEN) -k $< $@
else
$(SECURE_BOOTLOADER_KEY):
@echo "No pre-generated key for a reflashable secure bootloader is available, due to signing configuration."
@ -92,29 +111,23 @@ bootloader: $(BOOTLOADER_DIGEST_BIN)
@echo "* After first boot, only re-flashes of this kind (with same key) will be accepted."
@echo "* Not recommended to re-use the same secure boot keyfile on multiple production devices."
$(BOOTLOADER_DIGEST_BIN): $(BOOTLOADER_BIN) $(SECURE_BOOTLOADER_KEY)
$(BOOTLOADER_DIGEST_BIN): $(BOOTLOADER_BIN) $(SECURE_BOOTLOADER_KEY) | check_python_dependencies
@echo "DIGEST $(notdir $@)"
$(Q) $(ESPSECUREPY) digest_secure_bootloader -k $(SECURE_BOOTLOADER_KEY) -o $@ $<
$(ESPSECUREPY) digest_secure_bootloader -k $(SECURE_BOOTLOADER_KEY) -o $@ $<
else
else # CONFIG_SECURE_BOOT_ENABLED && !CONFIG_SECURE_BOOTLOADER_REFLASHABLE && !CONFIG_SECURE_BOOTLOADER_ONE_TIME_FLASH
bootloader:
@echo "Invalid bootloader target: bad sdkconfig?"
@exit 1
endif
ifndef CONFIG_SECURE_BOOT_ENABLED
# don't build bootloader by default is secure boot is enabled
# don't build bootloader by default if secure boot is enabled
all_binaries: $(BOOTLOADER_BIN)
endif
bootloader-clean:
bootloader-clean: $(SDKCONFIG_MAKEFILE)
$(BOOTLOADER_MAKE) app-clean
ifdef CONFIG_SECURE_BOOTLOADER_REFLASHABLE
rm -f $(SECURE_BOOTLOADER_KEY) $(BOOTLOADER_DIGEST_BIN)
$(BOOTLOADER_BUILD_DIR):
mkdir -p $@
else
CFLAGS += -D BOOTLOADER_BUILD=1 -I $(IDF_PATH)/components/esp32/include
endif

View File

@ -0,0 +1,7 @@
# bootloader component is special, as bootloader is also a project.
#
# This top-level component is only configuration files for the IDF project.
#
# See Makefile.projbuild for the targets which actually build the bootloader.
COMPONENT_CONFIG_ONLY := 1

View File

@ -0,0 +1,72 @@
# This is for tracking the top level project path
if(BOOTLOADER_BUILD)
set(main_project_path "${CMAKE_BINARY_DIR}/../..")
else()
set(main_project_path "${IDF_PROJECT_PATH}")
endif()
get_filename_component(secure_boot_signing_key
"${CONFIG_SECURE_BOOT_SIGNING_KEY}"
ABSOLUTE BASE_DIR "${main_project_path}")
if(NOT EXISTS ${secure_boot_signing_key})
# If the signing key is not found, create a phony gen_secure_boot_signing_key target that
# fails the build. fail_at_build_time also touches CMakeCache.txt to cause a cmake run next time
# (to pick up a new signing key if one exists, etc.)
fail_at_build_time(gen_secure_boot_signing_key
"Secure Boot Signing Key ${CONFIG_SECURE_BOOT_SIGNING_KEY} does not exist. Generate using:"
"\tespsecure.py generate_signing_key ${CONFIG_SECURE_BOOT_SIGNING_KEY}")
else()
add_custom_target(gen_secure_boot_signing_key)
endif()
if(BOOTLOADER_BUILD OR NOT IDF_BUILD_ARTIFACTS)
return() # don't keep recursing, generate on project builds
endif()
# Glue to build the bootloader subproject binary as an external
# cmake project under this one
#
#
set(bootloader_build_dir "${IDF_BUILD_ARTIFACTS_DIR}/bootloader")
set(bootloader_binary_files
"${bootloader_build_dir}/bootloader.elf"
"${bootloader_build_dir}/bootloader.bin"
"${bootloader_build_dir}/bootloader.map"
)
# These additional files may get generated
if(CONFIG_SECURE_BOOTLOADER_REFLASHABLE)
set(bootloader_binary_files
${bootloader_binary_files}
"${bootloader_build_dir}/bootloader-reflash-digest.bin"
"${bootloader_build_dir}/secure-bootloader-key-192.bin"
"${bootloader_build_dir}/secure-bootloader-key-256.bin"
)
endif()
if((NOT CONFIG_SECURE_BOOT_ENABLED) OR
CONFIG_SECURE_BOOTLOADER_REFLASHABLE OR
CONFIG_SECURE_BOOTLOADER_ONE_TIME_FLASH)
externalproject_add(bootloader
# TODO: support overriding the bootloader in COMPONENT_PATHS
SOURCE_DIR "${IDF_PATH}/components/bootloader/subproject"
BINARY_DIR "${bootloader_build_dir}"
CMAKE_ARGS -DSDKCONFIG=${SDKCONFIG} -DIDF_PATH=${IDF_PATH}
-DSECURE_BOOT_SIGNING_KEY=${secure_boot_signing_key}
INSTALL_COMMAND ""
BUILD_ALWAYS 1 # no easy way around this...
BUILD_BYPRODUCTS ${bootloader_binary_files}
DEPENDS gen_secure_boot_signing_key
)
else()
fail_at_build_time(bootloader "Invalid bootloader target: bad sdkconfig?")
endif()
# this is a hack due to an (annoying) shortcoming in cmake, it can't
# extend the 'clean' target to the external project
# see thread: https://cmake.org/pipermail/cmake/2016-December/064660.html
#
# So for now we just have the top-level build remove the final build products...
set_property(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" APPEND PROPERTY
ADDITIONAL_MAKE_CLEAN_FILES
${bootloader_binary_files})

View File

@ -1,21 +0,0 @@
#
# This is a project Makefile. It is assumed the directory this Makefile resides in is a
# project subdirectory.
#
PROJECT_NAME := bootloader
#We cannot include the esp32 component directly but we need its includes.
#This is fixed by adding CFLAGS from Makefile.projbuild
COMPONENTS := esptool_py bootloader bootloader_support log spi_flash micro-ecc soc
# The bootloader pseudo-component is also included in this build, for its Kconfig.projbuild to be included.
#
# IS_BOOTLOADER_BUILD tells the component Makefile.projbuild to be a no-op
IS_BOOTLOADER_BUILD := 1
export IS_BOOTLOADER_BUILD
# include the top-level "project" include directory, for sdkconfig.h
CFLAGS += -I$(BUILD_DIR_BASE)/../include
include $(IDF_PATH)/make/project.mk

View File

@ -1,857 +0,0 @@
// Copyright 2015-2016 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 <string.h>
#include <stdint.h>
#include <limits.h>
#include <sys/param.h>
#include "esp_attr.h"
#include "esp_log.h"
#include "rom/cache.h"
#include "rom/efuse.h"
#include "rom/ets_sys.h"
#include "rom/spi_flash.h"
#include "rom/crc.h"
#include "rom/rtc.h"
#include "rom/uart.h"
#include "rom/gpio.h"
#include "rom/secure_boot.h"
#include "soc/soc.h"
#include "soc/cpu.h"
#include "soc/rtc.h"
#include "soc/dport_reg.h"
#include "soc/io_mux_reg.h"
#include "soc/efuse_reg.h"
#include "soc/rtc_cntl_reg.h"
#include "soc/timer_group_reg.h"
#include "soc/gpio_reg.h"
#include "soc/gpio_sig_map.h"
#include "sdkconfig.h"
#include "esp_image_format.h"
#include "esp_secure_boot.h"
#include "esp_flash_encrypt.h"
#include "esp_flash_partitions.h"
#include "bootloader_flash.h"
#include "bootloader_random.h"
#include "bootloader_config.h"
#include "flash_qio_mode.h"
extern int _bss_start;
extern int _bss_end;
static const char* TAG = "boot";
/*
We arrive here after the bootloader finished loading the program from flash. The hardware is mostly uninitialized,
flash cache is down and the app CPU is in reset. We do have a stack, so we can do the initialization in C.
*/
void bootloader_main();
static void unpack_load_app(const esp_partition_pos_t *app_node);
void print_flash_info(const esp_image_header_t* pfhdr);
static void set_cache_and_start_app(uint32_t drom_addr,
uint32_t drom_load_addr,
uint32_t drom_size,
uint32_t irom_addr,
uint32_t irom_load_addr,
uint32_t irom_size,
uint32_t entry_addr);
static void update_flash_config(const esp_image_header_t* pfhdr);
static void clock_configure(void);
static void uart_console_configure(void);
static void wdt_reset_check(void);
void IRAM_ATTR call_start_cpu0()
{
cpu_configure_region_protection();
//Clear bss
memset(&_bss_start, 0, (&_bss_end - &_bss_start) * sizeof(_bss_start));
/* completely reset MMU for both CPUs
(in case serial bootloader was running) */
Cache_Read_Disable(0);
Cache_Read_Disable(1);
Cache_Flush(0);
Cache_Flush(1);
mmu_init(0);
DPORT_REG_SET_BIT(DPORT_APP_CACHE_CTRL1_REG, DPORT_APP_CACHE_MMU_IA_CLR);
mmu_init(1);
DPORT_REG_CLR_BIT(DPORT_APP_CACHE_CTRL1_REG, DPORT_APP_CACHE_MMU_IA_CLR);
/* (above steps probably unnecessary for most serial bootloader
usage, all that's absolutely needed is that we unmask DROM0
cache on the following two lines - normal ROM boot exits with
DROM0 cache unmasked, but serial bootloader exits with it
masked. However can't hurt to be thorough and reset
everything.)
The lines which manipulate DPORT_APP_CACHE_MMU_IA_CLR bit are
necessary to work around a hardware bug.
*/
DPORT_REG_CLR_BIT(DPORT_PRO_CACHE_CTRL1_REG, DPORT_PRO_CACHE_MASK_DROM0);
DPORT_REG_CLR_BIT(DPORT_APP_CACHE_CTRL1_REG, DPORT_APP_CACHE_MASK_DROM0);
bootloader_main();
}
/** @brief Load partition table
*
* Parse partition table, get useful data such as location of
* OTA data partition, factory app partition, and test app partition.
*
* @param bs bootloader state structure used to save read data
* @return return true if the partition table was succesfully loaded and MD5 checksum is valid.
*/
bool load_partition_table(bootloader_state_t* bs)
{
const esp_partition_info_t *partitions;
const int ESP_PARTITION_TABLE_DATA_LEN = 0xC00; /* length of actual data (signature is appended to this) */
char *partition_usage;
esp_err_t err;
int num_partitions;
#ifdef CONFIG_SECURE_BOOT_ENABLED
if(esp_secure_boot_enabled()) {
ESP_LOGI(TAG, "Verifying partition table signature...");
err = esp_secure_boot_verify_signature(ESP_PARTITION_TABLE_ADDR, ESP_PARTITION_TABLE_DATA_LEN);
if (err != ESP_OK) {
ESP_LOGE(TAG, "Failed to verify partition table signature.");
return false;
}
ESP_LOGD(TAG, "Partition table signature verified");
}
#endif
partitions = bootloader_mmap(ESP_PARTITION_TABLE_ADDR, ESP_PARTITION_TABLE_DATA_LEN);
if (!partitions) {
ESP_LOGE(TAG, "bootloader_mmap(0x%x, 0x%x) failed", ESP_PARTITION_TABLE_ADDR, ESP_PARTITION_TABLE_DATA_LEN);
return false;
}
ESP_LOGD(TAG, "mapped partition table 0x%x at 0x%x", ESP_PARTITION_TABLE_ADDR, (intptr_t)partitions);
err = esp_partition_table_basic_verify(partitions, true, &num_partitions);
if (err != ESP_OK) {
ESP_LOGE(TAG, "Failed to verify partition table");
return false;
}
ESP_LOGI(TAG, "Partition Table:");
ESP_LOGI(TAG, "## Label Usage Type ST Offset Length");
for(int i = 0; i < num_partitions; i++) {
const esp_partition_info_t *partition = &partitions[i];
ESP_LOGD(TAG, "load partition table entry 0x%x", (intptr_t)partition);
ESP_LOGD(TAG, "type=%x subtype=%x", partition->type, partition->subtype);
partition_usage = "unknown";
/* valid partition table */
switch(partition->type) {
case PART_TYPE_APP: /* app partition */
switch(partition->subtype) {
case PART_SUBTYPE_FACTORY: /* factory binary */
bs->factory = partition->pos;
partition_usage = "factory app";
break;
case PART_SUBTYPE_TEST: /* test binary */
bs->test = partition->pos;
partition_usage = "test app";
break;
default:
/* OTA binary */
if ((partition->subtype & ~PART_SUBTYPE_OTA_MASK) == PART_SUBTYPE_OTA_FLAG) {
bs->ota[partition->subtype & PART_SUBTYPE_OTA_MASK] = partition->pos;
++bs->app_count;
partition_usage = "OTA app";
}
else {
partition_usage = "Unknown app";
}
break;
}
break; /* PART_TYPE_APP */
case PART_TYPE_DATA: /* data partition */
switch(partition->subtype) {
case PART_SUBTYPE_DATA_OTA: /* ota data */
bs->ota_info = partition->pos;
partition_usage = "OTA data";
break;
case PART_SUBTYPE_DATA_RF:
partition_usage = "RF data";
break;
case PART_SUBTYPE_DATA_WIFI:
partition_usage = "WiFi data";
break;
default:
partition_usage = "Unknown data";
break;
}
break; /* PARTITION_USAGE_DATA */
default: /* other partition type */
break;
}
/* print partition type info */
ESP_LOGI(TAG, "%2d %-16s %-16s %02x %02x %08x %08x", i, partition->label, partition_usage,
partition->type, partition->subtype,
partition->pos.offset, partition->pos.size);
}
bootloader_munmap(partitions);
ESP_LOGI(TAG,"End of partition table");
return true;
}
static uint32_t ota_select_crc(const esp_ota_select_entry_t *s)
{
return crc32_le(UINT32_MAX, (uint8_t*)&s->ota_seq, 4);
}
static bool ota_select_valid(const esp_ota_select_entry_t *s)
{
return s->ota_seq != UINT32_MAX && s->crc == ota_select_crc(s);
}
/**
* @function : bootloader_main
* @description: entry function of 2nd bootloader
*
* @inputs: void
*/
void bootloader_main()
{
clock_configure();
uart_console_configure();
wdt_reset_check();
ESP_LOGI(TAG, "ESP-IDF %s 2nd stage bootloader", IDF_VER);
#if defined(CONFIG_SECURE_BOOT_ENABLED) || defined(CONFIG_FLASH_ENCRYPTION_ENABLED)
esp_err_t err;
#endif
esp_image_header_t fhdr;
bootloader_state_t bs;
esp_rom_spiflash_result_t spiRet1,spiRet2;
esp_ota_select_entry_t sa,sb;
const esp_ota_select_entry_t *ota_select_map;
memset(&bs, 0, sizeof(bs));
ESP_LOGI(TAG, "compile time " __TIME__ );
ets_set_appcpu_boot_addr(0);
/* disable watch dog here */
REG_CLR_BIT( RTC_CNTL_WDTCONFIG0_REG, RTC_CNTL_WDT_FLASHBOOT_MOD_EN );
REG_CLR_BIT( TIMG_WDTCONFIG0_REG(0), TIMG_WDT_FLASHBOOT_MOD_EN );
#ifndef CONFIG_SPI_FLASH_ROM_DRIVER_PATCH
const uint32_t spiconfig = ets_efuse_get_spiconfig();
if(spiconfig != EFUSE_SPICONFIG_SPI_DEFAULTS && spiconfig != EFUSE_SPICONFIG_HSPI_DEFAULTS) {
ESP_LOGE(TAG, "SPI flash pins are overridden. \"Enable SPI flash ROM driver patched functions\" must be enabled in menuconfig");
return;
}
#endif
esp_rom_spiflash_unlock();
ESP_LOGI(TAG, "Enabling RNG early entropy source...");
bootloader_random_enable();
#if CONFIG_FLASHMODE_QIO || CONFIG_FLASHMODE_QOUT
bootloader_enable_qio_mode();
#endif
if(esp_image_load_header(0x1000, true, &fhdr) != ESP_OK) {
ESP_LOGE(TAG, "failed to load bootloader header!");
return;
}
print_flash_info(&fhdr);
update_flash_config(&fhdr);
if (!load_partition_table(&bs)) {
ESP_LOGE(TAG, "load partition table error!");
return;
}
esp_partition_pos_t load_part_pos;
if (bs.ota_info.offset != 0) { // check if partition table has OTA info partition
//ESP_LOGE("OTA info sector handling is not implemented");
if (bs.ota_info.size < 2 * SPI_SEC_SIZE) {
ESP_LOGE(TAG, "ERROR: ota_info partition size %d is too small (minimum %d bytes)", bs.ota_info.size, sizeof(esp_ota_select_entry_t));
return;
}
ota_select_map = bootloader_mmap(bs.ota_info.offset, bs.ota_info.size);
if (!ota_select_map) {
ESP_LOGE(TAG, "bootloader_mmap(0x%x, 0x%x) failed", bs.ota_info.offset, bs.ota_info.size);
return;
}
memcpy(&sa, ota_select_map, sizeof(esp_ota_select_entry_t));
memcpy(&sb, (uint8_t *)ota_select_map + SPI_SEC_SIZE, sizeof(esp_ota_select_entry_t));
bootloader_munmap(ota_select_map);
ESP_LOGD(TAG, "OTA sequence values A 0x%08x B 0x%08x", sa.ota_seq, sb.ota_seq);
if(sa.ota_seq == 0xFFFFFFFF && sb.ota_seq == 0xFFFFFFFF) {
ESP_LOGD(TAG, "OTA sequence numbers both empty (all-0xFF");
// init status flash
if (bs.factory.offset != 0) { // if have factory bin,boot factory bin
ESP_LOGD(TAG, "Defaulting to factory image");
load_part_pos = bs.factory;
} else {
ESP_LOGD(TAG, "No factory image, defaulting to OTA 0");
load_part_pos = bs.ota[0];
sa.ota_seq = 0x01;
sa.crc = ota_select_crc(&sa);
sb.ota_seq = 0x00;
sb.crc = ota_select_crc(&sb);
Cache_Read_Disable(0);
spiRet1 = esp_rom_spiflash_erase_sector(bs.ota_info.offset/0x1000);
spiRet2 = esp_rom_spiflash_erase_sector(bs.ota_info.offset/0x1000+1);
if (spiRet1 != ESP_ROM_SPIFLASH_RESULT_OK || spiRet2 != ESP_ROM_SPIFLASH_RESULT_OK ) {
ESP_LOGE(TAG, SPI_ERROR_LOG);
return;
}
spiRet1 = esp_rom_spiflash_write(bs.ota_info.offset,(uint32_t *)&sa,sizeof(esp_ota_select_entry_t));
spiRet2 = esp_rom_spiflash_write(bs.ota_info.offset + 0x1000,(uint32_t *)&sb,sizeof(esp_ota_select_entry_t));
if (spiRet1 != ESP_ROM_SPIFLASH_RESULT_OK || spiRet2 != ESP_ROM_SPIFLASH_RESULT_OK ) {
ESP_LOGE(TAG, SPI_ERROR_LOG);
return;
}
Cache_Read_Enable(0);
}
//TODO:write data in ota info
} else {
if(ota_select_valid(&sa) && ota_select_valid(&sb)) {
ESP_LOGD(TAG, "Both OTA sequence valid, using OTA slot %d", MAX(sa.ota_seq, sb.ota_seq)-1);
load_part_pos = bs.ota[(MAX(sa.ota_seq, sb.ota_seq) - 1)%bs.app_count];
} else if(ota_select_valid(&sa)) {
ESP_LOGD(TAG, "Only OTA sequence A is valid, using OTA slot %d", sa.ota_seq - 1);
load_part_pos = bs.ota[(sa.ota_seq - 1) % bs.app_count];
} else if(ota_select_valid(&sb)) {
ESP_LOGD(TAG, "Only OTA sequence B is valid, using OTA slot %d", sa.ota_seq - 1);
load_part_pos = bs.ota[(sb.ota_seq - 1) % bs.app_count];
} else if (bs.factory.offset != 0) {
ESP_LOGE(TAG, "ota data partition invalid, falling back to factory");
load_part_pos = bs.factory;
} else {
ESP_LOGE(TAG, "ota data partition invalid and no factory, can't boot");
return;
}
}
} else if (bs.factory.offset != 0) { // otherwise, look for factory app partition
load_part_pos = bs.factory;
} else if (bs.test.offset != 0) { // otherwise, look for test app parition
load_part_pos = bs.test;
} else { // nothing to load, bail out
ESP_LOGE(TAG, "nothing to load");
return;
}
#ifdef CONFIG_SECURE_BOOT_ENABLED
/* Generate secure digest from this bootloader to protect future
modifications */
ESP_LOGI(TAG, "Checking secure boot...");
err = esp_secure_boot_permanently_enable();
if (err != ESP_OK) {
ESP_LOGE(TAG, "Bootloader digest generation failed (%d). SECURE BOOT IS NOT ENABLED.", err);
/* Allow booting to continue, as the failure is probably
due to user-configured EFUSEs for testing...
*/
}
#endif
#ifdef CONFIG_FLASH_ENCRYPTION_ENABLED
/* encrypt flash */
ESP_LOGI(TAG, "Checking flash encryption...");
bool flash_encryption_enabled = esp_flash_encryption_enabled();
err = esp_flash_encrypt_check_and_update();
if (err != ESP_OK) {
ESP_LOGE(TAG, "Flash encryption check failed (%d).", err);
return;
}
if (!flash_encryption_enabled && esp_flash_encryption_enabled()) {
/* Flash encryption was just enabled for the first time,
so issue a system reset to ensure flash encryption
cache resets properly */
ESP_LOGI(TAG, "Resetting with flash encryption enabled...");
REG_WRITE(RTC_CNTL_OPTIONS0_REG, RTC_CNTL_SW_SYS_RST);
return;
}
#endif
ESP_LOGI(TAG, "Disabling RNG early entropy source...");
bootloader_random_disable();
// copy loaded segments to RAM, set up caches for mapped segments, and start application
ESP_LOGI(TAG, "Loading app partition at offset %08x", load_part_pos);
unpack_load_app(&load_part_pos);
}
static void unpack_load_app(const esp_partition_pos_t* partition)
{
esp_err_t err;
esp_image_header_t image_header;
uint32_t image_length;
/* TODO: verify the app image as part of OTA boot decision, so can have fallbacks */
err = esp_image_basic_verify(partition->offset, true, &image_length);
if (err != ESP_OK) {
ESP_LOGE(TAG, "Failed to verify app image @ 0x%x (%d)", partition->offset, err);
return;
}
#ifdef CONFIG_SECURE_BOOT_ENABLED
if (esp_secure_boot_enabled()) {
ESP_LOGI(TAG, "Verifying app signature @ 0x%x (length 0x%x)", partition->offset, image_length);
err = esp_secure_boot_verify_signature(partition->offset, image_length);
if (err != ESP_OK) {
ESP_LOGE(TAG, "App image @ 0x%x failed signature verification (%d)", partition->offset, err);
return;
}
ESP_LOGD(TAG, "App signature is valid");
}
#endif
if (esp_image_load_header(partition->offset, true, &image_header) != ESP_OK) {
ESP_LOGE(TAG, "Failed to load app image header @ 0x%x", partition->offset);
return;
}
uint32_t drom_addr = 0;
uint32_t drom_load_addr = 0;
uint32_t drom_size = 0;
uint32_t irom_addr = 0;
uint32_t irom_load_addr = 0;
uint32_t irom_size = 0;
/* Reload the RTC memory segments whenever a non-deepsleep reset
is occurring */
bool load_rtc_memory = rtc_get_reset_reason(0) != DEEPSLEEP_RESET;
ESP_LOGD(TAG, "bin_header: %u %u %u %u %08x", image_header.magic,
image_header.segment_count,
image_header.spi_mode,
image_header.spi_size,
(unsigned)image_header.entry_addr);
/* Important: From here on this function cannot access any global data (bss/data segments),
as loading the app image may overwrite these.
*/
for (int segment = 0; segment < image_header.segment_count; segment++) {
esp_image_segment_header_t segment_header;
uint32_t data_offs;
if(esp_image_load_segment_header(segment, partition->offset,
&image_header, true,
&segment_header, &data_offs) != ESP_OK) {
ESP_LOGE(TAG, "failed to load segment header #%d", segment);
return;
}
const uint32_t address = segment_header.load_addr;
bool load = true;
bool map = false;
if (address == 0x00000000) { // padding, ignore block
load = false;
}
if (address == 0x00000004) {
load = false; // md5 checksum block
// TODO: actually check md5
}
if (address >= SOC_DROM_LOW && address < SOC_DROM_HIGH) {
ESP_LOGD(TAG, "found drom segment, map from %08x to %08x", data_offs,
segment_header.load_addr);
drom_addr = data_offs;
drom_load_addr = segment_header.load_addr;
drom_size = segment_header.data_len + sizeof(segment_header);
load = false;
map = true;
}
if (address >= SOC_IROM_LOW && address < SOC_IROM_HIGH) {
ESP_LOGD(TAG, "found irom segment, map from %08x to %08x", data_offs,
segment_header.load_addr);
irom_addr = data_offs;
irom_load_addr = segment_header.load_addr;
irom_size = segment_header.data_len + sizeof(segment_header);
load = false;
map = true;
}
if (!load_rtc_memory && address >= SOC_RTC_IRAM_LOW && address < SOC_RTC_IRAM_HIGH) {
ESP_LOGD(TAG, "Skipping RTC code segment at %08x\n", data_offs);
load = false;
}
if (!load_rtc_memory && address >= SOC_RTC_DATA_LOW && address < SOC_RTC_DATA_HIGH) {
ESP_LOGD(TAG, "Skipping RTC data segment at %08x\n", data_offs);
load = false;
}
ESP_LOGI(TAG, "segment %d: paddr=0x%08x vaddr=0x%08x size=0x%05x (%6d) %s", segment, data_offs - sizeof(esp_image_segment_header_t),
segment_header.load_addr, segment_header.data_len, segment_header.data_len, (load)?"load":(map)?"map":"");
if (load) {
intptr_t sp, start_addr, end_addr;
ESP_LOGV(TAG, "bootloader_mmap data_offs=%08x data_len=%08x", data_offs, segment_header.data_len);
start_addr = segment_header.load_addr;
end_addr = start_addr + segment_header.data_len;
/* Before loading segment, check it doesn't clobber
bootloader RAM... */
if (end_addr < 0x40000000) {
sp = (intptr_t)get_sp();
if (end_addr > sp) {
ESP_LOGE(TAG, "Segment %d end address %08x overlaps bootloader stack %08x - can't load",
segment, end_addr, sp);
return;
}
if (end_addr > sp - 256) {
/* We don't know for sure this is the stack high water mark, so warn if
it seems like we may overflow.
*/
ESP_LOGW(TAG, "Segment %d end address %08x close to stack pointer %08x",
segment, end_addr, sp);
}
}
const void *data = bootloader_mmap(data_offs, segment_header.data_len);
if(!data) {
ESP_LOGE(TAG, "bootloader_mmap(0x%xc, 0x%x) failed",
data_offs, segment_header.data_len);
return;
}
memcpy((void *)segment_header.load_addr, data, segment_header.data_len);
bootloader_munmap(data);
}
}
set_cache_and_start_app(drom_addr,
drom_load_addr,
drom_size,
irom_addr,
irom_load_addr,
irom_size,
image_header.entry_addr);
}
static void set_cache_and_start_app(
uint32_t drom_addr,
uint32_t drom_load_addr,
uint32_t drom_size,
uint32_t irom_addr,
uint32_t irom_load_addr,
uint32_t irom_size,
uint32_t entry_addr)
{
ESP_LOGD(TAG, "configure drom and irom and start");
Cache_Read_Disable( 0 );
Cache_Flush( 0 );
uint32_t drom_page_count = (drom_size + 64*1024 - 1) / (64*1024); // round up to 64k
ESP_LOGV(TAG, "d mmu set paddr=%08x vaddr=%08x size=%d n=%d", drom_addr & 0xffff0000, drom_load_addr & 0xffff0000, drom_size, drom_page_count );
int rc = cache_flash_mmu_set( 0, 0, drom_load_addr & 0xffff0000, drom_addr & 0xffff0000, 64, drom_page_count );
ESP_LOGV(TAG, "rc=%d", rc );
rc = cache_flash_mmu_set( 1, 0, drom_load_addr & 0xffff0000, drom_addr & 0xffff0000, 64, drom_page_count );
ESP_LOGV(TAG, "rc=%d", rc );
uint32_t irom_page_count = (irom_size + 64*1024 - 1) / (64*1024); // round up to 64k
ESP_LOGV(TAG, "i mmu set paddr=%08x vaddr=%08x size=%d n=%d", irom_addr & 0xffff0000, irom_load_addr & 0xffff0000, irom_size, irom_page_count );
rc = cache_flash_mmu_set( 0, 0, irom_load_addr & 0xffff0000, irom_addr & 0xffff0000, 64, irom_page_count );
ESP_LOGV(TAG, "rc=%d", rc );
rc = cache_flash_mmu_set( 1, 0, irom_load_addr & 0xffff0000, irom_addr & 0xffff0000, 64, irom_page_count );
ESP_LOGV(TAG, "rc=%d", rc );
DPORT_REG_CLR_BIT( DPORT_PRO_CACHE_CTRL1_REG, (DPORT_PRO_CACHE_MASK_IRAM0) | (DPORT_PRO_CACHE_MASK_IRAM1 & 0) | (DPORT_PRO_CACHE_MASK_IROM0 & 0) | DPORT_PRO_CACHE_MASK_DROM0 | DPORT_PRO_CACHE_MASK_DRAM1 );
DPORT_REG_CLR_BIT( DPORT_APP_CACHE_CTRL1_REG, (DPORT_APP_CACHE_MASK_IRAM0) | (DPORT_APP_CACHE_MASK_IRAM1 & 0) | (DPORT_APP_CACHE_MASK_IROM0 & 0) | DPORT_APP_CACHE_MASK_DROM0 | DPORT_APP_CACHE_MASK_DRAM1 );
Cache_Read_Enable( 0 );
// Application will need to do Cache_Flush(1) and Cache_Read_Enable(1)
ESP_LOGD(TAG, "start: 0x%08x", entry_addr);
typedef void (*entry_t)(void);
entry_t entry = ((entry_t) entry_addr);
// TODO: we have used quite a bit of stack at this point.
// use "movsp" instruction to reset stack back to where ROM stack starts.
(*entry)();
}
static void update_flash_config(const esp_image_header_t* pfhdr)
{
uint32_t size;
switch(pfhdr->spi_size) {
case ESP_IMAGE_FLASH_SIZE_1MB:
size = 1;
break;
case ESP_IMAGE_FLASH_SIZE_2MB:
size = 2;
break;
case ESP_IMAGE_FLASH_SIZE_4MB:
size = 4;
break;
case ESP_IMAGE_FLASH_SIZE_8MB:
size = 8;
break;
case ESP_IMAGE_FLASH_SIZE_16MB:
size = 16;
break;
default:
size = 2;
}
Cache_Read_Disable( 0 );
// Set flash chip size
esp_rom_spiflash_config_param(g_rom_flashchip.device_id, size * 0x100000, 0x10000, 0x1000, 0x100, 0xffff);
// TODO: set mode
// TODO: set frequency
Cache_Flush(0);
Cache_Read_Enable( 0 );
}
void print_flash_info(const esp_image_header_t* phdr)
{
#if (BOOT_LOG_LEVEL >= BOOT_LOG_LEVEL_NOTICE)
ESP_LOGD(TAG, "magic %02x", phdr->magic );
ESP_LOGD(TAG, "segments %02x", phdr->segment_count );
ESP_LOGD(TAG, "spi_mode %02x", phdr->spi_mode );
ESP_LOGD(TAG, "spi_speed %02x", phdr->spi_speed );
ESP_LOGD(TAG, "spi_size %02x", phdr->spi_size );
const char* str;
switch ( phdr->spi_speed ) {
case ESP_IMAGE_SPI_SPEED_40M:
str = "40MHz";
break;
case ESP_IMAGE_SPI_SPEED_26M:
str = "26.7MHz";
break;
case ESP_IMAGE_SPI_SPEED_20M:
str = "20MHz";
break;
case ESP_IMAGE_SPI_SPEED_80M:
str = "80MHz";
break;
default:
str = "20MHz";
break;
}
ESP_LOGI(TAG, "SPI Speed : %s", str );
/* SPI mode could have been set to QIO during boot already,
so test the SPI registers not the flash header */
uint32_t spi_ctrl = REG_READ(SPI_CTRL_REG(0));
if (spi_ctrl & SPI_FREAD_QIO) {
str = "QIO";
} else if (spi_ctrl & SPI_FREAD_QUAD) {
str = "QOUT";
} else if (spi_ctrl & SPI_FREAD_DIO) {
str = "DIO";
} else if (spi_ctrl & SPI_FREAD_DUAL) {
str = "DOUT";
} else if (spi_ctrl & SPI_FASTRD_MODE) {
str = "FAST READ";
} else {
str = "SLOW READ";
}
ESP_LOGI(TAG, "SPI Mode : %s", str );
switch ( phdr->spi_size ) {
case ESP_IMAGE_FLASH_SIZE_1MB:
str = "1MB";
break;
case ESP_IMAGE_FLASH_SIZE_2MB:
str = "2MB";
break;
case ESP_IMAGE_FLASH_SIZE_4MB:
str = "4MB";
break;
case ESP_IMAGE_FLASH_SIZE_8MB:
str = "8MB";
break;
case ESP_IMAGE_FLASH_SIZE_16MB:
str = "16MB";
break;
default:
str = "2MB";
break;
}
ESP_LOGI(TAG, "SPI Flash Size : %s", str );
#endif
}
static void clock_configure(void)
{
/* Set CPU to 80MHz. Keep other clocks unmodified. */
rtc_cpu_freq_t cpu_freq = RTC_CPU_FREQ_80M;
/* On ESP32 rev 0, switching to 80MHz if clock was previously set to
* 240 MHz may cause the chip to lock up (see section 3.5 of the errata
* document). For rev. 0, switch to 240 instead if it was chosen in
* menuconfig.
*/
uint32_t chip_ver_reg = REG_READ(EFUSE_BLK0_RDATA3_REG);
if ((chip_ver_reg & EFUSE_RD_CHIP_VER_REV1_M) == 0 &&
CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ == 240) {
cpu_freq = RTC_CPU_FREQ_240M;
}
uart_tx_wait_idle(0);
rtc_clk_config_t clk_cfg = RTC_CLK_CONFIG_DEFAULT();
clk_cfg.xtal_freq = CONFIG_ESP32_XTAL_FREQ;
clk_cfg.cpu_freq = cpu_freq;
clk_cfg.slow_freq = rtc_clk_slow_freq_get();
clk_cfg.fast_freq = rtc_clk_fast_freq_get();
rtc_clk_init(clk_cfg);
/* As a slight optimization, if 32k XTAL was enabled in sdkconfig, we enable
* it here. Usually it needs some time to start up, so we amortize at least
* part of the start up time by enabling 32k XTAL early.
* App startup code will wait until the oscillator has started up.
*/
#ifdef CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL
if (!rtc_clk_32k_enabled()) {
rtc_clk_32k_bootstrap();
}
#endif
}
static void uart_console_configure(void)
{
#if CONFIG_CONSOLE_UART_NONE
ets_install_putc1(NULL);
ets_install_putc2(NULL);
#else // CONFIG_CONSOLE_UART_NONE
const int uart_num = CONFIG_CONSOLE_UART_NUM;
uartAttach();
ets_install_uart_printf();
// ROM bootloader may have put a lot of text into UART0 FIFO.
// Wait for it to be printed.
uart_tx_wait_idle(0);
#if CONFIG_CONSOLE_UART_CUSTOM
// Some constants to make the following code less upper-case
const int uart_tx_gpio = CONFIG_CONSOLE_UART_TX_GPIO;
const int uart_rx_gpio = CONFIG_CONSOLE_UART_RX_GPIO;
// Switch to the new UART (this just changes UART number used for
// ets_printf in ROM code).
uart_tx_switch(uart_num);
// If console is attached to UART1 or if non-default pins are used,
// need to reconfigure pins using GPIO matrix
if (uart_num != 0 || uart_tx_gpio != 1 || uart_rx_gpio != 3) {
// Change pin mode for GPIO1/3 from UART to GPIO
PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0RXD_U, FUNC_U0RXD_GPIO3);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0TXD_U, FUNC_U0TXD_GPIO1);
// Route GPIO signals to/from pins
// (arrays should be optimized away by the compiler)
const uint32_t tx_idx_list[3] = { U0TXD_OUT_IDX, U1TXD_OUT_IDX, U2TXD_OUT_IDX };
const uint32_t rx_idx_list[3] = { U0RXD_IN_IDX, U1RXD_IN_IDX, U2RXD_IN_IDX };
const uint32_t tx_idx = tx_idx_list[uart_num];
const uint32_t rx_idx = rx_idx_list[uart_num];
gpio_matrix_out(uart_tx_gpio, tx_idx, 0, 0);
gpio_matrix_in(uart_rx_gpio, rx_idx, 0);
}
#endif // CONFIG_CONSOLE_UART_CUSTOM
// Set configured UART console baud rate
const int uart_baud = CONFIG_CONSOLE_UART_BAUDRATE;
uart_div_modify(uart_num, (rtc_clk_apb_freq_get() << 4) / uart_baud);
#endif // CONFIG_CONSOLE_UART_NONE
}
static void wdt_reset_cpu0_info_enable(void)
{
//We do not reset core1 info here because it didn't work before cpu1 was up. So we put it into call_start_cpu1.
DPORT_REG_SET_BIT(DPORT_PRO_CPU_RECORD_CTRL_REG, DPORT_PRO_CPU_PDEBUG_ENABLE | DPORT_PRO_CPU_RECORD_ENABLE);
DPORT_REG_CLR_BIT(DPORT_PRO_CPU_RECORD_CTRL_REG, DPORT_PRO_CPU_RECORD_ENABLE);
}
static void wdt_reset_info_dump(int cpu)
{
uint32_t inst = 0, pid = 0, stat = 0, data = 0, pc = 0,
lsstat = 0, lsaddr = 0, lsdata = 0, dstat = 0;
char *cpu_name = cpu ? "APP" : "PRO";
if (cpu == 0) {
stat = DPORT_REG_READ(DPORT_PRO_CPU_RECORD_STATUS_REG);
pid = DPORT_REG_READ(DPORT_PRO_CPU_RECORD_PID_REG);
inst = DPORT_REG_READ(DPORT_PRO_CPU_RECORD_PDEBUGINST_REG);
dstat = DPORT_REG_READ(DPORT_PRO_CPU_RECORD_PDEBUGSTATUS_REG);
data = DPORT_REG_READ(DPORT_PRO_CPU_RECORD_PDEBUGDATA_REG);
pc = DPORT_REG_READ(DPORT_PRO_CPU_RECORD_PDEBUGPC_REG);
lsstat = DPORT_REG_READ(DPORT_PRO_CPU_RECORD_PDEBUGLS0STAT_REG);
lsaddr = DPORT_REG_READ(DPORT_PRO_CPU_RECORD_PDEBUGLS0ADDR_REG);
lsdata = DPORT_REG_READ(DPORT_PRO_CPU_RECORD_PDEBUGLS0DATA_REG);
} else {
stat = DPORT_REG_READ(DPORT_APP_CPU_RECORD_STATUS_REG);
pid = DPORT_REG_READ(DPORT_APP_CPU_RECORD_PID_REG);
inst = DPORT_REG_READ(DPORT_APP_CPU_RECORD_PDEBUGINST_REG);
dstat = DPORT_REG_READ(DPORT_APP_CPU_RECORD_PDEBUGSTATUS_REG);
data = DPORT_REG_READ(DPORT_APP_CPU_RECORD_PDEBUGDATA_REG);
pc = DPORT_REG_READ(DPORT_APP_CPU_RECORD_PDEBUGPC_REG);
lsstat = DPORT_REG_READ(DPORT_APP_CPU_RECORD_PDEBUGLS0STAT_REG);
lsaddr = DPORT_REG_READ(DPORT_APP_CPU_RECORD_PDEBUGLS0ADDR_REG);
lsdata = DPORT_REG_READ(DPORT_APP_CPU_RECORD_PDEBUGLS0DATA_REG);
}
if (DPORT_RECORD_PDEBUGINST_SZ(inst) == 0 &&
DPORT_RECORD_PDEBUGSTATUS_BBCAUSE(dstat) == DPORT_RECORD_PDEBUGSTATUS_BBCAUSE_WAITI) {
ESP_LOGW(TAG, "WDT reset info: %s CPU PC=0x%x (waiti mode)", cpu_name, pc);
} else {
ESP_LOGW(TAG, "WDT reset info: %s CPU PC=0x%x", cpu_name, pc);
}
ESP_LOGD(TAG, "WDT reset info: %s CPU STATUS 0x%08x", cpu_name, stat);
ESP_LOGD(TAG, "WDT reset info: %s CPU PID 0x%08x", cpu_name, pid);
ESP_LOGD(TAG, "WDT reset info: %s CPU PDEBUGINST 0x%08x", cpu_name, inst);
ESP_LOGD(TAG, "WDT reset info: %s CPU PDEBUGSTATUS 0x%08x", cpu_name, dstat);
ESP_LOGD(TAG, "WDT reset info: %s CPU PDEBUGDATA 0x%08x", cpu_name, data);
ESP_LOGD(TAG, "WDT reset info: %s CPU PDEBUGPC 0x%08x", cpu_name, pc);
ESP_LOGD(TAG, "WDT reset info: %s CPU PDEBUGLS0STAT 0x%08x", cpu_name, lsstat);
ESP_LOGD(TAG, "WDT reset info: %s CPU PDEBUGLS0ADDR 0x%08x", cpu_name, lsaddr);
ESP_LOGD(TAG, "WDT reset info: %s CPU PDEBUGLS0DATA 0x%08x", cpu_name, lsdata);
}
static void wdt_reset_check(void)
{
int wdt_rst = 0;
RESET_REASON rst_reas[2];
rst_reas[0] = rtc_get_reset_reason(0);
rst_reas[1] = rtc_get_reset_reason(1);
if (rst_reas[0] == RTCWDT_SYS_RESET || rst_reas[0] == TG0WDT_SYS_RESET || rst_reas[0] == TG1WDT_SYS_RESET ||
rst_reas[0] == TGWDT_CPU_RESET || rst_reas[0] == RTCWDT_CPU_RESET) {
ESP_LOGW(TAG, "PRO CPU has been reset by WDT.");
wdt_rst = 1;
}
if (rst_reas[1] == RTCWDT_SYS_RESET || rst_reas[1] == TG0WDT_SYS_RESET || rst_reas[1] == TG1WDT_SYS_RESET ||
rst_reas[1] == TGWDT_CPU_RESET || rst_reas[1] == RTCWDT_CPU_RESET) {
ESP_LOGW(TAG, "APP CPU has been reset by WDT.");
wdt_rst = 1;
}
if (wdt_rst) {
// if reset by WDT dump info from trace port
wdt_reset_info_dump(0);
wdt_reset_info_dump(1);
}
wdt_reset_cpu0_info_enable();
}

View File

@ -1,20 +0,0 @@
#
# Main bootloader Makefile.
#
# This is basically the same as a component makefile, but in the case of the bootloader
# we pull in bootloader-specific linker arguments.
#
LINKER_SCRIPTS := \
esp32.bootloader.ld \
$(IDF_PATH)/components/esp32/ld/esp32.rom.ld \
$(IDF_PATH)/components/esp32/ld/esp32.peripherals.ld \
esp32.bootloader.rom.ld
ifndef CONFIG_SPI_FLASH_ROM_DRIVER_PATCH
LINKER_SCRIPTS += $(IDF_PATH)/components/esp32/ld/esp32.rom.spiflash.ld
endif
COMPONENT_ADD_LDFLAGS := -L $(COMPONENT_PATH) -lmain $(addprefix -T ,$(LINKER_SCRIPTS))
COMPONENT_ADD_LINKER_DEPS := $(LINKER_SCRIPTS)

View File

@ -1,148 +0,0 @@
/*
Linker file used to link the bootloader.
*WARNING* For now this linker dumps everything into IRAM/DRAM. ToDo: move
some/most stuff to DROM/IROM.
*/
/* THESE ARE THE VIRTUAL RUNTIME ADDRESSES */
/* The load addresses are defined later using the AT statements. */
MEMORY
{
/* All these values assume the flash cache is on, and have the blocks this uses subtracted from the length
of the various regions. The 'data access port' dram/drom regions map to the same iram/irom regions but
are connected to the data port of the CPU and eg allow bytewise access. */
dport0_seg (RW) : org = 0x3FF00000, len = 0x10 /* IO */
iram_seg (RWX) : org = 0x40080000, len = 0x400 /* 1k of IRAM used by bootloader functions which need to flush/enable APP CPU cache */
iram_pool_1_seg (RWX) : org = 0x40078000, len = 0x8000 /* IRAM POOL1, used for APP CPU cache. We can abuse it in bootloader because APP CPU is still held in reset, until we enable APP CPU cache */
dram_seg (RW) : org = 0x3FFF0000, len = 0x10000 /* 64k at the end of DRAM, after ROM bootloader stack */
}
/* Default entry point: */
ENTRY(call_start_cpu0);
SECTIONS
{
.iram1.text :
{
_init_start = ABSOLUTE(.);
*(.UserEnter.literal);
*(.UserEnter.text);
. = ALIGN (16);
*(.entry.text)
*(.init.literal)
*(.init)
_init_end = ABSOLUTE(.);
/* Code marked as runnning out of IRAM */
_iram_text_start = ABSOLUTE(.);
*(.iram1 .iram1.*)
_iram_text_end = ABSOLUTE(.);
} > iram_seg
/* Shared RAM */
.dram0.bss (NOLOAD) :
{
. = ALIGN (8);
_bss_start = ABSOLUTE(.);
*(.dynsbss)
*(.sbss)
*(.sbss.*)
*(.gnu.linkonce.sb.*)
*(.scommon)
*(.sbss2)
*(.sbss2.*)
*(.gnu.linkonce.sb2.*)
*(.dynbss)
KEEP(*(.bss))
*(.bss.*)
*(.gnu.linkonce.b.*)
*(COMMON)
. = ALIGN (8);
_bss_end = ABSOLUTE(.);
} >dram_seg
.dram0.data :
{
_data_start = ABSOLUTE(.);
KEEP(*(.data))
KEEP(*(.data.*))
KEEP(*(.gnu.linkonce.d.*))
KEEP(*(.data1))
KEEP(*(.sdata))
KEEP(*(.sdata.*))
KEEP(*(.gnu.linkonce.s.*))
KEEP(*(.sdata2))
KEEP(*(.sdata2.*))
KEEP(*(.gnu.linkonce.s2.*))
KEEP(*(.jcr))
_data_end = ABSOLUTE(.);
} >dram_seg
.dram0.rodata :
{
_rodata_start = ABSOLUTE(.);
*(.rodata)
*(.rodata.*)
*(.irom1.text) /* catch stray ICACHE_RODATA_ATTR */
*(.gnu.linkonce.r.*)
*(.rodata1)
__XT_EXCEPTION_TABLE_ = ABSOLUTE(.);
*(.xt_except_table)
*(.gcc_except_table)
*(.gnu.linkonce.e.*)
*(.gnu.version_r)
*(.eh_frame)
. = (. + 3) & ~ 3;
/* C++ constructor and destructor tables, properly ordered: */
__init_array_start = ABSOLUTE(.);
KEEP (*crtbegin.o(.ctors))
KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
KEEP (*(SORT(.ctors.*)))
KEEP (*(.ctors))
__init_array_end = ABSOLUTE(.);
KEEP (*crtbegin.o(.dtors))
KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
/* C++ exception handlers table: */
__XT_EXCEPTION_DESCS_ = ABSOLUTE(.);
*(.xt_except_desc)
*(.gnu.linkonce.h.*)
__XT_EXCEPTION_DESCS_END__ = ABSOLUTE(.);
*(.xt_except_desc_end)
*(.dynamic)
*(.gnu.version_d)
_rodata_end = ABSOLUTE(.);
/* Literals are also RO data. */
_lit4_start = ABSOLUTE(.);
*(*.lit4)
*(.lit4.*)
*(.gnu.linkonce.lit4.*)
_lit4_end = ABSOLUTE(.);
. = ALIGN(4);
_heap_start = ABSOLUTE(.);
} >dram_seg
.iram_pool_1.text :
{
_stext = .;
_text_start = ABSOLUTE(.);
*(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.irom0.text) /* catch stray ICACHE_RODATA_ATTR */
*(.fini.literal)
*(.fini)
*(.gnu.version)
_text_end = ABSOLUTE(.);
_etext = .;
} >iram_pool_1_seg
}

View File

@ -1 +0,0 @@
PROVIDE ( ets_update_cpu_frequency = 0x40008550 ); /* Updates g_ticks_per_us on the current CPU only; not on the other core */

View File

@ -1,266 +0,0 @@
// Copyright 2015-2016 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 <stddef.h>
#include <stdint.h>
#include "flash_qio_mode.h"
#include "esp_log.h"
#include "rom/spi_flash.h"
#include "rom/efuse.h"
#include "soc/spi_struct.h"
#include "soc/efuse_reg.h"
#include "sdkconfig.h"
/* SPI flash controller */
#define SPIFLASH SPI1
/* SPI commands (actual on-wire commands not SPI controller bitmasks)
Suitable for use with the execute_flash_command static function.
*/
#define CMD_RDID 0x9F
#define CMD_WRSR 0x01
#define CMD_WRSR2 0x31 /* Not all SPI flash uses this command */
#define CMD_WREN 0x06
#define CMD_WRDI 0x04
#define CMD_RDSR 0x05
#define CMD_RDSR2 0x35 /* Not all SPI flash uses this command */
#define ESP32_D2WD_WP_GPIO 7 /* ESP32-D2WD has this GPIO wired to WP pin of flash */
static const char *TAG = "qio_mode";
typedef unsigned (*read_status_fn_t)();
typedef void (*write_status_fn_t)(unsigned);
typedef struct __attribute__((packed)) {
const char *manufacturer;
uint8_t mfg_id; /* 8-bit JEDEC manufacturer ID */
uint16_t flash_id; /* 16-bit JEDEC flash chip ID */
uint16_t id_mask; /* Bits to match on in flash chip ID */
read_status_fn_t read_status_fn;
write_status_fn_t write_status_fn;
uint8_t status_qio_bit;
} qio_info_t;
/* Read 8 bit status using RDSR command */
static unsigned read_status_8b_rdsr();
/* Read 8 bit status (second byte) using RDSR2 command */
static unsigned read_status_8b_rdsr2();
/* read 16 bit status using RDSR & RDSR2 (low and high bytes) */
static unsigned read_status_16b_rdsr_rdsr2();
/* Write 8 bit status using WRSR */
static void write_status_8b_wrsr(unsigned new_status);
/* Write 8 bit status (second byte) using WRSR2 */
static void write_status_8b_wrsr2(unsigned new_status);
/* Write 16 bit status using WRSR */
static void write_status_16b_wrsr(unsigned new_status);
/* Array of known flash chips and data to enable Quad I/O mode
Manufacturer & flash ID can be tested by running "esptool.py
flash_id"
If manufacturer ID matches, and flash ID ORed with flash ID mask
matches, enable_qio_mode() will execute "Read Cmd", test if bit
number "QIE Bit" is set, and if not set it will call "Write Cmd"
with this bit set.
Searching of this table stops when the first match is found.
*/
const static qio_info_t chip_data[] = {
/* Manufacturer, mfg_id, flash_id, id mask, Read Status, Write Status, QIE Bit */
{ "MXIC", 0xC2, 0x2000, 0xFF00, read_status_8b_rdsr, write_status_8b_wrsr, 6 },
{ "ISSI", 0x9D, 0x4000, 0xCF00, read_status_8b_rdsr, write_status_8b_wrsr, 6 }, /* IDs 0x40xx, 0x70xx */
{ "WinBond", 0xEF, 0x4000, 0xFF00, read_status_16b_rdsr_rdsr2, write_status_16b_wrsr, 9 },
/* Final entry is default entry, if no other IDs have matched.
This approach works for chips including:
GigaDevice (mfg ID 0xC8, flash IDs including 4016),
FM25Q32 (QOUT mode only, mfg ID 0xA1, flash IDs including 4016)
*/
{ NULL, 0xFF, 0xFFFF, 0xFFFF, read_status_8b_rdsr2, write_status_8b_wrsr2, 1 },
};
#define NUM_CHIPS (sizeof(chip_data) / sizeof(qio_info_t))
static void enable_qio_mode(read_status_fn_t read_status_fn,
write_status_fn_t write_status_fn,
uint8_t status_qio_bit);
/* Generic function to use the "user command" SPI controller functionality
to send commands to the SPI flash and read the respopnse.
The command passed here is always the on-the-wire command given to the SPI flash unit.
*/
static uint32_t execute_flash_command(uint8_t command, uint32_t mosi_data, uint8_t mosi_len, uint8_t miso_len);
/* dummy_len_plus values defined in ROM for SPI flash configuration */
extern uint8_t g_rom_spiflash_dummy_len_plus[];
void bootloader_enable_qio_mode(void)
{
uint32_t raw_flash_id;
uint8_t mfg_id;
uint16_t flash_id;
int i;
ESP_LOGD(TAG, "Probing for QIO mode enable...");
esp_rom_spiflash_wait_idle(&g_rom_flashchip);
/* Set up some of the SPIFLASH user/ctrl variables which don't change
while we're probing using execute_flash_command() */
SPIFLASH.ctrl.val = 0;
SPIFLASH.user.usr_dummy = 0;
SPIFLASH.user.usr_addr = 0;
SPIFLASH.user.usr_command = 1;
SPIFLASH.user2.usr_command_bitlen = 7;
raw_flash_id = execute_flash_command(CMD_RDID, 0, 0, 24);
ESP_LOGD(TAG, "Raw SPI flash chip id 0x%x", raw_flash_id);
mfg_id = raw_flash_id & 0xFF;
flash_id = (raw_flash_id >> 16) | (raw_flash_id & 0xFF00);
ESP_LOGD(TAG, "Manufacturer ID 0x%02x chip ID 0x%04x", mfg_id, flash_id);
for (i = 0; i < NUM_CHIPS-1; i++) {
const qio_info_t *chip = &chip_data[i];
if (mfg_id == chip->mfg_id && (flash_id & chip->id_mask) == (chip->flash_id & chip->id_mask)) {
ESP_LOGI(TAG, "Enabling QIO for flash chip %s", chip_data[i].manufacturer);
break;
}
}
if (i == NUM_CHIPS - 1) {
ESP_LOGI(TAG, "Enabling default flash chip QIO");
}
enable_qio_mode(chip_data[i].read_status_fn,
chip_data[i].write_status_fn,
chip_data[i].status_qio_bit);
}
static void enable_qio_mode(read_status_fn_t read_status_fn,
write_status_fn_t write_status_fn,
uint8_t status_qio_bit)
{
uint32_t status;
const uint32_t spiconfig = ets_efuse_get_spiconfig();
if (spiconfig != EFUSE_SPICONFIG_SPI_DEFAULTS && spiconfig != EFUSE_SPICONFIG_HSPI_DEFAULTS) {
// spiconfig specifies a custom efuse pin configuration. This config defines all pins -except- WP.
//
// For now, in this situation we only support Quad I/O mode for ESP32-D2WD where WP pin is known.
uint32_t chip_ver = REG_GET_FIELD(EFUSE_BLK0_RDATA3_REG, EFUSE_RD_CHIP_VER_RESERVE);
uint32_t pkg_ver = chip_ver & 0x7;
const uint32_t PKG_VER_ESP32_D2WD = 2; // TODO: use chip detection API once available
if (pkg_ver != PKG_VER_ESP32_D2WD) {
ESP_LOGE(TAG, "Quad I/O is only supported for standard pin numbers or ESP32-D2WD. Falling back to Dual I/O.");
return;
}
}
esp_rom_spiflash_wait_idle(&g_rom_flashchip);
status = read_status_fn();
ESP_LOGD(TAG, "Initial flash chip status 0x%x", status);
if ((status & (1<<status_qio_bit)) == 0) {
execute_flash_command(CMD_WREN, 0, 0, 0);
write_status_fn(status | (1<<status_qio_bit));
esp_rom_spiflash_wait_idle(&g_rom_flashchip);
status = read_status_fn();
ESP_LOGD(TAG, "Updated flash chip status 0x%x", status);
if ((status & (1<<status_qio_bit)) == 0) {
ESP_LOGE(TAG, "Failed to set QIE bit, not enabling QIO mode");
return;
}
} else {
ESP_LOGD(TAG, "QIO mode already enabled in flash");
}
ESP_LOGD(TAG, "Enabling QIO mode...");
esp_rom_spiflash_read_mode_t mode;
#if CONFIG_FLASHMODE_QOUT
mode = ESP_ROM_SPIFLASH_QOUT_MODE;
#else
mode = ESP_ROM_SPIFLASH_QIO_MODE;
#endif
esp_rom_spiflash_config_readmode(mode);
esp_rom_spiflash_select_qio_pins(ESP32_D2WD_WP_GPIO, spiconfig);
}
static unsigned read_status_8b_rdsr()
{
return execute_flash_command(CMD_RDSR, 0, 0, 8);
}
static unsigned read_status_8b_rdsr2()
{
return execute_flash_command(CMD_RDSR2, 0, 0, 8);
}
static unsigned read_status_16b_rdsr_rdsr2()
{
return execute_flash_command(CMD_RDSR, 0, 0, 8) | (execute_flash_command(CMD_RDSR2, 0, 0, 8) << 8);
}
static void write_status_8b_wrsr(unsigned new_status)
{
execute_flash_command(CMD_WRSR, new_status, 8, 0);
}
static void write_status_8b_wrsr2(unsigned new_status)
{
execute_flash_command(CMD_WRSR2, new_status, 8, 0);
}
static void write_status_16b_wrsr(unsigned new_status)
{
execute_flash_command(CMD_WRSR, new_status, 16, 0);
}
static uint32_t execute_flash_command(uint8_t command, uint32_t mosi_data, uint8_t mosi_len, uint8_t miso_len)
{
SPIFLASH.user2.usr_command_value = command;
SPIFLASH.user.usr_miso = miso_len > 0;
SPIFLASH.miso_dlen.usr_miso_dbitlen = miso_len ? (miso_len - 1) : 0;
SPIFLASH.user.usr_mosi = mosi_len > 0;
SPIFLASH.mosi_dlen.usr_mosi_dbitlen = mosi_len ? (mosi_len - 1) : 0;
SPIFLASH.data_buf[0] = mosi_data;
if (g_rom_spiflash_dummy_len_plus[1]) {
/* When flash pins are mapped via GPIO matrix, need a dummy cycle before reading via MISO */
if (miso_len > 0) {
SPIFLASH.user.usr_dummy = 1;
SPIFLASH.user1.usr_dummy_cyclelen = g_rom_spiflash_dummy_len_plus[1] - 1;
} else {
SPIFLASH.user.usr_dummy = 0;
SPIFLASH.user1.usr_dummy_cyclelen = 0;
}
}
SPIFLASH.cmd.usr = 1;
while(SPIFLASH.cmd.usr != 0)
{ }
return SPIFLASH.data_buf[0];
}

View File

@ -0,0 +1,137 @@
cmake_minimum_required(VERSION 3.5)
if(NOT SDKCONFIG)
message(FATAL_ERROR "Bootloader subproject expects the SDKCONFIG variable to be passed "
"in by the parent build process.")
endif()
if(NOT IDF_PATH)
message(FATAL_ERROR "Bootloader subproject expects the IDF_PATH variable to be passed "
"in by the parent build process.")
endif()
set(COMPONENTS bootloader esptool_py esp32 partition_table soc bootloader_support log spi_flash micro-ecc soc main efuse)
set(BOOTLOADER_BUILD 1)
add_definitions(-DBOOTLOADER_BUILD=1)
set(COMPONENT_REQUIRES_COMMON log esp32 soc)
include("${IDF_PATH}/tools/cmake/project.cmake")
project(bootloader)
target_linker_script(bootloader.elf
"main/esp32.bootloader.ld"
"main/esp32.bootloader.rom.ld"
)
# as cmake won't attach linker args to a header-only library, attach
# linker args directly to the bootloader.elf
set(ESP32_BOOTLOADER_LINKER_SCRIPTS
"../../esp32/ld/esp32.rom.ld"
"../../esp32/ld/esp32.rom.spiram_incompatible_fns.ld"
"../../esp32/ld/esp32.peripherals.ld")
target_linker_script(bootloader.elf ${ESP32_BOOTLOADER_LINKER_SCRIPTS})
target_link_libraries(bootloader.elf gcc)
set(secure_boot_signing_key ${SECURE_BOOT_SIGNING_KEY})
string(REPLACE ";" " " espsecurepy "${ESPSECUREPY}")
string(REPLACE ";" " " espefusepy "${ESPEFUSEPY}")
set(esptoolpy_write_flash "${ESPTOOLPY_WRITE_FLASH_STR}")
if(CONFIG_SECURE_BOOTLOADER_REFLASHABLE)
if(CONFIG_SECURE_BOOTLOADER_KEY_ENCODING_192BIT)
set(key_digest_len 192)
else()
set(key_digest_len 256)
endif()
get_filename_component(bootloader_digest_bin
"bootloader-reflash-digest.bin"
ABSOLUTE BASE_DIR "${CMAKE_BINARY_DIR}")
get_filename_component(secure_bootloader_key
"secure-bootloader-key-${key_digest_len}.bin"
ABSOLUTE BASE_DIR "${CMAKE_BINARY_DIR}")
add_custom_command(OUTPUT "${secure_bootloader_key}"
COMMAND ${ESPSECUREPY} digest_private_key
--keylen "${key_digest_len}"
--keyfile "${secure_boot_signing_key}"
"${secure_bootloader_key}"
VERBATIM)
if(CONFIG_SECURE_BOOT_BUILD_SIGNED_BINARIES)
add_custom_target(gen_secure_bootloader_key ALL DEPENDS "${secure_bootloader_key}")
else()
if(NOT EXISTS "${secure_bootloader_key}")
message(FATAL_ERROR
"No pre-generated key for a reflashable secure bootloader is available, "
"due to signing configuration."
"\nTo generate one, you can use this command:"
"\n\t${espsecurepy} generate_flash_encryption_key ${secure_bootloader_key}"
"\nIf a signing key is present, then instead use:"
"\n\t${ESPSECUREPY} digest_private_key "
"--keylen (192/256) --keyfile KEYFILE "
"${secure_bootloader_key}")
endif()
add_custom_target(gen_secure_bootloader_key)
endif()
add_custom_command(OUTPUT "${bootloader_digest_bin}"
COMMAND ${CMAKE_COMMAND} -E echo "DIGEST ${bootloader_digest_bin}"
COMMAND ${ESPSECUREPY} digest_secure_bootloader --keyfile "${secure_bootloader_key}"
-o "${bootloader_digest_bin}" "${CMAKE_BINARY_DIR}/bootloader.bin"
DEPENDS gen_secure_bootloader_key "${CMAKE_BINARY_DIR}/bootloader.bin"
VERBATIM)
add_custom_target (gen_bootloader_digest_bin ALL DEPENDS "${bootloader_digest_bin}")
endif()
if(CONFIG_SECURE_BOOTLOADER_ONE_TIME_FLASH)
add_custom_command(TARGET bootloader POST_BUILD
COMMAND ${CMAKE_COMMAND} -E echo
"=============================================================================="
COMMAND ${CMAKE_COMMAND} -E echo
"Bootloader built. Secure boot enabled, so bootloader not flashed automatically."
COMMAND ${CMAKE_COMMAND} -E echo
"One-time flash command is:"
COMMAND ${CMAKE_COMMAND} -E echo
"\t${esptoolpy_write_flash} ${BOOTLOADER_OFFSET} ${CMAKE_BINARY_DIR}/bootloader.bin"
COMMAND ${CMAKE_COMMAND} -E echo
"* IMPORTANT: After first boot, BOOTLOADER CANNOT BE RE-FLASHED on same device"
VERBATIM)
elseif(CONFIG_SECURE_BOOTLOADER_REFLASHABLE)
add_custom_command(TARGET bootloader POST_BUILD
COMMAND ${CMAKE_COMMAND} -E echo
"=============================================================================="
COMMAND ${CMAKE_COMMAND} -E echo
"Bootloader built and secure digest generated."
COMMAND ${CMAKE_COMMAND} -E echo
"Secure boot enabled, so bootloader not flashed automatically."
COMMAND ${CMAKE_COMMAND} -E echo
"Burn secure boot key to efuse using:"
COMMAND ${CMAKE_COMMAND} -E echo
"\t${espefusepy} burn_key secure_boot ${secure_bootloader_key}"
COMMAND ${CMAKE_COMMAND} -E echo
"First time flash command is:"
COMMAND ${CMAKE_COMMAND} -E echo
"\t${esptoolpy_write_flash} ${BOOTLOADER_OFFSET} ${CMAKE_BINARY_DIR}/bootloader.bin"
COMMAND ${CMAKE_COMMAND} -E echo
"=============================================================================="
COMMAND ${CMAKE_COMMAND} -E echo
"To reflash the bootloader after initial flash:"
COMMAND ${CMAKE_COMMAND} -E echo
"\t${esptoolpy_write_flash} 0x0 ${bootloader_digest_bin}"
COMMAND ${CMAKE_COMMAND} -E echo
"=============================================================================="
COMMAND ${CMAKE_COMMAND} -E echo
"* After first boot, only re-flashes of this kind (with same key) will be accepted."
COMMAND ${CMAKE_COMMAND} -E echo
"* Not recommended to re-use the same secure boot keyfile on multiple production devices."
DEPENDS gen_secure_bootloader_key gen_bootloader_digest_bin
VERBATIM)
endif()

View File

@ -0,0 +1,32 @@
#
# This is a project Makefile. It is assumed the directory this Makefile resides in is a
# project subdirectory.
#
ifeq ("$(MAKELEVEL)","0")
$(error Bootloader makefile expects to be run as part of 'make bootloader' from a top-level project.)
endif
PROJECT_NAME := bootloader
COMPONENTS := esptool_py bootloader_support log spi_flash micro-ecc soc main efuse
# Clear C and CXX from top level project
CFLAGS =
CXXFLAGS =
#We cannot include the esp32 component directly but we need its includes.
CFLAGS += -I $(IDF_PATH)/components/esp32/include
# The bootloader pseudo-component is also included in this build, for its Kconfig.projbuild to be included.
#
# IS_BOOTLOADER_BUILD tells the component Makefile.projbuild to be a no-op
IS_BOOTLOADER_BUILD := 1
export IS_BOOTLOADER_BUILD
# BOOTLOADER_BUILD macro is the same, for source file changes
CFLAGS += -D BOOTLOADER_BUILD=1
# include the top-level "project" include directory, for sdkconfig.h
CFLAGS += -I$(BUILD_DIR_BASE)/../include
include $(IDF_PATH)/make/project.mk

View File

@ -0,0 +1,4 @@
set(COMPONENT_SRCS "bootloader_start.c")
set(COMPONENT_ADD_INCLUDEDIRS "")
set(COMPONENT_REQUIRES "bootloader bootloader_support")
register_component()

View File

@ -0,0 +1,113 @@
// Copyright 2015-2016 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 <string.h>
#include <stdint.h>
#include <stdbool.h>
#include "esp_log.h"
#include "rom/gpio.h"
#include "rom/spi_flash.h"
#include "bootloader_config.h"
#include "bootloader_init.h"
#include "bootloader_utility.h"
#include "bootloader_common.h"
#include "sdkconfig.h"
#include "esp_image_format.h"
static const char* TAG = "boot";
static int select_partition_number (bootloader_state_t *bs);
static int selected_boot_partition(const bootloader_state_t *bs);
/*
* We arrive here after the ROM bootloader finished loading this second stage bootloader from flash.
* The hardware is mostly uninitialized, flash cache is down and the app CPU is in reset.
* We do have a stack, so we can do the initialization in C.
*/
void __attribute__((noreturn)) call_start_cpu0()
{
// 1. Hardware initialization
if (bootloader_init() != ESP_OK) {
bootloader_reset();
}
// 2. Select the number of boot partition
bootloader_state_t bs = { 0 };
int boot_index = select_partition_number(&bs);
if (boot_index == INVALID_INDEX) {
bootloader_reset();
}
// 3. Load the app image for booting
bootloader_utility_load_boot_image(&bs, boot_index);
}
// Select the number of boot partition
static int select_partition_number (bootloader_state_t *bs)
{
// 1. Load partition table
if (!bootloader_utility_load_partition_table(bs)) {
ESP_LOGE(TAG, "load partition table error!");
return INVALID_INDEX;
}
// 2. Select the number of boot partition
return selected_boot_partition(bs);
}
/*
* Selects a boot partition.
* The conditions for switching to another firmware are checked.
*/
static int selected_boot_partition(const bootloader_state_t *bs)
{
int boot_index = bootloader_utility_get_selected_boot_partition(bs);
if (boot_index == INVALID_INDEX) {
return boot_index; // Unrecoverable failure (not due to corrupt ota data or bad partition contents)
} else {
// Factory firmware.
#ifdef CONFIG_BOOTLOADER_FACTORY_RESET
if (bootloader_common_check_long_hold_gpio(CONFIG_BOOTLOADER_NUM_PIN_FACTORY_RESET, CONFIG_BOOTLOADER_HOLD_TIME_GPIO) == 1) {
ESP_LOGI(TAG, "Detect a condition of the factory reset");
bool ota_data_erase = false;
#ifdef CONFIG_BOOTLOADER_OTA_DATA_ERASE
ota_data_erase = true;
#endif
const char *list_erase = CONFIG_BOOTLOADER_DATA_FACTORY_RESET;
ESP_LOGI(TAG, "Data partitions to erase: %s", list_erase);
if (bootloader_common_erase_part_type_data(list_erase, ota_data_erase) == false) {
ESP_LOGE(TAG, "Not all partitions were erased");
}
return bootloader_utility_get_selected_boot_partition(bs);
}
#endif
// TEST firmware.
#ifdef CONFIG_BOOTLOADER_APP_TEST
if (bootloader_common_check_long_hold_gpio(CONFIG_BOOTLOADER_NUM_PIN_APP_TEST, CONFIG_BOOTLOADER_HOLD_TIME_GPIO) == 1) {
ESP_LOGI(TAG, "Detect a boot condition of the test firmware");
if (bs->test.offset != 0) {
boot_index = TEST_APP_INDEX;
return boot_index;
} else {
ESP_LOGE(TAG, "Test firmware is not found in partition table");
return INVALID_INDEX;
}
}
#endif
// Customer implementation.
// if (gpio_pin_1 == true && ...){
// boot_index = required_boot_partition;
// } ...
}
return boot_index;
}

View File

@ -0,0 +1,21 @@
#
# Main bootloader Makefile.
#
# This is basically the same as a component makefile, but in the case of the bootloader
# we pull in bootloader-specific linker arguments.
#
LINKER_SCRIPTS := \
esp32.bootloader.ld \
$(IDF_PATH)/components/esp32/ld/esp32.rom.ld \
$(IDF_PATH)/components/esp32/ld/esp32.rom.spiram_incompatible_fns.ld \
$(IDF_PATH)/components/esp32/ld/esp32.peripherals.ld \
esp32.bootloader.rom.ld
ifndef CONFIG_SPI_FLASH_ROM_DRIVER_PATCH
LINKER_SCRIPTS += $(IDF_PATH)/components/esp32/ld/esp32.rom.spiflash.ld
endif
COMPONENT_ADD_LDFLAGS += -L $(COMPONENT_PATH) $(addprefix -T ,$(LINKER_SCRIPTS))
COMPONENT_ADD_LINKER_DEPS := $(LINKER_SCRIPTS)

View File

@ -0,0 +1,168 @@
/*
Linker file used to link the bootloader.
*/
/* Simplified memory map for the bootloader
The main purpose is to make sure the bootloader can load into main memory
without overwriting itself.
*/
MEMORY
{
/* I/O */
dport0_seg (RW) : org = 0x3FF00000, len = 0x10
/* IRAM POOL1, used for APP CPU cache. Bootloader runs from here during the final stage of loading the app because APP CPU is still held in reset, the main app enables APP CPU cache */
iram_loader_seg (RWX) : org = 0x40078000, len = 0x8000 /* 32KB, APP CPU cache */
/* 63kB, IRAM. We skip the first 1k to prevent the entry point being
placed into the same range as exception vectors in the app.
This leads to idf_monitor decoding ROM bootloader "entry 0x40080xxx"
message as one of the exception vectors, which looks scary to users.
*/
iram_seg (RWX) : org = 0x40080400, len = 0xfc00
/* 64k at the end of DRAM, after ROM bootloader stack */
dram_seg (RW) : org = 0x3FFF0000, len = 0x10000
}
/* Default entry point: */
ENTRY(call_start_cpu0);
SECTIONS
{
.iram_loader.text :
{
. = ALIGN (16);
_loader_text_start = ABSOLUTE(.);
*(.stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.iram1 .iram1.*) /* catch stray IRAM_ATTR */
*liblog.a:(.literal .text .literal.* .text.*)
*libgcc.a:(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_common.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_flash.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_random.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_utility.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_sha.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:esp_image_format.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:flash_encrypt.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:flash_partitions.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:secure_boot.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:secure_boot_signatures.*(.literal .text .literal.* .text.*)
*libmicro-ecc.a:*.*(.literal .text .literal.* .text.*)
*libspi_flash.a:*.*(.literal .text .literal.* .text.*)
*libsoc.a:rtc_wdt.*(.literal .text .literal.* .text.*)
*libefuse.a:*.*(.literal .text .literal.* .text.*)
*(.fini.literal)
*(.fini)
*(.gnu.version)
_loader_text_end = ABSOLUTE(.);
} > iram_loader_seg
.iram.text :
{
. = ALIGN (16);
*(.entry.text)
*(.init.literal)
*(.init)
} > iram_seg
/* Shared RAM */
.dram0.bss (NOLOAD) :
{
. = ALIGN (8);
_bss_start = ABSOLUTE(.);
*(.dynsbss)
*(.sbss)
*(.sbss.*)
*(.gnu.linkonce.sb.*)
*(.scommon)
*(.sbss2)
*(.sbss2.*)
*(.gnu.linkonce.sb2.*)
*(.dynbss)
*(.bss)
*(.bss.*)
*(.gnu.linkonce.b.*)
*(COMMON)
. = ALIGN (8);
_bss_end = ABSOLUTE(.);
} >dram_seg
.dram0.data :
{
_data_start = ABSOLUTE(.);
*(.data)
*(.data.*)
*(.gnu.linkonce.d.*)
*(.data1)
*(.sdata)
*(.sdata.*)
*(.gnu.linkonce.s.*)
*(.sdata2)
*(.sdata2.*)
*(.gnu.linkonce.s2.*)
*(.jcr)
_data_end = ABSOLUTE(.);
} >dram_seg
.dram0.rodata :
{
_rodata_start = ABSOLUTE(.);
*(.rodata)
*(.rodata.*)
*(.gnu.linkonce.r.*)
*(.rodata1)
__XT_EXCEPTION_TABLE_ = ABSOLUTE(.);
*(.xt_except_table)
*(.gcc_except_table)
*(.gnu.linkonce.e.*)
*(.gnu.version_r)
*(.eh_frame)
. = (. + 3) & ~ 3;
/* C++ constructor and destructor tables, properly ordered: */
__init_array_start = ABSOLUTE(.);
KEEP (*crtbegin.*(.ctors))
KEEP (*(EXCLUDE_FILE (*crtend.*) .ctors))
KEEP (*(SORT(.ctors.*)))
KEEP (*(.ctors))
__init_array_end = ABSOLUTE(.);
KEEP (*crtbegin.*(.dtors))
KEEP (*(EXCLUDE_FILE (*crtend.*) .dtors))
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
/* C++ exception handlers table: */
__XT_EXCEPTION_DESCS_ = ABSOLUTE(.);
*(.xt_except_desc)
*(.gnu.linkonce.h.*)
__XT_EXCEPTION_DESCS_END__ = ABSOLUTE(.);
*(.xt_except_desc_end)
*(.dynamic)
*(.gnu.version_d)
_rodata_end = ABSOLUTE(.);
/* Literals are also RO data. */
_lit4_start = ABSOLUTE(.);
*(*.lit4)
*(.lit4.*)
*(.gnu.linkonce.lit4.*)
_lit4_end = ABSOLUTE(.);
. = ALIGN(4);
_heap_start = ABSOLUTE(.);
} >dram_seg
.iram.text :
{
_stext = .;
_text_start = ABSOLUTE(.);
*(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.iram .iram.*) /* catch stray IRAM_ATTR */
*(.fini.literal)
*(.fini)
*(.gnu.version)
_text_end = ABSOLUTE(.);
_etext = .;
} > iram_seg
}

View File

@ -0,0 +1,4 @@
PROVIDE ( ets_update_cpu_frequency = 0x40008550 ); /* Updates g_ticks_per_us on the current CPU only; not on the other core */
PROVIDE ( MD5Final = 0x4005db1c );
PROVIDE ( MD5Init = 0x4005da7c );
PROVIDE ( MD5Update = 0x4005da9c );

View File

@ -0,0 +1,60 @@
set(COMPONENT_SRCS "src/bootloader_clock.c"
"src/bootloader_common.c"
"src/bootloader_flash.c"
"src/bootloader_random.c"
"src/bootloader_sha.c"
"src/bootloader_utility.c"
"src/esp_image_format.c"
"src/flash_encrypt.c"
"src/flash_partitions.c"
"src/flash_qio_mode.c"
"src/secure_boot.c"
"src/secure_boot_signatures.c")
if(${BOOTLOADER_BUILD})
set(COMPONENT_ADD_INCLUDEDIRS "include include_bootloader")
set(COMPONENT_REQUIRES)
set(COMPONENT_PRIV_REQUIRES spi_flash micro-ecc efuse)
list(APPEND COMPONENT_SRCS "src/bootloader_init.c")
if(CONFIG_SECURE_SIGNED_APPS)
get_filename_component(secure_boot_verification_key
"signature_verification_key.bin"
ABSOLUTE BASE_DIR "${CMAKE_BINARY_DIR}")
if(CONFIG_SECURE_BOOT_BUILD_SIGNED_BINARIES)
add_custom_command(OUTPUT "${secure_boot_verification_key}"
COMMAND ${ESPSECUREPY}
extract_public_key --keyfile "${secure_boot_signing_key}"
"${secure_boot_verification_key}"
DEPENDS gen_secure_boot_signing_key
VERBATIM)
else()
get_filename_component(orig_secure_boot_verification_key
"${CONFIG_SECURE_BOOT_VERIFICATION_KEY}"
ABSOLUTE BASE_DIR "${main_project_path}")
if(NOT EXISTS ${orig_secure_boot_verification_key})
message(FATAL_ERROR
"Secure Boot Verification Public Key ${CONFIG_SECURE_BOOT_VERIFICATION_KEY} does not exist."
"\nThis can be extracted from the private signing key."
"\nSee docs/security/secure-boot.rst for details.")
endif()
add_custom_command(OUTPUT "${secure_boot_verification_key}"
COMMAND ${CMAKE_COMMAND} -E copy "${orig_secure_boot_verification_key}"
"${secure_boot_verification_key}"
DEPENDS "${orig_secure_boot_verification_key}"
VERBATIM)
endif()
set(COMPONENT_EMBED_FILES "${secure_boot_verification_key}")
set_property(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES
"${secure_boot_verification_key}")
endif()
else()
set(COMPONENT_ADD_INCLUDEDIRS "include")
set(COMPONENT_PRIV_INCLUDEDIRS "include_bootloader")
set(COMPONENT_REQUIRES)
set(COMPONENT_PRIV_REQUIRES spi_flash mbedtls micro-ecc efuse)
endif()
register_component()

14
components/bootloader_support/component.mk Executable file → Normal file
View File

@ -1,18 +1,22 @@
COMPONENT_ADD_INCLUDEDIRS := include
COMPONENT_PRIV_INCLUDEDIRS := include_priv
ifdef IS_BOOTLOADER_BUILD
# share "private" headers with the bootloader component
# eventual goal: all functionality that needs this lives in bootloader_support
COMPONENT_ADD_INCLUDEDIRS += include_priv
# share "include_bootloader" headers with bootloader main component
COMPONENT_ADD_INCLUDEDIRS += include_bootloader
else
COMPONENT_PRIV_INCLUDEDIRS := include_bootloader
endif
COMPONENT_SRCDIRS := src
ifndef IS_BOOTLOADER_BUILD
COMPONENT_OBJEXCLUDE := src/bootloader_init.o
endif
#
# Secure boot signing key support
#
ifdef CONFIG_SECURE_BOOT_ENABLED
ifdef CONFIG_SECURE_SIGNED_APPS
# this path is created relative to the component build directory
SECURE_BOOT_VERIFICATION_KEY := $(abspath signature_verification_key.bin)

View File

@ -0,0 +1,21 @@
// Copyright 2017 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#pragma once
/** @brief Configure clocks for early boot
*
* Called by bootloader, or by the app if the bootloader version is old (pre v2.1).
*/
void bootloader_clock_configure(void);

View File

@ -0,0 +1,138 @@
// Copyright 2018 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#pragma once
#include "esp_flash_data_types.h"
#include "esp_image_format.h"
/// Type of hold a GPIO in low state
typedef enum {
GPIO_LONG_HOLD = 1, /*!< The long hold GPIO */
GPIO_SHORT_HOLD = -1, /*!< The short hold GPIO */
GPIO_NOT_HOLD = 0 /*!< If the GPIO input is not low */
} esp_comm_gpio_hold_t;
/**
* @brief Calculate crc for the OTA data select.
*
* @param[in] s The OTA data select.
* @return Returns crc value.
*/
uint32_t bootloader_common_ota_select_crc(const esp_ota_select_entry_t *s);
/**
* @brief Verifies the validity of the OTA data select
*
* @param[in] s The OTA data select.
* @return Returns true on valid, false otherwise.
*/
bool bootloader_common_ota_select_valid(const esp_ota_select_entry_t *s);
/**
* @brief Returns true if OTADATA is not marked as bootable partition.
*
* @param[in] s The OTA data select.
* @return Returns true if OTADATA invalid, false otherwise.
*/
bool bootloader_common_ota_select_invalid(const esp_ota_select_entry_t *s);
/**
* @brief Check if the GPIO input is a long hold or a short hold.
*
* Number of the GPIO input will be configured as an input with internal pull-up enabled.
* If the GPIO input is held low continuously for delay_sec period then it is a long hold.
* If the GPIO input is held low for less period then it is a short hold.
*
* @param[in] num_pin Number of the GPIO input.
* @param[in] delay_sec Input must be driven low for at least this long, continuously.
* @return esp_comm_gpio_hold_t Defines type of hold a GPIO in low state.
*/
esp_comm_gpio_hold_t bootloader_common_check_long_hold_gpio(uint32_t num_pin, uint32_t delay_sec);
/**
* @brief Erase the partition data that is specified in the transferred list.
*
* @param[in] list_erase String containing a list of cleared partitions. Like this "nvs, phy". The string must be null-terminal.
* @param[in] ota_data_erase If true then the OTA data partition will be cleared (if there is it in partition table).
* @return Returns true on success, false otherwise.
*/
bool bootloader_common_erase_part_type_data(const char *list_erase, bool ota_data_erase);
/**
* @brief Determines if the list contains the label
*
* @param[in] list A string of names delimited by commas or spaces. Like this "nvs, phy, data". The string must be null-terminated.
* @param[in] label The substring that will be searched in the list.
* @return Returns true if the list contains the label, false otherwise.
*/
bool bootloader_common_label_search(const char *list, char *label);
/**
* @brief Calculates a sha-256 for a given partition or returns a appended digest.
*
* This function can be used to return the SHA-256 digest of application, bootloader and data partitions.
* For apps with SHA-256 appended to the app image, the result is the appended SHA-256 value for the app image content.
* The hash is verified before returning, if app content is invalid then the function returns ESP_ERR_IMAGE_INVALID.
* For apps without SHA-256 appended to the image, the result is the SHA-256 of all bytes in the app image.
* For other partition types, the result is the SHA-256 of the entire partition.
*
* @param[in] address Address of partition.
* @param[in] size Size of partition.
* @param[in] type Type of partition. For applications the type is 0, otherwise type is data.
* @param[out] out_sha_256 Returned SHA-256 digest for a given partition.
*
* @return
* - ESP_OK: In case of successful operation.
* - ESP_ERR_INVALID_ARG: The size was 0 or the sha_256 was NULL.
* - ESP_ERR_NO_MEM: Cannot allocate memory for sha256 operation.
* - ESP_ERR_IMAGE_INVALID: App partition doesn't contain a valid app image.
* - ESP_FAIL: An allocation error occurred.
*/
esp_err_t bootloader_common_get_sha256_of_partition(uint32_t address, uint32_t size, int type, uint8_t *out_sha_256);
/**
* @brief Returns the number of active otadata.
*
* @param[in] two_otadata Pointer on array from two otadata structures.
*
* @return The number of active otadata (0 or 1).
* - -1: If it does not have active otadata.
*/
int bootloader_common_get_active_otadata(esp_ota_select_entry_t *two_otadata);
/**
* @brief Returns the number of active otadata.
*
* @param[in] two_otadata Pointer on array from two otadata structures.
* @param[in] valid_two_otadata Pointer on array from two bools. True means select.
* @param[in] max True - will select the maximum ota_seq number, otherwise the minimum.
*
* @return The number of active otadata (0 or 1).
* - -1: If it does not have active otadata.
*/
int bootloader_common_select_otadata(const esp_ota_select_entry_t *two_otadata, bool *valid_two_otadata, bool max);
/**
* @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 App partition description.
* @param[out] app_desc Structure of info about app.
* @return
* - ESP_OK: Successful.
* - ESP_ERR_INVALID_ARG: The arguments passed are not valid.
* - ESP_ERR_NOT_FOUND: app_desc structure is not found. Magic word is incorrect.
* - ESP_FAIL: mapping is fail.
*/
esp_err_t bootloader_common_get_partition_description(const esp_partition_pos_t *partition, esp_app_desc_t *app_desc);

View File

@ -0,0 +1,34 @@
// Copyright 2018 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#pragma once
#include <stddef.h>
/**
* @brief Check if half-open intervals overlap
*
* @param start1 interval 1 start
* @param end1 interval 1 end
* @param start2 interval 2 start
* @param end2 interval 2 end
* @return true iff [start1; end1) overlaps [start2; end2)
*/
static inline bool bootloader_util_regions_overlap(
const intptr_t start1, const intptr_t end1,
const intptr_t start2, const intptr_t end2)
{
return (end1 > start2 && end2 > start1) ||
!(end1 <= start2 || end2 <= start1);
}

View File

@ -1,56 +0,0 @@
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#ifndef _ESP_EFUSE_H
#define _ESP_EFUSE_H
#include "soc/efuse_reg.h"
#ifdef __cplusplus
extern "C" {
#endif
/* @brief Permanently update values written to the efuse write registers
*
* After updating EFUSE_BLKx_WDATAx_REG registers with new values to
* write, call this function to permanently write them to efuse.
*
* @note Setting bits in efuse is permanent, they cannot be unset.
*
* @note Due to this restriction you don't need to copy values to
* Efuse write registers from the matching read registers, bits which
* are set in the read register but unset in the matching write
* register will be unchanged when new values are burned.
*
* @note This function is not threadsafe, if calling code updates
* efuse values from multiple tasks then this is caller's
* responsibility to serialise.
*
* After burning new efuses, the read registers are updated to match
* the new efuse values.
*/
void esp_efuse_burn_new_values(void);
/* @brief Reset efuse write registers
*
* Efuse write registers are written to zero, to negate
* any changes that have been staged here.
*/
void esp_efuse_reset(void);
#ifdef __cplusplus
}
#endif
#endif /* __ESP_EFUSE_H */

View File

@ -17,7 +17,9 @@
#include <stdbool.h>
#include "esp_attr.h"
#include "esp_err.h"
#ifndef BOOTLOADER_BUILD
#include "esp_spi_flash.h"
#endif
#include "soc/efuse_reg.h"
/**
@ -83,6 +85,8 @@ static inline /** @cond */ IRAM_ATTR /** @endcond */ bool esp_flash_encryption_e
* @note Take care not to power off the device while this function
* is running, or the partition currently being encrypted will be lost.
*
* @note RTC_WDT will reset while encryption operations will be performed (if RTC_WDT is configured).
*
* @return ESP_OK if all operations succeeded, ESP_ERR_INVALID_STATE
* if a fatal error occured during encryption of all partitions.
*/
@ -91,6 +95,7 @@ esp_err_t esp_flash_encrypt_check_and_update(void);
/** @brief Encrypt-in-place a block of flash sectors
*
* @note This function resets RTC_WDT between operations with sectors.
* @param src_addr Source offset in flash. Should be multiple of 4096 bytes.
* @param data_length Length of data to encrypt in bytes. Will be rounded up to next multiple of 4096 bytes.
*
@ -99,4 +104,14 @@ esp_err_t esp_flash_encrypt_check_and_update(void);
*/
esp_err_t esp_flash_encrypt_region(uint32_t src_addr, size_t data_length);
/** @brief Write protect FLASH_CRYPT_CNT
*
* Intended to be called as a part of boot process if flash encryption
* is enabled but secure boot is not used. This should protect against
* serial re-flashing of an unauthorised code in absence of secure boot.
*
* @return
*/
void esp_flash_write_protect_crypt_cnt();
#endif

View File

@ -17,16 +17,17 @@
#include "esp_err.h"
#include "esp_flash_data_types.h"
#include <stdbool.h>
#include "sdkconfig.h"
/* 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. */
#define ESP_PARTITION_TABLE_OFFSET 0x8000 /* Offset of partition table. Has matching value in partition_table Kconfig.projbuild file. */
#define ESP_PARTITION_TABLE_OFFSET CONFIG_PARTITION_TABLE_OFFSET /* Offset of partition table. Backwards-compatible name.*/
#define ESP_PARTITION_TABLE_MAX_LEN 0xC00 /* Maximum length of partition table data */
#define ESP_PARTITION_TABLE_MAX_ENTRIES (ESP_PARTITION_TABLE_MAX_LEN / sizeof(esp_partition_info_t)) /* Maximum length of partition table data, including terminating entry */
/* @brief Verify the partition table (does not include verifying secure boot cryptographic signature)
/* @brief Verify the partition table
*
* @param partition_table Pointer to at least ESP_PARTITION_TABLE_MAX_ENTRIES of potential partition table data. (ESP_PARTITION_TABLE_MAX_LEN bytes.)
* @param log_errors Log errors if the partition table is invalid.
@ -34,6 +35,13 @@
*
* @return ESP_OK on success, ESP_ERR_INVALID_STATE if partition table is not valid.
*/
esp_err_t esp_partition_table_basic_verify(const esp_partition_info_t *partition_table, bool log_errors, int *num_partitions);
esp_err_t esp_partition_table_verify(const esp_partition_info_t *partition_table, bool log_errors, int *num_partitions);
/* This function is included for compatibility with the ESP-IDF v3.x API */
inline static __attribute__((deprecated)) esp_err_t esp_partition_table_basic_verify(const esp_partition_info_t *partition_table, bool log_errors, int *num_partitions)
{
return esp_partition_table_verify(partition_table, log_errors, num_partitions);
}
#endif

View File

@ -11,11 +11,11 @@
// 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 __ESP32_IMAGE_FORMAT_H
#define __ESP32_IMAGE_FORMAT_H
#pragma once
#include <stdbool.h>
#include <esp_err.h>
#include "esp_flash_partitions.h"
#define ESP_ERR_IMAGE_BASE 0x2000
#define ESP_ERR_IMAGE_FLASH_FAIL (ESP_ERR_IMAGE_BASE + 1)
@ -36,7 +36,7 @@ typedef enum {
} esp_image_spi_mode_t;
/* SPI flash clock frequency */
enum {
typedef enum {
ESP_IMAGE_SPI_SPEED_40M,
ESP_IMAGE_SPI_SPEED_26M,
ESP_IMAGE_SPI_SPEED_20M,
@ -59,13 +59,29 @@ typedef enum {
typedef struct {
uint8_t magic;
uint8_t segment_count;
uint8_t spi_mode; /* flash read mode (esp_image_spi_mode_t as uint8_t) */
uint8_t spi_speed: 4; /* flash frequency (esp_image_spi_freq_t as uint8_t) */
uint8_t spi_size: 4; /* flash chip size (esp_image_flash_size_t as uint8_t) */
/* flash read mode (esp_image_spi_mode_t as uint8_t) */
uint8_t spi_mode;
/* flash frequency (esp_image_spi_freq_t as uint8_t) */
uint8_t spi_speed: 4;
/* flash chip size (esp_image_flash_size_t as uint8_t) */
uint8_t spi_size: 4;
uint32_t entry_addr;
uint8_t encrypt_flag; /* encrypt flag */
uint8_t extra_header[15]; /* ESP32 additional header, unused by second bootloader */
} esp_image_header_t;
/* WP pin when SPI pins set via efuse (read by ROM bootloader, the IDF bootloader uses software to configure the WP
* pin and sets this field to 0xEE=disabled) */
uint8_t wp_pin;
/* Drive settings for the SPI flash pins (read by ROM bootloader) */
uint8_t spi_pin_drv[3];
/* Reserved bytes in ESP32 additional header space, currently unused */
uint8_t reserved[11];
/* If 1, a SHA256 digest "simple hash" (of the entire image) is appended after the checksum. Included in image length. This digest
* is separate to secure boot and only used for detecting corruption. For secure boot signed images, the signature
* is appended after this (and the simple hash is included in the signed data). */
uint8_t hash_appended;
} __attribute__((packed)) esp_image_header_t;
_Static_assert(sizeof(esp_image_header_t) == 24, "binary image header should be 24 bytes");
#define ESP_IMAGE_HASH_LEN 32 /* Length of the appended SHA-256 digest */
/* Header of binary image segment */
typedef struct {
@ -73,62 +89,147 @@ typedef struct {
uint32_t data_len;
} esp_image_segment_header_t;
#define ESP_APP_DESC_MAGIC_WORD 0xABCD5432 /*!< The magic word for the esp_app_desc structure that is in DROM. */
/**
* @brief Read an ESP image header from flash.
* @brief Description about application.
*/
typedef struct {
uint32_t magic_word; /*!< Magic word ESP_APP_DESC_MAGIC_WORD */
uint32_t secure_version; /*!< Secure version */
uint32_t reserv1[2]; /*!< --- */
char version[32]; /*!< Application version */
char project_name[32]; /*!< Project name */
char time[16]; /*!< Compile time */
char date[16]; /*!< Compile date*/
char idf_ver[32]; /*!< Version IDF */
uint8_t app_elf_sha256[32]; /*!< sha256 of elf file */
uint32_t reserv2[20]; /*!< --- */
} esp_app_desc_t;
_Static_assert(sizeof(esp_app_desc_t) == 256, "esp_app_desc_t should be 256 bytes");
#define ESP_IMAGE_MAX_SEGMENTS 16
/* Structure to hold on-flash image metadata */
typedef struct {
uint32_t start_addr; /* Start address of image */
esp_image_header_t image; /* Header for entire image */
esp_image_segment_header_t segments[ESP_IMAGE_MAX_SEGMENTS]; /* Per-segment header data */
uint32_t segment_data[ESP_IMAGE_MAX_SEGMENTS]; /* Data offsets for each segment */
uint32_t image_len; /* Length of image on flash, in bytes */
uint8_t image_digest[32]; /* appended SHA-256 digest */
} esp_image_metadata_t;
/* Mode selection for esp_image_load() */
typedef enum {
ESP_IMAGE_VERIFY, /* Verify image contents, load metadata. Print errors. */
ESP_IMAGE_VERIFY_SILENT, /* Verify image contents, load metadata. Don't print errors. */
#ifdef BOOTLOADER_BUILD
ESP_IMAGE_LOAD, /* Verify image contents, load to memory. Print errors. */
#endif
} esp_image_load_mode_t;
/**
* @brief Verify and (optionally, in bootloader mode) load an app image.
*
* This name is deprecated and is included for compatibility with the ESP-IDF v3.x API.
* It will be removed in V4.0 version.
* Function has been renamed to esp_image_verify().
* Use function esp_image_verify() to verify a image. And use function bootloader_load_image() to load image from a bootloader space.
*
* If encryption is enabled, data will be transparently decrypted.
*
* @param src_addr Address in flash to load image header. Must be 4 byte aligned.
* @param log_errors Log error output if image header appears invalid.
* @param[out] image_header Pointer to an esp_image_header_t struture to be filled with data. If the function fails, contents are undefined.
*
* @return ESP_OK if image header was loaded, ESP_ERR_IMAGE_FLASH_FAIL
* if a SPI flash error occurs, ESP_ERR_IMAGE_INVALID if the image header
* appears invalid.
*/
esp_err_t esp_image_load_header(uint32_t src_addr, bool log_errors, esp_image_header_t *image_header);
/**
* @brief Read the segment header and data offset of a segment in the image.
*
* If encryption is enabled, data will be transparently decrypted.
*
* @param index Index of the segment to load information for.
* @param src_addr Base address in flash of the image.
* @param[in] image_header Pointer to the flash image header, already loaded by @ref esp_image_load_header().
* @param log_errors Log errors reading the segment header.
* @param[out] segment_header Pointer to a segment header structure to be filled with data. If the function fails, contents are undefined.
* @param[out] segment_data_offset Pointer to the data offset of the segment.
*
* @return ESP_OK if segment_header & segment_data_offset were loaded successfully, ESP_ERR_IMAGE_FLASH_FAIL if a SPI flash error occurs, ESP_ERR_IMAGE_INVALID if the image header appears invalid, ESP_ERR_INVALID_ARG if the index is invalid.
*/
esp_err_t esp_image_load_segment_header(uint8_t index, uint32_t src_addr, const esp_image_header_t *image_header, bool log_errors, esp_image_segment_header_t *segment_header, uint32_t *segment_data_offset);
/**
* @brief Non-cryptographically validate app image integrity. On success, length of image is provided to caller.
*
* If the image has a secure boot signature appended, the signature is not checked and this length is not included in the
* output value.
* @param mode Mode of operation (verify, silent verify, or load).
* @param part Partition to load the app from.
* @param[inout] data Pointer to the image metadata structure which is be filled in by this function. 'start_addr' member should be set (to the start address of the image.) Other fields will all be initialised by this function.
*
* Image validation checks:
* - Magic byte
* - No single segment longer than 16MB
* - Total image no longer than 16MB
* - 8 bit image checksum is valid
*
* If flash encryption is enabled, the image will be tranpsarently decrypted.
*
* @param src_addr Offset of the start of the image in flash. Must be 4 byte aligned.
* @param allow_decrypt If true and flash encryption is enabled, the image will be transparently decrypted.
* @param log_errors Log errors verifying the image.
* @param[out] length Length of the image, set to a value if the image is valid. Can be null.
*
* @return ESP_OK if image is valid, ESP_FAIL or ESP_ERR_IMAGE_INVALID on errors.
* - Magic byte.
* - Partition smaller than 16MB.
* - All segments & image fit in partition.
* - 8 bit image checksum is valid.
* - SHA-256 of image is valid (if image has this appended).
* - (Signature) if signature verification is enabled.
*
* @return
* - ESP_OK if verify or load was successful
* - ESP_ERR_IMAGE_FLASH_FAIL if a SPI flash error occurs
* - ESP_ERR_IMAGE_INVALID if the image appears invalid.
* - ESP_ERR_INVALID_ARG if the partition or data pointers are invalid.
*/
esp_err_t esp_image_basic_verify(uint32_t src_addr, bool log_errors, uint32_t *length);
esp_err_t esp_image_load(esp_image_load_mode_t mode, const esp_partition_pos_t *part, esp_image_metadata_t *data) __attribute__((deprecated));
/**
* @brief Verify an app image.
*
* If encryption is enabled, data will be transparently decrypted.
*
* @param mode Mode of operation (verify, silent verify, or load).
* @param part Partition to load the app from.
* @param[inout] data Pointer to the image metadata structure which is be filled in by this function.
* 'start_addr' member should be set (to the start address of the image.)
* Other fields will all be initialised by this function.
*
* Image validation checks:
* - Magic byte.
* - Partition smaller than 16MB.
* - All segments & image fit in partition.
* - 8 bit image checksum is valid.
* - SHA-256 of image is valid (if image has this appended).
* - (Signature) if signature verification is enabled.
*
* @return
* - ESP_OK if verify or load was successful
* - ESP_ERR_IMAGE_FLASH_FAIL if a SPI flash error occurs
* - ESP_ERR_IMAGE_INVALID if the image appears invalid.
* - ESP_ERR_INVALID_ARG if the partition or data pointers are invalid.
*/
esp_err_t esp_image_verify(esp_image_load_mode_t mode, const esp_partition_pos_t *part, esp_image_metadata_t *data);
/**
* @brief Verify and load an app image (available only in space of bootloader).
*
* If encryption is enabled, data will be transparently decrypted.
*
* @param part Partition to load the app from.
* @param[inout] data Pointer to the image metadata structure which is be filled in by this function.
* 'start_addr' member should be set (to the start address of the image.)
* Other fields will all be initialised by this function.
*
* Image validation checks:
* - Magic byte.
* - Partition smaller than 16MB.
* - All segments & image fit in partition.
* - 8 bit image checksum is valid.
* - SHA-256 of image is valid (if image has this appended).
* - (Signature) if signature verification is enabled.
*
* @return
* - ESP_OK if verify or load was successful
* - ESP_ERR_IMAGE_FLASH_FAIL if a SPI flash error occurs
* - ESP_ERR_IMAGE_INVALID if the image appears invalid.
* - ESP_ERR_INVALID_ARG if the partition or data pointers are invalid.
*/
esp_err_t bootloader_load_image(const esp_partition_pos_t *part, esp_image_metadata_t *data);
/**
* @brief Verify the bootloader image.
*
* @param[out] If result is ESP_OK and this pointer is non-NULL, it
* will be set to the length of the bootloader image.
*
* @return As per esp_image_load_metadata().
*/
esp_err_t esp_image_verify_bootloader(uint32_t *length);
/**
* @brief Verify the bootloader image.
*
* @param[out] Metadata for the image. Only valid if result is ESP_OK.
*
* @return As per esp_image_load_metadata().
*/
esp_err_t esp_image_verify_bootloader_data(esp_image_metadata_t *data);
typedef struct {
@ -139,5 +240,3 @@ typedef struct {
uint32_t irom_load_addr;
uint32_t irom_size;
} esp_image_flash_mapping_t;
#endif

View File

@ -11,13 +11,24 @@
// 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 __ESP32_SECUREBOOT_H
#define __ESP32_SECUREBOOT_H
#pragma once
#include <stdbool.h>
#include <esp_err.h>
#include "soc/efuse_reg.h"
#include "sdkconfig.h"
#ifdef CONFIG_SECURE_BOOT_ENABLED
#if !defined(CONFIG_SECURE_SIGNED_ON_BOOT) || !defined(CONFIG_SECURE_SIGNED_ON_UPDATE) || !defined(CONFIG_SECURE_SIGNED_APPS)
#error "internal sdkconfig error, secure boot should always enable all signature options"
#endif
#endif
#ifdef __cplusplus
extern "C" {
#endif
/* Support functions for secure boot features.
Can be compiled as part of app or bootloader code.
@ -74,12 +85,22 @@ esp_err_t esp_secure_boot_permanently_enable(void);
*/
esp_err_t esp_secure_boot_verify_signature(uint32_t src_addr, uint32_t length);
/** @brief Verify the secure boot signature block (deterministic ECDSA w/ SHA256) based on the SHA256 hash of some data.
*
* Similar to esp_secure_boot_verify_signature(), but can be used when the digest is precalculated.
* @param sig_block Pointer to signature block data
* @param image_digest Pointer to 32 byte buffer holding SHA-256 hash.
*
*/
/** @brief Secure boot verification block, on-flash data format. */
typedef struct {
uint32_t version;
uint8_t signature[64];
} esp_secure_boot_sig_block_t;
esp_err_t esp_secure_boot_verify_signature_block(const esp_secure_boot_sig_block_t *sig_block, const uint8_t *image_digest);
#define FLASH_OFFS_SECURE_BOOT_IV_DIGEST 0
/** @brief Secure boot IV+digest header */
@ -88,4 +109,7 @@ typedef struct {
uint8_t digest[64];
} esp_secure_boot_iv_digest_t;
#ifdef __cplusplus
}
#endif

View File

@ -28,17 +28,25 @@ extern "C"
#define SPI_ERROR_LOG "spi flash error"
#define MAX_OTA_SLOTS 16
typedef struct {
esp_partition_pos_t ota_info;
esp_partition_pos_t factory;
esp_partition_pos_t test;
esp_partition_pos_t ota[16];
esp_partition_pos_t ota[MAX_OTA_SLOTS];
uint32_t app_count;
uint32_t selected_subtype;
} bootloader_state_t;
bool flash_encrypt(bootloader_state_t *bs);
/* Indices used by index_to_partition are the OTA index
number, or these special constants */
#define FACTORY_INDEX (-1)
#define TEST_APP_INDEX (-2)
#define INVALID_INDEX (-99)
#ifdef __cplusplus
}
#endif

View File

@ -21,6 +21,7 @@
#include "esp_spi_flash.h"
#define FLASH_SECTOR_SIZE 0x1000
#define FLASH_BLOCK_SIZE 0x10000
/* Provide a Flash API for bootloader_support code,
that can be used from bootloader or app code.
@ -100,4 +101,31 @@ esp_err_t bootloader_flash_write(size_t dest_addr, void *src, size_t size, bool
*/
esp_err_t bootloader_flash_erase_sector(size_t sector);
/**
* @brief Erase the Flash range.
*
* @param start_addr start address of flash offset
* @param size sector aligned size to be erased
*
* @return esp_err_t
*/
esp_err_t bootloader_flash_erase_range(uint32_t start_addr, uint32_t size);
/* Cache MMU block size */
#define MMU_BLOCK_SIZE 0x00010000
/* Cache MMU address mask (MMU tables ignore bits which are zero) */
#define MMU_FLASH_MASK (~(MMU_BLOCK_SIZE - 1))
/**
* @brief Calculate the number of cache pages to map
* @param size size of data to map
* @param vaddr virtual address where data will be mapped
* @return number of cache MMU pages required to do the mapping
*/
static inline uint32_t bootloader_cache_pages_to_map(uint32_t size, uint32_t vaddr)
{
return (size + (vaddr - (vaddr & MMU_FLASH_MASK)) + MMU_BLOCK_SIZE - 1) / MMU_BLOCK_SIZE;
}
#endif

View File

@ -0,0 +1,28 @@
// Copyright 2018 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#pragma once
#include "esp_err.h"
/* @brief Prepares hardware for work.
*
* Setting up:
* - Disable Cache access for both CPUs;
* - Initialise cache mmu;
* - Setting up pins and mode for SD, SPI, UART, Clocking.
* @return ESP_OK - If the setting is successful.
* ESP_FAIL - If the setting is not successful.
*/
esp_err_t bootloader_init();

View File

@ -0,0 +1,56 @@
// Copyright 2017 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#pragma once
/* Provide a SHA256 API for bootloader_support code,
that can be used from bootloader or app code.
This header is available to source code in the bootloader & bootloader_support components only.
Use mbedTLS APIs or include hwcrypto/sha.h to calculate SHA256 in IDF apps.
*/
#include <stdint.h>
#include <stdlib.h>
#include "esp_err.h"
typedef void *bootloader_sha256_handle_t;
bootloader_sha256_handle_t bootloader_sha256_start();
void bootloader_sha256_data(bootloader_sha256_handle_t handle, const void *data, size_t data_len);
void bootloader_sha256_finish(bootloader_sha256_handle_t handle, uint8_t *digest);
/**
* @brief Converts an array to a printable string.
*
* This function is useful for printing SHA-256 digest.
* \code{c}
* // Example of using. image_hash will be printed
* #define HASH_LEN 32 // SHA-256 digest length
* ...
* char hash_print[HASH_LEN * 2 + 1];
* hash_print[HASH_LEN * 2] = 0;
* bootloader_sha256_hex_to_str(hash_print, image_hash, HASH_LEN);
* ESP_LOGI(TAG, %s", hash_print);
* \endcode
* @param[out] out_str Output string
* @param[in] in_array_hex Pointer to input array
* @param[in] len Length of input array
*
* @return ESP_OK: Successful
* ESP_ERR_INVALID_ARG: Error in the passed arguments
*/
esp_err_t bootloader_sha256_hex_to_str(char *out_str, const uint8_t *in_array_hex, size_t len);

View File

@ -0,0 +1,64 @@
// Copyright 2018 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#pragma once
#include "esp_image_format.h"
/**
* @brief Load partition table.
*
* Parse partition table, get useful data such as location of
* OTA data partition, factory app partition, and test app partition.
*
* @param[out] bs Bootloader state structure used to save read data.
* @return Return true if the partition table was succesfully loaded and MD5 checksum is valid.
*/
bool bootloader_utility_load_partition_table(bootloader_state_t* bs);
/**
* @brief Return the index of the selected boot partition.
*
* This is the preferred boot partition, as determined by the partition table &
* any OTA sequence number found in OTA data.
* This partition will only be booted if it contains a valid app image, otherwise load_boot_image() will search
* for a valid partition using this selection as the starting point.
*
* @param[in] bs Bootloader state structure.
* @return Returns the index on success, INVALID_INDEX otherwise.
*/
int bootloader_utility_get_selected_boot_partition(const bootloader_state_t *bs);
/**
* @brief Load the selected partition and start application.
*
* Start from partition 'start_index', if not bootable then work backwards to FACTORY_INDEX
* (ie try any OTA slots in descending order and then the factory partition).
* If still nothing, start from 'start_index + 1' and work up to highest numbered OTA partition.
* If still nothing, try TEST_APP_INDEX.
* Everything this function calls must be located in the iram_loader_seg segment.
*
* @param[in] bs Bootloader state structure.
* @param[in] start_index The index from which the search for images begins.
*/
__attribute__((noreturn)) void bootloader_utility_load_boot_image(const bootloader_state_t *bs, int start_index);
/**
* @brief Software reset the ESP32
*
* Bootloader code should call this in the case that it cannot proceed.
*
* It is not recommended to call this function from an app (if called, the app will abort).
*/
__attribute__((noreturn)) void bootloader_reset(void);

View File

@ -24,6 +24,14 @@ extern "C" {
*/
void bootloader_enable_qio_mode(void);
/**
* @brief Read flash ID by sending 0x9F command
* @return flash raw ID
* mfg_id = (ID >> 16) & 0xFF;
flash_id = ID & 0xffff;
*/
uint32_t bootloader_read_flash_id();
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,61 @@
// Copyright 2017 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include "rom/uart.h"
#include "rom/rtc.h"
#include "soc/soc.h"
#include "soc/rtc.h"
#include "soc/dport_reg.h"
#include "soc/efuse_reg.h"
#include "soc/rtc_cntl_reg.h"
void bootloader_clock_configure()
{
// ROM bootloader may have put a lot of text into UART0 FIFO.
// Wait for it to be printed.
// This is not needed on power on reset, when ROM bootloader is running at
// 40 MHz. But in case of TG WDT reset, CPU may still be running at >80 MHZ,
// and will be done with the bootloader much earlier than UART FIFO is empty.
uart_tx_wait_idle(0);
/* Set CPU to 80MHz. Keep other clocks unmodified. */
int cpu_freq_mhz = 80;
/* On ESP32 rev 0, switching to 80/160 MHz if clock was previously set to
* 240 MHz may cause the chip to lock up (see section 3.5 of the errata
* document). For rev. 0, switch to 240 instead if it has been enabled
* previously.
*/
uint32_t chip_ver_reg = REG_READ(EFUSE_BLK0_RDATA3_REG);
if ((chip_ver_reg & EFUSE_RD_CHIP_VER_REV1_M) == 0 &&
DPORT_REG_GET_FIELD(DPORT_CPU_PER_CONF_REG, DPORT_CPUPERIOD_SEL) == DPORT_CPUPERIOD_SEL_240) {
cpu_freq_mhz = 240;
}
rtc_clk_config_t clk_cfg = RTC_CLK_CONFIG_DEFAULT();
clk_cfg.xtal_freq = CONFIG_ESP32_XTAL_FREQ;
clk_cfg.cpu_freq_mhz = cpu_freq_mhz;
clk_cfg.slow_freq = rtc_clk_slow_freq_get();
clk_cfg.fast_freq = rtc_clk_fast_freq_get();
rtc_clk_init(clk_cfg);
/* As a slight optimization, if 32k XTAL was enabled in sdkconfig, we enable
* it here. Usually it needs some time to start up, so we amortize at least
* part of the start up time by enabling 32k XTAL early.
* App startup code will wait until the oscillator has started up.
*/
#ifdef CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL
if (!rtc_clk_32k_enabled()) {
rtc_clk_32k_bootstrap(CONFIG_ESP32_RTC_XTAL_BOOTSTRAP_CYCLES);
}
#endif
}

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