Some time ago I faced a small problem in Embox RTOS — gdb is not displaying stack trace correctly for Cortex-M when a program is in an interrupt handler. Therefore, I wanted to find out, what ways can you get a stack trace for ARM? What compilation flags affect the ability of a stack trace on ARM? How is this implemented in Linux? I decided to write this article based on the research results.

Stack unwind through frames

Let’s start with a simple approach that can be found in the Linux kernel, but which is currently marked ‘deprecated’ in GCC.

Imagine that a program…

When should you use MCUs? The answer to this question is obvious when you want to have a cheaper, more reliable, or less power-consuming solution. But it seems in this case It is necessary to greatly reduce the functionality because the MCUs have a maximum of a couple of megabytes of internal memory. And they certainly do not work at gigahertz. We in the Embox project do not agree that the functionality is available only on large platforms. Since hundreds of kilobytes of memory are enough for a lot of complex tasks if you use fit tools.

We have an…

In the article, I said that we used caches to accelerate graphics on microcontrollers.

We talked about some advantages and disadvantages of Write-Through mode, but it was a quick overview. This article talks about caches from the point of view of programmers in more detail.

CPU data cache modes

I’m starting with the point where I stopped in the previous topic, namely, what’s the difference between write-back and write-through modes. In short:

  • Write-back. During write operation data is loaded only to the cache. The real write to memory is deferred until the cache is full and space is required for new data.
  • Write-through. Writing…

In this topic, we would like to talk about a particularity of GUI implementation on MCU which has both a familiar user interface and a decent FPS. We also would like to emphasize common things here: memory, caches, DMA, etc, but not specific hardware. We are members of the Embox team so examples and experiments were made under this RTOS.

There is a Qt port on Embox which has been launched on MCU. We managed to achieve pretty smooth animation in this example, but it requires a lot of memory for code therefore we had to run the example…

Hello! I am one of Embox RTOS developers. People often ask us whether Raspberry Pi is supported in Embox. The answer is “yes”, and in this article, I want to tell you a little about it.

We had Raspberry Pi Model B rev 2.0 (that is rpi1) for a long time, and some drivers were successfully implemented: UART, interrupt controller, system timer and framebuffer. But the knowledge about how to run these things has been lost, so we started with QEMU. …


Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store