releases/release-notes-1.6.html · releases/release-notes-1.6.rst 공식 원문 ↗

Zephyr 3.7.0 · Historical Release

Zephyr Kernel 1.6.0 Release Notes

Nano/micro kernel을 하나로 합친 Unified Kernel 전환부터 architecture, board, driver, network, Bluetooth, build와 알려진 문제까지 원문 순서대로 설명합니다.

Official pathreleases/release-notes-1.6.html
Source filereleases/release-notes-1.6.rst
Source versionZephyr 3.7.0
TranslationFull · reviewed

본문 기준: Zephyr 3.7.0 LTS3 · 이후 유지보수 패치는 별도입니다.

Part 1

요약·해설

372줄 공식 원문 전체와 14개 절, JIRA 관련 항목 192건 및 알려진 문제 1건을 빠짐없이 번역합니다.

Kernel

Unified Kernel · legacy API deprecated

Platform

Cortex-M0/M0+ · 새 board와 driver

Connectivity

USB Mass Storage · nRF51/nRF52 Bluetooth

Part 2

접을 수 있는 영어 원문 전체

영어 원문 전체 펼치기
원문 SHA-256 A747E42F28086ABF2E5BD1C54C530E2955440885F1CF0640AFBFD2F0FAB1CED1
.. _zephyr_1.6:

Zephyr Kernel 1.6.0
####################

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

Major enhancements included with the release:

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

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

Kernel
******

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

Architectures
*************

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

Boards
******

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

Drivers and Sensors
*******************

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

Networking
**********

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

Bluetooth
*********

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

Build Infrastructure
********************

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

Libraries
*********

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

HALs
****

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

Documentation
*************

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

Test and Samples
****************

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

Deprecations
************

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

JIRA Related Items
******************

