1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
Commit Graph

276 Commits

Author SHA1 Message Date
benpicco
66c7c63c94
Merge pull request #13061 from gschorcht/cpu/esp32/rtc_xtal_32k
cpu/esp32: allow external 32 kHz crystal for the RTC hardware timer
2020-02-07 10:24:22 +01:00
Gunar Schorcht
4c0cfdcc8e cpu/esp32: allow external 32 kHz crystal for RTC 2020-02-07 00:46:16 +01:00
benpicco
5d1bf26f0c
Merge pull request #13076 from gschorcht/boards/esp32/ttgo_t_beam_gps
boards/esp32: enable GPS module on ESP32 TTGO T-Beam V1.0
2020-02-01 23:25:55 +01:00
Gunar Schorcht
3208207ec5 cpu/esp32: change order of board and periph init
To be able to access periphals to initialize board specific hardware, the board_init function has to be called after periph_init.
2020-02-01 16:12:05 +01:00
benpicco
d48471a120
Merge pull request #12967 from gschorcht/pkg/lwip/fix_esp_wifi
cpu/esp*: remove dependencies on GNRC for ESP network device drivers
2020-01-31 10:38:08 +01:00
Gunar Schorcht
0a5ab84363 cpu/esp32/esp_wifi: move gnrc specific code to separate file 2020-01-31 09:32:23 +01:00
Gunar Schorcht
845411e4d3 cpu/esp32/esp_wifi: remove gnrc specific code 2020-01-31 09:32:23 +01:00
Gunar Schorcht
fc0845b09c cpu/esp32/esp_eth: move gnrc specific code to separate file 2020-01-31 09:32:23 +01:00
Gunar Schorcht
ace3107975 cpu/esp32/esp_eth: remove gnrc specific code 2020-01-31 09:32:23 +01:00
Gunar Schorcht
f14c4c8c2f cpu/esp32: remove static dependency from gnrc 2020-01-31 09:32:23 +01:00
benpicco
57db6b7313
Merge pull request #13059 from gschorcht/cpu/esp32/fix_xtal_freq
cpu/esp32: activate automatic XTAL detection
2020-01-31 08:36:28 +01:00
Sören Tempel
5ef5ab7e4b Add CPU feature for stack smash protections 2020-01-22 15:59:02 +01:00
benpicco
24559ed3ea
Merge pull request #13142 from gschorcht/cpu/esp32/fix_compilation_esp_gdb
cpu/esp32: fix compilation when esp_gdb is enabled
2020-01-17 13:07:48 +01:00
Gunar Schorcht
20835aecd9 cpu/esp32: fix compilation when esp_gdb is enabled 2020-01-16 14:27:18 +01:00
Gunar Schorcht
416e8ce8e6 cpu/esp32: fix C linkage compilatio error
With the new toolchain version required to fix issue #13133, the compilation of `examples/posix_socket` fails due to a C linkage error in `atomic_base.h`. The reason is that including `drivers/include/mtd.h` in `boards/esp32/board_common.h` inside the `extern C` block finally leads to including `atomic_base.h` inside the `extern C` block which in turn to the C linkage error for the template definitions in this file.
2020-01-16 13:03:49 +01:00
benpicco
3672502f6f
Merge pull request #12998 from gschorcht/cpu/esp/common_sdk_log_output
cpu/esp: cleanup of ESP SDK log outputs
2020-01-15 15:08:02 +01:00
Francisco
1977423e9b
Merge pull request #13048 from maribu/adc-int32_t
periph/adc: Change return type of `adc_sample()` to `int32_t`
2020-01-13 12:56:09 +01:00
MichelRottleuthner
53cb3b087c
Merge pull request #9530 from Hyungsin/forupstream_xtimer
sys: xtimer concurrency/robustness improvement
2020-01-13 08:24:15 +01:00
benpicco
ab246a853d
Merge pull request #13004 from gschorcht/cpu/esp/lwip_default_esp_wifi
cpu/esp*: esp_wifi used as default netdev for lwip
2020-01-11 13:16:40 +01:00
Hyungsin
8661205c6d cpu/esp32: reflecting xtimer's member change 2020-01-10 13:21:33 -08:00
Marian Buschsieweke
746e4d2fba
cpu/esp32/periph: adc_sample() now returns int32_t 2020-01-10 14:13:14 +01:00
Gunar Schorcht
528512d9af cpu/esp32: activate automatic XTAL detection
ESP32 can be clocked with either a 40 MHz or 26 MHz crystal. Since most boards use a 40 MHz crystal, the configuration was previously fixed to a 40 MHz crystal. This commit changes the crystal from 40 MHz to automatic detection, allowing boards with a 26 MHz crystal like the Sparkfun ESP32 Thing DEV to be used.
2020-01-09 15:34:18 +01:00
Gunar Schorcht
6e31a0cb92 cpu/esp*: esp_wifi used as default netdev for lwip 2019-12-26 19:02:04 +01:00
Gunar Schorcht
25d04c4742 cpu/esp32: fixes and cleanups of RTC timer
- Unecessary definitions are removed.

