Skip to content

Releases: zephyrproject-rtos/zephyr

v1.7.99

12 Mar 09:17
Compare
Choose a tag to compare
v1.7.99 Pre-release
Pre-release
Zephyr v1.7.99

v1.7.0-rc1

12 Mar 09:17
Compare
Choose a tag to compare
v1.7.0-rc1 Pre-release
Pre-release
Zephyr v1.7.0-rc1

v1.6.99

12 Mar 09:17
Compare
Choose a tag to compare
v1.6.99 Pre-release
Pre-release
xx

Zephyr 1.6.0

12 Mar 09:18
Compare
Choose a tag to compare

We are pleased to announce the release of Zephyr kernel version 1.6.0.
This release introduces the unified Kernel replacing the separate nano-
and micro-kernels and simplifying the overall Zephyr architecture and
programming interfaces. Support for the ARM Cortex-M0/M0+ family was
added and board support for Cortex-M was expanded. Additionally, this
release adds many improvements for documentation, build infrastructure,
and testing.

Major enhancements included with the release:

  • Introduced the Unified Kernel; the nano and micro kernel
    were removed.
  • The legacy API is still supported but deprecated.
  • Legacy tests and samples were moved to tests/legacy
    and samples/legacy.
  • Unified kernel documentation was added and legacy
    nanokernel/microkernel documentation was removed.
  • Added support for several ARM Cortex-M boards
  • Added support for USB mass storage and access to the filesystem.
  • Added native Bluetooth Controller support. Currently nRF51 & nRF52
    are supported.

A detailed list of changes since v1.5.0 by component follows:

Kernel

  • Introduced the unified kernel.
  • Removed deprecated Tasks IRQs.
  • Removed deprecated dynamic interrupt API.
  • Added DLIST to operate in all elements of a doubly-linked list.
  • SLIST: Added sys_slist_get() to fetch and remove the head, also
    Added append_list and merge_slist.
  • Added nano_work_pending to check if it is pending execution.
  • Unified: Added support for k_malloc and k_free.
  • Renamed kernel objects event to alert and memory map to memory slab.
  • Changed memory pool, memory maps, message queues and event
    handling APIs.

Architectures

  • ARC: Removed CONFIG_TIMER0_CLOCK_FREQ.
  • ARC: Unified linker scripts.
  • ARC: Removed dynamic interrupts.
  • ARM: Added choice to use floating point ABI.
  • ARM: Added NXP Kinetis kconfig options to configure clocks.
  • ARM: Removed dynamic interrupts and exceptions.
  • ARM: Atmel: Added constants and structures for watchdog registers.
  • ARM: Added support for ARM Cortex-M0/M0+.
  • x86: Removed dynamic interrupts and exceptions.
  • x86: Declared internal API for interrupt controllers.
  • x86: Changed IRQ controller to return -1 if cannot determine
    source vector.
  • x86: Grouped Quark SoC's under intel_quark family.
  • x86: Optimized and simplified IRQ and exception stubs.

Boards

  • Renamed board Quark SE devboard to Quark SE C1000 devboard.
  • Renamed board Quark SE SSS devboard to Quark SE C1000 SS devboard.
  • Quark SE C1000: Disabled IPM and enabled UART0 on the
    Sensor Subsystem.
  • Removed basic_cortex_m3 and basic_minuteia boards.
  • Arduino 101: Removed backup/restore scripts. To restore original
    bootloader use flashpack utility instead.
  • Renamed nRF52 Nitrogen to 96Boards Nitrogen.
  • Added ARM LTD Beetle SoC and V2M Beetle board.
  • Added Texas Instruments CC3200 LaunchXL support.
  • Added support for Nordic Semiconductor nRF51822.
  • Added support for NXP Hexiwear board.

Drivers and Sensors

  • SPI: Fixed typos in SPI port numbers.
  • Pinmux: Removed Quark dev unused file.
  • I2C: Added KSDK shim driver.
  • Ethernet: Added KSDK shim driver.
  • Flash: Added KSDK shim driver
  • I2C: Changed config parameters to SoC specific.
  • QMSI: Implemented suspend and resume functions QMSI shim drivers
  • Added HP206C sensor.
  • Changed config_info pointers to const.
  • Added support for SoCWatch driver.
  • Added FXOS8700 accelerometer / magnetometer sensor driver.

Networking

  • Minor fixes to uIP networking stack (This will be deprecated in 1.7)

