OpenTag
![]() | This article may require copy editing for grammar, style, cohesion, tone, or spelling. (July 2012) |
Developer | JP Norair |
---|---|
Written in | C |
OS family | Embedded operating system |
Working state | Current |
Source model | Open source |
Initial release | 2011 |
Latest release | 0.4.0 / 08 Nov 2012 |
Marketing target | Wireless sensor networks |
Available in | English |
Platforms | MSP430, STM32 |
Kernel type | Exokernel |
License | OpenTag License |
Official website | OpenTag wiki |
OpenTag is a DASH7 protocol stack and minimal RTOS, written in C. It is designed to run on microcontrollers or radio SoCs. As a result, OpenTag has been engineered to be a very tight and compact package. However, with proper configuration it can also run in any POSIX environment. It is also worth noting that OpenTag can provide all functionality required for any type of DASH7 Mode 2 device, and not only for the eponymous βtagβ-type endpoint device.
Design Philosophy
OpenTag implements DASH7 Mode 2, which specifies a monolithic system encompassing OSI layers 1-6 and part of 7 as well as the application layer. OpenTag is designed to be light and compact as it is targeted to run on resource-constrained microcontrollers. As a monolithic system, OpenTag does not implement different layers of the OSI model in a way that will enable them to be deployed on systems that differ from the typical -- and nearly universal -- MCU+RF transceiver architecture, utilized by WSN and M2M nodes.[1] However, the OpenTag RTOS employs an exokernel architecture (as of version 0.4), so it doesn't at all feature a monolithic kernel. Applications developed for OpenTag may safely reference the library or directly access the hardware, as fits the exokernel design model.
Features
- Lightweight pre-emptive multitasking exokernel RTOS
- Most kernels use fixed priority tasks
- Complete DASH7 Mode 2 protocol stack
- Wear-leveling, Flash-based lightweight filesystem (Veelite)
- Internal C-based API
- External NDEF-based messaging API, for client-server interaction
Implementation
OpenTag implements a multitasking real-time kernel designed specifically to implement DASH7. User tasks can be managed by the kernel, and they can pre-empt the kernel, although they must be allocated at compile-time. The scheduling frequency, or kernel resolution, is implementation-dependent, but it must be at least 1024 Hz, and it must be an integer multiple of 1024 Hz.[2] CubixWrestlingShow56(2012-Present. {Wireless Sensor Network}}
- ^ "OpenTag Features Overview". OpenTag Wiki. Indigresso.com. Retrieved 9 July 2012.
- ^ Norair, JP. "Building DASH7 Apps with OpenTag". Retrieved 9 July 2012.