217 Commits

Author SHA1 Message Date
c0dc2e94fd feat(esp8266): add API to be compatible with esp-idf 2019-11-19 11:39:53 +08:00
73bf28b991 Merge branch 'feature/hspi_test' into 'master'
feat(spi): fix some bugs and restructure the spi driver and the demo

See merge request sdk/ESP8266_RTOS_SDK!1113
2019-11-13 10:00:35 +08:00
330d6792c3 feat(spi): fix some bugs and restructure the spi driver and the demo 2019-11-12 17:42:32 +08:00
7672988cab fix(lib): fix crash issues while recv ampdu pkt 2019-11-12 16:20:28 +08:00
668c3bbb2c fix(esp8266): remove 40MHz STAL option 2019-11-11 14:11:53 +08:00
046ba744fa feature(ledc): Redefine duty 2019-11-05 14:58:27 +08:00
2fa4782599 feature(ledc):add ledc about esp8266 2019-11-05 14:58:27 +08:00
350971d8bb feature(ir_tx): use wdev timer 2019-10-28 15:54:04 +08:00
a9c23b2c69 fix(esp8266): Added #pragma once for esp_sleep.h
Merges https://github.com/espressif/ESP8266_RTOS_SDK/pull/732
2019-10-14 17:18:26 +08:00
94d7d52248 Merge branch 'feature/update_mbedtls_from_esp_idf' into 'master'
mbedtls: bring mbedtls and openssl based on mbedtls from esp-idf

See merge request sdk/ESP8266_RTOS_SDK!1106
2019-10-12 10:16:25 +08:00
eb58df9506 feat(esp8266): add function to enable GPIO wakeup from light sleep and disable wakeup source 2019-10-10 18:12:33 +08:00
5f2b5eafcf feat(mbedtls): modify code to support ESP8266
It is that maybe less modification working on the components is better, so I just modified the platform
code of AES, SHA and so on.

ESP8266 has no real hardware AES, SHA or bignum peripheral, but some method can speed up the process of part
of upper algorithm, so I also added the platform code of AES, SHA, bignum, ARC, MD5.

ESP8266 has no platform of bignum, so users should not enable the bignum hardware at "menuconfig".
2019-10-10 13:39:08 +08:00
d6ec931ec7 Merge branch 'feature/set_cpu_sleep_mode' into 'master'
sleep: add function set CPU sleep mode

See merge request sdk/ESP8266_RTOS_SDK!1116
2019-09-30 14:45:31 +08:00
f2cb7b00ba feat(sleep): add function set CPU sleep mode 2019-09-30 13:59:08 +08:00
c7ac512e99 feat(phy): update phy library to 1151.0
1. rename function from "rtc_init_2" to be "rtc_init_clk"
2. reduce time cost of openning RF
3. locate "phy_close_rf" and "i2c" from flash to IRAM
2019-09-29 18:14:51 +08:00
3cd3d751c9 Merge branch 'feature/add_wps_to_IDF' into 'master'
feat(wps): add wps to idf

See merge request sdk/ESP8266_RTOS_SDK!1111
2019-09-25 14:32:14 +08:00
4d4e1c0564 fix(esp8266): fix system and wifi sleep/wake process error 2019-09-25 14:13:47 +08:00
62cc5052fe feat(wps): optimization wps code 2019-09-23 20:29:41 +08:00
0a7d44c858 feat(wps): sync wps_internal code to esp8266
feat(wps): modify CMakeLists.txt
2019-09-23 20:29:41 +08:00
8c52206736 feat(wps): sync esp32 wps code to esp8266 2019-09-23 20:29:41 +08:00
d0f58daec1 feat(esp8266): add system version
Bootloader can get the version of application for specific section,
and then check if some features are supported.

Developers can use the macro "ESP_IDF_VERSION" to limite some function like following:

include "esp_idf_version.h"

if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(3, 4, 0) && ESP_IDF_VERSION < ESP_IDF_VERSION_VAL(4, 0, 0) // 3.4 <= ver < 4.0
    do_xxx_process();
endif
2019-09-23 20:06:51 +08:00
e7cfc98413 Merge branch 'bugfix/fix_uart_output_error_when_startup' into 'master'
esp8266: fix UART output error when start up