- Since the 48-bit RTC hardware timer uses a RC oscillator as clock, it is pretty inaccurate and leads to a RTC time deviation of up to 3 seconds per minute. Therefore, a calibration during the boot time determines a correction factor for the 48-bit RTC hardware timer. Function _rtc_time_to_us uses now this correction factor and converts a raw 48-bit RTC time to a corrected time in microseconds. Thus, the 48-bit RTC timer becomes much more accurate, but it can't still reach the accuracy of the PLL driven 64-bit system timer. The Advantage of using RTC over 64-bit sydtem timer is that it also continues in deep sleep mode and after software reset.

- If the 64-bit system timer is used to emulate the RTC timer, it uses the RTC hardware timer to continue its operation after software .
2019-12-26 18:13:10 +01:00
Gunar Schorcht
21b2c8d334 cpu/esp32: introduce pseudomodule esp_rtc_timer
It is possible to use different timers as RTC timer for the periph_rtc module. Either the 48-bit RTC hardware timer is used directly or the PLL driven 64-bit system timer emulates a RTC timer. The latter one is much more accurate. Pseudomodule esp_rtc_timer controlls which timer is used. Only if esp_rtc_timer is enabled explicitly, the 48-bit RTC hardware timer is used. Otherwise the 64-bit sytstem timer is used to emulate the RTC timer.
2019-12-25 09:47:52 +01:00
Gunar Schorcht
9cf103e055 cpu/esp32: fix rtc_init and displaying system time
The explicit call of rtc_init during the CPU start was removed because rtc_init is called within the function periph_init. The display of the system time at startup had to be placed after the call to periph_init.
2019-12-25 09:47:52 +01:00
Gunar Schorcht
9b3095fd6b cpu/esp32: system_get_time_ms cleanup
There is an existing function that returns the system time in us as a 64 bit value. Converting this 64 value in us to a 32 bit value in ms is more easier and uses the complete 32 bit range. Using only the low part of the 64 bit system time in us and dividing it by 1e3 cuts the 32 bit range.
2019-12-24 14:35:37 +01:00
Gunar Schorcht
53139c067c cpu/esp32: make the level for wifi log outputs settable 2019-12-20 17:58:58 +01:00
Gunar Schorcht
1899c257b7 cpu/esp_common: functions for SDK log outputs
To control the log level and the format of the log output of SDK libraries, a bunch of library-specific printf functions are realized which map the log output from SDK libraries to RIOT's log macros.
2019-12-20 17:58:58 +01:00
Gunar Schorcht
649bce4a46 cpu/esp*: cleanup the log level for init functions
The log level for normal information should be LOG_DEBUG.
2019-12-20 16:25:41 +01:00
Gunar Schorcht
7bf5bba564 cpu/esp_common: LOG_TAG macro for DEBUG_ALL
LOG_TAG macro is required for LOG_VERBOSE level in ESP SDK log output handling.
2019-12-20 16:25:41 +01:00
Gunar Schorcht
40b878ebfa cpu/esp32: unify esp_wifi log output 2019-12-20 16:25:41 +01:00
benpicco
50f5060e90
Merge pull request #12948 from gschorcht/pkg/lwip/lwipopts_fix_cleanup
pkg/lwip: overiddable settings in lwipopts.h
2019-12-16 10:43:34 +01:00
benpicco
8c4498ad8e
Merge pull request #12950 from gschorcht/cpu/esp32/lwip_eth
pkg/lwip: add support for esp32 Ethernet device
2019-12-16 10:33:47 +01:00
Gunar Schorcht
aa3f1329bf pkg/lwip: remove TCPIP_THREAD_PRIO for ESP32
This definition is platform dependent and should be therefore done with CFLAGS in ESP332's Makefile.
2019-12-15 23:50:45 +01:00
Gunar Schorcht
f92c083528 cpu/esp32: fix compile error 2019-12-15 11:17:23 +01:00
Gunar Schorcht
2e4e3507bd cpu/esp32: change netopt in esp_eth for lwIP 2019-12-14 16:59:21 +01:00
Gunar Schorcht
be688f51c6 cpu/esp32: expose esp_eth_setup for lwIP 2019-12-14 16:59:21 +01:00
Gunar Schorcht
3235f18b22 cpu/esp32: expose eps_eth netdev for lwIP 2019-12-14 16:59:21 +01:00
Gunar Schorcht
e6db92567e cpu/esp32: esp_wifi send buffer should not be on stack
The buffer[EHTHERNET_MAX_LEN] used in _esp_wifi_send to convert the iolist of the given packet to a plain buffer for the WiFi interface should not be on the stack to prevent the sending thread's stack from overflowing.
2019-12-14 10:21:05 +01:00
855e249d8c
Merge pull request #12890 from gschorcht/cpu/esp/fix_tests_spiffs
cpu/esp*: fixes for tests/pkg_spiffs and tests/pkg_littlefs
2019-12-06 12:42:14 +01:00
Gunar Schorcht
35357b86a8 cpu/esp*: reduce test timeouts for spiffs/littlefs
To avoid that murdock times out before tests/pkg_spiffs and tests/pkg_littlefs time out, the configured test timeouts for these tests is reduced to 200 seconds which should be enough. An ESP32 needs an average of 60 seconds for these tests, while an ESP8266 needs in average 100 seconds.
2019-12-06 11:44:15 +01:00
Gunar Schorcht
95c6d1859c cpu/esp32: fix for crashes of tests/pkg_spiffs
ESP32 nodes can crash during SPI Flash write operations if required parts of the code are not in the IRAM but in the cached SPI Flash memory, which is disabled during the SPI Flash write operations. Therefore, the code of the SPIFFS package and the VFS module are now stored in the IRAM.
2019-12-06 11:44:15 +01:00
Gunar Schorcht
eb73358284 cpu/esp32: enable esp_log_startup on LOG_LEVL=4 2019-11-28 18:59:09 +01:00
Gunar Schorcht
91496b3cba cpu/esp32: add bootloaders without startup info
To reduce the information that are printed at the console during the startup, special bootloaders are required that suppress the outputs which are only informational. The according bootloader has to be selected during the make process.
2019-11-28 18:59:09 +01:00
Gunar Schorcht
8d25e6909e cpu/esp32: module to print startup info
Startup information, including board configuration, is only printed when module esp_log_startup is used. This reduces the amount of information that is printed by default to the console during the startup. The user can enable module esp_log_startup to get the additional startup information.
2019-11-28 18:59:09 +01:00
Gunar Schorcht
e3bb708e4d cpu/esp32/periph: flush UART TX FIFO before a baudrate change 2019-11-28 08:57:26 +01:00
Gunar Schorcht
83892aa184 cpu/esp32/periph: workaround for UART clock problems
The UART peripheral clock seems to be sporadically set to wrong value when the CPU clock is changed. In this case, the UART clock is not set to 115.200 kbps but to 96 kbps, so that the output in the console seems like garbage. This can also cause automatic tests to fail. Therefore, the CPU clock is only changed if CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ defines a different default CPU clock than the one already used at boot time.
2019-11-28 08:22:30 +01:00
benpicco
63e4d8ffa5
Merge pull request #12803 from gschorcht/cpu/esp32/fix_little_fs
cpu/esp32: fix to be able to use SPI flash drive with pkg_littlefs
2019-11-25 15:49:13 +01:00
Gunar Schorcht
4fe35efe2b cpu/esp32: mtd has to be in IRAM to work correctly 2019-11-25 07:24:17 +01:00