Zephyr Solution


Contents

Introduction


Zephyr RTOS is community-based, open source RTOS that is optimized for resource-constrained devices. Zephyr RTOS is designed for high-performing, low-energy IoT applications, it is a natural fit for Telink’s portfolio of products that are built for a smarter IoT.

Telink provides the initial Zephyr support for TLSR9 chip series, supporting OpenThread, and a various subsystems and examples.

TLSR9 Series SDK and B91 Development Board support will be soon released on the Zephyr Project’s open source repo.

TLSR9518ADK80D-Top-View


Zephyr Benefits

  • Open source
  • Modular
  • Highly configurable
  • Secure
  • Product-ready


Typical Applications

  • Connected Sensors
  • Wearables
  • Wireless Gateways


Supported Hardware Features



Driver Interface Comment
interrupt_controller PLIC RSIC-V Platform Level Interrupt Controller (PLIC).
timer RISC-V Machine Timer (32 KHz) RISC-V Machine Timer (fixed 32K RC). Used to clock scheduler.
pinmux PINMUX GPIO to Peripheral pins configuration.
GPIO GPIO Support of GPIO Digital IN/OUT, Pull-UP/Down, Rising/Falling/Level Interrupts.
Serial UART Support of basic Serial driver APIs. DMA mode is not implemented.
I2C I2C (Master) Support of basic I2C Master APIs. Slave and DMA modes are not implemented
SPI SPI (Master) Support of basic SPI Master APIs. SPI Slave, Loopback and DMA modes are not implemented.
PWM PWM All PWM APIs are implemented. Both PCLK and CLK32K_RC clocks are supported.
Flash FLASH (MSPI) Flash Read, Write, Erase APIs. This driver is required by OpenThread subsystem.
Entropy TRNG True Random Number Generator APIs. This driver is required by OpenThread subsystem.
IEEE802154 RADIO RF driver implementation. Supporting both 6LoWPAN and Thread.


Supported Examples



Example Comment
hello_world A simple example that prints “Hello World” to the console.
synchronization A simple application that demonstrates basic sanity of the kernel.
cpp_synchronization Demonstrates usage of C++ (virtual class, member functions with different types of arguments, etc).
philosophers An implementation of a solution to the Dining Philosophers problem.
basic/threads Demonstrates spawning multiple threads.
basic/blinky Simple application which blinks an LED forever using the GPIO API.
basic/blinky_pwm Blinks an LED using the PWM API.
basic/fade_led Fades an LED using the PWM API.
basic/button A simple button demo showcasing the use of GPIO input with interrupts.
subsys/nvs Demonstration of non-volatile (flash) storage usage. In this application, a counter is incremented on every reboot and stored in flash, the application reboots, and the reboot counter data is retrieved.
subsys/console/echo Shows the basics of Console subsystem usage.
subsys/console/getchar Shows how to use console_getchar function (well-known ANSI C “getchar” function).
subsys/console/getline Shows how to use console_getline function (similar to the well-known ANSI C “gets” and “fgets”).
subsys/shell/shell_module Demonstrates usage of Shell subsystem.
drivers/entropy Sample for the entropy gathering driver.
drivers/flash_shell This is a simple shell module that allows arbitrary boards with flash driver support to explore the flash device.
net/sockets/echo_client
(IEEE802154 / OpenThread)
The echo-client sample application implements a UDP/TCP client that will send IPv6 packets over 6LoWPAN, wait for the data to be sent back, and then verify it matches.
net/sockets/echo_server
(IEEE802154 / OpenThread)
The echo-server sample application implements a UDP/TCP server that complements the echo-client sample application: the echo-server listens for incoming IPv6 packets (sent by the echo client over 6LoWPAN) and simply sends them back.
net/openthread/coprocessor Allows building a Thread Border Router (RCP co-processor part).

OpenThread and IEEE802154 Net Echo Client / Server Examples


Net_Echo_Client_Server_Examples


Supported Test Projects


Zephyr provides a various test projects which can be used to evaluate Telink Zephyr TLSR9518ADK board support, in particular: kernel, drivers, subsys, net, crypto, etc.


Additional Resources


→ B91 Development Board Zephyr documentation