See merge request sdk/ESP8266_RTOS_SDK!1094
2019-09-17 10:37:30 +08:00
96e5df4ebd fix(esp8266): fix UART output error when start up
Add UART system API to flush UART and wait until all characters are sent.
2019-09-16 15:21:42 +08:00
4bc5a555a0 feat(esp8266): modify notes of wifi_promiscuous_pkt_t structure 2019-09-12 15:49:40 +08:00
95223eff95 Merge branch 'feature/ir_tx_rx' into 'master'
feature(ir): add ir rx tx example

See merge request sdk/ESP8266_RTOS_SDK!1065
2019-09-09 10:38:30 +08:00
6995f4a586 Merge branch 'feature/refactor_wifi_power_save' into 'master'
feat(lib): refactor wifi power save

See merge request sdk/ESP8266_RTOS_SDK!1075
2019-09-09 10:24:26 +08:00
0008fec35e Merge branch 'feature/uart_driver_install' into 'master'
feature(uart_driver_install): An invalid parameter was added to theuart_driver_install as an adaptation to some modules

See merge request sdk/ESP8266_RTOS_SDK!1074
2019-09-06 16:00:19 +08:00
9fd4951863 feat(wifi): refactor wifi power save 2019-09-06 15:20:46 +08:00
428f2f3b1a feature(ir): add ir tx rx driver 2019-09-04 15:46:49 +08:00
47a13e19cc feature(uart_driver_install): To fit some modules, add invalid parameters in uart_driver_install 2019-09-04 14:47:11 +08:00
aa965627d1 feat(esp8266): add new power management method 2019-08-30 20:58:32 +08:00
bb6fc942ee Merge branch 'feature/refactor_and_add_more_wifi_feature_for_11n_certificate' into 'master'
feat(wifi): refactor and add more wifi feature for 11n certificate

See merge request sdk/ESP8266_RTOS_SDK!1044
2019-08-30 20:13:58 +08:00
53813599e9 feat(wifi): refactor and add more wifi feature for 11n certificate 2019-08-30 14:19:16 +08:00
e1d70c9519 Merge branch 'feature/refactor_panic_backtrace' into 'master'
esp8266: refactor ESP8266(xtensa lx106) panic backtrace function

See merge request sdk/ESP8266_RTOS_SDK!1067
2019-08-29 10:10:38 +08:00
767d995466 feat(esp8266): refactor ESP8266(xtensa lx106) panic backtrace function 2019-08-26 16:55:20 +08:00
dbded69dd5 Merge branch 'feature/i2c_clk_stretch' into 'master'
feature(i2c): add i2c clock stretch

See merge request sdk/ESP8266_RTOS_SDK!916
2019-08-26 14:08:25 +08:00
b061230056 feat(esp8266): refactor CCOMPARE timer and system time by microseconds
old: CCOMPARE timer triggers when CCOUNT increase to equal to CCOMPARE, then ISR will increase integer of "_xt_tick_divisor"
     to CCOMPARE and wait for next interrupt triggering

now: CCOMPARE timer triggers when CCOUNT increase to equal to CCOMPARE, then ISR will reset CCOUNT to be 0 and reset CCOMPARE
     to be integer of "_xt_tick_divisor", then wait for next interrupt triggering

Using the new method, we may get the CCOUNT value without considing if it has overflowed.
System running microseconds = g_os_ticks * microseconds per tick + CCOUNT.
2019-08-19 14:03:20 +08:00
c665a71370 fix(esp8266): esp8266 flash mapping to CPU bus size only supports 1MB now
We may add support to run app which size is larger than 1MB later.
2019-08-12 15:45:26 +08:00
6ada81237e Merge branch 'feature/support_make_size_family_cmd' into 'master'
esp8266: supports "make size" and its family function

See merge request sdk/ESP8266_RTOS_SDK!1033
2019-08-08 09:51:47 +08:00
3aa6377476 Merge branch 'feature/add_md5_algorithm_in_util' into 'master'
feat(util): Add md5 algorithm to util

See merge request sdk/ESP8266_RTOS_SDK!1024
2019-08-07 12:10:00 +08:00
301d857988 feat(esp8266): supports "make size" and its family function
1. support "make size", "make size-files", "make size-components" and "make size-symbols"
2. add esp-idf style link file including "esp8266.ld" and "esp8266.project.ld.in"
3. add link advaced generation file to components of esp8266 and spi_flash
2019-08-05 17:20:29 +08:00
6f86c07c49 feat(util): Add faster MD5 for ESP8266 SoC 2019-08-02 15:58:49 +08:00
114d2b5b86 feature(script): update compiling script for new make and cmake 2019-08-02 14:02:45 +08:00
78cf0dda69 Merge branch 'feature/sync_mdns_from_espidf' into 'master'
mdns: sync code from esp-idf

