FoundriesFactory
Zephyr hits 1.12 feature freeze; this will not be the LTS, but carries many important new features.
No changes have gone into the LMP since 0.18.
Zephyr hits 1.12 feature freeze; this will not be the LTS, but carries many important new features.
A usage sample is in samples/subsys/openamp:
http://docs.zephyrproject.org/samples/subsys/ipc/openamp/README.html
http://docs.zephyrproject.org/getting_started/installation_linux.html
For more details, refer to the NVS subsystem documentation:
http://docs.zephyrproject.org/subsystems/nvs/nvs.html
This would seem to pair well with the storage API changes discussed in the previous newsletter, which introduced greater abstraction over the storage backend.
http://docs.zephyrproject.org/api/kernel_api.html#_CPPv216k_thread_foreach18k_thread_user_cb_tPv
(Perhaps re-implementing or calling into a stack usage dumping routine for each thread.)
New API was merged for memory management from specified memory pools. The main functions are:
This is used to allow dynamic allocation of kernel objects from userspace.
Cleanup functions defined on a per-kernel-object-type basis can now be invoked when an object loses all permissions. This is used as a framework for automatic resource release for dynamically-allocated userspace objects.
New APIs were added for userspace allocation and freeing of kernel objects of various types:
Additional APIs for allowing userspace access to queues includes:
The k_poll Polling API is now also accessible from user mode:
http://docs.zephyrproject.org/kernel/other/polling.html
An optimization was merged which avoids executing user/supervisor boundary checks when invoking system calls from privileged code in translation units defined under arch/.
Access to the k_object_access_revoke() routine from userspace was itself revoked, closing a hole where one thread could inappropriately revoke another's access to a kernel object. Userspace threads may revoke access to their own objects with k_object_release().
http://docs.zephyrproject.org/reference/kconfig/CONFIG_NET_TCP_TIME_WAIT_DELAY.html
This replaces the previous CONFIG_NET_TCP_TIME_WAIT and CONFIG_NET_TCP_2MSL_TIME options. Applications using the old options will need updates.
There is a new CONFIG_PLATFORM_SPECIFIC_INIT available on Arm targets. When enabled, the user must provide a _PlatformInit routine, which will be called at Zephyr startup before anything else happens.
Support was added to enable a Zephyr image running on an NXP LPC-based SoC to boot a slave Cortex M0+ core. (Board support was added for the slave core as lpcxpresso54114_m0.)
Device tree bindings were added for real-time clocks (RTCs), as well as NXP Kinetis and QMSI based RTCs. SoC support was added for KW41Z and quark_se_c1000_ss.
Additional patches continuing the work migrating LED and buttons definitions to device tree were merged for mimxrt1050_evk and lpcxpresso54114. Device tree support for sensors on the argonkey board was also merged, along with em_starterkit device tree optimizations, and bindings for LSM6DSL sensors and Kinetis watchdogs.
A shim driver using the newly-stabilized watchdog API was added for NXP MCUx devices. SOC support is provided for K64 and KW2XD.
USBD (USB device) and USBFSOTG (USB full-speed On-the- Go) support was added for NXP Kinetis SoCs. USB support was also enabled for STMicro nucleo_f413zh.
WiFi support for the WINC1500 network controller was merged. This chip can be used to add networking via SPI. This is the first user of the new WiFi API which was merged during the v1.12 development cycle. Support can be enabled using CONFIG_WIFI_WINC1500. A driver was added for ILI9340 LCD displays.
The Atmel WINC1500 WiFi driver was merged as part of enabling WiFI on that chip. This is a BSD-3-Clause licensed HAL.
https://github.com/zephyrproject-rtos/zephyr/commit/1acd8c2996c3a1ae0691247deff8c32519307f17
A new k_thread_foreach() API was merged, which allows iterating over threads:
http://docs.zephyrproject.org/api/kernel_api.html#_CPPv216k_thread_foreach18k_thread_user_cb_tPv
This requires CONFIG_THREAD_MONITOR to be enabled. Creation and termination of existing threads is blocked via irq_lock() while the routine is executing.
The POSIX compatibility layer has additional file system support APIs. Pulling in the POSIX headers defines macros which map POSIX names to Zephyr- specific file system APIs appropriately. This includes support for basic syscalls such as open(), read(), write(), close(), and friends, and also allows for directory operations such as rename(), stat(), and mkdir(). Refer to the headers in include/posix for more information.
There is also now support for the POSIX mutex APIs.
The 802.15.4 subsystem now supports source address filtering and performing energy detection scans when OpenThread is in use.
New samples include:
a RPL border router application, samples/net/rpl_border_router: http://docs.zephyrproject.org/samples/net/rpl_border_router/README.html
A WiFi shell sample, samples/net/wifi: http://docs.zephyrproject.org/samples/net/wifi/README.html
An OpenAMP usage sample, samples/subsys/openamp: http://docs.zephyrproject.org/samples/subsys/ipc/openamp/README.html
An MCUX IPM mailbox example, samples/subsys/ipc/ipm_mcux: http://docs.zephyrproject.org/samples/subsys/ipc/ipm_mcux/README.html
A sample for the 96Boards ArgonKey, samples/boards/96b_argonkey: http://docs.zephyrproject.org/samples/boards/96b_argonkey/README.html
A CAN sample, samples/can, tested on stm32f072b_disco: http://docs.zephyrproject.org/samples/can/README.html
No changes have gone into the LMP since 0.18.