* ``ZEP-308`` - Build System cleanup and Kernel / Application build separation
* ``ZEP-334`` - Unified Kernel
* ``ZEP-766`` - USB Mass Storage access to internal filesystem
* ``ZEP-1090`` - CPU x86 save/restore using new QMSI bootloader flow
* ``ZEP-1173`` - Add support for bonding remove
* ``ZEP-48`` - define API for interrupt controllers
* ``ZEP-181`` - Persistent storage APIs
* ``ZEP-233`` - Support USB mass storage device class
* ``ZEP-237`` - Support pre-built host tools
* ``ZEP-240`` - printk/printf usage in samples
* ``ZEP-248`` - Add a BOARD/SOC porting guide
* ``ZEP-342`` - USB DFU
* ``ZEP-451`` - Quark SE output by default redirected to IPM
* ``ZEP-521`` - ARM - add choice to floating point ABI selection
* ``ZEP-546`` - UART interrupts not triggered on ARC
* ``ZEP-584`` - warn user if SDK is out of date
* ``ZEP-592`` - Sanitycheck support for multiple toolchains
* ``ZEP-605`` - SMP over BR/EDR
* ``ZEP-614`` - Port TinyCrypt 2.0 test cases to Zephyr
* ``ZEP-622`` - Add FS API to truncate/shrink a file
* ``ZEP-627`` - Port Trickle support from Contiki into current stack
* ``ZEP-635`` - Add FS API to grow a file
* ``ZEP-636`` - Add FS API to get volume total and free space
* ``ZEP-640`` - Remove dynamic IRQs/exceptions from Zephyr
* ``ZEP-653`` - QMSI shim driver: Watchdog: Implement suspend and resume callbacks
* ``ZEP-654`` - QMSI shim driver: I2C: Implement suspend and resume callbacks
* ``ZEP-657`` - QMSI shim driver: AONPT: Implement suspend and resume callbacks
* ``ZEP-661`` - QMSI shim driver: SPI: Implement suspend and resume callbacks
* ``ZEP-688`` - unify duplicated sections of arch linker scripts
* ``ZEP-715`` - Add K64F clock configurations
* ``ZEP-716`` - Add Hexiwear board support
* ``ZEP-717`` - Add ksdk I2C shim driver
* ``ZEP-718`` - Add ksdk ethernet shim driver
* ``ZEP-721`` - Add FXOS8700 accelerometer/magnetometer sensor driver
* ``ZEP-737`` - Update host tools from upstream: fixdep.c
* ``ZEP-740`` - PWM API: Check if 'flags' argument is really required
* ``ZEP-745`` - Revisit design of PWM Driver API
* ``ZEP-750`` - Arduino 101 board should support one configuration using original bootloader
* ``ZEP-758`` - Rename Quark SE Devboard to its official name: Quark SE C1000
* ``ZEP-767`` - Add FS API to flush cache of an open file
* ``ZEP-775`` - Enable USB CDC by default on Arduino 101 and redirect serial to USB
* ``ZEP-783`` - ARM Cortex-M0/M0+ support
* ``ZEP-784`` - Add support for Nordic Semiconductor nRF51822 SoC
* ``ZEP-850`` - remove obsolete boards basic_minuteia and basic_cortex_m3
* ``ZEP-906`` - [unified] Add scheduler time slicing support
* ``ZEP-907`` - Test memory pool support (with mailboxes)
* ``ZEP-908`` - Add task offload to fiber support
* ``ZEP-909`` - Adapt tickless idle + power management for ARM
* ``ZEP-910`` - Adapt tickless idle for x86
* ``ZEP-912`` - Finish renaming kernel object types
* ``ZEP-916`` - Eliminate kernel object API anomalies
* ``ZEP-920`` - Investigate malloc/free support
* ``ZEP-921`` - Miscellaneous documentation work
* ``ZEP-922`` - Revise documentation for Kernel Event Logger
* ``ZEP-923`` - Revise documentation for Timing
* ``ZEP-924`` - Revise documentation for Interrupts
* ``ZEP-925`` - API changes to message queues
* ``ZEP-926`` - API changes to memory pools
* ``ZEP-927`` - API changes to memory maps
* ``ZEP-928`` - API changes to event handling
* ``ZEP-930`` - Cut over to unified kernel
* ``ZEP-933`` - Unified kernel ARC port
* ``ZEP-934`` - NIOS_II port
* ``ZEP-935`` - Kernel logger support (validation)
* ``ZEP-954`` - Update device PM API to allow setting additional power states
* ``ZEP-957`` - Create example sample for new unified kernel API usage
* ``ZEP-959`` - sync checkpatch.pl with upstream Linux
* ``ZEP-966`` - need support for EM7D SOC on em_starterkit
* ``ZEP-975`` - DNS client port to new IP stack
* ``ZEP-981`` - Add doxygen documentation to both include/kernel.h and include/legacy.h
* ``ZEP-989`` - Cache next ready thread instead of finding out the long way
* ``ZEP-993`` - Quark SE (x86): Refactor save/restore execution context feature
* ``ZEP-994`` - Quark SE (ARC): Add PMA sample
* ``ZEP-996`` - Refactor save/restore feature from i2c_qmsi driver
* ``ZEP-997`` - Refactor save/restore feature from spi_qmsi driver
* ``ZEP-998`` - Refactor save/restore feature from uart_qmsi driver
* ``ZEP-999`` - Refactor save/restore feature from gpio_qmsi driver
* ``ZEP-1000`` - Refactor save/restore feature from rtc_qmsi driver
* ``ZEP-1001`` - Refactor save/restore feature from wdt_qmsi driver
* ``ZEP-1002`` - Refactor save/restore feature from counter_qmsi_aonpt driver
* ``ZEP-1004`` - Extend counter_qmsi_aon driver to support save/restore peripheral context
* ``ZEP-1005`` - Extend dma_qmsi driver to support save/restore peripheral context
* ``ZEP-1006`` - Extend soc_flash_qmsi driver to support save/restore peripheral context
* ``ZEP-1008`` - Extend pwm_qmsi driver to support save/restore peripheral context
* ``ZEP-1023`` - workq in Kernel primer for unified kernel
* ``ZEP-1030`` - Enable QMSI shim drivers of SoC peripherals on the sensor subsystem
* ``ZEP-1043`` - Update QMSI to 1.2
* ``ZEP-1045`` - Add/Enhance shim layer to wrap SOC specific PM implementations
* ``ZEP-1046`` - Implement RAM sharing between bootloader and Zephyr
* ``ZEP-1047`` - Adapt to new PM related boot flow changes in QMSI boot loader
* ``ZEP-1106`` - Fix all test failures from TCF
* ``ZEP-1107`` - Update QMSI to 1.3
* ``ZEP-1109`` - Texas Instruments CC3200 LaunchXL Support
* ``ZEP-1119`` - move top level usb/ to sys/usb
* ``ZEP-1120`` - move top level fs/ to sys/fs
* ``ZEP-1121`` - Add config support for enabling SoCWatch in Zephyr
* ``ZEP-1140`` - Add a unified kernel version of power_mgr sample app for testing PM code with the new kernel
* ``ZEP-1188`` - Add an API to retrieve pending interrupts for wake events
* ``ZEP-1191`` - Create wiki page for Hexiwear board
* ``ZEP-1235`` - Basic shell support for file system browsing
* ``ZEP-1245`` - ARM LTD V2M Beetle Support
* ``ZEP-1313`` - porting and user guides must include a security section
* ``ZEP-1386`` - Revise power management document to reflect latest changes
* ``ZEP-199`` - Zephyr driver model is undocumented
* ``ZEP-436`` - Test case tests/kernel/test_mem_safe fails on ARM hardware
* ``ZEP-471`` - Ethernet packet with multicast address is not working
* ``ZEP-472`` - Ethernet packets are getting missed if sent in quick succession.
* ``ZEP-517`` - build on windows failed "zephyr/Makefile:869: \*\*\* multiple target patterns"
* ``ZEP-528`` - ARC has 2 almost identical copies of the linker script
* ``ZEP-577`` - Sample application source does not compile on Windows
* ``ZEP-601`` - enable CONFIG_DEBUG_INFO
* ``ZEP-602`` - unhandled CPU exceptions/interrupts report wrong faulting vector if triggered by CPU
* ``ZEP-615`` - Un-supported flash erase size listed in SPI flash w25qxxdv driver header file
* ``ZEP-639`` - device_pm_ops structure should be defined as static
* ``ZEP-686`` - docs: Info in "Application Development Primer" and "Developing an Application and the Build System" is largely duplicated
* ``ZEP-698`` - samples/task_profiler issues
* ``ZEP-707`` - mem_safe test stomps on top of .data and bottom of .noinit
* ``ZEP-724`` - build on windows failed: 'make: execvp: uname: File or path name too long'
* ``ZEP-733`` - Minimal libc shouldn't be providing stddef.h
* ``ZEP-762`` - unexpected "abspath" and "notdir" from mingw make system
* ``ZEP-777`` - samples/driver/i2c_stts751: kconfig build warning from "select DMA_QMSI"
* ``ZEP-778`` - Samples/drivers/i2c_lsm9ds0: kconfig build warning from "select DMA_QMSI"
* ``ZEP-779`` - Using current MinGW gcc version 5.3.0 breaks Zephyr build on Windows
* ``ZEP-845`` - UART for ARC on Arduino 101 behaves unexpectedly
* ``ZEP-905`` - hello_world compilation for arduino_due target fails when using CROSS_COMPILE
* ``ZEP-940`` - Fail to get ATT response
* ``ZEP-950`` - USB: Device is not listed by USB20CV test suite
* ``ZEP-961`` - samples: other cases cannot execute after run aon_counter case
* ``ZEP-967`` - Sanity doesn't build 'samples/usb/dfu' with assertions (-R)
* ``ZEP-970`` - Sanity doesn't build 'tests/kernel/test_build' with assertions (-R)
* ``ZEP-982`` - Minimal libc has EWOULDBLOCK != EAGAIN
* ``ZEP-1014`` - [TCF] tests/bluetooth/init build fail
* ``ZEP-1025`` - Unified kernel build sometimes breaks on a missing .d dependency file.
* ``ZEP-1027`` - Documentation for GCC ARM is not accurate
* ``ZEP-1031`` - qmsi: dma: driver test fails with LLVM
* ``ZEP-1048`` - grove_lcd sample: sample does not work if you disable serial
* ``ZEP-1051`` - mpool allocation failed after defrag twice...
* ``ZEP-1062`` - Unified kernel isn't compatible with CONFIG_NEWLIB_LIBC
* ``ZEP-1074`` - ATT retrying misbehaves when ATT insufficient Authentication is received
* ``ZEP-1076`` - "samples/philosophers/unified" build failed with dynamic stack
* ``ZEP-1077`` - "samples/philosophers/unified" build warnings with NUM_PHIL<6
* ``ZEP-1079`` - Licensing not clear for imported components
* ``ZEP-1097`` - ENC28J60 driver fails on concurrent tx and rx
* ``ZEP-1098`` - ENC28J60 fails to receive big data frames
* ``ZEP-1100`` - Current master still identifies itself as 1.5.0
* ``ZEP-1101`` - SYS_KERNEL_VER_PATCHLEVEL() and friends artificially limit version numbers to 4 bits
* ``ZEP-1124`` - tests/kernel/test_sprintf/microkernel/testcase.ini#test failure on frdm_k64f
* ``ZEP-1130`` - region 'RAM' overflowed occurs while building test_hmac_prng
* ``ZEP-1138`` - Received packets not being passed to upper layer from IP stack when using ENC28J60 driver
* ``ZEP-1139`` - Fix build error when power management is built with unified kernel
* ``ZEP-1141`` - TinyCrypt SHA256 test fails with system crash using unified kernel type
* ``ZEP-1144`` - TinyCrypt AES128 fixed-key with variable-text test fails using unified kernel type
* ``ZEP-1145`` - system hang after TinyCrypt HMAC test
* ``ZEP-1146`` - zephyrproject.org home page needs technical scrub for 1.6 release
* ``ZEP-1149`` - port ztest framework to unified kernel
* ``ZEP-1154`` - tests/samples failing with unified kernel
* ``ZEP-1155`` - Fix filesystem API namespace
* ``ZEP-1163`` - LIB_INCLUDE_DIR is clobbered in Makefile second pass
* ``ZEP-1164`` - ztest skip waiting the test case to finish its execution
* ``ZEP-1179`` - Build issues when compiling with LLVM from ISSM (icx)
* ``ZEP-1182`` - kernel.h doxygen show unexpected "asm" blocks
* ``ZEP-1183`` - btshell return "panic: errcode -1" when init bt
* ``ZEP-1195`` - Wrong ATT error code passed to the application
* ``ZEP-1199`` - [L2CAP] No credits to receive packet
* ``ZEP-1219`` - [L2CAP] Data sent exceeds maximum PDU size
* ``ZEP-1221`` - Connection Timeout during pairing
* ``ZEP-1226`` - cortex M7 port assembler error
* ``ZEP-1227`` - ztest native testing not working in unified kernel
* ``ZEP-1232`` - Daily build is failing asserts
* ``ZEP-1234`` - Removal of fiber* APIs due to unified migration breaks USB mass storage patchset
* ``ZEP-1247`` - Test tests/legacy/benchmark/latency_measure is broken for daily sanitycheck
* ``ZEP-1252`` - Test test_chan_blen_transfer does not build for quark_d2000_crb
* ``ZEP-1277`` - Flash driver (w25qxxdv) erase function is not checking for offset alignment
* ``ZEP-1278`` - Incorrect boundary check in flash driver (w25qxxdv) for erase offset
* ``ZEP-1287`` - ARC SPI 1 Port is not working
* ``ZEP-1289`` - Race condition with k_sem_take
* ``ZEP-1291`` - libzephyr.a dependency on phony "gcc" target
* ``ZEP-1293`` - ENC28J60 driver doesn't work on Arduino 101
* ``ZEP-1295`` - incorrect doxygen comment in kernel.h:k_work_pending()
* ``ZEP-1297`` - test/legacy/kernel/test_mail: failure on ARC platforms
* ``ZEP-1299`` - System can't resume completely with DMA suspend and resume operation
* ``ZEP-1302`` - ENC28J60 fails with rx/tx of long frames
* ``ZEP-1303`` - Configuration talks about >32 thread prios, but the kernel does not support it
* ``ZEP-1309`` - ARM uses the end of memory for its init stack
* ``ZEP-1310`` - ARC uses the end of memory for its init stack
* ``ZEP-1312`` - ARC: software crashed at k_mbox_get() with async sending a message
* ``ZEP-1319`` - Zephyr is unable to compile when CONFIG_RUNTIME_NMI is enabled on ARM platforms
* ``ZEP-1341`` - power_states test app passes wrong value as power state to post_ops functions
* ``ZEP-1343`` - tests/drivers/pci_enum: failing on QEMU ARM and X86 due to missing commit
* ``ZEP-1345`` - cpu context save and restore could corrupt stack
* ``ZEP-1349`` - ARC sleep needs to pass interrupt priority threshold when interrupts are enabled
* ``ZEP-1353`` - FDRM k64f Console output broken on normal flash mode