See merge request sdk/ESP8266_RTOS_SDK!943
2019-07-09 15:50:36 +08:00
af0fcc0492 fix(wifi): fix compatibility issues with AP which configured to 11n only 2019-06-14 11:06:39 +08:00
d04ce110f9 feat(esp8266): add set tx power via vdd33 function 2019-06-12 10:38:33 +08:00
e32f60008a Merge branch 'feature/add_old_sdk_param' into 'master'
compatibility_upgrade: add function to get old SDK's target ap SSID and passowrd

See merge request sdk/ESP8266_RTOS_SDK!959
2019-05-31 15:56:58 +08:00
639c64a540 feat(compatibility_upgrade): add function to get old SDK's target ap SSID and passowrd
Add error warning to check the wrong parition table.
2019-05-31 15:51:20 +08:00
8ccf4435cd fix the comment of wifi_pkt_rx_ctrl_t in esp_wifi_types.h 2019-05-20 20:44:40 +08:00
9a72ce0903 feat(mdns): Sync code from esp-idf
Commit ID: 2f8508c7

1. Fix possible crash when probing on particular interface with duplicated service instances due to naming conflicts on network. Issue: MDNS server initially sends probing packets to resolve naming confilicts with already registered service instances. In case of a conflict, instance name is altered and probing restarts. Original instance however wasnnot removed from the structure and upon service removal only one entry was removed and a dangling service might have been kept in the structure to bring about a crash. Resolution: Keep only one instance of a service in the probing structure

2. Enable pcbs before starting service thread to avoid updating pcb's internal variables from concurent tasks. Possible race condition: user task runs mdns_init, which enables pcbs while mdns-task already created could execute enable/disable of the same pcbs if an appropriate system event received

3. Fix possible deadlock on mdns deinit calling mdns_free(). Mnds_free() initiates stop and delete timer tasks, which after locking the mutex could lead to a dead lock in case timer task executed before deleting the task, as it would wait indefinitelly for unlocking the mutex. This condition is fixed by calling _mdns_stop_timer without locking the mutex, because there's no need to protect any data when stopping and deleting the timer task

4. Fix race condition in updating packet data from user task when failed to allocate or queue a new service. Issue: mdns_service_add API allocates and queues an action to be processed in mdns task context; when allocation or queueing fails, allocated structure needs to be freed. Function _mdns_free_service did not only fee all the structures, but also updates packet data. Resolution: Moved removal of packet data outside of _mdns_free_service function

5. Fix possible crash when packet scheduled to transmit contained service which might have been already removed. Packets scheduled to transmit are pushed to action queue and removed from tx_queue_head structure, which is searched for all remaining services and while service is removed, then service questions/asnwers are also removed from this structure. This update fixes possible crash when packet is pushed to action queue, and when service is removed, its answers are removed from tx_queue_head, but not from action queue. This could lead to a crash when the packet is poped from action queue containing questions/answers to already removed (freed) service

6. Use binary semaphore instead of mutex when searching. Mdns_search_once_t::lock is used to synchronize tasks (taken by one task and given by the other) so it should not be a mutex. Convert to semaphore, and rename to indicate its purpose

7. Fix memory leak in pbuf if tcpipadapter failed to get netif

8. Fix malfuctional query_txt. When running a query for a single txt, result entries were not created and attached to result structure. This issue was introduced when fixing memory leak in txt structure, which worked correctly for PTR queries, but caused trouble for TXT query

9. Fix possible crash when mdns_free called while action queue not empty

10. Fix memory leak when query for service receives multiple ptr entries for one instance

11. Fix crash after init if no memory for task. Mdns init first starts timer task, then starts service task. If service task failed to be created, timer task needs to be stopped too

12. Fixed crash on free undefined ptr after skipped strdup. Shortcircuit evaluation may cause skip of _mdns_strdup_check of any further question field, which after clear_rx_packet freed undefined memory

13. Fix networking running udp_sendif from lwip thread

14. Check all mallocs for failure and add default hook to log error with free heap. Solves crash about _mdns_result_txt_create when stress test

15. Fixed static memory leak

16. Resolve memory leak when txt record received multiple times

17. Skip sending search when finished, not properly locked timer task

18. Sending search packets also in probing and announcing state. Mdns queries did not work properly when send imeadiately after set_hostname, which cuased reinit of pcb and therefore restarted probing, so search packets were blocked until probing finished
2019-05-17 16:29:24 +08:00