Novos Task Model Selection

Selection of the right type of task model depends on what the task is trying to do and what its requirements are. The typical multitasking RTOS products only support one type of task which it schedules with a pre-emptive priority policy.

That may not be the best choice, especially for RAM-constrained microcontrollers where it could prove totally unworkable because of that model’s potentially large RAM usage for stacks. Continue reading

Code Models of Novos Tasks

All Novos environments support a mix of Foreground and Background operations. Foreground operations may consist of one or more Foreground execution entities such as Deferred Interrupt Handlers (DIH), Event Action Routines (EAR) or Foreground tasks (FG Task).

Background operations consist of one or more Background tasks (BG Task). Each type of execution entity has its own characteristics. Continue reading

Types of Tasks in Novos Environments

An embedded system is one in which one or more program tasks execute in some order to perform the work of the application. Each one is designed and coded to take care of a particular aspect of the application. How many tasks are required depends on the application and its requirements, especially the requirements that deal with time and deadlines. There are several types of tasks, each of which has a particular nature when it comes to its temporal performance. Continue reading

Glossary of Terms

Actuators change the system’s environment.

Alarms set up points in the future when some action is to take place.

API is the abbreviation for Application Program Interface. Continue reading

Super Loop – a Good Approach?

A Super Loop embedded design should not be rejected out of hand for lack of formality. Aside from the simplicity of a Super Loop, one of its greatest advantages is the need for a single stack, which can be important for processors with limited memory like the Arm Cortex M0 and M0+.

There is one major issue with a basic Super Loop application design: inconsistent timing. Continue reading

Microcontroller market analysis 2019-2025

Novos Market Survey

A report from Grand View Research provides insight to the microcontroller market, giving estimates of market size, share and trends, by product (8-bit, 16-bit, 32-bit), by application (automotive, consumer, industrial, medical and military) to the year 2025.

Headline figures: The global microcontroller market size was valued at USD 18.60 billion in 2018 and is expected reach USD 35.29 billion, growing at a Compound Annual Growth Rate (CAGR) of 9.2% over the forecast period. Continue reading

Novos Real Time CapabilitiesWhat does real-time mean?

There are a number of time elements involved in the characteristics of a task. One of those is the term “real-time” when applied to a task (or even to an entire application). Applied to a task, that usage alone is insufficient and can even be misleading. It is important to understand what this commonly used term means. A misunderstanding can lead to a poor choice of a system architecture. A poor choice could lead to less than desirable system performance if not outright failure of the application. Continue reading

“Everything should be made as simple as possible, but not simpler.”

Thoughts on Novos Environment Selection

Continue reading

Free eBook: Operating Systems for Embedded Applications

This Free eBook is an independent review of the different types of architecture used in embedded systems – it contains no sales pitch, it simply offers embedded software engineering facts and advice.

The author is Tom Barrett, a leading name in the embedded world for several decades. Continue reading

Keeping your code footprint small for Arm Cortex M0/M0+ Applications

Novos Arm Cortex M0Processors using Arm Cortex M0/M0+ cores typically have a limited amount of memory, necessitating efficient, compact application code. So, a small code size becomes an absolute necessity.

The first approach an embedded developer might consider is to “strip down” an RTOS, but even with a drastic pruning of unwanted functions, the resultant code would most likely still be a complete overkill in terms of size and complexity. Continue reading