Commit Graph

382 Commits

Author SHA1 Message Date
Jeroen Domburg
0383bc8599 Merge branch 'workaround/pin_noaffinity_task_to_core_when_fpu_used' into 'master'
Workaround: Automatically pin no-cpu-affinity task to a core when FPU is used

FPU status at the moment does not migrate cleanly between cores, so tasks without affinity that happen to migrate across FPUs will run into problems. As a workaround, this modification will automatically pin the task to the current CPU when FPU activity is detected. If anything, it's better than getting all kinds of weird and wonderful FPU corruption issues...

See merge request !124
2016-09-29 11:16:41 +08:00
Jeroen Domburg
4daa768e3c Define xcoreid offset, add warning in tcb struct wrt the need to also change that define when struct changes 2016-09-29 11:07:18 +08:00
Wu Jian Gang
2a68a97545 Merge branch 'bugfix/tw6513_fix_memory_leak_issue' into 'master'
components/lib: update wifi lib

fe8baaca - tw6513 fix a memory leak issue

See merge request !125
2016-09-29 10:58:34 +08:00
Jeroen Domburg
59ac839e9e Merge branch 'feature/instruct_nghttp_xml' into 'master'
Feature/instruct nghttp xml

add expat and nghttp library description, instruct the XML parse and HTTP/2 protocol.

See merge request !119
2016-09-29 09:58:03 +08:00
Jeroen Domburg
60a6467663 Merge branch 'feature/freertos_untested_feature_assert' into 'master'
Assert on untested FreeRTOS features

When I SMP-enabled, I went through all the functions and made the necessary modifiucations. I however only managed to test the most used functions thoroughly. While we should test all FreeRTOS functions eventually, this MR will mark the ones we have not tested yet with a macro call that will, if enabled in MenuConfig (default enabled) assert() when the untested function is called.

Also removes some superfluous mux initializion code in EventGroups code.

See merge request !120
2016-09-29 09:55:06 +08:00
Jeroen Domburg
a59897d656 Merge branch 'master' into feature/freertos_untested_feature_assert 2016-09-28 22:15:05 +08:00
liuzhifu
8800d073e8 components/lib: update wifi lib
fe8baaca - tw6513 fix a memory leak issue
2016-09-28 21:35:49 +08:00
Jeroen Domburg
b3309a03a3 Automatically pin no-cpu-affinity task to a core when FPU is used 2016-09-28 17:02:44 +08:00
Wu Jian Gang
83ea5be9a2 components/expat: just change format of expat.rst
preview will be better.
2016-09-28 16:26:35 +08:00
Wu Jian Gang
9eb29ab43e components/nghttp: just change format of nghttp.rst
preview will be better.
2016-09-28 16:26:35 +08:00
liuhan
89bc31e158 components/nghttp: a few grammar fixes
modify a few grammar, see nghttp.rst file.
2016-09-28 16:26:35 +08:00
liuhan
b366d5b1e7 components/expat: a few grammar fixes
modify a few grammar, see expat.rst file.
2016-09-28 16:26:35 +08:00
liuhan
bee7f5e455 components/nghttp: add nghttp library description
add HTTP/2 instruction, see nghttp file.
2016-09-28 16:26:35 +08:00
liuhan
60d0cb29d3 components/expat: add expat library description
add XML instruction, see expat file.
2016-09-28 16:26:35 +08:00
Wu Jian Gang
7b7183bf8c Merge branch 'feature/btdm_lib_update' into 'master'
component/bt: update libbtdm_app.a

1. update the lib to version 010102 because the branch feature/btdm_controller missed the lib