Bluetooth

  • Added native Bluetooth Controller support. Currently nRF51 & nRF52
    are supported.
  • New location for Controller & Host implementations:
    subsys/bluetooth/
  • Added raw HCI API to enable physical HCI transport for a
    Controller-only build.
  • Added sample raw HCI apps for USB and UART.
  • Added cross-transport pairing support for the Security
    Manager Protocol.
  • Added RFCOMM support (for Bluetooth Classic)
  • Added basic persistent storage support (filesystem-backed)
  • Renamed bt_driver API to bt_hci_driver, in anticipation of
    Bluetooth radio drivers.

Build Infrastructure

  • Makefile: Changed outdir into board-specific directory to avoid
    build collisions.
  • Makefile: Changed to use HOST_OS environment variable.
  • Makefile: Added support for third party build systems.
  • Sanity: Added support to filter using environment variables.
  • Sanity: Added support for multiple toolchains.
  • Sanity: Added ISSM and ARM GCC embedded toolchains to the
    supported toolchains.
  • Sanity: Added extra arguments to be passed to the build.
  • Sanity: Removed linker VMA/LMA offset check.
  • Sysgen: Added --kernel_type argument.
  • Modified build infrastructure to support unified kernel.
  • SDK: Zephyr: Added check for minimum required version.
  • Imported get_maintainer.pl from Linux kernel.

Libraries

  • libc: Added subset of standard types in inttypes.h.
  • libc: Added support for 'z' length specifier.
  • libc: Removed stddef.h which is provided by the compiler.
  • libc: printf: Improved code for printing.
  • printk: Added support for modifiers.
  • Added CoAP implementation for Zephyr.
  • File system: Added API to grow or shrink a file.
  • File system: Added API to get volume statistics.
  • File system: Added API to flush cache of an opened file.

HALs

  • QMSI: Updated to version 1.3.1.
  • HAL: Imported CC3200 SDK.
  • Imported Nordic MDK nRF51 files.
  • Imported Kinetis SDK Ethernet phy driver.
  • Imported SDK RNGA driver.

Documentation

  • Drivers: Improved Zephyr Driver model.
  • Updated device power management API.
  • Unified Kernel primer.
  • Moved supported board information to the
    wiki.zephyrproject.org site.
  • Revised documentation for Kernel Event logger and Timing.

Test and Samples

  • Fixed incorrect printk usage.
  • Removed test for dynamic exceptions.
  • Added USB sample.
  • Added tests and samples for CoAP client and server.
  • Added philosophers unified sample.
  • Removed printf/printk wrappers.
  • Added Unified kernel API samples.
  • Imported tinycrypt test cases for CTR, ECC DSA and ECC DH algorithm.

Deprecations

  • Deprecated microkernel and nanokernel APIs.
  • Removed dynamic IRQs and exceptions.
  • Removed Tasks IRQs.

