Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to test reliability of my own (small) embedded operating system?

I've written a small operating system for embedded project running on small to medium target.

I added some automated unit test with a high test code coverage (>95%), but the scope is only the static part.
I got some code metrics as complexity and readability.
I'm testing my code with a rule checker with MiSRA support, and of course fixed all warnings.
I'm testing the code with a static analyzer and again fixed all warnings.

What can I do now to test - and improve - the reliability of my OS ? How about the dynamic part ?

like image 425
TridenT Avatar asked May 23 '10 06:05

TridenT


People also ask

Are embedded systems reliable?

Embedded systems have historically been simple, often non-critical, and usually very reliable, safe, and secure.

What makes good embedded OS?

Given that, an embedded OS must be reliable and able to run with constraints on memory and processing power. In the case of a Raspberry PI system on a chip, an SD card acts as the device's hard drive and contains the code that runs on the device.

How will you know if an operating system is real-time?

A real-time operating system (RTOS) is an operating system with two key features: predictability and determinism. In an RTOS, repeated tasks are performed within a tight time boundary, while in a general-purpose operating system, this is not necessarily so.


2 Answers

Things missing in your list:

  • If you are not already doing it then also run the unit tests on the target hardware, to check for compiler and hardware issues.

  • Code reviews, check especially for race conditions

You could also review the generated assembly code, if it is not too big.

like image 61
starblue Avatar answered Oct 22 '22 12:10

starblue


Try writing some unit tests for the dynamic part. Then run the tests on the target hardware. Run the tests on hardware with more cores Run the tests on hardware with only one core

Vary target system clock speed and run the dynamic tests.

should shake out most timing issues.

like image 45
Tim Williscroft Avatar answered Oct 22 '22 12:10

Tim Williscroft