Commit Graph

640 Commits

Author SHA1 Message Date
Ivan Grokhotkov
72712c00a7 freertos: forward task affinity argument to prvInitializeNewTask 2016-10-14 21:24:58 +08:00
Wu Jian Gang
216b831646 Merge remote-tracking branch 'origin/master' into feature/openssl 2016-10-13 17:14:40 +08:00
Ivan Grokhotkov
bdd67c98d6 Merge branch 'feature/test_auto_config' into 'master'
Feature/test auto config



See merge request !114
2016-10-13 15:01:23 +08:00
Jeroen Domburg
fa476c8ba9 Merge branch 'bugfix/small_fixes_jd' into 'master'
Some small fixes

- Kill unused uxReturn in task.c,  https://github.com/espressif/esp-idf/issues/48
- Line end conversion in gpio.c
- Move heap_alloc_caps.h so components can also use it

See merge request !135
2016-10-12 21:13:34 +08:00
Jeroen Domburg
03bd5b6d22 Fix offset of coreid in tasktcb 2016-10-12 18:17:58 +08:00
Jeroen Domburg
89097d5f11 Add xCoreID arg to prvInitialiseNewTask code; initialize pvThreadLocalStoragePointersDelCallback array to NULL 2016-10-12 17:46:15 +08:00
Yinling
b72d22041c rename components/test to idf_test:
1. test will be categorized by test level
2. add test level as attribute to test cases
3. will select TestCaseScript by the test cases added to CI (currently no test case uses test case script)
4. adding test level to test jobs
5. update .gitlab-ci.yml, each job need to set its test case file path
6. update .gitlab-ci.yml, test case path for test report is changed to idf_test
2016-10-12 11:17:56 +08:00
Yinling
fbb654fa68 move content from readme to wiki 2016-10-11 17:23:46 +11:00
Yinling
6442601333 add some missing cases caused by autogen bug 2016-10-11 17:23:46 +11:00
Yinling
547fb6ed6c update current known issue for ESP32 IDF test 2016-10-11 17:23:46 +11:00
Yinling
9b72441b45 Test cases use libpcap or libnet are not CI ready now:
1. It need rebuild native lib
2. require root permission
2016-10-11 17:23:46 +11:00
Yinling
5ba6c1b1b7 sync test config from test bench:
1. night jobs should exit without error if not triggered
2. remove get wifi connect status cases from IDF
3. use Env tag to check if test environment is special
2016-10-11 17:23:45 +11:00
Yinling
5fab6c36c8 update job configs for allow case fail feature 2016-10-11 17:23:45 +11:00
Yinling
d695d40196 add note that test folder is for internal use.
Will move data in readme to wiki except first two notes.
2016-10-11 17:23:45 +11:00
Yinling
024a1ce260 add KnownIssues file to test:
add known issues to this file so that they will be exculded in CI results
2016-10-11 17:23:45 +11:00
Yinling
4de2054541 fix bugs in config files:
1. filter name is "Add" not "ADD"
2. SSC_T1_APC is special environment
3. remove "debug mode" from config as it will implemented with other ways
2016-10-11 17:23:45 +11:00
Yinling
99ebc93abb modify document to add how to run test locally 2016-10-11 17:23:45 +11:00
Yinling
90e57cdf8f add auto generated test folder to components:
1. add test cases and related scripts
2. add CI config files
read README.md for detail
2016-10-11 17:19:40 +11:00
Ivan Grokhotkov
924fea7cc0 freertos: fix setting xCoreID for new task 2016-10-11 00:05:15 -06:00
Ivan Grokhotkov
8ee1a05914 Merge branch 'master' into feature/freertos_static_buffers
* master: (117 commits)
  build system: Add -fno-rtti when compiling C++ code
  FreeRTOS KConfig: Limit tick rate to 1000Hz
  bootloader: Fix accidental tabs introduced in !78
  build system: Print a WARNING if any submodule is out of date
  Fix stack overflow message format
  'make flash' targets: Print serial port when flashing
  lwip/esp32: support iperf
  Add data memory for RMT peripheral
  syscall write: Should return number of bytes written
  Also push relevant tags over
  esp32: add libsmartconfig.a to link libs
  esp32: not link wps
  esp32/lib: update wifi lib to a1e5f8b9
  esp32: remove esp_wps.h
  add smartconfig header files(merge this after updating libsmartconfig.a version v2.6.2)
  esp32/lib: update wifi lib to 3853d7ae
  Add Comments
  Modify spinlock error in periph_ctrl.c
  Define xcoreid offset, add warning in tcb struct wrt the need to also change that define when struct changes
  components/tcpip_adapter: add some comments
  ...