See merge request !122
2016-09-28 13:24:07 +08:00
Jeroen Domburg
a9502dffd3 Add ringbuf.c. This works like a FreeRTOS queue, but allows for variable-length items which in some cases is more memory efficient than a queue. 2016-09-28 12:43:35 +08:00
wangmengyang
910172db49 component/bt: update libbtdm_app.a
1. update the lib to version 010102 because the branch feature/btdm_controller missed the lib
2016-09-28 12:30:44 +08:00
Ivan Grokhotkov
87091e10fe Merge branch 'master' into feature/btdm_controller
* master:
  app_main: Return type to void
  wifi: move type definitions into separate header file
  wifi: use default esp_event_send handler in WIFI_INIT_CONFIG_DEFAULT
  nvs: Remove flash layout arguments from nvs_init()
  Add contributor agreement, update CONTRIBUTING file
  Update http_request & https_request examples for new startup flow
  Add very simple "hello world" & "blink" examples
  Build examples out-of-tree as part of CI process
  Examples: Use event groups for waiting until WiFi is associated & ESP has IP
  BT example: Enable BT stack in config by default
  BT: Relink component on new BT library, auto-initialise submodule if missing
  Documentation: Add contributor guide, expand README & add an examples README
  Update gitignore for examples
  examples: Add https_request example
  mbedtls: Add some initial menuconfig options
  examples: HTTP request example
  component/esp32: udpate wifi lib
  component/esp32: modify bool argument name from enable to en
  component/esp32: adjust some APIs
  esptool: Bump upstream revision
2016-09-27 22:08:27 +08:00
Ivan Grokhotkov
e78da3093d Merge branch 'feature/initial_examples' into 'master'
Basic examples

Basic examples, contributor information & README clarifications.

See merge request !102
2016-09-27 19:17:43 +08:00
Angus Gratton
e0d462a2ba Merge branch 'feature/esptool_bump' into 'master'
esptool: Bump upstream revision

Fixes github #14 (unexpected errors writing to DIO flash)

Also speed boost when writing compressed data (can now go via stub)

See merge request !103
2016-09-27 17:54:28 +08:00
Angus Gratton
fdb90ddd21 Merge remote-tracking branch 'origin/bugfix/modify_some_wifi_apis' into feature/initial_examples 2016-09-27 19:37:06 +10:00
Angus Gratton
e6479ef314 app_main: Return type to void
Result is not checked
2016-09-27 19:30:43 +10:00
Ivan Grokhotkov
fcccec4a3b Merge branch 'master' into feature/btdm_controller
* master: (32 commits)
  components/nghttp: rename Makefile to component.mk
  components/nghttp: add HTTP2.0 protocol feature
  compoenents/esp32: don't alias start_cpu1 to start_cpu0_default
  components/freertos: fix a bug with an uninitialised return value
  Change application entry point name back to app_main
  gitlab-ci: build SSC with matching branch name, if available
  components/spi_flash: remove stray level of indentation
  components/nvs: fix broken sentences in comment blocks
  components/esp32: fix renaming of esp_event_set_cb, minor clean up
  components/esp32: remove "_user" part from entry points, weaken start_cpu0/1
  Fix a spelling mistake in panic message, add carriage return to stack canary message
  components/lwip,esp32: fixes for C++
  components/bt: fix compilation, remove ./ from makefile
  components/esp32: clarify type of queue in wifi_init_config_t, add default init macro
  components/esp32: add ESP_ERROR_CHECK
  Event handling refactoring
  clean up warnings
  components/esp32,bt: fix typos in comments
  Startup flow refactoring
  Roll back submodule version
  ...
2016-09-27 12:40:56 +08:00
Jeroen Domburg
8db85d71b2 Fix UNTESTED_FUNCTION includes, remove unnecessary mux initialization in event groups 2016-09-27 11:50:46 +08:00
Ivan Grokhotkov
952df01a10 wifi: move type definitions into separate header file
While this may reduce esp_wifi.h file readability for people who don't have a "go to definition" function in their editors, this is needed to decouple esp_wifi and esp_event headers, and possibly other headers which may use wifi types in the future.
2016-09-27 11:47:47 +08:00
Jeroen Domburg
fc53bb6ed5 Add UNTESTED_FUNCTION() call to untested functions, make Kconfig option to enable that to map to assert() 2016-09-27 11:36:30 +08:00
Ivan Grokhotkov
01a7efad88 wifi: use default esp_event_send handler in WIFI_INIT_CONFIG_DEFAULT 2016-09-27 11:33:19 +08:00
Angus Gratton
a98ab8d801 nvs: Remove flash layout arguments from nvs_init()
Add notes that current NVS layout defaults are a Work In Progress and
not yet integrated with the partition table.
2016-09-27 13:28:45 +10:00
Angus Gratton
7058b01983 BT: Relink component on new BT library, auto-initialise submodule if missing 2016-09-27 10:41:05 +10:00
Angus Gratton
aa75a71917 mbedtls: Add some initial menuconfig options 2016-09-27 10:38:00 +10:00
liuzhifu
62dbce1e81 component/esp32: udpate wifi lib
1. 1a01e34f - adjust esp_wifi_set/get_promiscuous' arguments from uint8/uint8*
               to bool/bool*
