<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Miro Samek Blog on EmbeddedRelated.com</title>
<link>https://www.embeddedrelated.com/blogs-1/nf/Miro_Samek.php</link>
<description><![CDATA[RSS Feed for Miro Samek Blog on EmbeddedRelated.com]]></description>
<image><title>Miro Samek Blog on EmbeddedRelated.com</title>
<link>https://www.embeddedrelated.com/blogs-1/nf/Miro_Samek.php</link>
<url>https://d23s79tivgl8me.cloudfront.net/user/profilepictures/80499.jpg</url>
</image>
<atom:link href="https://www.embeddedrelated.com/blogs_rss.php?bloggerid=80499" rel="self" type="application/rss+xml"></atom:link>
<language>en-US</language>
<lastBuildDate>Mon, 18 May 2026 04:09:42 +0000</lastBuildDate>
<pubDate>1779077382</pubDate>
<item>
<title>Can an RTOS be really real-time?</title>
<link>https://www.embeddedrelated.com/showarticle/1776.php</link>
<description><![CDATA[
<p>Ask the question What is an RTOS? and you will almost always get a definition along the lines of: "A real-time operating system (RTOS) is a software platform for real-time computing applications that process events and data with well-defined time constraints."
</p>
<p>It sounds reassuring. But how can you actually know that RTOS applications process data within "well-defined time constraints"...]]></description>
<pubDate>Sun, 08 Feb 2026 02:05:28 +0000</pubDate>
<author>Miro Samek</author>
</item>
<item>
<title>Blocking == Technical Debt</title>
<link>https://www.embeddedrelated.com/showarticle/1704.php</link>
<description><![CDATA[<p></p><p>Blocking occurs every time a program waits in line for something to happen. For instance, the basic <a target="_blank" href="https://docs.arduino.cc/built-in-examples/basics/Blink/" class="editor-rtfLink" rel="nofollow">Arduino "Blink" example</a> turns the LED on and calls the delay() function to wait for a timeout event in 1000 milliseconds. Then it turns the LED off and calls delay() to wait in line for another timeout event in 1000 milliseconds. Performed in a loop, this ends up blinking the LED.</p><p>Blocking...]]></description>
<pubDate>Fri, 25 Oct 2024 19:41:11 +0000</pubDate>
<author>Miro Samek</author>
</item>
<item>
<title>Are We Shooting Ourselves in the Foot with Stack Overflow?</title>
<link>https://www.embeddedrelated.com/showarticle/1574.php</link>
<description><![CDATA[<p align="center">
</p>

<p>Lesson #10 of my <a title="Modern Embedded C Programming with ARM Cortex-M" href="https://www.youtube.com/@StateMachineCOM" target="_blank" rel="noopener">Modern Embedded Programming Video Course</a> explains what <a title="Stack Overflow" href="http://en.wikipedia.org/wiki/Stack_overflow" target="_blank" rel="noopener">stack overflow</a> is and shows what can transpire deep inside an embedded microcontroller when the stack pointer register (SP) goes out of bounds. You can <a title="watch Lesson 10" href="https://youtu.be/jmzvued3w3Y?si=up3mgnzZvJFFr1w0" target="_blank" rel="noopener">watch the YouTube video</a> to see the details, but...]]></description>
<pubDate>Fri, 08 Sep 2023 20:34:00 +0000</pubDate>
<author>Miro Samek</author>
</item>
<item>
<title>NULL pointer protection with ARM Cortex-M MPU</title>
<link>https://www.embeddedrelated.com/showarticle/1546.php</link>
<description><![CDATA[<p align="center">
</p>
<p>The second of the <a href="http://www.literateprogramming.com/ten-commandments.pdf" target="_blank" rel="nofollow">Ten Commandments for C Programmers</a> says:
</p>
2. Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

<p>This post explains how you can set up the ARM Cortex-M MPU (Memory Protection Unit) to protect thy code from dragons, demons, core dumps, and numberless other foul creatures awaiting thee after thou dereference the NULL...]]></description>
<pubDate>Sun, 16 Jul 2023 19:34:12 +0000</pubDate>
<author>Miro Samek</author>
</item>
<item>
<title>Patterns of Thinking: Metaphors in Programming</title>
<link>https://www.embeddedrelated.com/showarticle/1451.php</link>
<description><![CDATA[<p>Several years ago, I once attended an “Object-Oriented Analysis and Design” training. As most such courses go, the instructor began with brushing up on the fundamental OO concepts. When explaining inheritance, the instructor spontaneously compared inheriting from a class to passing traits from parents to the offspring in a family. At first, this “family tree” metaphor seemed to make a...]]></description>
<pubDate>Sat, 14 May 2022 19:16:18 +0000</pubDate>
<author>Miro Samek</author>
</item>
<item>
<title>Embedded Programming Video Course Shows How OOP Works Under the Hood</title>
<link>https://www.embeddedrelated.com/showarticle/1301.php</link>
<description><![CDATA[<p>If you'd like to understand how Object-Oriented Programming (OOP) really works under the hood, here is a free video course for you:
</p>
<p>OOP part-1: Encapsulation: This first lesson on Object-Oriented Programming (OOP) introduces the concept of Encapsulation, which is the ability to package data and functions together into classes. You'll see how you can emulate Encapsulation in C, what kind of...]]></description>
<pubDate>Sun, 29 Sep 2019 18:57:33 +0000</pubDate>
<author>Miro Samek</author>
</item>
<item>
<title>Embedded Programming Video Course Teaches RTOS</title>
<link>https://www.embeddedrelated.com/showarticle/1223.php</link>
<description><![CDATA[<p>If you'd like to understand how a Real-Time Operating System (RTOS) really works, here is a free video course for you:</p><p>RTOS part-1: In this first lesson on RTOS you will see how to extend the 
foreground/background architecture from the previous lesson, so that you
 can have multiple background loops running seemingly simultaneously.:</p><p>RTOS part-2: In this second lesson on RTOS you will see how...]]></description>
<pubDate>Mon, 21 Jan 2019 02:14:53 +0000</pubDate>
<author>Miro Samek</author>
</item>
<item>
<title>Embedded Toolbox: Source Code Whitespace Cleanup</title>
<link>https://www.embeddedrelated.com/showarticle/1076.php</link>
<description><![CDATA[<p>In this installment of my "Embedded Toolbox" series, I would like to share with you the free source code cleanup utility called QClean for cleaning whitespace in your source files, header files, makefiles, linker scripts, etc.
</p>
<p>You probably wonder why you might need such a utility? In fact, the common thinking is that compilers (C, C++, etc.) ignore whitespace anyway, so why bother? But, as...]]></description>
<pubDate>Sat, 05 Aug 2017 21:13:49 +0000</pubDate>
<author>Miro Samek</author>
</item>
<item>
<title>Embedded Toolbox: Windows GUI Prototyping Toolkit</title>
<link>https://www.embeddedrelated.com/showarticle/1067.php</link>
<description><![CDATA[<p>In this installment of my "Embedded Toolbox" series, I would like to interest you in the&nbsp;free Windows GUI Toolkit called QWin for prototyping, developing and debugging embedded C or C++ code on Windows.
</p>
<p>If you work on devices with non-trivial user interfaces consisting of LCDs (segmented or graphic), buttons, LEDs, etc., QWin could be just the tool for you. It has improved my...]]></description>
<pubDate>Fri, 07 Jul 2017 22:46:21 +0000</pubDate>
<author>Miro Samek</author>
</item>
<item>
<title>Embedded Toolbox: Programmer&#039;s Calculator</title>
<link>https://www.embeddedrelated.com/showarticle/1061.php</link>
<description><![CDATA[<p>Like any craftsman, I have accumulated quite a few tools during my embedded software development career. Some of them proved to me more useful than others. And these generally useful tools ended up in my Embedded Toolbox. In this blog, I'd like to share some of my tools with you. Today, I'd like to start with my cross-platform Programmer's Calculator called QCalc.
</p>


<p>I'm sure that you...]]></description>
<pubDate>Tue, 27 Jun 2017 19:16:07 +0000</pubDate>
<author>Miro Samek</author>
</item>
<item>
<title>Modern Embedded Systems Programming: Beyond the RTOS</title>
<link>https://www.embeddedrelated.com/showarticle/951.php</link>
<description><![CDATA[<p>An RTOS (Real-Time Operating System) is the most universally accepted way of designing and implementing embedded software. It is the most sought after component of  any system that outgrows the venerable "superloop". But it is also the  design strategy that implies a certain programming paradigm, which leads to particularly brittle designs that often work only by chance. I'm talking about...]]></description>
<pubDate>Wed, 27 Apr 2016 17:51:40 +0000</pubDate>
<author>Miro Samek</author>
</item>
<item>
<title>Cutting Through the Confusion with ARM Cortex-M Interrupt Priorities</title>
<link>https://www.embeddedrelated.com/showarticle/923.php</link>
<description><![CDATA[<p>The insanely popular ARM Cortex-M processor offers very versatile interrupt priority management, but unfortunately, the multiple priority numbering conventions used in managing the interrupt priorities are often counter-intuitive, inconsistent, and confusing, which can lead to bugs. In this post I attempt to explain the subject and cut through the confusion.
</p>
<p>The Inverse Relationship Between...]]></description>
<pubDate>Fri, 26 Feb 2016 15:21:38 +0000</pubDate>
<author>Miro Samek</author>
</item>
</channel>
</rss>