# Conflicts:
#	components/freertos/queue.c
#	components/freertos/tasks.c
2016-10-10 23:34:45 -06:00
Angus Gratton
1bae606ccc FreeRTOS KConfig: Limit tick rate to 1000Hz
>1000Hz breaks portTICK_PERIOD_MS (see gitlab 4)

A working >1000Hz tick rate is possible with some changes, but beyond a
certain point it's dimishing returns to preempt tasks this often.
2016-10-11 07:56:08 +11:00
Angus Gratton
c12582c122 bootloader: Fix accidental tabs introduced in !78 2016-10-11 07:56:08 +11:00
Angus Gratton
79bd6af7e7 build system: Print a WARNING if any submodule is out of date
Inspired by Github #27 and related "gotchas" with keeping submodules up to date.
2016-10-11 07:56:08 +11:00
rudi ;-)
71c09d8f66 Fix stack overflow message format
Poorly formatted message for stack overflow for task. Closes #36
2016-10-11 07:56:08 +11:00
Angus Gratton
a20c2f1088 'make flash' targets: Print serial port when flashing
Inspired by github #30 and related mentions where selected serial port
is not clear from the make output.
2016-10-11 07:56:08 +11:00
Angus Gratton
ab67378ef3 Merge branch 'feature/support_iperf' into 'master'
lwip/esp32: support iperf

1. Add _exit() definition in syscalls.c
2. Fix a bug in sockets.c on which iperf depends

I'm now investigating performance of esp32, need iperf to be merged in to master branch for convience

See merge request !136
2016-10-11 04:52:34 +08:00
Jeroen Domburg
812d4ab4ea Merge branch 'feature/rmt_add_struct_for_memory' into 'master'
Add data memory for RMT peripheral

As described in the title.

