Releases: zephyrproject-rtos/zephyr
v1.7.99
v1.7.0-rc1
Zephyr v1.7.0-rc1
v1.6.99
Zephyr 1.6.0
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 ...
v1.6.0-rc4
Zephyr v1.6.0-rc4
v1.6.0-rc3
Zephyr v1.6.0-rc3
Zephyr 1.5.0
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
...