{"id":280,"date":"2026-05-07T10:16:10","date_gmt":"2026-05-07T10:16:10","guid":{"rendered":"https:\/\/straehl-engineering.ch\/?page_id=280"},"modified":"2026-07-12T12:14:31","modified_gmt":"2026-07-12T12:14:31","slug":"baremetal-framework","status":"publish","type":"page","link":"https:\/\/straehl-engineering.ch\/?page_id=280","title":{"rendered":"BareMetal Framework"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die Komponenten des BareMetal-Stack sind in C++ geschrieben. <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Einfache R\u00fcckf\u00fchrung nach &#8222;C&#8220;.<\/li>\n\n\n\n<li>Verwendet keinen dynamischen Speicher.<\/li>\n\n\n\n<li>Platzsparend und performant geschrieben.<\/li>\n\n\n\n<li><strong>Zero-Overhead Sync:<\/strong> Keine Deadlocks oder Race Conditions durch ein inh\u00e4rentes Architekturmodell ohne Bedarf an Task-Synchronisation.<\/li>\n<\/ul>\n\n\n\n<div style=\"text-align: center;\">\n  <label for=\"lightbox-toggle\" style=\"cursor: zoom-in; display: inline-block;\">\n    <p style=\"margin-bottom: 20px;\">\n      <img decoding=\"async\" src=\"https:\/\/straehl-engineering.ch\/wp-content\/uploads\/2026\/05\/SW-Stack.png\" \n           alt=\"Hybrid Software Stack\" \n           oncontextmenu=\"return false;\" \n           class=\"stack-img\"\n           style=\"width: 600px; max-width: 100%; height: auto; display: block; border: none; \n                  user-select: none; -webkit-user-drag: none;\n                  transition: transform 0.3s ease;\n                  filter: drop-shadow(0px 4px 8px rgba(0,0,0,0.1));\">\n    <\/p>\n  <\/label>\n\n  <p style=\"font-family: Arial, sans-serif; color: #666; font-size: 14px; font-style: italic;\">\n    Ready to run software stack (Klicken zum Vergr\u00f6\u00dfern)\n  <\/p>\n\n  <input type=\"checkbox\" id=\"lightbox-toggle\" style=\"display: none;\">\n\n  <div class=\"lightbox-overlay\">\n    <label for=\"lightbox-toggle\" class=\"close-area\"><\/label>\n    <div class=\"lightbox-content\">\n      <img decoding=\"async\" src=\"https:\/\/straehl-engineering.ch\/wp-content\/uploads\/2026\/05\/SW-Stack.png\" alt=\"Vergr\u00f6\u00dferter SW Stack\">\n      <label for=\"lightbox-toggle\" class=\"close-button\">&times;<\/label>\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n  \/* Hover Effekt auf dem Vorschaubild *\/\n  .stack-img:hover {\n    transform: scale(1.02);\n    filter: drop-shadow(0px 8px 16px rgba(0,0,0,0.2));\n  }\n\n  \/* Overlay Grundzustand (versteckt) *\/\n  .lightbox-overlay {\n    position: fixed;\n    top: 0; left: 0;\n    width: 100%; height: 100%;\n    background: rgba(0, 0, 0, 0.85);\n    display: none;\n    justify-content: center;\n    align-items: center;\n    z-index: 9999;\n    padding: 20px;\n  }\n\n  \/* Wenn Checkbox aktiv, zeige Overlay *\/\n  #lightbox-toggle:checked ~ .lightbox-overlay {\n    display: flex;\n  }\n\n  \/* Das vergr\u00f6\u00dferte Bild *\/\n  .lightbox-content {\n    position: relative;\n    max-width: 90%;\n    max-height: 90%;\n  }\n\n  .lightbox-content img {\n    width: 100%;\n    height: auto;\n    border-radius: 4px;\n    box-shadow: 0 0 30px rgba(0,0,0,0.5);\n  }\n\n  \/* Schlie\u00dfen-Bereich (Klick neben das Bild schlie\u00dft auch) *\/\n  .close-area {\n    position: absolute;\n    width: 100%;\n    height: 100%;\n    cursor: zoom-out;\n  }\n\n  \/* Schlie\u00dfen-Button oben rechts *\/\n  .close-button {\n    position: absolute;\n    top: -40px;\n    right: 0;\n    color: white;\n    font-size: 35px;\n    cursor: pointer;\n    font-family: Arial, sans-serif;\n  }\n<\/style>\n\n\n\n<div style=\"height:42px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Kann als Bare-Metal Grundsystem oder in einen Task eines beliebigen RTOS integriert werden, z.B. FreeRTOS.<br><strong>Einfaches Debugging:<\/strong> Wo keine Semaphoren sind, kann es keine \u201ePriority Inversion\u201c oder \u201eDeadlocks\u201c geben.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">HW-Requirements:<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Serial Interface (MMI, Monitoring, event injection)<\/li>\n\n\n\n<li>System clock (1ms)<\/li>\n\n\n\n<li>Optimiert f\u00fcr minimalen RAM, ROM Aufwand<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Hardware unabh\u00e4ngig. Aktuell verwendet in ARM-Cortex Systemen, (NXP, STM32, ESP32) in den Bereichen Medizintechnik, BioTech, IoT.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Da der Stack minimale Hardwareabh\u00e4ngigkeit hat, ist er f\u00fcr jede CPU verwendbar, nicht nur ARM-Cortex.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Hardware &amp; Plattform-Expertise:<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Zus\u00e4tzlich unterst\u00fctzen wir Sie gerne bei Ihrer Entwicklung f\u00fcr Ihr Projekt mit ARM Cortex-M0\/M3\/M4\/M7, STM32, NXP (LPC\/i.MX), Espressif (ESP32) und IoT-Integration, auch f\u00fcr anders basierte embedded Systeme.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">FW Komponenten<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/straehl-engineering.ch\/?page_id=404\" data-type=\"page\" data-id=\"404\">Startup &amp; Task Scheduler<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/straehl-engineering.ch\/?page_id=310\" data-type=\"page\" data-id=\"310\">System Monitor<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/straehl-engineering.ch\/?page_id=307\" data-type=\"page\" data-id=\"307\">Sequencer<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Komponenten des BareMetal-Stack sind in C++ geschrieben. Ready to run software stack (Klicken zum Vergr\u00f6\u00dfern) &times; Kann als Bare-Metal Grundsystem oder in einen Task eines beliebigen RTOS integriert werden, z.B. FreeRTOS.Einfaches Debugging: Wo keine Semaphoren sind, kann es keine \u201ePriority Inversion\u201c oder \u201eDeadlocks\u201c geben. HW-Requirements: Hardware unabh\u00e4ngig. Aktuell verwendet in ARM-Cortex Systemen, (NXP, STM32, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-280","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/straehl-engineering.ch\/index.php?rest_route=\/wp\/v2\/pages\/280","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/straehl-engineering.ch\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/straehl-engineering.ch\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/straehl-engineering.ch\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/straehl-engineering.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=280"}],"version-history":[{"count":28,"href":"https:\/\/straehl-engineering.ch\/index.php?rest_route=\/wp\/v2\/pages\/280\/revisions"}],"predecessor-version":[{"id":409,"href":"https:\/\/straehl-engineering.ch\/index.php?rest_route=\/wp\/v2\/pages\/280\/revisions\/409"}],"wp:attachment":[{"href":"https:\/\/straehl-engineering.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=280"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}