1 Star 0 Fork 14

墨森 / riot-os

forked from Gitee 极速下载 / riot-os 
标签名
描述
提交信息
操作
2020-01-22 21:14

Development branch towards 2020.04 release

2020-01-16 05:43
2020-01-16 05:43

RELEASE 2019.10

RIOT-2019.10 - Release Notes

RIOT is a multi-threading operating system which enables soft real-time
capabilities and comes with support for a range of devices that are typically
found in the Internet of Things: 8-bit and 16-bit microcontrollers as well as
light-weight 32-bit processors.

RIOT is based on the following design principles: energy-efficiency, soft
real-time capabilities, small memory footprint, modularity, and uniform API
access, independent of the underlying hardware (with 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) and is
licensed with a non-viral copyleft license (LGPLv2.1), which allows indirect
business models around the free open-source software platform provided by RIOT.

About this release:

The 2019.10 release includes:

  • initial support for SUIT firmware updates
  • USB CDC-ACM serial communication
  • complete rewrite of TI CC110x radio driver
  • initial support for IPv6 fragmentation
  • DTLS support in the sock networking stack
  • complete blockwise messaging for gcoap and nanocoap
  • as always, bug fixes and documentation updates

About 460 pull requests, composed of 950 commits, have been merged since the
last release, and about 60 issues have been solved. 57 people contributed with
code in 105 days. Approximately 2000 files have been touched with 129000
insertions and 25000 deletions.

Notations used below:

+ means new feature/item
* means modified feature/item
- means removed feature/item

New features and changes

System libraries

+ 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)

Networking

+ 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

Packages

* 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

Boards

+ 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

CPU

+ 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

Device Drivers

+ 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

Build System / Tooling

* 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

Testing

+ 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

API Changes