See merge request !134
2016-10-10 22:44:36 +08:00
Dong Heng
5d60a1153d components/openssl: Modify the documentation of OpenSSL-APIs
1. add description of non-supported APIs
2. remove non-supported APIs now
3. add more supported APIs
2016-10-10 11:18:45 +08:00
Dong Heng
ecefb1305a components/openssl: change header file relationship of level 2016-10-10 10:40:00 +08:00
Dong Heng
034da95abb components/openssl: change SSL read or write statement after success 2016-10-09 19:18:18 +08:00
Dong Heng
37a68ad605 components/openssl: fix SSL X509 show message, leaking memory 2016-10-09 19:02:31 +08:00
Dong Heng
47e83ee65e components/openssl: add SSL any version function setting 2016-10-09 17:49:16 +08:00
Dong Heng
2033068a72 components/openssl: add internal openssl X509 debug function 2016-10-09 16:42:49 +08:00
liuzhifu
d71894bf99 lwip/esp32: support iperf
1. Add _exit() definition in syscalls.c
2. Fix a bug in sockets.c on which iperf depends
2016-10-09 15:45:25 +08:00
Jeroen Domburg
df31bb8dfc Rename include, use spaces instead of tabs 2016-10-09 15:32:08 +08:00
Jeroen Domburg
82df5f9aa0 Convert Windows -> Unix line ends in gpio.c 2016-10-08 14:12:55 +08:00
Jeroen Domburg
a03e75d34c Move heap_alloc_caps.h to a location where it can be included by components 2016-10-08 14:11:34 +08:00
Jeroen Domburg
5cd3bd5c4b Add data memory for RMT peripheral 2016-10-08 13:15:06 +08:00
Angus Gratton
aae3e84829 syscall write: Should return number of bytes written
Fixes bug where sometimes output truncates after a newline, or large
chunks of large output buffers are lost.
2016-10-06 18:35:08 +11:00
Angus Gratton
305bc9fd9c build system: Run parallel builds without warnings
Ref github #38
2016-10-06 18:29:34 +11:00
Angus Gratton
f720e82d40 build system: Allow BUILD_DIR_BASE to be a relative directory (see github #38) 2016-10-06 18:05:51 +11:00
Angus Gratton
477d71e589 config system: Fix configuration when BUILD_DIR_BASE out-of-tree
Ref #38. Also no longer generates bootloader sdkconfig in source tree.
2016-10-04 15:38:20 +11:00
Angus Gratton
66882347e8 build system: Fix out-of-tree building via BUILD_DIR_BASE
Closes #38
2016-10-04 15:04:56 +11:00
Wu Jian Gang
d2c938d881 esp32: add libsmartconfig.a to link libs 2016-09-30 15:40:08 +08:00
Wu Jian Gang
6827f27b99 esp32: not link wps 2016-09-30 14:04:03 +08:00
Wu Jian Gang
e3f46f424c esp32/lib: update wifi lib to a1e5f8b9
1. update smartconfig 2.6.2;
2. add watch dog
3. remove libwpa2.a/libwps.a
2016-09-30 13:50:11 +08:00
Wu Jian Gang
f17f57b48d esp32: remove esp_wps.h
not support now
2016-09-30 13:48:37 +08:00
Wangjialin
9d0daa3722 add smartconfig header files(merge this after updating libsmartconfig.a version v2.6.2)
1. change the original API names.
2. return esp_err_t
3. merge this after updating libsmartconfig.a version v2.6.2
2016-09-30 02:31:14 +08:00
Wu Jian Gang
aeef4cf58d esp32/lib: update wifi lib to 3853d7ae
1. add debug api for debugging rx buffer leak issue
2. fix rx buffer leak issue
2016-09-29 18:19:38 +08:00
Wu Jian Gang
702e749667 Merge branch 'feature/deep_sleep_wake_stub' into 'master'
esp32: Bootloader wake deep sleep stub

App can contain a stub program resident in RTC fast memory. Bootloader
will load the stub on initial boot. If the device wakes from deep sleep,
the stub is run immediately (before any other data is loaded, etc.)

To implement a custom wake stub, implement a function in your program:

```
void RTC_IRAM_ATTR esp_wake_deep_sleep(void)
{
  esp_default_wake_deep_sleep();
  // other wake logic
}
```

... and it will replace the default implementation.

See merge request !78
2016-09-29 18:07:16 +08:00
jack
4e092be6d6 Add Comments
We reserve 4KB Slow RTC memory to save RF calibation result and BT NVS data.
If not all these Slow RTC momory Blocks are used, we will open the other parts.
2016-09-29 16:29:13 +08:00
Wu Jian Gang
c2a037fcbd Merge branch 'feature/tcpip_adapter_comments' into 'master'
add comments for tcpip_adapter



See merge request !123
2016-09-29 12:16:49 +08:00
Jeroen Domburg
44f559a281 Merge branch 'driver_merge_tmp/merge_ledc' into 'master'
add ledc driver code



See merge request !110
2016-09-29 11:57:52 +08:00
Wangjialin
d82cb7f60f Modify spinlock error in periph_ctrl.c 2016-09-29 11:50:25 +08:00
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
Wu Jian Gang
3533c6b7f4 components/tcpip_adapter: add some comments 2016-09-29 10:55:52 +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
Wangjialin
e523a2532a Modify LEDC driver
1. configure LEDC timer saparately
2. add peripher_crtl.c/.h
    To enable the peripheral modules, we have to set/clear the control register in dport_reg.h.
    These bits are disabled by default and they are all in a same register, so we need to add a lock on that.
3. add include esp_err.h in gpio.h
2016-09-28 23:20:34 +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
Dong Heng
de587a2e0d components/openssl: fix .rst file encoding error 2016-09-28 20:46:45 +08:00
Dong Heng
b97c00f2c1 components/openssl: add more .rst encoding type 2016-09-28 20:41:11 +08:00
Dong Heng
1bcc5438ec components/openssl: fix .rst file encoding type 2016-09-28 19:40:05 +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
Dong Heng
9c4e43a3a5 components/openssl: optimize the OpenSSL APIs brief document
1. change document name
2. change function introduction template
2016-09-28 16:46:27 +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
8fcb0827ae components/tcpip_adapter: add comments for tcpip_adapter 2016-09-28 16:21:24 +08:00
Wangjialin
9cfb3227a3 Merge branch 'master' into driver_merge_tmp/merge_ledc
Merge master branch to pass building.
2016-09-28 13:27:58 +08:00
Wu Jian Gang
ed0a85ab4d Kconfig: use 4 spaces to instead 1 tab
In some Kconfig file, both 4 spaces and 1 tab are used mix, let's just
use 4 space, it will be clean in some editor.
2016-09-28 13:24:58 +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
Wu Jian Gang
70e1131b4b esp32: add TRACEMEM_RESERVE_DRAM config
this configaration is missed when rebase
2016-09-28 12:29:39 +08:00
Wangjialin
516ab36bbe Minor modification
1. add new line between typedefs
2. for param check functions, return bool if they are true/false
2016-09-28 12:04:15 +08:00
xiaxiaotian
ec03c31ec4 1. Change the deep sleep stub code to fix wake bug. 2016-09-28 11:52:39 +08:00
Angus Gratton
103a2a0079 esp32: Allow RTC slow memory to be reserved for ULP coprocessor 2016-09-28 11:15:29 +08:00
Angus Gratton
2c6ab8579a esp32: Pass memory layout linker script through C preprocessor
C preprocessor is a bit icky, but with ULP we will have 3 possible
variables influencing the memory layout and 9 linker scripts is too
many!
2016-09-28 11:15:29 +08:00
Angus Gratton
5f45cbc16a esp32: Add esp_deepsleep.h to esp_system.h to keep backwards compatibility with system_deep_sleep() 2016-09-28 11:14:58 +08:00
Angus Gratton
7c494055e3 esp32: Bootloader wake deep sleep stub
App can contain a stub program resident in RTC fast memory. Bootloader
will load the stub on initial boot. If the device wakes from deep sleep,
the stub is run immediately (before any other data is loaded, etc.)

To implement a custom wake stub, implement a function in your program:

```
void RTC_IRAM_ATTR esp_wake_deep_sleep(void)
{
  esp_default_wake_deep_sleep();
  // other wake logic
}
```

... and it will replace the default implementation.
2016-09-28 11:14:58 +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
Dong Heng
9e20d31f89 components/openssl: fix extra certification loading 2016-09-27 19:06:07 +08:00
Dong Heng
6941b5871a components/openssl: add OpenSSL APIs description 2016-09-27 18:52:31 +08:00
Dong Heng
877adaab7a components/openssl: add some function description 2016-09-27 18:50:57 +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
Dong Heng
652ddae44f components/openssl: change low-level certification loading sequence 2016-09-27 14:28:39 +08: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
Dong Heng
3882937427 components/openssl: add debug message and change verifying mode 2016-09-27 10:06:24 +08: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
Dong Heng
cf4aaf6397 components/openssl: optimize the SSL certification and private key function
1. add inheritance function
2. remove low-level platform unload cert & pkey function
3. optimize the cert load and free function
2016-09-26 11:14:19 +08:00
Wangjialin
ec45e1a593 components/driver: modify LEDC driver
1. modify ledc struct header: combine high speed and low speed channel
2. modify ledc init function
3. add timer control api
4. modify typo in ledc.h
2016-09-26 09:56:03 +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
Ivan Grokhotkov
b190dc3e9f components/lwip,esp32: fixes for C++
- put contents of a few headers into c++ guard blocks
- fix off-by-one error in do_global_ctors
- remove system_init from startup code (should be called from main)
2016-09-26 03:05:25 +08:00
Ivan Grokhotkov
10c69514b7 components/bt: fix compilation, remove ./ from makefile 2016-09-26 01:45:12 +08:00
Ivan Grokhotkov
5a762d9eee components/esp32: clarify type of queue in wifi_init_config_t, add default init macro 2016-09-26 01:35:31 +08:00
Ivan Grokhotkov
e9b54b6b45 components/esp32: add ESP_ERROR_CHECK
Convenience macro to do error check and assert in cases when error recovery is not expected
2016-09-26 01:34:05 +08:00
Ivan Grokhotkov
53de9f115f Event handling refactoring
This change separates definitions in esp_event.h and functions in event.c into several parts:
- event structure definitions (esp_event.h)
- default implementations of event handlers (event_default_handlers.c)
- default implementation of event loop (event_loop.c, esp_event_loop.h)

Purpose of this change is to allow applications choose their own poison:
- full control of event loop at the expense of more bootstrap code
- pre-defined event task firing event callbacks, but less code in app_main.c
2016-09-26 01:17:32 +08:00
Ivan Grokhotkov
cc8dd46da2 clean up warnings
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.
Only remaining warning is in FreeRTOS queue.c, and it may be a useful one.
2016-09-26 00:52:32 +08:00
Ivan Grokhotkov
e1c782a206 components/esp32,bt: fix typos in comments 2016-09-26 00:51:56 +08:00
Ivan Grokhotkov
b936441b9b Startup flow refactoring
This change removes implicit WiFi/BT initialization from startup code.
"main" task is started once essential part of startup code is complete.
This task calls application-provided "int main(void)" function, which can call WiFi/BT init functions if necessary.
2016-09-26 00:50:57 +08:00
Dong Heng
e1c4a4bfa3 components/openssl: add cert and pkey extra object point
the point is pointed to its father's object and should not free
just set NULL if not use
2016-09-23 18:47:09 +08:00
Dong Heng
d2bc170b86 components/openssl: add SSL session function
1. add SSL session new and free function
2. add SSL session peer cert get and free operation
3. above all, change low-level cert object to be object point not object
2016-09-23 18:13:10 +08:00
Ivan Grokhotkov
6818c4c971 Roll back submodule version 2016-09-23 18:08:39 +08:00
Jeroen Domburg
b8bfa9fa35 Spinlocks already come initialized. Remove the code that would essentially re-initialize them at runtime 2016-09-23 17:46:16 +08:00
Jeroen Domburg
d63dac0320 Remove all references to prvLockQueue / prvUnlockQueue 2016-09-23 17:43:52 +08:00
dongheng
83aea6c833 components/openssl: add extern C symbol 2016-09-23 15:18:14 +08:00
Ivan Grokhotkov
6718e321f2 components/esp32: clean up unused function warnings in single core mode 2016-09-23 15:02:17 +08:00
dongheng
12b72e91af components/openssl: remove unused variate 2016-09-23 14:58:14 +08:00
snake
6bb5a93221 add 'extern C' in header files 2016-09-23 14:54:30 +08:00
dongheng
5c5f7eb7fe components/openssl: add openssl stack object function 2016-09-23 14:53:19 +08:00
dongheng
f9fd5b6c72 components/openssl: add X509 verify result errno 2016-09-23 14:52:33 +08:00
Wangjialin
3f1c5c4d5b 1. add a macro 'GPIO_IS_VALID_OUTPUT_GPIO' and 'GPIO_IS_VALID_OUTPUT_GPIO' in gpio.h
2. add PIN_FUNC_GPIO in io_mux_reg.h, put the io_mux_regs in order
3. use braces around single line if statements in ledc.c and gpio.c
2016-09-23 14:52:26 +08:00
dongheng
59bb9a9a01 components/openssl: [TW7411] supply doxygen type note 2016-09-23 14:50:27 +08:00
Ivan Grokhotkov
5e6b2e9c45 clean up warnings
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.
Only remaining warning is in FreeRTOS queue.c, and it may be a useful one.
2016-09-23 14:46:39 +08:00
dongheng
db9becfa74 components/openssl: free peer cert X509 object when SSL_free 2016-09-23 13:38:11 +08:00
dongheng
e475d0539e components/openssl: add SSL and SSL context verify mode selection 2016-09-23 11:41:57 +08:00
dongheng
f5d9bfc7ae components/openssl: fix SSL get peer cert struct point type error
1. fix SSL get peer cert struct point type error
	2. some function use "zalloc" instead of "malloc"
2016-09-23 11:03:13 +08:00
snake
7b79e4c9ae add .h license header 2016-09-23 11:02:46 +08:00
dongheng
07c8bbca6c components/openssl: SSL low-level reload cert when user add new cert 2016-09-23 10:53:18 +08:00
snake
95c48d4b84 1. clean up the macro. 2. change component/bt/lib url to use new lib 2016-09-23 10:48:55 +08:00
dongheng
9fc054bb55 components/openssl: SSL load cert with creating new cert object
1. when 'SSL_new' SSL's cert is pointed to SSL context cert
           If SSL load new cert, it will create a new cert object
        2. change some debug informaion
2016-09-23 10:33:31 +08:00
Wangjialin
85cd269ef8 add ledc driver code 2016-09-23 09:21:37 +08:00
Ivan Grokhotkov
1c7508885c components/nvs: fix build, use log library instead of printf 2016-09-23 09:00:28 +08:00
Ivan Grokhotkov
f2149eabee components/spi_flash: add flash operation counters option to Kconfig 2016-09-23 08:44:45 +08:00
Ivan Grokhotkov
2a68f60874 components/nvs: add erase function
This change exposes functions to erase single key and to erase all keys from namespace.
TW6769, TW6839
2016-09-23 08:08:03 +08:00
Ivan Grokhotkov
e87d80d478 components/nvs: fix formatting 2016-09-22 21:05:47 +08:00
Ivan Grokhotkov
076141aab9 components/nvs: batch writes when possible
Introduces new internal function, Page::alterEntryRangeState, which gathers changes to multiple elements of entry state table into a single write, provided that these changes fall into a single word. This allows changing state of up to 16 entries in a single write.
Also adds new function, writeEntryData, which writes the whole payload of SZ and BLOB type entries in one go, instead of splitting it into multiple 32-byte writes.
This reduces number of writes required for SZ and BLOB entries.
2016-09-22 21:05:17 +08:00
Ivan Grokhotkov
822a9981d8 Merge branch 'master' into feature/btdm_controller
* master:
  esp32/lib: update to f6d55836
2016-09-22 18:40:54 +08:00
Ivan Grokhotkov
c6e1d0b30a Kconfig: make WiFi and BT mutually exclusive
Also move memory map options from top-level Kconfig to esp32/Kconfig.
2016-09-22 18:36:23 +08:00
dongheng
1bfedf9816 components/openssl: fix the SSL_free memory leak 2016-09-22 18:33:55 +08:00
Ivan Grokhotkov
bc256cc36d components/bt: add library as submodule 2016-09-22 17:54:19 +08:00
Ivan Grokhotkov
db407074f1 components/bt: remove binary library 2016-09-22 17:52:07 +08:00
dongheng
18787fd4fc components/openssl: add empty fucntion to get peer certification and fix ref overflow 2016-09-22 17:20:07 +08:00
dongheng
f796b4e58e components/openssl: SSL load verify data from itself structure when "new" 2016-09-22 16:41:51 +08:00
snake
993287af61 add btdm_controller 1st 2016-09-22 16:40:31 +08:00
Wu Jian Gang
28be72dbc7 esp32/lib: update to f6d55836
1. Fix reboot halt bug when 240MHz, TW7355
2. Disable long rate code
2016-09-22 16:30:34 +08:00
dongheng
fa6f03f77f components/openssl: add function to load certification or private key more than one time 2016-09-22 16:08:36 +08:00
dongheng
a99f6bd727 components/openssl: add function load verify data into SSL
1. add function to load private key into SSL
        1. add function to load certification into SSL
2016-09-22 15:56:56 +08:00
dongheng
2faa2376a0 components/openssl: add empty function to load verify file into SSL context
1. add empty function to load private key into SSL context
        2. add empty function to load certification into SSL context
	3. add function to load RSA private key
2016-09-22 15:39:28 +08:00
dongheng
6f07409d7c components/openssl: add function to set and get verify depth
1. add function to set and get SSL verify depth
	2. add function to set and get SSL context verify depth
	3. add X509_VERIFY_PARAM structure
2016-09-22 15:30:25 +08:00
dongheng
b3145446aa components/openssl: add function "ssl_pm_get_verify_result"
1. add function ssl_pm_get_verify_result
	2. add its platform low-level interface
2016-09-22 15:15:16 +08:00
dongheng
2cc32db52d component/openssl: add openssl stack function and clear unused variate
1. add openssl 'new' and 'free' function
	2. add clear unused variate to void warning to appear when compile
        3. add internal function 'X509_new' to take the place of 'sk_X509_NAME_new_null' function whitch is openssl stack function
2016-09-22 14:42:49 +08:00
daniel
01d17dd5f9 Backport the static allocation feature from FreeRTOS V9.0.0
This feature allows to use static buffers (or from a pool of memory which is not
controlled by FreeRTOS).
In order to reduce the impact of the changes, the static feature has only been added
to the queus (and in consequence to the semaphores and the mutexes) and the tasks.
The Timer task is always dynamically allocated and also the idle task(s), which in the
case of the ESP-IDF is ok, since we always need to have dynamic allocation enabled.
2016-09-22 13:41:21 +08:00
dongheng
c504fe4856 components/openssl: 1. add stack_st structure and its advanced defination including its derived child defination
2. add SSL_add_client_CA & SSL_get_certificate
2016-09-22 12:57:39 +08:00
liuzhifu
67e8b3bcaf tcpip_adapter: set sta ip to IP_ADDR_ANY when sta disconnect from ap
When sta is disconnected from AP, set sta ip to IP_ADDR_ANY to trigger lwip
to clean up all TCP/UDP pcbs.
2016-09-22 11:49:37 +08:00
dongheng
845ca8b34f components/openssl: delete ssl_rsa.c & .h file 2016-09-22 11:43:59 +08:00
Ivan Grokhotkov
226e64bd1e Merge branch 'driver_merge_tmp/fix_fifo_struct_header' into 'master'
use uint8_t for fifo struct in uart and i2c

use uint8_t for fifo struct in uart and i2c

See merge request !106
2016-09-22 11:39:16 +08:00
Wangjialin
71fe8d9f15 Merge branch 'master' into driver_merge_tmp/merge_gpio 2016-09-22 10:50:06 +08:00
Ivan Grokhotkov
ba75f837b8 components/spi_flash: add performance counters 2016-09-22 10:39:36 +08:00
dongheng
6bd3d62d7c components/openssl: add license header 2016-09-22 10:28:08 +08:00
Wangjialin
d2420b667c use uint8_t for fifo struct in uart and i2c 2016-09-22 09:05:39 +08:00
Ivan Grokhotkov
12a0786e2a components/nvs: maintain item hash list at page level 2016-09-21 18:02:52 +08:00
Ivan Grokhotkov
f06ebeba86 components/nvs: avoid reading just-erased page 2016-09-21 18:02:52 +08:00
dongheng
b89168d0f1 components/openssl: add ssl_port.c & .h file 2016-09-21 17:51:12 +08:00
Wu Jian Gang
134649141c esp32/lib: update to 9f26b9a1
1. Fix reboot halt bug, TW7355
2. Fix system crash when calling system_deep_sleep(), TW7356
2016-09-21 16:49:30 +08:00
Wu Jian Gang
835cc55138 esp32: wait uart tx finish before cpu freq change 2016-09-21 16:15:42 +08:00
Wangjialin
92569082c6 Remove some macros and declarations that are already in rom/gpio.h 2016-09-21 12:08:42 +08:00
Wu Jian Gang
4f93b49e0a esp32/lib: update to 9403d944 2016-09-21 11:37:10 +08:00
Wangjialin
f7b10745be Remove mutex from GPIO driver code. Replace uint8_t/uint16_t with uint32_t 2016-09-21 09:51:37 +08:00
dongheng
5adc661d05 components/openssl: add more interface for application 2016-09-21 09:23:29 +08:00
Ivan Grokhotkov
d09a79c20d Merge branch 'feature/menuconfig_cpu_frequency_option' into 'master'
Add CPU frequency selection in menuconfig

See merge request !81
2016-09-20 17:45:46 +08:00
Ivan Grokhotkov
9a1bf32274 Merge branch 'feature/lwip_add_debug_code' into 'master'
lwip: add debug code to show udp/tcp pcbs

Add code to show all tcp/udp pcbs, these kind of debug info is helpful for lwip issue debugging.

See merge request !98
2016-09-20 17:22:22 +08:00
Ivan Grokhotkov
da69d6ad3c Merge branch 'master' into feature/menuconfig_cpu_frequency_option
* master: (57 commits)
  components/lwip: fix grammar
  components/lwip: make SO_REUSE configurable via menuconfig
  bootloader: remove trailing newlines from log messages
  components/freertos: override per-task __cleanup handler to close stdin, stdout, stderr
  components/esp32: move peripheral symbols to separate ld script
  components/log: regroup macros for better readability
  gitlab-ci: allow running tests for branches, triggered via API
  components/log: fix timestamp calculation
  components/log: set default runtime log level to ESP_LOG_VERBOSE
  components/log: fix error when using ESP_LOGx from C++ code
  components/log: fix bugs, add options to override log level for files, components, and bootloader
  fix ledc and spi typo
  remove prefix and postfix
  Enable SO_REUSEADDR in LWIP
  freertos: fix memory debug macro issue Define configENABLE_MEMORY_DEBUG according to CONFIG_ENABLE_MEMORY_DEBUG
  peripheral structure headers: move volatile keyword from members to typedef
  Adding -fstrict-volatile-bitfields to the CFLAGS/CXXFLAGS. Without this, gcc tries to access bitfields using the smallest possible methods (eg l8i to grab an 8-bit field from a 32-bit). Our hardware does not like that. This flag tells gcc that if a bitfield is volatile, it should always use the type the field is defined at (uint32_t in our case) to size its access to the field. This fixes accessing the hardware through the xxx_struct.h headers.
  add peripheral  module struct headers
  build system docs: Add note about no spaces in component names
  Docs: Add note about unusual submodule messages when cloning on Windows
  ...

# Conflicts:
#	components/esp32/cpu_start.c
#	components/esp32/include/soc/cpu.h
2016-09-20 17:22:18 +08:00
Ivan Grokhotkov
6e35c0a91a Merge branch 'feature/logging' into 'master'
Add logging library

Logging library, intended to be used across other components.
Uses design similar to Android NDK logging APIs and allows for both compile time and run time filters, similar to logcat.

Also includes cleanup of cpu_startup.c — i was changing some logging output in this file so decided to re-format it and reduce code duplication.

Ref TW6703

See merge request !68
2016-09-20 17:16:41 +08:00
dongheng
44c466c0ea components/openssl: add base function version 2016-09-20 16:58:46 +08:00