Commit graph

1425 commits

Author SHA1 Message Date
Ivan Grokhotkov 370f4b8556 deep sleep: set pin configuration right before entering deep sleep
This change allows setting pin configuration for EXT1 wakeup depending on the state of RTC_PERIPH power domain:
- if peripherals are enabled (due to another wakeup mode, or due to esp_deep_sleep_pd_config call), we can keep internal pullups/pulldowns enabled
- if peripherals are disabled, pullups and pulldowns need to be disabled as well

Also add comments about the purpose of registers being configured.
2016-12-16 14:30:27 +08:00
Ivan Grokhotkov 609d852834 deep sleep: power down RTC peripherals in EXT1 sleep 2016-12-16 14:30:27 +08:00
Ivan Grokhotkov 616d1d32f1 ulp: add missing component.mk for tests 2016-12-16 14:30:27 +08:00
Ivan Grokhotkov 83184bd52b deep sleep: RTC fast memory may be disconnected after deep sleep wakeup
This adds a workaround for a bug that following deep sleep wakeup, ISO (bus isolation) signal may be set for RTC fast memory.
We set FORCE_NOISO bit in RTC_CNTL_PWC_REG until we find out what is causing ISO signal to be set.
2016-12-16 14:30:27 +08:00
Ivan Grokhotkov 35115885c5 deep sleep: add API to control power down 2016-12-16 14:30:27 +08:00
Ivan Grokhotkov 88ddf5aefa deep sleep: rename header file 2016-12-16 14:30:27 +08:00
Ivan Grokhotkov eac80b0651 deep sleep: add option to delay CPU startup
When ESP32 wakes up from deep sleep, flash is accessed an approximately 900us after power on.
Some flash chips need more time to become ready. This change adds a menuconfig option to add
some delay to the default deep sleep wake stub.

Fixes https://github.com/espressif/esp-idf/issues/117
2016-12-16 14:30:27 +08:00
Ivan Grokhotkov 3b854fe46a deep sleep: implement wake up using ULP, EXT0, EXT1 sources
This adds the following APIs to enable various wakeup sources:
- esp_deep_sleep_enable_timer_wakeup
- esp_deep_sleep_enable_ulp_wakeup
- esp_deep_sleep_enable_ext0_wakeup
- esp_deep_sleep_enable_ext1_wakeup

And an API to start deep sleep:
- esp_deep_sleep_start
2016-12-16 14:30:27 +08:00
Ivan Grokhotkov 71daf49e39 driver/rtc_io: improve header comments
Fix descriptions of return values, fix typos, use upper case for abbreviations.
2016-12-16 14:30:27 +08:00
Angus Gratton d246836cfc Merge branch 'feature/spiflash_unaligned_readwrite' into 'master'
Remove alignment reqs from spi_flash_{read,write}

Github pull request https://github.com/espressif/esp-idf/pull/155

See merge request !311
2016-12-16 13:28:12 +08:00
Wu Jian Gang 87d0eb0fdb Merge branch 'feature/tw8657_refractor_to_sniffer' into 'master'
refactor to sniffer

1. WiFi send the whole packet to smartconfig
2. Fixed some modem sleep bugs


See merge request !306
2016-12-15 19:03:44 +08:00
Liu Zhi Fu 3984d96acb esp32: refactor to sniffer
1. TW8657, WIFI send the whole packet to smartconfig;
2. modify API annotation of smartconfig and sniffer;
3. export smartconfig APIs to programming guide;
2016-12-15 18:20:00 +08:00
Wu Jian Gang 847092e483 Merge branch 'bugfix/tw9240_fix_lwip_dual_core_issue' into 'master'
lwip: fix lwip dual core issue

Call xSemaphoreGiveFromISR instead xSemaphoreGive when the calling context is in critical section.

See merge request !314
2016-12-15 17:33:28 +08:00
Xia Xiaotian eec743d04c esp32: update wifi lib, fix some modem sleep bugs
1. tw7426: fix the bug that config ap crashes(7bb90c19)
2. tw9149: fix memory leak in modem sleep(1f450cb8)
3. tw9157: fix dtim change log in modem sleep(1f450cb8)
4. update smartconfig.a
2016-12-15 17:18:40 +08:00
Ivan Grokhotkov 9d5f4e877e Merge branch 'bugfix/heap_alloc_no_iram' into 'master'
Restore ability to alloc IRAM, and more.

- Fix mem regions so allocating IRAM works again
- Optimize allocator slightly, uses 4 less bytes per malloc now
- Allow querying free heap memory space per memory type