JIRA Related Items

  • ZEP-308 - Build System cleanup and Kernel / Application build
    separation
  • ZEP-334 - Unified Kernel
  • ZEP-766 - USB Mass Storage access to internal filesystem
  • ZEP-1090 - CPU x86 save/restore using new QMSI bootloader flow
  • ZEP-1173 - Add support for bonding remove
  • ZEP-48 - define API for interrupt controllers
  • ZEP-181 - Persistent storage APIs
  • ZEP-233 - Support USB mass storage device class
  • ZEP-237 - Support pre-built host tools
  • ZEP-240 - printk/printf usage in samples
  • ZEP-248 - Add a BOARD/SOC porting guide
  • ZEP-342 - USB DFU
  • ZEP-451 - Quark SE output by default redirected to IPM
  • ZEP-521 - ARM - add choice to floating point ABI selection
  • ZEP-546 - UART interrupts not triggered on ARC
  • ZEP-584 - warn user if SDK is out of date
  • ZEP-592 - Sanitycheck support for multiple toolchains
  • ZEP-605 - SMP over BR/EDR
  • ZEP-614 - Port tinycrypt 2.0 test cases to Zephyr
  • ZEP-622 - Add FS API to truncate/shrink a file
  • ZEP-627 - Port Trickle support from Contiki into current stack
  • ZEP-635 - Add FS API to grow a file
  • ZEP-636 - Add FS API to get volume total and free space
  • ZEP-640 - Remove dynamic IRQs/exceptions from Zephyr
  • ZEP-653 - QMSI shim driver: Watchdog: Implement suspend and resume
    callbacks
  • ZEP-654 - QMSI shim driver: I2C: Implement suspend and resume
    callbacks
  • ZEP-657 - QMSI shim driver: AONPT: Implement suspend and resume
    callbacks
  • ZEP-661 - QMSI shim driver: SPI: Implement suspend and resume
    callbacks
  • ZEP-688 - unify duplicated sections of arch linker scripts
  • ZEP-715 - Add K64F clock configurations
  • ZEP-716 - Add Hexiwear board support
  • ZEP-717 - Add ksdk I2C shim driver
  • ZEP-718 - Add ksdk ethernet shim driver
  • ZEP-721 - Add FXOS8700 accelerometer/magnetometer sensor driver
  • ZEP-737 - Update host tools from upstream: fixdep.c
  • ZEP-740 - PWM API: Check if 'flags' argument is really required
  • ZEP-745 - Revisit design of PWM Driver API
  • ZEP-750 - Arduino 101 board should support one configuration using
    original bootloader
  • ZEP-758 - Rename Quark SE Devboard to its official name: Quark SE
    C1000
  • ZEP-767 - Add FS API to flush cache of an open file
  • ZEP-775 - Enable USB CDC by default on Arduino 101 and redirect
    serial to USB
  • ZEP-783 - ARM Cortex-M0/M0+ support
  • ZEP-784 - Add support for Nordic Semiconductor nRF51822 SoC
  • ZEP-850 - remove obsolete boards basic_minuteia and
    basic_cortex_m3
  • ZEP-906 - [unified] Add scheduler time slicing support
  • ZEP-907 - Test memory pool support (with mailboxes)
  • ZEP-908 - Add task offload to fiber support
  • ZEP-909 - Adapt tickless idle + power management for ARM
  • ZEP-910 - Adapt tickless idle for x86
  • ZEP-912 - Finish renaming kernel object types
  • ZEP-916 - Eliminate kernel object API anomalies
  • ZEP-920 - Investigate malloc/free support
  • ZEP-921 - Miscellaneous documentation work
  • ZEP-922 - Revise documentation for Kernel Event Logger
  • ZEP-923 - Revise documentation for Timing
  • ZEP-924 - Revise documentation for Interrupts
  • ZEP-925 - API changes to message ...
Read more

v1.6.0-rc4

12 Mar 09:18
Compare
Choose a tag to compare
v1.6.0-rc4 Pre-release
Pre-release
Zephyr v1.6.0-rc4

v1.6.0-rc3

12 Mar 09:19
Compare
Choose a tag to compare
v1.6.0-rc3 Pre-release
Pre-release
Zephyr v1.6.0-rc3

Zephyr 1.5.0

20 Apr 14:37
Compare
Choose a tag to compare

The Zephyr Engineering team is glad to announce the release of Zephyr
Kernel 1.5.0. This is the first release to follow the 3-month release
cadence. This release includes numerous fixes and support for major
features. Additional changes include support for new drivers, sensors,
and boards.

Major enhancements included with the release:

  • TCP Support
  • Integration of the Paho MQTT Library support with QoS
  • Flash Filesystem Support
  • Integration of the mbedTLS library for encryption
  • Improved BR/EDR support (for L2CAP, in particular).
  • Support for the Altera Nios II/f soft CPU architecture

A detailed list of changes since v1.4.0 by component follows:

Kernel

  • Added nano_fifo_put_list() APIs, which allows queuing a list of
    elements on a nanokernel FIFO.
  • Removed unused memory pool structure field.
  • Enhanced memory pool code.

Architectures

  • ARM: Updated to include floating point registers.
Altera Nios II/f soft CPU architecture support

:   -   Internal Interrupt Controller
    -   Avalon Timer
    -   Avalon JTAG UART (polling mode) as default for
        qemu-system-nios2, and 16550 UART as default for
        Altera MAX10.

Boards

  • Added Nios II QEMU board.
  • Added configuration for Altera MAX10 FPGA.

Drivers and Sensors

  • Sensors: Added driver for I2C HMC5883L magnetometer.
  • Sensors: Added driver for I2C TMP112 temperature sensor.
  • Sensors: Added driver for MAX44009 light sensor.
  • Sensors: Added driver for LPS25HB.
  • HAL: Updated QMSI drivers to 1.1
  • Added DMA QMSI shim driver.
  • Added Quark SE USB device controller driver.
  • Added suspend/resume to QMSI drivers.
  • Added Guard for critical sections of the QMSI drivers.
  • Added Zephyr File System API.
  • Added driver for ENC28J60 Ethernet SPI module.