Known Issues
************

* ``ZEP-1405`` - function l2cap_br_conn_req in /subsys/bluetooth/host/l2cap_br.c
  references uninitialized pointer

Part 3

한국어 전문 번역

Zephyr Kernel 1.6.0

Zephyr Kernel 1.6.0 release를 발표합니다. 이번 release는 서로 분리되어 있던 nanokernel과 microkernel을 하나의 Unified Kernel로 교체해 Zephyr의 전체 architecture와 programming interface를 단순화했습니다.

ARM Cortex-M0/M0+ 제품군 지원을 새로 추가하고 Cortex-M board 지원 범위를 넓혔습니다. Documentation, build infrastructure, test 체계에도 많은 개선이 들어갔습니다.

주요 개선 사항은 다음과 같습니다.

  • Unified Kernel을 도입하고 기존 nano/micro kernel을 제거했습니다.
  • Legacy API는 계속 지원하지만 deprecated 상태로 전환했습니다.
  • Legacy test와 sample을 tests/legacy와 samples/legacy로 옮겼습니다.
  • Unified Kernel documentation을 추가하고 예전 nanokernel/microkernel documentation을 제거했습니다.
  • 여러 ARM Cortex-M board를 지원합니다.
  • USB Mass Storage와 filesystem 접근을 지원합니다.
  • nRF51과 nRF52용 native Bluetooth Controller를 지원합니다.

