|
| 1 | +RIOT-2018.07 - Release Notes |
| 2 | +============================ |
| 3 | +RIOT is a multi-threading operating system which enables soft real-time |
| 4 | +capabilities and comes with support for a range of devices that are typically |
| 5 | +found in the Internet of Things: 8-bit and 16-bit microcontrollers as well as |
| 6 | +light-weight 32-bit processors. |
| 7 | + |
| 8 | +RIOT is based on the following design principles: energy-efficiency, soft |
| 9 | +real-time capabilities, small memory footprint, modularity, and uniform API |
| 10 | +access, independent of the underlying hardware (with partial POSIX 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) and is |
| 14 | +licensed with a non-viral copyleft license (LGPLv2.1), which allows indirect |
| 15 | +business models around the free open-source software platform provided by RIOT. |
| 16 | + |
| 17 | + |
| 18 | +About this release: |
| 19 | +=================== |
| 20 | + |
| 21 | +The 2018.07 release includes new features, like NimBLE (ble stack), |
| 22 | +a MQTT-SN client, SHA-1 based PRNG, an UUID implementation. The RISC-V CPU |
| 23 | +architecture support used by the hifive1 board. |
| 24 | +Effort was done on refactoring, documentation, test improvements and bug fixes. |
| 25 | + |
| 26 | +During the last release, maintainers contributed by running the automated test |
| 27 | +suites on their boards. This gave valuable feedback on the board support state, |
| 28 | +test reliability and where to focus effort to make testing easier and more |
| 29 | +reliable. |
| 30 | + |
| 31 | +About 380 pull requests with about 675 commits have been merged since the last |
| 32 | +release and about 27 issues have been solved. 45 people contributed with code |
| 33 | +in 93 days. Approximately 1678 files have been touched with 147122 insertions |
| 34 | +and 16060 deletions. |
| 35 | + |
| 36 | + |
| 37 | +Notations used below: |
| 38 | +===================== |
| 39 | + + means new feature/item |
| 40 | + * means modified feature/item |
| 41 | + - means removed feature/item |
| 42 | + |
| 43 | +New features and changes |
| 44 | +======================== |
| 45 | + |
| 46 | +Community |
| 47 | +--------- |
| 48 | + + Maintainers guidelines have been written and added to the repository |
| 49 | + |
| 50 | +Documentation |
| 51 | +------------- |
| 52 | + + Fix undefined doxygen groups and add a dedicated static check |
| 53 | + + Extend `auto_init` documentation |
| 54 | + |
| 55 | +Core |
| 56 | +---- |
| 57 | + + core: clist_foreach() now returns break-causing node |
| 58 | + |
| 59 | +System libraries |
| 60 | +---------------- |
| 61 | + + puf_sram: SRAM PUF feature to seed PRNGs cortex-m platforms |
| 62 | + + random: SHA-1 based PRNG |
| 63 | + + matstat: Integer mathematical statistics library |
| 64 | + + UUID: [RFC4122](https://tools.ietf.org/html/rfc4122) Unique ID library |
| 65 | + * analog_util: Refactor, add unit test |
| 66 | + - cbor: Deprecation of this module, use cn-cbor or tinycbor package |
| 67 | + instead |
| 68 | + |
| 69 | +Networking |
| 70 | +---------- |
| 71 | + + asymcute: an asynchronous MQTT-SN client |
| 72 | + + gnrc_ipv6: full duplicate address detection support according to |
| 73 | + [RFC4862](https://tools.ietf.org/html/rfc4862) |
| 74 | + + gnrc_ipv6: support to handle RDNSS option in neighbor discovery |
| 75 | + + netif.h: a network-stack agnostic API to network interfaces |
| 76 | + + lorawan: add example application of autonomous class A device |
| 77 | + * sock_udp: allocate ephemeral port on sock creation when port is 0 |
| 78 | + * gnrc_netif: Enable RX and TX complete events after netdev initialization |
| 79 | + * net/gcoap: Refine Observe re-registration |
| 80 | + * net/nanocoap: Build message with coap_pkt_t |
| 81 | + |
| 82 | +Packages |
| 83 | +-------- |
| 84 | + + NimBLE: Bluetooth Low Energy stack used in mynewt |
| 85 | + + TLSF: re-enable original API to have different pools |
| 86 | + + LUA: Add an example with the shell |
| 87 | + + semtech-loramac: add support for link_check MAC command |
| 88 | + * libcose: Use RIOT random_bytes instead of randombytes |
| 89 | + * tweetnacl: Use RIOT random_bytes instead of randombytes |
| 90 | + * hacl: Use RIOT random_bytes instead of randombytes |
| 91 | + |
| 92 | +Boards |
| 93 | +------ |
| 94 | + + Nucleo boards use their marketing names |
| 95 | + + HiFive1 (RISC-V) |
| 96 | + + slstk3402a |
| 97 | + + stm32f429i-disc1 |
| 98 | + + stm32l476-disco |
| 99 | + + nucleo-l496zg |
| 100 | + + stm32mindev |
| 101 | + + frdm-k22f, frdm-k64f, frdm-kw41z: Add bus configuration for onboard FXOS8700CQ sensor |
| 102 | + * mulle: Fix mixed up RX TX pins on UART0 |
| 103 | + |
| 104 | +CPU |
| 105 | +--- |
| 106 | + + E310 (RISC-V) |
| 107 | + * kinetis: GPIO: Enable the correct IRQn on CM0+ |
| 108 | + * kinetis: Refactor PIT timer driver implementation |
| 109 | + * kinetis: Refactor RTT driver |
| 110 | + * kinetis: Refactor clock initialization code |
| 111 | + * kinetis: Refactor LPTMR timer implementation |
| 112 | + * kinetis: Clean up SPI module power handling |
| 113 | + * kinetis: Conditionally enable MCG |
| 114 | + |
| 115 | +Device Drivers |
| 116 | +-------------- |
| 117 | + + periph_eeprom API with support for STM32 L0/L1 and AVR |
| 118 | + + AT commands parser |
| 119 | + + Fix periph_flashpage for iotlab-a8-m3/iotlab-m3/fox boards |
| 120 | + + IO1 Xplained extension: add support for light sensor and SD card, fix |
| 121 | + GPIOs initialization and SAUL support |
| 122 | + + tests/bench_timers: A comprehensive benchmark for periph_timer |
| 123 | + |
| 124 | +Build System / Tooling |
| 125 | +---------------------- |
| 126 | + + Correctly set the RIOT_VERSION on release archives |
| 127 | + + iotlab-m3/iotlab-a8-m3: fix boards flashing |
| 128 | + + Fix use of non completely initialized BASELIBS variable |
| 129 | + + newlib.mk: extract gcc include search directories for newlib-nano support |
| 130 | + + llvm: many compatibilities issues have been resolved |
| 131 | + * testbed-support: use new iot-lab command names |
| 132 | + |
| 133 | +Testing |
| 134 | +------- |
| 135 | + + Address some of the failing tests |
| 136 | + + New tests enabled by default in CI |
| 137 | + + Improve testing automation for release testing |
| 138 | + |
| 139 | +Known Issues |
| 140 | +============ |
| 141 | + |
| 142 | +Networking related issues |
| 143 | +------------------------- |
| 144 | + |
| 145 | +#4527: gnrc_ipv6: Multicast is not forwarded if routing node listens to the |
| 146 | + address |
| 147 | +#5016: gnrc_rpl: Rejoining RPL instance as root after reboot messes up rooting |
| 148 | +#5051: Forwarding a packet back to its link layer source should not be allowed |
| 149 | +#5230: gnrc_ipv6: multicast packes are not dispatched to the upper layers |
| 150 | +#5748: gnrc: nodes crashing with too small packet buffer |
| 151 | +#6123: gnrc: crash with (excessive) traffic in native |
| 152 | +#7474: 6lo: gnrc fragmentation expects driver to block on TX |
| 153 | +#7737: pkg: libcoap is partially broken and outdated |
| 154 | +#8086: gnrc_rpl_p2p: not compiling |
| 155 | +#8130: gcoap: can't build witth network stacks other than gnrc |
| 156 | +#8172: gnrc_netif, gnrc_uhcpc: Replacing prefix on border router results in no |
| 157 | + configured prefix |
| 158 | +#8271: app/netdev: application stops working after receiving frames with |
| 159 | + assertion or completely without error |
| 160 | +#9616: at86rf2xx: can not correctly set channel after `NETOPT_STATE_RESET` |
| 161 | +#9656: gnrc/netif: various problems after resetting interface a second time |
| 162 | +#9573: pkg/lwip: assert on samr21-xpro |
| 163 | +#9584: drivers/cc2420: add netopt NETOPT_MAX_PACKET_SIZE |
| 164 | + |
| 165 | +Timer related issues |
| 166 | +-------------------- |
| 167 | + |
| 168 | +#5103: xtimer: weird behavior of tests/xtimer_drift |
| 169 | +#5338: xtimer: xtimer_now() is not ISR safe |
| 170 | +#6052: tests: xtimer_drift_gets_stuck |
| 171 | +#7114: xtimer: adds items to the wrong list if the timer overflows between |
| 172 | + _xtimer_now() and irq_disable() |
| 173 | +#7347: xtimer_usleep stuck for small values |
| 174 | +#8251: telosb: timer config wrong when running o a tmote sky |
| 175 | +#9052: misc issues with tests/trickle |
| 176 | + |
| 177 | +Native related issues |
| 178 | +--------------------- |
| 179 | + |
| 180 | +#495: native not float safe |
| 181 | +#5796 native: tlsf: early malloc will lead to a crash |
| 182 | +#6442: cpu/native: timer interrupt issue |
| 183 | +#7206: native: race-condition in IPC |
| 184 | + |
| 185 | +Other platforms related issues |
| 186 | +------------------------------ |
| 187 | + |
| 188 | +#4512: pkg: tests: RELIC unittests fail on iotlab-m3 |
| 189 | +#4612: pkg: TLSF does not build for 16 bit platforms |
| 190 | +#4872: at86rf2xx: Simultaneous use of different transceiver types is not |
| 191 | + supported |
| 192 | +#4954: chronos: compiling with -O0 breaks |
| 193 | +#4866: periph: GPIO drivers are not thread tafe |
| 194 | +#5009: RIOT is saw-toothing in energy consumption (even when idling) |
| 195 | +#5128: some use of asm keyword might be missing volatile |
| 196 | +#5486: at86rf2xx: lost interrupts |
| 197 | +#5774: cpu: cortexm_common: context switching code breaks when compiling with |
| 198 | + LTO |
| 199 | +#5848: arduino: Race condition in sys/arduino/Makefile.include |
| 200 | +#6018: nRF52: gnrc 6lowpan ble memory leak |
| 201 | +#6437: periph/spi: Leftovers from SPI rework in #4780 |
| 202 | +#6567: periph/spi: Switching between CPOL=0,1 problems on Kinetis with software |
| 203 | + CS |
| 204 | +#6650: GPIO Port shift in cc2538 is unconsistent |
| 205 | +#6838: Issuing a reboot on ATmega328p makes the board loop-reboot |
| 206 | +#6874: SAMD21: possible CMSIS bug |
| 207 | +#7020: isr_rfcoreerrors while pinging between CC2538DKs |
| 208 | +#7667: sam0 flashpage_write issues |
| 209 | +#7846: stm32f1: I2C read functions return bogus values with unconnected devices |
| 210 | +#8028: diskio: failed assertion in send_cmd() on lpc2387 |
| 211 | +#8045: stm32/periph/uart: extra byte transmitted on first transmission |
| 212 | +#8436: Kinetis PhyNode: failed to flash binary > 256K |
| 213 | +#8444: tests/thread_priority_inversion hangup |
| 214 | +#9616: ATmega platform issues. |
| 215 | + |
| 216 | +Other issues |
| 217 | +------------ |
| 218 | + |
| 219 | +#1263: sys: the TLSF implementation contains (a) read-before-write error(s) |
| 220 | +#4053: macros: RIOT_FILE_RELATIVE printing wrong file name for headers |
| 221 | +#4488: making the newlib thread-safe |
| 222 | +#5561: C++11 extensions in header files |
| 223 | +#5776: make: Predefining CFLAGS are parsed weirdly |
| 224 | +#5863: OSX+SAMR21-xpro: shell cannot handle command inputs larger than 64 chars |
| 225 | +#6120: Windows AVR Mega development makefile Error |
| 226 | +#7220: sys/fmt: Missing tests for fmt_float,fmt_lpad |
| 227 | +#7877: SPI connection can't read 16bit size register |
| 228 | +#8107: crypto/ccm: bugs in the implementation of CCM mode |
| 229 | +#9548: Many i2c bugs found with the i2c api rework but did not reach the release |
| 230 | +#9709: examples: failed assertion in dtls-echo example |
| 231 | + |
| 232 | +Fixed Issues from the last release (2018.04) |
| 233 | +============================================ |
| 234 | + |
| 235 | +#8112 crypto/ccm: fix input_len checking with length_encoding |
| 236 | +#8532 kinetis: timer_set_absolute randomly misses its target |
| 237 | +#8778 sys/random: random_uint32_range is only uniform if range is a power of 2 |
| 238 | + bug quality defect |
| 239 | +#9065 flashpage_write broken on iotlab-m3 |
| 240 | +#9154 cpu/lpc2387: Fixed broken SPI driver |
| 241 | +#9451 Makefile.include: fully define BASELIBS before using its value |
| 242 | +#9579 stm32_common: fix ram length for MCUs with non-contiguous ram regions |
| 243 | +#9675 tests: gnrc_netif: fix group join iteration macro |
| 244 | + |
| 245 | + |
| 246 | +You can get the complete detail in the git history and in the release milestone |
| 247 | +[Release 2018.07](https://github.com/RIOT-OS/RIOT/milestone/23?closed=1). |
| 248 | + |
| 249 | + |
| 250 | +Acknowledgements |
| 251 | +================ |
| 252 | +We would like to thank all companies (vendors) that provided us with (their) |
| 253 | +hardware for porting and testing RIOT-OS. Further thanks go to companies and |
| 254 | +institutions that directly sponsored development time. And finally, big thanks |
| 255 | +to all of you contributing in so many different ways to make RIOT worthwhile! |
| 256 | + |
| 257 | +More information |
| 258 | +================ |
| 259 | +http://www.riot-os.org |
| 260 | + |
| 261 | +Mailing lists |
| 262 | +------------- |
| 263 | +* RIOT OS kernel developers list |
| 264 | + devel@riot-os.org (http://lists.riot-os.org/mailman/listinfo/devel) |
| 265 | +* RIOT OS users list |
| 266 | + users@riot-os.org (http://lists.riot-os.org/mailman/listinfo/users) |
| 267 | +* RIOT commits |
| 268 | + commits@riot-os.org (http://lists.riot-os.org/mailman/listinfo/commits) |
| 269 | +* Github notifications |
| 270 | + notifications@riot-os.org (http://lists.riot-os.org/mailman/listinfo/notifications) |
| 271 | + |
| 272 | +IRC |
| 273 | +--- |
| 274 | +* Join the RIOT IRC channel at: irc.freenode.net, #riot-os |
| 275 | + |
| 276 | +License |
| 277 | +======= |
| 278 | +* The code developed by the RIOT community is licensed under the GNU Lesser |
| 279 | + General Public License (LGPL) version 2.1 as published by the Free Software |
| 280 | + Foundation. |
| 281 | +* Some external sources and packages are published under a separate license. |
| 282 | + |
| 283 | +All code files contain licensing information. |
| 284 | + |
| 285 | + |
| 286 | + |
1 | 287 | RIOT-2018.04 - Release Notes
|
2 | 288 | ============================
|
3 | 289 | RIOT is a multi-threading operating system which enables soft real-time
|
|
0 commit comments