Zephyr Kernel 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. 
Known Issues
- ZEP-1405- function l2cap_br_conn_req in /subsys/bluetooth/host/l2cap_br.c references uninitialized pointer