See merge request !301
2016-12-15 16:28:29 +08:00
Jiang Jiang Jian 70d39aa105 Merge branch 'bugfix/btdm_bluedroid' into 'master'
Bugfix/btdm bluedroid

Cleanup all the warnings。
Fix GATT CLIENT cannot receive notfiy/indicate from GATT SERVER bug.

Originally, bluetooth have its own master branch(feature/btdm_bluedroid), all the bluetooth sub branch will merge to feature/btdm_bluedroid firstly. If feature/btdm_bluedroid is ready, it will request merge to master. But as Ivan/JG/Jack's requires, all the bluetooth bugfix or feature will request merge to master ASAP.
This MR contains "cleanup warning " and "some bug fix", after, every merge request only contain one thing.

See merge request !286
2016-12-15 16:10:21 +08:00
Jeroen Domburg dc9646bc53 Merge branch 'bugfix/uart_examples_intr' into 'master'
Update uart examples in uart.h to new interrupt allocation scheme

Some of the examples in the UART header haven't been adjusted to the new interrupt scheme; this fixes that. Also runs dos2unix on the drivers tree; a fair few drivers used DOS-style line ends.

See merge request !313
2016-12-15 15:15:32 +08:00
Liu Zhi Fu 55726385a4 add more comments and call portYIELD when necessary 2016-12-15 15:06:00 +08:00
Jeroen Domburg 712f53176d Make internal function static 2016-12-15 15:03:22 +08:00
Jeroen Domburg 6f0a494cae Add testcase, fix executable memory allocated in shared dram/iram region 2016-12-15 15:03:22 +08:00
Jeroen Domburg 1e117dc3d3 Fix small things noticed in MR, add documentation 2016-12-15 15:03:22 +08:00
Jeroen Domburg 293ad4cd36 Add xPortGetFreeHeapSizeCaps and xPortGetMinimumEverFreeHeapSizeCaps plus everything it entails. Allows querying the available memory for various capabilities. Also: xPortGetFreeHeapSize and xPortGetMinimumEverFreeHeapSize now return the expected value. Bonus: the linked list used in the allocator is now 4 bytes smaller, which should save some memory. 2016-12-15 15:03:22 +08:00
Jeroen Domburg 3f3cf397f7 Tabs -> spaces 2016-12-15 15:03:22 +08:00
Jeroen Domburg 1cb2081d99 Do not disable entire IRAM pool; instead disable only the bit that is used. This gives us 50K of iram at the moment. 2016-12-15 15:03:22 +08:00
Jeroen Domburg 25e7f3a303 Add name to tag type 2016-12-15 15:03:22 +08:00
Tian Hao 5a2033c4e3 Merge branch 'master' into bugfix/btdm_bluedroid 2016-12-15 14:40:29 +08:00
Liu Zhi Fu 5e2ae7ac19 lwip: fix lwip dual core issue
Call xSemaphoreGiveFromISR instead xSemaphoreGive when the calling context is in critical section.
2016-12-15 14:37:21 +08:00
Tian Hao d242251295 component/bt : fix advertising bug
1. low duty can not be set bug
2. adv type can not be effective bug
2016-12-15 14:33:09 +08:00
Tian Hao f3450abf3d component/bt : add some macro , so redo the doxygen 2016-12-15 14:02:48 +08:00
Tian Hao d045187c0f component/bt : change the resolving list cleanup position
1. enable will malloc, but disable don't free resolving list, so fix it
2. In disable procedure, it will alloc alarm to hash_map, and all the alarm  hash_map will be free in deinit. So this need not be fixed currently.
2016-12-15 13:35:30 +08:00
Jeroen Domburg 1037a50abe Convert DOS line ends to Unix line ends in drivers 2016-12-15 09:45:40 +08:00
Jeroen Domburg 3ed16758c0 Update examples in uart.h 2016-12-15 09:44:21 +08:00
Deomid Ryabkov d288a3d053 Remove alignment reqs from spi_flash_{read,write} 2016-12-15 10:07:31 +11:00
Angus Gratton f1390fa7c9 Merge branch 'bugfix/conf_across_mountpoints' into 'master'
Create temp config in the same dir as target

Fixes case where SDK and app are on different mounts

(In our usage of kconfig, dirname is the empty string & basename is the full path to sdkconfig)

Github pull request https://github.com/espressif/esp-idf/pull/151


