{"id":11934,"date":"2021-03-07T19:47:58","date_gmt":"2021-03-07T19:47:58","guid":{"rendered":"http:\/\/blog.bachi.net\/?p=11934"},"modified":"2021-03-07T19:47:58","modified_gmt":"2021-03-07T19:47:58","slug":"stm32-spinlock-vs-interruptlock","status":"publish","type":"post","link":"https:\/\/blog.bachi.net\/?p=11934","title":{"rendered":"STM32 Spinlock vs. Interruptlock"},"content":{"rendered":"<p><a href=\"https:\/\/mcuoneclipse.com\/2014\/01\/26\/entercritical-and-exitcritical-why-things-are-failing-badly\/\">EnterCritical() and ExitCritical(): Why Things are Failing Badly<\/a><br \/>\n<a href=\"https:\/\/www.devcoons.com\/cortex-m-atomic-operations-critical-section\/\">Cortex M atomic operations \u2013 Critical section<\/a><br \/>\n<a href=\"https:\/\/www.mikrocontroller.net\/topic\/358456\">STM32: LDREX\/STREX vs Interruptsperre<\/a><br \/>\n<a href=\"https:\/\/www.mikrocontroller.net\/topic\/123533\">Interrupts ein-\/ausschalten beim ARM cortex-M3<\/a><br \/>\n<a href=\"https:\/\/www.mikrocontroller.net\/topic\/312246\">atomic-lib f\u00fcr stm32<\/a><br \/>\n<a href=\"https:\/\/electronics.stackexchange.com\/questions\/25690\/critical-sections-on-cortex-m3\">Critical sections on Cortex-M3<\/a><br \/>\n<a href=\"https:\/\/github.com\/ARMmbed\/mbed-drivers\/issues\/48\">LDREX\/STREX race condition<\/a><br \/>\n<a href=\"https:\/\/stackoverflow.com\/questions\/54061127\/dmb-instructions-in-an-interrupt-safe-fifo\">DMB instructions in an interrupt-safe FIFO<\/a><br \/>\n<a href=\"https:\/\/stackoverflow.com\/questions\/40819270\/lock-free-programming-how-fresh-is-atomic-value\">Lock-free programming: how fresh is atomic value?<\/a><\/p>\n<h4>YouTube<\/h4>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=AN6XHy2znzc\">Spinlocks &#8211; Part 1 &#8211; A Basic Spinlock<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=ED4ZJyOLpRQ\">Spinlocks &#8211; Part 2 &#8211; Locally Spinning<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=-dkWwvIMInc\">Spinlocks &#8211; Part 3 &#8211; Active Backoff<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=kwVSf5k2du0\">Spinlocks &#8211; Part 4 &#8211; Passive Backoff<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=XKBjwQQJ0qk\">What&#8217;s Spin Lock? Spin Lock Vs. Mutex.<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=q4CxE5P6RUE\">Bare-metal ARM firmware reverse engineering with Ghidra and SVD-Loader<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>EnterCritical() and ExitCritical(): Why Things are Failing Badly Cortex M atomic operations \u2013 Critical section STM32: LDREX\/STREX vs Interruptsperre Interrupts ein-\/ausschalten beim ARM cortex-M3 atomic-lib f\u00fcr stm32 Critical sections on Cortex-M3 LDREX\/STREX race condition DMB instructions in an interrupt-safe FIFO Lock-free programming: how fresh is atomic value? YouTube Spinlocks &#8211; Part 1 &#8211; A Basic [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-11934","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/11934","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=11934"}],"version-history":[{"count":1,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/11934\/revisions"}],"predecessor-version":[{"id":11935,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/11934\/revisions\/11935"}],"wp:attachment":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11934"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11934"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11934"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}