# Error tolerant version of FreeRTOS?

**URL:** <https://forums.freertos.org/t/error-tolerant-version-of-freertos/3382>\
**Category:** Kernel\
**Created:** [January 15, 2013, 1:42pm UTC](https://forums.freertos.org/t/error-tolerant-version-of-freertos/3382 "2013-01-15T13:42:50Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![system](https://d2v6vdsk2p900z.cloudfront.net/original/1X/7fc8fdb729c645aab5b20282bbe34e57cb407be6.jpeg) [@system](https://forums.freertos.org/u/system)\
**Post date:** [January 15, 2013, 1:42pm UTC](https://forums.freertos.org/t/error-tolerant-version-of-freertos/3382/1 "2013-01-15T13:42:50Z")

</div>

**anonymous** wrote on [Tuesday, January 15, 2013](https://sourceforge.net/p/freertos/discussion/382005/thread/9a21053e/#aed9):

Is there a version of RTOS that is more error tolerant?&nbsp; I love the code, but I find that I will make a mistake with a piece of code, and all I get is a hard fault.&nbsp;&nbsp; Is it possible to have the code just return an error if I pass in a bad variable, or don’t do something in the right order?&nbsp;  
Thanks

---

<div class="post-metadata">

**Author:** ![rtel](https://d3iykfbgfh8zhg.cloudfront.net/user_avatar/forums.freertos.org/rtel/32/31_2.png) [@rtel](https://forums.freertos.org/u/rtel)\
**Post date:** [January 15, 2013, 1:50pm UTC](https://forums.freertos.org/t/error-tolerant-version-of-freertos/3382/2 "2013-01-15T13:50:35Z")

</div>

**[rtel](https://sourceforge.net/u/rtel/)** wrote on [Tuesday, January 15, 2013](https://sourceforge.net/p/freertos/discussion/382005/thread/9a21053e/#89d4):

Yes, it’s called [SafeRTOS](http://www.safertos.com), but it’s not free.

Small code size is a primary objective of FreeRTOS, hence internal error checking is kept to a minimum.&nbsp; Adding complete error checking would make the code much larger and slower.

Safety is the primary objective of SafeRTOS, hence there is (among many other things) complete input parameter validity checking.

Regards.

---

<div class="post-metadata">

**Author:** ![system](https://d2v6vdsk2p900z.cloudfront.net/original/1X/7fc8fdb729c645aab5b20282bbe34e57cb407be6.jpeg) [@system](https://forums.freertos.org/u/system)\
**Post date:** [January 15, 2013, 2:09pm UTC](https://forums.freertos.org/t/error-tolerant-version-of-freertos/3382/3 "2013-01-15T14:09:25Z")

</div>

**anonymous** wrote on [Tuesday, January 15, 2013](https://sourceforge.net/p/freertos/discussion/382005/thread/9a21053e/#1bae):

Hi Richard,

Thank you for the information!

Sam

---

<div class="post-metadata">

**Author:** ![system](https://d2v6vdsk2p900z.cloudfront.net/original/1X/7fc8fdb729c645aab5b20282bbe34e57cb407be6.jpeg) [@system](https://forums.freertos.org/u/system)\
**Post date:** [January 15, 2013, 3:05pm UTC](https://forums.freertos.org/t/error-tolerant-version-of-freertos/3382/4 "2013-01-15T15:05:33Z")

</div>

**anonymous** wrote on [Tuesday, January 15, 2013](https://sourceforge.net/p/freertos/discussion/382005/thread/9a21053e/#6289):

Hi Richard,

How easy is it to port to SafeRTOS?&nbsp; Is it the same function calls, or is it a totally different RTOS?

Thanks!  
Sam

---

<div class="post-metadata">

**Author:** ![rtel](https://d3iykfbgfh8zhg.cloudfront.net/user_avatar/forums.freertos.org/rtel/32/31_2.png) [@rtel](https://forums.freertos.org/u/rtel)\
**Post date:** [January 15, 2013, 3:15pm UTC](https://forums.freertos.org/t/error-tolerant-version-of-freertos/3382/5 "2013-01-15T15:15:44Z")

</div>

**[rtel](https://sourceforge.net/u/rtel/)** wrote on [Tuesday, January 15, 2013](https://sourceforge.net/p/freertos/discussion/382005/thread/9a21053e/#0be6):

It has the same functional model, but a few API differences, most notable in the two following areas:

1) SafeRTOS does not permit any dynamic memory allocation, so API calls that create an object (task, semaphore,etc.) have to pass in a buffer that will hold the object in an additional parameter.&nbsp; Generally in a safety critical application the buffer will be statically allocated.

2) As function names are prefixed with their return type, functions that are void in FreeRTOS but return error codes in SafeRTOS will have a different a prefix.

SafeRTOS is a fully safety certified product that comes with documentation packs that are qualified to various international safety standards - its price reflects that (really you are paying for the certification rather than the software).

Regards.