See merge request !309
2016-12-15 07:07:27 +08:00
Angus Gratton 953b12b4c0 Merge branch 'bugfix/build_deps_assembler' into 'master'
build system: Generate dependency make rules for assembler source

Was previously only C, C++.

See merge request !304
2016-12-15 06:48:15 +08:00
Angus Gratton 4f637034e8 build system tests: Add test case for sdkconfig-triggered recompilation 2016-12-15 08:45:32 +11:00
Angus Gratton 49be64a716 build system: Generate dependency make rules for assembler source
Was previously only C, C++.
2016-12-15 08:44:48 +11:00
Angus Gratton 487548e7dd Merge branch 'bugfix/build_system_linker_script_deps' into 'master'
build system: Linker scripts or binary libraries should trigger a re-link

Add binary libraries and linker scripts to the list of dependencies for the ELF file.

Fixes TW7816.


See merge request !307
2016-12-15 05:38:54 +08:00
Tian Hao aba262b18b component/bt : fix bluetooth disable memory leak 2016-12-15 01:36:27 +08:00
Tian Hao 69ee1de9fa component/bt : fix enable bug
1. enable will cause exception with list->head memory modify
2. gatt complete, timeout with HCI cmd timeout will cause exception
2016-12-14 22:10:21 +08:00
Tian Hao 5e87cdec7e component/bt : increase the task stack size
1. increase HCI task stack size
2. increase BTC task stack size for default
2016-12-14 22:10:21 +08:00
Tian Hao fd11beebcd component/bt : fix the init/deinit memory leak
1. modify the memory debug
2. fix init/deinit memory leak
2016-12-14 22:10:21 +08:00
Tian Hao 7ae7a56457 component/bt : fix the bug of deinit/disable
1. fix the exception of deinit/disable
2. debug mem leak of deinit, fix some memleak, but still something wrong.
3. debug men leak of disable.
4. add bluedroid memory debug
2016-12-14 22:10:21 +08:00
Ivan Grokhotkov 2e9c06b584 Merge branch 'bugfix/rom_int_functions' into 'master'
Fix broken WiFi due to intr allocation code.

TL;DR: The dynamic interrupt allocation code fixed something up to the point it broke. This code breaks off the broken code, fixing everything.

The dynamic allocated interrupt patch also fixed a bug in FreeRTOSs interrupt handling for two cores, which caused the two cores to (most of the time) have exactly the same interrupts enabled. This made WiFi fail: it would wait on a semaphore but never figure out the other core had set the semaphore, so it would keep waiting in the idle task for ever. This was caused by both the cross-core interrupt as well as the tick interrupt being disabled.

The culplrit for this appeared to be the WiFi driver, which enabled a FRC2 interrupt. The code enabling this, through a respectable amount of defines, called a rom function which called a HAL function... which was configured in such a way that it worked okay if both CPUs happened to have the same interrupts set, but broke as soon as that was not the case, possibly setting only the interrupt that was enabled and clearing all others.

The fix for this is to not use the ROM functions, but provide our own instead. Fortunately, this can be done without changes in the WiFi libs.

This MR also addresses a potentially dangerous ESP_LOG as well as some, according to the ISA document, needed rsyncs in the interrupt enable/disable code. It also marks int 9 and 10 as reserved, the WiFi code seems to use this.

See merge request !308
2016-12-13 14:16:57 +08:00
Jeroen Domburg d5c57d1d10 Put ets_isr_* functions into IRAM. Original fns were in ROM so people may expect them to work when flash cache is out. 2016-12-13 13:24:01 +08:00
Ivan Grokhotkov 8f3c74353a newlib: fix unit test name in test config 2016-12-13 13:24:01 +08:00
Ivan Grokhotkov 071615b059 freertos: fix TLS delete callback test
“Full” printf uses more stack space than “nano” printf, and more space than available in the idle task.
This caused stack overflow in TLS delete test. Replacing printf with ets_printf.
2016-12-13 13:24:01 +08:00
Jeroen Domburg 78161a1fe3 Replace non-multicore-aware rom funcs with multicore-aware funcs, ESP_LOG->ESP_EARLY_LOG fix, reserve ints used in wireless libs. Fixes WiFi crashing 2016-12-13 13:24:01 +08:00
Angus Gratton 311b7040d5 Merge branch 'feature/make_size' into 'master'
Add the size target to project Makefile

Github pull request https://github.com/espressif/esp-idf/pull/154

See merge request !305
2016-12-13 07:25:35 +08:00
Jonathan Dumaresq 2a22dc082b Add the size target to project Makefile 2016-12-13 10:03:51 +11:00