Networking

  • TCP Support
  • Connection handling fixes in IP stack.
  • Allow sending zero length user data IP packet.

Network Buffers

  • New net_buf_simple API for light-weight on-stack (or static)
    buffers where a net_buf (and its associated pool) is overkill. The
    net_buf API now uses as an internal implementation
    detail net_buf_simple.
  • Add support for network buffer fragmentation.
  • Add more net_buf big endian helpers.

Bluetooth

  • Multiple fixes & improvements to the nble driver.
  • New API for dealing with Out of Band data (like the local address).
  • Various smaller fixes & improvements in many places.

Build and Infrastructure

  • Added “qemugdb” target to start a local GDB on port 1234.
  • Added script to filter known issues in the build output.
  • Sanity: Added “-R” option to build all test with assertions.

Libraries

  • File system: Imported Open Source FAT FS 0.12a code.
  • Encryption: Imported mbedTLS library.
  • Encryption: Updated tinycrypt library to 2.0.

Documentation

  • Fixed all the documentations warnings during build.
  • Fixed several typos, trademarks and grammar.
  • Moved all the boards documentation to the wiki.
  • Moved Code Contribution documentation to the wiki.
  • Added package “ncurses” to the list of requirements.
  • Updated Mac OS X instructions.

Test and Samples

  • Samples: Replaced old debug macro to use new SYS_LOG macro.
  • Added TMP112 sensor application.
  • Added Quark SE power management sample application.
  • Added DMA memory to memory transfer sample.
  • Added sample for MAX44009 light sensor.
  • Added MQTT publisher and subscriber samples.
  • Added mbedTLS sample client.

JIRA Related Items

Stories

  • ZEP-49 - x86: unify separate SysV and IAMCU code
  • ZEP-55 - enable nanokernel test_context on ARC
  • ZEP-58 - investigate use of -fomit-frame-pointer
  • ZEP-60 - irq priorities should be rebased to safe values
  • ZEP-69 - Extend PWM API to use arbitrary unit of time
  • ZEP-203 - clean up APIs for static exceptions
  • ZEP-225 - Add kernel API to put SoC to Deep Sleep (DS) State
  • ZEP-226 - Update sample PMA to support device suspend/resume
  • ZEP-227 - Add kernel API to put SoC to Low Power State (LPS)
  • ZEP-228 - File system interface designed after POSIX
  • ZEP-232 - Support for USB communications device class ACM
  • ZEP-234 - provide a direct memory access (DMA) interface
  • ZEP-243 - Create Wiki Structure for Boards
  • ZEP-249 - nios2: Enable altera_max10 board in sanitycheck runs for
    nanokernel
  • ZEP-254 - nios2: define NANO_ESF struct and populate _default_esf
  • ZEP-270 - nios2: determine optimal value for PERFOPT_ALIGN
  • ZEP-271 - nios2: enable microkernel & test cases
  • ZEP-272 - nios2: add global pointer support
  • ZEP-273 - nios2: implement flashing scripts
  • ZEP-274 - nios2: document GDB debugging procedure
  • ZEP-275 - nios2: scope support for instruction/data caches
  • ZEP-279 - nios2: demonstrate nanokernel hello world
  • ZEP-285 - FAT filesystem support on top of SPI Flash
  • ZEP-289 - nios2: implement kernel_event_logger
  • ZEP-291 - Driver for the ENC28J60 ethernet device
  • ZEP-304 - Investigate QEMU support for Nios II
  • ZEP-327 - Encryption Libraries needed for Thread support
  • ZEP-340 - TLS/SSL
  • ZEP-354 - Provide a DMA driver for Quark SE core
  • ZEP-356 - DMA device support
  • ZEP-357 - Support for the MAX44009 sensor
  • ZEP-358 - Add support for TMP112 sensor
  • ZEP-412 - Add driver API reentrancy support to RTC driver for LMT
  • ZEP-414 - Add driver API reentrancy support to flash driver
  • ZEP-415 - aaU, I want to use the NATS messaging protocol to send
    sensor data to the cloud
  • ZEP-416 - MQTT client capability: QoS1, QoS2
  • ZEP-424 - AON counter driver needs to add driver API reentrancy
    support
  • ZEP-430 - Add driver API reentrancy support to PWM shim driver
  • ZEP-434 - Driver for HMC5883L magnetometer
  • ZEP-440 - Add driver API reentrancy support to WDT shim driver
  • ZEP-441 - Add driver API reentrancy support to GPIO shim drivers
  • ZEP-489 - nios2: handle unimplemented multiply/divide instructions
  • ZEP-500 - Domain Name System client library
  • ZEP-506 - nios2: support baremetal boot and XIP on Altera MAX10
  • ZEP-511 - Add Deep Sleep support in PMA
  • ZEP-512 - Add suspend/resume support for some core devices to enable
    Deep Sleep support in PMA
  • ZEP-541 - Integrate QMSI releases to Zephyr
  • ZEP-567 - netz sample code
  • ZEP-568 - MQTT QoS sample app
  • ZEP-573 - IoT applications must use netz API
  • ZEP-590 - Update Zephyr's tinycrypt to version 2.0
  • ZEP-643 - Add file system API documentation
  • ZEP-650 - Quark SE: Implement PM reference application
  • ZEP-652 - QMSI shim driver: RTC: Implement suspend and resume
    callbacks
  • ZEP-655 - QMSI shim driver: PWM: Implement suspend and resume
    callbacks
  • ZEP-658 - QMSI shim driver: GPIO: Implement suspend and resume
    callbacks
  • ZEP-659 - QMSI shim driver: UART: Implement suspend and resume
    callbacks
  • ZEP-662 - QMSI shim driver: Pinmux: Implement suspend and resume
    callbacks

