Part 1
요약·해설
1,334줄 공식 원문 전체, 목록형 변경 항목 656개, CVE 6건과 GitHub 참조 9건을 빠짐없이 번역하며 symbol·Kconfig·DeviceTree compatible·source path를 원형대로 보존합니다.
GNSS · keyboard matrix · socket service · CoAP service · LLEXT
TF-M 2.0 · Mbed TLS 3.5.2 · userspace · LTO
Mesh 1.1 · Xtensa · ARCv3 · 30+ boards · native_sim
Part 2
접을 수 있는 영어 원문 전체
영어 원문 전체 펼치기
8FCFD584943386287489138C8E83A7AC5FC22B6659D77AFAB0C18C8F96D575DC
:orphan:
.. _zephyr_3.6:
Zephyr 3.6.0
############
We are pleased to announce the release of Zephyr version 3.6.0.
Major enhancements with this release include:
* New :ref:`GNSS subsystem <gnss_api>` added, enabling geo-awareness in Zephyr applications.
* New API and drivers introduced for interfacing with :ref:`keyboard matrices <gpio-kbd>`.
* New socket and CoAP service libraries streamlining the implementation of socket and CoAP servers
respectively, while also optimizing the use of resources.
* Integrated Trusted Firmware-M (TF-M) 2.0, including an update to Mbed TLS 3.5.2.
* Improved LLEXT tooling, simplifying module creation in the Zephyr build system.
* Userspace support extended to Xtensa architecture.
* Build system now supports Link Time Optimization (LTO), reducing the size of the final image.
* Bluetooth Mesh protocol 1.1 now supported by default.
* Major updates to the documentation of the :ref:`native simulator <native_sim>`, clarifying
supported peripherals and how to use them.
* Over 30 new supported boards, spanning all Zephyr-supported architectures.
An overview of the changes required or recommended when migrating your application from Zephyr
v3.5.0 to Zephyr v3.6.0 can be found in the separate :ref:`migration guide<migration_3.6>`.
The following sections provide detailed lists of changes by component.
Security Vulnerability Related
******************************
The following CVEs are addressed by this release:
More detailed information can be found in:
https://docs.zephyrproject.org/latest/security/vulnerabilities.html
* CVE-2023-5779 `Zephyr project bug tracker GHSA-7cmj-963q-jj47
<https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-7cmj-963q-jj47>`_
* CVE-2023-6249 `Zephyr project bug tracker GHSA-32f5-3p9h-2rqc
<https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-32f5-3p9h-2rqc>`_
* CVE-2023-6749 `Zephyr project bug tracker GHSA-757h-rw37-66hw
<https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-757h-rw37-66hw>`_
* CVE-2023-6881 `Zephyr project bug tracker GHSA-mh67-4h3q-p437
<https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-mh67-4h3q-p437>`_
* CVE-2023-7060: Under embargo until 2024-03-14
* CVE-2024-1638 `Zephyr project bug tracker GHSA-p6f3-f63q-5mc2
<https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-p6f3-f63q-5mc2>`_
Architectures
*************
* ARC
* Enabled hardware prefetcher and shared cluster cache (SCM - Shared Cluster
Memory) for ARCv3 processors (HS5x & HS6x).
* Disabled Thread-local Storage support for platforms with two or more register banks.
* Fixed unstable work of application built with MetaWare toolchain for hardware
platforms (garbage in .device_states section).
* ARM
* MPU regions are now always cleared before initialization.
* Standardized on :c:func:`arch_secondary_cpu_init` to provide consistency
across all architectures.
* Renamed :c:func:`z_arm_prep_c` as :c:func:`z_prep_c` to provide
consistency across all architectures.
* Renamed the exception header to be consistent across all architectures.
* GDB stubs added (currently only supports Zynq-7000).
* Added support for custom interrupt controllers using
:kconfig:option:`CONFIG_ARM_CUSTOM_INTERRUPT_CONTROLLER`.
* MMU and MPU initialization moved to :c:func:`z_prep_c` for Cortex-A and
Cortex-R to enable initialization by individual cores.
* Common Cortex-M MPU code moved to ``arch/arm/core/mpu``.
* Xtensa
* Removed the unused Kconfig option ``CONFIG_XTENSA_NO_IPC``.
* Added userspace support via MMU.
Bluetooth
*********
* Audio
* Changed ``bt_bap_scan_delegator_subgroup`` to :c:struct:`bt_bap_bass_subgroup` and
made it independent of :kconfig:option:`CONFIG_BT_BAP_SCAN_DELEGATOR`.
* Modified :c:func:`bt_bap_stream_send` to no longer take a timestamp as parameter,
and added :c:func:`bt_bap_stream_send_ts` that does.
* Modified :c:func:`bt_cap_stream_send` to no longer take a timestamp as parameter,
and added :c:func:`bt_cap_stream_send_ts` that does.
* Assigned number values have been moved from :file:`include/zephyr/bluetooth/audio/lc3.h` to
:file:`include/zephyr/bluetooth/audio/audio.h` and the ``LC3`` infix have been removed.
* The CAP initiator APIs have been streamlined and follow the same parameter pattern.
* Added Kconfig options to make MCC functionality optional to reduce memory usage for simple
clients.
* Added CAP Commander change volume and change volume offset.
* Added proper support for doing decoding in the application instead of in the controller by
modifying how the ISO data path is configured.
* Added :c:func:`bt_csip_set_member_unregister` to unregister a CSIS instance.
* Added helper functions to get and set assigned number values in codec configuration and
codec capabilities.
* Added support for the new mono audio location.
* Added ISO state callbacks for streams so the user knows the state of the CIS.
* Added :c:func:`bt_pacs_set_available_contexts_for_conn` to set available context per connection.
* Refactored the :c:struct:`bt_bap_base` to be an abstract struct with new helper functions,
so that Zephyr supports all BASEs regardless of the size.
* Host
* Added ``recycled()`` callback to :c:struct:`bt_conn_cb`, which notifies listeners when a
connection object has been freed, so it can be utilized for different purposes. No guarantees
are made to what listener will be granted the object, as only the first claim is served.
* Modified :c:func:`bt_iso_chan_send` to no longer take a timestamp as parameter,
and added :c:func:`bt_iso_chan_send_ts` that does.
* Mesh
* Added the delayable messages functionality to apply random delays for
the transmitted responses on the Access layer.
The functionality is enabled by the :kconfig:option:`CONFIG_BT_MESH_ACCESS_DELAYABLE_MSG`
Kconfig option.
* The Bluetooth Mesh protocol 1.1 is now supported by default.
* Controller
* Added deinit implementation for ESP32 controller.
* HCI Driver
* Split ST HCI SPI Bluetooth driver from the Zephyr one to provide more features
based on ST SPI protocols V1 and V2. As a result, :dtcompatible:`st,hci-spi-v1` and
:dtcompatible:`st,hci-spi-v2` were introduced.
Boards & SoC Support
********************
* Added support for these SoC series:
* Added support for Renesas R-Car Gen4 series.
* Added support for STM32F303xB SoC variants.
* Added support for STM32H7B0xx SoC variants.
* Added support for STM32L010xx SoC variants.
* Added support for STM32L081xx SoC variants.
* Added support for STM32U5A9xx SoC variants.
* Added support for NXP S32K1 devices.
* Added support for NXP IMX8ULP SoC.
* Added support for NXP MIMXRT595 DSP core.
* Made these changes in other SoC series:
* Nordic SoCs now imply :kconfig:option:`CONFIG_XIP` instead of selecting it. This allows for
creating RAM-based applications by disabling it.
* BLE is now supported on STM32WBA series.
* xtensa: imx8: Split the generic i.MX8 SoC into i.MX8QXP and i.MX8QM.
* LPC55xxx: Fixed the system hardware clock cycle rate.
* Added support for these ARM boards:
* Added support for Adafruit QTPy RP2040 board: ``adafruit_qt_py_rp2040``.
* Added support for FANKE FK7B0M1-VBT6 board: ``fk7b0m1_vbt6``.
* Added support for Renesas R-Car Spider board CR52: ``rcar_spider_cr52``.
* Added support for ST Nucleo F722ZE board: ``nucleo_f722ze``.
* Added support for ST STM32H750B Discovery Kit: ``stm32h750b_dk``.
* Added support for ST STM32L4R9I Discovery board: ``stm32l4r9i_disco``.
* Added support for ST STM32U5A9J-DK discovery kit: ``stm32u5a9j_dk``.
* Added support for ST Nucleo WBA55CG board: ``nucleo_wba55cg``.
* Added support for ST STM32WB5MM-DK Discovery board: ``stm32wb5mm_dk``.
* Added support for Wiznet W5500 Evaluation Pico board: ``w5500_evb_pico``.
* Added support for ADI boards: ``adi_sdp_k1``, ``adi_eval_adin1110ebz``,
``adi_eval_adin2111ebz``.
* Added support for NXP UCANS32K1SIC board: ``ucans32k1sic``.
* Added support for this RISC-V board:
* Added Lilygo TTGO T8-C3 board: ``ttgo_t8c3``.
* Added support for these Xtensa boards:
* Added support for NXP iMX8ULP board: ``nxp_adsp_imx8ulp``.
* Added Heltec Wireless Stick Lite (V3) board: ``heltec_wireless_stick_lite_v3``.
* Added KINCONY-KC868-A32 board: ``kincony_kc868_a32``.
* Added Lolin ESP32-S2 Mini board: ``esp32s2_lolin_mini``.
* Added Lilygo TTGO LoRa32 board: ``ttgo_lora32``.
* Added M5Stack AtomS3 board: ``m5stack_atoms3``.
* Added M5Stack AtomS3-Lite board: ``m5stack_atoms3_lite``.
* Added M5Stack StampS3 board: ``m5stack_stamps3``.
* Made these changes for ARM boards:
* Added support for low power on G1120B0MIPI using RT595.
* Added support for lpspi, lpi2c on NXP board: ``mimx93_evk_a55``.
* Fixed partition naming on ``lpcxpresso55s69`` to use the standard slot
naming used by TFM-enabled Zephyr platforms.
* Enabled support for linkserver debugger on ``frdm_kl25z``, ``mimxrt1015_evk``,
``mimxrt1020_evk``, ``mimxrt1050_evk``, ``mimxrt685_evk``, ``frdm_k64f``.
* Switched MCUBoot FW Update mode on NXP boards from Swap & Scratch to Swap & Move.
* Made these changes for RISC-V boards:
* Enabled ADC support on ``longan_nano``.
* Made these changes for native/POSIX boards:
* The :ref:`simulated nrf5340 targets<nrf5340bsim>` now include the IPC and MUTEX peripherals,
and support OpenAMP to communicate between the cores.
It is now possible to run the BLE controller or 802.15.4 driver in the net core, and application
and BT host in the app core.
* The nrf*_bsim simulated targets now include models of the UART peripheral. It is now possible
to connect a :ref:`nrf52_bsim<nrf52_bsim>` UART to another, or a UART in loopback, utilizing
both the new and legacy nRFx UART drivers, in any mode.
* For the native simulator based targets it is now possible to set via Kconfig command line
options which will be handled by the executable as if they were provided from the invoking
shell.
* For all native boards, the native logger backend will now also be
used even if the UART is enabled.
* Several bugfixes and other minor additions to the nRF5x HW models.
* Multiple documentation updates and fixes for all native boards.
* Added support for these following shields:
* Added support for M5Stack-Core2 base: ``m5stack_core2_ext``.
* Added support for MikroElektronika ACCEL 13 Click: ``mikroe_accel13_click``.
* Added support for Waveshare Pico UPS-B: ``waveshare_pico_ups_b``.
* Added support for X-NUCLEO-BNRG2A1: BLE expansion board: ``x_nucleo_bnrg2a1``.
* Added support for X-NUCLEO-IKS4A1: MEMS Inertial and Environmental Multi
sensor: ``x_nucleo_iks4a1``.
Build system and infrastructure
*******************************
* Added functionality for Link Time Optimization.
This change includes interrupt script generator rebuilding and adds the
following Kconfig options:
- :kconfig:option:`CONFIG_ISR_TABLES_LOCAL_DECLARATION`:
LTO compatible interrupt tables parser
- :kconfig:option:`CONFIG_LTO`: Enable Link Time Optimization
Currently the LTO compatible interrupt tables parser is only supported by ARM architectures and
GCC compiler/linker.
See pull request :github:`66392` for details.
* Dropped the ``COMPAT_INCLUDES`` option. It was unused since Zephyr v3.0.
* Fixed an issue whereby board revision ``0`` did not include overlay files for that revision.
* Added ``PRE_IMAGE_CMAKE`` and ``POST_IMAGE_CMAKE`` hooks to sysbuild modules, which allows for
modules to run code after and before each image's cmake invocation.
* Added :kconfig:option:`CONFIG_ROM_END_OFFSET` option which allows reducing the size of an image.
This is intended for use with firmware signing scripts which add additional data to the end of
images outside of the build itself.
* Added MCUboot image size reduction to sysbuild images which include MCUboot. This prevents
issues with building firmware images that are too large for MCUboot to swap.
* Deprecated :kconfig:option:`CONFIG_BOOTLOADER_SRAM_SIZE`. Users of this should transition to
having RAM set up properly in their board devicetree files.
* Fixed an issue whereby shields were processed in order of the root they resided in rather than
the order they were supplied to cmake in.
* Fixed an issue whereby using some shields with sysbuild would cause a cmake Kconfig error.
* Fixed an issue where the macros ``_POSIX_C_SOURCE`` and ``_XOPEN_SOURCE`` would be defined
globally when building with Picolibc or for the native (``ARCH_POSIX``) targets.
After this change users may need to define them for their own applications or libraries.
* Added support for sysbuild setting a signing script (``SIGNING_SCRIPT``). See
:ref:`west-extending-signing` for details.
* Added support for ``FILE_SUFFIX`` in the build system which allows for adding suffixes to
application Kconfig fragment file names and devicetree overlay file names. See
:ref:`application-file-suffixes` and :ref:`sysbuild_file_suffixes` for details.
* Deprecated ``CONF_FILE`` ``prj_<build>.conf`` build type.
* Added `-Wdouble-promotion` as a default warning when compiling to warn developers with
single-precision floats easily being promoted to double-precision.
Drivers and Sensors
*******************
* ADC
* Power Management for ADC is now supported on STM32 devices.
* STM32 ADC driver now supports mixing shared and separate IRQs (for instance on STM32G473
which has 5 ADCs, ADC1 and ADC2 share one IRQ while ADC3, ADC4 and ADC5 each have unique IRQs).
Enabling all instances in the same application is not possible on such devices as of now.
* Auxiliary Display
* Added Sparkfun SerLCD driver.
* Audio
* Added a driver :file:`drivers/audio/dmic_mcux.c` for NXP DMIC peripheral. This peripheral is
present on the ``iMX RT5xx`` and ``iMX RT6xx`` parts, as well as some LPC SOCs.
* Battery backed up RAM
* STM32WL devices now support BBRAM.
* CAN
* Added system call :c:func:`can_get_mode()` for getting the current operation mode of a CAN
controller.
* Add system call :c:func:`can_get_transceiver()` for getting the CAN transceiver associated with
a CAN controller.
* Added accessor functions for the CAN statistics.
* Added common bit error counter to the CAN statistics.
* Added CAN statistics support to the following drivers:
* :dtcompatible:`microchip,mcp2515`
* :dtcompatible:`espressif,esp32-twai`
* :dtcompatible:`kvaser,pcican`
* Added CAN controller driver for the Nuvoton NuMaker series
(:dtcompatible:`nuvoton,numaker-canfd`).
* Added CAN controller driver for the Infineon XMC4xxx family
(:dtcompatible:`infineon,xmc4xxx-can` and :dtcompatible:`infineon,xmc4xxx-can-node`).
* Added support for the NXP S32K1xx family to the :dtcompatible:`nxp,flexcan` driver.
* All Bosch M_CAN-based front-end drivers now use named IRQs, "int0" and "int1".
* The :dtcompatible:`zephyr,native-linux-can` driver now supports being built with embedded C
libraries.
* Added support for setting "raw" timing values from the :ref:`CAN shell <can_shell>`.
* Clock control
* Renesas R-Car clock control driver now supports Gen4 SoCs.
* Renamed ``CONFIG_CLOCK_CONTROL_RA`` to :kconfig:option:`CONFIG_CLOCK_CONTROL_RENESAS_RA`.
* On STM32 devices, :dtcompatible:`st,stm32-hse-clock` now allows setting a ``css-enabled``
property which enables HSE clock security system (CSS).
* Counter
* The nRFx counter driver now works with simulated nrf*_bsim targets.
* Added support for top value configuration and fixed a bug in the native posix driver.
* Added support for the MRT counter for NXP RT6xx, RT5xx and LPC55xxx.
* Crypto
* STM32WB devices now support crypto API through AES block.
* Display
* Introduced frame buffer config to STM32 LTDC driver.
* DMA
* STM32WBA Devices now support GPDMA.
* Introduced a new DMA driver :file:`drivers/dma/dma_nxp_edma.c` for NXP's eDMA IP.
* Entropy
* The "native_posix" entropy driver now accepts a new command line option ``seed-random``.
When used, the random generator will be seeded from ``/dev/urandom``
* On STM32devices, RNG block is now suspended when pool is full to save power.
* Ethernet
* The "native_posix" ethernet driver now supports being built with embedded C libraries.
* Enabled HW checksum offloading for STM32H7.
* Added implementation of Open Alliance's TC6 T1S driver.
* Added xmc4xxx driver.
* Added NXP enet driver with PTP support.
* Added KSZ8081 PHY driver.
* Added proper IPv4 multicast support to NXP mcux driver.
* Added LAN8651 T1S support.
* Added DSA support to STM32.
* Added tja1103 PHY support.
* Added Nuvoton numaker support.
* Fixed lan865x driver. Transmission speed improvements, IRQ handling fixes.
* Fixed s32_gmac driver. Link up/down handling fixes.
* Fixed phy_mii driver. The invalid phy id was incorrectly checked.
* Fixed sam_gmac driver. PTP clock adjustment was wrong for negative values.
* Fixed adin2111 driver. Initialization was done incorrectly when working with adin2110.
* Fixed ksz8081 driver. Logging changes, RMII clock fixes, GPIO pin fixes.
* Added a driver :file:`drivers/ethernet/eth_nxp_enet.c` for NXP ENET which is a rework of
the old driver :file:`drivers/ethernet/eth_mcux.c`. The old driver became
unmaintainable due to fundamental problems with the lack of PHY abstraction. The new driver
is still experimental and requires maturation. Eventually the old driver will be deprecated
and this new driver will be supported instead.
* Flash
* Redesigned the Atmel SAM controller to fully utilize flash page layout.
* ``spi_nor`` driver now sleeps between polls in ``spi_nor_wait_until_ready``. If this is not
desired (For example due to ROM constraints in a bootloader),
:kconfig:option:`CONFIG_SPI_NOR_SLEEP_WHILE_WAITING_UNTIL_READY` can be disabled.
* Flash readout protection configuration was added on STM32G4 and STM32L4 series.
* ``nordic_qspi_nor`` driver now supports user-configurable QSPI timeout with
:kconfig:option:`CONFIG_NORDIC_QSPI_NOR_TIMEOUT_MS`.
* GNSS
* Added GNSS device driver API and subsystem for parsing and publishing location,
datetime, and satellite information, enabled by
:kconfig:option:`CONFIG_GNSS` and :kconfig:option:`CONFIG_GNSS_SATELLITES`.
The GNSS subsystem and device drivers are based on the :ref:`modem` subsystem,
using the ``modem_pipe`` module, modem backends, and ``modem_chat`` module to
communicate with the modems. For systems which already contain a cellular modem,
adding a GNSS modem is very efficient due to the reuse of subsystems.
* Added GNSS-specific, safe, string-to-integer parsing utilities, enabled by
:kconfig:option:`CONFIG_GNSS_PARSE`.
* Added NMEA0183 parsing utilities, enabled by
:kconfig:option:`CONFIG_GNSS_NMEA0183`.
* Added extensive GNSS data logging, enabled by
:kconfig:option:`CONFIG_GNSS_DUMP_TO_LOG`.
* Added generic NMEA0183 over UART based modem device driver, matching the
devicetree compatible :dtcompatible:`gnss-nmea-generic`.
* Added fully featured device driver for the Quectel LCX6G series GNSS modems,
matching the devicetree compatibles :dtcompatible:`quectel,lc26g`,
:dtcompatible:`quectel,lc76g` and :dtcompatible:`quectel,lc86g`.
* GPIO
* Renesas R-Car GPIO driver now supports Gen4 SoCs.
* Renamed ``CONFIG_GPIO_RA`` to :kconfig:option:`CONFIG_GPIO_RENESAS_RA`.
* Added a new GPIO driver (:file:`drivers/gpio/gpio_mcux_rgpio.c`). This
driver is used for i.MX93 and i.MX8ULP.
* I2C
* :c:func:`i2c_get_config` is now supported on the STM32 driver.
* I2S
* STM32H7 devices now support I2S.
* I3C
* The Legacy Virtual Register defines have been renamed from ``I3C_DCR_I2C_*``
to ``I3C_LVR_I2C_*``.
* Added the ability to specify a start address when searching for a free I3C
address to be reserved. This requires a new function argument to
:c:func:`i3c_addr_slots_next_free_find`.
* Added a field named ``num_xfer`` in :c:struct:`i3c_msg` and
:c:struct:`i3c_ccc_taget_payload` as an output to indicate the actual
number of bytes transferred.
* Cadence I3C driver (:file:`drivers/i3c/i3c_cdns.c`):
* Added support to handle controller abort where the target does not emit
end of data for register read but continues sending data.
* Updated the timeout calculation to be coupled with CPU speed instead of
a fixed number of retries.
* NXP MCUX I3C driver (:file:`drivers/i3c/i3c_mcux.c`):
* Fixed ``mcux_i3c_config_get()`` not returning the configuration to the caller.
* Improved the FIFO read routine to support higher transfer rates.
* Removed the infinite wait for MCTRLDONE in auto IBI.
* Added ``disable-open-drain-high-pp`` property to
:dtcompatible:`nxp,mcux-i3c`, which allows alternative high time for
open-drain clock.
* IEEE 802.15.4
* Removed :kconfig:option:`CONFIG_IEEE802154_SELECTIVE_TXPOWER` Kconfig option.
* Input
* The ``short-codes`` property of :dtcompatible:`zephyr,input-longpress` is
now optional. The node can be used by specifying only input and long codes.
* Added support for keyboard matrix drivers, including a new
:dtcompatible:`gpio-kbd-matrix` and :dtcompatible:`input-keymap` drivers.
See :ref:`gpio-kbd` for more details.
* Added a pair of input codes to HID codes translation functions. See
:c:func:`input_to_hid_code` and :c:func:`input_to_hid_modifier`.
* Added power management support to :dtcompatible:`gpio-keys`
:dtcompatible:`focaltech,ft5336`.
* Added a :dtcompatible:`zephyr,native-linux-evdev` device node for getting
input events from a Linux evdev device node.
* Added support for optical encoders and power management to :dtcompatible:`gpio-qdec`.
* New driver :dtcompatible:`analog-axis`.
* Added ESP32 touch sensor driver including a :dtcompatible:`espressif,esp32-touch`.
* MDIO
* Fixed initialization priorities of NXP s32 NETC drivers.
* Fixed SAM GMAC transfer timeout errors caused by MDIO clock not being initialized.
* Fixed ESP32 MDIO driver being enabled when node was not status okay.
* Added support for C22 and C45 APIs on S32 GMAC.
* Added MDIO driver for NXP ENET peripheral.
* Added xmc4xxx MDIO drivers.
* Fixed build errors caused by mdio.h driver header not including errno.h
* MFD
* Added support for :dtcompatible:`maxim,max20335`.
* Added support for :dtcompatible:`adi,ad5592`.
* Added separate initialization priorities for :dtcompatible:`nordic,npm1300` and
:dtcompatible:`nordic,npm6001`.
* PCIE
* Fixed MMIO size calculation by disabling IO/memory decoding beforehand.
* Modified to use PNP ID for PRT retrieval.
* MEMC
* Added a new driver for NXP FlexRAM.
* MIPI-DBI
* Introduced a new :ref:`MIPI DBI driver class <mipi_dbi_api>`.
* Pin control
* Renesas R-Car pinctrl driver now supports Gen4 SoCs.
* Renamed ``CONFIG_PINCTRL_RA`` to :kconfig:option:`CONFIG_PINCTRL_RENESAS_RA`.
* Renesas R-Car pinctrl driver now supports voltage control for R8A77951 and
R8A77961 SoCs.
* Added driver for ZynqMP / Mercury XU.
* Added driver for i.MX8QM/QXP.
* Added driver for Renesas RZ/T2M.
* On STM32 devices, pins assigned to JTAG/SW port can now be put to analog state when
:kconfig:option:`CONFIG_PM` enabled and :kconfig:option:`CONFIG_DEBUG` disabled.
* PWM
* Fixed ESP32S3 low frequency PWM issue.
* Regulators
* Added new API functions
* :c:func:`regulator_set_active_discharge`
* :c:func:`regulator_get_active_discharge`
* :c:func:`regulator_list_current_limit`
* ``startup-delay-us`` and ``off-on-delay-us`` are now supported for all regulators.
* Added non-multithreading support.
* Added support for :dtcompatible:`maxim,max20335-regulator`.
* Added ASYS UVLO configuration for :dtcompatible:`nxp,pca9420`.
* Added LDO/DCDC support for :dtcompatible:`renesas,smartbond-regulator`.
* Added LDO soft start configuration for :dtcompatible:`nordic,npm1300-regulator`.
* Fixed init priority for :dtcompatible:`x-powers,axp192-regulator`.
* Fixed LDO GPIO control for :dtcompatible:`nordic,npm1300-regulator`.
* Retained memory
* Retained memory driver backend for registers was added.
* Retained memory API status was changed from experimental to unstable.
* RTC
* Added Atmel SAM driver.
* SMBUS:
* SMBUS is now supported on STM32 devices.
* SDHC
* Added SDHC driver for Cadence SDHC IP.
* Added SDHC driver for Infineon CAT1 IP.
* Added support for SDIO commands to iMX USDHC SDHC driver.
* Sensor
* Fixed arithmetic overflow in the LTRF216A driver.
* Fixed negative temperature calculation in MAX31865 driver.
* Added TI TMAG5273 3D Hall sensor driver.
* Added Vishay VCNL36825T proximity sensor driver.
* Added BMA4xx accelerometer sensor emulator.
* Added white channel support to the VEML7700 ambient light sensor driver.
* Added ST LIS2DE12 accelerometer sensor driver.
* Added Bosch BMP581 pressure sensor driver.
* Added support for triggering multiple sensor devices in the sensor shell.
* Added Aosong AGS10 TVOC air quality gas sensor driver.
* Extended MAX31865 temperature sensor driver to support changing three-wire
mode at runtime.
* Fixed Bosch BMI160 gyro range calculation and added support for getting
attributes.
* Optimized Bosch BMA4xx accelerometer sample calculation, improving
accuracy.
* Removed floating point arithmetic from the TI BQ274xx gauge driver.
* Fixed ST drivers Kconfig dependency to the HAL_ST module.
* Added Bosch BMA4xx accelerometer sensor driver.
* Added ST LIS2DU12 accelerometer sensor driver.
* Extended NTC thermistor driver to support TDK NTCG103JF103FT1.
* Added NXP S32 quadrature decoder driver.
* Fixed LSM6DSV16x gyro range table.
* Fixed missing return value checks in ADLTC2990, TSL2540, MAX17055 drivers.
* Added ST LPS28DFW pressure sensor driver.
* Fixed interrupt in BMI323 driver.
* Added devicetree properties macros to various ST sensor drivers.
* Added Renesas HS300x temperature/humidity sensor driver.
* Added Gas Sensing Solutions' ExplorIR-M CO2 sensor driver.
* Fixed self test delay in ADXL367 accelerometer sensor driver.
* Added ST LPS22DF pressure sensor driver.
* Added new streaming APIs and implemented in the ICM42688 driver.
* Added trigger support to the ADXL367 accelerometer sensor driver.
* Added PM suspend and resume support to the LSM6DSL accelerometer sensor
driver.
* Added AMS TSL2561 light sensor driver.
* Extended BQ274xx driver to support configuring and confirming the chemistry
profile.
* Extended LIS2DH and LSM6DSV16x drivers to support configuring INT1/INT2 in
devicetree.
* Added die temperature measurement support to NPM1300 charger driver.
* Added ADLTC2990 sensor emulator.
* Extended MPU6050 driver to support MPU6886 variant.
* Added ADXL367 accelerometer sensor driver.
* Added LiteOn LTR-F216A illuminance sensor driver.
* Added Memsic MC3419 accelerometer sensor driver.
* Added AMD SB temperature sensor driver.
* Added ESP32S3 internal temperature sensor driver.
* Added new self-documenting macros for setting ST sensor devicetree
properties (e.g., LSM6DSV16X_DT_ODR_AT_60Hz). (:github:`65410`)
* Serial
* Added drivers to support UART on Renesas RA and RZ/T2M.
* Added support for higher baud rate for ITE IT8xxx2.
* Added driver to support Intel Lightweight UART.
* Added UART asynchronous RX helper.
* Added support for async API on NS16550 driver.
* Updated ``uart_esp32`` to use serial port configuration from devicetree.
* Added an adaptation API to provide interrupt driven API for drivers
which have only implemented async API.
* Emulated UART driver (:file:`drivers/serial/uart_emul.c`):
* Added emulated interrupt based TX.
* Added emulated error for testing.
* Modified to use local work queue for data transfer.
* Modified FIFO size and its handling to be more aligned with real hardware.
* On STM32 devices, it is now possible to enable FIFO by setting a ``fifo-enable``
property in targeted serial node, with the following benefits:
In TX, FIFO allows to work in burst mode, easing scheduling of loaded applications.
It also allows more reliable communication with UART devices sensitive to variation of inter-frames delays.
In RX, FIFO reduces overrun occurrences.
* SPI
* On STM32H7 devices, ``fifo-enable`` property allows using SPI block FIFO. This
feature is still experimental and requires maturation.
* On STM32 devices impacted by BSY bit erratum, a workaround was implemented.
* USB
* On STM2G0 devices, property ``crs-usb-sof`` in ``clk_hsi48`` node enables support
for Clock Recovery System, allowing a more stable HSI48 clock and hence resilient USB
connection.
* On compatible STM32 devices, isochronous endpoints are now functional thanks to the
use of double buffering.
* Added new UDC driver for DWC2 controller.
* Added support for Nuvoton NuMaker series USBD controllers.
* W1
* Added 1-Wire GPIO master driver. See the :dtcompatible:`zephyr,w1-gpio`
devicetree binding for more information.
* Wi-Fi
* Added Infineon airoc driver.
* Fixed esp32 driver. Decreased minimum heap size, disabled automatic reconnection on leaving.
* Fixed esp_at driver. Allow building without IPv4 support. Passive Receive mode fixes. Depend on UART runtime configuration.
* Fixed winc1500 driver. Disconnect result event was not returned when disconnecting.
Networking
**********
* CoAP:
* Added support for Echo and Request-Tag CoAP options (RFC 9175).
* Changed :c:func:`coap_remove_observer` API function return type to bool.
* Introduced CoAP service library, which simplifies implementation of CoAP
server functionality.
* Updated CoAP server example to use CoAP service library.
* Added shell module for CoAP server.
* Fixed NULL pointer dereference in :c:func:`coap_packet_remove_option`.
* Added CoAP observer/service network events using the Network Event subsystem.
* Changed :c:func:`coap_pending_init` API function to take
:c:struct:`coap_transmission_parameters` instead of retry count.
* Added new API functions:
* :c:func:`coap_get_transmission_parameters`
* :c:func:`coap_set_transmission_parameters`
* :c:func:`coap_handle_request_len`
* :c:func:`coap_well_known_core_get_len`
* :c:func:`coap_uri_path_match`
* :c:func:`coap_packet_is_request`
* :c:func:`coap_find_observer`
* :c:func:`coap_find_observer_by_token`
* :c:func:`coap_pendings_count`
* :c:func:`coap_header_set_code`
* Connection Manager:
* Added a generic Wi-Fi connectivity backend.
* DHCP:
* Added missing DHCPv6 state structure initialization when initializing
network interface.
* DHCP-assigned IPv4 address is now removed when interface goes down.
* Added DHCPv4 server implementation.
* Rearranged DHCPv4 file structure. All DHCPv4 related files are now grouped
within ``subsys/net/lib/dhcpv4``.
* Moved DHCPv6 files to ``subsys/net/lib/dhcpv6`` to align with DHCPv4.
* DNS:
* Added support for enabling mDNS listener on all network interfaces.
* Added VLAN support to the ``mdns_responder`` sample.
* Fixed TTL/hop limit set on DNS packets.
* Added :kconfig:option:`CONFIG_DNS_RESOLVER_AUTO_INIT` which allows to disable
automatic initialization of the default DNS context on boot.
* Ethernet:
* Manual registration of ARP entries is now supported.
* Added PHY mode selection to device tree.
* Added TX-Injection mode support.
* gPTP:
* The local port identity is now used when forwarding sync messages.
* Fixed double converted byte order of BMCA info.
* GM PRIO root system id is now always used for announce messages.
* Created gPTP handler thread stack size Kconfig option.
* Inverted the priority of outgoing packets.
* ICMP:
* Fixed an error being emitted when unhandled ICMP message was received.
* Fixed a bug where ICMP Echo Reply could be sent without proper source IP
address set.
* Fixed a packet leak in ICMP Echo Request handlers in case priority check
failed.
* Improved thread safety of the module handling Neighbor Discovery.
* Added support for IPv6 Neighbor reachability hints, allowing to reduce
ICMPv6 traffic for active connections.
* IP:
* Fixed L3/L4 checksum calculation/validation for IP-fragmented packets on
interfaces that support checksum offload.
* Fixed net_context not being set on IP fragmented packets, preventing send
callback from being called.
* It is now possible to have separate IPv4 TTL value and IPv6 hop limit value for
unicast and multicast packets. This can be controlled in each socket via
:c:func:`setsockopt` API.
* Improved source IP address verification in the IP stack. Addresses received
to/from loopback address on non-loopback interfaces are dropped.
* Added new functions to verify if IPv6 address is site local or global.
* Added support for setting peer IP address in :c:struct:`net_pkt` structure
for offloaded interfaces. This allows for :c:func:`recvfrom` to return a
valid address in offloaded case.
* LwM2M:
* Added :kconfig:option:`CONFIG_LWM2M_UPDATE_PERIOD` which configures the LwM2M
Update period regardless of the lifetime value.
* Fixed composite read/write access rights check.
* Added shell command to delete object and resource instances.
* Fixed a bug in block-wise transfer where block-wise ACKs were sent with
wrong response code.
* Fixed object version reporting for LwM2M version 1.1.
* Added support for DTLS Connection Identifier in the LwM2M engine.
* Added support for LwM2M Server Disable executable resource.
* Implemented fallback mechanism for LwM2M server selection during registration
phase. The engine will now try to choose a different server if the current one
becomes unavailable or disabled.
* Added support for storing LwM2M error list in settings.
* Fixed pmin observer attribute handling in tickless mode.
* Added support for notifying the application about ongoing CoAP transmissions
with ``set_socket_state()`` callback.
* Deprecated unsigned 64-bit integer value type, as it's not represented in the spec.
Use signed 64-bit integer instead.
* Added a callback for LwM2M Gateway object, which allows to handle LwM2M messages
with prefixed path.
* Added LwM2M-specific macros for object initialization during boot.
* Several other minor bugfixes ans improvements.
* Misc:
* Added support for compile time network event handlers using the macro
:c:macro:`NET_MGMT_REGISTER_EVENT_HANDLER`.
* Added the :kconfig:option:`CONFIG_NET_MGMT_EVENT_WORKER` choice to
allow emitting network events using the system work queue or synchronously.
* Removed redundant Network Connectivity API documentation page.
* Improved thread safety of the network connections subsystem.
* Removed ``eth_native_posix`` sample.
* Removed redundant ``arb`` and ``fv2015`` fields from
``struct net_pkt_cb_ieee802154``.
* Introduced a separate mutex for TX at the network interface level to prevent
concurrent access on TX to drivers that are not re-entrant.
* Fixed netmask not being registered for loopback address.
* Added support for binding to a specific network interface at the net_context
level.
* Added IGMPv3 support.
* Added a new network event, ``NET_EVENT_HOSTNAME_CHANGED``, triggered upon
hostname change.
* Refactored net_context option getters/setters to reduce code duplication.
* Fixed a possible packet leak at the ARP level, in case of errors during ARP
packet creation.
* Added support for analyzing SNTP time uncertainty.
* Fixed network interface being brought up even when underlying device is not
ready.
* Added start/stop functions for dummy interfaces.
* Added a detailed :ref:`network configuration <network_configuration_guide>`
guide to the documentation.
* Added :kconfig:option:`CONFIG_NET_HOSTNAME_DYNAMIC` option, which allows to
enable setting hostname at runtime.
* MQTT-SN:
* Added :c:func:`mqtt_sn_get_topic_name` API function.
* Fixed handling of incoming Register messages when wildcard subscription is used.
* OpenThread:
* Implemented the following OpenThread platform APIs:
* ``otPlatRadioSetRxOnWhenIdle()``
* ``otPlatResetToBootloader()``
* ``otPlatCryptoPbkdf2GenerateKey()``
* Updated OpenThread platform UART driver so that it no longer waits for
communication with a host to start during boot.
* Added BLE TCAT implementation in OpenThread platform.
* Updated Crypto PSA backend for OpenThread with additional algorithms.
* Fixed ``otPlatAssertFail()`` so that it prints the location of the actual
assert instead of the function itself.
* PPP:
* Fixed PPP connection termination when interface goes down.
* Shell:
* Refactored networking shell module so that instead of large single file, it
is split into submodules, on a per command basis.
* Fixed unexpected timeout message when executing loopback ping.
* Added ``net sockets`` command to print information about open sockets and
socket services.
* Join IPv4/IPv6 multicast groups, if needed, when adding IPv4/IPv6 multicast
addresses via shell.
* Fixed ``tcp connect`` command operation (TCP context released prematurely).
* Added support for Echo option in telnet shell backend.
* Fixed unnecessary connection close in telnet shell backend in case of
non-fatal EAGAIN or ENOBUFS errors.
* Fixed double packet dereference in ping reply handler.
* Fixed possible deadlock when executing ``net arp`` command.
* Added more detailed Ethernet statistics printout for ``net stats`` command.
* Added ``net dhcpv4 server`` commands for DHCPv4 server management.
* Added shell module to manage TLS credentials.
* Sockets:
* Added support for v4-mapping-to-v6, which allows IPv4 and IPv6 to share the
same port space.
* Added support for :c:macro:`IPV6_V6ONLY` socket option.
* Added support for :c:macro:`SO_ERROR` socket option.
* Fixed :c:func:`select` not setting ``writefds`` in case of errors.
* Added support for object core, which allows to track networks sockets and
their statistics.
* Added support for :c:func:`recvmsg`.
* Added support for :c:macro:`IP_PKTINFO` and :c:macro:`IPV6_RECVPKTINFO`
socket options.
* Added support for :c:macro:`IP_TTL` socket option.
* Added support for IPv4 multicast :c:macro:`IP_ADD_MEMBERSHIP` and
:c:macro:`IP_DROP_MEMBERSHIP` socket options.
* Added support for IPv6 multicast :c:macro:`IPV6_ADD_MEMBERSHIP` and
:c:macro:`IPV6_DROP_MEMBERSHIP` socket options.
* Improved doxygen documentation of BSD socket API.
* Fixed POLLERR error reporting in TLS sockets.
* Fixed DTLS handshake processing during :c:func:`poll`.
* Aligned DTLS socket :c:func:`connect` behavior with regular TLS (handshake
during connect call).
* Added Socket Service library, which allows registering multiple socket-based
network services and processing them within a single thread.
* Added a new ``echo_service`` sample for Socket Service.
* Added support for :c:macro:`SO_DOMAIN` socket option.
* Fixed DTLS connection timeout when monitoring socket with :c:func:`poll`.
* Fixed NULL link layer address pointer dereference on packet socket, in case
of packet loopback.
* Several other minor bugfixes and improvements.
* TCP:
* TCP stack now replies with RST packet in response to connection attempt on
a closed port.
* Fixed remote address passed in :c:func:`accept` call.
* Fixed reference counting during active handshake to prevent TCP context
being released prematurely.
* Fixed compilation with :kconfig:option:`CONFIG_NET_TCP_CONGESTION_AVOIDANCE`
disabled.
* Reworked TCP data queueing API to prevent TCP stack from overflowing TX window.
* Fixed possible race condition between TCP workqueue and other threads when
releasing TCP context.
* Fixed possible race condition between input thread and TCP workqueue.
* Added support for TCP Keep-Alive feature.
* Fixed a bug where TCP state machine could get stuck in LAST_ACK state
during passive connection close.
* Fixed a bug where TCP state machine could get stuck in FIN_WAIT_1 state
in case peer did not respond.
* Several other minor bugfixes ans improvements.
* TFTP:
* Fixed potential buffer overflow when copying TFTP error message.
* Improved logging in case of errors.
* Wi-Fi:
* Added Wi-Fi driver version information to Wi-Fi shell.
* Added AP (Access Point) mode support to Wi-Fi shell.
* Added Regulatory channel information.
* Added Wi-Fi bindings to connection manager.
* Fixed Wi-Fi shell. SSID print fixes. Help text fixes. Channel validation fixes.
* Fixed TWT functionality. Teardown status was not updated. Powersave fixes.
* zperf:
* Improved IP address binding. Zperf will now bind to any address by default and
allow to override this with Kconfig/API provided address.
* Fixed TCP packet counting when transmitting.
* Refactored UDP/TCP received to use Socket Service to save memory.
* Fixed zperf session leak on interrupted downloads.
* Fixed the calculation ratio between Mbps, Kbps and bps.
* The zperf sample now supports relocating network code to RAM.
USB
***
* Device support:
* Introduced new USB Audio 2 implementation that uses devicetree for
instantiation, hiding descriptor complexity from the application. The initial
implementation is limited to full speed only and provides the absolute
minimum set of features required for basic implicit and explicit feedback.
Interrupt notification is not supported.
* Added support for SetFeature(TEST_MODE).
Devicetree
**********
Bindings
========
* Introduced new SPI properties ``spi-cpol``, ``spi-cpha``, and ``spi-hold-cs`` to be used by
the macro :c:macro:`SPI_CONFIG_DT` in order to set SPI mode in a Devicetree file.
Libraries / Subsystems
**********************
* Management
* Fixed an issue in MCUmgr image management whereby erasing an already erased slot would return
an unknown error. It now returns success.
* Fixed MCUmgr UDP transport structs being statically initialised. This results in about a
~5KiB flash saving.
* Fixed an issue in MCUmgr which would cause a user data buffer overflow if the UDP transport was
enabled on IPv4 only but IPv6 support was enabled in the kernel.
* Implemented datetime functionality in MCUmgr OS management group. This makes use of the RTC
driver API.
* Fixed an issue in MCUmgr console UART input whereby the FIFO would be read outside of an ISR,
which is not supported in the next USB stack.
* Fixed an issue whereby the ``mcuboot erase`` DFU shell command could be used to erase the
MCUboot or currently running application slot.
* Fixed an issue whereby messages that were too large to be sent over the UDP transport would
wrongly return :c:enum:`MGMT_ERR_EINVAL` instead of :c:enum:`MGMT_ERR_EMSGSIZE`.
* Fixed an issue where confirming an image in Direct XIP mode would always confirm the image in
the primary slot even when executing from the secondary slot. Now the currently active image is
always confirmed.
* Added support for retrieving registered command groups, to support registering and deregistering
default command groups at runtime, allowing an application to support multiple implementations
for the same command group.
* Fixed an issue in MCUmgr FS management whereby the semaphore lock would not be given if an
error was returned, leading to a possible deadlock.
* Added support for custom payload MCUmgr handlers. This can be enabled with
:kconfig:option:`CONFIG_MCUMGR_MGMT_CUSTOM_PAYLOAD`.
* Fixed an issue in MCUmgr image management whereby an error would be returned if a command was
sent to erase the slot which was already erased.
* Added support for image slot size checking to ensure an update can be utilised by MCUboot.
This can be performed by using sysbuild when building both application and MCUboot by enabling
:kconfig:option:`CONFIG_MCUMGR_GRP_IMG_TOO_LARGE_SYSBUILD` or by use of bootloader information
sharing from MCUboot by enabling
:kconfig:option:`CONFIG_MCUMGR_GRP_IMG_TOO_LARGE_BOOTLOADER_INFO`.
* Logging
* Added an option to remove string literals from the binary when dictionary-based logging is used.
* Optimized the most common logging messages (strings with up to 2 numeric arguments). Optimization
is done for code size (significant gain seen on riscv32) and performance.
* Extended logging frontend API to optionally implement dedicated functions for optimized messages.
Optional API is enabled by :kconfig:option:`CONFIG_LOG_FRONTEND_OPT_API`.
* Added support for runtime message filtering for the logging frontend.
* Added option to support multiple instances of the UART logging backend.
* Fixed userspace issue for :c:func:`printk` when :kconfig:option:`CONFIG_LOG_PRINTK` is enabled.
* Added compile time detection of logging messages that use character pointers for ``%p``.
It must be avoided when dictionary-based logging is used and strings are stripped from the
binary. When an erroneous case is detected, the user message is replaced with an error message
that suggests pointer casting must be added.
* Removed remaining references to v2 logging. Renamed :c:func:`log2_generic` to :c:func:`log_generic`.
* Modem modules
* Added ``TRANSMIT_IDLE`` event to the ``modem_pipe`` module which notifies the user of the pipe
that the backend has transmitted all bytes placed in its buffer using
:c:func:`modem_pipe_transmit()`.
The event greatly increases the efficiency of transmitting large quantities of data if used to
dynamically manage the delay between calls to :c:func:`modem_pipe_transmit()`.
* Implemented ``TRANSMIT_IDLE`` event in all modem backends.
* Extended all modem modules to utilize the ``TRANSMIT_IDLE`` event to dynamically manage the delay
between calls to :c:func:`modem_pipe_transmit()`. This addition reduced the utilization of the
system workqueue while transmitting large, continuous quantities of data, by 86%, while only
reducing the throughput by 12%. This optimization additionally allows lower priority threads,
like the deferred logging thread, to run during the transmission (it was blocked by the
relentless, continuous calls to :c:func:`modem_pipe_transmit()`).
* Improved ``modem_pipe`` event dispatching. The ``modem_pipe`` module now invokes the
``RECEIVE_READY`` event every time the pipe is attached using :c:func:`modem_pipe_attach()`
if it has data ready to be read, and always invokes ``TRANSMIT_IDLE`` when the pipe is
either opened or attached. This ensures event driven users of the modem pipe module can
rely solely on the events to start read/transmit work. A test suite has been added to
complement the improvements.
* Extended ``modem_cmux`` module to support acting both as DTE (user application) and DCE (modem).
With this addition, two Zephyr applications can communicate with each other through their
respective ``modem_cmux`` instances.
* Picolibc
* Updated to version 1.8.6. This removes the :c:macro:`_POSIX_C_SOURCE` definition from the build
system, so applications will need to add this if they use APIs outside of the Zephyr
requirements.
* Added new :c:func:`printf` modes, :kconfig:option:`CONFIG_PICOLIBC_IO_LONG_LONG` and
:kconfig:option:`CONFIG_PICOLIBC_IO_MINIMAL`. These provide applications with finer grained
control over the level of support provided by the library to control text space usage. By
default, the correct level of support is selected based upon other configuration parameters.
* Added :kconfig:option:`CONFIG_PICOLIBC_ASSERT_VERBOSE`. This option, which is false by default,
controls whether the :c:func:`assert` function displays verbose information, including the file
name, line number, function name and failing expression text, when the assertion fails. Leaving
this disabled saves text space.
* :kconfig:option:`CONFIG_THREAD_LOCAL_STORAGE` can now be disabled while using Picolibc. This is
very helpful in diagnosing issues when using Picolibc as those are often caused by enabling TLS
and not caused by using the library itself.
* Numerous improvements in the library including code-size reductions in areas like printf and
ctype and various fixes in the math library.
* Power management
* Introduced Atmel SAM SUPC functions to allow wakeup sources and poweroff.
* STM32F4 devices now support stop mode thanks to the use of a RTC based idle timer which
keeps track of tick evolution while cortex systick is off.
* :c:func:`pm_device_runtime_put_async()` got a parameter to specify a minimum delay to
the operation. This is useful to avoid multiple states transitions when a device is used.
* Devices that don't need to block when suspending or resuming can now be defined as ISR
safe (``PM_DEVICE_ISR_SAFE``). For those devices, Zephyr is able to reduce RAM consumption
and runtime device power management can be safely used from interrupts.
* Optimizations in device runtime power management. :c:func:`pm_device_runtime_get` and
:c:func:`pm_device_runtime_put` no longer wait for a pending operation to be concluded if it is still
in the work queue. In this case, the pending work is just canceled and the device state updated.
* The Kconfig options below were added to customize the initialization priority of different
power domains.
* :kconfig:option:`CONFIG_POWER_DOMAIN_GPIO_INIT_PRIORITY`
* :kconfig:option:`CONFIG_POWER_DOMAIN_GPIO_MONITOR_INIT_PRIORITY`
* :kconfig:option:`CONFIG_POWER_DOMAIN_INTEL_ADSP_INIT_PRIORITY`
* Crypto
* Mbed TLS updated to 3.5.2. Full release notes can be found in:
https://github.com/Mbed-TLS/mbedtls/releases/tag/v3.5.2
* Retention
* Fixed issue whereby :kconfig:option:`CONFIG_RETENTION_BUFFER_SIZE` values over 256 would cause
an infinite loop due to use of 8-bit variables.
* SD
* Added support for SDIO devices.
* Storage
* File systems: LittleFS module has been updated to version 2.8.1.
* Following Flash Map API macros, marked in 3.2 as deprecated, have been removed:
``FLASH_AREA_ID``, ``FLASH_AREA_OFFSET``, ``FLASH_AREA_SIZE``,
``FLASH_AREA_LABEL_EXISTS`` and ``FLASH_AREA_DEVICE``.
* POSIX API
* Completed support for ``POSIX_THREADS_EXT``, ``XSI_THREADS_EXT``,
``POSIX_CLOCK_SELECTION``, and ``POSIX_SEMAPHORES`` Option Groups.
* Completed support for ``_POSIX_MESSAGE_PASSING`` and
``_POSIX_PRIORITY_SCHEDULING`` Options.
* Fixed Coverity-CID 211585, 334906, 334909, and 340851.
* Improved structure and accuracy of POSIX documentation.
* Improved navigation and organization of POSIX Kconfig options.
* Added support to allocate and free stacks up to 8 MB with pthread_attr_t.
* Added support for deferred and asynchronous thread cancellation.
* Added dining philosophers sample application.
* Added support for named semaphores.
* Added a top-level ``posix`` command in the Zephyr shell. Zephyr shell utilities for
the POSIX API can be added as subcommands (e.g. ``posix uname -a``)
* Added support for async thread cancellation and ``SIGEV_THREAD``, ``CLOCK_REALTIME``.
* Added compile-time-constant sysconf() implementation.
* LoRa/LoRaWAN
* Added LoRaWAN remote multicast support with :kconfig:option:`CONFIG_LORAWAN_REMOTE_MULTICAST`
in preparation for OTA firmware upgrade support.
* ZBus
* Replaced mutexes with semaphores to lock channels and implement the Highest Locker Protocol (HLP)
priority boost for the zbus operations. This feature avoids priority inversions and preemptions,
making the VDED delivery process faster and more consistent. (:github:`63183`)
* Fixed documentation for :c:func:`zbus_chan_add` and :c:func:`zbus_chan_rm` adding the timeout
argument. (:github:`65544`)
* Fixed warning when mixing C and C++ files using zbus. (:github:`65222`)
* :c:macro:`ZBUS_CHANNEL_DEFINE` macro is now compatible with C++. (:github:`65196`)
* Fixed parameter order of net buf pool fixed definition. (:github:`65039`)
* Refactored the benchmark sample, adding message subscribers. (:github:`64524`)
* Renamed ``CONFIG_ZBUS_MSG_SUBSCRIBER_NET_BUF_DYNAMIC`` and
``CONFIG_ZBUS_MSG_SUBSCRIBER_NET_BUF_STATIC`` to
:kconfig:option:`CONFIG_ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_DYNAMIC` and
:kconfig:option:`CONFIG_ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_STATIC`. (:github:`65632`)
HALs
****
* STM32
* Updated STM32F1 to cube version V1.8.5.
* Updated STM32F7 to cube version V1.17.1.
* Updated STM32H7 to cube version V1.11.1.
* Updated STM32L4 to cube version V1.18.0.
* Updated STM32U5 to cube version V1.4.0.
* Updated STM32WBA to cube version V1.2.0.
* Updated STM32WB to cube version V1.18.0.
MCUboot
*******
* Fixed compatible sector checking in bootutil.
* Fixed Kconfig issue with saving encrypted TLVs not depending on encryption being enabled.
* Fixed issue with missing condition check for applications in sysflash include file.
* Fixed issue with single slot encrypted image listing support in boot_serial.
* Fixed issue with allowing MBEDTLS Kconfig selection when tinycrypt is used.
* Fixed missing response if echo command was disabled in boot_serial.
* Fixed issue with USB configurations not generating usable images.
* Added debug logging for boot status write in bootutil.
* Added estimated image overhead size to cache in sysbuild.
* Added firmware loader operating mode which allows for a dedicated secondary slot image that
is used to update the primary image.
* Added error if main thread is not pre-emptible when USB CDC serial recovery is enabled.
* Added error if USB CDC and console are both enabled and set to the same device.
* Removed the deprecated ``CONFIG_ZEPHYR_TRY_MASS_ERASE`` Kconfig option.
* Updated zcbor to version 0.8.1 and re-generated boot_serial files.
* Moved IO functions out of main to separate file.
* Made ``align`` parameter of imgtool optional.
* Added MCUBoot support for ``mimxrt1010_evk``, ``mimxrt1015_evk``,
``mimxrt1040_evk``, ``lpcxpresso55s06``, ``lpcxpresso55s16``,
``lpcxpresso55s28``, ``lpcxpresso55s36``, ``lpcxpresso55s69_cpu0``.
* Added :kconfig:option:`CONFIG_MCUBOOT_IMGTOOL_OVERWRITE_ONLY` which passes the --overwrite-only option
to imgtool to avoid adding the swap status area size when calculating overflow.
It is used by non-swap update modes.
* The MCUboot version in this release is version ``2.1.0+0-dev``.
zcbor
*****
zcbor has been updated from 0.7.0 to 0.8.1.
Full release notes can be found at:
https://github.com/zephyrproject-rtos/zcbor/blob/0.8.0/RELEASE_NOTES.md and
https://github.com/zephyrproject-rtos/zcbor/blob/0.8.1/RELEASE_NOTES.md
Highlights:
* Addded support for unordered maps.
* Performance improvements.
* Naming improvements for generated code.
* Bugfixes.
LVGL
****
LVGL has been updated from 8.3.7 to 8.3.11.
Detailed release notes can be found at:
https://github.com/zephyrproject-rtos/lvgl/blob/zephyr/docs/CHANGELOG.md
Additionally, the following changes in Zephyr were done:
* Added the :dtcompatible:`zephyr,lvgl-keypad-input` compatible for keypad input.
* Fixed issue with the Zephyr log levels not mapping properly to LVGL log levels.
* Fixed issue where setting :kconfig:option:`CONFIG_LV_Z_FULL_REFRESH` did not
set :kconfig:option:`CONFIG_LV_Z_VDB_SIZE` to 100 percent.
Tests and Samples
*****************
* :ref:`native_sim<native_sim>` has replaced :ref:`native_posix<native_posix>` as the default
test platform.
:ref:`native_posix<native_posix>` remains supported and used in testing but will be deprecated
in a future release.
* Bluetooth split stacks tests, where the BT host and controller are run in separate MCUs, are
now run in CI based on the :ref:`nrf5340_bsim<nrf5340bsim>` targets.
Several other runtime AMP tests based on these targets have been added to CI, including tests
of OpenAMP, the mbox and IPC drivers/subsystem, and the logger multidomain functionality.
* Runtime UART tests have been added to CI based on the :ref:`nrf52_bsim<nrf52_bsim>` target.
These include tests of the nRFx UART driver and networked BT stack tests with the host and
controller in separate devices communicating over the HCI UART driver.
* Fixed an issue in :zephyr:code-sample:`smp-svr` sample whereby if USB was already initialised,
application would fail to boot properly.
* Added an LVGL sample :zephyr:code-sample:`lvgl-accelerometer-chart` showcasing displaying of live
sensor data in a chart widget.
* Added ESP32-S3 IPM support in :zephyr:code-sample:`ipm-esp32`.
* Added ESP32 memory-mapped flash access sample in :zephyr:code-sample:`esp32-flash-memory-mapped`.
* Added ESP32 PWM loopback test case.
* Added support in the mbox sample for NXP boards ``MIMXRT1160-EVK``, ``MIMXRT1170-EVK``,
``MIMXRT1170-EVKB``, ``LPCXpresso55S69``.
* Added a sample ``flexram-magic-addr`` for ``mimxrt11xx_cm7`` to show how to use flexram magic
address functionality when using memc flexram driver.
Part 3
한국어 전문 번역
Zephyr 3.6.0
Zephyr 3.6.0 릴리스를 발표합니다.
이번 릴리스의 주요 개선 사항은 다음과 같습니다.
- Zephyr application에 위치 인식 기능을 제공하는 새 GNSS subsystem을 추가했습니다.
- Keyboard matrix와 연결하는 새 API와 driver를 도입했습니다.
- Socket server와 CoAP server 구현을 단순화하고 resource 사용을 최적화하는 socket·CoAP service library를 추가했습니다.
- Trusted Firmware-M(TF-M) 2.0을 통합하고 Mbed TLS를 3.5.2로 갱신했습니다.
- Zephyr build system에서 module 생성을 단순화하도록 LLEXT tooling을 개선했습니다.
- Xtensa architecture까지 userspace 지원을 확장했습니다.
- Build system이 Link Time Optimization(LTO)을 지원해 최종 image 크기를 줄일 수 있습니다.
- Bluetooth Mesh protocol 1.1을 기본으로 지원합니다.
- Native simulator 문서를 크게 보강해 지원 peripheral과 사용법을 명확히 했습니다.
- Zephyr가 지원하는 모든 architecture에 걸쳐 30개가 넘는 새 board를 지원합니다.
Zephyr v3.5.0 application을 v3.6.0으로 이전할 때 필요한 변경과 권장 사항은 별도 migration guide에서 설명합니다.
다음 절은 구성요소별 상세 변경 목록입니다.
보안 취약점 관련
이 릴리스에서는 다음 CVE를 해결했습니다.
더 자세한 정보는 Zephyr 보안 취약점 문서에서 확인할 수 있습니다: https://docs.zephyrproject.org/latest/security/vulnerabilities.html
- CVE-2023-5779 `Zephyr project bug tracker GHSA-7cmj-963q-jj47 <https는 Zephyr project 보안 권고 GHSA-7cmj-963q-jj47에서 추적합니다: https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-7cmj-963q-jj47
- CVE-2023-6249 `Zephyr project bug tracker GHSA-32f5-3p9h-2rqc <https는 Zephyr project 보안 권고 GHSA-32f5-3p9h-2rqc에서 추적합니다: https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-32f5-3p9h-2rqc
- CVE-2023-6749 `Zephyr project bug tracker GHSA-757h-rw37-66hw <https는 Zephyr project 보안 권고 GHSA-757h-rw37-66hw에서 추적합니다: https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-757h-rw37-66hw
- CVE-2023-6881 `Zephyr project bug tracker GHSA-mh67-4h3q-p437 <https는 Zephyr project 보안 권고 GHSA-mh67-4h3q-p437에서 추적합니다: https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-mh67-4h3q-p437
- CVE-2023-7060은 2024년 3월 14일까지 embargo가 적용된 문제입니다.
- CVE-2024-1638 `Zephyr project bug tracker GHSA-p6f3-f63q-5mc2 <https는 Zephyr project 보안 권고 GHSA-p6f3-f63q-5mc2에서 추적합니다: https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-p6f3-f63q-5mc2
Architecture
- ARC
- ARCv3 프로세서 (HS5x & HS6x) 에 대한 하드웨어 프리페처 및 공유 클러스터 캐시 (SCM - 공유 클러스터 Memory) 를 활성화합니다.
- Thread 로컬 스토리지 지원이 비활성화 된 두 개 이상의 레지스터 은행을 가진 플랫폼.
- 하드웨어 플랫폼 (device_states 섹션의 쓰레기) 에 대한 MetaWare toolchain로 구축된 application의 수정: 불안정한 작업
- ARM
- MPU 지역은 이제 항상 초기화 전에 클리어됩니다.
- 모든 아키텍처에서 일관성을 제공하기 위해
arch_secondary_cpu_init에 표준화되었습니다. - 모든 아키텍처에서 일관성을 제공하기 위해
z_arm_prep_c로 변경되었습니다. - 모든 아키텍처에서 일관성을 유지하기 위해 예외 헤더의 이름을 변경합니다.
- GDB 스터브가 추가되었습니다 (현재는 Zynq-7000만을 지원합니다).
CONFIG_ARM_CUSTOM_INTERRUPT_CONTROLLER를 사용하는 사용자 지정 interrupt 컨트롤러에 대한 추가 지원- MMU 및 MPU 초기화는 각 코어들에 의해 초기화를 가능하게 하기 위해 Cortex-A 및 Cortex-R에
z_prep_c로 이동하였다. - 공통 Cortex-M MPU code는
arch/arm/core/mpu로 이동합니다.
- Xtensa
- 사용되지 않은 Kconfig 옵션
CONFIG_XTENSA_NO_IPC를 제거했습니다. - MMU를 통해 userspace 지원이 추가되었습니다.
- 사용되지 않은 Kconfig 옵션
Bluetooth
- Audio
bt_bap_scan_delegator_subgroup를bt_bap_bass_subgroup로 변경하고CONFIG_BT_BAP_SCAN_DELEGATOR에 독립하게 되었습니다.bt_bap_stream_send를 변경하여 더 이상 시간표를 매개 변수로 사용하지 않고bt_bap_stream_send_ts를 추가했습니다.bt_cap_stream_send를 변경하여 더 이상 시간표를 매개 변수로 사용하지 않고bt_cap_stream_send_ts를 추가했습니다.- 지정된 번호 값은
include/zephyr/bluetooth/audio/lc3.h에서include/zephyr/bluetooth/audio/audio.h로 옮겨졌으며LC3인피스스는 제거되었습니다. - CAP 시범 APIs는 효율화되어 동일한 파라미터 패턴을 따르고 있습니다.
- Kconfig 옵션을 추가하여 MCC 기능을 선택적으로 memory 사용량을 단순 클라이언트에서 줄이기 위해 추가했습니다.
- CAP 커맨더 변경량 및 변경량 오프셋 추가
- application에서 controller 대신 application에서 디코딩을 수행하는 적절한 지원을 추가하여 ISO 데이터 경로가 구성되는 방식을 수정합니다.
bt_csip_set_member_unregister를 추가하여 CSIS 인스턴스를 취소합니다.- 코덱 구성 및 코덱 기능에서 지정된 숫자 값을 얻고 설정하기 위해 도움말 기능을 추가했습니다.
- 새로운 모노 audio 위치에 대한 추가 지원.
- 스트림에 ISO 상태 콜백을 추가하여 사용자가 CIS의 상태를 알 수 있습니다.
- 연결별로 사용할 수 있는 컨텍스트를 설정하기 위해
bt_pacs_set_available_contexts_for_conn를 추가했습니다. bt_bap_base는 새로운 보조 기능을 가진 추상 구조로 재조정되어, Zephyr은 크기와 상관없이 모든 BASEs를 지원합니다.
- Host
bt_conn_cb에recycled()callback를 추가하여, 연결 객체가 해방되었을 때 청취자에게 알리는 것을 추가하여 다른 목적으로 사용할 수 있습니다. 첫 번째 청구만 제공됨에 따라 어떤 청취자가 객체를 부여받을 것인지에 대한 보증은 없습니다.bt_iso_chan_send를 변경하여 더 이상 시간표를 매개 변수로 사용하지 않고bt_iso_chan_send_ts를 추가했습니다.
- Mesh
- Access 계층에서 전송되는 응답에 무작위적인 지연을 적용하기 위해 지연 가능한 message 기능을 추가했습니다. 이 기능은
CONFIG_BT_MESH_ACCESS_DELAYABLE_MSGKconfig 옵션으로 활성화됩니다. - Bluetooth Mesh 프로토콜 1.1는 이제 기본적으로 지원됩니다.
- Access 계층에서 전송되는 응답에 무작위적인 지연을 적용하기 위해 지연 가능한 message 기능을 추가했습니다. 이 기능은
- Controller
- ESP32 controller에 대한 디니트 구현이 추가되었습니다.
- HCI Driver
- ST HCI SPI Bluetooth driver을 Zephyr 1에서 분리하여 ST SPI 프로토콜 V1 및 V2에 기반한 더 많은 기능을 제공했습니다. 결과적으로
st,hci-spi-v1및 HCI0이 도입되었습니다.
- ST HCI SPI Bluetooth driver을 Zephyr 1에서 분리하여 ST SPI 프로토콜 V1 및 V2에 기반한 더 많은 기능을 제공했습니다. 결과적으로
Board 및 SoC 지원
- 이러한 SoC 시리즈에 대한 추가 지원:
- 레네사스 R-카 Gen4 시리즈에 대한 추가 지원
- STM32F303xB SoC 변종에 대한 추가 지원
- STM32H7B0xx SoC 변종에 대한 추가 지원
- STM32L010xx SoC 변종에 대한 추가 지원
- STM32L081xx SoC 변종에 대한 추가 지원
- STM32U5A9xx SoC 변종에 대한 추가 지원
- NXP S32K1 devices에 대한 추가 지원
- NXP IMX8ULP SoC에 대한 추가 지원
- NXP MIMXRT595 DSP core에 대한 추가 지원
- 다른 SoC 시리즈에서 다음과 같은 변경 사항을 수행했습니다:
- 노르딕 SoC는 이제
CONFIG_XIP를 선택하기 보다는 암시합니다. 이것은 RAM-based application을 비활성화하여 생성할 수 있습니다. - BLE는 이제 STM32WBA 시리즈에서 지원됩니다.
- xtensa: imx8: 일반 i.MX8 SoC를 i.MX8QXP 및 i.MX8QM로 나눌 수 있습니다.
- LPC55xxx: 시스템 하드웨어 clock 사이클 속도 고정
- 노르딕 SoC는 이제
- 이 ARM boards에 대한 추가 지원:
- Adafruit QTPy RP2040 board:
adafruit_qt_py_rp2040에 대한 추가 지원 - FANKE FK7B0M1-VBT6 board:
fk7b0m1_vbt6에 대한 추가 지원 - 레네사스 R-카 스파이더 board CR52:
rcar_spider_cr52에 대한 추가 지원 - ST Nucleo F722ZE board에 대한 추가 지원:
nucleo_f722ze. - ST STM32H750B 디스커버리 Kit:
stm32h750b_dk에 대한 추가 지원 - ST STM32L4R9I 디스커버리 board:
stm32l4r9i_disco에 대한 추가 지원 - ST STM32U5A9J-DK 발견 키트:
stm32u5a9j_dk에 추가 지원 - ST Nucleo WBA55CG board에 대한 추가 지원:
nucleo_wba55cg. - ST STM32WB5MM-DK 디스커버리 board:
stm32wb5mm_dk에 대한 추가 지원 - Wiznet W5500 평가에 대한 추가 지원 Pico board:
w5500_evb_pico. - ADI boards에 대한 추가 지원:
adi_sdp_k1,adi_eval_adin1110ebz,adi_eval_adin2111ebz. - NXP UCANS32K1SIC board:
ucans32k1sic에 대한 추가 지원
- Adafruit QTPy RP2040 board:
- 이 RISC-V board에 대한 추가 지원:
- 추가된 리리고 TTGO T8-C3 board:
ttgo_t8c3.
- 추가된 리리고 TTGO T8-C3 board:
- 이 Xtensa boards에 대한 추가 지원:
- NXP iMX8ULP board:
nxp_adsp_imx8ulp에 대한 추가 지원 - 추가된 Heltec Wireless Stick Lite (V3) board:
heltec_wireless_stick_lite_v3. - 추가된 KINCONY-KC868-A32 board:
kincony_kc868_a32 - 추가된 Lolin ESP32-S2 미니 board:
esp32s2_lolin_mini - 추가된 리리고 TTGO LoRa32 board:
ttgo_lora32. - 추가된 M5Stack AtomS3 board:
m5stack_atoms3 - 추가된 M5Stack AtomS3-Lite board:
m5stack_atoms3_lite - 추가된 M5Stack StampS3 board:
m5stack_stamps3
- NXP iMX8ULP board:
- ARM boards에 대해 다음과 같은 변경 사항을 수행했습니다:
- G1120B0MIPI를 사용하여 RT595에 낮은 전력을 위한 추가 지원
- lpspi, lpi2c에 대한 추가 지원: NXP board:
mimx93_evk_a55. lpcxpresso55s69에서 TFM-enabled Zephyr 플랫폼에서 사용되는 표준 슬롯 이름을 사용하기 위해 수정: 파티션 이름입니다.frdm_kl25z,mimxrt1015_evk,mimxrt1020_evk,mimxrt1050_evk,mimxrt685_evk,frdm_k64f에서 링크서버 디버거를 지원합니다.- MCUBoot FW NXP boards에서 Swap & Scratch에서 Swap & Move로 업데이트 모드를 전환했습니다.
- RISC-V boards에 대해 다음과 같은 변경 사항을 수행했습니다:
- ADC에서
longan_nano지원이 활성화되었습니다.
- ADC에서
- native/POSIX boards에 대해 다음과 같은 변경 사항을 수행했습니다:
simulated nrf5340 targets<nrf5340bsim>에는 이제 IPC 및 MUTEX 주변 장치가 포함되어 있으며, 코어 간의 통신을 위해 OpenAMP를 지원합니다. 이제 BLE controller 또는 802.15.4 driver를 네트워크 core, application 및 BT IPC0에서 실행할 수 있습니다.- nrf*_bsim 시뮬레이션 대상에는 이제 UART 주변 장치의 모델이 포함되어 있습니다. 이제 새로운 nRFx UART drivers를 사용하여 새로운 nRFx UART drivers을 어떤 모드로든 연결할 수 있습니다.
- 네이티브 시뮬레이터 기반의 타겟은 이제 Kconfig 명령 줄 옵션을 통해 설정할 수 있습니다. 실행가능자가 호출하는 셸에서 제공되는 것처럼 처리 할 것입니다.
- 모든 네이티브 boards의 경우, 네이티브 로그거 backend도 UART가 활성화되어 있음에도 사용된다.
- nRF5x HW 모델에 몇 가지 버그 수정 및 기타 작은 추가.
- 모든 네이티브 boards에 대한 다중 문서 업데이트 및 수정
- 다음 shields에 대한 추가 지원:
- M5Stack-Core2 기반의 추가 지원:
m5stack_core2_ext. - MikroElektronika ACCEL 13에 추가 지원 클릭:
mikroe_accel13_click. - Waveshare Pico UPS-B:
waveshare_pico_ups_b에 추가 지원 - 추가 지원 X-NUCLEO-BNRG2A1: BLE 확장 board:
x_nucleo_bnrg2a1. - 추가 지원 X-NUCLEO-IKS4A1: MEMS 무력 및 환경 Multi sensor:
x_nucleo_iks4a1.
- M5Stack-Core2 기반의 추가 지원:
Build System 및 Infrastructure
- 링크 시간 최적화 기능이 추가되었습니다. 이 변경 사항은 interrupt 스크립트 생성기를 재구성하고 다음과 같은 Kconfig 옵션을 추가합니다.
CONFIG_ISR_TABLES_LOCAL_DECLARATION: LTO compatible interrupt 테이블 파서CONFIG_LTO: 링크 시간 최적화를 활성화
현재 LTO compatible interrupt 테이블 파서는 ARM 아키텍처와 GCC compiler/linker.에서만 지원됩니다. 자세한 내용은 pull request:github:66392 참조.
COMPAT_INCLUDES옵션이 없어 지프리 v3.0 이후 사용되지 않았습니다.- board 개정
0에 해당 개정에 대한 오버레이 파일을 포함하지 않은 문제를 해결했습니다. - Sysbuild 모듈에
PRE_IMAGE_CMAKE및POST_IMAGE_CMAKE해킹을 추가하여, 각 이미지의 cmake 호출 후 및 이전까지 code를 실행할 수 있습니다. CONFIG_ROM_END_OFFSET옵션이 추가되어 이미지 크기를 줄일 수 있습니다. 이것은 build 자체 이외의 이미지 끝에 추가 데이터를 추가하는 펌웨어 서명 스크립트와 사용할 수 있습니다.- MCUboot 이미지 크기를 줄이는 MCUboot를 포함하는 sysbuild 이미지를 추가했습니다. 이것은 MCUboot가 교환할 수 없을 정도로 큰 펌웨어 이미지를 만드는 문제를 방지합니다.
CONFIG_BOOTLOADER_SRAM_SIZE의 사용자들은 RAM의 board devicetree 파일에서 RAM를 올바르게 설정해야 합니다.- shields를 처리하는 문제가 해결되었습니다.
- Sysbuild과 함께 shields를 사용하는 경우 Kconfig 오류가 발생할 수 있는 문제를 해결했습니다.
- Picolibc 또는 네이티브 (
ARCH_POSIX) 목표를 위해 Picolibc와 구축할 때_POSIX_C_SOURCE및_XOPEN_SOURCE매크로가 세계적으로 정의되는 문제를 해결했습니다. 이 변경 후 사용자는 자신의 application 또는 라이브러리 위해 정의해야합니다. - sysbuild의 서명 스크립트를 설정하는 데 추가 지원 (
SIGNING_SCRIPT). 자세한 내용은west-extending-signing참조. - build 시스템에서
FILE_SUFFIX에 대한 추가 지원이 추가되어 application Kconfig 조각 파일 이름과 devicetree 오버레이 파일 이름에 자사자를 추가할 수 있습니다. 자세한 내용은application-file-suffixes및sysbuild_file_suffixes참조. - 저하된
CONF_FILEprj_<build>.confbuild 타입 -Wdouble-promotion를 추가하여 `-Wdouble-promotion warning를 기본으로 컴파일할 때 단일 정확성 부동산을 쉽게 두 번째 정확성으로 승격시키는 개발자를 경고합니다.
Driver 및 Sensor
- ADC
- Power Management는 ADC에 대한 STM32 devices에서 지원됩니다.
- STM32 ADC driver는 이제 공유 및 별도의 IRQs를 혼합하는 것을 지원합니다 (예를 들어 STM32G473에는 5 ADCs, ADC1 및 ADC2이 하나의 IRQ를 공유하고 ADC0, ADC1 및 ADC2이 각각 고유한 ADC3을 가지고 있습니다). 같은 ADC4에서 모든 인스턴스를 활성화하는 것은 현재 ADC5에서 불가능합니다.
- 보조 디스플레이
- 스파크펀 SerLCD driver가 추가되었습니다.
- Audio
- driver
drivers/audio/dmic_mcux.cNXP DMIC 주변기구에 driverdrivers/audio/dmic_mcux.cNXP DMIC 주변기구에iMX RT5xx및iMX RT6xx부품 및 일부 LPC SOCs에 존재합니다.
- driver
- 배터리 백업 RAM
- STM32WL devices는 이제 BBRAM를 지원합니다.
- CAN
- CAN controller의 현재 동작 모드를 얻기 위해
can_get_mode()시스템 호출을 추가했습니다. - CAN 수신기를 CAN controller와 연결하기 위해
can_get_transceiver()시스템 호출을 추가합니다. - CAN 통계에 대한 액세서리 기능이 추가되었습니다.
- CAN 통계에 일반적인 비트 오류 counter를 추가했습니다.
- 다음 drivers에 CAN 통계 지원이 추가되었습니다:
microchip,mcp2515espressif,esp32-twaikvaser,pcican
- 더 추가 된 CAN controller driver (
nuvoton,numaker-canfd) - 인피네온 XMC4xxx 가족 (
infineon,xmc4xxx-can및infineon,xmc4xxx-can-node) 에 CAN controller driver가 추가되었습니다. - NXP S32K1xx 가족에
nxp,flexcandriver에 대한 추가 지원 - 모든 보쉬 M_CAN 기반의 프론트엔드 drivers는 이제 IRQs, "int0" 및 "int1"라는 이름을 사용합니다.
zephyr,native-linux-candriver는 이제 임베디드 C 라이브러리와 함께 구축되는 것을 지원합니다.CAN shell <can_shell>에서 "자료" 시간값을 설정하는 추가 지원
- CAN controller의 현재 동작 모드를 얻기 위해
- Clock 제어
- 레네사스 R-카 clock 제어 driver는 이제 Gen4 SoC를 지원합니다.
CONFIG_CLOCK_CONTROL_RA로 명칭이 바뀌었다.- STM32 devices에서,
st,stm32-hse-clock는 이제css-enabled속성을 설정할 수 있게 해 HSE clock 보안 시스템을 (CSS) 활성화합니다.
- Counter
- nRFx counter driver는 이제 시뮬레이션 nrf*_bsim 목표치와 함께 작동합니다.
- 최고 값 구성에 대한 지원이 추가되었으며, 네이티브 포시스 driver에서 버그를 수정했습니다.
- MRT counter, NXP RT6xx, RT5xx 및 LPC55xxx에 대한 MRT에 대한 추가 지원
- Crypto
- STM32WB devices는 이제 crypto API를 AES 블록을 통해 지원합니다.
- Display
- 프레임 buffer를 STM32 LTDC driver로 구성합니다.
- DMA
- STM32WBA Devices는 이제 GPDMA를 지원합니다.
- 새로운 DMA driver
drivers/dma/dma_nxp_edma.c를 NXP의 eDMA IP에 도입했습니다.
- Entropy
native_posixentropy driver가 새 command-line optionseed-random을 받습니다. 이 option을 사용하면 random generator를/dev/urandom으로 seed합니다.- STM32devices에서, RNG 블록은 이제 전력을 절약하기 위해 풀이 가득했을 때 중단됩니다.
- Ethernet
- "native_posix" ethernet driver는 이제 임베디드 C 라이브러리로 구축되는 것을 지원합니다.
- HW의 체크섬의 탈하를 가능하게 합니다.
- 오픈 얼라이언스의 TC6 T1S driver의 추가 구현
- xmc4xxx driver가 추가되었습니다.
- NXP에 driver 지원이 있는 NXP 에넷이 추가되었습니다.
- 추가된 KSZ8081 PHY driver
- IPv4 멀티캐스트 지원이 NXP mcux driver에 추가되었습니다.
- LAN8651 T1S 지원이 추가되었습니다.
- DSA에 STM32 지원이 추가되었습니다.
- tja1103 PHY 지원이 추가되었습니다.
- 누보톤 메이커 지원이 추가되었습니다.
- 수정: lan865x driver. 전송 속도 개선, IRQ 핸들링 수정
- 수정: s32_gmac driver
- 수정: phy_mii driver 무효 인증을 잘못 확인했습니다.
- 수정: sam_gmac driver. PTP clock 조정은 부정적인 값에 대해 잘못되었습니다.
- 수정: adin2111 driver. adin2110와 작업할 때 초기화가 잘못되었습니다.
- 수정: ksz8081 driver 기록 변경, RMII clock 수정, GPIO 핀 수정.
- NXP ENET용 새 driver
drivers/ethernet/eth_nxp_enet.c를 추가했습니다. PHY abstraction 부족으로 유지하기 어려워진 기존drivers/ethernet/eth_mcux.c를 재작업한 experimental driver이며, 충분히 성숙하면 기존 driver를 폐기 예정으로 전환하고 이 driver로 대체합니다.
- Flash
- Atmel SAM controller을 완전히 활용하기 위해 재설계했습니다.
spi_nordriver는 이제spi_nor_wait_until_ready에서 투표 사이를 자고 있습니다. 이것이 원하지 않으면 (예를 들어 부트로드에서 ROM의 제약으로 인해),CONFIG_SPI_NOR_SLEEP_WHILE_WAITING_UNTIL_READY는 비활성화 될 수 있습니다.- Flash 읽기 보호 구성은 STM32G4 및 STM32L4 시리즈에 추가되었습니다.
nordic_qspi_nordriver는 이제 사용자 구성 가능한 QSPI timeout와CONFIG_NORDIC_QSPI_NOR_TIMEOUT_MS를 지원합니다.
- GNSS
CONFIG_GNSS와CONFIG_GNSS_SATELLITES로 활성화하는 GNSS device driver API와 subsystem을 추가해 위치, 날짜·시간, 위성 정보를 parsing하고 게시합니다. GNSS subsystem과 driver는 modem subsystem의modem_pipe, modem backend,modem_chat을 재사용하므로 cellular modem이 있는 system에 GNSS modem을 효율적으로 추가할 수 있습니다.- 추가된 GNSS-specific, 안전, 문자열에서 정수 파싱 유틸리티,
CONFIG_GNSS_PARSE에 의해 활성화. - NMEA0183에서 활성화된 NMEA0183 파싱 유틸리티가 추가되었습니다.
- GNSS에 의해 가능하게 된 광범위한 GNSS 데이터 로깅이 추가되었습니다.
- UART에 대한 일반 NMEA0183 추가 modem 기반 device driver, devicetree compatible
gnss-nmea-generic와 일치합니다. - Quectel LCX6G 시리즈 GNSS 모템에 device driver의 전면 기능이 추가되었으며, devicetree 호환성
quectel,lc26g,quectel,lc76g및quectel,lc86g와 일치합니다.
- GPIO
- 르네상스 R-카 GPIO driver는 이제 Gen4 SoC를 지원합니다.
CONFIG_GPIO_RA로 명칭이 바뀌었다.- 새로운 GPIO driver (
drivers/gpio/gpio_mcux_rgpio.c) 를 추가하였다. 이 driver는 i.MX93 및 i.MX8ULP에 사용됩니다.
- I2C
i2c_get_config는 이제 STM32 driver에서 지원됩니다.
- I2S
- STM32H7 devices는 이제 I2S를 지원합니다.
- I3C
- 레거시 가상 레지스터 정의는
I3C_DCR_I2C_*에서I3C_LVR_I2C_*로 변경되었습니다. - 예약할 무료 I3C 주소를 검색할 때 시작 주소를 지정할 수 있는 기능이 추가되었습니다. 이것은 argument에서
i3c_addr_slots_next_free_find에 새로운 함수를 요구합니다. i3c_msg및i3c_ccc_taget_payload에num_xfer라는 필드를 출력으로 추가하여 전송된 바이트의 실제 수를 나타냅니다.- 카덴스 I3C driver (
drivers/i3c/i3c_cdns.c):- handle controller 중퇴에 추가된 지원은 목표물이 레지스터 읽기 위해 최종 데이터를 방출하지 않지만 데이터를 계속 전송하는 경우입니다.
- timeout 계산은 수정: 수의 재실험 대신 CPU 속도와 결합되도록 업데이트되었습니다.
- NXP MCUX I3C driver
- 수정:
mcux_i3c_config_get()는 호출자에게 구성을 반환하지 않습니다. - 더 높은 전송률을 지원하기 위해 FIFO 읽기 루틴을 개선했습니다.
- 자율 IBI에서 MCTRLDONE에 대한 무한한 기다림을 제거했습니다.
disable-open-drain-high-pp속성을nxp,mcux-i3c에 추가하여, 오픈 드레인 clock에 대한 대안 높은 시간을 허용합니다.
- 수정:
- 레거시 가상 레지스터 정의는
- IEEE 802.15.4
CONFIG_IEEE802154_SELECTIVE_TXPOWERKconfig 옵션이 제거되었습니다.
- 입력
zephyr,input-longpress의short-codes속성은 이제 선택적입니다. node는 입력 및 긴 코드를만 지정하여 사용할 수 있습니다.- 새로운
gpio-kbd-matrix및input-keymapdrivers를 포함하여 키보드 매트릭스 drivers에 대한 지원이 추가되었습니다. 자세한 내용은gpio-kbd참조하십시오. - HID 코드 번역 기능에 입력 코드의 쌍을 추가했습니다.
input_to_hid_code및input_to_hid_modifier참조. - power management 지원이
gpio-keysfocaltech,ft5336에 추가되었습니다. zephyr,native-linux-evdevdevice node를 추가하여 Linux evdev device node에서 입력 이벤트를 얻습니다.- 광학 엔encoder 및 power management에 대한 추가 지원
- 새로운 driver
analog-axis - ESP32 터치 sensor driver
espressif,esp32-touch를 포함한 추가되었습니다.
- MDIO
- NXP s32 NETC drivers의 수정: 초기화 우선 순위
- SAM GMAC 전송 timeout 오류가 MDIO clock 초기화되지 않아서 발생했습니다.
- 수정: ESP32 MDIO driver 상태가 좋지 않은 상태에서 node가 활성화되고 있습니다.
- C22 및 C45 APIs에 대한 추가 지원
- MDIO driver는 NXP ENET 주변기용으로 추가되었습니다.
- 추가된 xmc4xxx MDIO drivers
- mdio.h driver 헤더로 인한 build 오류가 수정되어 있습니다. errno.h 를 포함하지 않습니다.
- MFD
maxim,max20335에 대한 추가 지원adi,ad5592에 대한 추가 지원nordic,npm1300및nordic,npm6001에 대한 별도의 초기화 우선 순위가 추가되었습니다.
- PCIE
- MMIO 크기의 계산은 IO/memory 디코딩을 미리 비활성화함으로써 고정됩니다.
- PNP ID를 사용하여 PRT 검색을 위해 수정되었습니다.
- MEMC
- NXP 플렉스램에 새로운 driver를 추가했습니다.
- MIPI-DBI
- 새로운
MIPI DBI driver class <mipi_dbi_api>를 소개했습니다.
- 새로운
- 핀 컨트롤
- 르네상스 R-카 pinctrl driver는 이제 Gen4 SoC를 지원합니다.
CONFIG_PINCTRL_RA로 명칭이 바뀌었다.- 레네사스 R-카 pinctrl driver는 이제 R8A77951 및 R8A77961 SoC에 대한 전압 제어 기능을 지원합니다.
- ZynqMP/ Mercury XU에 driver가 추가되었습니다.
- driver를 추가하여 i.MX8QM/QXP.
- 레네사스 RZ/T2M.에 driver가 추가되었습니다
- STM32 devices에서, JTAG/SW 포트에 할당된 핀은 이제
CONFIG_PM가 활성화되고CONFIG_DEBUG가 비활성화되면 아날로그 상태로 설정될 수 있습니다.
- PWM
- 수정: ESP32S3 낮은 주파수 PWM 문제
- 규제 기관
- 새로운 API 기능이 추가되었습니다
regulator_set_active_dischargeregulator_get_active_dischargeregulator_list_current_limit
startup-delay-us및off-on-delay-us는 이제 모든 규제 기관에 지원됩니다.- 멀티더레이딩 지원이 추가되었습니다.
maxim,max20335-regulator에 대한 추가 지원- ASYS UVLO 구성은
nxp,pca9420에 추가되었습니다. renesas,smartbond-regulator에 대한 LDO/DCDC 지원이 추가되었습니다.nordic,npm1300-regulator에 대한 LDO 소프트 스타트 구성이 추가되었습니다.x-powers,axp192-regulator의 init 우선순위가 고정되어 있습니다.- 수정: LDO GPIO 제어 장치
- 새로운 API 기능이 추가되었습니다
- 보관된 memory
- 레지스터에 저장된 memory driver backend가 추가되었습니다.
- 유지된 memory API 상태는 실험에서 불안정으로 변경되었습니다.
- RTC
- 추가된 Atmel SAM driver
- SMBUS:
- SMBUS는 이제 STM32 devices에서 지원됩니다.
- SDHC
- SDHC driver가 Cadence SDHC IP에 추가되었습니다.
- Infineon CAT1 IP에 SDHC driver가 추가되었습니다.
- SDIO 명령에 대한 추가 지원 iMX USDHC SDHC driver.
- Sensor
- LTRF216A driver에 수정: 수학적 과잉
- MAX31865 driver에서 수정: 음수 온도 계산
- TI TMAG5273 3D 홀 sensor driver
- Vishay VCNL36825T 근접 sensor driver 추가
- BMA4xx 가속 측정기 sensor 에뮬레이터가 추가되었습니다.
- VEML7700 환경 조명 sensor driver에 흰색 채널 지원이 추가되었습니다.
- 추가된 ST LIS2DE12 가속기 sensor driver
- 보쉬 BMP581 압력이 추가된 sensor driver
- sensor devices 상자에 여러 개의 sensor devices를 유발할 수 있는 추가 지원
- 추가된 Aosong AGS10 TVOC 공기 질 가스 sensor driver
- 연장된 MAX31865 온도 sensor driver 실행 시 3 개의 전선 모드를 변경할 수 있도록 지원합니다.
- 수정: 보쉬 BMI160 회전 범위를 계산하고 속성을 얻기 위한 추가 지원
- 최적화된 보쉬 BMA4xx 가속 측정기 sample 계산, 정확성을 향상시킵니다.
- TI Bdriver74xx 지표 driver에서 떠 있는 점 수학적 계산을 제거했습니다.
- 수정: ST drivers Kconfig HAL_ST 모듈에 대한 의존성
- 보쉬 BMA4xx 가속도 sensor driver가 추가되었습니다.
- 추가된 ST LIS2DU12 가속기 sensor driver
- 확장된 NTC 열미스터 driver
- 추가된 NXP S32 사각형 디encoder driver.
- 수정: LSM6DSV16x 회전 범위 테이블
- ADLTC2990, TSL2540, MAX17055, drivers에서 누락된 반환 값 확인
- 추가된 ST LPS28DFW 압력 sensor driver
- 수정: interrupt BMI323 driver
- 다양한 ST sensor drivers에 devicetree 특성을 가진 매크로가 추가되었습니다.
- 추가된 리네사 HS300x temperature/humidity sensor driver
- 추가된 가스 감지 솔루션의 ExplorIR-M CO2 sensor driver
- 수정: 자기 test ADXL367 가속도 sensor driver
- 추가된 ST LPS22DF 압력 sensor driver
- 새로운 스트리밍 APIs를 추가하고 ICM42688 driver에 구현했습니다.
- ADXL367 가속 측정기 sensor driver에 트리거 지원이 추가되었습니다.
- 추가된 PM는 LSM6DSL 가속 측정기 sensor driver에 대한 지원을 중단하고 재개합니다.
- 추가된 AMS TSL2561 빛 sensor driver
- 화학 프로파일을 구성하고 확인하는 것을 지원하기 위해 확장된 BQ274xx driver.
- 확장된 LIS2DH 및 LSM6DSV16x drivers devicetree에서 INT1/INT2를 구성하는 것을 지원합니다.
- NPM1300 충전기 driver에 소재 온도 측정 지원이 추가되었습니다.
- ADLTC2990 sensor 에뮬레이터가 추가되었습니다.
- 확장된 MPU6050 driver는 MPU6886 변종을 지원합니다.
- 추가된 ADXL367 가속기 sensor driver
- 추가된 LiteOn LTR-F216A 조명 sensor driver
- 추가된 Memsic MC3419 가속도 sensor driver
- 추가된 AMD SB 온도 sensor driver
- 추가된 ESP32S3 내부 온도 sensor driver
- ST sensor devicetree 특성을 설정하는 새로운 자기 문서화 매크로 (예를 들어, LSM6DSV16X_DT_ODR_AT_60Hz) 를 추가했다. (:github:
65410)
- Serial
- Renesas RA 및 RZ/T2M.에서 UART를 지원하기 위해 drivers를 추가했습니다
- ITE IT8xxx2에 대한 더 높은 보드 속도 지원이 추가되었습니다.
- 인텔 라이트웨이트 UART를 지원하기 위해 driver를 추가했습니다.
- UART 비동기 RX helper가 추가되었습니다.
- NS16550 driver에 async API에 대한 추가 지원
uart_esp32에서 일련 포트 구성을 사용하기 위해 devicetree를 업데이트했습니다.- API의 어댑션을 추가하여 interrupt 가동된 API를 drivers에 적용하여 Async API만을 구현했습니다.
- 에뮬레이션 된 UART driver (
drivers/serial/uart_emul.c):- 추가된 에뮬레이션 된 interrupt 기반의 TX
- 테스트를 위해 에뮬레이션 오류가 추가되었습니다.
- 데이터 전송을 위해 로컬 work queue을 사용하도록 수정되었습니다.
- FIFO 크기와 관리가 실제 하드웨어와 더 잘 일치하도록 수정되었습니다.
- STM32 devices에서는
fifo-enable속성을 설정하여 다음과 같은 이점을 가지고 STM32에서 FIFO를 활성화 할 수 있습니다. TX에서는 FIFO이 폭발 모드에서 작동할 수 있으며, 로드 된 application의 스케줄을 완화합니다. 또한 UART devices에 대한 더 신뢰할 수 있는 통신을 허용합니다.
- SPI
- STM32H7 devices에서,
fifo-enable속성은 SPI 블록 FIFO를 사용할 수 있습니다. 이 기능은 여전히 실험적이며 성숙이 필요합니다. - STM32 devices에 대해 BSY 비트 오류로 영향을 받았을 때, 해결방안이 구현되었습니다.
- STM32H7 devices에서,
- USB
- STM2G0 devices에서,
clk_hsi48node 속 속성crs-usb-sof은 Clock 복구 시스템을 지원할 수 있게 하여 HSI48 clock 보다 안정적이고 따라서 탄력적인 USB 연결을 가능하게 한다. - compatible STM32 devices에서, isochronous 엔드포인트는 더블 버퍼링의 사용 덕분에 현재 기능적입니다.
- 새로운 UDC driver을 추가했습니다. DWC2 controller
- 누보톤 누메이커 시리즈 USBD 컨트롤러에 대한 추가 지원
- STM2G0 devices에서,
- W1
- 추가 된 1-Wire GPIO 마스터 driver. 자세한 내용은
zephyr,w1-gpiodevicetree binding 참조하십시오.
- 추가 된 1-Wire GPIO 마스터 driver. 자세한 내용은
- 와이파이
- Infineon airoc driver가 추가되었습니다.
- 수정: esp32 driver. 최소 축 크기가 줄어들었고, 출발 시 자동 연결이 비활성화되었습니다.
- 수정: esp_at driver. IPv4 지원 없이 빌딩을 허용합니다. 수동 수신 모드 수정합니다. UART 실행 시간 구성에 따라 다릅니다.
- 수정: winc1500 driver. 연결 종료 결과 사건은 연결 종료 시 반환되지 않았습니다.
Networking
- CoAP
- Echo 및 Request-Tag CoAP 옵션 (RFC 9175) 에 대한 추가 지원
coap_remove_observerAPI 함수 반환 유형을 bool로 변경했습니다.- CoAP 서버 기능의 구현을 간소화하는 CoAP 서비스 library를 도입하였다.
- CoAP 서비스 library를 사용하는 CoAP 서버 예제 업데이트
- CoAP 서버에 Shell 모듈이 추가되었습니다.
- NULL 지표의 수정: 지표 지수가
coap_packet_remove_option에서 - Network Event subsystem를 사용하여 CoAP observer/service network 이벤트를 추가했습니다.
coap_pending_initAPI 함수를 변경하여 재시작 대신coap_transmission_parameters를 취합니다.- 새로운 API 기능이 추가되었습니다:
coap_get_transmission_parameterscoap_set_transmission_parameterscoap_handle_request_lencoap_well_known_core_get_lencoap_uri_path_matchcoap_packet_is_requestcoap_find_observercoap_find_observer_by_tokencoap_pendings_countcoap_header_set_code
- 연결 관리자:
- 일반 Wi-Fi 연결 backend를 추가했습니다.
- DHCP:
- network 인터페이스를 초기화 할 때 DHCPv6 상태 구조 초기화가 빠진 것을 추가했습니다.
- DHCP-assigned IPv4 주소는 이제 인터페이스가 다운되면 제거됩니다.
- DHCPv4 서버 구현이 추가되었습니다.
- DHCPv4 파일 구조를 재편. 모든 DHCPv4 관련 파일은 이제
subsys/net/lib/dhcpv4내에 그룹화됩니다. - DHCPv6 파일을
subsys/net/lib/dhcpv6로 DHCPv4와 조화를 이루기 위해 이동했습니다.
- DNS
- 모든 network 인터페이스에서 mDNS 청취자를 활성화하는 데 추가 지원
mdns_respondersample에 VLAN 지원이 추가되었습니다.- TTL/hop 패키지에 수정: TTL/hop 제한 설정
CONFIG_DNS_RESOLVER_AUTO_INIT를 추가하여 boot에서 기본 DNS 컨텍스트의 자동 초기화를 비활성화 할 수 있습니다.
- Ethernet:
- 이제 ARP 항목의 수동 등록이 지원됩니다.
- device 트리에 PHY 모드 선택이 추가되었습니다.
- TX-Injection 모드 지원이 추가되었습니다.
- gPTP:
- 로컬 포트 아이덴티티는 이제 동기화 message를 전송할 때 사용됩니다.
- BMCA 정보의 수정: 이중 변환 바이트 순서.
- GM PRIO 루트 시스템 아이디는 이제 항상 알림 message에 사용됩니다.
- GPTP 핸들러 thread stack 크기의 Kconfig 옵션을 만들었습니다.
- 출동 패키지의 우선 순위를 뒤집어 놓았습니다.
- ICMP:
- 처리되지 않은 ICMP message가 수신되었을 때 방출되는 오류를 수정했습니다.
- ICMP 에코 응답이 제대로 된 소스 IP 주소 설정 없이 전송될 수 있는 버그를 수정했습니다.
- 우선순위 검사가 실패할 경우 ICMP 에코 요청 핸들에서 packet 누출을 수정했습니다.
- Neighbor Discovery를 운용하는 모듈의 thread 안전성 향상
- IPv6 Neighbor 접근성 지시를 위한 추가 지원이 추가되어, 활성 연결을 위해 ICMPv6 트래픽을 줄일 수 있습니다.
- IP:
- L3/L4 체크섬 calculation/validation에 대한 수정: IP-fragmented 팩트
- 수정: net_context는 IP 분해 패킷에 설정되지 않아 callback 전송이 호출되는 것을 방지합니다.
- 현재는 IPv4 TTL 값과 IPv6 홀파키트 및 멀티캐스트 패키트에서 IPv4 TTL 값과 IPv6 홉 제한 값을 분리할 수 있습니다. 이것은 socket를 통해 각 socket에서 제어 할 수 있습니다.
- IP stack에서 개선된 소스 IP 주소 검증. 비-loopback 인터페이스에서 to/from 루프백 주소를 수신한 주소는 떨어집니다.
- IPv6 주소가 사이트 로컬 또는 글로벌인지 확인하기 위해 새로운 기능이 추가되었습니다.
net_pkt구조에서 offloaded 인터페이스에 대한 동료 IP 주소를 설정하는 데 추가 지원. 이것은recvfrom의 경우 offloaded에서 유효한 주소를 반환할 수 있습니다.
- LwM2M
CONFIG_LWM2M_UPDATE_PERIOD를 추가하여 평생 값에 관계없이 LwM2M 업데이트 기간을 구성합니다.- 수정: 복합 read/write 접근권 확인
- 객체 및 리소스 인스턴스를 삭제하기 위해 셸 명령어를 추가했습니다.
- 블록 지리 전송에서 버그를 수정했습니다. 블록 지리 ACKs는 잘못된 response code로 전송되었습니다.
- LwM2M 버전 1.1에 대한 고정 객체 버전 보고
- LwM2M 엔진에서 DTLS 연결 식별자에 대한 추가 지원
- LwM2M 서버에 대한 추가 지원 실행 가능한 리소스를 비활성화하십시오.
- 등록 단계에서 LwM2M 서버 선택에 대한 후퇴 메커니즘을 구현했습니다. 엔진은 현재 서버가 사용할 수 없거나 비활성화되면 다른 서버를 선택하려고 노력합니다.
- 설정에서 LwM2M 오류 목록을 저장하는 데 추가된 지원
- 수정: pmin 관찰자 속성 조작
- application에
set_socket_state()callback를 통해 진행 중인 CoAP 전송에 대한 application에 통보하는 추가 지원. - Specification에 정의되지 않은 unsigned 64-bit integer value type을 폐기 예정으로 지정했습니다. 대신 signed 64-bit integer를 사용하십시오.
- LwM2M 게이트웨이 객체에 callback를 추가하여 handle LwM2M message가 미리 설정된 경로를 허용합니다.
- LwM2M-specific 중에 객체 초기화를 위한 LwM2M-specific 매크로가 추가되었습니다.
- 다른 몇 가지 작은 버그 수정 및 개선 사항.
- 기타
NET_MGMT_REGISTER_EVENT_HANDLER매크로를 사용하여 컴파일 시간 network 이벤트 핸들러에 대한 추가 지원CONFIG_NET_MGMT_EVENT_WORKER선택이 추가되어 시스템 work queue을 사용하거나 동시적으로 network 이벤트를 방출할 수 있습니다.- 과잉 Network 연결 API 문서 페이지를 제거했습니다.
- network 연결의 thread 안전성 향상
- 제거된
eth_native_posixsample arb및fv2015과잉 필드를struct net_pkt_cb_ieee802154에서 제거했습니다.- TX에 대해 network 인터페이스 수준에서 별도의 mutex를 도입하여 TX에서 재입성되지 않는 drivers에 동시 접속을 방지했습니다.
- 루프백 주소로 등록되지 않은 수정: 네트워크 마스크
- binding에 대한 추가 지원은 network 수준에서 특정 network 인터페이스에 있습니다.
- IGMPv3 지원이 추가되었습니다.
- 새로운 network 이벤트를 추가했습니다.
NET_EVENT_HOSTNAME_CHANGED, 호스트 이름 변경에 의해 유발됩니다. - net_context 중복을 줄이기 위해 getters/setters 옵션이 리팩터링되었습니다.
- ARP 수준에서 ARP packet 생성 과정에서 오류가 발생할 경우 가능한 packet 누출을 수정했습니다.
- SNTP 시간 불확실성을 분석하는 데 추가 지원
- 수정: network 인터페이스는 기본 device가 준비되지 않은 경우에도 등장한다.
- 도형 인터페이스에 start/stop 기능을 추가했습니다.
- 문서에 상세한
network configuration <network_configuration_guide>가이드가 추가되었습니다. CONFIG_NET_HOSTNAME_DYNAMIC옵션을 추가하여 실행 시간에 호스트 이름을 설정할 수 있습니다.
- MQTT-SN:
mqtt_sn_get_topic_nameAPI 기능이 추가되었습니다.- 와일드카드 구독을 사용했을 때 수신된 레지스터 message의 고정 처리
- OpenThread
- 다음과 같은 OpenThread 플랫폼 APIs를 구현:
otPlatRadioSetRxOnWhenIdle()otPlatResetToBootloader()otPlatCryptoPbkdf2GenerateKey()
- OpenThread 플랫폼 UART driver를 업데이트하여 host 기간 동안 boot와 통신이 시작되는 것을 더 이상 기다리지 않습니다.
- BLE TCAT 플랫폼에서 BLE TCAT 구현을 추가했습니다.
- 추가 알고리즘으로 Crypto PSA backend를 업데이트합니다.
otPlatAssertFail()를 고정하여 함수 자체 대신 실제 assertion의 위치를 인쇄합니다.
- 다음과 같은 OpenThread 플랫폼 APIs를 구현:
- PPP:
- PPP 연결 종료 인터페이스 다운 때 고정
- 껍질:
- 네트워크 셸 모듈을 재분열하여 큰 단일 파일 대신 하위 모듈로 나뉘어 명령에 따라
- 루프백 핑을 실행할 때 예상치 못한 timeout message를 수정했습니다.
- 오픈 소켓 및 socket 서비스에 대한 정보를 인쇄하기 위해
net sockets명령을 추가했습니다. - 필요한 경우 IPv4/IPv6 멀티캐스트 그룹에 가입하여 셸을 통해 IPv4/IPv6 멀티캐스트 주소를 추가하십시오.
- 수정:
tcp connect명령 동작 (TCP 컨텍스트가 조기 출시되었습니다). - 텔넷 셸 backend에서 Echo 옵션에 대한 추가 지원
- 무사한 EAGAIN 또는 ENOBUFS 오류의 경우 telnet shell backend에서 불필요한 연결 폐쇄를 고정합니다.
- 핑 응답 핸들러에서 수정: 이중 packet 디레퍼런스
net arp명령을 실행할 때 잠재적인 정지점을 수정했습니다.net stats명령에 더 자세한 Ethernet 통계 인쇄를 추가했습니다.net dhcpv4 server서버 관리에 DHCPv4 명령어를 추가했습니다.- TLS 자격증을 관리하기 위해 셸 모듈을 추가했습니다.
- 소켓:
- v4-mapping-to-v6에 대한 지원이 추가되어 IPv4 및 IPv6가 동일한 포트 공간을 공유할 수 있습니다.
IPV6_V6ONLYsocket 옵션에 대한 추가 지원SO_ERRORsocket 옵션에 대한 추가 지원- 수정:
select오류의 경우writefds를 설정하지 않습니다. - 네트워크 소켓과 그 통계를 추적할 수 있는 객체 core에 대한 추가 지원
recvmsg에 대한 추가 지원IP_PKTINFO및IPV6_RECVPKTINFOsocket 옵션에 대한 추가 지원IP_TTLsocket 옵션에 대한 추가 지원- IPv4 멀티캐스트
IP_ADD_MEMBERSHIP및IP_DROP_MEMBERSHIPsocket 옵션에 대한 추가 지원 - IPv6 멀티캐스트
IPV6_ADD_MEMBERSHIP및IPV6_DROP_MEMBERSHIPsocket 옵션에 대한 추가 지원 - BSD socket API의 산소 문서화 개선
- TLS 소켓에서 POLLERR 오류 보고가 수정되었습니다.
- DTLS handshake 처리 중 수정: DTLS
- DTLS socket
connect행동과 정규 TLS (Connect 호출 중 handshake) 를 조정합니다. - 추가된 Socket 서비스 library, 이는 socket 기반의 여러 network 서비스를 등록하고 하나의 thread 내에서 처리 할 수 있습니다.
- 새로운
echo_servicesample를 추가했습니다. SO_DOMAINsocket 옵션에 대한 추가 지원- DTLS 연결 timeout socket를
poll로 모니터링 할 때 수정: DTLS 연결 timeout - NULL 링크 레이어 주소 포인터 packet socket에 대한 디레퍼런스, packet 루프백의 경우.
- 다른 몇 가지 작은 버그 수정 및 개선 사항.
- TCP
- TCP stack는 이제 RST packet와 response에 RST으로 닫힌 포트에 연결 시도에 응답합니다.
accept호출에서 전달된 고정 원격 주소- handshake 활성 상태에서 TCP 컨텍스트가 조기적으로 방출되는 것을 방지하기 위해 수정: 참조 카운팅.
CONFIG_NET_TCP_CONGESTION_AVOIDANCE가 비활성화된 고정 컴파일- TCP 계열에 있는 API 데이터를 재조직하여 TCP stack 창이 TX를 넘어서지 않도록 한다.
- TCP 작업열과 다른 threads 사이에 TCP 컨텍스트를 풀 때 가능한 경주 조건을 고정합니다.
- 입력 thread 및 TCP 작업열 사이의 가능한 경주 조건이 고정되었습니다.
- TCP Keep-Alive 기능에 대한 추가 지원
- TCP 상태 기계가 LAST_ACK 상태에 갇힐 수 있는 버그를 수정했습니다.
- TCP 상태 기계가 FIN_WAIT_1 상태에 갇힐 수 있는 버그를 수정했습니다.
- 다른 몇 가지 작은 버그 수정 및 개선 사항.
- TFTP:
- TFTP 오류 message를 복사할 때 수정: 잠재적인 buffer 과잉
- 오류가 발생했을 때 logging을 개선합니다.
- 와이파이:
- Wi-Fi driver 버전 정보를 Wi-Fi 셸에 추가했습니다.
- Wi-Fi 셸에 AP ( 액세스 포인트) 모드 지원이 추가되었습니다.
- 추가된 규제 채널 정보
- 연결 관리자에게 Wi-Fi bindings를 추가했습니다.
- 와이파이 셸, SSID 프린트 수정, 텍스트 수정, 채널 검증 수정
- TWT 기능이 수정되었습니다. 해체 상태가 업데이트되지 않았습니다. 파워세브 수정되었습니다.
- zperf:
- 개선된 IP 주소는 binding. Zperf는 이제 기본적으로 모든 주소로 결합하여 Kconfig/API가 제공한 주소를 통해 이 주소를 override할 수 있습니다.
- 송신 시 TCP packet 계산이 고정되어 있습니다.
- UDP/TCP를 저장하기 위해 Socket 서비스를 사용하기 위해 수신된 UDP/TCP를 재조정했습니다.
- 중단된 다운로드에서 zperf 세션 누출이 고정되었습니다.
- Mbps, Kbps 및 bps 사이의 계산 비율이 고정되었습니다.
- zperf sample는 이제 network code를 RAM로 이전하는 것을 지원합니다.
USB
- Device 지원:
- 새로운 USB Audio 2 구현이 도입되었으며, devicetree에서 설명자의 복잡성을 숨기고 application를 인스턴스화하는 데 사용한다. 초기 구현은 전체 속도에 제한되어 있으며 기본 암묵적이고 명시적인 피드백에 필요한 최소한의 특징을 제공합니다. Interrupt 알림은 지원되지 않습니다.
- SetFeature(TEST_MODE)에 대한 추가 지원
DeviceTree
Binding
- 새로운 SPI 특성을 도입
spi-cpol,spi-cpha, 그리고spi-hold-cs는SPI_CONFIG_DT매크로에서 SPI 모드를 Devicetree 파일에 설정하기 위해 사용된다.
Library 및 Subsystem
- Management
- MCUmgr 이미지 관리에서 이미 지워진 슬롯을 삭제하면 알려지지 않은 오류가 발생할 수 있는 문제가 해결되었습니다. 이제 성공으로 돌아옵니다.
- 고정 된 MCUmgr UDP transport structure은 정적 인 초기화되어 약 ~ 5KiB flash 절약을 초래합니다.
- MCUmgr에서 문제가 해결되었습니다. buffer에서 UDP transport이 IPv4에서만 활성화되었지만 kernel에서 IPv6 지원이 활성화 된 경우 사용자 데이터 buffer 과잉을 유발할 수 있습니다.
- MCUmgr OS 관리 그룹에서 데이터 타임 기능을 구현했습니다. 이것은 RTC driver API를 사용합니다.
- MCUmgr console UART 입력에서 문제가 해결되었습니다. FIFO는 다음 USB stack에서 지원되지 않는 ISR 외부에서 읽을 수 있습니다.
mcuboot eraseDFU 셸 명령이 MCUboot 또는 현재 실행 중인 application 슬롯을 삭제하는 데 사용될 수 있는 문제를 해결했습니다.- UDP transport을 통해 전송하기에는 너무 큰 message가
MGMT_ERR_EINVAL대신MGMT_ERR_EMSGSIZE를 잘못 반환하는 문제를 해결했습니다. - DIRECT XIP 모드에서 이미지를 확인하는 경우 초등 슬롯에서 실행하는 경우에도 항상 이미지를 확인하는 문제가 해결되었습니다. 이제 현재 활성 이미지는 항상 확인됩니다.
- 등록된 명령 그룹을 검색하는 데 추가된 지원, 실행 시간에 기본 명령 그룹을 등록하고 비등록하는 데 지원하여 application가 동일한 명령 그룹에 대한 여러 구현을 지원할 수 있습니다.
- MCUmgr FS 관리에서 문제가 해결되었습니다. 오류가 반환되면 세마포어 잠기는 제공되지 않을 것이며, 잠재적인 정지경로 이어집니다.
- 사용자 지정 payload MCUmgr 핸들러에 대한 지원이 추가되었습니다. 이것은
CONFIG_MCUMGR_MGMT_CUSTOM_PAYLOAD로 활성화 될 수 있습니다. - MCUmgr 이미지 관리에서 문제가 해결되었습니다. 이미 삭제된 슬롯을 삭제하는 명령을 보내면 오류가 반환됩니다.
- MCUboot에서 업데이트를 사용할 수 있도록 이미지 슬롯 크기를 확인하는 추가 지원. 이것은 application 및 MCUboot 모두를 구축할 때 zysbuild을 사용하여
CONFIG_MCUMGR_GRP_IMG_TOO_LARGE_SYSBUILD를 활성화하거나 MCUboot에서CONFIG_MCUMGR_GRP_IMG_TOO_LARGE_BOOTLOADER_INFO를 활성화하여 부트로드 정보 공유를 사용하여 수행 할 수 있습니다.
- Logging
- 사전 기반 로깅을 사용할 때 바이너리에서 문자 문자열을 제거하는 옵션이 추가되었습니다.
- 가장 일반적인 로그 message (2까지의 수학적 assertion을 가진 문자열) 를 최적화합니다. code 크기와 성능에 대한 최적화는 code (riscv32에서 눈에 띄는 상당한 증가)
- 확장된 로깅 프론트엔드 API는 최적화된 message에 대한 전용 기능을 선택적으로 구현할 수 있습니다. 선택적 API는
CONFIG_LOG_FRONTEND_OPT_API에 의해 활성화됩니다. - logging 프론트엔드의 런타임 message 필터링에 대한 지원이 추가되었습니다
- UART 로그 backend의 여러 인스턴스를 지원하는 옵션이 추가되었습니다.
- userspace가 활성화 된
printk에 대한 userspace 문제가 수정되었습니다. %p에 대한 문자 포인터를 사용하는 로깅 message의 컴파일 시간 검출이 추가되었습니다. 사전 기반 로깅을 사용할 때 피해야 하며 문자열이 바이너리에서 제거되어야합니다. 오류가 발견되면 사용자 message가 포인터 캐스팅을 추가해야 한다는 오류 message로 대체됩니다.- v2 logging에 대한 나머지 참조를 제거했습니다.
log2_generic에log_generic로 변경되었습니다.
- Modem 모듈
modem_pipe모듈에TRANSMIT_IDLE이벤트를 추가하여modem_pipe파이프 사용자에게 backend가 buffer에 배치된 모든 바이트를modem_pipe_transmit()을 사용하여 전송했다고 알립니다. 이 이벤트는modem_pipe_transmit()에 호출하는 사이의 지연을 동적으로 관리하는 데 사용되는 경우 대량의 데이터를 전송하는 효율성을 크게 증가시킵니다.- 모든 modem 백그랜드에서
TRANSMIT_IDLE이벤트를 구현했습니다. - 모든 modem 모듈을 확장하여
TRANSMIT_IDLE이벤트를 활용하여modem_pipe_transmit()에 대한 호출 사이의 지연을 동적으로 관리합니다. 이 추가는 큰, 연속적인 양의 데이터를 전송하는 동안 시스템 작업열의 활용을 86%로 줄여 12%로 처리량을 줄이면서 12%로 감소합니다. 이 최적화는 추가로 지연된 로깅 thread와 같은 낮은 우선 순위의 threads를 전송 중에 실행할 수있게합니다 (이modem_pipe_transmit()에 대한 끊임없는, 연속적인 호출에 의해 차단되었습니다). - 개선된
modem_pipe이벤트 디스패팅.modem_pipe모듈은 파이프가 읽을 준비가 된 데이터를 가지고 있다면modem_pipe_attach()을 사용하여 파이프가 연결될 때마다RECEIVE_READY이벤트를 호출하고, 파이프가 열거나 연결되면 항상TRANSMIT_IDLE를 호출합니다. 이것은 modem 파이프 모듈의 이벤트 드라이브 사용자가 read/transmit 작업을 시작하는 이벤트에만 의존할 수 있도록 보장합니다. 개선 사항을 보완하기 위해 test 스위트가 추가되었습니다. - 확장 된
modem_cmux모듈은 DTE (이용자 application) 와 DCE (modem) 로 동작하는 것을 지원합니다. 이 추가로 두 개의 Zephyr application은 각자의modem_cmux인스턴스를 통해 서로 통신할 수 있습니다.
- 피콜리브
- 1.8.6 버전으로 업데이트되었습니다. 이것은
_POSIX_C_SOURCE정의를 build 시스템에서 제거하므로 Zephyr 요구 사항 이외의 APIs를 사용하는 application이 추가해야합니다. - 새로운
printf모드,CONFIG_PICOLIBC_IO_LONG_LONG및CONFIG_PICOLIBC_IO_MINIMAL를 추가했습니다. 이들은 library에서 텍스트 공간 사용을 제어하기 위해 제공하는 지원 수준에 대한 더 세밀한 제어 기능을 제공하는 application을 제공합니다. 기본적으로 다른 구성 매개 변수에 따라 올바른 지원 수준이 선택됩니다. CONFIG_PICOLIBC_ASSERT_VERBOSE가 추가되었습니다. 기본으로 잘못된 이 옵션은assert함수가 assertion이 실패할 때 파일 이름, 라인 번호, 함수 이름 및 실패한 표현 텍스트를 포함한 구사 정보를 표시하는지 여부를 제어합니다. 이 기능을 비활성화하면 텍스트 공간을 절약합니다.CONFIG_THREAD_LOCAL_STORAGE는 이제 Picolibc 사용 중에 비활성화 될 수 있습니다. 이것은 Picolibc 사용 시 문제를 진단하는 데 매우 도움이 되는데, 이는 TLS를 활성화하는 데 의해 종종 발생하고 library 자체를 사용하는 데 의해 발생하지 않기 때문입니다.- library의 수많은 개선 사항, 즉 printf 및 ctype와 같은 영역에서 code 크기의 감축 및 수학 library의 다양한 수정 사항
- 1.8.6 버전으로 업데이트되었습니다. 이것은
- Power management
- 깨어난 자원과 파워오프를 가능하게 하는 Atmel SAM SUPC 기능이 도입되었습니다.
- STM32F4 devices는 이제 RTC 기반의 비동기 타이머의 사용 덕분에 스톱 모드를 지원합니다.
pm_device_runtime_put_async()는 작업의 최소 지연을 지정하는 매개 변수를 가지고 있습니다. 이것은 device를 사용할 때 여러 상태 전환을 피하는 데 유용합니다.- 일시 중지 또는 재개할 때 차단할 필요가 없는 Devices는 이제 ISR 안전 (
PM_DEVICE_ISR_SAFE) 으로 정의될 수 있다. devices의 경우 Zephyr은 RAM 소비를 줄일 수 있으며 실행 시간 device power management는 중단으로부터 안전하게 사용할 수 있습니다. - device 실행 시간 power management의 최적화.
pm_device_runtime_get및pm_device_runtime_put는 아직 작업열에 있는 경우 대기 중인 작업이 완료될 때까지 더 이상 기다릴 수 없습니다. 이 경우, 대기 중인 작업은 취소되고 device 상태가 업데이트됩니다. - 아래의 Kconfig 옵션은 다른 전력 도메인의 초기화 우선 순위를 사용자 정의하기 위해 추가되었습니다.
CONFIG_POWER_DOMAIN_GPIO_INIT_PRIORITYCONFIG_POWER_DOMAIN_GPIO_MONITOR_INIT_PRIORITYCONFIG_POWER_DOMAIN_INTEL_ADSP_INIT_PRIORITY
- Crypto
- Mbed TLS는 3.5.2로 업데이트되었습니다. release의 전체 메모는 https://github.com/Mbed-TLS/mbedtls/releases/tag/v3.5.2에서 찾을 수 있습니다
- 보존
CONFIG_RETENTION_BUFFER_SIZE값이 256에 대한CONFIG_RETENTION_BUFFER_SIZE값이 8-bit 변수 사용으로 인해 무한 루프를 일으킬 수 있는 문제가 해결되었습니다.
- SD
- SDIO devices에 대한 추가 지원
- Storage
- 파일 시스템: LittleFS 모듈은 2.8.1 버전으로 업데이트되었습니다.
- Flash 지도에 따라 API 매크로와 3.2로 표시된
FLASH_AREA_ID,FLASH_AREA_OFFSET,FLASH_AREA_SIZE,FLASH_AREA_LABEL_EXISTS및FLASH_AREA_DEVICE가 삭제되었습니다.
- POSIX API
POSIX_THREADS_EXT,XSI_THREADS_EXT,POSIX_CLOCK_SELECTION,POSIX_SEMAPHORES옵션 그룹에 대한 지원이 완료되었습니다._POSIX_MESSAGE_PASSING및_POSIX_PRIORITY_SCHEDULING옵션에 대한 지원이 완료되었습니다.- 수정: Coverity-CID 211585, 334906, 334909, 340851
- POSIX 문서의 구조와 정확성이 향상되었습니다.
- POSIX Kconfig 옵션의 내비게이션 및 조직 개선
- 8 MB와 pthread_attr_t까지의 배분 및 풀 수 있는 추가 지원
- 지체 및 비동기 thread 취소에 대한 추가 지원
- 식재료 철학자 sample application
- 이름 붙여진 세마포르에 대한 지원이 추가되었습니다.
- Zephyr 셸에 최고 수준의
posix명령어를 추가했습니다. POSIX API에 대한 Zephyr 셸 유틸리티는 하위 명령어로 추가 될 수 있습니다 (예를 들어posix uname -a) - 아싱크 thread 취소 및
SIGEV_THREAD,CLOCK_REALTIME에 대한 추가 지원 - 컴파일 시간 일정 sysconf() 구현이 추가되었습니다.
- LoRa/LoRaWAN
- OTA 펌웨어 업그레이드 지원을 준비하기 위해
CONFIG_LORAWAN_REMOTE_MULTICAST와 함께 LoRaWAN 원격 멀티캐스트 지원이 추가되었습니다.
- OTA 펌웨어 업그레이드 지원을 준비하기 위해
- ZBus
- ZBus channel locking에 사용하던 mutex를 semaphore로 바꾸고 Highest Locker Protocol(HLP)의 priority boost를 구현했습니다. Priority inversion과 불필요한 preemption을 방지해 VDED 전달을 더 빠르고 일관되게 합니다. GitHub 참조:
63183. zbus_chan_add및zbus_chan_rm에 대해 timeout argument을 추가하는 수정: 문서. (:github:65544)- zbus를 사용하여 C 및 C++ 파일을 혼합할 때 warning를 고정합니다. (:github:
65222) ZBUS_CHANNEL_DEFINE매크로는 이제 compatible와 C++. (:github:65196)- Net buf pool fixed definition의 parameter 순서를 수정했습니다. GitHub 참조:
65039. - sample 기준을 재조정하여 message 구독자를 추가했습니다. (:github:
64524) CONFIG_ZBUS_MSG_SUBSCRIBER_NET_BUF_DYNAMIC및CONFIG_ZBUS_MSG_SUBSCRIBER_NET_BUF_STATIC로 개칭하여CONFIG_ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_DYNAMIC및CONFIG_ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_STATIC. (:github:65632)
- ZBus channel locking에 사용하던 mutex를 semaphore로 바꾸고 Highest Locker Protocol(HLP)의 priority boost를 구현했습니다. Priority inversion과 불필요한 preemption을 방지해 VDED 전달을 더 빠르고 일관되게 합니다. GitHub 참조:
HAL
- STM32
- STM32F1를 큐브 버전으로 업데이트
- STM32F7를 큐브 버전으로 업데이트
- STM32H7를 큐브 버전으로 업데이트
- STM32L4를 큐브 버전으로 업데이트
- STM32U5를 큐브 버전으로 업데이트
- STM32WBA를 큐브 버전으로 업데이트
- STM32WB를 큐브 버전으로 업데이트
MCUboot
- 수정: compatible 부트 유틸 점검
- 암호화 된 Kconfig를 저장하는 TLVs와 Kconfig 문제가 수정되었습니다. 암호화가 활성화 된 것을 따라하지 않습니다.
- sysflash의 application에서 누락 상태 확인과 관련된 문제가 해결되었습니다. 파일 포함됩니다.
- boot_serial에서 단일 슬롯 암호화된 이미지 리스트 지원으로 문제가 해결되었습니다.
- 미니크립트를 사용할 때 MBEDTLS Kconfig 선택을 허용하는 문제가 해결되었습니다.
- boot_serial에서 에코 명령이 비활성화 된 경우 누락된 response를 수정했습니다.
- 사용 가능한 이미지를 생성하지 않는 USB 구성에서 문제가 해결되었습니다.
- bootutil에서 boot 상태 작성에 대한 디버그 로깅을 추가했습니다.
- sysbuild의 캐시에 추정된 이미지 오버헤드 크기를 추가했습니다.
- 추가된 펌웨어 로더 운영 모드가 기본 이미지를 업데이트하는 데 사용되는 특수 중추 슬롯 이미지를 허용합니다.
- USB CDC 시리즈 복구가 활성화 된 경우 메인 thread가 예방되지 않는 경우 추가 오류.
- USB CDC 및 console이 모두 활성화되어 있고 동일한 device로 설정된 경우 추가 오류
- 폐기 예정
CONFIG_ZEPHYR_TRY_MASS_ERASEKconfig 옵션을 제거했습니다. - Zcbor를 0.8.1 버전으로 업데이트하고 다시 생성된 boot_serial 파일
- IO 함수를 메인에서 분리된 파일로 옮겼습니다.
- imgtool의
align매개 변수를 선택적으로 만들었습니다. mimxrt1010_evk,mimxrt1015_evk,mimxrt1040_evk,lpcxpresso55s06,lpcxpresso55s16,lpcxpresso55s28,lpcxpresso55s36,lpcxpresso55s69_cpu0에 대한 MCUBoot 지원이 추가되었습니다.- 추가 된
CONFIG_MCUBOOT_IMGTOOL_OVERWRITE_ONLY는 swap 상태 영역 크기를 계산할 때 추가하지 않도록 imgtool에 --overwrite-only 옵션을 통과합니다. - 이 release의 MCUboot 버전은
2.1.0+0-dev버전입니다.
zcbor
zcbor는 0.7.0에서 0.8.1로 업데이트되었습니다. release의 전체 메모는 https://github.com/zephyrproject-rtos/zcbor/blob/0.8.0/RELEASE_NOTES.md 및 https://github.com/zephyrproject-rtos/zcbor/blob/0.8.1/RELEASE_NOTES.md에서 찾을 수 있습니다.
주요 내용:
- Unordered map 지원을 추가했습니다.
- 성능 향상
- 생성된 code에 대한 개선을 명칭한다.
- 버그 수정
LVGL
LVGL는 8.3.7에서 8.3.11로 업데이트되었습니다. 자세한 release 메모는 https://github.com/zephyrproject-rtos/lvgl/blob/zephyr/docs/CHANGELOG.md에서 찾을 수 있습니다.
이 밖에도 다음 변경 사항 은 Zephyr 에 적용 되었습니다.
- 키보드 입력에
zephyr,lvgl-keypad-inputcompatible를 추가했습니다. - Zephyr 로그 레벨이 LVGL 로그 레벨에 제대로 맞춰지지 않은 문제가 해결되었습니다.
CONFIG_LV_Z_FULL_REFRESH설정이CONFIG_LV_Z_VDB_SIZE를 100 퍼센트로 설정하지 않은 문제가 해결되었습니다.
Test 및 Sample
native_sim<native_sim>는 기본native_posix<native_posix>플랫폼으로native_posix<native_posix>를 대체했습니다.native_posix<native_posix>는 여전히 지원되고 테스트에서 사용되지만 미래의 release에서 구제 될 것입니다.- Bluetooth 분할 스택 tests, BT host 및 controller는 별도의 MCUs에서 실행되며, 현재 CI에서
nrf5340_bsim<nrf5340bsim>목표를 기반으로 실행됩니다. 이러한 목표를 기반으로 다른 실행 시간 AMP tests는 OpenAMP의 tests1, mbox 및 tests2 tests3 및 로그저 멀티 도메인 기능을 포함하여 tests0에 추가되었습니다. - 런타임 UART tests는 CI에
nrf52_bsim<nrf52_bsim>목표물을 기반으로 추가되었습니다. 여기에는 nRFx UART driver의 BT stack tests0와 tests1 및 tests2이 tests3을 통해 통신하는 tests4 tests5 tests6와 네트워크로 연결되었습니다. - :zephyr:code-sample:
smp-svrsample에서 문제가 해결되었습니다. USB이 이미 초기화되었을 경우, application은 boot에 제대로 작동하지 않을 것입니다. - LVGL sample:zephyr:code-sample:
lvgl-accelerometer-chart를 추가하여 차트 위젯에서 실시간 sensor 데이터를 표시합니다. - :zephyr:code-sample:
ipm-esp32에서 ESP32-S3 IPM 지원이 추가되었습니다. - 추가된 ESP32 memory 지도 flash 접근 sample:zephyr:code-sample:
esp32-flash-memory-mapped. - 추가된 ESP32 PWM 루프백 test 케이스
- NXP boards
MIMXRT1160-EVK,MIMXRT1170-EVK,MIMXRT1170-EVKB,LPCXpresso55S69에 대한 mbox sample에 추가된 지원 - sample
flexram-magic-addr를 추가하여 memc flexram driver를 사용할 때 플렉스트램 마직 주소 기능을 사용하는 방법을 보여줍니다.
Source
출처
영어 원문에는 문단, 문서 지시문, 표, 코드, 코드 심벌, 경로를 그대로 보존했습니다.