Arm Community
Arm Community
  • Site
  • User
  • Site
  • Search
  • User
Arm Community blogs
Arm Community blogs
Embedded and Microcontrollers blog TNeo: stable open source real-time kernel with well-formed code and detailed tests (for Cortex-M0/M0+/M3/M4/M4F)
  • Blogs
  • Mentions
  • Sub-Groups
  • Tags
  • Jump...
  • Cancel
More blogs in Arm Community blogs
  • AI blog

  • Announcements

  • Architectures and Processors blog

  • Automotive blog

  • Embedded and Microcontrollers blog

  • Internet of Things (IoT) blog

  • Laptops and Desktops blog

  • Mobile, Graphics, and Gaming blog

  • Operating Systems blog

  • Servers and Cloud Computing blog

  • SoC Design and Simulation blog

  • Tools, Software and IDEs blog

Tags
  • kernel
  • Embedded
  • rtos
  • Microcontroller
  • Cortex-M
  • kernel_development
Actions
  • RSS
  • More
  • Cancel
Related blog posts
Related forum threads

TNeo: stable open source real-time kernel with well-formed code and detailed tests (for Cortex-M0/M0+/M3/M4/M4F)

Dmitry Frank
Dmitry Frank
January 1, 2015

I'd like to present real-time kernel: TNeo.

TNeo was born as a thorough review and re-implementation of TNKernel. The new kernel has well-formed code, inherited bugs are fixed as well as new features being added, it is well documented and tested carefully with unit-tests.

Currently it is available for the following architectures:

  • ARM Cortex-M cores: Cortex-M0/M0+/M1/M3/M4/M4F (supported toolchains: GCC, Keil RealView, clang, IAR)
  • Microchip: PIC32/PIC24/dsPIC

Comprehensive documentation is available in two forms:

  • Latest stable TNeo (html)
  • Latest stable TNeo (pdf)

Short list of features can be found here.


This project was initially a fork of PIC32 TNKernel port by Anders Montonen. I don't like several design decisions of original TNKernel, as well as many of the implementation details, but Anders wants to keep his port as close to original TNKernel as possible. So I decided to fork it and have fun implementing what I want.

The more I get into how TNKernel works, the less I like its code. It appears as a very hastily-written project: there is a lot of code duplication and a lot of inconsistency, all of this leads to bugs. More, TNKernel is not documented well enough and there are totally no unit tests for it, so I decided to reimplement it almost completely. Refer to the page Why reimplement TNKernel for details.

I really don't like several API decisions of original TNKernel, so it's not 100%-compatible. Refer to the page Differences from TNKernel API for details.

Together with almost totally re-writing TNKernel, I've implemented detailed unit tests for it, to make sure I didn't break anything, and of course I've found several bugs in original TNKernel 2.7: refer to the section Bugs of TNKernel 2.7. Unit tests are, or course, a "must-have" for the project like this; it's so strange but original TNKernel seems untested.

I presented the kernel at Microchip Masters 2014 seminar, and received an offer from the head of research of car alarm company to implement Cortex-M port. Of course I accepted, and so I'm happy to present it here.

For comprehensive information, refer to the documentation (see links at the top)

Anonymous
  • Dmitry Frank
    Dmitry Frank over 10 years ago

    TNeo v1.07 is released, this is a minor release with a few bugfixes and a couple of new features.

    Changelog is available here: TNeo: Changelog ,

    Downloads here: dfrank / tneokernel / Downloads — Bitbucket

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
Embedded and Microcontrollers blog
  • Formally verifying a floating-point division routine with Gappa – part 2

    Simon Tatham
    Simon Tatham
    A method of testing whether a numerical error analysis using Gappa really matches the code it is intended to describe.
    • September 4, 2025
  • Formally verifying a floating-point division routine with Gappa – part 1

    Simon Tatham
    Simon Tatham
    Learn the basics of using Gappa for numerical error analysis, using floating-point division in Arm machine code as a case study.
    • September 4, 2025
  • Building Solutions on Arm: A recap of IEEE Arm Community Technothon project presentation

    Fidel Makatia
    Fidel Makatia
    Read Fidel's account from the Arm Community Technothon!
    • December 4, 2024