Epic

  • ZEP-278 - Enable Nios II CPU on Altera Max10
  • ZEP-284 - Flash Filesystem Support
  • ZEP-305 - Device Suspend / Resume infrastructure
  • ZEP-306 - PWM Enabling
  • ZEP-406 - Drivers shall be re-entrant

Bug

  • ZEP-68 - Final image contains duplicates of some routines
  • ZEP-156 - PWM Set Value API behaves incorrectly
  • ZEP-158 - PWM Set Duty Cycle API does not work
  • ZEP-180 - make menuconfig user provided options are ignored at
    building time
  • ZEP-187 - BLE APIs are not documented
  • ZEP-218 - [drivers/nble][PTS_TEST] Fix responding with the
    wrong error codes to the Prepare Write Request
  • ZEP-221 - [drivers/nble][PTS_TEST] Implement Execute Write
    Request handler
  • ZEP-369 - When building out of the tree, application object files
    are not placed into outdir
  • ZEP-379 - _k_command_stack may be improperly initialized when
    debugging
  • ZEP-384 - D2000 hangs after I2C communication with BMC150 sensor
  • ZEP-401 - PWM driver turns off pin if off time is 0 in set_values
  • ZEP-423 - Quark D2000 CRB documentation should include instructions
    to flash bootloader
  • ZEP-435 - Ethernet/IPv4/TCP: ip_buf_appdatalen returns wrong
    values
  • ZEP-456 - doc: IDT security section dissapeared
  • ZEP-457 - doc: contribute/doxygen/typedefs.rst: examples files are
    broken
  • ZEP-459 - doc: kconfig reference entries in HTML are lacking a title
  • ZEP-460 - doc: document parameters of DEVICE* macros
  • ZEP-461 - Release 1.4.0 has broken the BMI160 sample as well as an
    application based on it
  • ZEP-463 - Getting started guide "next" link doesn't take you to
    "Checking Out the Source Code Anonymously" section
  • ZEP-469 - Ethernet/IPv4/TCP: net_receive & net_reply in server
    mode
  • ZEP-474 - ND: Neighbor cache is not getting cleared
  • ZEP-475 - Issue with timer callback routine: Condition checked is
    incorrect
  • ZEP-478 - Linux setup docs missing step to install curses
    development package for Fedora
  • ZEP-497 - Ethernet/IPv4/TCP: failed to get free buffer
  • ZEP-499 - TMP007 driver returns invalid values for negative
    temperature
  • ZEP-514 - memory corruption in microkernel memory pool defrag()
  • ZEP-516 - Ubuntu setup instructions missing 'upgrade' step
  • ZEP-518 - SPI not working on Arduino101
  • ZEP-522 - TCP/client-mode: disconnect
  • ZEP-523 - FIFOs defined by DEFINE_FIFO macro use the same memory
    buffer
  • ZEP-525 - srctree changes are breaking applications
  • ZEP-526 - build "kernel event logger" sample app failed for
    ...
Read more