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

30525 Commits

Author SHA1 Message Date
Marian Buschsieweke
932c311ee2
cpu/stm32/periph_eth: Fix RX logic
If any incoming frame is bigger than a single DMA buffer, the Ethernet DMA will
split the content and use multiple DMA buffers instead. But only the DMA
descriptor of the last Ethernet frame segment will contain the frame length.

Previously, the frame length calculation, reassembly of the frame, and the
freeing of DMA descriptors was completely broken and only worked in case the
received frame was small enough to fit into one DMA buffer. This is now fixed,
so that smaller DMA buffers can safely be used now.

Additionally the interface was simplified: Previously two receive flavors were
implemented, with only one ever being used. None of those function was
public due to missing declarations in headers. The unused interface was
dropped and the remaining was streamlined to better fit the use case.
2020-08-17 20:28:49 +02:00
Marian Buschsieweke
53375f04bf
cpu/stm32/periph_eth: Optimize / fix flush
- Added missing wait for TX flush
- Grouped access to the same registers of the Ethernet PHY to reduce accesses.
  (The compiler won't optimize accesses to `volatile`, as defined in the C
  standard.)
2020-07-26 22:12:03 +02:00
Marian Buschsieweke
a5dbec33d9
cpu/stm32/periph_eth: Cleanup & fix DMA descriptor
- Add missing `volatile` to DMA descriptor, as memory is also accessed by the
  DMA without knowledge of the compiler
- Dropped `__attribute__((packed))` from DMA descriptor
    - The DMA descriptor fields need to be aligned on word boundries to
      properly function
    - The compiler can now more efficiently access the fields (safes ~300 B ROM)
- Moved the DMA descriptor struct and the flags to `periph_cpu.h`
    - This allows Doxygen documentation being build for it
    - Those types and fields are needed for a future PTP implementation
- Renamed DMA descriptor flags
    - They now reflect to which field in the DMA descriptor they refer to, so
      that confusion is avoided
- Added documentation to the DMA descriptor and the corresponding flags
2020-07-26 22:12:03 +02:00
Marian Buschsieweke
a7cf50eb03
drivers/stm32_eth: Code style fixes
- Drop incorrect use of `volatile`
- Fix missing spaces and indention
2020-07-24 11:32:20 +02:00
benpicco
dc21084ab5
Merge pull request #14582 from benpicco/core/msg_bus-type
core/msg_bus: fix shift on 8-bit platforms
2020-07-22 16:59:47 +02:00
Francisco
d187e83221
Merge pull request #14570 from fjmolinas/pr_fix_mock_rtt_defs
drivers/rtt: override RTT_MAX_VALUE and RTT_FREQUENCY for mock
2020-07-22 16:33:29 +02:00
Benjamin Valentin
337ee38997 tests/thread_msg_bus: add check if all threads got the message 2020-07-22 16:11:36 +02:00
Benjamin Valentin
46b89eb723 core/msg_bus: fix shift on 8-bit platforms
The previous shift would wrap if the compiler defaults to 16 bit words.
Use explicit `unsigned long` integer constants to mitigate that.

before:

2020-07-22 15:25:17,063 # THREAD 1 start
2020-07-22 15:25:17,063 # THREAD 2 start
2020-07-22 15:25:17,065 # THREAD 3 start
2020-07-22 15:25:17,066 # THREADS CREATED
2020-07-22 15:25:17,068 # Posted event 22 to 0 threads
2020-07-22 15:25:17,071 # Posted event 23 to 0 threads
2020-07-22 15:25:17,076 # Posted event 24 to 0 threads
2020-07-22 15:25:17,076 # SUCCESS
2020-07-22 15:26:00,188 # Exiting Pyterm

after:

