All Projects → michaelbecker → Freertos Addons

michaelbecker / Freertos Addons

Additions to FreeRTOS

Programming Languages

c
50402 projects - #5 most used programming language
cpp
1120 projects

Labels

Projects that are alternatives of or similar to Freertos Addons

ChibiOS-rust
ChibiOS for Rust
Stars: ✭ 13 (-95.5%)
Mutual labels:  rtos
uC-CPU
Designed with Micriμm's renowned quality, scalability and reliability, the purpose of μC/ CPU is to provide a clean, organized ANSI C implementation of each processor's/compiler's hardware-dependent.
Stars: ✭ 31 (-89.27%)
Mutual labels:  rtos
phoenix-rtos-kernel
Phoenix-RTOS microkernel repository
Stars: ✭ 77 (-73.36%)
Mutual labels:  rtos
StratifyOS
A Powerful embedded RTOS for ARM Cortex M microcontrollers
Stars: ✭ 94 (-67.47%)
Mutual labels:  rtos
NuttX
Official micro-ROS RTOS
Stars: ✭ 63 (-78.2%)
Mutual labels:  rtos
Learning-DIY-RTOS
自己动手从0到1写嵌入式操作系统 课程的相关资料下载
Stars: ✭ 114 (-60.55%)
Mutual labels:  rtos
uC-LIB
Designed with Micrium’s renowned quality, scalability and reliability, the purpose of µC/LIB is to provide a clean, organized ANSI C implementation of the most common standard library functions, macros, and constants.
Stars: ✭ 33 (-88.58%)
Mutual labels:  rtos
Pikort
A tiny Linux-like real-time kernel optimized for ARM Cortex-M chips
Stars: ✭ 268 (-7.27%)
Mutual labels:  rtos
DoraOS
DoraOS 是我个人所写的RTOS内核,结合FreeRTOS、uCOS, RT-Thread, LiteOS 的特性所写,取其精华,去其糟粕,本项目将持续维护,欢迎大家fork与star。
Stars: ✭ 102 (-64.71%)
Mutual labels:  rtos
ArduRTOS
Real Time Operating System Lessons using Arduino and The FreeRTOS Kernel
Stars: ✭ 46 (-84.08%)
Mutual labels:  rtos
Arduino RT-Thread
RT-Thread library optimized for Arduino.
Stars: ✭ 38 (-86.85%)
Mutual labels:  rtos
mdepx
MDEPX — A BSD-style RTOS
Stars: ✭ 17 (-94.12%)
Mutual labels:  rtos
apex
Apex RTOS - A (somewhat) Linux compatible real time operating system
Stars: ✭ 15 (-94.81%)
Mutual labels:  rtos
wfx-fullMAC-driver
Silicon Laboratories WFx Wi-Fi Full-MAC driver
Stars: ✭ 14 (-95.16%)
Mutual labels:  rtos
async
🔀 Asynchronous framework in C.
Stars: ✭ 16 (-94.46%)
Mutual labels:  rtos
FreeRTOS-rust
Rust crate for FreeRTOS
Stars: ✭ 159 (-44.98%)
Mutual labels:  rtos
rnk
rnk is a RTOS targeting ARM architecture.
Stars: ✭ 22 (-92.39%)
Mutual labels:  rtos
Uc Os3
µC/OS-III is a preemptive, highly portable, and scalable real-time kernel. Designed for ease of use on a huge number of CPU architectures.
Stars: ✭ 284 (-1.73%)
Mutual labels:  rtos
Drone Core
The core crate for Drone, an Embedded Operating System.
Stars: ✭ 263 (-9%)
Mutual labels:  rtos
drone-cortexm
ARM® Cortex®-M platform crate for Drone, an Embedded Operating System.
Stars: ✭ 31 (-89.27%)
Mutual labels:  rtos

freertos-addons

After working with FreeRTOS for over 8 years now, I've decided to start adding features and implementations that I wish would have been there at the beginning.

