Home|Yasen Stoyanov

About Yasen Stoyanov

This author has not yet filled in any details.
So far Yasen Stoyanov has created 39 blog entries.

RTOS: Mutex and Semaphore Basics

Designing an embedded system that employs a real-time operating system (RTOS) with multitasking behavior means that there will be resources that must be shared between the tasks. These shared resources (e.g peripheral modules, data structures, communication interfaces, etc.) by their nature do not support multiple concurrent accesses. Accessing them without any rules in place may

2020-03-16T06:18:21+02:00By |Categories: Embedded Systems|Tags: , , |0 Comments

Exception Context Switching on ARM Cortex-M

This article is a natural extension on the topics we covered in Function Calls on ARM Cortex-M Microprocessors. Due to the hardware specifics of the Cortex-M architecture, there is actually a lot of common in how function calls and exceptions are handled. The good thing for us as developers is that all exception handlers can

2020-02-24T07:20:40+02:00By |Categories: Embedded Systems|Tags: , |0 Comments

RTOS Task Context Switching

In our article covering the scheduling algorithms of real-time operating systems (RTOS), we stated that they can run tasks in such a way that leaves the impression of a multitasking behavior. This is achieved by giving the RTOS the capability to interrupt a currently executing task and to start executing another one. At some point

2020-01-06T05:50:26+02:00By |Categories: Embedded Systems|Tags: , , |0 Comments

RTOS Scheduling Algorithms

We already introduced the basic concepts of real-time operating systems (RTOS) and now we will take a deeper look into one of the most important things when designing an embedded system using an RTOS - the scheduling of the tasks and the algorithms that are used. Scheduling Process Scheduling is the process of deciding which

2019-12-10T20:49:41+02:00By |Categories: Embedded Systems|Tags: , , |0 Comments

Embedded Real-Time Operating System (RTOS) Basics

Embedded systems are microcontroller-based systems that are designed to perform specific functions such as reading sensor data, responding to external events, communicating with other systems, controlling processes, etc. The tricky part is to make the distinction of what exactly qualifies such a system as real-time. Aren't all embedded systems operating in real-time? In order for

2019-10-26T22:27:34+03:00By |Categories: Embedded Systems|Tags: , , |0 Comments

Time Complexity Of Algorithms

Algorithms are ubiquitous and are used in almost every aspect of our lives. Choosing the right algorithm for performing a specific task is no trivial matter. In the best case scenario, the algorithm not only performs its job, but it does it using the least amount of resources. The most relevant resources when it comes

2019-06-18T05:53:51+03:00By |Categories: Explained Simply|Tags: |0 Comments

The Difference Between Accuracy And Precision

One of the most common scenarios in embedded system design is the need for getting information from the surrounding environment. This is done by using various types of sensors (e.g temperature, humidity, pressure, etc. ). The data from these sensors always have some difference from the real true value being measured. Our goal as designers

2019-05-07T21:23:45+03:00By |Categories: Explained Simply|0 Comments

Digital Buffers And Their Usage

In this article, we will explain the functionality of two very important electronic circuit elements: digital buffer and tri-state digital buffer. Buffer At first glance, the functionality of a digital buffer may seem very simple: the value at its input is propagated to its output. Fig. 1 Buffer symbol and truth table If the buffer

2019-05-19T16:48:41+03:00By |Categories: Digital Logic|Tags: , |1 Comment