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

3977 Commits

Author SHA1 Message Date
55e50d3015
Merge pull request #10858 from miri64/socket_zep/fix/ubsan-timestamp
socket_zep: fix undefined timestamp conversion behavior
2019-01-25 09:13:07 +01:00
Martine Lenders
83bc4b162f socket_zep: fix undefined timestamp conversion behavior 2019-01-24 14:05:31 +01:00
Sebastian Meiling
907b761750
Merge pull request #10792 from gschorcht/esp8266_esp_wifi_netdev
esp8266: esp_wifi netdev driver
2019-01-24 12:09:46 +01:00
Gunar Schorcht
49f06efd38 cpu/esp8266: fix pbuf length check in esp_wifi
When the size of a received frame is checked, always the total length should be used instead of the length of the first lwIP pbuf in the pbuf chain. Otherwise, the check that the length does not exceed ETHERNET_MAX_LEN will always be true since the maximum size of one lwIP pbuf in a pbuf chain is 512 bytes.
2019-01-24 09:54:53 +01:00
Gunar Schorcht
88c65aff0b cpu/esp8266: allow _esp_wifi_recv_cb during send
Receiption of a frame in _esp_wifi_recv_cb while sending has no effect and should be possible to increases the performance.
2019-01-24 09:39:45 +01:00
Gunar Schorcht
0920bbb4fb cpu/esp8266: log message on reconnect in esp_wifi 2019-01-24 09:21:17 +01:00
Gunar Schorcht
92f6c1a7c6 cpu/esp8266: WiFi mode changed in esp_wifi
Although only the station interface is needed, the WiFi interface has to be used in SoftAP + Station mode. Otherwise the send function blocks sporadically. Since the SoftAP interface is not used, it is configured with a hidden SSID and a long beacon interval. Connections from other stations are not allowed.
2019-01-24 09:21:17 +01:00
Gunar Schorcht
538aac00ad cpu/esp8266: fix of allocated pbuf in esp_wifi 2019-01-24 09:21:17 +01:00
Gunar Schorcht
e384f1e502 cpu/esp8266: send timeout handling in esp_wifi
A timeout was introduced if sending a frame takes to long time. In that case the WiFi interface disconnects and reconnects automatically to recover.
2019-01-24 09:21:17 +01:00
Gunar Schorcht
04ee2ebe15 cpu/esp8266: automatic reconnect in esp_wifi
A reconnect timer is used to try to reconnect every 20 secons if WiFi interface is in disconnected or connecting state.
2019-01-24 09:21:17 +01:00
Gunar Schorcht
87b87631a6 cpu/esp8266: functions that have to run in IRAM
Due to performance reasons _esp_wifi_recv_cb and _send have to be executed in IRAM.
2019-01-24 09:21:17 +01:00
Gunar Schorcht
96d0910d33 cpu/esp8266: avoid _esp_wifi_recv_cb during send
To avoid conflicts on receiption of a frame while sending, _esp_wifi_recv_cb should not executed while a frame is in transmission
2019-01-24 09:21:17 +01:00
Gunar Schorcht
78e0aa2a77 cpu/esp8266: usage of _esp_wifi_recv_cb
Overriding ethernet_input function _esp_wifi_recv_cb is only used when the WiFi interface is in connected state.
2019-01-24 09:21:17 +01:00
Gunar Schorcht
c5a9058ab9 cpu/esp8266: simplified error handling in esp_wifi
wifi_station_connect and wifi_stattion_disconnect never produce errors. Thus, error handling can be removed.
2019-01-24 09:21:17 +01:00
Gunar Schorcht
3225aaa387 cpu/esp8266: different conn states in esp_wifi
Different connection states defined to be able to realize a better connect/reconnect handling
2019-01-24 09:21:17 +01:00
Gunar Schorcht
88f6beeca2 cpu/esp8266: use SDK mem management for esp_wifi
Some SDK interrupt service routines obviously use malloc/free in the interrupt context. Because the rmutex-based lock/unlock approach of the malloc/free function suite of the newlib does not work in the interrupt context, the SDK memory management functions MUST therefore be used. To use the same memory management functions in RIOT as in the SDK, the malloc/free function suite has to be replaced by wrapper functions.
2019-01-24 09:21:17 +01:00
Gunar Schorcht
5a835e91ba cpu/esp8266: fix some comments in esp_wifi 2019-01-24 09:21:17 +01:00
Gunar Schorcht
107e196b18 cpu/esp8266: fix of maximum frame length in esp_wif
Since complete MAC frames are handled, ETHERNET_MAX_LEN has to be used instead of ETHERNET_DATA_LEN for receive buffer size and length check.
2019-01-24 09:21:17 +01:00
Gunar Schorcht
0e46869e57 cpu/esp8266: react to "out of memory" in esp_wifi 2019-01-24 09:21:17 +01:00
Gunar Schorcht
35a751c245 cpu/esp8266: avoid send interruption in esp_wifi 2019-01-24 09:21:17 +01:00
Gunar Schorcht
f7998c2ad6 cpu/esp8266: automatic reconnect in esp_wifi 2019-01-24 09:21:17 +01:00
Gunar Schorcht
d6664dafad cpu/esp8266: esp_wifi dbg msg changed to err msg 2019-01-24 09:21:17 +01:00
Gunar Schorcht
be3a2a4cb5 cpu/esp8266: fix compilation problem of esp_wif 2019-01-24 09:21:17 +01:00
Gunar Schorcht
698770ddb5 cpu/esp8266: fix esp_wifi stability issues
Fixes sporadic blocking of the wifi thread in esp_wifi_recv_cb function under heavy network load conditions when frames are coming in faster than they can be processed. Since esp_wifi_recv_cb function is not executed in interrupt context, the msg_send function used for ISR event can block when the message queue is full. With this change esp_wifi can be flooded with icmpv6 packets of maximum size without any problems over hours.
2019-01-24 09:21:17 +01:00
Gunar Schorcht
21db1ce224 cpu/esp8266: doc extended for esp_wifi 2019-01-24 09:21:17 +01:00
Gunar Schorcht
664566ce70 cpu/esp8266: makefile support for esp_wifi 2019-01-24 09:21:17 +01:00
Gunar Schorcht
04de1e75aa cpu/esp8266: stack sizes tuned for esp_wifi 2019-01-24 09:21:17 +01:00
Gunar Schorcht
642c48f856 cpu/esp8266: add built-in WiFi netdev driver 2019-01-24 09:21:17 +01:00
Gaëtan Harter
9cd50a693a
cpu/atmega_common: do not export LINKFLAGS
This prevent evaluating `LINKFLAGS` when not needed and when building
in docker so does not produce errors if `avr-ld` is not installed.

