This adds the `auto_test <port> <pin> <port> <pin>` command.
Specify two GPIOs that are electrically connected e.g. via jumper or wire.
The command will automatically conduct several tests to ensure that the
GPIO implemenation behaves according to the specification.
With the new version some OpenWSN modules are optional:
- openwsn_cjoin (and therefore opewnsn_coap)
- openwsn_6lo_fragmentation
- openwsn_icmpv6echo
- openwsn_crypto
- openwsn_udp (optional but kept as default)
New optional modules have been added:
- openwsn_iee802154e_security (link layer security)
- openwsn_adaptive_msf (MSF dynamic slot allocation)
Openvisualizer needs to be updated to be compatible with the new
version.
/* Port 1:
* P1.0 is not assigned by default
* P1.1 is the bootstrap-loader (BSL) TX pin -> input, special function, default to GND
* THIS PIN MUST *NEVER* BE USED IN NORMAL EXECUTION, SINCE IT INTERFERES WITH UART0 !!!
* P1.2 receives the FIFOP interrupt from CC2420 -> input, GPIO, default to GND
* P1.3 receives the FIFO/GIO0 interrupt from CC2420 -> input, GPIO, default to GND
* P1.4 receives the CCA/GIO1 signal from CC2420 -> input, GPIO, default to GND
* P1.5 is wired to Vcc -> input, GPIO, default to Vcc
* P1.6 receives interrupt INT1 from accelerometer -> input, GPIO, default to GND
* P1.7 receives interrupt INT2 from accelerometer -> input, GPIO, default to GND
*/
(test starts indexing at 0)
Just like `tests/periph_rtt`, delay the RTC init so that if init gets stuck
it doesn't get stuck in early boot but inside the test.
This makes debugging easier.
When compiled with `LWIP_IPV4=1 LWIP_IPV6=1` this test currently fails
in current master. This "regression" was introduced with 035acc2e53.
However, after some debugging I think that commit actually revealed a
problem with the test rather than introducing a bug.
The test starts the central server, and then checks if opening a
listening socket on the same port causes an `-EADDRINUSE` error.
The server, on the other hand, starts with `SOCK_FLAGS_REUSE_EP`, so of
course the listening operation may succeed. Instead, let's just call
`sock_tcp_listen` twice with two distinct queue objects. Way easier and
also more correct.