mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
1103 lines
37 KiB
Plaintext
1103 lines
37 KiB
Plaintext
RIOT-2015.12 - 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).
|
|
|
|
About this release:
|
|
===================
|
|
This release is mostly a clean-up and bug-fixing release. Besides that, it introduces SAUL,
|
|
the [S]ensor [A]ctuator [U]ber [L]ayer, which offers a unified API to interact with all
|
|
different types of sensors and actuators on RIOT supported hardware. Furthermore, it re-enables
|
|
the support for ICN by integrating CCN-Lite as a package. A lot of new overall documentation was
|
|
added and existing documentation was improved (http://riot-os.org/api/). In addition,
|
|
a Vagrant (https://www.vagrantup.com/) configuration file was added to the RIOT repository in
|
|
order to create reproducible and portable environments that contain all necessary toolchains.
|
|
|
|
About 222 pull requests with about 631 commits have been merged since the last release and 48
|
|
additional issues have been solved. 37 people contributed code in 102 days. 980 files have been
|
|
touched with ~59779 insertions and ~12115 deletions.
|
|
|
|
Notations used below:
|
|
=====================
|
|
+ means new feature/item
|
|
* means modified feature/item
|
|
- means removed feature/item
|
|
|
|
|
|
New features and changes
|
|
========================
|
|
|
|
General
|
|
-------
|
|
|
|
Device support
|
|
--------------
|
|
+ SAUL [S]ensor [A]ctuator [U]ber [L]ayer
|
|
|
|
Core
|
|
----
|
|
* replaced deprecated dINT()/eINT() calls by up-to-date disableIRQ()/enableIRQ()/restoreIRQ()
|
|
calls throughout the whole core
|
|
|
|
Network Stack
|
|
-------------
|
|
+ TFTP support
|
|
+ 6LoWPAN: Next Header Compression
|
|
+ leaf mode for RPL nodes
|
|
* RPL: refactoring of instances and dodags (saved 1kB ROM and 0,5kB RAM)
|
|
* FIB: initial source route support
|
|
* change to non-blocking 6LoWPAN fragmentation
|
|
* POSIX sockets: various fixes
|
|
* periodic stats printing for ping6 command
|
|
* convert all vtimer into xtimer calls
|
|
* send router advertisements without PIOs
|
|
|
|
Packages
|
|
--------
|
|
+ CCN-Lite as a ICN network stack
|
|
+ RELIC: efficient cryptography library
|
|
* fix TLSF to compile with -pedantic
|
|
|
|
Supported platforms
|
|
-------------------
|
|
Additional support for the following boards:
|
|
+ weio board with NXP LPC11U34 (ARM Cortex-M0)
|
|
+ Silicon Labs Wireless Eval Kit SLWSTK6220A (Wonder Gecko)
|
|
+ STM32 Nucleo-F401
|
|
|
|
Drivers
|
|
-------
|
|
+ Arduino-mega2560 GPIO
|
|
+ Arduino pin mapping for Mega2560 and Due
|
|
|
|
Network drivers
|
|
---------------
|
|
+ enc28j60 Ethernet chip
|
|
+ at86rf2xx: Add support for channel page
|
|
* at86rf2xx: fix LQI reading
|
|
* implement sleep mode for at86rf2xx
|
|
|
|
Sensors drivers
|
|
---------------
|
|
+ AT30TSE75x temperature sensor
|
|
+ TCS3772 Color Light-to-Digital converter
|
|
|
|
System libraries
|
|
----------------
|
|
+ partial support for the Arduino API
|
|
+ lightweight semaphores
|
|
+ fmt: simple string formatting library
|
|
+ xtimer: 32-bit version of msg_recv_timeout
|
|
* implicit socket binding for POSIX connect() and sendto()
|
|
* posix_semaphore: make API POSIX compliant
|
|
|
|
Examples
|
|
--------
|
|
+ microcoap/conn example
|
|
+ minimal GNRC networking example
|
|
|
|
Build System
|
|
------------
|
|
* split the Cortex-M0 buildtest group to avoid timeout issues with Travis
|
|
* split the Cortex-M4 buildtest group to avoid timeout issues with Travis
|
|
|
|
Other
|
|
-----
|
|
+ vagrant configuration
|
|
+ documentation: various high-level descriptions of crucial features
|
|
+ IoT-LAB: create and connect to debug server
|
|
* pyterm: fix problems with German umlauts as input
|
|
|
|
Fixed Issues from the last release
|
|
==================================
|
|
|
|
#2724: Add support for serial number passing to CMSIS boards, document it
|
|
Documentation about how to discover and set the serial number of CMSIS-DAP chips is missing
|
|
#3201: Odd length packet snips cause invalid check sum
|
|
If an odd length packet snip occurs in a packet and is not the last snip
|
|
(in the order the packet is supposed to be, not in the list's order)
|
|
in a packet it will generate a wrong check sum.
|
|
|
|
Known Issues
|
|
============
|
|
|
|
network related 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.
|
|
#3970: RPL: Advertise DODAG only over the assigned interface
|
|
gnrc_rpl seems to multicast DIOs over all interfaces, though gnrc_rpl_init expects an
|
|
interface as parameter and sets the RPL-nodes multicast address only for that interface.
|
|
#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.
|
|
#4462: IPHC/NHC broken between Linux and a RIOT node with a RIOT-based border router in between.
|
|
|
|
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.
|
|
#4608: tests/xtimer_usleep_until: unstable behaviour
|
|
The test starts to output "too large difference" and fails after a random period of time.
|
|
|
|
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.
|
|
|
|
other issues
|
|
------------
|
|
#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
|
|
#3109: periph/random: random_read should return unsigned int
|
|
The documentation of this function does not match corresponding implementation.
|
|
#4488: Making the newlib thread-safe
|
|
When calling puts/printf after thread_create(), the CPU hangs for DMA enabled uart drivers.
|
|
|
|
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, Phytec, SiLabs, and Zolertia; and also companies that directly
|
|
sponsored development time:
|
|
Cisco Systems, Google, Eistec, Ell-i, Engineering 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.09 - 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: devices based on
|
|
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).
|
|
|
|
About this release:
|
|
============
|
|
This release introduces the GNRC network stack, a completely new, highly
|
|
modularized and configurable IPv6/6LoWPAN stack. It also includes xtimer as a
|
|
new timer subsystem for accurate short- and long-term timers. Moreover,
|
|
peripheral drivers, board, and CPU support has been tidied up and contains
|
|
about 50% less duplication in the build system.
|
|
|
|
About 580 pull requests with about 2,500 commits have been merged since the
|
|
last release and 120 additional issues have been solved. 62 people contributed
|
|
code in 278 days. 2578 files have been touched with ~320,000 insertions and
|
|
~134,000 deletions.
|
|
|
|
Loose notations used below:
|
|
============
|
|
+ means new feature/item
|
|
* means modified feature/item
|
|
- means removed feature/item
|
|
|
|
|
|
|
|
New features
|
|
============
|
|
|
|
General
|
|
-------
|
|
+ complete codebase now compiles with -Werror on all platforms
|
|
|
|
Device support
|
|
--------------
|
|
+ vastly improved hardware abstraction, unified over all devices
|
|
+ unified most common code
|
|
* complete refactoring of MSP430 and ARM7 code
|
|
|
|
Core
|
|
----
|
|
+ new timer subsystem: xtimer
|
|
+ extended atomic API by compare-and-swap, increase/decrease and
|
|
set-to-one/set-to-zero functions
|
|
+ introduced a more energy-saving assert macro
|
|
|
|
Network Stack
|
|
-------------
|
|
+ RFC compliant gnrc network stack (6LoWPAN, IPv6, UDP, RPL) major refactoring
|
|
+ 6LoWPAN ND (including SLAAC)
|
|
+ example applications working out of the box (gnrc_networking for the full
|
|
gnrc experience, gnrc_border_router for a 6LoWPAN border router, and default
|
|
for simple link layer connectivity)
|
|
+ explicit support for border router
|
|
+ auto-init for the network stack
|
|
+ introduction of generic interfaces (netdev, netapi)
|
|
+ introduction of a protocol-independent FIB
|
|
+ introduction of a central packet buffer
|
|
+ wireshark-supported protocol ZEP to send IEEE 802.15.4 frames over UDP on
|
|
non-IEEE-802.15.4 devices
|
|
+ support for SLIP and link-layers without addresses
|
|
+ new low-level driver model
|
|
+ new nativenet based directly on ethernet
|
|
+ conn: general stack-independent transport layer API
|
|
+ POSIX sockets ported for conn
|
|
+ NHDP support
|
|
|
|
Packages
|
|
--------
|
|
+ support for microCoAP
|
|
+ CMSIS DSP
|
|
|
|
Supported platforms
|
|
-------------------
|
|
Additional support for the following boards:
|
|
+ Zolertia ReMote
|
|
+ Atmel SAML21 Xplained Pro (saml21-xpro)
|
|
+ ST Nucleo L1
|
|
+ ST Nucleo F334
|
|
+ ST Nucleo F091
|
|
+ Phytec phyWAVE KW22
|
|
+ Eistec Mulle
|
|
+ Freescale Freedom FRDM-K64F
|
|
+ TI Stellaris Launchpad LM4F120
|
|
+ LimiFrog V1
|
|
+ Silabs EZR32WG
|
|
|
|
Drivers
|
|
-------
|
|
+ various peripheral drivers (ADC, UART, timer, SPI, I²C, RTC, RTT, DAC, PWM...)
|
|
+ basic NVRAM driver (interface)
|
|
|
|
Network drivers
|
|
+ native ethernet driver
|
|
+ ENCx24J600 ethernet driver
|
|
|
|
Sensors drivers
|
|
+ ISL29125 RGB light sensor
|
|
+ PDC8544 LCD display
|
|
+ INA220 current and power monitor
|
|
+ MPU-9150 9-DOF motion sensor
|
|
+ LIS3DH accelerometer
|
|
+ TMP006 temperature sensor
|
|
+ MAG3110 magnetometer
|
|
+ MMA8652 accelerometer
|
|
+ DHT11/DHT22 temperature-humidity sensor
|
|
+ ADT7310 temperature sensor
|
|
|
|
System libraries
|
|
----------------
|
|
+ MD5
|
|
+ Fletcher's checksum
|
|
+ Unified Cipher API and Block cipher operation modes: ECB, CBC, CTR and CCM
|
|
+ Bitfield operations
|
|
+ thread safe ringbuffer
|
|
+ vtimer compatibility layer
|
|
|
|
Build System
|
|
------------
|
|
+ support for the FIT IoT-LAB testbed by direct integration into the Make build
|
|
system
|
|
+ integrated Docker support
|
|
+ integration of llvm's clang static analyzer
|
|
+ added target for the address sanitizer
|
|
+ indicating possible feature conflicts at compile time
|
|
+ unified OpenOCD script
|
|
|
|
|
|
Changes
|
|
=======
|
|
|
|
Core
|
|
----
|
|
* improved documentation
|
|
* fixed several IPC message queue initializations
|
|
- removed hwtimer
|
|
|
|
Drivers
|
|
-------
|
|
* optimized/remodeled GPIO interface
|
|
* optimized/remodeled TIMER interface
|
|
- temporarily removed CC2420 driver (awaiting last bug fixes for a rewrite)
|
|
* re-implementation of the CC110x driver against the peripheral interface
|
|
|
|
Network Stack
|
|
-------------
|
|
* temporarily removed and currently being refactored:
|
|
- TCP support
|
|
- CCN-lite
|
|
- AODVv2
|
|
|
|
System libraries
|
|
----------------
|
|
* new high level UART/stdio interface
|
|
* better modularisation of POSIX wrapper modules
|
|
- removed skipjack crypto library
|
|
|
|
Packages
|
|
--------
|
|
* updated CMSIS HAL to version 4.3
|
|
|
|
Other
|
|
-----
|
|
* clean-up of deprecated system and network libraries
|
|
* clean-up of deprecated boards and drivers
|
|
|
|
Selected Issues Fixed since the Last Release
|
|
============================================
|
|
#21: Deal with stdin in bordermultiplex.c
|
|
A completely new border router implementation is in place
|
|
#715: test_hwtimer_wait fails on native
|
|
Fixed by @benoit-canet in #2870
|
|
#861: neighbor discovery for 6LoWPAN not working
|
|
GNRC implements 6LoWPAN ND in a RFC6775 compliant way
|
|
#1753: vtimer_msg test crashes after ~49'20" and
|
|
#1449: a removed vtimer might still get called back by hwtimer
|
|
vtimer has been replaced by xtimer which does not have these issues
|
|
#1870: IPv6 neighbor advertisements are malformed
|
|
According to Wireshark (and reference implementations) GNRC sends
|
|
well-formed neighbor advertisements
|
|
#1964 and #1955: eventual problems with IoT-LAB M3 nodes in the testbed
|
|
Solved by new driver versions for UART and radio
|
|
#2228: samd21 stack sizes are too small
|
|
The stacksize has been adapted in #2229
|
|
|
|
Known Issues
|
|
============
|
|
|
|
network related 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.
|
|
#3201: Odd length packet snips cause invalid check sum
|
|
If an odd length packet snip occurs in a packet and is not the last snip
|
|
(in the order the packet is supposed to be, not in the list's order) in a
|
|
packet it will generate a wrong check sum.
|
|
#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.
|
|
|
|
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.
|
|
#499: native is segfaulting on heavy network usage
|
|
Sending more than 100 packets per second causes a SEGFAULT in RIOT native.
|
|
#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
|
|
-----------------------------
|
|
#2724: Add support for serial number passing to CMSIS boards, document it
|
|
Documentation about how to discover and set the serial number of CMSIS-DAP
|
|
chips is missing
|
|
|
|
other issues
|
|
------------
|
|
#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 need 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
|
|
#3109: periph/random: random_read should return unsigned int
|
|
The documentation of this function does not match corresponding
|
|
implementation.
|
|
|
|
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, Phytec, SiLabs, and Zolertia; and also
|
|
companies that directly sponsored development time: Cisco Systems, Eistec,
|
|
Ell-i, 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-2014.12 - 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: from 8-bit
|
|
microcontrollers to 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).
|
|
|
|
New features
|
|
============
|
|
Core
|
|
----
|
|
+ introduced new thread_yield() and renamed the old implementation to thread_yield_higher()
|
|
|
|
Supported platforms
|
|
-------------------
|
|
Additional support for the following boards:
|
|
+ Arduino Mega 2560 (first-time support of an 8-bit platform)
|
|
+ HikoB Fox
|
|
+ Atmel samr21-Xplained Pro
|
|
+ OpenMote
|
|
+ cc2538 Developer Kit
|
|
+ Spark-Core
|
|
+ f4vi1
|
|
+ Airfy-Beacon
|
|
+ STMF0Discovery Board
|
|
+ STMF3Discovery Board
|
|
+ STMF4Discovery Board
|
|
+ nrf51822 Development Kit
|
|
+ yunjia-nrf51822
|
|
+ MSB-IoT
|
|
+ native on ARM platforms
|
|
|
|
Drivers
|
|
-------
|
|
+ various peripheral drivers (ADC, UART, timer, SPI, I²C, RTC, RTT, DAC, PWM...)
|
|
+ MQ-3 alcohol sensor
|
|
+ ISL29020 light sensor
|
|
+ LPS331AP pressure sensor
|
|
+ LSM303DLHC accelerometer
|
|
+ L3G4200D gyroscope
|
|
+ servo motor
|
|
+ TI HDC 1000 low power humidity and temperature digital sensor
|
|
+ SRF02/SRF08 ultrasonic range sensors
|
|
+ PIR motion sensor
|
|
+ RGB LED
|
|
|
|
Network Stack
|
|
---------------
|
|
+ AODVv2
|
|
+ RPL non-storing mode
|
|
+ OF manager for RPL
|
|
+ Source Routing Header support
|
|
+ introduced netapi
|
|
+ introduced netdev, a general interface for network device drivers
|
|
+ introduced global packet buffer
|
|
|
|
System libraries
|
|
----------------
|
|
+ CBOR
|
|
+ UBJSON
|
|
+ color module for PWM
|
|
|
|
Packages
|
|
--------
|
|
+ libfixmath
|
|
|
|
Other
|
|
-----
|
|
+ C++ support for most platforms
|
|
+ PCAP based wireless sniffer
|
|
|
|
Changes
|
|
=======
|
|
Core
|
|
----
|
|
* PIDs begin with 1
|
|
* mamximum 16 priority levels for every platform
|
|
* fixed sched_switch()
|
|
* simplified mutex signatures
|
|
* minimized size of TCB
|
|
* allow hwtimer to run with more than 1MHz
|
|
* imported ringbuffer from sys
|
|
|
|
Supported platforms
|
|
-------------------
|
|
* improved iotlab-m3 support
|
|
* major improvements on the mbed LPC1768
|
|
* improved at86rf231 radio driver
|
|
* fixed hwtimer for MSP430
|
|
* added support for timer B for MSP430
|
|
* fixed thread_yield() for MSP430
|
|
* several fixes for the cc2420
|
|
* improved interrupt handling on ARM
|
|
* adjusted stack sizes for Cortex platforms
|
|
|
|
Network Stack
|
|
---------------
|
|
* refactored CCN-lite
|
|
* refactored RPL
|
|
* renamed destiny to transport_layer and socket_base
|
|
* several fixes for TCP
|
|
* split UDP and TCP
|
|
|
|
System libraries
|
|
----------------
|
|
- removed hashtable implementation
|
|
|
|
Packages
|
|
--------
|
|
* updated and simplified OpenWSN
|
|
|
|
Other
|
|
-----
|
|
* Improved and cleaned up build system
|
|
* various new helper targets (like debug, distclean, reset, objdump...)
|
|
* use newlib's nano specs if available
|
|
* various new features and added Python 3 compatibility for pyterm
|
|
* major reduction of warnings in doxygen and improved html layout
|
|
|
|
Fixed Issues from the last release
|
|
==================================
|
|
#426: Interrupt handling on MSP430 is buggy
|
|
Several fixes by @rousselk
|
|
#1798: core: first thread on runqueue is scheduled twice
|
|
Was fixed along with the thread_yield() refactoring
|
|
#1127: Random build fails on OSX
|
|
native is building stable also on OSX now
|
|
|
|
Known Issues
|
|
============
|
|
network related issues
|
|
----------------------
|
|
#21: Deal with stdin in bordermultiplex.c
|
|
Not all supported platforms provide a stdin in the current release.
|
|
However, the implementation of the 6LoWPAN border router won't work
|
|
without stdin.
|
|
#861: neighbor discovery for 6LoWPAN not working
|
|
Duplicate address detection according to RFC 6775 is also missing.
|
|
#1577: ccn-lite: populate does not work with disabled cache
|
|
If cache is set to zero, the chunks cannot be loaded and therefore also not get populated.
|
|
#1870: IPv6 neighbor advertisements are malformed
|
|
According to Wireshark, ICMPv6 neighbor advertisements are malformed (wrong
|
|
checksum or other reasons).
|
|
|
|
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.
|
|
#499: native is segfaulting on heavy network usage
|
|
Sending more than 100 packets per second causes a SEGFAULT in RIOT native.
|
|
#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).
|
|
#715: test_hwtimer_wait fails on native
|
|
The problem appears to be lost signals and depends on the CPU speed.
|
|
#787: reboot not working with open file descriptors on native
|
|
If for example a tap device is in use, the reboot command fails.
|
|
#862: sometimes the tap bridge does not work in native
|
|
Sometimes (rather suddenly) packages are not received by a TAP and won't be
|
|
received even if I reconfigure the bridge.
|
|
|
|
|
|
other platform related issues
|
|
-----------------------------
|
|
#1232: x86 doesn't build on OS X with clang
|
|
Current version of the x86 port doesn't build for OS X with clang.
|
|
#1442: setting channel is not persistent cc2420
|
|
After changing the channel via a shell command, the channel reverts back to an arbitrary
|
|
value. However, this might be only a shell problem.
|
|
#1753: vtimer_msg test crashes after ~49'20"
|
|
dependent on the platform, vtimer stops working after some time.
|
|
#1891: printf formatting does not work properly on some Cortex platforms for 64 bit numbers
|
|
This problem happens mostly for the Newlib nano, which does not support 64 bit integer
|
|
printing, but sometimes happens also with other toolchains.
|
|
#1964 and #1955: eventual problems with IoT-LAB M3 nodes in the testbed
|
|
The shell is sometimes not properly working after a reboot and the PDR is sometimes
|
|
worse than expected.
|
|
#2143: tests.core doesn't compile for all platforms
|
|
For some missing GCC compiler builtins, the unittests do not compile for MSP430
|
|
platforms.
|
|
#2228: samd21 stack sizes are too small
|
|
The application examples/default for example will crash when issuing the txtsnd command
|
|
|
|
other issues:
|
|
--------------
|
|
#1449: a removed vtimer might still get called back by hwtimer
|
|
The timer callback might still fire even after vtimer_remove() was called.
|
|
#2175: valgrind registeres "Invalid write of size 4" in unittests for ubjson
|
|
According to valgrind the stack gets corrupted in UBJSON.
|
|
|
|
For all issues and open pull requests please check the RIOT issue tracker:
|
|
https://github.com/RIOT-OS/RIOT/issues
|
|
|
|
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): airfy, Atmel, ELL-i, Intel, IoT-Lab, mbed, Phytec, and Udoo
|
|
|
|
|
|
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)
|
|
|
|
License
|
|
=======
|
|
* All sources and binaries that have been developed at Freie Universität Berlin
|
|
and most of the other code are licensed under the GNU Lesser General Public
|
|
License version 2 as published by the Free Software Foundation.
|
|
* Some external sources, especially files developed by SICS are published under
|
|
a separate license.
|
|
|
|
All code files contain licensing information.
|
|
|
|
|
|
RIOT-2014.05 - 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: from 16-bit
|
|
microcontrollers to 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).
|
|
|
|
New features
|
|
============
|
|
Core
|
|
----
|
|
+ introduced explicit core/cpu interface through a set of header files
|
|
+ added reboot and panic functions
|
|
+ added a node name to the sysconfig struct
|
|
+ added the ability to send a message to the current thread's message queue
|
|
|
|
Supported platforms
|
|
-------------------
|
|
Additional support for the following boards:
|
|
+ Arduino Due
|
|
+ UDOO board
|
|
+ X86 via qemu
|
|
+ Zolertia Z1
|
|
|
|
Network stack
|
|
-------------
|
|
+ added net_if as abstraction layer between transceiver module and L3 protocol
|
|
+ added support for auto initializing of the 6LoWPAN network stack
|
|
+ added support for RFC5444 via oonf_api (from OLSR.org)
|
|
+ added a Wireshark dissector for nativenet packets
|
|
+ introduced low-level radio driver interface
|
|
+ added a default transceiver for all boards
|
|
+ common IEEE 802.15.4 radio driver API definition
|
|
+ added standard way to query CCA (Clear Channel Assessment) status
|
|
+ enabled nonces in interests for CCN-lite (Content Centric Networking)
|
|
+ added a route shell command
|
|
|
|
System libraries
|
|
----------------
|
|
+ added quad-precision math library (quad_math)
|
|
|
|
Automated Testing
|
|
-----------------
|
|
+ added Travis CI based build tests
|
|
+ added support for a Jenkins CI server
|
|
+ added a unittest framework (based on embunit)
|
|
+ added unittests for most core functions
|
|
|
|
POSIX compliance
|
|
----------------
|
|
+ pthread support including
|
|
+ dynamic memory pool and cleanup handlers
|
|
+ mutexes
|
|
+ condition variable implementation
|
|
+ reader/writer lock
|
|
+ pthread_barrier_* functions
|
|
|
|
Native
|
|
------
|
|
+ added a valgrind and cachegrind targets
|
|
+ added profiling support
|
|
|
|
Changes
|
|
=======
|
|
Core
|
|
----
|
|
* initialize hwtimer automatically
|
|
* optimized thread status field usage
|
|
* moved oneway_malloc to sys
|
|
* prefixed API functions correctly
|
|
|
|
Network stack
|
|
-------------
|
|
* major refactoring and decoupling
|
|
* refactor use of vtimer
|
|
* fixed forwarding
|
|
* added IoT-LAB M3 Open Node support and dropped TelosB support temporarily for OpenWSN
|
|
* moved ETX beaconing to a module on its own
|
|
* various byte order and other bug fixes
|
|
|
|
Drivers
|
|
-------
|
|
* added low-level driver interface for unified CPU peripheral abstraction for
|
|
GPIO, ADC, PWM, Timer and UART
|
|
* handle race conditions preventing timers to be set correctly on MSP430 MCUs
|
|
* several CC2420 fixes
|
|
|
|
System libraries
|
|
----------------
|
|
* auto_init is used by default
|
|
* changed function prototype for shell handlers
|
|
|
|
Other
|
|
-----
|
|
* cleaned up Makefile system and simplified binary directory
|
|
* improved documentation for core and sys
|
|
* build system uses PKG dependency
|
|
* build system sets include paths automatically
|
|
* black and white lists for applications and tests
|
|
* add stacksize checker for DEBUG macro
|
|
* styling corrections
|
|
* fixed license boiler plates
|
|
* set lpc2k_pgm return value correctly
|
|
* various bug fixes and cleanups
|
|
|
|
Fixed Issues from the last release
|
|
==================================
|
|
#45: bit field order in the fcf may be wrong
|
|
The CC2420 FIFO expects the IEEE802.15.4 FCF field in reversed bit order.
|
|
With this release the byte order is now handled by the net_if module and
|
|
all device specific handling is done by the driver.
|
|
#82: Setting STATUS_REPLY_BLOCKED thread to STATUS_PENDING though it is not
|
|
handled yet
|
|
In some rare cases the status of a thread might falsely change to
|
|
STATUS_PENDING instead of STATUS_REPLY_BLOCKED.
|
|
#455: sha256 is broken on MSP430
|
|
Fixed.
|
|
#498: native is segfaulting at startup
|
|
Fixed by several PRs (#501, #583, and #588).
|
|
#505: native on FreeBSD is broken
|
|
Fixed by PR #1022.
|
|
|
|
Known Issues
|
|
============
|
|
network related issues
|
|
----------------------
|
|
#21: Deal with stdin in bordermultiplex.c
|
|
Not all supported platforms provide a stdin in the current release.
|
|
However, the implementation of the 6LoWPAN border router won't work
|
|
without stdin.
|
|
#861: neighbor discovery for 6LoWPAN not working
|
|
Duplicate address detection according to RFC 6775 is also missing.
|
|
|
|
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.
|
|
#499: native is segfaulting on heavy network usage
|
|
Sending more than 100 packets per second causes a SEGFAULT in RIOT native.
|
|
#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).
|
|
#715: test_hwtimer_wait fails on native
|
|
The problem appears to be lost signals and depends on the CPU speed.
|
|
#787: reboot not working with open file descriptors on native
|
|
If for example a tap device is in use, the reboot command fails.
|
|
#862: sometimes the tap bridge does not work in native
|
|
Sometimes (rather suddenly) packages are not received by a TAP and won't be
|
|
received even if I reconfigure the bridge.
|
|
#1127: Random build fails on OSX
|
|
Building for native on OSX often fails - Workaround: build using -B flag,
|
|
e.g.: make -B clean all
|
|
|
|
other platform related issues
|
|
-----------------------------
|
|
#426: Interrupt handling on MSP430 is buggy
|
|
UART and timer handling is currently unstable on MSP430 based platforms
|
|
#1232: x86 doesn't build on OS X with clang
|
|
Current version of the x86 port doesn't build for OS X with clang.
|
|
|
|
For all issues and open pull requests please check the RIOT issue tracker:
|
|
https://github.com/RIOT-OS/RIOT/issues
|
|
|
|
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)
|
|
|
|
License
|
|
=======
|
|
* All sources and binaries that have been developed at Freie Universität Berlin
|
|
and most of the other code are licensed under the GNU Lesser General Public
|
|
License version 2 as published by the Free Software Foundation.
|
|
* Some external sources, especially files developed by SICS are published under
|
|
a separate license.
|
|
|
|
All code files contain licensing information.
|
|
|
|
|
|
RIOT-2014.01 - 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: from 16-bit
|
|
microcontrollers to 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).
|
|
|
|
New features
|
|
============
|
|
Core
|
|
----
|
|
+ msg_receive() with timeout
|
|
+ LPM support for MSP430 based platforms
|
|
+ introduced a version string
|
|
|
|
Supported platforms
|
|
-------------------
|
|
Additional support for the following boards:
|
|
+ TelosB
|
|
+ mbed LPC1768
|
|
|
|
Sensor drivers
|
|
---------------
|
|
+ drivers for the LM75A Digital temperature sensor and thermal watchdog
|
|
+ SRF02 and SRF08 ultrasonic range finders
|
|
|
|
Native port
|
|
-----------
|
|
+ implemented UART via I/O redirection or TCP and UNIX socket
|
|
|
|
System libraries
|
|
----------------
|
|
+ Mersenne twister pseudorandom number generator
|
|
+ crypto libraries
|
|
+ 3des
|
|
+ aes
|
|
+ rc5
|
|
+ skipjack
|
|
+ twofish
|
|
+ BSD-like package system for easy integration of external libraries
|
|
|
|
Network stack
|
|
-------------
|
|
+ port of CCN lite
|
|
+ POSIX socket wrapper
|
|
+ integration of libcoap
|
|
+ integration of OpenWSN
|
|
|
|
Further Changes
|
|
===============
|
|
* boards and projects repositories have been integrated and are now part of
|
|
the RIOT repository itself
|
|
* full refactoring of the network stack and introducing a substructure
|
|
according to the modules' functionalities
|
|
* cleaned up Makefile system and simplified binary directory
|
|
* more documentation
|
|
* various bug fixes and cleanups
|
|
|
|
Fixed Issues from the last release
|
|
==================================
|
|
#45: bit field order in the fcf may be wrong
|
|
The CC2420 FIFO expects the IEEE802.15.4 FCF field in reversed bit order.
|
|
With this release the byte order is now handled by the net_if module and
|
|
all device specific handling is done by the driver.
|
|
#82: Setting STATUS_REPLY_BLOCKED thread to STATUS_PENDING though it is not
|
|
handled yet
|
|
Pull Request #569 fixed this bug by checking for STATUS_REPLY_BLOCKED in
|
|
msg_receive().
|
|
#455: sha256 is broken on MSP430
|
|
The problem was caused
|
|
|
|
Known Issues
|
|
============
|
|
#21: Deal with stdin in bordermultiplex.c
|
|
Not all supported platforms provide a stdin in the current release.
|
|
However, the implementation of the 6LoWPAN border router won't work
|
|
without stdin.
|
|
#426: Interrupt handling on MSP430 is buggy
|
|
UART and timer handling is still unstable on MSP430 based platforms.
|
|
#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.
|
|
#498: native is segfaulting at startup
|
|
In some cases (about 5-10%) a RIOT native process crashes with a SEGFAULT
|
|
at startup.
|
|
#499: native is segfaulting on heavy network usage
|
|
Sending more than 100 packets per second causes a SEGFAULT in RIOT native.
|
|
#505: native on FreeBSD is broken
|
|
Due to different parameter handling in FreeBSD, native is currently not
|
|
working there.
|
|
|
|
For all issues and open pull requests please check the RIOT issue tracker:
|
|
https://github.com/RIOT-OS/RIOT/issues
|
|
|
|
Release 2013.08
|
|
===============
|
|
Kernel
|
|
------
|
|
- Microkernel with a powerful messaging system
|
|
- Multi-Threading with low overhead
|
|
- an energy-efficient, real-time capable scheduler
|
|
- small memory footprint
|
|
|
|
Userspace
|
|
---------
|
|
- 6LoWPAN according to RFC 4944, RFC 6282, and RFC 6775
|
|
- TCP and UDP
|
|
- RPL according to RFC 6550 and RFC 6719
|
|
- High resolution and long-term timers
|
|
- POSIX IO and BSD socket API
|
|
- Bloom filter
|
|
- SHA256
|
|
|
|
Hardware Support
|
|
----------------
|
|
- various ARM and MSP430 MCUs
|
|
* ARM7 NXP LPC2387
|
|
* TI MSP430F1612
|
|
* TI CC430F6137
|
|
* ARM7 Freescale MC13224v (preliminary)
|
|
* ARM Cortex-M4 STM32f407vgt6 (preliminary)
|
|
* ARM Cortex-M3 STM32f103rey6 (preliminary)
|
|
- radio drivers
|
|
* TI CC1100 and CC1101
|
|
* TI CC2420
|
|
* Atmel AT86RF231
|
|
- sensor drivers
|
|
* Sensirion SHT11
|
|
* Linear Technology LT4150
|
|
|
|
|
|
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)
|
|
|
|
License
|
|
=======
|
|
* All sources and binaries that have been developed at Freie Universität Berlin are
|
|
licensed under the GNU Lesser General Public License version 2 as published by the
|
|
Free Software Foundation.
|
|
* Some external sources, especially files developed by SICS are published under
|
|
a separate license.
|
|
|
|
All code files contain licensing information.
|