Commit graph

89 commits

Author SHA1 Message Date
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 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
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
snake 993287af61 add btdm_controller 1st 2016-09-22 16:40:31 +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
Wangjialin d2420b667c use uint8_t for fifo struct in uart and i2c 2016-09-22 09:05:39 +08:00
Wu Jian Gang 835cc55138 esp32: wait uart tx finish before cpu freq change 2016-09-21 16:15:42 +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
Wangjialin 2be163f6cc add gpio driver code 2016-09-19 17:33:21 +08:00
Ivan Grokhotkov b1ac144874 Merge branch 'driver_merge_tmp/merge_struct_header' into 'master'
add peripheral modules struct headers



See merge request !88
2016-09-19 15:34:37 +08:00
Wangjialin 015ae7e0d0 fix ledc and spi typo 2016-09-18 19:24:43 +08:00
Wangjialin 94bcb14bcc remove prefix and postfix 2016-09-18 19:05:37 +08:00
Ivan Grokhotkov 9938f512f3 peripheral structure headers: move volatile keyword from members to typedef 2016-09-18 12:36:33 +08:00
Wangjialin 489b4f31a9 add peripheral module struct headers 2016-09-18 03:14:18 +08:00
Angus Gratton 6cffb5d8b4 rom/gpio.h: Use new GPIO_PIN0_REG register name
Closes github #12
2016-09-16 09:43:52 +10:00
Ivan Grokhotkov cf22e4445a Merge branch 'master' into feature/logging
* master: (45 commits)
  esp32/lib: update to 1303c92c
  dhcpserver: Fix crash when switching wifi mode
  mbedtls: Temporarily disable default hardware crypto SHA & bignum
  mbedtls hwcrypto sha512: Fix redirection of function names
  mbedtls upstream tweak: Move mbedtls_sha512_process in sha512.h
  Format code by using 4 spaces instead
  modify  character conversion error and typo
  modify i2s_reg.h, rebase to master
  Only modify headers in soc/ . Pass compiling under esp-idf-tests/merge_soc_tmp/merge_for_soc_headers branch.(only change some names of register and INUM).
  Rename vender_ie_type_t and vendor_ie_id_t to wifi_vendor_ie_type_t and wifi_vendor_ie_id_t respectively
  modify arguments for vendor ie APIs by using enum instead
  esp32: fix typo
  esp32: fix kconfig
  define lwip task priority in esp_task.h
  components: esp32 - fix build error
  components: lwip - Modify lwip task priority and stack definition method
  components: esp32
  components: esp32
  components: esp32/lwip
  task priority: modify lwip/wifi/event task priority
  ...

# Conflicts:
#	components/bootloader/src/main/bootloader_start.c
#	components/bootloader/src/main/flash_encrypt.c
#	components/bootloader/src/main/secure_boot.c
#	components/esp32/cpu_start.c
2016-09-15 02:15:50 +08:00
Ivan Grokhotkov 0290a34b55 components/esp32: clean up cpu_start
Move CPU region protection setup into soc/cpu.h
change tabs to spaces
remove unused extern declarations
use RTC_WDTCONFIG0 instead of numeric address (still need to fix BB reg)
2016-09-15 02:03:55 +08:00
Wu Jian Gang 2efaf42253 Merge remote-tracking branch 'origin/feature/mbedtls' 2016-09-14 18:05:56 +08:00
Ivan Grokhotkov 5ab769516d components/esp32: add CPU frequency selection in menuconfig
Note that with WiFi stack enabled, system_init will reset frequency to 240MHz.
To make this setting useful, esp32-wifi-libs submodule needs to be updated.
2016-09-14 17:54:34 +08:00
Wu Jian Gang 6104370ac9 Merge branch 'feature/support_vendor_ie_api' into 'master'
esp32: add vendor ie API

1. add esp_wifi_set_vnd_ie
2. add esp_wifi_set_vnd_ie_cb