Current Features

  • C++ Wrappers Coverity Scan Build Status

    • A collection of C++ wrappers encapsulating FreeRTOS functionality, allowing you to write your RTOS application in C++ while still using FreeRTOS. This wrapper layer does all the integration work for you.
    • This library is for you if you are planning on using C++ and FreeRTOS in your project but don't want to spend the time integrating the two.
    • Everything was tested successfully using FreeRTOS versions 8.2.3, 9.0.0, and 10.0.0.
    • There are numerous demo / unit test projects using these wrappers and various features they provide. Last count we are at 48 Demo projects showing how you might use the C++ Wrapper library.
    • Licensing now follows the MIT Open Source License, the same as FreeRTOS starting from version 10.0.0.
    • Project web page
    • Full cross-referenced documentation. Documents were auto-generated and cross-referenced using Doxygen.
  • C Add-on Wrappers

    • A collection of C Add-on functionality for FreeRTOS. Right now these consist of:
    • Memory Pools: Fixed size memory allocation buffers. Using these elminates the possibility of memory fragmentation. There is overhead associated with these, so it's better if you are maximizing the size of each allocation.
    • Reader / Writer Locks: These allow multiple threads to simultaneously access a shared resource all as readers. If something needs to change, then a Writer lock needs to be taken which will allow a singe thread to modify the shared resource.
    • Workqueues: These allow you to queue "work" (i.e. a function) to a different thread. Useful if you have a lot of "one off" things that need to be done in different threads but they happen very asynchronous.
    • Licensing now follows the MIT Open Source License, the same as FreeRTOS starting from version 10.0.0.
    • There are numerous demo / unit test projects using these wrappers and various features they provide. Last count we are at 10 Demo projects showing how you might use the C libraries.
    • In addition, to support these there are implementations of standard optimized compter science singly linked lists, doubly linked circular lists, queues, and stacks.
    • Full cross-referenced documentation. Documents were auto-generated and cross-referenced using Doxygen.
  • Updated Linux port

    • Licensing is GPLv2, because this is a derivative work.
    • An update of the Linux / POSIX port of FreeRTOS, for testing and debugging on a Linux PC.
    • This update was tested successfully with FreeRTOS 8.2.3, 9.0.0, and 10.0.0
    • Two Ubuntu workstations were also used, running 18.04, 16.04 and 14.04, 64-bit multicore machines.
    • This revised Posix port I renamed to Linux port, since I ended up using a few Linux specific APIs in it.
    • Thanks to William Davy who wrote the original Posix FreeRTOS port. He did amazing work simulating a real-time system under Linux.

Overall Releases

Version 1.6.0

Version 1.5.1

Version 1.5.0

Version 1.4.0

Version 1.3.2

Version 1.3.1

Version 1.3.0

  • https://github.com/michaelbecker/freertos-addons/releases/tag/v1.3.0
  • Added preprocessor variable "CPP_FREERTOS_NO_CPP_STRINGS". If you do not want to use C++ strings, simply define this in your makefile or project. Note that if you define this, you must also define "CPP_FREERTOS_NO_EXCEPTIONS". Some classes throw exceptions if they cannot be constructed, and the exceptions they throw depend of C++ strings.
  • Added an implementation of condition variables. These are not enabled by default. To use, define "CPP_FREERTOS_CONDITION_VARIABLES". Also include the files condition_variable.hpp and ccondition_variable.cpp in your project.

Version 1.2.0

  • https://github.com/michaelbecker/freertos-addons/releases/tag/v1.2.0
  • Adding preprocessor flag to exclude exceptions for smaller footprint and C++ compilers that do not support them.
  • Updated license to one similar to FreeRTOS version. What does that mean for you? It means you are free to use FreeRTOS C++ Wrappers in your commercial product without making your product open source.

Version 1.1.0

Version 1.0.2

Version 1.0.1

Version 1.0.0

TODO

This is my todo list for this project. If there's something you'd like to see done sooner, feel free to make a request.

FreeRTOS Features Not Yet Implemented

  • events
  • MPU restricted threads
  • eTaskGetState
  • uxTaskGetNumberOfTasks
  • uxTaskGetStackHighWaterMark
  • Thread Local Storage

New Value Added

  • In Timers, add OnStop / OnStart / mutex sync with these methods?
  • Priority queues
  • Tick Hooks - option to round robin hooks, one per tick
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].