Phyloiota / zephyr-client-sdk

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

IOTA Client Development Kit for Zephyr RTOS

This Software Development Kit(SDK) is a bundle of IOTA client library and Zephyr RTOS for embedded client development.

For more details please visit iota.c and Zephyr.

Hardware Requirements

The hardware requirements are depends on the use case, here are recommendations:

  • 1MB Flash Memory
  • 256KB SRAM
  • True Random Number Generator
  • HMAC-SHA Hardware Accelerator
  • TCP/IP network stack with TLS support

Work with Zephyr

Please refer to Getting Started with Zephyr for setting up your development environment.

This is tested on b_l4s5i_iot01a and stm32f746g_disco targets at this moment.

Zephyr targets can be found in Supported Boards

Set ZEPHYR_BASE before using Zephyr build system.

$ export ZEPHYR_BASE="~/zephyrproject/zephyr"

Use west tool

# application configuration
$ west build -b b_l4s5i_iot01a -t menuconfig
# flash app to target board
$ west flash

Use CMake and Ninja

# Use cmake to configure a Ninja-based buildsystem:
$ cmake -B build -GNinja -DBOARD=b_l4s5i_iot01a

# configure and flash application to target
$ ninja -C build menuconfig
$ ninja -C build flash

Work with nRF-Connect SDK

Please refer to Getting Started with nRF-Connect for setting up your development environment.

Set ZEPHYR_BASE before using Zephyr build system.

$ export ZEPHYR_BASE="~/nRF-Connect-SDK/zephyr"
$ west build -b nrf9160dk_nrf9160@1.0.0 -t menuconfig -- -DUNIT_TESTS=ON
# make sure ZTEST is enabled and stack size is big enough.
# CONFIG_ZTEST=y
# CONFIG_ZTEST_STACKSIZE=5120
$ west flash

Console output

*** Booting Zephyr OS build v2.6.0-rc1-ncs1  ***
====Unit Test on nrf9160dk_nrf9160====
Running test suite iota_crypto
===================================================================
START - test_blake2b
 PASS - test_blake2b in 0.146 seconds
===================================================================
START - test_HMACSHA
 PASS - test_HMACSHA in 0.3 seconds
===================================================================
Test suite iota_crypto succeeded
Running test suite iota_core
===================================================================
START - test_address_gen
 PASS - test_address_gen in 0.25 seconds
===================================================================
START - test_message_with_tx
 PASS - test_message_with_tx in 0.11 seconds
===================================================================
START - tx_essence_serialization
[tx_essence_serialize_length:106] an input is needed
 PASS - tx_essence_serialization in 0.6 seconds
===================================================================
Test suite iota_core succeeded
Running test suite iota_bench
===================================================================
START - bench_address_generating
Bench 100 address generation
	min(ms)	max(ms)	avg(ms)	total(ms)
	15	16	15.20	1520
 PASS - bench_address_generating in 1.533 seconds
===================================================================
Test suite iota_bench succeeded
===================================================================
PROJECT EXECUTION SUCCESSFUL

About

License:Apache License 2.0


Languages

Language:C 99.6%Language:CMake 0.4%