{"id":2833,"date":"2022-10-24T18:45:16","date_gmt":"2022-10-24T16:45:16","guid":{"rendered":"https:\/\/www.final-memory.org\/?p=2833"},"modified":"2022-10-24T18:45:16","modified_gmt":"2022-10-24T16:45:16","slug":"experimente-mit-stm32-bluepill-und-libopencm3","status":"publish","type":"post","link":"https:\/\/www.final-memory.org\/?p=2833","title":{"rendered":"Experimente mit STM32 BluePill und libopencm3"},"content":{"rendered":"<p>Heute habe ich an einem Resturlaubstag mal ein bisschen mit meiner STM32 BluePill experimentiert.<\/p>\n<p>Leider hat es einiges l\u00e4nger gedauert, als ich dachte.<\/p>\n<p>Zun\u00e4chst habe ich mir aktuelle Versionen von <a href=\"https:\/\/openocd.org\/\">OpenOCD<\/a> und den freien <a href=\"https:\/\/github.com\/stlink-org\/stlink\">ST-Link Tools<\/a> gebaut und installiert. Das funktionierte auch ohne Probleme.<\/p>\n<p>Die ST-Link Tools bringen sogar eine GUI mit GTK3 mit. Leider kann das Tool nur Bin\u00e4rdateien auslesen und programmieren, aber es ist immerhin etwas bedienerfreundlicher als die Kommandozeilenvariante.<\/p>\n<p>Danach habe ich mal die libopencm3 compiliert. Das ging auch gut, aber es gibt leider keine Installationsoption. Also muss man in die Projekte das jeweilige Verzeichnis entsprechend reinverdrahten.<\/p>\n<p>Ich habe auch die <a href=\"https:\/\/github.com\/libopencm3\/libopencm3-examples\">offiziellen Beispiele<\/a> mal \u00fcbersetzt. Zumindest das Systicker Blink, USB HID und USB COM Port Beispiel f\u00fcr STM32L1 habe ich mit meiner BluePill zum Laufen bekommen.<\/p>\n<p>Danach habe ich mir die Infrastruktur f\u00fcr eigene Projekte bauen wollen und bin beinahe gescheitert. Aus einigen Quellen musste ich mir Teile zusammenklauen, aber ich kann jetzt \u00fcber CMake entsprechende Projekte aufsetzen, die die libopencm3 benutzen.<\/p>\n<p>Das ganze habe ich im Visual Studio Code aufgesetzt und wollte dann die Debugerweiterung f\u00fcr Cortex-M benutzen und bin wieder gescheitert.<\/p>\n<p>Nach langem Puzzeln habe ich gemerkt, da\u00df mein gdb zu alt ist. Dann musste ich mir erstmal eine aktuelle Version bootstrappen.<br \/>\nKurzentschlossen wollte ich die offizielle ARM Toolchain installieren, aber das waren 0,5GB Download. Das war mir doch zu riesig, also habe ich einen offiziellen gdb runtergeladen und mit einer <a href=\"https:\/\/gist.github.com\/JayKickliter\/8004bafaf3d365dc8fe23843fae15c67\">kleinen Anleitung<\/a> auch gebaut.<\/p>\n<p>Mit dieser gdb Version konnte ich dann aber tats\u00e4chlich debuggen und mit .svd File auch die Peripherieregister anschauen.<\/p>\n<p>Gelernte Punkte habe ich gleich mal in einer <a href=\"https:\/\/www.final-memory.org\/?page_id=2829\">Wissenssammlung<\/a> aufgeschrieben. Die werde ich vermutlich zuk\u00fcnftig noch erweitern und ggfs erg\u00e4nzen.<\/p>\n<p>Eigentlich wollte ich noch ein Beispiel mit Segger RTT ausprobieren, bin aber nicht mehr soweit gekommen.<\/p>\n<div id=\"facebook_like\"><iframe src=\"http:\/\/www.facebook.com\/plugins\/like.php?href=https%3A%2F%2Fwww.final-memory.org%2F%3Fp%3D2833&amp;layout=standard&amp;show_faces=true&amp;width=500&amp;action=like&amp;font=segoe+ui&amp;colorscheme=light&amp;height=80\" scrolling=\"no\" frameborder=\"0\" style=\"border:none; overflow:hidden; width:500px; height:80px;\" allowTransparency=\"true\"><\/iframe><\/div>","protected":false},"excerpt":{"rendered":"<p>Heute habe ich an einem Resturlaubstag mal ein bisschen mit meiner STM32 BluePill experimentiert. Leider hat es einiges l\u00e4nger gedauert, als ich dachte. Zun\u00e4chst habe ich mir aktuelle Versionen von OpenOCD und den freien ST-Link Tools gebaut und installiert. Das funktionierte auch ohne Probleme. Die ST-Link Tools bringen sogar eine GUI mit GTK3 mit. Leider &hellip; <a href=\"https:\/\/www.final-memory.org\/?p=2833\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Experimente mit STM32 BluePill und libopencm3&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[83,74,103],"tags":[],"class_list":["post-2833","post","type-post","status-publish","format-standard","hentry","category-cmake","category-embedded-systems","category-stm32"],"_links":{"self":[{"href":"https:\/\/www.final-memory.org\/index.php?rest_route=\/wp\/v2\/posts\/2833","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.final-memory.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.final-memory.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.final-memory.org\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.final-memory.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2833"}],"version-history":[{"count":3,"href":"https:\/\/www.final-memory.org\/index.php?rest_route=\/wp\/v2\/posts\/2833\/revisions"}],"predecessor-version":[{"id":2836,"href":"https:\/\/www.final-memory.org\/index.php?rest_route=\/wp\/v2\/posts\/2833\/revisions\/2836"}],"wp:attachment":[{"href":"https:\/\/www.final-memory.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2833"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.final-memory.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2833"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.final-memory.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2833"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}