Skip to content
Snippets Groups Projects
Commit 11aae690 authored by Henrik Tjäder's avatar Henrik Tjäder
Browse files

Add links to the RTFM book and also add credit do STM for providing the hw

parent 7d05926e
No related branches found
No related tags found
No related merge requests found
...@@ -21,6 +21,7 @@ Use-cases ranges from heavy industry to tiny sensors in your everyday life. ...@@ -21,6 +21,7 @@ Use-cases ranges from heavy industry to tiny sensors in your everyday life.
[Rust-Embedded book](https://rust-embedded.github.io/book/) contains thorough instructions for getting going with embedded. [Rust-Embedded book](https://rust-embedded.github.io/book/) contains thorough instructions for getting going with embedded.
This resource is a tiny subset of the Embedded book. This resource is a tiny subset of the Embedded book.
[RTFM Book](https://rtfm.rs/) contains examples and usage for the rust implementation of the RTFM framework.
# Overview # Overview
![Embedded workflow](images/workflow_chart.png "Flowchart") ![Embedded workflow](images/workflow_chart.png "Flowchart")
# Introduction to the hardware # Introduction to the hardware
<img src="images/st-logo.svg" width="500">
In this course we will use the [STM32F401](https://www.st.com/en/microcontrollers-microprocessors/stm32f401.html) sponsored by ST Microelectronics.
A big thanks to STM for this contribution!
## ARM ## ARM
While your laptop/stationary computer most likely runs some `x86_64` CPU architecture, While your laptop/stationary computer most likely runs some `x86_64` CPU architecture,
......
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.6, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 467 118.9" style="enable-background:new 0 0 467 118.9;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
.st1{fill:#001C54;}
.st2{fill:#27AAE1;}
.st3{fill:url(#SVGID_1_);}
.st4{fill:url(#SVGID_2_);}
.st5{fill:url(#SVGID_3_);}
.st6{fill:url(#SVGID_4_);}
.st7{fill:url(#SVGID_5_);}
.st8{fill:url(#SVGID_6_);}
.st9{opacity:0.1;}
.st10{fill:none;}
</style>
<g>
<path class="st0" d="M229.6,0H72.9l0,0C60.6,0,49.4,7.3,44.5,18.5L4.9,113.9c-0.2,0.5-0.3,0.9-0.3,1.4c0,2,1.7,3.6,3.7,3.6h158
l1.7-0.1c11.4-1,21.4-8.2,25.8-18.8L233,5.1c0.2-0.4,0.3-0.9,0.3-1.4C233.3,1.6,231.6,0,229.6,0"/>
</g>
<g>
<g>
<path class="st1" d="M301.2,94.4c-3.7,0-6.4-2.7-6.4-6.4c0-4.3,3.2-6.5,6.4-6.5c3.5,0,6.3,2.9,6.3,6.5
C307.5,91.5,304.7,94.4,301.2,94.4 M307.4,82.4c-1.9-2.7-4.9-3-6.2-3c-5.5,0-8.7,4.3-8.7,8.5c0,4.8,3.8,8.6,8.7,8.6
c1.2,0,4.3-0.3,6.2-3v2.7h2.3V79.9h-2.3V82.4z"/>
<path class="st1" d="M326.1,88.4c0,2.9-0.8,3.9-1.6,4.7c-0.8,0.8-1.9,1.3-3.3,1.3c-1.5,0-2.8-0.5-3.6-1.5
c-0.8-0.9-1.1-2.3-1.1-4.1v-8.9h-2.3v9c0,2.3,0.5,4.1,1.4,5.2c0.7,0.9,2.4,2.4,5.6,2.4s4.6-1.8,5.1-2.6v2.2h2.2V79.8h-2.3v8.6
H326.1z"/>
<path class="st1" d="M339.5,94.4c-3.4,0-6.2-2.9-6.2-6.4c0-3.6,2.8-6.5,6.2-6.5c3.4,0,6.2,2.9,6.2,6.5
C345.7,90.5,343.7,94.4,339.5,94.4 M345.6,82.5c-2-2.8-4.9-3.1-6.1-3.1c-4.1,0-8.5,3.3-8.5,8.6c0,5.2,4.4,8.4,8.5,8.4
c2,0,4.8-0.8,6.1-3.1v1.1c0,4.3-3.1,5.9-5.7,5.9c-3.9,0-5.4-2.8-5.9-4v-0.1h-2.4v0.2c1.6,5.5,6.8,6,8.3,6c0.4,0,4.4-0.1,6.5-3
c1.5-2,1.5-4.2,1.5-5.9V79.9h-2.3V82.5z"/>
<path class="st1" d="M368.7,79.4c-1.4,0-4.1,0.6-5.4,2.9c-1.3-2.3-4-2.9-5.4-2.9c-1.5,0-3.3,0.6-4.2,2v-1.6h-2.3v16.3h2.3v-9.4
c0-1.7,0.3-2.5,0.7-3.3c0.7-1.2,2-1.9,3.5-1.9c1.6,0,2.8,0.7,3.5,1.9c0.4,0.8,0.7,1.6,0.7,3.3v9.4h2.3v-9.4c0-1.7,0.3-2.5,0.7-3.3
c0.7-1.2,2-1.9,3.5-1.9c1.6,0,2.8,0.7,3.5,1.9c0.4,0.8,0.7,1.6,0.7,3.3v9.4h2.3v-9.6C375.2,80.9,371.1,79.4,368.7,79.4"/>
<path class="st1" d="M380.3,86.7c0.6-3.4,3.5-5.2,6.1-5.2c2.5,0,5.5,1.6,6.1,5.2H380.3z M386.4,79.4c-4.7,0.1-8.4,3.9-8.4,8.6
s3.8,8.5,8.5,8.5c3.6,0,6.8-2.3,8-5.7l0.1-0.2H392v0.1c-0.6,1.7-2.5,3.6-5.6,3.7c-3.1,0-5.9-2.6-6.1-5.6h14.6v-0.1
c0.1-1.9-0.3-3.6-1.2-5.1C392.5,81.6,390,79.4,386.4,79.4"/>
<path class="st1" d="M405.1,79.4c-2.4,0-4.1,1.2-4.9,2.3v-1.9h-2.3v16.3h2.3v-8.9c0-1.8,0.5-3.4,1.5-4.3c1.3-1.2,2.9-1.3,3.4-1.3
s2.1,0.1,3.4,1.3c1,0.9,1.5,2.5,1.5,4.3v8.9h2.3v-8.9c0-2.5-0.7-4.5-2-5.7C408.9,80,407.3,79.4,405.1,79.4"/>
<polygon class="st1" points="420.5,74.1 418.2,74.1 418.2,79.8 414.8,79.8 414.8,81.9 418.2,81.9 418.2,96.1 420.5,96.1
420.5,81.9 424.3,81.9 424.3,79.8 420.5,79.8 "/>
<path class="st1" d="M428,86.7c0.6-3.4,3.5-5.2,6.1-5.2c2.5,0,5.5,1.6,6.1,5.2H428z M434.1,79.4c-4.7,0.1-8.4,3.9-8.4,8.6
s3.8,8.5,8.5,8.5c3.6,0,6.8-2.3,8-5.7l0.1-0.2h-2.4v0.1c-0.6,1.7-2.5,3.6-5.6,3.7c-3.1,0-5.9-2.6-6.1-5.6h14.6v-0.1
c0.1-1.9-0.3-3.6-1.2-5.1C440.2,81.5,437.7,79.4,434.1,79.4"/>
<path class="st1" d="M453.6,94.4c-3.7,0-6.4-2.7-6.4-6.4c0-4.3,3.2-6.5,6.4-6.5c3.5,0,6.3,2.9,6.3,6.5S457.1,94.4,453.6,94.4
M459.8,74.1v8.2c-2.1-2.8-5.2-3-6.2-3c-5.5,0-8.7,4.3-8.7,8.5c0,4.8,3.8,8.6,8.7,8.6c2,0,4.6-0.8,6.2-3V96h2.3V74.1H459.8z"/>
</g>
<g>
<rect x="242.9" y="73.6" class="st2" width="2.2" height="3.3"/>
<polygon class="st2" points="235.5,74.1 230.7,74.1 230.7,76.2 233.3,76.2 233.3,94 230.5,94 230.5,96.1 238,96.1 238,94
235.5,94 "/>
<polygon class="st2" points="245.6,79.8 240.8,79.8 240.8,81.9 243.4,81.9 243.4,94 240.8,94 240.8,96.1 248.2,96.1 248.2,94
245.6,94 "/>
<path class="st2" d="M254.5,75.2c-1.4,1.3-1.5,2.7-1.5,4.5v0.1h-2.6v2.1h2.6V94h-2.6v2.1h7.4V94h-2.6V81.9h2.6v-2.1h-2.6v-0.3
c0-1.2,0.1-2.2,1-2.9c0.5-0.4,1.2-0.7,2.1-0.7h0.1v-2h-0.1C256.6,73.9,255.4,74.4,254.5,75.2"/>
<path class="st2" d="M263.1,87c0.4-2.9,3.1-5.2,5.9-5.2c3.2,0,5.8,2.2,6.3,5.2H263.1z M269.1,79.8c-4.5,0-8.2,3.8-8.2,8.4
c0,4.5,3.7,8.2,8.3,8.2c3.3,0,6.2-1.9,7.6-4.9l0.1-0.2h-2.3v0.1c-1.1,1.9-3,3-5.3,3c-3.2,0-5.8-2.4-6-5.5h14.3v-0.7
C277.4,83.5,273.7,79.8,269.1,79.8"/>
<path class="st2" d="M284.8,96.5c1.6,0,2.8-1.3,2.8-2.8c0-1.6-1.3-2.8-2.8-2.8c-1.6,0-2.8,1.3-2.8,2.8S283.3,96.5,284.8,96.5"/>
</g>
</g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="124.6967" y1="120.698" x2="120.8813" y2="-9.1167" gradientTransform="matrix(1 0 0 -1 0 120.476)">
<stop offset="0" style="stop-color:#559FBE"/>
<stop offset="0.1365" style="stop-color:#004E67"/>
<stop offset="0.3613" style="stop-color:#1583B2"/>
<stop offset="0.4452" style="stop-color:#559FBE"/>
<stop offset="0.5402" style="stop-color:#1583B2"/>
<stop offset="0.6439" style="stop-color:#004E67"/>
<stop offset="0.7108" style="stop-color:#276685"/>
</linearGradient>
<path class="st3" d="M229.6,2H72.9l0,0C61,2,50.8,9.1,46.3,19.2L15.4,93.7c-0.1,0.2-0.1,0.4-0.1,0.6c0,0.9,0.7,1.6,1.6,1.6h70.8
c5,0,7.2-4.8,3.3-8.7L65,63c-13.7-13.3-7.8-44.4,20.5-44.4H224c0.7,0,1.3-0.5,1.6-1.1l5.5-13.2c0.1-0.2,0.1-0.4,0.1-0.6
C231.2,2.8,230.5,2,229.6,2z"/>
<radialGradient id="SVGID_2_" cx="170.0121" cy="84.8322" r="150.7058" gradientTransform="matrix(0.9381 0 0 -0.9246 -10.1139 88.5378)" gradientUnits="userSpaceOnUse">
<stop offset="0" style="stop-color:#559FBE"/>
<stop offset="0.3865" style="stop-color:#1583B2"/>
<stop offset="0.9939" style="stop-color:#164E66"/>
</radialGradient>
<path class="st4" d="M85.5,16.2h138.1l5-12h-152l0,0H73c-10.8,0-20.4,6.3-24.6,16L17.9,93.6h69.8c1.4,0,2.5-0.5,2.8-1.4
c0.4-1,0-2.2-1.1-3.3l-26-24.4c-7.7-7.6-9.9-20.4-5.4-31.2C62.5,22.4,72.5,16.2,85.5,16.2z"/>
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="206.0699" y1="83.408" x2="154.1613" y2="-11.8581" gradientTransform="matrix(1 0 0 -1 0 120.476)">
<stop offset="0" style="stop-color:#559FBE"/>
<stop offset="0.2301" style="stop-color:#004E67"/>
<stop offset="0.3613" style="stop-color:#1583B2"/>
<stop offset="0.4452" style="stop-color:#559FBE"/>
<stop offset="0.5402" style="stop-color:#1583B2"/>
<stop offset="0.6439" style="stop-color:#004E67"/>
<stop offset="0.7108" style="stop-color:#276685"/>
</linearGradient>
<path class="st5" d="M214,40h-26.6c-1.8,0-3.3,1.1-4,2.6l-29.8,72c-0.1,0.2-0.2,0.5-0.2,0.7c0,0.9,0.7,1.6,1.6,1.6h9.9l0,0
c12.1,0,22.5-7.3,26.8-17.7l0,0L215.4,42c0.1-0.2,0.1-0.4,0.1-0.6C215.6,40.7,214.9,40,214,40z"/>
<radialGradient id="SVGID_4_" cx="181.5946" cy="84.8248" r="141.4337" gradientTransform="matrix(0.9381 0 0 -0.9246 -10.1139 88.5378)" gradientUnits="userSpaceOnUse">
<stop offset="0" style="stop-color:#559FBE"/>
<stop offset="0.3865" style="stop-color:#1583B2"/>
<stop offset="0.9939" style="stop-color:#164E66"/>
</radialGradient>
<path class="st6" d="M161.2,114.9h3.6c10.7,0,20.2-6.2,24.5-15.8l23.6-57h-25.6c-0.8,0-1.5,0.5-1.8,1.2l-29.6,71.6L161.2,114.9
L161.2,114.9z"/>
<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="120.7096" y1="80.7156" x2="117.2263" y2="1.271419e-02" gradientTransform="matrix(1 0 0 -1 0 120.476)">
<stop offset="0" style="stop-color:#559FBE"/>
<stop offset="0.1365" style="stop-color:#004E67"/>
<stop offset="0.3613" style="stop-color:#1583B2"/>
<stop offset="0.4452" style="stop-color:#559FBE"/>
<stop offset="0.5402" style="stop-color:#1583B2"/>
<stop offset="0.6439" style="stop-color:#004E67"/>
<stop offset="0.7108" style="stop-color:#276685"/>
</linearGradient>
<path class="st7" d="M161.7,41.6c0-0.9-0.7-1.6-1.6-1.6H84.7c-4.1,0-7.7,5-3.3,9l24.9,23.2c0,0,10.1,9.3,7.9,22.6
c-1.9,11.7-9.9,18.9-15.7,21.5l0,0c-0.1,0.1-0.2,0.2-0.2,0.4s0.2,0.4,0.4,0.4h29.1c1.8,0,3.3-1.1,4-2.6l29.9-72.2
C161.6,42,161.7,41.8,161.7,41.6z"/>
<radialGradient id="SVGID_6_" cx="181.9592" cy="84.8242" r="141.4391" gradientTransform="matrix(0.9381 0 0 -0.9246 -10.1139 88.5378)" gradientUnits="userSpaceOnUse">
<stop offset="0" style="stop-color:#559FBE"/>
<stop offset="0.3865" style="stop-color:#1583B2"/>
<stop offset="0.9939" style="stop-color:#164E66"/>
</radialGradient>
<path class="st8" d="M105,114.9c5.3-4.3,10-11.2,11.4-19.9c2.3-14.4-8.2-24.2-8.6-24.6L82.9,47.2c-0.8-0.7-1.6-1.8-1.1-3.1
c0.4-1.1,1.6-1.9,2.8-1.9H159l-29.7,71.6c-0.3,0.7-1,1.2-1.8,1.2l0,0L105,114.9L105,114.9z"/>
<g class="st9">
<path class="st0" d="M161.7,41.6c0,0.2,0,0.4-0.1,0.6l-14,33.8c-10.4,1.1-21.2,1.7-32.4,1.7c-1.6,0-3.2,0-4.8,0
c-2.1-3.5-4.2-5.4-4.2-5.4L81.3,49c-4.3-4-0.7-9,3.3-9H160C160.9,40,161.7,40.7,161.7,41.6z"/>
<path class="st0" d="M215.6,41.6c0,0.2,0,0.4-0.1,0.6l-8.3,20.1c-10.8,4.2-23,7.6-36.1,10.2l12.3-29.9c0.6-1.6,2.2-2.6,4-2.6H214
C214.9,40,215.6,40.7,215.6,41.6z"/>
<path class="st0" d="M231.2,3.7c0,0.2,0,0.4-0.1,0.6l-5.5,13.2c-0.2,0.6-0.8,1.1-1.6,1.1H85.5C57.2,18.6,51.3,49.7,65,63l13.2,12.4
C59.7,73.1,42.6,69.2,27.8,64l18.5-44.7C50.8,9.2,61,2.1,72.9,2.1l0,0h156.7C230.5,2,231.2,2.8,231.2,3.7z"/>
</g>
<rect x="233.3" y="-21.4" class="st10" width="21.5" height="21.4"/>
<rect x="-17" y="-21.4" class="st10" width="21.5" height="21.4"/>
<rect x="462" y="17.1" class="st10" width="21.5" height="21.4"/>
<rect x="233.2" y="119" class="st10" width="21.5" height="21.4"/>
</svg>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment