|
| 1 | +RIOT-2016.04 - Release Notes |
| 2 | +============================ |
| 3 | +RIOT is a real-time multi-threading operating system that supports a range of |
| 4 | +devices that are typically found in the Internet of Things: 8-bit |
| 5 | +microcontrollers, 16-bit microcontrollers and light-weight 32-bit processors. |
| 6 | + |
| 7 | +RIOT is based on the following design principles: energy-efficiency, real-time |
| 8 | +capabilities, small memory footprint, modularity, and uniform API access, |
| 9 | +independent of the underlying hardware (this API offers partial POSIX |
| 10 | +compliance). |
| 11 | + |
| 12 | +RIOT is developed by an international open source community which is |
| 13 | +independent of specific vendors (e.g. similarly to the Linux community) |
| 14 | +and is licensed with a non-viral copyleft license (LGPLv2.1), which allows |
| 15 | +indirect business models around the free open-source software platform |
| 16 | +provided by RIOT. |
| 17 | + |
| 18 | +About this release: |
| 19 | +=================== |
| 20 | +This release adds support for two additional network stacks: lwIP and emb6. |
| 21 | +A bunch of additional protocols are now available, P2P-RPL in the GNRC |
| 22 | +network stack, Ethernet-over-Serial (ethos). Murdock, the new, blazing fast |
| 23 | +RIOT CI is now available to significantly speed up code merging procedures. |
| 24 | + |
| 25 | +This release also adds support for a number of new boards and sensors and a new |
| 26 | +tool for automated border router setup is now provided which greatly simplifies |
| 27 | +that setup for newbies as well as for old-timers. Last but not least: this |
| 28 | +release includes a number of bug fixes, mostly about stabilizing and enhancing |
| 29 | +the networking capabilities of RIOT. |
| 30 | + |
| 31 | +About 470 pull requests with about 1196 commits have been merged since the last |
| 32 | +release and 127 additional issues have been solved. 55 people contributed code |
| 33 | +in 124 days. 1521 files have been touched with ~91700 insertions and ~42200 |
| 34 | +deletions. |
| 35 | + |
| 36 | +Notations used below: |
| 37 | +===================== |
| 38 | ++ means new feature/item |
| 39 | +* means modified feature/item |
| 40 | +- means removed feature/item |
| 41 | + |
| 42 | +New features and changes |
| 43 | +======================== |
| 44 | +General |
| 45 | +---------- |
| 46 | ++ added Makefile support for creating a "binary distribution", making it easier to create closed source applications while still complying to LGPL |
| 47 | + |
| 48 | +Testing |
| 49 | +--- |
| 50 | ++ Murdock, the new RIOT CI |
| 51 | ++ unified pexpect code |
| 52 | ++ added various new unittests and test applications |
| 53 | + |
| 54 | +Core |
| 55 | +---- |
| 56 | ++ added thread flags, a new method to signal events in an efficient and thread safe manner |
| 57 | ++ messaging is now compile-time optional, shaving off some bytes off each thread's state struct for projects not requiring it |
| 58 | ++ new, simpler list implementation increases mutex and msg performance |
| 59 | + |
| 60 | +Network Stack |
| 61 | +--- |
| 62 | ++ P2P-RPL (RFC6997) |
| 63 | ++ netdev2_test: test framework for users of the netdev2 API |
| 64 | + |
| 65 | +Packages |
| 66 | +--- |
| 67 | ++ emb6 network stack |
| 68 | ++ jsmn (minimal JSON parser) |
| 69 | ++ lwIP network stack |
| 70 | ++ unified and streamlined git package source handling |
| 71 | ++ added support for caching git repositories |
| 72 | + |
| 73 | +Platforms |
| 74 | +--- |
| 75 | ++ reworked existing peripheral drivers and added SPI driver for arduino-mega2560 |
| 76 | ++ added support for nRF52dk |
| 77 | ++ added support for nucleo-f072 and nucleo-f103 |
| 78 | ++ unified LED macros for all boards |
| 79 | + |
| 80 | +Drivers |
| 81 | +--- |
| 82 | ++ ethos "ethernet over serial" driver, enabling shared uart + network communication over one serial connection |
| 83 | ++ RHOM BH1750FVI ambient light sensor |
| 84 | ++ ST LIS3MDL three-axis magnetic sensor |
| 85 | ++ Silicon Labs Si70xx low-power temperature + humidity sensor |
| 86 | ++ simplified GPIO driver interface |
| 87 | ++ AES encryption for xbee radio driver |
| 88 | ++ added ADC mapping to SAUL |
| 89 | + |
| 90 | +Sytem libraries |
| 91 | +--- |
| 92 | +- vtimer support was dropped completely and removed |
| 93 | + |
| 94 | +Build System |
| 95 | +--- |
| 96 | ++ made build system safe for concurrent building of multiple applications |
| 97 | ++ desvirt integration into the RIOT build system |
| 98 | + |
| 99 | +Other |
| 100 | +--- |
| 101 | +- simplified border router setup tool (single UART and automation script) |
| 102 | + |
| 103 | +API changes |
| 104 | +--- |
| 105 | +* at86rf2xx was moved from gnrc_netdev to the netdev2 API |
| 106 | +* genrand_* -> random_* |
| 107 | +* xtimer_remove() no longer returns whether a timer was actually removed |
| 108 | +* disableIRQ(), enableIRQ(), restoreIRQ(), inISR() -> irq_disable(), irq_enable(), irq_restore(), irq_is_in() |
| 109 | +* renamed periph/random to periph/hwrng |
| 110 | + |
| 111 | +Fixed Issues from the last release |
| 112 | +================================== |
| 113 | +* #3109: periph/random: random_read should return unsigned int |
| 114 | +* #3970: RPL: Advertise DODAG only over the assigned interface |
| 115 | +* #4462: IPHC/NHC broken between Linux and a RIOT node with a RIOT-based border router in between. |
| 116 | +* #4608: tests/xtimer_usleep_until: unstable behaviour |
| 117 | + |
| 118 | +Known Issues |
| 119 | +========== |
| 120 | +---------------------- |
| 121 | +* #3075: nhdp: unnecessary microsecond precision |
| 122 | + NHDP works with timer values of microsecond precision which is not required. Changing |
| 123 | + to lower precision would save some memory. |
| 124 | +* #3086: Max. packet length for AT86RF2XX |
| 125 | + The size of the link-layer header is not dynamically calculated, but instead the maximum |
| 126 | + size is always assumed. |
| 127 | +* #4048: potential racey memory leak |
| 128 | + According to the packet buffer stats, flood-pinging a multicast destination may lead to a |
| 129 | + memory leak due to a race condition. However, it seems to be a rare case and a |
| 130 | + completely filled up packet buffer was not observed. |
| 131 | +* #5005: ndp: router advertisement sent with global address |
| 132 | + Under some circumstances a router might send RAs with GUAs. While they are ignored |
| 133 | + on receive (as RFC 4861 specifies), RAs should have link-local addresses and not even |
| 134 | + be send out this way. |
| 135 | +* #5007: gnrc icmpv6: Ping reply goes out the wrong interface |
| 136 | +* #5055: cpuid: multiple radios will get same EUI-64 |
| 137 | + Nodes with multiple interfaces might get the same EUI-64 for them since they are generated |
| 138 | + from the same CPU ID |
| 139 | +* #5230: gnrc ipv6: multicast packets are not dispatched to the upper layers |
| 140 | +* #5388: gnrc_sixlowpan_iphc_nhc: receiving NHC compressed UDP packets hits assert in IPv6 |
| 141 | + Fix already provided in #5281, but did not made it into the release due to its complexity |
| 142 | +* #5390: pkg: OpenWSN does not compile |
| 143 | + This package still uses deprecated modules and was not tested for a long time |
| 144 | + |
| 145 | +native related issues |
| 146 | +--------------------- |
| 147 | +* #495: native not float safe |
| 148 | + When the FPU is used when an asynchronous context switch occurs, either the |
| 149 | + stack gets corrupted or a floating point exception occurs. |
| 150 | +* #534: native debugging on osx fails |
| 151 | + Using valgrind or gdb with a nativenet target in OSX leads to "the network" |
| 152 | + being stuck (gdb) or the whole process being stuck (valgrind). |
| 153 | +* #3341 and #3824: nativenet crashes when hammered |
| 154 | + Flood-pinging a native instance from more than one host (either multiple threads on the |
| 155 | + host system or multiple other native instances), leads to a SEGFAULT |
| 156 | + |
| 157 | +other platform related issues |
| 158 | +----------------------------- |
| 159 | +* #4560: make: clang is more pedantic than gcc |
| 160 | + oonf_api is not building with clang. |
| 161 | +* #4583: cpp11: clang doesn't allow `mutex_t` to be used with `constexpr` |
| 162 | + All cpp11-* tests fail with clang. |
| 163 | +* #4866: not all GPIO driver implementations are thread safe |
| 164 | + Due to non-atomic operations in the drivers some pin configurations might get lost |
| 165 | + |
| 166 | +other issues |
| 167 | +------------ |
| 168 | +* #1263: TLSF implementation contains (a) read-before-write error(s) |
| 169 | +* #2761: core: define default flags |
| 170 | + If a thread is created without the corresponding flag (CREATE_STACKTEST), |
| 171 | + the ps command will yield wrong numbers for the stack usage |
| 172 | +* #2927: core: Automatically select the lowest possible LPM mode |
| 173 | + Not all available low power modes (LPMs) are implemented for each platform and the |
| 174 | + concept of how the LPM is chosen needs some reconsideration |
| 175 | +* #2967: Makefile.features: location is not relevant for all features |
| 176 | + Provided features for the build system should be split up into a board and cpu specific |
| 177 | + part |
| 178 | +* #4488: Making the newlib thread-safe |
| 179 | + When calling puts/printf after thread_create(), the CPU hangs for DMA enabled uart drivers. |
| 180 | +* #4841: xtimer: timer already in the list |
| 181 | + Under some conditions an xtimer can end up twice in the internal list of the xtimer module. |
| 182 | +* #5338: xtimer: xtimer_now() not ISR safe |
| 183 | + For non-32-bit platforms |
| 184 | + |
| 185 | +Special Thanks |
| 186 | +=============== |
| 187 | +We like to give our special thanks to all the companies that provided us with |
| 188 | +their hardware for porting and testing, namely the people from (in alphabetical |
| 189 | +order): Atmel, Freescale, Limifrog, Nordic, OpenMote, Phytec, SiLabs, UDOO, |
| 190 | +and Zolertia; and also companies that directly sponsored development time: |
| 191 | +Cisco Systems, Eistec, Ell-i, Enigeering Spirit, FreshTemp LLC, and Phytec. |
| 192 | + |
| 193 | +More information |
| 194 | +================ |
| 195 | +http://www.riot-os.org |
| 196 | + |
| 197 | +Mailing lists |
| 198 | +------------- |
| 199 | +* RIOT OS kernel developers list |
| 200 | + * devel@riot-os.org (http://lists.riot-os.org/mailman/listinfo/devel) |
| 201 | +* RIOT OS users list |
| 202 | + * users@riot-os.org (http://lists.riot-os.org/mailman/listinfo/users) |
| 203 | + * RIOT commits |
| 204 | + * commits@riot-os.org (http://lists.riot-os.org/mailman/listinfo/commits) |
| 205 | +* Github notifications |
| 206 | + * notifications@riot-os.org (http://lists.riot-os.org/mailman/listinfo/notifications) |
| 207 | + |
| 208 | + IRC |
| 209 | + ----- |
| 210 | +* Join the RIOT IRC channel at: irc.freenode.net, #riot-os |
| 211 | + |
| 212 | +License |
| 213 | +======= |
| 214 | +* Most of the code developed by the RIOT community is licensed under the GNU |
| 215 | + Lesser General Public License (LGPL) version 2.1 as published by the Free |
| 216 | + Software Foundation. |
| 217 | +* Some external sources are published under a separate, LGPL compatible license |
| 218 | + (e.g. some files developed by SICS). |
| 219 | + |
| 220 | + All code files contain licensing information. |
| 221 | + |
| 222 | + |
| 223 | + |
| 224 | + |
| 225 | + |
1 | 226 | RIOT-2015.12 - Release Notes
|
2 | 227 | ============================
|
3 | 228 | RIOT is a real-time multi-threading operating system that supports a range of
|
|
0 commit comments