Arm Community
  • Site
  • User
  • Site
  • Search
  • User
  • Groups
    • Arm Research
    • DesignStart
    • Education Hub
    • Graphics and Gaming
    • High Performance Computing
    • Innovation
    • Multimedia
    • Open Source Software and Platforms
    • Physical
    • Processors
    • Security
    • System
    • Software Tools
    • TrustZone for Armv8-M
    • 中文社区
  • Blog
    • Artificial Intelligence
    • Automotive
    • Healthcare
    • HPC
    • Infrastructure
    • Innovation
    • Internet of Things
    • Machine Learning
    • Mobile
    • Smart Homes
    • Wearables
  • Forums
    • All developer forums
    • IP Product forums
    • Tool & Software forums
    • Pelion IoT Platform
  • Activity
  • Support
    • Open a support case
    • Documentation
    • Downloads
    • Training
    • Arm Approved program
    • Arm Design Reviews
  • More
  • Cancel
System
  • Developer Community
  • IP Products
  • System
  • Jump...
  • Cancel
System
Embedded blog TNeo: stable open source real-time kernel with well-formed code and detailed tests (for Cortex-M0/M0+/M3/M4/M4F)
  • Blogs
  • Forums
  • Videos & Files
  • Mentions
  • Sub-Groups
  • Tags
  • Jump...
  • Cancel
  • New
More blogs in System
  • Embedded blog

  • SoC Design 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
    Offline Dmitry Frank over 5 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 blog
  • Embedded blog: Development of Arm based systems with Synopsys Virtual Prototyping: Anytime, Anywhere!

    Jason Andrews
    Jason Andrews
    Find out more about virtual prototyping from Synopsys as thousands of engineers around the world have been asked to work from home.
    • May 5, 2020
  • Embedded blog: Accelerating Innovation for Safety Systems with Arm Flexible Access

    Chet Babla
    Chet Babla
    Arm is proud to announce the addition of Arm Safety Packages for select IP within Arm Flexible Access, with the goal to make it easier for developers in the automotive and other safety-related industries…
    • February 19, 2020
  • Embedded blog: Functional Safety on Arm – Beyond Automotive

    Antonio Priore
    Antonio Priore
    Arm has moved a long way from the days where our only ‘safety’ requirement was to provide ECC or parity protections on CPU RAMs and we are now able to offer a number of System IP, GPUs, ISPs and NPUs as…
    • December 13, 2019