RELEASE 2016.04
RIOT-2016.04 - Release Notes ============================ RIOT is a real-time multi-threading operating system that supports a range of devices that are typically found in the Internet of Things: 8-bit microcontrollers, 16-bit microcontrollers and light-weight 32-bit processors. RIOT is based on the following design principles: energy-efficiency, real-time capabilities, small memory footprint, modularity, and uniform API access, independent of the underlying hardware (this API offers partial POSIX compliance). RIOT is developed by an international open source community which is independent of specific vendors (e.g. similarly to the Linux community) and is licensed with a non-viral copyleft license (LGPLv2.1), which allows indirect business models around the free open-source software platform provided by RIOT. About this release: =================== This release adds support for two additional network stacks: lwIP and emb6. A bunch of additional protocols are now available, P2P-RPL in the GNRC network stack, Ethernet-over-Serial (ethos). Murdock, the new, blazing fast RIOT CI is now available to significantly speed up code merging procedures. This release also adds support for a number of new boards and sensors and a new tool for automated border router setup is now provided which greatly simplifies that setup for newbies as well as for old-timers. Last but not least: this release includes a number of bug fixes, mostly about stabilizing and enhancing the networking capabilities of RIOT. About 470 pull requests with about 1196 commits have been merged since the last release and 127 additional issues have been solved. 55 people contributed code in 124 days. 1521 files have been touched with ~91700 insertions and ~42200 deletions. Notations used below: ===================== + means new feature/item * means modified feature/item - means removed feature/item New features and changes ======================== General ---------- + added Makefile support for creating a "binary distribution", making it easier to create closed source applications while still complying to LGPL Testing
This commit is contained in:
parent
77cf00bd4b
commit
0a75ae0e3b
|
@ -1,3 +1,228 @@
|
|||
RIOT-2016.04 - Release Notes
|
||||
============================
|
||||
RIOT is a real-time multi-threading operating system that supports a range of
|
||||
devices that are typically found in the Internet of Things: 8-bit
|
||||
microcontrollers, 16-bit microcontrollers and light-weight 32-bit processors.
|
||||
|
||||
RIOT is based on the following design principles: energy-efficiency, real-time
|
||||
capabilities, small memory footprint, modularity, and uniform API access,
|
||||
independent of the underlying hardware (this API offers partial POSIX
|
||||
compliance).
|
||||
|
||||
RIOT is developed by an international open source community which is
|
||||
independent of specific vendors (e.g. similarly to the Linux community)
|
||||
and is licensed with a non-viral copyleft license (LGPLv2.1), which allows
|
||||
indirect business models around the free open-source software platform
|
||||
provided by RIOT.
|
||||
|
||||
About this release:
|
||||
===================
|
||||
This release adds support for two additional network stacks: lwIP and emb6.
|
||||
A bunch of additional protocols are now available, P2P-RPL in the GNRC
|
||||
network stack, Ethernet-over-Serial (ethos). Murdock, the new, blazing fast
|
||||
RIOT CI is now available to significantly speed up code merging procedures.
|
||||
|
||||
This release also adds support for a number of new boards and sensors and a new
|
||||
tool for automated border router setup is now provided which greatly simplifies
|
||||
that setup for newbies as well as for old-timers. Last but not least: this
|
||||
release includes a number of bug fixes, mostly about stabilizing and enhancing
|
||||
the networking capabilities of RIOT.
|
||||
|
||||
About 470 pull requests with about 1196 commits have been merged since the last
|
||||
release and 127 additional issues have been solved. 55 people contributed code
|
||||
in 124 days. 1521 files have been touched with ~91700 insertions and ~42200
|
||||
deletions.
|
||||
|
||||
Notations used below:
|
||||
=====================
|
||||
+ means new feature/item
|
||||
* means modified feature/item
|
||||
- means removed feature/item
|
||||
|
||||
New features and changes
|
||||
========================
|
||||
General
|
||||
----------
|
||||
+ added Makefile support for creating a "binary distribution", making it easier to create closed source applications while still complying to LGPL
|
||||
|
||||
Testing
|
||||
---
|
||||
+ Murdock, the new RIOT CI
|
||||
+ unified pexpect code
|
||||
+ added various new unittests and test applications
|
||||
|
||||
Core
|
||||
----
|
||||
+ added thread flags, a new method to signal events in an efficient and thread safe manner
|
||||
+ messaging is now compile-time optional, shaving off some bytes off each thread's state struct for projects not requiring it
|
||||
+ new, simpler list implementation increases mutex and msg performance
|
||||
|
||||
Network Stack
|
||||
---
|
||||
+ P2P-RPL (RFC6997)
|
||||
+ netdev2_test: test framework for users of the netdev2 API
|
||||
|
||||
Packages
|
||||
---
|
||||
+ emb6 network stack
|
||||
+ jsmn (minimal JSON parser)
|
||||
+ lwIP network stack
|
||||
+ unified and streamlined git package source handling
|
||||
+ added support for caching git repositories
|
||||
|
||||
Platforms
|
||||
---
|
||||
+ reworked existing peripheral drivers and added SPI driver for arduino-mega2560
|
||||
+ added support for nRF52dk
|
||||
+ added support for nucleo-f072 and nucleo-f103
|
||||
+ unified LED macros for all boards
|
||||
|
||||
Drivers
|
||||
---
|
||||
+ ethos "ethernet over serial" driver, enabling shared uart + network communication over one serial connection
|
||||
+ RHOM BH1750FVI ambient light sensor
|
||||
+ ST LIS3MDL three-axis magnetic sensor
|
||||
+ Silicon Labs Si70xx low-power temperature + humidity sensor
|
||||
+ simplified GPIO driver interface
|
||||
+ AES encryption for xbee radio driver
|
||||
+ added ADC mapping to SAUL
|
||||
|
||||
Sytem libraries
|
||||
---
|
||||
- vtimer support was dropped completely and removed
|
||||
|
||||
Build System
|
||||
---
|
||||
+ made build system safe for concurrent building of multiple applications
|
||||
+ desvirt integration into the RIOT build system
|
||||
|
||||
Other
|
||||
---
|
||||
- simplified border router setup tool (single UART and automation script)
|
||||
|
||||
API changes
|
||||
---
|
||||
* at86rf2xx was moved from gnrc_netdev to the netdev2 API
|
||||
* genrand_* -> random_*
|
||||
* xtimer_remove() no longer returns whether a timer was actually removed
|
||||
* disableIRQ(), enableIRQ(), restoreIRQ(), inISR() -> irq_disable(), irq_enable(), irq_restore(), irq_is_in()
|
||||
* renamed periph/random to periph/hwrng
|
||||
|
||||
Fixed Issues from the last release
|
||||
==================================
|
||||
* #3109: periph/random: random_read should return unsigned int
|
||||
* #3970: RPL: Advertise DODAG only over the assigned interface
|
||||
* #4462: IPHC/NHC broken between Linux and a RIOT node with a RIOT-based border router in between.
|
||||
* #4608: tests/xtimer_usleep_until: unstable behaviour
|
||||
|
||||
Known Issues
|
||||
==========
|
||||
----------------------
|
||||
* #3075: nhdp: unnecessary microsecond precision
|
||||
NHDP works with timer values of microsecond precision which is not required. Changing
|
||||
to lower precision would save some memory.
|
||||
* #3086: Max. packet length for AT86RF2XX
|
||||
The size of the link-layer header is not dynamically calculated, but instead the maximum
|
||||
size is always assumed.
|
||||
* #4048: potential racey memory leak
|
||||
According to the packet buffer stats, flood-pinging a multicast destination may lead to a
|
||||
memory leak due to a race condition. However, it seems to be a rare case and a
|
||||
completely filled up packet buffer was not observed.
|
||||
* #5005: ndp: router advertisement sent with global address
|
||||
Under some circumstances a router might send RAs with GUAs. While they are ignored
|
||||
on receive (as RFC 4861 specifies), RAs should have link-local addresses and not even
|
||||
be send out this way.
|
||||
* #5007: gnrc icmpv6: Ping reply goes out the wrong interface
|
||||
* #5055: cpuid: multiple radios will get same EUI-64
|
||||
Nodes with multiple interfaces might get the same EUI-64 for them since they are generated
|
||||
from the same CPU ID
|
||||
* #5230: gnrc ipv6: multicast packets are not dispatched to the upper layers
|
||||
* #5388: gnrc_sixlowpan_iphc_nhc: receiving NHC compressed UDP packets hits assert in IPv6
|
||||
Fix already provided in #5281, but did not made it into the release due to its complexity
|
||||
* #5390: pkg: OpenWSN does not compile
|
||||
This package still uses deprecated modules and was not tested for a long time
|
||||
|
||||
native related issues
|
||||
---------------------
|
||||
* #495: native not float safe
|
||||
When the FPU is used when an asynchronous context switch occurs, either the
|
||||
stack gets corrupted or a floating point exception occurs.
|
||||
* #534: native debugging on osx fails
|
||||
Using valgrind or gdb with a nativenet target in OSX leads to "the network"
|
||||
being stuck (gdb) or the whole process being stuck (valgrind).
|
||||
* #3341 and #3824: nativenet crashes when hammered
|
||||
Flood-pinging a native instance from more than one host (either multiple threads on the
|
||||
host system or multiple other native instances), leads to a SEGFAULT
|
||||
|
||||
other platform related issues
|
||||
-----------------------------
|
||||
* #4560: make: clang is more pedantic than gcc
|
||||
oonf_api is not building with clang.
|
||||
* #4583: cpp11: clang doesn't allow `mutex_t` to be used with `constexpr`
|
||||
All cpp11-* tests fail with clang.
|
||||
* #4866: not all GPIO driver implementations are thread safe
|
||||
Due to non-atomic operations in the drivers some pin configurations might get lost
|
||||
|
||||
other issues
|
||||
------------
|
||||
* #1263: TLSF implementation contains (a) read-before-write error(s)
|
||||
* #2761: core: define default flags
|
||||
If a thread is created without the corresponding flag (CREATE_STACKTEST),
|
||||
the ps command will yield wrong numbers for the stack usage
|
||||
* #2927: core: Automatically select the lowest possible LPM mode
|
||||
Not all available low power modes (LPMs) are implemented for each platform and the
|
||||
concept of how the LPM is chosen needs some reconsideration
|
||||
* #2967: Makefile.features: location is not relevant for all features
|
||||
Provided features for the build system should be split up into a board and cpu specific
|
||||
part
|
||||
* #4488: Making the newlib thread-safe
|
||||
When calling puts/printf after thread_create(), the CPU hangs for DMA enabled uart drivers.
|
||||
* #4841: xtimer: timer already in the list
|
||||
Under some conditions an xtimer can end up twice in the internal list of the xtimer module.
|
||||
* #5338: xtimer: xtimer_now() not ISR safe
|
||||
For non-32-bit platforms
|
||||
|
||||
Special Thanks
|
||||
===============
|
||||
We like to give our special thanks to all the companies that provided us with
|
||||
their hardware for porting and testing, namely the people from (in alphabetical
|
||||
order): Atmel, Freescale, Limifrog, Nordic, OpenMote, Phytec, SiLabs, UDOO,
|
||||
and Zolertia; and also companies that directly sponsored development time:
|
||||
Cisco Systems, Eistec, Ell-i, Enigeering Spirit, FreshTemp LLC, and Phytec.
|
||||
|
||||
More information
|
||||
================
|
||||
http://www.riot-os.org
|
||||
|
||||
Mailing lists
|
||||
-------------
|
||||
* RIOT OS kernel developers list
|
||||
* devel@riot-os.org (http://lists.riot-os.org/mailman/listinfo/devel)
|
||||
* RIOT OS users list
|
||||
* users@riot-os.org (http://lists.riot-os.org/mailman/listinfo/users)
|
||||
* RIOT commits
|
||||
* commits@riot-os.org (http://lists.riot-os.org/mailman/listinfo/commits)
|
||||
* Github notifications
|
||||
* notifications@riot-os.org (http://lists.riot-os.org/mailman/listinfo/notifications)
|
||||
|
||||
IRC
|
||||
-----
|
||||
* Join the RIOT IRC channel at: irc.freenode.net, #riot-os
|
||||
|
||||
License
|
||||
=======
|
||||
* Most of the code developed by the RIOT community is licensed under the GNU
|
||||
Lesser General Public License (LGPL) version 2.1 as published by the Free
|
||||
Software Foundation.
|
||||
* Some external sources are published under a separate, LGPL compatible license
|
||||
(e.g. some files developed by SICS).
|
||||
|
||||
All code files contain licensing information.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
RIOT-2015.12 - Release Notes
|
||||
============================
|
||||
RIOT is a real-time multi-threading operating system that supports a range of
|
||||
|
|
Loading…
Reference in New Issue