{"id":185,"date":"2025-07-23T18:18:42","date_gmt":"2025-07-23T16:18:42","guid":{"rendered":"http:\/\/r25.herdsoft\/cms\/?page_id=185"},"modified":"2025-08-06T14:34:51","modified_gmt":"2025-08-06T12:34:51","slug":"firmware","status":"publish","type":"page","link":"http:\/\/r25.herdsoft\/cms\/firmware\/","title":{"rendered":"Firmware"},"content":{"rendered":"\n<p>Meist ben\u00f6tigt heutige Elektronik programmierbare und konfigurierbare Komponenten wie Mikrocontroller und FPGAs.<\/p>\n\n\n\n<p>H\u00e4ufig ist der Aufwand zur Entwicklung der Firmware h\u00f6her als der Aufwand f\u00fcr die Platinenentwicklung.<\/p>\n\n\n\n<p>Die programmierbaren Komponenten m\u00fcssen meist mit anderen Maschinenelementen oder einem PC kommunizieren. Daf\u00fcr kommen vielerlei verschiedene Protokolle wie Ethernet, USB, I\u00b2C, UART, CAN und andere zum Einsatz.<\/p>\n\n\n\n<p>Die Hersteller der Mikrocontroller liefern zu ihren Bauelementen entsprechende Bibliotheken mit, aber das Erstellen einer voll funktionalen Firmware ist dennoch ein sehr komplexer Prozess.<\/p>\n\n\n\n<p>Ich habe Erfahrungen gesammelt mit folgenden Komponenten:<\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Typ<\/th><th>Beschreibung<\/th><th>Entwicklungsumgebung<\/th><\/tr><\/thead><tbody><tr><td>Zynq 70<a href=\"https:\/\/www.amd.com\/de\/products\/adaptive-socs-and-fpgas\/soc\/zynq-7000.html\">00 SoC<\/a><\/td><td>FPGA, ARM Prozessor und Controller E\/A<\/td><td>Vivado \/ Vitis<\/td><\/tr><tr><td>Spartan 3 \/ Spartan 6<\/td><td>FPGAs<\/td><td>Xilinx ISE<\/td><\/tr><tr><td>Cypress Cy68013A<\/td><td>USB 2.0 Interface Chip mit 8051-Kompatiblem Prozessor<\/td><td><a href=\"https:\/\/packages.debian.org\/bookworm\/sdcc\">sdcc<\/a><\/td><\/tr><tr><td>Atxmega 128A1U<\/td><td>8-Bit RISC Controller mit umfangreicher Controller E\/A<\/td><td><a href=\"https:\/\/packages.debian.org\/bookworm\/gcc-avr\">avr-gcc<\/a><\/td><\/tr><tr><td>Attiny<\/td><td>8-Bit RISC Controller mit einfacher Controller E\/A<\/td><td><a href=\"https:\/\/packages.debian.org\/bookworm\/gcc-avr\">avr-gcc<\/a><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Ger\u00e4tetreiber<\/h2>\n\n\n\n<p>Um von einem PC aus auf die Hardware und ihre Firmware zuzugreifen, wird meistens eine PC-Seitiger Ger\u00e4tetreiber ben\u00f6tigt.<\/p>\n\n\n\n<p>Dieser besteht oftmals aus einem Ger\u00e4te-Treiber, der im Kernel-Modus ausgef\u00fchrt wird und einer API-Schnittstelle, die den Zugriff aus der Anwendung organisiert.<\/p>\n\n\n\n<p>Im Falle von Windows muss der Ger\u00e4te-Treiber mit einem Sicherheits-Zertifikat unterschrieben werden.<\/p>\n\n\n\n<p>F\u00fcr USB-Ger\u00e4te habe ich Erfahrung mit der Programmierung von API-Schnittstellen basierend auf generischen USB-Treibern wie CYUSB und libusb.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Siehe auch<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"http:\/\/r25.herdsoft\/cms\/hardware-entwicklung\/\" data-type=\"page\" data-id=\"119\">Hardware Entwicklung<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/r25.herdsoft\/cms\/pc-software\/\" data-type=\"page\" data-id=\"228\">PC-Software Entwicklung<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Meist ben\u00f6tigt heutige Elektronik programmierbare und konfigurierbare Komponenten wie Mikrocontroller und FPGAs. H\u00e4ufig ist der Aufwand zur Entwicklung der Firmware h\u00f6her als der Aufwand f\u00fcr die Platinenentwicklung. Die programmierbaren Komponenten m\u00fcssen meist mit anderen Maschinenelementen oder einem PC kommunizieren. Daf\u00fcr kommen vielerlei verschiedene Protokolle wie Ethernet, USB, I\u00b2C, UART, CAN und andere zum Einsatz. Die [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":31,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-185","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"http:\/\/r25.herdsoft\/cms\/wp-json\/wp\/v2\/pages\/185","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/r25.herdsoft\/cms\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/r25.herdsoft\/cms\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/r25.herdsoft\/cms\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/r25.herdsoft\/cms\/wp-json\/wp\/v2\/comments?post=185"}],"version-history":[{"count":44,"href":"http:\/\/r25.herdsoft\/cms\/wp-json\/wp\/v2\/pages\/185\/revisions"}],"predecessor-version":[{"id":935,"href":"http:\/\/r25.herdsoft\/cms\/wp-json\/wp\/v2\/pages\/185\/revisions\/935"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/r25.herdsoft\/cms\/wp-json\/wp\/v2\/media\/31"}],"wp:attachment":[{"href":"http:\/\/r25.herdsoft\/cms\/wp-json\/wp\/v2\/media?parent=185"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}