Skip to content

Commit e55fe5c

Browse files
committed
[backport] Release notes of 2017.10
1 parent d4bf630 commit e55fe5c

File tree

1 file changed

+259
-1
lines changed

1 file changed

+259
-1
lines changed

release-notes.txt

+259-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,262 @@
1+
RIOT-2017.10 - 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 microcontrollers, 16-bit
6+
microcontrollers and 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+
About this release:
18+
===================
19+
Most notable, this release is bringing RIOT a step closer to supporting
20+
over-the-air-updates by containing initial support for MCUBoot.
21+
Furthermore, it adds support for some new platforms (e.g. arduino-mkzero,
22+
nucleos, and frdm-k22f), drivers (e.g. my9221, apa102, ds1307), and of course
23+
a large number of bug fixes (e.g. `make buildtest` now working properly,
24+
various fixes to `xtimer`).
25+
26+
About 390 pull requests with about 500 commits have been merged since the last
27+
release and about 60 issues have been solved. 39 people contributed with code
28+
in 113 days. 1825 files have been touched with 223454 insertions and 66146 deletions.
29+
30+
Notations used below:
31+
=====================
32+
+ means new feature/item
33+
* means modified feature/item
34+
- means removed feature/item
35+
36+
New features and changes
37+
========================
38+
39+
Bootloader
40+
-----------
41+
+ MCUBoot: A secure bootloader for ARM MCUs is now supported. This initial support
42+
includes only the nrf52dk board. For more information about it refer to the mcuboot github
43+
page at https://github.com/runtimeco/mcuboot/blob/master/README-RIOT.rst
44+
45+
System libraries
46+
----------------
47+
+ bcd: binary coded decimal en/decoder
48+
49+
Networking
50+
----------
51+
+ gcoap: Add URI-query strings for requests + various fixes
52+
53+
Packages
54+
--------
55+
* lwip: Updated to v2.0.3
56+
57+
Boards
58+
------
59+
+ NXP frdm-k22f
60+
+ STM nucleo144-f722
61+
+ Arduino arduino-mkzero
62+
+ ti CC2650 LaunchPad
63+
- weio
64+
65+
CPU
66+
---
67+
+ NXP k22f
68+
+ cc2538: ADC
69+
+ stm32l4: RTC
70+
+ samr21e18a
71+
+ msp430: added flashpage driver
72+
- lpc11u34
73+
* stm32: unified stmclk implementations, reworked RTC
74+
* sam0: heavy unification and refactoring, updated vendor headers
75+
+ sam_common: started unification of sam0 and sam3
76+
* cortexm: interrupt vector cleanup
77+
78+
Device Drivers
79+
--------------
80+
+ my9221 - LED controller + Seeed Studio Grove LED bar
81+
+ apa102 - RGB LED
82+
+ ds1307: RTC
83+
+ SAUL support: lps331ap
84+
* SAUL gpio: allow configuration of initial state and low-active signals
85+
* sdcard_spi: added mtd interface
86+
* PM: fixed selection of default implementations for `pm_off` and `pm_set_lowest`
87+
88+
Build System / Tooling
89+
------------
90+
+ make: added pkt-prepare target
91+
* gcc: enabled `-fdiagnostics-color` per default for `arm` and `native` targets
92+
* edbg: use as default flash tool for sam0-based boards
93+
+ added LOSTANDFOUND.md for listing removed features
94+
95+
Fixed Issues from the last 3 releases (known issues missing in 2017.04 and 2017.07)
96+
===================================================================================
97+
#2006: cpu/nrf51822: timer callback may be fired too early
98+
#4841: xtimer: timer already in the list:
99+
#4590: pkg: building relic with clang fails.
100+
#4694: drivers/lm75a: does not build
101+
#4902: xtimer: xtimer_set: xtimer_set does not handle integer overflows well
102+
#5128: make: buildtest breaks when exporting FEATURES_PROVIDED var
103+
#5207: make: buildest fails with board dependent application Makefiles
104+
#5361: cpu/cc26x0: timer broken
105+
#5460: cpu/samd21: i2c timing with compiler optimization
106+
#5489: cpu/lpc11u34: ADC broken
107+
#5799: kw2x: 15.4 duplicate transmits
108+
#5928: xtimer: usage in board_init() crashes: some boards use the xtimer in there board_init()
109+
function. The xtimer is however first initialized in the auto_init module which is executed
110+
after board_init()
111+
#6022: pkg: build order issue
112+
#6331: RTC alarm triggered with 1s delay
113+
#6419: cpu/cc2538: timer broken
114+
#6427: xtimer: infinite loop with xtimer_mutex_lock_timeout
115+
#6501: boards/nucleo: Pin usage collision (SPI clk vs. LED0)
116+
#6542: boards/nucle-f0xx: misconfigured timer configuration
117+
#6904: cpu/saml21: cannot use several EXTI
118+
119+
Known Issues
120+
============
121+
Networking related issues
122+
-------------------------
123+
#3075: nhdp: unnecessary microsecond precision: NHDP works with timer values of microsecond precision
124+
which is not required. Changing to lower precision would save some memory.
125+
#4048: gnrc: potential racey memory leak
126+
#5016: gnrc_rpl: Rejoining RPL instance as root after reboot messes up routing
127+
#5230: gnrc ipv6: multicast packets are not dispatched to the upper layers
128+
#5656: Possible Weakness with locking in the GNRC network stack: For some operations mutexes to the
129+
network interfaces need to get unlocked in the current implementation to not get deadlocked.
130+
Recursive mutexes as provided in #5731 might help to solve this problem.
131+
#5748: gnrc: nodes crashing with too small packet buffer: A packet buffer of size ~512 B might lead
132+
to crashes. The issue describes this for several hundret nodes, but agressive flooding with
133+
just two nodes was also shown to lead to this problem.
134+
#5858: gnrc: 6lo: potential problem with reassembly of fragments: If one frame gets lost the reassembly
135+
state machine might get out of sync
136+
#6123: gnrc: crash with (excessive) traffic
137+
#6519: driver/mrf24j40: broken on stm32f4discovery
138+
#7035: lwIP: hangs due to sema change after a while
139+
#7727: pkg: libcoap is partially broken and outdated
140+
141+
NDP is not working properly
142+
---------------------------
143+
#4499: handle of l2src_len in gnrc_ndp_rtr_sol_handle: Reception of a router solicitation might lead
144+
to invalid zero-length link-layer addresses in neighbor cache.
145+
#5005: ndp: router advertisement sent with global address: Under some circumstances a router might
146+
send RAs with GUAs. While they are ignored on receive (as RFC-4861 specifies), RAs should have
147+
link-local addresses and not even be send out this way.
148+
#5122: NDP: global unicast address on non-6LBR nodes disappears after a while: Several issues
149+
(also see #5760) lead to a global unicast address effectively being banned from the network
150+
(disappears from neighbor cache, is not added again)
151+
#5467: ipv6 address vanishes when ARO (wrongly) indicates DUP caused by outdated ncache at router
152+
#5539: Border Router: packet not forwarded from ethos to interface 6
153+
#5790: ND: Lost of Global IPV6 on node after sending lot of UDP frame from BR
154+
155+
Timer related issues
156+
--------------------
157+
#5338: xtimer: xtimer_now() not ISR safe for non-32-bit platforms.
158+
#6052: tests: xtimer_drift gets stuck: xtimer_drift application freezes after ~30-200 seconds
159+
#6502: cpu/stm32l1: RTC broken
160+
#7114: xtimer: add's items to the wrong list if the timer overflows between _xtimer_now() and irq_disable()
161+
162+
native related issues
163+
---------------------
164+
#495: native not float safe: When the FPU is used when an asynchronous context switch occurs, either
165+
the stack gets corrupted or a floating point exception occurs.
166+
#2175: ubjson: valgind registers "Invalid write of size 4" in unittests
167+
#5796: native: tlsf: early malloc will lead to a crash: TLSF needs pools to be initialized (which is
168+
currently expected to be done in an application). If a malloc is needed before an application's
169+
main started (e.g. driver initialization) the node can crash, since no pool is allocated yet.
170+
#6145: native: system reboots on SIGTRAP
171+
#6442: cpu/native: timer interrupt does not yield thread
172+
#7206: native: race-condition in IPC
173+
174+
other platform related issues
175+
-----------------------------
176+
#1891: newlib-nano: Printf formatting does not work properly for some numeric types: PRI[uxdi]64,
177+
PRI[uxdi]8 and float are not parsed in newlib-nano
178+
#2143: unittests: tests-core doesn't compile for all platforms: GCC build-ins were used in the
179+
unittests which are not available with msp430-gcc
180+
#2300: qemu unittest fails because of a page fault
181+
#4512: pkg: tests: RELIC unittests fail on iotlab-m3
182+
#4560: make: clang is more pedantic than gcc oonf_api is not building with clang (partly fixed by #4593)
183+
#4822: kw2xrf: packet loss when packets get fragmented
184+
#4876: at86rf2xx: Simultaneous use of different transceiver types is not supported
185+
#4954: chronos: compiling with -O0 breaks
186+
#4866: not all GPIO driver implementations are thread safe: Due to non-atomic operations in the drivers
187+
some pin configurations might get lost.
188+
#5009: RIOT is saw-toothing in energy consumption (even when idling)
189+
#5103: xtimer: weird behavior of tests/xtimer_drift: xtimer_drift randomly jumps a few seconds on nrf52
190+
#5405: Eratic timings on iotlab-m3 with compression context activated
191+
#5486: at86rf2xx: lost interrupts
192+
#5678: at86rf2xx: failed assertion in _isr
193+
#5944: msp430: ipv6_hdr unittests fail
194+
#5848: arduino: Race condition in sys/arduino/Makefile.include
195+
#6018: nRF52 gnrc 6lowpan ble memory leak
196+
#6261: SAMD21 TC3 & TC4 issue when using TCC2
197+
#6379: nrf52dk/nordic_soft_device: not working anymore
198+
#6437: periph/spi: Leftovers from SPI rework
199+
#6526: atmega based boards freeze when main thread is over
200+
#6836: Issuing a reboot on ATmega328p makes the board loop-reboot
201+
#7347: xtimer_usleep stuck for small values on nucleo-l1
202+
#7753: pic32-wifire: race-condition when linking in concurrent build
203+
#7846: stm32f1: I2C read functions return bogus values with unconnected devices
204+
205+
other issues
206+
------------
207+
#1263: TLSF implementation contains (a) read-before-write error(s).
208+
#3256: make: Setting constants on compile time doesn't really set them everywhere
209+
#3366: periph/i2c: handle NACK
210+
#4488: Making the newlib thread-safe: When calling puts/printf after thread_create(), the CPU hangs
211+
for DMA enabled uart drivers.
212+
#4866: periph: GPIO drivers are not thread safe
213+
#5561: C++11 extensions in header files
214+
#5776: make: Predefining CFLAGS are parsed weirdly
215+
#5863: OSX + SAMR21-xpro: shell cannot handle command inputs larger than 64 chars
216+
#5962: Makefile: UNDEF variable is not working as documented
217+
#6451: Wrong value in SRF08 driver
218+
#7800: CBOR is broken
219+
220+
Special Thanks
221+
==============
222+
We would like to give our special thanks to all the companies that provided us
223+
with their hardware for porting and testing, namely the people from (in alphabeticalorder):
224+
Atmel, Freescale, Imagination Technologies, Nordic, OpenMote, Phytec, SiLabs, UDOO,
225+
and Zolertia;
226+
and also companies that directly sponsored development time:
227+
Cisco Systems, Eïsox, Eistec, Ell-i, Engineering Spirit, Mesotic, Nordic, OTA keys and Phytec.
228+
We also would like to thank people from Inria Chile for their work on
229+
OpenThread integration and Semtech LoRa drivers.
230+
231+
More information
232+
================
233+
http://www.riot-os.org
234+
235+
Mailing lists
236+
-------------
237+
* RIOT OS kernel developers list
238+
devel@riot-os.org (http://lists.riot-os.org/mailman/listinfo/devel)
239+
* RIOT OS users list
240+
users@riot-os.org (http://lists.riot-os.org/mailman/listinfo/users)
241+
* RIOT commits
242+
commits@riot-os.org (http://lists.riot-os.org/mailman/listinfo/commits)
243+
* Github notifications
244+
notifications@riot-os.org (http://lists.riot-os.org/mailman/listinfo/notifications)
245+
246+
IRC
247+
---
248+
* Join the RIOT IRC channel at: irc.freenode.net, #riot-os
249+
250+
License
251+
=======
252+
* The code developed by the RIOT community is licensed under the GNU Lesser General Public
253+
License (LGPL) version 2.1 as published by the Free Software Foundation.
254+
* Some external sources and pkg are published under a separate license.
255+
256+
All code files contain licensing information.
257+
258+
259+
1260
RIOT-2017.07 - Release Notes
2261
============================
3262
RIOT is a multi-threading operating system which enables soft real-time
@@ -149,7 +408,6 @@ All code files contain licensing information.
149408

150409

151410

152-
153411
RIOT-2017.04 - Release Notes
154412
============================
155413
RIOT is a multi-threading operating system which enables soft real-time

0 commit comments

Comments
 (0)