Embedded Software Development
Embedded Software Testing
Arm Cortex-M Architecture
µC Trainings
Armv7-M ,M3, M4, M7
Armv8-M, M23, M33, M52, M55, M85
SCRUMbedded Agile Methgodology
Back online soon…
M-OS is a tiny Realtime Operating System that utilizes Cortex-M capabilities. The free of charge download provides all sources required to build and run a small micro RTOS. Due to its minimal overhead it may be applied where otherwise bare metall were used
Back online soon…
wugtest is a single include file embedded unit test framework for C and C++. A substantial subset of the google test syntax is supported. Wugtest aims at executing google tests on the embedded target that were previously executed on the PC without the need to edit the tests nore to migrate the google test framework to the target. Wugtest is provided free of charge.
Available now!
This Excel based graphical MPU Configurator generates C-Code to program the PMSAv7 Memory Protection Unit of Cortex-M0+, M3, M4 and M7 devices as well as C-Code to program the PMSAv8 MPU of the Cortex-M23, M33, M35P, M52, M55 and M85. The generated code is ouput of an Excel sheet and can easily be copied into your project by any editor of your joice.
Blogs published in German/Deutsch Language
Blogs published in English Language
Memory Protection Unit of the Cortex-M
Intro The Memory Protection Unit, or MPU for short, is an unloved child, although it is very important and helpful. The reason for the resentment lies in the nature of the matter, the MPU is not constructive, but uncovers software malfunction and prevents worse. It does not ensure that SW…
Memory Protection Unit des Cortex-M
Intro Die Memory Protection Unit oder kurz MPU ist ein ungeliebtes Kind, obwohl sie sehr wichtig und hilfreich ist. Der Grund für die Missgunst liegt in der Natur der Sache, die MPU ist nicht konstruktiv, sondern deckt Fehlverhalten der Software auf und verhindert schlimmeres. Sie sorgt nicht dafür, dass SW…
Exclusive Primitives of the Cortex-M
Intro Concurrency plays a central role in the booming programming language RUST. In C and C++ it is the responsibility of the designer to apply appropriate mechanisms to avoid the dreaded race conditions, even in small embedded bare metal projects. Disabling interrupts is commonly used to avoid these race conditions.…
Proper Disabling of Interrupts in the Cortex-M
Intro Disabling and Enabling of interrupts is a common scenario in embedded SW. The Cortex-M offers suitable mechanisms for this, but the topic is not quite so trivial because of potentially occurring race conditions and therefore we take a deeper look at a process optimized for the Cortex-M. Scenario In…
Exclusive Primitives des Cortex-M
Intro Nebenläufigkeit ist ein Begriff, der in der boomenden Programmierung mit RUST eine zentrale Rolle spielt. In C und C++ liegt es in der Verantwortung des Entwicklers geeignete Mechanismen anzuwenden, um selbst in kleinen Embedded Bare Metal Projekten, die gefürchteten Race Conditions zu vermeiden. Das Sperren von Interrupts ist ein…
Interrupts im Cortex-M richtig sperren
Intro Das Sperren und das Wiederfreischalten von Interrupts ist ein übliches Szenario in Embedded SW. Der Cortex-M bietet dafür geeignete Mechanismen, doch ganz so trivial ist das Thema wegen potentiell auftretender Race Conditions nicht und daher werfen wir hier einen tieferen Blick in ein auf den Cortex-M optimiertes Verfahren. Scenario…
Hi, my name is Remo Markgraf and I train and consult extensively in projects related to Cortex-M, embedded software development and testing, test-driven development and agile development for embedded systems. Training and Consulting is provided in German and English language. My experience covers numerous areas of software development, test engineering, system architecture, project, product, lifecycle and business management.
