snaums.de - Interpreterhttps://www.snaums.de/2017-12-27T12:12:00+01:00Porting Micropython to bare-metal Raspberry Pi2017-12-27T12:12:00+01:002017-12-27T12:12:00+01:00snaumstag:www.snaums.de,2017-12-27:/informatik/porting-micropython-to-bare-metal-raspberry-pi.html<p>In the last months I ported Micropython to the Raspberry Pi. Micropython is an embedded Python interpreter, which already runs on ARM Cortex-M processors. I had to understand the build process, alter it as to target the Raspberry Pi processor and fix some annoying bugs and glitches. The result is …</p><p>In the last months I ported Micropython to the Raspberry Pi. Micropython is an embedded Python interpreter, which already runs on ARM Cortex-M processors. I had to understand the build process, alter it as to target the Raspberry Pi processor and fix some annoying bugs and glitches. The result is a port of Micropython which can execute Python code on the Raspberry Pi bare-metal. The port however only targets the Raspberry Pi 1 and Raspberry Pi Zero, with the ARM1176jzf-s processor. Porting to the Pi2 or Pi3 should not be that hard, as they feature an ARM Cortex-A processor.</p>
<p>The paper enclosed is the written work submitted for grading to the Operating System Group [1] at TU Chemnitz. Also I edited a schematic of the Raspberry Pi Zero to include the numbers of the pins in its GPIO-pinheader, which can be downloaded and used freely. The port can be found in [2] (as long as it is not merged).</p>
<p>The term paper can be found <a href="/static/resources/2017-12-mpy.pdf">here</a>. The Raspberry Pi Zero schematic can be downloaded <a href="/static/resources/2017-12-rpi-zero.svg">here</a>.</p>
<p>[1] <a href="https://osg.informatik.tu-chemnitz.de">https://osg.informatik.tu-chemnitz.de</a><br/>
[2] <a href="https://github.com/naums/micropython">https://github.com/naums/micropython</a></p>
<p><a href="/static/resources/2017-12-rpi-zero.svg"><img alt="Schematic of the Raspberry Pi Zero with GPIO-Names" src="/static/resources/2017-12-rpi-zero.svg" width="100%"/></a></p>