See merge request !75
2016-09-14 16:53:53 +08:00
qiyueixa 56586a10ac Format code by using 4 spaces instead 2016-09-14 15:18:06 +08:00
Wangjialin f32823ff6c modify character conversion error and typo 2016-09-14 13:47:28 +08:00
Wangjialin c13ab62e4c modify i2s_reg.h, rebase to master 2016-09-14 13:47:28 +08:00
Wangjialin 41d397cf3f Only modify headers in soc/ .
Pass compiling under esp-idf-tests/merge_soc_tmp/merge_for_soc_headers branch.(only change some names of register and INUM).
2016-09-14 13:47:28 +08:00
qiyueixa f02e5cdec7 Rename vender_ie_type_t and vendor_ie_id_t to wifi_vendor_ie_type_t and wifi_vendor_ie_id_t respectively 2016-09-14 13:39:30 +08:00
qiyueixa d866fe84a4 modify arguments for vendor ie APIs by using enum instead 2016-09-14 13:39:30 +08:00
Wu Jian Gang c1a874fb9e esp32: fix kconfig 2016-09-14 12:55:41 +08:00
liuzhifu d2d231de29 define lwip task priority in esp_task.h 2016-09-14 12:00:46 +08:00
liuzhifu 8ed5010356 components: esp32 - fix build error 2016-09-14 12:00:46 +08:00
liuzhifu 2a15eda8bc components: esp32
Remove priority/stack definition of task that is freertos/lwip/app
2016-09-14 12:00:46 +08:00
liuzhifu 109691f9bc components: esp32
add missing file esp_task.h
2016-09-14 12:00:46 +08:00
Wu Jian Gang ed8e8848e3 fix typos 2016-09-13 20:54:20 +08:00
Wu Jian Gang b56098a612 Merge remote-tracking branch 'origin/master' into feature/mbedtls 2016-09-13 16:31:48 +08:00
Wu Jian Gang bf5e83a6ed callback: add a void* pointer with each callback
also format event.c/wifi.c/esp_event.h/esp_wifi.h
2016-09-13 16:20:29 +08:00
Wu Jian Gang c56a790f64 header: callbacks use "void *" as arguments 2016-09-13 16:19:09 +08:00
Wu Jian Gang c5f8396df4 header: format and fix typos
SYSTEM_EVENT_STA_GOTIP to SYSTEM_EVENT_STA_GOT_IP
2016-09-13 16:17:41 +08:00
liuzhifu ded5df7513 add wifi api comments 2016-09-13 16:17:41 +08:00
liuzhifu b86e060647 add wifi api comments 2016-09-13 16:17:41 +08:00
Ivan Grokhotkov f9013d9ff8 Merge branch 'feature/dualcore_spi_flash_api' into 'master'
Dual core compatible spi flash APIs

Implementation of spi flash APIs which work in dual core mode.

This also includes other changes:
- fixes to FreeRTOS tasks.c made by Jeroen and me — these were originally made to fix issues with high priority tasks seen in WiFi stack, but were required to get stuff in ipc.c working as well
- initial base idea with two high-priority tasks was separated into a separate API — esp_ipc.h. That API allows one to run a function on the other CPU from a high-priority task. Because we don't have preemption across CPUs, this is currently not very fast: it requires on average half a tick until the second CPU switches to the high priority task. Currently that API can be either blocking, or non-blocking with queue length of 1. I haven't yet found a use case for arbitrary sized queue of IPC requests. Anyone who needs that can trivially add that later by replacing a binary semaphore with a generic queue.

With these changes i can run application with WiFi stack and NVS on both cores.

See merge request !25
2016-09-13 13:58:54 +08:00
Ivan Grokhotkov 23d5c7579b components/esp32,spi_flash: update some comments 2016-09-12 20:02:51 +08:00
Ivan Grokhotkov e9f2645b21 components/esp32: add inter-processor call API and implement spi_flash through it
With this change, flash operations can run on both cores.
NVS and WiFi stack can also run in dual core mode now.
2016-09-12 18:54:45 +08:00
Jack bd8febe58c add MACRO to get flash pad number from efuse value 2016-09-12 17:47:50 +08:00
Jack d0442602c7 add comments to register read/write operations 2016-09-12 17:47:50 +08:00
Wu Jian Gang 04b53643ef header files: clean up
1. format;
2. Slow RTC memory reverse 2KB;
2016-09-12 17:47:50 +08:00
jack 24011ddd05 header files: modify rom code and soc header files
1. timer reg file for both time group 0 and time group 1, not only timer group 0
2. fix bug that io mux header file mismatch with chip
3. fix bug that some BASE address not correct
4. add some static function to eagle.fpga32.rom.addr.v7.ld
5. add interrupts usage table
6. add some comments for rom code functions
2016-09-12 17:47:49 +08:00
xiaxiaotian 7c607e4d63 Change the enum of wifi_storage_t to be the same as that in wifi lib. 2016-09-12 11:38:13 +08:00