2020-07-22 15:26:10,374 # THREAD 1 start
2020-07-22 15:26:10,374 # THREAD 2 start
2020-07-22 15:26:10,377 # THREAD 3 start
2020-07-22 15:26:10,377 # THREADS CREATED
2020-07-22 15:26:10,380 # Posted event 22 to 0 threads
2020-07-22 15:26:10,383 # T1 recv: Hello Threads! (type=23)
2020-07-22 15:26:10,386 # T3 recv: Hello Threads! (type=23)
2020-07-22 15:26:10,388 # Posted event 23 to 2 threads
2020-07-22 15:26:10,391 # T2 recv: Hello Threads! (type=24)
2020-07-22 15:26:10,394 # Posted event 24 to 1 threads
2020-07-22 15:26:10,396 # SUCCESS
2020-07-22 15:27:31 +02:00
Francisco
eb576d652a
Merge pull request #14580 from aabadie/pr/pkg/lvgl_cosmetic_build
pkg/lvgl: adapt Makefile for nicer build output
2020-07-22 15:25:46 +02:00
Leandro Lanzieri
25723267f7
Merge pull request #14567 from akshaim/Kconfig_l2filter
net/l2filter : Expose configurations to Kconfig
2020-07-22 15:11:24 +02:00
56f9a4a686
Merge pull request #14577 from fjmolinas/pr_cc2538_uart_write_synchronous
cpu/cc2538/uart: uart_write wait for all bytes to be sent
2020-07-22 14:51:50 +02:00
f50d20f7fa
pkg/lvgl: adapt Makefile for nicer build output 2020-07-22 14:41:58 +02:00
Leandro Lanzieri
a017764382
Merge pull request #14573 from akshaim/gnrc_mac_update
net/gnrc/mac/types.h : Update configurations
2020-07-22 13:00:39 +02:00
Francisco Molina
da171f2254
cpu/cc2538/uart: uart_write wait for all bytes to be sent
uart_write should block until all bytes are sent out, so wait for
transmit fifo to empty before returning.
2020-07-22 12:56:12 +02:00
09fe0c7667
Merge pull request #14531 from benpicco/drivers/stmpe811/fix_polarity
drivers/stmpe811: fix interrupt polarity & interrupt generation
2020-07-22 11:12:31 +02:00
9b3e94bf34
tests/driver_stmpe811: update application README 2020-07-22 09:59:39 +02:00
37b096562a
drivers/stmpe811: ensure fifo is not empty before reading touch position 2020-07-22 09:59:18 +02:00
Benjamin Valentin
caead7bb75
drivers/stmpe811: always clear interrupt state 2020-07-22 09:59:11 +02:00
Cenk Gündoğan
a0c4b8a4a0
Merge pull request #14550 from leandrolanzieri/pr/net/gcoap_remove_gcoap_finish
net/gcoap: remove gcoap_finish
2020-07-22 09:40:09 +02:00
Cenk Gündoğan
2505730b3d
Merge pull request #14544 from leandrolanzieri/pr/examples/cord_epsim_parse_with_str2ep
examples/cord_epsim: default to first interface when not specified
2020-07-22 09:26:25 +02:00
Francisco Molina
9dde6ec53d
drivers/rtt: overrite RTT_MAX_VALUE and RTT_FREQUENCY for mock
mock_rtt relies on setting mock values for RTT_MAX_VALUE and
RTT_FREQUENCY. Platforms with a rtt will already define these
values which leads to mock_rtt working with different values than
rtt_rtc.

This commit changes the ifdef logic so that when using mock_rtt
RTT_MAX_VALUE and RTT_FREQUENCY are redefined.
2020-07-22 08:52:54 +02:00
Benjamin Valentin
f857b7116b
tests/driver_stmpe811: don't poll for touch events
Now that the interrupt of the driver works properly, we don't have to
rely on polling.

Instead, wake the thread by touch interrupt.
2020-07-21 21:22:43 +02:00
Benjamin Valentin
cbae0186ca
drivers/stmpe811: fix interrupt polarity & type
The Interrupt on the stmpe811 is generated on the falling edge.
By observing the rising edge, we will only get an event if the
interrupt gets cleared.