다음은 v1.5.0 이후 변경 사항을 component별로 정리한 상세 목록입니다.

Kernel

  • Unified Kernel을 도입했습니다.
  • Deprecated된 Tasks IRQ와 dynamic interrupt API를 제거했습니다.
  • Doubly-linked list의 모든 element를 다루는 DLIST 기능을 추가했습니다.
  • SLIST에 head를 가져오면서 제거하는 sys_slist_get(), list를 뒤에 붙이는 append_list, 두 list를 합치는 merge_slist를 추가했습니다.
  • Work item이 실행 대기 중인지 확인하는 nano_work_pending을 추가했습니다.
  • Unified API에 k_malloc과 k_free를 추가했습니다.
  • Kernel object 이름을 event에서 alert로, memory map에서 memory slab으로 바꿨습니다.
  • Memory pool, memory map, message queue, event handling API를 변경했습니다.

Architectures

  • ARC: CONFIG_TIMER0_CLOCK_FREQ를 제거하고 linker script를 통합했으며 dynamic interrupt를 제거했습니다.
  • ARM: Floating-point ABI 선택 option과 NXP Kinetis clock Kconfig option을 추가했습니다.
  • ARM: Dynamic interrupt와 exception을 제거하고 Atmel watchdog register용 constant와 structure를 추가했습니다.
  • ARM: Cortex-M0/M0+를 지원합니다.
  • x86: Dynamic interrupt와 exception을 제거하고 interrupt controller용 internal API를 선언했습니다.
  • x86: IRQ controller가 source vector를 판단할 수 없을 때 -1을 반환하도록 변경했습니다.
  • x86: Quark SoC를 intel_quark family 아래로 묶고 IRQ·exception stub을 최적화하고 단순화했습니다.

Boards

  • Quark SE devboard를 Quark SE C1000 devboard로, Quark SE SSS devboard를 Quark SE C1000 SS devboard로 이름을 바꿨습니다.
  • Quark SE C1000 Sensor Subsystem에서 IPM을 끄고 UART0을 켰습니다.
  • basic_cortex_m3와 basic_minuteia board를 제거했습니다.
  • Arduino 101의 backup/restore script를 제거했습니다. 원래 bootloader를 복원하려면 flashpack utility를 사용해야 합니다.
  • nRF52 Nitrogen을 96Boards Nitrogen으로 이름을 바꿨습니다.
  • ARM LTD Beetle SoC와 V2M Beetle board, TI CC3200 LaunchXL, Nordic nRF51822, NXP Hexiwear board 지원을 추가했습니다.

