<story><title>Discover the world of microcontrollers through Rust</title><url>https://japaric.github.io/discovery/</url></story><parent_chain><item><author>shijie</author><text>This is exactly, exactly what I&amp;#x27;ve been looking for. As a software engineer whose professional career has focused entirely around the web, embedded systems is a strange, enticing landscape with what seems to be an &amp;quot;old guard,&amp;quot; that eschews the frenetic pace of web technologies and frameworks, and relies on old, proven, get-shit-done tooling and technology. Which is amazing. But it also means that no one is writing blog posts on medium about this stuff, and beginner tutorials are sparse. For spoiled Elixir devs like me, this is perfect.</text></item></parent_chain><comment><author>pjc50</author><text>Microcontrollers have got a lot more accessible since Arduino.  There&amp;#x27;s lots of beginner material out there, although admittedly not on Medium. (Unsurprisingly, the people involved prefer a more bare metal approach and put it on blogs or forums instead)&lt;p&gt;The tooling is nearly always C, so it&amp;#x27;s interesting to see Rust moving into this space. Memory management is not so much of an issue, but multitasking correctness is; perhaps there will be some new micro-RTOS framework with provably correct interrupt handling. (We have sel4, but that&amp;#x27;s not quite the same thing)&lt;p&gt;As you get more low level, the tutorials get sparser. You move into FPGAs, where you have a choice of two languages with 1970s design principles, or third-party tools which work despite the manufacturer&amp;#x27;s total closedness. As you go deeper into actual IC design, nobody will attempt it without supervision from someone experienced to tell you all the little tricks. And then there&amp;#x27;s &lt;i&gt;analog&lt;/i&gt; IC design, which is basically black magic.</text></comment>
<story><title>Discover the world of microcontrollers through Rust</title><url>https://japaric.github.io/discovery/</url></story><parent_chain><item><author>shijie</author><text>This is exactly, exactly what I&amp;#x27;ve been looking for. As a software engineer whose professional career has focused entirely around the web, embedded systems is a strange, enticing landscape with what seems to be an &amp;quot;old guard,&amp;quot; that eschews the frenetic pace of web technologies and frameworks, and relies on old, proven, get-shit-done tooling and technology. Which is amazing. But it also means that no one is writing blog posts on medium about this stuff, and beginner tutorials are sparse. For spoiled Elixir devs like me, this is perfect.</text></item></parent_chain><comment><author>phkahler</author><text>Small micro controllers don&amp;#x27;t have the resources you&amp;#x27;re used to. The smallest thing I ever wrote code for was in the PIC family and had 176 bytes of RAM and like 4 or 8K of flash (EEPROM?). Even on more common parts you may find only a few K of RAM and 10&amp;#x27;s or 100&amp;#x27;s of K flash. In that space we don&amp;#x27;t do any dynamic memory allocation, never mind garbage collection. If you did it&amp;#x27;s entirely possible you&amp;#x27;d run out of heap space and the program would crash. It&amp;#x27;s a really different world than what web developers and app developers are used to. I highly recommend taking the dive even if it&amp;#x27;s just for fun and to see a different type of software development.</text></comment>