Also configure the interrupt to be edge triggered instead of
level triggered.
2020-07-21 21:22:42 +02:00
Akshai M
60170971bd net/l2filter : Update documentation 2020-07-22 00:26:09 +05:30
Akshai M
9bed3c64e9 net/l2filter : Expose configurations to Kconfig
Co-authored-by: Leandro Lanzieri <leandro.lanzieri@haw-hamburg.de>
2020-07-22 00:26:09 +05:30
Akshai M
caab4cd8c5 net/l2filter : Move 'L2FILTER_LISTSIZE' to 'CONFIG_' 2020-07-22 00:26:09 +05:30
Akshai M
0d52f81935 net/l2filter : Move 'L2FILTER_ADDR_MAXLEN' to 'CONFIG_' 2020-07-22 00:26:09 +05:30
Leandro Lanzieri
418157a8f1
examples/cord_epsim: default to first interface when not specified
Now sock_udp_str2ep is used to parse the address.
2020-07-21 19:04:24 +02:00
Cenk Gündoğan
43d2de0885
Merge pull request #14569 from fjmolinas/pr_tests_trickle_msg_queue
tests/trickle: add message queue
2020-07-21 18:42:19 +02:00
ec487138bf
Merge pull request #14566 from fjmolinas/pr_test_periph_gpio_pin
tests/periph_gpio: allow specifying port under test
2020-07-21 15:22:30 +02:00
185f703c23
Merge pull request #14163 from aabadie/pr/cpu/stm32g0
cpu/stm32g0: add basic support + add nucleo-g070rb board
2020-07-21 14:53:59 +02:00
Francisco Molina
194d3192fc
tests/trickle: add message queue
Add a message queue in case main thread is not yet waiting for the
message when it gets sent.
2020-07-21 14:19:55 +02:00
b7219d68f4
Merge pull request #12428 from benpicco/native_poll
native/async_read: use poll() instead of select()
2020-07-21 14:01:32 +02:00
Francisco Molina
92d2a727f5
tests/periph_gpio: allow specifying port under test 2020-07-21 13:19:14 +02:00
Akshai M
bcb42e2166 mac/types.h : Remove ifndef for 'GNRC_MAC_TYPE_GET_DUTYCYCLE'
Removed ifndef guards for GNRC_MAC_TYPE_GET_DUTYCYCLE as its
an IPC message type and is also not intended as a configuration.
2020-07-21 16:36:27 +05:30
ed3ff6ed34
tests: exclude nucleo-f070rb where it doesn't fit in memory 2020-07-21 12:45:25 +02:00
5ccbaada02
examples: exclude nucleo-g070rb where the firmware doesn't fit in memory 2020-07-21 12:45:25 +02:00
54fe59d0ba
boards/nucleo-g070rb: add support 2020-07-21 12:45:25 +02:00
8272541b44
boards/common/stm32: add common code for stm32g0 2020-07-21 12:45:25 +02:00
fc1d642113
cpu/cortexm_init: add specific case for stm32g0 svcall irq 2020-07-21 12:45:25 +02:00
dada52ecd2
cpu/stm32: add stm32g0 support 2020-07-21 12:45:25 +02:00
8c50212a8d
pkg/stm32cmsis: add version for g0 family 2020-07-21 12:35:42 +02:00
0b549c6e0c
Merge pull request #14152 from aabadie/pr/pkg/stm32cube
pkg/stm32cmsis: retrieve STM32 CMSIS header from a package
2020-07-21 12:27:19 +02:00
47e2885f80 cpu/native: async_read: add native_async_read_add_int_handler()
fcntl(fd, F_SETOWN, getpid()); doesn't seem to work on Linux
to get generate a signal when an event on the GPIO fd occurs.

So fall back to the same method as on OS X and call poll() in
a child process.
2020-07-21 11:50:18 +02:00
a274ea45fc cpu/native: async_read: rewrite select() call to poll()
select() can not listen to POLLPRI events which are used by the
Kernel's GPIO API.

In preparation for that, rewrite async_read() to use poll() instead
of select().
2020-07-21 11:50:18 +02:00
ea8183aac8
Merge pull request #14559 from bergzand/pr/sched/idle_do_while
core/sched: tiny logic optimization in idle case
2020-07-21 11:50:09 +02:00
e1b810b613
core/sched: tiny logic optimization in idle case
In the case that the no_thread_idle feature is active, the
runqueue_bitcache is checked twice in the case no thread is available to
schedule. This changes the inner while loop to a do-while loop to save
one check from the initial loop iteration, saving a cycle or so in the
idle case.
2020-07-20 23:26:47 +02:00
Francisco
e8a8d12d96
Merge pull request #14511 from aabadie/pr/ci/build_system_check_makefile_features
ci/build_system_check: improve check for features only provided in Makefile.features
2020-07-20 15:28:15 +02:00
Francisco
14e232dd43
Merge pull request #14386 from aabadie/pr/drivers/makefile_dep
drivers: add driver specific Makefile.dep
2020-07-20 15:27:50 +02:00
0c86b72ed6
drivers/Makefile.dep: remove global dependency resolution
Only keep the dependency resolution for drivers declared as pseudo-modules
2020-07-20 14:32:16 +02:00