|
| 1 | +RIOT-2015.09 - 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: devices based on |
| 5 | +8-bit microcontrollers, 16-bit microcontrollers and light-weight 32-bit |
| 6 | +processors. |
| 7 | + |
| 8 | +RIOT is based on the following design principles: energy-efficiency, real-time |
| 9 | +capabilities, small memory footprint, modularity, and uniform API access, |
| 10 | +independent of the underlying hardware (this API offers partial POSIX |
| 11 | +compliance). |
| 12 | + |
| 13 | +RIOT is developed by an international open source community which is |
| 14 | +independent of specific vendors (e.g. similarly to the Linux community). |
| 15 | + |
| 16 | +About this release: |
| 17 | +============ |
| 18 | +This release introduces the GNRC network stack, a completely new, highly |
| 19 | +modularized and configurable IPv6/6LoWPAN stack. It also includes xtimer as a |
| 20 | +new timer subsystem for accurate short- and long-term timers. Moreover, |
| 21 | +peripheral drivers, board, and CPU support has been tidied up and contains |
| 22 | +about 50% less duplication in the build system. |
| 23 | + |
| 24 | +About 580 pull requests with about 2,500 commits have been merged since the |
| 25 | +last release and 120 additional issues have been solved. 62 people contributed |
| 26 | +code in 278 days. 2578 files have been touched with ~320,000 insertions and |
| 27 | +~134,000 deletions. |
| 28 | + |
| 29 | +Loose notations used below: |
| 30 | +============ |
| 31 | ++ means new feature/item |
| 32 | +* means modified feature/item |
| 33 | +- means removed feature/item |
| 34 | + |
| 35 | + |
| 36 | + |
| 37 | +New features |
| 38 | +============ |
| 39 | + |
| 40 | +General |
| 41 | +------- |
| 42 | ++ complete codebase now compiles with -Werror on all platforms |
| 43 | + |
| 44 | +Device support |
| 45 | +-------------- |
| 46 | ++ vastly improved hardware abstraction, unified over all devices |
| 47 | ++ unified most common code |
| 48 | +* complete refactoring of MSP430 and ARM7 code |
| 49 | + |
| 50 | +Core |
| 51 | +---- |
| 52 | ++ new timer subsystem: xtimer |
| 53 | ++ extended atomic API by compare-and-swap, increase/decrease and |
| 54 | + set-to-one/set-to-zero functions |
| 55 | ++ introduced a more energy-saving assert macro |
| 56 | + |
| 57 | +Network Stack |
| 58 | +------------- |
| 59 | ++ RFC compliant gnrc network stack (6LoWPAN, IPv6, UDP, RPL) major refactoring |
| 60 | ++ 6LoWPAN ND (including SLAAC) |
| 61 | ++ example applications working out of the box (gnrc_networking for the full |
| 62 | + gnrc experience, gnrc_border_router for a 6LoWPAN border router, and default |
| 63 | + for simple link layer connectivity) |
| 64 | ++ explicit support for border router |
| 65 | ++ auto-init for the network stack |
| 66 | ++ introduction of generic interfaces (netdev, netapi) |
| 67 | ++ introduction of a protocol-independent FIB |
| 68 | ++ introduction of a central packet buffer |
| 69 | ++ wireshark-supported protocol ZEP to send IEEE 802.15.4 frames over UDP on |
| 70 | + non-IEEE-802.15.4 devices |
| 71 | ++ support for SLIP and link-layers without addresses |
| 72 | ++ new low-level driver model |
| 73 | ++ new nativenet based directly on ethernet |
| 74 | ++ conn: general stack-independent transport layer API |
| 75 | ++ POSIX sockets ported for conn |
| 76 | ++ NHDP support |
| 77 | + |
| 78 | +Packages |
| 79 | +-------- |
| 80 | ++ support for microCoAP |
| 81 | ++ CMSIS DSP |
| 82 | + |
| 83 | +Supported platforms |
| 84 | +------------------- |
| 85 | +Additional support for the following boards: |
| 86 | ++ Zolertia ReMote |
| 87 | ++ Atmel SAML21 Xplained Pro (saml21-xpro) |
| 88 | ++ ST Nucleo L1 |
| 89 | ++ ST Nucleo F334 |
| 90 | ++ ST Nucleo F091 |
| 91 | ++ Phytec phyWAVE KW22 |
| 92 | ++ Eistec Mulle |
| 93 | ++ Freescale Freedom FRDM-K64F |
| 94 | ++ TI Stellaris Launchpad LM4F120 |
| 95 | ++ LimiFrog V1 |
| 96 | ++ Silabs EZR32WG |
| 97 | + |
| 98 | +Drivers |
| 99 | +------- |
| 100 | ++ various peripheral drivers (ADC, UART, timer, SPI, I²C, RTC, RTT, DAC, PWM...) |
| 101 | ++ basic NVRAM driver (interface) |
| 102 | + |
| 103 | +Network drivers |
| 104 | ++ native ethernet driver |
| 105 | ++ ENCx24J600 ethernet driver |
| 106 | + |
| 107 | +Sensors drivers |
| 108 | ++ ISL29125 RGB light sensor |
| 109 | ++ PDC8544 LCD display |
| 110 | ++ INA220 current and power monitor |
| 111 | ++ MPU-9150 9-DOF motion sensor |
| 112 | ++ LIS3DH accelerometer |
| 113 | ++ TMP006 temperature sensor |
| 114 | ++ MAG3110 magnetometer |
| 115 | ++ MMA8652 accelerometer |
| 116 | ++ DHT11/DHT22 temperature-humidity sensor |
| 117 | ++ ADT7310 temperature sensor |
| 118 | + |
| 119 | +System libraries |
| 120 | +---------------- |
| 121 | ++ MD5 |
| 122 | ++ Fletcher's checksum |
| 123 | ++ Unified Cipher API and Block cipher operation modes: ECB, CBC, CTR and CCM |
| 124 | ++ Bitfield operations |
| 125 | ++ thread safe ringbuffer |
| 126 | ++ vtimer compatibility layer |
| 127 | + |
| 128 | +Build System |
| 129 | +------------ |
| 130 | ++ support for the FIT IoT-LAB testbed by direct integration into the Make build |
| 131 | + system |
| 132 | ++ integrated Docker support |
| 133 | ++ integration of llvm's clang static analyzer |
| 134 | ++ added target for the address sanitizer |
| 135 | ++ indicating possible feature conflicts at compile time |
| 136 | ++ unified OpenOCD script |
| 137 | + |
| 138 | + |
| 139 | +Changes |
| 140 | +======= |
| 141 | + |
| 142 | +Core |
| 143 | +---- |
| 144 | +* improved documentation |
| 145 | +* fixed several IPC message queue initializations |
| 146 | +- removed hwtimer |
| 147 | + |
| 148 | +Drivers |
| 149 | +------- |
| 150 | +* optimized/remodeled GPIO interface |
| 151 | +* optimized/remodeled TIMER interface |
| 152 | +- temporarily removed CC2420 driver (awaiting last bug fixes for a rewrite) |
| 153 | +* re-implementation of the CC110x driver against the peripheral interface |
| 154 | + |
| 155 | +Network Stack |
| 156 | +------------- |
| 157 | +* temporarily removed and currently being refactored: |
| 158 | + - TCP support |
| 159 | + - CCN-lite |
| 160 | + - AODVv2 |
| 161 | + |
| 162 | +System libraries |
| 163 | +---------------- |
| 164 | +* new high level UART/stdio interface |
| 165 | +* better modularisation of POSIX wrapper modules |
| 166 | +- removed skipjack crypto library |
| 167 | + |
| 168 | +Packages |
| 169 | +-------- |
| 170 | +* updated CMSIS HAL to version 4.3 |
| 171 | + |
| 172 | +Other |
| 173 | +----- |
| 174 | +* clean-up of deprecated system and network libraries |
| 175 | +* clean-up of deprecated boards and drivers |
| 176 | + |
| 177 | +Selected Issues Fixed since the Last Release |
| 178 | +============================================ |
| 179 | +#21: Deal with stdin in bordermultiplex.c |
| 180 | + A completely new border router implementation is in place |
| 181 | +#715: test_hwtimer_wait fails on native |
| 182 | + Fixed by @benoit-canet in #2870 |
| 183 | +#861: neighbor discovery for 6LoWPAN not working |
| 184 | + GNRC implements 6LoWPAN ND in a RFC6775 compliant way |
| 185 | +#1753: vtimer_msg test crashes after ~49'20" and |
| 186 | +#1449: a removed vtimer might still get called back by hwtimer |
| 187 | + vtimer has been replaced by xtimer which does not have these issues |
| 188 | +#1870: IPv6 neighbor advertisements are malformed |
| 189 | + According to Wireshark (and reference implementations) GNRC sends |
| 190 | + well-formed neighbor advertisements |
| 191 | +#1964 and #1955: eventual problems with IoT-LAB M3 nodes in the testbed |
| 192 | + Solved by new driver versions for UART and radio |
| 193 | +#2228: samd21 stack sizes are too small |
| 194 | + The stacksize has been adapted in #2229 |
| 195 | + |
| 196 | +Known Issues |
| 197 | +============ |
| 198 | + |
| 199 | +network related issues |
| 200 | +---------------------- |
| 201 | +#3075: nhdp: unnecessary microsecond precision |
| 202 | + NHDP works with timer values of microsecond precision which is not |
| 203 | + required. Changing to lower precision would save some memory. |
| 204 | +#3086: Max. packet length for AT86RF2XX |
| 205 | + The size of the link-layer header is not dynamically calculated, but |
| 206 | + instead the maximum# size is always assumed. |
| 207 | +#3201: Odd length packet snips cause invalid check sum |
| 208 | + If an odd length packet snip occurs in a packet and is not the last snip |
| 209 | + (in the order the packet is supposed to be, not in the list's order) in a |
| 210 | + packet it will generate a wrong check sum. |
| 211 | +#4048: potential racey memory leak |
| 212 | + According to the packet buffer stats, flood-pinging a multicast destination |
| 213 | + may lead to a memory leak due to a race condition. However, it seems to be |
| 214 | + a rare case and a completely filled up packet buffer was not observed. |
| 215 | + |
| 216 | +native related issues |
| 217 | +--------------------- |
| 218 | +#495: native not float safe |
| 219 | + When the FPU is used when an asynchronous context switch occurs, either the |
| 220 | + stack gets corrupted or a floating point exception occurs. |
| 221 | +#499: native is segfaulting on heavy network usage |
| 222 | + Sending more than 100 packets per second causes a SEGFAULT in RIOT native. |
| 223 | +#534: native debugging on osx fails |
| 224 | + Using valgrind or gdb with a nativenet target in OSX leads to "the network" |
| 225 | + being stuck (gdb) or the whole process being stuck (valgrind). |
| 226 | +#3341 and #3824: nativenet crashes when hammered |
| 227 | + Flood-pinging a native instance from more than one host (either multiple |
| 228 | + threads on the host system or multiple other native instances), leads to a |
| 229 | + SEGFAULT. |
| 230 | + |
| 231 | +other platform related issues |
| 232 | +----------------------------- |
| 233 | +#2724: Add support for serial number passing to CMSIS boards, document it |
| 234 | + Documentation about how to discover and set the serial number of CMSIS-DAP |
| 235 | + chips is missing |
| 236 | + |
| 237 | +other issues |
| 238 | +------------ |
| 239 | +#2761: core: define default flags |
| 240 | + If a thread is created without the corresponding flag (CREATE_STACKTEST), |
| 241 | + the ps command will yield wrong numbers for the stack usage |
| 242 | +#2927: core: Automatically select the lowest possible LPM mode |
| 243 | + Not all available low power modes (LPMs) are implemented for each platform |
| 244 | + and the concept of how the LPM is chosen need some reconsideration |
| 245 | +#2967: Makefile.features: location is not relevant for all features |
| 246 | + Provided features for the build system should be split up into a board and |
| 247 | + cpu specific part |
| 248 | +#3109: periph/random: random_read should return unsigned int |
| 249 | + The documentation of this function does not match corresponding |
| 250 | + implementation. |
| 251 | + |
| 252 | +Special Thanks |
| 253 | +-------------------- |
| 254 | +We like to give our special thanks to all the companies that provided us with |
| 255 | +their hardware for porting and testing, namely the people from (in alphabetical |
| 256 | +order): Atmel, Freescale, Limifrog, Phytec, SiLabs, and Zolertia; and also |
| 257 | +companies that directly sponsored development time: Cisco Systems, Eistec, |
| 258 | +Ell-i, FreshTemp LLC, and Phytec. |
| 259 | + |
| 260 | +More information |
| 261 | +================ |
| 262 | +http://www.riot-os.org |
| 263 | + |
| 264 | +Mailing lists |
| 265 | +------------- |
| 266 | +* RIOT OS kernel developers list |
| 267 | + * devel@riot-os.org (http://lists.riot-os.org/mailman/listinfo/devel) |
| 268 | +* RIOT OS users list |
| 269 | + * users@riot-os.org (http://lists.riot-os.org/mailman/listinfo/users) |
| 270 | +* RIOT commits |
| 271 | + * commits@riot-os.org (http://lists.riot-os.org/mailman/listinfo/commits) |
| 272 | +* Github notifications |
| 273 | + * notifications@riot-os.org (http://lists.riot-os.org/mailman/listinfo/notifications) |
| 274 | + |
| 275 | +IRC |
| 276 | +----- |
| 277 | +* Join the RIOT IRC channel at: irc.freenode.net, #riot-os |
| 278 | + |
| 279 | +License |
| 280 | +======= |
| 281 | + |
| 282 | +* Most of the code developed by the RIOT community is licensed under the GNU |
| 283 | + Lesser General Public License (LGPL) version 2.1 as published by the Free |
| 284 | + Software Foundation. |
| 285 | +* Some external sources are published under a separate, LGPL compatible license |
| 286 | + (e.g. some files developed by SICS). |
| 287 | + |
| 288 | +All code files contain licensing information. |
| 289 | + |
| 290 | + |
| 291 | + |
| 292 | + |
| 293 | + |
1 | 294 | RIOT-2014.12 - Release Notes
|
2 | 295 | ============================
|
3 | 296 | RIOT is a real-time multi-threading operating system that supports a range of
|
|
0 commit comments