| :orphan: |
| |
| .. _zephyr_2.4: |
| |
| Zephyr 2.4.0 (Working Draft) |
| ############################ |
| |
| We are pleased to announce the release of Zephyr RTOS version 2.4.0. |
| |
| Major enhancements with this release include: |
| |
| * Introduced initial support for virtual memory management. |
| |
| * Added Bluetooth host support for periodic advertisement and isochronous |
| channels. |
| |
| * Enabled the new TCP stack, TCP2, by default. This stack was introduced in |
| Zephyr v2.1.0 to improve network protocol testability with open source tools. |
| |
| * Introduced a new toolchain abstraction with initial implementations for GCC |
| and LLVM/Clang, and groundwork for future support of commercial toolchains. |
| |
| * Moved to using C99 integer types and deprecate Zephyr integer types. The |
| Zephyr types can be enabled by Kconfig DEPRECATED_ZEPHYR_INT_TYPES option. |
| |
| The following sections provide detailed lists of changes by component. |
| |
| Security Vulnerability Related |
| ****************************** |
| |
| The following CVEs are addressed by this release: |
| |
| * CVE-2020-10064: Improper Input Frame Validation in ieee802154 Processing |
| * CVE-2020-10066: Incorrect Error Handling in Bluetooth HCI core |
| * CVE-2020-10072: all threads can access all socket file descriptors |
| * CVE-2020-13598: FS: Buffer Overflow when enabling Long File Names in FAT_FS and calling fs_stat |
| * CVE-2020-13599: Security problem with settings and littlefs |
| * CVE-2020-13601: Under embargo until 2020/11/18 |
| * CVE-2020-13602: Remote Denial of Service in LwM2M do_write_op_tlv |
| |
| |
| More detailed information can be found in: |
| https://docs.zephyrproject.org/latest/security/vulnerabilities.html |
| |
| Known issues |
| ************ |
| |
| You can check all currently known issues by listing them using the GitHub |
| interface and listing all issues with the `bug label |
| <https://github.com/zephyrproject-rtos/zephyr/issues?q=is%3Aissue+is%3Aopen+label%3Abug>`_. |
| |
| |
| API Changes |
| *********** |
| |
| * Moved to using C99 integer types and deprecate Zephyr integer types. The |
| Zephyr types can be enabled by Kconfig DEPRECATED_ZEPHYR_INT_TYPES option. |
| |
| * The ``<sys/util.h>`` header has been promoted to a documented API with |
| :ref:`experimental stability <api_lifecycle>`. See :ref:`util_api` for an API |
| reference. |
| |
| * The :c:func:`wdt_feed` function will now return ``-EAGAIN`` if |
| issuing a feed would stall the caller. Application code may need to |
| ignore this diagnostic result or initiate another feed operation |
| later. |
| |
| * ``<drivers/uart.h>`` has seen its callbacks normalized. |
| :c:type:`uart_callback_t` and :c:type:`uart_irq_callback_user_data_t` |
| had their signature changed to add a struct device pointer as first parameter. |
| :c:type:`uart_irq_callback_t` has been removed. :c:func:`uart_callback_set`, |
| :c:func:`uart_irq_callback_user_data_set` and :c:func:`uart_irq_callback_set` |
| user code have been modified accordingly. |
| |
| * ``<drivers/dma.h>`` has seen its callback normalized. It had its signature |
| changed to add a struct device pointer as first parameter. Such callback |
| signature has been generalized throuh the addition of dma_callback_t. |
| 'callback_arg' argument has been renamed to 'user_data. All user code have |
| been modified accordingly. |
| |
| * ``<drivers/ipm.h>`` has seen its callback normalized. |
| :c:type:`ipm_callback_t` had its signature changed to add a struct device |
| pointer as first parameter. :c:func:`ipm_register_callback` user code have |
| been modified accordingly. The context argument has been renamed to user_data |
| and all drivers have been modified against it as well. |
| |
| * The :c:func:`fs_open` function now accepts open flags that are passed as |
| a third parameter. |
| All custom file system front-ends require change to the implementation |
| of ``open`` callback to accept the new parameter. |
| To maintain original behaviour within user code, two argument invocations |
| should be converted to pass a third argument ``FS_O_CREATE | FS_O_RDWR``. |
| |
| * The struct device got 3 attributes renamed: ``config_info`` to ``config``, |
| ``driver_api`` to ``api`` and finally ``driver_data`` to ``data``. |
| This renaming was done to get rid of legacy names, for which the reasons |
| do no longer apply. |
| |
| * All device instances got a const qualifier. So this applies to all APIs |
| manipulating ``struct device *`` (ADC, GPIO, I2C, ...). In order to avoid |
| const qualifier loss on ISRs, all ISRs now take a ``const *void`` as a |
| paremeter as well. |
| |
| * The ``_gatt_`` and ``_GATT_`` infixes have been removed for the HRS, DIS |
| and BAS APIs and the Kconfig options. |
| |
| * ``<include/bluetooth/gatt.h>`` callback :c:func:`bt_gatt_attr_func_t` used by |
| :c:func:`bt_gatt_foreach_attr` and :c:func:`bt_gatt_foreach_attr_type` has |
| been changed to always pass the original pointer of attributes along with its |
| resolved handle. |
| |
| * Established the unrestricted alignment of flash reads for all drivers. |
| |
| Deprecated in this release |
| ========================== |
| |
| * The full set of ``k_mem_pool`` and ``sys_mem_pool`` APIs |
| are considered deprecated as of this release. The replacements are |
| the ``k_heap`` and ``sys_heap`` APIs. These APIs are not tagged with |
| ``__deprecated`` in the 2.4 release, but will be in 2.5. They will be |
| removed completely in Zephyr 2.6 LTS. The set of APIs now deprecated is as |
| follows: |
| |
| * ``k_mbox_data_block_get()`` |
| * ``k_pipe_block_put()`` |
| * ``K_MEM_POOL_DEFINE()`` |
| * ``k_mem_pool_alloc()`` |
| * ``k_mem_pool_free()`` |
| * ``k_mem_pool_free_id()`` |
| * ``SYS_MEM_POOL_DEFINE()`` |
| * ``sys_mem_pool_init()`` |
| * ``sys_mem_pool_alloc()`` |
| * ``sys_mem_pool_free()`` |
| * ``sys_mem_pool_try_expand_inplace()`` |
| |
| Removed APIs in this release |
| ============================ |
| |
| * Other |
| |
| * The deprecated ``MACRO_MAP`` macro has been removed from the |
| :ref:`util_api`. Use ``FOR_EACH`` instead. |
| * The CONFIG_NET_IF_USERSPACE_ACCESS is removed as it is no longer needed. |
| |
| * Build system |
| |
| * The set of ``*_if_kconfig()`` CMake functions have been removed. Use |
| ``_ifdef(CONFIG_ ...)`` instead. |
| |
| Stable API changes in this release |
| ================================== |
| |
| * USB |
| |
| * HID class callbacks now takes a parameter ``const struct device*`` which |
| is the HID device for which callback was called. |
| |
| Kernel |
| ****** |
| |
| * Initial support for virtual memory management |
| |
| * API definitions in ``include/sys/mem_manage.h``. |
| * Supporting architectures will implement ``arch_mem_map()`` and enable |
| ``CONFIG_MMU``. |
| * The kernel is linked at its physical memory location in RAM. |
| * The size of the address space is controlled via ``CONFIG_KERNEL_VM_SIZE`` |
| with memory mapping calls allocating virtual memory growing downward |
| from the address space limit towards the system RAM mappings. |
| * This infrastructure is still under heavy development. |
| |
| * Device memory mapped I/O APIs |
| |
| * Namedspaced as DEVICE_MMIO and specified in a new |
| ``include/sys/device_mmio.h`` header. |
| * This is added to facilitate the specification and the storage location of |
| device driver memory-mapped I/O regions based on system configuration. |
| |
| * Maintained entirely in ROM for most systems. |
| * Maintained in RAM with hooks to memory-mapping APIs for MMU or PCI-E |
| systems. |
| |
| * Updates for Memory Domain APIs |
| |
| * All threads now are always a member of a memory domain. A new |
| memory domain ``k_mem_domain_default`` introduced for initial threads |
| like the main thread. |
| * The ``k_mem_domain_destroy()`` and ``k_mem_domain_remove_thread()`` APIs |
| are now deprecated and will be removed in a future release. |
| * Header definitions moved to ``include/app_memory/mem_domain.h``. |
| |
| * Thread stack specification improvements |
| |
| * Introduced a parallel set of ``K_KERNEL_STACK_*`` APIs for specifying |
| thread stacks that will never host user threads. This will conserve memory |
| as ancillary data structures (such as privilege mode elevation stacks) will |
| not need to be created, and certain alignment requirements are less strict. |
| |
| * Internal interfaces to the architecture code have been simplified. All |
| thread stack macros are now centrally defined, with arches declaring |
| support macros to indicate the alignment of the stack pointer, the |
| stack buffer base address, and the stack buffer size. |
| |
| Architectures |
| ************* |
| |
| * ARC: |
| |
| |
| * ARM: |
| |
| * AARCH32 |
| |
| * Added support for ARM Cortex-M1 architecture. |
| * Implemented the timing API in Cortex-M architecture using the Data |
| Watchpoint and Trace (DWT) unit. |
| * The interrupt vector relaying feature support was extended to Cortex-M |
| Mainline architecture variants. |
| * Cortex-M fault handling implementation was enhanced by adding an option to |
| generate and supply the full register state to the kernel fatal error |
| handling mechanism. |
| * Fixed Cortex-M boot sequence for single-threaded applications |
| (CONFIG_MULTITHREADING=n). |
| * Added thread safety to Non-Secure entry function calls in ARMv8-M |
| architecture. |
| * Fixed stack randomization for main thread. |
| * Fixed exception vector table alignment in Cortex-M architecture |
| * Increased test coverage in QEMU for ARMv6-M architecture variant. |
| * Removed the implementation of arch_mem_domain_* APIs for Cortex-M |
| |
| * AARCH64 |
| |
| * Re-implemented thread context-switch to use the _arch_switch() API |
| |
| * POSIX: |
| |
| |
| * RISC-V: |
| |
| |
| * x86: |
| |
| * x86 MMU paging support has been overhauled to meet CONFIG_MMU requirements. |
| |
| * ``arch_mem_map()`` is implemented. |
| * Restored support for 32-bit non-PAE paging. PAE use is now controlled |
| via the ``CONFIG_X86_PAE`` option |
| * Initial kernel page tables are now created at build time. |
| * Page tables are no longer strictly identity-mapped |
| |
| * Added ``zefi`` infrastructure for packaging the 64-bit Zephyr kernel into |
| an EFI application. |
| |
| * Added a GDB stub implementation that works over serial for x86 32-bit. |
| |
| Boards & SoC Support |
| ******************** |
| |
| * Added support for these SoC series: |
| |
| * ARM Cortex-M1/M3 DesignStart FPGA |
| * NXP i.MX RT685, i.MX8M Mini, and LPC11U6x |
| |
| * Made these changes in other SoC series: |
| |
| * STM32L4/STM32WB: Added support for Low Power Mode |
| * STM32H7/STM32WB/STM32MP1: Added Dual Core concurrent register access |
| protection using HSEM |
| |
| * Added support for these ARM boards: |
| |
| * ARM Cortex-M1/M3 DesignStart FPGA reference designs running on the Digilent |
| Arty A7 development board |
| * Laird Connectivity Pinnacle 100 Modem Development board (pinnacle_100_dvk) |
| * nRF21540 Devkit (nrf21540dk_nrf52840). |
| * NXP i.MX RT685 EVK, i.MX8M Mini EVK, LPCXpresso LPC11U68 |
| * OLIMEX-STM32-H103 |
| * ST B_L4S5I_IOT01A Discovery kit |
| * ST NUCLEO-H745ZI-Q |
| * Waveshare Open103Z |
| * WeAct Studio Black Pill V2.0 |
| |
| * Made these changes in other boards: |
| |
| * b_l072z_lrwan1: Added flash, LoRa, USB, EEPROM, RNG |
| * nucleo_l552ze_q: Added non secure target and TFM support |
| * STM32 boards: Enabled MPU on all boards with at least 64K flash |
| * lpcxpresso55s69: Added TFM support |
| |
| * Added support for these following shields: |
| |
| * Adafruit WINC1500 Wifi |
| * ARM Ltd. V2C-DAPLink for DesignStart FPGA |
| * Atmel AT86RF2XX Transceivers |
| * Buydisplay 2.8" TFT Touch Shield with Arduino adapter |
| * DAC80508 Evaluation Module |
| |
| Drivers and Sensors |
| ******************* |
| |
| * ADC |
| |
| * Audio |
| |
| |
| * Bluetooth |
| |
| * L2CAP RX MTU is now controlled by CONFIG_BT_L2CAP_RX_MTU when |
| CONFIG_BT_ACL_FLOW_CONTROL is disabled, previously this was controlled |
| by CONFIG_BT_RX_BUF_LEN. If CONFIG_BT_RX_BUF_LEN has been changed from its |
| default value then CONFIG_BT_L2CAP_RX_MTU should be set to |
| CONFIG_BT_RX_BUF_LEN - 8. |
| |
| * CAN |
| |
| |
| * Clock Control |
| |
| * STM32: Various changes including Flash latency wait states computation, |
| configuration option additions for H7 series, and fixes on F0/F3 PREDIV1 |
| support |
| * Added LPC11U6X driver. |
| |
| * Console |
| |
| |
| * Counter |
| |
| * STM32: Added support on F0/F2 series |
| * Added MCUX PIT counter driver for Kinetis K6x and K8x SoCs. |
| |
| * Crypto |
| |
| |
| * DAC |
| |
| * STM32: Added support for F0/F2/G4/L1 series |
| |
| * Debug |
| |
| |
| * Display |
| |
| |
| * DMA |
| |
| * STM32: Number of changes including k_malloc removal, driver piority init |
| increase, get_status API addition and various cleanups. |
| * Added MCUX EDMA driver for i.MX RT and Kinetis K6x SoCs. |
| * Added MCUX LPC driver for LPC and i.MX RT6xx SoCs. |
| |
| * EEPROM |
| |
| * Added driver supporting the on-chip EEPROM found on NXP LPC11U6X MCUs. |
| * Fixed at2x cs gpio flags extraction from DT. |
| |
| * Entropy |
| |
| * STM32: Added support for ISR mode. Added support on F7/H7/L0 series |
| |
| * ESPI |
| |
| |
| * Ethernet |
| |
| * Added VLAN support to Intel e1000 driver. |
| * Added Ethernet support to stm32h7 based boards (with IT based TX) |
| * Moved stm32 driver to device tree configuration |
| * Added support for setting fixed configuration and read from device tree |
| for ENET ETH interface and PHY in mcux driver. |
| * Added support for device that do not use SMI for PHY setup in mcux driver. |
| * Added support for multiport gPTP in native_posix driver. This allows gPTP |
| bridging testing. |
| * Fixed MAC registers in enc28j60 driver to the latest Microchip reference manual. |
| |
| * Flash |
| |
| * The driver selected by ``CONFIG_SPI_FLASH_W25QXXDV`` has been |
| removed as it is unmaintained and all its functionality is available |
| through ``CONFIG_SPI_NOR``. Out of tree uses should convert to the |
| supported driver using the ``jedec,spi-nor`` compatible. |
| * Enhanced nRF QSPI NOR flash driver (nrf_qspi_nor) so it supports unaligned read offset, read length and buffer offset. |
| * Added SFDP support in spi_nor driver. |
| * Fixed regression in nRF flash driver (soc_flash_nrf) with :option:`CONFIG_BT_CTLR_LOW_LAT` option. |
| * Introduced NRF radio scheduler interface in nRF flash driver (soc_flash_nrf). |
| * STM32: Factorized support for F0/F1/F3. Added L0 support. Various fixes. |
| |
| * GPIO |
| |
| * Added driver for the Xilinx AXI GPIO IP |
| * Added LPC11U6X driver. |
| |
| * Hardware Info |
| |
| |
| * I2C |
| |
| * Introduced new driver for NXP LPC11U6x SoCs. See |
| :option:`CONFIG_I2C_LPC11U6X`. |
| |
| * Introduced new driver for emulated I2C devices, where I2C operations |
| are forwarded to a module that emulates responses from hardware. |
| This enables testing without hardware and allows unusual conditions |
| to be synthesized to test driver behavior. See |
| :option:`CONFIG_I2C_EMUL`. |
| |
| * STM32: V1: Reset i2c device on read/write error |
| * STM32: V2: Added dts configurable Timing option |
| * Fixed MCUX LPI2C driver transfer status after NACK. |
| |
| * I2S |
| |
| |
| * IEEE 802.15.4 |
| |
| * Allow user to disable auto-start of IEEE 802.15.4 network interface. |
| By default the IEEE 802.15.4 network interface is automatically started. |
| * Added support for setting TX power in rf2xx driver. |
| * Added Nordic 802.15.4 multiprotocol support, see :option:`CONFIG_NRF_802154_MULTIPROTOCOL_SUPPORT`. |
| * Added Kconfig :option:`CONFIG_IEEE802154_VENDOR_OUI_ENABLE` option for defining OUI. |
| |
| * Interrupt Controller |
| |
| |
| * IPM |
| |
| |
| * Keyboard Scan |
| |
| |
| * LED |
| |
| |
| * LED Strip |
| |
| |
| * LoRa |
| |
| |
| * Modem |
| |
| * Added option to query the IMSI and ICCID from the SIM. |
| * Added support for offloaded Sierra Wireless HL7800 modem. |
| |
| * PECI |
| |
| |
| * Pinmux |
| |
| * Added LPC11U6X driver. |
| |
| * PS/2 |
| |
| |
| * PWM |
| |
| * STM32: Refactored using Cube LL API |
| |
| * Sensor |
| |
| * Added API function ``sensor_attr_get()`` for getting a sensor's |
| attribute. |
| * Added support for wsen-itds Accel Sensor. |
| |
| |
| * Serial |
| |
| * Added driver for the Xilinx UART Lite IP |
| * Added NXP IUART driver for i.MX8M Mini. |
| * Implemented uart_config_get API in MCUX UART driver |
| * Added LPC11U6X driver. |
| |
| * SPI |
| |
| * The SPI driver subsystem has been updated to use the flags specified |
| in the cs-gpios devicetree properties rather than the |
| SPI_CS_ACTIVE_LOW/HIGH configuration options. Devicetree files that |
| specify 0 for this field will probably need to be updated to specify |
| GPIO_ACTIVE_LOW. SPI_CS_ACTIVE_LOW/HIGH are still used for chip |
| selects that are not specified by a cs-gpios property. |
| * Added driver for the Xilinx AXI Quad SPI IP |
| * STM32: Various fixes around DMA mode. |
| * Extended MCUX Flexcomm driver to support slave mode. |
| * Added optional delays to MCUX DSPI and LPSPI drivers. |
| |
| * Timer |
| |
| |
| * USB |
| |
| * The usb_enable() function, which, for some samples, was invoked |
| automatically on system boot up, now needs to be explicitly called |
| by the application in order to enable the USB subsystem. If your |
| application relies on any of the following Kconfig options, then |
| it shall also enable the USB subsystem: |
| |
| * :option:`CONFIG_OPENTHREAD_NCP_SPINEL_ON_UART_ACM` |
| * :option:`CONFIG_USB_DEVICE_NETWORK_ECM` |
| * :option:`CONFIG_USB_DEVICE_NETWORK_EEM` |
| * :option:`CONFIG_USB_DEVICE_NETWORK_RNDIS` |
| * :option:`CONFIG_TRACING_BACKEND_USB` |
| * :option:`CONFIG_USB_UART_CONSOLE` |
| |
| * Video |
| |
| |
| * Watchdog |
| |
| * Added MCUX WWDT driver for LPC SoCs. |
| |
| |
| * WiFi |
| |
| * Added IPv6 support to Simplelink driver. |
| * Added DNS offloading support to eswifi driver. |
| * Fixed esp driver offload protocol parsing. |
| * Fixed esp driver GPIO reset control logic. |
| * Fixed eswifi driver offloading packet parsing. |
| |
| |
| Networking |
| ********** |
| |
| * The new TCP stack is enabled by default. The legacy TCP stack is not yet |
| removed and can be used if needed. |
| * The network interface is made a kernel object. This allows better access |
| control handling when usermode is enabled. |
| * The kernel stacks are used in network related threads to save memory when |
| usermode is enabled. |
| * Network statistics collection can be enabled in key points of the network |
| stack. This can be used to get information where time is spent in RX or TX. |
| * The BSD socket sendmsg() can now be used with AF_PACKET type sockets. |
| * Added support for enabling OpenThread reference device. |
| * Added support for enabling MQTT persistent sessions. |
| * Added "net tcp recv" command to net shell to enable TCP RX in manual testing. |
| * Added ObjLnk resource type support to LWM2M. |
| * Added userspace support to MQTT publisher, echo-server and echo-client |
| sample applications. |
| * Added support to rejecting received and unsupported PPP options. |
| * Added support for select() when using socket offloading. |
| * Added support for IPv6 multicast packet routing. |
| * Added support to SOCK_DGRAM type sockets for AF_PACKET family. |
| * Added support for using TLS sockets when using socket offloading. |
| * Added additonal checks in IPv6 to ensure that multicasts are only passed to the |
| upper layer if the originating interface actually joined the destination |
| multicast group. |
| * Allow user to specify TCP port number in HTTP request. |
| * Allow application to initialize the network config library instead of network |
| stack calling initialization at startup. This enables better control of |
| network resources but requires application to call net_config_init_app() |
| manually. |
| * Allow using wildcards in CoAP resource path description. |
| * Allow user to specify used network interface in net-shell ping command. |
| * Allow user to select a custom mbedtls library in OpenThread. |
| * Removed dependency to :option:`CONFIG_NET_SOCKETS_POSIX_NAMES` from offloaded |
| WiFi device drivers. |
| * Print more gPTP status information in gptp net shell. |
| * Fixed the network traffic class statistics collection. |
| * Fixed WiFi shell when doing a scan. |
| * Fixed IPv6 routes when nexthop is link local address of the connected peer. |
| * Fixed IPv6 Router Solicitation message handling. |
| * Fixed BSD socket lib and set errno to EBADF if socket descriptor is invalid. |
| * Fixed received DNS packet parsing. |
| * Fixed DNS resolving by ignoring incoming queries while we are resolving a name. |
| * Fixed CoAP zero length option parsing. |
| * Fixed gPTP port numbering to start from 1. |
| * Fixed gPTP BMCA priority vector calculation. |
| * Fixed multiple interface bound socket recv() for AF_PACKET sockets. |
| * Fixed PPP Term-Req and Term-Ack packet length when sending them. |
| * Fixed PPP ipv6cp and ipcp Configure-Rej handling. |
| * Fixed PPP option parsing and negotiation handling. |
| * Fixed PPP ipcp option handling when the protocol goes down. |
| * Fixed PPP ipv6cp and ipcp network address removal when connection goes down. |
| * Added support to rejecting received and unsupported PPP options. |
| * Added initial support for PAP authentication in PPP. |
| * Fixed a race PPP when ppp_fsm_open() was called in CLOSED state. |
| * Fixed LWM2M FOTA socket closing. |
| * Fixed LWM2M block transfer retransmissions. |
| * Fixed LWM2M opaque data transfer in block mode. |
| * Fixed LWM2M Security and Server object instance matching. |
| * Fixed LWM2M updating lifetime on Register Update event. |
| * Fixed MQTT double CONNACK event notification on server reject. |
| |
| |
| Bluetooth |
| ********* |
| |
| * Host: |
| |
| |
| * BLE split software Controller: |
| |
| * HCI Driver: |
| |
| * bt_hci_evt_is_prio() removed, use bt_hci_evt_get_flags() instead when |
| CONFIG_BT_RECV_IS_RX_THREAD is defined and call bt_recv and bt_recv_prio |
| when their flag is set, otherwise always call bt_recv(). |
| |
| Build and Infrastructure |
| ************************ |
| |
| * Devicetree: |
| |
| * Added new devicetree macros that provide a default value if the property |
| or cell accessor doesn't contain the requested data |
| |
| * Added support for inferring bindings for ``/zephyr,user`` devicetree node |
| to allow applications an easy way to specify application specific |
| devicetree properties without having a binding. |
| |
| * Support for multiple SOC and ARCH roots. |
| The :ref:`SOC_ROOT <application>` and ``ARCH_ROOT`` variables used to specify |
| support files for out of tree SoCs and architectures now accept multiple |
| paths, separated by semicolons. As a result, the ``SOC_DIR`` Kconfig variable |
| is no longer supported. |
| |
| Uses like ``source $(SOC_DIR)/<path>`` must be changed to |
| ``rsource <relative>/<path>`` or similar. |
| |
| * BOARD, SOC, DTS, and ARCH roots can now be specified in each module's |
| :file:`zephyr/module.yml` file; see :ref:`modules_build_settings`. |
| |
| Libraries / Subsystems |
| ********************** |
| |
| * Disk |
| |
| |
| * Management |
| |
| * MCUmgr: |
| |
| * Moved mcumgr into its own directory. |
| * UDP port switched to using kernel stack. |
| * smp: added missing socket close in error path. |
| |
| * Added support for Open Supervised Device Protocol (OSDP), see :option:`CONFIG_OSDP`. |
| |
| * updatehub: |
| |
| * Moved updatehub from lib to subsys/mgmt directory. |
| * Fixed out-of-bounds access and add flash_img_init return value check. |
| * Fixed getaddrinfo resource leak. |
| |
| |
| * Settings: |
| |
| * If a setting read is attempted from a channel that doesn't support reading return an error rather than faulting. |
| * disallow modifying the content of a static subtree name. |
| |
| |
| * Random |
| |
| |
| * POSIX subsystem: |
| |
| |
| * Power management: |
| |
| * Logging: |
| |
| * Fixed immediate logging with multiple backends. |
| * Switched logging thread to use kernel stack. |
| * Allow users to disable all shell backends at one using :option:`CONFIG_SHELL_LOG_BACKEND`. |
| * Added Spinel protocol logging backend. |
| * Fixed timestamp calculation when using NEWLIB |
| |
| * LVGL |
| |
| * Library has been updated to the new major release v7.0.2. |
| |
| * It is important to note that v7 introduces multiple API changes and new |
| configuration settings, so applications developed on v6 or previous versions |
| will likely require some porting work. Refer to `LVGL 7 Release notes |
| <https://github.com/lvgl/lvgl/releases/tag/v7.0.0>`_ for more information. |
| |
| * LVGL Kconfig option names have been aligned with LVGL. All LVGL |
| configuration options ``LV_[A-Z0-9_]`` have a matching Zephyr Kconfig |
| option named as ``CONFIG_LVGL_[A-Z0-9_]``. |
| |
| * LVGL Kconfig constants have been aligned with upstream suggested defaults. |
| If your application relies on any of the following Kconfig defaults consider |
| checking if the new values are good or they need to be adjusted: |
| |
| * :option:`CONFIG_LVGL_HOR_RES_MAX` |
| * :option:`CONFIG_LVGL_VER_RES_MAX` |
| * :option:`CONFIG_LVGL_DPI` |
| * :option:`CONFIG_LVGL_DISP_DEF_REFR_PERIOD` |
| * :option:`CONFIG_LVGL_INDEV_DEF_READ_PERIOD` |
| * :option:`CONFIG_LVGL_INDEV_DEF_DRAG_THROW` |
| * :option:`CONFIG_LVGL_TXT_LINE_BREAK_LONG_LEN` |
| * :option:`CONFIG_LVGL_CHART_AXIS_TICK_LABEL_MAX_LEN` |
| |
| * Note that ROM usage is significantly higher on v7 for minimal |
| configurations. This is in part due to new features such as the new drawing |
| system. LVGL maintainers are currently investigating ways for reducing the |
| library footprint when some options are not enabled, so you should wait for |
| future releases if higher ROM usage is a concern for your application. |
| |
| |
| * Shell: |
| |
| * Switched to use kernel stacks. |
| * Fixed select command. |
| * Fixed prompting dynamic commands. |
| |
| |
| * Tracing: |
| * Tracing backed API now checks if init function exists prio to calling it. |
| |
| * Shell: |
| * Change behavior when more than ``CONFIG_SHELL_ARGC_MAX`` arguments |
| are passed. Before 2.3 extra arguments were joined to the last argument. |
| In 2.3 extra arguments caused a fault. Now the shell will report that the |
| command cannot be processed. |
| |
| * Debug: |
| |
| * Core Dump: |
| |
| * Added the ability to do core dump when fatal error is encountered. |
| This allows dumping the CPU registers and memory content for offline |
| debugging. |
| * Cortex-M, x86, and x86-64 are supported in this release. |
| * A data output backend utilizing the logging subsystem is introduced |
| in this release. |
| |
| HALs |
| **** |
| |
| * HALs are now moved out of the main tree as external modules and reside in |
| their own standalone repositories. |
| |
| Documentation |
| ************* |
| |
| |
| Tests and Samples |
| ***************** |
| * nvs: Do full chip erase when flashing. |
| * nrf: onoff_level_lighting_vnd_app: Fixed build with mcumgr. |
| * drivers: flash_shell: new commands write_unaligned and write_pattern. |
| * bluetooth: hci_spi: Fixed cmd_hdr and acl_hdr usage. |
| * Removed zephyr nfc sample. |
| * drivers: Fixed uninitialized spi_cfg in spi_fujitsu_fram sample. |
| * Updated configuration for extended advertising in Bluetooth hci_uart and hci_rpmsg examples. |
| |
| Issue Related Items |
| ******************* |
| |
| These GitHub issues were addressed since the previous 2.3.0 tagged |
| release: |