2. 3611e699 - register event handler instead of event Q in esp_wifi_init
2016-09-26 20:43:19 +08:00
liuzhifu
0aace445a6 component/esp32: modify bool argument name from enable to en
1. Modify WIFI_INIT_CONFIG_DEFAULT
2. Modify bool argument name from enable to en
2016-09-26 20:15:16 +08:00
liuzhifu
bd2e55def3 component/esp32: adjust some APIs
1. Modify wifi_init_config_t to:
   typedef struct {
      wifi_event_handler_t event_handler;  /**< WiFi event handler */
   } wifi_init_config_t;
2. Modify argument of esp_wifi_set/get_promiscuous from uint8_t/uint8_t* to bool/bool*
2016-09-26 19:45:36 +08:00
Wu Jian Gang
96e0afd30f components/nghttp: rename Makefile to component.mk 2016-09-26 19:21:55 +08:00
liuhan
3c33350af9 components/nghttp: add HTTP2.0 protocol feature
Develop and Issue HTTP2.0 protocol parse function, see nghttp file.
2016-09-26 18:56:20 +08:00
wangmengyang
b9167f70cd component/bt: add VHCI mutex protetion
1. add mutex to VHCI APIs
2. remove bss/data log print during initialization;
3. add bss/data symbols in esp32.rom.ld
4. add & modify BTDM OSI functions
2016-09-26 18:52:15 +08:00
Ivan Grokhotkov
e3ffcd22d5 Merge branch 'feature/init_refactoring' into 'master'
Startup flow refactoring

This set of commits changes the startup code in a way that lets the application choose if/when to initialize WiFi/BT.

Application entry point is now a more familiar `main()` function. This function is executed in its own task. Application may choose to do some initialization from main function, create some tasks and then return from `main`. Simple applications may choose to do all their work from `main`.

Additionally this MR splits event handling code into two parts. 

- One part is a set of standard handlers for WiFi and DHCP events. Most applications will use this set of handlers, and it is made available via new `esp_event_process_default` function. 
- Another part is the default implementation of event handling loop. Some applications may choose to use default event loop through `esp_event_loop_` set of APIs, which start an event handling task and call user-provided event callback from this task. Other applications may create an event queue and implement event loop themselves. In this case application has to provide `esp_event_send` function. In this case the implementation provided by `esp_event_loop_` module is unused.

esp-idf-template has been updated to match this set of changes: https://github.com/espressif/esp-idf-template/tree/feature/init_refactoring
BT example has also been updated.

We need to provide examples of both event handling approaches. This will be done in a separate follow-up MR.

See merge request !112
2016-09-26 17:06:12 +08:00
Ivan Grokhotkov
991fde1f9d compoenents/esp32: don't alias start_cpu1 to start_cpu0_default 2016-09-26 15:58:58 +08:00
Ivan Grokhotkov
adfb9fafaa components/freertos: fix a bug with an uninitialised return value
introduced in d63dac0
2016-09-26 15:57:54 +08:00
Angus Gratton
25f6d06e01 Merge branch 'bugfix/spelling_and_crlf_fix_in_panic' into 'master'
Fix a spelling mistake in panic message, add carriage return to stack canary message

Probably the most trivial mr ever, but the spelling error was reported as a bug and the missing \r bugged me ever since I saw it.

