tag:github.com,2008:https://github.com/gustavosinbandera1/RIOT/releases Release notes from RIOT 2020-01-22T13:14:25Z tag:github.com,2008:Repository/235600603/2020.01-RC2 2020-01-22T13:14:25Z 2020.01-RC2 <p>Merge pull request <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="553508612" data-permission-text="Title is private" data-url="https://github.com/RIOT-OS/RIOT/issues/13183" data-hovercard-type="pull_request" data-hovercard-url="/RIOT-OS/RIOT/pull/13183/hovercard" href="https://github.com/RIOT-OS/RIOT/pull/13183">RIOT-OS#13183</a> from fjmolinas/backport/2020.01/fix_xtimer_…</p> fjmolinas tag:github.com,2008:Repository/235600603/2020.04-devel 2020-01-15T22:09:38Z 2020.04-devel <p>Development branch towards 2020.04 release</p> fjmolinas tag:github.com,2008:Repository/235600603/2020.01-RC1 2020-01-15T21:43:40Z 2020.01-RC1: Merge pull request #13085 from miri64/boards/feat/feather-nrf52840 <p>boards: initial import of Adafruit Feather nRF52840 Express</p> fjmolinas tag:github.com,2008:Repository/235600603/2019.10 2019-10-31T13:11:16Z RELEASE 2019.10 <h1>RIOT-2019.10 - Release Notes</h1> <p>RIOT is a multi-threading operating system which enables soft real-time<br> capabilities and comes with support for a range of devices that are typically<br> found in the Internet of Things: 8-bit and 16-bit microcontrollers as well as<br> light-weight 32-bit processors.</p> <p>RIOT is based on the following design principles: energy-efficiency, soft<br> real-time capabilities, small memory footprint, modularity, and uniform API<br> access, independent of the underlying hardware (with partial POSIX compliance).</p> <p>RIOT is developed by an international open-source community which is<br> independent of specific vendors (e.g. similarly to the Linux community) and is<br> licensed with a non-viral copyleft license (LGPLv2.1), which allows indirect<br> business models around the free open-source software platform provided by RIOT.</p> <h1>About this release:</h1> <p>The 2019.10 release includes:</p> <ul> <li>initial support for SUIT firmware updates</li> <li>USB CDC-ACM serial communication</li> <li>complete rewrite of TI CC110x radio driver</li> <li>initial support for IPv6 fragmentation</li> <li>DTLS support in the sock networking stack</li> <li>complete blockwise messaging for gcoap and nanocoap</li> <li>as always, bug fixes and documentation updates</li> </ul> <p>About 460 pull requests, composed of 950 commits, have been merged since the<br> last release, and about 60 issues have been solved. 57 people contributed with<br> code in 105 days. Approximately 2000 files have been touched with 129000<br> insertions and 25000 deletions.</p> <h1>Notations used below:</h1> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="+ means new feature/item * means modified feature/item - means removed feature/item"><pre class="notranslate"><code>+ means new feature/item * means modified feature/item - means removed feature/item </code></pre></div> <h1>New features and changes</h1> <h2>System libraries</h2> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="+ sys/arduino: Added millis() * sys/arduino: make ADC feature optional + sys/fmt: Added submodule fmt_table for printing tables + sys/log: add module for colorized logging + sys/riotboot: add initial image digest verification * riotboot: define if building the bootloader + sys/shell: add heap command + sys/shell: cancel current line on CTRL-C. * shell/sc_gnrc_ipv6_nib: list and edit authoritative border router (ABR) list + sys/suit: initial support for SUIT firmware updates * sys: add schedstatistics module to remove dependency on xtimer * can: use memarray for pkt and router allocation + sys: single interrupt handler thread for interrupts in modules with blocking functions (but likely to be removed -- see Deprecations section below)"><pre class="notranslate"><code>+ sys/arduino: Added millis() * sys/arduino: make ADC feature optional + sys/fmt: Added submodule fmt_table for printing tables + sys/log: add module for colorized logging + sys/riotboot: add initial image digest verification * riotboot: define if building the bootloader + sys/shell: add heap command + sys/shell: cancel current line on CTRL-C. * shell/sc_gnrc_ipv6_nib: list and edit authoritative border router (ABR) list + sys/suit: initial support for SUIT firmware updates * sys: add schedstatistics module to remove dependency on xtimer * can: use memarray for pkt and router allocation + sys: single interrupt handler thread for interrupts in modules with blocking functions (but likely to be removed -- see Deprecations section below) </code></pre></div> <h2>Networking</h2> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="+ sys: Add (CoAP) Link Format module + sys: add credman (D)TLS credential management module + sys: new sock submodule for DTLS + gnrc_ipv6_ext_frag: Initial import of IPv6 fragmentation and reassembly + gnrc_netif: allow for wait of minimum time between sends * gnrc_netif: add netif setter (part of refactoring to a pointer-based approach) * gnrc_sixlowpan_frag_vrb: add gnrc_sixlowpan_frag_vrb_from_route() + gnrc_sixlowpan_frag_rb: move reassembly buffer functions to their own module + gcoap: add Blockwise support * nanocoap: complete Blockwise support + nanocoap: add coap_opt_get_next() to iterate over options + nanocoap: add coap_opt_get_opaque() to retrieve option bytes * gnrc_tcp: several small improvements"><pre class="notranslate"><code>+ sys: Add (CoAP) Link Format module + sys: add credman (D)TLS credential management module + sys: new sock submodule for DTLS + gnrc_ipv6_ext_frag: Initial import of IPv6 fragmentation and reassembly + gnrc_netif: allow for wait of minimum time between sends * gnrc_netif: add netif setter (part of refactoring to a pointer-based approach) * gnrc_sixlowpan_frag_vrb: add gnrc_sixlowpan_frag_vrb_from_route() + gnrc_sixlowpan_frag_rb: move reassembly buffer functions to their own module + gcoap: add Blockwise support * nanocoap: complete Blockwise support + nanocoap: add coap_opt_get_next() to iterate over options + nanocoap: add coap_opt_get_opaque() to retrieve option bytes * gnrc_tcp: several small improvements </code></pre></div> <h2>Packages</h2> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="* ccn-lite: version bump * pkg/libcose: bump version and update crypto support * nimble: adapt to nrf51 family + nimble: add IP-over-BLE support via netif/GNRC * nimble: bump version to 1.2.0 * nimble/netif: set max conn explicitly * semtech-loramac: add uplink_counter get/set functions + Cifra: add AES crypto library * cayenne-lpp: bump version to 0.1.1 + wolfSSL pkg addition with examples"><pre class="notranslate"><code>* ccn-lite: version bump * pkg/libcose: bump version and update crypto support * nimble: adapt to nrf51 family + nimble: add IP-over-BLE support via netif/GNRC * nimble: bump version to 1.2.0 * nimble/netif: set max conn explicitly * semtech-loramac: add uplink_counter get/set functions + Cifra: add AES crypto library * cayenne-lpp: bump version to 0.1.1 + wolfSSL pkg addition with examples </code></pre></div> <h2>Boards</h2> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="+ board: add support for SAMR34-XPRO + boards/arduino-mkrwan1300: add initial support (without LoRa) * boards: Split off 128KiB version of bl*pill + boards/doc: Add a guide to find physical board pins + boards: Initial support for board HiFive1B - boards/mips-malta: remove board. + boards/nrf52: introduce shared dependencies in common/nrf52 and update boards * boards/nrf52832-mdk: enable I2C and use default configuration * board/nucleo-l031k6: Add i2c to periph_conf * board/nucleo-l432kc: Implementing I2C for board * boards: move CPU/CPU_MODEL definition to Makefile.features + boards/p-l496g-cell02: add support - boards: Remove support for the Jiminy-Mega256RFR2 * boards/sam0: refactor ADC_0 into plain ADC * boards/slwstk6000b-*: split one board for each module * boards/slwstk6000b: move CPU definition to Makefile.features + boards/stm32f723e-disco: add initial support * boards/stm32: introduce common timer configurations and use them where possible + boards/stm32l0538-disco: add initial support * pic32-wifire: add support for flashing with pic32prog"><pre class="notranslate"><code>+ board: add support for SAMR34-XPRO + boards/arduino-mkrwan1300: add initial support (without LoRa) * boards: Split off 128KiB version of bl*pill + boards/doc: Add a guide to find physical board pins + boards: Initial support for board HiFive1B - boards/mips-malta: remove board. + boards/nrf52: introduce shared dependencies in common/nrf52 and update boards * boards/nrf52832-mdk: enable I2C and use default configuration * board/nucleo-l031k6: Add i2c to periph_conf * board/nucleo-l432kc: Implementing I2C for board * boards: move CPU/CPU_MODEL definition to Makefile.features + boards/p-l496g-cell02: add support - boards: Remove support for the Jiminy-Mega256RFR2 * boards/sam0: refactor ADC_0 into plain ADC * boards/slwstk6000b-*: split one board for each module * boards/slwstk6000b: move CPU definition to Makefile.features + boards/stm32f723e-disco: add initial support * boards/stm32: introduce common timer configurations and use them where possible + boards/stm32l0538-disco: add initial support * pic32-wifire: add support for flashing with pic32prog </code></pre></div> <h2>CPU</h2> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="+ cpu/esp32: lwIP netdev * cpu/esp*: various improvements * cpu/kinetis: enable HWRNG for k64f - cpu/mips32r2_generic: remove cpu. * cpu: Moved stdio_init() prior to periph_init() for ARM targets * cpu/nrf5x: declare radio_nrfble feat for all nrfs + cpu/nrf5x: implement wdt peripheral driver + cpu/sam0_common: add hwrng driver * cpu/sam0_common/gpio: don't hard-code number of ports * cpu/sam0: update doc.txt with new MCU families * cpu/saml21: Make Low-Power SRAM available to programs + cpu/stm32_common: add watchdog for stm32 * stm32-common/spi: allow custom pin modes on spi to minimize power consumption * cpu/stm32f(2|4|7): add riotboot requirements * cpu/stm32l1: optimize power consumption * stm32l1/vendor: update vendor files to v2.3.0 * sam0: allow flashing with JLinkExe + sam0: Implement watchdog driver * cpu/samr30: update vendor files using ASF 3.35.1 + cpu/efm32: provide periph_uart_mode"><pre class="notranslate"><code>+ cpu/esp32: lwIP netdev * cpu/esp*: various improvements * cpu/kinetis: enable HWRNG for k64f - cpu/mips32r2_generic: remove cpu. * cpu: Moved stdio_init() prior to periph_init() for ARM targets * cpu/nrf5x: declare radio_nrfble feat for all nrfs + cpu/nrf5x: implement wdt peripheral driver + cpu/sam0_common: add hwrng driver * cpu/sam0_common/gpio: don't hard-code number of ports * cpu/sam0: update doc.txt with new MCU families * cpu/saml21: Make Low-Power SRAM available to programs + cpu/stm32_common: add watchdog for stm32 * stm32-common/spi: allow custom pin modes on spi to minimize power consumption * cpu/stm32f(2|4|7): add riotboot requirements * cpu/stm32l1: optimize power consumption * stm32l1/vendor: update vendor files to v2.3.0 * sam0: allow flashing with JLinkExe + sam0: Implement watchdog driver * cpu/samr30: update vendor files using ASF 3.35.1 + cpu/efm32: provide periph_uart_mode </code></pre></div> <h2>Device Drivers</h2> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="+ drivers: add mtd wrapper for periph_flashpage + drivers/cc110x: Complete rewrite from scratch, and detailed documentation * drivers/include/periph/eeprom: Changed uint8_t* to void* in API * drivers/periph/i2c: Updated i2c_release() to return void + drivers/ph_oem: support for Atlas Scientific pH OEM sensor + drivers: support for NXP PCA9685 I2C 16-channel, 12-bit PWM controller + usbus: Add CDC-ACM (Serial console) function * periph/timer: Fix return codes of timer API + can: add ncv7356 SW transceiver driver + drivers/lis2dh12: add I2C mode + drivers/periph: add doc on power management aspects * drivers/mrf24j40: add pseudomodules for MRF24J40MA/B/C/D/E"><pre class="notranslate"><code>+ drivers: add mtd wrapper for periph_flashpage + drivers/cc110x: Complete rewrite from scratch, and detailed documentation * drivers/include/periph/eeprom: Changed uint8_t* to void* in API * drivers/periph/i2c: Updated i2c_release() to return void + drivers/ph_oem: support for Atlas Scientific pH OEM sensor + drivers: support for NXP PCA9685 I2C 16-channel, 12-bit PWM controller + usbus: Add CDC-ACM (Serial console) function * periph/timer: Fix return codes of timer API + can: add ncv7356 SW transceiver driver + drivers/lis2dh12: add I2C mode + drivers/periph: add doc on power management aspects * drivers/mrf24j40: add pseudomodules for MRF24J40MA/B/C/D/E </code></pre></div> <h2>Build System / Tooling</h2> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="* dist/tools/pyterm: drop loglevel from output * make: docker: delegate bind mounts to the containers * Makefile.base: implement relative path linking without 'realpath' * Makefile.base: use thin static archives. * Makefile.include: add flash-only as dependency of term * Makefile.include: do not build HEXFILE by default anymore * Makefile.include: require make version 4. * makefiles: add support for sysfs gpio debug adapter * Makefiles: add support to generate both `.hex` and `.bin` file and add FLASHFILE variable * makefiles/docker.inc.mk: various improvements * makefiles/murdock.inc.mk: change policy to run tests by default * make: introduce $(CLEAN) + murdock: introduce 'TEST_ON_CI_BLACKLIST' * toolchain/cflags: enable dwarf compression (save 50% HDD) * edbg: verify before flash + ci: add codespell check script for tracking typos + Makefile.include: add cleanterm target and use it for tests * arduino/sketches: build sketches as a module + github: use stale-bot to mark and close PRs without activity"><pre class="notranslate"><code>* dist/tools/pyterm: drop loglevel from output * make: docker: delegate bind mounts to the containers * Makefile.base: implement relative path linking without 'realpath' * Makefile.base: use thin static archives. * Makefile.include: add flash-only as dependency of term * Makefile.include: do not build HEXFILE by default anymore * Makefile.include: require make version 4. * makefiles: add support for sysfs gpio debug adapter * Makefiles: add support to generate both `.hex` and `.bin` file and add FLASHFILE variable * makefiles/docker.inc.mk: various improvements * makefiles/murdock.inc.mk: change policy to run tests by default * make: introduce $(CLEAN) + murdock: introduce 'TEST_ON_CI_BLACKLIST' * toolchain/cflags: enable dwarf compression (save 50% HDD) * edbg: verify before flash + ci: add codespell check script for tracking typos + Makefile.include: add cleanterm target and use it for tests * arduino/sketches: build sketches as a module + github: use stale-bot to mark and close PRs without activity </code></pre></div> <h2>Testing</h2> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="+ tests: add distinct test app for nrfmin driver + tests: add Nordic SoftDevice test app * tests/gnrc_ndp: enhance coverage * tests/lua_loader: run the test in CI * tests/mcuboot: handle building in docker * tests/pkg_u8g2: run the test in CI * tests: provide test case for malformed IEEE 802.15.4 packets * tests/pthread_rwlock: run the test in CI * tests: re-enable utf-8 tests on native + tests/riotboot: add automatic test + tests/sys_crypto: add RFC3610 and NIST SP 800-38C tests * tests/test_tools: add a test for the testing tools environment * tools/compile_and_test_for_board: allow setting the flash targets * tests/gnrc_tcp: provide regression tests for fixed issues"><pre class="notranslate"><code>+ tests: add distinct test app for nrfmin driver + tests: add Nordic SoftDevice test app * tests/gnrc_ndp: enhance coverage * tests/lua_loader: run the test in CI * tests/mcuboot: handle building in docker * tests/pkg_u8g2: run the test in CI * tests: provide test case for malformed IEEE 802.15.4 packets * tests/pthread_rwlock: run the test in CI * tests: re-enable utf-8 tests on native + tests/riotboot: add automatic test + tests/sys_crypto: add RFC3610 and NIST SP 800-38C tests * tests/test_tools: add a test for the testing tools environment * tools/compile_and_test_for_board: allow setting the flash targets * tests/gnrc_tcp: provide regression tests for fixed issues </code></pre></div> <h1>API Changes</h1> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="/* no error handling possible, so no need to return a value */ - int i2c_release(i2c_t dev) + void i2c_release(i2c_t dev) /* return 0 on success, rather than 1; so like timer_init() */ int timer_set(tim_t dev, int channel, unsigned int timeout) int timer_set_absolute(tim_t dev, int channel, unsigned int value) int timer_clear(tim_t dev, int channel) /* implementations already cast the argument to uint8_t* internally, so not a significant semantic change */ - size_t eeprom_read(uint32_t pos, uint8_t *data, size_t len) + size_t eeprom_read(uint32_t pos, void *data, size_t len) - size_t eeprom_write(uint32_t pos, const uint8_t *data, size_t len) + size_t eeprom_write(uint32_t pos, const void *data, size_t len) /* now returns CIPHER_ERR_INVALID_KEY_SIZE on invalid keySize */ int aes_init(cipher_context_t *context, const uint8_t *key, uint8_t keySize) /* add setter for netif of interface header */ + void gnrc_netif_hdr_set_netif(gnrc_netif_hdr_t *hdr, const gnrc_netif_t *netif) "><pre class="notranslate"><code>/* no error handling possible, so no need to return a value */ - int i2c_release(i2c_t dev) + void i2c_release(i2c_t dev) /* return 0 on success, rather than 1; so like timer_init() */ int timer_set(tim_t dev, int channel, unsigned int timeout) int timer_set_absolute(tim_t dev, int channel, unsigned int value) int timer_clear(tim_t dev, int channel) /* implementations already cast the argument to uint8_t* internally, so not a significant semantic change */ - size_t eeprom_read(uint32_t pos, uint8_t *data, size_t len) + size_t eeprom_read(uint32_t pos, void *data, size_t len) - size_t eeprom_write(uint32_t pos, const uint8_t *data, size_t len) + size_t eeprom_write(uint32_t pos, const void *data, size_t len) /* now returns CIPHER_ERR_INVALID_KEY_SIZE on invalid keySize */ int aes_init(cipher_context_t *context, const uint8_t *key, uint8_t keySize) /* add setter for netif of interface header */ + void gnrc_netif_hdr_set_netif(gnrc_netif_hdr_t *hdr, const gnrc_netif_t *netif) </code></pre></div> <h1>Deprecations</h1> <h2>Warnings</h2> <p>net/emb6<br> net/nhdp<br> pkg/oonf_api</p> <p>As the release was finalized, rough consensus was reached on a system event<br> thread handler (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="508028396" data-permission-text="Title is private" data-url="https://github.com/RIOT-OS/RIOT/issues/12474" data-hovercard-type="pull_request" data-hovercard-url="/RIOT-OS/RIOT/pull/12474/hovercard" href="https://github.com/RIOT-OS/RIOT/pull/12474">RIOT-OS#12474</a>) that likely will remove the interrupt handler thread<br> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="387940990" data-permission-text="Title is private" data-url="https://github.com/RIOT-OS/RIOT/issues/10555" data-hovercard-type="pull_request" data-hovercard-url="/RIOT-OS/RIOT/pull/10555/hovercard" href="https://github.com/RIOT-OS/RIOT/pull/10555">RIOT-OS#10555</a>) just introduced with this release.</p> <h2>Removals</h2> <p>net/coap: remove deprecated COAP_CT_... defines</p> <h1>Known issues</h1> <h2>Networking related issues</h2> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" packet buffer address assertion or completely without error configured prefix chars address"><pre class="notranslate"><code> packet buffer address assertion or completely without error configured prefix chars address </code></pre></div> <h2>Timer related issues</h2> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" time. _xtimer_now() and irq_disable()"><pre class="notranslate"><code> time. _xtimer_now() and irq_disable() </code></pre></div> <h2>Drivers related issues</h2> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" MHz clock cycles supported"><pre class="notranslate"><code> MHz clock cycles supported </code></pre></div> <h2>Native related issues</h2> <h2>Other platforms related issues</h2> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" on host (not previous) boards CS LTO"><pre class="notranslate"><code> on host (not previous) boards CS LTO </code></pre></div> <h2>Build system related issues</h2> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" flashfile evaluation image value"><pre class="notranslate"><code> flashfile evaluation image value </code></pre></div> <h2>Other issues</h2> <p>-none- tests/pkg_fatfs: vol_idx print overflow on large negative value<br> 10<br> static_asserts in the same scope<br> everywhere</p> <h1>Fixed Issues from the last release (2019.07)</h1> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" echo -n causes Segmentation fault optimization in udp.c log_printfnoformat Makefile.include R21 types"><pre class="notranslate"><code> echo -n causes Segmentation fault optimization in udp.c log_printfnoformat Makefile.include R21 types </code></pre></div> <h1>Acknowledgements</h1> <p>We would like to thank all companies that provided us with hardware for porting<br> and testing RIOT-OS. Further thanks go to companies and institutions that<br> directly sponsored development time. And finally, big thanks to all of you<br> contributing in so many different ways to make RIOT worthwhile!</p> <h1>More information</h1> <p><a href="http://www.riot-os.org" rel="nofollow">http://www.riot-os.org</a></p> <h2>Mailing lists</h2> <ul> <li>RIOT OS kernel developers list<br> <a href="mailto:devel@riot-os.org">devel@riot-os.org</a> (<a href="http://lists.riot-os.org/mailman/listinfo/devel" rel="nofollow">http://lists.riot-os.org/mailman/listinfo/devel</a>)</li> <li>RIOT OS users list<br> <a href="mailto:users@riot-os.org">users@riot-os.org</a> (<a href="http://lists.riot-os.org/mailman/listinfo/users" rel="nofollow">http://lists.riot-os.org/mailman/listinfo/users</a>)</li> <li>RIOT commits<br> <a href="mailto:commits@riot-os.org">commits@riot-os.org</a> (<a href="http://lists.riot-os.org/mailman/listinfo/commits" rel="nofollow">http://lists.riot-os.org/mailman/listinfo/commits</a>)</li> <li>Github notifications<br> <a href="mailto:notifications@riot-os.org">notifications@riot-os.org</a> (<a href="http://lists.riot-os.org/mailman/listinfo/notifications" rel="nofollow">http://lists.riot-os.org/mailman/listinfo/notifications</a>)</li> </ul> <h2>IRC</h2> <ul> <li>Join the RIOT IRC channel at: irc.freenode.net, #riot-os</li> </ul> <h1>License</h1> <ul> <li>The code developed by the RIOT community is licensed under the GNU Lesser<br> General Public License (LGPL) version 2.1 as published by the Free Software<br> Foundation.</li> <li>Some external sources and packages are published under a separate license.</li> </ul> <p>All code files contain licensing information.</p> kb2ma tag:github.com,2008:Repository/235600603/2019.10-RC2 2019-10-21T10:59:22Z 2019.10-RC2 <p>Merge pull request <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="509788898" data-permission-text="Title is private" data-url="https://github.com/RIOT-OS/RIOT/issues/12521" data-hovercard-type="pull_request" data-hovercard-url="/RIOT-OS/RIOT/pull/12521/hovercard" href="https://github.com/RIOT-OS/RIOT/pull/12521">RIOT-OS#12521</a> from miri64/backport/2019.10/gnrc_ipv6/fix/…</p> kb2ma tag:github.com,2008:Repository/235600603/2020.01-devel 2019-10-10T21:18:25Z 2020.01-devel <p>Development branch towards 2020.01 release</p> kb2ma tag:github.com,2008:Repository/235600603/2019.10-RC1 2019-10-10T17:57:54Z 2019.10-RC1: Merge pull request #12375 from miri64/tests/enh/rs-i137 <p>tests: prepare for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="502769485" data-permission-text="Title is private" data-url="https://github.com/RIOT-OS/Release-Specs/issues/137" data-hovercard-type="issue" data-hovercard-url="/RIOT-OS/Release-Specs/issues/137/hovercard" href="https://github.com/RIOT-OS/Release-Specs/issues/137">RIOT-OS/Release-Specs#137</a></p> kb2ma tag:github.com,2008:Repository/235600603/2019.07 2019-07-25T09:36:24Z RELEASE 2019.07 <h1>RIOT-2019.07 - Release Notes</h1> <p>RIOT is a multi-threading operating system which enables soft real-time<br> capabilities and comes with support for a range of devices that are typically<br> found in the Internet of Things: 8-bit and 16-bit microcontrollers as well as<br> light-weight 32-bit processors.</p> <p>RIOT is based on the following design principles: energy-efficiency, soft<br> real-time capabilities, small memory footprint, modularity, and uniform API<br> access, independent of the underlying hardware (with partial POSIX compliance).</p> <p>RIOT is developed by an international open-source community which is<br> independent of specific vendors (e.g. similarly to the Linux community) and is<br> licensed with a non-viral copyleft license (LGPLv2.1), which allows indirect<br> business models around the free open-source software platform provided by RIOT.</p> <h1>About this release:</h1> <p>The 2019.07 release includes a number of new features including many new<br> boards and cpu, riotboot added to many new and old boards, USB is now available,<br> BLE improvements, Ethernet on stm32 platforms, as well as many bug fixes and<br> documentation updates. Testing has also improved with both On-Target Testing<br> increasing and now Hardware Assisted Automated Tests being run.</p> <p>About 300 pull requests with about 659 commits have been merged since the last<br> release and about 50 issues have been solved. 26 people contributed with code<br> in 106 days. Approximately 1377 files have been touched with 181993 insertions<br> and 19668 deletions.</p> <h1>Notations used below:</h1> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="+ means new feature/item * means modified feature/item - means removed feature/item"><pre class="notranslate"><code>+ means new feature/item * means modified feature/item - means removed feature/item </code></pre></div> <h1>New features and changes</h1> <h2>System libraries</h2> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="+ Add OCB encryption mode + sys/shell: add loramac shell command * Fletcher16: extend with multi-part functions + USBUS: Initial work towards an USB stack + usbus: Initial simple auto init structure * sys: make uart_stdio RX optional + sys/event: add event_wait_until() + sys/bluetil: add bluetil_addr_from_str() + usbus: Add CDC-ECM (Ethernet Control Model) function * usbus: simplify adding entry to list * sys/stdio_ethos: replace USE_ETHOS_FOR_STDIO by stdio_ethos pseudomodule"><pre class="notranslate"><code>+ Add OCB encryption mode + sys/shell: add loramac shell command * Fletcher16: extend with multi-part functions + USBUS: Initial work towards an USB stack + usbus: Initial simple auto init structure * sys: make uart_stdio RX optional + sys/event: add event_wait_until() + sys/bluetil: add bluetil_addr_from_str() + usbus: Add CDC-ECM (Ethernet Control Model) function * usbus: simplify adding entry to list * sys/stdio_ethos: replace USE_ETHOS_FOR_STDIO by stdio_ethos pseudomodule </code></pre></div> <h2>Networking</h2> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="* gnrc_ipv6_nib: add address from netif to address validation timer + netdev_ieee802154: add txpower and page + net/lorawan/hdr: add lorawan header helpers + ble/nimble: add support for build-in IPSS service * pkg/semtech-loramac: rework interaction with the MAC * pkg/semtech-loramac: provide basic persistence for MAC state * RPL: API update suggestions + ipv6_ext: add fragmentation extension definitions * net/sock_util: Accept NULL pointers in urlsplit + sys/net: add netopt options for lorawan * gnrc_tftp: Fix out-of-bounds memory access when comparing modes - gnrc_pktbuf: remove gnrc_pktbuf_duplicate_upto - gnrc_ipv6: remove obsolete and harmful reception code * gnrc_tftp: set port on server init + ble/softdevice: add ble_nordic_softdevice feature * net/mqttsn: fix client ID length to comply to the standard + gnrc_tftp: Add minimum packet length check"><pre class="notranslate"><code>* gnrc_ipv6_nib: add address from netif to address validation timer + netdev_ieee802154: add txpower and page + net/lorawan/hdr: add lorawan header helpers + ble/nimble: add support for build-in IPSS service * pkg/semtech-loramac: rework interaction with the MAC * pkg/semtech-loramac: provide basic persistence for MAC state * RPL: API update suggestions + ipv6_ext: add fragmentation extension definitions * net/sock_util: Accept NULL pointers in urlsplit + sys/net: add netopt options for lorawan * gnrc_tftp: Fix out-of-bounds memory access when comparing modes - gnrc_pktbuf: remove gnrc_pktbuf_duplicate_upto - gnrc_ipv6: remove obsolete and harmful reception code * gnrc_tftp: set port on server init + ble/softdevice: add ble_nordic_softdevice feature * net/mqttsn: fix client ID length to comply to the standard + gnrc_tftp: Add minimum packet length check </code></pre></div> <h2>Packages</h2> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="* pkg/monocypher: bump version to 2.0.5 * ble/nimble: bump version to 9d4bda2 * openthread: update to release 20180926 * minmea: bump version to current master + nanocbor: Initial support for the nanocbor package * pkg/lua: Make the module searchers conform to the API"><pre class="notranslate"><code>* pkg/monocypher: bump version to 2.0.5 * ble/nimble: bump version to 9d4bda2 * openthread: update to release 20180926 * minmea: bump version to current master + nanocbor: Initial support for the nanocbor package * pkg/lua: Make the module searchers conform to the API </code></pre></div> <h2>Boards</h2> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="+ boards/stm32l0538-disco: add initial support + boards/nucleo-l4r5zi: initial basic support + boards/particle-{xenon,argon,boron}: add initial support * boards/kw41z: add common configuration and use it with existing kw41z boards + added SPI support for Nucleo-F767ZI + boards: Add support for the Arduino-Leonardo * boards/nucleof7*: SPI and refactoring + boards/stm32: introduce and use new common rtt configuration header + boards/stm32l0/l4: add rtt feature + boards: add support for i-nucleo-lrwan1 (Arduino-like shield) + boards/nrf52840-mdk: added I2C config + boards/lsn50: add support for Dragino LSN50 LoRa Sensor Node * boards/stm32l0: introduce common clock configuration and apply it to related boards * boards/b-l072z-lrwan1: use STM32 common i2C configuration + Add usbdev feature to Sodaq boards + boards/pba-d-01-kw2x: add riotboot support + sensebox: add usbdev feature + boards/stm32f429i-disc1: add i2c configuration + boards/nucleo-l476rg: add riotboot + boards/same54-xpro: add riotboot support + boards: Add FLASHFILE support + boards/nucleo-l476rg: Add DMA support + nrf52: Add suspend/resume detection to usbdev + nrf5x: Add UART modecfg feature implementation + boards/stm32f3: add support for riotboot feature + boards/lobaro-lorabox: add sx1272 radio driver dependency to netdev_default + boards/stm32l4: add riotboot support + boards/microbit: add QEMU emulation + boards/frdm-kw41z-k64f: add riotboot * boards/sltb001a: reset before flashing"><pre class="notranslate"><code>+ boards/stm32l0538-disco: add initial support + boards/nucleo-l4r5zi: initial basic support + boards/particle-{xenon,argon,boron}: add initial support * boards/kw41z: add common configuration and use it with existing kw41z boards + added SPI support for Nucleo-F767ZI + boards: Add support for the Arduino-Leonardo * boards/nucleof7*: SPI and refactoring + boards/stm32: introduce and use new common rtt configuration header + boards/stm32l0/l4: add rtt feature + boards: add support for i-nucleo-lrwan1 (Arduino-like shield) + boards/nrf52840-mdk: added I2C config + boards/lsn50: add support for Dragino LSN50 LoRa Sensor Node * boards/stm32l0: introduce common clock configuration and apply it to related boards * boards/b-l072z-lrwan1: use STM32 common i2C configuration + Add usbdev feature to Sodaq boards + boards/pba-d-01-kw2x: add riotboot support + sensebox: add usbdev feature + boards/stm32f429i-disc1: add i2c configuration + boards/nucleo-l476rg: add riotboot + boards/same54-xpro: add riotboot support + boards: Add FLASHFILE support + boards/nucleo-l476rg: Add DMA support + nrf52: Add suspend/resume detection to usbdev + nrf5x: Add UART modecfg feature implementation + boards/stm32f3: add support for riotboot feature + boards/lobaro-lorabox: add sx1272 radio driver dependency to netdev_default + boards/stm32l4: add riotboot support + boards/microbit: add QEMU emulation + boards/frdm-kw41z-k64f: add riotboot * boards/sltb001a: reset before flashing </code></pre></div> <h2>CPU</h2> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="* cpu/esp8266: added/changed helper functions + cpu/cc2538: Add periph_uart_mode implementation * saml1x: enable pm_layered by default + cpu/cc26x0: implement uart_mode() + cpu/sam0: add support for SAMD5x/SAME5x + sam0_common: add uart modecfg support + cpu/stm32f3: add support for flashpage and flashpage_raw * cpu/stm32l{1,4}: refactor flashpage numof macros * cpu/stm32: optimize stop mode for stm32f* * cpu/nrf5x_common: map hwrng to SoC library if SoftDevice is present"><pre class="notranslate"><code>* cpu/esp8266: added/changed helper functions + cpu/cc2538: Add periph_uart_mode implementation * saml1x: enable pm_layered by default + cpu/cc26x0: implement uart_mode() + cpu/sam0: add support for SAMD5x/SAME5x + sam0_common: add uart modecfg support + cpu/stm32f3: add support for flashpage and flashpage_raw * cpu/stm32l{1,4}: refactor flashpage numof macros * cpu/stm32: optimize stop mode for stm32f* * cpu/nrf5x_common: map hwrng to SoC library if SoftDevice is present </code></pre></div> <h2>Device Drivers</h2> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="+ devfs: add /dev/urandom and /dev/hwrng * drivers/mrf24j40 : support of NETOPT_LAST_ED_LEVEL + drivers/mrf24j40: add external PA/LNA control on MC/MD/ME devices * drivers/at86rf2xx: enable NETOPT_RX_END_IRQ and fix RSSI values * drivers/adt7310: Replace binary literal with hex literal + drivers/ds75lx: add basic driver for temperature sensor + drivers/include: add header definition for wdt + drivers/at: Add 'at_recv_bytes_until_string' function + sx127x: add several NETOPT for GNRC LoRaWAN * drivers/sx127x: fix device reset + drivers: stm32 eth peripheral driver + drivers/periph/gpio_util: add gpio_util_shiftin()"><pre class="notranslate"><code>+ devfs: add /dev/urandom and /dev/hwrng * drivers/mrf24j40 : support of NETOPT_LAST_ED_LEVEL + drivers/mrf24j40: add external PA/LNA control on MC/MD/ME devices * drivers/at86rf2xx: enable NETOPT_RX_END_IRQ and fix RSSI values * drivers/adt7310: Replace binary literal with hex literal + drivers/ds75lx: add basic driver for temperature sensor + drivers/include: add header definition for wdt + drivers/at: Add 'at_recv_bytes_until_string' function + sx127x: add several NETOPT for GNRC LoRaWAN * drivers/sx127x: fix device reset + drivers: stm32 eth peripheral driver + drivers/periph/gpio_util: add gpio_util_shiftin() </code></pre></div> <h2>Build System / Tooling</h2> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="* makefiles/docker: export BOARDS + makefiles: add bootloaders to the list of applications * Makefile.include: allow overwriting flash-recipe * dist/tools/buildsystem_sanity_check: add an export variable check * sys/Makefile.include: include riotboot headers when FEATURES_REQUIRED=riotboot + make: add print-versions helper target + make: add LOG_LEVEL to overridable variables * riotboot/Makefile.include: increase RIOTBOOT_HDR_LEN for ARMv7*-M * dist/tools/build_system_sanity_check: BUG fix errors being ignored * boards/common: use Makefile.features + make: add termdeps target * periph_common: add as dependency to periph drivers + nrf52: Add USB peripheral driver + makefiles/boards.inc.mk: list boards variables + makefiles/app_dirs.inc.mk: target to list supported applications/boards + Makefile.features: add a common file for the features parsing + Makefile.features: add declarative FEATURES_ variables definition + makefiles/utils/variables: add functions to help managing variables * Migrate all boards to define FLASHFILE * tools/openocd.sh: try to probe the board for real flash address"><pre class="notranslate"><code>* makefiles/docker: export BOARDS + makefiles: add bootloaders to the list of applications * Makefile.include: allow overwriting flash-recipe * dist/tools/buildsystem_sanity_check: add an export variable check * sys/Makefile.include: include riotboot headers when FEATURES_REQUIRED=riotboot + make: add print-versions helper target + make: add LOG_LEVEL to overridable variables * riotboot/Makefile.include: increase RIOTBOOT_HDR_LEN for ARMv7*-M * dist/tools/build_system_sanity_check: BUG fix errors being ignored * boards/common: use Makefile.features + make: add termdeps target * periph_common: add as dependency to periph drivers + nrf52: Add USB peripheral driver + makefiles/boards.inc.mk: list boards variables + makefiles/app_dirs.inc.mk: target to list supported applications/boards + Makefile.features: add a common file for the features parsing + Makefile.features: add declarative FEATURES_ variables definition + makefiles/utils/variables: add functions to help managing variables * Migrate all boards to define FLASHFILE * tools/openocd.sh: try to probe the board for real flash address </code></pre></div> <h2>Testing</h2> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="* tests/periph_flashpage: add RWWEE automatic test if hw supports it * tests/pthread_tls: allow negative key values * tests/gnrc_udp: include `gnrc_pktbuf_cmd` per default + tests/periph_hwrng: add automated python test * tests/periph_timer: include kw41z boards in low-power timer boards * tests/pkg_c25519: increase timeout for arduino-mega2560 + tests/xtimer_usleep: fail with negative offsets + unittests: add tsrb tests + tests/stdin: add non regression test for stdin module + tests/xtimer_mutex_lock_timeout: add simple case test + Add NimBLE heart rate sensor example (GATT notifications) * tests/driver_rn2xx3: fix invalid element index for txmode * tests/pkg_semtech-loramac: don't init the mac from main * tests/devfs: move tests-devfs out of unittests + examples/lorawan: fix semtech_loramac_send TX ret code * tests/unittests: split remaining packages tests to different test directory"><pre class="notranslate"><code>* tests/periph_flashpage: add RWWEE automatic test if hw supports it * tests/pthread_tls: allow negative key values * tests/gnrc_udp: include `gnrc_pktbuf_cmd` per default + tests/periph_hwrng: add automated python test * tests/periph_timer: include kw41z boards in low-power timer boards * tests/pkg_c25519: increase timeout for arduino-mega2560 + tests/xtimer_usleep: fail with negative offsets + unittests: add tsrb tests + tests/stdin: add non regression test for stdin module + tests/xtimer_mutex_lock_timeout: add simple case test + Add NimBLE heart rate sensor example (GATT notifications) * tests/driver_rn2xx3: fix invalid element index for txmode * tests/pkg_semtech-loramac: don't init the mac from main * tests/devfs: move tests-devfs out of unittests + examples/lorawan: fix semtech_loramac_send TX ret code * tests/unittests: split remaining packages tests to different test directory </code></pre></div> <h1>API Changes</h1> <ul> <li>uart_stdio RX is now optional</li> <li>CPU_MODEL declared in boards/Makefile.features</li> </ul> <div class="highlight highlight-source-c notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="- void isrpipe_init(isrpipe_t *isrpipe, char *buf, size_t bufsize); + void isrpipe_init(isrpipe_t *isrpipe, uint8_t *buf, size_t bufsize); - int isrpipe_write_one(isrpipe_t *isrpipe, char c); + int isrpipe_write_one(isrpipe_t *isrpipe, uint8_t c); - int isrpipe_read(isrpipe_t *isrpipe, char *buf, size_t count); + int isrpipe_read(isrpipe_t *isrpipe, uint8_t *buf, size_t count); - int isrpipe_read_timeout(isrpipe_t *isrpipe, char *buf, size_t count,\ int32_t timeout); + int isrpipe_read_timeout(isrpipe_t *isrpipe, uint8_t *buf, size_t count,\ uint32_t timeout); - int isrpipe_read_all_timeout(isrpipe_t *isrpipe, char *buf, size_t count,\ uint32_t timeout); + int isrpipe_read_all_timeout(isrpipe_t *isrpipe, uint8_t *buf, size_t count,\ uint32_t timeout); typedef struct tsrb { ... - char *buf; /**&lt; Buffer to operate on. */ + uint8_t *buf; /**&lt; Buffer to operate on. */ ... } tsrb_t - int tsrb_get(tsrb_t *rb, char *dst, size_t n); + int tsrb_get(tsrb_t *rb, uint8_t *dst, size_t n); - int tsrb_add_one(tsrb_t *rb, char c); + int tsrb_add_one(tsrb_t *rb, uint8_t c); - int tsrb_add(tsrb_t *rb, const char *src, size_t n); + int tsrb_add(tsrb_t *rb, const uint8_t *src, size_t n); typedef struct { ... - uint16_t (*calc_rank)(gnrc_rpl_parent_t *parent, uint16_t base_rank); - gnrc_rpl_parent_t *(*which_parent)(gnrc_rpl_parent_t *, gnrc_rpl_parent_t *); + uint16_t (*calc_rank)(gnrc_rpl_dodag_t *dodag, uint16_t base_rank); - void (*reset)(gnrc_rpl_dodag_t *); /**&lt; resets the OF */ + void (*reset)(gnrc_rpl_dodag_t *dodag); ... - void (*init)(void); /**&lt; OF specific init function */ + void (*init)(gnrc_rpl_dodag_t *dodag); } gnrc_rpl_of_t; - thread_state_t + thread_status_t - void sched_set_status(thread_t *process, thread_state_t status); + void sched_set_status(thread_t *process, thread_status_t status); struct _thread { ... - thread_state_t status; + thread_status_t status; ... } - bool mrf24j40_cca(mrf24j40_t *dev); + bool mrf24j40_cca(mrf24j40_t *dev, int8_t *rssi);"><pre><span class="pl-c1">-</span> <span class="pl-s1">void</span> <span class="pl-en">isrpipe_init</span>(<span class="pl-s1">isrpipe_t</span> <span class="pl-c1">*</span><span class="pl-s1">isrpipe</span>, <span class="pl-s1">char</span> <span class="pl-c1">*</span><span class="pl-s1">buf</span>, <span class="pl-s1">size_t</span> <span class="pl-s1">bufsize</span>); <span class="pl-c1">+</span> <span class="pl-s1">void</span> <span class="pl-en">isrpipe_init</span>(<span class="pl-s1">isrpipe_t</span> <span class="pl-c1">*</span><span class="pl-s1">isrpipe</span>, <span class="pl-s1">uint8_t</span> <span class="pl-c1">*</span><span class="pl-s1">buf</span>, <span class="pl-s1">size_t</span> <span class="pl-s1">bufsize</span>); <span class="pl-c1">-</span> <span class="pl-s1">int</span> <span class="pl-en">isrpipe_write_one</span>(<span class="pl-s1">isrpipe_t</span> <span class="pl-c1">*</span><span class="pl-s1">isrpipe</span>, <span class="pl-s1">char</span> <span class="pl-s1">c</span>); <span class="pl-c1">+</span> <span class="pl-s1">int</span> <span class="pl-en">isrpipe_write_one</span>(<span class="pl-s1">isrpipe_t</span> <span class="pl-c1">*</span><span class="pl-s1">isrpipe</span>, <span class="pl-s1">uint8_t</span> <span class="pl-s1">c</span>); <span class="pl-c1">-</span> <span class="pl-s1">int</span> <span class="pl-en">isrpipe_read</span>(<span class="pl-s1">isrpipe_t</span> <span class="pl-c1">*</span><span class="pl-s1">isrpipe</span>, <span class="pl-s1">char</span> <span class="pl-c1">*</span><span class="pl-s1">buf</span>, <span class="pl-s1">size_t</span> <span class="pl-s1">count</span>); <span class="pl-c1">+</span> <span class="pl-s1">int</span> <span class="pl-en">isrpipe_read</span>(<span class="pl-s1">isrpipe_t</span> <span class="pl-c1">*</span><span class="pl-s1">isrpipe</span>, <span class="pl-s1">uint8_t</span> <span class="pl-c1">*</span><span class="pl-s1">buf</span>, <span class="pl-s1">size_t</span> <span class="pl-s1">count</span>); <span class="pl-c1">-</span> <span class="pl-s1">int</span> <span class="pl-en">isrpipe_read_timeout</span>(<span class="pl-s1">isrpipe_t</span> <span class="pl-c1">*</span><span class="pl-s1">isrpipe</span>, <span class="pl-s1">char</span> <span class="pl-c1">*</span><span class="pl-s1">buf</span>, <span class="pl-s1">size_t</span> <span class="pl-s1">count</span>,\ <span class="pl-s1">int32_t</span> <span class="pl-s1">timeout</span>); <span class="pl-c1">+</span> <span class="pl-s1">int</span> <span class="pl-en">isrpipe_read_timeout</span>(<span class="pl-s1">isrpipe_t</span> <span class="pl-c1">*</span><span class="pl-s1">isrpipe</span>, <span class="pl-s1">uint8_t</span> <span class="pl-c1">*</span><span class="pl-s1">buf</span>, <span class="pl-s1">size_t</span> <span class="pl-s1">count</span>,\ <span class="pl-s1">uint32_t</span> <span class="pl-s1">timeout</span>); <span class="pl-c1">-</span> <span class="pl-s1">int</span> <span class="pl-en">isrpipe_read_all_timeout</span>(<span class="pl-s1">isrpipe_t</span> <span class="pl-c1">*</span><span class="pl-s1">isrpipe</span>, <span class="pl-s1">char</span> <span class="pl-c1">*</span><span class="pl-s1">buf</span>, <span class="pl-s1">size_t</span> <span class="pl-s1">count</span>,\ <span class="pl-s1">uint32_t</span> <span class="pl-s1">timeout</span>); <span class="pl-c1">+</span> <span class="pl-s1">int</span> <span class="pl-en">isrpipe_read_all_timeout</span>(<span class="pl-s1">isrpipe_t</span> <span class="pl-c1">*</span><span class="pl-s1">isrpipe</span>, <span class="pl-s1">uint8_t</span> <span class="pl-c1">*</span><span class="pl-s1">buf</span>, <span class="pl-s1">size_t</span> <span class="pl-s1">count</span>,\ <span class="pl-s1">uint32_t</span> <span class="pl-s1">timeout</span>); <span class="pl-k">typedef</span> <span class="pl-k">struct</span> <span class="pl-smi">tsrb</span> { ... <span class="pl-c1">-</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-c1">buf</span>; <span class="pl-c">/**&lt; Buffer to operate on. */</span> <span class="pl-c1">+</span> <span class="pl-smi">uint8_t</span> <span class="pl-c1">*</span><span class="pl-c1">buf</span>; <span class="pl-c">/**&lt; Buffer to operate on. */</span> ... } <span class="pl-smi">tsrb_t</span> <span class="pl-c1">-</span> <span class="pl-s1">int</span> <span class="pl-en">tsrb_get</span>(<span class="pl-s1">tsrb_t</span> <span class="pl-c1">*</span><span class="pl-s1">rb</span>, <span class="pl-s1">char</span> <span class="pl-c1">*</span><span class="pl-s1">dst</span>, <span class="pl-s1">size_t</span> <span class="pl-s1">n</span>); <span class="pl-c1">+</span> <span class="pl-s1">int</span> <span class="pl-en">tsrb_get</span>(<span class="pl-s1">tsrb_t</span> <span class="pl-c1">*</span><span class="pl-s1">rb</span>, <span class="pl-s1">uint8_t</span> <span class="pl-c1">*</span><span class="pl-s1">dst</span>, <span class="pl-s1">size_t</span> <span class="pl-s1">n</span>); <span class="pl-c1">-</span> <span class="pl-s1">int</span> <span class="pl-en">tsrb_add_one</span>(<span class="pl-s1">tsrb_t</span> <span class="pl-c1">*</span><span class="pl-s1">rb</span>, <span class="pl-s1">char</span> <span class="pl-s1">c</span>); <span class="pl-c1">+</span> <span class="pl-s1">int</span> <span class="pl-en">tsrb_add_one</span>(<span class="pl-s1">tsrb_t</span> <span class="pl-c1">*</span><span class="pl-s1">rb</span>, <span class="pl-s1">uint8_t</span> <span class="pl-s1">c</span>); <span class="pl-c1">-</span> <span class="pl-s1">int</span> <span class="pl-en">tsrb_add</span>(<span class="pl-s1">tsrb_t</span> <span class="pl-c1">*</span><span class="pl-s1">rb</span>, <span class="pl-s1">const</span> <span class="pl-s1">char</span> <span class="pl-c1">*</span><span class="pl-s1">src</span>, <span class="pl-s1">size_t</span> <span class="pl-s1">n</span>); <span class="pl-c1">+</span> <span class="pl-s1">int</span> <span class="pl-en">tsrb_add</span>(<span class="pl-s1">tsrb_t</span> <span class="pl-c1">*</span><span class="pl-s1">rb</span>, <span class="pl-s1">const</span> <span class="pl-s1">uint8_t</span> <span class="pl-c1">*</span><span class="pl-s1">src</span>, <span class="pl-s1">size_t</span> <span class="pl-s1">n</span>); <span class="pl-k">typedef</span> <span class="pl-k">struct</span> { ... <span class="pl-c1">-</span> <span class="pl-smi">uint16_t</span> (<span class="pl-c1">*</span><span class="pl-c1">calc_rank</span>)(<span class="pl-smi">gnrc_rpl_parent_t</span> <span class="pl-c1">*</span><span class="pl-s1">parent</span>, <span class="pl-smi">uint16_t</span> <span class="pl-s1">base_rank</span>); <span class="pl-c1">-</span> <span class="pl-smi">gnrc_rpl_parent_t</span> <span class="pl-c1">*</span>(<span class="pl-c1">*</span><span class="pl-c1">which_parent</span>)(<span class="pl-smi">gnrc_rpl_parent_t</span> <span class="pl-c1">*</span>, <span class="pl-smi">gnrc_rpl_parent_t</span> <span class="pl-c1">*</span>); <span class="pl-c1">+</span> <span class="pl-smi">uint16_t</span> (<span class="pl-c1">*</span><span class="pl-c1">calc_rank</span>)(<span class="pl-smi">gnrc_rpl_dodag_t</span> <span class="pl-c1">*</span><span class="pl-s1">dodag</span>, <span class="pl-smi">uint16_t</span> <span class="pl-s1">base_rank</span>); <span class="pl-c1">-</span> <span class="pl-smi">void</span> (<span class="pl-c1">*</span><span class="pl-c1">reset</span>)(<span class="pl-smi">gnrc_rpl_dodag_t</span> <span class="pl-c1">*</span>); <span class="pl-c">/**&lt; resets the OF */</span> <span class="pl-c1">+</span> <span class="pl-smi">void</span> (<span class="pl-c1">*</span><span class="pl-c1">reset</span>)(<span class="pl-smi">gnrc_rpl_dodag_t</span> <span class="pl-c1">*</span><span class="pl-s1">dodag</span>); ... <span class="pl-c1">-</span> <span class="pl-smi">void</span> (<span class="pl-c1">*</span><span class="pl-c1">init</span>)(<span class="pl-smi">void</span>); <span class="pl-c">/**&lt; OF specific init function */</span> <span class="pl-c1">+</span> <span class="pl-smi">void</span> (<span class="pl-c1">*</span><span class="pl-c1">init</span>)(<span class="pl-smi">gnrc_rpl_dodag_t</span> <span class="pl-c1">*</span><span class="pl-s1">dodag</span>); } <span class="pl-smi">gnrc_rpl_of_t</span>; <span class="pl-c1">-</span> <span class="pl-s1">thread_state_t</span> <span class="pl-c1">+</span> <span class="pl-s1">thread_status_t</span> <span class="pl-c1">-</span> <span class="pl-s1">void</span> <span class="pl-en">sched_set_status</span>(<span class="pl-s1">thread_t</span> <span class="pl-c1">*</span><span class="pl-s1">process</span>, <span class="pl-s1">thread_state_t</span> <span class="pl-s1">status</span>); <span class="pl-c1">+</span> <span class="pl-s1">void</span> <span class="pl-en">sched_set_status</span>(<span class="pl-s1">thread_t</span> <span class="pl-c1">*</span><span class="pl-s1">process</span>, <span class="pl-s1">thread_status_t</span> <span class="pl-s1">status</span>)<span class="pl-c1"></span>; <span class="pl-k">struct</span> <span class="pl-smi">_thread</span> { ... <span class="pl-c1">-</span> <span class="pl-smi">thread_state_t</span> <span class="pl-c1">status</span>; <span class="pl-c1">+</span> <span class="pl-smi">thread_status_t</span> <span class="pl-c1">status</span>; ... } <span class="pl-c1">-</span> <span class="pl-s1">bool</span> <span class="pl-en">mrf24j40_cca</span>(<span class="pl-smi">mrf24j40_t</span> <span class="pl-c1">*</span><span class="pl-s1">dev</span>); <span class="pl-c1">+</span> <span class="pl-s1">bool</span> <span class="pl-en">mrf24j40_cca</span>(<span class="pl-s1">mrf24j40_t</span> <span class="pl-c1">*</span><span class="pl-s1">dev</span>, <span class="pl-s1">int8_t</span> <span class="pl-c1">*</span><span class="pl-s1">rssi</span>);</pre></div> <h1>Deprecations</h1> <h2>Warnings</h2> <p><code>gnrc_tftp</code> module<br> <code>ubjson</code> module</p> <h2>Removals</h2> <p><code>gcoap_req_send()</code> replaced with <code>gcoap_req_send2()-&gt;gcoap_req_send2()</code></p> <h1>Known issues</h1> <h2>Networking related issues</h2> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" address assertion or completely without error configured prefix chars address"><pre class="notranslate"><code> address assertion or completely without error configured prefix chars address </code></pre></div> <h2>Timer related issues</h2> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" time. _xtimer_now() and irq_disable()"><pre class="notranslate"><code> time. _xtimer_now() and irq_disable() </code></pre></div> <h2>Drivers related issues</h2> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" clock cycles R21 supported"><pre class="notranslate"><code> clock cycles R21 supported </code></pre></div> <h2>Native related issues</h2> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" log_printfnoformat"><pre class="notranslate"><code> log_printfnoformat </code></pre></div> <h2>Other platforms related issues</h2> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" (not previous) boards CS LTO types"><pre class="notranslate"><code> (not previous) boards CS LTO types </code></pre></div> <h2>Build system related issues</h2> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" bionic`. evaluation image Makefile.include value"><pre class="notranslate"><code> bionic`. evaluation image Makefile.include value </code></pre></div> <ul> <li>buildtest with BUILD_IN_DOCKER hides host toolchain errors</li> </ul> <h2>Other issues</h2> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" optimization in udp.c 10 static_asserts in the same scope everywhere"><pre class="notranslate"><code> optimization in udp.c 10 static_asserts in the same scope everywhere </code></pre></div> <h1>Fixed Issues from the last release (2019.04)</h1> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" and no error"><pre class="notranslate"><code> and no error </code></pre></div> <h1>Acknowledgements</h1> <p>We would like to thank all companies that provided us with hardware for porting<br> and testing RIOT-OS. Further thanks go to companies and institutions that<br> directly sponsored development time. And finally, big thanks to all of you<br> contributing in so many different ways to make RIOT worthwhile!<br> A special thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/fjmolinas/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/fjmolinas">@fjmolinas</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/leandrolanzieri/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/leandrolanzieri">@leandrolanzieri</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/cladmi/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/cladmi">@cladmi</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jia200x/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jia200x">@jia200x</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/miri64/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/miri64">@miri64</a><br> for helping run the release tests</p> <h1>More information</h1> <p><a href="http://www.riot-os.org" rel="nofollow">http://www.riot-os.org</a></p> <h2>Mailing lists</h2> <ul> <li>RIOT OS kernel developers list<br> <a href="mailto:devel@riot-os.org">devel@riot-os.org</a> (<a href="http://lists.riot-os.org/mailman/listinfo/devel" rel="nofollow">http://lists.riot-os.org/mailman/listinfo/devel</a>)</li> <li>RIOT OS users list<br> <a href="mailto:users@riot-os.org">users@riot-os.org</a> (<a href="http://lists.riot-os.org/mailman/listinfo/users" rel="nofollow">http://lists.riot-os.org/mailman/listinfo/users</a>)</li> <li>RIOT commits<br> <a href="mailto:commits@riot-os.org">commits@riot-os.org</a> (<a href="http://lists.riot-os.org/mailman/listinfo/commits" rel="nofollow">http://lists.riot-os.org/mailman/listinfo/commits</a>)</li> <li>Github notifications<br> <a href="mailto:notifications@riot-os.org">notifications@riot-os.org</a> (<a href="http://lists.riot-os.org/mailman/listinfo/notifications" rel="nofollow">http://lists.riot-os.org/mailman/listinfo/notifications</a>)</li> </ul> <h2>IRC</h2> <ul> <li>Join the RIOT IRC channel at: irc.freenode.net, #riot-os</li> </ul> <h1>License</h1> <ul> <li>The code developed by the RIOT community is licensed under the GNU Lesser<br> General Public License (LGPL) version 2.1 as published by the Free Software<br> Foundation.</li> <li>Some external sources and packages are published under a separate license.</li> </ul> <p>All code files contain licensing information.</p> MrKevinWeiss tag:github.com,2008:Repository/235600603/2019.07-RC3 2019-07-19T13:06:00Z 2019.07-RC3 <p>Merge pull request <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="470300372" data-permission-text="Title is private" data-url="https://github.com/RIOT-OS/RIOT/issues/11873" data-hovercard-type="pull_request" data-hovercard-url="/RIOT-OS/RIOT/pull/11873/hovercard" href="https://github.com/RIOT-OS/RIOT/pull/11873">RIOT-OS#11873</a> from fjmolinas/backport/2019.07/pr_lorawan_…</p> leandrolanzieri tag:github.com,2008:Repository/235600603/2019.07-RC2 2019-07-17T17:51:30Z 2019.07-RC2 <p>Merge pull request <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="469277685" data-permission-text="Title is private" data-url="https://github.com/RIOT-OS/RIOT/issues/11858" data-hovercard-type="pull_request" data-hovercard-url="/RIOT-OS/RIOT/pull/11858/hovercard" href="https://github.com/RIOT-OS/RIOT/pull/11858">RIOT-OS#11858</a> from cladmi/backport/2019.07/pr/tests/unitt…</p> miri64