OVMS3-idf/components
Darian Leung 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
..
app_trace esp32: Adds GCOV debug stubs support 2018-05-18 16:16:03 +03:00
app_update log: Make ESP_LOGx macros into single statements 2018-04-26 09:08:07 +10:00
aws_iot aws_iot: add support for MQTT TLS over port 443 2018-04-23 18:27:28 +05:30
bootloader bootloader: Refactoring 2018-04-17 16:36:49 +05:00
bootloader_support bootloader(flash): fix flash QIO mode configuration error. 2018-05-16 12:42:29 +00:00
bt component/bt: implement bluetooth modem sleep mode, one mode for BLE only and another for dual mode bluetooth 2018-05-19 15:37:26 +08:00
coap Resolve problems found by enabling -Wwrite-strings compilation flag 2018-04-10 08:53:43 +02:00
console console: Fix formatting 2018-04-30 14:22:45 +05:30
cxx unit tests: make static init guard test single core compatible 2018-01-23 07:56:13 +00:00
driver component/bt: implement bluetooth modem sleep mode, one mode for BLE only and another for dual mode bluetooth 2018-05-19 15:37:26 +08:00
esp-tls Merge branch 'bugfix/esp_tls_error_logging' into 'master' 2018-04-23 20:18:30 +08:00
esp32 Merge branch 'feature/gcov_dbg_stubs' into 'master' 2018-05-21 08:07:49 +08:00
esp_adc_cal bugfix/Fix BLK3_RESERVED_FLAG register and other minor bugs 2018-03-16 15:51:36 +08:00
espcoredump bugfix: fixed path to esptool when there is no compiled python module for it 2017-03-21 13:30:38 +03:00
esptool_py esptool: Update to v2.3.1 2018-02-28 10:17:14 +11:00
ethernet update emac_reg_v2.h 2018-04-25 14:54:09 +08:00
expat
fatfs Merge branch 'bugfix/o3_fails' into 'master' 2018-05-17 16:48:13 +08:00
freertos freeRTOS/Re-factor ring buffers 2018-05-21 01:04:58 +00:00
heap heap: fix build failure due to missing header 2018-04-26 11:08:58 +05:30
idf_test tests: Increase performance threshold for VFS running with PSRAM 2018-05-17 21:02:47 +08:00
jsmn Add jsmn JSON parser component 2017-03-07 10:18:47 +11:00
json cJSON : Include only source file objects 2018-04-30 13:51:54 +05:30
libsodium mbedtls: update usage of deprecated mbedtls_shaX APIs 2018-05-09 23:15:28 +08:00
log log: clean up docs, clarify esp_log_level_set usage 2018-05-11 13:55:16 +08:00
lwip add event SYSTEM_EVENT_AP_STAIPASSIGNED 2018-05-19 13:14:12 +08:00
mbedtls Merge branch 'bugfix/mbedtls_submodule' into 'master' 2018-05-16 19:52:45 +08:00
mdns 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
micro-ecc
newlib Allow VFS file descriptors in select() 2018-05-18 08:06:33 +02:00
nghttp Ensure that C++ and C compilers get the same preprocessor setup 2017-10-26 13:04:41 +02:00
nvs_flash nvs README: Remove section about encryption capability 2018-05-15 18:02:28 +08:00
openssl Resolve problems found by enabling -Wwrite-strings compilation flag 2018-04-10 08:53:43 +02:00
partition_table partition table: Fix regression with make 3.81 2018-04-26 12:07:27 +10:00
pthread pthread: implement local storage using pvTaskGetThreadLocalStoragePointer 2018-04-19 18:28:55 +05:30
sdmmc Merge branch 'bugfix/o3_fails' into 'master' 2018-05-17 16:48:13 +08:00
smartconfig_ack refactor smartconfig 2018-05-11 14:49:35 +08:00
soc component/bt: implement bluetooth modem sleep mode, one mode for BLE only and another for dual mode bluetooth 2018-05-19 15:37:26 +08:00
spi_flash soc: Change DPORT access 2018-05-14 17:54:57 +05:00
spiffs VFS: use O_APPEND flag of open() correctly 2018-05-11 08:28:22 +02:00
tcpip_adapter add event SYSTEM_EVENT_AP_STAIPASSIGNED 2018-05-19 13:14:12 +08:00
ulp soc,ulp: add register definitions of RTC_I2C peripheral 2018-01-08 21:28:14 +08:00
vfs Merge branch 'feature/vfs_find_free_fd' into 'master' 2018-05-18 15:22:20 +08:00
wear_levelling Structure size alligned by compiler. 2018-03-12 15:34:16 +03:00
wpa_supplicant mbedtls: update usage of mbedtls_aes_encrypt/decrypt 2018-05-09 23:15:28 +08:00
xtensa-debug-module esp32: Apptrace API enhancement 2017-07-24 19:57:44 +03:00