See merge request !113
2016-09-26 15:53:05 +08:00
Angus Gratton
46e88e9f24 esptool: Bump upstream revision
Fixes github #14 (unexpected errors writing to DIO flash)

Also speed boost when writing compressed data (can now go via stub)
2016-09-26 17:21:11 +10:00
Ivan Grokhotkov
7cef0308dc Change application entry point name back to app_main 2016-09-26 14:48:41 +08:00
Ivan Grokhotkov
dabe53f082 Merge branch 'master' into feature/init_refactoring
* master:
  components/spi_flash: remove stray level of indentation
  components/nvs: fix broken sentences in comment blocks
  Roll back submodule version
  Spinlocks already come initialized. Remove the code that would essentially re-initialize them at runtime
  Remove all references to prvLockQueue / prvUnlockQueue
  components/esp32: clean up unused function warnings in single core mode
  clean up warnings
  components/nvs: fix build, use log library instead of printf
  components/spi_flash: add flash operation counters option to Kconfig
  components/nvs: add erase function
  components/nvs: fix formatting
  components/nvs: batch writes when possible
  components/spi_flash: add performance counters
  components/nvs: maintain item hash list at page level
  components/nvs: avoid reading just-erased page

# Conflicts:
#	components/esp32/cpu_start.c
#	components/esp32/event_default_handlers.c
2016-09-26 14:35:09 +08:00
Ivan Grokhotkov
1dc7fda812 Merge branch 'feature/nvs_speed_improvement' into 'master'
nvs: speed improvement and erase APIs

NVS initialization speed issue raised in https://ezredmine.espressif.com/issues/6881 has been addressed for single core mode through optimization of `spi_flash_*` routines. This MR addresses same issue for dual core mode.

- An index table is added at Page level, it allows doing fast search of item index based on key name and namespace. This heavily reduces the number of flash reads.
- Write operations are batched when writing/erasing long variable-length values (str and blob). This gives a 33% reduction in the number of writes for a 64-byte value, 50% reduction for a 96-byte value.
- Add optional (configurable via menuconfig) perfomance counters for spi_flash APIs

With these changes, total init time for NVS goes down from 2 seconds to 140 ms.
Additional RAM usage is 128-640 bytes per page, depending on content. Typical RAM usage for current use case (storing wifi configuration parameters) is 256 bytes.

This change also exposes APIs to erase single key or the whole namespaces, needed for https://ezredmine.espressif.com/issues/6769.

See merge request !105
2016-09-26 12:51:01 +08:00
Ivan Grokhotkov
bdfd4ec3db components/spi_flash: remove stray level of indentation 2016-09-26 12:47:17 +08:00
Ivan Grokhotkov
6f2ed934d2 components/nvs: fix broken sentences in comment blocks 2016-09-26 12:41:04 +08:00
Ivan Grokhotkov
890fadc394 components/esp32: fix renaming of esp_event_set_cb, minor clean up 2016-09-26 12:35:09 +08:00
Ivan Grokhotkov
62aaec630c components/esp32: remove "_user" part from entry points, weaken start_cpu0/1
With this change applications can override very early part of startup procedure by implementing "start_cpu0" and "start_cpu1" functions.
2016-09-26 12:29:00 +08:00
Jeroen Domburg
14de3a3815 Fix a spelling mistake in panic message, add carriage return to stack canary message 2016-09-26 11:18:43 +08:00
Angus Gratton
3ccec16706 Merge branch 'bugfix/clean_up_warnings' into 'master'
Clean up warnings and remove unused parts of FreeRTOS

For third party components (lwip and expat), compilation flags are adjusted to silence existing warnings (i have manually checked that all warnings are benign).
In components/esp32, replaced use of WIFI_DEBUG with ESP_LOG functions.

Additionally prvLockQueue/prvUnlockQueue have been removed, dragging some other bits of FreeRTOS along.

Original issue: https://github.com/espressif/esp-idf/issues/18

See merge request !111
2016-09-26 08:16:31 +08:00