/* 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)

Deprecations

Warnings

net/emb6
net/nhdp
pkg/oonf_api

As the release was finalized, rough consensus was reached on a system event
thread handler (#12474) that likely will remove the interrupt handler thread
(#10555) just introduced with this release.

Removals

net/coap: remove deprecated COAP_CT_... defines

Known issues

Networking related issues

    packet buffer
    address
   assertion or completely without error
   configured prefix
   chars
   address

Timer related issues

   time.
   _xtimer_now()  and irq_disable()

Drivers related issues

    MHz
    clock cycles
   supported

Native related issues

Other platforms related issues

    on host
    (not previous)
   boards
   CS
   LTO

Build system related issues

    flashfile
    evaluation
   image
   value

Other issues

-none- tests/pkg_fatfs: vol_idx print overflow on large negative value
10
static_asserts in the same scope
everywhere

Fixed Issues from the last release (2019.07)

    echo -n
    causes Segmentation fault
    optimization
    in udp.c
    log_printfnoformat
   Makefile.include
   R21
   types

Acknowledgements

We would like to thank all companies that provided us with hardware for porting
and testing RIOT-OS. Further thanks go to companies and institutions that
directly sponsored development time. And finally, big thanks to all of you
contributing in so many different ways to make RIOT worthwhile!

More information

http://www.riot-os.org

Mailing lists

IRC

  • Join the RIOT IRC channel at: irc.freenode.net, #riot-os

License

  • 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 and packages are published under a separate license.

All code files contain licensing information.

2019-10-31 20:32
2019-10-21 18:59

Development branch towards 2020.01 release

2019-10-11 01:57
2019-10-11 01:57

RELEASE 2019.07

RIOT-2019.07 - Release Notes

RIOT is a multi-threading operating system which enables soft real-time
capabilities and comes with support for a range of devices that are typically
found in the Internet of Things: 8-bit and 16-bit microcontrollers as well as
light-weight 32-bit processors.

RIOT is based on the following design principles: energy-efficiency, soft
real-time capabilities, small memory footprint, modularity, and uniform API
access, independent of the underlying hardware (with 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) and is
licensed with a non-viral copyleft license (LGPLv2.1), which allows indirect
business models around the free open-source software platform provided by RIOT.

About this release:

The 2019.07 release includes a number of new features including many new
boards and cpu, riotboot added to many new and old boards, USB is now available,
BLE improvements, Ethernet on stm32 platforms, as well as many bug fixes and
documentation updates. Testing has also improved with both On-Target Testing
increasing and now Hardware Assisted Automated Tests being run.

About 300 pull requests with about 659 commits have been merged since the last
release and about 50 issues have been solved. 26 people contributed with code
in 106 days. Approximately 1377 files have been touched with 181993 insertions
and 19668 deletions.

Notations used below:

+ means new feature/item
* means modified feature/item
- means removed feature/item

New features and changes

System libraries

+ 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

Networking

* 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

Packages

* 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

Boards

+ 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

CPU

* 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

Device Drivers

+ 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()

Build System / Tooling

* 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

Testing

* 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

API Changes

  • uart_stdio RX is now optional
  • CPU_MODEL declared in boards/Makefile.features
- 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;                  /**< Buffer to operate on. */
+    uint8_t *buf;               /**< 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 *);    /**< resets the OF */
+  void (*reset)(gnrc_rpl_dodag_t *dodag);
...
-   void (*init)(void);  /**< 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);

Deprecations

Warnings

gnrc_tftp module
ubjson module

Removals

gcoap_req_send() replaced with gcoap_req_send2()->gcoap_req_send2()

Known issues

Networking related issues

    address
   assertion or completely without error
   configured prefix
   chars
   address

Timer related issues

   time.
   _xtimer_now()  and irq_disable()

Drivers related issues

    clock cycles
   R21
   supported

Native related issues

    log_printfnoformat

Other platforms related issues

    (not previous)
   boards
   CS
   LTO
   types

Build system related issues

    bionic`.
    evaluation
   image
   Makefile.include
   value
  • buildtest with BUILD_IN_DOCKER hides host toolchain errors

Other issues

    optimization
    in udp.c
    10
   static_asserts in the same scope
   everywhere

Fixed Issues from the last release (2019.04)

    and no error

Acknowledgements

We would like to thank all companies that provided us with hardware for porting
and testing RIOT-OS. Further thanks go to companies and institutions that
directly sponsored development time. And finally, big thanks to all of you
contributing in so many different ways to make RIOT worthwhile!
A special thanks to @fjmolinas, @leandrolanzieri, @cladmi, @jia200x, @miri64
for helping run the release tests

More information

http://www.riot-os.org

Mailing lists

IRC

  • Join the RIOT IRC channel at: irc.freenode.net, #riot-os

License

  • 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 and packages are published under a separate license.

All code files contain licensing information.

2019-07-25 17:32
2019-07-19 21:06
2019-07-18 01:51

Development branch towards 2019.10 release

2019-07-08 15:53
2019-07-08 15:53

RELEASE 2019.04

RIOT-2019.04 - Release Notes

RIOT is a multi-threading operating system which enables soft real-time
capabilities and comes with support for a range of devices that are typically
found in the Internet of Things: 8-bit and 16-bit microcontrollers as well as
light-weight 32-bit processors.

RIOT is based on the following design principles: energy-efficiency, soft
real-time capabilities, small memory footprint, modularity, and uniform API
access, independent of the underlying hardware (with 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) and is
licensed with a non-viral copyleft license (LGPLv2.1), which allows indirect
business models around the free open-source software platform provided by RIOT.

About this release:

The 2019.04 release includes a number of new features including porting of
riotboot to a number of new platforms, 802.15.4 support on the nRF52, and the
ability for firmware to flash images into a separate boot slot. Support for
several new boards and new sensors was added. Additionally, this release
contains a number of bug fixes and test improvements.

About 320 pull requests with about 569 commits have been merged since the last
release and about 40 issues have been solved. 44 people contributed with code
in 88 days. Approximately 825 files have been touched with 32716 insertions
and 5149 deletions.

Notations used below:

+ means new feature/item
* means modified feature/item
- means removed feature/item

New features and changes

System libraries

+ riotboot_flashwrite: added module to reliably write a firmware image to
  flash
+ crypto: added support for chacha20poly1305 AEAD symmetric key cypher
  algorithm
* threads: added usage of thread_state_t enum to define thread states,
  instead of an integer
* random: added usage of hwrng as seed if available
+ app_metadata: added module to print application metadata
+ unaligned.h: added functions to safely read values from potentially
  unaligned pointers
+ isrpipe: split isrpipe_read_timeout to isolate xtimer dependency

Networking

* gnrc_ipv6: adapted ping6 to original-ping-like implementation
* gnrc_ipv6: allowed sending empty IPv6 packets
+ gnrc_netif_ieee802154: optional support to drop duplicate broadcast
  packets
- gnrc_pktbuf: removed deprecated gnrc_pktbuf_get_iovec() function
+ l2util: initial import of a general IPv6 over X helper module
+ NimBLE: added Bluetooth device scanner
+ NimBLE: added helper functions for address printing
* NimBLE: updated package to the latest version

Packages

+ c25519: add support (embedded x25519 crypto library)

Boards

+ Arduino nano: added support
+ nrf52832-mdk: added support
+ PhyTec reel board: added support
+ MicroPython pyboard v1.1: added support
+ Hamilton: added support
+ saml10-xpro and saml11-xpro: added riotboot support
+ nrf52: added riotboot support
+ ESP32 and stm32: added command to allow runtime configuration of uart mode
+ ESP32 and ESP8266: add support for ESP-NOW network device driver
* ESP8266: freed up RAM by moving most .rodata sections from DRAM to IROM
+ Arduino: added test to verify pin mappings
+ b-l072z-lrwan1: enabled RTT feature
+ STM32l0: added support for dual bank flashing with OpenOCD
* Autonomo: changed flasher to BOSSA
* stm32: rework common clock configuration for stm32f4
* stm32f3discovery: Fix no external low speed crystal

CPU

+ stm32l0: added riotboot support
+ stm32f0: added support for periph_pm
+ stm32f3, f7, l1 and l4: added stop and standby low power modes. All
  STM32 families now provide periph_pm
+ samd21: enabled idle modes
+ sam0: added support for RWWEE on-chip memory
+ Kinetis: added support for EA series and S9KEAZ129 MCU
+ TI CC2650: added I2C periph implementation

Device Drivers

+ i2c: added slave scan shell command
+ USB: added device driver initialization function and API definition
+ USB: added peripheral driver for sam0_common
+ nrf5x temperature sensor: added driver
+ nrf52: added initial 802.15.4 support
+ add7746 capacitance sensor: added driver
+ ds323x extremely accurate RTC: added driver
+ ltc4150 coulomb counter: added driver
+ sht2x temperature and humidity sensor: added driver
+ sds011 dust sensor: added driver
+ added high level driver for H bridge ICs to drive DC motors
* lpsxxx pressure and temperature sensor: add support for lps22hb and
  lps25hb

Build System / Tooling

+ nrf52: added support for openocd
* improved avrdude integration
+ added support for socat as a RIOT terminal
+ added script for backporting PRs during release testing
* pyterm: specified use of python3 by default
* flasher: support for flashing images at offset addresses `pyocd`, `jlink`
* Texas Instruments UniFlash: put configuration in common
* makefiles: introduce FLASHFILE
  * Use FLASHFILE for `riotboot` and `mcuboot`
  * Update flashers `avrdude`, `edbg`, `jlink`, lpc2k_pgm`, `openocd`
* makefiles/docker.inc.mk: Use directories in RIOT when possible
* make: unexport `TERM*` variables
* msba2: compile 'lpc2k_pgm' when flashing

Testing

+ documentation: added initial guide to running tests
+ Makefile.include: add a 'test/available' target
* testrunner: Fix bug matching local echo
* tests/rng: replace printf_float with fmt/print_float
* tests/bloom_bytes: replace %f with fmt/print_float
* tests/posix_semaphore: sem_timedwait should not return before abstime

Known issues

Networking related issues

    address
   assertion or completely without error
   configured prefix
   address

Timer related issues

   _xtimer_now()  and irq_disable()

Drivers related issues

   supported

Native related issues

Other platform related issues

    clock cycles
    and no error
    (not previous)
   boards
   types

Build system related issues

    evaluation
   image
   Makefile.include
   value

Other issues

   static_asserts in the same scope
   everywhere

Fixed Issues from the last release (2019.01)

You can get the complete detail in the git history and in the release milestone
Release 2019.04.

Acknowledgements

We would like to thank all companies (vendors) that provided us with (their)
hardware for porting and testing RIOT-OS. Further thanks go to companies and
institutions that directly sponsored development time. And finally, big thanks
to all of you contributing in so many different ways to make RIOT worthwhile!

More information

http://www.riot-os.org

Mailing lists

IRC

  • Join the RIOT IRC channel at: irc.freenode.net, #riot-os

License

  • 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 and packages are published under a separate license.

All code files contain licensing information.

2019-04-29 19:28
2019-04-24 18:55

Development branch towards 2019.07 release

2019-04-05 14:40
2019-04-05 14:40

RELEASE 2019.01

RIOT-2019.01 - Release Notes

RIOT is a multi-threading operating system which enables soft real-time
capabilities and comes with support for a range of devices that are typically
found in the Internet of Things: 8-bit and 16-bit microcontrollers as well as
light-weight 32-bit processors.

RIOT is based on the following design principles: energy-efficiency, soft
real-time capabilities, small memory footprint, modularity, and uniform API
access, independent of the underlying hardware (with 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) and is
licensed with a non-viral copyleft license (LGPLv2.1), which allows indirect
business models around the free open-source software platform provided by RIOT.

About this release:

The 2019.01 release includes a number of new features including DMA support on
all STM32 boards, WiFi with IP connectivity on ESP32 and ESP8266, and riotboot,
a simple bootloader supporting multiple firmware slots, compatible with most Arm
Cortex-M boards supported by RIOT. Support for several new boards and new sensors
was added, as well as for the new CPU architecture Armv8-M (Cortex-M23). Last
but not least, this release contains a number of bug fixes and enhances test
automation.

About 387 pull requests with about 912 commits have been merged since the last
release and about 36 issues have been solved. 54 people contributed with code
in 110 days. Approximately 1554 files have been touched with 176241 insertions
and 50593 deletions.

Notations used below:

+ means new feature/item
* means modified feature/item
- means removed feature/item

New features and changes

System libraries

+ riotboot: initial implementation of a bootloader with multi-slots
  and firmware header management
+ base64: add size estimation functions

Networking

* gnrc_ipv6: send IPv6 error messages on error
* gnrc_ipv6: refactor and improve IPv6 message reception
* gnrc_netif: refactor for easier device type integration
+ pkg_semtech-loramac: added timer calibation
* nanocoap: fix confirmable retry countdown

Packages

* gecko_sdk: bumped to version 2.5

Boards

+ added support for Kinetic USB-KW41Z
+ added support for Makerdiary nrf52840-mdk
+ added support for Microchip saml10-xpro and saml11-xpro
+ added support for Nordic nrf51-dk
+ added support for Phytec phynode-kw41z
+ added support for SODAQ SARA AFF
* b-l475e-iot01a: provide RTC and RTT features
* stm32: factorize common I2C configurations
* nucleo-l433rc/nucleo-f072rb/nucleo-f767zi: provide I2C configuration
* nucleo-l433rc: use LPUART (USB port) as stdio
* nucleo-l496zg: use LPUART (USB port) as stdio
* frdm-k64f: updated LPTMR configuration
* sensebox_samd21: add MTD configuration
* nrf51: factorize files and configurations of nrf51 based boards
* nrf52: better factorize files and configurations of nrf52 based boards

CPU

+ cortexm-common: add FPU support for cortex-m4f and cortex-m7
+ cortexm-common: added support for cortex-m23
+ added support for saml10 and saml11
+ efm32: added support for 32-bit timers
+ esp32: added esp_wifi netdev driver
+ esp8266: added esp_wifi netdev driver
+ stm32-common: add DMA support for all STM32
+ stm32-common: add LPUART driver
+ atmega-common: Add PUF SRAM feature
* nrf5x: added management of multiple exti pins in gpio driver
* nrf5x: rework UART driver to allow using multiple UARTs on nrf52840

Device Drivers

+ added support for CCS811 gas sensor
+ added support for SHT3x temperature and humidity sensor
+ added support for TPS6274x step-down dcdc converter
* periph_eeprom: added clear and erase functions

Build System / Tooling

+ added support for PyOCD programmer
+ added compile_and_test_for_board script + checks
* updated EDBG version
* testbed-support: added frdm-kw41z, pba-d-01-kw2x, samr30-xpro to
  supported archis
* pyterm: correctly catch exception when serial port is busy
* print_toolchain_version: added 'make' version

Testing

+ periph_dma: added automatic test script
+ periph_rtc: added automatic test script

Known issues

Networking related issues

    address
   assertion or completely without error
   configured prefix
   address

Timer related issues

   _xtimer_now()  and irq_disable()

Drivers related issues

   supported

Native related issues

Other platforms related issues

    (not previous)
   boards
   types

Build system related issues

    evaluation
   image
   Makefile.include
   value

Other issues

   static_asserts in the same scope
   everywhere

Fixed Issues from the last release (2018.10)

    re-set
    fragmentation?
    load
    2 instances

You can get the complete detail in the git history and in the release milestone
Release 2019.01.

Acknowledgements

We would like to thank all companies (vendors) that provided us with (their)
hardware for porting and testing RIOT-OS. Further thanks go to companies and
institutions that directly sponsored development time. And finally, big thanks
to all of you contributing in so many different ways to make RIOT worthwhile!

More information

http://www.riot-os.org

Mailing lists

IRC

  • Join the RIOT IRC channel at: irc.freenode.net, #riot-os

License

  • 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 and packages are published under a separate license.

All code files contain licensing information.

RIOT-2018.10.1 - Release Notes

This is a bug fixing release for the RIOT 2018.10 release.
The following bugs were fixed:

- sock_dns: remove out-of-place puts() call
- sock_dns: remove some magic numbers
- sock_dns: fix out-of-bound errors

- pkg/jerryscript: disable -Wconversion for llvm
- pkg/nimble: disable -Waddress-of-packed-member for llvm
- pkg/tinycrypt: update commit hash after upstream rewrote history

- at86rf2xx: correct framebuffer release
2019-02-15 18:54
2019-02-13 17:22

Release-2018.10

2019-02-04 21:42
2019-02-02 00:07
C
1
https://gitee.com/lzlArvin/riot-os.git
git@gitee.com:lzlArvin/riot-os.git
lzlArvin
riot-os
riot-os

搜索帮助

53164aa7 5694891 3bd8fe86 5694891