Drivers and Sensors

  • SPI port number 오타를 수정하고 사용하지 않는 Quark pinmux file을 제거했습니다.
  • I2C·Ethernet·Flash용 KSDK shim driver를 추가하고 I2C configuration parameter를 SoC별로 분리했습니다.
  • QMSI shim driver에 suspend/resume 함수를 구현했습니다.
  • HP206C sensor와 SoCWatch driver 지원을 추가했습니다.
  • config_info pointer를 const로 변경했습니다.
  • FXOS8700 accelerometer/magnetometer sensor driver를 추가했습니다.

Networking

  • uIP networking stack의 작은 문제들을 수정했습니다. uIP stack은 1.7에서 deprecated될 예정입니다.

Bluetooth

  • nRF51과 nRF52를 지원하는 native Bluetooth Controller를 추가했습니다.
  • Controller와 Host 구현 위치를 subsys/bluetooth/로 옮겼습니다.
  • Controller-only build에서 physical HCI transport를 쓸 수 있도록 raw HCI API를 추가했습니다.
  • USB와 UART를 사용하는 raw HCI sample application을 추가했습니다.
  • Security Manager Protocol에 cross-transport pairing을 추가했습니다.
  • Bluetooth Classic용 RFCOMM을 지원합니다.
  • Filesystem 기반의 기본 persistent storage를 지원합니다.
  • Bluetooth radio driver 도입을 준비하며 bt_driver API를 bt_hci_driver로 이름을 바꿨습니다.

Build Infrastructure

  • Build 충돌을 막기 위해 Makefile output directory를 board별 directory로 변경했습니다.
  • Makefile이 HOST_OS environment variable을 사용하도록 변경하고 third-party build system 지원을 추가했습니다.
  • Sanity에 environment variable filter, 여러 toolchain, ISSM·ARM GCC Embedded toolchain, 추가 build argument 지원을 넣었습니다.
  • Sanity의 linker VMA/LMA offset 검사를 제거했습니다.
  • Sysgen에 --kernel_type argument를 추가하고 build infrastructure를 Unified Kernel에 맞게 변경했습니다.
  • 최소 Zephyr SDK version 검사와 Linux kernel의 get_maintainer.pl을 추가했습니다.

Libraries

  • libc의 inttypes.h에 표준 type 일부를 추가하고 z length specifier를 지원합니다.
  • Compiler가 제공하는 stddef.h를 libc에서 제거했습니다.
  • printf 출력 code를 개선하고 printk modifier를 지원합니다.
  • Zephyr용 CoAP 구현을 추가했습니다.
  • File을 늘리거나 줄이는 API, volume 통계 API, 열린 file cache flush API를 filesystem에 추가했습니다.

HALs

  • QMSI를 version 1.3.1로 갱신했습니다.
  • CC3200 SDK와 Nordic MDK nRF51 file을 가져왔습니다.
  • Kinetis SDK Ethernet PHY driver와 SDK RNGA driver를 가져왔습니다.

Documentation

  • Zephyr Driver model 설명과 device power management API 문서를 개선했습니다.
  • Unified Kernel primer를 추가했습니다.
  • 지원 board 정보를 wiki.zephyrproject.org로 옮겼습니다.
  • Kernel Event Logger와 Timing 문서를 개정했습니다.

Test and Samples

  • 잘못된 printk 사용을 수정하고 dynamic exception test를 제거했습니다.
  • USB sample과 CoAP client/server test·sample을 추가했습니다.
  • Unified philosophers sample과 Unified Kernel API sample을 추가했습니다.
  • printf/printk wrapper를 제거했습니다.
  • CTR, ECC DSA, ECC DH algorithm용 TinyCrypt test case를 가져왔습니다.

Deprecations

  • Microkernel과 nanokernel API를 deprecated로 전환했습니다.
  • Dynamic IRQ·exception과 Tasks IRQ를 제거했습니다.

JIRA Related Items