```
BUILD_IN_DOCKER=1 BOARD=arduino-mega2560  make --no-print-directory -C examples/hello-world/ clean
/srv/ilab-builds/workspace/git/riot_master/makefiles/toolchain/gnu.inc.mk:18: objcopy not found. Hex file will not be created.
/bin/sh: 1: avr-ld: not found
```

It removes the `/bin/sh: 1: avr-ld: not found`
2019-01-23 18:32:40 +01:00
Peter Kietzmann
1f7292c358
Merge pull request #10764 from benemorius/kinetis-rtt-subseconds
cpu/kinetis/rtt: clear TPR when writing TSR
2019-01-23 15:15:29 +01:00
73fa699192
cpu/nrf5x: handle multiple exti pins in gpio driver
Each pin is associated to a given GPIOTE channel
2019-01-22 16:47:34 +01:00
7e3c382547
Merge pull request #10653 from dylad/pr/saml1x_support
cpu/saml1x: add support for SAML10 and SAML11 MCUs (Cortex-M23)
2019-01-22 08:53:06 +01:00
Sebastian Meiling
0edf76d362
Merge pull request #9984 from kaspar030/refactor_atmega_libc
cpu/atmega_common: refactor AVR libc code into module
2019-01-22 08:41:37 +01:00
Sebastian Meiling
e22e582049
Merge pull request #10656 from gschorcht/esp8266_ets_handling
cpu/esp8266: change of ETS task handling
2019-01-21 21:57:45 +01:00
Dylan Laduranty
9450fa7dc3 cpu/sam0_common: add support for saml10/saml11
Add SAML10/SAML11 support through SAM0 because hardware IP are the same so reuse to avoid duplication
2019-01-21 17:06:58 +01:00
Dylan Laduranty
adeb19339c cpu/saml1x: add support for saml10/saml11 MCUs 2019-01-21 17:05:04 +01:00
Dylan Laduranty
6d3fda7260 cpu/cortexm: add cortex-m23 support 2019-01-21 17:04:20 +01:00
Gunar Schorcht
e4b0ace841 cpu/esp8266: inc ets_task stack size for esp_now 2019-01-21 16:30:33 +01:00
Gunar Schorcht
b3906539f1 cpu/esp8266: fix ets_post when flash is written
During flash write access, the IROM cache cannot be used and is disabled therefore. During that time, ets_post crashes if a functions is called which is not in IRAM. Therefore thread_flags_set must not be called if IROM cache is disabled.
2019-01-21 16:30:33 +01:00
Gunar Schorcht
8076f393f3 cpu/esp8266: doc fixes for esp_task thread 2019-01-21 16:30:33 +01:00
Gunar Schorcht
09da830a2a cpu/esp8266: doc update for ets_task thread 2019-01-21 16:30:33 +01:00
Gunar Schorcht
0c12206503 cpu/esp8266: cpu configuration tuned
With the new ETS task handling thread, the stack sizes could be down sized.
2019-01-21 16:30:33 +01:00
Gunar Schorcht
66683050c5 cpu/esp8266: Makefile fixes for ets_task thread
Changes of ETS task handling require the context switch by software interrupt. The context switch based on interrupt is therefore enabled by default. Furthermore, the number of priority levels are increased due to the new additional thread.
2019-01-21 16:30:33 +01:00
Gunar Schorcht
906bdebb9a cpu/esp8266: new ets_task thread
ETS tasks are now handled by a high priority RIOT thread
2019-01-21 16:30:33 +01:00
Gunar Schorcht
5020c30970 cpu/esp32: fix of maximum frame length in esp_wifi
Since complete MAC frames are handled, ETHERNET_MAX_LEN has to be used instead of ETHERNET_DATA_LEN for buffer sizes and length checks.
2019-01-21 15:26:18 +01:00
Gunar Schorcht
676a615996 cpu/esp32: fix of maximum frame length in esp_eth
Since complete MAC frames are handled, ETHERNET_MAX_LEN has to be used instead of ETHERNET_DATA_LEN for buffer sizes and length checks.
2019-01-21 15:25:43 +01:00
7313525035 atmega_common: refactor avr-libc-extra into avr_libc_extra module 2019-01-21 14:37:08 +01:00
Marian Buschsieweke
08fba76fa6
cpu/fe310: Add call to periph_init()
Until now fe310's cpu_init() was missing a call to periph_init().
This commit adds this call.
2019-01-19 13:00:36 +01:00
Martine Lenders
f91f62155d
Merge pull request #10801 from gschorcht/esp32_fix_memset_opt
cpu/esp32: fixes the memset optimization problem in esp_wifi/wpa_supplicant
2019-01-18 22:31:42 +01:00
Martine Lenders
4e53f0fa76 nrfmin: fix type for NETOPT_PROTO
The type [is documented as `gnrc_nettype_t`][1] so it should by checked
as such.

