Releases: Samsung/TizenRT
Releases · Samsung/TizenRT
3.0_GBM
2.0 Public Release
TizenRT 2.0 M2 Public Release Notes
Release Date: Oct. 19, 2018
Kernel and System
New Features
- Stack trace in text
- This shows the symbol names of stack trace in human readable text instead of addresses in hexadecimal value.
- This is enabled by CONFIG_DEBUG_DISPLAY_SYMBOL, it uses ROMFS functionality and hence depends on CONFIG_FS_ROMFS. It also needs enough space.
- New pthread_tryjoin_np API
- This operates in the same way as pthread_join, except this is non-blocking.
- New minimal configurations set
- This helps to configure a target which is non-network, non-file system and non-POSIX application.
- Docker build environment
- TizenRT provides the easiest way to build with the use of Docker.
- There is no need to install the required libraries and toolchains since the provided Docker container already includes everything required for TizenRT development.
Enhanced Features
- Unlimited atexit & onexit functions
- atexit & onexit functions are maintained in a list instead of fixed array. So it keeps growing and enables any number of functions to be registerd.
- Multiple time interval constant for CPU load measurement
- It supports to measure CPU load with 3 types of interval : short-term, mid-term and long-term through configs.
- Default values of them are 2, 5 and 10 secs.
- clock_t type
- clock_t is a standard type of clock but systime_t is not. All of systime_t are replaced to clock_t.
- Heap information of threads group defined by user
- Heap information command supported information of each thread or total threads. But sometimes, heap information of grouped threads are necessary.
- This feature is enabled by CONFIG_HEAPINFO_USER_GROUP and lists thread group members on CONFIG_HEAPINFO_USER_GROUP_LIST.
Fixes
- Assert on heap usages
- Only one case does not guarantee memory atomic operation. When top priority task tries to exit and second priority task was in memory operation, top priority task does not check whether accessing heap is available or not to free used memory. It causes non-atomic memory operation and causes an assert.
- The task_exit checks availability to use memory operation before starting.
- POSIX-compatible pthread key APIs
- Previous pthread key APIs do not satisfy what POSIX expected on key create. To fit POSIX standard, pthread key APIs are re-implemented.
- Mutex destroy failure
- When pthread is on exit without unlocking mutex, mutex is not destroyed. Checking a status of pthread is added in pthread_mutex_destory.
- Prevent usages of released timer
- When timer APIs are called with released timer, they do not return an error. Checking timer validation is added to prevent use of released timer.
- Fix month index
- A range of month is 0
11, not 112 so that clock API has a month value with 1 subtracted from config.
- A range of month is 0
- Missing signal setting on restarted task
- Restared task blocks all of signals because of missing set signal.
Network and Connectivity
New Features
- IPv6
- Support for Neighbor Discovery (ND6), Multicast Listener Discovery (MLD), ICMPv6 protocols
- Add IPv6 address to TizenRT's netif structure, and register network output function with WiFi driver.
- Network monitoring tool
- Monitor real-time information regarding network sockets, network interface and WiFi Manager
- gRPC for Client roles
- Support for different RPC types: unary, client streaming, server streaming and bi-directional RPC
- Support for both Insecure and Secure mode of RPC execution
- Support for both Synchronous and Asynchronous modes of RPC call
- HTTP/2
- Port nghttp2 version 1.32.0 from Github
Enhanced Features
- LwIP version 2.0, with the following changes:
- Remove libc netdb library
- Re-map netdb functions to lwip netdb implementations
- Remove AF_UNIX, AF_LOCAL, AF_X25 and AF_PACKET domains
Fixes
- Modification of semaphore usage on sys_arch.c
- Removal of unused DHCP client structure in lwip
- DHCP client port initialization in lwip
- Logic to handle two types of broadcast address for ipv4 packet routing in lwip
- Initialization of global and union variables in lwip tcp/udp
- IPv6 address management bug fix
Framework
New Features
- Media framework
- Player/Recorder for recording and playing voice/audio streaming (w/ buffer and file data source and various codecs)
- Audio manager for audio card and device managements (volume control, etc.)
- Voice control manager for keyword detection and endpoint detection
- Task manager framework
- Support controlling and messaging between applications
- control : register, start, stop, restart, pause, resume
- message : unicast, broadcast
- information : get information with name/handle/group/pid
Enhanced Features
- Audio framework
- pcm drop, drain and pcm read/write using mmap
- Wi-Fi manager framework
- Support for auto-connect feature when WiFi station disconnects unexpectedly
- Support for configuring diverse Wi-Fi stack solutions (wpa_supplicant or WiFi library based stack) is added
- Support for Wi-Fi profiling based on observed packet count statistics
- Support for connection information management in files system
- Support for various types of authentication and cryto
- Enhancement of scanning result processing logic
Fixes
- Security type mismatch of Wi-Fi scanning in wpa_supplicant
- Unification of SSID management type in Wi-Fi Manager
External
New Features
- libc++
- Provide LLVM based implementation of the C++ standard library
- Protocol buffer
- Provide serialize/deserialize message
- cURL
Transfer data through various protocols - Stress test tool
- Generic tool for repeatedly testing specific modules in a hard condition
1.1_Public_Release
Tizen RT 1.1 Public M1 Release Notes
Release Date: Oct. 27, 2017
Kernel and System
New and Changed Features
- Additional architecture support
- ARM v7 Cortex M3 architecture has been supported.
- ARTIK053 board has been supported.
- QEMU support
- Actual Target : LM3S6965 board
- Two types of configuration have been supported.
- Actual memory configuration : 256KB flash, 64KB SRAM
- Increased memory configuration : 128MB flash, 16MB SRAM
- Logger module enhancement
- Dynamic changes of configuration have been supported.
- Additional configurations, buffer usages and timestamp have been added.
- Pthread cancellation point support
- Posix-compatible APIs have been added.
- Optimized memcpy support for ARM v7 Cortex R4
- Semaphore new APIs support
- The sem_getprotocol, sem_setprotocol to avoid abnormal functionality on priority inheritance have been added.
- Sensor driver has been added.
- The ppd42ns dust sensor driver has been added.
- Libc enhancement
- Signal APIs have been added.
- sigignore, sigpause, raise, sigset, signal
- Pthread rwlock APIs have been added.
- pthread_rwlock_init, pthread_rwlock_destory, pthread_rwlock_unlock, pthread_rwlock_tryrdlock, pthread_rwlock_timedrdlock, pthread_rwlock_rdlock, pthread_rwlock_trywrlock, pthread_rwlock_timedwrlock, pthread_rwlock_wrlock
- File descriptor APIs have been added.
- freopen, setbuf, setvbuf, remove
- Signal APIs have been added.
- Math library enhancement
- Math APIs have been added.
- cbrt, exp2, fdim, fmax, fmin, hypot, j0, j1, jn, nextafter, nexttoward, remainder, remquo, scalbn, y0, y1, yn
- Math APIs have been added.
- T-trace support
- This is a tool to check performance, latency, life cycle of thread and so on.
- Built-in functionality support
- This supports registering a TASH command by modification of Makefile without calling any TASH public API in source codes.
- TASH commands enhancement
- The heapinfo shows peak value of heap dynamic usages for all and per threads.
- New command, uptime, to show the time of system running has been added.
- New make options support
- “make download OPTION” makes easy programming of a binaray to a target. User doesn’t need to know board specific command to program.
- “make applist” and “make appupdate” make easily control applications without menuconfig on Tizen RT IDE only.
- New debug script support
- The g_var_profiler script shows variables which size is greater than input argument for RAM static footprint.
Fixes
- Deadlock error of mutex on idle task has been fixed.
- -1 instead of 0 as a PID element for unclaimed mutex at initialization has been used, because 0 means idle task. It causes deadlock error.
- Memory corruption on data abort handling has been fixed.
- Separated stack for data abort handler has been used, because data abort handler can save the information to outside of stack when stack is almost used. It causes memory corruption.
- Abnormal operation on localtime has been fixed.
- Wrong conditional usages and wrong structure usages have been fixed.
Network and Connectivity
New and Changed Features
- LwIP protocol stack parameters can be configured through menuconfig.
- TLS support (HTTPS) for webserver and webclient has been added.
- TLS support for websocket has been added.
- CoAP protocol support has been added.
- Posix-compatible pthread cancellation point for LwIP has been added.
Fixes
- Semaphore usage on sys_arch.c has been fixed.
- LwIP stack has been fixed to be more robust to TCP spoofing attacks.
File System
New and Changed Features
- Automount functionality for userfs, romfs on ARTIK053 and SIDK_S5JT200 boards has been added.
- Scripts have been added to make a romfs image automatically by makefile.
- The Sudden Power Off Recovery functionality has been added.
- Basic CRC checking process has been added to check bit-flipped sector due to sudden power off situation.
- Logic has been added to find bit-flipped sector.
- CRC has been added to check validation of Journal logging entry and data.
Known Issues
- There are some duplicated code of bit-flip checking logic.
Framework
New and Changed Features
- Audio framework support
- 18 APIs have been added.
- Tinyalsa compatible APIs set
- I2s Driver has been supported.
- RealTEK’s ALC5658 codec driver has been supported.
- 18 APIs have been added.
- SmartThings Things SDK support
- Easy-setup has been supported.
- WWST Cloud connections have been supported.
- Resource registrations/controls have been supported.
- Wi-Fi manager framework support
- STA as well as SoftAP mode has been supported.
- WiFi scanning has been supported.
- DHCP client, DHCP server have been supported.
- MQTT protocol support
- MQTT client has been supported.
- APIs include initialization, termination, publish-subscribe mechanisms with MQTT broker.
Fixes
- The potential security issue of arastorage has been fixed.
Known Issues
- Three APIs (st_things_deinitialize, st_things_stop, st_things_register_pin_handling_cb) will be added into SmartThings Things SDK.
External
New and Changed Features
- IoT.js has been added to provide inter-operable service platform based on web technology.
- Mosquitto 1.4.10, a MQTT broker has been added.
- Libcoap 4.1.1 has been added.
- TFTP client, SMTP, NTP client, MDNS client, TELNET, webserver, webclient, websocket, netutils and wpa_supplicant have been moved from apps folder.
- TCP support for Wakaama has been added.
- CJSON has been updated to version 1.5.7
- Iotivity has been updated to version 1.2.1.
Fixes
- An issue with WiFi scanning in wpa_supplicant has been fixed.
- Memory leaks and DoS attacks in wakaama have been fixed.
- DTLS handshake security issue in wakaama has been fixed.
- An issue for DoS attacks on mdns, FTP client and webserver have been fixed.
- Psk configuration security issues with wpa_supplicant have been fixed.
- Libcoap parsing has been fixed to be more robust to DoS attacks.
- Memory leaks in libcoap have been fixed.
1.0_Public_M1
Tizen RT 1.0
Release Date: Dec. 23, 2016
Architecture
- ARM
- Cortex-R4
- SIDK-S5JT200
- Cortex-R4
Kernel
- FIFO / RoundRobin Scheduling and Interrupt
- Fully Preemptible
- Task and Pthread
- IPC
- Message Queue
- Signal
- Semaphore, Mutex
- Clock, Timer, Systick
- Work Queue
- Environment
- Number of last error (errno)
- Power Management
- Dynamic Memory Management
- Debug
- Stackmonitor
- Heap analyzer
- Allocated heap size (total and per thread)
- Address calling mm API
- Ramdump / Coredump
- Logger Module
- System logging (Syslog)
- Shell tools: date, dmesg, getenv, free, heapinfo, kill / killall, ps, setenv, stkmon, unsetenv
Device Driver
- GPIO, I2C, UART, PWM and Pipe
- Controlled by file operation
- SPI
- USB CDC/ACM
File System
- Bad Sector Management
- File System checking bad sectors during write operation and maintain list of bad sectors inside of physical flash.
- Dynamic Header
- It is technique to reuse used sector of smartfs throughout all write operation into that sector without relocation.(smartfs reallocates sector when re-write file)
- Sector Recovery
- It is tool to recovers the sectors lost in case of power failure(smartfs only)
- Journaling
- Added Transaction-Logging based Journaling Feature
- It takes several sectors based on number of file descriptors
AraStorage
- Query Interface
- SQL like query interface exposed: Simple and Standard relations
- Wrapper for AQL command input to the relational query parser
- Readable, interactive, expandable form constructs for specifying search constraints and AQL object attributes
- Index Algorithm: Optimize the execution of database queries by delimiting the set of tuples that must be processed
- Inline: Useful for Ordered Data sets
- B+ based Index:: Useful for MASS Data sets
- Storage Abstraction
- Use basic POSIX APIs in VFS to support Database operations
- Cursor
- Added cursor structure to allow use arastorage more easier
Network and Connectivity
- LWIP
- LWIP 1.4.1 release code is taken as the base network stack for Tinyara.
- Support of IPv4, TCP, UDP, ICMP, ARP, IGMP , DHCPc & Generic sockets are provided.
- Missing POSIX API support for all the network API's is enabled in TinyARA.
- Tinyara os compatibility and performance improvements done.
- Fixed in the LWIP stack to give desired result on applications such as DHCP, DNS, HTTP, IoTivity, TELNET, WEBSOCKETS etc is completed.
- Samples for tcp/UDP for unicast/multicast testing & stress testing is provided.
- LWIP stack is verified over performance tool iperf to measure the reliability and throuput of the stack.
- Added Arp retransmission and updated arp timer.
- Socket structures belong to task (i.e., not global variables). So the task is terminated, the socket is also destroyed. Dup can be also applied for being shared among multiple threads.
- IoTivity.
- IoTivity 1.1.0 release code is taken as base code for Tinyara.
- It supports secured resources for device to device (via UDP adapter).
- Provisioning, ownership transfer and access control features are enabled for d2d scenario.
- Registering to the IoTivity 1.1.0 cloud and getting auth provider is supported.
- Publushing the IoTivity resources over IoTivity 1.1.0 cloud is supported.
- CoAP over TCP is supported for communication to IoTivity 1.1.0 cloud infrastructure.
- Sample support for IoTivity_nosecurity, Security, Cloud, IoTivity over UDp is provided.
Shell (TASH)
- Support two types of command
- Synchronization
- Excute a command immediately in shell context
- Asynchronization
- Excute a command in new pthread context
- Synchronization
- Support API to register commands by each module enabled
- Support excuting shell script
Framework
- System I/O (5 API sets)
- GPIO (General Purpose Input/Output)
- I2C (Inter-Integrated Circuit)
- SPI (Serial Peripheral Interface)
- PWM (Pulse-width modulation)
- UART (Universal Asynchronous Receiver/Transmitter)
- Device Management (2 API sets)
- LWM2M Client
- Connectivity Monitoring
- AraStorage (1 API sets)
- Query data and Cursor
Library
- Built-in Libc and Libxx APIs
External
- Device Management (Wakaama EPL v1.0)
- Iotivity v1.1.0
Examples
- Artik_demo
- Dtls_client
- Dtls_server
- Fota_sample
- Hello
- Hello_tash
- helloxx
- Iotivity
- Iperf
- Kernel_sample
- Mdns_test
- Mpu
- Nettest
- Ntpclient_test
- Proc_test
- Select_test
- Sysio_test
- Telnetd
- Testcase
- Tls_client
- Tls_selftest
- Tls_server
- Wakaama_client
- Webclient
- Webserver
- Websocket
- Workqueue
Known Issues
- Pthread Cancellation
- When we call the pthread_cancel function to terminate some pthread, resource used for pthread is not freed.
- FOTA Support
- Device driver and HAL apis are provided, but chip dependency codes should be updated. After updates, will fix the APIs.
- Wi-Fi Support
- Network stack is provided, but there is no Wi-Fi stack. Wi-Fi stack will be provided soon. After Wi-Fi stack is added, Network functilality will be worked correctly.