이 release와 연결된 192개 JIRA 항목입니다. 식별자와 원문 순서를 그대로 유지했습니다.

  • ZEP-308 - Build system 정리와 Kernel/Application build 분리
  • ZEP-334 - Unified Kernel 도입
  • ZEP-766 - USB Mass Storage에서 내부 filesystem에 접근
  • ZEP-1090 - 새 QMSI bootloader 흐름을 사용하는 x86 CPU save/restore
  • ZEP-1173 - Bonding 제거 지원 추가
  • ZEP-48 - Interrupt controller용 API 정의
  • ZEP-181 - Persistent storage API 제공
  • ZEP-233 - USB Mass Storage device class 지원
  • ZEP-237 - 미리 build된 host tool 지원
  • ZEP-240 - Sample에서 printk/printf 사용 방식 정리
  • ZEP-248 - BOARD/SoC porting guide 추가
  • ZEP-342 - USB DFU 지원
  • ZEP-451 - Quark SE 출력을 기본적으로 IPM으로 redirect
  • ZEP-521 - ARM floating-point ABI 선택 option 추가
  • ZEP-546 - ARC에서 UART interrupt가 발생하지 않는 문제
  • ZEP-584 - SDK가 오래되었을 때 사용자에게 warning 표시
  • ZEP-592 - Sanitycheck에서 여러 toolchain 지원
  • ZEP-605 - BR/EDR 위에서 SMP 지원
  • ZEP-614 - TinyCrypt 2.0 test case를 Zephyr로 port
  • ZEP-622 - File을 truncate하거나 축소하는 FS API 추가
  • ZEP-627 - Contiki의 Trickle 지원을 현재 stack으로 port
  • ZEP-635 - File을 확장하는 FS API 추가
  • ZEP-636 - Volume 전체 공간과 여유 공간을 조회하는 FS API 추가
  • ZEP-640 - Zephyr에서 dynamic IRQ와 exception 제거
  • ZEP-653 - QMSI Watchdog shim driver에 suspend/resume callback 구현
  • ZEP-654 - QMSI I2C shim driver에 suspend/resume callback 구현
  • ZEP-657 - QMSI AONPT shim driver에 suspend/resume callback 구현
  • ZEP-661 - QMSI SPI shim driver에 suspend/resume callback 구현
  • ZEP-688 - Architecture linker script의 중복 section 통합
  • ZEP-715 - K64F clock configuration 추가
  • ZEP-716 - Hexiwear board 지원 추가
  • ZEP-717 - KSDK I2C shim driver 추가
  • ZEP-718 - KSDK Ethernet shim driver 추가
  • ZEP-721 - FXOS8700 accelerometer/magnetometer sensor driver 추가
  • ZEP-737 - Upstream의 fixdep.c로 host tool 갱신
  • ZEP-740 - PWM API에서 flags argument가 실제로 필요한지 점검
  • ZEP-745 - PWM Driver API 설계 재검토
  • ZEP-750 - Arduino 101 board가 원래 bootloader를 쓰는 단일 configuration 지원
  • ZEP-758 - Quark SE Devboard를 공식 이름 Quark SE C1000으로 변경
  • ZEP-767 - 열린 file의 cache를 flush하는 FS API 추가
  • ZEP-775 - Arduino 101에서 USB CDC를 기본 활성화하고 serial을 USB로 redirect
  • ZEP-783 - ARM Cortex-M0/M0+ 지원
  • ZEP-784 - Nordic Semiconductor nRF51822 SoC 지원 추가
  • ZEP-850 - 오래된 basic_minuteia와 basic_cortex_m3 board 제거
  • ZEP-906 - Unified Kernel scheduler에 time slicing 지원 추가
  • ZEP-907 - Mailbox를 포함한 memory pool 지원 test
  • ZEP-908 - Task 작업을 fiber로 offload하는 기능 지원
  • ZEP-909 - ARM용 tickless idle과 power management 조정
  • ZEP-910 - x86용 tickless idle 조정
  • ZEP-912 - Kernel object type 이름 변경 마무리
  • ZEP-916 - Kernel object API의 불일치 제거
  • ZEP-920 - malloc/free 지원 조사
  • ZEP-921 - 여러 documentation 작업 수행
  • ZEP-922 - Kernel Event Logger documentation 개정
  • ZEP-923 - Timing documentation 개정
  • ZEP-924 - Interrupt documentation 개정
  • ZEP-925 - Message queue API 변경
  • ZEP-926 - Memory pool API 변경
  • ZEP-927 - Memory map API 변경
  • ZEP-928 - Event handling API 변경
  • ZEP-930 - Unified Kernel로 전환
  • ZEP-933 - Unified Kernel의 ARC 이식
  • ZEP-934 - NIOS_II 이식
  • ZEP-935 - Kernel logger 지원 검증
  • ZEP-954 - 추가 power state를 설정할 수 있도록 device PM API 갱신
  • ZEP-957 - 새 Unified Kernel API 사용법을 보여 주는 sample 작성
  • ZEP-959 - checkpatch.pl을 upstream Linux와 동기화
  • ZEP-966 - em_starterkit에서 EM7D SoC 지원 필요
  • ZEP-975 - DNS client를 새 IP stack으로 port
  • ZEP-981 - include/kernel.h와 include/legacy.h에 Doxygen documentation 추가
  • ZEP-989 - 매번 탐색하지 않도록 다음 ready thread를 cache
  • ZEP-993 - Quark SE x86의 save/restore execution context 기능 refactor
  • ZEP-994 - Quark SE ARC용 PMA sample 추가
  • ZEP-996 - i2c_qmsi driver의 save/restore 기능 refactor
  • ZEP-997 - spi_qmsi driver의 save/restore 기능 refactor
  • ZEP-998 - uart_qmsi driver의 save/restore 기능 refactor
  • ZEP-999 - gpio_qmsi driver의 save/restore 기능 refactor
  • ZEP-1000 - rtc_qmsi driver의 save/restore 기능 refactor
  • ZEP-1001 - wdt_qmsi driver의 save/restore 기능 refactor
  • ZEP-1002 - counter_qmsi_aonpt driver의 save/restore 기능 refactor
  • ZEP-1004 - counter_qmsi_aon driver에 peripheral context save/restore 지원 추가
  • ZEP-1005 - dma_qmsi driver에 peripheral context save/restore 지원 추가
  • ZEP-1006 - soc_flash_qmsi driver에 peripheral context save/restore 지원 추가
  • ZEP-1008 - pwm_qmsi driver에 peripheral context save/restore 지원 추가
  • ZEP-1023 - Unified Kernel primer에 work queue 설명 추가
  • ZEP-1030 - Sensor subsystem에서 SoC peripheral용 QMSI shim driver 활성화
  • ZEP-1043 - QMSI를 version 1.2로 갱신
  • ZEP-1045 - SoC별 PM 구현을 감싸는 shim layer 추가·개선
  • ZEP-1046 - Bootloader와 Zephyr 사이의 RAM 공유 구현
  • ZEP-1047 - QMSI bootloader의 새 PM boot flow 변경에 대응
  • ZEP-1106 - TCF에서 발생하는 모든 test failure 수정
  • ZEP-1107 - QMSI를 version 1.3으로 갱신
  • ZEP-1109 - Texas Instruments CC3200 LaunchXL 지원
  • ZEP-1119 - 최상위 usb/ directory를 sys/usb로 이동
  • ZEP-1120 - 최상위 fs/ directory를 sys/fs로 이동
  • ZEP-1121 - Zephyr에서 SoCWatch를 활성화하는 configuration 지원 추가
  • ZEP-1140 - 새 kernel로 PM code를 test하는 Unified Kernel power_mgr sample 추가
  • ZEP-1188 - Wake event용 pending interrupt를 조회하는 API 추가
  • ZEP-1191 - Hexiwear board Wiki page 작성
  • ZEP-1235 - Filesystem 탐색을 위한 기본 shell 지원
  • ZEP-1245 - ARM LTD V2M Beetle 지원
  • ZEP-1313 - Porting guide와 user guide에 security section 의무화
  • ZEP-1386 - 최신 변경을 반영하도록 power management document 개정
  • ZEP-199 - Zephyr driver model이 문서화되지 않은 문제
  • ZEP-436 - ARM hardware에서 tests/kernel/test_mem_safe test case가 실패하는 문제
  • ZEP-471 - Multicast address를 사용하는 Ethernet packet이 동작하지 않는 문제
  • ZEP-472 - Ethernet packet을 연속으로 빠르게 보내면 일부가 누락되는 문제
  • ZEP-517 - Windows build에서 zephyr/Makefile:869의 multiple target patterns 오류
  • ZEP-528 - ARC에 거의 같은 linker script가 두 개 존재하는 문제
  • ZEP-577 - Sample application source가 Windows에서 compile되지 않는 문제
  • ZEP-601 - CONFIG_DEBUG_INFO 활성화
  • ZEP-602 - CPU가 일으킨 미처리 exception/interrupt가 잘못된 fault vector를 보고하는 문제
  • ZEP-615 - SPI flash w25qxxdv driver header에 지원하지 않는 erase size가 적힌 문제
  • ZEP-639 - device_pm_ops structure를 static으로 정의해야 하는 문제
  • ZEP-686 - Application Development Primer와 Build System 문서 내용이 크게 중복되는 문제
  • ZEP-698 - samples/task_profiler 문제
  • ZEP-707 - mem_safe test가 .data 상단과 .noinit 하단을 덮어쓰는 문제
  • ZEP-724 - Windows build에서 make의 File or path name too long 오류
  • ZEP-733 - Minimal libc가 compiler 제공 stddef.h를 자체 제공하는 문제
  • ZEP-762 - MinGW make system에서 예기치 않은 abspath와 notdir 출력
  • ZEP-777 - samples/driver/i2c_stts751의 select DMA_QMSI Kconfig build warning
  • ZEP-778 - samples/drivers/i2c_lsm9ds0의 select DMA_QMSI Kconfig build warning
  • ZEP-779 - MinGW GCC 5.3.0 사용 시 Windows에서 Zephyr build가 깨지는 문제
  • ZEP-845 - Arduino 101의 ARC UART가 예상과 다르게 동작하는 문제
  • ZEP-905 - CROSS_COMPILE 사용 시 arduino_due용 hello_world compile 실패
  • ZEP-940 - ATT response를 받지 못하는 문제
  • ZEP-950 - USB20CV test suite에 USB device가 표시되지 않는 문제
  • ZEP-961 - aon_counter sample 실행 뒤 다른 case를 실행할 수 없는 문제
  • ZEP-967 - Sanity가 assertion option -R로 samples/usb/dfu를 build하지 않는 문제
  • ZEP-970 - Sanity가 assertion option -R로 tests/kernel/test_build를 build하지 않는 문제
  • ZEP-982 - Minimal libc에서 EWOULDBLOCK과 EAGAIN 값이 다른 문제
  • ZEP-1014 - TCF에서 tests/bluetooth/init build가 실패하는 문제
  • ZEP-1025 - Unified Kernel build가 누락된 .d dependency file 때문에 간헐적으로 깨지는 문제
  • ZEP-1027 - GCC ARM documentation이 정확하지 않은 문제
  • ZEP-1031 - LLVM에서 qmsi DMA driver test가 실패하는 문제
  • ZEP-1048 - Serial을 끄면 grove_lcd sample이 동작하지 않는 문제
  • ZEP-1051 - Memory pool을 두 번 defragment한 뒤 allocation이 실패하는 문제
  • ZEP-1062 - Unified Kernel이 CONFIG_NEWLIB_LIBC와 호환되지 않는 문제
  • ZEP-1074 - ATT Insufficient Authentication 수신 시 ATT retry가 잘못 동작하는 문제
  • ZEP-1076 - Dynamic stack 사용 시 samples/philosophers/unified build가 실패하는 문제
  • ZEP-1077 - NUM_PHIL이 6보다 작을 때 samples/philosophers/unified build warning
  • ZEP-1079 - 가져온 component의 license가 명확하지 않은 문제
  • ZEP-1097 - 동시 송수신에서 ENC28J60 driver가 실패하는 문제
  • ZEP-1098 - ENC28J60이 큰 data frame을 수신하지 못하는 문제
  • ZEP-1100 - 현재 master가 여전히 자신을 1.5.0으로 표시하는 문제
  • ZEP-1101 - SYS_KERNEL_VER_PATCHLEVEL() 계열 macro가 version number를 4bit로 제한하는 문제
  • ZEP-1124 - frdm_k64f에서 tests/kernel/test_sprintf/microkernel/testcase.ini test 실패
  • ZEP-1130 - test_hmac_prng build 중 RAM region overflow가 발생하는 문제
  • ZEP-1138 - ENC28J60 driver가 받은 packet을 IP stack 상위 layer로 넘기지 않는 문제
  • ZEP-1139 - Unified Kernel에서 power management build 오류 수정
  • ZEP-1141 - Unified Kernel 사용 시 TinyCrypt SHA256 test가 system crash로 실패하는 문제
  • ZEP-1144 - Unified Kernel 사용 시 TinyCrypt AES128 fixed-key variable-text test 실패
  • ZEP-1145 - TinyCrypt HMAC test 뒤 system이 멈추는 문제
  • ZEP-1146 - 1.6 release를 위해 zephyrproject.org home page의 기술 내용 검토 필요
  • ZEP-1149 - ztest framework를 Unified Kernel로 port
  • ZEP-1154 - Unified Kernel에서 test와 sample이 실패하는 문제
  • ZEP-1155 - Filesystem API namespace 수정
  • ZEP-1163 - Makefile 두 번째 pass에서 LIB_INCLUDE_DIR이 덮어써지는 문제
  • ZEP-1164 - ztest가 test case 실행 종료를 기다리지 않고 건너뛰는 문제
  • ZEP-1179 - ISSM의 LLVM icx로 compile할 때 발생하는 build 문제
  • ZEP-1182 - kernel.h Doxygen에 예상하지 않은 asm block이 표시되는 문제
  • ZEP-1183 - Bluetooth 초기화 시 btshell이 panic errcode -1을 반환하는 문제
  • ZEP-1195 - Application에 잘못된 ATT error code가 전달되는 문제
  • ZEP-1199 - L2CAP에서 packet 수신용 credit이 없는 문제
  • ZEP-1219 - L2CAP에서 최대 PDU size를 넘는 data가 전송되는 문제
  • ZEP-1221 - Pairing 중 connection timeout이 발생하는 문제
  • ZEP-1226 - Cortex-M7 port assembler 오류
  • ZEP-1227 - Unified Kernel에서 ztest native testing이 동작하지 않는 문제
  • ZEP-1232 - Daily build에서 assertion failure가 발생하는 문제
  • ZEP-1234 - Unified 전환으로 fiber* API가 제거되어 USB Mass Storage patchset이 깨지는 문제
  • ZEP-1247 - Daily sanitycheck에서 tests/legacy/benchmark/latency_measure가 깨지는 문제
  • ZEP-1252 - quark_d2000_crb에서 test_chan_blen_transfer test가 build되지 않는 문제
  • ZEP-1277 - w25qxxdv flash driver erase 함수가 offset alignment를 검사하지 않는 문제
  • ZEP-1278 - w25qxxdv flash driver의 erase offset boundary check가 잘못된 문제
  • ZEP-1287 - ARC SPI port 1이 동작하지 않는 문제
  • ZEP-1289 - k_sem_take의 race condition
  • ZEP-1291 - libzephyr.a가 phony gcc target에 의존하는 문제
  • ZEP-1293 - Arduino 101에서 ENC28J60 driver가 동작하지 않는 문제
  • ZEP-1295 - kernel.h의 k_work_pending() Doxygen comment가 잘못된 문제
  • ZEP-1297 - ARC platform에서 test/legacy/kernel/test_mail이 실패하는 문제
  • ZEP-1299 - DMA suspend/resume 뒤 system이 완전히 resume되지 않는 문제
  • ZEP-1302 - ENC28J60에서 긴 frame 송수신이 실패하는 문제
  • ZEP-1303 - Configuration은 32개 초과 thread priority를 언급하지만 kernel이 지원하지 않는 문제
  • ZEP-1309 - ARM이 memory 끝부분을 init stack으로 사용하는 문제
  • ZEP-1310 - ARC가 memory 끝부분을 init stack으로 사용하는 문제
  • ZEP-1312 - ARC에서 asynchronous message 전송과 함께 k_mbox_get() 호출 시 crash하는 문제
  • ZEP-1319 - ARM에서 CONFIG_RUNTIME_NMI 활성화 시 Zephyr가 compile되지 않는 문제
  • ZEP-1341 - power_states test app이 post_ops 함수에 잘못된 power state 값을 넘기는 문제
  • ZEP-1343 - Commit 누락으로 QEMU ARM/x86에서 tests/drivers/pci_enum이 실패하는 문제
  • ZEP-1345 - CPU context save/restore가 stack을 손상할 수 있는 문제
  • ZEP-1349 - Interrupt 활성화 시 ARC sleep이 interrupt priority threshold를 넘겨야 하는 문제
  • ZEP-1353 - FDRM K64F의 normal flash mode에서 console output이 깨지는 문제

Known Issues

  • ZEP-1405 - l2cap_br_conn_req 함수가 /subsys/bluetooth/host/l2cap_br.c에서 초기화되지 않은 pointer를 참조하는 문제

Source

출처

영어 원문에는 문단, 문서 지시문, 표, 코드, 코드 심벌, 경로를 그대로 보존했습니다.