Your Feedback

If you need:

* custom system version,
* system for another procesor,
* want to request new features,

If you found error on the site

something is displayed incorrectly or is not working under your browser.

You can send a message

Click here and write a note.

Your comments will improve the DioneOS system.

DioneOS News

Full verification of the system version for ARM Cortex-M3


Version for ARM Cortex-M3 was tested automatically (full code coverage: all functions, marcos, code lines, conditions, etc.). Tests were performed on STM32L162.

DioneOS for ARM Cortex-M3


DioneOS version for ARM Cortex-M3 processor was released.

Introduction to Multithreading


'Introduction to Multithreaded Programming' has been added in tutorials section

State Machine support.


State machine support has been added to the system. Pattern for state machine coding is defined.

Texas Instruments Developer Network


ELESOFTROM entered Texas Instruments MCU Developer Network. This program gathers companies that develop software for TI MCUs and provide professional services in this domain.

Regular MSP430 supported.


Support for regular MSP430 microcontroller and small code model has been added.

DioneOS release for MSP430x


First release of the DioneOS System. Support for MSP430x and large code model.

Introduction to Multithreaded Programming in Embedded Systems
Piotr Romaniuk, Ph.D., July 11, 2011


Table of contents

* Bad practices and implicated problems

* 'One-threaded' programming

* Concurrency

* Why to use multithreaded programming?

* Multithreaded aspects:

    - thread and its context,

    - CPU time assignment and context switch,

    - how to control concurrency and shared resources,

    - periodic and deffered actions,

    - is your function reentrant?,

* Testing methods

The tutorial is an introduction to multithreaded programming. It illustrates common errors and practices that should be avoided. It presents 'one-threaded' model and explains concurrency between the main loop and ISR. Next, it discusses basic aspects of multithreaded firmware, including system structure, internal synchronisation, management of common resources, time related events, etc. Finally, it describes effective methods for debugging real-time software.