{"id":3357,"date":"2019-06-04T08:22:58","date_gmt":"2019-06-04T06:22:58","guid":{"rendered":"http:\/\/medtech-ingenieur.de\/?p=3357"},"modified":"2021-08-06T14:38:23","modified_gmt":"2021-08-06T13:38:23","slug":"bootloader-tutorial-teil-2-backup-firmware","status":"publish","type":"post","link":"https:\/\/medtech-ingenieur.de\/en\/bootloader-tutorial-teil-2-backup-firmware\/","title":{"rendered":"Bootloader Tutorial, Part 2: Backup Firmware"},"content":{"rendered":"<p>In the second part of the bootloader series, I&#039;d like to discuss the concept of backup firmware. This was developed by MEDtech-Ingenieur to increase the reliability of firmware that uses pre-installed bootloaders.<\/p>\n<h2>Problem description<\/h2>\n<p>To understand the underlying problem, let\u2019s imagine the following scenario:<\/p>\n<p>A medical device consists of two software systems, among others. One is the GUI controller, which handles the visualization of signals (ECG, respiratory waveform, etc.). The other component is a microcontroller, which handles hardware-specific functions (e.g., power management, data acquisition, etc.). The GUI controller can receive updates via Wi-Fi. The update file contains, among other things, an image with firmware for the microcontroller. This can be transferred via the bootloader protocol. To save time during development, the microcontroller manufacturer&#039;s pre-installed (and tested!) bootloader is used. There are two ways to start it:<\/p>\n<ol>\n<li>The host controller sets a pin assigned to the bootloader to a specific level and then performs a reset by toggling the microcontroller&#039;s reset line.<\/li>\n<li>The microcontroller automatically jumps to the address where the bootloader is stored.<\/li>\n<\/ol>\n<p>Option 1 has a crucial disadvantage: It requires a reset line between the host and the microcontroller. In our case, this would mean that a software error in the GUI controller could cause the microcontroller to reset at any time (even during treatment). In medical technology, this problem would make it significantly more difficult to argue why the GUI controller should be classified in a lower risk category than the microcontroller.<\/p>\n<p>Option 2, however, also has a serious disadvantage: The microcontroller must receive a command from the host that initiates the jump to the bootloader. This sounds trivial at first, but it should be noted that after a failed update, there is usually no firmware left that understands this command. Therefore, if the user disconnects the power supply during the update, the device will be unusable. With the backup firmware, we are trying to address precisely this problem.<img loading=\"lazy\" decoding=\"async\" class=\"invertImg aligncenter wp-image-3439 size-full\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/06\/Systemarchitektur-1-e1559547139899.png\" alt=\"\" width=\"1222\" height=\"448\" srcset=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/06\/Systemarchitektur-1-e1559547139899.png 1222w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/06\/Systemarchitektur-1-e1559547139899-300x110.png 300w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/06\/Systemarchitektur-1-e1559547139899-768x282.png 768w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/06\/Systemarchitektur-1-e1559547139899-1024x375.png 1024w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/06\/Systemarchitektur-1-e1559547139899-100x37.png 100w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/06\/Systemarchitektur-1-e1559547139899-150x55.png 150w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/06\/Systemarchitektur-1-e1559547139899-200x73.png 200w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/06\/Systemarchitektur-1-e1559547139899-450x165.png 450w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/06\/Systemarchitektur-1-e1559547139899-600x220.png 600w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/06\/Systemarchitektur-1-e1559547139899-900x330.png 900w\" sizes=\"auto, (max-width: 1222px) 100vw, 1222px\" \/><\/p>\n<h2>Solution<\/h2>\n<p>The goal is to install a &quot;slimmed-down&quot; firmware on the microcontroller that is still capable of performing another update even after a failed update. Ideally, this firmware should be located at the entry address from which the CPU loads the first instruction after a reset (virtual address 0x00).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"invertImg aligncenter wp-image-3360 size-full\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/04\/Speicher-e1556622489283.png\" alt=\"\" width=\"787\" height=\"720\" srcset=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/04\/Speicher-e1556622489283.png 787w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/04\/Speicher-e1556622489283-300x274.png 300w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/04\/Speicher-e1556622489283-768x703.png 768w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/04\/Speicher-e1556622489283-100x91.png 100w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/04\/Speicher-e1556622489283-150x137.png 150w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/04\/Speicher-e1556622489283-200x183.png 200w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/04\/Speicher-e1556622489283-450x412.png 450w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/04\/Speicher-e1556622489283-600x549.png 600w\" sizes=\"auto, (max-width: 787px) 100vw, 787px\" \/><\/p>\n<p>The backup firmware is therefore always executed after a reset. The following figure shows an example of a backup firmware process. It&#039;s important to note that the backup firmware&#039;s functions should be as limited as possible, as it won&#039;t be overwritten during an update. In the example below, the backup firmware performs only one of two actions:<\/p>\n<ol>\n<li>If a main application with a valid checksum exists, it is accessed.<\/li>\n<li>If no valid checksum is present, the backup firmware waits for a command from the host and then jumps to the bootloader.<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"invertImg aligncenter wp-image-3362 size-full\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/04\/Folie1-1-e1556622528834.png\" alt=\"\" width=\"702\" height=\"780\" srcset=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/04\/Folie1-1-e1556622528834.png 702w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/04\/Folie1-1-e1556622528834-270x300.png 270w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/04\/Folie1-1-e1556622528834-100x111.png 100w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/04\/Folie1-1-e1556622528834-150x167.png 150w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/04\/Folie1-1-e1556622528834-200x222.png 200w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/04\/Folie1-1-e1556622528834-300x333.png 300w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/04\/Folie1-1-e1556622528834-450x500.png 450w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/04\/Folie1-1-e1556622528834-600x667.png 600w\" sizes=\"auto, (max-width: 702px) 100vw, 702px\" \/><\/p>\n<h2>What you need to consider<\/h2>\n<h3>When do I need a backup FW<\/h3>\n<p>Using backup firmware only makes sense if you can actually access a pre-installed bootloader that isn&#039;t run during startup. One example is STM32 microcontrollers (note: those with two flash panels have their own rules for handling the bootloader!). With this microcontroller family, the bootloader can be accessed at any time from within the main application. On the other hand, with EFM32 and PIC32 microcontrollers, for example, the manufacturer provides the bootloader as a software project, which in most cases must be customized by the developer anyway. It is therefore recommended to integrate the backup firmware functions directly into the bootloader.<\/p>\n<p>It may also be useful to align the bootloader protocol with the protocol between the host and peripheral controller. In this case, too, it&#039;s recommended to write your own bootloader.<\/p>\n<div class=\"table-scrollable\">\r\n<table style=\"min-width: 300px;\">\r\n<tbody>\r\n<tr>\r\n<td colspan=\"2\" bgcolor=\"#FFFFFF\">\r\n<h4><center><strong>Your contact person:<\/strong><\/center><\/h4>\r\n<\/td>\r\n<\/tr>\r\n<tr>\r\n<td style=\"text-align: center;\" bgcolor=\"#f9f9f9\"><strong><span style=\"color: #2c2ccc;\">M.Sc. Bj\u00f6rn Schmitz<\/span><\/strong><span style=\"color: #2c2ccc;\">, Software Developer<\/span> <br \/>E-mail: <a href=\"mailto:schmitz@medtech-ingenieur.de\">schmitz@medtech-ingenieur.de<\/a> <br \/>Phone:\u00a0\u00a0<a href=\"tel:+499131691240\">+49 9131 691 240<\/a><\/td>\r\n<td style=\"background-image: url('https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2015\/02\/Bj%C3%B6rnSchmitz-150x150.jpg'); background-repeat: no-repeat; background-position: top; background-size: cover;\" bgcolor=\"#f9f9f9\" width=\"70px\">\u00a0<\/td>\r\n<\/tr>\r\n<tr>\r\n<td colspan=\"2\" bgcolor=\"#FFFFFF\">\r\n<center><p>Do you need support with the development of your medical device? We&#039;re happy to help! MEDtech Ingenieur GmbH offers hardware development, software development, systems engineering, mechanical development, and consulting services from a single source. Contact us.<\/p>\r\n<center><a class=\"large blue button\" href=\"https:\/\/medtech-ingenieur.de\/en\/kontakt\/\">make contact<\/a><\/center><br\/><\/center>\r\n<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<\/div>\n<h3>Protect storage areas<\/h3>\n<p>It may be useful to protect the memory area where the backup firmware is located from write access. This prevents the host from having to know the memory allocation of the peripheral controller. Many microcontrollers offer the option of protecting the memory on a page-by-page or sector-by-sector basis to prevent overwriting during the update process.<\/p>\n<h3>Do not overload backup FW<\/h3>\n<p>While it&#039;s logical to assign additional functions to the backup firmware, this would significantly increase the risk of errors and thus the need for an update. If the backup firmware were to be copied over and the process aborted before completion, no firmware would remain that would allow another jump into the bootloader. Updating the backup firmware should therefore be avoided if possible.<\/p>\n<h2>outlook<\/h2>\n<p>In the third and final part, I&#039;d like to write about the development of a live update bootloader. This isn&#039;t a classic bootloader, but rather an extension of the main application with functions normally assigned to the bootloader. This allows updates to be performed in the background without the main application having to stop working.<\/p>\n<p><a href=\"https:\/\/medtech-ingenieur.de\/en\/bootloader-tutorial-teil-1-grundlagen\/\">Back to Part 1<\/a><\/p>\n<p><a href=\"https:\/\/medtech-ingenieur.de\/en\/bootloader-tutorial-teil-3-live-update-bootloader\/\">Continue to Part 3<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Im zweiten Teil der Bootloader Reihe m\u00f6chte ich auf das Konzept der BackUp-Firmware eingehen. Dieses wurde bei MEDtech-Ingenieur entwickelt, um die Zuverl\u00e4ssigkeit von Firmware zu erh\u00f6hen, welche auf vorinstallierte Bootloader zur\u00fcckgreift. Problembeschreibung Um das zugrundeliegende Problem zu verstehen, stellen wir uns folgendes Szenario vor: Ein Medizinprodukt setzt sich unter anderem aus zwei Softwaresystemen zusammen. Das [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":3439,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[306,338,21,38],"class_list":["post-3357","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software","tag-bootloader","tag-firmware","tag-mikrocontroller","tag-software","post-wrapper","thrv_wrapper"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Bootloader Tutorial, Teil 2: BackUp-Firmware - MEDtech Ingenieur GmbH<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/medtech-ingenieur.de\/en\/bootloader-tutorial-teil-2-backup-firmware\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Bootloader Tutorial, Teil 2: BackUp-Firmware - MEDtech Ingenieur GmbH\" \/>\n<meta property=\"og:description\" content=\"Im zweiten Teil der Bootloader Reihe m\u00f6chte ich auf das Konzept der BackUp-Firmware eingehen. Dieses wurde bei MEDtech-Ingenieur entwickelt, um die Zuverl\u00e4ssigkeit von Firmware zu erh\u00f6hen, welche auf vorinstallierte Bootloader zur\u00fcckgreift. Problembeschreibung Um das zugrundeliegende Problem zu verstehen, stellen wir uns folgendes Szenario vor: Ein Medizinprodukt setzt sich unter anderem aus zwei Softwaresystemen zusammen. Das [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/medtech-ingenieur.de\/en\/bootloader-tutorial-teil-2-backup-firmware\/\" \/>\n<meta property=\"og:site_name\" content=\"MEDtech Ingenieur GmbH\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/medtechIngenieur\" \/>\n<meta property=\"article:published_time\" content=\"2019-06-04T06:22:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-08-06T13:38:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/06\/Systemarchitektur-1-e1559547139899.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1222\" \/>\n\t<meta property=\"og:image:height\" content=\"448\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Bj\u00f6rn Schmitz\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@MedtechIng\" \/>\n<meta name=\"twitter:site\" content=\"@MedtechIng\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Bj\u00f6rn Schmitz\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/bootloader-tutorial-teil-2-backup-firmware\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/bootloader-tutorial-teil-2-backup-firmware\\\/\"},\"author\":{\"name\":\"Bj\u00f6rn Schmitz\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#\\\/schema\\\/person\\\/d8d57dae1a037203802f980694210c96\"},\"headline\":\"Bootloader Tutorial, Teil 2: BackUp-Firmware\",\"datePublished\":\"2019-06-04T06:22:58+00:00\",\"dateModified\":\"2021-08-06T13:38:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/bootloader-tutorial-teil-2-backup-firmware\\\/\"},\"wordCount\":827,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/bootloader-tutorial-teil-2-backup-firmware\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/medtech-ingenieur.de\\\/wp-content\\\/uploads\\\/2019\\\/06\\\/Systemarchitektur-1-e1559547139899.png\",\"keywords\":[\"Bootloader\",\"Firmware\",\"Mikrocontroller\",\"Software\"],\"articleSection\":[\"Software\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/medtech-ingenieur.de\\\/bootloader-tutorial-teil-2-backup-firmware\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/bootloader-tutorial-teil-2-backup-firmware\\\/\",\"url\":\"https:\\\/\\\/medtech-ingenieur.de\\\/bootloader-tutorial-teil-2-backup-firmware\\\/\",\"name\":\"Bootloader Tutorial, Teil 2: BackUp-Firmware - MEDtech Ingenieur GmbH\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/bootloader-tutorial-teil-2-backup-firmware\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/bootloader-tutorial-teil-2-backup-firmware\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/medtech-ingenieur.de\\\/wp-content\\\/uploads\\\/2019\\\/06\\\/Systemarchitektur-1-e1559547139899.png\",\"datePublished\":\"2019-06-04T06:22:58+00:00\",\"dateModified\":\"2021-08-06T13:38:23+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/bootloader-tutorial-teil-2-backup-firmware\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/medtech-ingenieur.de\\\/bootloader-tutorial-teil-2-backup-firmware\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/bootloader-tutorial-teil-2-backup-firmware\\\/#primaryimage\",\"url\":\"https:\\\/\\\/medtech-ingenieur.de\\\/wp-content\\\/uploads\\\/2019\\\/06\\\/Systemarchitektur-1-e1559547139899.png\",\"contentUrl\":\"https:\\\/\\\/medtech-ingenieur.de\\\/wp-content\\\/uploads\\\/2019\\\/06\\\/Systemarchitektur-1-e1559547139899.png\",\"width\":1222,\"height\":448,\"caption\":\"Systemarchitektur Bootloader\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/bootloader-tutorial-teil-2-backup-firmware\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/medtech-ingenieur.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Bootloader Tutorial, Teil 2: BackUp-Firmware\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#website\",\"url\":\"https:\\\/\\\/medtech-ingenieur.de\\\/\",\"name\":\"MEDtech Ingenieur GmbH\",\"description\":\"Ingenieursdienstleister f\u00fcr Medizintechnik\",\"publisher\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#organization\"},\"alternateName\":\"MEDtech\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/medtech-ingenieur.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#organization\",\"name\":\"MEDtech Ingenieur\",\"alternateName\":\"MEDtech\",\"url\":\"https:\\\/\\\/medtech-ingenieur.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/medtech-ingenieur.de\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/logo-700x700-1.png\",\"contentUrl\":\"https:\\\/\\\/medtech-ingenieur.de\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/logo-700x700-1.png\",\"width\":700,\"height\":700,\"caption\":\"MEDtech Ingenieur\"},\"image\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/medtechIngenieur\",\"https:\\\/\\\/x.com\\\/MedtechIng\",\"https:\\\/\\\/www.instagram.com\\\/medtech.ingenieure\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/37871229\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#\\\/schema\\\/person\\\/d8d57dae1a037203802f980694210c96\",\"name\":\"Bj\u00f6rn Schmitz\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/220b9f0a28245f1734df66dc6a1279c867b612a6f80e83450554b93475740ff1?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/220b9f0a28245f1734df66dc6a1279c867b612a6f80e83450554b93475740ff1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/220b9f0a28245f1734df66dc6a1279c867b612a6f80e83450554b93475740ff1?s=96&d=mm&r=g\",\"caption\":\"Bj\u00f6rn Schmitz\"},\"description\":\"Seit Juli 2017 geh\u00f6re ich zum MEDtech-Ingenieur Team und bin hier vor allem als Firmwareentwickler t\u00e4tig. Schon in k\u00fcrzester Zeit konnte ich an vielen spannenden Projekten aus dem Bereich Medizintechnik, aber auch aus anderen Bereichen mitwirken.\",\"sameAs\":[\"https:\\\/\\\/www.medtech-ingenieur.de\"],\"url\":\"https:\\\/\\\/medtech-ingenieur.de\\\/en\\\/author\\\/bjoern\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Bootloader Tutorial, Part 2: Backup Firmware - MEDtech Ingenieur GmbH","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/medtech-ingenieur.de\/en\/bootloader-tutorial-teil-2-backup-firmware\/","og_locale":"en_US","og_type":"article","og_title":"Bootloader Tutorial, Teil 2: BackUp-Firmware - MEDtech Ingenieur GmbH","og_description":"Im zweiten Teil der Bootloader Reihe m\u00f6chte ich auf das Konzept der BackUp-Firmware eingehen. Dieses wurde bei MEDtech-Ingenieur entwickelt, um die Zuverl\u00e4ssigkeit von Firmware zu erh\u00f6hen, welche auf vorinstallierte Bootloader zur\u00fcckgreift. Problembeschreibung Um das zugrundeliegende Problem zu verstehen, stellen wir uns folgendes Szenario vor: Ein Medizinprodukt setzt sich unter anderem aus zwei Softwaresystemen zusammen. Das [&hellip;]","og_url":"https:\/\/medtech-ingenieur.de\/en\/bootloader-tutorial-teil-2-backup-firmware\/","og_site_name":"MEDtech Ingenieur GmbH","article_publisher":"https:\/\/www.facebook.com\/medtechIngenieur","article_published_time":"2019-06-04T06:22:58+00:00","article_modified_time":"2021-08-06T13:38:23+00:00","og_image":[{"width":1222,"height":448,"url":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/06\/Systemarchitektur-1-e1559547139899.png","type":"image\/png"}],"author":"Bj\u00f6rn Schmitz","twitter_card":"summary_large_image","twitter_creator":"@MedtechIng","twitter_site":"@MedtechIng","twitter_misc":{"Written by":"Bj\u00f6rn Schmitz","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/medtech-ingenieur.de\/bootloader-tutorial-teil-2-backup-firmware\/#article","isPartOf":{"@id":"https:\/\/medtech-ingenieur.de\/bootloader-tutorial-teil-2-backup-firmware\/"},"author":{"name":"Bj\u00f6rn Schmitz","@id":"https:\/\/medtech-ingenieur.de\/#\/schema\/person\/d8d57dae1a037203802f980694210c96"},"headline":"Bootloader Tutorial, Teil 2: BackUp-Firmware","datePublished":"2019-06-04T06:22:58+00:00","dateModified":"2021-08-06T13:38:23+00:00","mainEntityOfPage":{"@id":"https:\/\/medtech-ingenieur.de\/bootloader-tutorial-teil-2-backup-firmware\/"},"wordCount":827,"commentCount":0,"publisher":{"@id":"https:\/\/medtech-ingenieur.de\/#organization"},"image":{"@id":"https:\/\/medtech-ingenieur.de\/bootloader-tutorial-teil-2-backup-firmware\/#primaryimage"},"thumbnailUrl":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/06\/Systemarchitektur-1-e1559547139899.png","keywords":["Bootloader","Firmware","Mikrocontroller","Software"],"articleSection":["Software"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/medtech-ingenieur.de\/bootloader-tutorial-teil-2-backup-firmware\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/medtech-ingenieur.de\/bootloader-tutorial-teil-2-backup-firmware\/","url":"https:\/\/medtech-ingenieur.de\/bootloader-tutorial-teil-2-backup-firmware\/","name":"Bootloader Tutorial, Part 2: Backup Firmware - MEDtech Ingenieur GmbH","isPartOf":{"@id":"https:\/\/medtech-ingenieur.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/medtech-ingenieur.de\/bootloader-tutorial-teil-2-backup-firmware\/#primaryimage"},"image":{"@id":"https:\/\/medtech-ingenieur.de\/bootloader-tutorial-teil-2-backup-firmware\/#primaryimage"},"thumbnailUrl":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/06\/Systemarchitektur-1-e1559547139899.png","datePublished":"2019-06-04T06:22:58+00:00","dateModified":"2021-08-06T13:38:23+00:00","breadcrumb":{"@id":"https:\/\/medtech-ingenieur.de\/bootloader-tutorial-teil-2-backup-firmware\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/medtech-ingenieur.de\/bootloader-tutorial-teil-2-backup-firmware\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/medtech-ingenieur.de\/bootloader-tutorial-teil-2-backup-firmware\/#primaryimage","url":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/06\/Systemarchitektur-1-e1559547139899.png","contentUrl":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2019\/06\/Systemarchitektur-1-e1559547139899.png","width":1222,"height":448,"caption":"Systemarchitektur Bootloader"},{"@type":"BreadcrumbList","@id":"https:\/\/medtech-ingenieur.de\/bootloader-tutorial-teil-2-backup-firmware\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/medtech-ingenieur.de\/"},{"@type":"ListItem","position":2,"name":"Bootloader Tutorial, Teil 2: BackUp-Firmware"}]},{"@type":"WebSite","@id":"https:\/\/medtech-ingenieur.de\/#website","url":"https:\/\/medtech-ingenieur.de\/","name":"MEDtech Ingenieur GmbH","description":"Engineering service provider for medical technology","publisher":{"@id":"https:\/\/medtech-ingenieur.de\/#organization"},"alternateName":"MEDtech","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/medtech-ingenieur.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/medtech-ingenieur.de\/#organization","name":"MEDtech Engineer","alternateName":"MEDtech","url":"https:\/\/medtech-ingenieur.de\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/medtech-ingenieur.de\/#\/schema\/logo\/image\/","url":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/01\/logo-700x700-1.png","contentUrl":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/01\/logo-700x700-1.png","width":700,"height":700,"caption":"MEDtech Ingenieur"},"image":{"@id":"https:\/\/medtech-ingenieur.de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/medtechIngenieur","https:\/\/x.com\/MedtechIng","https:\/\/www.instagram.com\/medtech.ingenieure\/","https:\/\/www.linkedin.com\/company\/37871229\/"]},{"@type":"Person","@id":"https:\/\/medtech-ingenieur.de\/#\/schema\/person\/d8d57dae1a037203802f980694210c96","name":"Bj\u00f6rn Schmitz","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/220b9f0a28245f1734df66dc6a1279c867b612a6f80e83450554b93475740ff1?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/220b9f0a28245f1734df66dc6a1279c867b612a6f80e83450554b93475740ff1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/220b9f0a28245f1734df66dc6a1279c867b612a6f80e83450554b93475740ff1?s=96&d=mm&r=g","caption":"Bj\u00f6rn Schmitz"},"description":"I&#039;ve been part of the MEDtech engineering team since July 2017, primarily working as a firmware developer. In a very short time, I&#039;ve been able to work on many exciting projects in the medical technology field, as well as in other areas.","sameAs":["https:\/\/www.medtech-ingenieur.de"],"url":"https:\/\/medtech-ingenieur.de\/en\/author\/bjoern\/"}]}},"_links":{"self":[{"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/posts\/3357","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/comments?post=3357"}],"version-history":[{"count":22,"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/posts\/3357\/revisions"}],"predecessor-version":[{"id":5826,"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/posts\/3357\/revisions\/5826"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/media\/3439"}],"wp:attachment":[{"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/media?parent=3357"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/categories?post=3357"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/tags?post=3357"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}