[1]: f9a3bdf1a7/sys/include/net/netopt.h (L210-L212)
2019-01-18 18:14:00 +01:00
Gunar Schorcht
c5e9f12243 doc: fix undocumented func in socket_zep_params.h 2019-01-18 07:18:06 +01:00
Cenk Gündoğan
1c712c79a4
Merge pull request #10781 from miri64/nrfmin/cleanup/long-addr
nrfmin: remove long address support
2019-01-17 20:04:03 +01:00
Gunar Schorcht
5bb05f0911 cpu/esp32: esp-wifi related doc changes 2019-01-17 17:10:43 +01:00
Gunar Schorcht
6a99e86b2f cpu/esp32: fix stability issues of esp_wifi
ESP-IDF heap handling has to be used for esp_wifi for stability reasons. Otherwise, heap is corrupted sporadically
2019-01-17 17:10:43 +01:00
Gunar Schorcht
f788928b27 cpu/esp32: fix esp_wifi stability issues
Fixes sporadic blocking of the wifi thread in esp_wifi_recv_cb function under heavy network load conditions when frames are coming in faster than they can be processed. Since esp_wifi_recv_cb function is not executed in interrupt context, the msg_send function used for ISR event can block when the message queue is full. With this change esp_wifi can be flooded with icmpv6 packets of maximum size without any problems over hours.
2019-01-17 17:10:43 +01:00
Gunar Schorcht
6caead7bbc cpu/esp32: esp-wifi related doc changes 2019-01-17 17:10:43 +01:00
Gunar Schorcht
7754a3416c cpu/esp_common: doc fixes related to esp_wifi 2019-01-17 17:10:43 +01:00
Gunar Schorcht
cb37288ca5 cpu/esp32: redundant README.md removed
To avoid further inconsistencies in documentation, README.md is not provided any longer
2019-01-17 17:10:43 +01:00
Gunar Schorcht
1cf415a8a9 cpu/esp32: doc improvements in esp_wifi 2019-01-17 17:10:43 +01:00
Gunar Schorcht
e83a8679b4 cpu/esp32: cleanup esp_wifi config parameters 2019-01-17 17:10:43 +01:00
Gunar Schorcht
c0d4706bf8 cpu/esp32: fix of event types in esp_wifi 2019-01-17 17:10:43 +01:00
Gunar Schorcht
c9684af5c2 cpu/esp32: automatic reconnect after disconnect
If WiFi is disconnected, e.g., because of timeout for beacon frame, it is tried to reconnect automatically.
2019-01-17 17:10:43 +01:00
Gunar Schorcht
90e9c95c30 cpu/esp32: registration of RX callback in esp_wifi
RX callback function should be register when WiFi has been connected to AP successfully and should be unregistered when WiFi disconnects from AP. Therefore, esp_wifi_internal_reg_rxcb is called now in event handler on event SYSTEM_EVENT_STA_CONNECTED. It is reset now on event SYSTEM_EVENT_STA_DISCONNECTED.
2019-01-17 17:10:43 +01:00
Gunar Schorcht
f4cacc1e24 cpu/esp32: improved debug message in esp_wifi 2019-01-17 17:10:43 +01:00
Gunar Schorcht
2c3ac91cf3 cpu/esp32: move wifi_connect to event handler
Before function wifi_connect is executed, starting the WiFi driver should have been finished. This is indicated by the WiFi driver by sending event SYSTEM_EVENT_STA_START. Function wifi_connect is moved therefore to the event handler for SYSTEM_EVENT_STA_START.
2019-01-17 17:10:43 +01:00
Gunar Schorcht
8a1da21b1a cpu/esp32: fixes serious memory leak in esp_wifi
The buffer given by the WiFi driver as parameter eb has to be freed explicitly. Otherwise the esp_wifi_netdev stops working after some seconds.
2019-01-17 17:10:43 +01:00
Gunar Schorcht
3ef35e1b78 cpu/esp32: use static WiFi config in esp_wifi
The WiFi configuration has to be static to avoid memory access problems when WiFi AP is reconnected.
2019-01-17 17:10:43 +01:00
Gunar Schorcht
d24d73dadf cpu/esp32: fixes NETOPT_LINK_CONNECTED in esp_wifi
esp_wifi was simply returning the connection state instead of filling the referenced value.
2019-01-17 17:10:43 +01:00
Gunar Schorcht
2c97377585 cpu/esp32: fixes NETOPT_IS_WIRED in esp_wifi
esp_wifi returns false now.
2019-01-17 17:10:43 +01:00
Gunar Schorcht
078c47d79c cpu/esp32: fixes frame size handling in esp_wifi
The size of received and transmitted frames was stored in an uint8_t, which did not allow to process frames larger than 255 octets. However, WiFi has an MTU of 1500 octets.
2019-01-17 17:10:43 +01:00
Gunar Schorcht
c06172925a
Merge pull request #10766 from gschorcht/esp_compile_time_configs
cpu/esp*: compile time configurations for ESP MCUs
2019-01-17 16:39:26 +01:00
Gunar Schorcht
6c61b69164 cpu/esp32: os_memset redefinition
os_memset uses system_secure_memset.
2019-01-17 13:52:22 +01:00
Gunar Schorcht
2215f29883 cpu/esp32: add memset that cannot be optimized out
Adds a memset function `system_secure_memset` which cannot be optimized out by the compiler. It uses the libsodium approach of weak symbols. Function system_secure_memset calls the standard memset. Calling an empty function declared with weak attribute after the memset call, prevents the compiler to optimize it out. The overhead is only one function call.
2019-01-17 13:50:56 +01:00
Martine Lenders
d34bf526c1
Merge pull request #10783 from kaspar030/fix_native_timer
cpu/native/periph/timer: fix type conversion
2019-01-17 11:11:01 +01:00
7226daf33e
Merge pull request #10558 from dylad/pr/update_arm_cmsis
cpu/cortexm_common: Update ARM CMSIS to V5.4.0
2019-01-16 16:49:14 +01:00
f5345fbd38 cpu/native/periph/timer: fix undefined behaviour 2019-01-16 15:16:54 +01:00
Martine Lenders
bd08ea1409 nrfmin: remove long address support
The driver is claiming it is needed for IPv6 / 6LoWPAN support, which
is not true (the long address is never used for NRFMIN in fact) and
this assumption actually leads to an assertion when compiled as with
the `gnrc_border_router` example.
2019-01-16 14:59:28 +01:00
Sebastian Meiling
2fde8335c9
Merge pull request #10728 from keestux/memcpy-struct-copy
Do normal assignment instead of memcpy
2019-01-16 09:18:44 +01:00
Emmanuel Baccelli
209d90bc00
Merge pull request #10215 from kYc0o/pr/riotboot_multislot
riotboot: add multislot support
2019-01-15 19:04:28 +01:00
Dylan Laduranty
fdcac731eb cpu/cortexm_common: Update ARM CMSIS to V5.4.0
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2019-01-15 17:35:40 +01:00
Gunar Schorcht
d34616756e cpu/esp32: add compile configuration group 2019-01-14 12:19:19 +01:00
Gunar Schorcht
2cb7b4c6df cpu/esp8266: add compile-time configurations group 2019-01-14 12:19:04 +01:00
Thomas Stilwell
3ea75d1314 cpu/kinetis/rtt: clear subseconds when writing seconds 2019-01-13 17:43:19 -08:00
Marian Buschsieweke
04d0f38d68
Merge pull request #10746 from kaspar030/remove_newlib_dep_lpc2387
cpu/lpc2387: remove newlib dependencies
2019-01-12 23:14:38 +01:00
Kevin "Bear Puncher" Weiss
9e1ab1e93b
Merge pull request #10700 from gschorcht/esp32_esp_now_fix_opt
cpu/esp: esp_now_netdev fixes and optimizations
2019-01-11 13:14:59 +01:00
Gunar Schorcht
68a02fd1c6 cpu/esp: comment about non-existing mutex removed 2019-01-11 12:38:04 +01:00
Gunar Schorcht
c9d9d60f10 cpu/esp8266: README.md removed
Documentation is generated by doxygen from doc.txt
2019-01-11 00:50:02 +01:00
Kees Bakker
2d04cdfb89 cpu/native: do normal assignment instead of memcpy 2019-01-10 19:43:43 +01:00
Kees Bakker
0935bd53d2 cpu/cc430: do normal assignment instead of memcpy 2019-01-10 19:43:43 +01:00
b19dcd3a65 cpu: lpc2387: use while(1){} instead of exit
This removes the dependency on newlib.
2019-01-10 12:15:44 +01:00
56f6c4f084 cpu: lpc2387: turn printf -> LOG_ERROR 2019-01-10 12:15:08 +01:00
Gunar Schorcht
0b1ef9abbb cpu/esp: assert removed in esp_now_recv_cb
assert was added intentionally for debugging purposes. For released version it is enough that function returns.
2019-01-10 11:38:03 +01:00
Gunar Schorcht
fa0b4b801f cpu/esp8266: doc fixes 2019-01-09 16:55:21 +01:00
Schorcht
0230d077d4 cpu/esp8266: doxygen problem fix 2019-01-09 16:03:00 +01:00
Schorcht
323a3f9db7 cpu/esp8266: doc extended 2019-01-09 16:03:00 +01:00
Kevin "Bear Puncher" Weiss
0b23e8898e
Merge pull request #10641 from gschorcht/esp32_spi_revision
cpu/esp32: cleanup in periph/spi
2019-01-09 14:02:06 +01:00
Gunar Schorcht
6b045f14b7 cpu/esp32: cleanup of SPI interfaces in doc
Although ESP32 has four SPI controllers, only two of them can be effectively used (HSP and VSPI). The third one (FSPI) is used for external memory such as flash and PSRAM and can not be used for peripherals. FSPI is therefore removed from the API. In addition, the SPI0_DEV and SPI1_DEV configuration parameters are renamed SPI0_CTRL and SPI1_CTRL to better describe what they define and to avoid confusion with SPI_DEV (0) and SPI_DEV (1).
2019-01-09 13:03:56 +01:00
Gunar Schorcht
437f8b87b9 cpu/esp32: cleanup of SPI interfaces
Although ESP32 has four SPI controllers, only two of them can be effectively used (HSP and VSPI). The third one (FSPI) is used for external memory such as flash and PSRAM and can not be used for peripherals. FSPI is therefore removed from the API. In addition, the SPI0_DEV and SPI1_DEV configuration parameters are renamed SPI0_CTRL and SPI1_CTRL to better describe what they define and to avoid confusion with SPI_DEV (0) and SPI_DEV (1).
2019-01-09 13:03:22 +01:00
86c102e85b cpu/stm32_common: move dma attribute at end of config 2019-01-08 09:32:18 +01:00
8a9d9e70bc cpu/stm32f2: update CMSIS of stm32f207xx 2019-01-08 09:32:18 +01:00