Adrian Lita
Profile

Adrian Lita

Embedded Systems / Software Architect / Engineer

Location: Bucharest, Romania
titan OS

Overview

Titan OS is a small operating system intended for use with Cortex-Mx microcontrollers. It is probably the project which I'm most proud of and at some point 2025 I've decided to publish it open source. I've started developing it because I didn't really like the way FreeRTOS and Zephyr were built, and wanted to give it a try by myself. It features clean code and deterministic behavior. It supports definition of tasks (threads) which can run in paralel. On ARM Cortex M0 and M3 (tested) it supports very low power operation, making sure whenever wait times are needed, the CPU will enter sleep mode. I've also provided libraries for a couple of sensors, actuators and communication modules. It has been tested on many embedded projects I've worked on and has been getting better and better. Check out the -drivers- folder on Github to get an idea on the sensors, actuators and communication moduules that have been used in various projects.

What I Did

  • everything was 100% implemented by me

Main features

  • clean primitives
  • preemptive scheduling
  • time-based round robin scheduling
  • peripheral abstraction: cpu, gpio, adc, i2c, rng, crc32, spi, uart and timers
  • basic networking abstraction: sockets, tested with GSM and WiFi
  • bluetooth low energy abstraction: gatt servers
  • by default, no dynamic memory management
  • crypto-library, can be connected to external secure element coprocessor

Primitives

  • task - the core part of the OS
  • semaphore
  • broadcast / barrier semaphore
  • mutex - including reentrancy/same-task locking
  • mqueue - classic message queues
  • pqueue - pointer-based message queues, large data sharing
  • notification - highly efficient synchronization mechanism

Unpublished / Closed Source

  • bootloader
  • firmware update - task hot update
  • signed code verification
  • dynamic memory management

Technologies Used

  • C
  • IAR Embedded Workbench
  • ARM GCC

Links

Adrian Lita - CV